Draft
Conversation
Let them happen all at once without changing the actual modes for now. Only leave the mode "defeating" to disable player interaction and abilites (repel, grapple). This prevents refactoring the modes right now.
This was introduced a while ago and left invisible. It has the shape of StoryWeaver so it won't work when replacing the SpriteFrames in StoryQuests.
This could be a const, or the "repel" string can be used directly. This is only preparation for upcoming animations refactor. Note: There are references in StoryQuest "After the Tremor" that this change may break.
Rename the node that provides this ability to PlayerRepel. Adjust the scripts accordingly.
And the Area2D nodes that had this script. In 2 scenes from Void quest.
Add a signal to the repel ability and use it to play the animation when the property changes, instead of checking it constantly in _process(). Loop the repel animation in the script by adding a handler to the animation finished signal, and remove the loop mode from the animation itself. Give a class name to PlayerRepel.
For keyboard + mouse: Use right click to repel. For keyboard only: Use Z to repel and X to grapple. This is on the basis that the player will use arrow keys for moving in this case. Interact continues being Space in both setups.
To the right shoulder (RB in XBox). So it doesn't collide with A for interaction. And so it can be used at the same time as aiming the grappling hook with the right stick. Co-authored-by: Will Thompson <wjt@endlessaccess.org>
Into a new PlayerHarm node inside the Player scene. There is no actual harm today, but the "got hit" animation and handling of the projectiles entering the player hitbox are here now, split from the PlayerRepel ability. Also, connect the signals from the editor, not in the _ready() function.
During dialogue, set the cursor to the arrow. When dialogue ends, set it to the cross.
When the game is paused set the cursor to the arrow. And when unpaused, set it to the cross shape.
A boolean property. Default to false. Set it to true in the 3 existing lore quests.
As generic flags that can be interpreted by the game entities. For example, the first one can be "repel". Add an enum with 3 abilities, each with 3 modifiers (enhanced, reduced, buffed, debuffed, strengthened, damaged). Eg: longer thread to grapple. The same methods set_ability(), has_ability() can be used from the game, and they will behave differently depending if the player is involved in a StoryQuest or not.
Consider flags ABILITY_A as "repel", ABILITY_B as "grapple", and ABILITY_B_MODIFIER_1 as "longer hook" modifier for grapple.
- Grant "repel" at the beginning of ink_combat_round_1 - Grant "grapple" at the beginning of grappling_hook_start - Grant "longer thread" when collecting the powerup in grappling_hook_powerup - Grant "longer thread" when collecting the powerup in void_grappling_round_2 (although it should be already given at this point) - Remove hacky way to set longer thread
Previously the current scene was persisted as part of the quest state. When you return to Fray's End after completing a trio of Sokobans, all quest state is erased from the saved data, meaning that the current scene path is lost. As a result, if you: - Complete a quest - Complete all three Sokobans & return to Fray's End - Exit the game - Relaunch the game then you were previously offered the chance to Continue. However this would try to change scene to empty string, which fails and reloads the title screen. Fix this in two ways: 1. Persist the current scene as part of the global state, not as part of the quest state. 2. Only offer the chance to continue a saved game if the current scene is known. Add some assertions at relevant points. Resolves #1946
Introduce a QuestTeleporter that, when entered, starts a quest. Add staging areas representing the Song Sanctuary and Linenville with QuestTeleporters to the musician quest and the void quest respectively. Take the player back to a defined spawn point when they abandon a quest, rather than to Fray's End. Save progress within each quest so that if a quest is abandoned then resumed, the player picks up where they left off. Add an overworld, a zoomed-out space for fast travel between regions of the world. Link Fray's End to the Song Sanctuary and Linenville. Gate access to Linenville (represented by the temple) with a blocking area of void, removed when you complete the musician quest. Gate access to a third island by grappling, enabled only when the void quest is complete. (Imagine that the placeholder quest can be accessed here.) Remove the LoreQuest Elder's storybook. Have them give you directions to the next quest. Resolves #2021
|
Play this branch at https://play.threadbare.game/branches/endlessm/overworld-abilities-remix/. (This launches the game from the start, not directly at the change(s) in this pull request.) |
Collaborator
Author
|
@JoniCeceri I added a very basic quest separator screen to this remix. Thanks for the idea! recording.webmMore ideas from @JoniCeceri for additions:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a remix of 2 other changes: the overworld prototype and the player modes -> simultaneous player abilities refactor.