mirror of
https://github.com/pret/pokeemerald.git
synced 2026-03-21 17:54:57 -05:00
Fixes U-turn not reseting targetsDone flag (#9411)
This commit is contained in:
parent
87078e355d
commit
c8ce8a2b28
|
|
@ -230,7 +230,7 @@ BattleScript_MoveSwitchPursuitRet:
|
|||
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_MoveSwitchEnd
|
||||
printstring STRINGID_PKMNWENTBACK
|
||||
waitmessage B_WAIT_TIME_SHORT
|
||||
jumpifnopursuitswitchdmg BattleScript_MoveSwitchOpenPartyScreen
|
||||
jumpifnopursuitswitchdmg BattleScript_MoveSwitchOpenPartyScreenRet
|
||||
return
|
||||
|
||||
BattleScript_MoveSwitch::
|
||||
|
|
@ -239,13 +239,17 @@ BattleScript_MoveSwitch::
|
|||
printstring STRINGID_PKMNWENTBACK
|
||||
waitmessage B_WAIT_TIME_SHORT
|
||||
BattleScript_MoveSwitchOpenPartyScreen::
|
||||
call BattleScript_MoveSwitchOpenPartyScreenRet
|
||||
BattleScript_MoveSwitchEnd:
|
||||
end
|
||||
|
||||
BattleScript_MoveSwitchOpenPartyScreenRet:
|
||||
call BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim
|
||||
switchinanim BS_ATTACKER, FALSE, FALSE
|
||||
waitstate
|
||||
switchineffects BS_ATTACKER
|
||||
switchinevents
|
||||
BattleScript_MoveSwitchEnd:
|
||||
end
|
||||
return
|
||||
|
||||
BattleScript_MoveSwitchOpenPartyScreenReturnWithNoAnim:
|
||||
openpartyscreen BS_ATTACKER, BattleScript_MoveSwitchEnd
|
||||
|
|
|
|||
|
|
@ -2364,7 +2364,7 @@ static void SetNonVolatileStatus(enum BattlerId effectBattler, enum MoveEffect e
|
|||
|
||||
static inline bool32 IgnoreTargetingForMoveEffect(enum MoveEffect moveEffect) // Currently only used to determine move effects which happen even if the move's defined effectbattler is fainted
|
||||
{
|
||||
switch (moveEffect)
|
||||
switch (moveEffect)
|
||||
{
|
||||
case MOVE_EFFECT_PAYDAY:
|
||||
case MOVE_EFFECT_BUG_BITE:
|
||||
|
|
@ -2376,7 +2376,7 @@ static inline bool32 IgnoreTargetingForMoveEffect(enum MoveEffect moveEffect) //
|
|||
case MOVE_EFFECT_SANDSTORM:
|
||||
case MOVE_EFFECT_HAIL:
|
||||
case MOVE_EFFECT_MISTY_TERRAIN:
|
||||
case MOVE_EFFECT_GRASSY_TERRAIN:
|
||||
case MOVE_EFFECT_GRASSY_TERRAIN:
|
||||
case MOVE_EFFECT_ELECTRIC_TERRAIN:
|
||||
case MOVE_EFFECT_PSYCHIC_TERRAIN:
|
||||
case MOVE_EFFECT_DEFOG:
|
||||
|
|
@ -2443,7 +2443,7 @@ void SetMoveEffect(enum BattlerId battlerAtk, enum BattlerId effectBattler, enum
|
|||
gBattlescriptCurrInstr = battleScript;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
gBattleScripting.battler = battlerAtk;
|
||||
gEffectBattler = effectBattler;
|
||||
|
||||
|
|
|
|||
|
|
@ -5028,7 +5028,7 @@ u32 IsAbilityPreventingEscape(enum BattlerId battler)
|
|||
{
|
||||
if (battler == battlerDef || IsBattlerAlly(battler, battlerDef))
|
||||
continue;
|
||||
|
||||
|
||||
if (!IsBattlerAlive(battlerDef))
|
||||
continue;
|
||||
|
||||
|
|
|
|||
|
|
@ -958,3 +958,33 @@ DOUBLE_BATTLE_TEST("Wide Guard is still activate even if user is switched out du
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Protect is not ignored after a new mon switched in because of U-Turn")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WYNAUT);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(playerRight, MOVE_PROTECT);
|
||||
MOVE(opponentLeft, MOVE_POUND, target: playerRight);
|
||||
MOVE(opponentRight, MOVE_U_TURN, target: playerLeft);
|
||||
SEND_OUT(opponentRight, 2);
|
||||
}
|
||||
TURN {
|
||||
MOVE(playerLeft, MOVE_DETECT);
|
||||
MOVE(opponentLeft, MOVE_POUND, target: playerRight);
|
||||
MOVE(opponentRight, MOVE_POUND, target: playerLeft);
|
||||
}
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, playerRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, opponentRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_DETECT, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, opponentLeft);
|
||||
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, opponentRight);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user