Fixes Parting Shot / Eject Pack interaction
This commit is contained in:
parent
adb4a1ff48
commit
c2abcab3d6
3 changed files with 37 additions and 14 deletions
|
@ -6461,18 +6461,22 @@ static void Cmd_moveend(void)
|
|||
gLastUsedItem = gBattleMons[battler].item;
|
||||
if (gMovesInfo[gCurrentMove].effect == EFFECT_HIT_ESCAPE)
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEnd; // Prevent user switch-in selection
|
||||
effect = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattleStruct->usedEjectItem |= 1u << battler;
|
||||
if (ejectButtonBattlers & (1u << battler))
|
||||
{
|
||||
effect = TRUE;
|
||||
gBattleStruct->usedEjectItem |= 1u << battler;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EjectButtonActivates;
|
||||
AI_DATA->ejectButtonSwitch = TRUE;
|
||||
}
|
||||
else // Eject Pack
|
||||
{
|
||||
if (!(gBattleResources->flags->flags[gBattlerTarget] & RESOURCE_FLAG_EMERGENCY_EXIT))
|
||||
if (!(gBattleResources->flags->flags[gBattlerTarget] & RESOURCE_FLAG_EMERGENCY_EXIT)
|
||||
&& !(gMovesInfo[gCurrentMove].effect == EFFECT_PARTING_SHOT && CanBattlerSwitch(gBattlerAttacker)))
|
||||
{
|
||||
effect = TRUE;
|
||||
gBattleStruct->usedEjectItem |= 1u << battler;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EjectPackActivates;
|
||||
AI_DATA->ejectPackSwitch = TRUE;
|
||||
gSpecialStatuses[gBattlerAttacker].preventLifeOrbDamage = TRUE;
|
||||
|
|
|
@ -102,3 +102,22 @@ SINGLE_BATTLE_TEST("Eject Pack activates once intimidate mon switches in")
|
|||
MESSAGE("Wobbuffet is switched out with the Eject Pack!");
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Eject Pack will not activate if Parting Shot user can switch out")
|
||||
{
|
||||
ASSUME(gItemsInfo[ITEM_EJECT_PACK].holdEffect == HOLD_EFFECT_EJECT_PACK);
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_EJECT_PACK); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponent, MOVE_PARTING_SHOT); SEND_OUT(opponent, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_PARTING_SHOT, opponent);
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
|
||||
MESSAGE("Wobbuffet is switched out with the Eject Pack!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ ASSUMPTIONS
|
|||
ASSUME(gMovesInfo[MOVE_U_TURN].effect == EFFECT_HIT_ESCAPE);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn switches the user out")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn switches the user out")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
@ -21,7 +21,7 @@ SINGLE_BATTLE_TEST("U-turn switches the user out")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn does not switch the user out if the battle ends")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn does not switch the user out if the battle ends")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("U-turn does not switch the user out if the battle ends")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn does not switch the user out if no replacements")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn does not switch the user out if no replacements")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
@ -48,7 +48,7 @@ SINGLE_BATTLE_TEST("U-turn does not switch the user out if no replacements")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn does not switch the user out if replacements fainted")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn does not switch the user out if replacements fainted")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
@ -62,7 +62,7 @@ SINGLE_BATTLE_TEST("U-turn does not switch the user out if replacements fainted"
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn does not switch the user out if Wimp Out activates")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn does not switch the user out if Wimp Out activates")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
@ -79,7 +79,7 @@ SINGLE_BATTLE_TEST("U-turn does not switch the user out if Wimp Out activates")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn switches the user out if Wimp Out fails to activate")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn switches the user out if Wimp Out fails to activate")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
|
@ -95,7 +95,7 @@ SINGLE_BATTLE_TEST("U-turn switches the user out if Wimp Out fails to activate")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("U-turn switches the user out after Ice Face activates")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: U-turn switches the user out after Ice Face activates")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_U_TURN].category == DAMAGE_CATEGORY_PHYSICAL);
|
||||
|
@ -113,7 +113,7 @@ SINGLE_BATTLE_TEST("U-turn switches the user out after Ice Face activates")
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Held items are consumed immediately after a mon switched in by U-turn and Intimidate activates after it: player side")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: Held items are consumed immediately after a mon switched in by U-turn and Intimidate activates after it: player side")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); };
|
||||
|
@ -136,7 +136,7 @@ SINGLE_BATTLE_TEST("Held items are consumed immediately after a mon switched in
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Held items are consumed immediately after a mon switched in by U-turn and Intimidate activates after it: opposing side")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: Held items are consumed immediately after a mon switched in by U-turn and Intimidate activates after it: opposing side")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); };
|
||||
|
@ -159,7 +159,7 @@ SINGLE_BATTLE_TEST("Held items are consumed immediately after a mon switched in
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Electric Seed boost is received by the right pokemon after U-turn and Intimidate")
|
||||
SINGLE_BATTLE_TEST("Hit Escape: Electric Seed boost is received by the right pokemon after U-turn and Intimidate")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); };
|
||||
|
|
Loading…
Reference in a new issue