From 2c3db747027aab2346b57058115c50814619562f Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Fri, 24 Mar 2023 10:36:10 -0400 Subject: [PATCH 01/25] fix base power calcs using battler addresses --- src/battle_util.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index 7bf090a73b..8338d10459 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8602,7 +8602,7 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) basePower *= 2; break; case EFFECT_PURSUIT: - if (gActionsByTurnOrder[GetBattlerTurnOrderNum(gBattlerTarget)] == B_ACTION_SWITCH) + if (gActionsByTurnOrder[GetBattlerTurnOrderNum(battlerDef)] == B_ACTION_SWITCH) basePower *= 2; break; case EFFECT_NATURAL_GIFT: @@ -8736,12 +8736,12 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) #if B_HIDDEN_POWER_DMG < GEN_6 u8 powerBits; - powerBits = ((gBattleMons[gBattlerAttacker].hpIV & 2) >> 1) - | ((gBattleMons[gBattlerAttacker].attackIV & 2) << 0) - | ((gBattleMons[gBattlerAttacker].defenseIV & 2) << 1) - | ((gBattleMons[gBattlerAttacker].speedIV & 2) << 2) - | ((gBattleMons[gBattlerAttacker].spAttackIV & 2) << 3) - | ((gBattleMons[gBattlerAttacker].spDefenseIV & 2) << 4); + powerBits = ((gBattleMons[battlerAtk].hpIV & 2) >> 1) + | ((gBattleMons[battlerAtk].attackIV & 2) << 0) + | ((gBattleMons[battlerAtk].defenseIV & 2) << 1) + | ((gBattleMons[battlerAtk].speedIV & 2) << 2) + | ((gBattleMons[battlerAtk].spAttackIV & 2) << 3) + | ((gBattleMons[battlerAtk].spDefenseIV & 2) << 4); basePower = (40 * powerBits) / 63 + 30; #endif @@ -8753,15 +8753,15 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) break; case EFFECT_TERRAIN_PULSE: if ((gFieldStatuses & STATUS_FIELD_TERRAIN_ANY) - && IsBattlerGrounded(gBattlerAttacker)) + && IsBattlerGrounded(battlerAtk)) basePower *= 2; break; case EFFECT_EXPANDING_FORCE: - if (IsBattlerTerrainAffected(gBattlerAttacker, STATUS_FIELD_PSYCHIC_TERRAIN)) + if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_PSYCHIC_TERRAIN)) MulModifier(&basePower, UQ_4_12(1.5)); break; case EFFECT_RISING_VOLTAGE: - if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_ELECTRIC_TERRAIN)) + if (IsBattlerTerrainAffected(battlerDef, STATUS_FIELD_ELECTRIC_TERRAIN)) basePower *= 2; break; case EFFECT_BEAT_UP: @@ -8770,7 +8770,7 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) #endif break; case EFFECT_PSYBLADE: - if (IsBattlerTerrainAffected(gBattlerAttacker, STATUS_FIELD_ELECTRIC_TERRAIN)) + if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_ELECTRIC_TERRAIN)) MulModifier(&basePower, UQ_4_12(1.5)); break; } @@ -9611,7 +9611,7 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move || (gSideStatuses[defSide] & SIDE_STATUS_AURORA_VEIL)) && abilityAtk != ABILITY_INFILTRATOR && !(isCrit) - && !gProtectStructs[gBattlerAttacker].confusionSelfDmg) + && !gProtectStructs[battlerAtk].confusionSelfDmg) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) MulModifier(&finalModifier, UQ_4_12(0.66)); @@ -9620,7 +9620,7 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move } // Parental Bond Second Strike - if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_2ND_HIT) + if (gSpecialStatuses[battlerAtk].parentalBondState == PARENTAL_BOND_2ND_HIT) { if (B_PARENTAL_BOND_DMG < GEN_7) MulModifier(&finalModifier, UQ_4_12(0.5)); From 0b8285737a7434c8d48d05e623105fea2e8186cf Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 27 Mar 2023 09:19:48 -0300 Subject: [PATCH 02/25] Fixed Comatose AI checks --- include/battle_ai_util.h | 1 + src/battle_ai_main.c | 8 ++++---- src/battle_ai_util.c | 5 +++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 11eba7b661..892736b54e 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -144,6 +144,7 @@ bool32 AnyPartyMemberStatused(u8 battlerId, bool32 checkSoundproof); u32 ShouldTryToFlinch(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbility, u16 move); bool32 ShouldTrap(u8 battlerAtk, u8 battlerDef, u16 move); bool32 IsWakeupTurn(u8 battler); +bool32 AI_IsBattlerAsleepOrComatose(u8 battlerId); // partner logic u16 GetAllyChosenMove(u8 battlerId); diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 19eedb41cc..a359358b92 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -974,7 +974,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } break; case EFFECT_DREAM_EATER: - if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP) || AI_DATA->abilities[battlerDef] == ABILITY_COMATOSE) + if (!AI_IsBattlerAsleepOrComatose(battlerDef)) score -= 8; else if (effectiveness == AI_EFFECTIVENESS_x0) score -= 10; @@ -1453,7 +1453,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; case EFFECT_SNORE: case EFFECT_SLEEP_TALK: - if (IsWakeupTurn(battlerAtk) || (!(gBattleMons[battlerAtk].status1 & STATUS1_SLEEP) || AI_DATA->abilities[battlerAtk] != ABILITY_COMATOSE)) + if (IsWakeupTurn(battlerAtk) || !AI_IsBattlerAsleepOrComatose(battlerAtk)) score -= 10; // if mon will wake up, is not asleep, or is not comatose break; case EFFECT_MEAN_LOOK: @@ -1463,7 +1463,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_NIGHTMARE: if (gBattleMons[battlerDef].status2 & STATUS2_NIGHTMARE) score -= 10; - else if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP) || AI_DATA->abilities[battlerDef] == ABILITY_COMATOSE) + else if (!AI_IsBattlerAsleepOrComatose(battlerDef)) score -= 8; else if (DoesPartnerHaveSameMoveEffect(BATTLE_PARTNER(battlerAtk), battlerDef, move, AI_DATA->partnerMove)) score -= 10; @@ -3780,7 +3780,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_NIGHTMARE: if (AI_DATA->abilities[battlerDef] != ABILITY_MAGIC_GUARD && !(gBattleMons[battlerDef].status2 & STATUS2_NIGHTMARE) - && (AI_DATA->abilities[battlerDef] == ABILITY_COMATOSE || gBattleMons[battlerDef].status1 & STATUS1_SLEEP)) + && AI_IsBattlerAsleepOrComatose(battlerDef)) { score += 5; if (IsBattlerTrapped(battlerDef, TRUE)) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index a9e3ed3e0b..7b8fb04638 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -3749,3 +3749,8 @@ bool32 ShouldUseZMove(u8 battlerAtk, u8 battlerDef, u16 chosenMove) return FALSE; } + +bool32 AI_IsBattlerAsleepOrComatose(u8 battlerId) +{ + return (gBattleMons[battlerId].status1 & STATUS1_SLEEP) || AI_DATA->abilities[battlerId] == ABILITY_COMATOSE; +} From 7b306b61473f2fa31b676769c7fb66fbf6bb7d2d Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Mon, 27 Mar 2023 17:32:16 +0100 Subject: [PATCH 03/25] RandomElement for structured RNG Converts Tri Attack and Dire Claw to use structured RNG. --- include/random.h | 16 ++++- src/battle_script_commands.c | 5 +- src/random.c | 10 +++- test/move_effect_dire_claw.c | 46 ++++++-------- test/move_effect_tri_attack.c | 48 ++++++--------- test/random.c | 33 +++++++++- test/test_battle.h | 16 ++++- test/test_runner_battle.c | 109 +++++++++++++++++++++++++++------- 8 files changed, 199 insertions(+), 84 deletions(-) diff --git a/include/random.h b/include/random.h index 60c718348c..fd340c26db 100644 --- a/include/random.h +++ b/include/random.h @@ -29,7 +29,12 @@ void SeedRng2(u16 seed); * * RandomTag identifies the purpose of the value. * - * RandomUniform(tag, lo, hi) returns a number from lo to hi inclusive. + * RandomUniform(tag, lo, hi) returns a number from lo to hi inclusive + * with uniform probability. + * + * RandomElement(tag, array) returns an element in array with uniform + * probability. The array must be known at compile-time (e.g. a global + * const array). * * RandomPercentage(tag, t) returns FALSE with probability (1-t)/100, * and TRUE with probability t/100. @@ -47,6 +52,7 @@ enum RandomTag RNG_CRITICAL_HIT, RNG_CUTE_CHARM, RNG_DAMAGE_MODIFIER, + RNG_DIRE_CLAW, RNG_FLAME_BODY, RNG_FORCE_RANDOM_SWITCH, RNG_FROZEN, @@ -60,6 +66,7 @@ enum RandomTag RNG_SPEED_TIE, RNG_STATIC, RNG_STENCH, + RNG_TRI_ATTACK, }; #define RandomWeighted(tag, ...) \ @@ -77,10 +84,17 @@ enum RandomTag RandomWeightedArray(tag, 100, ARRAY_COUNT(weights), weights); \ }) +#define RandomElement(tag, array) \ + ({ \ + *(typeof((array)[0]) *)RandomElementArray(tag, array, sizeof((array)[0]), ARRAY_COUNT(array)); \ + }) + u32 RandomUniform(enum RandomTag, u32 lo, u32 hi); u32 RandomWeightedArray(enum RandomTag, u32 sum, u32 n, const u8 *weights); +const void *RandomElementArray(enum RandomTag, const void *array, size_t size, size_t count); u32 RandomUniformDefault(enum RandomTag, u32 lo, u32 hi); u32 RandomWeightedArrayDefault(enum RandomTag, u32 sum, u32 n, const u8 *weights); +const void *RandomElementArrayDefault(enum RandomTag, const void *array, size_t size, size_t count); #endif // GUARD_RANDOM_H diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 3376f9db60..62dcbf4472 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3318,7 +3318,8 @@ void SetMoveEffect(bool32 primary, u32 certain) } else { - gBattleScripting.moveEffect = Random() % 3 + 3; + static const u8 sTriAttackEffects[] = { MOVE_EFFECT_BURN, MOVE_EFFECT_FREEZE, MOVE_EFFECT_PARALYSIS }; + gBattleScripting.moveEffect = RandomElement(RNG_TRI_ATTACK, sTriAttackEffects); SetMoveEffect(FALSE, 0); } break; @@ -3779,7 +3780,7 @@ void SetMoveEffect(bool32 primary, u32 certain) if (!gBattleMons[gEffectBattler].status1) { static const u8 sDireClawEffects[] = { MOVE_EFFECT_POISON, MOVE_EFFECT_PARALYSIS, MOVE_EFFECT_SLEEP }; - gBattleScripting.moveEffect = sDireClawEffects[Random() % ARRAY_COUNT(sDireClawEffects)]; + gBattleScripting.moveEffect = RandomElement(RNG_DIRE_CLAW, sDireClawEffects); SetMoveEffect(TRUE, 0); } break; diff --git a/src/random.c b/src/random.c index e59b563876..14983e7764 100644 --- a/src/random.c +++ b/src/random.c @@ -38,9 +38,12 @@ u32 RandomUniform(enum RandomTag tag, u32 lo, u32 hi); __attribute__((weak, alias("RandomWeightedArrayDefault"))) u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights); +__attribute__((weak, alias("RandomElementArrayDefault"))) +const void *RandomElementArray(enum RandomTag tag, const void *array, size_t size, size_t count); + u32 RandomUniformDefault(enum RandomTag tag, u32 lo, u32 hi) { - return lo + (((hi - lo) * Random()) >> 16); + return lo + (((hi - lo + 1) * Random()) >> 16); } u32 RandomWeightedArrayDefault(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) @@ -55,3 +58,8 @@ u32 RandomWeightedArrayDefault(enum RandomTag tag, u32 sum, u32 n, const u8 *wei } return n - 1; } + +const void *RandomElementArrayDefault(enum RandomTag tag, const void *array, size_t size, size_t count) +{ + return (const u8 *)array + size * RandomUniformDefault(tag, 0, count - 1); +} diff --git a/test/move_effect_dire_claw.c b/test/move_effect_dire_claw.c index f02555df30..2212c3cb0e 100644 --- a/test/move_effect_dire_claw.c +++ b/test/move_effect_dire_claw.c @@ -6,21 +6,14 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_DIRE_CLAW].effect == EFFECT_DIRE_CLAW); } -// found by brute-force -#define RNG_SLEEP 0xcb0 -#define RNG_POISON 0x2BE -#define RNG_PARALYSIS 5 - SINGLE_BATTLE_TEST("Dire Claw can inflict poison, paralysis or sleep") { u8 statusAnim; - u32 rng; - KNOWN_FAILING; - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = RNG_POISON; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = RNG_SLEEP; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; } + PASSES_RANDOMLY(1, 3, RNG_DIRE_CLAW); GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -48,15 +41,14 @@ SINGLE_BATTLE_TEST("Dire Claw cannot poison/paralyze poison/electric types respe u16 species; u32 rng; #if B_PARALYZE_ELECTRIC >= GEN_6 - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_RAICHU; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; } #endif // B_PARALYZE_ELECTRIC - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = RNG_POISON; species = SPECIES_ARBOK;} + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = MOVE_EFFECT_POISON; species = SPECIES_ARBOK;} GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(species); } WHEN { - TURN { MOVE(player, MOVE_DIRE_CLAW); } + TURN { MOVE(player, MOVE_DIRE_CLAW, WITH_RNG(RNG_DIRE_CLAW, rng)); } TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DIRE_CLAW, player); @@ -76,21 +68,20 @@ SINGLE_BATTLE_TEST("Dire Claw cannot poison/paralyze/cause to fall asleep pokemo u8 statusAnim; u16 species, ability; u32 rng; - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; } #if P_GEN_4_POKEMON == TRUE - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; } #endif // P_GEN_4_POKEMON - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = RNG_POISON; species = SPECIES_ZANGOOSE; ability = ABILITY_IMMUNITY; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = RNG_SLEEP; species = SPECIES_VIGOROTH; ability = ABILITY_VITAL_SPIRIT; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = RNG_SLEEP; species = SPECIES_HYPNO; ability = ABILITY_INSOMNIA; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = MOVE_EFFECT_POISON; species = SPECIES_ZANGOOSE; ability = ABILITY_IMMUNITY; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = MOVE_EFFECT_SLEEP; species = SPECIES_VIGOROTH; ability = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = MOVE_EFFECT_SLEEP; species = SPECIES_HYPNO; ability = ABILITY_INSOMNIA; } GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(species) {Ability(ability);} } WHEN { - TURN { MOVE(player, MOVE_DIRE_CLAW); } + TURN { MOVE(player, MOVE_DIRE_CLAW, WITH_RNG(RNG_DIRE_CLAW, rng)); } TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DIRE_CLAW, player); @@ -112,15 +103,14 @@ SINGLE_BATTLE_TEST("Dire Claw cannot poison/paralyze/cause to fall asleep a mon { u8 statusAnim; u32 rng; - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = RNG_POISON; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = RNG_SLEEP; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = MOVE_EFFECT_POISON; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = MOVE_EFFECT_SLEEP; } GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_BURN);} } WHEN { - TURN { MOVE(player, MOVE_DIRE_CLAW); } + TURN { MOVE(player, MOVE_DIRE_CLAW, WITH_RNG(RNG_DIRE_CLAW, rng)); } TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DIRE_CLAW, player); diff --git a/test/move_effect_tri_attack.c b/test/move_effect_tri_attack.c index 9bfacdb985..c3fbfaaceb 100644 --- a/test/move_effect_tri_attack.c +++ b/test/move_effect_tri_attack.c @@ -6,21 +6,14 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_TRI_ATTACK].effect == EFFECT_TRI_ATTACK); } -// found by brute-force -#define RNG_PARALYSIS 0xcb0 -#define RNG_BURN 0x2BE -#define RNG_FREEZE 5 - SINGLE_BATTLE_TEST("Tri Attack can inflict paralysis, burn or freeze") { u8 statusAnim; - u32 rng; - KNOWN_FAILING; - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = RNG_BURN; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = RNG_FREEZE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; } + PASSES_RANDOMLY(1, 3, RNG_TRI_ATTACK); GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -48,16 +41,15 @@ SINGLE_BATTLE_TEST("Tri Attack cannot paralyze/burn/freeze electric/fire/ice typ u16 species; u32 rng; #if B_PARALYZE_ELECTRIC >= GEN_6 - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_RAICHU;} + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU;} #endif // B_PARALYZE_ELECTRIC - PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = RNG_BURN; species = SPECIES_ARCANINE; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = RNG_FREEZE; species = SPECIES_GLALIE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = MOVE_EFFECT_BURN; species = SPECIES_ARCANINE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = MOVE_EFFECT_FREEZE; species = SPECIES_GLALIE; } GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(species); } WHEN { - TURN { MOVE(player, MOVE_TRI_ATTACK); } + TURN { MOVE(player, MOVE_TRI_ATTACK, WITH_RNG(RNG_TRI_ATTACK, rng)); } TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRI_ATTACK, player); @@ -80,23 +72,22 @@ SINGLE_BATTLE_TEST("Tri Attack cannot paralyze/burn/freeze pokemon with abilitie u8 statusAnim; u16 species, ability; u32 rng; - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; } #if P_GEN_4_POKEMON == TRUE - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; } #endif // P_GEN_4_POKEMON #if P_GEN_7_POKEMON == TRUE - PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = RNG_BURN; species = SPECIES_DEWPIDER; ability = ABILITY_WATER_BUBBLE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = MOVE_EFFECT_BURN; species = SPECIES_DEWPIDER; ability = ABILITY_WATER_BUBBLE; } #endif // P_GEN_7_POKEMON - PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = RNG_BURN; species = SPECIES_SEAKING; ability = ABILITY_WATER_VEIL; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = RNG_FREEZE; species = SPECIES_CAMERUPT; ability = ABILITY_MAGMA_ARMOR; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = MOVE_EFFECT_BURN; species = SPECIES_SEAKING; ability = ABILITY_WATER_VEIL; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = MOVE_EFFECT_FREEZE; species = SPECIES_CAMERUPT; ability = ABILITY_MAGMA_ARMOR; } GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(species) {Ability(ability);} } WHEN { - TURN { MOVE(player, MOVE_TRI_ATTACK); } + TURN { MOVE(player, MOVE_TRI_ATTACK, WITH_RNG(RNG_TRI_ATTACK, rng)); } TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRI_ATTACK, player); @@ -118,15 +109,14 @@ SINGLE_BATTLE_TEST("Tri Attack cannot paralyze/burn/freeze a mon which is alread { u8 statusAnim; u32 rng; - PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = RNG_PARALYSIS; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = RNG_BURN; } - PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = RNG_FREEZE; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = MOVE_EFFECT_BURN; } + PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = MOVE_EFFECT_FREEZE; } GIVEN { - RNGSeed(rng); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);} } WHEN { - TURN { MOVE(player, MOVE_TRI_ATTACK); } + TURN { MOVE(player, MOVE_TRI_ATTACK, WITH_RNG(RNG_TRI_ATTACK, rng)); } TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRI_ATTACK, player); diff --git a/test/random.c b/test/random.c index abaf4a4f82..39f587c062 100644 --- a/test/random.c +++ b/test/random.c @@ -34,6 +34,17 @@ TEST("RandomWeighted generates 0..n-1") } } +TEST("RandomElement generates an element") +{ + u32 i; + static const u8 es[4] = { 1, 2, 4, 8 }; + for (i = 0; i < 1024; i++) + { + u32 e = *(const u8 *)RandomElementArrayDefault(RNG_NONE, es, sizeof(es[0]), ARRAY_COUNT(es)); + EXPECT(e == 1 || e == 2 || e == 4 || e == 8); + } +} + TEST("RandomUniform generates uniform distribution") { u32 i, error; @@ -42,7 +53,7 @@ TEST("RandomUniform generates uniform distribution") memset(distribution, 0, sizeof(distribution)); for (i = 0; i < 4096; i++) { - u32 r = RandomUniformDefault(RNG_NONE, 0, ARRAY_COUNT(distribution)); + u32 r = RandomUniformDefault(RNG_NONE, 0, ARRAY_COUNT(distribution) - 1); EXPECT(0 <= r && r < ARRAY_COUNT(distribution)); distribution[r]++; } @@ -79,3 +90,23 @@ TEST("RandomWeighted generates distribution in proportion to the weights") EXPECT_LT(error, UQ_4_12(0.025)); } + +TEST("RandomElement generates a uniform distribution") +{ + u32 i, error; + static const u8 es[4] = { 1, 2, 4, 8 }; + u16 distribution[9]; + + memset(distribution, 0, sizeof(distribution)); + for (i = 0; i < 4096; i++) + { + u32 e = *(const u8 *)RandomElementArrayDefault(RNG_NONE, es, sizeof(es[0]), ARRAY_COUNT(es)); + distribution[e]++; + } + + error = 0; + for (i = 0; i < ARRAY_COUNT(es); i++) + error += abs(UQ_4_12(0.25) - distribution[es[i]]); + + EXPECT_LT(error, UQ_4_12(0.025)); +} diff --git a/test/test_battle.h b/test/test_battle.h index 0e0464254f..60d0dc33cc 100644 --- a/test/test_battle.h +++ b/test/test_battle.h @@ -303,13 +303,14 @@ * The inference process is naive, if your test contains anything that * modifies the speed of a battler you should specify them explicitly. * - * MOVE(battler, move | moveSlot:, [megaEvolve:], [hit:], [criticalHit:], [target:], [allowed:]) + * MOVE(battler, move | moveSlot:, [megaEvolve:], [hit:], [criticalHit:], [target:], [allowed:], [WITH_RNG(tag, value]) * Used when the battler chooses Fight. Either the move ID or move slot * must be specified. megaEvolve: TRUE causes the battler to Mega Evolve * if able, hit: FALSE causes the move to miss, criticalHit: TRUE causes * the move to land a critical hit, target: is used in double battles to * choose the target (when necessary), and allowed: FALSE is used to - * reject an illegal move e.g. a Disabled one. + * reject an illegal move e.g. a Disabled one. WITH_RNG allows the move + * to specify an explicit outcome for an RNG tag. * MOVE(playerLeft, MOVE_TACKLE, target: opponentRight); * If the battler does not have an explicit Moves specified the moveset * will be populated based on the MOVEs it uses. @@ -538,11 +539,18 @@ struct QueuedEvent } as; }; +struct TurnRNG +{ + u16 tag; + u16 value; +}; + struct BattlerTurn { u8 hit:2; u8 criticalHit:2; u8 secondaryEffect:2; + struct TurnRNG rng; }; struct BattleTestData @@ -758,6 +766,8 @@ enum { TURN_CLOSED, TURN_OPEN, TURN_CLOSING }; #define SKIP_TURN(battler) SkipTurn(__LINE__, battler) #define SEND_OUT(battler, partyIndex) SendOut(__LINE__, battler, partyIndex) +#define WITH_RNG(tag, value) rng: ((struct TurnRNG) { tag, value }) + struct MoveContext { u16 move; @@ -777,6 +787,8 @@ struct MoveContext u16 explicitAllowed:1; struct BattlePokemon *target; bool8 explicitTarget; + struct TurnRNG rng; + bool8 explicitRNG; }; void OpenTurn(u32 sourceLine); diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index d869bf2e51..1b03341a45 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -292,6 +292,20 @@ static void BattleTest_Run(void *data) u32 RandomUniform(enum RandomTag tag, u32 lo, u32 hi) { + const struct BattlerTurn *turn = NULL; + u32 default_ = hi; + + if (gCurrentTurnActionNumber < gBattlersCount) + { + u32 battlerId = gBattlerByTurnOrder[gCurrentTurnActionNumber]; + turn = &DATA.battleRecordTurns[gBattleResults.battleTurnCounter][battlerId]; + } + + if (turn && turn->rng.tag == tag) + { + default_ = turn->rng.value; + } + if (tag == STATE->rngTag) { u32 n = hi - lo + 1; @@ -308,7 +322,7 @@ u32 RandomUniform(enum RandomTag tag, u32 lo, u32 hi) return STATE->runTrial + lo; } - return hi; + return default_; } u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) @@ -322,28 +336,35 @@ u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) turn = &DATA.battleRecordTurns[gBattleResults.battleTurnCounter][battlerId]; } - switch (tag) + if (turn && turn->rng.tag == tag) { - case RNG_ACCURACY: - ASSUME(n == 2); - if (turn && turn->hit) - return turn->hit - 1; - default_ = TRUE; - break; + default_ = turn->rng.value; + } + else + { + switch (tag) + { + case RNG_ACCURACY: + ASSUME(n == 2); + if (turn && turn->hit) + return turn->hit - 1; + default_ = TRUE; + break; - case RNG_CRITICAL_HIT: - ASSUME(n == 2); - if (turn && turn->criticalHit) - return turn->criticalHit - 1; - default_ = FALSE; - break; + case RNG_CRITICAL_HIT: + ASSUME(n == 2); + if (turn && turn->criticalHit) + return turn->criticalHit - 1; + default_ = FALSE; + break; - case RNG_SECONDARY_EFFECT: - ASSUME(n == 2); - if (turn && turn->secondaryEffect) - return turn->secondaryEffect - 1; - default_ = TRUE; - break; + case RNG_SECONDARY_EFFECT: + ASSUME(n == 2); + if (turn && turn->secondaryEffect) + return turn->secondaryEffect - 1; + default_ = TRUE; + break; + } } if (tag == STATE->rngTag) @@ -365,6 +386,52 @@ u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) return default_; } +const void *RandomElementArray(enum RandomTag tag, const void *array, size_t size, size_t count) +{ + const struct BattlerTurn *turn = NULL; + u32 index = count-1; + + if (gCurrentTurnActionNumber < gBattlersCount) + { + u32 battlerId = gBattlerByTurnOrder[gCurrentTurnActionNumber]; + turn = &DATA.battleRecordTurns[gBattleResults.battleTurnCounter][battlerId]; + } + + if (turn && turn->rng.tag == tag) + { + u32 element; + for (index = 0; index < count; index++) + { + memcpy(&element, (const u8 *)array + size * index, size); + if (element == turn->rng.value) + break; + } + if (index == count) + { + // TODO: Incorporate the line number. + const char *filename = gTestRunnerState.test->filename; + Test_ExitWithResult(TEST_RESULT_ERROR, "%s: RandomElement illegal value requested: %d", filename, turn->rng.value); + } + } + + if (tag == STATE->rngTag) + { + if (STATE->trials == 1) + { + STATE->trials = count; + PrintTestName(); + } + else if (STATE->trials != count) + { + Test_ExitWithResult(TEST_RESULT_ERROR, "RandomElement called with inconsistent trials %d and %d", STATE->trials, count); + } + STATE->trialRatio = Q_4_12(1) / count; + index = STATE->runTrial; + } + + return (const u8 *)array + size * index; +} + static s32 TryAbilityPopUp(s32 i, s32 n, u32 battlerId, u32 ability) { struct QueuedAbilityEvent *event; @@ -1357,6 +1424,8 @@ void Move(u32 sourceLine, struct BattlePokemon *battler, struct MoveContext ctx) DATA.battleRecordTurns[DATA.turns][battlerId].criticalHit = 1 + ctx.criticalHit; if (ctx.explicitSecondaryEffect) DATA.battleRecordTurns[DATA.turns][battlerId].secondaryEffect = 1 + ctx.secondaryEffect; + if (ctx.explicitRNG) + DATA.battleRecordTurns[DATA.turns][battlerId].rng = ctx.rng; if (!(DATA.actionBattlers & (1 << battlerId))) { From 6a7466c92982bb63f98554857f0ce48cf1347c2b Mon Sep 17 00:00:00 2001 From: pkmnsnfrn Date: Wed, 29 Mar 2023 11:11:07 -0700 Subject: [PATCH 04/25] =?UTF-8?q?Added=20B=5FDOUBLE=5FWILD=5FREQUIRE=5F2?= =?UTF-8?q?=5FMONS=20to=20allow=20use=20of=20B=5FDOUBLE=5FWILD=5FCHANCE=20?= =?UTF-8?q?even=20when=20there=20is=20only=20one=20Pok=C3=A9mon=20in=20the?= =?UTF-8?q?=20party?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/config/battle.h | 1 + src/wild_encounter.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/config/battle.h b/include/config/battle.h index 4a3d6382fb..66d4b92aa3 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -183,6 +183,7 @@ // Other settings #define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. +#define B_DOUBLE_WILD_REQUIRE_2_MONS FALSE // If set to TRUE, when the player only has one Pokémon in the party, randomly generated wild battles will always be a Single battle, regardless of the number used in B_DOUBLE_WILD_CHANCE. #define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight. #define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses. #define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper) diff --git a/src/wild_encounter.c b/src/wild_encounter.c index d228b87a14..ef668c3a1c 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -1097,7 +1097,11 @@ static void ApplyCleanseTagEncounterRateMod(u32 *encRate) bool8 TryDoDoubleWildBattle(void) { +#if B_DOUBLE_WILD_REQUIRE_2_MONS == TRUE if (GetSafariZoneFlag() || GetMonsStateToDoubles() != PLAYER_HAS_TWO_USABLE_MONS) +#else + if (GetSafariZoneFlag()) +#endif return FALSE; #if B_FLAG_FORCE_DOUBLE_WILD != 0 else if (FlagGet(B_FLAG_FORCE_DOUBLE_WILD)) From 83ef5a229de4aede0beb81270b807c65b2b6f0c9 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Fri, 31 Mar 2023 20:26:19 +0200 Subject: [PATCH 05/25] =?UTF-8?q?Center=20gen=201=20pok=C3=A9mon=20icons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- graphics/pokemon/aerodactyl/icon.png | Bin 403 -> 431 bytes graphics/pokemon/alakazam/icon.png | Bin 492 -> 512 bytes graphics/pokemon/articuno/icon.png | Bin 386 -> 406 bytes graphics/pokemon/bellsprout/icon.png | Bin 311 -> 296 bytes graphics/pokemon/butterfree/icon.png | Bin 413 -> 430 bytes graphics/pokemon/cloyster/icon.png | Bin 454 -> 418 bytes graphics/pokemon/dodrio/icon.png | Bin 492 -> 452 bytes graphics/pokemon/dragonite/icon.png | Bin 407 -> 412 bytes graphics/pokemon/exeggutor/icon.png | Bin 376 -> 385 bytes graphics/pokemon/gastly/icon.png | Bin 400 -> 389 bytes graphics/pokemon/gyarados/icon.png | Bin 608 -> 563 bytes graphics/pokemon/haunter/icon.png | Bin 482 -> 405 bytes graphics/pokemon/hypno/icon.png | Bin 424 -> 443 bytes graphics/pokemon/kingler/icon.png | Bin 496 -> 461 bytes graphics/pokemon/koffing/icon.png | Bin 463 -> 476 bytes graphics/pokemon/krabby/icon.png | Bin 468 -> 407 bytes graphics/pokemon/magnemite/icon.png | Bin 313 -> 319 bytes graphics/pokemon/magneton/icon.png | Bin 360 -> 387 bytes graphics/pokemon/marowak/icon.png | Bin 330 -> 351 bytes graphics/pokemon/meowth/icon.png | Bin 348 -> 362 bytes graphics/pokemon/mew/icon.png | Bin 338 -> 348 bytes graphics/pokemon/mewtwo/icon.png | Bin 401 -> 403 bytes graphics/pokemon/moltres/icon.png | Bin 428 -> 457 bytes graphics/pokemon/muk/icon.png | Bin 475 -> 458 bytes graphics/pokemon/nidoking/icon.png | Bin 426 -> 457 bytes graphics/pokemon/oddish/icon.png | Bin 311 -> 327 bytes graphics/pokemon/onix/icon.png | Bin 492 -> 436 bytes graphics/pokemon/paras/icon.png | Bin 396 -> 377 bytes graphics/pokemon/parasect/icon.png | Bin 388 -> 386 bytes graphics/pokemon/rapidash/icon.png | Bin 520 -> 526 bytes graphics/pokemon/sandslash/icon.png | Bin 429 -> 448 bytes graphics/pokemon/shellder/icon.png | Bin 311 -> 338 bytes graphics/pokemon/snorlax/icon.png | Bin 381 -> 386 bytes graphics/pokemon/tauros/icon.png | Bin 436 -> 414 bytes graphics/pokemon/tentacool/icon.png | Bin 355 -> 360 bytes graphics/pokemon/tentacruel/icon.png | Bin 432 -> 428 bytes graphics/pokemon/victini/icon.png | Bin 346 -> 358 bytes graphics/pokemon/vileplume/icon.png | Bin 399 -> 392 bytes graphics/pokemon/voltorb/icon.png | Bin 230 -> 244 bytes graphics/pokemon/weezing/icon.png | Bin 493 -> 503 bytes 40 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/aerodactyl/icon.png b/graphics/pokemon/aerodactyl/icon.png index e354dbb0dcaaaa9cac8a26df89d4e138167a71d8..58c96d57c7fce6c6433c4cc58f8525ab2236e04f 100644 GIT binary patch delta 357 zcmV-r0h<1k1Fr*+7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SElET{R7i>KRKc!; zFbpH%fJCSG|NnMQ7;4iNxa{d&7Kv%pZjv_G%kqnxz!NSHj3)v_?inz#8KJHXB>NraH>@ zR_~VE)m{+^C%puJLAbpH+~MM=pV-)QN!$IXQQwO@0p4|YmrRX)X9IqY=(-;S@oirP zW*3tLwr$%H7ds^^SUmxWrdKKSn5RxZhNX^h=GwHT)wPNS6P{A6f@Q=;U7p13BeSar!wh7|2Kd zR5uBs;NC#|B%yBDF{art4|QM5|GeL8`B&mS{_S`Jl$8|TD$z^c00000NkvXXu0mjf DHBY5s delta 329 zcmV-P0k;0H1Cs-g7zqRe0001qplF?uE`tvdE)?mI1yx!H! z^%}sY1X%e=@wCiw9cn$p7_)emVM7gB1=h-ruZ|JX0Qj0yLWqqcq6$+&RjUcPbt8Yu zF*M$^vG~^aSJ{E~Rh!D4`)k^OTC=XZu1{C>t!5hP3tw`Z=7qcqH_Lr~J{{(v=oLPW zC)hN9dp0oJBH(6H^j^MRI1cu2{J+Of#6%9I7~xQe5e|wARX-*Q-ff5Rb$ bzsKPYqRF+jd!m|200000NkvXXu0mjf@TQh| diff --git a/graphics/pokemon/alakazam/icon.png b/graphics/pokemon/alakazam/icon.png index 6d136899d988ee651e5227763a1d5217fc442a78..e823e94cd36a740de8d352f1e5a02f75810ab1ee 100644 GIT binary patch delta 439 zcmV;o0Z9Jr1AqjO7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sen~_@R7i>4luM4p zAPhu1K_YnLy8msb%7jm560+_=O1Ff|Ha7TuK3}zfH-WtJfA zJ=F-bD>qw35fuml&)Xs>08ru%)b8TSsFt^8K(4JMs1&t@b)a4E+%~z%{Wxa9-un3MN|+Z1yuq}Ne- zvH#2U^#IW;T>&JqL+W3Q1GD>=7|rLQCRSyB4))0o_fs( h3D$hTB0a2002ovPDHLkV1kQ<#5Di_ delta 419 zcmV;U0bKro1ndKl7zqRe0001qplF?uE5dr5C?FcASX3@q~rlo z1(s$>-i9%3Wn?uA43R3lz^f&S)WTxBAOT){wN3K@>e_g)~wM<7AQatb+Fqxjx1;)>Cg#0PoRt`rN52fxaEO4)9a_2?T0NWIS!FzTvmUS zGLnXoO=j~&kkIUnkS^plaMwEECU`%vlkV!SQRalC=pQO?uY;FG8RrDQH=okm>Mkvo zsf<(qvf@WiS3p3y=+g`@tBRTm2(T9*WOiOw1)BRIF*{T_!!Am1w+2+S3y0v z7q#LVG)bAzuJvuTO&fxU!0xluooasp_ZgT~3z?4s09TF24+#6|lTBajx$7BV*aVE4 zFUDY$yB>o9>*E28<}e1+A{&7*9C`yrF<)LepaFB<3}7sWM=KRLc&- zFbJzuSfw4{|NnM8QbI^NX@_Y$l-`D892R@q?)q{u^ZPy!1Y&_@%6-HM!T^*2B#?1@ z?kj^pLKG`~R-gbtE%xcs6-Z(*3hf(*$QK99)lslS zs5Iw5x&TCfvA0Hl(Qbo83kWgsZpRy_An0+>bGPd@4jd759OSz^=TyKR>v0m<_Nb%$ zn=6v>Qj2}x^}qE|Kx}hH3<2Sj~BvVYV};eA*m!v3~J&w&gp==N_HuQI#+V>tz|Ps?Gv ewEy)_KdKjKycKSuv3f%Q0000NHz#11)Y= zEtEMzE(}cypn!H20mAmW%cRLf4dchN(9fsT9}J+2P($g*E<@VJflC3M$Kh}o6;)fN z!};!^q=N_s*#p6*=}--kEntI|WX-o$scy6<_x{;XpNb-@so}F66$i@}cNXG?82x{t zyfnXr=}>aMJ615u_wD2B?%9*12X*_5SfE>$@aQ!WTe2w9ZSUbSK`QG1#bq9K4B(KEZ**`6YB5 zdaOMS9L#CC9S2VpqX+{BCY4s!fx{$hN`%KMslDOQ-}}KZe-+;uRkU;wSo=c&0000< KMNUMnLSTYa8jFMg diff --git a/graphics/pokemon/bellsprout/icon.png b/graphics/pokemon/bellsprout/icon.png index 59ae8d037ed7e014f2dbe322d03e4fb411ec1fdc..ff6ca2c33716e1c4a6f249f313c9a099e2a2f3e4 100644 GIT binary patch delta 221 zcmV<303!dl0;mFz7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Srb$FWR7i>Kl)(-H zAq+%0K$jZR`TxJQWkDlQG@djv374JO3C!Vzu=R_AYUy88i$w7?;kL9ua1zyLM)Ct_ z0a48x%ufJON__&S&wx;j@k;cZfR?iPHV0`#e^un1h3zY3z8K^CD>5)_jt{^RutQiW zQJ@t3>+|A`qv`$9(e&Jow;*?Y3JgU7x|9d0FuGvxGeA04`@+p2dZK_sbvw=A)%NNC mIF!p6d|Z$tWQ#d`J0EZF)pk#lEc%Q90000Kl*?{J zAq+!#NGK90`TxJI1DRU}0$o(IYO@?0V+QUC;jfLzkA|~jXtxM+Tz8UTkeKccNp}MR zjs}%AAX$~Y%w!PBImN|+C9FH(cgUE4q4c3c0m^f*}-)2@&fVf^gE&xQM$U*vtH%PtLCh^B&gL82|lc~V>D8&74Luc z`pzj-xyR97-a2IzwoA`&zuP%%%z8q=^UIZ^0-5giCq~oF{tv#PGGv~B?%0w;^hS9yyB6-upoh9 le++@SU?UKltB{1 zAP4}9dV`Vw|F(eEM8TwoPA@H2Hh>uS@%YCS%r|*}H;4&YO9~(aA88^-FmXqikqAS8 zv=J91#HFDGaTP!^jJV|G^OSUiMj)?wEg^_91V*g=?U1bsAt0<1fSyrC1RDi{5$p)n zLKa|yx+cU)^N_WF1nU~+F492KnR9MEXxUT;QqG`2(4-T!Z=$-p9VPmzTpp@iU&^VK z0Dn`uDJk3+;Qc_HLZLh0_7VJYd|VK|VEboA+Ueo-{#!cG zg8^GT3_Ip)Wa-@NDpU0Z1ivvM68E5+= delta 380 zcmV-?0fYXc1I7c87zqRe0001qplF?uE zdw{4?c3t$WUK0hewk6Kct}ARJ?>x%yq=_MR4iHx6F@Fs6zYvdGnC+$NW+a&lk>f#9 zIDbkCqs9a#a%fxuWV(KDuM&Vxq}^c0g0wPdy>(-OkZHAq*A{tixQ41~tVqg)1bBZt z0-5L(W7}w#HFS*ei8R$$BEu+?m0d~S|!ktH{; zKk$1B0L1XY7i({)$OZ0eI#~3(*=Xe)+_~}iCGX=fuTYm;qk#X!pvlrie29Hr06gSp zo$~?&Z(&Ou7E7L>9kLAqixnyBatCNAEH*VenSZJXhBa9N6JjK8TQuQ?&2~-hayHv| zyU)R8@V)U>(VP>*O^dfzP^OZ8!@BiV35+sBi(7zBR-_M;L2_RD>12W3G%!N+b8u(I aW&HsaY4WVL_x7X!0000Kl);XJ zFbqVAA~{kHp8x;b^*Du?;2`Z~FI&?Jsu{*k3hy}nT>;~})fEQ{PVd7CRiG4C&>BBk zKmkKc)n*PX2Gf-p7SgrTgEioz7j$}p0T30a8C>^9+WTdIiWQof_{)Q=NuL2jXPu3j z>Cu2{y6}K?0_;kEr*6yg07d25WQ?$>H{RJ=JsZ&>2s(h;!Xy$6%sfmNIxt2NZyNu^ z${tp9aTHAb48btla+o8FVa`)+7TY(K{K4>6>XjNe0=R8k19#eVzeo+dow{xe=cYU! zx0peFw}#6k`-E$jZ*A*0{KxC*g3jhEB07*qoM6N<$f@J%rWdHyG delta 419 zcmV;U0bKsX1MCBk7zqRe0001qplF?uE7&WQTtt zkf!)^0g1i$GKfFE*G_hPOpb*@TL%O$;h?F&z5*ucYK?CIC?-!%LhsmB5TQenK2L{? zZQ(4@fIK^Kcs~rC)X6yBH+u_qc)46wAXCg`4LAw{tq&DkENh^zf)Lk0B99xOsDA(t zpXOhT9^-bEszY200~gup!;dhk!%ly!`4I-D`R2#j|-?xPb3>ZlHd9Py=?sedhkR4uiy0J3mU*1Dpep7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S8c9S!R7i>Kl)(CEIaHl4%?FdE28z=as2C>#pgF~^4bCh;t=Zq0{~z6LTEx+ zT3GIya1{iRs8-7n9YKr$RLP!Y%$`7LPzhU(c_COAKm_bS&SeCcLGxq~YhH302!23| zIN7JQFxka8 zte6FutA+bYXYiwx4kSi8KJ~3Z3K<;g@=X9M9U@Hq*#K929}%Y7#(DSTfGB!l(pY~z z9+nQ?+0}(KXGd`$w~coq{bj&aMy_cd9d{KXMQjNKBr+A6=s{FC$anind_U#^VA(Xa zmOPJt$@{jTQw-Qj*%U-WdL@+UOtgNrd2bEdxjdUKK!IDISqHe*0o7Iq7=P1Y6>&On zd=Re#?_*@q0cjT^P6wTJZ>T0Hd zr?7y!Y6p|`pal(o%nFJ!nFSVZ?V+Apyk={q8M?I=4#ASvI)~&w$^Y~%p_;7eN3Ao` zD}%wa>Kgwj*L6CK)Pmh<;V#(@o6qMiizS$fmMy>8N7+*U#}Q|zv;@d6gqZ+2Aq)Yr zBFqHHf-na_Qo=j|k`U$vkoeBL10*8MCqP1nivR@U6d;!u<-;8*S{R|o?cLG<0000< KMNUMnLSTY3Ux_*Z delta 303 zcmV+~0nq+|1NZ`v7zqRe0001qplF?uEzl09kzF%U*|gE>NuVO*ur zw%*3RLRyz@0y#t~;ov<)szrtC5P>eS&4NJ+mIz{v$958|PfObTOgA6%B#n4N{A6+2 zd0G}haI_>30mys;fmto}83nmM4Fb zu^eh3$RyniZGIWqwX*HnUW0?xx6|ignX!*gxKgqKLitm&K!gB+NGkMb9IHcwQQG7N#`l zEKFh0MHn>bLl{6lg#m-Ugn^0Q5r!MwSeQTe;{^T`&r>@VKmC+8v zAP7YpdGiwe|Gyn*rxmbEmcA?*4_h+MEDD|;$3MOc;J_!~E{OpJAi&JZ$TtE&(^Z07 z1P_9wi$q5}P`RZW66Vv$E8%OXl&%27t|CA_)2R^#K&6t4B8jL2dKOn8$v<-;joiyz zS72G96snR>Iobz*AiKy7$UzCM%%X%=5CifM`Bk#KSpeDzNsxTHLwFO~EQ*eC5Yq8_ zGcjXMZl~%WKNQai#FNt>u|QUTY=(OJ!{3V4AHlU+{o!k{{;+okfj=x@{b2=T{m}$6 z>+t?ybC}*AZl~5C7O?&ZfawoLU=Z!q=?~t#Eqb#nwiAOIIVR5vxFptG<6S z>_WFioy#>a&}C7*Xr!V^wIqNINI&Hg20maHteAy|>m1|+PI2}jLQc{A`LMHpeclr$ z?+h#&ZGgZZSn3Vz!oYIoc;tUFm?j!kd2G0k(@iBE z^i~CYOPy*Gcnx6IsY^zcMpn8g5&$whUg;`i=hpE%qAAiL#w9qh5}tlAQW$vd=51kq Y0fs#1kjArV*8l(j07*qoM6N<$f>UFR-T(jq diff --git a/graphics/pokemon/gyarados/icon.png b/graphics/pokemon/gyarados/icon.png index 889943b04f4be2d2e1b2a6d23462f79502bebac1..41ccb5aee2ad3bc30c2eb1562c50f6fac21413b8 100644 GIT binary patch delta 490 zcmV1hWK?7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Su}MThR7i>4lu>hp zAPj^ZF`aM+$^ZYi-2~L2)J~^w$IRV>`Pc+ycUeAhss2(=>l30XX-z)>wh{XiBF zuqyyq4?s}#dd?t!qye=aM@A8=ZMM}Pp6?7Dsz_$eia+%hi{@}z715MUfN@6ep`gz? z4)+Bh+nW?0LN(I?D3x67d?>A}unb#h)K*WL z#DF5SZRE4Y25cj}Kmf32gx$Q+2)y2cCpe%@<0FMHZZo`plLPpky*%6qJQZW7bdfuMGQzEj@_0L%U2ncuJLqIfpw}6;xgn*dZzxlrfM7jdO{}vE(6Bzwp z=EUItkSsee_+KswvrPRT6XxdsWf>D@x%&T>FjxP#A!5Q@{qI0Xn4AC2jiY@>{}VJq z!i@f>%>qP8VgQW(-}6Cf1YYU%|0Q9Z==L^un~xz9LeAfNx3?!m%aGfh=mBj0xAKpd g+x`E1_y6esZ>fDG)0R-u)Bpeg07*qoM6N<$g2F)RjQ{`u delta 536 zcmV+z0_Xj+1mFaa7zqRe0001qplF?uEy_^a;K)FTAmoYz+$uQv+VraGO%(+tl7N%Xd$5Z_?JY4A@bF919KtX{WH#m1sObc| z%@15Ih=jOluUluQNG}~`k(a(ts>%yG7K=?dX zLNjn5(Dh6S2nMM`v*+M0!9P#x|13DZMm`=A7Q7t|07N1mS$B_X0N74G1kCo>R{amE zXr&+fy=0ZDB93&hReixO3pF8$E(6$v#*a5;)){1K!qDi#EINZk9i|KK2GxJTAOUH< zz|!V}K|%*F7E62LtAjz$-v)@^9vRRY1XKA0Ikgk&3@W*pQ!LZiZw&%+CUd%y=a+u# z0}$NC*;V5QJ?p@`Se3Cn7$nLfbKRLc&- zAPi&WR#5!^f4e*>R84!FHZAI*!cO8um{NW(@PzjV#uEX(x0C@m0l4OXA;vYFvU1TH z1)+Dr&J7`i!RY$GGy_#5^nlNTQ3LZrXS`Je43oOfV=5Ikd?}(^koJ5=TW!m@qK^kF znnD$|DuL)o*V^2F(aLUh)1MQrlwI~I>Xs>lpj+fFJ9hnSh^Yi=0%+$#ioYZdk%g=v zNYyB2l(7Y}j$i}=J8jw%#X{uVH76HC(si!-0|Ltw4E$aZ&usZq$z7&K&mWBmR9 zasMkd_rKXc_kY;GB>q3_U#|T>*+23Buz%|RVgJeh{s4?BMTC#s|M37!iwYlkqCWuT dD)5C5z#Bz}C5#iMsign_002ovPDHLkV1nuLnpFS* delta 409 zcmV;K0cQS{1L6aa7zqRe0001qplF?uEVUj32Kd3Umj`AqgxTr*N6+eod3?7$r&ytl)>f67+s)q$*U} zl~j9CVqF#rU@2ad#l=pxj9+SVnY@y;N21w7a(SEsD6(|^)WxZogT-m#o_y}zhx`#} z4>OG@km;whnAu8Tuuh#b_eDmfdSib9Q9lR!;jEzde{6lVbg1l>kIz=?pnZo?8Zxal z4AD%boF2mWCXTi^IL2(d-eC6YhB$y;UcK<(zB=X_mLPFTi~}UQCehHjAr7v4rycLT zH`2!eE|h!AgLSbuxLRtKltGTe zFbG8>kPzPR?|<8V>@>AwyIIXASwWCDY!dOO4$)`Gsb;K z!1H0oeGO#pB)nKz7F!b}0kahV*Ehkt1;M}DCeFji3?SSs!>R;y0w8h5(TF*N)FO?& zVi69#g&D6ESUV_x8=+mx!AC-nC(If(@-9RI@A};cFh~BN5=@XOK0R#7zqRe0001qplF?uE4=xu97rE z5Gz1U3sDN;U^tI}0TBEcHP!%tbOEH|HlnMXOd4U@;UaG7)pcM8nX4RkmtJA+K+QhW^ra|a24kaSTI?+F zB?;-tcUG1i2oiQOc3sD#g%EmRcG&3WDAhH@3mQ)ZA>EK6_!RFe*xVVZLTy4Y~^>rxw;AFU&9<#u_A@FngK#6l)MV wVXnEFYkEShFsA?}Kg3+(;_gR$?Z5f)10Ue(SR1mX{Qv*}07*qoM6N<$g3^MVO8@`> diff --git a/graphics/pokemon/kingler/icon.png b/graphics/pokemon/kingler/icon.png index 34a72990600a16081c6ed9d6f3d700db1c1eaa70..3f9d0b8b78e41ed6730b3c0b2149a71e4a70d614 100644 GIT binary patch delta 387 zcmV-}0et@O1I+`F7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SOG!jQR7i>Clu>WP zAPj_qknjVN@BjbX`pig(OT6u+(lpenQGGcZu)pK@M+>&ncoUIK0TKOae5Zpn3<2yJ zUQ(!_@k1q4#%~lfWszn@ft4H*VG5cw3o>QM0`(O1w(u}pT~NEK=T=53yB`Z`t&CTm zmskR-?kUUyC@!#nD(qC^$pRg{^6ys72<{a2N`dX7G986?g@rpRH^YSym#Yp77uy;Y zym+r8DEP=E_U)qrx}bzQN}VOx%WZWyjS3xj?v`!aL*9ElO4Y2%;MbFOA=9*Px-d78 z%@$&@S@>_Rk52zSKBxb9z{8yW1P^oi_jtIb{|OIs`XBLPFsDDkgSGlE@eum;4G$Xc zCg7oMdUnObW-TeOK=c&5T*fcQ4{mMAb_4hF=^spQ!1TvVGL9{)e3{_BZs|6nm}1$=BBe3=bz z6ZjYu04c~Cn9(VYq<9g|82C(JOVpTz(OdB$mxs+Bcgw2 zDk0V5c|>n7TsoGvVLS~Ek;-(<=(T1nL&kq z%6Xq!*D1i3$_k!M+f%fqOj0DU-0>~Unp!(vO7Hi}-EEt3e~;b&Zy(6E9W`!8D%W2{ z{KCV{0<2Ov6I4hnlu1U@6Hp(Zq=tW4@O>DUTG0fshS+7Mpt=Xek}jQb0Nn<-AhF~H zg09t&uISL^9K%fx77gCZOfXF~`ugaQ7Nxc)edJ8TOiG9N>9A_*XxG9Obt zRcsOC*2sGO! z(qiQQ|Mn1+Rt%V_wljdE4x7?9{uBUUPws=h9>)RW38oK*_YX<{I3~u8AT9KL zD$y$^BA;+k1TW>0(UPemRXr4vJ?AaV`qbJr;g;Ox=^wNIJ}i9W>`j-V~dW(1F? zElqv>laSl1EU=d?{LngG=!K^~^CAIw5q@=|FVY1X3&C6_$qz?!}c1>jj1w300000NkvXXu0mjfCw05z delta 384 zcmV-`0e}A71J47H7zqRe0001qplF?uE<}Ggjm?s=PQx$|hHv!dH-Q00M&5}5Bs|(v z*LY&@01x0O89Ff3A}_(zR3(A|RgPrtY{yPAu);}glHdRN&i5JM{{)ltCjg{~g3|b+ zDqy;b22C$0NUcQ?n80Tga76$g(n3@K#*X$%4gk;l1}&ei=(x@X|uo&&!>}VN(#8`_S&>% z9-IEon3zLyboE>{`rM1?y#@Vnk>>PC$n?V|c;zzv zSVn>yC;F+byBw``L_ZyfA6~pC`so@L`qK>fiavI_q%UDjAMbvkKNBK-ky9dBwH)G7 e2#%ccd;9>x{^J5E(!ebM0000KRLcqj zF$mlsn1kT_|KE0WTk_a!pip{gJ+zBXMq_l2<8N;mfPGwR-6BxoI{_3SOX{lBZ6t0hX}@bph1v`#^KCDpW!$`d99v8Jg!Oi6QtEAfCytk&zUNU(k?|% z7^-AtaV{>#(z~*MVJ==tA<2_f^>I4ff|R*T*)@@|br1`mMn}~7Wl_`^j~@n^Ndn=+ z>*Y8E1w&Hu52ajRhrBGoiWz*3fTd+qWjSR?JL&dA*pI{CK4`zS{at*y{Y@V3w*Ms$ zi|scX;KVJ8nPIWWCEq&{5UZ+&aBA^%4WN%Ynu~x(9%s9^fSJl%ThzBrp`v`n^ z1i%j^zMHlTNWt70vEL=YOz8?d1;EC$O~iVhQUZ&hDqDe=cq(?rf>_b~xdF6}`?G(Y z+aZ?#QN8C}0GnCvzUcAPJ8lE(^7G*~aID*iWkRSOVQkRkLUV#sP!EO>G*brA0vh}v zn!fDcUJ&J*(m(I}3Kl7qUFdxg5aT+#I&Sy4+^0YBAU-tW0L1hNyg1n79QI$Q09Y99 zc9+F($I{hjY3DX8S^@B!GISPFLhyFkFl4Hh6+vSPs8!|dikN9~2~s$Twa?rY_1(== zzWNP@Vh^~Ip3{>6vP~GSO^@G`!=fBe99Y}p4a>w%xofMnCdO_Hazx{+(e!;c{RQhU o8Sw6pD5Z?>*B>#i@xS@w7sJ!jh|T2NQUCw|07*qoM6N<$f?ILFpa1{> diff --git a/graphics/pokemon/magnemite/icon.png b/graphics/pokemon/magnemite/icon.png index ffefd1a45b9e50bda43a7f8ef42018efe54016e6..95b81cae03d1139804566a9bb7958ef968c43edd 100644 GIT binary patch delta 244 zcmV1)~7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sy-7qtR7i>Kl)(4lmNMit{5TP|yZ6N`3 z%pVE}4^ZTsTgy&#?fqIUAm>h4j;+eevLige28P~XK{7(3ZCVugLBlzRnveV2)54_YnxRtm2zRbL^*|gqf@c6U4#H8N@t%)gU+B-A=g^{ zM>*56?*IS*07*qoM6N<$g3~T;B>(^b diff --git a/graphics/pokemon/magneton/icon.png b/graphics/pokemon/magneton/icon.png index 733049b1d68e18c9e21b0d5547e5bd3a5c813311..bde234ea113243d3d81d3323ca319a2a0107b0d4 100644 GIT binary patch delta 314 zcmV-A0mc640)qpP7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0Rc%wK~zYI?UTWd z!ypVq14t+bnEC&|-LausTAWs@_O|h}oli}}a#1I(=&+?`mqNdN!< M07*qoM6N<$g6YzX;{X5v delta 287 zcmV+)0pR|F1Ly*f7zqRe0001qplF?uEFbqX`0u#PKjGmwa z*BUuXPT*^F%b~IgU9y&LlP(=e2@`fZ_F+ib+MMJ2mP zu<{pcc@cs5c1d+{oVKiSuvXv%1bQc@WAk002ovPDHLkV1iWqf`$M9 diff --git a/graphics/pokemon/marowak/icon.png b/graphics/pokemon/marowak/icon.png index a9738970562aeb62305736aa6dfcce3095e92da2..af56d377c599bc95cf1c497a0ffb7f02baa7ae42 100644 GIT binary patch delta 276 zcmV+v0qg$C0^b6V7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S-AP12R7i>Kl)Vna zFbITgkYMB9|7{C)nxr;y)uqZ1hAe!X`BAQvCw>gzOTH4842Z~hO&BqnO0MJp8#DV$ zoGEz^k?xTxv=_FZOu!C-G%sphp*o2&O$=2HfWVc!O;s5Q(|Do^`#vCS`U%7gm81Gy zKMKSeqqs&|=S?|t0OB|Yi|RauC($6U)*yx{(3b~TH0pqfOh6;VJQ*rB_K3DVnE1g0 zNV-7(ddMs=u=zD7wI^;IkAajs8c4G9!$7qCyCbq2$ig4m39kHMH;_wz*bHRl52vR7 a?hh|V_lLx zE01C5)^2!%x0Xn-K?G9Sa8ue4Le~xz-fW#?$GRZ+qu^Z*A#1-N;><^eI%5qRYETO0 z=qLykns5Zfk;zk6nBx~99dPL)OzIx&IzVNVj-i|i+ccM$=KulB+e-OYd;118!+-w0gT&bnfPUTcXqgry0m|o@w^}Dm7f3@$! z9wiPZOyvtR(dx${%Kl)(yv zKnz4J9wa7Y{{L?~iO_13RoYVz1_W{5PO`f=({$JOg)3cg3IT@66&Nva0|>Zx1ed`@ z9%e2*z}2#@qNG}Ygb7Or25jLT4rWTA8I%T45u0beK()HS`B`U>(9NU})Qx~~Bh*Ej zE+j(cL)|}#*eD%-xIC%?TyKKVQ$RI{gQo7egLZ`YZm!wGs=m48eR&*3t4j`HCl@~G zzAwMfN%*;b*PqlKAU_01O^{=NbU)A`K-z!+mREpOAOggfcYu@x*#}4lL>(axdkc^Z lh~~I5ALxzYh5lcJi;h=00dA~!UeD5{AAjkd*exqC=|C2ESl3yU&pRab`2SK>-$rIdo|g*SDRn; zuJz)9nJk_6x(8-4>pw8zFuTS0yah%8RqpE+7)XNt0t1xdFQ{u>w8?!TLxg;)o}Z5^ XY}nJ{D3}!;00000NkvXXu0mjfjgNr; diff --git a/graphics/pokemon/mew/icon.png b/graphics/pokemon/mew/icon.png index 6e7175f437391b2c2f68c247c255b6d98b14f822..d4b6ec9a72cec9ce5587d7f7bab8d189a3f7f338 100644 GIT binary patch delta 273 zcmV+s0q*|N0^9CR9gxJ zF$fzdltsbZ|F-L+^MI-cnDIBM#Egb56a8{a9;&;|%ax>u&bmWlq@ z)%t6wfVD}+fVWw2%@cy(C<}8m*hJg}PDKVoL^*L48GgQ6^EnJb{cRVie9~u|ch~#v z-xH)?KkVPcgKyEs!?LECsvh0@4DI7zqRe0001qplF?uEuvn$F zlh>gZ@FQ#9skjVW`nh*gH|FHJDo<<&L*nZY@%#-i-(Dn0hqLjcEBc{)W~4|G;COQ( zpe&=#sYj2%m~t>isOvfhh|XXWswvNy7Ba7eC{Al^sO?(bb7M4H`j`3zFs+fB76nH9 zy5!D&p^5{O17_rYw!m!Tbm_7IX5&d5Fq$!t1x7Q_15;`Dz(DyqFdzMX)kGcCi2e diff --git a/graphics/pokemon/mewtwo/icon.png b/graphics/pokemon/mewtwo/icon.png index 8463a04ddc33cc2efa1a315acb06bf6d7796a9d8..b0dc901658c6931d8024affbf60ab2706eabfcf2 100644 GIT binary patch delta 329 zcmV-P0k-~;1Cs-g7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S5lKWrR7i>KluHi7 zFbG6bvBk{&Z(G1gQ=4(BNR_%NQoNZlpM<<^`^WtNKInos7jZ)$03>bh*4crFi1?F& z>#Z1EQ#le)y+6gKk4Q`a}FzO za60l{j(ZV!ZN$o8VwZ+((cwS78u$1?`~yD-K?Z&>f(-m11R40j2r}@4|NaL*j3egc z#{wWHKcI^gogX_u2ti_<-vCnPm;h1a{n00000NkvXXu0mjflH`fR delta 327 zcmV-N0l5B?1Caxe7zqRe0001qplF?uEVAQ3;_9oi+e!c5V=Lm z+ap@C6jz_NNW0{S+_E@WcNnsL6om#cGPW^e%pWeuCqUV7+gL$)Vax_>4}=R|+JW8` zU_jU6Hcf%p0NgY+S=<}YfR@eKHBX@WWXs(gdZnPfL!1EEf;F0|cM4l4jrB4Ra*2QB zOjWQ(L`F{9NI5(?TyG=Cv7xie=oI4SkQnl{SB&z3ee7g?`#1yLAZWe_IC=n}U%Y@}kf-pO2Y`LK z#xMy39@orql8mAkVIcJoeh8ywx-c`4I(Q0GRgkAJvq75|VYEsU=0k)T;s&m97UtLe Z_y#ix&7cm(M)Lpw002ovPDHLkV1j2Uk<0)9 diff --git a/graphics/pokemon/moltres/icon.png b/graphics/pokemon/moltres/icon.png index 99affaa0b2cab8d2e31db51e44d34582ad672bd0..70de8545068fbd265d59066d42e2e26097e9eb46 100644 GIT binary patch delta 383 zcmV-_0f7Fj1IYuB7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SM@d9MR7i>Kl);X} zFbG5=)xaSV{Quu}7$-8eBlXh5YE>Vq1||bWc^t>@eDTDmyv2hkq6jo7DwZ`6qUz9$ z_mH$ZK!F$}8HnJosabV|LLmv*G91dsNdQTjXck9ar~IvO)OGxAG+VEPJOrLf@u#_j zXQLy(c^s@vg|S_K-2`aSo3!38s(Gw^x;Gqmv7DSvlSl)!|7tKlor7C1dY;|_0=6e< zVzmbHXBLPtm&pYA;3;zvDS`dcPodxWHz$cYX1?cq;#@aCEMKH2t>$+$DW2$7z(5|l zB9i_}4%zL5U;BfGb%F2$1(ayx!aqtE_t%^FD)A34iuI;m&i#;;=(A0N?=$Zkch^-0 z{$f|V%PcPZQzMpWPNN<8_gmXir{YgC;TJRB1OE=M*Il{b-%FMSvEknpql>4xU~_(0 d0e@&gyaCvL7G<@!U=siU002ovPDHLkV1k*%u{i($ delta 354 zcmV-o0iFKI1FQp(7zqRe0001qplF?uE&kbe)1dfUmqRMRnq>vwLMr@}ZZ z?}*|J!DnpDso1f${a3-c%j?gA_if@}wRF_YxLD}3=`)PrpjRL zWIY8OC=nE_ebYD{6}n>b&4l&)&Gb%?FhGr1goMLMt0x=)&c^1QMI0=I-R4;n4g^A` zcQX!Q+1K=L#vzne_6dhDbbMsPfs0oli2X|Z07kXH_q}!S<^TWy07*qoM6N<$f=-sN Ay#N3J diff --git a/graphics/pokemon/muk/icon.png b/graphics/pokemon/muk/icon.png index f56a9b367d8b0ec0c44fe6487af47ec60467a042..3168d1be464250b28d69e8506147a8f2fad78528 100644 GIT binary patch delta 384 zcmV-`0e}A61Ih!C7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SNJ&INR7i>Cl))0i zAP7WbV^28j|Nm`4NFr#`bEiA)C9JR-^S13z1<_-*iEb^R=DKm9eRqhM9}SwKEDb%r z{?;Qrz9%K3)>JX(CN4-(?qiCT;-@p7TQIxy*_Mk7?yGIAKfz++go8^5%pZj9<%~u!pnELAFb+R?cy(jV0SMf*s zaXfg+J3MUX2G@9q0GaU+0J6Zt0w8Hd1jvMk3=lg|!~r8;Kn^}2P8a~bFf0pbKPLX1bneHqNUA_R`> ej)}5asrLtb%_xS8SA1^(0000at()CL-XlhArYtmEq;IP z363{S5fa+|=^Y`~Qe!R>kM0)iUe7Hw~ zu+t}zLXdG-xuB*8lHL)(YBQz{7R85p6Y4zU7*Dkv~+yHi&M#x*sK z0+adRa~}eX@ByqI8JLleu@qB)8TlBu6&0AU13x}dU@{+tsI~wjXJ0I264VA1Ky=}P v2YLCM0V$Q8AoQZ10Wo<6aSg~7{{qMlmZexmK~?Dk00000NkvXXu0mjfgdnUb diff --git a/graphics/pokemon/nidoking/icon.png b/graphics/pokemon/nidoking/icon.png index 377cb6672e543b7717395bd6c426d7e5f679d98b..93d0b5f80e5f8735ebd30285daf5fa0f9dbb4719 100644 GIT binary patch delta 383 zcmV-_0f7Fh1IYuB7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SM@d9MR7i>Kl);X} zFbG7g;G96r|Nm_V>^M$prN^$+jZ{lD4+dyDrTowXd;;_&Rxlcn5!edQN+LplnJh-g7uFR=inxC^!|M-Cz;>k7j0<@(#M<{J- z!(b2FezA#LB!x<;f;uY#SJWmD#{(_q6~7B1=W77#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S#Ysd#R7i>Kl(7!O zFbG6F0F%r8|KApHYjxn6ZFdV#nD5)V|hO@u4rP?5euI4-U# z{pS_X^40rAtU&q_O=yqsQ>;V;JgSKFb7T`KSNjSxq*#!L>7C$&ZiXR7n)YUx!ByTP@KuE%$ z0AYa*kORdQKo|!%Ko}r4K>9I$0U&q>kWAn!`EUnFzYhue`adfG0000%bI3rn5vqTh0n||AiVkMv-6`z^mC=e3N3TXCFB>F=cYJFu#7k9aYDM_ zJIx3rj1G2`#&;>H0ZClI8F4;9Vu{D3cL2?Hx7Rbg5Ln=q3#D2eYeQibUu m@e~I7uL#5M!jS4G{dfQ=W`Ao>!^-^t00007#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SGD$>1R7i>4l))0i zAP7W*xwHTOw`Gw~G^U+)dTE?VbYxkTn73_z)bK9e-Y9-3z*-3D0-!aM0JF~K72esP zd52jbiikH?XmzoWFyaCB(tVKmA!uNjitaNA)NOrrM1NSoCpjfP6oHr%*HIh-Zw&Dz z9N449!q?o@W5P0j@J&mP+mdSQ?|US(a5;=UGMxqzr$=~&K)f#IC|Mh%Hg>7vXDKI# zrXEMU7KJJIWt`?o62H>(`rlszf+l>DLK z>R#WX-IX7MXvvQPnXmbgJHO&b!NZat2Oci?@x;RgKMEd6&it71aOOw+JsN@)KT!Cv z;K#^^B|q?rA50neF!7@U0we7UKl&M`Ke+H?B49aI4u1`Z2av5A{cVe_-T(jq07*qo IM6N<$g7{3Sg8%>k delta 419 zcmV;U0bKsH1MCBk7zqRe0001qplF?uEV1b)Zs0|{v9R$8t@0EE>zv2l^{NWp(| zPt0a)NXyc-)K3qmrTKT%P`TeZxdq}D!kP^nj#{!XnpcEHl0E{29g@x-atQ0b^&ybz z9s#Ykj~nXV&dh#9rfz9Yq_M>lT(6PYeDj~#((yLxZ^B~BFQ0bHx?YsfcapT0DB7<)DATSGjuhKoS3u5N^ob3sku78-^%0hlkrCHw*!T z9%<}j*KKUyk-Iwx$%f{S)SRCmK}H+YxN$uH>^wXXTlepV>RXMbEcnpDM|hrmr~}lZ z*U3lAYYIMS@QT$@~A`)`k!PCG^-F;v7B3n>LJdZ~dnL?E5*#9f2d}oHqngN-^yKQ9?Av zZ4}@DGb6`k6rE!x(tchMD6@uWR$Vm%KwzsvlqmD*-rD3nNQpTm>Lig52q1mF`bv-; zpqn%Y6dB*&;%Nte6ha9>G7w;k1V|t%t3cxt1zJ?00!%9$I@bEeE`G`LFrn=~E-d?R zMtI+MKjz@lCN&VFc63D3Fdbg*#k@( z4H_;Q=|H6d7asGm_-RHAHdGX_R~bsAfyGiITWTeH`BSGpzrl7=KtBD>vhO~CKVKpi z;BvG)@Z5ZIVBS7B_%^+bc~{(!KJK!AuMU^yWsOAAUJYB5fH)CpLi29Zr5;G#I~9M^ z<-8`juPVe8Aab;im5+D@ojyhP=#^`ih^VayPe{^X0@JxI$fH!2cky3N;@H z+-WF45%^aXi^qv($HDO0@W|P0ISA`w(-}ix!c2bT!pweT!YqDd!YqF1n=p$X{wB=q zN7U=G1C4%Eg!1YK_QDyO`URCy VqXB;aeKY_7002ovPDHLkV1igdl&}B* diff --git a/graphics/pokemon/parasect/icon.png b/graphics/pokemon/parasect/icon.png index c6aaff12d702bcb696d4ad28da9d4bb66d1e60ed..27b8e098932cb01dc43e5ad5b3c40b8c3f88f186 100644 GIT binary patch delta 312 zcmV-80muG?1A+sP7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S07*naR7i>Klx+*c zAPj`diUuO&{{O$-MQu0h%V4m5YCcHeE@z7RY};Mm6C z5FqUc%r5|`fVdFkc#x7YaWG;QGm?vxJJ%M=0$cyP5;0(ZE|j_g>5?&%Na(9hj3bpC|6bpgBF=>S5twcUCa3|J4%-QsphjSD zTl2;6Is$W#sJq06kA)eLCqBlX4rnG^#s`!-=R*XS^D!pnD-(a{7sQXlAG(A-_y7O^ M07*qoM6N<$f?~UrBLDyZ diff --git a/graphics/pokemon/rapidash/icon.png b/graphics/pokemon/rapidash/icon.png index 92dae70a64c0d8911ff899508ecea3a5fdda41b3..a15a0a18a2071cf16601f0011371b49237184d64 100644 GIT binary patch delta 453 zcmV;$0XqJO1dard7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sj7da6R7i>Kl)-Yt zAPhvEAqQnZ+W-ICY9+A2vD039=~Rapvk!q}vfK9O0@ybD2&kEULwJBAJ9EYvh;+b| znK0=Te7zHx-ZASc@gqE_k<4+P-S{TpL(y>|69g*vcBMikD%B)(Y=LTAUj@vWM`2(b z0kv9X8lQ1l0*6e0H6$UP8k$S7)QD0`Db*2AUPMZp!~{xd#YjjA^aPM-o~AKTq`F99 z;?uQ;T$#eAuYp`Wcb6ofz1A(y0}~#$l(ve)2A}Mvc(_HE*1@* v{b9Qb5*ptm>ytmc+0&$Vf4Dc0U-E}9tPvv;er#0=00000NkvXXu0mjfnwHN2 delta 447 zcmV;w0YLta1c(HX7zqRe0001qplF?uE^6BHKi@dsO4;rhSWwS8C)FWO0q@dtff$a|J>)h@6OT>;O|xs z#Z>6(Y$^~$1)<9dYiO7jstlABD(sQw_LEt$US1|d>j$z1D{>OyE6#@c_5 zD=kQ7O30e>Rij8JDdonLhP=EU}}sS7ewej$*;&^q_|F0gi1tiGdt%;X+aHe;0c10a0PF3yWRg zRFYKyP3E%dx@3Ao8{Cbt0V4;(&?fXD!@OkN3U^?Dp{OriL6KWO3k)Z!8F(3hX?g?9 zxJzeX#u0pAOdB7Vzz%W-rW|TUU<@CH_0SfdmX9hQOf@hMhK~(%ZPR|>gS#tVS0f+Z p>5=UVl^1*<_hQS( diff --git a/graphics/pokemon/sandslash/icon.png b/graphics/pokemon/sandslash/icon.png index a1d72a1ba7cb5d5908ba16b215d57bd361baa682..18970df1555ddbd1c641c6d501a9eed6e61c0155 100644 GIT binary patch delta 374 zcmV-+0g3*t1Hc227#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SK1oDDR7i>Kl);X} zAPhtkkdV1}{{L^+12h8TWOsY$sg`J@%mmv|zvKAEJAq#$6h45!2eFq>GXSOB7$~W& zNT&hSHb8}$f+P^FRZ%Nc#ljn!UcqH*ki=fsDqUw0#pM9MwGftA(0><0SHXqWjPAN- zXjW0G8f;+SYBs}v*xywNay+ZAhtTTLEKXX0I$L#6fVPD@j><4l^9 z41L)F<2X+;kkQ+Ws0NF>=1Ekln=rch2e6ML%fRu(+h)s6@**5S1STFg^^zxcMLaV1iDV2R<}{Jn&%<=KhbxY99H(V*km9AAI>5 U^#NHlpa1{>07*qoM6N<$f`#Lw0uMebswRzi636$dbO)b3Sp^Dpi=qmPikUF`A88iHmCoMAVE zunrIgsB??MYdzW__qdPi*!G;KfC<&AmYIX0kb8rV^*FNrGaOGnLGi4tE zOtXl5aG+16_i<1%aiFE~ zKD;0i*Pv$h;RS7d=>4?uLA{_22U>n@eK7N@k8jj_=z%BYx^e&j002ovPDHLkV1ko> BplbjC diff --git a/graphics/pokemon/shellder/icon.png b/graphics/pokemon/shellder/icon.png index 8d74f82624c8a138908183308884952431f237a4..8ffeb3edfa95cf44487ddbfd4c8f2cf5cf4b5787 100644 GIT binary patch delta 263 zcmV+i0r>v60@4DI7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S&`Cr=R7i>KQ(X^) zAPjTyfdt6<|NrfELo~-Y?(IGj7bTMxXw`1pT|ZaA*_`bYUP_y1)7!u(@a62JOc|<> zT19~A9#Eo$IaGl6h*!sJC+R@ouIiVOIAByk1*T6ZkjwcHWCFWVB`J2wRHPAfhn-SJ z1*WDGbq88R5GnnLU(bC*yJ9vpTNux3sMQdVrJLTkee>XR7fh14Q5_t7MwxNE;aamX$0^dfEE8!m)3z#I;`zchj{(7 m4)sxoc>R+OaUn+?eqA5UCd2+*X_OZL0000KltB)K zFbG6V3X2B9-2b*8S`#a6{VR8}F=3vxD9mwuu?^slPLBjYM2P1aLlqHbz=$&tuRtIz z*dqam6slK1lwl@hy|lLjsgSHYP;i!yYY5H2shdaW8HjAx3$wXy=?YyIMTrJ1>jMxv z-%f}x29=SZ5r8*;1?WH!-2v~)FQpw(CCY#+Y5}Nvhcp2}XfI)<7EF2rBBdr?OY#*u z(X#zhVbWWpF((#3s>7>U@foQe0qjN&4X}raMANtOv7gj0mhqlHw9JD)Tori<~ delta 307 zcmV-30nGk_1N{P!7zqRe0001qplF?uEW*S z@V)tvvO0?hbW-B9gvHWKD4<^=<=rn0uIF#s{x>dwAB_=))$ zgGDTjDHZ^>#f+#36MiqWnN}WOGlb7Pw@HMM=Vcmc|9DP%0lfZ%zf(W-gPYWkQHR)% zQHQ74k5Px%k4XpmrUR~ZNc_0y5ON=Ni4MV!s}BFhk1y*92zSmY-+2H4002ovPDHLk FV1n(pkwE|e diff --git a/graphics/pokemon/tauros/icon.png b/graphics/pokemon/tauros/icon.png index 08975b0bcedd9bfada576131ab88bf1dc730800b..de4bdd330d435f7d221310649a61c4b74b9f2a4f 100644 GIT binary patch delta 340 zcmV-a0jvJB1D*qr7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S97#k$R7i>Kl);k3 zAP7X`C~&j?|8Ex@ErT#QZ0%*MhC>eF0TR=FUElb10Q;E(4fBx|V-}|kfbx2`zi=d0 zT4NF(sEVNXZuyFL3*3gF5}}g_3?QSAV}huQ1qREwO`eN&(FW2<10oz&z-Yj|R%)JJVR)PFk6ss6-ay!sIx#;M=_ zTfjMtS3ghnJ0m>QFF`$C{n0?Y`V)U}>d*aQtDiX);8uS#?hhAm%V!b=uLFGY2XhcS m_=7dghwnoy?gQYsKaC$Ip%hSF?r+op00007zqRe0001qplF?uE5dr5Pcp!;_Y5?0TE z)6Ds2itl{_j6olZkg+krIw(Jd)l9qJ9GiCgLfA~Zp(>Fa>4d=r18@{J$o6~=x z9pdqE*CGLk^38YBq9U*>HmYiK0xjmU3Z*2_pmaP?jU0;rSDZH*2sGu#6~qMm2Z3T! zvk)8JP{nJ%5G;Z3yiS&2^*e8Cfm_8UoDAwWMhHy?!B%&r2)ASqMA-?eFw$huvb3ddp3mqVKY$c4p^k4e%1HrSa$7<9mbpQYW07*qo IM6N<$g6;&Ry#N3J diff --git a/graphics/pokemon/tentacool/icon.png b/graphics/pokemon/tentacool/icon.png index 5870f50b8ec9a40b8028accc708279f61ae62ee6..64a9ef364532259daefb064464b3ce3eea6c9226 100644 GIT binary patch delta 285 zcmV+&0pkAS0_Xye7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S=1D|BR7i>Kl*tOi zFbqV!fRGnF|Npm@RX3zTwl6I`G$spV9wXUg6;qvilT}{kMxi>_loCTOgFs6nBXT!; zBZecusm9ogyaVujAq*nvL0=7o@V+-DPtkn?Ut3VILk&X9ZMHbRqWR@7p#`@@u#f6g zE`-q5|6Uk7UzlwA`1f_E`^V`%h)KFn#3bDZFiZEdX^|%B)&YW7W?@8Ehl5|mALpa7 jEUtb#VmBV#XUD?>{(}_$QAcD~00000NkvXXu0mjf7h`%= delta 281 zcmV+!0p|Yb0^F$%&!5X=vjyx`y-pbyaZ zq_FW9a>7Ac1#1y4ECfGblj0yx$z6nyh-5uuVm8~@2DdqGnAu%sHV8&uXxV?C4G_30 zGvGW9CXJR9c$(ru0Z^uxMMMK9y^0nDs24hoj+Q7&qaWvO%qao3C&4qywC^0aOM{)k+`~=tSx=)ip&IirPAheb4v6S_}>GN@h{urpz_S zWyVBu%0%4gQPh8=-)v6PZzweV2B7Ktg8@g=chaASf4&VM48`yqu-OQH-$#zfD00F$ fxnuw^Nn0<;2)MMuG%&CL0000Kl--WR zAP9x4CI&6xy#Lz{PKV*=M&I!dK^!D5r8gykTbwccL>g`a;de_mOyR# znd&A9Af}T6XRX2$0%{3zt`=FC2Lg;MK{g`g%*1^sAOlDP`3mM4V2}tE2Ws_fJy4X8 zWL2=!?GVJ04bb*~vFfc2(=D`@RTtvol6C4Iq`wIu2&hoe(9I#}E8-hKj1mJ-5>m45 z2r&+Nu%(yfx^Ex8I-=NOFD~#3(l@EqE7>i~R?8Z|oliZ!GqAfA{)o|Dk+A6fE}NxPP$!L>xcBul;BH z+L7G;y4&rK+28)EU3xpVeLr>H%g3=jzW6h|0Np|%9Hgt1DF6Tf07*qoM6N<$f`zcA A9{>OV delta 358 zcmV-s0h#`+1F!>-7zqRe0001qplF?uE1pw6o!2R;T*uBK7cb6 zI&{fxG-UBLYzTO5LLoyT6bI6+LrFU$FR! z&D~^@>rl}Nuz1to4X*(m4^9EIkr3kV;I3J;F%Yk%Yt)T5I%Tn_vN%BGmm5 zZAA=XqhfRl3Jel*Z@5f-Xt|rX-1AcJb#U8nbpV~|(6gIqb%^}-TOHiQ1YQTX`~fMe zL+JddkKm{S`E64T@roGmfE{!oMRDD!jFCEPnf)opH;7ChcY&$GX8-^I07*qoM6N<$ Ef|aKl*4>1X=v{g)Njl&my7EC{#@nPZD@1$05ShA=ur)9(mLFHz z>~+FY2pd?yhJiYDQFH-s*cJ18rz{1hP)f`?%zW>K;+C`x4G8oXr9k+*I;QJPO`V%SXx;=)}VqJHv#(@XGJ=b$`qSV{^f* zQiy{0%?|l0UMqIDFpLp0)Yb#0x23#fe8MC4nGWm6b8u*fm8;e h;fG?wKIR0XJOFJ54y7i`LJ9x?002ovPDHLkV1imZc4Ytn delta 271 zcmV+q0r39j0@?zQ7zqRe0001qplF?uEtfb+sMOKTH~Ja+d4*cX63{l|Gg0up7DXHcG21=d`^a#F_~|G6z?wHe!c&0Q0TO|F z77SW|4c!D>1FYzfORznrbYkRkt*LO{Ll#$55X~SPhpZr)NF72}5K^mQ2Lu>3V(Ds4d8ZQtT zC)3GwlEX002ovPDHLkV1h1Ud5Hi3 diff --git a/graphics/pokemon/vileplume/icon.png b/graphics/pokemon/vileplume/icon.png index a3cb2b0b59a050075baa9bf7fcb1d65c6edd5092..3dcf11ce3912894ffc6924c219ac0521c7b60985 100644 GIT binary patch delta 318 zcmV-E0m1%{1Be5V7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S21!IgR7i>KR9z2* zAPgfx793{#|Nr(nP@{ZZa=F~g*#{)FbZ*f)_n?Iqj7d&JiKV9j>3t#zK_vOawL~ca z;F*J9?>*lX%FF^RO9;ziJK~!{K{Jd^f*s7T-YvYHT9Hy9aa)2jAw|f(DuI&TB(h%z z=x#yzkcAIW-KUy=hIS!!$7!RC^I=mg81b8cq>%u=+a|X36}qnAGGbhN7I-l!0zA43 zXkxw}11;oG{dg7*< Qi~s-t07*qoM6N<$f&wy$Pyhe` delta 325 zcmV-L0lNN(1CIlc7zqRe0001qplF?uEbEG@rFn!5fevSI2SWx4lC5|Ud5Ka8PPrHgCTR;-BVF4f? zqCZv4+)mo!S{~W;tK?=zl^hh2sr3t9WmRll??{x+Qlj~z6=)?Xr9zPvM6A@BvMPVU z(Na`Nqm+#8M2B&)Q5O<1x0X3#iG4i`*|@{J7ju_P@F~dN0l>oR#SU(LL9jl4*5EAX zrPjK>bAo7JwchEa_sB`tu-9&c@At4^F9rbfdAh>h<>xS8g@S0K|5?G(g#pG};hOB00000NkvXXu0mjfn=P5M diff --git a/graphics/pokemon/voltorb/icon.png b/graphics/pokemon/voltorb/icon.png index 551dbf281c4b9ff65c99f66baf812fdd2050fc82..f0113355b0b81df695a1c5886fb6b1819baa5a22 100644 GIT binary patch delta 169 zcmV;a09OCz0rUZo7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sa!Eu%R7i>KlR*l= zFbD*Tf(HY;|Nm_@>7@{JEfnWEV~~VgSMysK9JTxKI-!r@X68jfdjhk4!I)isA5ahq zbwTCyKoxifgycEfASaco;bp%B)&eMeEFnlliXaMAk=o}~Pknxkqi&iv{k!{jf6fg# XdkVt@hYAh=00008NkvXXu0mjfdtpLU delta 155 zcmV;M0A&C40pDE8T__^_t9PYk zeLxcU1{6rkM;6Fhh9bbPmzI~7mWI&7Z=d!o?-{bd`n30t((;f5o~79vr#(Wl=HIil zw0HVQwtUum_f82}fZy0iNeS6u4F8ps&^?339|dS&H1=r-0B5;bM>N2xnE(I)07(Z$ JPDHLkV1jQwM4RM~FC zFbK5bNM>UP{{L^w5wF2<(@K4)v`DK>V1hZulhQ{Tzz^})t3y2W{mgMT=urRJF9DoO zo{4CEg!zeDtBUc)?-H=TS{c#;f-16K-4Ye65rCJQ0UG6Bj)?AV)N-b*Pp(9XTW-ma zIgZ!?)|ddYoUf&SNVtyp3ux2NvwSMeU>;rQ@L)U7%7)sYLXfWU7=Z9RkK@RAFba7} zd;s{NllT$0%sFu9sZ@f#70X1WGyzouu#wxAj7(7D9wmw8b@Sg`MuY~y|nqg(}mb8ti--w-XFxQ7=lGoQGi}`Tb+7Ls z`Hg@B_s#i%Ll`~W05I(aI#bsP)Jz<_FgZG;bQci4z5gp9J^r1548U4ItcPa-;d}Kg zAd=!qKvW*?0+QnOSO`d@%tAoo{{A8$rUza?IN?OXARwdnJK$o>f~6DXCV^Pokm33Q YI8-JoNgC1(*Z=?k07*qoM6N<$f)v8cTmS$7 delta 420 zcmV;V0bBm}1MLHl7zqRe0001qplF?uEKb05eFQ8#WaJd@l{&SXQx~N}BE=FtADEDI=n%z&1;60<@8^TDYku-< z&efSxDpicjcrglm5OKU5)Zw2CxK8+Ni*QWz*1K5Ii@tH*R<;RqVR{^E0H~wT;<$gQ zz``o->2VDG2Y5H#Ie}+-g`&z{3Zf!j*b@*Sf8&htBcA zzk2?9d%1fx-@Yc-SVMQ+O>1VR#{J}c_ozE*AJ9CRCu zO7XCp+q(7I$21Es{M0e&$9S=_m^y!%Vy47=j5&qOGGV-#kZrCM?CRg2Gs2Z;YB~5U zmxCfn=EMg@sDfq5qEM=150dtcO(HNv3~_V|8I-{ O0000 Date: Sat, 1 Apr 2023 07:34:59 +0200 Subject: [PATCH 06/25] Forgot to fix Venusaur --- graphics/pokemon/venusaur/icon.png | Bin 493 -> 489 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/venusaur/icon.png b/graphics/pokemon/venusaur/icon.png index c841ddde4fe57b5833b98dbe10868839264c683b..ce3b2290ac95bbb4a77df21b7ad9513739f06424 100644 GIT binary patch delta 415 zcmV;Q0bu^^1L*^h7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SXGugsR7i>Kl;Mtp zAP|JR6@pC{=KbIHW&o{J+T7*Rf8D56W*jz1zsu!YlLDXO1r)nN^rTea%p}96UN|M$r5# zaMMbJVKs0!loCUKFv`@K_SED3jueqc0aOEV{dZ-h)+qmuYv^VAo@bh*-E5`X$KR6eDU)~zt?fP&1y08IczLxrT z3LvitQu)yVG9yUk#{(c|f}nxn4L~pgBn^9R0+4h92%6pjLV}zCLLpUvlx>GT933DU zy;1)pK=2WOU<#1(FMybrkq^%RIrCuz$b=6^fV|?v{(1h)haU-yCp!A$RptNy002ov JPDHLkV1mvdzz6^U delta 420 zcmV;V0bBm*1MLHl7zqRe0001qplF?uENVj`1Gcmbn> zYZnu`mNY4IALFplj<6W#F8T~k4z~$$?oAo%(!s$=QmMHOCSZT>1qyW1PR6_O@t%ejD&5SI6Xtv z=xl2kIbe&ya4=E<7H-Xq@jTiL98(5nj3Hw)%6YVLk`gdJe;jkpBh_>_XY3)&_=3kV zS3UDL3DU0ozXvajg;z5kcNXWD#pHh%^E1X}1vjh70o5*l;!(XH0LcgE?Ip{~Zubyq zfc7sAq%iGKK|$*J4bcOV!cb5@FQt_dh8p0}p)h(SOzBihm=Z`~Y}rr>L!uT2zKc7x z+9INa0jBRq3WH;WK_g83gD{ Date: Sat, 1 Apr 2023 07:35:18 +0200 Subject: [PATCH 07/25] Fix gen 2 icons --- graphics/pokemon/aipom/icon.png | Bin 380 -> 407 bytes graphics/pokemon/ariados/icon.png | Bin 389 -> 421 bytes graphics/pokemon/azumarill/icon.png | Bin 417 -> 419 bytes graphics/pokemon/chikorita/icon.png | Bin 314 -> 326 bytes graphics/pokemon/corsola/icon.png | Bin 315 -> 346 bytes graphics/pokemon/crobat/icon.png | Bin 391 -> 404 bytes graphics/pokemon/donphan/icon.png | Bin 479 -> 401 bytes graphics/pokemon/entei/icon.png | Bin 488 -> 461 bytes graphics/pokemon/espeon/icon.png | Bin 348 -> 382 bytes graphics/pokemon/feraligatr/icon.png | Bin 469 -> 492 bytes graphics/pokemon/hitmontop/icon.png | Bin 473 -> 463 bytes graphics/pokemon/ho_oh/icon.png | Bin 558 -> 539 bytes graphics/pokemon/hoppip/icon.png | Bin 342 -> 366 bytes graphics/pokemon/kingdra/icon.png | Bin 402 -> 349 bytes graphics/pokemon/lugia/icon.png | Bin 517 -> 523 bytes graphics/pokemon/meganium/icon.png | Bin 431 -> 425 bytes graphics/pokemon/pichu/icon.png | Bin 266 -> 288 bytes graphics/pokemon/politoed/icon.png | Bin 399 -> 398 bytes graphics/pokemon/raikou/icon.png | Bin 572 -> 489 bytes graphics/pokemon/sentret/icon.png | Bin 320 -> 336 bytes graphics/pokemon/slowking/icon.png | Bin 401 -> 402 bytes graphics/pokemon/steelix/icon.png | Bin 442 -> 483 bytes graphics/pokemon/suicune/icon.png | Bin 538 -> 533 bytes graphics/pokemon/typhlosion/icon.png | Bin 441 -> 446 bytes graphics/pokemon/tyranitar/icon.png | Bin 458 -> 431 bytes 25 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/aipom/icon.png b/graphics/pokemon/aipom/icon.png index 43822f098048c30c6d76abcbe6506c6ca28f80a9..294ab74eb43d491423a0017e5a39e4e63d0ead98 100644 GIT binary patch delta 333 zcmV-T0kZ!50+$1j7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S6-h)vR7i>Kl)-Mq zFbG7WbZfa}9 zv=Y>#Yk^>`HUV}POmz?pk|&^|p;x360GTlnn@Ru@0JkA<5+MSy3J1W<9>_O9q6i6i zNB~PRZNy`Z;82KvllNW4gE-z_PuGO~J94k_6b9b=sWbGO76YBOGv<131ZDv2slgFV z=r{pzuh++ZZ3ox?ygeB24%MgrO8rawUx;r10qFK0fNuW*==PsJwAud{ywU7`WJv8P zb=tr3AqMR!b=rUJ5-R5yJtUU>-3wr0-%_OPugm;Mjl3@`5y_YKe`Ukvr=`NQ|J!qO f$+ipe1Nra;Y!4V2<&_w<00000NkvXXu0mjfnZ}rj delta 306 zcmV-20nPrG1N;Jz7zqRe0001qplF?uEb>!3;^{5KBkK^^>JMs z7>I^0;gY_ihygyp0{nJryhu+F?ZE_F0QcUEOrbczBdKsK zd*HRuRZmtO`cLtzI;0#?hYX?)8AKg2h&trDQHMO4r~~*Undl&!ffmW`Iv5!~qmIgm z4x@nW&P5Kl);X} zAPhvSf(cwa|Npl;4oM1&DN?ms^$;JDsxz6G7~bP?*C&OQE(^!nkmKn9JTG#_A&VPE zgTg9%x@AH%rKI^x8seF(s^aQm(Ho$V@koP%;p$x20b)D)9Y78~ zOaTI;1`dFD4YU9;J`ATqI)IFh4j`2eGk|z}=mB!^p*`L@4L~M*cmc%a15f@15SI_+ t#|03d52!g6AX7eE1exuMb6tPThad8=7f>!Itjqua002ovPDHLkV1m}^lIQ>c delta 315 zcmV-B0mS~L1BC;S7zqRe0001qplF?uE3G@Oo^q|uBZN_ahf;=1Pc;)^RGM0clx5}j~@yHt-cHF z-MJ55Pg`H@J0JPvHQ-_tJ z%Pi^?BO*Bk(SFfAwNa5b+>e&_VbA~d`~nzK0hrFm3=FMGbYKvGNsAGTc3@;Z2V-n9 z12g#;!1O*`;K2AkdN7`k*B*@LV~-~@7|#cFMF@PvDp(0V+tC+3-T^ZE%8iZ4)c^nh N002ovPDHLkV1nsWk$3KmBEg~ zAPhtimLe;)Jpcc<#RO6eF}>_zrCm!^5i>D1bzW2YV*$*INf$v|aNyv}aXVMXVG87k z4X-Z-In3}nf*LFZ`azL_u}ffmi0%?djkp3b)hy9XS_X<8MLti#U~s<)Y5}LTK$@-` ztRy5d7~txy1`DcxUwRpMXb9zS6U&FW9l^d~Wg^pK0^?OTeDR zl7Vr_xs+(?GMcv4bX(5{d`#g;-tFjK|Bs)Gh%kLWAdC$$wuGs#%oZSMg!#Pyu_@jG z#NNX#K&oK?$Vw0g5Pcv>8UUhC1W67cJ%J<02oOatY^d`%1CZSJ{a_3L$@ia=zbX%q rg&@EHkY|FV1`yd0#2!=q0+1=*kN_D%rCf2*00000NkvXXu0mjf5d)8j delta 343 zcmV-d0jU0?1EB+u7zqRe0001qplF?uEVlBg0~4OaM0!$u|86k|fCEJV(Y82>a0mi;+uHUZEk6Bw(>49@B(BRQLDMyzK8xd$ z<+j^t%>?TVBjYU*^OB5N>#JhQ(lcYRe5s52w^a}{FFPk_LM{n{9xGsY|Led2Rls;t z0pm>shT<()fswO?)E9smrDsak5tu_6sUZpxn2{7jf+8@F^T%}j5txVhEeQ!2Mav8h pzyR=?R)9GZFl1ZAml~KK>l%Q67#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S#7RU!R7i>Kl+6;t zFbISb`RTz4y#L#ZNv%C((ea>mrhDBl6w+OkB~D8tNO%i?77_?(^w1WH&wx2%h|#9lbQI??L||gm5~hK$_N$%( z_j_1>1pqE}wJU*IF5LsEl0Aq@$y*piP3=>Erg!!qEq8hB|L1;rQNIUB*5L?{#Q$P| zfW6uR1Wd9E5EKwwfXoA8A0YGFc6kQK95`-1+yIf(3zGOF4`BcR002ovPDHLkV1gwP BY#jgq delta 239 zcmViY;P)?An z6;eIYE{Rt*j>b{o1at(16h=Y_L%%a3F@QHe+26ALmHPS6@hbB`gCK#3S}ZWsiJnJ) zjzYnWgOCi&j19WkJ1fABH;XNT1Fx0>cs@1`$J`CGKTRsyrYWWe+0i;r1R!u)1;Jab zPI(1D$9g@8WmF}vq10@y{yAbSa_YnZG*R(gancN0k!w?&Fd0S`d}tVa+{-W?=DZEl pgKjnqU8ag`7+fY~!vOfYKb}}9V72%=#>4;s002ovPDHLkV1nWtV|V}n diff --git a/graphics/pokemon/corsola/icon.png b/graphics/pokemon/corsola/icon.png index 9fb51a0b146038411c78300dc5d07de33ba9d74f..e5ebe6c08d6adf125e0e9ee9cbca9637b13c16a7 100644 GIT binary patch delta 271 zcmV+q0r3920@?zQ7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S*hxe|R7i>KR6z>E zFbr!5^k4_;|G%A_l(uV}48{%{s}Ai!ilsQ9Wx4Tb;1#c!N&q#PDWIYUA1NW)6m&u! zC+0)nR4r0UkbrwyeLVL-!D!dCw?YJqqM#(0TH^5(PN=VBDE=G2J7W9i zF*p7J-_kG*!-i=EGH94nfeaevTp-o0Pk9uGEAsPx@B$f<+n7231|CZz V6_bnuHY5N5002ovPDHLkV1kn2aM}O> delta 240 zcmVr9LId5U(y?0GCRw=Eu)i(wbrLkx!LqbQpc5(D^Oq=t`Zy*XY-i^^u#Y$k} z1}3S7q6{MIVxL4HMeUJ|aCr#RQXbJ!05Nj$k55Y}Sw9>vFnc?0J%(wfVA$Ge-;Br^@Z)o+04{&P zwgGSNuQU5`=Lom^hZp=BD&^=t?+~T&i6J7MJARP27k6YVsquKV%t!&N0@7^VWByBk zrq23WMg1->>UVkE)UT2JlGU#vry;A~4X{&IzYgWoRMcO01ms73YIYFJ>a(wgG1(5u zq~7lT&UU~nk*~{S+aePU{r=ZE?I$Gt!g5JSPpO%|VWJQ9tM~@rL&kZ+e=Xqv0000< KMNUMnLSTZAl#Kl)(~% zAPhtWE;%^a|Nq-&69iGQGo7|4_oU>JkihJ+Jo-p5-G()1oiZM#Gz|!9T4=I>6G++# zUt(G$iU?E(f=IILf#@dei=?Q|ogOm{gw;nSJS^)f7=czi!W0fgh*&)3gtZbCfOkTK zVec{!i4-V^?h*BW8zO=VlfhFn6~enzsmdf`snX^ z9HcwQ`Yi{Mdk1lUc;g_=A0`gc`#d>_xPy#M>>b4Y0hj(J!1%R4bO)LGLvxV1Kjh!| Z!wa`uAvdSamec?M002ovPDHLkV1fesk*ELw delta 406 zcmV;H0crk`1K$IX7zqRe0001qplF?uEb>!3`KndK{EYLU}rNCS&$QIq6D(&kjZ(>U?%{6pUE%)sD9?;KgA()$t8_gZKCY%ZVXEqMA*b0 zU>LvZYl)?|$MZ?{wp>1R9%JM2b0vxSrnu&p8snSz@vs6<}Y zG0{|sAUWy$S*jm|_ncrH;>C>>%-J}f{iq6w zZWC`>fJ+891qpdWB+d<}Q3s5W*rSgOgJeH!0Ei<<@gp9L=XAJVvPl`JFl&E^)(v8- zADFrCE&N!1{D`~s;zw3UR(|CFVC~2D7k+#LH-8%dYcN+j00000NkvXXu0jG}g1yVS A$p8QV diff --git a/graphics/pokemon/entei/icon.png b/graphics/pokemon/entei/icon.png index b7707797f0cb9261e12a1af310cac50f0e75d636..eeb80f46047d49d661461cd800c4b0e3bec4d48b 100644 GIT binary patch delta 387 zcmV-}0et@G1I+`F7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SOG!jQR7i>Kl-;g_ zFbsp2R4SB<`2F8@ZrVZ#Fddz1Dv&1Gb$&Fy&*wei0QGrPKPbS~OgBENrC{5jNU1&- zeJy1L=u0Un-w=YTmr_ldROzq~0$117pvu?0%49*Rs@ldbD4Q~ft>Dm^D@f)JG5%(T z>SWMG{eHDT#Dp1tbDz+hd7%~nB{2~TF91?eY h02T~@ynOfvAHGXM9ABY#P;3AI002ovPDHLkV1k>1t#kkY delta 415 zcmV;Q0bu^k1Ly;g7zqRe0001qplF?uEn= zu!N^B5f8ujC5VnJso{t?8qYJVEQ?j5M$xHvX!KHuar?}bD=V_ce{Tv zh~n*Y%8ScZI;0bvSDSyNVsR#yU zP_;Dn?4Fmgm|zN!^OU_+Fc)^ad?tTbdj22&?9<55G2sKnjVj#6xk9wWw1du)IiOf`!_iCbV?)O9?CZzKR6!2J zAPDTHo^}ZQ|F;Y1c13Btbdw&+p=q1}M%3B1CoT?I;aD&P6GOs+yn2FRLL`yU7^0z& z5XX{Mq9uB&lR^o0L7^=Zd9PMC^NCx;KMZ6bOa?L&qJd1L(Lm}Y?yHUl;xFyoK-w#mV+(_U zh&w=6U@(xH8WfBMk_;*sNcJ?Nfn>A1)IiSsL3P~HA3i!0Dj5Vsq)-(|K3c+s$S6cJQBMEARvw-nLm0`#o zuu~629yrgyNG#`@hd#M!xEyHc_Qr^tIsmW3flgigmU#lgoqEepjicE@=(x9x8n}G~ zBPU3Lt|X4P^y6K)y+9RRAU3UnMYY&E;B49GQg9=$wh+9y>9x%?XIw0?-!4tfzt#u9 zl&Zi~Ap=vT0!%bZQUykJ4NSmUsK9_rKd%B4<7A5hObeEPY4Hj$E$X|#Ecwv!yL`L= X&Ar$}EUn=}00000NkvXXu0mjf$&q}P diff --git a/graphics/pokemon/feraligatr/icon.png b/graphics/pokemon/feraligatr/icon.png index 2fe3556a84094255dacedc86769420f89d31c720..74aca6aea47a50f18c8729bcb8e37dec026c5b5b 100644 GIT binary patch delta 419 zcmV;U0bKso1MCBk7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SYDq*vR7i>Klu>Vk zFbsq%45?IX-~a!&J3BzrCd)KwPuuc<5O>(l1-{$ucP)IS@0feA7nIX6a?;?{fUNc| z!wVN`uf6n!J@n#;TQ8p(T=gt9bWo=w4TBOMdRSmKG^m@poQ{F6rh1ok4F|drAZDVt z>$a`RTla_+Z2=K~zA9@PY9l;@jhHx}DD^EQ7E!~sS#Th-8V2a83Yl+A?=S=O$@t-WB3g3Xu)FRkIQ#Uxw?7f1y67DgB>3^563@jgvD zn8L9W?e!%#!@YX8>c2Ypf(2Nqn{&*8Bh!zQ${sTL#sT4fUgtkSf8u{-{R1QoKLwEb z!A}4ZggF56LXZO>DlI_TWD_8&k0i_!Af*KeWvPU@0K(id+6s{E5%1@Jc>?4lNCn76 zmwA}yz delta 395 zcmV;60d)TC1JwhN7zqRe0001qplF?uEj?ft9zR&(INut`}#hV2TroR-K$+6_F($hn*0s^~8b@-tyPUcNhOW@3#(d zgIXykh@#87I@E!xZ5bX}a49Lwcd7y#t-@RdCvYo;;4R#W6n7Ea4x}bn@nzKmhZz1V|-T{2X2`iL$ zDn#~4R}JtY<)zRSR{}`~z_Y1rMQ&Ep6SqYy_az?!bFYvPce5E6Y77d9S53q1dTkcG z=st;EW+D!>kYJY~Zzo)4S!pXgB)WH*gze?eN8fi|1JV22^RK{w3uX=m4C#k6V75IN zRaI&L18W)>FcllXz@rvqz*HgjU~bo1P!FcadoV`O0LB2(&qKNq%r}q$jIY6r>$DCS pGSOfh9|u}q`oLxG_(1%rk1uw;NuW8Js+a%(002ovPDHLkV1i}>uH^s# diff --git a/graphics/pokemon/hitmontop/icon.png b/graphics/pokemon/hitmontop/icon.png index a2af3bd2484a06eacafced25d2941540a84f1751..7f8d63f91561d6e163204d912b3c7cfdaea7c560 100644 GIT binary patch delta 389 zcmV;00eb$~1J47H7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SO-V#SR7i>KmF>>M zAP9w*8sLWs-2dGUP^(sKw>R(4nQZCGk&o8%?DhJs|6lSHPp3k31%eFHqztf1B%_>{ z830y=P)otAlC+jlh2In;Ris5B?1?oKX_28*zZARAs0t$gISiGFGLwcG2{N?6p1d31fJsH5{=^4EHb)Ezv8nazL|I7BGKo3d-4Py59UMsw?0{4*gy7v zxBtffgZ(%D9~`sue+R_I{|yj}|Ic^@gxPoWf8SpLQ8{yD8C!d7fZ)sCMi2*tI7?=K zH-dPPfDnx!1rQ4%PJ&Eju)}%86kr9|F zlzc%V!v!LW5CA{cJHyj3720qS^DqvVa9*9)E>V|t1mbF{zs7v4=WiW=d_L(Ab%(^S zcG3X~mMqAm1E}J~H;rq9wE6IYfE;_*Sp>}nmH=uB09I_2=mZdfRq0x_%j?&BEqm(g zMUd~;ZK45#APr+B8S;X3aZ?zPqQrUEKzGDVhPbr2Uj=SaDKv`?+6iJ2cP97%B6hx< t3t}pMtb#!fF?_@6e2_4-mxBDmj~|*$*qLG?0=)nL002ovPDHLkV1k~jw%h;! diff --git a/graphics/pokemon/ho_oh/icon.png b/graphics/pokemon/ho_oh/icon.png index 7a7ce8af61360888a36885de5b855797a87c890f..315683cc5e8ef1b1d46983b419bc998ef7fcad88 100644 GIT binary patch delta 466 zcmV;@0WJQn1e*kq7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SnMp)JR7i>4l-+K_ zAPhze&WenLzxRLJ+585Ql3i>!ORH3sPrewEt+XBAW--T?)Yn*0R;l0Y-2P zknjbr<<$47EkD33kV^b|y>+1*qxDn*NUx969kk03L{cE#_~i4tXF!*ZR(L7;DRn*av%h-QBUvKw_i)U;;5 zzM_3X;7C>fVZR}v4FHX(`gi-60f4T5wZGQ~Q1#FDn>5RSK-WJ57=n()H~q(am<2!U zU&_mXSoF6s{CU94`X{fK&jV)FAD8;1|7!nL|LgEC=l`q!H|laC8>S6{^Z)<=07*qo IM6N<$f|fGg0RR91 delta 485 zcmV-7zqRe0001qplF?uE5I0D+i!~oqf=ROrc2`BSnU_16w zqeRpX^};IHj&?q!)%b^n>%nkr_!_m^@p*z-)DQ4G3BXGZANp%du(}Bdwc5*iKrJ#@Bt1RM;qKE*^h$Um~Ppr_IL9;}v- z_AZcJeprl0Nh95VNC2b}|7HF3MK0cvK}`Z)J#Q4A<)q~RSLQ_X0F^n?*fGWgXd@7Q zuuT&Q7sM;CPzNARgD?cReWuvuXzJJ|5yn7kjXDJ8!Wp9vRrJB*Iz(ercMMTYOc%Hg zkv$$U6h;+4;5yi`55geeIz;@Ns`0&I9W`6pHR7i>Kl(7zj zFbqT)65C?%{r}(Amw;Lt2bK<~!b2tG=R2p6Tb8GOT40?5RpcCyDxVsI9z@<6(TwLK z5);(eY4WAuTccD?0fp^hCu#)I-C}y&c_YB-0LL@I=+cjq9vKSS$B%pdm%xmSn^_9L zR_oXtXV=jQWv71I7SiJRh19}dOJ4nlvmNmH@3C2?d#N=M=0fNM#U0(D6k^I0=Yx#AX q0Ll7?0Lc4icOi+f!*^);sUa)~|o^r)je6hlAOz!DKdos;6WTl8zE^WM71- ziolw(cuQ*K;AYCD7Sql_xVP`Bz_p@MyTuHSrqGs>Idq(}zlu)oJ$pQ+GaL|c=md8N zXBMMw%L4X(+7Qz1AY?o=W1 z&fyj;;4$zC_s9=SBh8s-nGloZ&()0#k<%r56V2ZNp@vT!msB~j36;|C)$u2vs46t( zx$aw!+9WGXLnKmikWH$ZBBnBvLA6yIice^5ab0Z?!qQs$BOW)20tYLDYXm#K8$BgZ z1CK6e%m4NDs`L*CYx+meLr*__9`^L}=i#6JjTL6&^w-g-_|tU1E&e)MiHiR?-uS@$ Z-vQg=6O3ITXTAUc002ovPDHLkV1j2>ddL6( delta 329 zcmV-P0k;0#0+Iue7zqRe0001qplF?uErQ$b3^KoFcC^dHs-2!{bz>g>tDI`&wx53Fd$vMv@&~9;;F%4L(w#*8oZhwvqt8MjSS=WD< z;e^4!Cj~_49!^4>9~pY8v!UQtV%2ZX_}n$R;*>jEUDXS|6IiZFDtV9RWf|m#Ui-!f zK&^>V5r*_7{sW+iQM($0Vp5Y!>xnFig?aEo0e5MTQ}K8digbZ^!+VU_?Re%0tNW^( z32HlkjdNEh?39Kn9$$AMO4u)QV3#$6_uI$IDDocbej~2`yErsD4hOk3h>9?=R0PN$ b^aFeVBNn46KRlAbJ zAPh@P6)GUtWvg^dN*N6kg%6 zuYBlO5vt8%gHxZzihy!%2(qtk?SvK??6U<8mY?F9SzCu%Y8`TP5iIl21uNW>QoZV# zQ77oXi=!|^HKz`Lz5++zGN%qE!&$;~l2@iiVqnLsoLE)P4R=8T(i9NrLjh3g7T_10p^86!r?$2_GlSAGV~+p77zbNv!UuNmM;X z+T3!flT~b`9~!4r6MF_6!54`r$eS5o@c;3P0j%qY{v?@yy=Uw=y1T>P6F#}y?L9H> z?zZPC-}#5T@3wik`S|F)lBW#mQZF! zI3?VD7MeBSZp`kUB>KCa+>Oi_-`U-RkQ+*Jcbc@06l%@gXmK_tNAnr(ZvDjnD7n`) so_vXA&^mfO$KkD_g+PB|W&uq7hWt+lb=fG%l&Wf6b`L^d1@|_*?M9!% zSbP(G8q0H{uSQN2eKnBG^i_;{PXB|8G|uU-8E?ue^fl8rz*ywLdK+cc4mG9(kkH?{ zu@5|0Nc7tzkaWO6-=@wWkq7!Z2}59_KL{Q!Wn%i)$)-0&5}3Z-avpBNGWjUuY-R0O mAd_1zI#Vu-Ae46{!ht_m3gfJY!Qd7E0000R7i={l);X} zAPhvS7z`!K%>V!G+N7z9V$#FzN-c+6{J>+9yxZ-o7Wt;$8m}NWD|ToO?9g@nDgoJW z86mZM(ll=YZAop-CZX4pA(E$fn;?;=xzAgi|eX-hjJODoc`IMEFdkgr$dag^Mje%AwbON-E+}b1K zsfFF)R!Z4=Mym%I5~>Fj5#$h1h}}^Ftd0oCM!*Ni;If0A(gTl{lB`~dK-8IoZVL<#@^002ovPDHLkV1meqnVSFr delta 357 zcmV-r0h<1)1Fr*+7zqRe0001qplF?uE;SA;`<5U&b{!0muP9ryj(+p}quw_oR7A71dcG-FJUY{qOCB*kF7Aok4S*9?*wu4cRzjr`qtGUiV$N200000NkvXXu0mjf DX!WE< diff --git a/graphics/pokemon/pichu/icon.png b/graphics/pokemon/pichu/icon.png index 5e3de4b990dd7ebd579fc7e16967388d62b3ed2b..d29fa7fb4a5774895e43e3791ebff8b16c4344af 100644 GIT binary patch delta 213 zcmV;`04o2A0-yqr7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{So=HSOR7i>Kl)(yy zFbsnQ57Op$dH=U{9UFKs_97@h%QfHDwH;ZOsmDcTKuHLegrMP`AOQB)T!Iy_uqbQQ z8o?M$0SEPvF|s{wUpZP4Zy>i#1GFCyzNo=^o_!L6aMG<|qS4}RZH%f$ zv+ovGD|q%PvTrps^(UGE()~{bh}y~s5SbsR08xV&0U|fwrkt$wg?u;wLA4K;vDh$% P00000NkvXXu0mjfI2=^% delta 191 zcmV;w06_ns0*V5V7zqRe0001qplF?uE}M002ovPDHLkV1h#-PqF|2 diff --git a/graphics/pokemon/politoed/icon.png b/graphics/pokemon/politoed/icon.png index 8ea308aa35561da41df3bbb6a96292d8734c5beb..ffc6a38a4862c5af1e2b0eb16ab7a97faf349094 100644 GIT binary patch delta 324 zcmV-K0lWT>1C9fb7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S3`s;mR7i>Kl(DkJ zAP7Y>226o+|Nn0nG+Ql@ZfD-SrAP{nf+n2f_=f?Y&bQVo0!mrVt01JkQ46?k2 zO%T~Vd74!vA(U5tsO=LH>NO0oW}_`&E18WTPHuv9kg!mvxXGbT*fYCqBL@5+oPLe{ zD;SY~^1D=(ze`oX<8=IDk8hc;1+onCpqPdyKm2Wh;6Whfk6sGI{Lz;{=3D~#oIUdg zVa_>Z8{%`i-5qel{qW z(2cgC;iQd2VYKZ+3q?Xu)CPj;F`IJX0}(TB`NVUB*DQe;kMWk>vB2*!%c#m=c6xuu zgjElhPfPGq`}Ip+=(!hELRLew_ET*N09C;(b^ZW&!-iClUl>-z)@QRx$`WN-loQ_l zt0vOHW897{1PgGnB;1*c3E|Jz9LJHZlmI5`npg<2U9b2 z5SdNi-|jV3gN2e^zJdA5SE1GsWY94q)bD}O##gfr7+4HL-AC_%3HWG=Qt&}^Kt6r} XtcRuKF!eK#00000NkvXXu0mjfn-rF` diff --git a/graphics/pokemon/raikou/icon.png b/graphics/pokemon/raikou/icon.png index fb0d48a5fd4a85560d166f6b4798e6f14022e100..77cc29d7e9f273f9fa110e59ebefca17e72ea8bd 100644 GIT binary patch delta 415 zcmV;Q0bu^T1nC2i7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SXGugsR7i>Kl;Li} zAPj_q4HAsV_x^7?+msfkDE&EUo29C1?>IXIzT^0#1$@xY^UeX)?;JSM)gT+k=xq7@ z+;ssn%!6*~dj!BF=IPSUE@p}rBtX<7I;3Wpp&%xtq#h#jA$2{nI$klLG|Kc2nTZ69h&q&Csf3ZFTi>YeS z0X=$-m~-(!5?gPcvGlo(LMdxk)3w}n*#-#dV@YZi&7MQQgP~So2y8mv9Z;pk;R{sJ z;PI9~O#CwFi}H@}>HQzws5L-;TWp=f`%sq|J(t?;X^ee-HwNo_d*bowLi|^#U&W6j zp1F5^M1U;(I0rwD2#^gw7J#h$fb*m2@mv71@h4;wsO?&*)?;T!I1AAJqmEGPf~002ov JPDHLkV1g?G!nyze delta 499 zcmV1H1%~7zqRe0001qplF?uEbBTsNMuqqROhnJ%C>e|b7A0ALRS~*MHZ4bbfTFkE zkN?O!-bX_IX@DFFDjw!2#J~b^B+|F#AnN#RDO@DAil0sb6sC=j(W8n%3r1sYaixD$ zTpm4;QJh^zB9=S<&<#u}rL|ZV?(VhoV78`v{Dsxz=4I=(LYY%zVIgHfIxjuHt@uKV zANHCBT$Wg3>-c2++!h ze|J+Bf`kv($42?RtXMmHZn?)~cjBZXGt*1uP&kQ$f_6EjuImN5+sQX`)! zA&_Wb@|G7PTA_^xU;ro7xW^^(q{V1)?WAUz+@xMbg**KZgl p$*)H5cX>Gyl63S(ar|fB#$QG765Ki18?XQX002ovPDHLkV1oV~;Ise$ diff --git a/graphics/pokemon/sentret/icon.png b/graphics/pokemon/sentret/icon.png index 9a8040833beebacffdd0943654e2254839a3a85f..e95d75ccd41ee47c49b7d235e0371f4c8ced1ed8 100644 GIT binary patch delta 261 zcmV+g0s8*H0?-1G7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S&PhZ;R7i>Kl)(xE zAq+$nA%;Cn{{L^A*sZ-dku4P3(p=}ENp^ju{9c)D@;V5P*->p`oVa5z0>xlF_nWPE z#ldojp$EYLL3hAZbxjyNf;s@K=k%yG9fjo~Cas;s8t@tB8KeslCp;FmC?}+MVRHuI zn?jPutY8hyOY)y&#_|hdS9F5WVy#FBtMMt30P28dfW#8BCS#GCA$JewUuS)SVTM3b z1r334!)yeCD*{>H@DvEq!v%pbU00000 LNkvXXu0mjfdvI-t delta 245 zcmVA>07zqRe0001qplF?uEGc4!kgYsuxBq_J%Nn{jnccCa;afY#@4600000NkvXXu0mjfCZuI_ diff --git a/graphics/pokemon/slowking/icon.png b/graphics/pokemon/slowking/icon.png index c4d5bdbe7aaea3f343ee08fd1519be6600424d68..8527e8982de133801ba193d3ff892fafabecbecf 100644 GIT binary patch delta 328 zcmV-O0k{5<1Cj%f7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S5J^NqR7i>KluHi6 zFbqT+=d*Am&;4)9*rk9}r-&UAxN5qX7spPT*|uK{#B-q+2;VgVn<^$bz*s_c|C%l%0zCm@?8r9}{?_HS%tBoYk zh)k}N>*6V#z{pE~lmSly)UhB21#o1cNDn1Caxe7zqRe0001qplF?uE`Kpum=@#jSH2|ojR40+w|$~kbXYK{<5sK zqccnw(-DF5n;`(~_3^bK_ZQo8z90=rQyV_R2quQlO+uDjIp_15M*wxrXNCagG$wzB zY-PR_mkE7`T)7Gv1|fU12!mh3kez%G#zjBi zVGu^7L=Tmr+M!*KLCI4 Z$0yk{#oQP6d}ROt002ovPDHLkV1hQBl#~Df diff --git a/graphics/pokemon/steelix/icon.png b/graphics/pokemon/steelix/icon.png index 2cceec69a9d8d9c226c867af9b9af1f441ef2c62..defe78d7d6f53947f5eb7f13cd17b0a6bfac85e1 100644 GIT binary patch delta 409 zcmV;K0cQTX1LFgb7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SVM#C;w=qAF#4iw)=X`r-mU=&fOA6}lVHY;8d$mN$i2xm%MO zVZgP}xy+b`e~{}&Y=wX1VWMsk8e$(;fw6VCvr?x$^hCllKYHy99m@qX^Q<11Oyq z&$E|5p;W1Uk<}@&A8)kuVE@WWwBd00Aa_BFqI4Ya7DoneKNY z%mt7sKqgEE$dWJ_AWy<1fIJEF4v=@kh#(0di7JAibA5FmR4+eHvSyt1Gyi{%wQ`B2>Nzu?0!&{7-D_kEce00000NkvXXu0mjf DU8c7* delta 368 zcmV-$0gwLU1G)o{7zqRe0001qplF?uE9^;yXB#>jIBIST(8$+H_@0MO4fx0Lj_l%MKI_?1y-U02sMGVYmsG5M@ z#A=q7EnmTeQsq4I%0|*^K>nm)3)Th0s>;MOgIg?dcOGPVW@IPb0-702MV zqsjS3Tp-OaB{@@oE!Sn(OWWl0T#-zeYKkG8Y8(U}GIW7)t9Z+n#(!bAOv4$PDAQaa zPp4J7Jd$Ute15?`j+=5&L%>MhkAZ}o!+*v17{%}a O0000Cl-;s} zFbITe2seia@Bg-4h$cjB@6Xguwasq$$;kJ5{oG}^&L59DGlyiY$%DgK3mYVB`~F}s zu5OT~vbWY9IaAlG?E+nJ+mS8BaXkV+k$%H>KMgRmMgWnJTMLWL{fdw4u`aFKBpaY_ zsy#B2i>l;K%ymD12H%Q$%t}cucnQ1_9+8;XE2g9q>85{Fy$ZuWJZaI37NP>3xYioF z=KSQl;NaMaK+tQ=5e!vOoCAU>)mm`NA$lKGUH21512u;@jshw|N1@)>#eqJ(6a?X8 z-L3}zZ0d zNc?O;Dq$N7#oofq5d|b8wfZonn2mBVItIG5 zEm*}5F%3r_Z~*K*oS=)d7bi^mZuKRP!iXj>ZWE~r?^)(IYkzth(}lr(&~82M&e3!h z+-aTUCE%+cxOqtO;c;g_klh;Ck{dr5K{&qkqcQ_Duj$8MueAr>gBia^00000NkvXX Hu0mjf6lB@9 diff --git a/graphics/pokemon/typhlosion/icon.png b/graphics/pokemon/typhlosion/icon.png index b69680648cb83e16a1c3ab8fb2803ec140136840..e5e5ea51c1b5912ac01717d9c2470cfc44b1e6c1 100644 GIT binary patch delta 372 zcmV-)0gL{*1HJ>07#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SJV``BR7i>Cl-sU^ zFbGA>oSIZx*#G~x2dJ8{rJ9-7A^OCUi`um;zZrPSXC*MD;DAH3$8#3FV*r5U%vl*3 znrL0D8j0BQLk+B!c7`%(nV~?kyi-h>hx}rhEp7Ks3hQnZ9lIgVg~S~OPMV;I4z z%im^zE|F6TDj>gqibpO|BB0hPQjX{dSQ@CC6Fy2`0`QO69!Egz+}=RR@Qb5Ww=NhK zaX=?IW=Juy)!Lv^Q_w`$02*OSMML;1&TMx-ufLJ|zZ;YHaBcSEar*}FAc#W_Q$c6~ ztoKY1i)C0q6Tk#QcJRmz(w&T5Aff^xH^{ZfyFiGEnY$)a7lCL#JpZRan#M-p5Quwj z7~x$YZjkS5P3HDsN=yfTm*P>8!FtBRqxY6uSQUadD$!R}kGP^Th6#Z!w zoij`$Zk=IjP!L+DIt08IO6*)s!H6d+-P#nG;H1PXOKc+;Vp-xQd2$_aghM=??>v7% zJi9&@!j_bX713C^w&m#Jm`H2~K0_Z7-P|rbkasU+BDO%@S2LnDEo~Pr;FD-c6pX+C z;-v?W8<4-n9>}%%$70}9-lai#>;SA-N|M14IpRvL+JlB_)|os|cNHA{gMjW)7Z6@l z7xfncRxDaz`uGt7-e>AEeYLNvg?U?6*-kXu{SoGB^PrlVMwq!N53$BQ{TeSfiSrj1`dSbT9{R9+eVmKRKb>n zFbI=Zz{B|9|NnLqb$3QfJC{Am(O?K^n`L>bugsjoX0rysz{ecGH6n)`sip#s80kn; zBS)&14HRHajxkjS8YCM@q^8Iq$Wj?-$VML|EUeO*sgOrpOp77ZuE!9OEbyi&<_;SI zD*6rzFyCITw)?Sv;}_c@D>wI-<9ASy0j6JVPv5r9v4W^zAy^+*T+>mC4!{~%HgZm}71b1;@+#}CZ*V)zNtolZLc-E$On+{I#r@q&d zAK&r=&uW?<$E#V_JwK$-naqcEJ*Q~l1xU~QATE{6cYXjw-rvRD_P_j~+GUa-Mxe?M z`^^vJSeYN#hw;_=|9toXOF$K=1B64K00000NkvXXu0mjf D{d}i1 delta 384 zcmV-`0e}9l1Ih!C7zqRe0001qplF?uE;f5fRlg>OqB<#?V*-&hdp*lg9~$D3^cZ z7|74-ZDo`jDxmYbJ@-7EwGTklyln+C3%U;gyTiMlJ(H_?m%G#((^1KIFZfHtjCSlu z!x(Wc5pS#=$Dp_&(^EVm3kt=Q?!G!El6?qRq(WwG_8%5K9Fs5=05v3vS0^6}z*kts zUBYdtHliUQ_c~Xn2q`Z+jAE00000j(SW From 01a12d81c78df92f38fba3b721b1e969cafa7526 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sat, 1 Apr 2023 07:48:53 +0200 Subject: [PATCH 08/25] Fix gen 3 icons --- graphics/pokemon/absol/icon.png | Bin 359 -> 382 bytes graphics/pokemon/aggron/icon.png | Bin 450 -> 489 bytes graphics/pokemon/altaria/icon.png | Bin 432 -> 417 bytes graphics/pokemon/armaldo/icon.png | Bin 398 -> 424 bytes graphics/pokemon/beldum/icon.png | Bin 256 -> 277 bytes graphics/pokemon/cacturne/icon.png | Bin 307 -> 328 bytes graphics/pokemon/castform/icon.png | Bin 242 -> 255 bytes graphics/pokemon/chimecho/icon.png | Bin 282 -> 271 bytes graphics/pokemon/combusken/icon.png | Bin 367 -> 371 bytes graphics/pokemon/exploud/icon.png | Bin 411 -> 421 bytes graphics/pokemon/flygon/icon.png | Bin 432 -> 451 bytes graphics/pokemon/groudon/icon.png | Bin 414 -> 437 bytes graphics/pokemon/huntail/icon.png | Bin 378 -> 391 bytes graphics/pokemon/lairon/icon.png | Bin 377 -> 392 bytes graphics/pokemon/latias/icon.png | Bin 360 -> 368 bytes graphics/pokemon/latios/icon.png | Bin 371 -> 379 bytes graphics/pokemon/lileep/icon.png | Bin 353 -> 371 bytes graphics/pokemon/manectric/icon.png | Bin 309 -> 339 bytes graphics/pokemon/mawile/icon.png | Bin 424 -> 410 bytes graphics/pokemon/medicham/icon.png | Bin 320 -> 336 bytes graphics/pokemon/metang/icon.png | Bin 420 -> 416 bytes graphics/pokemon/milotic/icon.png | Bin 495 -> 478 bytes graphics/pokemon/pelipper/icon.png | Bin 391 -> 406 bytes graphics/pokemon/salamence/icon.png | Bin 410 -> 420 bytes graphics/pokemon/seviper/icon.png | Bin 375 -> 397 bytes graphics/pokemon/sharpedo/icon.png | Bin 353 -> 366 bytes graphics/pokemon/shiftry/icon.png | Bin 438 -> 459 bytes graphics/pokemon/slakoth/icon.png | Bin 349 -> 364 bytes graphics/pokemon/solrock/icon.png | Bin 293 -> 307 bytes graphics/pokemon/swablu/icon.png | Bin 320 -> 336 bytes graphics/pokemon/swalot/icon.png | Bin 293 -> 311 bytes graphics/pokemon/tropius/icon.png | Bin 426 -> 442 bytes graphics/pokemon/wailord/icon.png | Bin 362 -> 360 bytes graphics/pokemon/wynaut/icon.png | Bin 397 -> 353 bytes graphics/pokemon/zangoose/icon.png | Bin 430 -> 412 bytes 35 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/absol/icon.png b/graphics/pokemon/absol/icon.png index 681d98d1d9ee147ce1156b4d82d37364ec483805..d58d208a7bd322beb9e549793c41994940842ec9 100644 GIT binary patch delta 308 zcmV-40n7g90{#M!7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S{7FPXR7i>Kl+6yq zFbIPikb1=L|F*+nKTV+NZJV^Ehpw`R32DD=`?UpNEw{EZP`=Vr$ypzI@WjzzfT}(% zQ$?6j_9ZA2-JsgKJ=s?`yH$G1WzkppqgPNw1fT{a#-O!$`Op~&%3oDck z=DIE|CXx&rW!GJQle$9eQhFIqELmVN2jQvES!6s6{<|=^(skhwQR)5PQM`IR%qV!T z5m9x3*h|sf!PR=9g#osFwd?Tzn%4UPG8{_=$V89?kf~$>NI{qpAm@evNFqo9kdYwY z2#}HwM}TlQ#pnG3NGC{fcz1xD^WhGV1s@o{<^w*$ha0LBC>14yeVn=g0000V>>3`TteE9!otdJce! z_rq;^?{@YHW27!|lk(598ddd*BJBx!%sfP^O5yY6pK% zlvp|t*piy7t#8CTlXxZ50yzOl1!%0H6{MakbWAn%Er6Rrv>sY+M?S$$v0gqW5LXxr zr$6&g>i5FrM5-{LX{QQPGAzP0gR(FqIE2BiIhKUk^6AeMrt>2SBh8N_40e8;!VG?# j!i;{1PJZB1{rCnvMYHcGBn(Rc000R9NkvXXu0mjfvp0f2 diff --git a/graphics/pokemon/aggron/icon.png b/graphics/pokemon/aggron/icon.png index 5410a384f66a11a93a0fd673bf3011fba516e237..3eaa0605429f37a3e12194d559d8ac7ee5835fff 100644 GIT binary patch delta 415 zcmV;Q0bu^Z1L*^h7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SXGugsR7i>Klv|d= zAPhreGyUm@z5m^gBtnV_(=!VQr_Wf(kC1yD&l)Q;_13T437TiNhM+foZ50-XS>y7Z z!iOS~in}Bc){D73?s<~d5so6<>D7vY+nB)2U2(VBqKDn==Y8L&=BZ&13K(%H)R|oZT$MrzA{0rR;%p%Mc21;qgOVVaRxQv8irL^S z2Zho+I1W@z@j7leST-a~R)T+ZoF)NVZ2TQol5k$S$}DL^TntcJ$QXBw+oPmFAJ(@r zjyub76ay%NM-u}2FkG7$=amxUiP@drQSRnMtzO^a&-!zIJpj4f{|%7$43L>1CqUja zKo){f@h*Zw5MD#rA&l`zO$7N62C+ErM=>B_^h|}FgwdawL5d3?oiO46zkC1y002ov JPDHLkV1jOLw6_2N delta 376 zcmV-;0f+wS1HuE47zqRe0001qplF?uERdMw}RrVNVne(V?3#wEc>xdv`?3`+m@$R!4SQ$%+m>zN}AX@!JXJ=v;sA zvzEtkJ){LI<^y0IbaPCU0NSqToqK(B;7PpiwrV~ zv%qb((!YQaL9~NWxCwgjF#_;f^d5+h7%x1~4n}+km`FD;;zP0cDCrS|`1k|niH{#P W=JXOj^Ebr+0000Kl)fJb400rkd(7 zG!qfdw_z+|UdSXgSQF2WTcS(TnLp6+QhIP)-fGoh5Uqg)dR6R@x`AkMcmg7{2qo|k zIfz`~aie3Y0s|?3Vyr)isx3PCHh4IeB39jiB-m%97eAw8*>k=$cN>H{)_UR@nGBW(COcehfe=y zJUr-6#>0vJcs!iwPw;=zALD-7zqRe0001qplF?uEWrrY`=u z!5GaUgX%&hF&w6s+KqVAI!Yd07Y}79tBwGOW9*0!00*^zyq2J)}3HWcclE24mO#lD@07*qoM6N<$ Eg89y=U;qFB diff --git a/graphics/pokemon/armaldo/icon.png b/graphics/pokemon/armaldo/icon.png index 5dba6557dfd99f42185a3475fa7890203035ed36..1277dbbbe0eeeafab82fbcdfe199d901c8640db0 100644 GIT binary patch delta 350 zcmV-k0iphm1E>R#7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SCP_p=R7i>Kl+A9# zKnR5GEJ(XPFz^4ioxzdX{mJG~_0(|4A&gulN0e4?Y!2ESZI7;z_0RGIESmr5EeU^_G9S-$&Z><95S}V|$wtA1Nd1eW?vD&f( zIM1j+HATx3n9T5h-&Xm&`mh8&X)B${bP>_Q)XKcuDRREr_!}@(DSkF!N4hd?!a^RX z=nb$NABq~RoNuG{Bjn_)sy?}~Q6SAj=EBpyuU`5+Jur+ns^nJ{UMi?5=4JbZZa>aX z{4)M6K&JB_0WzQe2#^JfdVq}QfAj#sc>WVWhV!2Qf;rDU6iVAm wVTl_clR|qFA8vqb`QUp#2q1et;1Brl1-P9W1cPm{Qvd(}07*qoM6N<$g1*?Gz5oCK delta 324 zcmV-K0lWUF1C9fb7zqRe0001qplF?uE-%O;WdsO5AO$if7^~hNfs=Qf${)#)g33Np6V)#t66`i zgk843YlD|D{bNf&=i#^&JzKf+-@4~-Ed}T zUH-g|kEzlRa>gP6N}%*r5fBK+_r@!*tdu5g3DvB+^=ckyZq>i5-v*O72$;k{z$6X= zCUF?Ruy9CVgoA)#BLgMo1Pxcx5YRB?Pa6xpTrGkz6u~4P9DUetK5*e9@WO}wfsZdY WW7TG6iTiE<0000KlQ9m( zFbG4-!W8WL-?k>opF)_cuXu{;7elCco~sXvQtQVUqa!FktRZMpL{mmB2oQ3zvjrZ3 z*2_f++Cg}5QYsfI30SYPO4NytOUXkCa8!2^1D)?fPJLQ zNorPl0V{tZoCD7(CYyhFVEg*Z;16jeKqWU;LmE^Olf~H~;_u07*qoM6N<$ Ef>!xdTmS$7 delta 181 zcmV;m080Or0)PUL7zqRe0001qplF?uE=>YOI(%^ymxAQo1gAZwq#?zUm|+8&$ww2??D3q)FG*eV@Tp-A3^JMgme)* zHQ>rc_PHP)Sg3>LmeYZ0JwaVw>?&hEGqyR1GjIpK_`rTny;UFxNgmdh%>pKUPjeyZ ji<`^*s{Zfr!FPBAu?m|lP^s{a00000NkvXXu0mjf>!47O diff --git a/graphics/pokemon/cacturne/icon.png b/graphics/pokemon/cacturne/icon.png index fd1bb1d5fef7ac0963c678a67a2ebc54143c0411..8dd74b291de3ba24b86975590a9f2f23ee92edb2 100644 GIT binary patch delta 253 zcmV}c87#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S#z{m$R7i>KlsgW? zFbqRI$U`%T_rGmLxkV8`l&36djBI?M^>H}HEf03O^#she#73Xq5r75YH37=httR5` zkQN|_@inmQq;@gqN2=@wl(0_afK*>NRHI-U?ng5Tu!K&J%DmY{E{d~&7$x=TlcywD zAySn@)IbB5M3~H64^VG3TA&sS(N!3hhq%FQSu~SEmeD;+aNF&>&0Rm|36MVt5NrY@ z=hOuV>=YnXm!|+x|NqQUod-Hm;y+onf5tn+1dD33UsWl7KC*{<u+a{q QMgRZ+07*qoM6N<$f>IqpjQ{`u diff --git a/graphics/pokemon/chimecho/icon.png b/graphics/pokemon/chimecho/icon.png index f5480bc356735faec3595cb18fc51559907b11b3..d4d6b644855a35c3824edb6c48602090f8d41492 100644 GIT binary patch delta 196 zcmV;#06YJh0*?Za7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SjY&j7R7i>Kl)(zX zAPhs5*o)Nm|NnOF*x1EZ*l7a;ddaia2rXsnjZ`)F8?}rupE5!rRzVOE3P40`4+v#k z;whmZ_k2ZwS0@Jd0O0CPa5v4HFrrrOV+6j($fhyB;6`*Ac6R;(QsN9N{Vps3CoG2S y9dIH{!ihM^hgd};u}EU;BiaMxPXlC6kU$4pDht($A3YfW0000KltB`M zFbG8xC9uoC|7}Z1#;PH-n|9GDI&OFpQ0Ardn*kuoCWr(8MDr5VfUwxTBEV88$SYB( zN^k;-M)Z1*Wdr3cfbtq3&FdI0fEHDOT>+X2R3e>ExL6qn*ct)uO;Vi*Z0(5W95nq7 z99^~ogK@^>VyD!9fy{GO=3-syM6}-lFxwz{X*<|A2T-Cfgc4JMPN1!nZJm?PxpfX% zZsiyZHAj2hzFMC8yH|?y|FHNAL_00008NkvXXu0mjf5^H?A delta 293 zcmV+=0owla0`CHl7zqRe0001qplF?uEzKCKi@yupE17~#QN-SjlOSOqf)4L zW$j~7T34x>YtqCCh5>aZ0GTTI20SV7hIAVN<_<4gD_v=~I@H-ZjG>3sCI{?Ez=D7M zFvjvd#~WG$39yl>YnlSbo=8HVM|`0)Xc8JZDpK{$go00000NkvXXu0mjfeCUL8 diff --git a/graphics/pokemon/exploud/icon.png b/graphics/pokemon/exploud/icon.png index f803aecaba4454021e3dd855ead8ce245332fbf3..3cb142dde2afcdf4c9b5a440a7e9c5c73e685f72 100644 GIT binary patch delta 347 zcmV-h0i^z$1Em9y7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SBS}O-R7i>KR9%n5 zAPk#?BNZg@|NplahkgL-`gBisOSM+3UB?8H*X!>E$!C1a`GG;UoE{j=+#Jsz)6nQ} z-uOX;t(jTiw*+o51%h-(IB^5J<%z}v^?MVxWMb(!V6x(v>|Uw36G{n@oV+5Ap9EhZ z^nGC`Y?&@I6Z|!QiGTqL2L{~q&Lf3ailX1RLbq+APzDitb`kVnk5+4?mkBM_J1IaC zRUvgW9Q7I`c0z-KqrzTRClrt734(xSM_jo?$N+6t2oa<@5*7i5uToR7o?00000NkvXXu0mjfDwmpC diff --git a/graphics/pokemon/flygon/icon.png b/graphics/pokemon/flygon/icon.png index 10788b2253f8662bd11c6dcecee0d9b9806a1e9b..f0c4e165ad0abe88a8650002f43c6e025399f79a 100644 GIT binary patch delta 377 zcmV-<0fzpt1H%K57#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SK}keGR7i>KltGq+ zFbG6_uR&%5b^qHAkf;Q8cC%|-blUnMh*I13jfVhmte#ae3=!x1eAfrS0R-0zNMcBV+0)lDUMQl{d-_u!uk~4vUJUL{pVZp{EzdXpFOH#n z>vT?KHIVKwIT+PIdMeLQ3?x7N)nQN##N}PEI!rYXNK77B7Kf<@l6nBE!(0Y(0*l36 z1~T+`rggec14$r!qD}8%AmI<`BizUPG!V_=?!ac#KvK?i%TNr&r-%MD5T>tz^!k4R XSMD5N-7zqRe0001qplF?uEArWj zjxb-0DJx4XCECr9C3YQc>j)~7{oTG??qsp;D`Z&MevF-nG}v8I@n8rN|1m%$V3zQf zfmsRihJjgd5uSk|?UO|j7|_+22x3xTMpaEr5Ca46!AJx}V4}fgAObTgWtK%pU`BPY zLoy%$LzjaAxpX!I(-^xMF98^`Fv!2a4EO*{@l?S40)J=pXj+Z*SO5S307*qoM6N<$ Ef?vO(Z2$lO diff --git a/graphics/pokemon/groudon/icon.png b/graphics/pokemon/groudon/icon.png index 1c237537b6e80268033616117c154b238987cf41..69326145ca14df7079d5b2fd4884aca7ccb0b988 100644 GIT binary patch delta 363 zcmV-x0hIop1GNK?7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SGf6~2R7i>KRKa$G zFbpI1>fG%A|JzC;9V-NS*n8Ur=N2i7?0}Z#uB}Sz0`FR%2w8Q)sSqJ5a!#p%gV6hg zG8_~xiSRslsnB{r!_(alPFBL>D?3rE4!08qF6d#^h>Ng|2GTU(fU1cA`rBx#S@V{_ zNJzBfBqY~hu$l;e#Z7vN)T-g3wU$7Mb6!SI!IB$K4jHP@NGfO?;;>`lED@3|Kuwq6 zytx>*;;`wo$fH(8jT{Qb3$TGnCSFdj@;c8ROjfW1oRdUiVyqyR#W<3A^E z{2U;jNq@6v*XBB+IQ{;p^P1oZ13qm3;D?*8@Vl<+4v^(a{{p0bA0TxI5axpdgpMZx zqQFpqaOlQgbQd5o0^~a%b^*eCP=IXtun!PZfPBaYCCFdr!xM;9Bz2R}+P(k)002ov JPDHLkV1nCoryu|T delta 340 zcmV-a0jvJC1D*qr7zqRe0001qplF?uEbkfsv7$QeD~6?eTbQ#mCOrl!t2v}KKf?0I0vt?q}Eng8%0trih4-u4zYiI z8y&;l!^sax&jmHjoFm}ihtN#9>$)xqZaA1E>6JUem8BIV4ea1`6H3WoD<-YAjR|wO zC+t4kl3DR&jp^je53ef_0BRR2H$7<>;5R$y?7z+l>d2^@h@$f^|>7lB#$Sb-sP mIWK%*1tyc}Eg$$vK0W}U7&xn8e>2|z0000T7#0Wv0000?P=%ZT0004VQb$4nuFf3kks(BXNQv!KL9&BT28dR{ZW1v>UT(KvT^4W-Z7AZ50s~YL%E!_ZJFc3U5h@z^3!7)FrhM6te}3#2@xKGfpBraE>NtD=0000< KMNUMnLSTaK%ZDle delta 299 zcmV+`0o4A71Ns7x7zqRe0001qplF?uE<}Ggjn$H|Zo?oDhIxZ~n{=t#hp_}pgNI0F zvE+x#;DxxGw<|*=cRGwzDJ*el-2{yL0#87IEp}$O}%C2_N>n zqcMA%Nq6>CW;ZFr_0+3ui(_yRneZ#BhOH|&_KynI)4BjASD@h&kB{;I28;dO5`jsM x2uwO70+UiU0w(+c297f@w0zZ!!>|`M4&SJl>^qAptQ7zN002ovPDHLkV1o5zi-Z6G diff --git a/graphics/pokemon/lairon/icon.png b/graphics/pokemon/lairon/icon.png index 24bea9dfdc19b75eda89cf7eab1160c64b737ec0..27cb6edaa3edc97fb4879a499c624b6cf7e6129d 100644 GIT binary patch delta 318 zcmV-E0m1(H0*C{U7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S21!IgR7i>KRLc&- zAPk$6?y^Jt|9?9N_5#9oowOmLR@gCw);^v7<68&W=MJPhbJn;3Hw)9O7{ZML;W-xu zX#zxWhhx>CmPIhh2o`(RP<`UoFcQqSL7)*LEV}>#gorPM$P;L(<06C}13>~=Zz(Sv z=F=A0TiaNLv0g=g_Ndk4u-rflai%Wv2nWxWr*n$Um4GIkt?JsA52p4JL8+s-=YH3% ziXOiG+z;YA{6BtWeEJW1EbIfMxu4qrxw(HEAP@KN0_4U0Wq=IsuL5LnKZ^hv+>ata z2KS=~kjeeXPUir5y1&OmEN$G}j}{A|D<-?n_=Xd7A6``3Bh!OOm QNdN!<07*qoM6N<$f=n5bbN~PV delta 303 zcmV+~0nq-41Nj1w7zqRe0001qplF?uEb^l5JmR}Xx60onfO0`LNm7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S?ny*JR7i>Kl)(9w3EuziffQF4vdSG^rJ51cgN3OYucK6u8 z&3#a?&QvzY#W`PA<(qLS*ynORomYKW|B8Rdr}6Iuv-oevP)y_B{~%`Z&*@ypKXEs> sZ}G4BH=Yc;_>cIox#E9V{XYIrI?xmpZJVDo00000NkvWtM6N<$g2Wh&pa1{> delta 286 zcmV+(0pb4e0_Xye7zqRe0001qplF?uE_YWyJR_H+o z1^pC5AeJnfIgYMU7ivPAZI2+iA`dQD%N*bJd3CSnin>)p_G5l zP0U;`O=+Zov%Ja}%0NN2)lK)gt>;v)ck6^HA}*O06@^7wLdH6UfR z+*RfFId*-IOo~FXa4Kz9!vvVAP6qoM>mwcPjX(zrybe|vuLA)!)d6HL%%}rM`~OY{ kP|OPBbQojuzdF1Cj&rAgQhtX!000UA07*qoM6N<$f}(DB?*IS* diff --git a/graphics/pokemon/latios/icon.png b/graphics/pokemon/latios/icon.png index 95590eb52d691e35fa7589f62be39556394a1423..d63fb4710ea47b6b753866887a8244a9edbe6765 100644 GIT binary patch delta 305 zcmV-10nYyO0{a4x7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S`AI}UR7i>KRLc&7 zKnOID7)ToC|NpkIt6jPeo1VN#^q@1sfXr^&6MqMAfyGU{WPq@N*8~t5z}yj9NvN`o zxSY?hm*_xfxL4Zd;00000NkvXXu0mjf DxTcXS delta 297 zcmV+^0oMNe0`mfp7zqRe0001qplF?uEjok>or|C2$rgY&TmZ< zTwqD9-QJIv<~ej_0ajIZ(&tsSKpfA#ai1xEKmLG&j|2x_5pnS52@W2Zh=X7UOvGUr v_lN@<|EMDl=V96&2QWHL!Qo*4Ar2KE6b-iBKvW{~00000NkvXXu0mjfO^$(g diff --git a/graphics/pokemon/lileep/icon.png b/graphics/pokemon/lileep/icon.png index 0f3132ed4324b7ba57a130578d50298868ff7684..034453bf99a581d3296221cf8b69cebb7edf5866 100644 GIT binary patch delta 297 zcmV+^0oMNE0`mfp7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S@kvBMR7i>Kl)(}#3EuI^rHxrRYZzribB}T?tmVJKm`1! z@01M;gY8D7_i0dnr{l0=ILmTfvbSIYDMdJr=#JKyvCzE^6`rjF0pZ|d&JU}2>bL4} zm^uPvcX@AsgqL>&NN{RQr_1-pe0Tu`)fMJ^$>K)<00008NkvXXu0mjfpyGl~ delta 279 zcmV+y0qFko0^tIX7zqRe0001qplF?uE`OdZu6fZ>@sswQBn`58>Wq(Qu(ypSfPKu~_FKv2F6 d0r)B(FB)9Ax(fW5l>h($07*qoM6LruV1h=-ev<$I diff --git a/graphics/pokemon/manectric/icon.png b/graphics/pokemon/manectric/icon.png index 5379bbafa1a5816567134eeee8a9cec1564b2420..5d7f3e95085295a66da64031dfa1d0b694f7661b 100644 GIT binary patch delta 264 zcmV+j0r&p30@DJJ7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S(Md!>R7i>Kl(7!O zAPhvK23H;|?*IR`XCP4p4lEry;4GEyaW*#faqJiZSm+{i0+MC`XfOjHS<;mw;z0ER zU;#mZdL<&D88kpg0!0-T0+t&AuBti!fvWZd0ezq9IdY;!-&EJne3~bM8MN;yn`jKy zsY+e=^@N$KpQmnT-qT?$K)FaR1`>{qiF0lSA;HpJZYjcXRH9rm94o8vEAq!{=+kXc zl0O*mAlS>v!{k8{i)Xod*gJj`dx7i)@(t7lg2%B{0`*@U=-$r%+z%g^%M?*AMLQz^ O0000C^u&>rVA)GOy))-*aC@&KR6%mY zFbE6D#dti{|9@LBb~2&hnI76+mc49NG7+q$2&K^3$+uCQM}xwp(+M~!M!-e#rCe1&#{j8FYfw-d^rsg= z^iKt&l<>y2^vqy?1T%~sUD_1mc!*=-g+0UYHgOq~-|razf-O&nlrcJWr*JI}g0l|l zT0GCX59zVFSiR#7zqRe0001qplF?uEB&9- zQCDt%19VM5dkN4m5LT{dlf>!RDk+DK0j8OoZTMLY-P&D48G949DSIIgOedP_RW98 z1iFeVh{%J__pA|!=8tH7ha%eI;wpF`4f4}K;s%awZb^9 z;LO~5#qDZ}KgRlR7o^p`Q%k}=EOY?Lpfu*ZTl&F2S0k2Z7+f&SwcwoUIdU5!gL)H5 zw%IDU-_^(1v~~6al)Rv6o)D&DzE(<)hWbwtMlg81Ni2*NDF^WABiUTZ)_x#Zn*FF? w2;77bDfI~)y&eiO`jLgXuECGRjDF$AH{YYAwF{lytpET307*qoM6N<$f=#`tF#rGn diff --git a/graphics/pokemon/medicham/icon.png b/graphics/pokemon/medicham/icon.png index 9e4bbc27cd9c616db92cf7c00ad1f3646cc1e121..79883928382f12697a7bf1a61a362e78390a600c 100644 GIT binary patch delta 261 zcmV+g0s8*H0?-1G7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S&PhZ;R7i>Kl(7!O zFbG5=2n-(J|Npj!ld7o#v|TDy4HDBmgADd9%b$k(3w?~9@S!c>*6NN1)&P(ZWeFUY zNfdzVEFfhG06JwY31UUCmR+2g&6&zs1;9*X<+Oc-Uf(j(YaK@;nK$wb7zKhJfgqC> zZbH0@Z?{R?2(2+>ZLqnnDibKTA*w63Athj{hJ8r0aEt-#=$?!(^{DPlGJ;c;E8d99 zKz_hL=AUQ`WOtC=KvKXC29iQg29kfThk@h{b1;y?VZLS{ANs=${ZJ6B-nDU}00000 LNkvXXu0mjf*uiay delta 245 zcmVA>07zqRe0001qplF?uExpBhc?P z=!sN>cSN!%R79?BCGf8HG85+I+LJtjS!XrCbjIphOk^L>0$aHsY_Q1YmANLiOOavm znF2mdmW-JwbDlb4aSfC!r-vyvlq=9|eXi#Zmr}nFgX(NZEh1nz20ya?R+#&*Xkj4X vK^Os!4`Bovg~3=DVbCayH0U#7-uB}L1*nB&s4Sd$00000NkvXXu0mjf^SEfF diff --git a/graphics/pokemon/metang/icon.png b/graphics/pokemon/metang/icon.png index 3916b65310dcfb481570e48999f2224376698704..8d27afff4f3f024b87a3046a24b7bb1bce7105d5 100644 GIT binary patch delta 342 zcmV-c0jd6^1E2$t7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S9!W$&R7i>KlfjOI zFbqWNMB7KnKjbMNTc6V*-r%-k&X6GaGtxYvd_PC!?gqn`~ zLabTaMqv{3M{5j-i&t<3;mLqv59%1~NX#X8=_LXAR&)5W@49d#=BL8~uB#zw}P^m)@!V(mT~Z^v?7(f9bvIe@0gQN4+ogpN}%? ozv?~df1&rN|E1oC{{KzyABol-SrbkFW&i*H07*qoM6N<$g7YM$bN~PV delta 346 zcmV-g0j2(+1Ed3x7zqRe0001qplF?uEV%HdKV9EmD*Z7r63`W=k<0RB}W%};j(0gY+?AUN?x6r$SC z7@S2alrWJyahVpW5Um01ro6c&@zw~cGE>qk5?|&kkUW!0GGCP&@Jp}urBbR6mmYt- zRXhr>T9ucVw*{QKA&NiVWgR}z(nA=XnyYTU1KWG1W*$srL5uk|D{oSf=~nd{fSzl8 zW?i2cfIVl7FirL^Mk0cdiQ`fLM!_tAag$pCoZ{93FkI{_fC&D2{i*}GI#iAhSh+e# zTL-vvTLKl-rJj zFbqVInu}zmp8x;b`Vt^c!b7FiKGmhr%7bl&XjSA}y6C?{9 zh%=f2MK6-D8fmBiGpM+kI;AL58(k8Qx!RMcLi;DTbSP0h{C!9p9V0%Zg^sDgJS`mb zbSZ!-mSy8M6xgEEF2@q+Ci~Ad|BHW$zXwRf!wQfM9wI<AoAf0Kzsl$;~}c)5IO_^0000(S)peRr|#CVy}>fS;Qr(1W9$!CWZ>3o zFbrB$ZxtN7wDWf*jBVP-9FPDz=}_=dc$a#NjWVHUUUWPi46jyO?V#`8s1rzg(&&FJ zUhI^FJE@+nWAJ`FiexiN8Bt(?mwgu6dmHhL7c>mW=F?8)+-12;UE6Tr4ocb)ZLIB3 z6dRy1pi%wK8h+pd?YLUKm)68kJ{r25I*qbX4hluCaF!AU6M3OBGz z58Dp{=sfdbl^Y&32})-^h7Gx1Pni$h=YZtGhgl-5i4SuNG7=xF6j${Hsk;&%=YBR~ Q4FCWD07*qoM6N<$g1a}gkpKVy diff --git a/graphics/pokemon/pelipper/icon.png b/graphics/pokemon/pelipper/icon.png index 43ae7c2760806e5b7a62b62e721aa0c4937f5644..49debae7177426b50540d81b8ad7e7846d70283b 100644 GIT binary patch delta 332 zcmV-S0ki&x1C|4j7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S6iGxuR7i>KRLc&- zFbL~HI?+r0|9?9IeFTzb(zHoC)IIcI*M$T;O*ei56pZM3o^!rb7@bnOQivcY5?ou9 z&j-8+2$Ti}%tBvSl=hZ|8KgzTUIAVV{8R<`PLyUnq$e96S~X5!Wl(z-;KEB8B9JnW zI5;fWtJFHt8d!yYya}keF>r-PY$7U(MSG=KPeCHNw&o{g5RAt7X;13nLsZBFU{aZWmKr~?GZZf0Q1a0E!1$}n}R*aO7oIus-8b_59NX7~iC z0wifZ1Udvr+J%hCvX8m?*gO~Q9eMp6Hz`u%7#xX5nh3wVy*d(KzrQ+r0Z~= ehrFh5ZvPAKY!sn-xZkG$0000b^l5JmR{nIbnZ2e8Cw zYox@z8(gPbrQ1WSv|=mT<%TIOTN~jf6Kog+E|NN#?tk%N{QVAxKQ=&A>&MWIr4e+~ zR)!X+s>n-&RRmsVQ5pUsL=ho!W=14FLpSH#6%o@raC4UE9Z|M9@p(EMiFp&Sr}KYe z6izl73(;~n7AL;cJ9jt1P;7wN=2_;|{ASG9=fyu(V>;@b(S5k%OY671`$#l`9&#p? z(vP(PJN<9wXJCLBm~`sVQ3Qs%=)jD$0`sJYR5PGjfeE#9snZ4wB9|J05!kX$z{vDS z21eDu6h;IF_rP4Rsev)F*#ToX!N4gPpT9Q(V@+8=(B7ASe+349X_e<2#XPQ#u5eU@ P00000NkvXXu0mjfISGvt diff --git a/graphics/pokemon/salamence/icon.png b/graphics/pokemon/salamence/icon.png index 16cdf981f4926a7fcc1de42ea6db07a4eefafc98..74b4ae776abf62bd8932e146f73a39b7d084fc95 100644 GIT binary patch delta 346 zcmV-g0j2($1Ed3x7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SB1uF+R7i>Kl+mt( zFbqRkD@6&4;{X5K>$FhHCN^DZZ^I7*;j=Ueo0sL*{{-sN$`7F$^h!b-kw`eOQfCC( z2o?!|xtHyhsQ3Wwq~@N8OQ7*5V^f1yn$w*46+W(d{KSzm)zy zNkrckpIMn&#J&>FyAxMGL2SUaP_4cNu8ZILitYe82M9hn1_(X`$dM0IfUK*Oo(<=G sIR2WY^Z>cc2i|E5koWlz@w@r(2X0O#d0zv)&;S4c07*qoM6N<$f`03ka{vGU delta 336 zcmV-W0k8g~1DXSn7zqRe0001qplF?uER|oE3z?SfUCpzb|E~QS)-E{SM09sCrNkK zShVyzQ*9HXRDurOK%noErB62D);DY(LfO513JAJ})433{Ug|9OVEsM6v}E{3`-tM4 zp**n^tKzZCWVc$mEc|^+5HNh{@@YH-2L1o0rX);07KX>dct1K}qHD3E_ruRnT%@~! iAHdp<{dhf0&W|54S4oiKltFI9 zAPhxgb%U|wfB)OgHxmX7$yBP;MXPak@xvGk-f?{5Hv{+%sFwuLSEB9&lfroZhin9j zidYAN$N;qPGw}gr0xfU70D)Wrs`iCyisNh)k_(7gt>y}%5>zJO1l(OUdSR!9q|HE$ z5vZyQG|tK@?ipZz)65f)HVqyp_t1(ke@3id2UVl5hC~rhJDf$>tDS&j%O9^illulw zpdB^xdVL+xMnRz5T^Ft`z`N@-ZpMIW0VR()(GCVliq z^6Q`U(e$wTVb(_pV)4VQ4^`RyF!bT*&p-KL(#PqK)el1=AGdz!`ndN))5kyd!vjOD V7RotH21Wn?002ovPDHLkV1oG}lLG(% delta 301 zcmV+|0n+}B1NQ=u7zqRe0001qplF?uEZt~5I|9GFq$@z)<@a% zQAO@RD=j@KH~(?0IMFKRa2^nbbJ#f~F9nC>v3`7lr zDKDM>|J$8H$VM(@lifGB8e^QXr6ru>cxV6{U3>#1e`nYy$k}x;!KOl9W`MPiVvy-1 zC;_6TGbRoiRNgUjXp$IHq^hbjLt<2!k8!0)F(pf`iyGiZOF*5kW3MQ`CF;m_OW!Nb zP%MfIf>{-uB{YM5m(>}j1zJJ~HY%Ih*rrY5vY=_PUpOhViiXvO+B$%+)Z3OihGyFs z{_$Bn8X(vKq}28RVg?@|Ja0Zg@Oyw@)b9Z4nw#L#BSAWVOle#Ja`^x;eRcjD kVb*-8gz*4U*LGjv3*r$J8c63G*#H0l07*qoM6N<$f+je4CjbBd delta 273 zcmV+s0q*|p0^tIX7zqRe0001qplF?uE<}Ggjm?rV3c^4TMRS9>Lk^(ef~8%+0~oNj z$Vn8wO}2F#b2mXTO$-UjZnY+mWU~XJl{(#g=I{JjUJ!h>EbB=!L1%9S+LugFY(gtG zVY~@jl2M0I5R>U#0nTKOXv;;T^EO(dxH%z?n;tI8Jz68h=n;(-t`b8O0(Pl97|4B2 zp&5`qw03)HAr@J7gdIHfEXTgNl7fKwS9S`aLkj zfoc3cFr+vzh67_i2BzOL0E13(!1Sgb7&&-4VB9$^FdGI;GMV~;2i diff --git a/graphics/pokemon/shiftry/icon.png b/graphics/pokemon/shiftry/icon.png index 14b4bdab6ab77fef9955db78c56ac63f9cbb6908..3d2be13a6852587ce145da424e68055b05aea63d 100644 GIT binary patch delta 385 zcmV-{0e=3r1Iq)D7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SNl8ROR7i>KRMC#Z zAPidq1nnjH|GzyO+6}tG-Rnt zmmrJ?GY`F?95^?qp{g^Z%R@gUH{x=^bME^m5m#586_D`Qf8#Il?+xU@mj?3M|K31gj_KVP2u5vdAk5zyNE?Km zfpmqPf%F;UIratubTW`ngW=c?2119~8A#3?@UfYGHIO`gvet;Jf!zATU?An*Bi;tG fynDYG$OZZVIAI$m;pI8u00000NkvXXu0mjf{S~w| delta 364 zcmV-y0h9jA1GWQ@7zqRe0001qplF?uEbsT(VRgu+abAsWOD|^kDTxB6tf{+!i#?} z$(LdQ3tfrHG^lqLAJklu38*{9&d@MP$D+>+Rm^U5)v~Zd9J>9!=Zx`9 zPm-42qCxtb9)TZ7{z3eOFk~al)L~d9j6MHG7(DsH&}<`&J)19#&DaQIpMEP$!<;Y{ z%)%Ha3}WC5lNIj#)GWf}ZhGs-BFxHPbXFR7i>KR6z>E zFbpdV$dH5e|KH9|mo{;dj$HXahYj@?Sz_Tc|O@}3rv8wnu}@DOiS=HPJ6FVso?v<>;#%o1*L_CIjp}6><+aA z;vhDJAZJ%}Te(VqWMi2!N_W@TRyswtYpC*Er)?!R0m``bISrr2OShv%{=tJU5PqkT z9)I+X$7TO@KD_O}&WCFMRX&{dU*tn$|7kw7_MhiNV}E!&#C+)NKZ%Fl{+Mm8vHvt4 og8e7)u!Zk6iH9iv!2b|0;ztt7x(>cD00000NkvXXu0mh|f~g6I9smFU delta 274 zcmV+t0qy?m0^I_T7zqRe0001qplF?uE5m z?lPU-ZEizB!KIKWD8fic;|{NhXV4@iq5^k$`i_61*EHWXpsQ!$B}vQ_8;CC|2HGe( z#=ODw=r$u0W&#-CJcWeB!9gEnV3eMD?~ydH&1i4Z46bN^kZz^N8F@k$OJt%KI$nO* z>&){wp6&-yMQZcT=`e|%)NWgL`aV3<_gLDiAB4Al)(;NoQU~*cVhz%)!@`e0(_!I< znhsL?@zkOA!*!_qa2+Z?Tn8M=8E_qhLuunWSe;NJvkscLD-qWL(r%>#wCm4~Yw)T0 Y2M{cy3}ioYx&QzG07*qoM6N<$f^*Y+ng9R* diff --git a/graphics/pokemon/solrock/icon.png b/graphics/pokemon/solrock/icon.png index 4a0410cb55d9afd00e0f985a84ea7bedf5bcdfd3..07a416c283246b82975a468c69a7bf27924f185a 100644 GIT binary patch delta 232 zcmVKlQ|N_ zFbG4#3`>XZf7{5o`yuu(Q&=qznZ;b!Q7i1?wjp2(0u|R+01QD@7C;dd2O4YuqXfKG z0+ld{KzaQJD=|u9`Y>QJ{lh#WNi>~c_)}>{qHSav7!}esF>3dKBVES0x>r~ME!=&S z)YX}cr6*^J=OeR64-zi@v>`PKN%qq(bnc+`VX7TbeUv>GE1%z?AHxK;e{u&L{i}2S ipE>_>IOqS(^S=SoY7gW9A5hi+0000<^TXR;HGLlNEI+_TH)F}r5fj2+>eCJyR_-ut;kL@0qLV~d90>lty2^1;- z3Jff5;5I0S%14!3g4MZ;&Xc2{p&OmZFECbaG&j$_u{MJ_*ThKU`{|%JLY*_Vm#0RT z3(Cn(*Fag3##k%r&0;2)?~yG4pK0`w=htA-GlF~A3BGm_=9tJ06w0G U<5S@u{Qv*}07*qoM6N<$g8B+wZ2$lO diff --git a/graphics/pokemon/swablu/icon.png b/graphics/pokemon/swablu/icon.png index c1aa25e996421e92170246dfeb4833486e3a8b7e..46be1f4033f1585999dd75f3f8680e96850c0187 100644 GIT binary patch delta 261 zcmV+g0s8*H0?-1G7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S&PhZ;R7i>KlsgW? zFbqQ-aZvz+y8mq}scmW?mNRt85U!;4G3?jcqdUs%!dJCr%4}D&-WPRD*{vu+G7{x+ zLWJH#S)6wt@cunVICo+Cs_%s9xeR3!0~8+M#E&7}hk6$lV>H9IK|6u>MzaKVb>AgL z!pEdQ>V!v(QA4U^z_HQF|6co}M}O*yAMNwwRs>1HtN@aPSv5++6dvQP*8mBE3;>z> zG5};wm;oSj!VCbZ2=fC-vE%`enhpVw;0LPj9RNuNm5H49c7%BWb(IU{H_d7_00000 LNkvXXu0mjfDlc%V delta 245 zcmVA>07zqRe0001qplF?uE!LbD6z zmI_i|uq10AD%e*DW^s_T&?Q6R#0d7TlZ%7kjeq_mH+(|;_^5FeWG9dX*rDg8d`A+< zBven2V-?WSg3)L1`{h|#L2kWA_pV$wQ+@Kc<&qqro-YGk^ssGXlSnchEr1E6lC5FZ zu&0+WfuTY9EAT)j@t=zQ8O6qYD@!$P_R{(5`@? vf(n>Go-JS)k8CRdT2UAQ8n&y{UljBJz%pYq8hqHC00000NkvXXu0mjf>i1_Y diff --git a/graphics/pokemon/swalot/icon.png b/graphics/pokemon/swalot/icon.png index 3611b27feea1fd75ad4cee5839fa44005d0ed6f9..09f7162d2a3399f4659bcc50c7a391cc9861267a 100644 GIT binary patch delta 236 zcmVKl+6mn zAPj_sp4^1w{oi);qp%RiUKY9w&LM}+r%79#){Y*MnzlBZFcNkkH$Ecn0Oc6rLWFj+ ziTMQp?ex)N4R{OcfY2_v!yu?^p-SXK8p$kFfo6cqT8a5mcW_sN@G6DScp5}hDNSsM z1hTHDNXHiYz{Q_SZ{lm=A9rJWVvhbt=kkB!^5<7VfZw})I*fRj>44*5rUQ mW;)<_h>%&1>Br?a^WhD)br{LC*g|>$0000 zWsg`8g?ZrXv!SQt}Q;1h;~UNfzOe$Wizo~mK4+TTX0 z0ql1nAFh91SFu4TTHxTU2YmEU8@exk*JGO?@z8@+n3{O#fpZf-q^fhOYrpm54L*O+ Ur#U^KBLDyZ07*qoM6N<$g31nD*8l(j diff --git a/graphics/pokemon/tropius/icon.png b/graphics/pokemon/tropius/icon.png index 647767ca3de1b28329db67c794779eed76fb908e..9e7b61b531a138941fd2398b1c0ca04525a639f0 100644 GIT binary patch delta 368 zcmV-$0gwKw1G)o{7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SI7vi7R7i>Kl)(90L*ht8_>FW z#UEe>REQcuMr`l7XTlP zn76$sksT_z>nqDn!AYzd=%~X-dP}_fc>ZhqJIw4bX)G{LJIpEGJIvWYP7X5}$k|~Q z2GTps+CZAa+!=^F%$JOI&;$QaX26E{S_JKdF>}#OD^oJ*vb|9??h;h;Y O0000DxTHBye|DwxrDK%cA@r}MG@#wavCvGOGtqKl*1*h}==}rzKiEAj!%qKUx7|;6Tlzz}YwJG| jhW^SSQ-8gS|E~WFL{uA(?SW=X00000NkvXXu0mjf7nXzQ delta 288 zcmV+*0pI@U0_p;g7zqRe0001qplF?uEt)S8lfX6cx1}ce#E4_}jbf_mPX(Pe)j1gWNtXFi+c0C$OET+ z6sAAjce?G}gCU(*0Muz7H2A>yI8@I5H4e`05QoNf{t}0+`>=I?SlkcXxgX+SAD+Zv m87;)&W$lXM;3oY?9KK-K^x!41Ghhq=0000*Q%z2WKn$H5^a7usw{u}) zxEG1ufqkKI^R1}Ftw9(ztUA<^2y}4iM!Oi&m;Sy!LikgrG4}zx91*PVGawcerG)AF8G|PP(%YF;4gbP^%qew_7|*BU zw>6*i!Jg1HBpIjP7n;!PW66&nfF#$4*saIv004We+Gz(=a3REMD`Ha;%pys4!BB)- zQ9Q{u8dz?6EQ{2+KL9>n?D)&*)@Lv>eH;<%sG13;xePI7au_%!zwdPA2st6Y(8m|~ WLf$zUu8wX10000V71Dpep7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S8c9S!R7i>Kl)-Am zFbqU(39_KT=>Pw=BPCgOWxJuYr?R?*d6peHd98iw=jC^~+z?N|=b+00xZ4WoVB)sO zn|D>^auxgOE2s1km@5!2S;cJR;-B3qT_FFpF5?q2!!G z9MLrT2V2JKTx7d{WbS&G4f24^sI=+i_tbnxI`Xdr`CxmfY7=+vpzri1iZ_v4t5Kec*i zPm`a3Mqo5RpD+k|Dsj#L=~W(31aK(x-orrc52QMuS1>_$Ya%qGxoh(P4U26`HTkOit> zU{zeapy9?l9VvwX)nrng)0s#epxvJT$)YY8-9Z*WaUZ5mdc`2@$QAoSeb6#TCnm`D z9Qk5E;lJVt5En2Jtrf=O4;OwSSeQ`74=l`>Eq)+j=GBjzFuN~5Heu-MM{>KNB50lr zu Date: Sat, 1 Apr 2023 08:02:14 +0200 Subject: [PATCH 09/25] Fix gen 4 icons --- graphics/pokemon/arceus/icon.png | Bin 397 -> 423 bytes graphics/pokemon/azelf/icon.png | Bin 429 -> 425 bytes graphics/pokemon/chatot/icon.png | Bin 384 -> 337 bytes graphics/pokemon/cherrim/icon.png | Bin 266 -> 280 bytes graphics/pokemon/cresselia/icon.png | Bin 474 -> 482 bytes graphics/pokemon/darkrai/icon.png | Bin 474 -> 481 bytes graphics/pokemon/dialga/icon.png | Bin 450 -> 480 bytes graphics/pokemon/drifblim/icon.png | Bin 389 -> 381 bytes graphics/pokemon/empoleon/icon.png | Bin 368 -> 384 bytes graphics/pokemon/froslass/icon.png | Bin 366 -> 376 bytes graphics/pokemon/gallade/icon.png | Bin 360 -> 378 bytes graphics/pokemon/giratina/icon.png | Bin 442 -> 465 bytes graphics/pokemon/gliscor/icon.png | Bin 458 -> 492 bytes graphics/pokemon/infernape/icon.png | Bin 510 -> 518 bytes graphics/pokemon/leafeon/icon.png | Bin 399 -> 408 bytes graphics/pokemon/luxray/icon.png | Bin 449 -> 462 bytes graphics/pokemon/manaphy/icon.png | Bin 351 -> 373 bytes graphics/pokemon/mesprit/icon.png | Bin 455 -> 441 bytes graphics/pokemon/mismagius/icon.png | Bin 379 -> 399 bytes graphics/pokemon/monferno/icon.png | Bin 435 -> 446 bytes graphics/pokemon/mothim/icon.png | Bin 425 -> 435 bytes graphics/pokemon/palkia/icon.png | Bin 437 -> 461 bytes graphics/pokemon/phione/icon.png | Bin 332 -> 345 bytes graphics/pokemon/probopass/icon.png | Bin 399 -> 408 bytes graphics/pokemon/rotom/icon.png | Bin 387 -> 395 bytes graphics/pokemon/staraptor/icon.png | Bin 446 -> 432 bytes graphics/pokemon/staravia/icon.png | Bin 388 -> 381 bytes graphics/pokemon/wormadam/icon.png | Bin 374 -> 374 bytes graphics/pokemon/wormadam/sandy_cloak/icon.png | Bin 423 -> 385 bytes graphics/pokemon/wormadam/trash_cloak/icon.png | Bin 406 -> 370 bytes 30 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/arceus/icon.png b/graphics/pokemon/arceus/icon.png index 155bfc35bdb7bea870e2a37805ea174d55befe79..6141c35e8c926a862374753d37273d70b7660e5a 100644 GIT binary patch delta 349 zcmV-j0iynm1E&L!7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SB}qgKlu>WP zFbISTEDsy_U-0N}Z)B(Y<+q;PO z07stg68r=pnCJdD=|@8@4KQ?+A4`|qbAOK=m0l|~0|qM*e&{*^`PDS_$8ljrY}I6X zZ05{EKLzk70C&}Y2(twI3=sBi?D*N>kC%@PV@l9-mx#IogT*wkU=-k--9p4+%Shpp zkdUGRttwX!00h~x23qyH5mZT92CGh#6XnpFgHA+H0-TRS_y>-_Kqd=JNQm~^2=nLw zz28sNZO%_l~ zIg-Ep?33+}v0p6GcXPZ2 zfGcleM~#aK7|lpv<$;K>Fg^%SU_0zd-RB9fVCY4N1(N+qW3L)*Y51g7k#qsr^?-jh zuM&9=Qp7D*8a8U#x3b`6D~|h1ruYcr>dbkWmhv?AZb@;JlIM{-OehqJoD1$wOcdfg zJLbzN62@6s%4e4_CP+^64|NShvl^rQM!k&*Sj>#j?OMLOB@M-ahC|*=U}u+W0tWz6 zx1Xzv{tf_pQ2nJaeR;yTj!qc+VvH~O!cgbQjW9`<_z%J~cfuSzKL%mEOKyJR#~0)_ VR7i>Kl)-KT zF$hF0IbGoug8%>94kpbOgI7KDQZ?kZGaihCUTgoa6m=^TYU^-$Z+OZyHij>K7x2>E zkX)BO9h!2K&hgCwf1Foo^dlG!64qciPMcsLXAlBT82Cz=Um$-xx;ezIBz*7{qVssy zM@Il6)B?`X#7=g9=*)1KUzx)w_Rxdn+1ch)US?GlAr^lq5+tmSX5Wa_-ytO+*>tgk zf`HtC1y`Wyutv#XePNkrr3mm_`X%QK)&GtR{A?O2b?;)YEc?AtnyY!U+x7~#tN*Sa z)t>^$jlMz50+6(_D?k!rR)8eL6adMHSpbp{69Li+#4G?l$%qL6sS$Glq(n>rNQIaM xAks2}B0#Duya2K%hyz3|VM7pcPX8`JJ^@~tAMfcw(W3wW002ovPDHLkV1k;=mDB(L delta 355 zcmV-p0i6D+1FZv)7zqRe0001qplF?uEPtw^d_O2eUD#fcWO8wyz+0}@CS62dr zT5kmog54P|g5Mg#3@9dkTP%PQJ)p0n@MyXu+@n5W!%v1558zop9~$k@e2|YrPq%*u ztt}5=bu zMp{>9DwxAi4xd>Q>3bR7CKE6{j#Y|c8SCH$c8B<{@7I8-43`;Dgb0kv8E0S=TS-C$ z#`E3ayR;-= zRtgtj#IFB?f&k3yHUz0Tklt4zv7oJT1}{~;z8_>x40>!3e)RwV002ovPDHLkV1l88 Bl%4

ua1JMGI7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0MAK8K~zYI?Uca| zgdhw=g$gkwO#lCHx9ys^K*8I_gFSGWM>`74w!P&S-|2zZ2#2sn6cA*tBM5>8paU3l zf^9cX0NKkn-ghY?a5Wzov#$W3_+THV1H?A0*GmSnE+8QWmz;};#H4_TLx&%Lh@$fq zT;%uI2omUU0M6NFEXF8=1DJ8squbzQVu*-1rohG(b*ZPl*19-r^^x{;bLDQXlod+QcpLx# delta 311 zcmV-70m%N*0)PXM7zqRe0001qplF?uE@l08nuFc5`(gONEvEJ7b7 z+$SfXqo<=tk#lUvEmF{MB39a1TBX?+8^j82;UPlVtj9e_Q=d<~RvZcuE1YQItryz?AMnT4S2?>)^O6fJX6ILp|CK*2gnAzI08E+OvNE z&fcz5=ry*TtH%pCc0g$_KoMgo@tkh{el?5&(002K$9~?wiCgC`506R)d-ZQ3KZQ(2 zNM~gJO(Q@wT0U7Y450~=iU}YNUL`K1fUI5@_{lFt1PwSp3zxD}x9{N^=4CLoz59Th zHq0rocVBDY6VDQx*nyvb;igXPz!4*5HKv=;bya2lI2?Y{AK$>%ob>NwqtO5W002ov JPDHLkV1ispi*5h_ diff --git a/graphics/pokemon/cherrim/icon.png b/graphics/pokemon/cherrim/icon.png index 145074d7a3b26085ad1fb7b7b06110a2c24805b2..6915d775b4e5d11b6dae57ad782bb3b2f6695dd7 100644 GIT binary patch delta 205 zcmV;;05boI0+<4j7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SmPtfGR7i>Kl(7oH zFbG651r6By|G%x8c8j{SLm;=lhb9Qu+R1N0#()Ni4UEwtu>f>8VnK9;k60^UWeP=t zEmM$!&mp`rOaRE9z>xqZQbUEnAdgPT1qy_UH&8L4;C6}2ar6gQ{1%)Teds++Tk|Vb&InGXe3Nu}&B(DvBSw3+!ScJ!^6($`mW9f8z=t4;^#JhBIhEHGe9fk<;e#LUnx zDmt10+NTx^25(w+vxAxY2!IWs+v+#Fg9GScBGHo>_LG$!xfFYmvmUVF)|2a=d{HY) t|5Pz;5C#asJZgS3$O{Afv@rPGj~AJwqb$^$SEB#`002ovPDHLkV1jgjQI`M! diff --git a/graphics/pokemon/cresselia/icon.png b/graphics/pokemon/cresselia/icon.png index 76b9b36390deb598deed97a45d4f3f6cf7323b23..8189ad7d1658b3fbf8f4af24065a026a71f8d583 100644 GIT binary patch delta 408 zcmV;J0cZZ&1L6aa7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SU`a$lR7i>CltFI9 zAPhw#6{N^P{`bFazwH?U4w_(Arcm@z1m?3Zm`%)&roxiy;IIS z4&8Sr<~CZGqY@Aj1w=5#Imx%`1r&HnObJ*Lw3ZU-{Y=LcQL)_!>$#n4I*V~H-p0j+ zNSpHOaSKGMr-$@k$L|{E<{;sC;(fmbvKN(0 z+$#%#*p_7`B0(3(!jtjp2Z5~ha0=vB4=;iINDtqgYarZ28dVtp0000F34eNq_wzx>UoEQFfUm)39b(rZ zXZ9RIs|Y9-O3j87>Y>lX_W^hSm;i;&G6W%@&!9KVx9FM)+&gQS(*!3#D||5w!=`^p zXPEl!-R|`asAYV^DH7M`G?25~ZNTPQGPCt?Q9=!$rF^?P3B`C$44qMf5?}e-iBZA# zag-BqLa9B-Lp`=BK&aNTQJysloj|MauiH@~@#&w?7iy~7ce$2yk){p63?7jUw9lLmN-ZP_Grt#-gmKWVUf!~)^ZEgAs27=3D&r3T0000O@O>Hq)R1)Nb7opaVyQpvm)P_%Ph-#UO-0^}gLAD|Qn4jhA*l5-G%y&wiy zxUUemfLm#$2?p({Rnf4EE`c$=bKpP6pXaQ1AfGh#XQnY1RU5jWC#3$;9e4lgw84#C|I5^FM zE+EKhQ#PGDhi#h$AQK+ie1h#nh?0*pIXJ6e+36*~sPT9KTN+ac+wlS>n=uQ3Wb=P9 zgjQD|Krsu4b#&}`%ENH~vF_sFSChc)@$=F*IN)^k?m*Xf?;DWm?-#+J7w>8A!?(z; z>sNF2{I$RCpBS?sbbWh#W@3tViIxJdyH4l65s~!q=q{ZWA>LxE2Lv_njm!ll_|lOmch)i~+I) zCN-o017lNXV3J$`WA+zdv{5EtEmXjaP8DEi%DXKvW@ZJ9Dm5^%0Ao0er5P})C@^vA uj{`=mfMEk>;XiW?jM6|PH4%S!S&Uzw9Zc+v_Zjy90000KR6$Y$ zF$`;L=fc7I|8J3;v`sewP7DLX&USi`BHMCSx7+V}0KN4)!Ux6Fx~2yGObgpyC21twu>6WN2X z1g!dXadK(XBU}}Kx(H&JHCz3VId39Jf(;SB`|&WTW?&^CB1owMlfx!$%ov?u{bens z-w6Pc6(Ph2k4uUEuxhwRLTDG!xs>2$;$Asy; z2O6I>YSa^h{xrxfkz?zDC)@Ob45J(_=aWVoCc(pFCy;@4p-o%-gtN}n#(r%v@8hO@ zb?d6VF*fZ#_WTFP4+hAy$zy=jMV@0G1B74UJz{RB0EtV290FwfdY1sv*MGejuK{w% zhc!UX`LG1Y2l=oD$T=S>Kt9a}diF&=;2ZMc9mO{uWGhh#bpQYW07*qoM6N<$f-v&5 ALI3~& delta 376 zcmV-;0f+wJ1HuE47zqRe0001qplF?uEn)g(4d#^V&s-S-XObEOErQd znBvq{8fiOag>2c$$|IoJa8rQ5UbTdyOS#P^i@COibQqRr}R)I9wxXbMbDu%`t$e?z)VFK zz##C?!1(d}0?hr~4`9+QBQQ1h>6Q_g2Okj_zu;p61}*p)CSaC)m{&eLdF8|ZfRAtG WmIue5Afs{s0000VqCXHXO9=0aF*rY3W%$|On?mJjFe^sQm&Owh-TFwJOU;FwDf>6@g5*GQ86t6&}a-((G?ift(5gvGu_^=jqf5DHcQaAdv+IYAHMn@laW!C$$+|Bn~?feR6+y z#$Am&+-(5uxbzSb=E05tXU07)m*Xv6s~XjIIS&Zm6?b#H!%p`Aylxme^Vxf)V0>KL?H63Boaa;r2tOf|Kj{BVK~3M4#MQj!zZ&KltB)J zFbGA}LQ*#T``>mxwUdmM>Sk6(7B0#YD4Mq{4-DMp^_qZO0)VQ@oPe-^UX*|cS^-QL zh;v5AY|tnm0n7$%1%!aAr^Mc&I-hKlAng(aDl53vGr<{nN3*I-C;7HUEhwsao^4%Y zQ7xY|@R*L9W)H-FGRC}_@!a-w#E8Vjuvsl-^_@5`16u%Vyo?E8)k-63N(8VKF99@S zoI-eB)~FB!cRp?duS-i{d~AG)DXXfb^60jl6LiuRtCk5R3vD^E8L~uRs!i zFb)Dq+6)3o{csS-KtK)x$qaH7NNNy#{eg)=g6V$1|NQV30mB6vY7rdxlmGw#07*qo IM6N<$f=#Z1H~;_u delta 294 zcmV+>0one51MmWn7zqRe0001qplF?uEX7is5*1-0w4~|O! z7S#d_16E6*${zC2z!m4U@HSMO*TTD1jJyDjEK36F=sG0Rrw$y=r)jcNaR2(DQ>%YW zC8B9kf*8xTnPTbK%GvLU0s(F&}CP@u;jpe7vv`51hyw~O$4BHQ4s5|E@Z^` zMshmMCjL+cmkkTn-v>y3C+X)OYCVrI@*_+D(6)RRhU3eM%);<5VKP5vVS++%n1z|5 sQ!)#qDa-~wPb^xeVddtB{K=0i0=g39+dMu*JOBUy07*qoM6N<$g4eBv%>V!Z diff --git a/graphics/pokemon/froslass/icon.png b/graphics/pokemon/froslass/icon.png index dfaec88ceb5d4edcb9e5f6db4d0447f26f6adea3..2869fb8de14d36f3c07b30086270477dfffd0a59 100644 GIT binary patch delta 302 zcmV+}0nz^M0{8-u7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S_DMuRR7i>Kl)Dnc zFbD(_ZlaOK68Haq8<3nw0Z!7SGKCv4*QCD#{pRPyt1d#I81WjEHJ^gXeG+0z*p%e9 z#e@yXq0p_A7!V787XwNRP-J-Dt||zsq&dVf(Cq)G3fR;A??IQ@#l#5yVpeEflZW z&Kw<=SwVa?y8qYgyD*l(uP}B8O`KluHi7 zAPfZqm?gaX-?sh$QNSddN?kPGw2G&Wd7^V1|5pGWfEe!)1{iq)ZU|Hb!j1qDcZqg@ z_K9-d5s-eCA{Vd$3iwAAp!I8V5f}i3#N`kM0Eq#cFwa2{prqJ-j(i1BK^c-$)CtH} zfR`j_@rQh!j%)pY1BK+VAoGB#jZ%umFc0V}GeL=?MyBj$k%%+|Z2ED8POx170000`jm^j%2o`$PfIN`vEhI8 zYch-n3vAqD?bX7i@d5h!0WbhI`wZ)}GuGMY6027bTn@2B)J}0%$^*3ppq^YPcAqCL z@CIOj->W|m<~cJ86JB?wQ5Xw-di}dF7Ly-%3WG58^dmm|APiN)k5L#Ib`YkY3Bx2N kx`I2+;sEi;__-f9UK5X$tJV2A000UA07*qoM6N<$f?}9_Hvj+t diff --git a/graphics/pokemon/giratina/icon.png b/graphics/pokemon/giratina/icon.png index 7a6ba19e98762afcf46a6b8ae1802e24f70539b8..235ea4721e6cb91426e9ccfd9fe5c6f68d5ad7ab 100644 GIT binary patch delta 391 zcmV;20eJqp1JMJJ7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SPf0{UR7i>KR6%lt zFbs=B%+dP)Z)+)GOTt1=?ewsQSr{Zawv$yUpST8qXE*{kG=581cp1D2Z!Ys_@7;^_FcNl%)89fXzyV8_TKeGRj)QAJ}5=FO%Z z&$X?wRBBV)JWt4UVuB-7rbaPqS0zI6ol%#d6OzAt zToVv)5@sem7p6r%fGHR9+M3uhp8$Y!5#Mca&09wRM`S{}Pv>lO2zVOKl8e_LuBv~c zbASx=j0CV1IrsW<8UWQ894ws~q9g9qWh`>Q;cSW00L7&ouRTx|Z3y0I59Rc*(8Q(+ ze(PyBy>KH~ z%G7lpQK}jtH@39P5G9k++V+0Xap7FQ`w{Kl)-Mq zAPhvKu2?l#!vFubof(G!2}FD9X?-9l9t^hOZQIvAH}^U${3$udm4tpMJg0?30{Duh zWKNCCI==)8k)+{h#XCU@5oVUN`4|BU^WNOW+7?{r27&FCEZkaOj{ybz6c~^B-c9Rq z%;bjvUiiyT#%zCo{~FgTHyad)^P+^oT5dKhKxTyL0Wu@Z2#`Br@(7R%VI}~%5=PboWF$;H ze-}UyYC@PGIThf8mpfsO=Z{i|4>!UnMwClm7t^lyh5$ZW@Hr&@04EbBm9c}kDgXcg N07*qoM6N;tV1n$4w^9HA delta 384 zcmV-`0e}AN1Ih!C7zqRe0001qplF?uEX4v|FEde9o^ny@YU<_Wf1A-n1Q(*fc1ajoXQ>!RL zJtmF9*-e2RaM2~BfMdH~-^=ch5qS=fy$=sVFB01d(hcMs`T=uSaB+gdDCycGMzWmN z)=sU$Z@k#wk6SQR&=$-j=nhP}0b^``g3;g>j6UcV%p_<5Q-da`fia69%wSeQ4UAa@ zH8887v4L3xS-dqci=Y+EB1kXMz|4Y_gO}YguYzzPgmWCOf|Ns+!etSpC3+O)TW}Qv ey#(%ByNqw9#ZY^}4PSQv0000KmEDen zAPj}&r&PV@dH=WF7El2@yUAWplZnZkL$QT^ZreA!z+ZX+n&*0sB2>391xz$Ks#tX< z*40ch>kO0ZM_leaqd^K$2&$7fx*AfTkU~&hz2)_WW(X;%MVRGXfI3nS;lt|%N=mwM z)%Uv*m<;7S&te9DM*D}EF&N6J8BR;_=uat{O?8m&(G!Dt*aDQTPt2Ntvb7jfBariP z=n@u@Oj#YXzTwc&ghDY!(Owo_4&rF7fh3|Vg7NkHJ8n%+IVW9gXX*8-l$fGb4?VcI z0}>-*D;}AghNE67tyLe#zWcXRm)ctF_+U_}9u_`dZ|63Df8!r9+;g|1H$Q*{4{del zhl7WvUi|RKA2UDR<9`Fh@bJ8kwgn)j4_km%fGqiS z{0D##Ry@?{e*jYXFyjGY?XLjod{|1Xr>p?E_~4KK$OnJ?A3pfwKk-4w|2^I#A9j40 n|IUXEA3tv#oe#gndYgX$5f&M4y+&I900000NkvXXu0mjf2u{p8 delta 437 zcmV;m0ZRUc1pWh%7zqRe0001qplF?uE&ARgQv`dv!HVu#^Dwc>v- z-$LO66|Z{4lHJK4p6Au?cXQ}pP;WU=0Yn?Pd+9G91%ZI+G@#G)sm=+JY@`GDNjLpV zm7Q|^3p8cGyhTHREo^-=WAUnS-IKPkd^*EL?bL6@_TXGqv^{UGQts|f;Pvb(foSeZ zll1t6;h^gR+uAz|$-3jJ2ZUfK@^OEuvC!y3m6|j f_I&KM{Wl+9M-thOfd7V^xT(w#0*Z7TI;swfMO^#>q(MoKjdx{;U<0ZP zUK{=BB`G52b03OK3tiLQn}X3G6sz8Mx8WrYfwCOV)BIFGPmh*2d{TX_^DO!s?-{QG zNV7BoBuUW-dVusFa1W5w(J4Tqo{Qjhqz0mQBV;&+z- gnV*gX$Vd3_2k<=?h`9dUCjbBd07*qoM6N<$g74IqQ2+n{ delta 325 zcmV-L0lNN}1CIlc7#Rcu0001qplF={000DMK}|sb0I`n?{9y%=F+YC_Nkl(?T$iiV>=_xpW!CT-kc-OE!a-SK9yMj|^gFL%jm zEAlBKqjzcwFJ4ZT1b*;`?(pVPi+#wEzN*R0tthCPWLCc@XqwYy=jNfcl`V2s{Ezw- zF#XmE7*OAwfEms`00ZM}4h-k<{t+1BNK67|#clyioEU+zYXc!;OJHC>fYBK+SLNdy XFg(Wv>jNQY00000NkvXXu0mjfcrT6a diff --git a/graphics/pokemon/luxray/icon.png b/graphics/pokemon/luxray/icon.png index 20d02d897a13ad9b7658faddba1f47e2ef7309a7..9514dbc9b21280086cb805e914a149405341a8c2 100644 GIT binary patch delta 383 zcmV-_0f7F&1I`1G7#0Wv0000?P=%ZT0004VQb$4nuFf3kks(BXNQv!~%dW#93`Bzj z5s@s<|Nm|M0O9~`cXv@;7L^(ggKh9Rj-Ok=mw5UtK>8q%2zVBR6Twh}#JGb%i2{ZS z)B?53?3vgBtcfs( zR+28URYg?`>wdgBu9dA(Y(gxrXVeO+iPnc9j%K087tu8K1;)9Lx z{$_x{GLF+f0Yt~w0PzkWmaF)OwoCv?ZH&Y82Y?JdJn#?z()sY5kpYmK5A$_4fV}5} dZ2e(Aya3^m9QO*T^Edzi002ovPDHLkV1k#Nt=|9u delta 370 zcmV-&0ge971Hl837zqRe0001qplF?uE<}Ggjm46&PQ)+_K=TKdca(e$8)BkNC)oIw zo9N2M&vamjbl;E#bwG_XoODR17&~cmy%Q6|k)f)e65DZ}G1pss5rew`=^PM*1pw(M z0$M5|?+ch1kwEf7cUwSCh@4RV_uaFAL!ZzhY8rUx$iSOyK$oI|Cl=64jK`h)5oCWk zSAg?(M2SoRS;4U3C~1>ckrdVsn;a}txr6NZ^j|v+7ApXZkCW5V(bQTm!@ZmeHfEm6 z6^`Cx!VyEB>Re!aMVCD?EOX)@g+Fen&1>39f^Yx606Cha;roRE=;{}6K3}1B+Opy%SxE)%SxEy%UT##Urxd>xExl(aFlMe!$p`J zFjgIAVN$?AMTbQgi>~TWg~{s26iZ`881;j>K9>r^>PMS~2y^ZSk5~8O2eKl*tam zAP_@y2$3U=@c;j94WtW!nMl1v;q%dPK4GPVH(5!qRSm!NEua-JvTn`s8l zyO5Tx8O%0xku5#HmKrDDnqG;)Pp8DWK^;B?fm$G!h_m1-A8CbOqI6)wxZW|d4#(1- zhV2d?^@ia2?OZZ{wo=DSP*ZH$1LoZ|v8S?Va1>M*&=0iC)gO23Z^SEj;1V9~<@*8F zHUVC^6#fK%wnh9o03sP?i4TBGr|1E~u|y9L4sV=2K!(Fm(;grL!rGGy0fIL`<~LRu xlj?1_9J2}#c+XpWC;$-wF8C1sGrwTN17*Y%Njv8>bpQYg002ovPDHLkV1hm~fT#cf delta 277 zcmV+w0qXws0^b6V7zqRe0001qplF?uEg=(8Z8m!$nEE%p&w#wT+XybR%Y!|H+?8CNIl=eqr2bHi<**oY97NB2FEl zS^&mdhkh1QJ4P+tv(9P+5qa#_2sN|O>6X1TsZoe+ME5+%b+3)N=qYcN0aV9a-J5@y zab=zG=5~R88I9p=D`=-ItR!tPagcOAARYPhMO$3_2QKglE@U$DV`A*wkjy>wVh63I zL#W@GCornW0u05>0t`g}@B$_>M`i&gGRGglmKl);X} zFbG5=MT?M)nE(IV9qcBJ3F)z?(kh3}cuY z$>D$^>C#(h9wq?|dhM77m7U8)!qFO_qHZ|#Fi7j7X4B!?Xs}lb4H#RfsYWxyL4(*U zguXa~Zu+2nv=@pyQ(I7fbC z*tNdR!F+sqfAx*}EfHg z@FBz{$dbH;$gZrnWpNh0iAZQ)!DC=clVjK|9kXqdrXD@%+-CUyB=hHE><<;tw5KCZ zCiH;#ViUdZ5#JaKv%?-SN3H|az88P$ zq&Yn2tL=xt%~FeZmBi`0$nANtiVU>1auysb2 z;kAug5b#8yRHa%$K>$Tj38f4~hpP)gg=yl-;16Zax-kQ%HPuEYnF!5mo`l3mIzA1S zeg^$t>({`93cxTJ1OXT}WE_F9PIhTWkHEOA>ZD14d8|rGfvI_Q-F;>RMyRKr!vPr0 zn=-7@0Rs{y!1(`c0%ScfE-C^rU(qrE6B+A)AqgWO;DKpPLJ(^W7djz`fg>(cg8WJ} b>Bss8cu^mXAKp_O00000NkvXXu0mjfjn%C@ diff --git a/graphics/pokemon/mismagius/icon.png b/graphics/pokemon/mismagius/icon.png index ad707f8cdd931b158300811a4d57ed8f62f00d94..07e075c1e88c9669bf184b7fcaa763b49d068453 100644 GIT binary patch delta 325 zcmV-L0lNPC0*?cb7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S4M{{nR7i>KRNHFB zKnRTFrB!kM|8MIh$thjkz8+{@0s&{ejP4xA`xy>k>sLQ}fU0c};ioZ#r&n>r=vP2Q zR2PFOQgO1=6`$p7mzLO>>gc*rh5Cm?E+`apv~#7dPUK1>4f+`_!LuV8z?H--2D XoX8tnV~ldZ00000NkvXXu0mjfMEsB~ delta 305 zcmV-10nYx91N#Dy7zqRe0001qplF?uEs7!!Zlz?v8N>BR4pC|em^RxhnHAtxiPKAyVZraH+QI=52h|q50I!O!H}G>9)&xAhpqDQeVC{^w0<)mCByCI61#e@N5|DrU zbEWJZ=a1?wJYVY9f}Mv7Tr$07b07#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SJV``BR7i>Kl+lib zAPhv!B~nJKyE`A2`+x9(6Rh_i&4ru&Z@<(#_x~GUW*C{` SfqQuX0000Qi-C#hXQ+==`Ta|nPbm0d&bVQ1Wd`;B>DR^lNM2d0Job9AcEQlK-`Pn{S?jFG3 z2aZ9df=x37s1y5{`@5R#X5~O_h)e)bY9dl7M4tl-yQaiUr=0YYR!{V{i6TCcJ*IzI zEQ|e&b7aqH`jUG9A1OUpfRW3wOwQw6fo6a=#YI~P12j@fa|M|2Pg1=u&unEqKoU)P za=Dnf8?Oe1Jl)beziI$?cegQdijFmOKLCJv@l_1^X;i&|VW5J46XR0-^nU`aFd^uK zsg8tU9eQCq2 zFs(2P@mIe&@%If{s}~=6W5r(E5S-pr=NGf#1b9uZ_s8gH}f400000NkvXX Hu0mjfDNCWs diff --git a/graphics/pokemon/mothim/icon.png b/graphics/pokemon/mothim/icon.png index ce6f8f0f6f33146f85ab39cf5aab3e706b528154..33124586818efa1636ed2f262a6c27ef6b4f39ba 100644 GIT binary patch delta 361 zcmV-v0ha!$1G58=7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SF-b&0R7i>Kl(`ZE zAq+#84D7qEe|^0Gw8dV|8D$Z64)~%o1|hr~aCZa=!9Edp=oFF#6Cs+X6 zJBO~vI2bGdYM{=4K~x6D4#EI4=$u8Lr*!VN4yo$vSup|-u_2c9=D>v{w@1=L*xn`$ z6eXk-g6tf)C8eYX5hQI5{JUN#G-=y{9znVCgKj%LivRk-I=!bR@x$1C+}8sTeNlVB z_^Kb?>;#alVFbv*FazY>&;io)F=+u~Uf* z-I^t0Buh`-=zA!T|^MURLrgHC_0 zwr%e69e2Qm+*C<{t~`)3tCD`N5Q%>Z=c~F(lzPHLct>}p^v|=cyoBP}2v~czCX!6$xP}9Ot#w(j94LSyN8vk1XeM`nf^EzQn9sw&16claH z3ljk^ObmiB3t(Z~wPCYCn4qVah0#ky{hkf-!sO(HQSOWvhBH1hU}4Y-5;|Cz(HVq0 xKcN#Qb9q+E3e&7KR7sKp zAqvU-;QJ;1?eoOxn#zN6luw_F`(P+J0tT0teR_?Mb5RDut<(?hA2WqXpstz z$ZTOFilA*qW+3=iNf3~SEFf03%eHVaw2(&G>^ z*belqah&GcxfIS{bl)0glwxit0YZcmuz`~Y&O&GqB=?{K8KWr==vVwT19wmwCh|rBg!iu_ zKRlj45&s7A3kI^L^U6S$f4nr1!#}1!>;`h;l%YTD2J+w^(;qeid3gSIF_7o}Fb%}6 hk7xNqT7I8D`~akQCj*!l<7$|>z zz3f{;;}7i;8Gx)VM_UZNSoz+-Rlw~iaOjAA73j*!gOWkTih}04U3w@(fsePM$(639 z!?VG1d{M7VUsF!>qDqFwns(&8^&&mhdF^kU;Mhp004LwBH4>6Sap0=%8$Sr9bXpLV z6bqPime<6W4o>$JEn7-#f&K;>W9(P&S57XRxCvzFkEcKe{%`^r z_`?ar`vb`d#QVdR`za7VDoTwikjSG|Ap9S}_R>4#OY}M!5kOt#XMj9#FYJr5+|r zB3a}bsT4Jg3`nkt%wN>4TU9omK8(Rnso!5j{a%l*M|#5z$=7{!I|ZZAF+M zMKp*oWq4$hFzqafg`wCQ5{K0!F>9+x@$APJI=lhBH=$sq;!zF&0000KluM4o zFbqS36tHE$An$+M(I?G}Eqhi4x{0=AMO9YbaXgiaQF|Sw)>^Q2utx0+1YF0a1uF`y z3f4U|0L2QM5W>2{a@H9v_Y7rWAi;9Yu+)2puE=LFZ~D3Fq8U6XCm=F9D9sw^8j06S zWx=>_Ggt#NK)ULG<{ur=K*v|j4Sfm$YZycg=?y`c7_8eQaS7 zHI~plqfd9E)5n%PqP6@O>VTgcnpNJlW+2MKSC2`Li8c%Q`me`77yZ;n>j4NyfaI%p zKHLDA@No0PKYu@bNq89fFcIXJA8$U)1aW@+;X@|K&5!skcoziWzz4|$$$XdylK8M9 g$iRoR%Wv}G2QY;nEBHV3B>(^b07*qoM6N<$f`nI;kpKVy delta 325 zcmV-L0lNN}1CIlc7zqRe0001qplF?uEnFpL;>4_L1l717-H4v$MW1I)y5}2lA^xD;i(Q0-P4%$;-q(i z5TZ;4GYEl+hZQ+uUZ#$o^C1<60#PJYS^it&xW#6+HTYI^RWx%>(LylJ`sEF!Pho#& z&{_HQDk}>6{P;m8qm=>HL zp_#hS28mls`w>SqNMvre&uu*h5oNu-g)uaGzhq*&@L!#$0EQee6z^et08@u}ec*sH z0JFS%KBT^TVRU>{;QFwOMI@klR00000NkvXXu0mjfWAT*r diff --git a/graphics/pokemon/rotom/icon.png b/graphics/pokemon/rotom/icon.png index 354b6fd3dc9280ca29a0d15a14eb1cacd8c6ab45..e2ecc8b804e0284cbfb797d6c81613a316ae8b47 100644 GIT binary patch delta 321 zcmV-H0lxl&1B(NY7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S2}wjjR7i={mCFvq zAP7ZGNwfzf z98b|A>hUCmQ6B`biXa^)M*)l!Tmcw3PKX+S2&IRd;XD+8!yM-#6rm<~WVk*NCy6;z zNv9O3eabc5h_VNN5Fkne?ZngoUMZ+FfY=_$`LU_Ha4+%bwpKKWUUdg-i%f6s5#E6K zBlOqnrv{?3!$5RN4S$$E=PF78RzWPXPM4}zIf%@=fheLBF?R!b=tImeP-kfado zZM@yOSg@`qQ2SwSl5}=saO9C(AdoeP83)q4=*49vY~v!(^3k-MB8K(*5g~jv>vJNlt3!zUxxGlOP}~I zFxA}!7*Vk%nE4>-Kji|5K&5>|8w42GQaHuG0+Ys31VRR83oK1WfFV3##isy+xLqRy zQ)Qfisir^zOr5y^)AX8vY1&-7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SE=fc|R7i>Kl)-WY zAqYf8tMmr{|F@yRWMl^2J#1ADiMzLM5Eyx-{JkUcLS{ZWR6ZJ{_kMCrT@9N;U=XcB zge0q2Ah$-U+b!me29;YSG99YkwmLMDpfgvkg6A(5p|WtTYz9wpt8%p7DjGqdbWb5X z#;CRN;#dtBWADv>b=>usyGU*5!wqC9Zj)k-*FW-`;W1D_c(Zt%r>>&)w$ZIjB%Y4s zi%m%_xn5jxPpXfO-ic}VXb`6#_0fOKf_Jgkkz|}-{;SRSKgGs)p7I$FSnfCRaMri{ zz(bM9j}mGYU#uT~B*07zqRe0001qplF?uESHT6KMGAWV2+teR}hDg%1u^-K#khvE^cR+5MwUUz@Y z@IDPp{JHN~jAEu>=K{r8Yv<9=of8CLng80H#TYXegbLOOECs}3)n`BzGOIU6Xmbh# z+zRL&T-W)EFpS6uvF6y9dnX*LGS-LrCjqQ-F5N(VUm7O*r2wK|B>&wAKzsz!7IAS8 zh#Oo^d375TM1mbsd*2$quPEe6`(j{pD})m`d1`#yH>~iG$y4-o*hYWA>ZGdNJLYgr zTTh~Najpq~vGX6*ojc^$rwlxBql|S&i{`dyzT;k#@ S123Zh0000;xA2Gh3&t5G*)!sBtj z_Il2G?*Iq}{dNGC3i#iW39z?I;8K1HJ}vR zqd7302`FD4s?&CV@!(C(nrHp?xMs*xLt<&n&4x|q!6Gs;9gBIfmma>HCr?)nKTNe} zXGk`Pt^Taf)<59k$NU%w68XVw5fFhN%+?bm@WbU!5ByLW01^4&^#()a2L=EHezfbq z<_C{E=fj&Hi|dcZj~yRW7{BHNtH72I*31JRtblLu;RQt#+!ehdg5F{P0000zl08lXF%X6K22Z|#DORFH z3hup!i4+ciM9SPXD?#^WHU>$k#&^?|z@1no1}_>t3c&jy{g!!suxLoRjR50OIS3c&rA zq}_b5^DZneyuW=WLhL!0ek7$p|$2kbX~d;$n$x6h8Nms0=$ N002ovPDHLkV1kzhi~axr diff --git a/graphics/pokemon/wormadam/icon.png b/graphics/pokemon/wormadam/icon.png index eb622fca237ba80cb52986b29f1014a02c3397a2..866acd17ba6425807c2609c6e7bead681929f53b 100644 GIT binary patch delta 35 qcmeyy^o?o4G{%b)r=JkFw0}1-KHx-U$2B}}F&Z$8F zSSk)vbxdBC0Z*tSta!4z+;E=3q{eXkxkE4FE|JZ_jnMdg3wYB&TQ4hxkl( z4+g3Uj)r!O3P4+ghuoQ+JF|N6p%2jzR^pyLR8SL$)s2fXp0gT%gO)}B4_JR z9YjEortb!mbF~%O?b*$a`^W3CKfNFE;RAlO-@MAuHp+@0cFa0IvZJkf=f?^UogZ11 zfgcORJn+N&8Cx0oVKW6hO#GNm{~P?6@eueCmMich9rSw_`Edh;*%#?^PXgos0000< KMNUMnLSTZB(1}U_ delta 350 zcmV-k0iphZ1E&L!7zqRe0001qplF?uE1R5*>zQ@d`%Fbwn`5JdI}{RDq5 z0Z00dLJ2wtO`ADrjLcpvtDOk9WtBG8Yw6f>gv)Kp0dhD;5h z%jo1L_L+pWcE(FWcpQyKHc7&RM^s~4O{5I~Q53Nc45yvk=D^0cxI!UE?gm_f;!c0@ zK)1ns@PRQua0EIwBKBUEvA{gr-OJv@he00g?yS>l4b#(MpzIvzH)L`Xp(j&1#8f#3 zwdw!3>Q&*ld7kh=3kO7R8AodXSKY6f)2T5kE7VK+OWrf%()=Q|k4~a^8MTr1($1B6il1!i@iOkl--NYDc`)&U2djR%B weol9OrYu0s$LT~e6#$hcL&5(ZTYtG!U-$6I+_o@yFaQ7m07*qoM6N<$f+Aa?8~^|S diff --git a/graphics/pokemon/wormadam/trash_cloak/icon.png b/graphics/pokemon/wormadam/trash_cloak/icon.png index f971e3fb59a5b9e2fc726d298ad46fac50e30af5..6834629e9ab3f4cfe1e0bb744ab5201f6b8e0a06 100644 GIT binary patch delta 297 zcmV+^0oMMO1M&ip7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0PsmfK~zYI?Uca| z!Y~X&S9Z&!N#j0U|EQo|9J1+qNGqvxVHA8eCr(+M>g@PH4&vW|@r{ zZR}&>6{axwpE1Q0j^-n99SIFZ8ej&oJspuiA`b7KdN`!U*x`mf^gT1A#F&Hw0k@n} zM1?v$A>u;U-r$*kaS(5QczH;<(l~~=rudCh!h&xhE4eGQNmId1ll(Y8obtmG4s(7a9t8ZLe7IgK7T2bHIr%|fea{cF8I>Q^!}!sy vC*em~-^z~wNHO&MAX8R;3zlTB`fFbsv~29`DZMm+*2 z=zZTvcu%C^J|MM8yE9T<&kTf+S#;TEg&)s9I3K6e-yUn@aEvLpLP$-@lY>9%g5Dt~ zDt!nr%Soj;z9E?nsd8lIP)%m?<^pzQ$?nJsTazf}j?Zp^JQTW&p79zK{n|)lcE^7* zVp^wDs054A`mKoSa*gvK`>g(Y9{PRMlV0Wls5U_8C#jc6WrmW2W@FSY{U4upRQin% z Date: Sat, 1 Apr 2023 08:18:13 +0200 Subject: [PATCH 10/25] Fix gen v icons --- graphics/pokemon/accelgor/icon.png | Bin 387 -> 400 bytes graphics/pokemon/amoonguss/icon.png | Bin 352 -> 349 bytes graphics/pokemon/beartic/icon.png | Bin 370 -> 386 bytes graphics/pokemon/cobalion/icon.png | Bin 367 -> 366 bytes graphics/pokemon/cofagrigus/icon.png | Bin 535 -> 553 bytes graphics/pokemon/crustle/icon.png | Bin 505 -> 447 bytes graphics/pokemon/deino/icon.png | Bin 261 -> 291 bytes graphics/pokemon/duosion/icon.png | Bin 310 -> 324 bytes graphics/pokemon/dwebble/icon.png | Bin 344 -> 333 bytes graphics/pokemon/emboar/icon.png | Bin 514 -> 516 bytes graphics/pokemon/escavalier/icon.png | Bin 401 -> 416 bytes graphics/pokemon/foongus/icon.png | Bin 266 -> 280 bytes graphics/pokemon/genesect/icon.png | Bin 421 -> 395 bytes graphics/pokemon/golett/icon.png | Bin 332 -> 348 bytes graphics/pokemon/gothita/icon.png | Bin 333 -> 277 bytes graphics/pokemon/gothorita/icon.png | Bin 388 -> 318 bytes graphics/pokemon/gurdurr/icon.png | Bin 378 -> 388 bytes graphics/pokemon/hydreigon/icon.png | Bin 506 -> 532 bytes graphics/pokemon/karrablast/icon.png | Bin 253 -> 273 bytes graphics/pokemon/keldeo/icon.png | Bin 399 -> 407 bytes graphics/pokemon/kyurem/icon.png | Bin 595 -> 573 bytes graphics/pokemon/landorus/icon.png | Bin 554 -> 533 bytes graphics/pokemon/larvesta/icon.png | Bin 408 -> 367 bytes graphics/pokemon/meloetta/icon.png | Bin 312 -> 325 bytes graphics/pokemon/mienfoo/icon.png | Bin 372 -> 362 bytes graphics/pokemon/mienshao/icon.png | Bin 386 -> 395 bytes graphics/pokemon/minccino/icon.png | Bin 329 -> 352 bytes graphics/pokemon/munna/icon.png | Bin 247 -> 255 bytes graphics/pokemon/musharna/icon.png | Bin 355 -> 377 bytes graphics/pokemon/pignite/icon.png | Bin 379 -> 396 bytes graphics/pokemon/reshiram/icon.png | Bin 529 -> 551 bytes graphics/pokemon/rufflet/icon.png | Bin 325 -> 336 bytes graphics/pokemon/scraggy/icon.png | Bin 304 -> 282 bytes graphics/pokemon/sewaddle/icon.png | Bin 250 -> 272 bytes graphics/pokemon/sigilyph/icon.png | Bin 432 -> 423 bytes graphics/pokemon/thundurus/icon.png | Bin 6946 -> 526 bytes graphics/pokemon/tirtouga/icon.png | Bin 330 -> 344 bytes graphics/pokemon/tornadus/icon.png | Bin 525 -> 530 bytes graphics/pokemon/trubbish/icon.png | Bin 316 -> 332 bytes graphics/pokemon/vanilluxe/icon.png | Bin 372 -> 379 bytes graphics/pokemon/virizion/icon.png | Bin 417 -> 359 bytes graphics/pokemon/volcarona/icon.png | Bin 463 -> 471 bytes graphics/pokemon/watchog/icon.png | Bin 435 -> 414 bytes graphics/pokemon/woobat/icon.png | Bin 321 -> 333 bytes graphics/pokemon/zekrom/icon.png | Bin 473 -> 506 bytes graphics/pokemon/zoroark/icon.png | Bin 460 -> 433 bytes graphics/pokemon/zweilous/icon.png | Bin 416 -> 423 bytes 47 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/accelgor/icon.png b/graphics/pokemon/accelgor/icon.png index d8538bec1d870cbfcafbaec753b868eec69eed5e..5d971a97b24cb4a2b9798f8fecaf822d847a5928 100644 GIT binary patch delta 321 zcmV-H0lxl&1CRrd7#0Wv0000?P=%ZT0004VQb$4nuFf3kks(BXNQv!}L6*ZH3`2uc z9;~GM-?p}gv_LSs&dj2I-852!2>j#t&L@WCUaqxnEGE~QbL43HqeKqEb)c*btZI1V zf?@`3GM6C$TcE&n5z1_^gj|XRFp16RV6h6iLQ;d!GHwyIWSmUY-*KzpI>3`iSN7;( zvJIYq#rr28Yf^N7f4UKWN^8imrvBBJwY{zH4w3QbbO|wofLF%c(gL(0Tv;5vwt$Bq zJWh>G*5Vfaa?nfeuGLoj&ackD!hdxod;B@y`D4WYhwdHz!UYy@{EhC#Zr}K~m!}pT z{*Xprh(8pf586}Ezc8C Tr8T_#00000NkvXXu0mjf0Q8>X delta 308 zcmV-40n7f71A_yQ7zqRe0001qplF?uE<}Ggjn$GdZo@DPMRfzBIzSBZ0Ok#{<^nA` z<_sMIZ}Czix@O&>nG{JK;>oNMS+?XYK$mba^dWwW{7;DID&W<5(4{hH{butET6epB zE}ZqNY4eWr=lf497*gA4y4}$NdOP3fn#MXrnuM$Fjvv-DrhkJzd^@hh{FdQlen)>9 z43eue?Y3uPF}XtBm8UkMHpXWih|Q zigO{f7sscrf5TzfNyGt=OB_P_B@W&v8X^u{%>YFlZb2uLI}RHPP!%|M@+tj@!;*f) z0qm0g9S3i-^lvzf`E;W}r6>~sm82kIBP`V_eqQbHq51>Q+ozuPuE!_<0000Kl(7=S zFbG2^l!s zEK==NY}a(mgLyl%kA6xIVg83O1(1Osgf~D2evlSGMt-~jGV$XC$jFbv!wo;qk^3$r YUjJVa0^T;WvH$=807*qoM6N<$f;}C4AOHXW delta 278 zcmV+x0qOqT0^kCW7zqRe0001qplF?uEM z!y`C=&tx~IrDCi2jP9r$-~dq;&*(vsKEvPbr^l`|Us3$4c<=XhOExFI22duVv^%xn zVGdxao$kPF0$95isCayY6Ln`x-ZCdpjeVa0$&Fh*2A~OimlM~}<_D1VE8-yP^^||X zOd4##OA^PDIrO&!a$u+7;*5_-HD6rY4}Qcgz8{IEp-NjmZ$wYH1T+z?R;POxB5UZJ z`ltnF_F3aX?W%+2$Odh~WY1geCd|Z{K_X1U$P5x;8l2)=-ol&-nIB%-u9O=gU#Rw< c_;-E*@@A0Sgzy>t00000NkvXXu0jG}g30ZI?f?J) diff --git a/graphics/pokemon/beartic/icon.png b/graphics/pokemon/beartic/icon.png index c4ed605a0ef34e9e866e125ba5a1f8cb2e5f9d52..991f9f265d21e4a6fc28676badba498a99034eb1 100644 GIT binary patch delta 313 zcmV-90mlCF0)hjO7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0RTxvK~zYI?Uca| z!ypKTD_k@&@cwT*er&c@(8DgxlG)q%1_E>n1K> ztb*oE;Af>Of+iBeYZt1$_d0;-wg5zGUlJ&e1pastoqAOw)!sUCI3aT@mQh<{u8kWP z&PS?*s9{owl8M@XpsD#aNfb5XRXxgM9bv2I8qSjp6F_-G*+$Vqv9K%v>k6|V#X4e# zJ_)>T_LM>?aLHwbwy)L5^*>LaCj~M}uLS~s>;&TekhMTge_RC;0sHe>Aj2OwfyhkQ zH**untQg=|fe;17_#8h1NrvuzXyfY_jf$E45ET>rkSOLDcm41JVPX+Evy2WW00000 LNkvXXu0mjfoJWPi delta 297 zcmV+^0oMM41M&ip7zqRe0001qplF?uE*l09z2Fbsu#0|M?1#3fxS zSZ~S_9WGM=ZJBbT6!0N}WKUFU539zqe!Lb1T5f!JA}R9gx<4M`S2=8xlYwb10j9E$ zj{;YYM<;Ai1cGdCTvZJiHsdJ@l7*Xd;~t*Us|mexZVx-9SES@)bSL1t6c#$-eLH{H zP&!SA!*SPho|eoj!`vsG8ym#Xlnnq!p-e^?zNPBFLA~&`5=bf07pUS8@&2<{?TUz5 zw}Pzq{BPr@z)05uL+2GR!9E&b;+gsxm@Mor4KT!mnt?edrY4<$k<^L&42*fpb;vw{ vDf0)jjX2yDbZ-3QLze4iJ{EF+pN|zU)bo=sC>|6{00000NkvXXu0mjf1;T-E diff --git a/graphics/pokemon/cobalion/icon.png b/graphics/pokemon/cobalion/icon.png index 376226b242ff93026a7935c3e6575d4f4ccae4e3..5dcdd6cb0e912e463f735dfa70f59fd09b8786d5 100644 GIT binary patch delta 292 zcmV+<0o(rX0`3Bk7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S>`6pHR7i>Klu-}E zAP9tq)(sL1|Nr0au=b_UE_++D`qIYlJP?z6JpOW-eZb8wRKU)sD&dQB!{>yz1=cV* z;Xq2{$4@yCDO~n`Ea7cw#M?D`KMKH~RfNUw(If9`w^tSB$@NeId+XY}46gW#7T6>= zFk@y3+|MbvXj5i?N)$%bJJ8ltA)vr(sZa=}-Q0u2xD32N0f}>tEx@6O_lIGlRMKQA zrQ)#oi)kiM9fEDt7)xlPYc-Q8SkpoI6j^ON%(2G4HLF{A?R_ipPK_=U(feNMx&!16 qkRkXwKw>_O0J+Qu50Kx?hc~eF8O{;ChKK+F002ovPDHK)LSTa61c@8~ delta 293 zcmV+=0owlV0`CHl7zqRe0001qplF?uE-hRm-WAzY{y@Q}{veZJioObpx=MUt_%X6Fa~ zGv{GC&Ymxx(a-Sb%zLN`{xf&a%=p0n_6%Ih-!qaO|9^DMIS;qx-HgtsFB&@$h8lm* z=nH+<*a$b&$k=j9Xy}U$xZ6G(E62eLp0{D)f$WbxmDn+SER9GU?C{|^j<6O1Mp rA`%QDeY{hCiJCsn+5e|)`TzjU#NZK~E}pgm00000NkvXXu0mjfJ;soN diff --git a/graphics/pokemon/cofagrigus/icon.png b/graphics/pokemon/cofagrigus/icon.png index 19476138c140f9d720f9c5b967c7ea16be54d526..1ae2b6609952723b628b01d46ddd28c29342fff6 100644 GIT binary patch delta 480 zcmV<60U!RC1gQj&7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sr%6OXR7i>KRLhdX zAPi#)PGKgt|Nn1SHYDNI&fa(Fp_524!dMF7PcBvcjxy&BMT0t=(s?qMqAQG7nkg~! zS#q8U>KiLX0s(kR`qX{!d=iOpCQ6l|7o`e^JdsF}P$*@6zN{1@$Z=3I0%wz<;UTz2 zl0!kjE;wqg@K6DN0^Wd+Lr%^nqU%}J00wYO^-?)B%eow2QN&d) z1TcsSIMz%fXjtw<@o@sjPEj^E7`O{7A~J*R8Mm2)teMNl+Ef^0#kDOX;77Xx4r@oK z7pz?c`;U%dpUMwUp*C`qV#T|S$39?(7#ktXu)mV0!Z0v@(}9MK|JQzf4-mi@+RqfV zp=4h2;l|2XksY?$f9Zo6+v9=rlt5RbsHn$7`EVUt z(;o4#1HHsQr+Bz}3F}%6Z3xX$AM>FF#9;sFlzuUt{a5dY+5WrX9PGcT5QfUXHvbR( Wp&-UXpdU5>0000HD4O^oGpb$W1)2y4KO`y)m(t~vW)kdm_mGp?y>F4W>2&HQRT%R61>qNGt zHO9lWv}YTE!JJ#Xw+S`(SxmMO?FH2C6?E?K(QchdL^%tGa(h*xrcTuP8Uuue}hyyTL)E^5D6+z?# z9BW5V(S`W-F*BPxNkx#O?qOzHfIpW2VRgk|S^|4shlh``HzO$<1 zi5J`(uka!EDjc9vh)NuoJ(eX7?5h?PFiS?<>F;Rx2FCv%s3JVwGynhq07*qoM6N<$ Eg3Qa>g8%>k diff --git a/graphics/pokemon/crustle/icon.png b/graphics/pokemon/crustle/icon.png index e6a99fe634cf1d556cb5851b49a47d807c0b25bf..5b70147792e6acc74b2c181879d9d000f77077d6 100644 GIT binary patch delta 373 zcmV-*0gC?l1HS{17#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SJxN4CR7i>Kl-rKO zFbG6zRl>0!;Q#-2889~SCS7U!8l*O@Ipxx1=Jk5wA0Zz1$!bAYj0hox7vAd5AWfdC z0cAw$%vCR>2vs>1I1&Cm0n8iX!)AbKM<@ei1o;-^6I0$pa9{}40TG{oW=CEoKBf*L zEeMYH)IxgKlZ9A+zO|f}_krKEQ61^FM$jF#1&;*o6fWEYkWz}YL->8@E{(euM44VB z0FlDz(=?%1Be-*!CBW!uJ6H(+sRDum`EKf_x{9`EZK&;at+GEf_K0909Z9-2y?pY< zK)7C|V<4+{0~qtf_wg9Smj(g-e=-Qu-EV`)`9BOo^`8t>0{VwRth|YB8ieT|29W^O z>@}4!VT%pA4324{@~1Ke>levLTVvc TK4Y9M00000NkvXXu0mjfFtMp| delta 432 zcmV;h0Z;zF1Nj4x7zqRe0001qplF?uEJ0IhT=1F+OmUoL;( z1f>HiXCq)(({~qE+A`g2B+eGsIAA^xP|$u`)LjG)FVvjS*JTsHz{lgq5iX_y_ZH3= zFrS($Ovd>39spy)ydV7R47MWuj~-2jciv7;e7{i7I2TjCy;;V@&@qucRX_9@K7)+? zGM~RLMuNPw4~lJ5hIxu!Nxff(yoP^Z1ffKjN>NKCWr|KN+0$nNPOg5a1=y9Oa9PM+ zDG^mZ+fs0000KR51?3 zFbE40OjYpze_Io&RR^HD;g-92$PgQFP~V7cNrOt~tDsikA0mKG)zm5u2#g%j8*7l5yT zD!t?*cux}=EvgPT1Iu6YY0BbfmyO@S4v;?y5EiZg>GC1imwYJvJ-hV$=QsgNPYlwI SiBpLH00003|L73 delta 186 zcmV;r07d_!0)+yQ7zqRe0001qplF?uElE47#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S!bwCyR7i>Kl)(za zKnO(RM$OIr|G(`h?9EvyEiEk(a+;@W6z4eZ_)bj3R#pT@QjQ29Og9U2V+8c`40jLh zi2^*I=u4o1Ot<`6VnUD7-BF_lrjG)g07xIhg90e*m!nKJ(RLYzNo13(2MsY(HDQ0D znt+MWITRtek#>?;wM(SuFxk3lpGtPI%FLaqyn#Fbv#$>&+0TES00000NkvXXu0mjfyoYO& delta 235 zcmV7zqRe0001qplF?uEsE`SH?Q0Mz zyx-ygg#?>GqQ=6A9z~6HLx!-UEp>z*5= lgqaOe!emwYAWZauFgJqqeuzp^a9RKW002ovPDHLkV1lkoX_x>2 diff --git a/graphics/pokemon/dwebble/icon.png b/graphics/pokemon/dwebble/icon.png index 32a23fd05a22cf0b8ca3c386287373e11a398e01..4b356d5aaa9f0daaf7f32ac30087eca1b5593275 100644 GIT binary patch delta 258 zcmV+d0sa2i0?h)D7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S%Sl8*R7i>Kl)(za zFbqQz5A2)t|9?9g~QlXtMBn z-xdTugtsg)3W0Wqk)w|S!C(NQ2%`Q)z=%LZVvsvr1)lvuf$0G+0Ehdapq}8OyC)?T z)r#YgN%88)b5yWl61t<807*qo IM6N<$f{&ea3;+NC delta 269 zcmV+o0rLLM0@wnO7zqRe0001qplF?uEj429W1XDz^41CSB2 zP0~@K&dh2G=o|uf&{;7B{-H~aE9*PSlKfs(-SU9UC0OuL#9~q9DS%p20x&NMDa(MT zCDJ+p@sEYj)-jjdf}N*c93`+B?u~2Q=d9rN#gnnI3v{xz%r1Mg0{`MMb)9*S zviDXj7s{YqzQ6oNHDAH)k4PCquKp2wrRyAg33CexXhm6utR9IlNyjn>=_ZQ1^X}F! zCABv;EN;*z2)a%@@!;GEIvEc;LDzeit89$Zwe5?oX+`-dHV$98QH TWRMAN00000NkvXXu0mjfK?rqb diff --git a/graphics/pokemon/emboar/icon.png b/graphics/pokemon/emboar/icon.png index 8d6f99628e9988db0e6275eac3211f8d6bb16954..d79f6f004ba6bc4ec99b93c6b8a02c3b125a5fb6 100644 GIT binary patch delta 443 zcmV;s0Yv_S1cU^T7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sf=NU{R7i>Cl)-v~ zKnR432;7+Wf7=3T+-38{9(ro`5R=U8fUf*sU;k|3NmqRKKox``3X7fwM9gVZtU9?F zJPpXeZg3*A_y|M(Tn*tU-3{n^Ih-lwD5I{@9S~(xC9p;vm1Y1;j3XpeHWCq=b=ocd zi|~k#LL%g&AzPwR;jd^4E?h}1pmN-Yf+5e9vWSl_SxafwWF+y-V&UCQIWS0rJq zkO8ub=l;^ekq2`+nBf_aOVYqxUELY=^kX|^ipPen3_ji}s{ZW7YF!Y>fz8EI+gI@JM4*~ErB!72*{R9sWh6Nz&@HT+-(U}3# z0C5Hk0O^2u2arY(8vzn8uB?2x0g`-J4R!-WS3oQPnF6o^#D?KMTJ8WD2~xv80c0k~ z!4FITnFvz+zyy$)AT_rb0n!PQ{D^_P0df%puOi3kya4i!Ajh3t0C_`@gAW%#k|5p* la&&Y8L_dxiFZ_4;@C~c!94j)swWI(5002ovPDHLkV1kMBz1;u+ delta 441 zcmV;q0Y?6W1cC&R7zqRe0001qplF?uE`;vzqVe$EE1~ZM!Nm^v;8YYI z5G)9aa}r1}4XjSO0I6P9vOrS{Hr+KcpfgCj8$4(d?T#-*nWc*+0keBz!)(tTfS-SO zn7)60@Ys#0XTHv|H{?CxHYCef$|aANZURHe7o5)yFU(Hd;a$D#8B4+qEb#rqxq!M52cA{pxw)Ko=4ZA%~{HS|>s^9|>l8iTL+t0h!mu;L(38Lwj9Z{`e07;R9-fY0GYeX_|7vz^MgRm{a4! zSr`XkWrQhd*7{+D+4B~}MwkU(dBSjaNh{1p?(S%W$zBamNLHA1X^MfXKC{BeQ&P`B zCn~Kl6AbIB0I@W}j1;1%+de*m5oV;K%7;2qSYhOGfT?tr8DWG9ODjm_M=d3cxXHo2 jy{fqqhP<}RfBW$Z0uAR-WPr3800000NkvXXu0mjfna;~Z diff --git a/graphics/pokemon/escavalier/icon.png b/graphics/pokemon/escavalier/icon.png index 32c3988341d4d8ec9a552c1833fb5b68e9be20b3..94f646ecf70a69b2d5aabffc4e5afa8b0049c28c 100644 GIT binary patch delta 342 zcmV-c0jd6x1E2$t7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S9!W$&R7i>Kl)-ky zAP7YTY);|={{L_L(3vKKm@ay{n!!zy_cVZdOL@nz9yfApZQHh$#k$%fb=Z%bJBF@G zsy7BD#z-Bmn+asMH-H}v^PbMC&lSo#nkzgPPcV%^S{R=uWwZ3LB zu!wFI^T`*m=`SXKtg7M*c$Tw{HfpV~AWQe!q@x6?^-%N@j;M?F66x4?@1zF9nBP0S zA9##s!h9dPj{HsA)P>PTrcqy89GI~QUhV40Au!kS`RA|h^oQpYe~%A9{s|!QdIf+) zLf9)nCPLu#0uY)AVW{i`2oMtpVYu)w011S!jqM7MNC?L@!v!G42@#uAPJoo05GO!Z ogm?m^ED7)c$Sol(*@0i;8{_pAI;n^8t^fc407*qoM6N<$f;5eoQvd(} delta 327 zcmV-N0l5C41Caxe7zqRe0001qplF?uEl#A_w8P%JA{byOHkFoze5Q59@ z+KN64TFynBfur%f5PcFjXt+#*H|DvLRaoB$fT-j<##et~ zvnd417<@L(eOKPFb?6KGJLEO&DDaitDt_`b1FhX#RVhos(BakXhv;f5Y*CfZk9}Lm zLQ`J9AZ-MUN6zc%us-R$Dx@3J1xa}Vm98)Z14&^S8?vp>C3YF-^1x7uzz`7l1+xP2 zXE1_*fSzVBWko=|IfEe}@Gvc4ECDka!UE=LI?%V+0){0(7BDH084SyS{D5IO5O9A2 Z`39lhuSKpdl!E{O002ovPDHLkV1ni;k^=w$ diff --git a/graphics/pokemon/foongus/icon.png b/graphics/pokemon/foongus/icon.png index f6e6171a4618a436bbf3097eaf40dde62d6701cb..c6e4ab426bdb76528e9d941daad9a86480b43276 100644 GIT binary patch delta 205 zcmV;;05boI0+<4j7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SmPtfGR7i>KlsgVX zF$e^`AUz}(=Ki-0pC$#6E=l2O85xZ1UF-6nXfTu+hIER8LCgn&+E8X3W`am5Se>(l z)J6!=p%W+s!XxsO0@Cmv^^^)%$j9jJsR;U2sUBn4BqX>LzeuyD*%Qs~AoQ zW11l!#8kgr-njuRvc44{kq^`7-k$;_?lFZ>=ED>KKgov|JE92aSI9M$00000NkvXX Hu0mjfd2v!+ delta 191 zcmV;w06_nk0*V5V7zqRe0001qplF?uEw*MQ3Q+I^ zP`o{UQbgsF|KwME0D|c`+;Quc3dD9Etyfo!b3YeV<@YEXOZ=+C<+K=pErx8s1NBQj zTYw{h0>pKm-rybp$vZPDA&Qt$ry@d^`RDaUmzJ_W5b%8(76NnPiVqm6QBUIy=anl9 t|1|kxVfxevGq=J7M6Ogn*oTk&cmW37M^9|MvxNWv002ovPDHLkV1l#MQEdPK diff --git a/graphics/pokemon/genesect/icon.png b/graphics/pokemon/genesect/icon.png index 6ab5e6f03546866e91cb635e3d243ff0500670b3..a448db60332e0a00942b3368569876e37b08a4f7 100644 GIT binary patch delta 321 zcmV-H0lxmF1B(NY7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S2}wjjR7i>Kl)(>)MZ~)?Ly>AMa5?#auJ~dMNy_O zgT|=I6z=%hqBIk@;;&u7F=rQEEZR+znDoL1+FPxb=Jb^l)~!tXR6N$Q6&%C!lMK=m zsL|m$gex}SRa9bskywVG`!tRYRsauNfie>*S8lJ=8NLX{lDwFZhrijA1Oc%{73=P z_%R1a=f@l%dn`PA$Q&T#gEc;+00}Ji{VNqThwpQaa8pYd^QWgnM^_pN7Dic~qJGdzFw zK?j{S8*nv&v1S^qi>di}b1z4sSJa4M(z#{Y)iX#YwTQz!9hsW6@2HG>J4N=0TsEeo zVkdf~`&rtnWvl@;cC~tD_5WktB*87wIHG|>gN8LikNgR`f-s0u)+5*gMxX5n)=Wug z3zwDY=cM!&JieqK7vSYp2&Cxo=@>^)grOnVfDmTX^+Fgra9jv;|3>0mRSJ{Lxdj(t tvL9*ZyFvQF+Jg(oesK1qY~+{y_y$t=_D>M9|8W2S002ovPDHLkV1kgdq)`9> diff --git a/graphics/pokemon/golett/icon.png b/graphics/pokemon/golett/icon.png index 20dd1f45ab2552b2c1f94630299e46c30bf3ec8a..a3513174898f6a17a50a6affe1e539e346299da8 100644 GIT binary patch delta 273 zcmV+s0q*|H0^9Kl*?rPT_7znNciIr2xkU?KXeyJZV00000NkvXXu0mjfUL15L delta 257 zcmV+c0sj8n0?Y!C7zqRe0001qplF?uEy9mxs z?b!D@LyXT}xR8wsm z@yY_Ap2s072Q(;a_uxrQ)U59>eenGh{A07ZFt8S8OnqTMq_Z%gG9cH&M6xtMXkkKH zMnjHT7*1@dd8b+!elq}OVX$L%juvMBFw)I_$Y$`C-_(x}gyWUPg$Nti00000NkvXX Hu0mjfwgPm* diff --git a/graphics/pokemon/gothita/icon.png b/graphics/pokemon/gothita/icon.png index 19da4895baded46899d0f2d313d07909ed9adb5f..8d280f51746defd2c090b23b5bc68898efba218d 100644 GIT binary patch delta 202 zcmV;*05$*30+j-g7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SlSxEDR7i>Kl)(9q^taN_cgA?$gh7`8ya|J#wx$$IsjkF78JV?C-~owEidb2BzZ+L=_->KmY&$07*qoM6N<$ Ef^mRZ`~Uy| delta 258 zcmV+d0sa1!0?h)D7zqRe0001qplF?uEB zW$HQs=1uDYtMT?kFI%xYmP9pju%OzO931W!Q}K8F^Q@2D2iE$^3!p?3g!OS^T48P# z@FN$ zZ~Lv~)?oEmi+p&E!~>*!ft`#;i%!NNWT|WpLKfu%;(2_d4>aRmha)60+yDRo07*qo IM6N<$f@=K~zYI?Uca| zgfIw1rRZgY%>V!G0&5e4ST7#dM2rWW*BRO-Ow(I;7jPjnV*r^r! u{?;SvogW+VwE1y%D~S2=2Lt5(`S1mMUJnBITYZcG0000@lCe(2FbszC29cHZ+3_#LpNh19Q`jI$peYnO zX_cWAR-H7?deD~AteazS4FFQb3qYO$QU)U`0JtDM>GO0njLWf-xSsD!g7un`-cDMK>$oSKlu3?+ zFbqYJSR|IG``@;|Qxp|MY!)r`rrKhKA09&Vw(X0;{UP6)R}AtI1>>qEgM386;N=tJ zW>zvT#uejDOqg%XR6tN-#Kfrj1dIw-#%wNOLd?WOL4d*7dKsdbs0#TWd1l|Piv*x( zy6?M1zTZw_5Neoz#X9nL02R9#5n1moIxND+rvUnV0&^2W9wYWugIKi1qS(`te~!Z> zJbhXIO^CE6k`f4JA*yb$JBig-yu9B3@$2{^!^neShCnLAyaiGi<`l@pF M07*qoM6N<$f{iMOqzb4G)1S9Se2l9e+Zp(dz@^5V9%KheW6ta_#U&jd_M;d2)Zd zarUFF&v?Lgd=zA}*v=fTe+TK7_GtE~rpYcYE7bgr{O@V~tR7cn1G&QebVEQ@K|X>Zf}qM(Nd+Y^RFLQcm?a$D3HVCR7sKp zAq;D#;E47A-^P*~aIdGFGO12wk??{oZQFl*;T6ONdt?AG!yBP@!p@m_0Hot&bjQ1Y zE6{(X6wK3pd=Oy#pYX~@uw%Rjz9Q@~0vAEJAyw?58)~gg!Gek%VBxJ*f1)1Zs(n=n z;_xsm)p%ZQ%s$|Mr<*ygB5;4FKAi1%6Rzvz15q$@N!2>wsPvIxSY-Z@5 zzcHxa0r-m{Vd*9toWRnGA7(imYq|)QsKcy^?X;%!d7S%%Kmx<5;WUgOLpRQ5bT6%3 z)<+e9aIJT^7t_^)t^{}Mr__yvr{#>|y^vP{_}aeXzy5lE6Tdzl)vvY1c0Zpbey&4a zqjfrqf2`5k`IGo<*+;1cjYd|S^S~>oMVYUG#mD? z++myI-`&A3?l8o^w10L7iQmd#1Z6ZKcaSk9cQ}Y&?!Yl5cgWKUcaZv*I~;6uPN)xe zs1onV9p;@X?v~feMgNHUdQ7I=>{n9%LnNoMGYtye}nx^hhOAD(CWx8NA4gPfr$R%QLQh9b->5>f4YgB*d zYYQ;~qX=gHR~LyX-g+AXb8vzrklW^Hq0YP{ZKc2IHL7^P92R;$x_-p)Ii$d1Z(DA<5yL z{llRR{DYv8v-$IQq#+whKZO=RxTk-e1_X0TI}Okmp}zi3gLGc(uxvC)*8DQAe$b%2 z497u3OnZ%!2AO)RgN7J)#;DT}W0E-V$Qun&@kj?AP#QWO>A(Xb7o7z$?RZF(j>mYo z4G)x#$G)xNVG1@p_JtJ>gP?ePxn05-7mj&4PD$?pSDxSQhpS7yo<+JPQ>`6OuTM{Z b)&Isf<7`_ymAV|{00000NkvXXu0mjf5E03g diff --git a/graphics/pokemon/karrablast/icon.png b/graphics/pokemon/karrablast/icon.png index f155236f285b5f2658706b68bd6097812a024435..9db6f2f4d390c517b263e1faaacd671ce89dff3e 100644 GIT binary patch delta 198 zcmV;%06G8t0g(cb7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sk4Z#9R7i>KlrauN zF$hD08d4%5xc_bI=vQionk*gu5Hs>*V8E>%-BgJx`;ICBbK6*K`dc8)N@A^05vlGT zHYu@y5TzCw5}{9}L((21(#1l46KQY&V-d_k;UJj6mr$s<0z~g~7C=jgt@s7i{iCCg zPJpz(1_%YlJ3!ba`=*XDR)8=I5LbW{hu$+EUUXFn3y6mj-~a#s07*qoM6N<$f@OeB AV*mgE delta 178 zcmV;j08Rgq0{sDy7zqRe0001qplF?uED6en1s?7=bLn|L|RS1hO9fWwsRZ*LS)dJ=U{GTFYg%H*KNKEA gfC&aQ`l*{f0PDk0c>OgKZ~y=R07*qoM6N<$g8Ji22LJ#7 diff --git a/graphics/pokemon/keldeo/icon.png b/graphics/pokemon/keldeo/icon.png index 4d8c580f229661a7219821a4d4192d1774b0c86e..a7b3f96ab5d96455bea80439c9482a554004d4f9 100644 GIT binary patch delta 333 zcmV-T0kZy&1D6Ak7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S6-h)vR7i>Kl*tal zFbqU1SxIbUdH(-zv0V_&hQx&nSUIH3bh4PfLDZ?FMI8~8(5m2eA3rnqYKsv%;X4PwTQcxo?cF|Ht zoUAvHk*FbW?0~9&Lec32;`|ArDTU=~xDn}7ciA7PU&3!t)wd7RoaV!@&&c()qOH8r zBQ+}$~-%0KxF} z_W(%(42}yxa1vk-5IqaMeg#N;=K~&kfW&+_Ne2*J;o%A_kT9=M*#TtMUjSM2;RTR) fd?>-DZ}Z^}ZRi;Ymtp5}00000NkvXXu0mjfOEZ(C delta 325 zcmV-L0lNN|1CIlc7zqRe0001qplF?uE4l);YV zFbG5koJb&9)c^nO7Vg+>JKjC*X>w_`sX&3r`}z6R4}kq-3)fWu7`__RS`~8=6s;Ad zA3((Te@+7DOI-lbYEo@3f-oBjsJf`kf-FHr3RpQ9)rd6%n1B+nyhuny^{r2sxrd0V zM2%A1eRP4|J9G1YiCRiAR~?@C+r(gI$pnSP{L<+061bZ^W{wtT&sm~(Q1!lYxXc_X z&FmECT&uhv1AjG>8YTF$0O?1;>?d{^+b!g=euoh|X2t^7;CecktdS8N~3uYLCEzGl4+YQ@7F z5E~v2fLQQw0>pxc10W_mJOy?@3_Ls^`2i3O4+9`OAfC=`0AvTmu-X7}0K^+0Ga%jo z*#L0>$N>;j8$f12900Nc;sB5b5Mx4bfUJD@0tDUx5`O^*k`W1pi4QYCK3`mWb>hPe qkk44lXC($7P5{~X@B+wx<-;H4{3QIlQUk{T0000j91k(hN7zqRe0001qplF?uEa}1Q~ zv>MIMjCP;n{Odvx5>(0krOnu2STwHZRmspcj7!F=UuUuI(x<5%8~bSxjj0w~fOMLgd1;tmuBhbs zZwb4gtfrX9RJ47(QeAM)F~nFG?XJJfgK2pjqPX*^ME3b31`qBMF}t7i6T^=y#Ju!o z-zv-#%DDc3`GfLirC--nvx|iLb_IX+a^W&IqQLz7`%rFO#a0U)*x;K_d7_dLmkrll zqT5N7fNWa{>jf22n9<>?{$SUo{(XCp{lYytxCD6Oqr*U_iWm3fNaue%Fw8u#7zR@} zMofn%+7O&#t8JKbCzR{_>P=kT-E!P1!&4d=jSZy+t$OM5Y>)dws+e9-0 z^AyC1C8Qz(6HM>uF7;SF7+y`qy?+2k7!QBJWa0%Fk>z6|wFiUIWk2#BOpQn^_h49E z|8$;%;ns%+vn4Q#XJAy)gE2k~7?8lN4+EwjryYFk!3;hIFt7IU2R>Ip3=)Ybb^rhX M07*qoM6N<$f@vxE7ytkO diff --git a/graphics/pokemon/landorus/icon.png b/graphics/pokemon/landorus/icon.png index b86a7cf7a84c0c2a3b37df31ace5b3593dc8d446..4b2ec8d4f791e3c238098ad842091aa980cc31db 100644 GIT binary patch delta 460 zcmV;-0Wq8BM#GZ@}^z5bYqn*W^rF~LOqdGf2kL?+o| zH^DSn+!-biFh@?zUD5J1cV-BPD?UTwQ6MN*JB||-E|7S(7^8TA>PjfyfdZ8fH40Q+ z(CQJUOlkq4Jjz3W3n+h*h~96~R6`K7#I8t*vZw(5o+4!SB2YsLR(vc)BeXuPN+<-! z5<_AgFpt|-L8&4I0`!RL1Kd=`O==Mtj#4Wm1yRr`)w(G%I#+>x)nEPgrT_snfqBXM z#N=g3f4>=!rX%J`n2wkeVPxThB4#Jd10cqSjWA(Cf9oJMsFV3-;VQ*;dGP>f@i z7llge9106!WWLG@>GOY(X;Q+DkZSO-TwSV^h1Rfj`MnT*fjNzFygiCXv2w;9@I93C zrw{SWY{@tVideRwd>5|O3()q3Na z*#oFTt*WtrLPbrl4XC>zT`Zx#+?T-<3r_R z>~1xCPO%N_ycL<^|=@R6OHbK;z=ng^Dd)svg!rvyQO%NKh4nfFAbS8+_ ze8lQRPy0oneT1MdQm7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0PRUcK~zYI?UYdq z!!QVhtA@y+c>n+3E=k)pt7c^n+Za^H(;em%{HE!u4;9Yz{Mvy$G~lE`Qvj$A9LNf= zh_E(iZ%&+TLaN-Q4R>p>M<7Y*z}uOGdV~5!3;B11Dl%zFf*cgE;^G@ zBHtqm5pf+OTk?*7vMGKHnoElmd{Sd_3y@MUYFRbdiky&q$i*_DD29Q&bZNGceAR!| zukkRA>Co`7^CQGV$B!^c&kqfg^!y0*H~HaD`^XP>xd(puP sctFn&3-7=2164-2h^0$?U+2ReP;d^mcE0+<7k7zqRe0001qplF?uE@lCe(1Fc60G2B)Bos0evr zON4KzSXxzLZr=eA-HOy98S^H6m+pvnNYgpC400D_b4H5on1vN?%dh|byZF8=`||~< zpk-osjs>#A%h(RKjvcyD$eYZDmIp-SCW?6{p{_yZ80X?+uK57#0Wv0000?P=%ZT0004VQb$4nuFf3kks(BXNQv!~F%H8p2t{K) zRtH=B``@+@r&}P6x^xI0dBT9Lw{1_{5Be$d%}))qMpg)$nQD$O(%QRb1Wf^ygbWer z=n24q35aM`f}X}0l9nJMW^{1|_;iF|PQT)`K&*%_?;&krr+gD5pOUm@MS-|O&6(nc z<`vAcMXmR=qKQ~kwi7*>a}hAIoD*Ct$%#Dm#6QI&kOeG(Grl|c9r vNDdqVDHO8=Vzq-V1;Sb&`=_ga&E0qd{9Ft%EcQkh00000NkvXXu0mjfLgi(g delta 232 zcmVC!igTEHIJi z0y7WcoB3yQWc4LTaIFQMJ=yH94mc8T>zBLh-Q^Qv(cv7vDUJgmV@5LA90=LGsQfn6 zYg6z1l<|<1jh}IBQ{~rCt1s&81FhGl{s3~1KlsgW? zKnO%*xmY1SbN}0Bz)BIBU6+;;(>aV7V8eU8p131`i@Yk98knfsLW6Bn)nJ{O0|lj- z322Z4nOR^rwjk_ck`GsvoswRF!Mv)^@@!Fpfd#ig3G_v6F(CFzz^Qlnjd+( z2S2=+ycaT?;ym&iXa3;ex5o(+002ovPDHLkV1kf;gJS>y delta 298 zcmV+_0oDHM0`vlq7zqRe0001qplF?uEyT=;E%W7a0Mf-wyg1U4nJfLl%~*`jt+bH wT5T=?)pS~99c{^)!LkWS&`4Klu--A zAPj`t_~1jb-2eZ#OJW^U(+uaW4=_LdnI-b$BN znSiYye>#76JVu=9gO@ITs%f=ZlW% TzqG=E00000NkvXXu0mjf!9$Ej delta 312 zcmV-80muG}1A+sP7zqRe0001qplF?uE04a$=eoy%s_(B*wBM(Ix1 zUdecII_Ng-Eo~-Y&dmmn$Lv`ck>n)Ysl<@{ayrlaxCrxoKRy63ZK=4gF_)hJ0000< KMNUMnLSTZBcZKl(7zj zFbqUvTVi1F{r}(AmjnTc3rp3Z#X|<}adDjJN_pzb1>jm&vr7VIJAuRwCK>=Xx5*B+ zEUM7>wdymVtE#)Yz*QszM8!4M(5u;e456%CWTieJ;cVJVXn=8-Xpo|HJp-HoDX)6c zC;w%mC@H`;*np#S(>_^Td&N1cm@fh*N+hLpcRVI<-T9gIV} bpN)tYF3k;X?=f`q00000NkvXXu0mjf6p(w? delta 254 zcmV3DWd z)K_DN$qr#t4d%d>FDPZ&G0<(D$WBDkHEo1_khJ2z_cP z?x$WT8c~rWgw_+SQuGM;O4(r=!|*$?C@%vEB;FnwJl{0}?oKfsi3ijsO4v07*qoM6N<$ Ef;6gf8vpKlR*jq zAqYi-K+F$$|J#l>!ECHyHnRvH?f%2ku$1If)Y-)_c&UsSOvJIFsMQ4~Mrddqf*A+} zD}aZqU`v126 izTGP8QR+PBaRFBoZVhsRUZ+$50000 zXzNF^W%sUCD?8>RIqcWERqtORISlBPS07M4!+^#e1%$v5P7do|{a=rg96tQ#N9GvQ a9{>QdRdQJDO}$3|0000Kl*lRxL{uFz=wxuG`jKI%KpRDu zr9`p15=|5ft4`kmXar;pvKnw;NFo1nSm`$jO`P*Bq1(=!nS(&*7l6fxX%Yf*1H^7Z zlm@5)5`izElqFDq>JEC~N*||hL-)d-iUYJ%R?+BYfenM67smxsUPV33L!A3fJ_vq6_74J zZ5I#&9teoO|Gfg@0{=unT002ovPDHLkV1gez BeGUKs delta 281 zcmV+!0p|Ys0^gTjzBzx&~;PKjU^zCb|1%?&0~K6 z`wHx~8MxHa^)`cau@J63Oa3gtDO>=2z6ZN?xOA%J`N9rE^LZ)}^zaNAir7yyZ=qHG z*Fn`|u!1?!2nGC9gl#~GX{p*coDX8X+SxUOFgpF0moRyPd@c+v31j4AVW9ewFj5PH fo=O<~PM9Yk90~uj^~(AH0000Kl*tam zFbG7WIG7vr|9@MSNOb~ss~)Nz%F#0{#>v~Ze|!+Y3tg}_nZZrd>X;kQRD;M=7umt$ zQ8_?*?mBBA&j}_pm%BNn-5t=h9lf*cuBSd=Xlj>^##{~paBo&!i!fD_!uoeL*_cE} zHW0DT=l5Wwjf0MV$TbIiX~`khp3V`G=CBjdGGRcvN$fE?oR(XGodx5r)4JnO_u+R~ z1X_BCRBEmN<2T|heynU^m=fg7Mg9K=T;Sj8lrSrRc;P2N3Y}yGNKKdlAQfRQ04WJG z0Hh|&0Fat6BS31x3;?MJa{)+2n3E4j@Bv7KF+Mmzyg@J_=2jxI27pu>xA;CE9?tm~ UD`uDpasU7T07*qoM6N<$f>7#-h5!Hn delta 305 zcmV-10nYx61N#Dy7zqRe0001qplF?uESwi|0CuUt~vis{Y%Y4y79uN~RkY1$x~6q#%2qye`e zNWlbP=KvEiBLd7)W8(WW_{{F50>3-C2mV9}iC_G2dD1ckP&_i9$G(Ct@#*Mz*jIlr zzcFhYPle2{JoKXvQf8sv4ZYS(r3wLi08;ztpa-y$l5%wkBYUYuNk}65&CVV}3w~_% z{~X#rRsX(a3Q_|o5Ue2jBgro4Cao}(g;`VPX%WU7gBD@18kB`G24!K4L0K4MP!`4- zvHfDJO8&%-oy=x7O^X%{X<16m_xXJH<^G3W%Iu&$SNM}I&Ubzv4K6CF zcZ08v)XgcUt@>!_4hIF3yrPx#g+2^THxr~P0xLEQQGi-_tksdwZ7pDirdbv!Fsq}x zAPrI-1}fC~!M<~UG!<|NzM(M;3Y5CkO+5;zT2%3Dg1<`PjaY*^6?f!n$zE9=(AF#Z zQ=!Dy4@L*l_5NH1t$*q$a$Vz(@wR{VFLbSXdSc9?Y%fO2l2{Im!<6L0`)KLJFM z3BJdF0EB!!c#8i3$V2?Y(ExIcf8|4NAB;G}zwsfoH$DVFUipv!dErBC{oncU3-sP3 UMNJ<%QUCw|07*qoM6N<$f_;?Z$p8QV delta 456 zcmV;(0XP1q1d#-g7zqRe0001qplF?uE7!G5CCA_;NHQL2P++J zNhO5eEnYH2$vcIGO2~c(vm%PZ8igJ|j-9M+ku1ac4&(F3*k6zMwuZ)+yN?Xg zgxIs-*8uF%Lkjp>5(W_idKP-7^>z4*ZC=JM07+I*~eae4tZ@)(m^uv&aqar5LSph@6fC zQOYlwwxIV&3Zz|8IDN%5`rHKCfnLEi1?uM;+qQO~f~odpJYBny>(j;8PTkK+kH*Ah z9o5ll>!xK5N~?Lg^Xb{z+c|a~hG&0(#R$~@hxTkcfUh+r5H4@ODZWHMAuM$;ZVSw>`5*h5*XEPIb<|2TMq0& yVD!p?d=MC`R}SRE>Ng+r^yZ`UuRb9D#>WrNr8MZH*j(=b0000Kl*tOi zFbqVk_RUsC6nCdMdKw*YqvfTQY)K8Sf&U>#C=C5K1tZ|N=-nX zK2^jXa02BBWWaU;M6U$IeA`^ia+$>ls3c&f`-mz79s?wOt|A(k+<-l!TqOG#!~x`X zs)N87qkBX!dw>OG;KRd7iE}}~+?gbwTuYUqMn*&ynp~HLrFj&S3x{{8s+W5>2sHHG z7yr~TWeK!5_N|}MT_FEbAVFLTq$Vx}QddlTxh#;g9~K4DzS0j5N0$$&;MdZy00000 LNkvXXu0mjf@rZ4H delta 250 zcmVuK57zqRe0001qplF?uE zey3S4Q A4gdfE diff --git a/graphics/pokemon/scraggy/icon.png b/graphics/pokemon/scraggy/icon.png index e63301f36bcf3c7ed744c5691dbdaa5edcc04c48..f1baf8d0783dcf1f9f38795ff9905a8118403140 100644 GIT binary patch delta 207 zcmV;=05Jcs0-6Gl7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{Sm`OxIR7i>Kl)(za zFbqROeX!Mo_5XjncxxGh$gtC3L{}-UE$AC#>wiVEch9p4Fc7T|AObQ`ekoLf=71UG z2-*Q-6Bs^u{t%K4i)VpSit4iAdnE3H`(N8^Nsn%hy$b)&j@C|Vu5f86+uLt z2IIa?8vyGa0$SB+4qYc}p(!2OVu+yQVjXKj+KluHW4 zFbqQrRSfZfb^qIr5@u6~-Q|=LZS~@B@NsNCRU~WMtO8`CB4`mXAR~zQc!Z)PgaY_L zvK$25y9=;&CzL-G>q2S${1I4IA%Mdbg=Hh^VLqq#WE3K14*5wRWZ>+rnkALqTRO=} zn0YJLHDcT>y#5d*TU!_H1M;Q=a(5s2kNfZivBC^#eDwZM00000NkvXXu0mjfCTmi8 delta 175 zcmV;g08sys0{Q`v7zqRe0001qplF?uE3~g2Q+>fssMkQTRw`w zw|8zX$V&MAcD+mUM;6Fix9b_QiZ5O(S3S!|68W-f)v9$!#`0%c0Y%*WkpzCNTD-~y zNx*N_s`V?8o%ZGNs#VjF1^E9tPepYq{}QhdRL}fMTZ-npC0^+M|IaWA@PUz)V9*=W d2R{Yr0|0BIXTmgKRLc&- zAPhsLRGJjx|Nq-LJhVbXr%5|ai#QS232E#Q{_zUn9YBD45DrOcKumb3?gX@3qmvOX zl>utkNJ);VU}tE6U3CT+g(5~KNI(Xe5g>&=Du4ttL#4394tNBGB9X&-@d)f?Vnx)B zM_}*RBHK%G)9g%tm3hq)8CgWV!SgDLWIOD@>mlGl7Ud{d!s)V=;V5#3|NpTeThwto z2&+;^wwuksZi83@aOgoqS|Ye6Ldd)fXGE}Fat1wtZu9?G#~1D4j2gaZ;tqYAXM^bW z&;eJ2==M*y!>Uksw)&+_*K`l0+6zrV`=_w@e+N2VGh>4XU<00000NkvXXu0mjf8quBJ delta 358 zcmV-s0h#`%1F!>-7zqRe0001qplF?uEZrE5JmR}bBG+kQfQNO zv{Yz=ofHP76rP<1SF4>Y26kB__nyjnnw`Oao)Aw{yat+A2zHXj zA2b1s$@T#232574Nc7vi@Erq4)C|g_iWJE0j^@2hc2JPw++l~L*sv^Xx7VZ@#tDDU zF9ho*YtfIeYhI*$z54Gpc#5J^<^KWj+xOQAjh_LZc=@;*w|02+_x=m6L%`;I{-H%M zK#aHvGf6TPfLqtLv;t>I4#0rKvlq}B)VxBsV?Kp7MP`~@42d(3x3tH<1CS-T z4v3Vn=XVBWd{Cly=LZujt3&V3Z--J0IxG#s)au|30R6?vW15WULMt9=j;AJdCX>_Ddj$>so|G>#!fyKg31Z%uLg|&Hw-a07*qoM6N<$ Ef;5w+C;$Ke diff --git a/graphics/pokemon/thundurus/icon.png b/graphics/pokemon/thundurus/icon.png index 9295bb7526a977998ece954ea069cab5a1feff33..9b116651160765ef9d259797932fde36d79383e6 100644 GIT binary patch delta 455 zcmV;&0XY7mHjV_47#0Wv0000?P=%ZT0004VQb$4nuFf3klLr|-e*uh1L_t(YiRF}0 zj>8}fM2l%8kc{X4w_V#I!P!9iTd8QfQaaPI4dlIEU%7w}dd`my)z$EjVutjPVtOV^ znK|@JWXYrkN|%go2Ln=sM9d?>fdun_E7wwl&2Y_tB>Mq2u9caaSO{GrQnCi#>`U~I z5FM6KfsD+&ZJfCwe{6=L5Hb*HnItnODE&F`C?uKIyR2x97fUE3#MK<O!`15-162x{4N^BGXr0J<2CTxddo%6`NW^!)`#EQ&XhkG@9W(++db|5-2Z9{ z^Q8BJ^vy=^=YKYS``mvG<9?Zu{W0<{Up&pW=jVSv*>3My_Fi{&EhH?J%)6-1QqDUr z?3mJ@+Y&#S|0D17`KkOAmN@X(#G9R;VQjSyYi}Fuw9Rh2&g-y)DF(M(=GD33{Q0c- z?5Z2bDM3GWyNnyA@daNEyyp4Xea*$5aqAgx*uu!ua(|_>Jj`;(Uw+K*KK#G@d_8Dy zg|4+vxppeY!A>#FG~_w`<|-Uw_iNL5?0bI9PjU178vJ%87_=E53vhODegPQcJ6@dLS&;RI{n2*4i3_HXhx$yKzNp-F4qXk3IF=ORv2R z!e@jLM;dvQQAe9@`bqlFG_#py*4dU_gwhHtu79-hDyy!xiM8!_*m0+wciDBfFR$4* zZGZ8a{pPv9_nLjZCXa=4UH;)UKF;~`2rD>=@);g;!Q$~O4-n8!K6{D{!O3&-*;5@! z5glH$QO=oG9>arSSr@nc^4$;5{jJ|j4F8ee+@CyWHwepx7sM3S%nj?9?cz;Cd zJ+{CKd`!f6!pO3{DG*$`0RX$E)p~2XmEf*^_qu%^TKvd8YcAdH2+lQpwR_lO?KyUh z%fy9+{G1gV&5~QRtzjwoWre+VABxMIH;Rc%?BZhApSIfSn~+a=R4%N>S1#_p?$M{K zb>`4&a4opevv0e(UZ39PgOhO;K7Y?x>e%fe4BEs>d#N#55QT<2L`Yv8$r0v2wh zcpSbL*RiTZq95KWzAaP6nlc*^o(2!9DIR~!$*e8!T6qnnA^g`6^D{&~L#*P%oT206 zr(j64GdanO5)&=Dq4wh)U%9o#oM+Qa$Sl~J8_q1IC9l0=nJDboU@en94u5Sx-@p~| zY2E<@pve|2Eyjqe11Ang?;J4k;${G|FzQX(he^(ASg6fwFfCk1{7#RzcSn_Aje^a{ zmXH&kC8QO|IIum$8aK@o-8Cszje=E7f5LS$yD{BJ8z%uwMCHy4<7_gODB@8wgSV65 z#~NE$LZW+u?j&u>$A-Jd+<$T*a}vm1-NHf)45qOhNMt4`)y_di@??)6yn=t18geyt z$;{xQ;uf1S-At_Y2z+vBP(Uhnvo66M3`t0KoL^CAagoj^iA;CQJqrU4BXB z?E~p>lKR00fWgUq7FeMS>%S%WOFKCV8V zUbz8kgyR6ecE@X;%p1f@$KHfT$KUmzz4YBlrVYX^_8V_l+wMf5Zr0Up&mt72+asI? z=8DFM*HV;%eLny$AuO>6)E>wn;i10KTYXljTp4YI#>nvtPvF1{PfYNFlfB?X9Eh|! zk$s{CGa_>*Q_db25r5-x`eq69x~WQFy&!?s-`g1*bg2Ho zPaYBN57|H^_Lvz9Gb~}=&qBBH8viC=5n1_j*$Pm?>JvFp#eX0ZgyioK(CbXXVN~!R z@7SbFM<^JgHXKJ1Mcd!en7&B95|b1ZbBfl0XaEI6-at_LklXlmZ!`=r!Z=XbE<{tZ zm)mFOriaV>P6@m5Xvb$VVwV%`$3#T|Tx2|p@>lQx&5VTWKDYUNZJ#U&8(9llT5=nO zLe2xbWygZjA%8TA=YHJpg#?FymPaVg+_*e6Smy~#Ql#*kDK=#hi}eDP5WSdF zNlUe)Il(?jVcKs(Wsw#U1-67Xt8#CwWlvl|?QundR`qy*m# z#3aFTIR0dt!Ysc=t~cBKk8HEg$u<;QMb|Mhv4G1n?|%-Kb-|N7fI`{m+JZZ}*p09# zq&^&m#TP>H=8HKAGb%{F4*-d=06?&VKOGiK*UR&I85@#c6q;kEGH2mQXhsOsAdCwd zEBI{>kb%f&`tTM?0zj6X`xzEc8ui34bl&U@;+Tn8^1zU2Q`G`kA7uk(B9ufMz}v7q zs%}lcWq%Y;6js@{oZMD$h_1!O*%{Ct@D_=ob|=-;a|P7Q#N(9W)jWs;CkzpzP~;-V z707K$#Q+~3c`VHFqT-g~eFQcbM~uufdqu-0Xr?9!MiEJ@wjbF^3`ePF;LI!lCISKd zs2u_YJ8P8-&^Thp!#^#;wJ8&R#M2<$(aCc6;qZyBBt0Vucu})qvJ)Z!GMdj;GG2YOSoo}Rsx&fR1fWV3 zuYYLNsz6!AAUWbuhAQAzzz6`i9j=JH4m`nt#(>6m=`{rozcSrz-jHFWPig=QvlS36%9Q4p2n1lON{Rjw%)h-bP zb0FwEHt>dW%`q!c8_KZ_D&AG_0^^B@;&X(9vW*A2j&zJXUUChv(4$p#;!rSKB!69w zaTHx}LVqa<-}P&4QmP)=Ki7HsuwaHqW#PE0!u1!uV*V&t z%D+Li@nmVz3b1V-JBp=AI~_n#`G4e5ob)BjwImrWZ)cG#Gb#Ag#b*vsqEi$!o ze3~yVZ;6T>6Fg+41x|8ykvY-T3w63zs%ichPcb{ z2Zi8%$&!y~Ju3LcBf*JN*(CudFiZ=}AsC=ul3|?U61_<77F};3XGd{~&=zWyw_&lw zQ5t*J!_!q>mkt0=P!X&~mD+SCA2B(ls7$SzA20?KS}Q8HsE2tn=}zTsR}A>I#1rxa z;0^eF1bQqdTtIab@2Z1;!GH6hXt5u0n=KKXifWX(PU2>@EiTF2m{8)zXoxpBu|Jo2 zPo?$_L89`zV!`%y#KiPj~;Gq znzmJxAiEAjZ0Rls&W)?ORO+*cpjtmmX_S0dc`K&?5K|C|_c09qGjfZ{>8C)yI{aaQZ-X7)G=nFR6_vUXx(0 z(p(K&Z)r-=u5?9~z<+>kmJ%Ge0yjjG2qdmc1SB(BwQZV9x)0&r0f>;1q>Pxz;G-oNGiH!tLDIwpkjUht14(L=XBj{fcv@qtXXM> z)I@UxhkrULsfwnZh$m7N!D4MuVn4-~kP5Uv?W1T|?+F%1Mt^2>$64|1uB@-_iha8) z;+j+G2dSxg&8{}yj%HymkKRjaxaT;rBRaUK#Au7~JC!#HDNtN9d?Fh;@n(|L3-oIg z%=uP0Dke^hsKhxM^e`M!I*aZy&|SWQE1-FkzvVPDbw-^A^fxGE#YIJGJ(}_WZfvzW# zQ0@ILR}kjm-Vtu&)r``Q6T?24blMb&X$z*A4OOjLg2vu#en_L)G3EAM`Z~S z>`ZQ^W}5`4OZ|c>7_?0a0@l9FQVGAk+RtmY_7*Qn z*rO5=KY!l;N(-rxzK5VN zz>6eQcu6OH6SJwFqL28L_-tlC$2U2D!UlKi+kd!-;D7l{6XGZ}raCH;@NQI8TmN>0 z!d=aEtmWK2+2hq)a74 zQ$<>$9x;Vuc?8ed!%&)@=Yr>F2jlEtFsybk^z8vc;oN)7SqQB>B|qo^!uWphQk1FS0)S zBL3`)fcyzVIno1qp~!b?YEchj5A8=4dw_g5p0tgK>2+g;KrZ*GAZ=_|X)y*{EJ zA+GD80?8hZD_}7i$1br=s^+!|irR8-tDsT-Y+G*6P;I_X1MsN0tAf<`3hF1x@)7mx zj06q!BWA-QJ&f|7?r3fI5DCjjq%bMvt#w5KInKyq-Q5C(I4CyJ1%FEd=CA;0IDaQ& zKA+Z;0I`4VC+2rQv7Y_J$O7_dgJ+2G0`kh{Yyr7_X<^)+UcTJLxMGE^{lBH2^+VXM zqn?GSXtpm*b>2`(&4+C4L6Z!Bu0$~m-;Pos`^U)h{7p<`6sMYksuXKBa5}K#zt^{s56Qt>v!1XBea0LiqH?PiLID{OjI0YNUMyI)8e^q8(vS zN$p0K!gMjI5Jh?csN#=+NtVVCQXj*WSRm-=sO~1hh z7hXxFO-O{cdf@fCKQQmD8d?H@v70uwC?zrCLn2bJ6E72mOhixZ*wm4fs3)c;sm!3R ztAZq7cS86s)xkWxD0lc!=zlxjuC{g@n>}8KlrHw2kKCBkX> z^S%3Q6c8~)KUO)4Xy-Rk-a>Pism;vT5dA=+!;h(J=FPXvl2LtXl)hVAcQ5_h=GNEN zmf1gcw*KYD)`~iURc^b=_7|&+1uw?@Gz|Mi3-yqKs_=G;@G~1oVt<^*^ikyBs7M@pPe0{c`5fxnI2s#;W3}2z4+lskwG~h(|-sf-G1-1o7-xKvD+<)##<6? zl|)Q!ENum~<$QR7xPKF|_U{u2~_m^UOoOf&l1GLqCLa>Z}p(V`wKu4?n0YKRgm z{n~~~s%ihR4Fw+&684-P3HfZ`V#lEMR(lIG^|NJGxoh5D++W+df7i_o>TYN^Xc_y& z+tGFE6fE^XZ|xVqX>3y7)?k6Q`5c~h5IM2Ipg`zju7M97qkro!;@sEnwVkce>}k(C z^;%WIH5KgW%d@JfT|xEOx|-{64_2V2JroHa)IZ`!I9dTQkI-oNwNi{9HK3~O#Ig2p z6p^L~9w0#~LAz>lAlXEFZK`$chHC4d($I$LDBdxfd$dW0c*$4gPMc3y7=JWM4?i_g zb5#Mqt|n0)seg`nTRd-=@H-qmaul>ZClH`af!W>NSF$+RPkr^%Uv7o%)B65ue49UazEL~Av=(Aqa05%dWuf!_ zBQR7A+4nG$5$-$(zF{yQPk%o4QJ2^09PN)@p?bHR;(s5(#Qf-lL#vJOQd}I{+=f{p zQO*$+TX1j&-3dA7(f5;(LIn;isR8~d33v1^QUWFcL{Bm$FC8yc`n8dm4r^*73j>^^ zGxja)^TpSMj9F^4H98pQ_iOsBO=!JP*hR##Rb`Bv8?H5TsoHmwr*A*4f{;5m-@0---WOlYAK@e)n zG%1(}2YB)H0|s-g{bzVF|CimO*#FwwHa|DF|Eaf)<{jFkb=u97U`OLyrAk@A2w)k7 z2lL&OJ^Q@r>>)3ATki-6?IHbrhdqp`^R=g|=YRUAsr5mb7i3Dre&KB1p^sgvjsG$w z@et)+7^&wZgp;Zz?(JC|S;~??9iARx231P__C~AvnF@do&g&Famkc81&6%Uli@nFF zqCb7(vmafBUg{ekx%qC}pA>z`Mio6;hS+fi;a2AHgtlEkPr$`yuagap%G-U8L8=A* z(|; zEdGew+by_>#8bD)jV0xO+#TvVpoP%3QNi9xrHMFexmAD8k}VUfMGm7FR6^g4<+CLu zC?#gxdl2-VqLF%J^sjR_QB-`yTJ;@nhaQ*_}U=&3Cd~)_v*S)b6!Ha^nj@9wq~Z9T!+>CIj23ZjzN_lf@li&1f38_MLKaMC#&(an3#M*04i=9xOAM=kGgk3G~!2fabY>0*>Rr}}(At71<* zde0+Wi75<_;cY`}y`%m*rXl(Lpg6c-T>!VVG$V2Mx)q515`J3|Y5o^pfV;Nm1Ip2n zEL;#2d9Y_EG010qNS#tmYE+YT{E+YYWr9XB6000McNliru;{*#3Ck|iU z-d_L!0g_2XK~y-)&62%N!!Q(u{RWoliX7qWiIh9jz5pv557bJiU5muevmh8cxaA2b zO1!jEWSCrfKt`K+o-WDd%z7^i>I*M3d{uqk>-3hXX*eyyF=_eN)PqvPz^wdu|dbSKV3) zld$=fqFQ8WlMO{y)1^lcZV(R%!ZaryL7ZR(9znIkBgnoA`UDX=`Xqm-YOk- S^{G7o0000Kl)Vna zFbIT$0!s$&{ol6Wzgl3oODnZfZg2+3aai(q9Jl^fz?-_fZh(x2wUrsT7FOuL5veL> zt9f)S+W`)B68Cj?tvw+D%u&iAbqIxoUScqF`I<@Ez|G04q}EZ_h zg6s&>39=NKi=4z(j)3ZomjZ6)-{&6K=o=K_xJ6f=YcP=mp1~eCfbZk<$PG002ovPDHLk FV1oGta*6-| diff --git a/graphics/pokemon/tornadus/icon.png b/graphics/pokemon/tornadus/icon.png index a95eccdb309843c52a329a9cc99d8b737386ab3e..271e4c6b691a45a06dac96873b52aae1bc3037c5 100644 GIT binary patch delta 457 zcmV;)0XF`P1d;@h7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SkV!;AR7i>Kl*^KZ zAPht=k5md4o&W#a=>Q5>#oa8XYNEx$ZXkqsKA%4v_NGy^w0Bsd*oON&Uzrlcm{R<9 zSgjOI4V04WH$$mrq8cb8UUg3OKn{u+;lt`Mt5l6HR1rWm1DFnOU$o_Du?Ry0=sOM6 ztM()C^hu=FoFrp^S%B#s6-Y^nRgUWprJ^qYq>x%j&RB9p+rfnEx+Ss-SoDvn=U|!X z!7VXRmu#!StC&^kP$Wp;NmOkbN^>+rdzcsPR$%95GbN>p|4lKrd5ohwqMmY4<&5x`SI?8paFlP0*&h z!ERk^{1{tUy!P9%4d15Oefr{h`(^&)7QaE5-obmqG{n3SrvJlR!VJXh2s07$Oqhw7 zXTnUxYzQ+Evmwlhm@Q!jV)lgTh6F&xwuif-LW|Y-c~qpd%$GLSe+gso?b59N9ve?=%(a47=*#*{)VKjV#w8YsI}rjXcJ~P zV7}tK$9sEE04uJI{|biv-}MtgcGjLCR?U4uteSX&>Kl)(67238%EUwMSnPcJ;m{(6@l?07nBgtGm#nPkmT2 zUbPLoLIddHMI9Ieil`GRI5^}k& za#S#Z1TbXqr79v|#_TRWhMd!H!lUq8u*sZ2-gbY^qrcE^2S_|z1W4}xDnJmsv_-nnVm611M|F00000NkvXX Hu0mjf3aoL^ delta 241 zcmVJ~PM`uKwCCaULvMB{(f_kke+3|WeS8Ep& rhVem9U=of4b=g>_ypVD##{aDzTySRI6asRp00000NkvXXu0mjfp66&U diff --git a/graphics/pokemon/vanilluxe/icon.png b/graphics/pokemon/vanilluxe/icon.png index a7814563b43dcecc853e464c5a9bead356477096..c2f85c1e31a6b8efcc4f75844b2b09fc038c7abb 100644 GIT binary patch delta 305 zcmV-10nYyP0{a4x7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S`AI}UR7i>Klfe#z zFbG6VVNM+Q|G!;2t!_%SZanNsjMm62LSeS;wFl|6+=*+i@95D-ZQ-cR?%NO>{s<)>3>&$*Z;Nr8~JbfZ#VL< z6Tg&yoz=Dcnc)NZPcZt~5Jl$(a|pB-;NyzI zQhPOIDE3O05ETVG2{y1UQl#2^38Z=OhcWYs-b%bCV1lPJTVaVcv5y7? zO_TETbvJy$Ptcv+0iYF{Fji$M6U8ef`u^P&82yLCrkqc|$`Ie8oD&*4p-*B~SUH$Mo zuuI!6Zm)?vH&?cF65lNOGobmklnb3gR(69*u6+LFE{@h2ZsH795{&sElC_` wPUFD8#KA`p;}8Zr;t&Qq;ti_@%07*qoM6N<$f~+xzZU6uP diff --git a/graphics/pokemon/virizion/icon.png b/graphics/pokemon/virizion/icon.png index 4f7390e1f0bc7ba9cb8d5fbf9b3033ef1512f83c..68c0abd73026cb1b1fb2829aedf1d1ae3796f02e 100644 GIT binary patch delta 285 zcmV+&0pk9l1Lp#e7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0Od(UK~zYI?UYNB zgfI+4N&IQAtoz@#?S!i7nmDkfdL~;vgd>BF9lPVIEmjt3@XYZ*}P-^ffE*J=~oG?4EkID delta 344 zcmV-e0jK`w0-*zt7zqRe0001qplF?uErlCe(1Fc60G1}6{6ir@iQ z+!+vRG7=%BVQYnmPnqh0M`(pQ(PykgB&IYaY1FAl8j1L9Rw{1uZ~N}|@6YqjRphJz zD@Vv&LEqUzi)0^ZOL0LSnAS((V?s?j9NPtWD)l3Pz%oUZ3|Am{y7`#IrUl4@47Y!L z4$0ADzP8>HMXQRx2r%1vq$?))iX!8~t9u&{OnAX@iWm>VmsD6>`X-j+6;AKvHR+*g z86nBF84SxJuMRWjZ2$RIwVDfi-37_LcPp@Bw6=S}`G|k1UnW}DW*fUgKR6&x% zAPlR^4CcVd|Nm`enlxZ1>1Fp;pOQ!@#vnZ&zgo)7?(tgXD`VC$i;`BI@`0<@%rN1* zygzO5f{#CV8`K?-$ONSTM8rs|PKYh24O|4(RHFbHs@67wGZ1!d2DMJO3w2x~;G$Hf zLT~V1HLkA;MS-Ayaed_z;vQ90_`Pr(Kq=5=u7g1ZFF+hum35Hjx`Xi?H1b2AhFxl`)rF2yz+zCK;Bag1c3vEQ(Rd7kivemAZd zw#(h$&tLs_-5tPg+Dm-o%VGah#$x{zF@tc}KS#_6n8W^TIbw#jCi~YEF*N*a{~R$M z53~JK#2B#HpWa+?(O`d#8Hd&WCjk=dp93V?KL^Na{~RET{d0hL+JEdXdKw_I+n)_v r43O>0xc%ShaN+MS>2PTMX*#?BeCHWnrL$_l00000NkvXXu0mjfLxjBZ delta 389 zcmV;00eb$|1J47H7zqRe0001qplF?uEq&aC3L60Ro3+wfK6VM&%9?^;JLW$80%N1++q<^myE3$(`|!` zuE!(m*M*dgPa*YNw|adkWgafa&ni8CYTe-Vp}MBUS1)O32Qfqy9}xENhrJ9W_24j)R?J&tT&@@KbmO={fLIAf=7t zAfvI~bI>jBJWAxS!vqV)acCo$0y#u5EpoVlK@JfNcn%Rv0**tz07ET@sh9#7+oADd jd632PlLsCy?Kd7jcC*^pca&b100000NkvXXu0mjfqIR*~ diff --git a/graphics/pokemon/watchog/icon.png b/graphics/pokemon/watchog/icon.png index 9ea2f1330861e104e87b225c4fd50e2e9400ef5a..4051ebde8b71f9f4a58c1da358a2315cce32c7e5 100644 GIT binary patch delta 340 zcmV-a0jvJA1D*qr7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S97#k$R7i>Kl);X} zFbG7!mWar~^Z$RlKvHdONF!BMPo;+{nb8=7@`!%*MgcdvjF%P+7LjWUT()AjfRYdD z>KGnE=%X(VY`g0_5AlHBvjM|&HHQZ@`(ZI`yzS5<0R35b|S_szPrr=K;Wk#;sfi#3bCK zrq+6II5x`l$`Na3spJ1`c?s#HJHw6stFP2o`9T>W6F>ZULCDMx$_SbG5&D9VnIA+M zAu~UyK*+=ossQlJkLvrM_)!Kt_;EIw3G&2`D~O%^@W1ji3&z0@i>SYF8(#3k+T1HvsuKAN~Ma?-DTT2m%WL0000 delta 361 zcmV-v0ha!r1G58=7zqRe0001qplF?uE@D7kQbAsrBk1&6g*^T-2w&{pkZb z0_HF!@QGqVIz;3ezy~TUTGaj5kotMW{X($*(SuX*zB|BbwH`pZwYydyZ-)e+oWFmi z8kYVqeJ15hgBb5&WZE!j#*1>Yf&~d zVEwW?uR8+LkfhP09hcLY!8!)m5spDmVE0K|DVsB1o{# zplL#-K#)QT3<8Cio1p*xUa6`JgduYK(xh&>x{2zi%l-HTZ>O0s;z+3w00000NkvXX Hu0mjf@fN3J diff --git a/graphics/pokemon/woobat/icon.png b/graphics/pokemon/woobat/icon.png index 354353e885e38969667231ae5d07a79acb8d47d9..c3640d5ad0786927671a74c72b046f028f54ae73 100644 GIT binary patch delta 258 zcmV+d0sa2L0?h)D7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{S%Sl8*R7i>KR6!2I zAPg%z1&Hkb|8{{g#0Ye^X`1S)7i>ZZvXA4&FM|9)hf4tw27xa|7;L!_z8X;^NJ{17zqRe0001qplF?uEI443~ z#|ma)#6pX0r=*W(9*EdlqIl-EKs*td0N}VsY)Ck)1H&+mE0eATx~v<$%r?7kwbo*s z0XXk;odabLb@4u1zW1Mx!~EW@(;=&q4k_YwNFzW_hc^8!7_Woj@cm$%4jVEOK;?B1 wq6oYWb{>G@Nr!9Zv)2J~!JQ6JtpCkC0iaxiI5gyV1^@s607*qoM6N<$g24o9eElMpVFv#YH@)<*>qC`>F<_keTKgZ%eBBD9uRD>cc7=+KgvS(&oBcel zsUn9_dn&~gePyET-R2*OP9TVo&bq7;t+Eiry2P0vPof^RZU43fO_c)r`&14C^{c?1 zXu=rZ29{gYPs99wvc}P(sXrJ;(ld=I zpWT$IN-a>*$fHr9H400000NkvXXu0mjfjpoKw delta 399 zcmV;A0dW5M1K9(R7zqRe0001qplF?uEh?klIwKjNBa0HDWgw=>#TW25mD`X@BSIr5r}#WXc`K-GV= zuATo=<`{g7KzN`>wFw4BShEIgl@vUySgOI%IG9+S6&=o6t;VTd>77f^Ik`+xTa>U@ zK!IcU&{L3TgKa(f-jH_5@aOvHTV%W2kq!MO$WZ&k!M9%Y@0U>4-UP1hK2j_r^EKpH zz~su6iU_)rj+L8Hz=$r-D`WvP&~tkiS-{}TIDsk8ZFi|;;&E~aw}n*S-=?ghKrA` t%G)+D4lBE9XbBZ#}7&S7{cUkE>-{l002ovPDHLkV1iOYx4-}Z diff --git a/graphics/pokemon/zoroark/icon.png b/graphics/pokemon/zoroark/icon.png index 08d5206f3bf1c434dd0a06819cc6a94cd2487d5d..338a576a4a19c8d1a7be3bced263f4d324c7acce 100644 GIT binary patch delta 359 zcmV-t0hs>G1F-{;7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&{SFG)l}R7i>KluHi6 zFbqUvkg~9XegE6yaniLKm@HHM!l1H0m<*K-YGI-fNhG-@8MZ zU{MJUH}IYUVSciIL8}*$_6QDSu>V*kp}sQF))d3bmH<{HFhj+<3r3iZ{%CuIfx>w4 za7R~chIQ4@ZPSGDtdrDXZH(Nn9s5Yxc^*>LOGCMSasTln@d3c#gUR2f378Zy2f$>A zIRGX@Oax4dm@{CODks3KT?D{vh|!3k2^a@NAjkq3nglsUB4`6l2gD%ABOs_-Oy3Ol z)LMkpz=IdlsvVOu0Wb>!3`Ko{5?ne2g@hiV zN6ONnLvkiB892yyXxA3KK@l$85vQtO)35s%%!4Ha}zMh-rZ->aR%!yaI zlPU!ujcQL!L`*K+1W(S8yH#X5^o~L|EBUZRr(O70iCb*b*aW7tBEDhvr67+*fcAgY zvL_0_T#kYkZO%+O9CJ6_BL`z%h)-Yahf-lA8cgIapP7mvT@!melfVF}?9s1jF^)&V zG)rcmVr2;IFhI1GknEu2R3*iWWR@m2a##tlvibi6h%EEuj>}vhsk;1-3PIhx39P=N zuV?^6)R(uOD?IHsN>!3sct#ay#tv@oabxQyfDccW3sS>`RK&|;j$_*ise~v2`)@6| zA|=8Kj7}3iCZtqBR-u#k5h+!e6WaaI2-A4Ub8n^V3LoNK5u{bTWaQ)SI5jCtd;34G grtDWXu3Vhs2jjZ+NZw28Kl+6wU zAqa#u3#TT``@d}ge0fUbPMV6y@ZY7LP0Vo5)}d;yo`p#T zv51zlNbo|<*%(x{oT6iFRP`29TH1nc5TBqL1oohNs{`D0TPZ%y&;-P8C@WE7;*^hv zI>3^BzgcKL3=7nM7zX=3i6|QEp;!zX=f@uT|2CV?M3D+EP;7=oswa!2W25EQ@d vs{#a_5KId`bb!c`4+B6pe1LYs5BTr|uaFjZ1^bxY00000NkvXXu0mjfzbKzs delta 342 zcmV-c0jd6{1E2$t7zqRe0001qplF?uEb>!3`KPVf)@}^k-1Af z2SuZ`I%TGu#z1FFMC2)eSkks^C2N5nn9P;X*lU7ZOy zk(mw$B8r-NK`>!%Bg%F(I9gPLovR(u6rqQ?gDjYYLn~ooqjZtw#B*%+-I-A#ODUAYPI{ zb7=MLGeF$PSfYA1 zA-Nr?6mdaH8d5_<8ny1!5+7HdN47%Wy&(lsLi}JnkfL-8mC-jogsaG;NNoa~6qwop oV|>^JzT;y7CUtzkJ^qG|AK$;aS~SZP_5c6?07*qoM6N<$f?AuFT>t<8 From 48f90a715556d737948f92916862d14a94620aa8 Mon Sep 17 00:00:00 2001 From: psf <77138753+pkmnsnfrn@users.noreply.github.com> Date: Sat, 1 Apr 2023 14:12:50 -0700 Subject: [PATCH 11/25] Update explanation in include/config/battle.h Changed the comment in include/config/battle.h per PR comment: https://github.com/rh-hideout/pokeemerald-expansion/pull/2878#discussion_r1154322931 Co-authored-by: Eduardo Quezada D'Ottone --- include/config/battle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/config/battle.h b/include/config/battle.h index 66d4b92aa3..24f4ad4f15 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -183,7 +183,7 @@ // Other settings #define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. -#define B_DOUBLE_WILD_REQUIRE_2_MONS FALSE // If set to TRUE, when the player only has one Pokémon in the party, randomly generated wild battles will always be a Single battle, regardless of the number used in B_DOUBLE_WILD_CHANCE. +#define B_DOUBLE_WILD_REQUIRE_2_MONS FALSE // If set to TRUE, Wild Double Battles will default to Single Battles when the player only has 1 usuable Pokémon, ignoring B_DOUBLE_WILD_CHANCE and B_FLAG_FORCE_DOUBLE_WILD. #define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight. #define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses. #define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper) From f292fefca34db71fb44dd675ce1bb0fa8e0dc01c Mon Sep 17 00:00:00 2001 From: AgustinGDLV Date: Mon, 3 Apr 2023 09:18:47 -0700 Subject: [PATCH 12/25] fixed bad switchinabilities call in TerrainSeedLoop --- data/battle_scripts_1.s | 1 - 1 file changed, 1 deletion(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 200a044610..8a47217ff4 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8839,7 +8839,6 @@ BattleScript_TerrainSeedLoop_NextBattler: addbyte gBattlerTarget, 0x1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TerrainSeedLoopIter restoretarget - call BattleScript_ActivateSwitchInAbilities return BattleScript_ActivateSwitchInAbilities: From d9ab2d1976468d8d3f251bab267205a619c53924 Mon Sep 17 00:00:00 2001 From: AgustinGDLV Date: Mon, 3 Apr 2023 18:53:34 -0700 Subject: [PATCH 13/25] combined TerrainSeed and TerrainAbility loops + added terrain tests --- data/battle_scripts_1.s | 44 ++++--------- test/terrain_electric.c | 63 ++++++++++++++++++ test/terrain_grassy.c | 71 ++++++++++++++++++++- test/terrain_misty.c | 80 +++++++++++++++++++++++ test/terrain_psychic.c | 138 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 364 insertions(+), 32 deletions(-) create mode 100644 test/terrain_electric.c create mode 100644 test/terrain_misty.c create mode 100644 test/terrain_psychic.c diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8a47217ff4..ea7ef493c5 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2610,8 +2610,7 @@ BattleScript_EffectPsychicTerrain: printfromtable gTerrainStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_RESTORE_BG - call BattleScript_ActivateTerrainAbilities - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects goto BattleScript_MoveEnd BattleScript_EffectTopsyTurvy: @@ -6867,7 +6866,7 @@ BattleScript_OverworldTerrain:: printfromtable gTerrainStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects end3 BattleScript_SideStatusWoreOff:: @@ -7346,8 +7345,7 @@ BattleScript_SeedSowerActivates:: printstring STRINGID_TERRAINBECOMESGRASSY waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG - call BattleScript_ActivateTerrainAbilities - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects return BattleScript_AngerShellActivates:: @@ -8828,16 +8826,18 @@ BattleScript_SnowWarningActivates:: call BattleScript_WeatherFormChanges end3 -BattleScript_TerrainSeedLoop: +BattleScript_ActivateTerrainEffects: savetarget setbyte gBattlerTarget, 0 -BattleScript_TerrainSeedLoopIter: +BattleScript_ActivateTerrainSeed: copybyte sBATTLER, gBattlerTarget - doterrainseed BS_TARGET, BattleScript_TerrainSeedLoop_NextBattler + doterrainseed BS_TARGET, BattleScript_ActivateTerrainAbility removeitem BS_TARGET -BattleScript_TerrainSeedLoop_NextBattler: +BattleScript_ActivateTerrainAbility: + activateterrainchangeabilities BS_TARGET +BattleScript_ActivateTerrainEffects_Increment: addbyte gBattlerTarget, 0x1 - jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TerrainSeedLoopIter + jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_ActivateTerrainSeed restoretarget return @@ -8852,25 +8852,13 @@ BattleScript_ActivateSwitchInAbilities_Increment: copybyte gBattlerAttacker, sBATTLER return -BattleScript_ActivateTerrainAbilities: - copybyte sBATTLER, gBattlerAttacker - setbyte gBattlerAttacker, 0 -BattleScript_ActivateTerrainAbilities_Loop: - activateterrainchangeabilities BS_ATTACKER -BattleScript_ActivateTerrainAbilities_Increment: - addbyte gBattlerAttacker, 1 - jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_ActivateTerrainAbilities_Loop - copybyte gBattlerAttacker, sBATTLER - return - BattleScript_ElectricSurgeActivates:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_TERRAINBECOMESELECTRIC waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG - call BattleScript_ActivateTerrainAbilities - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects end3 BattleScript_MistySurgeActivates:: @@ -8879,8 +8867,7 @@ BattleScript_MistySurgeActivates:: printstring STRINGID_TERRAINBECOMESMISTY waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG - call BattleScript_ActivateTerrainAbilities - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects end3 BattleScript_GrassySurgeActivates:: @@ -8889,8 +8876,7 @@ BattleScript_GrassySurgeActivates:: printstring STRINGID_TERRAINBECOMESGRASSY waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG - call BattleScript_ActivateTerrainAbilities - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects end3 BattleScript_PsychicSurgeActivates:: @@ -8899,8 +8885,7 @@ BattleScript_PsychicSurgeActivates:: printstring STRINGID_TERRAINBECOMESPSYCHIC waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG - call BattleScript_ActivateTerrainAbilities - call BattleScript_TerrainSeedLoop + call BattleScript_ActivateTerrainEffects end3 BattleScript_HurtTarget_NoString: @@ -10183,7 +10168,6 @@ BattleScript_EffectHitSetRemoveTerrain: setterrain BattleScript_TryFaint playanimation BS_ATTACKER, B_ANIM_RESTORE_BG printfromtable gTerrainStringIds - call BattleScript_ActivateTerrainAbilities BattleScript_TryFaint: tryfaintmon BS_TARGET goto BattleScript_MoveEnd diff --git a/test/terrain_electric.c b/test/terrain_electric.c new file mode 100644 index 0000000000..b5608e661b --- /dev/null +++ b/test/terrain_electric.c @@ -0,0 +1,63 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Electric Terrain protects grounded battlers from falling asleep") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_CLAYDOL) { Ability(ABILITY_LEVITATE); } + } WHEN { + TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); MOVE(opponent, MOVE_SPORE); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Wobbuffet used ElctrcTrrain!"); + MESSAGE("Foe Claydol used Spore!"); + MESSAGE("Wobbuffet surrounds itself with electrified terrain!"); + MESSAGE("Wobbuffet used Spore!"); + MESSAGE("Foe Claydol fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Electric Terrain activates Electric Seed and Mimicry") +{ + GIVEN { + ASSUME(P_GEN_8_POKEMON == TRUE); + ASSUME(gItems[ITEM_ELECTRIC_SEED].holdEffect == HOLD_EFFECT_SEEDS); + ASSUME(gItems[ITEM_ELECTRIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_ELECTRIC_SEED); } + OPPONENT(SPECIES_STUNFISK_GALARIAN) { Ability(ABILITY_MIMICRY); } + } WHEN { + TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Using Electric Seed, the defense of Wobbuffet rose!"); + ABILITY_POPUP(opponent); + MESSAGE("Foe Stunfisk's type changed to Electr!"); + } FINALLY { + EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].type1, TYPE_ELECTRIC); + } +} + +SINGLE_BATTLE_TEST("Electric Terrain increases power of Electric-type moves by 30/50 percent", s16 damage) +{ + bool32 terrain; + PARAMETRIZE { terrain = FALSE; } + PARAMETRIZE { terrain = TRUE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (terrain) + TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); } + TURN { MOVE(player, MOVE_THUNDER_SHOCK); } + } SCENE { + MESSAGE("Wobbuffet used ThunderShock!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + if (B_TERRAIN_TYPE_BOOST >= GEN_8) + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.3), results[1].damage); + else + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/terrain_grassy.c b/test/terrain_grassy.c index 77f8a99271..cf83048750 100644 --- a/test/terrain_grassy.c +++ b/test/terrain_grassy.c @@ -15,5 +15,72 @@ SINGLE_BATTLE_TEST("Grassy Terrain recovers 1/16th HP at end of turn") } } -TO_DO_BATTLE_TEST("Grassy Terrain increases power of Grass-type moves by 30/50 percent") -TO_DO_BATTLE_TEST("Grassy Terrain decreases power of Earthquake, Magnitude and Bulldoze by 50 percent") +SINGLE_BATTLE_TEST("Grassy Terrain activates Grassy Seed and Mimicry") +{ + GIVEN { + ASSUME(P_GEN_8_POKEMON == TRUE); + ASSUME(gItems[ITEM_GRASSY_SEED].holdEffect == HOLD_EFFECT_SEEDS); + ASSUME(gItems[ITEM_GRASSY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_GRASSY_TERRAIN); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_GRASSY_SEED); } + OPPONENT(SPECIES_STUNFISK_GALARIAN) { Ability(ABILITY_MIMICRY); } + } WHEN { + TURN { MOVE(player, MOVE_GRASSY_TERRAIN); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Using Grassy Seed, the defense of Wobbuffet rose!"); + ABILITY_POPUP(opponent); + MESSAGE("Foe Stunfisk's type changed to Grass!"); + } FINALLY { + EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].type1, TYPE_GRASS); + } +} + +SINGLE_BATTLE_TEST("Grassy Terrain increases power of Grass-type moves by 30/50 percent", s16 damage) +{ + bool32 terrain; + PARAMETRIZE { terrain = FALSE; } + PARAMETRIZE { terrain = TRUE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (terrain) + TURN { MOVE(player, MOVE_GRASSY_TERRAIN); } + TURN { MOVE(player, MOVE_ABSORB); } + } SCENE { + MESSAGE("Wobbuffet used Absorb!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + if (B_TERRAIN_TYPE_BOOST >= GEN_8) + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.3), results[1].damage); + else + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +// Magnitude is not tested because its damage is variable. +SINGLE_BATTLE_TEST("Grassy Terrain decreases power of Earthquake and Bulldoze by 50 percent", s16 damage) +{ + bool32 terrain; + u16 move; + PARAMETRIZE { terrain = FALSE; move = MOVE_EARTHQUAKE; } // 0 + PARAMETRIZE { terrain = TRUE; move = MOVE_EARTHQUAKE; } // 1 + PARAMETRIZE { terrain = FALSE; move = MOVE_BULLDOZE; } // 2 + PARAMETRIZE { terrain = TRUE; move = MOVE_BULLDOZE; } // 3 + GIVEN { + ASSUME(gBattleMoves[MOVE_EARTHQUAKE].effect == EFFECT_EARTHQUAKE); + ASSUME(gBattleMoves[MOVE_BULLDOZE].effect == EFFECT_BULLDOZE); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (terrain) + TURN { MOVE(player, MOVE_GRASSY_TERRAIN); } + TURN { MOVE(player, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, player); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.5), results[1].damage); + EXPECT_MUL_EQ(results[2].damage, Q_4_12(0.5), results[3].damage); + } +} diff --git a/test/terrain_misty.c b/test/terrain_misty.c new file mode 100644 index 0000000000..dda5253f23 --- /dev/null +++ b/test/terrain_misty.c @@ -0,0 +1,80 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Misty Terrain protects grounded battlers from non-volatile status conditions") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_CLAYDOL) { Ability(ABILITY_LEVITATE); } + } WHEN { + TURN { MOVE(player, MOVE_MISTY_TERRAIN); MOVE(opponent, MOVE_TOXIC); } + TURN { MOVE(player, MOVE_TOXIC); } + } SCENE { + MESSAGE("Wobbuffet used MistyTerrain!"); + MESSAGE("Foe Claydol used Toxic!"); + MESSAGE("Wobbuffet surrounds itself with a protective mist!"); + NOT { STATUS_ICON(opponent, badPoison: TRUE); } + MESSAGE("Wobbuffet used Toxic!"); + STATUS_ICON(opponent, badPoison: TRUE); + } +} + +SINGLE_BATTLE_TEST("Misty Terrain activates Misty Seed and Mimicry") +{ + GIVEN { + ASSUME(P_GEN_8_POKEMON == TRUE); + ASSUME(gItems[ITEM_MISTY_SEED].holdEffect == HOLD_EFFECT_SEEDS); + ASSUME(gItems[ITEM_MISTY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_MISTY_TERRAIN); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_MISTY_SEED); } + OPPONENT(SPECIES_STUNFISK_GALARIAN) { Ability(ABILITY_MIMICRY); } + } WHEN { + TURN { MOVE(player, MOVE_MISTY_TERRAIN); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Using Misty Seed, the sp. defense of Wobbuffet rose!"); + ABILITY_POPUP(opponent); + MESSAGE("Foe Stunfisk's type changed to Fairy!"); + } FINALLY { + EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].type1, TYPE_FAIRY); + } +} + +SINGLE_BATTLE_TEST("Misty Terrain does not increase the power of Fairy-type moves", s16 damage) +{ + bool32 terrain; + PARAMETRIZE { terrain = FALSE; } + PARAMETRIZE { terrain = TRUE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (terrain) + TURN { MOVE(player, MOVE_MISTY_TERRAIN); } + TURN { MOVE(player, MOVE_MOONBLAST); } + } SCENE { + MESSAGE("Wobbuffet used Moonblast!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_EQ(results[0].damage, results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Misty Terrain decreases power of Dragon-type moves by 50 percent", s16 damage) +{ + bool32 terrain; + PARAMETRIZE { terrain = FALSE; } + PARAMETRIZE { terrain = TRUE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (terrain) + TURN { MOVE(player, MOVE_MISTY_TERRAIN); } + TURN { MOVE(player, MOVE_DRAGON_CLAW); } + } SCENE { + MESSAGE("Wobbuffet used Dragon Claw!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.5), results[1].damage); + } +} diff --git a/test/terrain_psychic.c b/test/terrain_psychic.c new file mode 100644 index 0000000000..eb5103f314 --- /dev/null +++ b/test/terrain_psychic.c @@ -0,0 +1,138 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Psychic Terrain protects grounded battlers from priority moves") +{ + GIVEN { + PLAYER(SPECIES_CLAYDOL) { Ability(ABILITY_LEVITATE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(player, MOVE_QUICK_ATTACK); MOVE(opponent, MOVE_QUICK_ATTACK); } + } SCENE { + MESSAGE("Claydol used PsychcTrrain!"); + MESSAGE("Claydol cannot use Quick Attack!"); + NOT { HP_BAR(opponent); } + MESSAGE("Foe Wobbuffet used Quick Attack!"); + HP_BAR(player); + } +} + +SINGLE_BATTLE_TEST("Psychic Terrain activates Psychic Seed and Mimicry") +{ + GIVEN { + ASSUME(P_GEN_8_POKEMON == TRUE); + ASSUME(gItems[ITEM_PSYCHIC_SEED].holdEffect == HOLD_EFFECT_SEEDS); + ASSUME(gItems[ITEM_PSYCHIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_PSYCHIC_SEED); } + OPPONENT(SPECIES_STUNFISK_GALARIAN) { Ability(ABILITY_MIMICRY); } + } WHEN { + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Using Psychic Seed, the sp. defense of Wobbuffet rose!"); + ABILITY_POPUP(opponent); + MESSAGE("Foe Stunfisk's type changed to Psychc!"); + } FINALLY { + EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].type1, TYPE_PSYCHIC); + } +} + +SINGLE_BATTLE_TEST("Psychic Terrain increases power of Psychic-type moves by 30/50 percent", s16 damage) +{ + bool32 terrain; + PARAMETRIZE { terrain = FALSE; } + PARAMETRIZE { terrain = TRUE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (terrain) + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(player, MOVE_CONFUSION); } + } SCENE { + MESSAGE("Wobbuffet used Confusion!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + if (B_TERRAIN_TYPE_BOOST >= GEN_8) + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.3), results[1].damage); + else + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target the user", s16 damage) +{ + GIVEN { + PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(player, MOVE_RECOVER); } + } SCENE { + MESSAGE("Sableye used PsychcTrrain!"); + MESSAGE("Sableye used Recover!"); + HP_BAR(player); + } +} + +SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target all battlers", s16 damage) +{ + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(player, MOVE_HAZE); } + } SCENE { + MESSAGE("Sableye used PsychcTrrain!"); + MESSAGE("Sableye used Haze!"); + } +} + +SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target all opponents", s16 damage) +{ + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(player, MOVE_SPIKES); } + } SCENE { + MESSAGE("Sableye used PsychcTrrain!"); + MESSAGE("Sableye used Spikes!"); + } +} + +DOUBLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target allies", s16 damage) +{ + GIVEN { + PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(playerLeft, MOVE_HEAL_PULSE, target: playerRight); } + } SCENE { + MESSAGE("Sableye used PsychcTrrain!"); + MESSAGE("Sableye used Heal Pulse!"); + } +} + +SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority field moves", s16 damage) +{ + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PSYCHIC_TERRAIN); } + TURN { MOVE(player, MOVE_SUNNY_DAY); } + } SCENE { + MESSAGE("Sableye used PsychcTrrain!"); + MESSAGE("Sableye used Sunny Day!"); + } +} From 35952cf7ad81390e90d550b705f128ca24d9d76d Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Wed, 5 Apr 2023 13:07:02 +0100 Subject: [PATCH 14/25] Clamp RandomPercentage to 0...100 --- include/random.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/include/random.h b/include/random.h index fd340c26db..e7c2a3e284 100644 --- a/include/random.h +++ b/include/random.h @@ -80,8 +80,21 @@ enum RandomTag #define RandomPercentage(tag, t) \ ({ \ - const u8 weights[] = { 100 - t, t }; \ - RandomWeightedArray(tag, 100, ARRAY_COUNT(weights), weights); \ + u32 r; \ + if (t <= 0) \ + { \ + r = FALSE; \ + } \ + else if (t >= 100) \ + { \ + r = TRUE; \ + } \ + else \ + { \ + const u8 weights[] = { 100 - t, t }; \ + r = RandomWeightedArray(tag, 100, ARRAY_COUNT(weights), weights); \ + } \ + r; \ }) #define RandomElement(tag, array) \ From dfee8a4759c65bc222abf77c2371ccda0815d638 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Thu, 6 Apr 2023 00:26:52 +0200 Subject: [PATCH 15/25] OW Poison configs --- include/config/overworld.h | 3 +++ include/strings.h | 1 + src/field_control_avatar.c | 2 ++ src/field_poison.c | 14 ++++++++++++++ src/strings.c | 1 + 5 files changed, 21 insertions(+) diff --git a/include/config/overworld.h b/include/config/overworld.h index 7831858d27..f62588b5fd 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -4,6 +4,9 @@ // Movement config #define OW_RUNNING_INDOORS GEN_LATEST // In Gen4+, players are allowed to run indoors. +// Other settings +#define OW_POISON_DAMAGE GEN_LATEST // In Gen4, Pokémon no longer faint from Poison in the overworld. In Gen5+, they no longer take damage at all. + // Overworld flags // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. // Eg: Replace with FLAG_UNUSED_0x264 so you can use that flag to toggle the feature. diff --git a/include/strings.h b/include/strings.h index 959bb8c22d..984247b218 100644 --- a/include/strings.h +++ b/include/strings.h @@ -180,6 +180,7 @@ extern const u8 gText_Confirm3[]; extern const u8 gText_Cancel4[]; extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_PkmnFainted_FldPsn[]; +extern const u8 gText_PkmnSurvived_FldPsn[]; extern const u8 gText_Coins[]; extern const u8 gText_Silver[]; extern const u8 gText_Gold[]; diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 96e9173c9b..b784a2ab86 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -565,11 +565,13 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { + #if OW_POISON_DAMAGE < GEN_5 if (UpdatePoisonStepCounter() == TRUE) { ScriptContext_SetupScript(EventScript_FieldPoison); return TRUE; } + #endif if (ShouldEggHatch()) { IncrementGameStat(GAME_STAT_HATCHED_EGGS); diff --git a/src/field_poison.c b/src/field_poison.c index f254a6d142..89463a1e3f 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -44,7 +44,9 @@ static void FaintFromFieldPoison(u8 partyIdx) struct Pokemon *pokemon = &gPlayerParty[partyIdx]; u32 status = STATUS1_NONE; +#if OW_POISON_DAMAGE < GEN_4 AdjustFriendship(pokemon, FRIENDSHIP_EVENT_FAINT_FIELD_PSN); +#endif SetMonData(pokemon, MON_DATA_STATUS, &status); GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); StringGet_Nickname(gStringVar1); @@ -53,7 +55,11 @@ static void FaintFromFieldPoison(u8 partyIdx) static bool32 MonFaintedFromPoison(u8 partyIdx) { struct Pokemon *pokemon = &gPlayerParty[partyIdx]; +#if OW_POISON_DAMAGE < GEN_4 if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 0 && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) +#else + if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 1 && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) +#endif return TRUE; return FALSE; @@ -73,7 +79,11 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) if (MonFaintedFromPoison(tPartyIdx)) { FaintFromFieldPoison(tPartyIdx); + #if OW_POISON_DAMAGE < GEN_4 ShowFieldMessage(gText_PkmnFainted_FldPsn); + #else + ShowFieldMessage(gText_PkmnSurvived_FldPsn); + #endif tState++; return; } @@ -127,7 +137,11 @@ s32 DoPoisonFieldEffect(void) { // Apply poison damage hp = GetMonData(pokemon, MON_DATA_HP); + #if OW_POISON_DAMAGE < GEN_4 if (hp == 0 || --hp == 0) + #else + if (hp == 1 || --hp == 1) + #endif numFainted++; SetMonData(pokemon, MON_DATA_HP, &hp); diff --git a/src/strings.c b/src/strings.c index 8815212e05..d297c45352 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1192,6 +1192,7 @@ const u8 gText_IcePunch48BP[] = _("ICE PUNCH{CLEAR_TO 0x4E}48BP"); const u8 gText_ThunderPunch48BP[] = _("THUNDERPUNCH{CLEAR_TO 0x4E}48BP"); const u8 gText_FirePunch48BP[] = _("FIRE PUNCH{CLEAR_TO 0x4E}48BP"); const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} fainted…\p\n"); +const u8 gText_PkmnSurvived_FldPsn[] = _("{STR_VAR_1} survived the poisoning.\nThe poison faded away!\p"); const u8 gText_Marco[] = _("MARCO"); const u8 gText_TrainerCardName[] = _("NAME: "); const u8 gText_TrainerCardIDNo[] = _("IDNo."); From 50b5dba6559c6804c5cb3e760243058c6a6321ad Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Thu, 6 Apr 2023 10:13:32 +0200 Subject: [PATCH 16/25] Fix string issue as requested by Jaizu --- include/strings.h | 1 - src/field_poison.c | 4 ---- src/strings.c | 5 ++++- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/strings.h b/include/strings.h index 984247b218..959bb8c22d 100644 --- a/include/strings.h +++ b/include/strings.h @@ -180,7 +180,6 @@ extern const u8 gText_Confirm3[]; extern const u8 gText_Cancel4[]; extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_PkmnFainted_FldPsn[]; -extern const u8 gText_PkmnSurvived_FldPsn[]; extern const u8 gText_Coins[]; extern const u8 gText_Silver[]; extern const u8 gText_Gold[]; diff --git a/src/field_poison.c b/src/field_poison.c index 89463a1e3f..da162e4134 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -79,11 +79,7 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) if (MonFaintedFromPoison(tPartyIdx)) { FaintFromFieldPoison(tPartyIdx); - #if OW_POISON_DAMAGE < GEN_4 ShowFieldMessage(gText_PkmnFainted_FldPsn); - #else - ShowFieldMessage(gText_PkmnSurvived_FldPsn); - #endif tState++; return; } diff --git a/src/strings.c b/src/strings.c index d297c45352..847b2849a6 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1191,8 +1191,11 @@ const u8 gText_PsychUp48BP[] = _("PSYCH UP{CLEAR_TO 0x4E}48BP"); const u8 gText_IcePunch48BP[] = _("ICE PUNCH{CLEAR_TO 0x4E}48BP"); const u8 gText_ThunderPunch48BP[] = _("THUNDERPUNCH{CLEAR_TO 0x4E}48BP"); const u8 gText_FirePunch48BP[] = _("FIRE PUNCH{CLEAR_TO 0x4E}48BP"); +#if OW_POISON_DAMAGE < GEN_4 const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} fainted…\p\n"); -const u8 gText_PkmnSurvived_FldPsn[] = _("{STR_VAR_1} survived the poisoning.\nThe poison faded away!\p"); +#else +const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} survived the poisoning.\nThe poison faded away!\p"); +#endif const u8 gText_Marco[] = _("MARCO"); const u8 gText_TrainerCardName[] = _("NAME: "); const u8 gText_TrainerCardIDNo[] = _("IDNo."); From bd4736cc97dba7dd5409d49175ca8a89750c51e2 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 5 Apr 2023 21:50:26 +0200 Subject: [PATCH 17/25] initial commit test multi battle final remove empty line --- include/battle_main.h | 2 ++ src/battle_main.c | 6 ++---- src/battle_tower.c | 45 +++++++++++++++++++++++++++--------------- test/trainer_control.c | 2 +- 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/include/battle_main.h b/include/battle_main.h index 8d1aad454e..4f20e4c17a 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -70,6 +70,8 @@ void SpecialStatusesClear(void); void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk); bool32 IsWildMonSmart(void); u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer *trainer, bool32 firstTrainer, u32 battleTypeFlags); +void ModifyPersonalityForNature(u32 *personality, u32 newNature); +u32 GeneratePersonalityForGender(u32 gender, u32 species); extern struct MultiPartnerMenuPokemon gMultiPartnerParty[MULTI_PARTY_SIZE]; diff --git a/src/battle_main.c b/src/battle_main.c index efbf1b8195..fb2f3cb4cf 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -120,8 +120,6 @@ static void SpriteCB_UnusedBattleInit_Main(struct Sprite *sprite); static void TrySpecialEvolution(void); static u32 Crc32B (const u8 *data, u32 size); static u32 GeneratePartyHash(const struct Trainer *trainer, u32 i); -static void ModifyPersonalityForNature(u32 *personality, u32 newNature); -static u32 GeneratePersonalityForGender(u32 gender, u32 species); EWRAM_DATA u16 gBattle_BG0_X = 0; EWRAM_DATA u16 gBattle_BG0_Y = 0; @@ -1925,7 +1923,7 @@ static u32 GeneratePartyHash(const struct Trainer *trainer, u32 i) return Crc32B(buffer, n); } -static void ModifyPersonalityForNature(u32 *personality, u32 newNature) +void ModifyPersonalityForNature(u32 *personality, u32 newNature) { u32 nature = GetNatureFromPersonality(*personality); s32 diff = abs(nature - newNature); @@ -1938,7 +1936,7 @@ static void ModifyPersonalityForNature(u32 *personality, u32 newNature) *personality -= (diff * sign); } -static u32 GeneratePersonalityForGender(u32 gender, u32 species) +u32 GeneratePersonalityForGender(u32 gender, u32 species) { const struct SpeciesInfo *speciesInfo = &gSpeciesInfo[species]; if (gender == MON_MALE) diff --git a/src/battle_tower.c b/src/battle_tower.c index a4758b9304..4e16467f04 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -3103,25 +3103,38 @@ static void FillPartnerParty(u16 trainerId) case F_TRAINER_PARTY_EVERYTHING_CUSTOMIZED: { const struct TrainerMonCustomized *partyData = gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].party.EverythingCustomized; + u32 otIdType = OT_ID_RANDOM_NO_SHINY; - CreateMon(&gPlayerParty[i], partyData[i].species, partyData[i].lvl, 0, TRUE, j, TRUE, otID); - SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); + if (partyData[i].gender == TRAINER_MON_MALE) + j = (j & 0xFFFFFF00) | GeneratePersonalityForGender(MON_MALE, partyData[i].species); + else if (partyData[i].gender == TRAINER_MON_FEMALE) + j = (j & 0xFFFFFF00) | GeneratePersonalityForGender(MON_FEMALE, partyData[i].species); + if (partyData[i].nature != 0) + ModifyPersonalityForNature(&j, partyData[i].nature - 1); + if (partyData[i].isShiny) + { + otIdType = OT_ID_PRESET; + otID = HIHALF(j) ^ LOHALF(j); + } + + CreateMon(&gPlayerParty[i + 3], partyData[i].species, partyData[i].lvl, 0, TRUE, j, otIdType, otID); + SetMonData(&gPlayerParty[i + 3], MON_DATA_HELD_ITEM, &partyData[i].heldItem); // TODO: Figure out a default strategy when moves are not set, to generate a good moveset for (j = 0; j < MAX_MON_MOVES; ++j) { - SetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); - SetMonData(&gPlayerParty[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); + SetMonData(&gPlayerParty[i+3], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); + SetMonData(&gPlayerParty[i+3], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); } - SetMonData(&gPlayerParty[i], MON_DATA_IVS, &(partyData[i].iv)); + SetMonData(&gPlayerParty[i+3], MON_DATA_IVS, &(partyData[i].iv)); if (partyData[i].ev != NULL) { - SetMonData(&gPlayerParty[i], MON_DATA_HP_EV, &(partyData[i].ev[0])); - SetMonData(&gPlayerParty[i], MON_DATA_ATK_EV, &(partyData[i].ev[1])); - SetMonData(&gPlayerParty[i], MON_DATA_DEF_EV, &(partyData[i].ev[2])); - SetMonData(&gPlayerParty[i], MON_DATA_SPATK_EV, &(partyData[i].ev[3])); - SetMonData(&gPlayerParty[i], MON_DATA_SPDEF_EV, &(partyData[i].ev[4])); - SetMonData(&gPlayerParty[i], MON_DATA_SPEED_EV, &(partyData[i].ev[5])); + SetMonData(&gPlayerParty[i+3], MON_DATA_HP_EV, &(partyData[i].ev[0])); + SetMonData(&gPlayerParty[i+3], MON_DATA_ATK_EV, &(partyData[i].ev[1])); + SetMonData(&gPlayerParty[i+3], MON_DATA_DEF_EV, &(partyData[i].ev[2])); + SetMonData(&gPlayerParty[i+3], MON_DATA_SPATK_EV, &(partyData[i].ev[3])); + SetMonData(&gPlayerParty[i+3], MON_DATA_SPDEF_EV, &(partyData[i].ev[4])); + SetMonData(&gPlayerParty[i+3], MON_DATA_SPEED_EV, &(partyData[i].ev[5])); } if (partyData[i].ability != ABILITY_NONE) { @@ -3133,19 +3146,19 @@ static void FillPartnerParty(u16 trainerId) break; } if (j < maxAbilities) - SetMonData(&gPlayerParty[i], MON_DATA_ABILITY_NUM, &j); + SetMonData(&gPlayerParty[i+3], MON_DATA_ABILITY_NUM, &j); } - SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &(partyData[i].friendship)); + SetMonData(&gPlayerParty[i+3], MON_DATA_FRIENDSHIP, &(partyData[i].friendship)); if (partyData[i].ball != ITEM_NONE) { ball = partyData[i].ball; - SetMonData(&gPlayerParty[i], MON_DATA_POKEBALL, &ball); + SetMonData(&gPlayerParty[i+3], MON_DATA_POKEBALL, &ball); } if (partyData[i].nickname != NULL) { - SetMonData(&gPlayerParty[i], MON_DATA_NICKNAME, partyData[i].nickname); + SetMonData(&gPlayerParty[i+3], MON_DATA_NICKNAME, partyData[i].nickname); } - CalculateMonStats(&gPlayerParty[i]); + CalculateMonStats(&gPlayerParty[i+3]); } } diff --git a/test/trainer_control.c b/test/trainer_control.c index 3079422076..2a21dcdf61 100644 --- a/test/trainer_control.c +++ b/test/trainer_control.c @@ -81,7 +81,7 @@ TEST("CreateNPCTrainerPartyForTrainer generates customized Pokémon") EXPECT(GetMonData(&testParty[0], MON_DATA_HELD_ITEM, 0) == ITEM_ASSAULT_VEST); EXPECT(GetMonData(&testParty[1], MON_DATA_HELD_ITEM, 0) == ITEM_NONE); - + EXPECT(GetMonData(&testParty[0], MON_DATA_HP_IV, 0) == 25); EXPECT(GetMonData(&testParty[0], MON_DATA_ATK_IV, 0) == 26); EXPECT(GetMonData(&testParty[0], MON_DATA_DEF_IV, 0) == 27); From 4709d2b46fdc70eb1e02ba83abf5e6712e3bfebd Mon Sep 17 00:00:00 2001 From: Jaizu Date: Fri, 7 Apr 2023 10:53:44 +0200 Subject: [PATCH 18/25] Fix trainers having empty movesets --- src/battle_main.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index efbf1b8195..4bd0ce9078 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -122,6 +122,7 @@ static u32 Crc32B (const u8 *data, u32 size); static u32 GeneratePartyHash(const struct Trainer *trainer, u32 i); static void ModifyPersonalityForNature(u32 *personality, u32 newNature); static u32 GeneratePersonalityForGender(u32 gender, u32 species); +static void CustomTrainerPartyAssignMoves(struct Pokemon *mon, const struct TrainerMonCustomized *partyEntry); EWRAM_DATA u16 gBattle_BG0_X = 0; EWRAM_DATA u16 gBattle_BG0_Y = 0; @@ -1947,6 +1948,29 @@ static u32 GeneratePersonalityForGender(u32 gender, u32 species) return speciesInfo->genderRatio / 2; } +static void CustomTrainerPartyAssignMoves(struct Pokemon *mon, const struct TrainerMonCustomized *partyEntry) +{ + bool32 noMoveSet = TRUE; + u32 j; + + for (j = 0; j < MAX_MON_MOVES; ++j) + { + if (partyEntry->moves[j] != MOVE_NONE) + noMoveSet = FALSE; + } + if (noMoveSet) + { + // TODO: Figure out a default strategy when moves are not set, to generate a good moveset + return; + } + + for (j = 0; j < MAX_MON_MOVES; ++j) + { + SetMonData(mon, MON_DATA_MOVE1 + j, &partyEntry->moves[j]); + SetMonData(mon, MON_DATA_PP1 + j, &gBattleMoves[partyEntry->moves[j]].pp); + } +} + u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer *trainer, bool32 firstTrainer, u32 battleTypeFlags) { u32 personalityValue; @@ -2049,12 +2073,7 @@ u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer CreateMon(&party[i], partyData[i].species, partyData[i].lvl, 0, TRUE, personalityValue, otIdType, fixedOtId); SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); - // TODO: Figure out a default strategy when moves are not set, to generate a good moveset - for (j = 0; j < MAX_MON_MOVES; ++j) - { - SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); - SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); - } + CustomTrainerPartyAssignMoves(&party[i], &partyData[i]); SetMonData(&party[i], MON_DATA_IVS, &(partyData[i].iv)); if (partyData[i].ev != NULL) { From e1beb55a51406ab9f9932b82dbc5b668b3aa9287 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Fri, 7 Apr 2023 11:07:52 +0200 Subject: [PATCH 19/25] Fix overworld poison not working on newer generations config --- src/field_control_avatar.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index b784a2ab86..96e9173c9b 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -565,13 +565,11 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { - #if OW_POISON_DAMAGE < GEN_5 if (UpdatePoisonStepCounter() == TRUE) { ScriptContext_SetupScript(EventScript_FieldPoison); return TRUE; } - #endif if (ShouldEggHatch()) { IncrementGameStat(GAME_STAT_HATCHED_EGGS); From d57d8e6e71ddfee8fea737db5b2c30c540fd196e Mon Sep 17 00:00:00 2001 From: Philipp AUER Date: Fri, 7 Apr 2023 11:35:30 +0200 Subject: [PATCH 20/25] Revert "Fix overworld poison not working on newer generations config" This reverts commit e1beb55a51406ab9f9932b82dbc5b668b3aa9287. --- src/field_control_avatar.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 96e9173c9b..b784a2ab86 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -565,11 +565,13 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { + #if OW_POISON_DAMAGE < GEN_5 if (UpdatePoisonStepCounter() == TRUE) { ScriptContext_SetupScript(EventScript_FieldPoison); return TRUE; } + #endif if (ShouldEggHatch()) { IncrementGameStat(GAME_STAT_HATCHED_EGGS); From 903b56756d8ed1b860917e61e05528796e56cb01 Mon Sep 17 00:00:00 2001 From: sbird Date: Sat, 8 Apr 2023 02:21:19 +0200 Subject: [PATCH 21/25] fix an oversight that caused battles to continuesly be double battles --- src/battle_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/battle_main.c b/src/battle_main.c index efbf1b8195..9d4c9dc9cb 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2111,7 +2111,13 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir return 0; retVal = CreateNPCTrainerPartyFromTrainer(party, &gTrainers[trainerNum], firstTrainer, gBattleTypeFlags); - gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle; + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_TRAINER_HILL))) + { + gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle; + } + return retVal; } void VBlankCB_Battle(void) From 02af4d0943ccd5f982808727deff6999bc3216e9 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Sat, 8 Apr 2023 18:53:04 +0200 Subject: [PATCH 22/25] Fixes Ominous Wind targeting --- src/data/battle_moves.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 64ce246862..3dc21a5382 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -7884,7 +7884,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .accuracy = 100, .pp = 5, .secondaryEffectChance = 10, - .target = MOVE_TARGET_BOTH, + .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, From bd54c70020f732fd047018019867212c7c013141 Mon Sep 17 00:00:00 2001 From: aaghaht Date: Mon, 10 Apr 2023 10:47:31 +0530 Subject: [PATCH 23/25] Add PLA evo items --- .../items/icon_palettes/black_augurite.pal | 19 +++++++++ graphics/items/icon_palettes/linking_cord.pal | 19 +++++++++ graphics/items/icon_palettes/peat_block.pal | 19 +++++++++ graphics/items/icons/black_augurite.png | Bin 0 -> 385 bytes graphics/items/icons/linking_cord.png | Bin 0 -> 380 bytes graphics/items/icons/peat_block.png | Bin 0 -> 403 bytes include/constants/items.h | 6 ++- include/constants/pokemon.h | 1 + include/graphics.h | 6 +++ src/data/graphics/items.h | 9 ++++ src/data/item_icon_table.h | 3 ++ src/data/items.h | 36 ++++++++++++++++ src/data/pokemon/evolution.h | 40 ++++++++++++------ src/data/pokemon/item_effects.h | 3 ++ src/data/text/item_descriptions.h | 15 +++++++ src/pokemon.c | 5 +++ 16 files changed, 167 insertions(+), 14 deletions(-) create mode 100644 graphics/items/icon_palettes/black_augurite.pal create mode 100644 graphics/items/icon_palettes/linking_cord.pal create mode 100644 graphics/items/icon_palettes/peat_block.pal create mode 100644 graphics/items/icons/black_augurite.png create mode 100644 graphics/items/icons/linking_cord.png create mode 100644 graphics/items/icons/peat_block.png diff --git a/graphics/items/icon_palettes/black_augurite.pal b/graphics/items/icon_palettes/black_augurite.pal new file mode 100644 index 0000000000..0d67abee39 --- /dev/null +++ b/graphics/items/icon_palettes/black_augurite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +120 192 168 +0 0 0 +111 108 124 +58 48 49 +206 206 214 +151 149 160 +142 93 117 +89 62 76 +255 255 255 +111 109 124 +194 192 202 +88 62 76 +80 74 88 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/linking_cord.pal b/graphics/items/icon_palettes/linking_cord.pal new file mode 100644 index 0000000000..8be2b522f7 --- /dev/null +++ b/graphics/items/icon_palettes/linking_cord.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +128 192 168 +87 87 88 +155 158 156 +117 114 116 +0 0 0 +36 37 42 +62 66 68 +56 57 61 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/peat_block.pal b/graphics/items/icon_palettes/peat_block.pal new file mode 100644 index 0000000000..8d4b5e3b6f --- /dev/null +++ b/graphics/items/icon_palettes/peat_block.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +128 198 168 +32 32 32 +230 217 213 +199 189 184 +156 135 143 +102 83 83 +143 118 130 +65 56 56 +179 162 151 +117 100 100 +210 183 192 +180 158 167 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icons/black_augurite.png b/graphics/items/icons/black_augurite.png new file mode 100644 index 0000000000000000000000000000000000000000..8be2bc188c9b3d35e52d8fe0f09e3c6dcd62f9c5 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w_7YEDSN7*jl0s${dOxN}0fod% zTq88foYA|NsB|+?qoNPDR-H z1b9UN)j+_MpjF3#EXE{ncbET5**_fxa+Z3!IEGZrNls{Ba${s;5pa5BFiWAZ#Z^$o zFE|#N9}!~hJ-tw7fslgqF~-f^t!alWkERJN zOt3w4%%N=4!yp6qTQ_d#?7UN=b|gdLwuP>;iNKkgIXQEtO*73_JaW*XY}S>a4y(k? zTTBjLn;973o7on$I*iq6PGv+u+Ota%D^{oaottCnF7S-mQ6a&Bongs&%|BLa|9%1a N!_(EzWt~$(69B6(f(ZZs literal 0 HcmV?d00001 diff --git a/graphics/items/icons/linking_cord.png b/graphics/items/icons/linking_cord.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f92da04b753298958b4a21333b3732d5ecabb4 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w_7YEDSN7*jQtZl#rF9~^fkNUX zt`Q}{`DrEPiAAXl?mjL+V-(6#ixiCYObT0EHc6ehi9>Q98Tw zV!4Qf$#R>u38|0je70)el9zf?yJzz~6KBWA4u+ tk(HM8&b}7oSqW8k<^3Ob?Rr&I!_53wgT>=z`d5&TJYD@<);T3K0RRPqddL6( literal 0 HcmV?d00001 diff --git a/graphics/items/icons/peat_block.png b/graphics/items/icons/peat_block.png new file mode 100644 index 0000000000000000000000000000000000000000..9c106598756eeef0a1e141e71fd46d1569c72001 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w_7YEDSN7*jQXC@Uiu2R7fkNUX zt`Q}{`DrEPiAAXl?mjL+V-(6#ixiCYObT0Gowy z&x<4^#DqS2^hjz}*gHGc6E|h=J&JoY&2F>Ip_eP7-i28n6+ZHjPxt=bt!pkFJ<59I zrqtfsq9+QO3(N9v?!9eVljbFLLhj(*-R0Hq=S+LVQ6|%|UG=Oh!z)t-b=G%^j+x@_ fD(ktp9`K7Z97{B*?YwkR0OU7MS3j3^P6= 0 && gLocalTime.hours < 12 && gEvolutionTable[species][i].param == evolutionItem) + targetSpecies = gEvolutionTable[species][i].targetSpecies; + break; } } break; From 0f958806eaba35ee9fe11eaf9609461b3ee92672 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Mon, 10 Apr 2023 14:39:14 +0200 Subject: [PATCH 24/25] Remove unused battle funcs --- include/battle_interface.h | 1 - src/battle_interface.c | 18 ------------------ 2 files changed, 19 deletions(-) diff --git a/include/battle_interface.h b/include/battle_interface.h index e0f30b3097..e2937748a4 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -81,7 +81,6 @@ u8 CreateSafariPlayerHealthboxSprites(void); void SetBattleBarStruct(u8 battler, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); void SetHealthboxSpriteVisible(u8 healthboxSpriteId); -void DestoryHealthboxSprite(u8 healthboxSpriteId); void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHpBoxes); void InitBattlerHealthboxCoords(u8 battler); diff --git a/src/battle_interface.c b/src/battle_interface.c index 35c0e60c63..9138dcf6ee 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -186,7 +186,6 @@ static void MegaIndicator_SetVisibilities(u32 healthboxId, bool32 invisible); static void MegaIndicator_UpdateLevel(u32 healthboxId, u32 level); static void MegaIndicator_CreateSprites(u32 battlerId, u32 healthboxSpriteId); static void MegaIndicator_UpdateOamPriorities(u32 healthboxId, u32 oamPriority); -static void MegaIndicator_DestroySprites(u32 healthboxSpriteId); static void SpriteCb_MegaIndicator(struct Sprite *); static u8 GetStatusIconForBattlerId(u8, u8); @@ -884,14 +883,6 @@ static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) gSprites[spriteId].y = y; } -void DestoryHealthboxSprite(u8 healthboxSpriteId) -{ - MegaIndicator_DestroySprites(healthboxSpriteId); - DestroySprite(&gSprites[gSprites[healthboxSpriteId].oam.affineParam]); - DestroySprite(&gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId]); - DestroySprite(&gSprites[healthboxSpriteId]); -} - void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBattlerOnly) { @@ -1599,15 +1590,6 @@ static void MegaIndicator_CreateSprites(u32 battlerId, u32 healthboxSpriteId) } } -static void MegaIndicator_DestroySprites(u32 healthboxSpriteId) -{ - u32 i; - u8 *spriteIds = MegaIndicator_GetSpriteIds(healthboxSpriteId); - - for (i = 0; i < INDICATOR_COUNT; i++) - DestroySprite(&gSprites[spriteIds[i]]); -} - static void SpriteCb_MegaIndicator(struct Sprite *sprite) { u32 battlerId = sprite->tBattler; From 5c0e5d213311c8c72c119b2450ad5b45d4716f3a Mon Sep 17 00:00:00 2001 From: Jaizu Date: Mon, 10 Apr 2023 14:40:56 +0200 Subject: [PATCH 25/25] Don't toggle mega indicator visibility on the Safari Zone --- src/battle_interface.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/battle_interface.c b/src/battle_interface.c index 9138dcf6ee..7f7e1d20f0 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1531,6 +1531,9 @@ void MegaIndicator_SetVisibilities(u32 healthboxId, bool32 invisible) u8 *spriteIds = MegaIndicator_GetSpriteIds(healthboxId); u32 battlerId = gSprites[healthboxId].hMain_Battler; + if (GetSafariZoneFlag()) + return; + for (i = 0; i < INDICATOR_COUNT; i++) { if (invisible == TRUE)