From 05e58c70e6d62a7055e37303ada565018a237974 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Tue, 21 May 2024 15:19:39 -0400 Subject: [PATCH] Improved GetTypeEffectiveness check --- src/battle_util.c | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 81db6c94ed..c24d3cd817 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10324,32 +10324,21 @@ uq4_12_t GetTypeEffectiveness(struct Pokemon *mon, u8 moveType) if (type2 != type1) MulByTypeEffectiveness(&modifier, MOVE_POUND, moveType, 0, type2, 0, FALSE); - if (abilityDef == ABILITY_LEVITATE && moveType == TYPE_GROUND) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_WONDER_GUARD && modifier <= UQ_4_12(1.0)) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_FLASH_FIRE && moveType == TYPE_FIRE) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_LIGHTNING_ROD && moveType == TYPE_ELECTRIC) // TODO: Add future Lightning Rod config - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_VOLT_ABSORB && moveType == TYPE_ELECTRIC) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_MOTOR_DRIVE && moveType == TYPE_ELECTRIC) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_MOTOR_DRIVE && moveType == TYPE_ELECTRIC) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_WATER_ABSORB && moveType == TYPE_WATER) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_DRY_SKIN && moveType == TYPE_WATER) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_STORM_DRAIN && moveType == TYPE_WATER) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_SAP_SIPPER && moveType == TYPE_GRASS) - modifier = UQ_4_12(0.0); - else if (abilityDef == ABILITY_EARTH_EATER && moveType == TYPE_GROUND) + if ((modifier <= UQ_4_12(1.0) && abilityDef == ABILITY_WONDER_GUARD) + || (moveType == TYPE_FIRE && abilityDef == ABILITY_FLASH_FIRE) + || (moveType == TYPE_GRASS && abilityDef == ABILITY_SAP_SIPPER) + || (moveType == TYPE_GROUND && (abilityDef == ABILITY_LEVITATE + || abilityDef == ABILITY_EARTH_EATER)) + || (moveType == TYPE_WATER && (abilityDef == ABILITY_WATER_ABSORB + || abilityDef == ABILITY_DRY_SKIN + || abilityDef == ABILITY_STORM_DRAIN)) + || (moveType == TYPE_ELECTRIC && (abilityDef == ABILITY_LIGHTNING_ROD // TODO: Add Gen 3/4 config check + || abilityDef == ABILITY_VOLT_ABSORB + || abilityDef == ABILITY_MOTOR_DRIVE))) + { modifier = UQ_4_12(0.0); + } } - return modifier; }