Prevent Incinerate from burning items under Sticky Hold (#9068)

This commit is contained in:
GGbond 2026-02-01 23:55:40 +08:00 committed by GitHub
parent 4d52960780
commit ac37c963ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 27 additions and 2 deletions

View File

@ -3497,8 +3497,9 @@ void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, c
gBattlescriptCurrInstr = battleScript;
break;
case MOVE_EFFECT_INCINERATE:
if ((gBattleMons[gEffectBattler].item >= FIRST_BERRY_INDEX && gBattleMons[gEffectBattler].item <= LAST_BERRY_INDEX)
|| (B_INCINERATE_GEMS >= GEN_6 && GetBattlerHoldEffect(gEffectBattler) == HOLD_EFFECT_GEMS))
if (((gBattleMons[gEffectBattler].item >= FIRST_BERRY_INDEX && gBattleMons[gEffectBattler].item <= LAST_BERRY_INDEX)
|| (B_INCINERATE_GEMS >= GEN_6 && GetBattlerHoldEffect(gEffectBattler) == HOLD_EFFECT_GEMS))
&& battlerAbility != ABILITY_STICKY_HOLD)
{
gLastUsedItem = gBattleMons[gEffectBattler].item;
gBattleMons[gEffectBattler].item = 0;

View File

@ -16,3 +16,27 @@ SINGLE_BATTLE_TEST("Sticky Hold prevents item theft")
}
}
SINGLE_BATTLE_TEST("Sticky Hold prevents Incinerate from destroying berries")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_INCINERATE); }
OPPONENT(SPECIES_GASTRODON) { Ability(ABILITY_STICKY_HOLD); Item(ITEM_CHERI_BERRY); }
} WHEN {
TURN { MOVE(player, MOVE_INCINERATE); }
} THEN {
EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].item, ITEM_CHERI_BERRY);
}
}
SINGLE_BATTLE_TEST("Sticky Hold prevents Incinerate from destroying gems")
{
GIVEN {
WITH_CONFIG(CONFIG_INCINERATE_GEMS, GEN_6);
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_INCINERATE); }
OPPONENT(SPECIES_GASTRODON) { Ability(ABILITY_STICKY_HOLD); Item(ITEM_GHOST_GEM); }
} WHEN {
TURN { MOVE(player, MOVE_INCINERATE); }
} THEN {
EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].item, ITEM_GHOST_GEM);
}
}