Fixed Transistor damage calculation test failing when GEN_LATEST is less than GEN_9 (#7577)
This commit is contained in:
parent
60f5f3302d
commit
7d459fd6dc
@ -29,6 +29,7 @@ enum GenConfigTag
|
||||
GEN_SNOW_WARNING,
|
||||
GEN_ALLY_SWITCH_FAIL_CHANCE,
|
||||
GEN_DREAM_EATER_LIQUID_OOZE,
|
||||
GEN_CONFIG_TRANSISTOR_BOOST,
|
||||
GEN_CONFIG_COUNT
|
||||
};
|
||||
|
||||
|
||||
@ -32,6 +32,7 @@ static const u8 sGenerationalChanges[GEN_CONFIG_COUNT] =
|
||||
[GEN_SNOW_WARNING] = B_SNOW_WARNING,
|
||||
[GEN_ALLY_SWITCH_FAIL_CHANCE] = B_ALLY_SWITCH_FAIL_CHANCE,
|
||||
[GEN_DREAM_EATER_LIQUID_OOZE] = B_DREAM_EATER_LIQUID_OOZE,
|
||||
[GEN_CONFIG_TRANSISTOR_BOOST] = B_TRANSISTOR_BOOST,
|
||||
};
|
||||
|
||||
#if TESTING
|
||||
|
||||
@ -8706,7 +8706,7 @@ static inline u32 CalcAttackStat(struct DamageContext *ctx)
|
||||
case ABILITY_TRANSISTOR:
|
||||
if (moveType == TYPE_ELECTRIC)
|
||||
{
|
||||
if (B_TRANSISTOR_BOOST >= GEN_9)
|
||||
if (GetGenConfig(GEN_CONFIG_TRANSISTOR_BOOST) >= GEN_9)
|
||||
modifier = uq4_12_multiply(modifier, UQ_4_12(1.3));
|
||||
else
|
||||
modifier = uq4_12_multiply(modifier, UQ_4_12(1.5));
|
||||
|
||||
@ -15,6 +15,7 @@ AI_SINGLE_BATTLE_TEST("AI will not try to lower opposing stats if target is prot
|
||||
PARAMETRIZE { ability = ABILITY_CLEAR_BODY; species = SPECIES_BELDUM; move = MOVE_NOBLE_ROAR; }
|
||||
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_ILLUMINATE_EFFECT, GEN_9);
|
||||
AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_OMNISCIENT);
|
||||
PLAYER(species) { Ability(ability); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_TACKLE, move); }
|
||||
|
||||
@ -231,23 +231,36 @@ SINGLE_BATTLE_TEST("Gem boosted Damage calculation")
|
||||
|
||||
#define NUM_DAMAGE_SPREADS (DMG_ROLL_PERCENT_HI - DMG_ROLL_PERCENT_LO) + 1
|
||||
|
||||
static const s16 sThunderShockTransistorSpread[] = { 54, 55, 56, 57, 57, 58, 59, 60, 60, 60, 61, 62, 63, 63, 64, 65 };
|
||||
static const s16 sThunderShockTransistorSpreadGen9[] = { 54, 55, 56, 57, 57, 58, 59, 60, 60, 60, 61, 62, 63, 63, 64, 65 };
|
||||
static const s16 sThunderShockTransistorSpreadGen8[] = { 63, 64, 65, 66, 66, 67, 68, 69, 69, 70, 71, 72, 72, 73, 74, 75 };
|
||||
static const s16 sThunderShockRegularSpread[] = { 42, 42, 43, 43, 44, 45, 45, 45, 46, 46, 47, 48, 48, 48, 49, 50 };
|
||||
static const s16 sWildChargeTransistorSpread[] = { 123, 124, 126, 127, 129, 130, 132, 133, 135, 136, 138, 139, 141, 142, 144, 145 };
|
||||
static const s16 sWildChargeTransistorSpreadGen9[] = { 123, 124, 126, 127, 129, 130, 132, 133, 135, 136, 138, 139, 141, 142, 144, 145 };
|
||||
static const s16 sWildChargeTransistorSpreadGen8[] = { 141, 143, 145, 147, 148, 150, 151, 153, 155, 156, 158, 160, 162, 163, 165, 167 };
|
||||
static const s16 sWildChargeRegularSpread[] = { 94, 96, 96, 98, 99, 100, 101, 102, 103, 105, 105, 107, 108, 109, 110, 111 };
|
||||
|
||||
DOUBLE_BATTLE_TEST("Transistor Damage calculation", s16 damage)
|
||||
{
|
||||
s16 expectedDamageTransistorSpec = 0, expectedDamageRegularPhys = 0, expectedDamageRegularSpec = 0, expectedDamageTransistorPhys = 0;
|
||||
s16 damagePlayerLeft, damagePlayerRight, damageOpponentLeft, damageOpponentRight;
|
||||
u32 gen = 0;
|
||||
for (u32 spread = 0; spread < 16; ++spread) {
|
||||
PARAMETRIZE { expectedDamageTransistorSpec = sThunderShockTransistorSpread[spread],
|
||||
PARAMETRIZE { gen = GEN_9,
|
||||
expectedDamageTransistorSpec = sThunderShockTransistorSpreadGen9[spread],
|
||||
expectedDamageRegularSpec = sThunderShockRegularSpread[spread];
|
||||
expectedDamageTransistorPhys = sWildChargeTransistorSpreadGen9[spread],
|
||||
expectedDamageRegularPhys = sWildChargeRegularSpread[spread];
|
||||
}
|
||||
}
|
||||
for (u32 spread = 0; spread < 16; ++spread) {
|
||||
PARAMETRIZE { gen = GEN_8,
|
||||
expectedDamageTransistorSpec = sThunderShockTransistorSpreadGen8[spread],
|
||||
expectedDamageRegularSpec = sThunderShockRegularSpread[spread],
|
||||
expectedDamageTransistorPhys = sWildChargeTransistorSpread[spread],
|
||||
expectedDamageTransistorPhys = sWildChargeTransistorSpreadGen8[spread],
|
||||
expectedDamageRegularPhys = sWildChargeRegularSpread[spread];
|
||||
}
|
||||
}
|
||||
GIVEN {
|
||||
WITH_CONFIG(GEN_CONFIG_TRANSISTOR_BOOST, gen);
|
||||
ASSUME(GetMoveType(MOVE_WILD_CHARGE) == TYPE_ELECTRIC);
|
||||
ASSUME(GetMoveType(MOVE_THUNDER_SHOCK) == TYPE_ELECTRIC);
|
||||
ASSUME(GetMoveCategory(MOVE_WILD_CHARGE) == DAMAGE_CATEGORY_PHYSICAL);
|
||||
@ -260,10 +273,10 @@ DOUBLE_BATTLE_TEST("Transistor Damage calculation", s16 damage)
|
||||
OPPONENT(SPECIES_REGIELEKI) { Ability(ABILITY_TRANSISTOR); }
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(playerLeft, MOVE_THUNDER_SHOCK, target: opponentLeft, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - i));
|
||||
MOVE(playerRight, MOVE_THUNDER_SHOCK, target: opponentRight, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - i));
|
||||
MOVE(opponentLeft, MOVE_WILD_CHARGE, target: playerLeft, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - i));
|
||||
MOVE(opponentRight, MOVE_WILD_CHARGE, target: playerRight, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - i));
|
||||
MOVE(playerLeft, MOVE_THUNDER_SHOCK, target: opponentLeft, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - (i % 16)));
|
||||
MOVE(playerRight, MOVE_THUNDER_SHOCK, target: opponentRight, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - (i % 16)));
|
||||
MOVE(opponentLeft, MOVE_WILD_CHARGE, target: playerLeft, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - (i % 16)));
|
||||
MOVE(opponentRight, MOVE_WILD_CHARGE, target: playerRight, WITH_RNG(RNG_DAMAGE_MODIFIER, 15 - (i % 16)));
|
||||
}
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDER_SHOCK, playerLeft);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user