Fixes Gulp Missile crash on targets that can be statused (#9179)
This commit is contained in:
parent
1e7208dfca
commit
ce15e5486d
@ -5321,9 +5321,7 @@ BattleScript_GulpMissileNoDmgGorging:
|
||||
handleformchange BS_TARGET, 0
|
||||
playanimation BS_TARGET, B_ANIM_FORM_CHANGE
|
||||
waitanimation
|
||||
swapattackerwithtarget
|
||||
seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_PARALYSIS
|
||||
swapattackerwithtarget
|
||||
seteffectprimary BS_TARGET, BS_ATTACKER, MOVE_EFFECT_PARALYSIS
|
||||
return
|
||||
BattleScript_GulpMissileNoSecondEffectGorging:
|
||||
handleformchange BS_TARGET, 0
|
||||
@ -5353,7 +5351,7 @@ BattleScript_GulpMissileNoDmgGulping:
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_GulpMissileGulpingEnd:
|
||||
swapattackerwithtarget @ restore the battlers, just in case
|
||||
swapattackerwithtarget
|
||||
return
|
||||
BattleScript_GulpMissileNoSecondEffectGulping:
|
||||
handleformchange BS_TARGET, 0
|
||||
|
||||
@ -3108,7 +3108,9 @@ void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, c
|
||||
case MOVE_EFFECT_TOXIC:
|
||||
case MOVE_EFFECT_FROSTBITE:
|
||||
if (IsSafeguardProtected(gBattlerAttacker, gEffectBattler, GetBattlerAbility(gBattlerAttacker)) && !primary)
|
||||
{
|
||||
gBattlescriptCurrInstr = battleScript;
|
||||
}
|
||||
else if (CanSetNonVolatileStatus(
|
||||
gBattlerAttacker,
|
||||
gEffectBattler,
|
||||
@ -3116,7 +3118,13 @@ void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, c
|
||||
battlerAbility,
|
||||
moveEffect,
|
||||
CHECK_TRIGGER))
|
||||
{
|
||||
SetNonVolatileStatus(gEffectBattler, moveEffect, battleScript, TRIGGER_ON_MOVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattlescriptCurrInstr = battleScript;
|
||||
}
|
||||
break;
|
||||
case MOVE_EFFECT_CONFUSION:
|
||||
if (!CanBeConfused(gEffectBattler)
|
||||
|
||||
@ -201,3 +201,30 @@ SINGLE_BATTLE_TEST("Gulp Missile triggered by explosion doesn't freeze the game"
|
||||
TURN { MOVE(opponent, MOVE_SURF); MOVE(player, MOVE_EXPLOSION); }
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("(Gulp Missile) Cramorant in Gorging damages an electric type without paralysing")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_CRAMORANT) { HP(120); MaxHP(250); Ability(ABILITY_GULP_MISSILE); }
|
||||
OPPONENT(SPECIES_EELEKTROSS);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SURF); MOVE(opponent, MOVE_SCRATCH); }
|
||||
TURN { MOVE(player, MOVE_SCRATCH); MOVE(opponent, MOVE_SCRATCH); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, player);
|
||||
HP_BAR(opponent);
|
||||
ABILITY_POPUP(player, ABILITY_GULP_MISSILE);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponent);
|
||||
HP_BAR(player);
|
||||
ABILITY_POPUP(player, ABILITY_GULP_MISSILE);
|
||||
HP_BAR(opponent);
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent);
|
||||
STATUS_ICON(opponent, paralysis: TRUE);
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player);
|
||||
HP_BAR(opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponent);
|
||||
HP_BAR(player);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user