Fix terrain checks on DLC moves

Expanding Force and Rising Voltage now boost damage correctly. Expanding Force doesn't hit both targets yet however.
This commit is contained in:
BuffelSaft 2021-11-19 20:20:16 +13:00
parent 86efd69370
commit 48c91d03cd

View file

@ -7263,6 +7263,9 @@ u32 GetMoveTarget(u16 move, u8 setTarget)
if (move == MOVE_CURSE && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_GHOST))
moveTarget = MOVE_TARGET_USER;
if (gBattleMoves[move].effect == EFFECT_EXPANDING_FORCE && IsBattlerTerrainAffected(gBattlerAttacker, STATUS_FIELD_PSYCHIC_TERRAIN))
moveTarget = MOVE_TARGET_BOTH;
switch (moveTarget)
{
case MOVE_TARGET_SELECTED:
@ -7991,17 +7994,11 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef)
basePower *= 2;
break;
case EFFECT_EXPANDING_FORCE:
if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN)
basePower = 120;
if (IsBattlerTerrainAffected(gBattlerAttacker, STATUS_FIELD_PSYCHIC_TERRAIN))
MulModifier(&basePower, UQ_4_12(1.5));
break;
case EFFECT_RISING_VOLTAGE:
#ifdef ITEM_EXPANSION //Air Balloon exception with item expansion branch
if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN && !IS_BATTLER_OF_TYPE(battlerDef, TYPE_FLYING)
&& gBattleMons[battlerDef].item != ITEM_AIR_BALLOON && gBattleMons[battlerDef].ability != ABILITY_LEVITATE)
#else
if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN && !IS_BATTLER_OF_TYPE(battlerDef, TYPE_FLYING)
&& gBattleMons[battlerDef].ability != ABILITY_LEVITATE)
#endif
if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_ELECTRIC_TERRAIN))
basePower *= 2;
break;
}