-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[Refactor] Rewrite logic to switch, summon and recall Pokemon #6611
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
Bertie690
wants to merge
18
commits into
pagefaultgames:beta
Choose a base branch
from
Bertie690:switch-refactor
base: beta
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
# Conflicts: # src/phases/encounter-phase.ts # src/phases/mystery-encounter-phases.ts # src/phases/summon-phase.ts
4 tasks
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.
Original poketernity PR
Locales PR
(Removes an unused locale key, low priority)
What are the changes the user will see?
Why am I making these changes?
Inner's stuff (which I wholeheartedly agree with)
The current phase hierarchy for recalling, switching, and summoning Pokemon (namely
ReturnPhase,SwitchPhase,SwitchSummonPhase, andSummonPhase) is extremely convoluted. Logic and data manipulation is woven in between animations composed of hanging Promises and other unmarked async calls.This PR aims to improve the readability and stability of the switch sequence by
My stuff
I really, REALLY HATE our method of queueing start of battle switches.
I\ reworked it
What are the changes from a developer perspective?
Original PR:
SwitchSummonPhaseandReturnPhaseRecallPhase, which plays animations for recalling a Pokemon and removes the Pokemon from the field and is essentially a replacement forReturnPhaseSwitchPhaseto handle all logical aspects of switching, including:SummonPhaseto only contain visual effects related to summoning a Pokemon (WIP)BattleScene: Added a helper method to prompt the Player to select a Pokemon from their party. This is currently only used inSwitchPhase, but may be applied to other instances where the Party UI is required.The end result: Instead of the
SummonPhase>SwitchSummonPhase>ReturnPhasehierarchy, each phase in theRecallPhase>SwitchPhase>SummonPhasesequence is independent and can be scheduled independently. In theory, every sequence where Pokemon are recalled, switched, and/or summoned can be implemented by a combination of one or more of the new phases.Additional changes needed to port over:
Copied over the
Animationsclass from PKTY used to handle showing various animationsAdded helper methods to
PokemonPhase(of dubious quality, but w/e)Screenshots/Videos
TODO
How to test the changes?
The changes in this PR are mainly visual and therefore require manual playtesting.
Checklist
betaas my base branchpnpm test:silent)pnpm test:create) or updated existing tests related to the PR's changes?