parent
2716ec5b03
commit
de7a4e2328
2 changed files with 61 additions and 7 deletions
|
@ -12800,7 +12800,11 @@ static void Cmd_trysetencore(void)
|
||||||
{
|
{
|
||||||
gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i];
|
gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i];
|
||||||
gDisableStructs[gBattlerTarget].encoredMovePos = i;
|
gDisableStructs[gBattlerTarget].encoredMovePos = i;
|
||||||
gDisableStructs[gBattlerTarget].encoreTimer = 3;
|
// Encore always lasts 3 turns, but we need to account for a scenario where Encore changes the move during the same turn.
|
||||||
|
if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget))
|
||||||
|
gDisableStructs[gBattlerTarget].encoreTimer = 4;
|
||||||
|
else
|
||||||
|
gDisableStructs[gBattlerTarget].encoreTimer = 3;
|
||||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -6,40 +6,90 @@ ASSUMPTIONS
|
||||||
ASSUME(gMovesInfo[MOVE_ENCORE].effect == EFFECT_ENCORE);
|
ASSUME(gMovesInfo[MOVE_ENCORE].effect == EFFECT_ENCORE);
|
||||||
}
|
}
|
||||||
|
|
||||||
SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 2 turns for player")
|
SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 3 turns for player: Encore used before move")
|
||||||
{
|
{
|
||||||
GIVEN {
|
GIVEN {
|
||||||
PLAYER(SPECIES_WOBBUFFET);
|
PLAYER(SPECIES_WOBBUFFET) { Speed(10); }
|
||||||
OPPONENT(SPECIES_WOBBUFFET);
|
OPPONENT(SPECIES_WOBBUFFET) { Speed(20); }
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_CELEBRATE); }
|
||||||
|
TURN { MOVE(opponent, MOVE_ENCORE); MOVE(player, MOVE_CELEBRATE); }
|
||||||
|
// TURN { FORCED_MOVE(player); }
|
||||||
|
TURN { FORCED_MOVE(player); }
|
||||||
|
TURN { FORCED_MOVE(player); }
|
||||||
|
TURN { MOVE(player, MOVE_SPLASH); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 3 turns for player: Encore used after move")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET) { Speed(20); }
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
|
||||||
} WHEN {
|
} WHEN {
|
||||||
TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_ENCORE); }
|
TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_ENCORE); }
|
||||||
TURN { FORCED_MOVE(player); }
|
TURN { FORCED_MOVE(player); }
|
||||||
TURN { FORCED_MOVE(player); }
|
TURN { FORCED_MOVE(player); }
|
||||||
|
TURN { FORCED_MOVE(player); }
|
||||||
TURN { MOVE(player, MOVE_SPLASH); }
|
TURN { MOVE(player, MOVE_SPLASH); }
|
||||||
} SCENE {
|
} SCENE {
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, opponent);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, opponent);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 2 turns for opponent")
|
SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 3 turns for opponent: Encore used before move")
|
||||||
{
|
{
|
||||||
GIVEN {
|
GIVEN {
|
||||||
PLAYER(SPECIES_WOBBUFFET);
|
PLAYER(SPECIES_WOBBUFFET) { Speed(20); }
|
||||||
OPPONENT(SPECIES_WOBBUFFET);
|
OPPONENT(SPECIES_WOBBUFFET) { Speed(10); }
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_CELEBRATE); }
|
||||||
|
TURN { MOVE(player, MOVE_ENCORE); MOVE(opponent, MOVE_CELEBRATE); }
|
||||||
|
// TURN { FORCED_MOVE(opponent); }
|
||||||
|
TURN { FORCED_MOVE(opponent); }
|
||||||
|
TURN { FORCED_MOVE(opponent); }
|
||||||
|
TURN { MOVE(opponent, MOVE_SPLASH); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, player);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, opponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 3 turns for opponent: Encore used after move")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET) { Speed(10); }
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET) { Speed(20); }
|
||||||
} WHEN {
|
} WHEN {
|
||||||
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_ENCORE); }
|
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_ENCORE); }
|
||||||
TURN { FORCED_MOVE(opponent); }
|
TURN { FORCED_MOVE(opponent); }
|
||||||
TURN { FORCED_MOVE(opponent); }
|
TURN { FORCED_MOVE(opponent); }
|
||||||
|
TURN { FORCED_MOVE(opponent); }
|
||||||
TURN { MOVE(opponent, MOVE_SPLASH); }
|
TURN { MOVE(opponent, MOVE_SPLASH); }
|
||||||
} SCENE {
|
} SCENE {
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, player);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, opponent);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, opponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue