From 1fdb195bd95c3d55e688d9cbd930d3320732346d Mon Sep 17 00:00:00 2001 From: Eduardo Alvaro Quezada D'Ottone Date: Mon, 20 Apr 2020 07:22:42 -0400 Subject: [PATCH] Added Gen 8 overworld effects. (#342) - LIGHTNING_ROD - FLASH_FIRE - HARVEST - STORM_DRAIN - MAGNET_PULL - INFILTRATOR - SUPER LUCK --- src/pokemon.c | 3 ++- src/wild_encounter.c | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/pokemon.c b/src/pokemon.c index c641568c6..a417fffec 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6220,7 +6220,8 @@ void SetWildMonHeldItem(void) count = (WILD_DOUBLE_BATTLE) ? 2 : 1; if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0) - && GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES) + && (GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES + || GetMonAbility(&gPlayerParty[0]) == ABILITY_SUPER_LUCK)) { var1 = 20; var2 = 80; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 9d791c34c..9853d542f 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -406,12 +406,30 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 ar break; if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex)) break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex)) + break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex)) + break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex)) + break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex)) + break; wildMonIndex = ChooseWildMonIndex_Land(); break; case WILD_AREA_WATER: + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex)) + break; if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex)) break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex)) + break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex)) + break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex)) + break; + if (TryGetAbilityInfluencedWildMonIndex(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex)) + break; wildMonIndex = ChooseWildMonIndex_WaterRock(); break; @@ -500,6 +518,8 @@ static bool8 DoWildEncounterRateTest(u32 encounterRate, bool8 ignoreAbility) encounterRate /= 2; else if (ability == ABILITY_QUICK_FEET) encounterRate /= 2; + else if (ability == ABILITY_INFILTRATOR) + encounterRate /= 2; else if (ability == ABILITY_NO_GUARD) encounterRate = encounterRate * 3 / 2; }