From 68e470f84a44f52e36ad50f0928e46f550345a15 Mon Sep 17 00:00:00 2001 From: Galaxeeh <154106034+Galaxeeh@users.noreply.github.com> Date: Sat, 24 Aug 2024 13:51:18 -0500 Subject: [PATCH] Dynamic Move Display fixes (#5251) * Weatherball fire type check changed to WEATHER_DROUGHT, added overworld check for field terrain set by weather dependent on configs * Update src/pokemon.c FRICKIN INDENTS LMAO Co-authored-by: Eduardo Quezada <93919226+equezada-jej@users.noreply.github.com> --------- Co-authored-by: Eduardo Quezada <93919226+equezada-jej@users.noreply.github.com> --- src/pokemon.c | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 1acaa3a2ed..718ce00c65 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -7026,16 +7026,35 @@ u32 CheckDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler) && ((IsMonGrounded(heldItemEffect, ability, type1, type2) && gBattleMons[battler].species != species) || (IsBattlerTerrainAffected(battler, STATUS_FIELD_TERRAIN_ANY) && gBattleMons[battler].species == species))) { - if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) - return TYPE_ELECTRIC; - else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN) - return TYPE_GRASS; - else if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) - return TYPE_FAIRY; - else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) - return TYPE_PSYCHIC; - else //failsafe - type = TYPE_NORMAL; + if (gMain.inBattle) + { + if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) + return TYPE_ELECTRIC; + else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN) + return TYPE_GRASS; + else if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) + return TYPE_FAIRY; + else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) + return TYPE_PSYCHIC; + else //failsafe + type = TYPE_NORMAL; + } + else + { + switch (gWeatherPtr->currWeather) + { + case WEATHER_RAIN_THUNDERSTORM: + if (B_THUNDERSTORM_TERRAIN) + return TYPE_ELECTRIC; + break; + case WEATHER_FOG_HORIZONTAL: + case WEATHER_FOG_DIAGONAL: + if (B_OVERWORLD_FOG >= GEN_8) + return TYPE_FAIRY; + break; + } + return TYPE_NORMAL; + } } if (effect == EFFECT_WEATHER_BALL) @@ -7057,11 +7076,12 @@ u32 CheckDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler) { switch (gWeatherPtr->currWeather) { - case WEATHER_SUNNY: + case WEATHER_DROUGHT: if (heldItem != ITEM_UTILITY_UMBRELLA) return TYPE_FIRE; break; case WEATHER_RAIN: + case WEATHER_RAIN_THUNDERSTORM: if (heldItem != ITEM_UTILITY_UMBRELLA) return TYPE_WATER; break;