Fix Magic Guard activation against Rough Skin (#9516)

This commit is contained in:
Alex 2026-03-14 07:47:58 +01:00 committed by GitHub
parent 5714ee6758
commit 9e8272da39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 3 deletions

View File

@ -4038,9 +4038,16 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, enum BattlerId battler, enum
&& IsBattlerTurnDamaged(gBattlerTarget, EXCLUDING_SUBSTITUTES)
&& !CanBattlerAvoidContactEffects(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerAttacker), GetBattlerHoldEffect(gBattlerAttacker), move))
{
SetPassiveDamageAmount(gBattlerAttacker, GetNonDynamaxMaxHP(gBattlerAttacker) / (B_ROUGH_SKIN_DMG >= GEN_4 ? 8 : 16));
PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility);
BattleScriptCall(BattleScript_RoughSkinActivates);
if (!IsAbilityAndRecord(gBattlerAttacker, GetBattlerAbility(gBattlerAttacker), ABILITY_MAGIC_GUARD))
{
PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility);
SetPassiveDamageAmount(gBattlerAttacker, GetNonDynamaxMaxHP(gBattlerAttacker) / (B_ROUGH_SKIN_DMG >= GEN_4 ? 8 : 16));
BattleScriptCall(BattleScript_RoughSkinActivates);
}
else
{
BattleScriptCall(BattleScript_AbilityPopUp);
}
effect++;
}
break;

View File

@ -44,3 +44,19 @@ SINGLE_BATTLE_TEST("Magic Guard does not ignore speed stat changes caused by par
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
}
}
SINGLE_BATTLE_TEST("Magic Guard prevents Rough Skin damage")
{
GIVEN {
ASSUME(MoveMakesContact(MOVE_POUND));
PLAYER(SPECIES_CLEFABLE) { Ability(ABILITY_MAGIC_GUARD); }
OPPONENT(SPECIES_CARVANHA) { Ability(ABILITY_ROUGH_SKIN); }
} WHEN {
TURN { MOVE(player, MOVE_POUND); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, player);
HP_BAR(opponent);
ABILITY_POPUP(opponent, ABILITY_ROUGH_SKIN);
NOT HP_BAR(player);
}
}