Fixes flung items sometimes being blocked by Unnerve (#8114)

This commit is contained in:
PhallenTree 2025-11-02 19:31:51 +00:00 committed by GitHub
parent 51a6081c8e
commit 5b738edd4b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View File

@ -1067,7 +1067,12 @@ static enum ItemEffect TrySetMicleBerry(u32 battler, u32 itemId, ActivationTimin
enum ItemEffect ItemBattleEffects(u32 itemBattler, u32 battler, enum HoldEffect holdEffect, ActivationTiming timing)
{
enum ItemEffect effect = ITEM_NO_EFFECT;
u32 item = (timing == IsOnBerryActivation) ? gLastUsedItem : gBattleMons[itemBattler].item;
u32 item;
if (timing == IsOnBerryActivation || timing == IsOnFlingActivation)
item = gLastUsedItem;
else
item = gBattleMons[itemBattler].item;
if (holdEffect == HOLD_EFFECT_NONE
|| !timing(holdEffect)

View File

@ -153,6 +153,23 @@ SINGLE_BATTLE_TEST("Fling - Item is lost when target protects itself")
}
}
SINGLE_BATTLE_TEST("Fling - Item does not get blocked by Unnerve if it isn't a berry")
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_TAUNT) == EFFECT_TAUNT);
PLAYER(SPECIES_CALYREX) { Item(ITEM_MENTAL_HERB); Ability(ABILITY_UNNERVE); }
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_ORAN_BERRY); }
} WHEN {
TURN { MOVE(player, MOVE_TAUNT); MOVE(opponent, MOVE_SCRATCH); }
TURN { MOVE(player, MOVE_FLING); MOVE(opponent, MOVE_SCRATCH); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_TAUNT, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_FLING, player);
HP_BAR(opponent);
MESSAGE("The opposing Wobbuffet's Taunt wore off!");
}
}
SINGLE_BATTLE_TEST("Fling doesn't consume the item if Pokémon is asleep/frozen/paralyzed")
{
u32 status;