Terrain function standarization (#6097)
This commit is contained in:
parent
17f3541a60
commit
a2b51a2381
@ -3039,7 +3039,7 @@ bool32 AI_CanBeConfused(u32 battlerAtk, u32 battlerDef, u32 move, u32 ability)
|
||||
{
|
||||
if ((gBattleMons[battlerDef].status2 & STATUS2_CONFUSION)
|
||||
|| (ability == ABILITY_OWN_TEMPO && !DoesBattlerIgnoreAbilityChecks(AI_DATA->abilities[battlerAtk], move))
|
||||
|| (IsBattlerGrounded(battlerDef) && (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN))
|
||||
|| IsBattlerTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN)
|
||||
|| gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_SAFEGUARD
|
||||
|| DoesSubstituteBlockMove(battlerAtk, battlerDef, move))
|
||||
return FALSE;
|
||||
|
||||
@ -4836,7 +4836,7 @@ s8 GetBattleMovePriority(u32 battler, u16 move)
|
||||
gProtectStructs[battler].pranksterElevated = 1;
|
||||
priority++;
|
||||
}
|
||||
else if (GetMoveEffect(move) == EFFECT_GRASSY_GLIDE && gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN && IsBattlerGrounded(battler) && GetActiveGimmick(gBattlerAttacker) != GIMMICK_DYNAMAX && !IsGimmickSelected(battler, GIMMICK_DYNAMAX))
|
||||
else if (GetMoveEffect(move) == EFFECT_GRASSY_GLIDE && IsBattlerTerrainAffected(battler, STATUS_FIELD_GRASSY_TERRAIN) && GetActiveGimmick(gBattlerAttacker) != GIMMICK_DYNAMAX && !IsGimmickSelected(battler, GIMMICK_DYNAMAX))
|
||||
{
|
||||
priority++;
|
||||
}
|
||||
|
||||
@ -9248,7 +9248,7 @@ static inline u32 CalcMoveBasePower(struct DamageCalculationData *damageCalcData
|
||||
basePower *= 2;
|
||||
break;
|
||||
case EFFECT_EXPLOSION:
|
||||
if (move == MOVE_MISTY_EXPLOSION && gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN && IsBattlerGrounded(battlerAtk))
|
||||
if (move == MOVE_MISTY_EXPLOSION && IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_MISTY_TERRAIN))
|
||||
basePower = uq4_12_multiply(basePower, UQ_4_12(1.5));
|
||||
break;
|
||||
case EFFECT_DYNAMAX_DOUBLE_DMG:
|
||||
@ -9275,8 +9275,7 @@ static inline u32 CalcMoveBasePower(struct DamageCalculationData *damageCalcData
|
||||
basePower = uq4_12_multiply(basePower, UQ_4_12(1.5));
|
||||
break;
|
||||
case EFFECT_TERRAIN_PULSE:
|
||||
if ((gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
|
||||
&& IsBattlerGrounded(battlerAtk))
|
||||
if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_TERRAIN_ANY))
|
||||
basePower *= 2;
|
||||
break;
|
||||
case EFFECT_EXPANDING_FORCE:
|
||||
@ -9292,7 +9291,7 @@ static inline u32 CalcMoveBasePower(struct DamageCalculationData *damageCalcData
|
||||
basePower = CalcBeatUpPower();
|
||||
break;
|
||||
case EFFECT_PSYBLADE:
|
||||
if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_ELECTRIC_TERRAIN))
|
||||
if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)
|
||||
basePower = uq4_12_multiply(basePower, UQ_4_12(1.5));
|
||||
break;
|
||||
case EFFECT_MAX_MOVE:
|
||||
@ -11726,7 +11725,7 @@ bool32 IsBattlerWeatherAffected(u32 battler, u32 weatherFlags)
|
||||
{
|
||||
if (gBattleWeather & weatherFlags && HasWeatherEffect())
|
||||
{
|
||||
// given weather is active -> check if its sun, rain against utility umbrella ( since only 1 weather can be active at once)
|
||||
// given weather is active -> check if its sun, rain against utility umbrella (since only 1 weather can be active at once)
|
||||
if (gBattleWeather & (B_WEATHER_SUN | B_WEATHER_RAIN) && GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_UTILITY_UMBRELLA)
|
||||
return FALSE; // utility umbrella blocks sun, rain effects
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user