Improved GetTypeEffectiveness check

This commit is contained in:
Eduardo Quezada 2024-05-21 15:19:39 -04:00
parent 9dab5d5377
commit 05e58c70e6

View File

@ -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;
}