From 2f21073555eb6c5c4c1f60b8267f67dd44d6b8b5 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 8 Sep 2024 23:13:32 -0300 Subject: [PATCH 01/11] Fixed Tera Shift description (#5351) --- src/data/abilities.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/abilities.h b/src/data/abilities.h index ccb27ffe35..a85f114fec 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -2559,7 +2559,7 @@ const struct Ability gAbilitiesInfo[ABILITIES_COUNT] = [ABILITY_TERA_SHIFT] = { .name = _("Tera Shift"), - .description = COMPOUND_STRING("Terasteralizes upon entry."), + .description = COMPOUND_STRING("Terastallizes upon entry."), .aiRating = 10, .cantBeCopied = TRUE, .cantBeSwapped = TRUE, From ab279d9f8c77064139580b466bfaa8ae446f8884 Mon Sep 17 00:00:00 2001 From: kittenchilly Date: Mon, 9 Sep 2024 02:52:48 -0500 Subject: [PATCH 02/11] Update Move Category icons (#5080) Update Category Icons to be more accurate to Gen 5 --- graphics/interface/category_icons.png | Bin 5451 -> 303 bytes src/pokemon_summary_screen.c | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/interface/category_icons.png b/graphics/interface/category_icons.png index 1c7d63c9eb775ab15aefe3456b2ac3cb8c47ede7..4e4a3cc2d9d3559bffa118fac7fc685f445a2b64 100644 GIT binary patch delta 288 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 z6(E<^YGzcategoryIconSpriteId == 0xFF) - sMonSummaryScreen->categoryIconSpriteId = CreateSprite(&gSpriteTemplate_CategoryIcons, 48, 129, 0); + sMonSummaryScreen->categoryIconSpriteId = CreateSprite(&gSpriteTemplate_CategoryIcons, 48, 128, 0); gSprites[sMonSummaryScreen->categoryIconSpriteId].invisible = FALSE; StartSpriteAnim(&gSprites[sMonSummaryScreen->categoryIconSpriteId], category); From fd4860d17ee93ba0cd5a8d971745b353d7a9d5dc Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Mon, 9 Sep 2024 04:41:43 -0400 Subject: [PATCH 03/11] fix missing break in ENDTURNs (#5350) Co-authored-by: ghoulslash --- src/battle_util.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/battle_util.c b/src/battle_util.c index c0ab04b5b7..48aba80c63 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2884,9 +2884,11 @@ u8 DoBattlerEndTurnEffects(void) case ENDTURN_ELECTRIFY: gStatuses4[battler] &= ~STATUS4_ELECTRIFIED; gBattleStruct->turnEffectsTracker++; + break; case ENDTURN_POWDER: gBattleMons[battler].status2 &= ~STATUS2_POWDER; gBattleStruct->turnEffectsTracker++; + break; case ENDTURN_THROAT_CHOP: if (gDisableStructs[battler].throatChopTimer && --gDisableStructs[battler].throatChopTimer == 0) { From d62b7270c8ee3d8e5f3d0d19e1eda948eafbdbf6 Mon Sep 17 00:00:00 2001 From: hedara90 <90hedara@gmail.com> Date: Mon, 9 Sep 2024 10:49:05 +0200 Subject: [PATCH 04/11] Fixed trainerslide arguments (#5344) Co-authored-by: Hedara --- asm/macros/battle_script.inc | 4 ++-- data/battle_scripts_1.s | 30 +++++++++++++++--------------- data/battle_scripts_2.s | 10 +++++----- src/battle_script_commands.c | 4 ++-- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index e18ce91f28..f91313cb92 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -507,9 +507,9 @@ .byte \battler .endm - .macro trainerslidein battler:req + .macro trainerslidein position:req .byte 0x53 - .byte \battler + .byte \position .endm .macro playse song:req diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 1a80940b72..f9bb4565f0 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -5603,13 +5603,13 @@ BattleScript_LocalTrainerBattleWon:: BattleScript_LocalTwoTrainersDefeated:: printstring STRINGID_TWOENEMIESDEFEATED BattleScript_LocalBattleWonLoseTexts:: - trainerslidein BS_ATTACKER + trainerslidein BS_OPPONENT1 waitstate printstring STRINGID_TRAINER1LOSETEXT jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward - trainerslideout B_POSITION_OPPONENT_LEFT + trainerslideout BS_OPPONENT1 waitstate - trainerslidein BS_FAINTED + trainerslidein BS_OPPONENT2 waitstate printstring STRINGID_TRAINER2LOSETEXT BattleScript_LocalBattleWonReward:: @@ -5661,15 +5661,15 @@ BattleScript_LocalBattleLostPrintTrainersWinText:: waitstate returnopponentmon2toball BS_ATTACKER waitstate - trainerslidein BS_ATTACKER + trainerslidein BS_OPPONENT1 waitstate printstring STRINGID_TRAINER1WINTEXT jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ BattleScript_LocalBattleLostDoTrainer2WinText:: - trainerslideout B_POSITION_OPPONENT_LEFT + trainerslideout BS_OPPONENT1 waitstate - trainerslidein BS_FAINTED + trainerslidein BS_OPPONENT2 waitstate printstring STRINGID_TRAINER2WINTEXT BattleScript_LocalBattleLostEnd_:: @@ -5680,12 +5680,12 @@ BattleScript_FrontierLinkBattleLost:: waitstate returnopponentmon2toball BS_ATTACKER waitstate - trainerslidein BS_ATTACKER + trainerslidein BS_OPPONENT1 waitstate printstring STRINGID_TRAINER1WINTEXT - trainerslideout B_POSITION_OPPONENT_LEFT + trainerslideout BS_OPPONENT1 waitstate - trainerslidein BS_FAINTED + trainerslidein BS_OPPONENT2 waitstate printstring STRINGID_TRAINER2WINTEXT jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_FrontierLinkBattleLostEnd @@ -5708,12 +5708,12 @@ BattleScript_TowerLinkBattleWon:: playtrainerdefeatbgm BS_ATTACKER printstring STRINGID_BATTLEEND waitmessage B_WAIT_TIME_LONG - trainerslidein BS_ATTACKER + trainerslidein BS_OPPONENT1 waitstate printstring STRINGID_TRAINER1LOSETEXT - trainerslideout B_POSITION_OPPONENT_LEFT + trainerslideout BS_OPPONENT1 waitstate - trainerslidein BS_FAINTED + trainerslidein BS_OPPONENT2 waitstate printstring STRINGID_TRAINER2LOSETEXT jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_TowerLinkBattleWonEnd @@ -5730,13 +5730,13 @@ BattleScript_FrontierTrainerBattleWon:: BattleScript_FrontierTrainerBattleWon_TwoDefeated: printstring STRINGID_TWOENEMIESDEFEATED BattleScript_FrontierTrainerBattleWon_LoseTexts: - trainerslidein BS_ATTACKER + trainerslidein BS_OPPONENT1 waitstate printstring STRINGID_TRAINER1LOSETEXT jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_TryPickUpItems - trainerslideout B_POSITION_OPPONENT_LEFT + trainerslideout BS_OPPONENT1 waitstate - trainerslidein BS_FAINTED + trainerslidein BS_OPPONENT2 waitstate printstring STRINGID_TRAINER2LOSETEXT BattleScript_TryPickUpItems: diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 7fe22195c8..be6c04e32e 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -238,7 +238,7 @@ BattleScript_ActionWallyThrow: waitmessage B_WAIT_TIME_LONG returnatktoball waitstate - trainerslidein BS_TARGET + trainerslidein BS_PLAYER1 waitstate printstring STRINGID_YOUTHROWABALLNOWRIGHT waitmessage B_WAIT_TIME_LONG @@ -246,10 +246,10 @@ BattleScript_ActionWallyThrow: BattleScript_TrainerASlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 0 - trainerslidein B_POSITION_OPPONENT_LEFT + trainerslidein BS_OPPONENT1 handletrainerslidemsg BS_SCRIPTING, 1 waitstate - trainerslideout B_POSITION_OPPONENT_LEFT + trainerslideout BS_OPPONENT1 waitstate handletrainerslidemsg BS_SCRIPTING, 2 return @@ -260,10 +260,10 @@ BattleScript_TrainerASlideMsgEnd2:: BattleScript_TrainerBSlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 0 - trainerslidein B_POSITION_OPPONENT_RIGHT + trainerslidein BS_OPPONENT2 handletrainerslidemsg BS_SCRIPTING, 1 waitstate - trainerslideout B_POSITION_OPPONENT_RIGHT + trainerslideout BS_OPPONENT2 waitstate handletrainerslidemsg BS_SCRIPTING, 2 return diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 13795ee61c..faa383f7ef 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -7439,9 +7439,9 @@ static void Cmd_switchineffects(void) static void Cmd_trainerslidein(void) { - CMD_ARGS(u8 battler); + CMD_ARGS(u8 position); - u32 battler = GetBattlerForBattleScript(cmd->battler); + u32 battler = GetBattlerForBattleScript(cmd->position); BtlController_EmitTrainerSlide(battler, BUFFER_A); MarkBattlerForControllerExec(battler); From 5089b1d0b41c89985181df35be80ae36d2bf1329 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Mon, 9 Sep 2024 11:52:26 +0200 Subject: [PATCH 05/11] Adds callnative for soundproofcheck to addtionally check the flag (#5301) * Adds callnative for soundproofcheck to addtionally check the flag * rename callnative, include parish song and missing ability recording --- asm/macros/battle_script.inc | 6 ++++++ data/battle_scripts_1.s | 4 ++-- src/battle_script_commands.c | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index f91313cb92..c9f9b28bef 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1679,6 +1679,12 @@ .4byte \failInstr .endm + .macro jumpifblockedbysoundproof battler:req, failInstr:req + callnative BS_JumpIfBlockedBySoundproof + .byte \battler + .4byte \failInstr + .endm + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index f9bb4565f0..c24dacb5c4 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -508,7 +508,7 @@ BattleScript_EffectAttackUpUserAlly_TryAlly: BattleScript_EffectAttackUpUserAlly_End: goto BattleScript_MoveEnd BattleScript_EffectAttackUpUserAlly_TryAlly_: - jumpifability BS_ATTACKER_PARTNER, ABILITY_SOUNDPROOF, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked + jumpifblockedbysoundproof BS_ATTACKER_PARTNER, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked setstatchanger STAT_ATK, 1, FALSE statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_End jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectAttackUpUserAlly_AllyAnim @@ -4281,7 +4281,7 @@ BattleScript_EffectPerishSong:: waitmessage B_WAIT_TIME_LONG setbyte gBattlerTarget, 0 BattleScript_PerishSongLoop:: - jumpifability BS_TARGET, ABILITY_SOUNDPROOF, BattleScript_PerishSongBlocked + jumpifblockedbysoundproof BS_TARGET, BattleScript_PerishSongBlocked jumpifpranksterblocked BS_TARGET, BattleScript_PerishSongNotAffected BattleScript_PerishSongLoopIncrement:: addbyte gBattlerTarget, 1 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index faa383f7ef..d4afe23be4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -17218,3 +17218,20 @@ void BS_TryTarShot(void) gBattlescriptCurrInstr = cmd->nextInstr; } } + +void BS_JumpIfBlockedBySoundproof(void) +{ + NATIVE_ARGS(u8 battler, const u8 *jumpInstr); + u32 battler = GetBattlerForBattleScript(cmd->battler); + if (gMovesInfo[gCurrentMove].soundMove && GetBattlerAbility(battler) == ABILITY_SOUNDPROOF) + { + gLastUsedAbility = ABILITY_SOUNDPROOF; + gBattlescriptCurrInstr = cmd->jumpInstr; + RecordAbilityBattle(battler, gLastUsedAbility); + gBattlerAbility = battler; + } + else + { + gBattlescriptCurrInstr = cmd->nextInstr; + } +} From dc2bbe0448c49f36af62e4b4c96e7c388ffb4c6b Mon Sep 17 00:00:00 2001 From: hedara90 <90hedara@gmail.com> Date: Mon, 9 Sep 2024 14:34:21 +0200 Subject: [PATCH 06/11] Fixed loading into the wrong version of a map after saving in areas with multiple layouts (#5347) Co-authored-by: Hedara --- src/overworld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/overworld.c b/src/overworld.c index a9606578dc..37a9642e28 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -624,7 +624,7 @@ static void LoadCurrentMapData(void) static void LoadSaveblockMapHeader(void) { gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); - gMapHeader.mapLayout = GetMapLayout(gMapHeader.mapLayoutId); + gMapHeader.mapLayout = GetMapLayout(gSaveBlock1Ptr->mapLayoutId); } static void SetPlayerCoordsFromWarp(void) From 389e5c20dd9f4ba0d551a18ab0f50bab61f5fb88 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:40:56 +0200 Subject: [PATCH 07/11] Fixes berries missing timing (#5300) * Fixes berries missing timing * salac berry test --- src/battle_util.c | 10 ++++++++++ test/battle/hold_effect/restore_hp.c | 29 ++++++++++++++++++++++++++++ test/battle/hold_effect/speed_up.c | 19 ++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 test/battle/hold_effect/restore_hp.c diff --git a/src/battle_util.c b/src/battle_util.c index 48aba80c63..f6c577a31c 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2321,6 +2321,7 @@ enum ENDTURN_DYNAMAX, ENDTURN_GMAX_MOVE_RESIDUAL_DAMAGE, ENDTURN_SEA_OF_FIRE_DAMAGE, + ENDTURN_ITEMS3, ENDTURN_BATTLER_COUNT }; @@ -2453,6 +2454,15 @@ u8 DoBattlerEndTurnEffects(void) effect++; gBattleStruct->turnEffectsTracker++; break; + case ENDTURN_ITEMS3: // berry effects + if (gItemsInfo[gBattleMons[battler].item].pocket == POCKET_BERRIES + || GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_RESTORE_HP) // Edge case for Berry Juice + { + if (ItemBattleEffects(ITEMEFFECT_NORMAL, battler, FALSE)) + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; case ENDTURN_ORBS: if (IsBattlerAlive(battler) && ItemBattleEffects(ITEMEFFECT_ORBS, battler, FALSE)) effect++; diff --git a/test/battle/hold_effect/restore_hp.c b/test/battle/hold_effect/restore_hp.c new file mode 100644 index 0000000000..09daecc860 --- /dev/null +++ b/test/battle/hold_effect/restore_hp.c @@ -0,0 +1,29 @@ +#include "global.h" +#include "test/battle.h" + +DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing") +{ + u16 item; + + PARAMETRIZE { item = ITEM_BERRY_JUICE; } + PARAMETRIZE { item = ITEM_ORAN_BERRY; } + PARAMETRIZE { item = ITEM_SITRUS_BERRY; } + + GIVEN { + ASSUME(gItemsInfo[ITEM_ORAN_BERRY].holdEffect == HOLD_EFFECT_RESTORE_HP); + ASSUME(gItemsInfo[ITEM_BERRY_JUICE].holdEffect == HOLD_EFFECT_RESTORE_HP); + ASSUME(gItemsInfo[ITEM_SITRUS_BERRY].holdEffect == HOLD_EFFECT_RESTORE_PCT_HP); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { MaxHP(100); HP(51); Item(item); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight); MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); + MESSAGE("A sea of fire enveloped the opposing team!"); + MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); + MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + } +} diff --git a/test/battle/hold_effect/speed_up.c b/test/battle/hold_effect/speed_up.c index 438ff0d3cc..c6ddc19d8d 100644 --- a/test/battle/hold_effect/speed_up.c +++ b/test/battle/hold_effect/speed_up.c @@ -68,3 +68,22 @@ SINGLE_BATTLE_TEST("Salac Berry raises Speed by one stage when HP drops to 1/4 o EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 2); } } + +DOUBLE_BATTLE_TEST("Salac Berry does not miss timing miss timing") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { MaxHP(100); HP(26); Item(ITEM_SALAC_BERRY); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight); MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); + MESSAGE("A sea of fire enveloped the opposing team!"); + MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); + MESSAGE("Using Salac Berry, the Speed of Foe Wynaut rose!"); + MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + } +} From 36ff435ab69e393df93c3e0c01715b9ab500fbff Mon Sep 17 00:00:00 2001 From: hedara90 <90hedara@gmail.com> Date: Mon, 9 Sep 2024 21:03:52 +0200 Subject: [PATCH 08/11] Liam follower fixes (#5334) * Fix Blinking on Meganium South Sprite * Fixes Lediba and Ledian Blinking * Fixes two blinking spots on spinerak * Crobat Eye and Igglibuff butt vlinking fix * More blinking follower fixes flaaffy xatu hoppip line * Blinking Gen 2 Fixes Mantine Miltank Raikou yanma wooper skarmory * Gen 4 Fixes + donphan and espeon prinplup starraptor shieldon roserade ambipom mamoswine Stunky Donphan - gen 2 fix Espion - noticed a flickering pixel on south walk * Synchronization with Cafeei * Messed up the merge, fixing now * Added mantine --------- Co-authored-by: Liamjd14 Co-authored-by: Hedara --- graphics/pokemon/ambipom/overworld.png | Bin 1257 -> 1286 bytes graphics/pokemon/crobat/overworld.png | Bin 1148 -> 1053 bytes graphics/pokemon/donphan/overworld.png | Bin 842 -> 836 bytes graphics/pokemon/flygon/overworld.png | Bin 1068 -> 1064 bytes graphics/pokemon/grovyle/overworld.png | Bin 700 -> 722 bytes graphics/pokemon/igglybuff/overworld.png | Bin 614 -> 452 bytes graphics/pokemon/ledian/overworld.png | Bin 1152 -> 1019 bytes graphics/pokemon/ledyba/overworld.png | Bin 1166 -> 1032 bytes graphics/pokemon/mantine/overworld.png | Bin 1162 -> 1008 bytes graphics/pokemon/marshtomp/overworld.png | Bin 578 -> 601 bytes graphics/pokemon/meganium/overworld.png | Bin 1039 -> 939 bytes graphics/pokemon/mightyena/overworld.png | Bin 912 -> 903 bytes graphics/pokemon/miltank/overworld.png | Bin 980 -> 842 bytes graphics/pokemon/prinplup/overworld.png | Bin 690 -> 712 bytes graphics/pokemon/raikou/overworld.png | Bin 1210 -> 1116 bytes graphics/pokemon/roserade/overworld.png | Bin 840 -> 841 bytes graphics/pokemon/skarmory/overworld.png | Bin 1197 -> 1123 bytes graphics/pokemon/skiploom/overworld.png | Bin 730 -> 550 bytes graphics/pokemon/spinarak/overworld.png | Bin 824 -> 714 bytes graphics/pokemon/stunky/overworld.png | Bin 691 -> 685 bytes graphics/pokemon/torkoal/overworld.png | Bin 811 -> 825 bytes graphics/pokemon/wooper/overworld.png | Bin 509 -> 488 bytes graphics/pokemon/xatu/overworld.png | Bin 864 -> 743 bytes graphics/pokemon/yanma/overworld.png | Bin 1019 -> 1015 bytes 24 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/ambipom/overworld.png b/graphics/pokemon/ambipom/overworld.png index af46949aaadcd4471fce18fb4da632e7cb895f60..1f47b4d3e17c466c3d7fd260fde1dddf86030138 100644 GIT binary patch delta 767 zcmV0Dy!50Qvv`0D$NK0Cg__0P0@=06Lcd02gq4 z6}kZc001qKGBE_`B^DQvY99eiv5Kq#e?dJ)DMi)qMZoHOLg*2q>z*8OB?KTm6CtBZ zeHaZ2AQ_^4mQtp_6jvIa`}FYE@;bC4qY<<^f-M4Egw6OCLFJ=;Pg^8m19bd@PV*nA zl#UBTfD|OD6Wr(y91dgPS+5ba`n?D^y+x247DdWb0UQmCI@^m7tU=o03`igPf5YAG zK=|)^lO;@gun>-bgTX;Rhn>~=xWY{Uoxa1qJAPWDbxk`hFqur$p>Ni}s}4+)Qol_a z0joi)pM8%pAZrK@fJQI%!MqJszz~Qo)AoBX@Ssx%OS%i51l<&YyN;!(FyJnZ=w}XS z^^IS1f-}H`DSR#-dVN9?zHT7TfAnSmGfz@xs?w;BO9#v_)0d15aKCtyQe~L}TAga> zSilM(O;ZZj4+i{kg~XF*47}@n6YPXJ%fqSy;*;JZL>JX%odQ~Y(dUF;0$zj*Xsvd* zRJ3LEMK4ngSrKz}W(>aQM0h~~T&93V2To@zV10_Y)W^?teIiPD^JqZJe_PWRqnF|Q zoRU_bLC%2JhZ_*#C+4+2?M`KnugIu!f!egZh^!#l!2$d3Y9U6~=8EB7b_Jt~chq|t>CrE$EAITt~mB-PcR znITyoY&V!Cdk&Id7<29Ok>MX|weO xS-%%RUjA41;ZFZf`_1vczV!F`Rp8$?wx4^jJ>2u<-$(!e002ovPDHLkV1oJ&USt3O delta 738 zcmV<80v-K^3h4=uBn|;{Qb$4nuFf3k0000mkx?-R00027v<;t;h93b-v8Jp6f5A2$ zRlgSjtMdt=M~JR_a>SJofbdL&j4t(IG$?>%i1t}Znf_8-X?X6_!&}Si(29&k(CP@b z2yhWL<68ukkM=!nk%SG<@eex9f1px2E)W4ykfcseX@@f)edrH&f4c+Wzw1qwFzLZUI06m^2mKs&R_EgiHvx3|4*Tx- zX^qx3?X)> zP8}@iE_f1jQv~ihmZHLdyEvksIiS@ye$5Ha028M0xp?UH2}$_6fjrZje*w%qNtvli zqdqPjFvCn=GB&{d;!R4GWeR9@s-a^6D}XdjDO^7o@W&MrPo6RGuJcW>6Xq-rs|tuu zdXErYRF`!MX!S*(6MhMJ5iX#$+Tl{smeCizOf_Uh%+;AO_@Wcx1qE=K0va7SovncN zDdtiiKiBn%DB;bc0WEJ$e_xDVhST^gtv-XC0k01?Ai__~YkkPy0Id%6I_&~u- zs~}BYEXK>1T|kGV@mp;k^-735R&-o^1o`q+xBhe}_UHWsaMXu)gn^JB1+uy_Lo`?J zQ3!fe8W%~U3n5D5co%anf;>s8t3fkEvOL&sHv1(54=w&M-F3Cdf7OudTb^3XRR=)( zs>lwQ8~JS&pChO`pXmANoD<#vIaKA=DNp$2j>H!N5jwnPvFbT{jqFM3NAZVTd0Yfh z5~e!u-q>pgyf~DU`PeR>3^uIv~djp8;k6=q`Q4 zUv&BW+8Tqo=cUjYB>kG1eFMz!Kuk6E}{+;%l<9~hW@AIp`zin(k0k}^+ U&O|5Dy8r+H07*qoM6N<$f-yi?4*&oF diff --git a/graphics/pokemon/crobat/overworld.png b/graphics/pokemon/crobat/overworld.png index 28add5ba23cad0af04eb10ddcb8ca0ecc4d09b41..9fbaaf7e4286ae434f5784a0ca99214d652cda75 100644 GIT binary patch delta 951 zcmV;o14#V*2%QL!7zqdi0001UMu)eNF&hyt008P=0026d000+od=l&HdQ(8`07|U@xb_3d*q11afYm<|u=q#(3aI>E0H?IL;?{kdtRf_@UuJ(Rz+~(R zFJmo3!L&1j&EnlZ;8#FA2vGI8K`OX*Pf3h8a%cgdn`_CB!f*lLBB0bzKrNpVFaZx4 zgmd~x0PX^My7v(C)(BYbTLie0Xs#ztprsFKz52_X9sp(bq6wfi#PVriHUX(gWPnG{ z(Ff>*YrSh}yX+KTi$D@e9(;d_u$4+&$ES~wQLq5Y1Ox&mfbE|553#>Vls9e%d%dOg z1vu?=Z%cV&jh&Cf@5N3wWtesdw(kiT^KRx2jGD}E%HMFTqz|m&7cWF zF1jfVyKG)t5U%koP>z2xEuk?g)@2tO12Hq~bku`B4!V*9{>q3_e5xsuI8O!hFi6V~ zcSbSyzl2tuHlB7szn=}jbd*57Ln&9dT|iyF?QrN$1$us1_cGke`nJzSBL*1c0RuAq zF^#yNA`|Kg#cKifRG{aFO@Of*0gg3%$X6-&LIDfVWb*<}{WpK&kIv@wbcx~sKVUry zNG}BtXBoM6?s5OtFyhx$aO)>$T({j1rg42FfE36aoLYDQ4Eb5XT>b|;7#Rcu0002CwraKj000DMK}|sb0I`n?{9y%=AsZ1e008P>0026e z000+ooVrmwkxeii0b)x>L;#2d9Y_EG00(qQO+^Rh0SyKt2zNXnvyplqe>_Pxq8KcHLwLH}is;-_Of zZP21q86ft{qu%FuI!Y$w|M=sCR>uL- z5Dsx|ALmQR4W@h7l{_3=>N)6fpmN71xyS;ccG<@7ffLz2{Pyj_iLM4>_>gNXS7K~Og9vpV!!O(~% z-XSVCQyS}9p@9HEgUa0x<~3mv;Nl73;v_fJ<2C}s6j;GLLd3~_$}AV5}d$~>SHpw6+T=N#Z{a5VLxnb9u4 z(Gn#Vy>b49O$BUPe^qXX`-=c|kI2FUNZG;pS5OZ^`QGLF@*7kST89PFpkHOqd_g8x z(rVVI%utQn>v&6E-$TVsIw+m|0&hO^bzHEudXtXL)}VhE)Z|85&D#LjprLG%-}Z8* zLFET=YaYLw=ug$4JC((8#Q0_+tscQTGYtE);}b@)@L8M5f47g1CThV4%|)1@8n4hg zsKrKE4ZY3`jZSv-hr}?X1nB}7EW!#tW~J5S)aO72$1QZi?-?)NqTY5UU4F>+yU0izk5gU6^k?!0W;TLf&|uljpTA^bUY#0H5Kopq!_t`luaVOyR-nK92xS zb^-K)%G6ja`zYr(X;r%*Pe+;ccX&Y^0+=hBcW!1df6q!eIt0k#**m=OPxn|Oja|mb z{-E=95+C<-ppeBk*;$H(@S5Xm=+G8uo^*KtkpJ)~pZg&;Kn{#PH(0+s{;$VRNS2oG z6z!!l0000bbVXQnWMOn=I%9HWVRU5xGB7eSEif@HF)~y#GCDIgIxsjZFgQ9eF#U>q zApigXIwf>PSaf7zbY(hiZ)9m^c>ppnGBPbNF)cANR5CI;Gc`IeI4dwXIxsMd*TbCv O0000vI diff --git a/graphics/pokemon/donphan/overworld.png b/graphics/pokemon/donphan/overworld.png index 93f70fbda7b2c1b87eacb19f0a8bcbddbdc15d3d..b0b62b3b39ac5aeac61fbefb9a9cccfbb968f5b7 100644 GIT binary patch delta 20 ccmX@bc7$z00HfB#Ks}b)7d5Xob{=E`08%grf&c&j delta 26 ecmX@Yc8YC60HeXgKs_!7Fetst7Q3kC;&ObL=7G5R}-0%;F=RRid za$SL@3Ap9tKH{jcPdN0=BRJ(BPT;gaiN+zmi^dJG1vV+1!h5au$)cSINivw8Jt~IOfcMa_Y+pr4M1n`^hnL4lfI58}RE4S&p&| zyc}^B@4cwLWm(mf^TV3zH7efgw}~B?#^0OqHAlR<3?YOZf^`dl5y5_ul2`gwmKQR4 zCXu$Ls$a>w*erW&oQh*_-HK&O4hP!|A%;5aj~DGDdd&@u{*t%)WAqYtfl+*nod zfh)f60gmCnEq-+?B6XAV-AbgtV-}oc zDHpPo5(97XnQG!OeqC!6A^^cGE8qj@T`3;DM$$BFcE^p+;cG(V_8>_=kU@ z{xu4+{vZXnGHMjiDXzUm(mT`z?UMIsgCw07*qoM6N<$f-efds{jB1 delta 906 zcmV;519kkU2&@Q@PysNJQ85Pq000cWh-i_99~o~+L_t(oh3%KwlH(u@MI&TkhLHaM z&z&ogz8inThu-1ZJRdpdzhhYCM*o<9GWNHOoa1GxVaCa^n|mv+S{P5XauS70Z-d9c(kCF~qPxUeHHy%?*wIlDGO}^b&W0QGAS@ z2Xue(D+hu{lrazL$Hzv0&4rr`nS|(Bvu*-`bdJV_ikErO(XsHr^s5Ix)DG;ta{#-; z!lF#|YtM3Q%^{@9P!8c5+4Iw5i}@$M*;=&+6))R^>5VZ+zDmf~T0cBUxjl6W;FT<* z(3i3Uu^QX+(!s3+qIw|sDylzjHE>R%rFnmFk#c%DJV?62uD?#8h?Qvh4f$u2M;KwQiF;MFbGT#h;Jfo2je;i{)|^15W*sn z$ONWf=R~+~j<>66x=l z1!q~xg)F7S&sTgsnYQ1B0MmbP^Pp332&A^%^ot7D*e!100n!^a%KFeljlhm;hsHzV zAO4B>YZPStK?-hV)F_}+U^O0F%#MFQaT>g+4^--=o`ZE2X?XOG8`F|p>IF8uf1col z6C#|rag1#T3hpL5r-!vPciK&$bM-l?_Yd8)l<+)^@@H_Z()xB{J%3*M!h>@*F<(6J zG`uqnT}la$Jj3V3jbFdi;{Y;&sc~RCHkFf0ZsT^UwhC}Isy-S$PTp}$O}bXjHNNA- zSzx;dPOdq^zv)Y*^>~-#jpH$UXS?CpWLibz_W@EL$9!L9>cE^kr=PLiaER{#J2 diff --git a/graphics/pokemon/grovyle/overworld.png b/graphics/pokemon/grovyle/overworld.png index 92705c00fe9d213f51aa4b469d76dcd3f5aae7c4..96dc7812fa96aae0df5b501d1772252ac281f284 100644 GIT binary patch delta 64 zcmdnPdWm&{impPkN02WALzNl>LqiJ#!!HIP{epp^RG)$2RXhWO)pQ01@q!xBU5r2p S^@&E>EMmEO=Qd^qF#!M{U=V@; delta 42 scmcb_x`%aw3Lj%}kh>GZx^prw85kH0CI)Kr0%-_vl`Gi1u_1^F0QN=-fB*mh diff --git a/graphics/pokemon/igglybuff/overworld.png b/graphics/pokemon/igglybuff/overworld.png index ab5af8ee16e16d6e8446965863c368ca0368af96..ab6af8a03cd7bfda87d02473a6a4cc278273e505 100644 GIT binary patch delta 371 zcmV-(0gV3U1jGZ77#0Wv0001UMu)cm0004VQb$4nuFf3kkzFm3svLhfNkl_r((S@W6}|Y5?E_RvOG%|tsZ=VJN~QjZ0N^kAYWo6+ z7+D_XtL=4z&EZ=f=OLZp#K`1s@@ZZ`VYtB&M zu6Dp1H#%GwjLrsc+)4o0`ycgYz?ka^@3Je^)d_fU=Zbs8_HEW*+z#0LbI5@_UV!Re znYgWXz!xWzAFaE*4W4r9>#l^NeEJx5`F(=-7<>Z{0v_DIfbvf|LlK9I_~&=4cVCqN z2Y&^GC~5#AK*9VrAb=B=)%uAB6C+Y@)hBuT3NL&pI&k(W)G zlfha*bz+2ky{4y&V~EG`w^#P(9WoGL`|$b1vn7!dwZ4MMhKUJll2@IxagtN=4=B^J zI+E|5q*9a~F((=>_MQ7FEImLDn zHnXEtCAiL(^XLX-Pkj`$dd9*N-a08~Bue|*YF{mEXP4k%Iaa^J_YTv?j1%vZ4%I4c zD|AkqH9h&W8Q-0n{Z3}J4KjCGY|Wp%*IgI2Y2o&rxAz-Px>xNAPU9R7+AJ|fx`~9Ge>4Bq`&sulSSvg;>y2>#kPj+^EUGDiB z#&r4btL>f~X|A8G{cm1`brO@xA7D_bmbgZgq$HN4S|t~y0x1R~10y3{14CUyqYxt_ xD`QhD150fK3o8SI=)VP1Q8eV{r(~v8LNzF3(V?~AgeFi2gQu&X%Q~loCIBFv&!YeU diff --git a/graphics/pokemon/ledian/overworld.png b/graphics/pokemon/ledian/overworld.png index 8ca49bef3b624fc6b648b7d7434043fa2b33965e..64cd573aef7af3776a97ed18a9e1f9c2cbee6be5 100644 GIT binary patch delta 904 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 delta 1050 zcmV+#1m*jP2#yJm7#Rcu0002CwraKj000DMK}|sb0I`n?{9y%=AsZ1e008P>0026e z000+ooVrmwkxe`u0b)x>L;#2d9Y_EG00(qQO+^Rh0SyKt2j_!5B9Vq4e?mz_K~zY` z?Ug@I+dvqHZIGN5=MMbsW4v8%-$OzO{mXI*1Lf0H4brt7k z5K{R99Vio0vm|U)hsIOawx6MQzB?O7q*7IN;}rwX+4uZ>@4ZqK<-YFgzW!tB!yXuh z_-Dj;_%}jzERK1}1HusmfBC}5Ol3{JT?_uA8e}F+m13Nd0fCTh5JI(@FOM-!L14kY%r?kW17WO1DH!Hap{XgFx-Ntn zB)EdYE!z-AU##k5jP>Xii_}tHP~xoXe7loD0F5seGt~l`u-X0`e^{fOtQN9Ts6z-# zQmCd1S;jda6Gm&rTf%_V!UBLLwvfOlIZ#b+Z>OlR-DHV6m}We^5acnTnTAkDLYRUO zQO>NxvM_4XFU*1|go5cS<$Ng!IM$5}{h~@TJBew4gS{l@iFVT#!ZpJ{La5Ta3YgxV z=*sL0EQLbBCWK%;f8aw*^rJlB^=WF@C2^9=frc^iSV&x90X9|f_M4x1aP5-rmaQF?}}Tw4KY9$ z5GJenlDLF`GXRA{;2gB};HuSff|fhDDH*dCX=v6WjmuB z(1sdEq}i;r)cgqim8S;ox0nG>2Iz+@;J#bIzSBP_&00&vH^M^$C6m#zsumG@QdcSp zM$C}U4tU-u{noKQXN_Yibpo*Ft00`05PfW*;(JlKhPgZ$sY_eKEuRfUkYazPgC7Bu zueQ7n0+t4%lu7J?fx?@L57mybhKaHfCj3tWsaP%FJFpp@{t>So7#_`a)05U?&8H6W zyuw(+1|W2C4)_b9StY9GhdHR^xB5Fi$Dnuyi@T_>oTx*-9I3H}d3)v}b(a5XYMA}i ze3gXkK%>{+LLDF}J#>|@fslVgXKDE`0jTLTI(OqKrU?!Plm;B}tpit-RhuEIMWK-^ zl;fe55|NWwR){(@6`wMQC^Qs#+{jZavtXP3499%s04kAA?e*bw>I`y;mK31mmJE2m z?;KmMG|=*80V(}OU{J{22l{)yUIrdlXL9}W2K zx`F7g6G$4#g!A%clL>z%(DS+kvewh6d>n#cxbT@F#f{L6=24$MuDr}&bqdw(j46@4R*S)fY1`H~{`FJb&x*r}6x~*I$P(PHib@ TSMABp00000NkvXXu0mjfKR&d9 delta 1046 zcmV+x1nK+m2Z{-h7#Rcu0002CwraKj000DMK}|sb0I`n?{9y%=AsZ1e008P>0026e z000+ooVrmwkxe`u0b)x>L;#2d9Y_EG00(qQO+^Rh0SyKt6k|Pn{E>zqe?Cb>K~zY` z?Uuc2+fWq8ue8X)i$(kZMntZYrh{w0KyaVHJRTD_hZOnt7_`Yzfb43&+o>SuFj7@DX9QwcCQw?y zHX%58_L|cD6DN$cfMQdePZa`Slwrhzq?EMPVd@SuNi50mW57|5f6@^NAy#cN#X7m) z<>?s##n?PAJ$Cw(c7xPo!%_eMNJJ@#_=OZ;KweP#CIY2U#SWp}FcFZ96}#g79|cZG zdEkJ1EUOw;9`U+6g7^4EMYfc%%&>7kHvL#7!H0r{x>Xkf1cx5K6ML9@EYl39BkZX9 za)2;pnc+d-^y99Uf3j@J-O4>~)9R?#p}zK*8D_}{I`jZ(1Y*hhyj;iI!(w}uH1h^9 z-%WMZV4K!Py&?5gi%!ac9zoa-L=OjRV9Q?ZzkHCm5#NBt`Ap{qI) z78q70*)>&eDA(vA0V4>}k$9=yQIGo5G2o^wD4A0JbhA;>f1dU`lvZ^?DX3YGP#BAX z>qpO4OU*84F0&F-Wk=|`~(=+YJlf_aOd7TSfoMqAr8!z8a z2I;56u=#Yz1)huC=e@`kKF%_{&R4=LmtTnEfxcu}f7ai#xdRT(A5g{F>@@q=A|Y^! z?h=_3PD?iDCFcby=q_Qo^B&FplQ0*4yyX138E)yuo!bPK9dLge_I(SWWZT?({00!& zTjYxIvV#Bs03~!qSaf7zbY(hYa%Ew3WdJfTGBPbNF)cANR5CI;Gc`IgFe@-PIxsMd zKr%Z3JOBVCbVXQnWMOn=I&E)cX=Zr0Dy!50Qvv`0D$NK0Cg__0P0@=06Lcd02gq4 z6}kZc001hHGA;xt)|CE{Y9D{1NklIT05>)unH-kX~i42#x$fXzPV+q1EVlUD2Hxfr11$FQiIIT6 z$YBsa-(iC@C-B5xio5y5ErWH=lC}g%>_y0P(!ew_T(!mjNb~u@f zyvY|B%%B+t7i0blTy}NwiHi0|+vFH*a75%#BuNR`4rp^C*dyxYC8vyglPQ>QyB61@ zMku9Vn{u|nliS0Qp^$&*#T$Qce|%PlA=+Dgi!&bYyk>pcon7SMp1~Lk70m8zqbK*? zWFauRgtt|&Ypin^Bw5#0kl!=_2Rrw+L7cTBMI2U~@hA6oa$1G4#=H)L#|qyJqQk<@ z8o|=qc%{HN6Fjmro?qM^uMt_hqaF6RV)i%;qIW3KJ<9;0kCi$C_bHs=+fCR)+{2DC wJfiN2RX+&0!e2o>=vqv3f=Y3hBZfY!A8|kx7P2C-Z2$lO07*qoM6N<$f^wAU@Bjb+ delta 510 zcmVgdhxrrP5XxeE-+IsjlATLcwU< z{ljcxHu(yjRzw_zuCA`GuCA`Gu3h1qoS-}0<{#@3&vF{av1YNwZyUJHDTc8Y(c%Lm z0e_Ky!ytaX!v<#-P+>2{(|q8T!8&IZBnTo}&hRuJSfUwpS9ycm{36jV#SBk#3y9IB zC%F8oXy9qCJ9X=;@@bln`R8f6!uJe%h5s$ETtJ=E49N@hCHD9KIy=L4bEtZOBjV_= z6c>4uPcWE36AVs;`A=}&bcqj?tv}W#$6$khBO-;YqB*2;K${c69??~vlO)`mM4@=# zXmLAggq$bvCjK@1I$)0v+7umUIFvd(7vpd`9 z!M!(G2#hY_Z57Hj);SE4F3Y0GUo-#*8~3(BoV6lF99Eq12lsYzT9mQIybgoM3SSLn zqQlD08o|<9d8NQO5hMBR@D`yk*7e+OMb=VF=@REj$t(e+vV067zqdi0001UMu)eNF&hyt008P=0026d000+od=j0w=b|Jzm)kVDZS+3wElMbw$b;lt>c#3|eMwzvHk7D7RED4Ge`Qry=9@TNDLYe2bBr0DwEkxV^?vA2QH$?DD`0 z*#Y@lD`0b$2yh$+fFRH1sE>W@N{)X$-X%^4Vw@hw=#Flh4~qxbfa+$Yj=ke7b z9UhNqQUPopKCnPRtlU$4I0!s^Pz8AW7Xieu)99K+k531I_2~jE9@9DWok?5+77uan z*%4p$`Or57iV9txhQc!`0T_Jh(-x4&hrkon1^llCVDogdm-$VgoMMl6f%$)OB>cN% zB>;!RRUf>}R-yjvT zq;A7HM}Zd>h|$%$D)cy6iD?{E804Su0;Q7S=gS-t7M9m{g4XI%B9GJfwPB6%s(>*z zAx59qSU<_Cm?MWrnk0!vXMun4vq~N(eQi$C*j9xekC~+L6d{>;xy(77?n<#cfLdBv zk1U6iz`0F;5`e`?U@5#rN>Ku^I9qoB1&622V#%_}(ZfDE>|%mEUU8m|oeqRa>hYVv z(z-xgZ9n!~i<7?nvtflBJxCcec^{p|JSav*oyE}#^(nb@ee12s;yiyxGX~d6R_Cz6 zyFlKhlBlpZ53bx7c#Z5WEBb97bIv$B8_raGlBST&Z|AHLfWcW{E0xMy=A{o_;TRmy z22p{YRsj!u_5Qa4pgN!Dxbz7DJn)A+^8Bi})yaoFZ();5XX#BG9TzJHCRP9&9T2q( z7#sF0JkpP5I_demmI8l3P$G8|HW8lMbkIdH{+ z_bBvGXzyZYP*>*gr~2JNrQa;%liuF;uk9PCR5PiSTwn$O000R9NkvXXu0mjfy!wfS delta 919 zcmV;I18DrK2agDl7#Rcu0002CwraKj000DMK}|sb0I`n?{9y%=AsZ1e008P>0026e z000+ooVrmwkxf4x0b)x>L;#2d9Y_EG00(qQO+^Rh0SyKt1qqE@4v~o;f51sZK~zY` z?bOd}6G0RQ@VAgT4rm{sGQJlbxC7RRk}Bd)fU=c;7df*&TrY*I&4Tf_=MgfI`8o z@cg@gVtC8CT{i@?vt=jHe{(UcncHF(;F>MY051n&1d|O@oI6wY9Te~C0u~ks>qL%? zxpAKF;6YFftttC9iKd`H8ghu(0LnpmF1&5Wc{T<25bxaJ$2t&el&7MZ$WHTZ3QCBj z+6}(3!E~{NcA{@nu!d_+fNS<#=d}~c(=&)ItJ=3NKoi)cEjJKfeq^Byx%zAiTgl)(Wq|yW{;L#77q3z!ug}mIxw~x zxMtnUJw#S|B|PJkWs+UYlgr4X@O}`TcB$ zVX8i5hMes1s?1&+-vB#ueYIa6raJTvDl(tkSPyq--$pXi*+*s5V~HYYw0Eu6#mS3JpcdzC3HntbYx+4WjbwdWNBu3 t05UK#GA%GMEip1wGBP?dH99agD=;`ZFfi=^qFn$0002ovPDHLkV1f=HrAPn( diff --git a/graphics/pokemon/mightyena/overworld.png b/graphics/pokemon/mightyena/overworld.png index 4dc936895da74afbdd91c48265b18d1ed63ebc2a..2765fd4fc05c62ca1e9a5ebd7a1030d71c6d5131 100644 GIT binary patch delta 20 bcmbQh-p)QDfKh#7pf*d$^~CQRJK325MXCn| delta 29 ecmZo?pTIsLfYD%Lpf)c9418RY`)OkXJ2L=h&If=1 diff --git a/graphics/pokemon/miltank/overworld.png b/graphics/pokemon/miltank/overworld.png index 351fc02f878fad696d6c4b818ea75be073cdbd14..1ade8435229a6ed1b9053bc1f205780f914a86ac 100644 GIT binary patch delta 723 zcmV;^0xbR12g(MJ7zqdi0001UMu)eNF&hyt008P=0026d000+od=zsCbE8!Xa{ z+|&XlTzw8GACbDq*~LnE>E1&=;ixW+iLFH<_|zpZ=id{$!HdAHTVGSYC~d8Fj>qOR zHs$8W?r^2Gb>)y+3TGT1)~*&_tF>(b6HZ@&okw)Uz2b>Wo!#K@fHb{XyJ>&O^f!2* zB9SOu=ZYtGu2)}EzIdzSO3vb#)~M|{g%3wwDF`k)$3L}14!3puiJ#+%Cl-P21DtW? z03lDIP;i3}hcZ#-%uiM1o%2pZqZn?_@%qSJwF6M-1_CEsndk@<8KN;rV2F+B*4k;3Xi%{JD>HrkJFLY0>N{W$HleU zsBp^5ILEUE*&yEM*m#5r7YE^|35a|Q*1uuihSm&6UgbwT_7rz5|6~gc;=(O zY~C0wAT{-21%-Bav5_ahQQX(98{hvk`Aer?P4U=2wLhRcC2PCr9#8-P002ovPDHLk FV1lJlTe$!L delta 860 zcmX@bc7=U{gd__y0|UdhZCTrZ6id3JuOkD)#(wTUiL4V9r3DQb7+xhXFj&oCU=S~u zvn$YMqOZLyW0JSK3quF1tOrmFdx@v7EBiA>UN&X%UnaV46FcSWTRmMILp+YZy=<6& z*+GQ;L-EZ+6JkW>W(u$LZC}PM#4XRDx%QM#Ys7k|=~1Tw(oY0-uGCW13!b(`T*+~! zkYGrvBTMPYNvBpuN@#o8F^Wn~+;D2+d753O2eeiE_LBbK^o24z`len{<3!YnjmU*FEoI;L^ zqT+<4rJd=EOc<;bql=PmNNEN*Wz19wQDb#F<&yfISB16mNn$qZBDZb3nX=0AKKEpYYg$If zUYYLC?>YNNH$#k@)ot$P^p%e<{5tp~>cCsE`mNGiZgDWBcOLw8HF*F3nm17eXENPx zzMLlEdE`P${B*N-M)g@zGSTgh^Xqq*I>!XN8N@sD$Ca$i-Pjnhzwo9$$Szpmz8CL$!}JIBXJqSBLU5?PQ-?CA;KLx5)2L4}bT6&R0^% zdi2HP*u>uY4azmQt=x}ZQ+UT-^!>yFIroE1bIrxY_dm&&_~`ze%d2tYKI2ms>5YxI z+iqBvH9Ks->pU~LTx3qM)Gp^Ak!L>aeco3fv}^xDlgHbhuPLy(d%EOKqJV_I^@its zNBOs?v{?T1)^(iWd*biUz#aDXlYak^$b9~4`G=0+ZQ&0c3f9&?(GPA8zJ2|t{&jiZ zJNBA9%yr7Zl&V_d8c~vxSdwa$T$Bo=7>o>zjC2hQbq$R|jEt;|O|6WKwGAw+3=H0Dy!50Qvv`0D$NK0Cg__0P0@=06Lcd02gq4 z6}kZc001hHGA;!Dgw;!tY9D_QNklyq0b423O_P!^N-f89#Ln>e)uS+{Bb z_{=z$`3~p^u#;uEbm`KiOP4PFB>})6@NXKqKFx)sl!gh%98v~EgdCVY&D9`^6HYj# zOjt@m%8C91mw=f>g9gT23l!BLz$dxn(<73@gflJ`zzRUHK%eGNQnG)9Q3Dgcpq$ad zMb0Rm;-tJNj~W#p*wuWZGM&qL?-qvxZ~a#z`nn> z&8Ilf7BD)2W4_R?K+u1{JYeY$8i#khao12;^VP6{2`6I}s=XgOz!zQvZgOkP__v{! zb#)WI!Le2@Tq`;S>^JnuT?6)ngYggUcF49%xYi(G=hf#{U-w8ZFTop}q(LoEk$%p_ z!8g6VSX_QWzV!xuj;$cG+$DNpX?Vc2TECrhU=MJ{O8jQF&u$hAA?6TpQ<0D@%z8m84efn|z5ceq%bNo}CGlt!7-gdN%__W+{?b3!FW&YY5T6pfhyVZp07*qoM6N<$ Ef&gA2A^-pY delta 623 zcmV-#0+9X41+oQ@Bn|;{Qb$4nuFf3k0000mkx?#x00000002sFYRUir01#tgPIdqQ z03ZMW03ZMW00000003gS?)m@#0u)I^K~z|U?UvDY;~)$~Es#)($^ZZEO2SRtwFIem z)4q7laoXk%Xav~qvRt}!>C&Z3m;RFg;2-!Wja={MLQ+b@gkugV10q5WOz-Au5XA{6 zoKhx#ETtgjM8Ci#U?$O^fic$tMKuWUPA>WMh~zNgj7tTu0uU_FyE&AUEMe5ZgfA#( zv~ZC#il;a!FUq3^h8$S9C>TBE60js-W=JJyV8+3gSUyj2$kv}U7~LUbE-S=0NeJo2 z!3xf}X0z)IhrYieKj4h_fFB9c$Dn~R*VO@kU8XafY-UU74xe#x)WY(B$i$_(6($_} z{@ONsXJpEOwt&$I9P@>C1>6QE9Qz}t1SLA&xNE4a`D)m}gp;uf)qWlm&N$llCb!0n ze;R68S2y7c9BbvmwW3qN-l0$K8n7oEjDK*qL$+PQwFUt@uRgc>x<_((30~kN4QhdZ ziu8Rh4!+6lB`It56Y{M$=yPlZndL6g3roWTrX45WP`d)$9=sh5YGEdspP~jDj~bLo zNoFwVuZIA%?D*mtG~l|f7SO@C<9INr=dMfB`*b_F_Xd4VBt_c2*@gP&-}npn43cYA zVL1ND4~C_00ZV}<|8oahU=2oG9N0`&!E<)maLnavO diff --git a/graphics/pokemon/raikou/overworld.png b/graphics/pokemon/raikou/overworld.png index 8936847f40555b74edf01630d394e1e823a4e8eb..2bad9c9b2a7b3e320a39e7f972c5d76120f24c50 100644 GIT binary patch delta 999 zcmVz1n^427i_QK|L)-}dYsu(c9kdSPkm5m6j75q&M~eMm}TZ9ZgS|G($LE2rcz;#XCo?f)c}9md`5L@ z2Po0m@ZRQL^{Ho7XavyY1D6(ALSUH*jS7JsuG-d>Pjd=&I4dOSgL9)sdVHYsRUi=Y zIZ66rhrc^W;?{gE1L$xsHwxrdfltO9X!GP2$w7VUGKU<+B{un6fP?ZRke5P0kBg>O z-}(BG!!I1)@2jM#uDecLB({I~DFPo<*?QM^2}KEXIQEI>R?XeI44}oeKA`WO6714K zxh#vc_$k1FN0gZ{3KYuBL(4^fo9ph5apjXsy)}oN0$LQD1AC`F9F&mTJWbu9zsjEm zDsT&;B_d%n188wn2zEMI@X&p(tPyaQu3B6<3k2$fr#&ZWo8mN$Szv#Szw{5>qt@^c zWLO?y`Y-kM_{{zy#6>Rh zQ?b>N<5$U|;Hay|7O{WIqsF(*8srLpA4Vof7h5a8T|O(1D@Ik78UZk_Y;ol= zrjb*9N#J&t*W;-Ngoy#d3n?zo3LQT0;<;7p(0bX60KoMqLW_b&IE_3ZQD1KI0oNWj z$kN)v`(^~t<*3m~PYL^Ga8XVJ@@wyL;EbibUBxlYQgYd|g)e_yXb-$8`(8rjd*;TE z5rEbu{<2e_9RMQ8-1-q{kDJE{s5r# VHPOYb#ODA2002ovPDHLkV1miM0026e z000+ooVrmwkxf4x0b)x>L;#2d9Y_EG00(qQO+^Rh0SyKt7y2|UMv;jhe``rZK~zY` z-PN&c+e#P!@GC(O$YKYnOD7-pZV+~+64c7W<1J@dpAxGvrU)rx2a{+Gl)N`})SzbR zB1-i#WXa$^z{|s1$a|CUR5Eo6rddpSvaOSJ&80)9_Jd&kKA*l%cV}G?`c2|VweqNc zI<|4`QUCM=a1~b`F;bgqfAcZ_D5@CC#YN#Q9gch#iT%R~)VHy0)PzQoGa8i|a9$<5 zLYr6t-KZ0h(MH?#)WW^Imm%vFkxflDJ5`;CEVZ3(&ubx(SJUnQ5n0i7-PAi3ku9&Q zYnDeuUKKQOM`Zcsp}FVeGveKLX~&M&6q&AB6G<4?D*`{Uc1C_Xf8P_%8{X>$mZJ0NIN!h{bM|Ey zCBivamXJIM5Bho8OTm{*|9Eh9mCPO9?2+F`aZotS%BC;+ z**}5f99oBNLJMAzhfL$Nzc<|L!wGuWoAVY#;I!_TRhK3*ZylX^&LE+2 z{h(>QgHwRh!HLkbHh8-U^I+C?t=%MhzKbyol0|ZzJSUl9K@-ne11Xs!>7EfuGwMa| zx5->p7lj7NEj3#Jv~}@rM$gMcz0ORZ!A(>)V5shre`3M3VVYyUPa9sb?>CkYG)Jf~ zfF6y5Bu@?RU@>C_dagr?1=H&^m*0O&iUrf_Ua`UOHXSPs=fx4j`@8@FR4kZYr#Tk% z=Vu7V)1o>-g(wy*70-JJklwHwU&zu+>H8wTWPAhvU)KrbcZpvB z001R)X+>CcWMOn=I%9HWVRU5xGB7eSEif@HF)~y#GCDIgIx;gWFgQ9eFukZKrT_o{ zC3HntbYx+4WjbwdWNBu305UK#GA%GMEip1wGBP?dH99ggD=;`ZFfh#ZkQx90002ov JPDHLkV1hLA@Gk%W diff --git a/graphics/pokemon/roserade/overworld.png b/graphics/pokemon/roserade/overworld.png index 6011e19040c8d4b2e95fd5d5d7d8ad28e16db7ae..f5aa7ddfeb6620ea4e2efdb84f2c57e11c09a137 100644 GIT binary patch delta 685 zcmV;e0#g0R2FV7HsDF$}L_t(oh3%Eywxb{ng#k&BderxS+u0lJ%te6|XVzSquC8jo z7}{U*7yO?D7-56^Kwgb9yGw%$7Wi;6xnHV0 z;>MVmyu`m;8Wpm*llWGMix6a*m%!{1_1)sNJjLa+Ko&0^)rCIsV*!gxtO7gwOkU!L zQXl%Y*B^0rZ4j=}(rd6PE8pOL-=WZHG29;K z>8JR4QlScreB1XaUXql`JMxDd0k@sI6bDV>9zBn;;MW|thZoJ{Sp@|y34hCrJ~kB_ zwYk46F3`7QlOQ_QSXV*8PMP4iJtcwV44))B6aJo;BoPzUL7Cba3^@Xdtc1e_@29~Nhl3!+|0n>oGeYk>Xx7S&lE>?LWLMGDDCjX4m5ael4K!o z4~fAYcW6SDF`*p~atK^IoG)lRn|WHc-y=LfF+SSlY!dj2cU=1|QF(?#M?aQu@>6Ip zLw@1X;Z%iVg1l1z#^(a<60;@xGdhGYNHXv!@+JoG9jIFXo15`%0pCb`?0?!XRrn)- TCA>T~00000NkvXXu0mjf<4sKE delta 684 zcmV;d0#p6T2FM1GsDFz|L_t(oh3%Eywxb{ng#k%`derxS+u0lJ%te7zXVzSquD04Q z4Ld)ebB{gt*kg}9_BK!Z3;s_6%&@_Ipp88&4u@q~rU9lL>LTLb4 zh;dM+ImeH|$8m`)?%vU3h+Pkhvp+S%h%$Er%sJyTcw~Zu^?#?F-KD_=3w*ek+%HWY zac4|SUgMuGoeEjpNqj5BMF?`4*TC!%_1)sFJk{m1Ko+ka&4oVkV*!gxYyt=ROkU%M zS|9rL*Pn5BZV;}~({FNV^I3Pwpv6=Ej^EOh&lxj$)OdO*_Q?&-*vsj1ho2+Xcd$4L zq)C-tii_Ten1B3ti^2_F59xN$*PZ^6fWfgsN;xYm=ahOQV)624#>x%ulnay;YLz-O zW^!F#uMB&=7S-$AX%VJbmyoLYxp1ZS2C=F`d&A{NCEKS1d*01)K z5`#PL(1a>uLI)n?5SRy?4`}?i@U-kdM|gf>e6-8iB=C%9T>mN2c!9$}KbCOvQ|Tx} zzTq<9RE1-Ld{6+!=K}o_vnBd7JA^PuGV!SLCMED4XjlN7oAGS{-$;Dyf7&l_nj?e? S)k1av0000EKgDgPHfC`ii|MH@kjpT%*&8v&Z*w{ejSej&rglEJ^|F$+3ADuV|YMFEmEVgV=- z@=s~Bpd z92Y>)VAVQ2EY5CqghsxpcBR)P2Td#>(4>v>_AKkRh5!CU~0->#D3Tr2L;o5PR ze~ix}usqyU>8H-%fIIqe=enXmz)j$X3a0CtoDA6TVZ6FKFa+5Uf|dTf9qFbvq} zCl`0+!vlz-rzOs_U5y!_9X}%Ud6fVKg(aZU&)!yAE{YV*ERO<}GST1R#XZkKgHSr_ zsYsf`m(yXx{yGIFhGqUnZ-7o<02#8vR|E2ZTwelIC=*KYLz2{ zcR`dE{9F7CF5toy_jcKBDtb_8eN``GwM1q@6rBqKlAj9rGuqA$7Hg7*OImlwr}{9W z2*HUR6nju%989(g%nX0S#Vw`nHuD}!3UBw0bC%3mXPopfuGDc{z41>SPon}n%iJnP zkexEk0sf`o o;cdJ7;p@5y!|&D%zwNKLKaKSm>VEnrXaE2J07*qoM6N<$f-n`{0RR91 delta 1090 zcmV-I1iky?2(1Z_7#Rcu0002CwraKj000DMK}|sb0I`n?{9y%=AsZ1e008P>0026e z000+ooVrmwkxerl0b)x>L;#2d9Y_EG00(qQO+^Rh0SyKt6k|Pn{E>Yhe`-lYK~zY` z?Uq4r+cp%(B?tz36eG1%k0$j2Bub9l-DGjdjxGYZ@Hw#Vj6AScBN*a)-~l=J((|?t zxJOB(sBCu7?l$zni1iEk-v5#BQMBXyu))wP{9nzTpJOlUzico(+H1__=h!1%P?o4? zM$Lreg~Mg`$b6a~83kFKe`trCB;PII!?xtrgnOIa#?|29aax}Xm|te5QVY31;X$Bb zJaN4H7MxbsJDq`I+d}^my9_qk<)y``8LaO})dlocbhkbu;O#H5iwU_;FpsiqWSzmR zsafpj`+X9U#YV3{@erzW@?>kC9m6{Q6#<*?MMkK_dg^s^8wc@ze@{cYX@&rvVqGqh zB@UDKiIXv+yR74J!cYyxDfr*BP*q8!f=-?z!Xlr#t=9Rr!spCm^8mT}_s7ln)ky0Jhk5)n^d6 z-kmz0of>m16s_q25GW$xC1$n&oR`!h1_CzQ6F2L1fB&@J+zwIQ!!kV>Un-Ge+>WCvmAeN zNkl^=H?|q2DdmG2d&q=_|`7yfHQG|`d8qNdm%umE~&J>aK0es_z1;3u38c${e z!L509!5E;!;lSYr&JK}9jt#OLYFvM90MNU}oyYeIfQNjQAL9- zi{ec!Nc-${jV^MebsFL_K`{tfdIP6iOu|~_bC3g@3^2wQKAhY1P+fu^CzE(>X{8l= zF7iT$w2bnFuNW=?Nw>Ji`JNT&w{V~H+`za4uW;FDDb)&Kl<0AJZ@~*(thM~Tz*`Z! gz!g3<_0RMLS)m;|IWbwH000UA07*qoM6N<$f^RR&UH||9 delta 617 zcmZ3+a*K6>gd__y0|UdhZCTrZ6id3JuOkD)#(wTUiL4V9r3DQb7+xhXFj&oCU=S~u zvn$YMqOX}OW0JSK3quF1tOrmFdx@v7EBiA>UN&W(g1{%MCN{{|Pw{kd4DmSr_L5bhvm$LAs5d%c~0&#F`Ii-yzKJA)y$QG*OnPxYz=&q=ThEuTzthZ-ajF>mqq$! zeHYqolDXsU@%iQD{RbjKf#B-@l~JqTgsuJg*zxApwAZWl)LEOX^v$!}d#U*!bLrip z9hJU$yl!*$1U&y$e0(8$Mg8`a><<~!`BxO@elXb@`)Oa}GUnaWB4YTUpn> zZy|HrUGuwBcR#$Tzxdyi>uIII*KemJpLLwfI5F|YwnF)5-!4pxzu_|blZ-kaj~|;E z%l4Q}0xEm%7Aoq#v5X1OE}k=^;>9CrH-)gehpG(^@)!i3`7tqGIW=b^v&xI4`U8wX z3VjN*I}`YJ?{PF^o{_&#I)P8=#HT+w4TmaJ8&sG4+@r6)^Zw(foDW2DomYNj@#y7E zpTISrXU4;+T-i$J6mG9=IW&9iof{umc3beJruEj=+&M1KrLWNYB<q42`r6EUXL+ jrUs~dMA49&pOTqYiCe=He%?90KphO8u6{1-oD!M}+(Z6UMD&RB$dC9#5lz!{5%G>YKZn`3i+snQ%1yIsYRz!V=T)EbEbpDW8q(xG zAl!tI!Pkwy;NJU>IaY{Z7!~FzRQG@RiVMrTK&=uTI7V0eLDL~)X!v(t`t^J&by_9e zX0kWA<`RkARw3sq0o{QUMX`QyF7J?Q_;)VWKWKk{rS;{2#X-I1B23Zi6u7;QwSXti zBGw;y&OI`7toTpd`XS;m90S^Yyx{^dK>Fx%&W}5$GcV=`_1h8iET#X6PP_%~kqlbpV&_=P__hl>>^o-U^$rG3zCS{y!=3D*C2-qQOeU-v5Sye$k&V{0pX kU*+ohkM6s>cm17y0D6}hYsJo4u>b%707*qoM6N<$f<$K|YybcN delta 706 zcmX@bx`SUN&WpavO!s6WiqK8Q*xiIEHu}e|u%4 z-)#p8_7B?gCRp8wXiD*xWjX5n^oNe>b4C3FEGM{>g+k|;Iz9XBrIj*4B4ba1q~ofP zc}z#R^c~|`KHn_g=hnM9Y^r_g&!6&tYs)t_2iShS66|mL|6)zl!>P$zSG~2o8h2A( zX4|SglJj4O##J&fH#BQ8AE@7P=q3+u?M`{Pk)Bmb5$3H8}o4D9i|6%L#U-$R=1zR*5zp~nS_fW{1dJEpo z%GPtc_G~zD@iyOqFd5hQua|g_uDi>+o_n9^dGjB7I$ZLTPAhoS-RX|mapGe3AudL> zMFj_MSsNaH|1i_|=uX44Z@UhiOJxWwQ2ac9XSdA4^OFtC-WzNcSzbOR>L~Aqw{MSa z@IBHb@bKI1MHk9$&Xm`(+o>zjC2hQbq$R|jEt;|O|1+pv<)n*3=IBuRVzYt eKsDs%r(~v8;?~e}{qS6%1_n=8KbLh*2~7Z$1u?4t diff --git a/graphics/pokemon/stunky/overworld.png b/graphics/pokemon/stunky/overworld.png index fb36b0cb876312e96a79fa6c92162d614de444a7..350aac0b4d3b62ec26691b8d633e5d22d0fa7bcc 100644 GIT binary patch delta 20 ccmdnYx|Vf90HfB#Ks}adwYj%9c4{#J07sDq=>Px# delta 26 ecmZ3>x|wxC0HeXgKs_!7FkqFPAG@(xiwOW&A_f!y diff --git a/graphics/pokemon/torkoal/overworld.png b/graphics/pokemon/torkoal/overworld.png index c3a22a1fb0b5f4d6641a07880cbb96ce30023546..29cb8a45e1ac878ee00c0737d47a39466936248b 100644 GIT binary patch delta 708 zcmV;#0z3Vy2Dt{1BrPCgNK#Dz0D2|>0Dy!50Qvv`0D$NK0Cg__0P0@=06Lcd02gq4 z6}kZc001PBGAINF@=nu{Y99fJk%}RIZ7mPf2$gR@?y~;~=)|Jg-!MpIwbCyP&`rIG|7K63^b8Z#RS;|#b zH-YoaE_#)_z{~=fIn8KRm}TC7EWE-)aD!CmXl|#sIU4A5mYB~FCZ^1ix&%8M5(Ozm%)GQ(a;cIF)??!|;wBJzMikd4?3i&dFyu7I z*SfCiXD@PACSued0+}!UUT;U-)>ligO%$;dSIg{xv%#jf53hZo8o@q)cac$Dp_}BX zrsrK#pZgkZQ-w!stsZeR=y@r*X(ph@T_A_n6fW*j<*@7Pa-}<)Bv#@4q}ihZtHPbD zRviF)zLl6!>l<-XDC|UuFst1A93R*{t}!K6S+ao3r=9fM#CNl<{2}TV~rz%f@;0#uNy? z-C`kF1RtsM4mCy@)$*6G7FZ1Ke+g07Kxq=&^tJ@L!Hu_mzTG7y?5B-CK6{5YuIzMM qUi$gP3;gKR?!ULbr00(R82Gl{ny-9??#5mjihCY9?vK9n3jrmI*L?W=VkO|F@^TB z+xqDP{z(ZUnL;jcEGDg7xX!)LvMy|&Sst2sfAlxvA<)$}Lp0dXf6igzM7TkL4ylI9DlmS=|KAGrQ zf3WZh55Wymou_$SD+3*l2^0t}6OX~az+@{B01PuMZzU|`5;kgs)J)$d;9tW3nHKLj#g`n}(d zxb3f&U|T3+DXzBJ0cV3PZ=YU!Lp6haf9@iqx~s9V?s1JNvC4dxiI7U58T`SyppJ)?R0j7Xp>gJCzOZq2XrDHiBlTfyh*%%Hf1mji z*01=*A8O08Ak+fg;5TRQg8|JPk;Bp+=dV68+fiCJ&WAUaK=9)h3&A4zOr3YAG0Lo# zzkId8VsQUUh`I(!lh~oRCD09Sy!G|%DJfyUZT#`sJG60Sr`z(<*Dnt6qf@*8-ujZB dJN{$*1JsBiul*Fl_W%F@07*qo1w^hwV1hx*P#ypP diff --git a/graphics/pokemon/wooper/overworld.png b/graphics/pokemon/wooper/overworld.png index 28fd4df96c43383c3dbf6cad4beb96654c00dac9..471039362dee25ceb3b2c399afe60a337b53d573 100644 GIT binary patch delta 360 zcmV-u0hj*$1Ly;gPyrs1Q6dB=o0sB|i64JGNkljsZ=VJN~KbWO#jHQx8ImK_uR}$7Uc`xh_}rxoLFw= zSKFI`ISh&AZY~%vc`U$-05@`3l&^SiUHReo!D=_>`Afjl{1?{6{-?Zu*`;A3jhlbd zob*`XG>?G(d^-1Z1CZN8CDkD^)cQ{+u;QW-@iX3Rf0l9bY~JKCWQ%C+X9IrWlC%(5 zZ*`atr(L?tyB|C;gh_oqxg)sfbch!4yMA8kM<4KbO^J4uZ22D!deAUY?%26bx&J)UA$^9~zuwD=xKuKO=8Hz71r zwKz{I_4i@dRU)gY>xb4Z!dw8VC zc>k<>JZBO;bjphlR-C;1VM5KJmk(YtF-&*;(e?e>%>6RA`|r+quFpE}nSX@%>-nGl zom#pE57uYb9tr6i{F=bF6VBzV>UIU{Y1cN`?m+Wy4^bGe@uJ5SxUY7vs%Ae zbmz3XYY)WrJh>V_inaeNxV6;({)Y5<5{H)Dn}0_zrsS53_6PGixmSz%D{7Xx?DqQh zgPq+nV}?fgo0#Qy?(^qQTvGpd#`~YT<{B4%9^l>}=^xHzv%|-}&7@`@dxh1_AI$e^ z*mP|-L=?BhW^i|GV*0LhFtMeK*F;(49`~1j+!_<^FbGxf)kHv_#`HjYNfWs>Yr3FiAe|zSOT= zsiy$}X&e1zA}Lo|I0yA<7$)@wNWzZm_Qjt#)JKT(6($S@dlLf+gselJN=SQ$$0TXw zGz)Iea~kSddJA(!<^So%?^366#3^ z#VhJ5&5#Cx!(LhsjvtPk@hVeDI3{?sCz3Q9WXMJAW)r$Q_vw6ihoEm}gh2<`eQXdW zT)EV1`*`DV;522&a|J9Ja(F`Eh8;EO62gRgp3a9`_E?`TAxi7D0e~#8r=+q7cU)7T z0XwJbuoMPG9eaGowOvXB$31_>T0Nfqj_2-VMrP~p6C84STtr0EpL9SR9BSh|B1-cL*P=XlUR&#}pI z`ZD8?o^^p5H~kW&uM!m=^w0B#ae~jxxRkzcZ=Ch|b%_-Jp;@_FAN50z>T7%n_M>ia z^t|RA)+0}?hwf3m?2?$G)6gMgl=#lbSKj}@`g+QUN&W}nMRKDCw9u$3wpXZhIkx*d&w~S zwu1=!hj2cV(iIEmJAAwL^h4yPha%3a7YBcMwDO8TbF=tF&DOdGk*rrx67U? z_Qu^PtL3oB92#GROWTo~(Vlbb^2UN#V_F7d&+TRrBFX<&>uxCcjRI?<$GdGJC%K27UP% zv-3UHzU7x(e2drl;li?m(#NC~--_Qof6o2v#TN!A%pz89y_1|H)e?~_!`&a+cTc!J zaS7X$DnzOe= zZL|KNFv(wrza>*geqx+$oT}&Z>wPv2j{;^KdnL{&bZi0JlFf{(-=DKueYa6nJZkw$ z@k<=b-HPN^+U#$bdsc$YRH64%qu9@XJu*+<8`PJ66I*DSoMV38Gi#FRi=(gS{kyw- z+m^=1RbN9n(z;uv-^l)-^Fn+I@3~#C-;|zxCeQj`=SM_ z!kaa9ixOf;$`t`Q|Ei6yC4 z$wjF^iowXh$Vk_~P}k5X#K_3X*wo6yy*=T4Y~O#nQ4`{H55`meT diff --git a/graphics/pokemon/yanma/overworld.png b/graphics/pokemon/yanma/overworld.png index bc4288ef4b9849680ed98a6ca6767846f26a7ec9..fbd1be82bdf4d42c2cf5af4a27f65ae288077d47 100644 GIT binary patch delta 876 zcmV-y1C#vw2loe%PysEGQ85G(A&>x(i64JGNklDPcO*eD zP>j=b9<5c9HoGzB2yr`(C!ToXi6@?DAq4$=$))Vye$P1oO8YK^5*pi=TpDey)#lQ` z4W|I-fZC^uhtOJs4<7LSJ8pak!J9R`=LhR|+2TM_qqvED=qD$|t?TVzBV@gDwG(W1xr`R`z3VJpU*$ zt!aLcM1=<4<)9b58==Obbcn{mV}?D@K(eH_22#jl#GJ>cS6J=FDlpFWOBb;jh%gV3 zrqzK93=5^^S6eMEI1C)BTIZzXF_w}RWA+56em8K}IcNzGEKtn$TLP+q$$o#;SA&)~ zU2`7ZTh5;I)9Hy&W(w{!&^{~uE8yrjg=+R{0+hlzuGD1zOhDsqa)4q?!YBf9nrR(K zbX!~YykrEU%oItrG(C@nzso(omguE20qVYAB4=fywtawD&qrt#iLqw5=AAdecL_t(oh3%JFmg67{MGZoXf&DMH zB|)$u*iNVW(>g^`m0L0I2{CQk6Hh$x#1l{SP>O$k$!)b?8_qmbH1y7mWNyNNzaK*K263+~D?!A#VJ)nES5CTr0 z4IXwrht8!cj3uwC{EDNa`N4SsBPBHVyz{j|`pT=ym04EhzgCsl`Sbw#wl3MR!sv3* z3;QFVf~GbVCW&PAp9$Xi>t%r3Y=BI8?tc=gM34p5PmT(!!OHg!4hevgB1bB)vY$%l z<)g$9d48}&Lk8aEfD3*Yq0XUpNX8*hh6C_Gilny&Rw!d6T*l|9u-Q#bV4CgME>bs; zU>+dk)j;29jX%!1Ba&8d#z=a(V7=y@dUemKX89=&=a6UpqlOX1T+Ja{ePyf z1ut>favtAX&NY{(^An-Y6xwN^e^&c9AaURvrrT=?Fox#1F_Zm00iFBF0g17hq6(yG zh8S6NUt6wu%?L%EDS->kzl)}3SlkSpmx9Xo1c0ovFxlS|(D}i>1dVLTRbhzEQ5TK` zI_K4Qd~46dw$otyyXUWF?8sYAVSh>hJv2`CTLMPD+phvk_M*@_FwW3^Pf6CX&w)G6 zL1(l&Q}_jsN48eLFmMRY+FXT%=La~I&ib%Vt}^F zwpYeXTjjx=sQKjMQo`p{lx+g16KhMrz~^}!qSA$y*LD`FK;tKeH5Ub1d4EwDv!~y; zIc~VBV@L@WFGti8F!IrU2s%-m?X;aMI6dsCP4g(xGM6*`w#^FfIR6Lbgi3Q;uy6QQ zk3wwV^fby#v{@gwMPQxk<3e3q6Nexq#$$`DlS>@y2 zb;oH=$!1SQVwYEzJ1%`(-&tpfUkni`O3Bg&VX4;E6>`Zb!|lFvIs(^R;^syPH$y}l zv^%*Be8aWZNbP6-Mf}s1^FAoImsj>X{zd%TrT>ZlAAbOakT6mOhI7FH0000 Date: Tue, 10 Sep 2024 17:52:49 -0400 Subject: [PATCH 09/11] Fix stat id check (#5366) --- src/battle_ai_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 06735d6015..d50410186f 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -863,7 +863,7 @@ static bool32 AI_IsMoveEffectInPlus(u32 battlerAtk, u32 battlerDef, u32 move, s3 case MOVE_EFFECT_SP_DEF_MINUS_2: case MOVE_EFFECT_ACC_MINUS_2: case MOVE_EFFECT_EVS_MINUS_2: - if (ShouldLowerStat(battlerDef, abilityDef, STAT_ATK + (gMovesInfo[move].additionalEffects[i].moveEffect - MOVE_EFFECT_ATK_MINUS_1)) && noOfHitsToKo != 1) + if (ShouldLowerStat(battlerDef, abilityDef, STAT_ATK + (gMovesInfo[move].additionalEffects[i].moveEffect - MOVE_EFFECT_ATK_MINUS_2)) && noOfHitsToKo != 1) return TRUE; break; } From c57d149003929c71f7b44c27841c432ad39018ac Mon Sep 17 00:00:00 2001 From: hedara90 <90hedara@gmail.com> Date: Tue, 10 Sep 2024 23:53:55 +0200 Subject: [PATCH 10/11] Fixes with Pledge combos and absorption abilities (#5364) * Fixes with Pledge combos and absorption moves * Fixed incorrect merge * Removed superflous if statement --------- Co-authored-by: Hedara --- src/battle_util.c | 4 + test/battle/move_effect/pledge.c | 213 +++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+) diff --git a/src/battle_util.c b/src/battle_util.c index f6c577a31c..b2cf51ba0c 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5313,6 +5313,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } if (caseID == ABILITYEFFECT_WOULD_ABSORB) { + gBattleStruct->pledgeMove = FALSE; if (effect && gLastUsedAbility != 0xFFFF) RecordAbilityBattle(battler, gLastUsedAbility); @@ -5320,6 +5321,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } else if (effect == 1) // Drain Hp ability. { + gBattleStruct->pledgeMove = FALSE; if (BATTLER_MAX_HP(battler) || (B_HEAL_BLOCKING >= GEN_5 && gStatuses3[battler] & STATUS3_HEAL_BLOCK)) { if ((gProtectStructs[gBattlerAttacker].notFirstStrike)) @@ -5342,6 +5344,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } else if (effect == 2) // Boost Stat ability; { + gBattleStruct->pledgeMove = FALSE; if (!CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN)) { if ((gProtectStructs[gBattlerAttacker].notFirstStrike)) @@ -5363,6 +5366,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } else if (effect == 3) { + gBattleStruct->pledgeMove = FALSE; if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_BOOST; diff --git a/test/battle/move_effect/pledge.c b/test/battle/move_effect/pledge.c index 2220b74186..d2cc16aa47 100644 --- a/test/battle/move_effect/pledge.c +++ b/test/battle/move_effect/pledge.c @@ -836,3 +836,216 @@ DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move HP_BAR(opponentLeft); } } + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Electrify") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_ELECTRIFY].effect == EFFECT_ELECTRIFY); + PLAYER(SPECIES_MAROWAK) { Ability(ABILITY_LIGHTNING_ROD); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerRight, MOVE_ELECTRIFY, target: opponentRight); + MOVE(opponentLeft, MOVE_GRASS_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_FIRE_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Storm Drain") +{ + GIVEN { + PLAYER(SPECIES_GASTRODON) { Ability(ABILITY_STORM_DRAIN); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_FIRE_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_WATER_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Sap Sipper") +{ + GIVEN { + PLAYER(SPECIES_GOODRA) { Ability(ABILITY_SAP_SIPPER); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_WATER_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_GRASS_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Dry Skin") +{ + GIVEN { + PLAYER(SPECIES_PARASECT) { Ability(ABILITY_DRY_SKIN); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_FIRE_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_WATER_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Flash Fire") +{ + GIVEN { + PLAYER(SPECIES_HEATRAN) { Ability(ABILITY_FLASH_FIRE); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_GRASS_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_FIRE_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Motor Drive") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_ELECTRIFY].effect == EFFECT_ELECTRIFY); + PLAYER(SPECIES_ELECTIVIRE) { Ability(ABILITY_MOTOR_DRIVE); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerRight, MOVE_ELECTRIFY, target: opponentRight); + MOVE(opponentLeft, MOVE_WATER_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_GRASS_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Volt Absorb") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_ELECTRIFY].effect == EFFECT_ELECTRIFY); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerRight, MOVE_ELECTRIFY, target: opponentRight); + MOVE(opponentLeft, MOVE_WATER_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_GRASS_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Water Absorb") +{ + GIVEN { + PLAYER(SPECIES_VAPOREON) { Ability(ABILITY_WATER_ABSORB); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_FIRE_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_WATER_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge move combo doesn't trigger on opponent's Pledge move - Well Baked Body") +{ + GIVEN { + PLAYER(SPECIES_DACHSBUN) { Ability(ABILITY_WELL_BAKED_BODY); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_GRASS_PLEDGE, target: playerLeft); + MOVE(opponentRight, MOVE_FIRE_PLEDGE, target: playerLeft); + MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentRight); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} From cdf781f7262cb5b4c456aaa159adfe4f72f3b205 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Wed, 11 Sep 2024 06:18:58 -0300 Subject: [PATCH 11/11] Fixed Toxic Thread stat increase (#5369) --- data/battle_scripts_1.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index c24dacb5c4..e042201d94 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1838,7 +1838,7 @@ BattleScript_HitSwitchTargetForceRandomSwitchFailed: goto BattleScript_MoveEnd BattleScript_EffectToxicThread:: - setstatchanger STAT_SPEED, 2, TRUE + setstatchanger STAT_SPEED, 1, TRUE attackcanceler jumpifsubstituteblocks BattleScript_FailedFromAtkString jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_ToxicThreadWorks