-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Adds Commander and Order Up #5246
Conversation
Problems with the implementation.
slowTatsu.mp4 |
Things that needs testing for how they should work:
|
it has to be a non transformed user
yes, commander is still triggered
didn't test but I assume it is the same as above
tatsugiri keeps the sub All according to showdown but I assume that this is correct since it is a very viable VGC mechanic. |
I don't know if this is how it's supposed to be. I haven't found any example of this, and Substitute is not represented in the move% for Tatsugiri usage at any point in time. |
this has a bug I can't solve. putting on draft for now |
What's the bug? |
when tatsugiri switches in while an opposing mon attacks with a spread move the attacker and target are switched so it becomes and attack from dozo. |
Ah, yea, that bug... |
Could the actions for the turn be redone/reassigned (whatever the term if) after Dozo switches in? |
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.
when tatsugiri switches in while an opposing mon attacks with a spread move the attacker and target are switched so it becomes and attack from dozo.
Here are tests for this bug:
DOUBLE_BATTLE_TEST("(Commander) Attacker is kept (Dondozo Left Slot)")
{
GIVEN {
ASSUME(gMovesInfo[MOVE_SURF].target == MOVE_TARGET_FOES_AND_ALLY);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_TATSUGIRI) { Ability(ABILITY_COMMANDER); }
PLAYER(SPECIES_DONDOZO);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponentRight, MOVE_TACKLE, target: opponentLeft); }
TURN { SWITCH(playerLeft, 2); MOVE(opponentLeft, MOVE_SURF); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight);
ABILITY_POPUP(playerRight, ABILITY_COMMANDER);
MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft);
HP_BAR(playerLeft);
MESSAGE("Foe Wobbuffet's attack missed!");
HP_BAR(opponentRight);
}
}
DOUBLE_BATTLE_TEST("(Commander) Attacker is kept (Dondozo Right Slot)")
{
GIVEN {
ASSUME(gMovesInfo[MOVE_SURF].target == MOVE_TARGET_FOES_AND_ALLY);
PLAYER(SPECIES_TATSUGIRI) { Ability(ABILITY_COMMANDER); }
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_DONDOZO);
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponentRight, MOVE_TACKLE, target: opponentLeft); }
TURN { SWITCH(playerRight, 2); MOVE(opponentLeft, MOVE_SURF); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight);
ABILITY_POPUP(playerLeft, ABILITY_COMMANDER);
MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!");
MESSAGE("Foe Wobbuffet's attack missed!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft);
HP_BAR(playerRight);
HP_BAR(opponentRight);
}
}
Test 1 fails because "Dondozo's attack missed!" instead of "Foe Wobbuffet's attack missed!".
Test 2 fails because the animation for Surf is played on the player's side of the field.
Confirmed after the following changes both pass and none of the other tests fail (that didn't fail before).
Note that the Tatsugiri (the mon with Commander) is also gBattleScripting.battler
therefore there is no need for both gBattlerAttacker
and gBattlerTarget
to be used. Since the swap of target and attacker is gone, the bug should be fixed.
Right, I'm stupid. Thanks for the help! I'll update the branch later. |
Ready for review again. |
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.
Adding this here as to not forget it
Dragon Darts is broken currently. dartsCommands.mp4 |
|
Added Dragon Darts test made by hedara. One of them doesn't pass because because of incomplete turn but works fine in game. I'm not sure what is up there. |
hedara fixed the test! Ready for review |
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.
.
Ready for re-review |
c47ad00
to
5be10ed
Compare
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.
lgtm. just needs hedara's ok.
please wait for Phallen to give the okay as well |
Looks good to me! |
Hopefully the last edge case. |
5da0a87
to
30eecf2
Compare
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.
Looks good now, all tests passed locally.
Closes #2764
Closes #2490
I'll do clean up once the review is done.
Also this will need proper in-game testing