Fixes hazards not respecting tera types (#6431)

This commit is contained in:
Alex 2025-03-17 03:05:21 +01:00 committed by GitHub
parent ddab689a07
commit bd2d9f63ea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 3 deletions

View File

@ -10892,11 +10892,11 @@ s32 GetStealthHazardDamageByTypesAndHP(enum TypeSideHazard hazardType, u8 type1,
s32 GetStealthHazardDamage(enum TypeSideHazard hazardType, u32 battler)
{
u8 type1 = gBattleMons[battler].types[0];
u8 type2 = gBattleMons[battler].types[1];
u32 types[3];
GetBattlerTypes(battler, FALSE, types);
u32 maxHp = gBattleMons[battler].maxHP;
return GetStealthHazardDamageByTypesAndHP(hazardType, type1, type2, maxHp);
return GetStealthHazardDamageByTypesAndHP(hazardType, types[0], types[1], maxHp);
}
bool32 IsPartnerMonFromSameTrainer(u32 battler)

View File

@ -73,3 +73,30 @@ DOUBLE_BATTLE_TEST("Stealth Rock damages the correct pokemon when Eject Button i
EXPECT_EQ(opponentLeft->hp, opponentLeft->maxHP);
}
}
SINGLE_BATTLE_TEST("Stealth Rock damage terastalized mons with the correct amount of damage", s16 damage)
{
u32 tera;
PARAMETRIZE { tera = FALSE; }
PARAMETRIZE { tera = TRUE; }
GIVEN {
PLAYER(SPECIES_CHARIZARD) { TeraType(TYPE_NORMAL); }
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
if (tera == TRUE)
TURN { MOVE(opponent, MOVE_STEALTH_ROCK); MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); }
else
TURN { MOVE(opponent, MOVE_STEALTH_ROCK); MOVE(player, MOVE_CELEBRATE); }
TURN { SWITCH(player, 1); }
TURN { SWITCH(player, 0); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponent);
HP_BAR(player);
HP_BAR(player, captureDamage: &results[i].damage);
} FINALLY {
EXPECT_GT(results[0].damage, results[1].damage);
}
}