From 38964e4f0a7e556a68ed6e995de6ea325f92a951 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Fri, 25 Jul 2025 19:26:12 +0200 Subject: [PATCH] Fixes Wandering Spirit overwriting battlers (#7407) --- data/battle_scripts_1.s | 4 ++++ test/battle/hold_effect/eject_button.c | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 6d36b2b530..4db067a4b9 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8189,6 +8189,8 @@ BattleScript_MummyActivates:: return BattleScript_WanderingSpiritActivates:: + saveattacker + savetarget .if B_ABILITY_POP_UP == TRUE copybyte gBattlerAbility, gBattlerTarget sethword sABILITY_OVERWRITE, ABILITY_WANDERING_SPIRIT @@ -8205,6 +8207,8 @@ BattleScript_WanderingSpiritActivates:: jumpiffainted BS_TARGET, TRUE, BattleScript_WanderingSpiritActivatesRet switchinabilities BS_TARGET BattleScript_WanderingSpiritActivatesRet: + restoreattacker + restoretarget return BattleScript_TargetsStatWasMaxedOut:: diff --git a/test/battle/hold_effect/eject_button.c b/test/battle/hold_effect/eject_button.c index 9dd73833a5..681858605b 100644 --- a/test/battle/hold_effect/eject_button.c +++ b/test/battle/hold_effect/eject_button.c @@ -232,3 +232,21 @@ DOUBLE_BATTLE_TEST("Eject Button activation will not trigger an attack from the } } } + +SINGLE_BATTLE_TEST("Eject Button activates after Wandring Spirit") +{ + GIVEN { + PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_YAMASK_GALAR) { Item(ITEM_EJECT_BUTTON); Ability(ABILITY_WANDERING_SPIRIT); } + } WHEN { + TURN { + SWITCH(opponent, 1); + MOVE(player, MOVE_DRAGON_CLAW); + SEND_OUT(opponent, 0); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_CLAW, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); + } +}