diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index bfb51d67bd..7207f3b652 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -59,7 +59,6 @@ bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item); bool32 IsStatBoostingBerry(u32 item); bool32 CanKnockOffItem(u32 battler, u32 item); bool32 IsAbilityOfRating(u32 ability, s8 rating); -s8 GetAbilityRating(u32 ability); bool32 AI_IsAbilityOnSide(u32 battlerId, u32 ability); bool32 AI_MoveMakesContact(u32 ability, u32 holdEffect, u32 move); u32 AI_GetBattlerMoveTargetType(u32 battlerId, u32 move); diff --git a/include/pokemon.h b/include/pokemon.h index 6ce793a19e..c95ecbf940 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -513,6 +513,7 @@ struct Ability { u8 name[ABILITY_NAME_LENGTH + 1]; const u8 *description; + s8 aiRating; }; #define SPINDA_SPOT_WIDTH 16 diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index b71270a138..6aa8374b6f 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2730,8 +2730,8 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) u32 atkPartnerAbility = aiData->abilities[BATTLE_PARTNER(battlerAtk)]; u32 atkPartnerHoldEffect = aiData->holdEffects[BATTLE_PARTNER(battlerAtk)]; bool32 partnerProtecting = (gBattleMoves[aiData->partnerMove].effect == EFFECT_PROTECT); - bool32 attackerHasBadAbility = (GetAbilityRating(aiData->abilities[battlerAtk]) < 0); - bool32 partnerHasBadAbility = (GetAbilityRating(atkPartnerAbility) < 0); + bool32 attackerHasBadAbility = (gAbilities[aiData->abilities[battlerAtk]].aiRating < 0); + bool32 partnerHasBadAbility = (gAbilities[atkPartnerAbility].aiRating < 0); u32 predictedMove = aiData->predictedMoves[battlerDef]; SetTypeBeforeUsingMove(move, battlerAtk); @@ -4444,7 +4444,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score } break; case EFFECT_SKILL_SWAP: - if (GetAbilityRating(aiData->abilities[battlerDef]) > GetAbilityRating(aiData->abilities[battlerAtk])) + if (gAbilities[aiData->abilities[battlerDef]].aiRating > gAbilities[aiData->abilities[battlerAtk]].aiRating) ADJUST_SCORE(1); break; case EFFECT_WORRY_SEED: @@ -4454,7 +4454,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(2); break; case EFFECT_ENTRAINMENT: - if (IsAbilityOfRating(aiData->abilities[battlerDef], 5) || GetAbilityRating(aiData->abilities[battlerAtk]) <= 0) + if (IsAbilityOfRating(aiData->abilities[battlerDef], 5) || gAbilities[aiData->abilities[battlerAtk]].aiRating <= 0) { if (aiData->abilities[battlerDef] != aiData->abilities[battlerAtk] && !(gStatuses3[battlerDef] & STATUS3_GASTRO_ACID)) ADJUST_SCORE(2); diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index aa994689e5..ed2180b986 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -35,267 +35,6 @@ static u32 AI_GetEffectiveness(uq4_12_t multiplier); // Const Data -static const s8 sAiAbilityRatings[ABILITIES_COUNT] = -{ - [ABILITY_ADAPTABILITY] = 8, - [ABILITY_AFTERMATH] = 5, - [ABILITY_AERILATE] = 8, - [ABILITY_AIR_LOCK] = 5, - [ABILITY_ANALYTIC] = 5, - [ABILITY_ANGER_POINT] = 4, - [ABILITY_ANTICIPATION] = 2, - [ABILITY_ARENA_TRAP] = 9, - [ABILITY_AROMA_VEIL] = 3, - [ABILITY_AURA_BREAK] = 3, - [ABILITY_BAD_DREAMS] = 4, - [ABILITY_BATTERY] = 0, - [ABILITY_BATTLE_ARMOR] = 2, - [ABILITY_BATTLE_BOND] = 6, - [ABILITY_BEAST_BOOST] = 7, - [ABILITY_BERSERK] = 5, - [ABILITY_BIG_PECKS] = 1, - [ABILITY_BLAZE] = 5, - [ABILITY_BULLETPROOF] = 7, - [ABILITY_CHEEK_POUCH] = 4, - [ABILITY_CHLOROPHYLL] = 6, - [ABILITY_CLEAR_BODY] = 4, - [ABILITY_CLOUD_NINE] = 5, - [ABILITY_COLOR_CHANGE] = 2, - [ABILITY_COMATOSE] = 6, - [ABILITY_COMPETITIVE] = 5, - [ABILITY_COMPOUND_EYES] = 7, - [ABILITY_CONTRARY] = 8, - [ABILITY_CORROSION] = 5, - [ABILITY_CURSED_BODY] = 4, - [ABILITY_CUTE_CHARM] = 2, - [ABILITY_DAMP] = 2, - [ABILITY_DANCER] = 5, - [ABILITY_DARK_AURA] = 6, - [ABILITY_DAZZLING] = 5, - [ABILITY_DEFEATIST] = -1, - [ABILITY_DEFIANT] = 5, - [ABILITY_DELTA_STREAM] = 10, - [ABILITY_DESOLATE_LAND] = 10, - [ABILITY_DISGUISE] = 8, - [ABILITY_DOWNLOAD] = 7, - [ABILITY_DRIZZLE] = 9, - [ABILITY_DROUGHT] = 9, - [ABILITY_DRY_SKIN] = 6, - [ABILITY_EARLY_BIRD] = 4, - [ABILITY_EFFECT_SPORE] = 4, - [ABILITY_ELECTRIC_SURGE] = 8, - [ABILITY_EMERGENCY_EXIT] = 3, - [ABILITY_FAIRY_AURA] = 6, - [ABILITY_FILTER] = 6, - [ABILITY_FLAME_BODY] = 4, - [ABILITY_FLARE_BOOST] = 5, - [ABILITY_FLASH_FIRE] = 6, - [ABILITY_FLOWER_GIFT] = 4, - [ABILITY_FLOWER_VEIL] = 0, - [ABILITY_FLUFFY] = 5, - [ABILITY_FORECAST] = 6, - [ABILITY_FOREWARN] = 2, - [ABILITY_FRIEND_GUARD] = 0, - [ABILITY_FRISK] = 3, - [ABILITY_FULL_METAL_BODY] = 4, - [ABILITY_FUR_COAT] = 7, - [ABILITY_GALE_WINGS] = 6, - [ABILITY_GALVANIZE] = 8, - [ABILITY_GLUTTONY] = 3, - [ABILITY_GOOEY] = 5, - [ABILITY_GRASS_PELT] = 2, - [ABILITY_GRASSY_SURGE] = 8, - [ABILITY_GUTS] = 6, - [ABILITY_HARVEST] = 5, - [ABILITY_HEALER] = 0, - [ABILITY_HEATPROOF] = 5, - [ABILITY_HEAVY_METAL] = -1, - [ABILITY_HONEY_GATHER] = 0, - [ABILITY_HUGE_POWER] = 10, - [ABILITY_HUSTLE] = 7, - [ABILITY_HYDRATION] = 4, - [ABILITY_HYPER_CUTTER] = 3, - [ABILITY_ICE_BODY] = 3, - [ABILITY_ILLUMINATE] = 0, - [ABILITY_ILLUSION] = 8, - [ABILITY_IMMUNITY] = 4, - [ABILITY_IMPOSTER] = 9, - [ABILITY_INFILTRATOR] = 6, - [ABILITY_INNARDS_OUT] = 5, - [ABILITY_INNER_FOCUS] = 2, - [ABILITY_INSOMNIA] = 4, - [ABILITY_INTIMIDATE] = 7, - [ABILITY_IRON_BARBS] = 6, - [ABILITY_IRON_FIST] = 6, - [ABILITY_JUSTIFIED] = 4, - [ABILITY_KEEN_EYE] = 1, - [ABILITY_KLUTZ] = -1, - [ABILITY_LEAF_GUARD] = 2, - [ABILITY_LEVITATE] = 7, - [ABILITY_LIGHT_METAL] = 2, - [ABILITY_LIGHTNING_ROD] = 7, - [ABILITY_LIMBER] = 3, - [ABILITY_LIQUID_OOZE] = 3, - [ABILITY_LIQUID_VOICE] = 5, - [ABILITY_LONG_REACH] = 3, - [ABILITY_MAGIC_BOUNCE] = 9, - [ABILITY_MAGIC_GUARD] = 9, - [ABILITY_MAGICIAN] = 3, - [ABILITY_MAGMA_ARMOR] = 1, - [ABILITY_MAGNET_PULL] = 9, - [ABILITY_MARVEL_SCALE] = 5, - [ABILITY_MEGA_LAUNCHER] = 7, - [ABILITY_MERCILESS] = 4, - [ABILITY_MINUS] = 0, - [ABILITY_MISTY_SURGE] = 8, - [ABILITY_MOLD_BREAKER] = 7, - [ABILITY_MOODY] = 10, - [ABILITY_MOTOR_DRIVE] = 6, - [ABILITY_MOXIE] = 7, - [ABILITY_MULTISCALE] = 8, - [ABILITY_MULTITYPE] = 8, - [ABILITY_MUMMY] = 5, - [ABILITY_NATURAL_CURE] = 7, - [ABILITY_NEUROFORCE] = 6, - [ABILITY_NO_GUARD] = 8, - [ABILITY_NORMALIZE] = -1, - [ABILITY_OBLIVIOUS] = 2, - [ABILITY_OVERCOAT] = 5, - [ABILITY_OVERGROW] = 5, - [ABILITY_OWN_TEMPO] = 3, - [ABILITY_PARENTAL_BOND] = 10, - [ABILITY_PICKUP] = 1, - [ABILITY_PICKPOCKET] = 3, - [ABILITY_PIXILATE] = 8, - [ABILITY_PLUS] = 0, - [ABILITY_POISON_HEAL] = 8, - [ABILITY_POISON_POINT] = 4, - [ABILITY_POISON_TOUCH] = 4, - [ABILITY_POWER_CONSTRUCT] = 10, - [ABILITY_POWER_OF_ALCHEMY] = 0, - [ABILITY_PRANKSTER] = 8, - [ABILITY_PRESSURE] = 5, - [ABILITY_PRIMORDIAL_SEA] = 10, - [ABILITY_PRISM_ARMOR] = 6, - [ABILITY_PROTEAN] = 8, - [ABILITY_PSYCHIC_SURGE] = 8, - [ABILITY_PURE_POWER] = 10, - [ABILITY_QUEENLY_MAJESTY] = 6, - [ABILITY_QUICK_FEET] = 5, - [ABILITY_RAIN_DISH] = 3, - [ABILITY_RATTLED] = 3, - [ABILITY_RECEIVER] = 0, - [ABILITY_RECKLESS] = 6, - [ABILITY_REFRIGERATE] = 8, - [ABILITY_REGENERATOR] = 8, - [ABILITY_RIVALRY] = 1, - [ABILITY_RKS_SYSTEM] = 8, - [ABILITY_ROCK_HEAD] = 5, - [ABILITY_ROUGH_SKIN] = 6, - [ABILITY_RUN_AWAY] = 0, - [ABILITY_SAND_FORCE] = 4, - [ABILITY_SAND_RUSH] = 6, - [ABILITY_SAND_STREAM] = 9, - [ABILITY_SAND_VEIL] = 3, - [ABILITY_SAP_SIPPER] = 7, - [ABILITY_SCHOOLING] = 6, - [ABILITY_SCRAPPY] = 6, - [ABILITY_SERENE_GRACE] = 8, - [ABILITY_SHADOW_SHIELD] = 8, - [ABILITY_SHADOW_TAG] = 10, - [ABILITY_SHED_SKIN] = 7, - [ABILITY_SHEER_FORCE] = 8, - [ABILITY_SHELL_ARMOR] = 2, - [ABILITY_SHIELD_DUST] = 5, - [ABILITY_SHIELDS_DOWN] = 6, - [ABILITY_SIMPLE] = 8, - [ABILITY_SKILL_LINK] = 7, - [ABILITY_SLOW_START] = -2, - [ABILITY_SLUSH_RUSH] = 5, - [ABILITY_SNIPER] = 3, - [ABILITY_SNOW_CLOAK] = 3, - [ABILITY_SNOW_WARNING] = 8, - [ABILITY_SOLAR_POWER] = 3, - [ABILITY_SOLID_ROCK] = 6, - [ABILITY_SOUL_HEART] = 7, - [ABILITY_SOUNDPROOF] = 4, - [ABILITY_SPEED_BOOST] = 9, - [ABILITY_STAKEOUT] = 6, - [ABILITY_STALL] = -1, - [ABILITY_STAMINA] = 6, - [ABILITY_STANCE_CHANGE] = 10, - [ABILITY_STATIC] = 4, - [ABILITY_STEADFAST] = 2, - [ABILITY_STEELWORKER] = 6, - [ABILITY_STENCH] = 1, - [ABILITY_STICKY_HOLD] = 3, - [ABILITY_STORM_DRAIN] = 7, - [ABILITY_STRONG_JAW] = 6, - [ABILITY_STURDY] = 6, - [ABILITY_SUCTION_CUPS] = 2, - [ABILITY_SUPER_LUCK] = 3, - [ABILITY_SURGE_SURFER] = 4, - [ABILITY_SWARM] = 5, - [ABILITY_SWEET_VEIL] = 4, - [ABILITY_SWIFT_SWIM] = 6, - [ABILITY_SYMBIOSIS] = 0, - [ABILITY_SYNCHRONIZE] = 4, - [ABILITY_TANGLED_FEET] = 2, - [ABILITY_TANGLING_HAIR] = 5, - [ABILITY_TECHNICIAN] = 8, - [ABILITY_TELEPATHY] = 0, - [ABILITY_TERAVOLT] = 7, - [ABILITY_THICK_FAT] = 7, - [ABILITY_TINTED_LENS] = 7, - [ABILITY_TORRENT] = 5, - [ABILITY_TOXIC_BOOST] = 6, - [ABILITY_TOUGH_CLAWS] = 7, - [ABILITY_TRACE] = 6, - [ABILITY_TRIAGE] = 7, - [ABILITY_TRUANT] = -2, - [ABILITY_TURBOBLAZE] = 7, - [ABILITY_UNAWARE] = 6, - [ABILITY_UNBURDEN] = 7, - [ABILITY_UNNERVE] = 3, - [ABILITY_VICTORY_STAR] = 6, - [ABILITY_VITAL_SPIRIT] = 4, - [ABILITY_VOLT_ABSORB] = 7, - [ABILITY_WATER_ABSORB] = 7, - [ABILITY_WATER_BUBBLE] = 8, - [ABILITY_WATER_COMPACTION] = 4, - [ABILITY_WATER_VEIL] = 4, - [ABILITY_WEAK_ARMOR] = 2, - [ABILITY_WHITE_SMOKE] = 4, - [ABILITY_WIMP_OUT] = 3, - [ABILITY_WONDER_GUARD] = 10, - [ABILITY_WONDER_SKIN] = 4, - [ABILITY_ZEN_MODE] = -1, - [ABILITY_INTREPID_SWORD] = 3, - [ABILITY_DAUNTLESS_SHIELD] = 3, - [ABILITY_BALL_FETCH] = 0, - [ABILITY_COTTON_DOWN] = 3, - [ABILITY_MIRROR_ARMOR] = 6, - [ABILITY_GULP_MISSILE] = 3, - [ABILITY_STALWART] = 2, - [ABILITY_PROPELLER_TAIL] = 2, - [ABILITY_STEAM_ENGINE] = 3, - [ABILITY_PUNK_ROCK] = 2, - [ABILITY_SAND_SPIT] = 5, - [ABILITY_ICE_SCALES] = 7, - [ABILITY_RIPEN] = 4, - [ABILITY_ICE_FACE] = 4, - [ABILITY_POWER_SPOT] = 2, - [ABILITY_MIMICRY] = 2, - [ABILITY_SCREEN_CLEANER] = 3, - [ABILITY_NEUTRALIZING_GAS] = 5, - [ABILITY_HUNGER_SWITCH] = 2, - [ABILITY_PASTEL_VEIL] = 4, - [ABILITY_STEELY_SPIRIT] = 2, - [ABILITY_PERISH_BODY] = -1, - [ABILITY_WANDERING_SPIRIT] = 2, - [ABILITY_GORILLA_TACTICS] = 4, -}; - static const u16 sEncouragedEncoreEffects[] = { EFFECT_DREAM_EATER, @@ -3470,16 +3209,11 @@ bool32 SideHasMoveCategory(u32 battlerId, u32 category) bool32 IsAbilityOfRating(u32 ability, s8 rating) { - if (sAiAbilityRatings[ability] >= rating) + if (gAbilities[ability].aiRating >= rating) return TRUE; return FALSE; } -s8 GetAbilityRating(u32 ability) -{ - return sAiAbilityRatings[ability]; -} - static const u16 sRecycleEncouragedItems[] = { ITEM_CHESTO_BERRY, diff --git a/src/data/abilities.h b/src/data/abilities.h index 2ff80f3ab3..56f7547b23 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -4,84 +4,98 @@ const struct Ability gAbilities[ABILITIES_COUNT] = { .name = _("-------"), .description = COMPOUND_STRING("No special ability."), + .aiRating = 0, }, [ABILITY_STENCH] = { .name = _("Stench"), .description = COMPOUND_STRING("May cause a foe to flinch."), + .aiRating = 1, }, [ABILITY_DRIZZLE] = { .name = _("Drizzle"), .description = COMPOUND_STRING("Summons rain in battle."), + .aiRating = 9, }, [ABILITY_SPEED_BOOST] = { .name = _("Speed Boost"), .description = COMPOUND_STRING("Gradually boosts Speed."), + .aiRating = 9, }, [ABILITY_BATTLE_ARMOR] = { .name = _("Battle Armor"), .description = COMPOUND_STRING("Blocks critical hits."), + .aiRating = 2, }, [ABILITY_STURDY] = { .name = _("Sturdy"), .description = COMPOUND_STRING("Negates 1-hit KO attacks."), + .aiRating = 6, }, [ABILITY_DAMP] = { .name = _("Damp"), .description = COMPOUND_STRING("Prevents self-destruction."), + .aiRating = 2, }, [ABILITY_LIMBER] = { .name = _("Limber"), .description = COMPOUND_STRING("Prevents paralysis."), + .aiRating = 3, }, [ABILITY_SAND_VEIL] = { .name = _("Sand Veil"), .description = COMPOUND_STRING("Ups evasion in a sandstorm."), + .aiRating = 3, }, [ABILITY_STATIC] = { .name = _("Static"), .description = COMPOUND_STRING("Paralyzes on contact."), + .aiRating = 4, }, [ABILITY_VOLT_ABSORB] = { .name = _("Volt Absorb"), .description = COMPOUND_STRING("Turns electricity into HP."), + .aiRating = 7, }, [ABILITY_WATER_ABSORB] = { .name = _("Water Absorb"), .description = COMPOUND_STRING("Changes water into HP."), + .aiRating = 7, }, [ABILITY_OBLIVIOUS] = { .name = _("Oblivious"), .description = COMPOUND_STRING("Prevents attraction."), + .aiRating = 2, }, [ABILITY_CLOUD_NINE] = { .name = _("Cloud Nine"), .description = COMPOUND_STRING("Negates weather effects."), + .aiRating = 5, }, [ABILITY_COMPOUND_EYES] = @@ -92,102 +106,119 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("CompoundEyes"), #endif .description = COMPOUND_STRING("Raises accuracy."), + .aiRating = 7, }, [ABILITY_INSOMNIA] = { .name = _("Insomnia"), .description = COMPOUND_STRING("Prevents sleep."), + .aiRating = 4, }, [ABILITY_COLOR_CHANGE] = { .name = _("Color Change"), .description = COMPOUND_STRING("Changes type to foe's move."), + .aiRating = 2, }, [ABILITY_IMMUNITY] = { .name = _("Immunity"), .description = COMPOUND_STRING("Prevents poisoning."), + .aiRating = 4, }, [ABILITY_FLASH_FIRE] = { .name = _("Flash Fire"), .description = COMPOUND_STRING("Powers up if hit by fire."), + .aiRating = 6, }, [ABILITY_SHIELD_DUST] = { .name = _("Shield Dust"), .description = COMPOUND_STRING("Prevents added effects."), + .aiRating = 5, }, [ABILITY_OWN_TEMPO] = { .name = _("Own Tempo"), .description = COMPOUND_STRING("Prevents confusion."), + .aiRating = 3, }, [ABILITY_SUCTION_CUPS] = { .name = _("Suction Cups"), .description = COMPOUND_STRING("Firmly anchors the body."), + .aiRating = 2, }, [ABILITY_INTIMIDATE] = { .name = _("Intimidate"), .description = COMPOUND_STRING("Lowers the foe's Attack."), + .aiRating = 7, }, [ABILITY_SHADOW_TAG] = { .name = _("Shadow Tag"), .description = COMPOUND_STRING("Prevents the foe's escape."), + .aiRating = 10, }, [ABILITY_ROUGH_SKIN] = { .name = _("Rough Skin"), .description = COMPOUND_STRING("Hurts to touch."), + .aiRating = 6, }, [ABILITY_WONDER_GUARD] = { .name = _("Wonder Guard"), .description = COMPOUND_STRING("“Supereffective” hits."), + .aiRating = 10, }, [ABILITY_LEVITATE] = { .name = _("Levitate"), .description = COMPOUND_STRING("Not hit by Ground attacks."), + .aiRating = 7, }, [ABILITY_EFFECT_SPORE] = { .name = _("Effect Spore"), .description = COMPOUND_STRING("Leaves spores on contact."), + .aiRating = 4, }, [ABILITY_SYNCHRONIZE] = { .name = _("Synchronize"), .description = COMPOUND_STRING("Passes on status problems."), + .aiRating = 4, }, [ABILITY_CLEAR_BODY] = { .name = _("Clear Body"), .description = COMPOUND_STRING("Prevents ability reduction."), + .aiRating = 4, }, [ABILITY_NATURAL_CURE] = { .name = _("Natural Cure"), .description = COMPOUND_STRING("Heals upon switching out."), + .aiRating = 7, }, [ABILITY_LIGHTNING_ROD] = @@ -198,870 +229,1015 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("LightningRod"), #endif .description = COMPOUND_STRING("Draws electrical moves."), + .aiRating = 7, }, [ABILITY_SERENE_GRACE] = { .name = _("Serene Grace"), .description = COMPOUND_STRING("Promotes added effects."), + .aiRating = 8, }, [ABILITY_SWIFT_SWIM] = { .name = _("Swift Swim"), .description = COMPOUND_STRING("Raises Speed in rain."), + .aiRating = 6, }, [ABILITY_CHLOROPHYLL] = { .name = _("Chlorophyll"), .description = COMPOUND_STRING("Raises Speed in sunshine."), + .aiRating = 6, }, [ABILITY_ILLUMINATE] = { .name = _("Illuminate"), .description = COMPOUND_STRING("Encounter rate increases."), + .aiRating = 0, }, [ABILITY_TRACE] = { .name = _("Trace"), .description = COMPOUND_STRING("Copies special ability."), + .aiRating = 6, }, [ABILITY_HUGE_POWER] = { .name = _("Huge Power"), .description = COMPOUND_STRING("Raises Attack."), + .aiRating = 10, }, [ABILITY_POISON_POINT] = { .name = _("Poison Point"), .description = COMPOUND_STRING("Poisons foe on contact."), + .aiRating = 4, }, [ABILITY_INNER_FOCUS] = { .name = _("Inner Focus"), .description = COMPOUND_STRING("Prevents flinching."), + .aiRating = 2, }, [ABILITY_MAGMA_ARMOR] = { .name = _("Magma Armor"), .description = COMPOUND_STRING("Prevents freezing."), + .aiRating = 1, }, [ABILITY_WATER_VEIL] = { .name = _("Water Veil"), .description = COMPOUND_STRING("Prevents burns."), + .aiRating = 4, }, [ABILITY_MAGNET_PULL] = { .name = _("Magnet Pull"), .description = COMPOUND_STRING("Traps Steel-type Pokémon."), + .aiRating = 9, }, [ABILITY_SOUNDPROOF] = { .name = _("Soundproof"), .description = COMPOUND_STRING("Avoids sound-based moves."), + .aiRating = 4, }, [ABILITY_RAIN_DISH] = { .name = _("Rain Dish"), .description = COMPOUND_STRING("Slight HP recovery in rain."), + .aiRating = 3, }, [ABILITY_SAND_STREAM] = { .name = _("Sand Stream"), .description = COMPOUND_STRING("Summons a sandstorm."), + .aiRating = 9, }, [ABILITY_PRESSURE] = { .name = _("Pressure"), .description = COMPOUND_STRING("Raises foe's PP usage."), + .aiRating = 5, }, [ABILITY_THICK_FAT] = { .name = _("Thick Fat"), .description = COMPOUND_STRING("Heat-and-cold protection."), + .aiRating = 7, }, [ABILITY_EARLY_BIRD] = { .name = _("Early Bird"), .description = COMPOUND_STRING("Awakens quickly from sleep."), + .aiRating = 4, }, [ABILITY_FLAME_BODY] = { .name = _("Flame Body"), .description = COMPOUND_STRING("Burns the foe on contact."), + .aiRating = 4, }, [ABILITY_RUN_AWAY] = { .name = _("Run Away"), .description = COMPOUND_STRING("Makes escaping easier."), + .aiRating = 0, }, [ABILITY_KEEN_EYE] = { .name = _("Keen Eye"), .description = COMPOUND_STRING("Prevents loss of accuracy."), + .aiRating = 1, }, [ABILITY_HYPER_CUTTER] = { .name = _("Hyper Cutter"), .description = COMPOUND_STRING("Prevents Attack reduction."), + .aiRating = 3, }, [ABILITY_PICKUP] = { .name = _("Pickup"), .description = COMPOUND_STRING("May pick up items."), + .aiRating = 1, }, [ABILITY_TRUANT] = { .name = _("Truant"), .description = COMPOUND_STRING("Moves only every two turns."), + .aiRating = -2, }, [ABILITY_HUSTLE] = { .name = _("Hustle"), .description = COMPOUND_STRING("Trades accuracy for power."), + .aiRating = 7, }, [ABILITY_CUTE_CHARM] = { .name = _("Cute Charm"), .description = COMPOUND_STRING("Infatuates on contact."), + .aiRating = 2, }, [ABILITY_PLUS] = { .name = _("Plus"), .description = COMPOUND_STRING("Powers up with Minus."), + .aiRating = 0, }, [ABILITY_MINUS] = { .name = _("Minus"), .description = COMPOUND_STRING("Powers up with Plus."), + .aiRating = 0, }, [ABILITY_FORECAST] = { .name = _("Forecast"), .description = COMPOUND_STRING("Changes with the weather."), + .aiRating = 6, }, [ABILITY_STICKY_HOLD] = { .name = _("Sticky Hold"), .description = COMPOUND_STRING("Prevents item theft."), + .aiRating = 3, }, [ABILITY_SHED_SKIN] = { .name = _("Shed Skin"), .description = COMPOUND_STRING("Heals the body by shedding."), + .aiRating = 7, }, [ABILITY_GUTS] = { .name = _("Guts"), .description = COMPOUND_STRING("Ups Attack if suffering."), + .aiRating = 6, }, [ABILITY_MARVEL_SCALE] = { .name = _("Marvel Scale"), .description = COMPOUND_STRING("Ups Defense if suffering."), + .aiRating = 5, }, [ABILITY_LIQUID_OOZE] = { .name = _("Liquid Ooze"), .description = COMPOUND_STRING("Draining causes injury."), + .aiRating = 3, }, [ABILITY_OVERGROW] = { .name = _("Overgrow"), .description = COMPOUND_STRING("Ups Grass moves in a pinch."), + .aiRating = 5, }, [ABILITY_BLAZE] = { .name = _("Blaze"), .description = COMPOUND_STRING("Ups Fire moves in a pinch."), + .aiRating = 5, }, [ABILITY_TORRENT] = { .name = _("Torrent"), .description = COMPOUND_STRING("Ups Water moves in a pinch."), + .aiRating = 5, }, [ABILITY_SWARM] = { .name = _("Swarm"), .description = COMPOUND_STRING("Ups Bug moves in a pinch."), + .aiRating = 5, }, [ABILITY_ROCK_HEAD] = { .name = _("Rock Head"), .description = COMPOUND_STRING("Prevents recoil damage."), + .aiRating = 5, }, [ABILITY_DROUGHT] = { .name = _("Drought"), .description = COMPOUND_STRING("Summons sunlight in battle."), + .aiRating = 9, }, [ABILITY_ARENA_TRAP] = { .name = _("Arena Trap"), .description = COMPOUND_STRING("Prevents fleeing."), + .aiRating = 9, }, [ABILITY_VITAL_SPIRIT] = { .name = _("Vital Spirit"), .description = COMPOUND_STRING("Prevents sleep."), + .aiRating = 4, }, [ABILITY_WHITE_SMOKE] = { .name = _("White Smoke"), .description = COMPOUND_STRING("Prevents ability reduction."), + .aiRating = 4, }, [ABILITY_PURE_POWER] = { .name = _("Pure Power"), .description = COMPOUND_STRING("Raises Attack."), + .aiRating = 10, }, [ABILITY_SHELL_ARMOR] = { .name = _("Shell Armor"), .description = COMPOUND_STRING("Blocks critical hits."), + .aiRating = 2, }, [ABILITY_AIR_LOCK] = { .name = _("Air Lock"), .description = COMPOUND_STRING("Negates weather effects."), + .aiRating = 5, }, [ABILITY_TANGLED_FEET] = { .name = _("Tangled Feet"), .description = COMPOUND_STRING("Ups evasion if confused."), + .aiRating = 2, }, [ABILITY_MOTOR_DRIVE] = { .name = _("Motor Drive"), .description = COMPOUND_STRING("Electricity raises Speed."), + .aiRating = 6, }, [ABILITY_RIVALRY] = { .name = _("Rivalry"), .description = COMPOUND_STRING("Powers up against rivals."), + .aiRating = 1, }, [ABILITY_STEADFAST] = { .name = _("Steadfast"), .description = COMPOUND_STRING("Flinching raises Speed."), + .aiRating = 2, }, [ABILITY_SNOW_CLOAK] = { .name = _("Snow Cloak"), .description = COMPOUND_STRING("Ups evasion in Hail or Snow."), + .aiRating = 3, }, [ABILITY_GLUTTONY] = { .name = _("Gluttony"), .description = COMPOUND_STRING("Eats Berries early."), + .aiRating = 3, }, [ABILITY_ANGER_POINT] = { .name = _("Anger Point"), .description = COMPOUND_STRING("Critical hits raise Attack."), + .aiRating = 4, }, [ABILITY_UNBURDEN] = { .name = _("Unburden"), .description = COMPOUND_STRING("Using a hold item ups Speed."), + .aiRating = 7, }, [ABILITY_HEATPROOF] = { .name = _("Heatproof"), .description = COMPOUND_STRING("Heat and burn protection."), + .aiRating = 5, }, [ABILITY_SIMPLE] = { .name = _("Simple"), .description = COMPOUND_STRING("Prone to wild stat changes."), + .aiRating = 8, }, [ABILITY_DRY_SKIN] = { .name = _("Dry Skin"), .description = COMPOUND_STRING("Prefers moisture to heat."), + .aiRating = 6, }, [ABILITY_DOWNLOAD] = { .name = _("Download"), .description = COMPOUND_STRING("Adjusts power favorably."), + .aiRating = 7, }, [ABILITY_IRON_FIST] = { .name = _("Iron Fist"), .description = COMPOUND_STRING("Boosts punching moves."), + .aiRating = 6, }, [ABILITY_POISON_HEAL] = { .name = _("Poison Heal"), .description = COMPOUND_STRING("Restores HP if poisoned."), + .aiRating = 8, }, [ABILITY_ADAPTABILITY] = { .name = _("Adaptability"), .description = COMPOUND_STRING("Boosts same type attacks."), + .aiRating = 8, }, [ABILITY_SKILL_LINK] = { .name = _("Skill Link"), .description = COMPOUND_STRING("Multi-hit moves hit 5 times."), + .aiRating = 7, }, [ABILITY_HYDRATION] = { .name = _("Hydration"), .description = COMPOUND_STRING("Cures status in rain."), + .aiRating = 4, }, [ABILITY_SOLAR_POWER] = { .name = _("Solar Power"), .description = COMPOUND_STRING("Powers up in sunshine."), + .aiRating = 3, }, [ABILITY_QUICK_FEET] = { .name = _("Quick Feet"), .description = COMPOUND_STRING("Ups Speed if suffering."), + .aiRating = 5, }, [ABILITY_NORMALIZE] = { .name = _("Normalize"), .description = COMPOUND_STRING("Moves become Normal-type."), + .aiRating = -1, }, [ABILITY_SNIPER] = { .name = _("Sniper"), .description = COMPOUND_STRING("Boosts critical hits."), + .aiRating = 3, }, [ABILITY_MAGIC_GUARD] = { .name = _("Magic Guard"), .description = COMPOUND_STRING("Only damaged by attacks."), + .aiRating = 9, }, [ABILITY_NO_GUARD] = { .name = _("No Guard"), .description = COMPOUND_STRING("Ensures that all moves hit."), + .aiRating = 8, }, [ABILITY_STALL] = { .name = _("Stall"), .description = COMPOUND_STRING("Always moves last."), + .aiRating = -1, }, [ABILITY_TECHNICIAN] = { .name = _("Technician"), .description = COMPOUND_STRING("Boosts weaker moves."), + .aiRating = 8, }, [ABILITY_LEAF_GUARD] = { .name = _("Leaf Guard"), .description = COMPOUND_STRING("Blocks status in sunshine."), + .aiRating = 2, }, [ABILITY_KLUTZ] = { .name = _("Klutz"), .description = COMPOUND_STRING("Can't use hold items."), + .aiRating = -1, }, [ABILITY_MOLD_BREAKER] = { .name = _("Mold Breaker"), .description = COMPOUND_STRING("Moves hit through abilities."), + .aiRating = 7, }, [ABILITY_SUPER_LUCK] = { .name = _("Super Luck"), .description = COMPOUND_STRING("Critical hits land often."), + .aiRating = 3, }, [ABILITY_AFTERMATH] = { .name = _("Aftermath"), .description = COMPOUND_STRING("Fainting damages the foe."), + .aiRating = 5, }, [ABILITY_ANTICIPATION] = { .name = _("Anticipation"), .description = COMPOUND_STRING("Senses dangerous moves."), + .aiRating = 2, }, [ABILITY_FOREWARN] = { .name = _("Forewarn"), .description = COMPOUND_STRING("Determines a foe's move."), + .aiRating = 2, }, [ABILITY_UNAWARE] = { .name = _("Unaware"), .description = COMPOUND_STRING("Ignores stat changes."), + .aiRating = 6, }, [ABILITY_TINTED_LENS] = { .name = _("Tinted Lens"), .description = COMPOUND_STRING("Ups “not very effective”."), + .aiRating = 7, }, [ABILITY_FILTER] = { .name = _("Filter"), .description = COMPOUND_STRING("Weakens “supereffective”."), + .aiRating = 6, }, [ABILITY_SLOW_START] = { .name = _("Slow Start"), .description = COMPOUND_STRING("Takes a while to get going."), + .aiRating = -2, }, [ABILITY_SCRAPPY] = { .name = _("Scrappy"), .description = COMPOUND_STRING("Hits Ghost-type Pokémon."), + .aiRating = 6, }, [ABILITY_STORM_DRAIN] = { .name = _("Storm Drain"), .description = COMPOUND_STRING("Draws in Water moves."), + .aiRating = 7, }, [ABILITY_ICE_BODY] = { .name = _("Ice Body"), .description = COMPOUND_STRING("HP recovery in Hail or Snow."), + .aiRating = 3, }, [ABILITY_SOLID_ROCK] = { .name = _("Solid Rock"), .description = COMPOUND_STRING("Weakens “supereffective”."), + .aiRating = 6, }, [ABILITY_SNOW_WARNING] = { .name = _("Snow Warning"), .description = COMPOUND_STRING("Summons a Hailstorm."), + .aiRating = 8, }, [ABILITY_HONEY_GATHER] = { .name = _("Honey Gather"), .description = COMPOUND_STRING("May gather Honey."), + .aiRating = 0, }, [ABILITY_FRISK] = { .name = _("Frisk"), .description = COMPOUND_STRING("Checks a foe's item."), + .aiRating = 3, }, [ABILITY_RECKLESS] = { .name = _("Reckless"), .description = COMPOUND_STRING("Boosts moves with recoil."), + .aiRating = 6, }, [ABILITY_MULTITYPE] = { .name = _("Multitype"), .description = COMPOUND_STRING("Changes type to its Plate."), + .aiRating = 8, }, [ABILITY_FLOWER_GIFT] = { .name = _("Flower Gift"), .description = COMPOUND_STRING("Allies power up in sunshine."), + .aiRating = 4, }, [ABILITY_BAD_DREAMS] = { .name = _("Bad Dreams"), .description = COMPOUND_STRING("Damages sleeping Pokémon."), + .aiRating = 4, }, [ABILITY_PICKPOCKET] = { .name = _("Pickpocket"), .description = COMPOUND_STRING("Steals the foe's held item."), + .aiRating = 3, }, [ABILITY_SHEER_FORCE] = { .name = _("Sheer Force"), .description = COMPOUND_STRING("Trades effects for power."), + .aiRating = 8, }, [ABILITY_CONTRARY] = { .name = _("Contrary"), .description = COMPOUND_STRING("Inverts stat changes."), + .aiRating = 8, }, [ABILITY_UNNERVE] = { .name = _("Unnerve"), .description = COMPOUND_STRING("Foes can't eat Berries."), + .aiRating = 3, }, [ABILITY_DEFIANT] = { .name = _("Defiant"), .description = COMPOUND_STRING("Lowered stats up Attack."), + .aiRating = 5, }, [ABILITY_DEFEATIST] = { .name = _("Defeatist"), .description = COMPOUND_STRING("Gives up at half HP."), + .aiRating = -1, }, [ABILITY_CURSED_BODY] = { .name = _("Cursed Body"), .description = COMPOUND_STRING("Disables moves on contact."), + .aiRating = 4, }, [ABILITY_HEALER] = { .name = _("Healer"), .description = COMPOUND_STRING("Heals partner Pokémon."), + .aiRating = 0, }, [ABILITY_FRIEND_GUARD] = { .name = _("Friend Guard"), .description = COMPOUND_STRING("Lowers damage to partner."), + .aiRating = 0, }, [ABILITY_WEAK_ARMOR] = { .name = _("Weak Armor"), .description = COMPOUND_STRING("Its stats change when hit."), + .aiRating = 2, }, [ABILITY_HEAVY_METAL] = { .name = _("Heavy Metal"), .description = COMPOUND_STRING("Doubles weight."), + .aiRating = -1, }, [ABILITY_LIGHT_METAL] = { .name = _("Light Metal"), .description = COMPOUND_STRING("Halves weight."), + .aiRating = 2, }, [ABILITY_MULTISCALE] = { .name = _("Multiscale"), .description = COMPOUND_STRING("Halves damage at full HP."), + .aiRating = 8, }, [ABILITY_TOXIC_BOOST] = { .name = _("Toxic Boost"), .description = COMPOUND_STRING("Ups Attack if poisoned."), + .aiRating = 6, }, [ABILITY_FLARE_BOOST] = { .name = _("Flare Boost"), .description = COMPOUND_STRING("Ups Sp. Atk if burned."), + .aiRating = 5, }, [ABILITY_HARVEST] = { .name = _("Harvest"), .description = COMPOUND_STRING("May recycle a used Berry."), + .aiRating = 5, }, [ABILITY_TELEPATHY] = { .name = _("Telepathy"), .description = COMPOUND_STRING("Can't be damaged by an ally."), + .aiRating = 0, }, [ABILITY_MOODY] = { .name = _("Moody"), .description = COMPOUND_STRING("Stats change gradually."), + .aiRating = 10, }, [ABILITY_OVERCOAT] = { .name = _("Overcoat"), .description = COMPOUND_STRING("Blocks weather and powder."), + .aiRating = 5, }, [ABILITY_POISON_TOUCH] = { .name = _("Poison Touch"), .description = COMPOUND_STRING("Poisons foe on contact."), + .aiRating = 4, }, [ABILITY_REGENERATOR] = { .name = _("Regenerator"), .description = COMPOUND_STRING("Heals upon switching out."), + .aiRating = 8, }, [ABILITY_BIG_PECKS] = { .name = _("Big Pecks"), .description = COMPOUND_STRING("Prevents Defense loss."), + .aiRating = 1, }, [ABILITY_SAND_RUSH] = { .name = _("Sand Rush"), .description = COMPOUND_STRING("Ups Speed in a sandstorm."), + .aiRating = 6, }, [ABILITY_WONDER_SKIN] = { .name = _("Wonder Skin"), .description = COMPOUND_STRING("May avoid status problems."), + .aiRating = 4, }, [ABILITY_ANALYTIC] = { .name = _("Analytic"), .description = COMPOUND_STRING("Moving last boosts power."), + .aiRating = 5, }, [ABILITY_ILLUSION] = { .name = _("Illusion"), .description = COMPOUND_STRING("Appears as a partner."), + .aiRating = 8, }, [ABILITY_IMPOSTER] = { .name = _("Imposter"), .description = COMPOUND_STRING("Transforms into the foe."), + .aiRating = 9, }, [ABILITY_INFILTRATOR] = { .name = _("Infiltrator"), .description = COMPOUND_STRING("Passes through barriers."), + .aiRating = 6, }, [ABILITY_MUMMY] = { .name = _("Mummy"), .description = COMPOUND_STRING("Spreads with contact."), + .aiRating = 5, }, [ABILITY_MOXIE] = { .name = _("Moxie"), .description = COMPOUND_STRING("KOs raise Attack."), + .aiRating = 7, }, [ABILITY_JUSTIFIED] = { .name = _("Justified"), .description = COMPOUND_STRING("Dark hits raise Attack."), + .aiRating = 4, }, [ABILITY_RATTLED] = { .name = _("Rattled"), .description = COMPOUND_STRING("Raises Speed when scared."), + .aiRating = 3, }, [ABILITY_MAGIC_BOUNCE] = { .name = _("Magic Bounce"), .description = COMPOUND_STRING("Reflects status moves."), + .aiRating = 9, }, [ABILITY_SAP_SIPPER] = { .name = _("Sap Sipper"), .description = COMPOUND_STRING("Grass increases Attack."), + .aiRating = 7, }, [ABILITY_PRANKSTER] = { .name = _("Prankster"), .description = COMPOUND_STRING("Status moves go first."), + .aiRating = 8, }, [ABILITY_SAND_FORCE] = { .name = _("Sand Force"), .description = COMPOUND_STRING("Powers up in a sandstorm."), + .aiRating = 4, }, [ABILITY_IRON_BARBS] = { .name = _("Iron Barbs"), .description = COMPOUND_STRING("Hurts to touch."), + .aiRating = 6, }, [ABILITY_ZEN_MODE] = { .name = _("Zen Mode"), .description = COMPOUND_STRING("Transforms at half HP."), + .aiRating = -1, }, [ABILITY_VICTORY_STAR] = { .name = _("Victory Star"), .description = COMPOUND_STRING("Raises party accuracy."), + .aiRating = 6, }, [ABILITY_TURBOBLAZE] = { .name = _("Turboblaze"), .description = COMPOUND_STRING("Moves hit through abilities."), + .aiRating = 7, }, [ABILITY_TERAVOLT] = { .name = _("Teravolt"), .description = COMPOUND_STRING("Moves hit through abilities."), + .aiRating = 7, }, [ABILITY_AROMA_VEIL] = { .name = _("Aroma Veil"), .description = COMPOUND_STRING("Prevents limiting of moves."), + .aiRating = 3, }, [ABILITY_FLOWER_VEIL] = { .name = _("Flower Veil"), .description = COMPOUND_STRING("Protects Grass-types."), + .aiRating = 0, }, [ABILITY_CHEEK_POUCH] = { .name = _("Cheek Pouch"), .description = COMPOUND_STRING("Eating Berries restores HP."), + .aiRating = 4, }, [ABILITY_PROTEAN] = { .name = _("Protean"), .description = COMPOUND_STRING("Changes type to used move."), + .aiRating = 8, }, [ABILITY_FUR_COAT] = { .name = _("Fur Coat"), .description = COMPOUND_STRING("Raises Defense."), + .aiRating = 7, }, [ABILITY_MAGICIAN] = { .name = _("Magician"), .description = COMPOUND_STRING("Steals the foe's held item."), + .aiRating = 3, }, [ABILITY_BULLETPROOF] = { .name = _("Bulletproof"), .description = COMPOUND_STRING("Avoids some projectiles."), + .aiRating = 7, }, [ABILITY_COMPETITIVE] = { .name = _("Competitive"), .description = COMPOUND_STRING("Lowered stats up Sp. Atk."), + .aiRating = 5, }, [ABILITY_STRONG_JAW] = { .name = _("Strong Jaw"), .description = COMPOUND_STRING("Boosts biting moves."), + .aiRating = 6, }, [ABILITY_REFRIGERATE] = { .name = _("Refrigerate"), .description = COMPOUND_STRING("Normal moves become Ice."), + .aiRating = 8, }, [ABILITY_SWEET_VEIL] = { .name = _("Sweet Veil"), .description = COMPOUND_STRING("Prevents party from sleep."), + .aiRating = 4, }, [ABILITY_STANCE_CHANGE] = @@ -1072,12 +1248,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("StanceChange"), #endif .description = COMPOUND_STRING("Transforms as it battles."), + .aiRating = 10, }, [ABILITY_GALE_WINGS] = { .name = _("Gale Wings"), .description = COMPOUND_STRING("Flying moves go first."), + .aiRating = 6, }, [ABILITY_MEGA_LAUNCHER] = @@ -1088,42 +1266,49 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("MegaLauncher"), #endif .description = COMPOUND_STRING("Boosts pulse moves."), + .aiRating = 7, }, [ABILITY_GRASS_PELT] = { .name = _("Grass Pelt"), .description = COMPOUND_STRING("Ups Defense in grass."), + .aiRating = 2, }, [ABILITY_SYMBIOSIS] = { .name = _("Symbiosis"), .description = COMPOUND_STRING("Passes its item to an ally."), + .aiRating = 0, }, [ABILITY_TOUGH_CLAWS] = { .name = _("Tough Claws"), .description = COMPOUND_STRING("Boosts contact moves."), + .aiRating = 7, }, [ABILITY_PIXILATE] = { .name = _("Pixilate"), .description = COMPOUND_STRING("Normal moves become Fairy."), + .aiRating = 8, }, [ABILITY_GOOEY] = { .name = _("Gooey"), .description = COMPOUND_STRING("Lowers Speed on contact."), + .aiRating = 5, }, [ABILITY_AERILATE] = { .name = _("Aerilate"), .description = COMPOUND_STRING("Normal moves become Flying."), + .aiRating = 8, }, [ABILITY_PARENTAL_BOND] = @@ -1134,24 +1319,28 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("ParentalBond"), #endif .description = COMPOUND_STRING("Moves hit twice."), + .aiRating = 10, }, [ABILITY_DARK_AURA] = { .name = _("Dark Aura"), .description = COMPOUND_STRING("Boosts Dark moves."), + .aiRating = 6, }, [ABILITY_FAIRY_AURA] = { .name = _("Fairy Aura"), .description = COMPOUND_STRING("Boosts Fairy moves."), + .aiRating = 6, }, [ABILITY_AURA_BREAK] = { .name = _("Aura Break"), .description = COMPOUND_STRING("Reverse aura abilities."), + .aiRating = 3, }, [ABILITY_PRIMORDIAL_SEA] = @@ -1162,6 +1351,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PrimrdialSea"), #endif .description = COMPOUND_STRING("Summons heavy rain."), + .aiRating = 10, }, [ABILITY_DESOLATE_LAND] = @@ -1172,24 +1362,28 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("DesolateLand"), #endif .description = COMPOUND_STRING("Summons intense sunlight."), + .aiRating = 10, }, [ABILITY_DELTA_STREAM] = { .name = _("Delta Stream"), .description = COMPOUND_STRING("Summons strong winds."), + .aiRating = 10, }, [ABILITY_STAMINA] = { .name = _("Stamina"), .description = COMPOUND_STRING("Boosts Defense when hit."), + .aiRating = 6, }, [ABILITY_WIMP_OUT] = { .name = _("Wimp Out"), .description = COMPOUND_STRING("Flees at half HP."), + .aiRating = 3, }, [ABILITY_EMERGENCY_EXIT] = @@ -1200,6 +1394,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("EmergncyExit"), #endif .description = COMPOUND_STRING("Flees at half HP."), + .aiRating = 3, }, [ABILITY_WATER_COMPACTION] = @@ -1210,96 +1405,112 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("WtrCmpaction"), #endif .description = COMPOUND_STRING("Water boosts Defense."), + .aiRating = 4, }, [ABILITY_MERCILESS] = { .name = _("Merciless"), .description = COMPOUND_STRING("Criticals poisoned foes."), + .aiRating = 4, }, [ABILITY_SHIELDS_DOWN] = { .name = _("Shields Down"), .description = COMPOUND_STRING("Shell breaks at half HP."), + .aiRating = 6, }, [ABILITY_STAKEOUT] = { .name = _("Stakeout"), .description = COMPOUND_STRING("Stronger as foes switch in."), + .aiRating = 6, }, [ABILITY_WATER_BUBBLE] = { .name = _("Water Bubble"), .description = COMPOUND_STRING("Guards from fire and burns."), + .aiRating = 8, }, [ABILITY_STEELWORKER] = { .name = _("Steelworker"), .description = COMPOUND_STRING("Powers up Steel moves."), + .aiRating = 6, }, [ABILITY_BERSERK] = { .name = _("Berserk"), .description = COMPOUND_STRING("Boosts Sp. Atk at low HP."), + .aiRating = 5, }, [ABILITY_SLUSH_RUSH] = { .name = _("Slush Rush"), .description = COMPOUND_STRING("Raises Speed in Hail or Snow."), + .aiRating = 5, }, [ABILITY_LONG_REACH] = { .name = _("Long Reach"), .description = COMPOUND_STRING("Never makes contact."), + .aiRating = 3, }, [ABILITY_LIQUID_VOICE] = { .name = _("Liquid Voice"), .description = COMPOUND_STRING("Makes sound moves Water."), + .aiRating = 5, }, [ABILITY_TRIAGE] = { .name = _("Triage"), .description = COMPOUND_STRING("Healing moves go first."), + .aiRating = 7, }, [ABILITY_GALVANIZE] = { .name = _("Galvanize"), .description = COMPOUND_STRING("Normal moves turn Electric."), + .aiRating = 8, }, [ABILITY_SURGE_SURFER] = { .name = _("Surge Surfer"), .description = COMPOUND_STRING("Faster on electricity."), + .aiRating = 4, }, [ABILITY_SCHOOLING] = { .name = _("Schooling"), .description = COMPOUND_STRING("Forms a school when strong."), + .aiRating = 6, }, [ABILITY_DISGUISE] = { .name = _("Disguise"), .description = COMPOUND_STRING("Decoy protects it once."), + .aiRating = 8, }, [ABILITY_BATTLE_BOND] = { .name = _("Battle Bond"), .description = COMPOUND_STRING("Changes form after a KO."), + .aiRating = 6, }, [ABILITY_POWER_CONSTRUCT] = @@ -1310,18 +1521,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PwrConstruct"), #endif .description = COMPOUND_STRING("Cells aid it when weakened."), + .aiRating = 10, }, [ABILITY_CORROSION] = { .name = _("Corrosion"), .description = COMPOUND_STRING("Poisons any type."), + .aiRating = 5, }, [ABILITY_COMATOSE] = { .name = _("Comatose"), .description = COMPOUND_STRING("Always drowsing."), + .aiRating = 6, }, [ABILITY_QUEENLY_MAJESTY] = @@ -1332,42 +1546,49 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("QueenlyMjsty"), #endif .description = COMPOUND_STRING("Protects from priority."), + .aiRating = 6, }, [ABILITY_INNARDS_OUT] = { .name = _("Innards Out"), .description = COMPOUND_STRING("Hurts foe when defeated."), + .aiRating = 5, }, [ABILITY_DANCER] = { .name = _("Dancer"), .description = COMPOUND_STRING("Dances along with others."), + .aiRating = 5, }, [ABILITY_BATTERY] = { .name = _("Battery"), .description = COMPOUND_STRING("Boosts ally's Sp. Atk."), + .aiRating = 0, }, [ABILITY_FLUFFY] = { .name = _("Fluffy"), .description = COMPOUND_STRING("Tougher but flammable."), + .aiRating = 5, }, [ABILITY_DAZZLING] = { .name = _("Dazzling"), .description = COMPOUND_STRING("Protects from priority."), + .aiRating = 5, }, [ABILITY_SOUL_HEART] = { .name = _("Soul-Heart"), .description = COMPOUND_STRING("KOs raise Sp. Atk."), + .aiRating = 7, }, [ABILITY_TANGLING_HAIR] = @@ -1378,12 +1599,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("TanglingHair"), #endif .description = COMPOUND_STRING("Lowers Speed on contact."), + .aiRating = 5, }, [ABILITY_RECEIVER] = { .name = _("Receiver"), .description = COMPOUND_STRING("Copies ally's ability."), + .aiRating = 0, }, [ABILITY_POWER_OF_ALCHEMY] = @@ -1394,18 +1617,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PwrOfAlchemy"), #endif .description = COMPOUND_STRING("Copies ally's ability."), + .aiRating = 0, }, [ABILITY_BEAST_BOOST] = { .name = _("Beast Boost"), .description = COMPOUND_STRING("KOs boost best stat."), + .aiRating = 7, }, [ABILITY_RKS_SYSTEM] = { .name = _("RKS System"), .description = COMPOUND_STRING("Memories change its type."), + .aiRating = 8, }, [ABILITY_ELECTRIC_SURGE] = @@ -1416,6 +1642,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("ElectrcSurge"), #endif .description = COMPOUND_STRING("Field becomes Electric."), + .aiRating = 8, }, [ABILITY_PSYCHIC_SURGE] = @@ -1426,18 +1653,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PsychicSurge"), #endif .description = COMPOUND_STRING("Field becomes weird."), + .aiRating = 8, }, [ABILITY_MISTY_SURGE] = { .name = _("Misty Surge"), .description = COMPOUND_STRING("Field becomes misty."), + .aiRating = 8, }, [ABILITY_GRASSY_SURGE] = { .name = _("Grassy Surge"), .description = COMPOUND_STRING("Field becomes grassy."), + .aiRating = 8, }, [ABILITY_FULL_METAL_BODY] = @@ -1448,6 +1678,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("FullMetalBdy"), #endif .description = COMPOUND_STRING("Prevents stat reduction."), + .aiRating = 4, }, [ABILITY_SHADOW_SHIELD] = @@ -1458,18 +1689,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("ShadowShield"), #endif .description = COMPOUND_STRING("Halves damage at full HP."), + .aiRating = 8, }, [ABILITY_PRISM_ARMOR] = { .name = _("Prism Armor"), .description = COMPOUND_STRING("Weakens “supereffective”."), + .aiRating = 6, }, [ABILITY_NEUROFORCE] = { .name = _("Neuroforce"), .description = COMPOUND_STRING("Ups “supereffective”."), + .aiRating = 6, }, [ABILITY_INTREPID_SWORD] = @@ -1480,6 +1714,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("IntrepidSwrd"), #endif .description = COMPOUND_STRING("Ups Attack on entry."), + .aiRating = 3, }, [ABILITY_DAUNTLESS_SHIELD] = @@ -1490,6 +1725,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("DauntlssShld"), #endif .description = COMPOUND_STRING("Ups Defense on entry."), + .aiRating = 3, }, [ABILITY_LIBERO] = @@ -1502,12 +1738,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = { .name = _("Ball Fetch"), .description = COMPOUND_STRING("Fetches failed Poké Ball."), + .aiRating = 0, }, [ABILITY_COTTON_DOWN] = { .name = _("Cotton Down"), .description = COMPOUND_STRING("Lower Speed of all when hit."), + .aiRating = 3, }, [ABILITY_PROPELLER_TAIL] = @@ -1518,72 +1756,84 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PropellrTail"), #endif .description = COMPOUND_STRING("Ignores foe's redirection."), + .aiRating = 2, }, [ABILITY_MIRROR_ARMOR] = { .name = _("Mirror Armor"), .description = COMPOUND_STRING("Reflect stat decreases."), + .aiRating = 6, }, [ABILITY_GULP_MISSILE] = { .name = _("Gulp Missile"), .description = COMPOUND_STRING("If hit, spits prey from sea."), + .aiRating = 3, }, [ABILITY_STALWART] = { .name = _("Stalwart"), .description = COMPOUND_STRING("Ignores foe's redirection."), + .aiRating = 2, }, [ABILITY_STEAM_ENGINE] = { .name = _("Steam Engine"), .description = COMPOUND_STRING("Fire or Water hits up Speed."), + .aiRating = 3, }, [ABILITY_PUNK_ROCK] = { .name = _("Punk Rock"), .description = COMPOUND_STRING("Ups and resists sound."), + .aiRating = 2, }, [ABILITY_SAND_SPIT] = { .name = _("Sand Spit"), .description = COMPOUND_STRING("Creates a sandstorm if hit."), + .aiRating = 5, }, [ABILITY_ICE_SCALES] = { .name = _("Ice Scales"), .description = COMPOUND_STRING("Halves special damage."), + .aiRating = 7, }, [ABILITY_RIPEN] = { .name = _("Ripen"), .description = COMPOUND_STRING("Doubles effect of Berries."), + .aiRating = 4, }, [ABILITY_ICE_FACE] = { .name = _("Ice Face"), .description = COMPOUND_STRING("Hail or Snow renew free hit."), + .aiRating = 4, }, [ABILITY_POWER_SPOT] = { .name = _("Power Spot"), .description = COMPOUND_STRING("Powers up ally moves."), + .aiRating = 2, }, [ABILITY_MIMICRY] = { .name = _("Mimicry"), .description = COMPOUND_STRING("Changes type on terrain."), + .aiRating = 2, }, [ABILITY_SCREEN_CLEANER] = @@ -1594,6 +1844,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("ScreenCleanr"), #endif .description = COMPOUND_STRING("Removes walls of light."), + .aiRating = 3, }, [ABILITY_STEELY_SPIRIT] = @@ -1604,12 +1855,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("SteelySpirit"), #endif .description = COMPOUND_STRING("Boosts ally's Steel moves."), + .aiRating = 2, }, [ABILITY_PERISH_BODY] = { .name = _("Perish Body"), .description = COMPOUND_STRING("Foe faints in 3 turns if hit."), + .aiRating = -1, }, [ABILITY_WANDERING_SPIRIT] = @@ -1620,6 +1873,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("WandrngSprit"), #endif .description = COMPOUND_STRING("Trade abilities on contact."), + .aiRating = 2, }, [ABILITY_GORILLA_TACTICS] = @@ -1630,6 +1884,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("GorillaTacti"), #endif .description = COMPOUND_STRING("Ups Attack and locks move."), + .aiRating = 4, }, [ABILITY_NEUTRALIZING_GAS] = @@ -1640,12 +1895,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("NeutrlzngGas"), #endif .description = COMPOUND_STRING("All Abilities are nullified."), + .aiRating = 5, }, [ABILITY_PASTEL_VEIL] = { .name = _("Pastel Veil"), .description = COMPOUND_STRING("Protects team from poison."), + .aiRating = 4, }, [ABILITY_HUNGER_SWITCH] = @@ -1656,18 +1913,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("HungerSwitch"), #endif .description = COMPOUND_STRING("Changes form each turn."), + .aiRating = 2, }, [ABILITY_QUICK_DRAW] = { .name = _("Quick Draw"), .description = COMPOUND_STRING("Moves first occasionally."), + .aiRating = 4, }, [ABILITY_UNSEEN_FIST] = { .name = _("Unseen Fist"), .description = COMPOUND_STRING("Contact evades protection."), + .aiRating = 6, }, [ABILITY_CURIOUS_MEDICINE] = @@ -1678,18 +1938,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("CuriusMedicn"), #endif .description = COMPOUND_STRING("Remove ally's stat changes."), + .aiRating = 3, }, [ABILITY_TRANSISTOR] = { .name = _("Transistor"), .description = COMPOUND_STRING("Ups Electric-type moves."), + .aiRating = 6, }, [ABILITY_DRAGONS_MAW] = { .name = _("Dragon's Maw"), .description = COMPOUND_STRING("Ups Dragon-type moves."), + .aiRating = 6, }, [ABILITY_CHILLING_NEIGH] = @@ -1700,24 +1963,28 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("ChillngNeigh"), #endif .description = COMPOUND_STRING("KOs boost Attack stat."), + .aiRating = 7, }, [ABILITY_GRIM_NEIGH] = { .name = _("Grim Neigh"), .description = COMPOUND_STRING("KOs boost Sp. Atk stat."), + .aiRating = 7, }, [ABILITY_AS_ONE_ICE_RIDER] = { .name = _("As One"), .description = COMPOUND_STRING("Unnerve and Chilling Neigh."), + .aiRating = 10, }, [ABILITY_AS_ONE_SHADOW_RIDER] = { .name = _("As One"), .description = COMPOUND_STRING("Unnerve and Grim Neigh."), + .aiRating = 10, }, [ABILITY_LINGERING_AROMA] = @@ -1728,12 +1995,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("LngerngAroma"), #endif .description = COMPOUND_STRING("Spreads with contact."), + .aiRating = 5, }, [ABILITY_SEED_SOWER] = { .name = _("Seed Sower"), .description = COMPOUND_STRING("Affects terrain when hit."), + .aiRating = 5, }, [ABILITY_THERMAL_EXCHANGE] = @@ -1744,12 +2013,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("ThrmlExchnge"), #endif .description = COMPOUND_STRING("Fire hits up Attack."), + .aiRating = 4, }, [ABILITY_ANGER_SHELL] = { .name = _("Anger Shell"), .description = COMPOUND_STRING("Gets angry at half HP."), + .aiRating = 3, }, [ABILITY_PURIFYING_SALT] = @@ -1760,6 +2031,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PurfyingSalt"), #endif .description = COMPOUND_STRING("Protected by pure salts."), + .aiRating = 6, }, [ABILITY_WELL_BAKED_BODY] = @@ -1770,18 +2042,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("WellBakedBdy"), #endif .description = COMPOUND_STRING("Strengthened by Fire."), + .aiRating = 5, }, [ABILITY_WIND_RIDER] = { .name = _("Wind Rider"), .description = COMPOUND_STRING("Ups Attack if hit by wind."), + .aiRating = 4, }, [ABILITY_GUARD_DOG] = { .name = _("Guard Dog"), .description = COMPOUND_STRING("Cannot be intimidated."), + .aiRating = 5, }, [ABILITY_ROCKY_PAYLOAD] = @@ -1792,24 +2067,28 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("RockyPayload"), #endif .description = COMPOUND_STRING("Powers up Rock moves."), + .aiRating = 6, }, [ABILITY_WIND_POWER] = { .name = _("Wind Power"), .description = COMPOUND_STRING("Gets charged by wind."), + .aiRating = 4, }, [ABILITY_ZERO_TO_HERO] = { .name = _("Zero to Hero"), .description = COMPOUND_STRING("Changes form on switch out."), + .aiRating = 10, }, [ABILITY_COMMANDER] = { .name = _("Commander"), .description = COMPOUND_STRING("Commands from Dondozo."), + .aiRating = 10, }, [ABILITY_ELECTROMORPHOSIS] = @@ -1819,7 +2098,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #else .name = _("Elecmrphosis"), #endif - .description = COMPOUND_STRING("Gets Charged on contact."), + .description = COMPOUND_STRING("Gets Charged when hit."), + .aiRating = 5, }, [ABILITY_PROTOSYNTHESIS] = @@ -1830,18 +2110,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Protosnthsis"), #endif .description = COMPOUND_STRING("Sun boosts best stat."), + .aiRating = 7, }, [ABILITY_QUARK_DRIVE] = { .name = _("Quark Drive"), .description = COMPOUND_STRING("Elec. field ups best stat."), + .aiRating = 7, }, [ABILITY_GOOD_AS_GOLD] = { .name = _("Good as Gold"), .description = COMPOUND_STRING("Avoids status problems."), + .aiRating = 8, }, [ABILITY_VESSEL_OF_RUIN] = @@ -1852,6 +2135,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("VesselOfRuin"), #endif .description = COMPOUND_STRING("Lowers foes' sp. damage."), + .aiRating = 5, }, [ABILITY_SWORD_OF_RUIN] = @@ -1861,7 +2145,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #else .name = _("SwordOfRuin"), #endif - .description = COMPOUND_STRING("Lowers foes' defense."), + .description = COMPOUND_STRING("Lowers foes' Defense."), + .aiRating = 5, }, [ABILITY_TABLETS_OF_RUIN] = @@ -1872,6 +2157,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("TabltsOfRuin"), #endif .description = COMPOUND_STRING("Lowers foes' damage."), + .aiRating = 5, }, [ABILITY_BEADS_OF_RUIN] = @@ -1881,7 +2167,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #else .name = _("BeadsOfRuin"), #endif - .description = COMPOUND_STRING("Lowers foes' sp. defense."), + .description = COMPOUND_STRING("Lowers foes' Sp. Defense."), + .aiRating = 5, }, [ABILITY_ORICHALCUM_PULSE] = @@ -1892,6 +2179,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("OrchlcumPlse"), #endif .description = COMPOUND_STRING("Summons sunlight in battle."), + .aiRating = 8, }, [ABILITY_HADRON_ENGINE] = @@ -1902,24 +2190,28 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("HadronEngine"), #endif .description = COMPOUND_STRING("Field becomes Electric."), + .aiRating = 8, }, [ABILITY_OPPORTUNIST] = { .name = _("Opportunist"), .description = COMPOUND_STRING("Copies foe's stat change."), + .aiRating = 5, }, [ABILITY_CUD_CHEW] = { .name = _("Cud Chew"), .description = COMPOUND_STRING("Eats a used berry again."), + .aiRating = 4, }, [ABILITY_SHARPNESS] = { .name = _("Sharpness"), .description = COMPOUND_STRING("Strengthens slicing moves."), + .aiRating = 7, }, [ABILITY_SUPREME_OVERLORD] = @@ -1930,30 +2222,35 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("SuprmeOvrlrd"), #endif .description = COMPOUND_STRING("Inherits fallen's strength."), + .aiRating = 6, }, [ABILITY_COSTAR] = { .name = _("Costar"), .description = COMPOUND_STRING("Copies ally's stat changes."), + .aiRating = 5, }, [ABILITY_TOXIC_DEBRIS] = { .name = _("Toxic Debris"), .description = COMPOUND_STRING("Throws poison spikes if hit."), + .aiRating = 4, }, [ABILITY_ARMOR_TAIL] = { .name = _("Armor Tail"), .description = COMPOUND_STRING("Protects from priority."), + .aiRating = 5, }, [ABILITY_EARTH_EATER] = { .name = _("Earth Eater"), .description = COMPOUND_STRING("Eats ground to heal HP."), + .aiRating = 7, }, [ABILITY_MYCELIUM_MIGHT] = @@ -1964,18 +2261,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("MceliumMight"), #endif .description = COMPOUND_STRING("Status moves never fail."), + .aiRating = 2, }, [ABILITY_HOSPITALITY] = { .name = _("Hospitality"), .description = COMPOUND_STRING("Restores ally's HP."), + .aiRating = 5, }, [ABILITY_MINDS_EYE] = { .name = _("Mind's Eye"), .description = COMPOUND_STRING("Keen Eye and Scrappy."), + .aiRating = 8, }, [ABILITY_EMBODY_ASPECT_TEAL] = @@ -1986,6 +2286,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("EmbodyAspect"), #endif .description = COMPOUND_STRING("Raises Speed."), + .aiRating = 6, }, [ABILITY_EMBODY_ASPECT_HEARTHFLAME] = @@ -1996,6 +2297,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("EmbodyAspect"), #endif .description = COMPOUND_STRING("Raises Attack."), + .aiRating = 6, }, [ABILITY_EMBODY_ASPECT_WELLSPRING] = @@ -2006,6 +2308,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("EmbodyAspect"), #endif .description = COMPOUND_STRING("Raises Sp. Def."), + .aiRating = 6, }, [ABILITY_EMBODY_ASPECT_CORNERSTONE] = @@ -2016,12 +2319,14 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("EmbodyAspect"), #endif .description = COMPOUND_STRING("Raises Defense."), + .aiRating = 6, }, [ABILITY_TOXIC_CHAIN] = { .name = _("Toxic Chain"), .description = COMPOUND_STRING("Moves can poison."), + .aiRating = 8, }, [ABILITY_SUPERSWEET_SYRUP] = @@ -2032,18 +2337,21 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("SuprswtSyrup"), #endif .description = COMPOUND_STRING("Lowers the foe's Speed."), + .aiRating = 5, }, [ABILITY_TERA_SHIFT] = { .name = _("Tera Shift"), .description = COMPOUND_STRING("Terasteralizes upon entry."), + .aiRating = 10, }, [ABILITY_TERA_SHELL] = { .name = _("Tera Shell"), .description = COMPOUND_STRING("Resistant to types at full HP."), + .aiRating = 10, }, [ABILITY_TERAFORM_ZERO] = @@ -2054,6 +2362,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("TeraformZero"), #endif .description = COMPOUND_STRING("Removes weather and terrain."), + .aiRating = 10, }, [ABILITY_POISON_PUPPETEER] = @@ -2064,5 +2373,6 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("PoisnPuppter"), #endif .description = COMPOUND_STRING("Confuses poisoned foes."), + .aiRating = 8, }, };