Skip to content

Added blink movement ability in the champ quest stealth mini-game#1901

Merged
shadeydo merged 14 commits intomainfrom
champ-stealth-blink
Feb 13, 2026
Merged

Added blink movement ability in the champ quest stealth mini-game#1901
shadeydo merged 14 commits intomainfrom
champ-stealth-blink

Conversation

@shadeydo
Copy link
Contributor

@shadeydo shadeydo commented Feb 9, 2026

This ability teleports the character instantly in the direction they are running whenever the player presses C (Closes #1892).
The ability is local to the stealth mini-game character, and the hope is that the script will later be partially redacted so that the competitors can learn to code player movement.

Changes:

  • Added a new keybind “champ-blink” to the input map in project settings
  • Added an island in the stealth mini-game that can only be visited with the blink ability

The hope is that the player will see this new island and be incentivized to code a working blink ability.
This still needs some work, mainly because now that the player can go out of bounds, the system of using a hidden border tile layer becomes a bit awkward.

@shadeydo shadeydo added this to the Vermont Cup StoryQuest milestone Feb 9, 2026
@shadeydo shadeydo requested a review from a team as a code owner February 9, 2026 23:05
@shadeydo shadeydo requested a review from a team as a code owner February 9, 2026 23:05
@github-actions
Copy link

github-actions bot commented Feb 9, 2026

Play this branch at https://play.threadbare.game/branches/endlessm/champ-stealth-blink.

(This launches the game from the start, not directly at the change(s) in this pull request.)

Addressed the comments in PR #1901
- changed champ-blink to champ_blink in the input map
- Removed explicit z index specification. In it's place, enabled Y sorting the decorations tile map layer and the character. I think this is what the comment meant
This addresses the comments in the stealth minigame PR a couple days ago.

- Made new WaterRock scene that is instantiated in the main stage instead of duplicate instances
- Did the same for the water ripples to make it easier to make changes
- Added RandomFrameSpriteBehavior node to both animations instead of a custom randomization script for each (I still had to have a script to start the animation playing though, can't figure out how to get around this.)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean to change the water_rock scene that is shared with the whole project, rather than the one in champ?

Addressed the new comments in the #1901 PR.
I didn't realize that there was already a water_rock.tcsn file shared with all story quests, so I switched the stealth mini game to using that!
Also, turned on autoplay for the water ripples instead of using a custom script to do so.
@wjt
Copy link
Member

wjt commented Feb 12, 2026

This still needs some work, mainly because now that the player can go out of bounds, the system of using a hidden border tile layer becomes a bit awkward.

What you can do is put an Area2D in your custom player scene that detects collisions with things the player would collide with. Give it a collision shape that matches the player shape. Then when you are about to blink, move the Area2D to the target position and force a physics update (or ideally do this whenever the input vector changes) and then you can test whether the Area2D is colliding with something at the target and block the blink action.

@shadeydo
Copy link
Contributor Author

I hope I’ve addressed your suggestions correctly, @wjt.

There are still some issues with the player going out of bounds, which I think are actually related to our current TileMap collision workaround in the stage.

I think I know a proper fix for the out-of-bounds collisions, but suggest merging this branch first to minimize potential breakage to #1909 before implementing it.

Addressed the comments @felixwalberg made. For now I just moved the npc up so there is no longer a big enough space for the player to fit. Also changed the order of the decorations tiles so that doesn't clip anymore too.
Copy link
Member

@wjt wjt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from my perspective, just a few suggested tweaks.

@wjt wjt mentioned this pull request Feb 13, 2026
shadeydo and others added 2 commits February 13, 2026 10:53
- Removed unnecessary semicolons
- Added tile suffix to exported blink distance
@shadeydo shadeydo merged commit 2f4d07f into main Feb 13, 2026
5 checks passed
@shadeydo shadeydo deleted the champ-stealth-blink branch February 13, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a more advanced "ability" to traverse the level

3 participants