[DRAFT] Fix Normalize not boosting Normal type moves if they were already Normal type (#7060)

Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
This commit is contained in:
i0brendan0 2025-06-06 15:00:33 -05:00 committed by GitHub
parent dc279f14ba
commit 67f7ad6b1e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 55 additions and 25 deletions

View File

@ -6014,7 +6014,9 @@ u32 GetDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, enum MonState
gBattleStruct->ateBoost[battler] = TRUE;
return ateType;
}
else if (moveType != TYPE_NORMAL
else if (moveEffect != EFFECT_CHANGE_TYPE_ON_ITEM
&& moveEffect != EFFECT_TERRAIN_PULSE
&& moveEffect != EFFECT_NATURAL_GIFT
&& moveEffect != EFFECT_HIDDEN_POWER
&& moveEffect != EFFECT_WEATHER_BALL
&& ability == ABILITY_NORMALIZE

View File

@ -80,40 +80,52 @@ SINGLE_BATTLE_TEST("Normalize still makes Freeze-Dry do super effective damage t
}
}
SINGLE_BATTLE_TEST("Normalize boosts power of unaffected moves by 20% (Gen7+)", s16 damage)
SINGLE_BATTLE_TEST("Normalize doesn't boost power of unaffected moves by 20% (< Gen7)", s16 damage)
{
u32 ability, genConfig;
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; genConfig = GEN_7; }
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; genConfig = GEN_6; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; genConfig = GEN_7; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; genConfig = GEN_6; }
u32 ability;
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; }
GIVEN {
WITH_CONFIG(GEN_CONFIG_ATE_MULTIPLIER, genConfig);
PLAYER(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_TACKLE); }
WITH_CONFIG(GEN_CONFIG_ATE_MULTIPLIER, GEN_6);
PLAYER(SPECIES_DELCATTY) { Ability(ability); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_TACKLE); }
TURN { MOVE(player, MOVE_POUND); }
} SCENE {
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
if (genConfig >= GEN_7)
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.2), results[2].damage); // Ate
else
EXPECT_EQ(results[1].damage, results[3].damage); // No boost
EXPECT_EQ(results[0].damage, results[1].damage); // No boost
}
}
SINGLE_BATTLE_TEST("Normalize boosts power of affected moves by 20% (Gen7+)", s16 damage)
SINGLE_BATTLE_TEST("Normalize boosts power of unaffected moves by 20% (Gen7+)", s16 damage)
{
u32 ability, genConfig;
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; genConfig = GEN_7; }
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; genConfig = GEN_6; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; genConfig = GEN_7; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; genConfig = GEN_6; }
u32 ability;
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; }
GIVEN {
WITH_CONFIG(GEN_CONFIG_ATE_MULTIPLIER, genConfig);
WITH_CONFIG(GEN_CONFIG_ATE_MULTIPLIER, GEN_7);
PLAYER(SPECIES_DELCATTY) { Ability(ability); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_POUND); }
} SCENE {
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
EXPECT_MUL_EQ(results[0].damage, UQ_4_12(1.2), results[1].damage); // Ate
}
}
SINGLE_BATTLE_TEST("Normalize doesn't boost power of affected moves by 20% (< Gen7)", s16 damage)
{
u32 ability;
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; }
GIVEN {
WITH_CONFIG(GEN_CONFIG_ATE_MULTIPLIER, GEN_6);
PLAYER(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_WATER_GUN); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
@ -121,10 +133,26 @@ SINGLE_BATTLE_TEST("Normalize boosts power of affected moves by 20% (Gen7+)", s1
} SCENE {
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
if (genConfig >= GEN_7)
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.8), results[2].damage); // STAB + ate
else
EXPECT_MUL_EQ(results[1].damage, Q_4_12(1.5), results[3].damage); // STAB + no ate
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); // STAB + no ate
}
}
SINGLE_BATTLE_TEST("Normalize boosts power of affected moves by 20% (Gen7+)", s16 damage)
{
u32 ability;
PARAMETRIZE { ability = ABILITY_CUTE_CHARM; }
PARAMETRIZE { ability = ABILITY_NORMALIZE; }
GIVEN {
WITH_CONFIG(GEN_CONFIG_ATE_MULTIPLIER, GEN_7);
PLAYER(SPECIES_SKITTY) { Ability(ability); Moves(MOVE_WATER_GUN); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_WATER_GUN); }
} SCENE {
HP_BAR(opponent, captureDamage: &results[i].damage);
} FINALLY {
EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.8), results[1].damage); // STAB + ate
}
}