-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Move] Partially Implement Instruct #4857
Conversation
TODO: - [ ] Still need to make in-game unit tests (i haaaaate making tests) - [ ] subsequent move calls have no messages - [ ] probably other jank i didn't fix yet
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
stopped reviewing after seeing a lot of TODOs, maybe place this in draft for now if its not ready for review - or do you intend them to be in a separate PR?
also is there a reason why this is not using |
My thought is that those fixes can probably go in a separate PR. This is partially implementing it after all!
Testing it again now, but the intended behavior is that Instruct itself will succeed but the called move will fail. |
no problem 👍
ok so I've misunderstood the move, re-read the move description and watched some clips - (mb messed up and edited your comment instead of quote-replying- hope I put it back right) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found an issue where because Instruct was causing the Pokémon to use 2 moves in a single turn, the firstHit
value was false in MoveEffectPhase
for the second move when it shouldn't be. I fixed it for when the Instruct user moves after the target in the same turn, but the issue will still happen if the Instruct user moves first. Still need to look into that scenario.
Also fixed up the tests.
Since there were too many changes to reasonably use GitHub's suggestions feature, I made a PR instead: Bertie690#1
Cool. When do you want me to merge it? |
Co-authored-by: innerthunder <[email protected]>
Fixed test passing regardless of intended result
god i hate interacting with the spaghetti that is `MoveEffectPhase` but it's done
@Bertie690 what's the status on the locale PR for this one? Seems like it's still marked as draft |
AFAIK, it seems the non-English locale keys haven't been added yet. |
Well yes, since the PR for the English key is still in draft there is no chance translations have been done. Why is it in draft is my question, is it not ready and needed for this PR ? pagefaultgames/pokerogue-locales#47 edit: to clarify, the english PR needs to go in first before the translations can start happening with the dedicated tool |
Sorry for the accidental closure of the PR 💀 |
Locales PR (merged)
What are the changes the user will see?
Instruct will actually work and calls the target's last used move correctly.
It currently does not play nice with Gigaton Hammer, Blood Moon and Torment, but those are related to the janky implementation of those moves currently. #4289
Also pledge jank happens currently.
Also the enemy cannot really use it atm but that's a topic for the upcoming AI reworks!!!
Why am I making these changes?
Because I want funny klefki prankster instructing power trick shuckle rock slide.
What are the changes from a developer perspective?
Added
RepeatMoveAttr
for moves that force targets to repeat moves themselves. (This is distinct fromCopyMoveAttr
which has the user copy a target's previous move)Screenshots/Videos
Instruct repeating an ally's rock slide & subsequently failing on enemy Unown due to it not having made moves yet:
https://github.com/user-attachments/assets/d4ee43d5-d324-4f5e-824d-76aac5e26ea1
It sorta works on pledges... a bit
https://github.com/user-attachments/assets/60490c80-57bd-43cd-8d0b-66ea511803bb
Instruct fails when used on Instruct (Full list of moves on Bulbapedia):
https://github.com/user-attachments/assets/b9a22fa2-ab67-4d1d-bd6b-81b855fa545a
How to test the changes?
Run
npm run test instruct
Checklist
beta
as my base branchnpm run test
)