From d28afca97269fab62319c5244d7feffae7e678f4 Mon Sep 17 00:00:00 2001 From: SuppaiNeko Date: Fri, 7 Apr 2023 19:22:49 -0700 Subject: [PATCH] Merged Emerald Expansion and Follower Pokemon --- asm/macros/event.inc | 49 + asm/macros/map.inc | 14 +- asm/macros/movement.inc | 6 + data/event_scripts.s | 1 + data/field_effect_scripts.s | 15 + .../AbandonedShip_CaptainsOffice/scripts.inc | 2 +- .../AbandonedShip_HiddenFloorRooms/map.json | 2 +- .../map.json | 13 + .../scripts.inc | 5 + data/script_cmd_table.inc | 4 + data/scripts/field_move_scripts.inc | 66 + data/scripts/mauville_man.inc | 10 +- data/scripts/pkmn_center_nurse.inc | 8 + data/specials.inc | 4 +- docs/bugs_and_glitches.md | 51 + gflib/sprite.c | 71 + graphics/door_anims/battle_tower_corridor.png | Bin 0 -> 404 bytes graphics/door_anims/unknown.png | Bin 0 -> 394 bytes graphics/field_effects/pics/bug_tracks.png | Bin 0 -> 275 bytes .../field_effects/pics/expanding_sparkle.png | Bin 0 -> 299 bytes .../field_effects/pics/slither_tracks.png | Bin 0 -> 354 bytes graphics/field_effects/pics/spot_tracks.png | Bin 0 -> 269 bytes .../object_events/palettes/cherish_ball.pal | 19 + graphics/object_events/palettes/dive_ball.pal | 19 + .../object_events/palettes/dream_ball.pal | 19 + graphics/object_events/palettes/dusk_ball.pal | 19 + graphics/object_events/palettes/fast_ball.pal | 19 + .../object_events/palettes/followers/abra.pal | 19 + .../palettes/followers/absol.pal | 19 + .../palettes/followers/aerodactyl.pal | 19 + .../palettes/followers/aggron.pal | 19 + .../palettes/followers/aipom.pal | 19 + .../palettes/followers/alakazam.pal | 19 + .../palettes/followers/altaria.pal | 19 + .../palettes/followers/ampharos.pal | 19 + .../palettes/followers/anorith.pal | 19 + .../palettes/followers/arbok.pal | 19 + .../palettes/followers/arcanine.pal | 19 + .../palettes/followers/ariados.pal | 19 + .../palettes/followers/armaldo.pal | 19 + .../object_events/palettes/followers/aron.pal | 19 + .../palettes/followers/articuno.pal | 19 + .../palettes/followers/azumarill.pal | 19 + .../palettes/followers/azurill.pal | 19 + .../palettes/followers/bagon.pal | 19 + .../palettes/followers/baltoy.pal | 19 + .../palettes/followers/banette.pal | 19 + .../palettes/followers/barboach.pal | 19 + .../palettes/followers/bayleef.pal | 19 + .../palettes/followers/beautifly.pal | 19 + .../palettes/followers/beedrill.pal | 19 + .../palettes/followers/beldum.pal | 19 + .../palettes/followers/bellossom.pal | 19 + .../palettes/followers/bellsprout.pal | 19 + .../palettes/followers/blastoise.pal | 19 + .../palettes/followers/blaziken.pal | 19 + .../palettes/followers/blissey.pal | 19 + .../palettes/followers/breloom.pal | 19 + .../palettes/followers/bulbasaur1.pal | 19 + .../palettes/followers/burmy_sand.pal | 19 + .../palettes/followers/burmy_trash.pal | 19 + .../palettes/followers/butterfree.pal | 19 + .../palettes/followers/cacnea.pal | 19 + .../palettes/followers/cacturne.pal | 19 + .../palettes/followers/camerupt.pal | 19 + .../palettes/followers/carvanha.pal | 19 + .../palettes/followers/cascoon.pal | 19 + .../palettes/followers/castform.pal | 19 + .../palettes/followers/caterpie.pal | 19 + .../palettes/followers/celebi.pal | 19 + .../palettes/followers/chansey.pal | 19 + .../palettes/followers/charizard.pal | 19 + .../palettes/followers/charmander.pal | 19 + .../palettes/followers/charmeleon.pal | 19 + .../palettes/followers/chikorita.pal | 19 + .../palettes/followers/chimecho.pal | 19 + .../palettes/followers/chinchou.pal | 19 + .../palettes/followers/clamperl.pal | 19 + .../palettes/followers/claydol.pal | 19 + .../palettes/followers/clefable.pal | 19 + .../palettes/followers/clefairy.pal | 19 + .../palettes/followers/cleffa.pal | 19 + .../palettes/followers/cloyster.pal | 19 + .../palettes/followers/combusken.pal | 19 + .../palettes/followers/corphish.pal | 19 + .../palettes/followers/corsola.pal | 19 + .../palettes/followers/cradily.pal | 19 + .../palettes/followers/crawdaunt.pal | 19 + .../palettes/followers/crobat.pal | 19 + .../palettes/followers/croconaw.pal | 19 + .../palettes/followers/cubone.pal | 19 + .../palettes/followers/cyndaquil.pal | 19 + .../palettes/followers/delcatty.pal | 19 + .../palettes/followers/delibird.pal | 19 + .../palettes/followers/deoxys.pal | 19 + .../palettes/followers/dewgong.pal | 19 + .../palettes/followers/diglett.pal | 19 + .../palettes/followers/ditto.pal | 19 + .../palettes/followers/dodrio.pal | 19 + .../palettes/followers/doduo.pal | 19 + .../palettes/followers/donphan.pal | 19 + .../palettes/followers/dragonair.pal | 19 + .../palettes/followers/dragonite.pal | 19 + .../palettes/followers/dratini.pal | 19 + .../palettes/followers/drowzee.pal | 19 + .../palettes/followers/dugtrio.pal | 19 + .../palettes/followers/dunsparce.pal | 19 + .../palettes/followers/dusclops.pal | 19 + .../palettes/followers/duskull.pal | 19 + .../palettes/followers/dustox.pal | 19 + .../palettes/followers/eevee.pal | 19 + .../palettes/followers/ekans.pal | 19 + .../palettes/followers/electabuzz.pal | 19 + .../palettes/followers/electrike.pal | 19 + .../palettes/followers/electrode.pal | 19 + .../palettes/followers/elekid.pal | 19 + .../palettes/followers/entei.pal | 19 + .../palettes/followers/espeon.pal | 19 + .../palettes/followers/exeggcute.pal | 19 + .../palettes/followers/exeggutor.pal | 19 + .../palettes/followers/exploud.pal | 19 + .../palettes/followers/farfetchd.pal | 19 + .../palettes/followers/fearow.pal | 19 + .../palettes/followers/feebas.pal | 19 + .../palettes/followers/feraligatr.pal | 19 + .../palettes/followers/flaaffy.pal | 19 + .../palettes/followers/flareon.pal | 19 + .../palettes/followers/flygon.pal | 19 + .../palettes/followers/forretress.pal | 19 + .../palettes/followers/furret.pal | 19 + .../palettes/followers/gardevoir.pal | 19 + .../palettes/followers/gastly.pal | 19 + .../palettes/followers/gengar.pal | 19 + .../palettes/followers/geodude.pal | 19 + .../palettes/followers/girafarig.pal | 19 + .../palettes/followers/glalie.pal | 19 + .../palettes/followers/gligar.pal | 19 + .../palettes/followers/gloom.pal | 19 + .../palettes/followers/golbat.pal | 19 + .../palettes/followers/goldeen.pal | 19 + .../palettes/followers/golduck.pal | 19 + .../palettes/followers/golem.pal | 19 + .../palettes/followers/gorebyss.pal | 19 + .../palettes/followers/granbull.pal | 19 + .../palettes/followers/graveler.pal | 19 + .../palettes/followers/grimer.pal | 19 + .../palettes/followers/groudon.pal | 19 + .../palettes/followers/grovyle.pal | 19 + .../palettes/followers/growlithe.pal | 19 + .../palettes/followers/grumpig.pal | 19 + .../palettes/followers/gulpin.pal | 19 + .../palettes/followers/gyarados.pal | 19 + .../palettes/followers/hariyama.pal | 19 + .../palettes/followers/haunter.pal | 19 + .../palettes/followers/heracross.pal | 19 + .../palettes/followers/hitmonchan.pal | 19 + .../palettes/followers/hitmonlee.pal | 19 + .../palettes/followers/hitmontop.pal | 19 + .../palettes/followers/ho_oh.pal | 19 + .../palettes/followers/hoothoot.pal | 19 + .../palettes/followers/hoppip.pal | 19 + .../palettes/followers/horsea.pal | 19 + .../palettes/followers/houndoom.pal | 19 + .../palettes/followers/houndour.pal | 19 + .../palettes/followers/huntail.pal | 19 + .../palettes/followers/hypno.pal | 19 + .../palettes/followers/igglybuff.pal | 19 + .../palettes/followers/illumise.pal | 19 + .../palettes/followers/ivysaur.pal | 19 + .../palettes/followers/jigglypuff.pal | 19 + .../palettes/followers/jirachi.pal | 19 + .../palettes/followers/jolteon.pal | 19 + .../palettes/followers/jumpluff.pal | 19 + .../object_events/palettes/followers/jynx.pal | 19 + .../palettes/followers/kabuto.pal | 19 + .../palettes/followers/kabutops.pal | 19 + .../palettes/followers/kadabra.pal | 19 + .../palettes/followers/kakuna.pal | 19 + .../palettes/followers/kangaskhan.pal | 19 + .../palettes/followers/kecleon.pal | 19 + .../palettes/followers/kingdra.pal | 19 + .../palettes/followers/kingler.pal | 19 + .../palettes/followers/kirlia.pal | 19 + .../palettes/followers/koffing.pal | 19 + .../palettes/followers/kyogre.pal | 19 + .../palettes/followers/lairon.pal | 19 + .../palettes/followers/lanturn.pal | 19 + .../palettes/followers/lapras.pal | 19 + .../palettes/followers/larvitar.pal | 19 + .../palettes/followers/latias.pal | 19 + .../palettes/followers/latios.pal | 19 + .../palettes/followers/ledian.pal | 19 + .../palettes/followers/ledyba.pal | 19 + .../palettes/followers/lickitung.pal | 19 + .../palettes/followers/lileep.pal | 19 + .../palettes/followers/linoone.pal | 19 + .../palettes/followers/lombre.pal | 19 + .../palettes/followers/lotad.pal | 19 + .../palettes/followers/loudred.pal | 19 + .../palettes/followers/ludicolo.pal | 19 + .../palettes/followers/lugia.pal | 19 + .../palettes/followers/lunatone.pal | 19 + .../palettes/followers/luvdisc.pal | 19 + .../palettes/followers/machamp.pal | 19 + .../palettes/followers/machoke.pal | 19 + .../palettes/followers/machop.pal | 19 + .../palettes/followers/magby.pal | 19 + .../palettes/followers/magcargo.pal | 19 + .../palettes/followers/magikarp.pal | 19 + .../palettes/followers/magmar.pal | 19 + .../palettes/followers/magnemite.pal | 19 + .../palettes/followers/magneton.pal | 19 + .../palettes/followers/makuhita.pal | 19 + .../palettes/followers/manectric.pal | 19 + .../palettes/followers/mankey.pal | 19 + .../palettes/followers/mantine.pal | 19 + .../palettes/followers/mareep.pal | 19 + .../palettes/followers/marill.pal | 19 + .../palettes/followers/marowak.pal | 19 + .../palettes/followers/marshtomp.pal | 19 + .../palettes/followers/masquerain.pal | 19 + .../palettes/followers/mawile.pal | 19 + .../palettes/followers/medicham.pal | 19 + .../palettes/followers/meditite.pal | 19 + .../palettes/followers/meganium.pal | 19 + .../palettes/followers/meowth.pal | 19 + .../palettes/followers/metagross.pal | 19 + .../palettes/followers/metang.pal | 19 + .../palettes/followers/metapod.pal | 19 + .../object_events/palettes/followers/mew.pal | 19 + .../palettes/followers/mewtwo.pal | 19 + .../palettes/followers/mightyena.pal | 19 + .../palettes/followers/milotic.pal | 19 + .../palettes/followers/miltank.pal | 19 + .../palettes/followers/minun.pal | 19 + .../palettes/followers/misdreavus.pal | 19 + .../palettes/followers/moltres.pal | 19 + .../palettes/followers/mr_mime.pal | 19 + .../palettes/followers/mudkip.pal | 19 + .../object_events/palettes/followers/muk.pal | 19 + .../palettes/followers/murkrow.pal | 19 + .../object_events/palettes/followers/natu.pal | 19 + .../palettes/followers/nidoking.pal | 19 + .../palettes/followers/nidoqueen.pal | 19 + .../palettes/followers/nidoran_f.pal | 19 + .../palettes/followers/nidoran_m.pal | 19 + .../palettes/followers/nidorina.pal | 19 + .../palettes/followers/nidorino.pal | 19 + .../palettes/followers/nincada.pal | 19 + .../palettes/followers/ninetales.pal | 19 + .../palettes/followers/ninjask.pal | 19 + .../palettes/followers/noctowl.pal | 19 + .../palettes/followers/nosepass.pal | 19 + .../palettes/followers/numel.pal | 19 + .../palettes/followers/nuzleaf.pal | 19 + .../palettes/followers/octillery.pal | 19 + .../palettes/followers/oddish.pal | 19 + .../palettes/followers/omanyte.pal | 19 + .../palettes/followers/omastar.pal | 19 + .../object_events/palettes/followers/onix.pal | 19 + .../palettes/followers/paras.pal | 19 + .../palettes/followers/parasect.pal | 19 + .../palettes/followers/pelipper.pal | 19 + .../palettes/followers/persian.pal | 19 + .../palettes/followers/phanpy.pal | 19 + .../palettes/followers/pichu.pal | 19 + .../palettes/followers/pidgeot.pal | 19 + .../palettes/followers/pidgeotto.pal | 19 + .../palettes/followers/pidgey.pal | 19 + .../palettes/followers/pikachu.pal | 19 + .../palettes/followers/piloswine.pal | 19 + .../palettes/followers/pineco.pal | 19 + .../palettes/followers/pinsir.pal | 19 + .../palettes/followers/plusle.pal | 19 + .../palettes/followers/politoed.pal | 19 + .../palettes/followers/poliwag.pal | 19 + .../palettes/followers/poliwhirl.pal | 19 + .../palettes/followers/poliwrath.pal | 19 + .../palettes/followers/ponyta.pal | 19 + .../palettes/followers/poochyena.pal | 19 + .../palettes/followers/porygon.pal | 19 + .../palettes/followers/porygon2.pal | 19 + .../palettes/followers/primeape.pal | 19 + .../palettes/followers/psyduck.pal | 19 + .../palettes/followers/pupitar.pal | 19 + .../palettes/followers/quagsire.pal | 19 + .../palettes/followers/quilava.pal | 19 + .../palettes/followers/qwilfish.pal | 19 + .../palettes/followers/raichu.pal | 19 + .../palettes/followers/raikou.pal | 19 + .../palettes/followers/ralts.pal | 19 + .../palettes/followers/rapidash.pal | 19 + .../palettes/followers/raticate.pal | 19 + .../palettes/followers/rattata.pal | 19 + .../palettes/followers/rayquaza.pal | 19 + .../palettes/followers/regice.pal | 19 + .../palettes/followers/regirock.pal | 19 + .../palettes/followers/registeel.pal | 19 + .../palettes/followers/relicanth.pal | 19 + .../palettes/followers/remoraid.pal | 19 + .../palettes/followers/rhydon.pal | 19 + .../palettes/followers/rhyhorn.pal | 19 + .../palettes/followers/roselia.pal | 19 + .../palettes/followers/sableye.pal | 19 + .../palettes/followers/salamence.pal | 19 + .../palettes/followers/sandshrew.pal | 19 + .../palettes/followers/sandslash.pal | 19 + .../palettes/followers/sceptile.pal | 19 + .../palettes/followers/scizor.pal | 19 + .../palettes/followers/scyther.pal | 19 + .../palettes/followers/seadra.pal | 19 + .../palettes/followers/seaking.pal | 19 + .../palettes/followers/sealeo.pal | 19 + .../palettes/followers/seedot.pal | 19 + .../object_events/palettes/followers/seel.pal | 19 + .../palettes/followers/sentret.pal | 19 + .../palettes/followers/seviper.pal | 19 + .../palettes/followers/sharpedo.pal | 19 + .../palettes/followers/shedinja.pal | 19 + .../palettes/followers/shelgon.pal | 19 + .../palettes/followers/shellder.pal | 19 + .../palettes/followers/shiftry.pal | 19 + .../palettes/followers/shroomish.pal | 19 + .../palettes/followers/shuckle.pal | 19 + .../palettes/followers/shuppet.pal | 19 + .../palettes/followers/silcoon.pal | 19 + .../palettes/followers/skarmory.pal | 19 + .../palettes/followers/skiploom.pal | 19 + .../palettes/followers/skitty.pal | 19 + .../palettes/followers/slaking.pal | 19 + .../palettes/followers/slakoth.pal | 19 + .../palettes/followers/slowbro.pal | 19 + .../palettes/followers/slowking.pal | 19 + .../palettes/followers/slowpoke.pal | 19 + .../palettes/followers/slugma.pal | 19 + .../palettes/followers/smeargle.pal | 19 + .../palettes/followers/smoochum.pal | 19 + .../palettes/followers/sneasel.pal | 19 + .../palettes/followers/snorlax.pal | 19 + .../palettes/followers/snorunt.pal | 19 + .../palettes/followers/snubbull.pal | 19 + .../palettes/followers/solrock.pal | 19 + .../palettes/followers/spearow.pal | 19 + .../palettes/followers/spheal.pal | 19 + .../palettes/followers/spinarak.pal | 19 + .../palettes/followers/spinda.pal | 19 + .../palettes/followers/spoink.pal | 19 + .../palettes/followers/squirtle.pal | 19 + .../palettes/followers/stantler.pal | 19 + .../palettes/followers/starmie.pal | 19 + .../palettes/followers/staryu.pal | 19 + .../palettes/followers/steelix.pal | 19 + .../palettes/followers/sudowoodo.pal | 19 + .../palettes/followers/suicune.pal | 19 + .../palettes/followers/sunflora.pal | 19 + .../palettes/followers/sunkern.pal | 19 + .../palettes/followers/surskit.pal | 19 + .../palettes/followers/swablu.pal | 19 + .../palettes/followers/swalot.pal | 19 + .../palettes/followers/swampert.pal | 19 + .../palettes/followers/swellow.pal | 19 + .../palettes/followers/swinub.pal | 19 + .../palettes/followers/taillow.pal | 19 + .../palettes/followers/tangela.pal | 19 + .../palettes/followers/tauros.pal | 19 + .../palettes/followers/teddiursa.pal | 19 + .../palettes/followers/tentacool.pal | 19 + .../palettes/followers/tentacruel.pal | 19 + .../palettes/followers/togepi.pal | 19 + .../palettes/followers/togetic.pal | 19 + .../palettes/followers/torchic.pal | 19 + .../palettes/followers/torkoal.pal | 19 + .../palettes/followers/totodile.pal | 19 + .../palettes/followers/trapinch.pal | 19 + .../palettes/followers/treecko.pal | 19 + .../palettes/followers/tropius.pal | 19 + .../palettes/followers/typhlosion.pal | 19 + .../palettes/followers/tyranitar.pal | 19 + .../palettes/followers/tyrogue.pal | 19 + .../palettes/followers/umbreon.pal | 19 + .../palettes/followers/unown.pal | 19 + .../palettes/followers/ursaring.pal | 19 + .../palettes/followers/vaporeon.pal | 19 + .../palettes/followers/venomoth.pal | 19 + .../palettes/followers/venonat.pal | 19 + .../palettes/followers/venusaur.pal | 19 + .../palettes/followers/vibrava.pal | 19 + .../palettes/followers/victreebel.pal | 19 + .../palettes/followers/vigoroth.pal | 19 + .../palettes/followers/vileplume.pal | 19 + .../palettes/followers/volbeat.pal | 19 + .../palettes/followers/voltorb.pal | 19 + .../palettes/followers/vulpix.pal | 19 + .../palettes/followers/wailmer.pal | 19 + .../palettes/followers/wailord.pal | 19 + .../palettes/followers/walrein.pal | 19 + .../palettes/followers/wartortle.pal | 19 + .../palettes/followers/weedle.pal | 19 + .../palettes/followers/weepinbell.pal | 19 + .../palettes/followers/weezing.pal | 19 + .../palettes/followers/whiscash.pal | 19 + .../palettes/followers/whismur.pal | 19 + .../palettes/followers/wigglytuff.pal | 19 + .../palettes/followers/wingull.pal | 19 + .../palettes/followers/wobbuffet.pal | 19 + .../palettes/followers/wooper.pal | 19 + .../palettes/followers/wurmple.pal | 19 + .../palettes/followers/wynaut.pal | 19 + .../object_events/palettes/followers/xatu.pal | 19 + .../palettes/followers/yanma.pal | 19 + .../palettes/followers/zangoose.pal | 19 + .../palettes/followers/zapdos.pal | 19 + .../palettes/followers/zigzagoon.pal | 19 + .../palettes/followers/zubat.pal | 19 + .../object_events/palettes/friend_ball.pal | 19 + .../object_events/palettes/great_ball.pal | 19 + graphics/object_events/palettes/heal_ball.pal | 19 + .../object_events/palettes/heavy_ball.pal | 19 + .../object_events/palettes/level_ball.pal | 19 + graphics/object_events/palettes/love_ball.pal | 19 + graphics/object_events/palettes/lure_ball.pal | 19 + .../object_events/palettes/luxury_ball.pal | 19 + .../object_events/palettes/master_ball.pal | 19 + graphics/object_events/palettes/moon_ball.pal | 19 + graphics/object_events/palettes/nest_ball.pal | 19 + graphics/object_events/palettes/net_ball.pal | 19 + graphics/object_events/palettes/park_ball.pal | 19 + .../object_events/palettes/premier_ball.pal | 19 + .../object_events/palettes/quick_ball.pal | 19 + .../object_events/palettes/repeat_ball.pal | 19 + .../object_events/palettes/safari_ball.pal | 19 + .../object_events/palettes/sport_ball.pal | 19 + graphics/object_events/palettes/ss_tidal.pal | 4 +- .../palettes/submarine_shadow.pal | 19 - .../object_events/palettes/timer_ball.pal | 19 + .../object_events/palettes/ultra_ball.pal | 19 + .../object_events/pics/misc/cherish_ball.png | Bin 0 -> 203 bytes .../object_events/pics/misc/dive_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/dream_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/dusk_ball.png | Bin 0 -> 204 bytes .../object_events/pics/misc/fast_ball.png | Bin 0 -> 212 bytes .../object_events/pics/misc/friend_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/great_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/heal_ball.png | Bin 0 -> 204 bytes .../object_events/pics/misc/heavy_ball.png | Bin 0 -> 211 bytes .../object_events/pics/misc/level_ball.png | Bin 0 -> 211 bytes .../object_events/pics/misc/love_ball.png | Bin 0 -> 211 bytes .../object_events/pics/misc/lure_ball.png | Bin 0 -> 211 bytes .../object_events/pics/misc/luxury_ball.png | Bin 0 -> 207 bytes .../object_events/pics/misc/master_ball.png | Bin 0 -> 211 bytes .../object_events/pics/misc/moon_ball.png | Bin 0 -> 212 bytes .../object_events/pics/misc/nest_ball.png | Bin 0 -> 210 bytes graphics/object_events/pics/misc/net_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/park_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/premier_ball.png | Bin 0 -> 204 bytes .../object_events/pics/misc/quick_ball.png | Bin 0 -> 204 bytes .../object_events/pics/misc/repeat_ball.png | Bin 0 -> 211 bytes .../object_events/pics/misc/safari_ball.png | Bin 0 -> 210 bytes .../object_events/pics/misc/sport_ball.png | Bin 0 -> 211 bytes graphics/object_events/pics/misc/ss_tidal.png | Bin 693 -> 693 bytes .../pics/misc/submarine_shadow.png | Bin 243 -> 243 bytes .../object_events/pics/misc/timer_ball.png | Bin 0 -> 212 bytes .../object_events/pics/misc/ultra_ball.png | Bin 0 -> 210 bytes .../pics/pokemon/followers/abra.png | Bin 0 -> 554 bytes .../pics/pokemon/followers/absol.png | Bin 0 -> 1043 bytes .../pics/pokemon/followers/aerodactyl.png | Bin 0 -> 1037 bytes .../pics/pokemon/followers/aggron.png | Bin 0 -> 1225 bytes .../pics/pokemon/followers/aipom.png | Bin 0 -> 798 bytes .../pics/pokemon/followers/alakazam.png | Bin 0 -> 808 bytes .../pics/pokemon/followers/altaria.png | Bin 0 -> 1150 bytes .../pics/pokemon/followers/ampharos.png | Bin 0 -> 775 bytes .../pics/pokemon/followers/anorith.png | Bin 0 -> 840 bytes .../pics/pokemon/followers/arbok.png | Bin 0 -> 707 bytes .../pics/pokemon/followers/arcanine.png | Bin 0 -> 1005 bytes .../pics/pokemon/followers/ariados.png | Bin 0 -> 1043 bytes .../pics/pokemon/followers/armaldo.png | Bin 0 -> 1003 bytes .../pics/pokemon/followers/aron.png | Bin 0 -> 463 bytes .../pics/pokemon/followers/articuno.png | Bin 0 -> 1286 bytes .../pics/pokemon/followers/azumarill.png | Bin 0 -> 725 bytes .../pics/pokemon/followers/azurill.png | Bin 0 -> 534 bytes .../pics/pokemon/followers/bagon.png | Bin 0 -> 557 bytes .../pics/pokemon/followers/baltoy.png | Bin 0 -> 453 bytes .../pics/pokemon/followers/banette.png | Bin 0 -> 620 bytes .../pics/pokemon/followers/barboach.png | Bin 0 -> 558 bytes .../pics/pokemon/followers/bayleef.png | Bin 0 -> 745 bytes .../pics/pokemon/followers/beautifly.png | Bin 0 -> 952 bytes .../pics/pokemon/followers/beedrill.png | Bin 0 -> 861 bytes .../pics/pokemon/followers/beldum.png | Bin 0 -> 568 bytes .../pics/pokemon/followers/bellossom.png | Bin 0 -> 699 bytes .../pics/pokemon/followers/bellsprout.png | Bin 0 -> 440 bytes .../pics/pokemon/followers/blastoise.png | Bin 0 -> 955 bytes .../pics/pokemon/followers/blaziken.png | Bin 0 -> 958 bytes .../pics/pokemon/followers/blissey.png | Bin 0 -> 665 bytes .../pics/pokemon/followers/breloom.png | Bin 0 -> 659 bytes .../pics/pokemon/followers/bulbasaur.png | Bin 0 -> 552 bytes .../pics/pokemon/followers/butterfree.png | Bin 0 -> 876 bytes .../pics/pokemon/followers/cacnea.png | Bin 0 -> 606 bytes .../pics/pokemon/followers/cacturne.png | Bin 0 -> 582 bytes .../pics/pokemon/followers/camerupt.png | Bin 0 -> 971 bytes .../pics/pokemon/followers/carvanha.png | Bin 0 -> 768 bytes .../pics/pokemon/followers/cascoon.png | Bin 0 -> 428 bytes .../pics/pokemon/followers/castform.png | Bin 0 -> 405 bytes .../pics/pokemon/followers/caterpie.png | Bin 0 -> 606 bytes .../pics/pokemon/followers/celebi.png | Bin 0 -> 663 bytes .../pics/pokemon/followers/chansey.png | Bin 0 -> 558 bytes .../pics/pokemon/followers/charizard.png | Bin 0 -> 1110 bytes .../pics/pokemon/followers/charmander.png | Bin 0 -> 528 bytes .../pics/pokemon/followers/charmeleon.png | Bin 0 -> 612 bytes .../pics/pokemon/followers/chikorita.png | Bin 0 -> 481 bytes .../pics/pokemon/followers/chimecho.png | Bin 0 -> 412 bytes .../pics/pokemon/followers/chinchou.png | Bin 0 -> 708 bytes .../pics/pokemon/followers/clamperl.png | Bin 0 -> 566 bytes .../pics/pokemon/followers/claydol.png | Bin 0 -> 628 bytes .../pics/pokemon/followers/clefable.png | Bin 0 -> 654 bytes .../pics/pokemon/followers/clefairy.png | Bin 0 -> 512 bytes .../pics/pokemon/followers/cleffa.png | Bin 0 -> 449 bytes .../pics/pokemon/followers/cloyster.png | Bin 0 -> 1096 bytes .../pics/pokemon/followers/combusken.png | Bin 0 -> 602 bytes .../pics/pokemon/followers/corphish.png | Bin 0 -> 889 bytes .../pics/pokemon/followers/corsola.png | Bin 0 -> 669 bytes .../pics/pokemon/followers/cradily.png | Bin 0 -> 1085 bytes .../pics/pokemon/followers/crawdaunt.png | Bin 0 -> 959 bytes .../pics/pokemon/followers/crobat.png | Bin 0 -> 963 bytes .../pics/pokemon/followers/croconaw.png | Bin 0 -> 836 bytes .../pics/pokemon/followers/cubone.png | Bin 0 -> 751 bytes .../pics/pokemon/followers/cyndaquil.png | Bin 0 -> 713 bytes .../pics/pokemon/followers/delcatty.png | Bin 0 -> 761 bytes .../pics/pokemon/followers/delibird.png | Bin 0 -> 676 bytes .../pics/pokemon/followers/deoxys_attack.png | Bin 0 -> 960 bytes .../pics/pokemon/followers/deoxys_defense.png | Bin 0 -> 869 bytes .../pics/pokemon/followers/deoxys_normal.png | Bin 0 -> 897 bytes .../pics/pokemon/followers/deoxys_speed.png | Bin 0 -> 898 bytes .../pics/pokemon/followers/dewgong.png | Bin 0 -> 806 bytes .../pics/pokemon/followers/diglett.png | Bin 0 -> 470 bytes .../pics/pokemon/followers/ditto.png | Bin 0 -> 437 bytes .../pics/pokemon/followers/dodrio.png | Bin 0 -> 1088 bytes .../pics/pokemon/followers/doduo.png | Bin 0 -> 575 bytes .../pics/pokemon/followers/donphan.png | Bin 0 -> 745 bytes .../pics/pokemon/followers/dragonair.png | Bin 0 -> 1103 bytes .../pics/pokemon/followers/dragonite.png | Bin 0 -> 1030 bytes .../pics/pokemon/followers/dratini.png | Bin 0 -> 693 bytes .../pics/pokemon/followers/drowzee.png | Bin 0 -> 582 bytes .../pics/pokemon/followers/dugtrio.png | Bin 0 -> 764 bytes .../pics/pokemon/followers/dunsparce.png | Bin 0 -> 789 bytes .../pics/pokemon/followers/dusclops.png | Bin 0 -> 915 bytes .../pics/pokemon/followers/duskull.png | Bin 0 -> 568 bytes .../pics/pokemon/followers/dustox.png | Bin 0 -> 872 bytes .../pics/pokemon/followers/eevee.png | Bin 0 -> 546 bytes .../pics/pokemon/followers/ekans.png | Bin 0 -> 593 bytes .../pics/pokemon/followers/electabuzz.png | Bin 0 -> 699 bytes .../pics/pokemon/followers/electrike.png | Bin 0 -> 614 bytes .../pics/pokemon/followers/electrode.png | Bin 0 -> 535 bytes .../pics/pokemon/followers/elekid.png | Bin 0 -> 558 bytes .../pics/pokemon/followers/entei.png | Bin 0 -> 1072 bytes .../pics/pokemon/followers/espeon.png | Bin 0 -> 812 bytes .../pics/pokemon/followers/exeggcute.png | Bin 0 -> 875 bytes .../pics/pokemon/followers/exeggutor.png | Bin 0 -> 877 bytes .../pics/pokemon/followers/exploud.png | Bin 0 -> 1163 bytes .../pics/pokemon/followers/farfetchd.png | Bin 0 -> 811 bytes .../pics/pokemon/followers/fearow.png | Bin 0 -> 1072 bytes .../pics/pokemon/followers/feebas.png | Bin 0 -> 588 bytes .../pics/pokemon/followers/feraligatr.png | Bin 0 -> 1090 bytes .../pics/pokemon/followers/flaaffy.png | Bin 0 -> 782 bytes .../pics/pokemon/followers/flareon.png | Bin 0 -> 828 bytes .../pics/pokemon/followers/flygon.png | Bin 0 -> 1067 bytes .../pics/pokemon/followers/forretress.png | Bin 0 -> 620 bytes .../pics/pokemon/followers/furret.png | Bin 0 -> 791 bytes .../pics/pokemon/followers/gardevoir.png | Bin 0 -> 783 bytes .../pics/pokemon/followers/gastly.png | Bin 0 -> 716 bytes .../pics/pokemon/followers/gengar.png | Bin 0 -> 672 bytes .../pics/pokemon/followers/geodude.png | Bin 0 -> 429 bytes .../pics/pokemon/followers/girafarig.png | Bin 0 -> 770 bytes .../pics/pokemon/followers/glalie.png | Bin 0 -> 598 bytes .../pics/pokemon/followers/gligar.png | Bin 0 -> 958 bytes .../pics/pokemon/followers/gloom.png | Bin 0 -> 534 bytes .../pics/pokemon/followers/golbat.png | Bin 0 -> 844 bytes .../pics/pokemon/followers/goldeen.png | Bin 0 -> 773 bytes .../pics/pokemon/followers/golduck.png | Bin 0 -> 644 bytes .../pics/pokemon/followers/golem.png | Bin 0 -> 778 bytes .../pics/pokemon/followers/gorebyss.png | Bin 0 -> 925 bytes .../pics/pokemon/followers/granbull.png | Bin 0 -> 695 bytes .../pics/pokemon/followers/graveler.png | Bin 0 -> 687 bytes .../pics/pokemon/followers/grimer.png | Bin 0 -> 596 bytes .../pics/pokemon/followers/groudon.png | Bin 0 -> 1368 bytes .../pics/pokemon/followers/grovyle.png | Bin 0 -> 658 bytes .../pics/pokemon/followers/growlithe.png | Bin 0 -> 652 bytes .../pics/pokemon/followers/grumpig.png | Bin 0 -> 749 bytes .../pics/pokemon/followers/gulpin.png | Bin 0 -> 562 bytes .../pics/pokemon/followers/gyarados.png | Bin 0 -> 1450 bytes .../pics/pokemon/followers/hariyama.png | Bin 0 -> 1187 bytes .../pics/pokemon/followers/haunter.png | Bin 0 -> 617 bytes .../pics/pokemon/followers/heracross.png | Bin 0 -> 838 bytes .../pics/pokemon/followers/hitmonchan.png | Bin 0 -> 656 bytes .../pics/pokemon/followers/hitmonlee.png | Bin 0 -> 607 bytes .../pics/pokemon/followers/hitmontop.png | Bin 0 -> 591 bytes .../pics/pokemon/followers/ho_oh.png | Bin 0 -> 2252 bytes .../pics/pokemon/followers/hoothoot.png | Bin 0 -> 647 bytes .../pics/pokemon/followers/hoppip.png | Bin 0 -> 595 bytes .../pics/pokemon/followers/horsea.png | Bin 0 -> 561 bytes .../pics/pokemon/followers/houndoom.png | Bin 0 -> 758 bytes .../pics/pokemon/followers/houndour.png | Bin 0 -> 598 bytes .../pics/pokemon/followers/huntail.png | Bin 0 -> 1060 bytes .../pics/pokemon/followers/hypno.png | Bin 0 -> 684 bytes .../pics/pokemon/followers/igglybuff.png | Bin 0 -> 463 bytes .../pics/pokemon/followers/illumise.png | Bin 0 -> 793 bytes .../pics/pokemon/followers/ivysaur.png | Bin 0 -> 657 bytes .../pics/pokemon/followers/jigglypuff.png | Bin 0 -> 483 bytes .../pics/pokemon/followers/jirachi.png | Bin 0 -> 627 bytes .../pics/pokemon/followers/jolteon.png | Bin 0 -> 740 bytes .../pics/pokemon/followers/jumpluff.png | Bin 0 -> 671 bytes .../pics/pokemon/followers/jynx.png | Bin 0 -> 880 bytes .../pics/pokemon/followers/kabuto.png | Bin 0 -> 509 bytes .../pics/pokemon/followers/kabutops.png | Bin 0 -> 833 bytes .../pics/pokemon/followers/kadabra.png | Bin 0 -> 766 bytes .../pics/pokemon/followers/kakuna.png | Bin 0 -> 479 bytes .../pics/pokemon/followers/kangaskhan.png | Bin 0 -> 841 bytes .../pics/pokemon/followers/kecleon.png | Bin 0 -> 739 bytes .../pics/pokemon/followers/kingdra.png | Bin 0 -> 859 bytes .../pics/pokemon/followers/kingler.png | Bin 0 -> 1156 bytes .../pics/pokemon/followers/kirlia.png | Bin 0 -> 551 bytes .../pics/pokemon/followers/koffing.png | Bin 0 -> 644 bytes .../pics/pokemon/followers/krabby.png | Bin 0 -> 542 bytes .../pics/pokemon/followers/kyogre.png | Bin 0 -> 1311 bytes .../pics/pokemon/followers/lairon.png | Bin 0 -> 867 bytes .../pics/pokemon/followers/lanturn.png | Bin 0 -> 947 bytes .../pics/pokemon/followers/lapras.png | Bin 0 -> 940 bytes .../pics/pokemon/followers/larvitar.png | Bin 0 -> 479 bytes .../pics/pokemon/followers/latias.png | Bin 0 -> 1161 bytes .../pics/pokemon/followers/latios.png | Bin 0 -> 1219 bytes .../pics/pokemon/followers/ledian.png | Bin 0 -> 1027 bytes .../pics/pokemon/followers/ledyba.png | Bin 0 -> 1025 bytes .../pics/pokemon/followers/lickitung.png | Bin 0 -> 642 bytes .../pics/pokemon/followers/lileep.png | Bin 0 -> 724 bytes .../pics/pokemon/followers/linoone.png | Bin 0 -> 651 bytes .../pics/pokemon/followers/lombre.png | Bin 0 -> 679 bytes .../pics/pokemon/followers/lotad.png | Bin 0 -> 532 bytes .../pics/pokemon/followers/loudred.png | Bin 0 -> 831 bytes .../pics/pokemon/followers/ludicolo.png | Bin 0 -> 909 bytes .../pics/pokemon/followers/lugia.png | Bin 0 -> 1751 bytes .../pics/pokemon/followers/lunatone.png | Bin 0 -> 461 bytes .../pics/pokemon/followers/luvdisc.png | Bin 0 -> 419 bytes .../pics/pokemon/followers/machamp.png | Bin 0 -> 967 bytes .../pics/pokemon/followers/machoke.png | Bin 0 -> 678 bytes .../pics/pokemon/followers/machop.png | Bin 0 -> 476 bytes .../pics/pokemon/followers/magby.png | Bin 0 -> 545 bytes .../pics/pokemon/followers/magcargo.png | Bin 0 -> 1206 bytes .../pics/pokemon/followers/magikarp.png | Bin 0 -> 840 bytes .../pics/pokemon/followers/magmar.png | Bin 0 -> 881 bytes .../pics/pokemon/followers/magnemite.png | Bin 0 -> 482 bytes .../pics/pokemon/followers/magneton.png | Bin 0 -> 841 bytes .../pics/pokemon/followers/makuhita.png | Bin 0 -> 627 bytes .../pics/pokemon/followers/manectric.png | Bin 0 -> 798 bytes .../pics/pokemon/followers/mankey.png | Bin 0 -> 631 bytes .../pics/pokemon/followers/mantine.png | Bin 0 -> 1002 bytes .../pics/pokemon/followers/mareep.png | Bin 0 -> 722 bytes .../pics/pokemon/followers/marill.png | Bin 0 -> 581 bytes .../pics/pokemon/followers/marowak.png | Bin 0 -> 861 bytes .../pics/pokemon/followers/marshtomp.png | Bin 0 -> 552 bytes .../pics/pokemon/followers/masquerain.png | Bin 0 -> 968 bytes .../pics/pokemon/followers/mawile.png | Bin 0 -> 757 bytes .../pics/pokemon/followers/medicham.png | Bin 0 -> 673 bytes .../pics/pokemon/followers/meditite.png | Bin 0 -> 556 bytes .../pics/pokemon/followers/meganium.png | Bin 0 -> 843 bytes .../pics/pokemon/followers/meowth.png | Bin 0 -> 685 bytes .../pics/pokemon/followers/metagross.png | Bin 0 -> 964 bytes .../pics/pokemon/followers/metang.png | Bin 0 -> 979 bytes .../pics/pokemon/followers/metapod.png | Bin 0 -> 456 bytes .../pics/pokemon/followers/mew.png | Bin 0 -> 618 bytes .../pics/pokemon/followers/mewtwo.png | Bin 0 -> 928 bytes .../pics/pokemon/followers/mightyena.png | Bin 0 -> 803 bytes .../pics/pokemon/followers/milotic.png | Bin 0 -> 1050 bytes .../pics/pokemon/followers/miltank.png | Bin 0 -> 799 bytes .../pics/pokemon/followers/minun.png | Bin 0 -> 483 bytes .../pics/pokemon/followers/misdreavus.png | Bin 0 -> 891 bytes .../pics/pokemon/followers/moltres.png | Bin 0 -> 1158 bytes .../pics/pokemon/followers/mr_mime.png | Bin 0 -> 743 bytes .../pics/pokemon/followers/mudkip.png | Bin 0 -> 461 bytes .../pics/pokemon/followers/muk.png | Bin 0 -> 728 bytes .../pics/pokemon/followers/murkrow.png | Bin 0 -> 509 bytes .../pics/pokemon/followers/natu.png | Bin 0 -> 472 bytes .../pics/pokemon/followers/nidoking.png | Bin 0 -> 799 bytes .../pics/pokemon/followers/nidoqueen.png | Bin 0 -> 830 bytes .../pics/pokemon/followers/nidoran_f.png | Bin 0 -> 496 bytes .../pics/pokemon/followers/nidoran_m.png | Bin 0 -> 525 bytes .../pics/pokemon/followers/nidorina.png | Bin 0 -> 666 bytes .../pics/pokemon/followers/nidorino.png | Bin 0 -> 702 bytes .../pics/pokemon/followers/nincada.png | Bin 0 -> 681 bytes .../pics/pokemon/followers/ninetales.png | Bin 0 -> 810 bytes .../pics/pokemon/followers/ninjask.png | Bin 0 -> 751 bytes .../pics/pokemon/followers/noctowl.png | Bin 0 -> 1114 bytes .../pics/pokemon/followers/nosepass.png | Bin 0 -> 705 bytes .../pics/pokemon/followers/numel.png | Bin 0 -> 848 bytes .../pics/pokemon/followers/nuzleaf.png | Bin 0 -> 624 bytes .../pics/pokemon/followers/octillery.png | Bin 0 -> 691 bytes .../pics/pokemon/followers/oddish.png | Bin 0 -> 412 bytes .../pics/pokemon/followers/omanyte.png | Bin 0 -> 603 bytes .../pics/pokemon/followers/omastar.png | Bin 0 -> 837 bytes .../pics/pokemon/followers/onix.png | Bin 0 -> 1035 bytes .../pics/pokemon/followers/paras.png | Bin 0 -> 625 bytes .../pics/pokemon/followers/parasect.png | Bin 0 -> 778 bytes .../pics/pokemon/followers/pelipper.png | Bin 0 -> 1014 bytes .../pics/pokemon/followers/persian.png | Bin 0 -> 717 bytes .../pics/pokemon/followers/phanpy.png | Bin 0 -> 457 bytes .../pics/pokemon/followers/pichu.png | Bin 0 -> 465 bytes .../pics/pokemon/followers/pidgeot.png | Bin 0 -> 1177 bytes .../pics/pokemon/followers/pidgeotto.png | Bin 0 -> 912 bytes .../pics/pokemon/followers/pidgey.png | Bin 0 -> 444 bytes .../pics/pokemon/followers/pikachu.png | Bin 0 -> 550 bytes .../pics/pokemon/followers/piloswine.png | Bin 0 -> 640 bytes .../pics/pokemon/followers/pineco.png | Bin 0 -> 420 bytes .../pics/pokemon/followers/pinsir.png | Bin 0 -> 788 bytes .../pics/pokemon/followers/plusle.png | Bin 0 -> 489 bytes .../pics/pokemon/followers/politoed.png | Bin 0 -> 751 bytes .../pics/pokemon/followers/poliwag.png | Bin 0 -> 526 bytes .../pics/pokemon/followers/poliwhirl.png | Bin 0 -> 569 bytes .../pics/pokemon/followers/poliwrath.png | Bin 0 -> 747 bytes .../pics/pokemon/followers/ponyta.png | Bin 0 -> 679 bytes .../pics/pokemon/followers/poochyena.png | Bin 0 -> 551 bytes .../pics/pokemon/followers/porygon.png | Bin 0 -> 612 bytes .../pics/pokemon/followers/porygon2.png | Bin 0 -> 592 bytes .../pics/pokemon/followers/primeape.png | Bin 0 -> 806 bytes .../pics/pokemon/followers/psyduck.png | Bin 0 -> 527 bytes .../pics/pokemon/followers/pupitar.png | Bin 0 -> 629 bytes .../pics/pokemon/followers/quagsire.png | Bin 0 -> 625 bytes .../pics/pokemon/followers/quilava.png | Bin 0 -> 1062 bytes .../pics/pokemon/followers/qwilfish.png | Bin 0 -> 633 bytes .../pics/pokemon/followers/raichu.png | Bin 0 -> 805 bytes .../pics/pokemon/followers/raikou.png | Bin 0 -> 1010 bytes .../pics/pokemon/followers/ralts.png | Bin 0 -> 476 bytes .../pics/pokemon/followers/rapidash.png | Bin 0 -> 922 bytes .../pics/pokemon/followers/raticate.png | Bin 0 -> 589 bytes .../pics/pokemon/followers/rattata.png | Bin 0 -> 552 bytes .../pics/pokemon/followers/rayquaza.png | Bin 0 -> 1648 bytes .../pics/pokemon/followers/regice.png | Bin 0 -> 850 bytes .../pics/pokemon/followers/regirock.png | Bin 0 -> 1074 bytes .../pics/pokemon/followers/registeel.png | Bin 0 -> 845 bytes .../pics/pokemon/followers/relicanth.png | Bin 0 -> 864 bytes .../pics/pokemon/followers/remoraid.png | Bin 0 -> 599 bytes .../pics/pokemon/followers/rhydon.png | Bin 0 -> 790 bytes .../pics/pokemon/followers/rhyhorn.png | Bin 0 -> 635 bytes .../pics/pokemon/followers/roselia.png | Bin 0 -> 623 bytes .../pics/pokemon/followers/sableye.png | Bin 0 -> 554 bytes .../pics/pokemon/followers/salamence.png | Bin 0 -> 1027 bytes .../pics/pokemon/followers/sandshrew.png | Bin 0 -> 521 bytes .../pics/pokemon/followers/sandslash.png | Bin 0 -> 729 bytes .../pics/pokemon/followers/sceptile.png | Bin 0 -> 907 bytes .../pics/pokemon/followers/scizor.png | Bin 0 -> 912 bytes .../pics/pokemon/followers/scyther.png | Bin 0 -> 827 bytes .../pics/pokemon/followers/seadra.png | Bin 0 -> 813 bytes .../pics/pokemon/followers/seaking.png | Bin 0 -> 1038 bytes .../pics/pokemon/followers/sealeo.png | Bin 0 -> 820 bytes .../pics/pokemon/followers/seedot.png | Bin 0 -> 442 bytes .../pics/pokemon/followers/seel.png | Bin 0 -> 669 bytes .../pics/pokemon/followers/sentret.png | Bin 0 -> 608 bytes .../pics/pokemon/followers/seviper.png | Bin 0 -> 957 bytes .../pics/pokemon/followers/sharpedo.png | Bin 0 -> 746 bytes .../pics/pokemon/followers/shedinja.png | Bin 0 -> 693 bytes .../pics/pokemon/followers/shelgon.png | Bin 0 -> 596 bytes .../pics/pokemon/followers/shellder.png | Bin 0 -> 577 bytes .../pics/pokemon/followers/shiftry.png | Bin 0 -> 912 bytes .../pics/pokemon/followers/shroomish.png | Bin 0 -> 453 bytes .../pics/pokemon/followers/shuckle.png | Bin 0 -> 594 bytes .../pics/pokemon/followers/shuppet.png | Bin 0 -> 522 bytes .../pics/pokemon/followers/silcoon.png | Bin 0 -> 421 bytes .../pics/pokemon/followers/skarmory.png | Bin 0 -> 1071 bytes .../pics/pokemon/followers/skiploom.png | Bin 0 -> 581 bytes .../pics/pokemon/followers/skitty.png | Bin 0 -> 536 bytes .../pics/pokemon/followers/slaking.png | Bin 0 -> 1015 bytes .../pics/pokemon/followers/slakoth.png | Bin 0 -> 652 bytes .../pics/pokemon/followers/slowbro.png | Bin 0 -> 808 bytes .../pics/pokemon/followers/slowking.png | Bin 0 -> 817 bytes .../pics/pokemon/followers/slowpoke.png | Bin 0 -> 634 bytes .../pics/pokemon/followers/slugma.png | Bin 0 -> 666 bytes .../pics/pokemon/followers/smeargle.png | Bin 0 -> 694 bytes .../pics/pokemon/followers/smoochum.png | Bin 0 -> 541 bytes .../pics/pokemon/followers/sneasel.png | Bin 0 -> 741 bytes .../pics/pokemon/followers/snorlax.png | Bin 0 -> 892 bytes .../pics/pokemon/followers/snorunt.png | Bin 0 -> 481 bytes .../pics/pokemon/followers/snubbull.png | Bin 0 -> 701 bytes .../pics/pokemon/followers/solrock.png | Bin 0 -> 509 bytes .../pics/pokemon/followers/spearow.png | Bin 0 -> 471 bytes .../pics/pokemon/followers/spheal.png | Bin 0 -> 582 bytes .../pics/pokemon/followers/spinarak.png | Bin 0 -> 667 bytes .../pics/pokemon/followers/spinda.png | Bin 0 -> 648 bytes .../pics/pokemon/followers/spoink.png | Bin 0 -> 500 bytes .../pics/pokemon/followers/squirtle.png | Bin 0 -> 439 bytes .../pics/pokemon/followers/stantler.png | Bin 0 -> 745 bytes .../pics/pokemon/followers/starmie.png | Bin 0 -> 703 bytes .../pics/pokemon/followers/staryu.png | Bin 0 -> 512 bytes .../pics/pokemon/followers/steelix.png | Bin 0 -> 1629 bytes .../pics/pokemon/followers/sudowoodo.png | Bin 0 -> 672 bytes .../pics/pokemon/followers/suicune.png | Bin 0 -> 1091 bytes .../pics/pokemon/followers/sunflora.png | Bin 0 -> 605 bytes .../pics/pokemon/followers/sunkern.png | Bin 0 -> 445 bytes .../pics/pokemon/followers/surskit.png | Bin 0 -> 466 bytes .../pics/pokemon/followers/swablu.png | Bin 0 -> 713 bytes .../pics/pokemon/followers/swalot.png | Bin 0 -> 821 bytes .../pics/pokemon/followers/swampert.png | Bin 0 -> 894 bytes .../pics/pokemon/followers/swellow.png | Bin 0 -> 1050 bytes .../pics/pokemon/followers/swinub.png | Bin 0 -> 497 bytes .../pics/pokemon/followers/taillow.png | Bin 0 -> 465 bytes .../pics/pokemon/followers/tangela.png | Bin 0 -> 656 bytes .../pics/pokemon/followers/tauros.png | Bin 0 -> 909 bytes .../pics/pokemon/followers/teddiursa.png | Bin 0 -> 692 bytes .../pics/pokemon/followers/tentacool.png | Bin 0 -> 636 bytes .../pics/pokemon/followers/tentacruel.png | Bin 0 -> 749 bytes .../pics/pokemon/followers/togepi.png | Bin 0 -> 553 bytes .../pics/pokemon/followers/togetic.png | Bin 0 -> 753 bytes .../pics/pokemon/followers/torchic.png | Bin 0 -> 465 bytes .../pics/pokemon/followers/torkoal.png | Bin 0 -> 731 bytes .../pics/pokemon/followers/totodile.png | Bin 0 -> 574 bytes .../pics/pokemon/followers/trapinch.png | Bin 0 -> 461 bytes .../pics/pokemon/followers/treecko.png | Bin 0 -> 452 bytes .../pics/pokemon/followers/tropius.png | Bin 0 -> 1065 bytes .../pics/pokemon/followers/typhlosion.png | Bin 0 -> 1101 bytes .../pics/pokemon/followers/tyranitar.png | Bin 0 -> 940 bytes .../pics/pokemon/followers/tyrogue.png | Bin 0 -> 515 bytes .../pics/pokemon/followers/umbreon.png | Bin 0 -> 739 bytes .../pics/pokemon/followers/unown!.png | Bin 0 -> 282 bytes .../pics/pokemon/followers/unowna.png | Bin 0 -> 319 bytes .../pics/pokemon/followers/unownb.png | Bin 0 -> 347 bytes .../pics/pokemon/followers/unownc.png | Bin 0 -> 396 bytes .../pics/pokemon/followers/unownd.png | Bin 0 -> 357 bytes .../pics/pokemon/followers/unowne.png | Bin 0 -> 347 bytes .../pics/pokemon/followers/unownf.png | Bin 0 -> 378 bytes .../pics/pokemon/followers/unowng.png | Bin 0 -> 357 bytes .../pics/pokemon/followers/unownh.png | Bin 0 -> 355 bytes .../pics/pokemon/followers/unowni.png | Bin 0 -> 313 bytes .../pics/pokemon/followers/unownj.png | Bin 0 -> 327 bytes .../pics/pokemon/followers/unownk.png | Bin 0 -> 336 bytes .../pics/pokemon/followers/unownl.png | Bin 0 -> 329 bytes .../pics/pokemon/followers/unownm.png | Bin 0 -> 345 bytes .../pics/pokemon/followers/unownn.png | Bin 0 -> 357 bytes .../pics/pokemon/followers/unowno.png | Bin 0 -> 349 bytes .../pics/pokemon/followers/unownp.png | Bin 0 -> 317 bytes .../pics/pokemon/followers/unownq.png | Bin 0 -> 358 bytes .../pics/pokemon/followers/unownquestion.png | Bin 0 -> 329 bytes .../pics/pokemon/followers/unownr.png | Bin 0 -> 320 bytes .../pics/pokemon/followers/unowns.png | Bin 0 -> 382 bytes .../pics/pokemon/followers/unownt.png | Bin 0 -> 291 bytes .../pics/pokemon/followers/unownu.png | Bin 0 -> 324 bytes .../pics/pokemon/followers/unownv.png | Bin 0 -> 312 bytes .../pics/pokemon/followers/unownw.png | Bin 0 -> 318 bytes .../pics/pokemon/followers/unownx.png | Bin 0 -> 320 bytes .../pics/pokemon/followers/unowny.png | Bin 0 -> 327 bytes .../pics/pokemon/followers/unownz.png | Bin 0 -> 365 bytes .../pics/pokemon/followers/ursaring.png | Bin 0 -> 844 bytes .../pics/pokemon/followers/vaporeon.png | Bin 0 -> 870 bytes .../pics/pokemon/followers/venomoth.png | Bin 0 -> 1087 bytes .../pics/pokemon/followers/venonat.png | Bin 0 -> 589 bytes .../pics/pokemon/followers/venusaur.png | Bin 0 -> 898 bytes .../pics/pokemon/followers/vibrava.png | Bin 0 -> 916 bytes .../pics/pokemon/followers/victreebel.png | Bin 0 -> 967 bytes .../pics/pokemon/followers/vigoroth.png | Bin 0 -> 759 bytes .../pics/pokemon/followers/vileplume.png | Bin 0 -> 672 bytes .../pics/pokemon/followers/volbeat.png | Bin 0 -> 932 bytes .../pics/pokemon/followers/voltorb.png | Bin 0 -> 349 bytes .../pics/pokemon/followers/vulpix.png | Bin 0 -> 627 bytes .../pics/pokemon/followers/wailmer.png | Bin 0 -> 718 bytes .../pics/pokemon/followers/wailord.png | Bin 0 -> 1151 bytes .../pics/pokemon/followers/walrein.png | Bin 0 -> 1049 bytes .../pics/pokemon/followers/wartortle.png | Bin 0 -> 698 bytes .../pics/pokemon/followers/weedle.png | Bin 0 -> 547 bytes .../pics/pokemon/followers/weepinbell.png | Bin 0 -> 698 bytes .../pics/pokemon/followers/weezing.png | Bin 0 -> 1162 bytes .../pics/pokemon/followers/whiscash.png | Bin 0 -> 787 bytes .../pics/pokemon/followers/whismur.png | Bin 0 -> 501 bytes .../pics/pokemon/followers/wigglytuff.png | Bin 0 -> 602 bytes .../pics/pokemon/followers/wingull.png | Bin 0 -> 652 bytes .../pics/pokemon/followers/wobbuffet.png | Bin 0 -> 551 bytes .../pics/pokemon/followers/wooper.png | Bin 0 -> 446 bytes .../pics/pokemon/followers/wurmple.png | Bin 0 -> 642 bytes .../pics/pokemon/followers/wynaut.png | Bin 0 -> 564 bytes .../pics/pokemon/followers/xatu.png | Bin 0 -> 740 bytes .../pics/pokemon/followers/yanma.png | Bin 0 -> 1038 bytes .../pics/pokemon/followers/zangoose.png | Bin 0 -> 912 bytes .../pics/pokemon/followers/zapdos.png | Bin 0 -> 1073 bytes .../pics/pokemon/followers/zigzagoon.png | Bin 0 -> 769 bytes .../pics/pokemon/followers/zubat.png | Bin 0 -> 644 bytes graphics/pokemon/unown/a/anim_front.png | Bin 0 -> 345 bytes graphics/pokemon/unown/a/back.png | Bin 0 -> 376 bytes graphics/pokemon/unown/a/front.png | Bin 0 -> 337 bytes graphics/pokemon/unown/a/icon.png | Bin 0 -> 245 bytes .../maps_expert/floor_0/collision.bin | Bin .../maps_expert/floor_0/metatiles.bin | 0 .../maps_expert/floor_1/collision.bin | Bin .../maps_expert/floor_1/metatiles.bin | 0 .../maps_expert/floor_2/collision.bin | 0 .../maps_expert/floor_2/metatiles.bin | 0 .../maps_expert/floor_3/collision.bin | Bin .../maps_expert/floor_3/metatiles.bin | 0 .../maps_jp/floor_0/collision.bin | 0 .../maps_jp/floor_0/metatiles.bin | 0 .../maps_jp/floor_1/collision.bin | Bin .../maps_jp/floor_1/metatiles.bin | 0 .../maps_normal/floor_0/collision.bin | 0 .../maps_normal/floor_0/metatiles.bin | 0 .../maps_normal/floor_1/collision.bin | 0 .../maps_normal/floor_1/metatiles.bin | 0 .../maps_normal/floor_2/collision.bin | Bin .../maps_normal/floor_2/metatiles.bin | 0 .../maps_normal/floor_3/collision.bin | Bin .../maps_normal/floor_3/metatiles.bin | 0 .../maps_unique/floor_0/collision.bin | Bin .../maps_unique/floor_0/metatiles.bin | 0 .../maps_unique/floor_1/collision.bin | Bin .../maps_unique/floor_1/metatiles.bin | 0 .../maps_unique/floor_2/collision.bin | Bin .../maps_unique/floor_2/metatiles.bin | 0 .../maps_unique/floor_3/collision.bin | Bin .../maps_unique/floor_3/metatiles.bin | 0 .../maps_variety/floor_0/collision.bin | Bin .../maps_variety/floor_0/metatiles.bin | 0 .../maps_variety/floor_1/collision.bin | Bin .../maps_variety/floor_1/metatiles.bin | 0 .../maps_variety/floor_2/collision.bin | Bin .../maps_variety/floor_2/metatiles.bin | 0 .../maps_variety/floor_3/collision.bin | Bin .../maps_variety/floor_3/metatiles.bin | 0 include/config/pokemon.h | 10 +- include/constants/easy_chat.h | 2 +- include/constants/event_object_movement.h | 11 +- include/constants/event_objects.h | 665 ++- include/constants/field_effects.h | 6 + include/constants/flags.h | 9 +- include/constants/follow_me.h | 19 + include/constants/global.h | 5 + include/easy_chat.h | 4 +- include/event_data.h | 2 +- include/event_object_movement.h | 30 +- include/field_control_avatar.h | 2 +- include/field_effect_helpers.h | 1 + include/field_player_avatar.h | 16 +- include/field_screen_effect.h | 2 + include/field_specials.h | 1 + include/field_weather.h | 11 +- include/fieldmap.h | 4 +- include/fldeff.h | 2 +- include/follow_me.h | 58 + include/global.fieldmap.h | 31 +- include/global.h | 32 +- include/overworld.h | 4 + include/script.h | 3 + ld_script.txt | 14 +- spritesheet_rules.mk | 1261 ++++++ src/anim_mon_front_pics.c | 424 ++ src/battle_main.c | 6 + src/battle_pike.c | 2 +- src/battle_setup.c | 4 + src/bike.c | 4 + src/cable_car.c | 4 +- .../field_effect_object_template_pointers.h | 6 + src/data/field_effects/field_effect_objects.h | 67 +- .../berry_tree_graphics_tables.h | 241 +- .../movement_action_func_tables.h | 28 + .../object_events/movement_type_func_tables.h | 7 + src/data/object_events/object_event_anims.h | 755 ++++ .../object_events/object_event_graphics.h | 806 +++- .../object_event_graphics_info.h | 448 +- .../object_event_graphics_info_pointers.h | 885 +++- .../object_events/object_event_pic_tables.h | 3873 +++++++++++++++++ src/data/pokemon_graphics/front_pic_table.h | 2 +- src/easy_chat.c | 97 +- src/event_data.c | 2 +- src/event_object_movement.c | 2321 ++++++++-- src/field_control_avatar.c | 41 +- src/field_effect.c | 92 +- src/field_effect_helpers.c | 156 +- src/field_player_avatar.c | 27 +- src/field_screen_effect.c | 90 +- src/field_specials.c | 25 +- src/field_weather.c | 27 +- src/field_weather_effect.c | 21 +- src/fieldmap.c | 32 +- src/fldeff_rocksmash.c | 3 +- src/follow_me.c | 1534 +++++++ src/item_use.c | 6 +- src/mauville_old_man.c | 19 +- src/mystery_event_script.c | 2 +- src/new_game.c | 1 + src/overworld.c | 1161 ++++- src/pokemon_storage_system.c | 2 + src/rotating_gate.c | 14 +- src/scrcmd.c | 78 +- src/script.c | 7 + src/script_movement.c | 9 + src/trainer_hill.c | 3 +- src/trainer_see.c | 21 +- 988 files changed, 22901 insertions(+), 829 deletions(-) create mode 100644 docs/bugs_and_glitches.md create mode 100644 graphics/door_anims/battle_tower_corridor.png create mode 100644 graphics/door_anims/unknown.png create mode 100644 graphics/field_effects/pics/bug_tracks.png create mode 100644 graphics/field_effects/pics/expanding_sparkle.png create mode 100644 graphics/field_effects/pics/slither_tracks.png create mode 100644 graphics/field_effects/pics/spot_tracks.png create mode 100644 graphics/object_events/palettes/cherish_ball.pal create mode 100644 graphics/object_events/palettes/dive_ball.pal create mode 100644 graphics/object_events/palettes/dream_ball.pal create mode 100644 graphics/object_events/palettes/dusk_ball.pal create mode 100644 graphics/object_events/palettes/fast_ball.pal create mode 100644 graphics/object_events/palettes/followers/abra.pal create mode 100644 graphics/object_events/palettes/followers/absol.pal create mode 100644 graphics/object_events/palettes/followers/aerodactyl.pal create mode 100644 graphics/object_events/palettes/followers/aggron.pal create mode 100644 graphics/object_events/palettes/followers/aipom.pal create mode 100644 graphics/object_events/palettes/followers/alakazam.pal create mode 100644 graphics/object_events/palettes/followers/altaria.pal create mode 100644 graphics/object_events/palettes/followers/ampharos.pal create mode 100644 graphics/object_events/palettes/followers/anorith.pal create mode 100644 graphics/object_events/palettes/followers/arbok.pal create mode 100644 graphics/object_events/palettes/followers/arcanine.pal create mode 100644 graphics/object_events/palettes/followers/ariados.pal create mode 100644 graphics/object_events/palettes/followers/armaldo.pal create mode 100644 graphics/object_events/palettes/followers/aron.pal create mode 100644 graphics/object_events/palettes/followers/articuno.pal create mode 100644 graphics/object_events/palettes/followers/azumarill.pal create mode 100644 graphics/object_events/palettes/followers/azurill.pal create mode 100644 graphics/object_events/palettes/followers/bagon.pal create mode 100644 graphics/object_events/palettes/followers/baltoy.pal create mode 100644 graphics/object_events/palettes/followers/banette.pal create mode 100644 graphics/object_events/palettes/followers/barboach.pal create mode 100644 graphics/object_events/palettes/followers/bayleef.pal create mode 100644 graphics/object_events/palettes/followers/beautifly.pal create mode 100644 graphics/object_events/palettes/followers/beedrill.pal create mode 100644 graphics/object_events/palettes/followers/beldum.pal create mode 100644 graphics/object_events/palettes/followers/bellossom.pal create mode 100644 graphics/object_events/palettes/followers/bellsprout.pal create mode 100644 graphics/object_events/palettes/followers/blastoise.pal create mode 100644 graphics/object_events/palettes/followers/blaziken.pal create mode 100644 graphics/object_events/palettes/followers/blissey.pal create mode 100644 graphics/object_events/palettes/followers/breloom.pal create mode 100644 graphics/object_events/palettes/followers/bulbasaur1.pal create mode 100644 graphics/object_events/palettes/followers/burmy_sand.pal create mode 100644 graphics/object_events/palettes/followers/burmy_trash.pal create mode 100644 graphics/object_events/palettes/followers/butterfree.pal create mode 100644 graphics/object_events/palettes/followers/cacnea.pal create mode 100644 graphics/object_events/palettes/followers/cacturne.pal create mode 100644 graphics/object_events/palettes/followers/camerupt.pal create mode 100644 graphics/object_events/palettes/followers/carvanha.pal create mode 100644 graphics/object_events/palettes/followers/cascoon.pal create mode 100644 graphics/object_events/palettes/followers/castform.pal create mode 100644 graphics/object_events/palettes/followers/caterpie.pal create mode 100644 graphics/object_events/palettes/followers/celebi.pal create mode 100644 graphics/object_events/palettes/followers/chansey.pal create mode 100644 graphics/object_events/palettes/followers/charizard.pal create mode 100644 graphics/object_events/palettes/followers/charmander.pal create mode 100644 graphics/object_events/palettes/followers/charmeleon.pal create mode 100644 graphics/object_events/palettes/followers/chikorita.pal create mode 100644 graphics/object_events/palettes/followers/chimecho.pal create mode 100644 graphics/object_events/palettes/followers/chinchou.pal create mode 100644 graphics/object_events/palettes/followers/clamperl.pal create mode 100644 graphics/object_events/palettes/followers/claydol.pal create mode 100644 graphics/object_events/palettes/followers/clefable.pal create mode 100644 graphics/object_events/palettes/followers/clefairy.pal create mode 100644 graphics/object_events/palettes/followers/cleffa.pal create mode 100644 graphics/object_events/palettes/followers/cloyster.pal create mode 100644 graphics/object_events/palettes/followers/combusken.pal create mode 100644 graphics/object_events/palettes/followers/corphish.pal create mode 100644 graphics/object_events/palettes/followers/corsola.pal create mode 100644 graphics/object_events/palettes/followers/cradily.pal create mode 100644 graphics/object_events/palettes/followers/crawdaunt.pal create mode 100644 graphics/object_events/palettes/followers/crobat.pal create mode 100644 graphics/object_events/palettes/followers/croconaw.pal create mode 100644 graphics/object_events/palettes/followers/cubone.pal create mode 100644 graphics/object_events/palettes/followers/cyndaquil.pal create mode 100644 graphics/object_events/palettes/followers/delcatty.pal create mode 100644 graphics/object_events/palettes/followers/delibird.pal create mode 100644 graphics/object_events/palettes/followers/deoxys.pal create mode 100644 graphics/object_events/palettes/followers/dewgong.pal create mode 100644 graphics/object_events/palettes/followers/diglett.pal create mode 100644 graphics/object_events/palettes/followers/ditto.pal create mode 100644 graphics/object_events/palettes/followers/dodrio.pal create mode 100644 graphics/object_events/palettes/followers/doduo.pal create mode 100644 graphics/object_events/palettes/followers/donphan.pal create mode 100644 graphics/object_events/palettes/followers/dragonair.pal create mode 100644 graphics/object_events/palettes/followers/dragonite.pal create mode 100644 graphics/object_events/palettes/followers/dratini.pal create mode 100644 graphics/object_events/palettes/followers/drowzee.pal create mode 100644 graphics/object_events/palettes/followers/dugtrio.pal create mode 100644 graphics/object_events/palettes/followers/dunsparce.pal create mode 100644 graphics/object_events/palettes/followers/dusclops.pal create mode 100644 graphics/object_events/palettes/followers/duskull.pal create mode 100644 graphics/object_events/palettes/followers/dustox.pal create mode 100644 graphics/object_events/palettes/followers/eevee.pal create mode 100644 graphics/object_events/palettes/followers/ekans.pal create mode 100644 graphics/object_events/palettes/followers/electabuzz.pal create mode 100644 graphics/object_events/palettes/followers/electrike.pal create mode 100644 graphics/object_events/palettes/followers/electrode.pal create mode 100644 graphics/object_events/palettes/followers/elekid.pal create mode 100644 graphics/object_events/palettes/followers/entei.pal create mode 100644 graphics/object_events/palettes/followers/espeon.pal create mode 100644 graphics/object_events/palettes/followers/exeggcute.pal create mode 100644 graphics/object_events/palettes/followers/exeggutor.pal create mode 100644 graphics/object_events/palettes/followers/exploud.pal create mode 100644 graphics/object_events/palettes/followers/farfetchd.pal create mode 100644 graphics/object_events/palettes/followers/fearow.pal create mode 100644 graphics/object_events/palettes/followers/feebas.pal create mode 100644 graphics/object_events/palettes/followers/feraligatr.pal create mode 100644 graphics/object_events/palettes/followers/flaaffy.pal create mode 100644 graphics/object_events/palettes/followers/flareon.pal create mode 100644 graphics/object_events/palettes/followers/flygon.pal create mode 100644 graphics/object_events/palettes/followers/forretress.pal create mode 100644 graphics/object_events/palettes/followers/furret.pal create mode 100644 graphics/object_events/palettes/followers/gardevoir.pal create mode 100644 graphics/object_events/palettes/followers/gastly.pal create mode 100644 graphics/object_events/palettes/followers/gengar.pal create mode 100644 graphics/object_events/palettes/followers/geodude.pal create mode 100644 graphics/object_events/palettes/followers/girafarig.pal create mode 100644 graphics/object_events/palettes/followers/glalie.pal create mode 100644 graphics/object_events/palettes/followers/gligar.pal create mode 100644 graphics/object_events/palettes/followers/gloom.pal create mode 100644 graphics/object_events/palettes/followers/golbat.pal create mode 100644 graphics/object_events/palettes/followers/goldeen.pal create mode 100644 graphics/object_events/palettes/followers/golduck.pal create mode 100644 graphics/object_events/palettes/followers/golem.pal create mode 100644 graphics/object_events/palettes/followers/gorebyss.pal create mode 100644 graphics/object_events/palettes/followers/granbull.pal create mode 100644 graphics/object_events/palettes/followers/graveler.pal create mode 100644 graphics/object_events/palettes/followers/grimer.pal create mode 100644 graphics/object_events/palettes/followers/groudon.pal create mode 100644 graphics/object_events/palettes/followers/grovyle.pal create mode 100644 graphics/object_events/palettes/followers/growlithe.pal create mode 100644 graphics/object_events/palettes/followers/grumpig.pal create mode 100644 graphics/object_events/palettes/followers/gulpin.pal create mode 100644 graphics/object_events/palettes/followers/gyarados.pal create mode 100644 graphics/object_events/palettes/followers/hariyama.pal create mode 100644 graphics/object_events/palettes/followers/haunter.pal create mode 100644 graphics/object_events/palettes/followers/heracross.pal create mode 100644 graphics/object_events/palettes/followers/hitmonchan.pal create mode 100644 graphics/object_events/palettes/followers/hitmonlee.pal create mode 100644 graphics/object_events/palettes/followers/hitmontop.pal create mode 100644 graphics/object_events/palettes/followers/ho_oh.pal create mode 100644 graphics/object_events/palettes/followers/hoothoot.pal create mode 100644 graphics/object_events/palettes/followers/hoppip.pal create mode 100644 graphics/object_events/palettes/followers/horsea.pal create mode 100644 graphics/object_events/palettes/followers/houndoom.pal create mode 100644 graphics/object_events/palettes/followers/houndour.pal create mode 100644 graphics/object_events/palettes/followers/huntail.pal create mode 100644 graphics/object_events/palettes/followers/hypno.pal create mode 100644 graphics/object_events/palettes/followers/igglybuff.pal create mode 100644 graphics/object_events/palettes/followers/illumise.pal create mode 100644 graphics/object_events/palettes/followers/ivysaur.pal create mode 100644 graphics/object_events/palettes/followers/jigglypuff.pal create mode 100644 graphics/object_events/palettes/followers/jirachi.pal create mode 100644 graphics/object_events/palettes/followers/jolteon.pal create mode 100644 graphics/object_events/palettes/followers/jumpluff.pal create mode 100644 graphics/object_events/palettes/followers/jynx.pal create mode 100644 graphics/object_events/palettes/followers/kabuto.pal create mode 100644 graphics/object_events/palettes/followers/kabutops.pal create mode 100644 graphics/object_events/palettes/followers/kadabra.pal create mode 100644 graphics/object_events/palettes/followers/kakuna.pal create mode 100644 graphics/object_events/palettes/followers/kangaskhan.pal create mode 100644 graphics/object_events/palettes/followers/kecleon.pal create mode 100644 graphics/object_events/palettes/followers/kingdra.pal create mode 100644 graphics/object_events/palettes/followers/kingler.pal create mode 100644 graphics/object_events/palettes/followers/kirlia.pal create mode 100644 graphics/object_events/palettes/followers/koffing.pal create mode 100644 graphics/object_events/palettes/followers/kyogre.pal create mode 100644 graphics/object_events/palettes/followers/lairon.pal create mode 100644 graphics/object_events/palettes/followers/lanturn.pal create mode 100644 graphics/object_events/palettes/followers/lapras.pal create mode 100644 graphics/object_events/palettes/followers/larvitar.pal create mode 100644 graphics/object_events/palettes/followers/latias.pal create mode 100644 graphics/object_events/palettes/followers/latios.pal create mode 100644 graphics/object_events/palettes/followers/ledian.pal create mode 100644 graphics/object_events/palettes/followers/ledyba.pal create mode 100644 graphics/object_events/palettes/followers/lickitung.pal create mode 100644 graphics/object_events/palettes/followers/lileep.pal create mode 100644 graphics/object_events/palettes/followers/linoone.pal create mode 100644 graphics/object_events/palettes/followers/lombre.pal create mode 100644 graphics/object_events/palettes/followers/lotad.pal create mode 100644 graphics/object_events/palettes/followers/loudred.pal create mode 100644 graphics/object_events/palettes/followers/ludicolo.pal create mode 100644 graphics/object_events/palettes/followers/lugia.pal create mode 100644 graphics/object_events/palettes/followers/lunatone.pal create mode 100644 graphics/object_events/palettes/followers/luvdisc.pal create mode 100644 graphics/object_events/palettes/followers/machamp.pal create mode 100644 graphics/object_events/palettes/followers/machoke.pal create mode 100644 graphics/object_events/palettes/followers/machop.pal create mode 100644 graphics/object_events/palettes/followers/magby.pal create mode 100644 graphics/object_events/palettes/followers/magcargo.pal create mode 100644 graphics/object_events/palettes/followers/magikarp.pal create mode 100644 graphics/object_events/palettes/followers/magmar.pal create mode 100644 graphics/object_events/palettes/followers/magnemite.pal create mode 100644 graphics/object_events/palettes/followers/magneton.pal create mode 100644 graphics/object_events/palettes/followers/makuhita.pal create mode 100644 graphics/object_events/palettes/followers/manectric.pal create mode 100644 graphics/object_events/palettes/followers/mankey.pal create mode 100644 graphics/object_events/palettes/followers/mantine.pal create mode 100644 graphics/object_events/palettes/followers/mareep.pal create mode 100644 graphics/object_events/palettes/followers/marill.pal create mode 100644 graphics/object_events/palettes/followers/marowak.pal create mode 100644 graphics/object_events/palettes/followers/marshtomp.pal create mode 100644 graphics/object_events/palettes/followers/masquerain.pal create mode 100644 graphics/object_events/palettes/followers/mawile.pal create mode 100644 graphics/object_events/palettes/followers/medicham.pal create mode 100644 graphics/object_events/palettes/followers/meditite.pal create mode 100644 graphics/object_events/palettes/followers/meganium.pal create mode 100644 graphics/object_events/palettes/followers/meowth.pal create mode 100644 graphics/object_events/palettes/followers/metagross.pal create mode 100644 graphics/object_events/palettes/followers/metang.pal create mode 100644 graphics/object_events/palettes/followers/metapod.pal create mode 100644 graphics/object_events/palettes/followers/mew.pal create mode 100644 graphics/object_events/palettes/followers/mewtwo.pal create mode 100644 graphics/object_events/palettes/followers/mightyena.pal create mode 100644 graphics/object_events/palettes/followers/milotic.pal create mode 100644 graphics/object_events/palettes/followers/miltank.pal create mode 100644 graphics/object_events/palettes/followers/minun.pal create mode 100644 graphics/object_events/palettes/followers/misdreavus.pal create mode 100644 graphics/object_events/palettes/followers/moltres.pal create mode 100644 graphics/object_events/palettes/followers/mr_mime.pal create mode 100644 graphics/object_events/palettes/followers/mudkip.pal create mode 100644 graphics/object_events/palettes/followers/muk.pal create mode 100644 graphics/object_events/palettes/followers/murkrow.pal create mode 100644 graphics/object_events/palettes/followers/natu.pal create mode 100644 graphics/object_events/palettes/followers/nidoking.pal create mode 100644 graphics/object_events/palettes/followers/nidoqueen.pal create mode 100644 graphics/object_events/palettes/followers/nidoran_f.pal create mode 100644 graphics/object_events/palettes/followers/nidoran_m.pal create mode 100644 graphics/object_events/palettes/followers/nidorina.pal create mode 100644 graphics/object_events/palettes/followers/nidorino.pal create mode 100644 graphics/object_events/palettes/followers/nincada.pal create mode 100644 graphics/object_events/palettes/followers/ninetales.pal create mode 100644 graphics/object_events/palettes/followers/ninjask.pal create mode 100644 graphics/object_events/palettes/followers/noctowl.pal create mode 100644 graphics/object_events/palettes/followers/nosepass.pal create mode 100644 graphics/object_events/palettes/followers/numel.pal create mode 100644 graphics/object_events/palettes/followers/nuzleaf.pal create mode 100644 graphics/object_events/palettes/followers/octillery.pal create mode 100644 graphics/object_events/palettes/followers/oddish.pal create mode 100644 graphics/object_events/palettes/followers/omanyte.pal create mode 100644 graphics/object_events/palettes/followers/omastar.pal create mode 100644 graphics/object_events/palettes/followers/onix.pal create mode 100644 graphics/object_events/palettes/followers/paras.pal create mode 100644 graphics/object_events/palettes/followers/parasect.pal create mode 100644 graphics/object_events/palettes/followers/pelipper.pal create mode 100644 graphics/object_events/palettes/followers/persian.pal create mode 100644 graphics/object_events/palettes/followers/phanpy.pal create mode 100644 graphics/object_events/palettes/followers/pichu.pal create mode 100644 graphics/object_events/palettes/followers/pidgeot.pal create mode 100644 graphics/object_events/palettes/followers/pidgeotto.pal create mode 100644 graphics/object_events/palettes/followers/pidgey.pal create mode 100644 graphics/object_events/palettes/followers/pikachu.pal create mode 100644 graphics/object_events/palettes/followers/piloswine.pal create mode 100644 graphics/object_events/palettes/followers/pineco.pal create mode 100644 graphics/object_events/palettes/followers/pinsir.pal create mode 100644 graphics/object_events/palettes/followers/plusle.pal create mode 100644 graphics/object_events/palettes/followers/politoed.pal create mode 100644 graphics/object_events/palettes/followers/poliwag.pal create mode 100644 graphics/object_events/palettes/followers/poliwhirl.pal create mode 100644 graphics/object_events/palettes/followers/poliwrath.pal create mode 100644 graphics/object_events/palettes/followers/ponyta.pal create mode 100644 graphics/object_events/palettes/followers/poochyena.pal create mode 100644 graphics/object_events/palettes/followers/porygon.pal create mode 100644 graphics/object_events/palettes/followers/porygon2.pal create mode 100644 graphics/object_events/palettes/followers/primeape.pal create mode 100644 graphics/object_events/palettes/followers/psyduck.pal create mode 100644 graphics/object_events/palettes/followers/pupitar.pal create mode 100644 graphics/object_events/palettes/followers/quagsire.pal create mode 100644 graphics/object_events/palettes/followers/quilava.pal create mode 100644 graphics/object_events/palettes/followers/qwilfish.pal create mode 100644 graphics/object_events/palettes/followers/raichu.pal create mode 100644 graphics/object_events/palettes/followers/raikou.pal create mode 100644 graphics/object_events/palettes/followers/ralts.pal create mode 100644 graphics/object_events/palettes/followers/rapidash.pal create mode 100644 graphics/object_events/palettes/followers/raticate.pal create mode 100644 graphics/object_events/palettes/followers/rattata.pal create mode 100644 graphics/object_events/palettes/followers/rayquaza.pal create mode 100644 graphics/object_events/palettes/followers/regice.pal create mode 100644 graphics/object_events/palettes/followers/regirock.pal create mode 100644 graphics/object_events/palettes/followers/registeel.pal create mode 100644 graphics/object_events/palettes/followers/relicanth.pal create mode 100644 graphics/object_events/palettes/followers/remoraid.pal create mode 100644 graphics/object_events/palettes/followers/rhydon.pal create mode 100644 graphics/object_events/palettes/followers/rhyhorn.pal create mode 100644 graphics/object_events/palettes/followers/roselia.pal create mode 100644 graphics/object_events/palettes/followers/sableye.pal create mode 100644 graphics/object_events/palettes/followers/salamence.pal create mode 100644 graphics/object_events/palettes/followers/sandshrew.pal create mode 100644 graphics/object_events/palettes/followers/sandslash.pal create mode 100644 graphics/object_events/palettes/followers/sceptile.pal create mode 100644 graphics/object_events/palettes/followers/scizor.pal create mode 100644 graphics/object_events/palettes/followers/scyther.pal create mode 100644 graphics/object_events/palettes/followers/seadra.pal create mode 100644 graphics/object_events/palettes/followers/seaking.pal create mode 100644 graphics/object_events/palettes/followers/sealeo.pal create mode 100644 graphics/object_events/palettes/followers/seedot.pal create mode 100644 graphics/object_events/palettes/followers/seel.pal create mode 100644 graphics/object_events/palettes/followers/sentret.pal create mode 100644 graphics/object_events/palettes/followers/seviper.pal create mode 100644 graphics/object_events/palettes/followers/sharpedo.pal create mode 100644 graphics/object_events/palettes/followers/shedinja.pal create mode 100644 graphics/object_events/palettes/followers/shelgon.pal create mode 100644 graphics/object_events/palettes/followers/shellder.pal create mode 100644 graphics/object_events/palettes/followers/shiftry.pal create mode 100644 graphics/object_events/palettes/followers/shroomish.pal create mode 100644 graphics/object_events/palettes/followers/shuckle.pal create mode 100644 graphics/object_events/palettes/followers/shuppet.pal create mode 100644 graphics/object_events/palettes/followers/silcoon.pal create mode 100644 graphics/object_events/palettes/followers/skarmory.pal create mode 100644 graphics/object_events/palettes/followers/skiploom.pal create mode 100644 graphics/object_events/palettes/followers/skitty.pal create mode 100644 graphics/object_events/palettes/followers/slaking.pal create mode 100644 graphics/object_events/palettes/followers/slakoth.pal create mode 100644 graphics/object_events/palettes/followers/slowbro.pal create mode 100644 graphics/object_events/palettes/followers/slowking.pal create mode 100644 graphics/object_events/palettes/followers/slowpoke.pal create mode 100644 graphics/object_events/palettes/followers/slugma.pal create mode 100644 graphics/object_events/palettes/followers/smeargle.pal create mode 100644 graphics/object_events/palettes/followers/smoochum.pal create mode 100644 graphics/object_events/palettes/followers/sneasel.pal create mode 100644 graphics/object_events/palettes/followers/snorlax.pal create mode 100644 graphics/object_events/palettes/followers/snorunt.pal create mode 100644 graphics/object_events/palettes/followers/snubbull.pal create mode 100644 graphics/object_events/palettes/followers/solrock.pal create mode 100644 graphics/object_events/palettes/followers/spearow.pal create mode 100644 graphics/object_events/palettes/followers/spheal.pal create mode 100644 graphics/object_events/palettes/followers/spinarak.pal create mode 100644 graphics/object_events/palettes/followers/spinda.pal create mode 100644 graphics/object_events/palettes/followers/spoink.pal create mode 100644 graphics/object_events/palettes/followers/squirtle.pal create mode 100644 graphics/object_events/palettes/followers/stantler.pal create mode 100644 graphics/object_events/palettes/followers/starmie.pal create mode 100644 graphics/object_events/palettes/followers/staryu.pal create mode 100644 graphics/object_events/palettes/followers/steelix.pal create mode 100644 graphics/object_events/palettes/followers/sudowoodo.pal create mode 100644 graphics/object_events/palettes/followers/suicune.pal create mode 100644 graphics/object_events/palettes/followers/sunflora.pal create mode 100644 graphics/object_events/palettes/followers/sunkern.pal create mode 100644 graphics/object_events/palettes/followers/surskit.pal create mode 100644 graphics/object_events/palettes/followers/swablu.pal create mode 100644 graphics/object_events/palettes/followers/swalot.pal create mode 100644 graphics/object_events/palettes/followers/swampert.pal create mode 100644 graphics/object_events/palettes/followers/swellow.pal create mode 100644 graphics/object_events/palettes/followers/swinub.pal create mode 100644 graphics/object_events/palettes/followers/taillow.pal create mode 100644 graphics/object_events/palettes/followers/tangela.pal create mode 100644 graphics/object_events/palettes/followers/tauros.pal create mode 100644 graphics/object_events/palettes/followers/teddiursa.pal create mode 100644 graphics/object_events/palettes/followers/tentacool.pal create mode 100644 graphics/object_events/palettes/followers/tentacruel.pal create mode 100644 graphics/object_events/palettes/followers/togepi.pal create mode 100644 graphics/object_events/palettes/followers/togetic.pal create mode 100644 graphics/object_events/palettes/followers/torchic.pal create mode 100644 graphics/object_events/palettes/followers/torkoal.pal create mode 100644 graphics/object_events/palettes/followers/totodile.pal create mode 100644 graphics/object_events/palettes/followers/trapinch.pal create mode 100644 graphics/object_events/palettes/followers/treecko.pal create mode 100644 graphics/object_events/palettes/followers/tropius.pal create mode 100644 graphics/object_events/palettes/followers/typhlosion.pal create mode 100644 graphics/object_events/palettes/followers/tyranitar.pal create mode 100644 graphics/object_events/palettes/followers/tyrogue.pal create mode 100644 graphics/object_events/palettes/followers/umbreon.pal create mode 100644 graphics/object_events/palettes/followers/unown.pal create mode 100644 graphics/object_events/palettes/followers/ursaring.pal create mode 100644 graphics/object_events/palettes/followers/vaporeon.pal create mode 100644 graphics/object_events/palettes/followers/venomoth.pal create mode 100644 graphics/object_events/palettes/followers/venonat.pal create mode 100644 graphics/object_events/palettes/followers/venusaur.pal create mode 100644 graphics/object_events/palettes/followers/vibrava.pal create mode 100644 graphics/object_events/palettes/followers/victreebel.pal create mode 100644 graphics/object_events/palettes/followers/vigoroth.pal create mode 100644 graphics/object_events/palettes/followers/vileplume.pal create mode 100644 graphics/object_events/palettes/followers/volbeat.pal create mode 100644 graphics/object_events/palettes/followers/voltorb.pal create mode 100644 graphics/object_events/palettes/followers/vulpix.pal create mode 100644 graphics/object_events/palettes/followers/wailmer.pal create mode 100644 graphics/object_events/palettes/followers/wailord.pal create mode 100644 graphics/object_events/palettes/followers/walrein.pal create mode 100644 graphics/object_events/palettes/followers/wartortle.pal create mode 100644 graphics/object_events/palettes/followers/weedle.pal create mode 100644 graphics/object_events/palettes/followers/weepinbell.pal create mode 100644 graphics/object_events/palettes/followers/weezing.pal create mode 100644 graphics/object_events/palettes/followers/whiscash.pal create mode 100644 graphics/object_events/palettes/followers/whismur.pal create mode 100644 graphics/object_events/palettes/followers/wigglytuff.pal create mode 100644 graphics/object_events/palettes/followers/wingull.pal create mode 100644 graphics/object_events/palettes/followers/wobbuffet.pal create mode 100644 graphics/object_events/palettes/followers/wooper.pal create mode 100644 graphics/object_events/palettes/followers/wurmple.pal create mode 100644 graphics/object_events/palettes/followers/wynaut.pal create mode 100644 graphics/object_events/palettes/followers/xatu.pal create mode 100644 graphics/object_events/palettes/followers/yanma.pal create mode 100644 graphics/object_events/palettes/followers/zangoose.pal create mode 100644 graphics/object_events/palettes/followers/zapdos.pal create mode 100644 graphics/object_events/palettes/followers/zigzagoon.pal create mode 100644 graphics/object_events/palettes/followers/zubat.pal create mode 100644 graphics/object_events/palettes/friend_ball.pal create mode 100644 graphics/object_events/palettes/great_ball.pal create mode 100644 graphics/object_events/palettes/heal_ball.pal create mode 100644 graphics/object_events/palettes/heavy_ball.pal create mode 100644 graphics/object_events/palettes/level_ball.pal create mode 100644 graphics/object_events/palettes/love_ball.pal create mode 100644 graphics/object_events/palettes/lure_ball.pal create mode 100644 graphics/object_events/palettes/luxury_ball.pal create mode 100644 graphics/object_events/palettes/master_ball.pal create mode 100644 graphics/object_events/palettes/moon_ball.pal create mode 100644 graphics/object_events/palettes/nest_ball.pal create mode 100644 graphics/object_events/palettes/net_ball.pal create mode 100644 graphics/object_events/palettes/park_ball.pal create mode 100644 graphics/object_events/palettes/premier_ball.pal create mode 100644 graphics/object_events/palettes/quick_ball.pal create mode 100644 graphics/object_events/palettes/repeat_ball.pal create mode 100644 graphics/object_events/palettes/safari_ball.pal create mode 100644 graphics/object_events/palettes/sport_ball.pal delete mode 100644 graphics/object_events/palettes/submarine_shadow.pal create mode 100644 graphics/object_events/palettes/timer_ball.pal create mode 100644 graphics/object_events/palettes/ultra_ball.pal create mode 100644 graphics/object_events/pics/misc/cherish_ball.png create mode 100644 graphics/object_events/pics/misc/dive_ball.png create mode 100644 graphics/object_events/pics/misc/dream_ball.png create mode 100644 graphics/object_events/pics/misc/dusk_ball.png create mode 100644 graphics/object_events/pics/misc/fast_ball.png create mode 100644 graphics/object_events/pics/misc/friend_ball.png create mode 100644 graphics/object_events/pics/misc/great_ball.png create mode 100644 graphics/object_events/pics/misc/heal_ball.png create mode 100644 graphics/object_events/pics/misc/heavy_ball.png create mode 100644 graphics/object_events/pics/misc/level_ball.png create mode 100644 graphics/object_events/pics/misc/love_ball.png create mode 100644 graphics/object_events/pics/misc/lure_ball.png create mode 100644 graphics/object_events/pics/misc/luxury_ball.png create mode 100644 graphics/object_events/pics/misc/master_ball.png create mode 100644 graphics/object_events/pics/misc/moon_ball.png create mode 100644 graphics/object_events/pics/misc/nest_ball.png create mode 100644 graphics/object_events/pics/misc/net_ball.png create mode 100644 graphics/object_events/pics/misc/park_ball.png create mode 100644 graphics/object_events/pics/misc/premier_ball.png create mode 100644 graphics/object_events/pics/misc/quick_ball.png create mode 100644 graphics/object_events/pics/misc/repeat_ball.png create mode 100644 graphics/object_events/pics/misc/safari_ball.png create mode 100644 graphics/object_events/pics/misc/sport_ball.png create mode 100644 graphics/object_events/pics/misc/timer_ball.png create mode 100644 graphics/object_events/pics/misc/ultra_ball.png create mode 100644 graphics/object_events/pics/pokemon/followers/abra.png create mode 100644 graphics/object_events/pics/pokemon/followers/absol.png create mode 100644 graphics/object_events/pics/pokemon/followers/aerodactyl.png create mode 100644 graphics/object_events/pics/pokemon/followers/aggron.png create mode 100644 graphics/object_events/pics/pokemon/followers/aipom.png create mode 100644 graphics/object_events/pics/pokemon/followers/alakazam.png create mode 100644 graphics/object_events/pics/pokemon/followers/altaria.png create mode 100644 graphics/object_events/pics/pokemon/followers/ampharos.png create mode 100644 graphics/object_events/pics/pokemon/followers/anorith.png create mode 100644 graphics/object_events/pics/pokemon/followers/arbok.png create mode 100644 graphics/object_events/pics/pokemon/followers/arcanine.png create mode 100644 graphics/object_events/pics/pokemon/followers/ariados.png create mode 100644 graphics/object_events/pics/pokemon/followers/armaldo.png create mode 100644 graphics/object_events/pics/pokemon/followers/aron.png create mode 100644 graphics/object_events/pics/pokemon/followers/articuno.png create mode 100644 graphics/object_events/pics/pokemon/followers/azumarill.png create mode 100644 graphics/object_events/pics/pokemon/followers/azurill.png create mode 100644 graphics/object_events/pics/pokemon/followers/bagon.png create mode 100644 graphics/object_events/pics/pokemon/followers/baltoy.png create mode 100644 graphics/object_events/pics/pokemon/followers/banette.png create mode 100644 graphics/object_events/pics/pokemon/followers/barboach.png create mode 100644 graphics/object_events/pics/pokemon/followers/bayleef.png create mode 100644 graphics/object_events/pics/pokemon/followers/beautifly.png create mode 100644 graphics/object_events/pics/pokemon/followers/beedrill.png create mode 100644 graphics/object_events/pics/pokemon/followers/beldum.png create mode 100644 graphics/object_events/pics/pokemon/followers/bellossom.png create mode 100644 graphics/object_events/pics/pokemon/followers/bellsprout.png create mode 100644 graphics/object_events/pics/pokemon/followers/blastoise.png create mode 100644 graphics/object_events/pics/pokemon/followers/blaziken.png create mode 100644 graphics/object_events/pics/pokemon/followers/blissey.png create mode 100644 graphics/object_events/pics/pokemon/followers/breloom.png create mode 100644 graphics/object_events/pics/pokemon/followers/bulbasaur.png create mode 100644 graphics/object_events/pics/pokemon/followers/butterfree.png create mode 100644 graphics/object_events/pics/pokemon/followers/cacnea.png create mode 100644 graphics/object_events/pics/pokemon/followers/cacturne.png create mode 100644 graphics/object_events/pics/pokemon/followers/camerupt.png create mode 100644 graphics/object_events/pics/pokemon/followers/carvanha.png create mode 100644 graphics/object_events/pics/pokemon/followers/cascoon.png create mode 100644 graphics/object_events/pics/pokemon/followers/castform.png create mode 100644 graphics/object_events/pics/pokemon/followers/caterpie.png create mode 100644 graphics/object_events/pics/pokemon/followers/celebi.png create mode 100644 graphics/object_events/pics/pokemon/followers/chansey.png create mode 100644 graphics/object_events/pics/pokemon/followers/charizard.png create mode 100644 graphics/object_events/pics/pokemon/followers/charmander.png create mode 100644 graphics/object_events/pics/pokemon/followers/charmeleon.png create mode 100644 graphics/object_events/pics/pokemon/followers/chikorita.png create mode 100644 graphics/object_events/pics/pokemon/followers/chimecho.png create mode 100644 graphics/object_events/pics/pokemon/followers/chinchou.png create mode 100644 graphics/object_events/pics/pokemon/followers/clamperl.png create mode 100644 graphics/object_events/pics/pokemon/followers/claydol.png create mode 100644 graphics/object_events/pics/pokemon/followers/clefable.png create mode 100644 graphics/object_events/pics/pokemon/followers/clefairy.png create mode 100644 graphics/object_events/pics/pokemon/followers/cleffa.png create mode 100644 graphics/object_events/pics/pokemon/followers/cloyster.png create mode 100644 graphics/object_events/pics/pokemon/followers/combusken.png create mode 100644 graphics/object_events/pics/pokemon/followers/corphish.png create mode 100644 graphics/object_events/pics/pokemon/followers/corsola.png create mode 100644 graphics/object_events/pics/pokemon/followers/cradily.png create mode 100644 graphics/object_events/pics/pokemon/followers/crawdaunt.png create mode 100644 graphics/object_events/pics/pokemon/followers/crobat.png create mode 100644 graphics/object_events/pics/pokemon/followers/croconaw.png create mode 100644 graphics/object_events/pics/pokemon/followers/cubone.png create mode 100644 graphics/object_events/pics/pokemon/followers/cyndaquil.png create mode 100644 graphics/object_events/pics/pokemon/followers/delcatty.png create mode 100644 graphics/object_events/pics/pokemon/followers/delibird.png create mode 100644 graphics/object_events/pics/pokemon/followers/deoxys_attack.png create mode 100644 graphics/object_events/pics/pokemon/followers/deoxys_defense.png create mode 100644 graphics/object_events/pics/pokemon/followers/deoxys_normal.png create mode 100644 graphics/object_events/pics/pokemon/followers/deoxys_speed.png create mode 100644 graphics/object_events/pics/pokemon/followers/dewgong.png create mode 100644 graphics/object_events/pics/pokemon/followers/diglett.png create mode 100644 graphics/object_events/pics/pokemon/followers/ditto.png create mode 100644 graphics/object_events/pics/pokemon/followers/dodrio.png create mode 100644 graphics/object_events/pics/pokemon/followers/doduo.png create mode 100644 graphics/object_events/pics/pokemon/followers/donphan.png create mode 100644 graphics/object_events/pics/pokemon/followers/dragonair.png create mode 100644 graphics/object_events/pics/pokemon/followers/dragonite.png create mode 100644 graphics/object_events/pics/pokemon/followers/dratini.png create mode 100644 graphics/object_events/pics/pokemon/followers/drowzee.png create mode 100644 graphics/object_events/pics/pokemon/followers/dugtrio.png create mode 100644 graphics/object_events/pics/pokemon/followers/dunsparce.png create mode 100644 graphics/object_events/pics/pokemon/followers/dusclops.png create mode 100644 graphics/object_events/pics/pokemon/followers/duskull.png create mode 100644 graphics/object_events/pics/pokemon/followers/dustox.png create mode 100644 graphics/object_events/pics/pokemon/followers/eevee.png create mode 100644 graphics/object_events/pics/pokemon/followers/ekans.png create mode 100644 graphics/object_events/pics/pokemon/followers/electabuzz.png create mode 100644 graphics/object_events/pics/pokemon/followers/electrike.png create mode 100644 graphics/object_events/pics/pokemon/followers/electrode.png create mode 100644 graphics/object_events/pics/pokemon/followers/elekid.png create mode 100644 graphics/object_events/pics/pokemon/followers/entei.png create mode 100644 graphics/object_events/pics/pokemon/followers/espeon.png create mode 100644 graphics/object_events/pics/pokemon/followers/exeggcute.png create mode 100644 graphics/object_events/pics/pokemon/followers/exeggutor.png create mode 100644 graphics/object_events/pics/pokemon/followers/exploud.png create mode 100644 graphics/object_events/pics/pokemon/followers/farfetchd.png create mode 100644 graphics/object_events/pics/pokemon/followers/fearow.png create mode 100644 graphics/object_events/pics/pokemon/followers/feebas.png create mode 100644 graphics/object_events/pics/pokemon/followers/feraligatr.png create mode 100644 graphics/object_events/pics/pokemon/followers/flaaffy.png create mode 100644 graphics/object_events/pics/pokemon/followers/flareon.png create mode 100644 graphics/object_events/pics/pokemon/followers/flygon.png create mode 100644 graphics/object_events/pics/pokemon/followers/forretress.png create mode 100644 graphics/object_events/pics/pokemon/followers/furret.png create mode 100644 graphics/object_events/pics/pokemon/followers/gardevoir.png create mode 100644 graphics/object_events/pics/pokemon/followers/gastly.png create mode 100644 graphics/object_events/pics/pokemon/followers/gengar.png create mode 100644 graphics/object_events/pics/pokemon/followers/geodude.png create mode 100644 graphics/object_events/pics/pokemon/followers/girafarig.png create mode 100644 graphics/object_events/pics/pokemon/followers/glalie.png create mode 100644 graphics/object_events/pics/pokemon/followers/gligar.png create mode 100644 graphics/object_events/pics/pokemon/followers/gloom.png create mode 100644 graphics/object_events/pics/pokemon/followers/golbat.png create mode 100644 graphics/object_events/pics/pokemon/followers/goldeen.png create mode 100644 graphics/object_events/pics/pokemon/followers/golduck.png create mode 100644 graphics/object_events/pics/pokemon/followers/golem.png create mode 100644 graphics/object_events/pics/pokemon/followers/gorebyss.png create mode 100644 graphics/object_events/pics/pokemon/followers/granbull.png create mode 100644 graphics/object_events/pics/pokemon/followers/graveler.png create mode 100644 graphics/object_events/pics/pokemon/followers/grimer.png create mode 100644 graphics/object_events/pics/pokemon/followers/groudon.png create mode 100644 graphics/object_events/pics/pokemon/followers/grovyle.png create mode 100644 graphics/object_events/pics/pokemon/followers/growlithe.png create mode 100644 graphics/object_events/pics/pokemon/followers/grumpig.png create mode 100644 graphics/object_events/pics/pokemon/followers/gulpin.png create mode 100644 graphics/object_events/pics/pokemon/followers/gyarados.png create mode 100644 graphics/object_events/pics/pokemon/followers/hariyama.png create mode 100644 graphics/object_events/pics/pokemon/followers/haunter.png create mode 100644 graphics/object_events/pics/pokemon/followers/heracross.png create mode 100644 graphics/object_events/pics/pokemon/followers/hitmonchan.png create mode 100644 graphics/object_events/pics/pokemon/followers/hitmonlee.png create mode 100644 graphics/object_events/pics/pokemon/followers/hitmontop.png create mode 100644 graphics/object_events/pics/pokemon/followers/ho_oh.png create mode 100644 graphics/object_events/pics/pokemon/followers/hoothoot.png create mode 100644 graphics/object_events/pics/pokemon/followers/hoppip.png create mode 100644 graphics/object_events/pics/pokemon/followers/horsea.png create mode 100644 graphics/object_events/pics/pokemon/followers/houndoom.png create mode 100644 graphics/object_events/pics/pokemon/followers/houndour.png create mode 100644 graphics/object_events/pics/pokemon/followers/huntail.png create mode 100644 graphics/object_events/pics/pokemon/followers/hypno.png create mode 100644 graphics/object_events/pics/pokemon/followers/igglybuff.png create mode 100644 graphics/object_events/pics/pokemon/followers/illumise.png create mode 100644 graphics/object_events/pics/pokemon/followers/ivysaur.png create mode 100644 graphics/object_events/pics/pokemon/followers/jigglypuff.png create mode 100644 graphics/object_events/pics/pokemon/followers/jirachi.png create mode 100644 graphics/object_events/pics/pokemon/followers/jolteon.png create mode 100644 graphics/object_events/pics/pokemon/followers/jumpluff.png create mode 100644 graphics/object_events/pics/pokemon/followers/jynx.png create mode 100644 graphics/object_events/pics/pokemon/followers/kabuto.png create mode 100644 graphics/object_events/pics/pokemon/followers/kabutops.png create mode 100644 graphics/object_events/pics/pokemon/followers/kadabra.png create mode 100644 graphics/object_events/pics/pokemon/followers/kakuna.png create mode 100644 graphics/object_events/pics/pokemon/followers/kangaskhan.png create mode 100644 graphics/object_events/pics/pokemon/followers/kecleon.png create mode 100644 graphics/object_events/pics/pokemon/followers/kingdra.png create mode 100644 graphics/object_events/pics/pokemon/followers/kingler.png create mode 100644 graphics/object_events/pics/pokemon/followers/kirlia.png create mode 100644 graphics/object_events/pics/pokemon/followers/koffing.png create mode 100644 graphics/object_events/pics/pokemon/followers/krabby.png create mode 100644 graphics/object_events/pics/pokemon/followers/kyogre.png create mode 100644 graphics/object_events/pics/pokemon/followers/lairon.png create mode 100644 graphics/object_events/pics/pokemon/followers/lanturn.png create mode 100644 graphics/object_events/pics/pokemon/followers/lapras.png create mode 100644 graphics/object_events/pics/pokemon/followers/larvitar.png create mode 100644 graphics/object_events/pics/pokemon/followers/latias.png create mode 100644 graphics/object_events/pics/pokemon/followers/latios.png create mode 100644 graphics/object_events/pics/pokemon/followers/ledian.png create mode 100644 graphics/object_events/pics/pokemon/followers/ledyba.png create mode 100644 graphics/object_events/pics/pokemon/followers/lickitung.png create mode 100644 graphics/object_events/pics/pokemon/followers/lileep.png create mode 100644 graphics/object_events/pics/pokemon/followers/linoone.png create mode 100644 graphics/object_events/pics/pokemon/followers/lombre.png create mode 100644 graphics/object_events/pics/pokemon/followers/lotad.png create mode 100644 graphics/object_events/pics/pokemon/followers/loudred.png create mode 100644 graphics/object_events/pics/pokemon/followers/ludicolo.png create mode 100644 graphics/object_events/pics/pokemon/followers/lugia.png create mode 100644 graphics/object_events/pics/pokemon/followers/lunatone.png create mode 100644 graphics/object_events/pics/pokemon/followers/luvdisc.png create mode 100644 graphics/object_events/pics/pokemon/followers/machamp.png create mode 100644 graphics/object_events/pics/pokemon/followers/machoke.png create mode 100644 graphics/object_events/pics/pokemon/followers/machop.png create mode 100644 graphics/object_events/pics/pokemon/followers/magby.png create mode 100644 graphics/object_events/pics/pokemon/followers/magcargo.png create mode 100644 graphics/object_events/pics/pokemon/followers/magikarp.png create mode 100644 graphics/object_events/pics/pokemon/followers/magmar.png create mode 100644 graphics/object_events/pics/pokemon/followers/magnemite.png create mode 100644 graphics/object_events/pics/pokemon/followers/magneton.png create mode 100644 graphics/object_events/pics/pokemon/followers/makuhita.png create mode 100644 graphics/object_events/pics/pokemon/followers/manectric.png create mode 100644 graphics/object_events/pics/pokemon/followers/mankey.png create mode 100644 graphics/object_events/pics/pokemon/followers/mantine.png create mode 100644 graphics/object_events/pics/pokemon/followers/mareep.png create mode 100644 graphics/object_events/pics/pokemon/followers/marill.png create mode 100644 graphics/object_events/pics/pokemon/followers/marowak.png create mode 100644 graphics/object_events/pics/pokemon/followers/marshtomp.png create mode 100644 graphics/object_events/pics/pokemon/followers/masquerain.png create mode 100644 graphics/object_events/pics/pokemon/followers/mawile.png create mode 100644 graphics/object_events/pics/pokemon/followers/medicham.png create mode 100644 graphics/object_events/pics/pokemon/followers/meditite.png create mode 100644 graphics/object_events/pics/pokemon/followers/meganium.png create mode 100644 graphics/object_events/pics/pokemon/followers/meowth.png create mode 100644 graphics/object_events/pics/pokemon/followers/metagross.png create mode 100644 graphics/object_events/pics/pokemon/followers/metang.png create mode 100644 graphics/object_events/pics/pokemon/followers/metapod.png create mode 100644 graphics/object_events/pics/pokemon/followers/mew.png create mode 100644 graphics/object_events/pics/pokemon/followers/mewtwo.png create mode 100644 graphics/object_events/pics/pokemon/followers/mightyena.png create mode 100644 graphics/object_events/pics/pokemon/followers/milotic.png create mode 100644 graphics/object_events/pics/pokemon/followers/miltank.png create mode 100644 graphics/object_events/pics/pokemon/followers/minun.png create mode 100644 graphics/object_events/pics/pokemon/followers/misdreavus.png create mode 100644 graphics/object_events/pics/pokemon/followers/moltres.png create mode 100644 graphics/object_events/pics/pokemon/followers/mr_mime.png create mode 100644 graphics/object_events/pics/pokemon/followers/mudkip.png create mode 100644 graphics/object_events/pics/pokemon/followers/muk.png create mode 100644 graphics/object_events/pics/pokemon/followers/murkrow.png create mode 100644 graphics/object_events/pics/pokemon/followers/natu.png create mode 100644 graphics/object_events/pics/pokemon/followers/nidoking.png create mode 100644 graphics/object_events/pics/pokemon/followers/nidoqueen.png create mode 100644 graphics/object_events/pics/pokemon/followers/nidoran_f.png create mode 100644 graphics/object_events/pics/pokemon/followers/nidoran_m.png create mode 100644 graphics/object_events/pics/pokemon/followers/nidorina.png create mode 100644 graphics/object_events/pics/pokemon/followers/nidorino.png create mode 100644 graphics/object_events/pics/pokemon/followers/nincada.png create mode 100644 graphics/object_events/pics/pokemon/followers/ninetales.png create mode 100644 graphics/object_events/pics/pokemon/followers/ninjask.png create mode 100644 graphics/object_events/pics/pokemon/followers/noctowl.png create mode 100644 graphics/object_events/pics/pokemon/followers/nosepass.png create mode 100644 graphics/object_events/pics/pokemon/followers/numel.png create mode 100644 graphics/object_events/pics/pokemon/followers/nuzleaf.png create mode 100644 graphics/object_events/pics/pokemon/followers/octillery.png create mode 100644 graphics/object_events/pics/pokemon/followers/oddish.png create mode 100644 graphics/object_events/pics/pokemon/followers/omanyte.png create mode 100644 graphics/object_events/pics/pokemon/followers/omastar.png create mode 100644 graphics/object_events/pics/pokemon/followers/onix.png create mode 100644 graphics/object_events/pics/pokemon/followers/paras.png create mode 100644 graphics/object_events/pics/pokemon/followers/parasect.png create mode 100644 graphics/object_events/pics/pokemon/followers/pelipper.png create mode 100644 graphics/object_events/pics/pokemon/followers/persian.png create mode 100644 graphics/object_events/pics/pokemon/followers/phanpy.png create mode 100644 graphics/object_events/pics/pokemon/followers/pichu.png create mode 100644 graphics/object_events/pics/pokemon/followers/pidgeot.png create mode 100644 graphics/object_events/pics/pokemon/followers/pidgeotto.png create mode 100644 graphics/object_events/pics/pokemon/followers/pidgey.png create mode 100644 graphics/object_events/pics/pokemon/followers/pikachu.png create mode 100644 graphics/object_events/pics/pokemon/followers/piloswine.png create mode 100644 graphics/object_events/pics/pokemon/followers/pineco.png create mode 100644 graphics/object_events/pics/pokemon/followers/pinsir.png create mode 100644 graphics/object_events/pics/pokemon/followers/plusle.png create mode 100644 graphics/object_events/pics/pokemon/followers/politoed.png create mode 100644 graphics/object_events/pics/pokemon/followers/poliwag.png create mode 100644 graphics/object_events/pics/pokemon/followers/poliwhirl.png create mode 100644 graphics/object_events/pics/pokemon/followers/poliwrath.png create mode 100644 graphics/object_events/pics/pokemon/followers/ponyta.png create mode 100644 graphics/object_events/pics/pokemon/followers/poochyena.png create mode 100644 graphics/object_events/pics/pokemon/followers/porygon.png create mode 100644 graphics/object_events/pics/pokemon/followers/porygon2.png create mode 100644 graphics/object_events/pics/pokemon/followers/primeape.png create mode 100644 graphics/object_events/pics/pokemon/followers/psyduck.png create mode 100644 graphics/object_events/pics/pokemon/followers/pupitar.png create mode 100644 graphics/object_events/pics/pokemon/followers/quagsire.png create mode 100644 graphics/object_events/pics/pokemon/followers/quilava.png create mode 100644 graphics/object_events/pics/pokemon/followers/qwilfish.png create mode 100644 graphics/object_events/pics/pokemon/followers/raichu.png create mode 100644 graphics/object_events/pics/pokemon/followers/raikou.png create mode 100644 graphics/object_events/pics/pokemon/followers/ralts.png create mode 100644 graphics/object_events/pics/pokemon/followers/rapidash.png create mode 100644 graphics/object_events/pics/pokemon/followers/raticate.png create mode 100644 graphics/object_events/pics/pokemon/followers/rattata.png create mode 100644 graphics/object_events/pics/pokemon/followers/rayquaza.png create mode 100644 graphics/object_events/pics/pokemon/followers/regice.png create mode 100644 graphics/object_events/pics/pokemon/followers/regirock.png create mode 100644 graphics/object_events/pics/pokemon/followers/registeel.png create mode 100644 graphics/object_events/pics/pokemon/followers/relicanth.png create mode 100644 graphics/object_events/pics/pokemon/followers/remoraid.png create mode 100644 graphics/object_events/pics/pokemon/followers/rhydon.png create mode 100644 graphics/object_events/pics/pokemon/followers/rhyhorn.png create mode 100644 graphics/object_events/pics/pokemon/followers/roselia.png create mode 100644 graphics/object_events/pics/pokemon/followers/sableye.png create mode 100644 graphics/object_events/pics/pokemon/followers/salamence.png create mode 100644 graphics/object_events/pics/pokemon/followers/sandshrew.png create mode 100644 graphics/object_events/pics/pokemon/followers/sandslash.png create mode 100644 graphics/object_events/pics/pokemon/followers/sceptile.png create mode 100644 graphics/object_events/pics/pokemon/followers/scizor.png create mode 100644 graphics/object_events/pics/pokemon/followers/scyther.png create mode 100644 graphics/object_events/pics/pokemon/followers/seadra.png create mode 100644 graphics/object_events/pics/pokemon/followers/seaking.png create mode 100644 graphics/object_events/pics/pokemon/followers/sealeo.png create mode 100644 graphics/object_events/pics/pokemon/followers/seedot.png create mode 100644 graphics/object_events/pics/pokemon/followers/seel.png create mode 100644 graphics/object_events/pics/pokemon/followers/sentret.png create mode 100644 graphics/object_events/pics/pokemon/followers/seviper.png create mode 100644 graphics/object_events/pics/pokemon/followers/sharpedo.png create mode 100644 graphics/object_events/pics/pokemon/followers/shedinja.png create mode 100644 graphics/object_events/pics/pokemon/followers/shelgon.png create mode 100644 graphics/object_events/pics/pokemon/followers/shellder.png create mode 100644 graphics/object_events/pics/pokemon/followers/shiftry.png create mode 100644 graphics/object_events/pics/pokemon/followers/shroomish.png create mode 100644 graphics/object_events/pics/pokemon/followers/shuckle.png create mode 100644 graphics/object_events/pics/pokemon/followers/shuppet.png create mode 100644 graphics/object_events/pics/pokemon/followers/silcoon.png create mode 100644 graphics/object_events/pics/pokemon/followers/skarmory.png create mode 100644 graphics/object_events/pics/pokemon/followers/skiploom.png create mode 100644 graphics/object_events/pics/pokemon/followers/skitty.png create mode 100644 graphics/object_events/pics/pokemon/followers/slaking.png create mode 100644 graphics/object_events/pics/pokemon/followers/slakoth.png create mode 100644 graphics/object_events/pics/pokemon/followers/slowbro.png create mode 100644 graphics/object_events/pics/pokemon/followers/slowking.png create mode 100644 graphics/object_events/pics/pokemon/followers/slowpoke.png create mode 100644 graphics/object_events/pics/pokemon/followers/slugma.png create mode 100644 graphics/object_events/pics/pokemon/followers/smeargle.png create mode 100644 graphics/object_events/pics/pokemon/followers/smoochum.png create mode 100644 graphics/object_events/pics/pokemon/followers/sneasel.png create mode 100644 graphics/object_events/pics/pokemon/followers/snorlax.png create mode 100644 graphics/object_events/pics/pokemon/followers/snorunt.png create mode 100644 graphics/object_events/pics/pokemon/followers/snubbull.png create mode 100644 graphics/object_events/pics/pokemon/followers/solrock.png create mode 100644 graphics/object_events/pics/pokemon/followers/spearow.png create mode 100644 graphics/object_events/pics/pokemon/followers/spheal.png create mode 100644 graphics/object_events/pics/pokemon/followers/spinarak.png create mode 100644 graphics/object_events/pics/pokemon/followers/spinda.png create mode 100644 graphics/object_events/pics/pokemon/followers/spoink.png create mode 100644 graphics/object_events/pics/pokemon/followers/squirtle.png create mode 100644 graphics/object_events/pics/pokemon/followers/stantler.png create mode 100644 graphics/object_events/pics/pokemon/followers/starmie.png create mode 100644 graphics/object_events/pics/pokemon/followers/staryu.png create mode 100644 graphics/object_events/pics/pokemon/followers/steelix.png create mode 100644 graphics/object_events/pics/pokemon/followers/sudowoodo.png create mode 100644 graphics/object_events/pics/pokemon/followers/suicune.png create mode 100644 graphics/object_events/pics/pokemon/followers/sunflora.png create mode 100644 graphics/object_events/pics/pokemon/followers/sunkern.png create mode 100644 graphics/object_events/pics/pokemon/followers/surskit.png create mode 100644 graphics/object_events/pics/pokemon/followers/swablu.png create mode 100644 graphics/object_events/pics/pokemon/followers/swalot.png create mode 100644 graphics/object_events/pics/pokemon/followers/swampert.png create mode 100644 graphics/object_events/pics/pokemon/followers/swellow.png create mode 100644 graphics/object_events/pics/pokemon/followers/swinub.png create mode 100644 graphics/object_events/pics/pokemon/followers/taillow.png create mode 100644 graphics/object_events/pics/pokemon/followers/tangela.png create mode 100644 graphics/object_events/pics/pokemon/followers/tauros.png create mode 100644 graphics/object_events/pics/pokemon/followers/teddiursa.png create mode 100644 graphics/object_events/pics/pokemon/followers/tentacool.png create mode 100644 graphics/object_events/pics/pokemon/followers/tentacruel.png create mode 100644 graphics/object_events/pics/pokemon/followers/togepi.png create mode 100644 graphics/object_events/pics/pokemon/followers/togetic.png create mode 100644 graphics/object_events/pics/pokemon/followers/torchic.png create mode 100644 graphics/object_events/pics/pokemon/followers/torkoal.png create mode 100644 graphics/object_events/pics/pokemon/followers/totodile.png create mode 100644 graphics/object_events/pics/pokemon/followers/trapinch.png create mode 100644 graphics/object_events/pics/pokemon/followers/treecko.png create mode 100644 graphics/object_events/pics/pokemon/followers/tropius.png create mode 100644 graphics/object_events/pics/pokemon/followers/typhlosion.png create mode 100644 graphics/object_events/pics/pokemon/followers/tyranitar.png create mode 100644 graphics/object_events/pics/pokemon/followers/tyrogue.png create mode 100644 graphics/object_events/pics/pokemon/followers/umbreon.png create mode 100644 graphics/object_events/pics/pokemon/followers/unown!.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowna.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownb.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownc.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownd.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowne.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownf.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowng.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownh.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowni.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownj.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownk.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownl.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownm.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownn.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowno.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownp.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownq.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownquestion.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownr.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowns.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownt.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownu.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownv.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownw.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownx.png create mode 100644 graphics/object_events/pics/pokemon/followers/unowny.png create mode 100644 graphics/object_events/pics/pokemon/followers/unownz.png create mode 100644 graphics/object_events/pics/pokemon/followers/ursaring.png create mode 100644 graphics/object_events/pics/pokemon/followers/vaporeon.png create mode 100644 graphics/object_events/pics/pokemon/followers/venomoth.png create mode 100644 graphics/object_events/pics/pokemon/followers/venonat.png create mode 100644 graphics/object_events/pics/pokemon/followers/venusaur.png create mode 100644 graphics/object_events/pics/pokemon/followers/vibrava.png create mode 100644 graphics/object_events/pics/pokemon/followers/victreebel.png create mode 100644 graphics/object_events/pics/pokemon/followers/vigoroth.png create mode 100644 graphics/object_events/pics/pokemon/followers/vileplume.png create mode 100644 graphics/object_events/pics/pokemon/followers/volbeat.png create mode 100644 graphics/object_events/pics/pokemon/followers/voltorb.png create mode 100644 graphics/object_events/pics/pokemon/followers/vulpix.png create mode 100644 graphics/object_events/pics/pokemon/followers/wailmer.png create mode 100644 graphics/object_events/pics/pokemon/followers/wailord.png create mode 100644 graphics/object_events/pics/pokemon/followers/walrein.png create mode 100644 graphics/object_events/pics/pokemon/followers/wartortle.png create mode 100644 graphics/object_events/pics/pokemon/followers/weedle.png create mode 100644 graphics/object_events/pics/pokemon/followers/weepinbell.png create mode 100644 graphics/object_events/pics/pokemon/followers/weezing.png create mode 100644 graphics/object_events/pics/pokemon/followers/whiscash.png create mode 100644 graphics/object_events/pics/pokemon/followers/whismur.png create mode 100644 graphics/object_events/pics/pokemon/followers/wigglytuff.png create mode 100644 graphics/object_events/pics/pokemon/followers/wingull.png create mode 100644 graphics/object_events/pics/pokemon/followers/wobbuffet.png create mode 100644 graphics/object_events/pics/pokemon/followers/wooper.png create mode 100644 graphics/object_events/pics/pokemon/followers/wurmple.png create mode 100644 graphics/object_events/pics/pokemon/followers/wynaut.png create mode 100644 graphics/object_events/pics/pokemon/followers/xatu.png create mode 100644 graphics/object_events/pics/pokemon/followers/yanma.png create mode 100644 graphics/object_events/pics/pokemon/followers/zangoose.png create mode 100644 graphics/object_events/pics/pokemon/followers/zapdos.png create mode 100644 graphics/object_events/pics/pokemon/followers/zigzagoon.png create mode 100644 graphics/object_events/pics/pokemon/followers/zubat.png create mode 100644 graphics/pokemon/unown/a/anim_front.png create mode 100644 graphics/pokemon/unown/a/back.png create mode 100644 graphics/pokemon/unown/a/front.png create mode 100644 graphics/pokemon/unown/a/icon.png mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_0/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_0/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_1/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_1/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_2/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_2/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_3/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_expert/floor_3/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_jp/floor_0/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_jp/floor_0/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_jp/floor_1/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_jp/floor_1/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_0/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_0/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_1/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_1/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_2/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_2/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_3/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_normal/floor_3/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_0/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_0/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_1/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_1/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_2/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_2/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_3/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_unique/floor_3/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_0/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_0/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_1/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_1/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_2/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_2/metatiles.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_3/collision.bin mode change 100755 => 100644 graphics/trainer_hill/maps_variety/floor_3/metatiles.bin create mode 100644 include/constants/follow_me.h create mode 100644 include/follow_me.h create mode 100644 src/anim_mon_front_pics.c mode change 100755 => 100644 src/data/field_effects/field_effect_object_template_pointers.h mode change 100755 => 100644 src/data/object_events/object_event_graphics_info.h mode change 100755 => 100644 src/data/object_events/object_event_graphics_info_pointers.h mode change 100755 => 100644 src/field_effect_helpers.c create mode 100644 src/follow_me.c diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 78d3037ae..2bcc258ba 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1735,6 +1735,28 @@ .2byte \quantity .endm + @ sets an NPC up to follow the player + .macro setfollower localId:req, flags:req + .byte 0xe3 + .byte \localId + .2byte \flags + .endm + + @ remove the following NPC (assumes there will only ever be one) + .macro destroyfollower + .byte 0xe4 + .endm + + @ makes the player and follower face one another + .macro facefollower + .byte 0xe5 + .endm + + @ checks if you have a follower. returns the result to VAR_RESULT + .macro checkfollower + .byte 0xe6 + .endm + @ Supplementary @@ -2018,3 +2040,30 @@ setvar VAR_0x8002, \tryMultiple special TrySpecialOverworldEvo .endm + .macro pokemonfaceplayer objectId=254 + setvar VAR_UNUSED_0x8014, \objectId + callnative ScrCmd_pokemonfaceplayer + .endm + + .macro updatefollowerpokemongraphic + setvar VAR_UNUSED_0x8014, 1 + callnative UpdateFollowerPokemonGraphic + .endm + + .macro hidefollower + callnative HideFollower + .endm + + .macro showfollower + callnative ShowFollower + .endm + + .macro followerintopokeball + setvar VAR_UNUSED_0x8014, 0 + callnative FollowerIntoPokeball + .endm + + .macro setfollowerwarppos pos:req + setvar VAR_RESULT, \pos + callnative SetFollowerWarpPosition + .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 21445138d..67ff7534f 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -21,17 +21,11 @@ @ Defines an object event template for map data, to be used by a normal object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req - .byte \index - .byte \gfx - .byte OBJ_KIND_NORMAL - .space 1 @ Padding + .byte \index, OBJ_KIND_NORMAL + .2byte \gfx .2byte \x, \y - .byte \elevation - .byte \movement_type - .byte ((\y_radius << 4) | \x_radius) - .space 1 @ Padding - .2byte \trainer_type - .2byte \sight_radius_tree_etc + .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 + .2byte \trainer_type, \sight_radius_tree_etc .4byte \script .2byte \event_flag .space 2 @ Padding diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index a43dc07ac..fced51d9c 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -162,5 +162,11 @@ create_movement_action figure_8, MOVEMENT_ACTION_FIGURE_8 create_movement_action fly_up, MOVEMENT_ACTION_FLY_UP create_movement_action fly_down, MOVEMENT_ACTION_FLY_DOWN + create_movement_action follower_face_down, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACESOUTH + create_movement_action follower_face_up, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACENORTH + create_movement_action follower_face_left, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACEWEST + create_movement_action follower_face_right, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACEEAST + create_movement_action follower_shrink, MOVEMENT_ACTION_FOLLOWING_POKEMON_SHRINK + create_movement_action follower_grow, MOVEMENT_ACTION_FOLLOWING_POKEMON_GROW create_movement_action step_end, MOVEMENT_ACTION_STEP_END diff --git a/data/event_scripts.s b/data/event_scripts.s index 35d0cae2f..7e44c0df8 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -55,6 +55,7 @@ #include "constants/union_room.h" #include "constants/vars.h" #include "constants/weather.h" +#include "constants/follow_me.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .include "constants/constants.inc" diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 49fcf798b..277cbb376 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -72,6 +72,9 @@ gFieldEffectScriptPointers:: .4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK + .4byte gFieldEffectScript_TracksSlither @ FLDEFF_TRACKS_SLITHER + .4byte gFieldEffectScript_TracksBug @ FLDEFF_TRACKS_BUG + .4byte gFieldEffectScript_TracksSpot @ FLDEFF_TRACKS_SPOT gFieldEffectScript_ExclamationMarkIcon1:: field_eff_callnative FldEff_ExclamationMarkIcon @@ -128,6 +131,18 @@ gFieldEffectScript_JumpTallGrass:: gFieldEffectScript_SandFootprints:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints field_eff_end + +gFieldEffectScript_TracksBug:: @ 82DBB42 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_TracksBug + field_eff_end + +gFieldEffectScript_TracksSpot:: @ 82DBB42 + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_TracksSpot + field_eff_end + +gFieldEffectScript_TracksSlither:: @ 82DBBFF + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_TracksSlither + field_eff_end gFieldEffectScript_JumpBigSplash:: field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash diff --git a/data/maps/AbandonedShip_CaptainsOffice/scripts.inc b/data/maps/AbandonedShip_CaptainsOffice/scripts.inc index 7c59fec96..78fdc6434 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/scripts.inc +++ b/data/maps/AbandonedShip_CaptainsOffice/scripts.inc @@ -7,7 +7,7 @@ AbandonedShip_CaptainsOffice_EventScript_CaptSternAide:: goto_if_set FLAG_EXCHANGED_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus checkitem ITEM_SCANNER goto_if_eq VAR_RESULT, TRUE, AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner - goto_if_set FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus + goto_if_set FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_2_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus msgbox AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner, MSGBOX_DEFAULT release end diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/map.json b/data/maps/AbandonedShip_HiddenFloorRooms/map.json index dce9111eb..905c85335 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/map.json +++ b/data/maps/AbandonedShip_HiddenFloorRooms/map.json @@ -38,7 +38,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemScanner", - "flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER" + "flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_2_SCANNER" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/map.json b/data/maps/LittlerootTown_ProfessorBirchsLab/map.json index d97c026bd..ac8710804 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/map.json +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/map.json @@ -91,6 +91,19 @@ "trainer_sight_or_berry_tree_id": "0", "script": "LittlerootTown_ProfessorBirchsLab_EventScript_Chikorita", "flag": "FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_CHIKORITA" + }, + { + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "FLAG_FOLLOWER_ACTIVE" } ], "warp_events": [ diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index acf80f0e4..bf0377b41 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -29,6 +29,7 @@ LittlerootTown_ProfessorBirchsLab_MapScripts:: LittlerootTown_ProfessorBirchsLab_OnTransition: call Common_EventScript_SetupRivalGfxId call ProfBirch_EventScript_UpdateLocation + setflag FLAG_FOLLOWER_ACTIVE goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 6, LittlerootTown_ProfessorBirchsLab_EventScript_SetAfterJohtoStarterLayout goto_if_ge VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 4, LittlerootTown_ProfessorBirchsLab_EventScript_SetJohtoStarterLayout goto_if_eq VAR_DEX_UPGRADE_JOHTO_STARTER_STATE, 3, LittlerootTown_ProfessorBirchsLab_EventScript_CheckReadyForJohtoStarter @@ -139,6 +140,10 @@ LittlerootTown_ProfessorBirchsLab_EventScript_AgreeToSeeRival:: msgbox LittlerootTown_ProfessorBirchsLab_Text_GetRivalToTeachYou, MSGBOX_DEFAULT clearflag FLAG_HIDE_ROUTE_101_BOY setvar VAR_BIRCH_LAB_STATE, 3 + addobject 7 + hideobjectat 7, MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB + setfollower 7, 0x7E + updatefollowerpokemongraphic releaseall end diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index f50ce5322..29011ba17 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -227,6 +227,10 @@ gScriptCmdTable:: .4byte ScrCmd_warpwhitefade @ 0xe0 .4byte ScrCmd_buffercontestname @ 0xe1 .4byte ScrCmd_bufferitemnameplural @ 0xe2 + .4byte ScrCmd_setfollower @ 0xe3 + .4byte ScrCmd_destroyfollower @ 0xe4 + .4byte ScrCmd_facefollower @ 0xe5 + .4byte ScrCmd_checkfollower @ 0xe6 gScriptCmdTableEnd:: .4byte ScrCmd_nop diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index 3e99fc08e..14570cf99 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -287,3 +287,69 @@ EventScript_FailSweetScent:: Text_FailSweetScent: .string "Looks like there's nothing here…$" + +FollowerPositionFixScript:: + setvar 0x8000 0x0 + callnative FollowerTrainerSightingPositionFix + compare VAR_RESULT 0xFFFF + goto_if_eq FollowerPositionFixScriptReturn + call WalkCall + setvar 0x8000 0x1 + callnative FollowerTrainerSightingPositionFix +FollowerPositionFixScriptReturn: + return + +FollowerIntoPlayerScript:: + setvar 0x8000 0x0 + callnative FollowerIntoPlayer + compare VAR_RESULT 0xFFFF + goto_if_eq FollowerPositionFixScriptReturn + setvar 0x8005 0xFE @ follower + call WalkCall + setvar 0x8000 0x1 + callnative FollowerIntoPlayer + return + +WalkCall: + compare VAR_RESULT 0x0 + call_if_eq WalkDownCall + compare VAR_RESULT 0x1 + call_if_eq WalkUpCall + compare VAR_RESULT 0x2 + call_if_eq WalkLeftCall + compare VAR_RESULT 0x3 + call_if_eq WalkRightCall + waitmovement 0x8005 + return + +WalkDownCall: + applymovement 0x8005 WalkDown + return + +WalkUpCall: + applymovement 0x8005 WalkUp + return + +WalkLeftCall: + applymovement 0x8005 WalkLeft + return + +WalkRightCall: + applymovement 0x8005 WalkRight + return + +WalkDown: + walk_down + step_end + +WalkUp: + walk_up + step_end + +WalkLeft: + walk_left + step_end + +WalkRight: + walk_right + step_end diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index eda3505bf..a33636043 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -64,9 +64,9 @@ MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics:: MauvilleCity_PokemonCenter_1F_EventScript_Hipster:: lock faceplayer - setflag FLAG_SYS_HIPSTER_MEET + setflag FLAG_UNLOCKED_TRENDY_SAYINGS msgbox MauvilleCity_PokemonCenter_1F_Text_TeachWhatsHipAndHappening, MSGBOX_DEFAULT - special GetHipsterSpokenFlag + special HasHipsterTaughtWord goto_if_eq VAR_RESULT, FALSE, MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord msgbox MauvilleCity_PokemonCenter_1F_Text_IAlreadyTaughtYou, MSGBOX_DEFAULT release @@ -80,8 +80,8 @@ MauvilleCity_PokemonCenter_1F_EventScript_TryTeachWord:: end MauvilleCity_PokemonCenter_1F_EventScript_TeachWord:: - msgbox MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfPhrase, MSGBOX_DEFAULT - special SetHipsterSpokenFlag + msgbox MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfWord, MSGBOX_DEFAULT + special SetHipsterTaughtWord release end @@ -969,7 +969,7 @@ MauvilleCity_PokemonCenter_1F_Text_IveGotNothingNewToTeach: .string "what's hip and happening.\p" .string "I've got nothing new to teach you!$" -MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfPhrase: +MauvilleCity_PokemonCenter_1F_Text_HaveYouHeardOfWord: .string "Hey, have you heard about\n" .string "“{STR_VAR_1}”?\p" .string "What's it mean? Well…\n" diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index 64ccdfa77..b5067775c 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -33,6 +33,8 @@ EventScript_PkmnCenterNurse_IllTakeYourPkmn2:: return EventScript_PkmnCenterNurse_TakeAndHealPkmn:: + followerintopokeball + call_if_eq VAR_UNUSED_0x8014, 1, EventScript_FollowerIntoPokeballDelay applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 dofieldeffect FLDEFF_POKECENTER_HEAL @@ -40,6 +42,12 @@ EventScript_PkmnCenterNurse_TakeAndHealPkmn:: applymovement VAR_0x800B, Common_Movement_WalkInPlaceFasterDown waitmovement 0 special HealPlayerParty + updatefollowerpokemongraphic + return + +EventScript_FollowerIntoPokeballDelay:: + delay 21 + setvar VAR_UNUSED_0x8014, 0 return EventScript_PkmnCenterNurse_CheckTrainerHillAndUnionRoom:: diff --git a/data/specials.inc b/data/specials.inc index 3d08eef4c..ded2e3f4f 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -111,8 +111,8 @@ gSpecials:: def_special Script_GetCurrentMauvilleMan def_special HasBardSongBeenChanged def_special SaveBardSongLyrics - def_special GetHipsterSpokenFlag - def_special SetHipsterSpokenFlag + def_special HasHipsterTaughtWord + def_special SetHipsterTaughtWord def_special HipsterTryTeachWord def_special PlayBardSong def_special SetMauvilleOldManObjEventGfx diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md new file mode 100644 index 000000000..ce06c1489 --- /dev/null +++ b/docs/bugs_and_glitches.md @@ -0,0 +1,51 @@ + +# Bugs and Glitches + +These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` and `UBFIX` preprocessor variables will fix some of these automatically. `UBFIX` will already be defined for MODERN builds. + +Fixes are written in the `diff` format. If you've used Git before, this should look familiar: + +```diff + this is some code +-delete red - lines ++add green + lines +``` + +## Contents + +- [Scrolling through items in the bag causes the image to flicker](#scrolling-through-items-in-the-bag-causes-the-image-to-flicker) + + +## Scrolling through items in the bag causes the image to flicker + +**Fix:** Add the following function to [src/item_menu_icons.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu_icons.c): +```diff ++void HideBagItemIconSprite(u8 id) ++{ ++ u8 *spriteId = &gBagMenu->spriteId[10]; ++ if (spriteId[id] != 0xFF) ++ { ++ gSprites[spriteId[id]].invisible = TRUE; ++ } ++} + +``` + +and its corresponding declaration in [include/item_menu_icons.h](https://github.com/pret/pokeemerald/blob/master/include/item_menu_icons.h): + +```diff ++void HideBagItemIconSprite(u8 id); + +``` + +Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu.c): + +```diff + ... +{ +- RemoveBagItemIconSprite(1 ^ gBagMenu->itemIconSlot); ++ HideBagItemIconSprite(gBagMenu->itemIconSlot ^ 1); ++ RemoveBagItemIconSprite(gBagMenu->itemIconSlot); + if (itemIndex != LIST_CANCEL) + ... +``` diff --git a/gflib/sprite.c b/gflib/sprite.c index c489eb6a4..e6a74dd3b 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -2,6 +2,8 @@ #include "sprite.h" #include "main.h" #include "palette.h" +#include "global.fieldmap.h" +#include "constants/event_objects.h" #define MAX_SPRITE_COPY_REQUESTS 64 @@ -967,6 +969,57 @@ void ContinueAnim(struct Sprite *sprite) } } +bool8 IsFlyingPokemonGraphic(u16 graphicsId) +{ + switch(graphicsId) + { + case OBJ_EVENT_GFX_BUTTERFREE: + case OBJ_EVENT_GFX_BEEDRILL: + case OBJ_EVENT_GFX_PIDGEOTTO: + case OBJ_EVENT_GFX_PIDGEOT: + case OBJ_EVENT_GFX_FEAROW: + case OBJ_EVENT_GFX_ZUBAT: + case OBJ_EVENT_GFX_GOLBAT: + case OBJ_EVENT_GFX_VENOMOTH: + case OBJ_EVENT_GFX_AERODACTYL: + case OBJ_EVENT_GFX_ARTICUNO: + case OBJ_EVENT_GFX_ZAPDOS: + case OBJ_EVENT_GFX_MOLTRES: + case OBJ_EVENT_GFX_DRAGONITE: + case OBJ_EVENT_GFX_NOCTOWL: + case OBJ_EVENT_GFX_LEDYBA: + case OBJ_EVENT_GFX_LEDIAN: + case OBJ_EVENT_GFX_CROBAT: + case OBJ_EVENT_GFX_TOGETIC: + case OBJ_EVENT_GFX_HOPPIP: + case OBJ_EVENT_GFX_SKIPLOOM: + case OBJ_EVENT_GFX_JUMPLUFF: + case OBJ_EVENT_GFX_YANMA: + case OBJ_EVENT_GFX_MANTINE: + case OBJ_EVENT_GFX_SKARMORY: + case OBJ_EVENT_GFX_LUGIA_FOLLOWER: + case OBJ_EVENT_GFX_HOOH_FOLLOWER: + case OBJ_EVENT_GFX_CELEBI: + case OBJ_EVENT_GFX_BEAUTIFLY: + case OBJ_EVENT_GFX_DUSTOX: + case OBJ_EVENT_GFX_SWELLOW: + case OBJ_EVENT_GFX_WINGULL_FOLLOWER: + case OBJ_EVENT_GFX_PELIPPER: + case OBJ_EVENT_GFX_MASQUERAIN: + case OBJ_EVENT_GFX_FLYGON: + case OBJ_EVENT_GFX_SWABLU: + case OBJ_EVENT_GFX_ALTARIA: + case OBJ_EVENT_GFX_VOLBEAT: + case OBJ_EVENT_GFX_ILLUMISE: + case OBJ_EVENT_GFX_KYOGRE: + case OBJ_EVENT_GFX_LATIAS_FOLLOWER: + case OBJ_EVENT_GFX_LATIOS_FOLLOWER: + return TRUE; + default: + return FALSE; + } +} + void AnimCmd_frame(struct Sprite *sprite) { s16 imageValue; @@ -984,6 +1037,15 @@ void AnimCmd_frame(struct Sprite *sprite) sprite->animDelayCounter = duration; + if(sprite == &gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId] && gSaveBlock2Ptr->follower.inProgress && sprite->y2 >= -1 + && !IsFlyingPokemonGraphic(gObjectEvents[gSaveBlock2Ptr->follower.objId].graphicsId) && !sprite->oam.affineMode) + { + if(sprite->animCmdIndex % 2 == 1) + sprite->y2 = 0; + else + sprite->y2 = -1; + } + if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)) SetSpriteOamFlipBits(sprite, hFlip, vFlip); @@ -1017,6 +1079,15 @@ void AnimCmd_jump(struct Sprite *sprite) duration--; sprite->animDelayCounter = duration; + + if(sprite == &gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId] && gSaveBlock2Ptr->follower.inProgress && sprite->y2 >= -1 + && !IsFlyingPokemonGraphic(gObjectEvents[gSaveBlock2Ptr->follower.objId].graphicsId) && !sprite->oam.affineMode) + { + if(sprite->animCmdIndex % 2 == 1) + sprite->y2 = 0; + else + sprite->y2 = -1; + } if (!(sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)) SetSpriteOamFlipBits(sprite, hFlip, vFlip); diff --git a/graphics/door_anims/battle_tower_corridor.png b/graphics/door_anims/battle_tower_corridor.png new file mode 100644 index 0000000000000000000000000000000000000000..06ad24c9fcef6ab615989c933d6d67f19dab7a94 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=0wfr|csbMpDVB6cUq=Rpjs4tz5?O(KrX+87 z7Y2SSBfG^w9(#$WuPgf#Mp0HB)%*wsZJ>}qa-v@uhz4Q>AO?ff1I$-}j5VGvjv*T7 z&tBZfdssn$H6U$a?~{#2++J!4%#)N_qm7waZFv$n(@qqYYy4QEq2V<#-uA8}cl~N( z_p=8IuFN%VJ>_`dLF0}{?}FQ69IvI09GNe$(|^6Bd8Yr%}aVC#>4_ zZt}-Aj8cfZ}y#_!Q7Xv(AO?ff1I$-}j76RX&+%m#oGVCoKb;3Bo7i_131i2m0Cs z70s)#OUzWg=GAAvCfE3$=BzVmp*x?Sd^7Fy$_FLSOO!YsJmhFN&A!7XYHxv;UCtHj zo_0pg@Mo9qAD+%RdP`(kYX@0Ff!0JFw`|N3^6dZGBvU? pFxECOure_C;cvu?q9HdwB{QuOw}wuku8p98@pScbS?83{1OV$lfhhn0 literal 0 HcmV?d00001 diff --git a/graphics/field_effects/pics/bug_tracks.png b/graphics/field_effects/pics/bug_tracks.png new file mode 100644 index 0000000000000000000000000000000000000000..b7062d253f68cd83d17f7e356850f9f4b47bb163 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%Amx6nlxMuPgggPDy5E6|D{BGC(2m z64!{5;QX|b^2DN426rD9pfL(%sYMFLdM1UfOCAE1aFi7IxdUa4fouk^22FV&#ggvm z>&U>cv7h@-A}f$@5a1KynzZKKw`WJ+UEOkT%as5B|KEG|ZtvM=bGF<|nzQBq-e*8n z@18BWceeTJmaMaLKEamT(fM|oBUgihfGh9b0}0|C zdJ`@%cD<`#9>ZGaIPvG@Q`>`ISbtuo@;rybZKwQqSH3SBmX#;OZk&GNEdNU#^DD9q z!TaBCSa_z~d#8_5yPklSn`$Wg;RgbW8)i9**W`PvI=Wm7W2}9^xKBu8QJm-R26gSu z@Wl;@yS%oPbH{TYNmUJU$(pM0$6tQMlnd{Rw@v!bpJ2V-;6L{aAGNkUGut`Ww>|gM Q0y>t#)78&qol`;+01`TVV*mgE literal 0 HcmV?d00001 diff --git a/graphics/field_effects/pics/slither_tracks.png b/graphics/field_effects/pics/slither_tracks.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8247c344aa46ee5d0c6ced05957f05ccf9a1f3 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DfSXiUsv|0oRR`edJ(gxod61n zm$*ih1m~xflqVLYGPwJ=0F6;7OD$3`)-x$=UGfm9grlUu&mAaZ3}iESHE7BMDVB6c zUq=Rpjs4tz5?O(Kg8-ip*Q7P?zCAno?&_9%Tc-T~|Nq{zcYDu1o3rI!(wr^-_dWxv zdiQL}y|c|%w`85219D%-$A?#e6l0RNyUYKj?4OPTIc=UUjv*CuYA0S4WKraB&TRO1 z+lzT4^NNQlk}_qfee;($Nj04iebsj^zhGzdOLC z@v3_<&z>L46J9N{{kvjCupr0An@3hg*Dm7DDtYXbt-r@;M1& literal 0 HcmV?d00001 diff --git a/graphics/field_effects/pics/spot_tracks.png b/graphics/field_effects/pics/spot_tracks.png new file mode 100644 index 0000000000000000000000000000000000000000..cd8c9c0cf4ba7ff95fc87f06ec3c4fb7d51140ab GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%Amx6nlxMuPgggPDy5IruRyIQa~Z` z64!{5;QX|b^2DN426rD9pfL(%sYMFLdM1UfOCAE1aFi7IxdUa4fouk^22FV&#ggvm z>&U>cv7h@-A}f$@5a1KynzZKKw`WJ+UEOkT%as5B|KEG|ZtvM=bGF<|nzQBq-e*8n z@18BWceeTJmaMaLKkyAQ5E-N7?N2WG8`EhW-^NWZME4T3e?Qt>FVdQ&MBb@ E08~6)ssI20 literal 0 HcmV?d00001 diff --git a/graphics/object_events/palettes/cherish_ball.pal b/graphics/object_events/palettes/cherish_ball.pal new file mode 100644 index 000000000..f2e72ff06 --- /dev/null +++ b/graphics/object_events/palettes/cherish_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +95 15 1 +69 65 59 +193 55 31 +249 249 249 +225 87 63 +0 0 0 +0 0 0 +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/object_events/palettes/dive_ball.pal b/graphics/object_events/palettes/dive_ball.pal new file mode 100644 index 000000000..03d8740a5 --- /dev/null +++ b/graphics/object_events/palettes/dive_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +157 157 189 +221 205 241 +11 117 245 +71 151 249 +15 47 85 +1 1 1 +249 249 249 +187 155 227 +57 49 69 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/dream_ball.pal b/graphics/object_events/palettes/dream_ball.pal new file mode 100644 index 000000000..a691977ce --- /dev/null +++ b/graphics/object_events/palettes/dream_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +219 133 171 +247 41 129 +1 1 1 +107 83 141 +55 37 79 +193 185 209 +249 103 165 +249 249 249 +139 115 173 +95 31 61 +233 183 205 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/dusk_ball.pal b/graphics/object_events/palettes/dusk_ball.pal new file mode 100644 index 000000000..0be0a538c --- /dev/null +++ b/graphics/object_events/palettes/dusk_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +63 163 63 +45 115 45 +185 33 1 +47 47 47 +69 65 59 +105 97 87 +217 73 1 +249 249 249 +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/object_events/palettes/fast_ball.pal b/graphics/object_events/palettes/fast_ball.pal new file mode 100644 index 000000000..9d9b9d86c --- /dev/null +++ b/graphics/object_events/palettes/fast_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +241 149 79 +157 157 189 +91 69 1 +249 249 249 +213 171 43 +1 1 1 +75 75 123 +101 43 1 +235 113 21 +205 205 223 +223 191 97 +255 255 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/abra.pal b/graphics/object_events/palettes/followers/abra.pal new file mode 100644 index 000000000..dd409648b --- /dev/null +++ b/graphics/object_events/palettes/followers/abra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 153 41 +1 1 1 +73 57 25 +145 121 97 +249 217 97 +121 97 57 +0 0 0 +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/object_events/palettes/followers/absol.pal b/graphics/object_events/palettes/followers/absol.pal new file mode 100644 index 000000000..ece8b1c3e --- /dev/null +++ b/graphics/object_events/palettes/followers/absol.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +121 129 161 +65 73 89 +177 185 201 +41 49 65 +97 105 129 +209 217 233 +1 1 1 +65 73 97 +129 33 33 +233 233 249 +185 185 185 +97 105 145 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/aerodactyl.pal b/graphics/object_events/palettes/followers/aerodactyl.pal new file mode 100644 index 000000000..36ee48913 --- /dev/null +++ b/graphics/object_events/palettes/followers/aerodactyl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +201 201 209 +73 65 97 +145 137 201 +129 113 177 +177 177 225 +97 17 17 +233 233 249 +129 89 129 +185 137 193 +105 137 49 +225 225 225 +161 217 73 +57 73 25 +0 0 0 diff --git a/graphics/object_events/palettes/followers/aggron.pal b/graphics/object_events/palettes/followers/aggron.pal new file mode 100644 index 000000000..285abfd63 --- /dev/null +++ b/graphics/object_events/palettes/followers/aggron.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 129 145 +73 65 81 +209 209 217 +1 1 1 +65 97 129 +105 145 201 +169 57 57 +49 41 57 +177 177 193 +209 89 89 +233 233 249 +145 145 153 +105 97 113 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/aipom.pal b/graphics/object_events/palettes/followers/aipom.pal new file mode 100644 index 000000000..f658712e1 --- /dev/null +++ b/graphics/object_events/palettes/followers/aipom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 145 97 +169 137 201 +97 81 65 +225 209 161 +185 201 225 +113 73 145 +1 1 1 +81 41 113 +233 233 249 +137 105 169 +137 113 81 +137 153 185 +201 177 129 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/alakazam.pal b/graphics/object_events/palettes/followers/alakazam.pal new file mode 100644 index 000000000..ba8f7100d --- /dev/null +++ b/graphics/object_events/palettes/followers/alakazam.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 169 49 +177 177 185 +105 81 57 +1 1 1 +249 241 193 +145 121 57 +73 57 25 +249 217 97 +233 233 249 +145 121 97 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/altaria.pal b/graphics/object_events/palettes/followers/altaria.pal new file mode 100644 index 000000000..e6335124b --- /dev/null +++ b/graphics/object_events/palettes/followers/altaria.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 129 169 +97 193 233 +65 169 217 +73 81 105 +209 225 233 +1 2 5 +113 129 145 +41 105 153 +169 177 193 +249 249 249 +225 225 233 +89 145 177 +113 177 209 +65 113 153 +49 81 121 diff --git a/graphics/object_events/palettes/followers/ampharos.pal b/graphics/object_events/palettes/followers/ampharos.pal new file mode 100644 index 000000000..17ad1d495 --- /dev/null +++ b/graphics/object_events/palettes/followers/ampharos.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 129 25 +185 57 17 +113 129 153 +49 57 65 +1 1 1 +185 201 225 +241 89 81 +129 25 9 +81 97 113 +241 209 89 +105 89 9 +233 233 249 +201 161 33 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/anorith.pal b/graphics/object_events/palettes/followers/anorith.pal new file mode 100644 index 000000000..34717ba7c --- /dev/null +++ b/graphics/object_events/palettes/followers/anorith.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 153 113 +65 65 73 +201 201 217 +73 113 57 +161 161 177 +137 25 57 +129 169 121 +233 233 249 +193 113 105 +49 41 49 +105 105 113 +169 65 81 +217 217 233 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/arbok.pal b/graphics/object_events/palettes/followers/arbok.pal new file mode 100644 index 000000000..3b8525b57 --- /dev/null +++ b/graphics/object_events/palettes/followers/arbok.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 169 81 +121 89 169 +57 49 81 +177 129 193 +193 65 65 +1 1 1 +65 65 65 +233 233 249 +145 121 177 +185 145 225 +113 81 145 +225 177 241 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/arcanine.pal b/graphics/object_events/palettes/followers/arcanine.pal new file mode 100644 index 000000000..d2b3a0236 --- /dev/null +++ b/graphics/object_events/palettes/followers/arcanine.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 105 +145 73 33 +225 193 145 +185 81 25 +73 49 25 +177 177 209 +89 89 89 +1 1 1 +233 233 249 +249 105 49 +121 89 57 +49 49 49 +233 121 73 +137 89 41 +201 153 81 diff --git a/graphics/object_events/palettes/followers/ariados.pal b/graphics/object_events/palettes/followers/ariados.pal new file mode 100644 index 000000000..ebc2b6797 --- /dev/null +++ b/graphics/object_events/palettes/followers/ariados.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 137 1 +97 33 169 +129 97 9 +1 1 1 +201 65 57 +49 41 33 +169 185 209 +113 17 25 +145 81 225 +233 233 249 +249 193 9 +73 73 73 +241 97 81 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/armaldo.pal b/graphics/object_events/palettes/followers/armaldo.pal new file mode 100644 index 000000000..9ca50cb6f --- /dev/null +++ b/graphics/object_events/palettes/followers/armaldo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 129 9 +17 65 97 +97 145 177 +193 65 105 +193 193 209 +49 49 49 +233 201 73 +57 105 145 +113 113 121 +1 1 1 +233 233 249 +161 41 81 +129 169 201 +81 81 81 +145 145 161 diff --git a/graphics/object_events/palettes/followers/aron.pal b/graphics/object_events/palettes/followers/aron.pal new file mode 100644 index 000000000..9e423f369 --- /dev/null +++ b/graphics/object_events/palettes/followers/aron.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +65 57 73 +233 233 249 +105 145 201 +89 89 89 +185 185 201 +65 97 129 +49 41 57 +161 161 177 +113 105 121 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/articuno.pal b/graphics/object_events/palettes/followers/articuno.pal new file mode 100644 index 000000000..417a8deb9 --- /dev/null +++ b/graphics/object_events/palettes/followers/articuno.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 129 25 +49 177 193 +161 225 249 +57 57 41 +57 129 137 +177 177 209 +217 249 249 +49 105 153 +161 33 49 +201 185 73 +1 1 1 +121 201 249 +105 161 233 +49 65 89 +233 233 249 diff --git a/graphics/object_events/palettes/followers/azumarill.pal b/graphics/object_events/palettes/followers/azumarill.pal new file mode 100644 index 000000000..6e4c1f918 --- /dev/null +++ b/graphics/object_events/palettes/followers/azumarill.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 161 137 +185 201 225 +57 113 161 +73 145 201 +49 57 65 +233 233 249 +113 177 241 +185 49 41 +33 49 105 +129 161 201 +1 1 1 +209 209 225 +169 185 209 +137 161 185 +33 57 105 diff --git a/graphics/object_events/palettes/followers/azurill.pal b/graphics/object_events/palettes/followers/azurill.pal new file mode 100644 index 000000000..c97f6620f --- /dev/null +++ b/graphics/object_events/palettes/followers/azurill.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +33 65 121 +169 209 241 +185 49 41 +73 137 193 +201 89 161 +49 57 65 +57 105 153 +113 177 241 +233 233 249 +129 129 145 +193 193 209 +65 65 81 +97 97 113 +161 161 177 diff --git a/graphics/object_events/palettes/followers/bagon.pal b/graphics/object_events/palettes/followers/bagon.pal new file mode 100644 index 000000000..cb37d7d6a --- /dev/null +++ b/graphics/object_events/palettes/followers/bagon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 17 +65 137 161 +201 201 201 +121 121 121 +185 185 185 +41 65 105 +233 233 249 +193 161 73 +1 1 1 +121 193 249 +105 169 225 +153 153 153 +73 81 105 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/baltoy.pal b/graphics/object_events/palettes/followers/baltoy.pal new file mode 100644 index 000000000..d903bb8ba --- /dev/null +++ b/graphics/object_events/palettes/followers/baltoy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 113 81 +177 161 97 +217 185 129 +89 81 65 +145 137 89 +1 1 1 +225 201 153 +185 81 41 +201 145 17 +161 57 25 +73 1 1 +217 97 65 +193 73 41 +121 25 17 +233 209 105 diff --git a/graphics/object_events/palettes/followers/banette.pal b/graphics/object_events/palettes/followers/banette.pal new file mode 100644 index 000000000..5324e0358 --- /dev/null +++ b/graphics/object_events/palettes/followers/banette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +121 97 25 +73 57 17 +97 105 129 +41 49 65 +97 17 17 +201 161 49 +1 1 1 +161 129 41 +193 57 57 +129 129 161 +65 73 97 +145 33 33 +81 129 201 +161 161 193 +49 81 153 diff --git a/graphics/object_events/palettes/followers/barboach.pal b/graphics/object_events/palettes/followers/barboach.pal new file mode 100644 index 000000000..ccc983a79 --- /dev/null +++ b/graphics/object_events/palettes/followers/barboach.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 145 153 +233 233 249 +89 145 185 +49 65 81 +121 177 209 +89 97 113 +1 1 1 +153 161 177 +57 113 153 +185 185 201 +25 65 105 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/bayleef.pal b/graphics/object_events/palettes/followers/bayleef.pal new file mode 100644 index 000000000..bdfc636fc --- /dev/null +++ b/graphics/object_events/palettes/followers/bayleef.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 145 9 +217 217 217 +169 153 89 +161 193 81 +65 81 1 +201 185 89 +177 81 121 +233 233 249 +233 217 89 +1 1 1 +97 81 33 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/beautifly.pal b/graphics/object_events/palettes/followers/beautifly.pal new file mode 100644 index 000000000..1f2c4405a --- /dev/null +++ b/graphics/object_events/palettes/followers/beautifly.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 169 49 +97 97 105 +81 145 225 +41 41 49 +209 209 217 +185 49 73 +1 1 1 +217 89 97 +177 177 177 +249 217 105 +97 73 33 +49 97 153 +233 233 249 +65 65 73 +0 0 0 diff --git a/graphics/object_events/palettes/followers/beedrill.pal b/graphics/object_events/palettes/followers/beedrill.pal new file mode 100644 index 000000000..3888be488 --- /dev/null +++ b/graphics/object_events/palettes/followers/beedrill.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 41 +193 193 193 +105 81 41 +145 145 145 +193 41 65 +249 209 65 +233 233 249 +81 81 81 +1 1 1 +129 129 129 +81 73 73 +49 49 49 +105 97 97 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/beldum.pal b/graphics/object_events/palettes/followers/beldum.pal new file mode 100644 index 000000000..2ed964eb8 --- /dev/null +++ b/graphics/object_events/palettes/followers/beldum.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 129 169 +65 65 65 +185 185 201 +177 57 57 +113 161 209 +17 73 105 +153 217 241 +137 41 41 +1 1 1 +41 41 49 +97 97 105 +233 233 249 +153 201 233 +145 145 161 +65 97 121 diff --git a/graphics/object_events/palettes/followers/bellossom.pal b/graphics/object_events/palettes/followers/bellossom.pal new file mode 100644 index 000000000..d6249f109 --- /dev/null +++ b/graphics/object_events/palettes/followers/bellossom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 161 65 +233 233 249 +17 65 41 +57 137 89 +241 193 57 +233 81 57 +113 33 9 +217 137 25 +1 1 1 +97 89 9 +193 41 25 +73 105 25 +153 193 113 +217 153 17 +0 0 0 diff --git a/graphics/object_events/palettes/followers/bellsprout.pal b/graphics/object_events/palettes/followers/bellsprout.pal new file mode 100644 index 000000000..4084780e4 --- /dev/null +++ b/graphics/object_events/palettes/followers/bellsprout.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 153 57 +1 1 1 +81 65 49 +241 121 161 +137 217 81 +169 65 113 +121 9 5 +185 161 49 +241 225 73 +65 89 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/blastoise.pal b/graphics/object_events/palettes/followers/blastoise.pal new file mode 100644 index 000000000..020dadbe0 --- /dev/null +++ b/graphics/object_events/palettes/followers/blastoise.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 137 81 +145 137 233 +129 81 9 +241 201 81 +97 97 169 +49 57 89 +137 137 137 +233 233 249 +81 81 81 +185 185 185 +1 1 1 +73 41 9 +177 113 25 +201 169 81 +0 0 0 diff --git a/graphics/object_events/palettes/followers/blaziken.pal b/graphics/object_events/palettes/followers/blaziken.pal new file mode 100644 index 000000000..723203d09 --- /dev/null +++ b/graphics/object_events/palettes/followers/blaziken.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 169 17 +33 97 185 +1 1 1 +97 73 1 +169 25 25 +209 185 89 +241 225 153 +113 89 65 +177 129 81 +249 97 89 +241 233 225 +105 17 1 +233 49 41 +249 209 81 +185 169 161 diff --git a/graphics/object_events/palettes/followers/blissey.pal b/graphics/object_events/palettes/followers/blissey.pal new file mode 100644 index 000000000..e169adc07 --- /dev/null +++ b/graphics/object_events/palettes/followers/blissey.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 145 169 +169 185 209 +65 73 97 +1 1 1 +225 81 97 +233 233 249 +105 17 65 +249 121 185 +249 169 201 +185 89 137 +201 209 233 +145 65 113 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/breloom.pal b/graphics/object_events/palettes/followers/breloom.pal new file mode 100644 index 000000000..811a70749 --- /dev/null +++ b/graphics/object_events/palettes/followers/breloom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 137 57 +49 81 33 +233 233 249 +129 193 89 +201 65 65 +97 33 33 +1 1 1 +73 113 49 +161 41 41 +129 105 57 +233 209 145 +105 169 65 +33 57 17 +209 185 113 +81 73 49 diff --git a/graphics/object_events/palettes/followers/bulbasaur1.pal b/graphics/object_events/palettes/followers/bulbasaur1.pal new file mode 100644 index 000000000..574f338df --- /dev/null +++ b/graphics/object_events/palettes/followers/bulbasaur1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 169 17 +201 201 201 +65 65 65 +65 153 81 +105 17 25 +105 209 121 +137 225 33 +233 233 249 +1 1 1 +185 49 25 +65 97 49 +145 145 145 +137 33 57 +113 113 113 +177 177 177 diff --git a/graphics/object_events/palettes/followers/burmy_sand.pal b/graphics/object_events/palettes/followers/burmy_sand.pal new file mode 100644 index 000000000..b25ba769d --- /dev/null +++ b/graphics/object_events/palettes/followers/burmy_sand.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 177 1 +153 145 97 +201 193 137 +97 81 65 +161 161 161 +49 49 49 +1 1 1 +233 217 137 +97 97 97 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/burmy_trash.pal b/graphics/object_events/palettes/followers/burmy_trash.pal new file mode 100644 index 000000000..2471c2b33 --- /dev/null +++ b/graphics/object_events/palettes/followers/burmy_trash.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 177 1 +97 97 97 +1 1 1 +97 49 65 +137 137 137 +49 49 49 +249 169 169 +169 57 105 +217 121 153 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/butterfree.pal b/graphics/object_events/palettes/followers/butterfree.pal new file mode 100644 index 000000000..9d7c7c4e3 --- /dev/null +++ b/graphics/object_events/palettes/followers/butterfree.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 145 145 +50 65 145 +105 201 249 +97 97 97 +249 113 137 +193 40 65 +81 145 225 +185 193 225 +65 40 89 +161 105 225 +233 233 249 +113 81 201 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/cacnea.pal b/graphics/object_events/palettes/followers/cacnea.pal new file mode 100644 index 000000000..37da24383 --- /dev/null +++ b/graphics/object_events/palettes/followers/cacnea.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 65 +217 225 225 +129 193 121 +41 65 41 +105 169 97 +57 97 57 +81 81 81 +201 153 57 +249 217 89 +249 249 249 +1 1 1 +89 81 49 +169 201 121 +129 169 65 +0 0 0 diff --git a/graphics/object_events/palettes/followers/cacturne.pal b/graphics/object_events/palettes/followers/cacturne.pal new file mode 100644 index 000000000..09c80452f --- /dev/null +++ b/graphics/object_events/palettes/followers/cacturne.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 65 +169 201 121 +41 65 41 +1 1 1 +129 169 65 +57 97 57 +249 217 89 +81 81 81 +105 169 97 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/camerupt.pal b/graphics/object_events/palettes/followers/camerupt.pal new file mode 100644 index 000000000..da482a575 --- /dev/null +++ b/graphics/object_events/palettes/followers/camerupt.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 137 81 +201 73 25 +249 249 249 +73 65 49 +73 145 161 +89 97 97 +161 49 25 +1 1 1 +161 153 121 +217 105 49 +89 33 33 +129 113 81 +193 185 153 +49 57 65 +0 0 0 diff --git a/graphics/object_events/palettes/followers/carvanha.pal b/graphics/object_events/palettes/followers/carvanha.pal new file mode 100644 index 000000000..cb0714f8c --- /dev/null +++ b/graphics/object_events/palettes/followers/carvanha.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 161 9 +17 97 185 +49 121 233 +145 49 9 +1 1 1 +105 81 1 +241 193 17 +233 233 249 +169 177 185 +49 57 65 +201 57 33 +249 81 41 +249 217 33 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/cascoon.pal b/graphics/object_events/palettes/followers/cascoon.pal new file mode 100644 index 000000000..68d6587a8 --- /dev/null +++ b/graphics/object_events/palettes/followers/cascoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +81 65 121 +209 201 233 +129 33 57 +241 105 105 +161 153 201 +121 105 161 +233 233 249 +185 49 73 +129 129 137 +81 81 81 +185 185 169 +225 225 209 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/castform.pal b/graphics/object_events/palettes/followers/castform.pal new file mode 100644 index 000000000..057916921 --- /dev/null +++ b/graphics/object_events/palettes/followers/castform.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 129 145 +193 193 209 +65 65 81 +1 1 1 +233 233 249 +97 97 113 +161 161 177 +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/object_events/palettes/followers/caterpie.pal b/graphics/object_events/palettes/followers/caterpie.pal new file mode 100644 index 000000000..68f678aba --- /dev/null +++ b/graphics/object_events/palettes/followers/caterpie.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 153 41 +169 233 65 +65 89 33 +249 121 113 +81 81 81 +161 49 73 +169 153 65 +249 233 97 +1 1 1 +129 97 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/celebi.pal b/graphics/object_events/palettes/followers/celebi.pal new file mode 100644 index 000000000..50b97151d --- /dev/null +++ b/graphics/object_events/palettes/followers/celebi.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 81 +25 169 225 +121 185 73 +249 249 193 +1 89 137 +33 41 41 +145 153 153 +137 185 241 +193 225 113 +233 233 249 +1 1 1 +33 65 33 +81 177 209 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/chansey.pal b/graphics/object_events/palettes/followers/chansey.pal new file mode 100644 index 000000000..b8f10da5f --- /dev/null +++ b/graphics/object_events/palettes/followers/chansey.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +233 193 217 +105 57 89 +217 137 185 +153 89 129 +233 233 249 +169 185 209 +225 97 121 +169 145 65 +241 233 185 +233 185 65 +201 185 137 +105 97 65 +249 217 105 +0 0 0 diff --git a/graphics/object_events/palettes/followers/charizard.pal b/graphics/object_events/palettes/followers/charizard.pal new file mode 100644 index 000000000..e817695ce --- /dev/null +++ b/graphics/object_events/palettes/followers/charizard.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 129 129 +161 161 161 +97 49 1 +249 185 17 +41 73 89 +201 89 41 +1 1 1 +145 65 33 +217 217 249 +249 121 57 +193 17 33 +241 209 113 +217 169 49 +97 65 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/charmander.pal b/graphics/object_events/palettes/followers/charmander.pal new file mode 100644 index 000000000..8df0fb2ef --- /dev/null +++ b/graphics/object_events/palettes/followers/charmander.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +167 177 129 +249 137 57 +97 65 33 +233 233 249 +1 1 1 +185 89 33 +225 41 41 +217 169 49 +41 73 89 +241 209 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/charmeleon.pal b/graphics/object_events/palettes/followers/charmeleon.pal new file mode 100644 index 000000000..108320b28 --- /dev/null +++ b/graphics/object_events/palettes/followers/charmeleon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 169 49 +41 105 129 +177 185 249 +241 209 113 +201 17 41 +145 145 145 +185 65 57 +97 25 33 +233 233 249 +249 105 89 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/chikorita.pal b/graphics/object_events/palettes/followers/chikorita.pal new file mode 100644 index 000000000..6f6efef17 --- /dev/null +++ b/graphics/object_events/palettes/followers/chikorita.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 145 41 +169 185 209 +145 193 65 +57 105 17 +1 1 1 +169 41 41 +113 177 81 +233 233 249 +193 217 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/chimecho.pal b/graphics/object_events/palettes/followers/chimecho.pal new file mode 100644 index 000000000..cfbd41a93 --- /dev/null +++ b/graphics/object_events/palettes/followers/chimecho.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 145 57 +161 169 193 +193 57 57 +1 1 1 +121 129 153 +209 209 233 +89 97 121 +113 33 33 +249 217 89 +137 105 33 +233 233 249 +209 161 81 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/chinchou.pal b/graphics/object_events/palettes/followers/chinchou.pal new file mode 100644 index 000000000..23a92cfb2 --- /dev/null +++ b/graphics/object_events/palettes/followers/chinchou.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 161 17 +97 137 225 +41 57 113 +193 201 217 +81 65 9 +1 1 1 +113 169 241 +185 49 41 +249 209 97 +89 89 161 +129 105 25 +233 233 249 +193 185 217 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/clamperl.pal b/graphics/object_events/palettes/followers/clamperl.pal new file mode 100644 index 000000000..8ff612cf1 --- /dev/null +++ b/graphics/object_events/palettes/followers/clamperl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 129 169 +49 65 105 +1 1 1 +169 65 105 +137 161 209 +49 49 65 +73 97 137 +161 193 241 +233 121 161 +137 33 73 +201 89 129 +209 217 233 +97 105 129 +153 169 201 +0 0 0 diff --git a/graphics/object_events/palettes/followers/claydol.pal b/graphics/object_events/palettes/followers/claydol.pal new file mode 100644 index 000000000..2c319666c --- /dev/null +++ b/graphics/object_events/palettes/followers/claydol.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 121 25 +137 137 153 +57 49 41 +137 121 89 +193 73 121 +217 185 89 +233 233 249 +89 81 65 +137 41 65 +185 185 193 +233 137 113 +1 1 1 +113 89 73 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/clefable.pal b/graphics/object_events/palettes/followers/clefable.pal new file mode 100644 index 000000000..a9968049c --- /dev/null +++ b/graphics/object_events/palettes/followers/clefable.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 129 169 +73 57 57 +1 1 1 +217 81 121 +121 97 73 +201 201 201 +225 145 153 +121 57 73 +249 193 193 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/clefairy.pal b/graphics/object_events/palettes/followers/clefairy.pal new file mode 100644 index 000000000..e207e246c --- /dev/null +++ b/graphics/object_events/palettes/followers/clefairy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +97 57 65 +233 233 249 +121 89 57 +169 169 169 +161 81 97 +185 105 129 +241 153 169 +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/object_events/palettes/followers/cleffa.pal b/graphics/object_events/palettes/followers/cleffa.pal new file mode 100644 index 000000000..c77ddde7a --- /dev/null +++ b/graphics/object_events/palettes/followers/cleffa.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 153 153 +129 73 57 +233 233 249 +169 113 105 +81 41 33 +241 185 193 +217 89 97 +1 1 1 +153 89 97 +97 49 65 +113 129 185 +177 185 217 +49 49 81 +225 225 241 +73 81 121 diff --git a/graphics/object_events/palettes/followers/cloyster.pal b/graphics/object_events/palettes/followers/cloyster.pal new file mode 100644 index 000000000..b15a51ee6 --- /dev/null +++ b/graphics/object_events/palettes/followers/cloyster.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 153 153 +97 97 97 +57 57 57 +233 233 249 +193 177 233 +145 113 185 +41 41 49 +1 1 1 +81 81 81 +97 89 121 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/combusken.pal b/graphics/object_events/palettes/followers/combusken.pal new file mode 100644 index 000000000..f7982b18f --- /dev/null +++ b/graphics/object_events/palettes/followers/combusken.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +241 129 17 +73 65 17 +169 161 201 +1 1 1 +161 81 17 +113 49 9 +185 161 89 +113 105 49 +233 233 249 +249 209 97 +201 105 17 +121 81 17 +161 145 81 +233 169 17 +209 97 1 diff --git a/graphics/object_events/palettes/followers/corphish.pal b/graphics/object_events/palettes/followers/corphish.pal new file mode 100644 index 000000000..4fe98b274 --- /dev/null +++ b/graphics/object_events/palettes/followers/corphish.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 121 145 +89 81 65 +233 233 249 +177 177 193 +193 73 33 +161 153 129 +89 25 1 +121 113 97 +233 137 97 +217 105 65 +153 49 9 +1 1 1 +57 73 89 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/corsola.pal b/graphics/object_events/palettes/followers/corsola.pal new file mode 100644 index 000000000..caf141ec5 --- /dev/null +++ b/graphics/object_events/palettes/followers/corsola.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 145 185 +169 185 209 +73 81 97 +1 1 1 +233 233 249 +169 65 89 +121 33 65 +233 129 161 +241 169 193 +217 105 129 +193 209 233 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/cradily.pal b/graphics/object_events/palettes/followers/cradily.pal new file mode 100644 index 000000000..9b10b1bbe --- /dev/null +++ b/graphics/object_events/palettes/followers/cradily.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 129 89 +33 89 49 +241 185 1 +97 169 97 +49 41 49 +193 65 97 +241 209 97 +137 25 57 +209 105 137 +153 217 153 +161 49 89 +1 1 1 +129 113 65 +89 81 49 +0 0 0 diff --git a/graphics/object_events/palettes/followers/crawdaunt.pal b/graphics/object_events/palettes/followers/crawdaunt.pal new file mode 100644 index 000000000..cd8f78f0c --- /dev/null +++ b/graphics/object_events/palettes/followers/crawdaunt.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 153 41 +49 57 73 +41 129 169 +201 81 65 +169 153 145 +113 89 25 +233 233 249 +169 169 185 +249 217 89 +89 41 9 +145 57 33 +249 105 97 +89 81 65 +57 145 201 +1 1 1 diff --git a/graphics/object_events/palettes/followers/crobat.pal b/graphics/object_events/palettes/followers/crobat.pal new file mode 100644 index 000000000..35a380e27 --- /dev/null +++ b/graphics/object_events/palettes/followers/crobat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +73 25 121 +41 145 185 +17 97 145 +233 233 249 +121 81 145 +161 49 57 +233 217 97 +169 185 209 +161 113 185 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/croconaw.pal b/graphics/object_events/palettes/followers/croconaw.pal new file mode 100644 index 000000000..f1504a314 --- /dev/null +++ b/graphics/object_events/palettes/followers/croconaw.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 161 89 +73 65 17 +57 169 193 +41 65 97 +113 25 41 +225 209 121 +121 105 41 +233 233 249 +65 105 137 +169 41 65 +113 193 225 +1 1 1 +137 73 1 +209 49 73 +0 0 0 diff --git a/graphics/object_events/palettes/followers/cubone.pal b/graphics/object_events/palettes/followers/cubone.pal new file mode 100644 index 000000000..719548eab --- /dev/null +++ b/graphics/object_events/palettes/followers/cubone.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 137 89 +193 193 193 +1 1 1 +137 97 25 +217 225 225 +161 161 161 +73 49 49 +129 129 129 +73 73 73 +209 177 145 +233 233 249 +169 129 73 +201 153 81 +225 193 145 +193 161 105 diff --git a/graphics/object_events/palettes/followers/cyndaquil.pal b/graphics/object_events/palettes/followers/cyndaquil.pal new file mode 100644 index 000000000..58b2aa207 --- /dev/null +++ b/graphics/object_events/palettes/followers/cyndaquil.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 169 25 +73 73 113 +129 25 25 +97 129 225 +89 65 17 +1 1 1 +209 57 49 +169 185 209 +233 233 249 +33 49 81 +249 209 97 +81 97 161 +161 41 41 +57 65 81 +241 161 17 diff --git a/graphics/object_events/palettes/followers/delcatty.pal b/graphics/object_events/palettes/followers/delcatty.pal new file mode 100644 index 000000000..a31726030 --- /dev/null +++ b/graphics/object_events/palettes/followers/delcatty.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 121 73 +193 145 217 +65 49 105 +225 185 57 +153 105 201 +1 1 1 +81 73 57 +233 233 249 +233 209 129 +97 73 137 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/delibird.pal b/graphics/object_events/palettes/followers/delibird.pal new file mode 100644 index 000000000..899736131 --- /dev/null +++ b/graphics/object_events/palettes/followers/delibird.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +129 105 17 +137 1 1 +145 161 177 +185 25 25 +193 209 233 +249 217 89 +73 73 73 +233 233 249 +153 1 1 +201 25 25 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/deoxys.pal b/graphics/object_events/palettes/followers/deoxys.pal new file mode 100644 index 000000000..a02008116 --- /dev/null +++ b/graphics/object_events/palettes/followers/deoxys.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +49 121 105 +121 65 129 +57 57 57 +161 177 129 +249 129 81 +225 73 65 +97 17 17 +81 89 97 +233 233 249 +1 1 1 +185 89 209 +65 169 153 +185 41 41 +33 73 65 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dewgong.pal b/graphics/object_events/palettes/followers/dewgong.pal new file mode 100644 index 000000000..0897c29ff --- /dev/null +++ b/graphics/object_events/palettes/followers/dewgong.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 129 185 +177 185 217 +49 49 81 +225 225 241 +1 1 1 +73 81 121 +233 233 249 +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/object_events/palettes/followers/diglett.pal b/graphics/object_events/palettes/followers/diglett.pal new file mode 100644 index 000000000..761624524 --- /dev/null +++ b/graphics/object_events/palettes/followers/diglett.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 137 3 +113 113 113 +65 49 17 +1 1 1 +65 65 65 +169 169 169 +153 33 73 +153 121 57 +209 65 105 +233 113 153 +201 201 201 +113 73 33 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ditto.pal b/graphics/object_events/palettes/followers/ditto.pal new file mode 100644 index 000000000..c366583be --- /dev/null +++ b/graphics/object_events/palettes/followers/ditto.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 177 +185 145 225 +113 81 145 +65 65 65 +1 1 1 +225 177 241 +0 0 0 +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/object_events/palettes/followers/dodrio.pal b/graphics/object_events/palettes/followers/dodrio.pal new file mode 100644 index 000000000..183414bf0 --- /dev/null +++ b/graphics/object_events/palettes/followers/dodrio.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 129 73 +121 81 41 +177 177 153 +129 129 129 +65 49 33 +137 97 41 +193 161 65 +1 1 1 +233 233 249 +97 25 33 +185 65 89 +225 129 145 +249 177 49 +57 57 57 +137 113 41 diff --git a/graphics/object_events/palettes/followers/doduo.pal b/graphics/object_events/palettes/followers/doduo.pal new file mode 100644 index 000000000..a2c6db86f --- /dev/null +++ b/graphics/object_events/palettes/followers/doduo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 97 41 +1 1 1 +113 105 97 +73 57 41 +193 121 25 +225 177 105 +185 129 73 +105 73 33 +57 113 65 +17 161 49 +33 73 41 +113 1 1 +65 113 153 +41 73 73 +137 193 129 diff --git a/graphics/object_events/palettes/followers/donphan.pal b/graphics/object_events/palettes/followers/donphan.pal new file mode 100644 index 000000000..df25c4cb5 --- /dev/null +++ b/graphics/object_events/palettes/followers/donphan.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +121 137 153 +73 65 73 +249 249 249 +1 1 1 +25 41 57 +121 121 129 +73 89 113 +185 185 193 +137 25 25 +137 1 1 +153 153 161 +49 73 81 +185 185 201 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dragonair.pal b/graphics/object_events/palettes/followers/dragonair.pal new file mode 100644 index 000000000..5f7e4eaa8 --- /dev/null +++ b/graphics/object_events/palettes/followers/dragonair.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +209 209 209 +65 65 65 +41 121 169 +81 145 217 +233 233 249 +105 105 105 +89 177 217 +145 41 33 +161 201 249 +49 65 105 +113 177 241 +81 113 177 +241 241 241 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dragonite.pal b/graphics/object_events/palettes/followers/dragonite.pal new file mode 100644 index 000000000..c17cc58ce --- /dev/null +++ b/graphics/object_events/palettes/followers/dragonite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 129 65 +145 153 161 +241 177 81 +65 57 33 +57 129 113 +1 1 1 +41 97 81 +233 233 249 +185 193 209 +153 97 49 +153 153 153 +233 201 153 +97 97 97 +209 169 121 +217 137 65 diff --git a/graphics/object_events/palettes/followers/dratini.pal b/graphics/object_events/palettes/followers/dratini.pal new file mode 100644 index 000000000..b8472f998 --- /dev/null +++ b/graphics/object_events/palettes/followers/dratini.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +65 65 65 +193 193 217 +97 113 169 +129 137 209 +105 105 105 +217 217 217 +145 41 33 +153 161 225 +233 233 249 +57 65 97 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/drowzee.pal b/graphics/object_events/palettes/followers/drowzee.pal new file mode 100644 index 000000000..d19de6d0d --- /dev/null +++ b/graphics/object_events/palettes/followers/drowzee.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 153 41 +81 65 49 +233 233 249 +105 81 121 +1 1 1 +121 105 33 +49 49 49 +233 201 81 +89 81 73 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dugtrio.pal b/graphics/object_events/palettes/followers/dugtrio.pal new file mode 100644 index 000000000..19bbad592 --- /dev/null +++ b/graphics/object_events/palettes/followers/dugtrio.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 105 57 +57 41 17 +1 1 1 +113 113 113 +65 65 65 +129 17 49 +169 169 169 +153 121 57 +209 65 105 +233 121 153 +201 201 201 +113 73 33 +153 33 73 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dunsparce.pal b/graphics/object_events/palettes/followers/dunsparce.pal new file mode 100644 index 000000000..9cc03ea9e --- /dev/null +++ b/graphics/object_events/palettes/followers/dunsparce.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 169 1 +1 1 1 +137 185 225 +25 57 73 +217 193 1 +233 233 249 +249 225 161 +185 209 241 +249 233 113 +153 137 105 +81 161 185 +65 81 97 +65 57 57 +121 193 217 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dusclops.pal b/graphics/object_events/palettes/followers/dusclops.pal new file mode 100644 index 000000000..30d44a7a9 --- /dev/null +++ b/graphics/object_events/palettes/followers/dusclops.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 121 113 +185 185 185 +73 65 49 +161 161 161 +209 97 97 +1 1 1 +225 217 217 +105 89 81 +145 33 33 +169 177 201 +233 233 249 +185 177 177 +65 65 65 +121 121 121 +0 0 0 diff --git a/graphics/object_events/palettes/followers/duskull.pal b/graphics/object_events/palettes/followers/duskull.pal new file mode 100644 index 000000000..5f79a1d4e --- /dev/null +++ b/graphics/object_events/palettes/followers/duskull.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 121 113 +73 65 49 +1 1 1 +193 57 57 +145 33 33 +217 113 113 +81 89 113 +201 185 185 +33 41 57 +225 217 217 +105 113 145 +57 65 81 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/dustox.pal b/graphics/object_events/palettes/followers/dustox.pal new file mode 100644 index 000000000..72e80bb45 --- /dev/null +++ b/graphics/object_events/palettes/followers/dustox.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 113 57 +73 57 113 +161 145 217 +137 185 105 +57 57 57 +169 217 89 +185 49 73 +241 105 105 +121 97 169 +105 153 41 +65 89 33 +97 73 33 +241 217 105 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/eevee.pal b/graphics/object_events/palettes/followers/eevee.pal new file mode 100644 index 000000000..c04ada4ee --- /dev/null +++ b/graphics/object_events/palettes/followers/eevee.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 129 65 +225 209 169 +97 65 57 +185 161 97 +129 97 49 +65 49 25 +193 145 81 +233 233 249 +1 1 1 +121 97 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ekans.pal b/graphics/object_events/palettes/followers/ekans.pal new file mode 100644 index 000000000..b163ae5c8 --- /dev/null +++ b/graphics/object_events/palettes/followers/ekans.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 161 49 +113 97 41 +201 129 193 +121 81 121 +97 49 105 +249 217 65 +1 1 1 +145 97 145 +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/object_events/palettes/followers/electabuzz.pal b/graphics/object_events/palettes/followers/electabuzz.pal new file mode 100644 index 000000000..9c31f633c --- /dev/null +++ b/graphics/object_events/palettes/followers/electabuzz.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 17 +145 145 145 +65 57 33 +233 233 249 +73 81 81 +241 209 1 +1 1 1 +49 49 49 +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/object_events/palettes/followers/electrike.pal b/graphics/object_events/palettes/followers/electrike.pal new file mode 100644 index 000000000..5d0115cfa --- /dev/null +++ b/graphics/object_events/palettes/followers/electrike.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 137 65 +233 233 249 +249 209 65 +129 169 97 +33 57 9 +153 201 97 +193 145 41 +1 1 1 +113 81 25 +177 225 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/electrode.pal b/graphics/object_events/palettes/followers/electrode.pal new file mode 100644 index 000000000..335df9141 --- /dev/null +++ b/graphics/object_events/palettes/followers/electrode.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +185 185 193 +105 105 105 +201 33 33 +217 217 217 +49 49 49 +161 161 161 +233 233 249 +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/object_events/palettes/followers/elekid.pal b/graphics/object_events/palettes/followers/elekid.pal new file mode 100644 index 000000000..f012682dd --- /dev/null +++ b/graphics/object_events/palettes/followers/elekid.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 169 1 +105 81 1 +1 1 1 +193 113 1 +249 217 97 +57 65 73 +233 233 249 +185 153 41 +73 57 25 +145 121 97 +121 97 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/entei.pal b/graphics/object_events/palettes/followers/entei.pal new file mode 100644 index 000000000..934782cde --- /dev/null +++ b/graphics/object_events/palettes/followers/entei.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 137 25 +97 65 49 +113 137 145 +49 57 81 +249 217 57 +217 73 33 +169 25 1 +89 81 25 +169 193 209 +1 1 1 +73 49 41 +233 233 249 +89 97 121 +169 121 81 +129 89 57 diff --git a/graphics/object_events/palettes/followers/espeon.pal b/graphics/object_events/palettes/followers/espeon.pal new file mode 100644 index 000000000..814e30a6e --- /dev/null +++ b/graphics/object_events/palettes/followers/espeon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +49 33 121 +241 201 233 +233 137 177 +57 113 177 +225 177 217 +201 57 49 +81 41 121 +169 105 161 +233 233 249 +201 145 209 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/exeggcute.pal b/graphics/object_events/palettes/followers/exeggcute.pal new file mode 100644 index 000000000..904253fe5 --- /dev/null +++ b/graphics/object_events/palettes/followers/exeggcute.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 121 105 +233 177 185 +89 73 65 +233 177 57 +241 209 217 +161 97 105 +1 1 1 +233 233 249 +89 121 145 +161 185 201 +49 65 81 +193 209 225 +193 57 57 +129 153 169 +0 0 0 diff --git a/graphics/object_events/palettes/followers/exeggutor.pal b/graphics/object_events/palettes/followers/exeggutor.pal new file mode 100644 index 000000000..9e45a52b5 --- /dev/null +++ b/graphics/object_events/palettes/followers/exeggutor.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 169 41 +161 161 161 +57 81 41 +129 217 89 +201 137 89 +201 89 121 +145 97 57 +209 161 89 +233 233 249 +65 41 41 +249 201 89 +1 1 1 +89 73 65 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/exploud.pal b/graphics/object_events/palettes/followers/exploud.pal new file mode 100644 index 000000000..000d9c38f --- /dev/null +++ b/graphics/object_events/palettes/followers/exploud.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 145 49 +105 73 33 +137 129 185 +81 73 105 +41 49 65 +233 233 249 +105 97 153 +233 209 105 +1 1 1 +169 177 193 +113 33 49 +185 65 105 +177 169 225 +105 113 137 +137 41 65 diff --git a/graphics/object_events/palettes/followers/farfetchd.pal b/graphics/object_events/palettes/followers/farfetchd.pal new file mode 100644 index 000000000..5c23264c2 --- /dev/null +++ b/graphics/object_events/palettes/followers/farfetchd.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 145 33 +169 169 169 +249 201 49 +81 81 81 +153 161 113 +241 225 161 +1 1 1 +177 145 41 +73 57 41 +233 233 249 +137 113 65 +209 209 193 +177 129 73 +217 169 121 +201 185 121 diff --git a/graphics/object_events/palettes/followers/fearow.pal b/graphics/object_events/palettes/followers/fearow.pal new file mode 100644 index 000000000..04f68a619 --- /dev/null +++ b/graphics/object_events/palettes/followers/fearow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 145 33 +241 129 153 +193 65 1 +225 129 97 +185 185 185 +65 65 65 +89 57 17 +185 169 113 +233 233 249 +177 81 121 +177 113 17 +89 17 9 +225 201 169 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/feebas.pal b/graphics/object_events/palettes/followers/feebas.pal new file mode 100644 index 000000000..f5ca9d67c --- /dev/null +++ b/graphics/object_events/palettes/followers/feebas.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 121 73 +113 161 209 +73 57 33 +1 1 1 +49 81 113 +81 121 161 +233 233 249 +17 41 65 +193 65 105 +193 193 209 +169 153 89 +105 89 49 +201 185 113 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/feraligatr.pal b/graphics/object_events/palettes/followers/feraligatr.pal new file mode 100644 index 000000000..043239005 --- /dev/null +++ b/graphics/object_events/palettes/followers/feraligatr.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 41 +81 129 185 +73 65 17 +185 161 89 +161 209 241 +169 41 65 +225 193 121 +161 177 201 +17 65 97 +97 33 41 +65 105 137 +233 233 249 +1 1 1 +113 177 233 +209 49 73 diff --git a/graphics/object_events/palettes/followers/flaaffy.pal b/graphics/object_events/palettes/followers/flaaffy.pal new file mode 100644 index 000000000..3e934d7da --- /dev/null +++ b/graphics/object_events/palettes/followers/flaaffy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 185 89 +57 153 193 +97 201 241 +49 57 65 +225 145 185 +33 89 145 +185 201 225 +185 97 129 +113 41 65 +249 185 217 +233 233 249 +89 105 121 +137 153 177 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/flareon.pal b/graphics/object_events/palettes/followers/flareon.pal new file mode 100644 index 000000000..df0c348e5 --- /dev/null +++ b/graphics/object_events/palettes/followers/flareon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 121 49 +233 217 153 +73 57 41 +153 65 41 +217 169 73 +233 233 249 +217 89 33 +249 129 73 +1 1 1 +217 193 193 +81 65 65 +193 65 33 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/flygon.pal b/graphics/object_events/palettes/followers/flygon.pal new file mode 100644 index 000000000..3ed7c9537 --- /dev/null +++ b/graphics/object_events/palettes/followers/flygon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 65 +65 105 57 +185 193 209 +129 33 33 +161 193 97 +1 1 1 +249 129 153 +169 49 65 +249 249 249 +49 73 49 +193 217 153 +97 97 97 +209 65 89 +121 145 57 +0 0 0 diff --git a/graphics/object_events/palettes/followers/forretress.pal b/graphics/object_events/palettes/followers/forretress.pal new file mode 100644 index 000000000..12bb3be0e --- /dev/null +++ b/graphics/object_events/palettes/followers/forretress.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 137 137 +89 65 105 +225 209 249 +105 17 25 +185 153 185 +137 113 145 +49 49 49 +1 1 1 +217 97 65 +193 49 57 +209 185 217 +233 233 249 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/furret.pal b/graphics/object_events/palettes/followers/furret.pal new file mode 100644 index 000000000..b060290e2 --- /dev/null +++ b/graphics/object_events/palettes/followers/furret.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +113 81 49 +233 233 249 +65 33 9 +241 209 161 +209 177 113 +153 113 65 +89 57 25 +209 161 73 +97 57 57 +249 225 129 +129 105 73 +249 137 153 +177 81 89 +57 57 89 diff --git a/graphics/object_events/palettes/followers/gardevoir.pal b/graphics/object_events/palettes/followers/gardevoir.pal new file mode 100644 index 000000000..7fc27c511 --- /dev/null +++ b/graphics/object_events/palettes/followers/gardevoir.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 129 57 +169 169 177 +17 65 33 +73 177 89 +129 33 57 +129 129 145 +233 233 249 +241 105 105 +1 1 1 +201 201 217 +73 73 81 +105 201 129 +185 49 73 +145 145 145 +0 0 0 diff --git a/graphics/object_events/palettes/followers/gastly.pal b/graphics/object_events/palettes/followers/gastly.pal new file mode 100644 index 000000000..e3337fe80 --- /dev/null +++ b/graphics/object_events/palettes/followers/gastly.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 137 137 +73 73 73 +65 17 57 +233 233 249 +41 41 57 +1 1 1 +113 89 153 +81 57 105 +153 9 5 +185 185 185 +137 113 161 +57 57 57 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/gengar.pal b/graphics/object_events/palettes/followers/gengar.pal new file mode 100644 index 000000000..374fed5aa --- /dev/null +++ b/graphics/object_events/palettes/followers/gengar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 97 97 +153 153 153 +81 57 105 +185 185 185 +145 121 161 +41 41 57 +217 97 97 +1 1 1 +249 169 161 +105 81 129 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/geodude.pal b/graphics/object_events/palettes/followers/geodude.pal new file mode 100644 index 000000000..ef0621ad0 --- /dev/null +++ b/graphics/object_events/palettes/followers/geodude.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 169 129 +121 113 97 +233 233 249 +65 49 33 +1 1 1 +0 0 0 +0 0 0 +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/object_events/palettes/followers/girafarig.pal b/graphics/object_events/palettes/followers/girafarig.pal new file mode 100644 index 000000000..5d0e01229 --- /dev/null +++ b/graphics/object_events/palettes/followers/girafarig.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 121 81 +33 65 121 +249 209 97 +73 49 17 +185 81 105 +161 177 201 +41 49 57 +201 161 81 +233 233 249 +233 113 185 +57 113 161 +105 81 57 +1 1 1 +73 81 89 +97 113 153 diff --git a/graphics/object_events/palettes/followers/glalie.pal b/graphics/object_events/palettes/followers/glalie.pal new file mode 100644 index 000000000..8938d2810 --- /dev/null +++ b/graphics/object_events/palettes/followers/glalie.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 121 137 +1 1 1 +57 57 73 +153 161 177 +41 41 57 +41 129 193 +193 201 217 +81 81 97 +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/object_events/palettes/followers/gligar.pal b/graphics/object_events/palettes/followers/gligar.pal new file mode 100644 index 000000000..74a83d573 --- /dev/null +++ b/graphics/object_events/palettes/followers/gligar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 145 169 +89 41 97 +241 193 217 +9 89 129 +161 89 137 +1 1 1 +233 233 249 +201 113 177 +137 33 57 +225 153 209 +177 73 121 +209 105 153 +169 185 161 +201 209 217 +17 97 129 diff --git a/graphics/object_events/palettes/followers/gloom.pal b/graphics/object_events/palettes/followers/gloom.pal new file mode 100644 index 000000000..3bc035c4b --- /dev/null +++ b/graphics/object_events/palettes/followers/gloom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 113 25 +81 41 129 +65 113 153 +217 145 145 +169 49 73 +169 81 17 +49 81 113 +1 1 1 +217 97 113 +121 33 17 +169 169 169 +33 57 105 +217 185 145 +249 137 73 +0 0 0 diff --git a/graphics/object_events/palettes/followers/golbat.pal b/graphics/object_events/palettes/followers/golbat.pal new file mode 100644 index 000000000..b174b8804 --- /dev/null +++ b/graphics/object_events/palettes/followers/golbat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 145 153 +97 65 129 +233 233 249 +57 25 89 +81 185 177 +65 113 121 +17 57 65 +1 1 1 +137 97 185 +185 185 193 +57 57 81 +161 129 177 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/goldeen.pal b/graphics/object_events/palettes/followers/goldeen.pal new file mode 100644 index 000000000..3e9389b60 --- /dev/null +++ b/graphics/object_events/palettes/followers/goldeen.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 129 113 +177 177 177 +233 73 33 +249 233 161 +217 161 81 +97 17 1 +81 81 81 +241 129 161 +233 233 249 +1 1 1 +201 89 121 +161 33 17 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/golduck.pal b/graphics/object_events/palettes/followers/golduck.pal new file mode 100644 index 000000000..c1568e666 --- /dev/null +++ b/graphics/object_events/palettes/followers/golduck.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 185 65 +81 121 169 +241 49 113 +65 65 65 +249 233 137 +233 233 249 +1 1 1 +177 177 209 +89 17 33 +121 161 249 +249 193 81 +49 57 81 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/golem.pal b/graphics/object_events/palettes/followers/golem.pal new file mode 100644 index 000000000..d2852e60c --- /dev/null +++ b/graphics/object_events/palettes/followers/golem.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 145 105 +89 81 57 +193 193 193 +153 153 153 +121 113 81 +49 49 49 +1 1 1 +105 17 25 +233 233 249 +193 153 121 +113 89 73 +145 113 97 +161 161 161 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/gorebyss.pal b/graphics/object_events/palettes/followers/gorebyss.pal new file mode 100644 index 000000000..af3c25028 --- /dev/null +++ b/graphics/object_events/palettes/followers/gorebyss.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 121 137 +81 57 129 +209 217 233 +145 129 217 +121 105 185 +97 105 129 +49 49 65 +1 1 1 +153 169 201 +185 81 97 +201 89 113 +137 33 73 +169 153 241 +233 145 161 +233 233 249 diff --git a/graphics/object_events/palettes/followers/granbull.pal b/graphics/object_events/palettes/followers/granbull.pal new file mode 100644 index 000000000..ed5998bfc --- /dev/null +++ b/graphics/object_events/palettes/followers/granbull.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 121 137 +177 193 209 +49 65 81 +129 89 137 +1 1 1 +233 233 249 +193 145 209 +225 185 241 +161 113 169 +105 65 105 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/graveler.pal b/graphics/object_events/palettes/followers/graveler.pal new file mode 100644 index 000000000..1d6be14ad --- /dev/null +++ b/graphics/object_events/palettes/followers/graveler.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 137 105 +81 73 65 +233 233 249 +169 169 177 +185 169 129 +121 113 97 +57 49 49 +177 81 105 +1 1 1 +65 49 33 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/grimer.pal b/graphics/object_events/palettes/followers/grimer.pal new file mode 100644 index 000000000..fef0c2dba --- /dev/null +++ b/graphics/object_events/palettes/followers/grimer.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +65 57 65 +233 233 249 +105 81 121 +177 145 185 +129 105 137 +201 177 217 +121 97 153 +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/object_events/palettes/followers/groudon.pal b/graphics/object_events/palettes/followers/groudon.pal new file mode 100644 index 000000000..28f20e54a --- /dev/null +++ b/graphics/object_events/palettes/followers/groudon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +121 129 145 +217 73 65 +145 153 177 +137 25 17 +57 65 81 +33 41 57 +209 193 49 +185 201 217 +1 1 1 +129 113 25 +97 105 121 +233 233 249 +89 17 9 +73 81 97 +177 33 33 diff --git a/graphics/object_events/palettes/followers/grovyle.pal b/graphics/object_events/palettes/followers/grovyle.pal new file mode 100644 index 000000000..d1df22d69 --- /dev/null +++ b/graphics/object_events/palettes/followers/grovyle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +57 121 65 +41 57 17 +1 1 1 +105 25 25 +97 153 73 +153 201 121 +153 41 41 +65 105 41 +249 217 89 +185 49 49 +113 153 73 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/growlithe.pal b/graphics/object_events/palettes/followers/growlithe.pal new file mode 100644 index 000000000..cc0737467 --- /dev/null +++ b/graphics/object_events/palettes/followers/growlithe.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 121 73 +73 49 25 +177 177 209 +89 89 89 +1 1 1 +145 73 33 +137 89 41 +201 153 81 +233 233 249 +225 193 145 +185 81 25 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/grumpig.pal b/graphics/object_events/palettes/followers/grumpig.pal new file mode 100644 index 000000000..0563b27ca --- /dev/null +++ b/graphics/object_events/palettes/followers/grumpig.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +121 65 145 +73 81 89 +153 89 185 +105 25 65 +185 73 129 +49 57 65 +193 193 193 +249 249 249 +113 121 121 +193 121 225 +145 49 97 +225 97 161 +81 41 105 +137 73 169 diff --git a/graphics/object_events/palettes/followers/gulpin.pal b/graphics/object_events/palettes/followers/gulpin.pal new file mode 100644 index 000000000..28cdbf17d --- /dev/null +++ b/graphics/object_events/palettes/followers/gulpin.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 121 41 +57 97 17 +233 185 65 +57 73 81 +105 153 65 +1 1 1 +33 49 17 +169 129 57 +113 89 41 +137 193 113 +73 89 97 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/gyarados.pal b/graphics/object_events/palettes/followers/gyarados.pal new file mode 100644 index 000000000..3019ff479 --- /dev/null +++ b/graphics/object_events/palettes/followers/gyarados.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 129 1 +41 129 129 +193 193 209 +137 97 33 +73 177 225 +1 1 1 +33 97 129 +249 201 105 +185 65 105 +49 57 81 +217 113 153 +233 233 249 +137 145 145 +177 137 49 +65 121 153 diff --git a/graphics/object_events/palettes/followers/hariyama.pal b/graphics/object_events/palettes/followers/hariyama.pal new file mode 100644 index 000000000..9ae8eaef4 --- /dev/null +++ b/graphics/object_events/palettes/followers/hariyama.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 121 33 +105 129 177 +25 41 89 +73 57 9 +217 185 65 +217 201 153 +185 153 105 +105 81 65 +233 233 249 +65 81 137 +185 89 17 +1 1 1 +97 33 9 +241 233 193 +209 129 57 diff --git a/graphics/object_events/palettes/followers/haunter.pal b/graphics/object_events/palettes/followers/haunter.pal new file mode 100644 index 000000000..aab1166f2 --- /dev/null +++ b/graphics/object_events/palettes/followers/haunter.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 137 161 +73 73 73 +233 233 249 +65 17 57 +1 1 1 +97 73 105 +65 49 57 +153 153 153 +185 185 185 +129 97 129 +97 33 89 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/heracross.pal b/graphics/object_events/palettes/followers/heracross.pal new file mode 100644 index 000000000..26bd7164c --- /dev/null +++ b/graphics/object_events/palettes/followers/heracross.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 137 9 +81 153 177 +153 89 1 +249 249 249 +17 73 97 +129 193 201 +57 121 145 +1 1 1 +241 177 65 +33 97 121 +153 169 185 +185 201 217 +57 73 81 +17 17 17 +0 0 0 diff --git a/graphics/object_events/palettes/followers/hitmonchan.pal b/graphics/object_events/palettes/followers/hitmonchan.pal new file mode 100644 index 000000000..7c6c8e38c --- /dev/null +++ b/graphics/object_events/palettes/followers/hitmonchan.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 161 105 +113 81 57 +145 25 41 +233 233 249 +73 49 49 +161 137 201 +113 105 129 +1 1 1 +225 57 57 +153 113 65 +57 57 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/hitmonlee.pal b/graphics/object_events/palettes/followers/hitmonlee.pal new file mode 100644 index 000000000..16a145cac --- /dev/null +++ b/graphics/object_events/palettes/followers/hitmonlee.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 121 49 +161 161 161 +1 1 1 +89 73 41 +177 145 129 +161 129 81 +201 201 209 +97 97 97 +73 49 49 +233 233 249 +121 97 57 +209 185 113 +153 137 89 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/hitmontop.pal b/graphics/object_events/palettes/followers/hitmontop.pal new file mode 100644 index 000000000..cb5c2f1ee --- /dev/null +++ b/graphics/object_events/palettes/followers/hitmontop.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 129 73 +97 153 209 +89 73 25 +209 161 105 +233 233 249 +57 113 161 +25 57 105 +177 185 193 +1 1 1 +129 81 25 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ho_oh.pal b/graphics/object_events/palettes/followers/ho_oh.pal new file mode 100644 index 000000000..dcc241696 --- /dev/null +++ b/graphics/object_events/palettes/followers/ho_oh.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 153 1 +57 57 57 +1 1 1 +161 57 25 +129 201 81 +169 185 209 +81 25 1 +169 105 1 +97 121 121 +217 233 249 +57 97 17 +249 209 97 +217 81 49 +97 41 1 +233 233 249 diff --git a/graphics/object_events/palettes/followers/hoothoot.pal b/graphics/object_events/palettes/followers/hoothoot.pal new file mode 100644 index 000000000..bf367bd48 --- /dev/null +++ b/graphics/object_events/palettes/followers/hoothoot.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 113 113 +65 81 89 +1 1 1 +225 169 169 +81 41 9 +217 81 73 +137 73 57 +233 217 161 +169 185 209 +41 41 41 +177 129 89 +105 41 41 +137 89 65 +201 177 121 +0 0 0 diff --git a/graphics/object_events/palettes/followers/hoppip.pal b/graphics/object_events/palettes/followers/hoppip.pal new file mode 100644 index 000000000..7dade5208 --- /dev/null +++ b/graphics/object_events/palettes/followers/hoppip.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 201 1 +225 105 129 +49 89 17 +97 153 65 +1 1 1 +169 65 89 +89 9 3 +113 193 81 +241 145 193 +201 89 105 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/horsea.pal b/graphics/object_events/palettes/followers/horsea.pal new file mode 100644 index 000000000..4a5c74fdb --- /dev/null +++ b/graphics/object_events/palettes/followers/horsea.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 161 97 +97 153 193 +25 57 97 +233 233 249 +65 65 65 +249 209 161 +169 185 209 +145 17 17 +41 89 137 +1 1 1 +145 185 225 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/houndoom.pal b/graphics/object_events/palettes/followers/houndoom.pal new file mode 100644 index 000000000..a0eda915c --- /dev/null +++ b/graphics/object_events/palettes/followers/houndoom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 97 +81 81 89 +225 185 161 +41 41 49 +137 129 145 +113 97 121 +73 57 81 +145 25 41 +233 233 249 +1 1 1 +169 161 185 +137 97 65 +57 57 65 +105 113 113 +177 185 193 diff --git a/graphics/object_events/palettes/followers/houndour.pal b/graphics/object_events/palettes/followers/houndour.pal new file mode 100644 index 000000000..f13881bf3 --- /dev/null +++ b/graphics/object_events/palettes/followers/houndour.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 97 +81 81 89 +225 185 161 +41 41 49 +137 129 145 +113 97 121 +233 233 249 +73 57 81 +1 1 1 +169 161 185 +137 97 65 +177 185 193 +57 57 65 +105 113 113 +0 0 0 diff --git a/graphics/object_events/palettes/followers/huntail.pal b/graphics/object_events/palettes/followers/huntail.pal new file mode 100644 index 000000000..f89eadd28 --- /dev/null +++ b/graphics/object_events/palettes/followers/huntail.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +185 81 49 +153 201 225 +49 49 65 +97 153 217 +49 97 137 +233 233 249 +121 185 217 +129 49 25 +185 65 113 +153 41 89 +217 113 73 +209 217 233 +177 193 217 +0 0 0 diff --git a/graphics/object_events/palettes/followers/hypno.pal b/graphics/object_events/palettes/followers/hypno.pal new file mode 100644 index 000000000..a6220a8e4 --- /dev/null +++ b/graphics/object_events/palettes/followers/hypno.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 153 41 +169 169 169 +121 105 33 +57 49 41 +1 1 1 +233 233 249 +233 201 81 +201 201 209 +105 81 121 +49 49 49 +81 65 49 +89 81 73 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/igglybuff.pal b/graphics/object_events/palettes/followers/igglybuff.pal new file mode 100644 index 000000000..0d5864b65 --- /dev/null +++ b/graphics/object_events/palettes/followers/igglybuff.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 145 169 +169 81 97 +249 201 217 +89 41 65 +225 113 121 +1 1 1 +233 233 249 +169 49 57 +201 113 145 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/illumise.pal b/graphics/object_events/palettes/followers/illumise.pal new file mode 100644 index 000000000..33284a660 --- /dev/null +++ b/graphics/object_events/palettes/followers/illumise.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 137 41 +201 121 201 +65 65 73 +161 193 233 +113 89 57 +89 161 233 +201 185 89 +49 65 105 +41 41 49 +169 169 201 +233 233 249 +105 105 113 +1 1 1 +209 177 233 +105 57 105 diff --git a/graphics/object_events/palettes/followers/ivysaur.pal b/graphics/object_events/palettes/followers/ivysaur.pal new file mode 100644 index 000000000..db3e0fda9 --- /dev/null +++ b/graphics/object_events/palettes/followers/ivysaur.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 169 17 +73 169 153 +49 89 25 +105 209 193 +201 89 121 +137 225 33 +145 65 33 +65 129 121 +241 129 161 +201 201 217 +1 1 1 +105 33 41 +233 233 249 +41 65 65 +65 65 65 diff --git a/graphics/object_events/palettes/followers/jigglypuff.pal b/graphics/object_events/palettes/followers/jigglypuff.pal new file mode 100644 index 000000000..cf6b522cc --- /dev/null +++ b/graphics/object_events/palettes/followers/jigglypuff.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +97 73 65 +113 161 249 +81 81 121 +97 41 65 +249 169 185 +145 73 89 +233 233 249 +209 113 145 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/jirachi.pal b/graphics/object_events/palettes/followers/jirachi.pal new file mode 100644 index 000000000..4611f22c6 --- /dev/null +++ b/graphics/object_events/palettes/followers/jirachi.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 153 1 +89 161 145 +121 201 177 +73 65 17 +217 185 65 +177 185 185 +33 89 81 +1 1 1 +57 129 113 +209 209 225 +169 113 9 +249 217 89 +233 233 249 +81 105 105 +137 153 153 diff --git a/graphics/object_events/palettes/followers/jolteon.pal b/graphics/object_events/palettes/followers/jolteon.pal new file mode 100644 index 000000000..1398b039a --- /dev/null +++ b/graphics/object_events/palettes/followers/jolteon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 161 33 +169 169 193 +65 57 41 +249 249 81 +1 1 1 +209 225 233 +169 105 33 +249 201 25 +73 65 81 +233 233 249 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/jumpluff.pal b/graphics/object_events/palettes/followers/jumpluff.pal new file mode 100644 index 000000000..63bedfafd --- /dev/null +++ b/graphics/object_events/palettes/followers/jumpluff.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +41 81 137 +249 249 201 +113 113 97 +33 57 97 +97 153 225 +121 17 9 +193 185 161 +57 113 217 +233 233 249 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/jynx.pal b/graphics/object_events/palettes/followers/jynx.pal new file mode 100644 index 000000000..10f616466 --- /dev/null +++ b/graphics/object_events/palettes/followers/jynx.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 25 +153 153 185 +105 73 137 +193 193 209 +65 57 57 +249 225 33 +137 97 193 +233 233 249 +1 1 1 +177 57 33 +249 89 73 +249 233 185 +249 209 97 +241 129 161 +201 89 121 diff --git a/graphics/object_events/palettes/followers/kabuto.pal b/graphics/object_events/palettes/followers/kabuto.pal new file mode 100644 index 000000000..aa01d9002 --- /dev/null +++ b/graphics/object_events/palettes/followers/kabuto.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +121 97 65 +49 41 41 +233 185 89 +209 65 65 +169 129 57 +89 73 57 +137 25 25 +49 57 73 +1 1 1 +153 121 73 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kabutops.pal b/graphics/object_events/palettes/followers/kabutops.pal new file mode 100644 index 000000000..10c3bb588 --- /dev/null +++ b/graphics/object_events/palettes/followers/kabutops.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 121 73 +89 57 33 +193 193 201 +105 105 121 +137 97 41 +153 153 153 +65 65 65 +49 41 41 +233 233 249 +1 1 1 +105 73 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kadabra.pal b/graphics/object_events/palettes/followers/kadabra.pal new file mode 100644 index 000000000..0730ab262 --- /dev/null +++ b/graphics/object_events/palettes/followers/kadabra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 169 49 +97 73 49 +177 177 185 +145 121 57 +193 41 65 +1 1 1 +89 89 89 +249 241 193 +73 57 25 +249 217 97 +233 97 121 +233 233 249 +145 121 97 +105 81 57 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kakuna.pal b/graphics/object_events/palettes/followers/kakuna.pal new file mode 100644 index 000000000..4dd491adc --- /dev/null +++ b/graphics/object_events/palettes/followers/kakuna.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 65 +97 73 41 +233 233 249 +249 209 65 +145 113 33 +1 1 1 +65 65 65 +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/object_events/palettes/followers/kangaskhan.pal b/graphics/object_events/palettes/followers/kangaskhan.pal new file mode 100644 index 000000000..131f73a28 --- /dev/null +++ b/graphics/object_events/palettes/followers/kangaskhan.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 121 41 +89 73 41 +169 185 209 +209 169 97 +113 113 113 +65 49 33 +73 73 73 +249 201 121 +233 233 249 +185 121 113 +105 9 1 +1 1 1 +57 57 65 +129 113 145 +121 81 57 diff --git a/graphics/object_events/palettes/followers/kecleon.pal b/graphics/object_events/palettes/followers/kecleon.pal new file mode 100644 index 000000000..4adc1da0a --- /dev/null +++ b/graphics/object_events/palettes/followers/kecleon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 129 41 +233 233 249 +145 193 89 +89 81 41 +1 1 1 +185 225 105 +33 57 17 +121 169 49 +153 41 65 +249 193 65 +129 113 65 +217 169 33 +249 225 121 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kingdra.pal b/graphics/object_events/palettes/followers/kingdra.pal new file mode 100644 index 000000000..53a982441 --- /dev/null +++ b/graphics/object_events/palettes/followers/kingdra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 129 41 +73 121 161 +137 97 33 +169 185 209 +25 57 97 +233 233 249 +1 1 1 +193 209 233 +113 153 201 +113 17 17 +73 73 73 +217 161 57 +41 81 129 +145 193 233 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kingler.pal b/graphics/object_events/palettes/followers/kingler.pal new file mode 100644 index 000000000..fb56c4f8d --- /dev/null +++ b/graphics/object_events/palettes/followers/kingler.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 129 81 +201 201 209 +169 65 57 +1 1 1 +65 41 41 +177 153 105 +233 233 249 +217 105 49 +225 193 153 +81 57 49 +201 97 33 +193 169 129 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kirlia.pal b/graphics/object_events/palettes/followers/kirlia.pal new file mode 100644 index 000000000..5c4776a37 --- /dev/null +++ b/graphics/object_events/palettes/followers/kirlia.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 129 57 +169 169 177 +17 65 33 +73 177 89 +129 33 57 +233 233 249 +241 105 105 +1 1 1 +129 129 145 +201 201 217 +73 73 81 +105 201 129 +185 49 73 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/koffing.pal b/graphics/object_events/palettes/followers/koffing.pal new file mode 100644 index 000000000..2b3eeef8c --- /dev/null +++ b/graphics/object_events/palettes/followers/koffing.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 129 41 +137 129 209 +89 81 121 +57 41 57 +129 129 129 +233 233 249 +129 73 81 +1 1 1 +121 105 193 +169 169 209 +105 57 65 +201 185 121 +161 161 129 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/kyogre.pal b/graphics/object_events/palettes/followers/kyogre.pal new file mode 100644 index 000000000..da6327faa --- /dev/null +++ b/graphics/object_events/palettes/followers/kyogre.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 121 129 +129 113 25 +65 129 193 +153 25 25 +129 185 217 +57 57 57 +225 193 33 +97 161 193 +41 97 153 +1 1 1 +201 217 241 +201 41 41 +89 17 9 +25 57 89 +153 169 177 diff --git a/graphics/object_events/palettes/followers/lairon.pal b/graphics/object_events/palettes/followers/lairon.pal new file mode 100644 index 000000000..78533be4a --- /dev/null +++ b/graphics/object_events/palettes/followers/lairon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 129 145 +185 185 201 +73 65 81 +1 1 1 +233 233 249 +65 97 129 +49 41 57 +105 145 201 +161 161 177 +209 209 225 +105 97 113 +65 57 73 +89 89 89 +113 105 121 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lanturn.pal b/graphics/object_events/palettes/followers/lanturn.pal new file mode 100644 index 000000000..c2a012f36 --- /dev/null +++ b/graphics/object_events/palettes/followers/lanturn.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 161 17 +97 137 225 +17 33 89 +185 201 217 +81 65 9 +225 233 241 +1 1 1 +185 49 41 +65 97 169 +249 209 97 +129 105 25 +113 177 241 +161 209 241 +233 233 249 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lapras.pal b/graphics/object_events/palettes/followers/lapras.pal new file mode 100644 index 000000000..cb7e199bd --- /dev/null +++ b/graphics/object_events/palettes/followers/lapras.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 153 73 +89 129 177 +105 81 17 +145 153 161 +193 201 209 +49 73 105 +49 57 57 +249 209 105 +97 177 233 +113 113 129 +233 233 249 +1 1 1 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/larvitar.pal b/graphics/object_events/palettes/followers/larvitar.pal new file mode 100644 index 000000000..fe5185282 --- /dev/null +++ b/graphics/object_events/palettes/followers/larvitar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 177 105 +57 65 73 +161 185 201 +33 41 41 +177 217 121 +185 49 49 +1 1 1 +73 89 41 +233 233 249 +121 33 33 +33 57 73 +121 161 177 +137 193 201 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/latias.pal b/graphics/object_events/palettes/followers/latias.pal new file mode 100644 index 000000000..e65c159fc --- /dev/null +++ b/graphics/object_events/palettes/followers/latias.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 169 1 +65 129 169 +57 65 65 +185 201 209 +97 25 17 +1 1 1 +193 65 65 +33 41 41 +105 121 121 +233 233 249 +153 169 177 +233 89 89 +129 145 153 +145 41 41 +0 0 0 diff --git a/graphics/object_events/palettes/followers/latios.pal b/graphics/object_events/palettes/followers/latios.pal new file mode 100644 index 000000000..a50cfc45c --- /dev/null +++ b/graphics/object_events/palettes/followers/latios.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 121 121 +89 193 249 +57 65 65 +49 129 193 +129 33 33 +9 57 89 +1 1 1 +185 201 209 +33 113 169 +65 153 217 +33 41 41 +233 233 249 +153 169 177 +129 145 153 +193 33 33 diff --git a/graphics/object_events/palettes/followers/ledian.pal b/graphics/object_events/palettes/followers/ledian.pal new file mode 100644 index 000000000..95b25de50 --- /dev/null +++ b/graphics/object_events/palettes/followers/ledian.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 153 89 +137 65 1 +17 129 193 +65 65 97 +241 209 81 +177 41 49 +1 1 1 +185 201 225 +249 97 121 +113 97 73 +17 105 153 +233 233 249 +209 177 81 +225 33 57 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ledyba.pal b/graphics/object_events/palettes/followers/ledyba.pal new file mode 100644 index 000000000..4540e80b7 --- /dev/null +++ b/graphics/object_events/palettes/followers/ledyba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 177 49 +81 89 201 +129 113 49 +193 201 225 +169 33 9 +1 1 1 +105 33 41 +233 233 241 +241 225 129 +249 113 49 +225 57 33 +57 57 57 +225 201 41 +233 233 249 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lickitung.pal b/graphics/object_events/palettes/followers/lickitung.pal new file mode 100644 index 000000000..7c028935c --- /dev/null +++ b/graphics/object_events/palettes/followers/lickitung.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 129 129 +161 161 161 +233 233 249 +177 97 121 +233 185 201 +217 201 49 +217 153 177 +89 49 73 +1 1 1 +241 169 169 +169 89 137 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lileep.pal b/graphics/object_events/palettes/followers/lileep.pal new file mode 100644 index 000000000..80228afba --- /dev/null +++ b/graphics/object_events/palettes/followers/lileep.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 121 57 +41 33 89 +137 97 177 +161 49 89 +113 89 49 +209 185 73 +89 17 41 +97 57 145 +209 105 137 +161 145 217 +1 1 1 +41 25 41 +81 57 81 +193 65 97 +0 0 0 diff --git a/graphics/object_events/palettes/followers/linoone.pal b/graphics/object_events/palettes/followers/linoone.pal new file mode 100644 index 000000000..f7daf07d4 --- /dev/null +++ b/graphics/object_events/palettes/followers/linoone.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 129 185 +81 73 65 +113 105 89 +169 185 209 +41 81 121 +1 1 1 +121 89 65 +105 105 121 +233 233 249 +65 41 17 +217 209 185 +185 177 169 +153 113 89 +65 73 81 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lombre.pal b/graphics/object_events/palettes/followers/lombre.pal new file mode 100644 index 000000000..22a7e49bb --- /dev/null +++ b/graphics/object_events/palettes/followers/lombre.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +9 131 3 +121 153 137 +41 81 33 +145 209 17 +233 233 249 +129 41 17 +105 153 65 +1 1 1 +233 89 65 +113 169 17 +73 113 65 +153 193 161 +169 49 25 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lotad.pal b/graphics/object_events/palettes/followers/lotad.pal new file mode 100644 index 000000000..d3457a4ec --- /dev/null +++ b/graphics/object_events/palettes/followers/lotad.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 129 25 +81 145 193 +33 57 17 +113 169 17 +41 97 137 +1 1 1 +41 97 65 +145 209 17 +233 233 249 +25 49 89 +233 185 65 +169 121 25 +97 65 9 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/loudred.pal b/graphics/object_events/palettes/followers/loudred.pal new file mode 100644 index 000000000..be3de9d8f --- /dev/null +++ b/graphics/object_events/palettes/followers/loudred.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 145 49 +105 73 33 +137 129 185 +81 73 105 +233 233 249 +105 97 153 +41 49 65 +233 209 105 +1 1 1 +169 177 193 +185 65 105 +137 41 65 +177 169 225 +105 113 137 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ludicolo.pal b/graphics/object_events/palettes/followers/ludicolo.pal new file mode 100644 index 000000000..87294c677 --- /dev/null +++ b/graphics/object_events/palettes/followers/ludicolo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 137 57 +161 161 161 +33 57 17 +121 177 33 +97 73 49 +1 1 1 +145 209 17 +137 105 81 +233 233 249 +209 129 9 +49 41 9 +137 65 1 +209 177 65 +233 201 121 +65 65 73 diff --git a/graphics/object_events/palettes/followers/lugia.pal b/graphics/object_events/palettes/followers/lugia.pal new file mode 100644 index 000000000..adf9c9f0e --- /dev/null +++ b/graphics/object_events/palettes/followers/lugia.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +201 209 217 +41 49 113 +41 121 193 +73 73 89 +153 161 169 +233 233 249 +49 97 193 +137 169 225 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/lunatone.pal b/graphics/object_events/palettes/followers/lunatone.pal new file mode 100644 index 000000000..b3c10e691 --- /dev/null +++ b/graphics/object_events/palettes/followers/lunatone.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 57 +65 73 89 +177 161 73 +97 81 33 +161 49 113 +1 1 1 +33 41 49 +209 193 97 +209 73 145 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/luvdisc.pal b/graphics/object_events/palettes/followers/luvdisc.pal new file mode 100644 index 000000000..4275e201b --- /dev/null +++ b/graphics/object_events/palettes/followers/luvdisc.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 129 153 +97 105 129 +249 193 185 +1 1 1 +49 49 65 +233 145 145 +209 97 137 +137 33 73 +233 233 249 +249 177 145 +161 49 97 +217 105 153 +233 153 161 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/machamp.pal b/graphics/object_events/palettes/followers/machamp.pal new file mode 100644 index 000000000..a84bfe10a --- /dev/null +++ b/graphics/object_events/palettes/followers/machamp.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 129 25 +129 129 145 +249 209 9 +233 201 153 +65 65 65 +177 153 113 +209 185 73 +233 233 249 +193 41 65 +241 233 113 +161 161 201 +81 89 105 +201 201 201 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/machoke.pal b/graphics/object_events/palettes/followers/machoke.pal new file mode 100644 index 000000000..4585ebaa7 --- /dev/null +++ b/graphics/object_events/palettes/followers/machoke.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 129 25 +129 129 145 +73 73 73 +249 209 9 +233 201 153 +177 153 113 +97 105 129 +193 41 65 +1 1 1 +233 233 249 +161 161 201 +209 161 17 +89 89 89 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/machop.pal b/graphics/object_events/palettes/followers/machop.pal new file mode 100644 index 000000000..828328b78 --- /dev/null +++ b/graphics/object_events/palettes/followers/machop.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 129 137 +233 201 153 +57 57 57 +1 1 1 +193 41 65 +177 153 113 +233 233 249 +73 97 105 +137 169 185 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/magby.pal b/graphics/object_events/palettes/followers/magby.pal new file mode 100644 index 000000000..8a53eb769 --- /dev/null +++ b/graphics/object_events/palettes/followers/magby.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 153 33 +105 73 1 +177 185 193 +129 1 1 +65 65 73 +1 1 1 +153 41 57 +249 81 121 +233 233 249 +241 193 57 +81 89 105 +209 41 57 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/magcargo.pal b/graphics/object_events/palettes/followers/magcargo.pal new file mode 100644 index 000000000..04fdccbae --- /dev/null +++ b/graphics/object_events/palettes/followers/magcargo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 121 25 +41 49 57 +1 1 1 +177 57 49 +73 1 1 +105 113 137 +249 153 1 +73 81 97 +249 209 89 +225 81 73 +121 25 17 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/magikarp.pal b/graphics/object_events/palettes/followers/magikarp.pal new file mode 100644 index 000000000..d29c0357d --- /dev/null +++ b/graphics/object_events/palettes/followers/magikarp.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 25 +185 65 105 +145 145 145 +137 41 25 +1 1 1 +81 33 17 +249 193 17 +217 113 153 +193 193 209 +233 233 249 +121 33 65 +233 169 73 +233 97 65 +49 49 49 +201 57 17 diff --git a/graphics/object_events/palettes/followers/magmar.pal b/graphics/object_events/palettes/followers/magmar.pal new file mode 100644 index 000000000..ce9d6c30d --- /dev/null +++ b/graphics/object_events/palettes/followers/magmar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 121 9 +49 49 49 +145 145 145 +201 89 129 +193 193 209 +185 57 25 +129 1 1 +241 209 1 +241 185 201 +233 233 249 +113 81 17 +225 153 17 +105 33 17 +1 1 1 +241 73 33 diff --git a/graphics/object_events/palettes/followers/magnemite.pal b/graphics/object_events/palettes/followers/magnemite.pal new file mode 100644 index 000000000..041b62f37 --- /dev/null +++ b/graphics/object_events/palettes/followers/magnemite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 129 145 +193 209 217 +81 81 81 +73 137 233 +233 65 65 +153 169 185 +57 57 57 +1 1 1 +113 113 121 +233 233 249 +177 177 185 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/magneton.pal b/graphics/object_events/palettes/followers/magneton.pal new file mode 100644 index 000000000..041b62f37 --- /dev/null +++ b/graphics/object_events/palettes/followers/magneton.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 129 145 +193 209 217 +81 81 81 +73 137 233 +233 65 65 +153 169 185 +57 57 57 +1 1 1 +113 113 121 +233 233 249 +177 177 185 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/makuhita.pal b/graphics/object_events/palettes/followers/makuhita.pal new file mode 100644 index 000000000..681982bc5 --- /dev/null +++ b/graphics/object_events/palettes/followers/makuhita.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 153 57 +73 57 9 +57 65 81 +137 41 65 +225 201 105 +185 65 105 +25 33 41 +1 1 1 +113 97 17 +81 89 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/manectric.pal b/graphics/object_events/palettes/followers/manectric.pal new file mode 100644 index 000000000..5d93d7697 --- /dev/null +++ b/graphics/object_events/palettes/followers/manectric.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 145 33 +81 153 185 +97 73 49 +249 249 145 +193 57 57 +1 1 1 +129 185 217 +33 121 153 +161 217 249 +25 49 89 +225 193 73 +161 161 161 +233 233 249 +65 65 73 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mankey.pal b/graphics/object_events/palettes/followers/mankey.pal new file mode 100644 index 000000000..91522b4e5 --- /dev/null +++ b/graphics/object_events/palettes/followers/mankey.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 129 49 +241 129 161 +73 65 57 +1 1 1 +145 17 49 +153 121 97 +233 233 249 +177 105 129 +177 177 209 +177 169 129 +233 217 137 +137 105 57 +121 41 65 +209 177 129 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mantine.pal b/graphics/object_events/palettes/followers/mantine.pal new file mode 100644 index 000000000..62f32dc56 --- /dev/null +++ b/graphics/object_events/palettes/followers/mantine.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 137 153 +217 209 225 +17 65 105 +81 121 185 +177 169 185 +49 49 73 +209 233 249 +49 89 145 +1 1 1 +121 161 217 +57 81 121 +137 177 217 +41 65 73 +233 233 249 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mareep.pal b/graphics/object_events/palettes/followers/mareep.pal new file mode 100644 index 000000000..04d1d5345 --- /dev/null +++ b/graphics/object_events/palettes/followers/mareep.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 161 1 +1 1 1 +105 89 9 +169 145 73 +249 249 177 +49 57 65 +81 129 185 +89 105 121 +241 201 81 +121 169 233 +233 233 249 +225 113 1 +137 5 7 +233 209 105 +249 169 1 diff --git a/graphics/object_events/palettes/followers/marill.pal b/graphics/object_events/palettes/followers/marill.pal new file mode 100644 index 000000000..87cd5612b --- /dev/null +++ b/graphics/object_events/palettes/followers/marill.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +233 233 249 +57 113 161 +73 145 201 +49 57 65 +169 185 209 +185 49 41 +137 161 185 +113 177 241 +33 57 105 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/marowak.pal b/graphics/object_events/palettes/followers/marowak.pal new file mode 100644 index 000000000..2f8424f47 --- /dev/null +++ b/graphics/object_events/palettes/followers/marowak.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 129 73 +193 193 193 +1 1 1 +129 129 129 +73 49 49 +217 225 225 +201 153 81 +225 193 145 +193 161 105 +73 73 73 +233 233 249 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/marshtomp.pal b/graphics/object_events/palettes/followers/marshtomp.pal new file mode 100644 index 000000000..828789299 --- /dev/null +++ b/graphics/object_events/palettes/followers/marshtomp.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +241 129 17 +129 161 177 +73 57 17 +33 81 89 +65 129 129 +233 233 249 +89 185 177 +161 73 17 +1 1 1 +177 193 209 +193 89 17 +97 121 129 +49 81 97 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/masquerain.pal b/graphics/object_events/palettes/followers/masquerain.pal new file mode 100644 index 000000000..366b9fb54 --- /dev/null +++ b/graphics/object_events/palettes/followers/masquerain.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +81 81 89 +137 177 201 +65 81 113 +161 209 225 +137 33 89 +161 65 49 +217 105 121 +105 25 33 +225 161 185 +89 113 153 +233 233 249 +201 89 73 +177 217 233 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mawile.pal b/graphics/object_events/palettes/followers/mawile.pal new file mode 100644 index 000000000..6751c3e12 --- /dev/null +++ b/graphics/object_events/palettes/followers/mawile.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 169 89 +81 73 57 +177 185 201 +249 217 129 +129 105 73 +193 57 57 +145 145 145 +41 41 41 +233 233 249 +1 1 1 +113 113 113 +73 73 73 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/medicham.pal b/graphics/object_events/palettes/followers/medicham.pal new file mode 100644 index 000000000..c0ba10536 --- /dev/null +++ b/graphics/object_events/palettes/followers/medicham.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 129 25 +152 152 145 +113 81 17 +193 193 185 +57 57 65 +1 1 1 +185 81 105 +233 137 161 +233 233 249 +249 217 89 +113 113 97 +49 25 33 +193 161 17 +145 57 89 +201 97 129 diff --git a/graphics/object_events/palettes/followers/meditite.pal b/graphics/object_events/palettes/followers/meditite.pal new file mode 100644 index 000000000..5c7838281 --- /dev/null +++ b/graphics/object_events/palettes/followers/meditite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 137 153 +217 225 233 +57 57 65 +1 1 1 +65 105 153 +89 145 193 +81 81 89 +185 49 41 +177 185 201 +161 161 177 +41 65 97 +233 233 249 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/meganium.pal b/graphics/object_events/palettes/followers/meganium.pal new file mode 100644 index 000000000..0e95eb9ff --- /dev/null +++ b/graphics/object_events/palettes/followers/meganium.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 41 +201 177 185 +137 97 1 +129 161 89 +177 81 121 +161 185 81 +233 233 249 +73 89 41 +105 41 81 +241 209 49 +1 1 1 +193 209 81 +209 97 145 +105 105 65 +185 177 201 diff --git a/graphics/object_events/palettes/followers/meowth.pal b/graphics/object_events/palettes/followers/meowth.pal new file mode 100644 index 000000000..1c7fd519a --- /dev/null +++ b/graphics/object_events/palettes/followers/meowth.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 129 49 +81 57 25 +217 177 65 +121 105 81 +1 1 1 +169 121 81 +153 81 25 +169 33 81 +241 217 129 +249 201 33 +177 89 81 +217 145 25 +65 57 49 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/metagross.pal b/graphics/object_events/palettes/followers/metagross.pal new file mode 100644 index 000000000..f94f7a361 --- /dev/null +++ b/graphics/object_events/palettes/followers/metagross.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 129 169 +193 193 193 +65 65 65 +105 145 209 +1 1 1 +153 217 241 +153 41 41 +145 145 161 +41 41 49 +65 97 121 +233 233 249 +145 193 233 +33 65 81 +153 153 161 +0 0 0 diff --git a/graphics/object_events/palettes/followers/metang.pal b/graphics/object_events/palettes/followers/metang.pal new file mode 100644 index 000000000..819ca143b --- /dev/null +++ b/graphics/object_events/palettes/followers/metang.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 129 169 +193 193 193 +65 65 65 +105 145 209 +233 233 249 +121 33 33 +1 1 1 +150 150 161 +41 41 49 +65 97 121 +145 193 233 +153 217 241 +255 255 255 +33 65 81 +153 41 41 diff --git a/graphics/object_events/palettes/followers/metapod.pal b/graphics/object_events/palettes/followers/metapod.pal new file mode 100644 index 000000000..c070c1405 --- /dev/null +++ b/graphics/object_events/palettes/followers/metapod.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 137 49 +225 225 225 +161 217 73 +57 73 25 +1 1 1 +233 233 249 +0 0 0 +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/object_events/palettes/followers/mew.pal b/graphics/object_events/palettes/followers/mew.pal new file mode 100644 index 000000000..d99299b99 --- /dev/null +++ b/graphics/object_events/palettes/followers/mew.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 129 129 +201 201 249 +97 97 97 +1 1 1 +233 233 249 +177 105 169 +89 49 81 +249 209 233 +217 161 185 +113 89 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mewtwo.pal b/graphics/object_events/palettes/followers/mewtwo.pal new file mode 100644 index 000000000..6f5afee0f --- /dev/null +++ b/graphics/object_events/palettes/followers/mewtwo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 121 153 +137 73 137 +217 201 217 +65 65 65 +153 153 153 +177 153 193 +65 49 81 +185 89 209 +97 97 97 +233 233 249 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mightyena.pal b/graphics/object_events/palettes/followers/mightyena.pal new file mode 100644 index 000000000..38610816d --- /dev/null +++ b/graphics/object_events/palettes/followers/mightyena.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 113 113 +1 1 1 +49 57 57 +145 153 161 +225 65 65 +177 185 193 +81 81 89 +129 33 33 +249 217 89 +129 121 137 +169 161 185 +65 57 81 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/milotic.pal b/graphics/object_events/palettes/followers/milotic.pal new file mode 100644 index 000000000..d012770f9 --- /dev/null +++ b/graphics/object_events/palettes/followers/milotic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 169 65 +33 57 89 +233 217 169 +241 105 113 +129 9 73 +81 129 169 +81 73 153 +185 49 81 +1 1 1 +113 161 209 +97 89 65 +249 241 217 +241 105 153 +57 89 129 +185 49 113 diff --git a/graphics/object_events/palettes/followers/miltank.pal b/graphics/object_events/palettes/followers/miltank.pal new file mode 100644 index 000000000..e64e3f03d --- /dev/null +++ b/graphics/object_events/palettes/followers/miltank.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 145 89 +81 65 33 +169 185 209 +41 65 81 +1 1 1 +121 73 81 +33 49 65 +233 233 249 +209 137 161 +73 97 121 +177 97 121 +241 169 193 +57 65 73 +89 41 57 +209 185 121 diff --git a/graphics/object_events/palettes/followers/minun.pal b/graphics/object_events/palettes/followers/minun.pal new file mode 100644 index 000000000..5ba06582d --- /dev/null +++ b/graphics/object_events/palettes/followers/minun.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 137 105 +249 225 137 +81 129 161 +113 89 49 +201 169 97 +233 233 249 +113 177 209 +49 81 121 +1 1 1 +185 73 89 +137 41 65 +225 113 121 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/misdreavus.pal b/graphics/object_events/palettes/followers/misdreavus.pal new file mode 100644 index 000000000..64f7bcb41 --- /dev/null +++ b/graphics/object_events/palettes/followers/misdreavus.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 121 1 +33 81 97 +201 73 105 +105 129 161 +33 49 89 +97 1 3 +65 105 137 +217 97 161 +233 233 249 +225 177 41 +1 1 1 +193 65 129 +81 113 153 +89 9 3 +0 0 0 diff --git a/graphics/object_events/palettes/followers/moltres.pal b/graphics/object_events/palettes/followers/moltres.pal new file mode 100644 index 000000000..524c5a1d4 --- /dev/null +++ b/graphics/object_events/palettes/followers/moltres.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 137 33 +177 177 209 +65 65 65 +249 185 33 +233 73 49 +1 1 1 +161 25 41 +249 137 121 +233 233 249 +65 49 49 +185 113 97 +249 201 121 +233 177 81 +201 129 57 +113 73 57 diff --git a/graphics/object_events/palettes/followers/mr_mime.pal b/graphics/object_events/palettes/followers/mr_mime.pal new file mode 100644 index 000000000..156deec2c --- /dev/null +++ b/graphics/object_events/palettes/followers/mr_mime.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 145 161 +33 65 89 +241 193 201 +145 65 81 +41 49 65 +1 1 1 +49 97 113 +233 233 249 +169 105 121 +201 201 233 +209 65 89 +105 105 105 +193 145 145 +73 49 57 +0 0 0 diff --git a/graphics/object_events/palettes/followers/mudkip.pal b/graphics/object_events/palettes/followers/mudkip.pal new file mode 100644 index 000000000..ad2e4fc26 --- /dev/null +++ b/graphics/object_events/palettes/followers/mudkip.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +241 129 17 +73 57 17 +73 137 177 +41 73 121 +233 233 249 +65 65 81 +89 177 217 +1 1 1 +113 105 145 +161 73 17 +177 177 209 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/muk.pal b/graphics/object_events/palettes/followers/muk.pal new file mode 100644 index 000000000..e7027b663 --- /dev/null +++ b/graphics/object_events/palettes/followers/muk.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +65 57 65 +105 81 121 +233 233 249 +177 145 185 +129 105 137 +97 73 105 +201 177 217 +121 97 153 +129 145 145 +41 49 89 +97 169 225 +41 41 41 +217 81 89 +161 177 217 diff --git a/graphics/object_events/palettes/followers/murkrow.pal b/graphics/object_events/palettes/followers/murkrow.pal new file mode 100644 index 000000000..3f8fb5c91 --- /dev/null +++ b/graphics/object_events/palettes/followers/murkrow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 25 +17 33 73 +121 153 193 +49 49 49 +49 65 113 +1 1 1 +233 233 249 +201 57 49 +145 33 25 +113 89 9 +177 193 217 +225 177 41 +73 89 137 +33 49 97 +0 0 0 diff --git a/graphics/object_events/palettes/followers/natu.pal b/graphics/object_events/palettes/followers/natu.pal new file mode 100644 index 000000000..e3133ef1c --- /dev/null +++ b/graphics/object_events/palettes/followers/natu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 161 73 +49 49 49 +113 129 153 +129 193 113 +65 81 105 +121 17 33 +1 1 1 +97 81 1 +185 201 225 +217 73 89 +241 209 97 +233 233 249 +177 41 57 +185 153 49 +57 81 33 diff --git a/graphics/object_events/palettes/followers/nidoking.pal b/graphics/object_events/palettes/followers/nidoking.pal new file mode 100644 index 000000000..0f1679f32 --- /dev/null +++ b/graphics/object_events/palettes/followers/nidoking.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +25 169 153 +201 201 201 +217 153 241 +49 113 105 +185 129 185 +1 1 1 +65 49 81 +241 233 225 +153 105 161 +89 25 25 +161 161 161 +233 233 249 +169 169 153 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nidoqueen.pal b/graphics/object_events/palettes/followers/nidoqueen.pal new file mode 100644 index 000000000..9fb7ed22a --- /dev/null +++ b/graphics/object_events/palettes/followers/nidoqueen.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +97 137 177 +89 65 49 +201 201 201 +241 193 121 +73 65 121 +233 233 249 +97 41 25 +129 177 217 +193 161 81 +169 97 49 +169 201 241 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nidoran_f.pal b/graphics/object_events/palettes/followers/nidoran_f.pal new file mode 100644 index 000000000..a268e55b6 --- /dev/null +++ b/graphics/object_events/palettes/followers/nidoran_f.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 169 137 +49 89 73 +153 241 225 +161 81 105 +17 153 241 +1 1 1 +217 105 137 +161 33 17 +65 81 137 +233 233 249 +161 161 161 +241 121 113 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nidoran_m.pal b/graphics/object_events/palettes/followers/nidoran_m.pal new file mode 100644 index 000000000..8752b5761 --- /dev/null +++ b/graphics/object_events/palettes/followers/nidoran_m.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +25 169 153 +137 97 153 +193 65 105 +233 233 249 +217 153 241 +185 25 9 +1 1 1 +81 49 81 +49 113 105 +177 113 209 +161 161 161 +177 121 201 +177 177 193 +73 57 81 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nidorina.pal b/graphics/object_events/palettes/followers/nidorina.pal new file mode 100644 index 000000000..f59ffda8b --- /dev/null +++ b/graphics/object_events/palettes/followers/nidorina.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 137 209 +113 193 225 +1 1 1 +49 89 105 +153 225 249 +169 169 193 +161 41 33 +81 161 177 +241 161 153 +233 233 249 +49 97 137 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nidorino.pal b/graphics/object_events/palettes/followers/nidorino.pal new file mode 100644 index 000000000..571d26a69 --- /dev/null +++ b/graphics/object_events/palettes/followers/nidorino.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +25 169 153 +233 233 249 +49 113 105 +177 121 201 +185 25 9 +177 177 193 +73 57 81 +1 1 1 +137 97 153 +217 153 241 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nincada.pal b/graphics/object_events/palettes/followers/nincada.pal new file mode 100644 index 000000000..359d3480f --- /dev/null +++ b/graphics/object_events/palettes/followers/nincada.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 145 65 +33 73 25 +153 145 161 +97 89 113 +121 177 89 +49 41 65 +57 113 41 +233 233 249 +185 177 193 +97 89 65 +121 113 137 +1 1 1 +145 129 89 +65 57 41 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ninetales.pal b/graphics/object_events/palettes/followers/ninetales.pal new file mode 100644 index 000000000..393b1073b --- /dev/null +++ b/graphics/object_events/palettes/followers/ninetales.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 169 1 +193 65 105 +1 1 1 +89 57 49 +233 233 249 +185 161 105 +145 113 73 +233 217 153 +137 57 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ninjask.pal b/graphics/object_events/palettes/followers/ninjask.pal new file mode 100644 index 000000000..c1e058ac4 --- /dev/null +++ b/graphics/object_events/palettes/followers/ninjask.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 145 65 +201 201 201 +193 57 57 +233 193 49 +113 33 33 +233 233 249 +97 89 113 +1 1 1 +145 97 17 +57 49 73 +241 225 73 +217 217 225 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/noctowl.pal b/graphics/object_events/palettes/followers/noctowl.pal new file mode 100644 index 000000000..05f350df8 --- /dev/null +++ b/graphics/object_events/palettes/followers/noctowl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 97 +97 65 17 +169 185 209 +201 185 121 +65 81 89 +225 169 169 +105 41 41 +209 161 113 +201 113 113 +233 233 249 +225 217 161 +97 73 57 +129 97 81 +1 1 1 +169 49 49 diff --git a/graphics/object_events/palettes/followers/nosepass.pal b/graphics/object_events/palettes/followers/nosepass.pal new file mode 100644 index 000000000..391eef08c --- /dev/null +++ b/graphics/object_events/palettes/followers/nosepass.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +17 33 73 +209 49 73 +113 25 41 +65 73 81 +81 129 185 +41 49 57 +41 57 97 +113 177 233 +65 89 137 +161 33 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/numel.pal b/graphics/object_events/palettes/followers/numel.pal new file mode 100644 index 000000000..ba92ab59c --- /dev/null +++ b/graphics/object_events/palettes/followers/numel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 161 49 +217 225 185 +137 201 65 +49 81 25 +73 121 33 +177 185 137 +89 73 57 +1 1 1 +249 249 249 +217 185 73 +241 217 89 +121 97 73 +185 145 57 +65 73 81 +0 0 0 diff --git a/graphics/object_events/palettes/followers/nuzleaf.pal b/graphics/object_events/palettes/followers/nuzleaf.pal new file mode 100644 index 000000000..ae9bbd957 --- /dev/null +++ b/graphics/object_events/palettes/followers/nuzleaf.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 161 9 +89 73 9 +233 233 249 +1 1 1 +65 105 9 +33 57 9 +145 209 17 +97 65 33 +161 137 65 +161 113 49 +233 201 121 +73 49 25 +121 81 41 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/octillery.pal b/graphics/object_events/palettes/followers/octillery.pal new file mode 100644 index 000000000..78b4092d3 --- /dev/null +++ b/graphics/object_events/palettes/followers/octillery.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 161 25 +129 105 17 +153 161 177 +137 1 1 +1 1 1 +137 25 1 +201 89 73 +233 233 249 +249 217 89 +177 41 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/oddish.pal b/graphics/object_events/palettes/followers/oddish.pal new file mode 100644 index 000000000..a707d037a --- /dev/null +++ b/graphics/object_events/palettes/followers/oddish.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +57 113 65 +17 161 49 +33 73 41 +1 1 1 +113 1 1 +65 113 153 +41 73 73 +137 193 129 +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/object_events/palettes/followers/omanyte.pal b/graphics/object_events/palettes/followers/omanyte.pal new file mode 100644 index 000000000..121eb8cc6 --- /dev/null +++ b/graphics/object_events/palettes/followers/omanyte.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +57 129 161 +233 201 153 +81 65 57 +73 169 217 +145 113 73 +1 1 1 +121 201 241 +177 153 105 +233 233 249 +169 169 177 +105 105 105 +49 73 81 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/omastar.pal b/graphics/object_events/palettes/followers/omastar.pal new file mode 100644 index 000000000..1f042f749 --- /dev/null +++ b/graphics/object_events/palettes/followers/omastar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 145 65 +57 129 161 +81 65 57 +249 225 105 +233 225 185 +129 105 81 +177 153 105 +73 169 217 +121 201 241 +233 201 153 +1 1 1 +105 105 105 +49 65 73 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/onix.pal b/graphics/object_events/palettes/followers/onix.pal new file mode 100644 index 000000000..41933ba53 --- /dev/null +++ b/graphics/object_events/palettes/followers/onix.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 129 129 +193 193 193 +81 73 73 +1 1 1 +49 49 49 +145 145 145 +233 233 249 +105 97 97 +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/object_events/palettes/followers/paras.pal b/graphics/object_events/palettes/followers/paras.pal new file mode 100644 index 000000000..2511bcc80 --- /dev/null +++ b/graphics/object_events/palettes/followers/paras.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 161 41 +169 81 17 +169 169 169 +113 113 113 +97 41 25 +1 1 1 +249 113 25 +233 233 249 +169 49 73 +217 97 113 +225 161 33 +233 201 89 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/parasect.pal b/graphics/object_events/palettes/followers/parasect.pal new file mode 100644 index 000000000..b07e4319f --- /dev/null +++ b/graphics/object_events/palettes/followers/parasect.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 161 33 +169 81 17 +169 169 169 +97 41 25 +233 201 89 +217 97 113 +249 113 25 +233 233 249 +1 1 1 +169 49 73 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pelipper.pal b/graphics/object_events/palettes/followers/pelipper.pal new file mode 100644 index 000000000..a1e730a7e --- /dev/null +++ b/graphics/object_events/palettes/followers/pelipper.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 137 41 +81 137 169 +105 81 17 +180 193 211 +201 177 57 +81 81 89 +105 161 217 +233 233 249 +145 145 145 +1 1 1 +65 105 145 +225 209 73 +137 105 25 +137 137 153 +49 73 113 diff --git a/graphics/object_events/palettes/followers/persian.pal b/graphics/object_events/palettes/followers/persian.pal new file mode 100644 index 000000000..16d9b1527 --- /dev/null +++ b/graphics/object_events/palettes/followers/persian.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 137 3 +1 1 1 +81 57 25 +145 129 73 +185 65 113 +233 233 249 +193 169 121 +241 217 129 +145 105 81 +161 129 105 +65 57 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/phanpy.pal b/graphics/object_events/palettes/followers/phanpy.pal new file mode 100644 index 000000000..fa6f2ba20 --- /dev/null +++ b/graphics/object_events/palettes/followers/phanpy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +33 57 105 +185 201 217 +137 1 1 +81 129 177 +153 33 33 +249 249 249 +137 177 209 +209 49 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pichu.pal b/graphics/object_events/palettes/followers/pichu.pal new file mode 100644 index 000000000..ec7bc91d9 --- /dev/null +++ b/graphics/object_events/palettes/followers/pichu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 57 +81 81 81 +225 121 161 +49 49 49 +1 1 1 +97 89 41 +193 169 65 +193 81 137 +233 233 249 +249 217 105 +65 65 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pidgeot.pal b/graphics/object_events/palettes/followers/pidgeot.pal new file mode 100644 index 000000000..22828bc3f --- /dev/null +++ b/graphics/object_events/palettes/followers/pidgeot.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 137 1 +241 105 225 +145 89 49 +1 1 1 +177 65 97 +193 153 65 +129 25 113 +209 113 41 +233 233 249 +241 209 113 +249 193 49 +81 57 25 +225 113 113 +201 73 33 +161 161 161 diff --git a/graphics/object_events/palettes/followers/pidgeotto.pal b/graphics/object_events/palettes/followers/pidgeotto.pal new file mode 100644 index 000000000..03725fd2b --- /dev/null +++ b/graphics/object_events/palettes/followers/pidgeotto.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 129 33 +153 153 153 +97 65 33 +233 233 249 +225 113 113 +241 209 113 +241 137 225 +201 73 33 +161 33 161 +193 153 65 +1 1 1 +177 81 33 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pidgey.pal b/graphics/object_events/palettes/followers/pidgey.pal new file mode 100644 index 000000000..f843a7e59 --- /dev/null +++ b/graphics/object_events/palettes/followers/pidgey.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 65 +217 145 177 +97 65 33 +241 209 113 +233 233 249 +201 113 33 +153 57 97 +1 1 1 +185 185 185 +185 89 33 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pikachu.pal b/graphics/object_events/palettes/followers/pikachu.pal new file mode 100644 index 000000000..987f609d0 --- /dev/null +++ b/graphics/object_events/palettes/followers/pikachu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 161 65 +113 81 57 +233 233 249 +49 49 49 +249 209 81 +153 113 57 +1 1 1 +201 89 57 +145 57 25 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/piloswine.pal b/graphics/object_events/palettes/followers/piloswine.pal new file mode 100644 index 000000000..a9806b257 --- /dev/null +++ b/graphics/object_events/palettes/followers/piloswine.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 129 89 +121 73 49 +169 185 209 +73 41 9 +1 1 1 +201 97 113 +49 49 65 +233 137 161 +233 233 249 +153 105 65 +145 41 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pineco.pal b/graphics/object_events/palettes/followers/pineco.pal new file mode 100644 index 000000000..b01042837 --- /dev/null +++ b/graphics/object_events/palettes/followers/pineco.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +49 129 169 +17 81 129 +233 233 249 +1 1 1 +201 65 73 +97 113 153 +81 177 193 +17 89 129 +161 177 201 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/pinsir.pal b/graphics/object_events/palettes/followers/pinsir.pal new file mode 100644 index 000000000..ef5f5f77a --- /dev/null +++ b/graphics/object_events/palettes/followers/pinsir.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 129 97 +81 65 49 +193 193 209 +121 105 81 +1 1 1 +49 49 49 +145 145 145 +97 81 57 +233 233 249 +105 105 105 +185 137 17 +65 57 33 +73 81 81 +241 209 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/plusle.pal b/graphics/object_events/palettes/followers/plusle.pal new file mode 100644 index 000000000..f04c4f314 --- /dev/null +++ b/graphics/object_events/palettes/followers/plusle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 137 105 +113 89 49 +233 233 249 +249 225 137 +201 169 97 +185 73 89 +137 41 65 +1 1 1 +225 113 121 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/politoed.pal b/graphics/object_events/palettes/followers/politoed.pal new file mode 100644 index 000000000..113eb9ff2 --- /dev/null +++ b/graphics/object_events/palettes/followers/politoed.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 121 9 +249 129 177 +105 185 65 +49 81 17 +209 185 65 +189 203 220 +33 65 81 +1 1 1 +137 57 73 +201 89 137 +65 113 121 +89 153 57 +233 233 249 +153 217 113 +241 201 73 diff --git a/graphics/object_events/palettes/followers/poliwag.pal b/graphics/object_events/palettes/followers/poliwag.pal new file mode 100644 index 000000000..207b398d6 --- /dev/null +++ b/graphics/object_events/palettes/followers/poliwag.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +121 121 121 +89 89 89 +233 233 233 +121 129 233 +25 41 57 +1 1 1 +65 89 153 +97 49 65 +177 177 209 +241 121 161 +177 65 105 +49 49 49 +233 233 249 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/poliwhirl.pal b/graphics/object_events/palettes/followers/poliwhirl.pal new file mode 100644 index 000000000..8f5e148e7 --- /dev/null +++ b/graphics/object_events/palettes/followers/poliwhirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +57 73 113 +233 233 249 +49 49 49 +121 129 233 +33 41 57 +161 161 161 +73 97 185 +177 177 209 +89 89 89 +201 201 201 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/poliwrath.pal b/graphics/object_events/palettes/followers/poliwrath.pal new file mode 100644 index 000000000..0937b8faa --- /dev/null +++ b/graphics/object_events/palettes/followers/poliwrath.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +201 201 201 +73 97 185 +49 49 49 +121 129 233 +33 41 57 +161 161 161 +233 233 249 +177 177 209 +89 89 89 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/ponyta.pal b/graphics/object_events/palettes/followers/ponyta.pal new file mode 100644 index 000000000..d8c952683 --- /dev/null +++ b/graphics/object_events/palettes/followers/ponyta.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 161 25 +81 57 33 +241 225 169 +81 97 129 +129 121 89 +225 73 33 +185 169 113 +161 49 9 +233 233 249 +153 57 81 +1 1 1 +73 57 41 +249 81 33 +113 97 65 +185 201 121 diff --git a/graphics/object_events/palettes/followers/poochyena.pal b/graphics/object_events/palettes/followers/poochyena.pal new file mode 100644 index 000000000..53d5307c0 --- /dev/null +++ b/graphics/object_events/palettes/followers/poochyena.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 113 113 +49 57 57 +1 1 1 +193 57 57 +81 81 89 +185 185 185 +137 41 41 +145 145 145 +249 217 89 +65 57 81 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/porygon.pal b/graphics/object_events/palettes/followers/porygon.pal new file mode 100644 index 000000000..a9a1804e9 --- /dev/null +++ b/graphics/object_events/palettes/followers/porygon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +49 137 153 +41 97 97 +81 217 217 +1 1 1 +177 49 105 +41 65 73 +249 153 209 +233 105 161 +233 233 249 +41 185 193 +97 25 49 +161 185 201 +209 65 137 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/porygon2.pal b/graphics/object_events/palettes/followers/porygon2.pal new file mode 100644 index 000000000..b70e67bb6 --- /dev/null +++ b/graphics/object_events/palettes/followers/porygon2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 153 193 +17 73 121 +145 233 249 +1 1 1 +113 17 49 +225 81 137 +249 153 209 +169 41 81 +41 121 169 +185 201 217 +249 249 249 +89 185 217 +193 57 97 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/primeape.pal b/graphics/object_events/palettes/followers/primeape.pal new file mode 100644 index 000000000..38020a677 --- /dev/null +++ b/graphics/object_events/palettes/followers/primeape.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 129 49 +241 129 161 +65 57 49 +1 1 1 +105 105 105 +209 169 113 +233 233 249 +121 41 65 +177 177 209 +137 105 57 +233 217 137 +153 121 97 +177 105 129 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/psyduck.pal b/graphics/object_events/palettes/followers/psyduck.pal new file mode 100644 index 000000000..4990fa0d6 --- /dev/null +++ b/graphics/object_events/palettes/followers/psyduck.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 145 65 +241 233 185 +233 185 65 +201 185 137 +105 97 65 +1 1 1 +233 233 249 +249 217 105 +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/object_events/palettes/followers/pupitar.pal b/graphics/object_events/palettes/followers/pupitar.pal new file mode 100644 index 000000000..5ea18eb79 --- /dev/null +++ b/graphics/object_events/palettes/followers/pupitar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +33 41 41 +161 185 201 +185 49 49 +33 57 73 +233 233 249 +121 161 177 +137 193 201 +57 65 73 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/quagsire.pal b/graphics/object_events/palettes/followers/quagsire.pal new file mode 100644 index 000000000..3eec2ddf4 --- /dev/null +++ b/graphics/object_events/palettes/followers/quagsire.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +57 113 161 +33 65 121 +73 145 201 +33 49 57 +113 177 241 +1 1 1 +145 89 185 +177 113 209 +57 89 81 +145 201 249 +97 41 97 +233 233 249 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/quilava.pal b/graphics/object_events/palettes/followers/quilava.pal new file mode 100644 index 000000000..20abfb6b8 --- /dev/null +++ b/graphics/object_events/palettes/followers/quilava.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 145 81 +73 65 17 +49 137 153 +241 201 41 +161 17 25 +33 81 89 +209 177 89 +217 81 81 +233 233 249 +25 57 73 +41 113 121 +249 209 97 +185 49 49 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/qwilfish.pal b/graphics/object_events/palettes/followers/qwilfish.pal new file mode 100644 index 000000000..3606f4b28 --- /dev/null +++ b/graphics/object_events/palettes/followers/qwilfish.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 153 65 +73 145 193 +57 57 25 +225 209 137 +17 49 105 +1 1 1 +233 233 249 +33 73 129 +249 129 161 +153 33 57 +49 105 153 +193 177 97 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/raichu.pal b/graphics/object_events/palettes/followers/raichu.pal new file mode 100644 index 000000000..a131215ea --- /dev/null +++ b/graphics/object_events/palettes/followers/raichu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 121 33 +1 1 1 +113 73 41 +209 177 25 +249 233 209 +121 105 73 +249 225 9 +73 41 25 +249 145 1 +249 193 65 +233 233 249 +137 89 25 +193 177 129 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/raikou.pal b/graphics/object_events/palettes/followers/raikou.pal new file mode 100644 index 000000000..07b95381f --- /dev/null +++ b/graphics/object_events/palettes/followers/raikou.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 121 17 +65 33 97 +161 185 201 +33 57 65 +49 81 105 +185 49 49 +1 1 1 +233 233 249 +233 185 65 +161 89 185 +73 89 89 +113 57 145 +89 65 41 +57 97 97 +153 201 201 diff --git a/graphics/object_events/palettes/followers/ralts.pal b/graphics/object_events/palettes/followers/ralts.pal new file mode 100644 index 000000000..5c4776a37 --- /dev/null +++ b/graphics/object_events/palettes/followers/ralts.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 129 57 +169 169 177 +17 65 33 +73 177 89 +129 33 57 +233 233 249 +241 105 105 +1 1 1 +129 129 145 +201 201 217 +73 73 81 +105 201 129 +185 49 73 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/rapidash.pal b/graphics/object_events/palettes/followers/rapidash.pal new file mode 100644 index 000000000..aa197a10a --- /dev/null +++ b/graphics/object_events/palettes/followers/rapidash.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 161 25 +73 57 41 +241 225 169 +81 97 129 +185 169 113 +249 81 33 +113 97 65 +185 201 121 +161 49 9 +233 233 249 +153 57 81 +1 1 1 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/raticate.pal b/graphics/object_events/palettes/followers/raticate.pal new file mode 100644 index 000000000..75f836e6c --- /dev/null +++ b/graphics/object_events/palettes/followers/raticate.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 145 57 +225 201 169 +89 65 25 +185 169 113 +233 233 249 +137 49 121 +201 201 201 +177 97 57 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/rattata.pal b/graphics/object_events/palettes/followers/rattata.pal new file mode 100644 index 000000000..79c244a7b --- /dev/null +++ b/graphics/object_events/palettes/followers/rattata.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 137 81 +169 129 217 +57 49 89 +233 217 177 +185 169 129 +217 217 217 +225 57 33 +105 89 153 +233 233 249 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/rayquaza.pal b/graphics/object_events/palettes/followers/rayquaza.pal new file mode 100644 index 000000000..93c0e8a41 --- /dev/null +++ b/graphics/object_events/palettes/followers/rayquaza.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 145 81 +49 105 49 +153 169 177 +153 25 25 +121 185 113 +49 49 49 +241 201 49 +201 217 241 +153 225 145 +193 161 41 +145 121 25 +201 41 41 +17 65 25 +89 17 9 +1 1 1 diff --git a/graphics/object_events/palettes/followers/regice.pal b/graphics/object_events/palettes/followers/regice.pal new file mode 100644 index 000000000..ea013d68a --- /dev/null +++ b/graphics/object_events/palettes/followers/regice.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 169 89 +97 145 185 +177 225 249 +233 233 137 +41 73 97 +217 201 113 +121 169 209 +1 1 1 +65 105 145 +145 185 225 +201 241 249 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/regirock.pal b/graphics/object_events/palettes/followers/regirock.pal new file mode 100644 index 000000000..bbbdd8d21 --- /dev/null +++ b/graphics/object_events/palettes/followers/regirock.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 113 89 +1 1 1 +137 65 41 +161 145 129 +57 41 33 +201 185 169 +113 89 81 +217 113 73 +233 217 201 +177 89 57 +177 161 145 +97 41 33 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/registeel.pal b/graphics/object_events/palettes/followers/registeel.pal new file mode 100644 index 000000000..f01e24f60 --- /dev/null +++ b/graphics/object_events/palettes/followers/registeel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 121 121 +57 65 65 +185 201 209 +1 1 1 +193 57 57 +33 41 41 +129 145 153 +81 89 97 +209 105 105 +233 233 249 +153 169 177 +97 41 33 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/relicanth.pal b/graphics/object_events/palettes/followers/relicanth.pal new file mode 100644 index 000000000..9caac6b77 --- /dev/null +++ b/graphics/object_events/palettes/followers/relicanth.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 113 97 +97 65 57 +1 1 1 +177 41 81 +57 41 33 +121 89 73 +169 153 129 +193 177 153 +73 73 97 +217 201 169 +49 49 65 +73 49 41 +105 97 81 +137 121 105 +0 0 0 diff --git a/graphics/object_events/palettes/followers/remoraid.pal b/graphics/object_events/palettes/followers/remoraid.pal new file mode 100644 index 000000000..379f4e4f6 --- /dev/null +++ b/graphics/object_events/palettes/followers/remoraid.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 121 161 +169 185 209 +105 25 81 +233 233 249 +73 73 73 +1 1 1 +193 209 233 +25 57 105 +113 153 201 +41 81 129 +145 193 233 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/rhydon.pal b/graphics/object_events/palettes/followers/rhydon.pal new file mode 100644 index 000000000..d8b41c6ea --- /dev/null +++ b/graphics/object_events/palettes/followers/rhydon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 49 +185 185 185 +65 57 25 +137 137 137 +217 217 217 +121 105 57 +137 33 57 +217 177 89 +1 1 1 +65 65 65 +233 233 249 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/rhyhorn.pal b/graphics/object_events/palettes/followers/rhyhorn.pal new file mode 100644 index 000000000..67ea3d889 --- /dev/null +++ b/graphics/object_events/palettes/followers/rhyhorn.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 145 145 +201 201 201 +65 65 65 +1 1 1 +137 33 57 +233 233 249 +113 113 113 +177 177 177 +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/object_events/palettes/followers/roselia.pal b/graphics/object_events/palettes/followers/roselia.pal new file mode 100644 index 000000000..4a0189e95 --- /dev/null +++ b/graphics/object_events/palettes/followers/roselia.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 145 17 +33 57 17 +81 145 209 +25 49 89 +41 97 137 +233 185 65 +1 1 1 +89 17 49 +201 65 113 +169 129 57 +57 97 17 +145 41 81 +161 201 145 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sableye.pal b/graphics/object_events/palettes/followers/sableye.pal new file mode 100644 index 000000000..beadb4681 --- /dev/null +++ b/graphics/object_events/palettes/followers/sableye.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +25 153 121 +65 49 105 +233 233 249 +81 121 185 +233 89 113 +49 81 137 +121 161 225 +193 57 57 +1 1 1 +121 97 177 +89 65 145 +145 129 217 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/salamence.pal b/graphics/object_events/palettes/followers/salamence.pal new file mode 100644 index 000000000..76afcbc8f --- /dev/null +++ b/graphics/object_events/palettes/followers/salamence.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +41 145 169 +57 57 65 +81 185 201 +161 65 65 +1 1 1 +233 233 249 +193 81 97 +97 33 33 +129 129 145 +49 73 113 +161 161 177 +153 201 209 +217 89 121 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sandshrew.pal b/graphics/object_events/palettes/followers/sandshrew.pal new file mode 100644 index 000000000..ac1703261 --- /dev/null +++ b/graphics/object_events/palettes/followers/sandshrew.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +129 177 169 +185 137 41 +161 161 161 +225 217 169 +97 65 33 +185 169 137 +1 1 1 +33 97 121 +217 169 57 +233 233 249 +121 105 89 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sandslash.pal b/graphics/object_events/palettes/followers/sandslash.pal new file mode 100644 index 000000000..d11a2ce3b --- /dev/null +++ b/graphics/object_events/palettes/followers/sandslash.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 131 3 +153 153 153 +97 65 33 +233 225 153 +89 89 89 +177 177 177 +201 137 49 +1 1 1 +233 233 249 +137 97 41 +49 33 17 +41 105 129 +225 169 65 +193 161 137 +161 105 33 diff --git a/graphics/object_events/palettes/followers/sceptile.pal b/graphics/object_events/palettes/followers/sceptile.pal new file mode 100644 index 000000000..806146f2d --- /dev/null +++ b/graphics/object_events/palettes/followers/sceptile.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 145 49 +41 81 17 +161 209 105 +105 25 25 +1 1 1 +201 161 57 +121 105 25 +65 49 9 +129 177 73 +249 217 89 +153 41 41 +65 89 25 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/scizor.pal b/graphics/object_events/palettes/followers/scizor.pal new file mode 100644 index 000000000..ee3678e0c --- /dev/null +++ b/graphics/object_events/palettes/followers/scizor.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +249 137 1 +137 89 1 +129 25 17 +1 1 1 +185 201 217 +41 49 65 +81 89 113 +209 57 57 +233 233 249 +145 153 177 +89 17 9 +105 113 137 +161 33 33 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/scyther.pal b/graphics/object_events/palettes/followers/scyther.pal new file mode 100644 index 000000000..b279ae4cd --- /dev/null +++ b/graphics/object_events/palettes/followers/scyther.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 161 65 +177 169 201 +1 1 1 +41 65 33 +129 129 129 +233 233 249 +153 209 105 +177 153 41 +241 217 73 +81 65 17 +177 177 201 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/seadra.pal b/graphics/object_events/palettes/followers/seadra.pal new file mode 100644 index 000000000..cd2bb36c4 --- /dev/null +++ b/graphics/object_events/palettes/followers/seadra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 161 97 +89 145 217 +1 1 1 +233 233 249 +65 65 73 +169 185 209 +73 137 169 +249 209 161 +49 81 113 +121 185 241 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/seaking.pal b/graphics/object_events/palettes/followers/seaking.pal new file mode 100644 index 000000000..7cc446f83 --- /dev/null +++ b/graphics/object_events/palettes/followers/seaking.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 161 81 +169 57 49 +177 177 177 +249 233 161 +249 81 41 +49 49 49 +241 129 161 +113 25 17 +233 233 249 +1 1 1 +97 97 97 +193 65 105 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sealeo.pal b/graphics/object_events/palettes/followers/sealeo.pal new file mode 100644 index 000000000..4efd9fd5a --- /dev/null +++ b/graphics/object_events/palettes/followers/sealeo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 137 153 +217 209 153 +81 81 57 +73 153 201 +49 65 105 +137 193 241 +185 169 113 +49 113 145 +209 217 233 +177 185 209 +121 113 81 +233 233 249 +81 81 105 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/seedot.pal b/graphics/object_events/palettes/followers/seedot.pal new file mode 100644 index 000000000..7aff4c0af --- /dev/null +++ b/graphics/object_events/palettes/followers/seedot.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 113 49 +73 49 25 +177 161 65 +65 57 57 +129 113 113 +89 73 9 +1 1 1 +97 89 81 +33 33 25 +233 201 121 +121 81 41 +65 65 73 +137 121 41 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/seel.pal b/graphics/object_events/palettes/followers/seel.pal new file mode 100644 index 000000000..dad2284d8 --- /dev/null +++ b/graphics/object_events/palettes/followers/seel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 153 9 +225 129 145 +113 89 33 +249 241 185 +73 81 121 +49 49 81 +1 1 1 +225 225 241 +161 169 209 +193 65 89 +81 33 33 +233 201 97 +97 97 97 +233 233 249 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sentret.pal b/graphics/object_events/palettes/followers/sentret.pal new file mode 100644 index 000000000..7e9a52ae0 --- /dev/null +++ b/graphics/object_events/palettes/followers/sentret.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 129 89 +81 65 57 +241 225 193 +73 41 9 +1 1 1 +161 65 113 +129 97 73 +217 193 129 +49 33 25 +233 233 249 +137 33 49 +209 169 129 +89 73 57 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/seviper.pal b/graphics/object_events/palettes/followers/seviper.pal new file mode 100644 index 000000000..276c88dc2 --- /dev/null +++ b/graphics/object_events/palettes/followers/seviper.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 113 25 +81 89 105 +33 41 57 +113 121 137 +217 169 73 +161 49 57 +249 217 89 +121 33 33 +169 113 241 +145 89 185 +1 1 1 +209 73 81 +57 65 81 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sharpedo.pal b/graphics/object_events/palettes/followers/sharpedo.pal new file mode 100644 index 000000000..5381c6030 --- /dev/null +++ b/graphics/object_events/palettes/followers/sharpedo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 169 49 +97 81 17 +89 145 193 +33 65 105 +1 1 1 +193 89 113 +57 65 73 +233 233 249 +129 137 145 +65 113 161 +113 25 49 +249 209 81 +161 169 177 +33 89 137 +73 81 89 diff --git a/graphics/object_events/palettes/followers/shedinja.pal b/graphics/object_events/palettes/followers/shedinja.pal new file mode 100644 index 000000000..05d9d168e --- /dev/null +++ b/graphics/object_events/palettes/followers/shedinja.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 137 65 +105 81 17 +153 145 161 +241 217 121 +97 89 113 +65 57 33 +201 177 105 +233 233 249 +121 105 65 +185 177 193 +121 113 137 +57 49 73 +1 1 1 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/shelgon.pal b/graphics/object_events/palettes/followers/shelgon.pal new file mode 100644 index 000000000..bea7288b0 --- /dev/null +++ b/graphics/object_events/palettes/followers/shelgon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 129 65 +161 161 185 +65 65 81 +201 201 217 +209 177 97 +113 113 137 +129 41 41 +185 185 201 +233 233 249 +89 89 105 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/shellder.pal b/graphics/object_events/palettes/followers/shellder.pal new file mode 100644 index 000000000..b48549223 --- /dev/null +++ b/graphics/object_events/palettes/followers/shellder.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 153 153 +73 73 161 +233 233 249 +129 129 201 +41 41 49 +233 153 217 +57 57 73 +1 1 1 +193 89 177 +161 161 241 +73 33 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/shiftry.pal b/graphics/object_events/palettes/followers/shiftry.pal new file mode 100644 index 000000000..cea3ce83c --- /dev/null +++ b/graphics/object_events/palettes/followers/shiftry.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 137 9 +129 137 145 +97 65 33 +1 1 1 +137 97 41 +65 41 9 +145 209 17 +233 233 249 +161 177 185 +161 137 65 +81 81 89 +233 201 121 +33 57 9 +161 113 49 +0 0 0 diff --git a/graphics/object_events/palettes/followers/shroomish.pal b/graphics/object_events/palettes/followers/shroomish.pal new file mode 100644 index 000000000..203fd57ea --- /dev/null +++ b/graphics/object_events/palettes/followers/shroomish.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +105 105 73 +121 177 89 +225 201 145 +73 65 49 +81 137 65 +193 161 129 +49 89 41 +145 129 89 +1 1 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/shuckle.pal b/graphics/object_events/palettes/followers/shuckle.pal new file mode 100644 index 000000000..ecf1abe78 --- /dev/null +++ b/graphics/object_events/palettes/followers/shuckle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 137 49 +73 57 57 +1 1 1 +89 25 17 +241 217 81 +209 57 57 +233 209 201 +201 177 65 +113 97 33 +161 33 33 +201 169 153 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/shuppet.pal b/graphics/object_events/palettes/followers/shuppet.pal new file mode 100644 index 000000000..045c51318 --- /dev/null +++ b/graphics/object_events/palettes/followers/shuppet.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 161 49 +97 105 129 +1 1 1 +65 73 97 +81 129 201 +41 49 65 +129 129 161 +161 161 193 +49 81 153 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/silcoon.pal b/graphics/object_events/palettes/followers/silcoon.pal new file mode 100644 index 000000000..f256a8be4 --- /dev/null +++ b/graphics/object_events/palettes/followers/silcoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 129 137 +81 81 81 +185 185 169 +129 33 57 +1 1 1 +241 105 105 +225 225 209 +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/object_events/palettes/followers/skarmory.pal b/graphics/object_events/palettes/followers/skarmory.pal new file mode 100644 index 000000000..5d54ff7e1 --- /dev/null +++ b/graphics/object_events/palettes/followers/skarmory.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 169 17 +33 49 105 +121 145 193 +161 25 49 +1 1 1 +201 57 89 +209 233 249 +73 1 1 +65 97 153 +249 209 97 +153 177 217 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/skiploom.pal b/graphics/object_events/palettes/followers/skiploom.pal new file mode 100644 index 000000000..6d538d4e6 --- /dev/null +++ b/graphics/object_events/palettes/followers/skiploom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 153 33 +185 201 225 +233 193 25 +129 193 81 +185 49 177 +249 217 81 +121 81 9 +169 121 9 +41 113 9 +233 233 249 +1 1 1 +185 217 121 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/skitty.pal b/graphics/object_events/palettes/followers/skitty.pal new file mode 100644 index 000000000..c43022e02 --- /dev/null +++ b/graphics/object_events/palettes/followers/skitty.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 161 73 +97 57 57 +249 225 129 +129 105 73 +249 137 153 +177 81 89 +57 57 89 +1 1 1 +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/object_events/palettes/followers/slaking.pal b/graphics/object_events/palettes/followers/slaking.pal new file mode 100644 index 000000000..40eca9702 --- /dev/null +++ b/graphics/object_events/palettes/followers/slaking.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 97 +97 73 73 +217 201 161 +1 1 1 +209 113 137 +129 105 89 +73 57 41 +145 137 153 +193 193 209 +233 233 249 +169 81 105 +121 57 73 +201 177 153 +169 129 105 +81 73 89 diff --git a/graphics/object_events/palettes/followers/slakoth.pal b/graphics/object_events/palettes/followers/slakoth.pal new file mode 100644 index 000000000..12c49947a --- /dev/null +++ b/graphics/object_events/palettes/followers/slakoth.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 129 89 +81 65 65 +185 177 193 +169 57 57 +1 1 1 +129 89 81 +145 137 153 +89 81 97 +233 233 249 +121 33 33 +209 89 89 +225 201 145 +185 153 113 +113 65 57 +113 97 89 diff --git a/graphics/object_events/palettes/followers/slowbro.pal b/graphics/object_events/palettes/followers/slowbro.pal new file mode 100644 index 000000000..f6c55d4cd --- /dev/null +++ b/graphics/object_events/palettes/followers/slowbro.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +217 193 89 +73 81 89 +241 169 177 +145 121 49 +241 241 169 +177 97 105 +153 153 153 +233 233 249 +113 49 57 +193 65 65 +193 201 209 +217 113 97 +1 1 1 +209 121 129 +0 0 0 diff --git a/graphics/object_events/palettes/followers/slowking.pal b/graphics/object_events/palettes/followers/slowking.pal new file mode 100644 index 000000000..30d658e9b --- /dev/null +++ b/graphics/object_events/palettes/followers/slowking.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 137 41 +153 161 169 +113 49 57 +1 1 1 +73 81 89 +193 201 209 +209 121 129 +153 65 73 +209 17 17 +121 89 17 +233 233 249 +233 201 97 +241 169 177 +201 161 65 +201 81 97 diff --git a/graphics/object_events/palettes/followers/slowpoke.pal b/graphics/object_events/palettes/followers/slowpoke.pal new file mode 100644 index 000000000..324117fbd --- /dev/null +++ b/graphics/object_events/palettes/followers/slowpoke.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 121 129 +241 217 145 +209 169 97 +105 81 17 +233 233 249 +161 169 177 +193 193 193 +97 41 49 +153 89 97 +241 153 161 +1 1 1 +249 193 177 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/slugma.pal b/graphics/object_events/palettes/followers/slugma.pal new file mode 100644 index 000000000..8697071e3 --- /dev/null +++ b/graphics/object_events/palettes/followers/slugma.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 145 17 +161 57 25 +73 1 1 +1 1 1 +217 97 65 +193 73 41 +121 25 17 +233 209 105 +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/object_events/palettes/followers/smeargle.pal b/graphics/object_events/palettes/followers/smeargle.pal new file mode 100644 index 000000000..380390f8e --- /dev/null +++ b/graphics/object_events/palettes/followers/smeargle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 177 65 +177 185 193 +41 113 41 +161 153 105 +217 217 185 +97 89 73 +1 1 1 +65 57 49 +233 233 249 +113 97 33 +185 185 137 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/smoochum.pal b/graphics/object_events/palettes/followers/smoochum.pal new file mode 100644 index 000000000..79f273b2d --- /dev/null +++ b/graphics/object_events/palettes/followers/smoochum.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +209 137 25 +249 153 201 +113 33 97 +1 1 1 +177 65 153 +129 81 1 +249 193 49 +233 233 249 +217 65 105 +177 185 193 +153 97 41 +225 161 105 +153 49 81 +201 129 57 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sneasel.pal b/graphics/object_events/palettes/followers/sneasel.pal new file mode 100644 index 000000000..d3e0617ce --- /dev/null +++ b/graphics/object_events/palettes/followers/sneasel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 137 17 +57 73 81 +81 153 177 +89 97 105 +121 1 1 +249 249 249 +1 1 1 +25 81 121 +201 49 73 +169 185 201 +241 177 65 +57 113 137 +129 145 169 +153 9 3 +25 89 113 diff --git a/graphics/object_events/palettes/followers/snorlax.pal b/graphics/object_events/palettes/followers/snorlax.pal new file mode 100644 index 000000000..204900db7 --- /dev/null +++ b/graphics/object_events/palettes/followers/snorlax.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 145 81 +161 161 185 +65 65 65 +1 1 1 +249 225 169 +137 105 73 +41 49 49 +81 129 145 +233 233 249 +65 105 121 +193 193 201 +217 193 121 +41 73 73 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/snorunt.pal b/graphics/object_events/palettes/followers/snorunt.pal new file mode 100644 index 000000000..283587f32 --- /dev/null +++ b/graphics/object_events/palettes/followers/snorunt.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 153 57 +89 65 57 +169 73 65 +41 129 193 +97 97 121 +33 33 41 +249 217 89 +145 105 57 +233 233 249 +169 169 185 +1 1 1 +241 105 89 +49 49 65 +65 65 81 +193 81 65 diff --git a/graphics/object_events/palettes/followers/snubbull.pal b/graphics/object_events/palettes/followers/snubbull.pal new file mode 100644 index 000000000..36e6c87a4 --- /dev/null +++ b/graphics/object_events/palettes/followers/snubbull.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +49 121 153 +49 65 81 +209 193 145 +1 1 1 +185 73 113 +121 33 65 +177 193 209 +73 153 193 +241 145 185 +233 233 249 +209 105 145 +33 81 113 +161 49 81 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/solrock.pal b/graphics/object_events/palettes/followers/solrock.pal new file mode 100644 index 000000000..07fb924c7 --- /dev/null +++ b/graphics/object_events/palettes/followers/solrock.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 105 41 +97 81 33 +177 161 73 +225 9 3 +217 137 57 +65 73 89 +1 1 1 +33 41 49 +209 193 97 +145 121 57 +145 73 33 +161 49 113 +209 73 145 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/spearow.pal b/graphics/object_events/palettes/followers/spearow.pal new file mode 100644 index 000000000..2c7f13b8a --- /dev/null +++ b/graphics/object_events/palettes/followers/spearow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 129 33 +81 57 17 +249 137 145 +233 121 89 +65 65 65 +201 57 25 +185 169 113 +145 41 17 +233 233 249 +161 81 105 +129 89 33 +137 121 65 +1 1 1 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/spheal.pal b/graphics/object_events/palettes/followers/spheal.pal new file mode 100644 index 000000000..637a19fa1 --- /dev/null +++ b/graphics/object_events/palettes/followers/spheal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 145 113 +217 201 161 +81 81 57 +105 137 185 +49 65 105 +1 1 1 +209 217 233 +137 169 225 +81 97 145 +121 113 81 +177 185 209 +233 233 249 +81 81 105 +193 177 137 +0 0 0 diff --git a/graphics/object_events/palettes/followers/spinarak.pal b/graphics/object_events/palettes/followers/spinarak.pal new file mode 100644 index 000000000..2f09009e2 --- /dev/null +++ b/graphics/object_events/palettes/followers/spinarak.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 137 33 +113 137 153 +81 57 1 +121 185 33 +233 233 249 +65 97 89 +169 185 209 +161 217 97 +209 65 105 +1 1 1 +113 17 25 +193 137 1 +225 193 9 +33 81 33 +0 0 0 diff --git a/graphics/object_events/palettes/followers/spinda.pal b/graphics/object_events/palettes/followers/spinda.pal new file mode 100644 index 000000000..97d7f9ff1 --- /dev/null +++ b/graphics/object_events/palettes/followers/spinda.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 129 113 +81 73 57 +145 65 65 +1 1 1 +129 105 89 +209 105 105 +217 193 169 +121 49 49 +177 81 81 +193 169 145 +57 65 73 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/spoink.pal b/graphics/object_events/palettes/followers/spoink.pal new file mode 100644 index 000000000..652308e48 --- /dev/null +++ b/graphics/object_events/palettes/followers/spoink.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 137 137 +145 49 97 +49 57 65 +97 105 105 +249 249 249 +105 25 65 +1 1 1 +185 73 129 +225 97 161 +73 81 89 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/squirtle.pal b/graphics/object_events/palettes/followers/squirtle.pal new file mode 100644 index 000000000..8d090127d --- /dev/null +++ b/graphics/object_events/palettes/followers/squirtle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 121 25 +57 137 185 +217 169 49 +233 233 249 +33 73 97 +185 185 185 +1 1 1 +161 9 3 +89 185 241 +241 209 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/stantler.pal b/graphics/object_events/palettes/followers/stantler.pal new file mode 100644 index 000000000..ca315697f --- /dev/null +++ b/graphics/object_events/palettes/followers/stantler.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 145 25 +89 73 9 +169 185 209 +201 145 89 +73 65 57 +225 209 81 +97 49 9 +1 1 1 +233 233 249 +185 97 49 +137 33 49 +113 89 81 +201 177 113 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/starmie.pal b/graphics/object_events/palettes/followers/starmie.pal new file mode 100644 index 000000000..44225b531 --- /dev/null +++ b/graphics/object_events/palettes/followers/starmie.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 145 25 +65 65 113 +57 49 17 +105 25 25 +137 113 233 +1 1 1 +49 41 65 +233 177 33 +241 89 73 +89 89 193 +185 41 41 +169 121 33 +121 81 9 +225 97 73 +89 73 41 diff --git a/graphics/object_events/palettes/followers/staryu.pal b/graphics/object_events/palettes/followers/staryu.pal new file mode 100644 index 000000000..47f9daf31 --- /dev/null +++ b/graphics/object_events/palettes/followers/staryu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 121 33 +57 49 17 +177 145 25 +105 25 25 +121 81 9 +1 1 1 +225 97 73 +233 177 33 +185 41 41 +89 73 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/steelix.pal b/graphics/object_events/palettes/followers/steelix.pal new file mode 100644 index 000000000..cac012566 --- /dev/null +++ b/graphics/object_events/palettes/followers/steelix.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 121 145 +161 185 201 +49 65 81 +1 1 1 +233 233 249 +193 209 225 +193 57 57 +129 153 169 +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/object_events/palettes/followers/sudowoodo.pal b/graphics/object_events/palettes/followers/sudowoodo.pal new file mode 100644 index 000000000..a16242e5e --- /dev/null +++ b/graphics/object_events/palettes/followers/sudowoodo.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 153 65 +1 1 1 +201 169 1 +25 81 17 +161 129 89 +121 209 121 +129 105 65 +185 153 89 +233 233 249 +225 121 121 +89 65 17 +225 193 1 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/suicune.pal b/graphics/object_events/palettes/followers/suicune.pal new file mode 100644 index 000000000..2ec7c2b8c --- /dev/null +++ b/graphics/object_events/palettes/followers/suicune.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +49 153 137 +65 33 97 +97 201 193 +81 81 97 +97 153 193 +185 49 49 +129 153 153 +185 201 201 +25 57 89 +161 97 177 +233 233 249 +113 57 137 +49 97 137 +1 1 1 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sunflora.pal b/graphics/object_events/palettes/followers/sunflora.pal new file mode 100644 index 000000000..34210aafa --- /dev/null +++ b/graphics/object_events/palettes/followers/sunflora.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 137 49 +225 185 17 +89 185 81 +1 1 1 +41 81 17 +201 129 33 +241 225 113 +233 193 33 +121 209 113 +225 161 41 +129 73 1 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/sunkern.pal b/graphics/object_events/palettes/followers/sunkern.pal new file mode 100644 index 000000000..8184c4986 --- /dev/null +++ b/graphics/object_events/palettes/followers/sunkern.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 9 +233 233 249 +89 65 1 +113 193 81 +73 97 113 +1 1 1 +153 105 9 +241 217 113 +33 49 57 +105 161 57 +217 185 49 +41 81 17 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/surskit.pal b/graphics/object_events/palettes/followers/surskit.pal new file mode 100644 index 000000000..40ff84b78 --- /dev/null +++ b/graphics/object_events/palettes/followers/surskit.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 33 +105 81 17 +97 145 185 +185 169 49 +41 73 97 +145 41 41 +233 233 249 +1 1 1 +33 41 57 +193 57 57 +225 209 73 +73 105 137 +121 177 225 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/swablu.pal b/graphics/object_events/palettes/followers/swablu.pal new file mode 100644 index 000000000..0af595d67 --- /dev/null +++ b/graphics/object_events/palettes/followers/swablu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 129 145 +225 225 233 +89 145 177 +73 81 105 +113 177 209 +65 113 153 +1 1 1 +249 249 249 +169 177 193 +49 81 121 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/swalot.pal b/graphics/object_events/palettes/followers/swalot.pal new file mode 100644 index 000000000..ed14e5df2 --- /dev/null +++ b/graphics/object_events/palettes/followers/swalot.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 129 57 +137 105 161 +65 41 97 +233 185 65 +57 73 81 +161 129 193 +97 73 121 +161 25 25 +1 1 1 +217 105 105 +185 145 217 +121 89 145 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/swampert.pal b/graphics/object_events/palettes/followers/swampert.pal new file mode 100644 index 000000000..351f6cc11 --- /dev/null +++ b/graphics/object_events/palettes/followers/swampert.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +241 129 17 +89 121 161 +161 73 17 +129 185 241 +49 57 81 +1 1 1 +97 161 209 +49 73 113 +89 105 129 +249 193 129 +201 201 225 +161 161 193 +193 89 17 +49 65 73 +0 0 0 diff --git a/graphics/object_events/palettes/followers/swellow.pal b/graphics/object_events/palettes/followers/swellow.pal new file mode 100644 index 000000000..4a366df34 --- /dev/null +++ b/graphics/object_events/palettes/followers/swellow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 137 41 +89 81 17 +105 137 193 +49 73 113 +209 209 233 +17 49 73 +225 209 73 +65 65 65 +217 81 89 +185 185 193 +1 1 1 +73 105 153 +177 65 81 +105 33 65 +233 233 249 diff --git a/graphics/object_events/palettes/followers/swinub.pal b/graphics/object_events/palettes/followers/swinub.pal new file mode 100644 index 000000000..1ac67e68b --- /dev/null +++ b/graphics/object_events/palettes/followers/swinub.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 97 57 +185 153 105 +113 89 81 +201 97 113 +145 41 65 +73 41 9 +169 129 73 +1 1 1 +233 137 161 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/taillow.pal b/graphics/object_events/palettes/followers/taillow.pal new file mode 100644 index 000000000..c01cf137c --- /dev/null +++ b/graphics/object_events/palettes/followers/taillow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 145 41 +105 81 17 +105 137 193 +49 73 113 +225 209 73 +193 73 89 +17 49 73 +233 233 249 +121 121 129 +1 1 1 +145 49 81 +73 105 153 +169 169 177 +65 65 65 +241 105 105 diff --git a/graphics/object_events/palettes/followers/tangela.pal b/graphics/object_events/palettes/followers/tangela.pal new file mode 100644 index 000000000..eec939132 --- /dev/null +++ b/graphics/object_events/palettes/followers/tangela.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 145 +233 233 249 +65 65 65 +121 145 177 +161 49 41 +1 1 1 +25 33 33 +89 113 113 +169 185 209 +105 161 169 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/tauros.pal b/graphics/object_events/palettes/followers/tauros.pal new file mode 100644 index 000000000..9d198490e --- /dev/null +++ b/graphics/object_events/palettes/followers/tauros.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 121 73 +113 129 169 +73 65 65 +201 153 65 +193 193 209 +105 97 89 +1 1 1 +41 33 17 +145 145 145 +233 233 249 +81 81 105 +225 169 73 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/teddiursa.pal b/graphics/object_events/palettes/followers/teddiursa.pal new file mode 100644 index 000000000..10b1388ec --- /dev/null +++ b/graphics/object_events/palettes/followers/teddiursa.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +201 121 33 +177 185 193 +225 201 97 +89 73 65 +241 225 193 +1 1 1 +89 49 17 +233 161 57 +153 97 33 +233 233 249 +201 209 225 +217 201 137 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/tentacool.pal b/graphics/object_events/palettes/followers/tentacool.pal new file mode 100644 index 000000000..ebde6755c --- /dev/null +++ b/graphics/object_events/palettes/followers/tentacool.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 3 +73 145 161 +65 65 65 +121 193 241 +145 25 89 +177 121 73 +249 161 161 +41 105 121 +233 233 249 +65 49 41 +209 169 97 +1 1 1 +209 209 209 +225 49 97 +57 73 97 diff --git a/graphics/object_events/palettes/followers/tentacruel.pal b/graphics/object_events/palettes/followers/tentacruel.pal new file mode 100644 index 000000000..5eb5f673e --- /dev/null +++ b/graphics/object_events/palettes/followers/tentacruel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +73 137 3 +1 1 1 +65 65 65 +233 233 249 +121 193 241 +169 169 169 +145 25 89 +153 121 89 +41 105 121 +185 161 121 +81 153 169 +225 49 97 +249 161 161 +57 73 97 +0 0 0 diff --git a/graphics/object_events/palettes/followers/togepi.pal b/graphics/object_events/palettes/followers/togepi.pal new file mode 100644 index 000000000..52fd5d0ed --- /dev/null +++ b/graphics/object_events/palettes/followers/togepi.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 137 73 +97 169 225 +233 217 89 +49 57 41 +193 177 73 +217 209 209 +217 81 89 +113 97 49 +233 121 145 +153 153 145 +249 233 145 +233 233 249 +121 201 241 +81 81 81 +1 1 1 diff --git a/graphics/object_events/palettes/followers/togetic.pal b/graphics/object_events/palettes/followers/togetic.pal new file mode 100644 index 000000000..bf8df7baf --- /dev/null +++ b/graphics/object_events/palettes/followers/togetic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 145 145 +233 233 249 +41 49 89 +97 169 225 +41 41 41 +1 1 1 +217 81 89 +161 177 217 +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/object_events/palettes/followers/torchic.pal b/graphics/object_events/palettes/followers/torchic.pal new file mode 100644 index 000000000..a9c540b8d --- /dev/null +++ b/graphics/object_events/palettes/followers/torchic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +241 129 17 +233 233 249 +1 1 1 +121 81 17 +161 145 81 +233 169 17 +249 209 97 +209 97 1 +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/object_events/palettes/followers/torkoal.pal b/graphics/object_events/palettes/followers/torkoal.pal new file mode 100644 index 000000000..fab0f050a --- /dev/null +++ b/graphics/object_events/palettes/followers/torkoal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 113 65 +145 97 57 +137 33 49 +121 129 129 +97 41 41 +1 1 1 +209 137 81 +89 97 105 +209 57 81 +185 185 185 +49 57 65 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/totodile.pal b/graphics/object_events/palettes/followers/totodile.pal new file mode 100644 index 000000000..1a7c37644 --- /dev/null +++ b/graphics/object_events/palettes/followers/totodile.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 153 81 +65 73 81 +81 129 185 +113 25 41 +41 57 97 +169 185 209 +209 49 73 +1 1 1 +233 233 249 +113 177 233 +65 97 137 +121 105 41 +161 33 57 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/trapinch.pal b/graphics/object_events/palettes/followers/trapinch.pal new file mode 100644 index 000000000..410b897fd --- /dev/null +++ b/graphics/object_events/palettes/followers/trapinch.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +225 153 113 +169 89 73 +201 121 81 +41 41 41 +249 249 249 +1 1 1 +105 105 105 +121 121 121 +113 49 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/treecko.pal b/graphics/object_events/palettes/followers/treecko.pal new file mode 100644 index 000000000..e5b4b2e4c --- /dev/null +++ b/graphics/object_events/palettes/followers/treecko.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 169 33 +49 73 25 +249 217 89 +105 25 25 +57 137 105 +65 105 41 +185 49 49 +49 89 57 +1 1 1 +201 217 121 +145 33 33 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/tropius.pal b/graphics/object_events/palettes/followers/tropius.pal new file mode 100644 index 000000000..af8de33ba --- /dev/null +++ b/graphics/object_events/palettes/followers/tropius.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 121 9 +161 161 161 +209 169 25 +25 57 33 +129 185 97 +65 145 73 +41 105 57 +65 49 1 +233 233 249 +249 209 33 +161 121 81 +121 97 73 +1 1 1 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/typhlosion.pal b/graphics/object_events/palettes/followers/typhlosion.pal new file mode 100644 index 000000000..eeacd5c1f --- /dev/null +++ b/graphics/object_events/palettes/followers/typhlosion.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 145 81 +73 65 17 +57 137 169 +241 201 41 +25 57 73 +161 17 25 +209 185 97 +217 81 81 +233 233 249 +57 97 121 +1 1 1 +105 89 57 +185 49 49 +249 209 97 +0 0 0 diff --git a/graphics/object_events/palettes/followers/tyranitar.pal b/graphics/object_events/palettes/followers/tyranitar.pal new file mode 100644 index 000000000..4dadfce81 --- /dev/null +++ b/graphics/object_events/palettes/followers/tyranitar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +89 121 81 +137 185 105 +57 49 105 +121 137 145 +33 41 41 +161 185 201 +113 161 89 +41 73 49 +81 105 169 +233 233 249 +177 217 121 +1 1 1 +97 137 193 +49 65 65 +0 0 0 diff --git a/graphics/object_events/palettes/followers/tyrogue.pal b/graphics/object_events/palettes/followers/tyrogue.pal new file mode 100644 index 000000000..e0f3829ec --- /dev/null +++ b/graphics/object_events/palettes/followers/tyrogue.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +137 145 153 +193 57 57 +177 185 193 +89 49 105 +169 121 177 +73 89 105 +97 25 25 +1 1 1 +233 233 249 +137 97 9 +201 161 217 +145 41 41 +113 81 129 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/umbreon.pal b/graphics/object_events/palettes/followers/umbreon.pal new file mode 100644 index 000000000..83c9ac129 --- /dev/null +++ b/graphics/object_events/palettes/followers/umbreon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 129 17 +129 89 9 +209 25 25 +233 233 249 +225 177 41 +25 41 57 +65 73 81 +1 1 1 +249 217 89 +105 113 121 +137 57 1 +41 57 65 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/unown.pal b/graphics/object_events/palettes/followers/unown.pal new file mode 100644 index 000000000..d729ca129 --- /dev/null +++ b/graphics/object_events/palettes/followers/unown.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +65 73 89 +233 233 249 +41 49 65 +185 185 185 +97 105 145 +0 0 0 +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/object_events/palettes/followers/ursaring.pal b/graphics/object_events/palettes/followers/ursaring.pal new file mode 100644 index 000000000..36e1ff602 --- /dev/null +++ b/graphics/object_events/palettes/followers/ursaring.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 137 57 +161 169 185 +121 73 49 +1 1 1 +145 105 57 +209 161 97 +233 233 249 +73 41 9 +217 201 137 +193 193 201 +177 129 89 +89 73 65 +153 105 65 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/vaporeon.pal b/graphics/object_events/palettes/followers/vaporeon.pal new file mode 100644 index 000000000..e28edebe1 --- /dev/null +++ b/graphics/object_events/palettes/followers/vaporeon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +9 131 5 +33 145 137 +129 201 233 +81 73 57 +89 177 225 +1 1 1 +177 153 57 +209 209 209 +33 57 105 +17 113 121 +225 201 105 +233 233 249 +73 137 177 +161 161 161 +49 105 137 diff --git a/graphics/object_events/palettes/followers/venomoth.pal b/graphics/object_events/palettes/followers/venomoth.pal new file mode 100644 index 000000000..558651bc1 --- /dev/null +++ b/graphics/object_events/palettes/followers/venomoth.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 121 65 +209 153 249 +105 97 137 +233 233 249 +73 65 89 +1 1 1 +193 193 193 +161 105 241 +113 113 113 +233 185 249 +217 185 129 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/venonat.pal b/graphics/object_events/palettes/followers/venonat.pal new file mode 100644 index 000000000..b1281ab1c --- /dev/null +++ b/graphics/object_events/palettes/followers/venonat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 145 81 +73 57 129 +201 201 201 +129 97 33 +1 1 1 +137 1 1 +137 137 137 +113 73 209 +169 49 81 +49 33 65 +233 233 249 +161 105 241 +233 129 153 +217 185 129 +249 201 201 diff --git a/graphics/object_events/palettes/followers/venusaur.pal b/graphics/object_events/palettes/followers/venusaur.pal new file mode 100644 index 000000000..46f21dc4a --- /dev/null +++ b/graphics/object_events/palettes/followers/venusaur.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 129 41 +241 121 161 +137 225 33 +145 65 33 +65 153 97 +105 217 193 +233 193 113 +201 73 129 +233 233 249 +105 33 41 +97 169 17 +161 161 161 +1 1 1 +65 97 49 +249 225 9 diff --git a/graphics/object_events/palettes/followers/vibrava.pal b/graphics/object_events/palettes/followers/vibrava.pal new file mode 100644 index 000000000..4402c3530 --- /dev/null +++ b/graphics/object_events/palettes/followers/vibrava.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +129 137 97 +217 225 185 +41 105 25 +185 193 209 +121 185 113 +73 73 73 +1 1 1 +57 57 57 +249 249 249 +105 105 105 +81 89 57 +97 161 97 +161 177 137 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/victreebel.pal b/graphics/object_events/palettes/followers/victreebel.pal new file mode 100644 index 000000000..90de7ab6a --- /dev/null +++ b/graphics/object_events/palettes/followers/victreebel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 153 57 +241 121 161 +81 65 49 +137 217 81 +1 1 1 +169 65 113 +121 9 5 +185 137 57 +193 193 193 +233 233 249 +33 33 33 +65 89 41 +241 225 73 +185 161 49 +129 97 41 diff --git a/graphics/object_events/palettes/followers/vigoroth.pal b/graphics/object_events/palettes/followers/vigoroth.pal new file mode 100644 index 000000000..446f1e8d6 --- /dev/null +++ b/graphics/object_events/palettes/followers/vigoroth.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 129 121 +65 57 73 +97 89 105 +217 209 217 +97 49 49 +1 1 1 +169 57 57 +209 89 89 +105 25 25 +177 169 177 +233 233 249 +121 81 73 +145 105 97 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/vileplume.pal b/graphics/object_events/palettes/followers/vileplume.pal new file mode 100644 index 000000000..503e1333c --- /dev/null +++ b/graphics/object_events/palettes/followers/vileplume.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 113 153 +169 81 17 +1 1 1 +33 57 105 +217 97 113 +169 49 73 +121 33 17 +217 185 145 +249 137 73 +49 81 113 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/volbeat.pal b/graphics/object_events/palettes/followers/volbeat.pal new file mode 100644 index 000000000..f78520d3b --- /dev/null +++ b/graphics/object_events/palettes/followers/volbeat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 57 +65 65 73 +177 177 193 +225 185 65 +209 73 81 +121 33 49 +105 105 113 +1 1 1 +233 233 249 +137 137 153 +41 41 49 +225 113 121 +177 57 65 +225 209 89 +97 81 49 diff --git a/graphics/object_events/palettes/followers/voltorb.pal b/graphics/object_events/palettes/followers/voltorb.pal new file mode 100644 index 000000000..f4f84dd99 --- /dev/null +++ b/graphics/object_events/palettes/followers/voltorb.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +233 81 81 +113 17 17 +201 201 209 +49 49 49 +161 161 161 +241 113 113 +201 33 33 +233 233 249 +185 185 193 +105 105 105 +217 217 217 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/vulpix.pal b/graphics/object_events/palettes/followers/vulpix.pal new file mode 100644 index 000000000..9c57ccda9 --- /dev/null +++ b/graphics/object_events/palettes/followers/vulpix.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +241 137 73 +169 81 25 +217 113 49 +233 233 249 +121 73 57 +89 57 49 +1 1 1 +185 89 57 +241 201 153 +89 65 73 +137 57 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wailmer.pal b/graphics/object_events/palettes/followers/wailmer.pal new file mode 100644 index 000000000..4104dc7f0 --- /dev/null +++ b/graphics/object_events/palettes/followers/wailmer.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 153 97 +65 73 81 +193 185 121 +65 129 193 +41 97 137 +33 65 97 +185 201 217 +105 161 225 +137 121 73 +81 65 33 +217 233 249 +137 153 169 +49 105 161 +1 1 1 +97 113 121 diff --git a/graphics/object_events/palettes/followers/wailord.pal b/graphics/object_events/palettes/followers/wailord.pal new file mode 100644 index 000000000..8168289fe --- /dev/null +++ b/graphics/object_events/palettes/followers/wailord.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +185 201 217 +33 65 105 +65 129 193 +57 73 81 +137 161 177 +217 233 249 +41 105 153 +105 161 225 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/walrein.pal b/graphics/object_events/palettes/followers/walrein.pal new file mode 100644 index 000000000..1543eafcf --- /dev/null +++ b/graphics/object_events/palettes/followers/walrein.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +193 153 25 +129 137 153 +177 185 209 +81 81 57 +1 1 1 +105 161 217 +209 217 233 +49 65 105 +249 217 89 +137 185 249 +81 129 177 +81 81 105 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wartortle.pal b/graphics/object_events/palettes/followers/wartortle.pal new file mode 100644 index 000000000..d4d157193 --- /dev/null +++ b/graphics/object_events/palettes/followers/wartortle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 137 25 +161 161 161 +65 81 153 +57 57 73 +233 233 249 +1 1 1 +65 121 217 +161 89 25 +161 9 3 +241 209 113 +113 153 225 +65 65 65 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/weedle.pal b/graphics/object_events/palettes/followers/weedle.pal new file mode 100644 index 000000000..1092aef54 --- /dev/null +++ b/graphics/object_events/palettes/followers/weedle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +161 121 49 +185 185 185 +97 73 41 +249 209 65 +129 129 129 +249 113 137 +193 41 65 +193 153 65 +233 233 249 +1 1 1 +65 65 65 +145 113 33 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/weepinbell.pal b/graphics/object_events/palettes/followers/weepinbell.pal new file mode 100644 index 000000000..c6ea065e7 --- /dev/null +++ b/graphics/object_events/palettes/followers/weepinbell.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 153 57 +241 121 161 +81 65 49 +137 217 81 +89 89 89 +1 1 1 +185 137 57 +185 185 185 +233 233 249 +121 9 5 +169 65 113 +65 89 41 +241 225 73 +185 161 49 +129 97 41 diff --git a/graphics/object_events/palettes/followers/weezing.pal b/graphics/object_events/palettes/followers/weezing.pal new file mode 100644 index 000000000..84a071158 --- /dev/null +++ b/graphics/object_events/palettes/followers/weezing.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 129 41 +137 129 209 +89 81 121 +57 41 57 +161 161 129 +233 233 249 +129 73 81 +1 1 1 +121 105 193 +169 169 209 +105 57 65 +201 185 121 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/whiscash.pal b/graphics/object_events/palettes/followers/whiscash.pal new file mode 100644 index 000000000..70c9415af --- /dev/null +++ b/graphics/object_events/palettes/followers/whiscash.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +145 121 57 +65 129 185 +25 33 105 +233 233 249 +177 161 73 +97 161 217 +33 97 161 +97 81 33 +1 1 1 +49 65 137 +209 193 97 +177 177 193 +105 129 193 +73 97 161 +9 5 9 diff --git a/graphics/object_events/palettes/followers/whismur.pal b/graphics/object_events/palettes/followers/whismur.pal new file mode 100644 index 000000000..f353acb32 --- /dev/null +++ b/graphics/object_events/palettes/followers/whismur.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +153 137 41 +209 121 169 +81 57 9 +225 209 73 +1 1 1 +65 73 89 +97 41 73 +193 169 49 +233 161 201 +161 89 129 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wigglytuff.pal b/graphics/object_events/palettes/followers/wigglytuff.pal new file mode 100644 index 000000000..87de7d93d --- /dev/null +++ b/graphics/object_events/palettes/followers/wigglytuff.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +185 105 129 +233 233 249 +193 193 193 +137 57 81 +241 153 169 +57 97 201 +113 185 249 +81 81 81 +97 57 65 +121 89 57 +169 169 169 +161 81 97 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wingull.pal b/graphics/object_events/palettes/followers/wingull.pal new file mode 100644 index 000000000..676a03740 --- /dev/null +++ b/graphics/object_events/palettes/followers/wingull.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +169 145 41 +137 137 153 +161 201 225 +105 81 17 +177 185 201 +81 81 89 +225 209 73 +105 161 217 +1 1 1 +65 105 145 +233 233 249 +81 145 185 +49 73 113 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wobbuffet.pal b/graphics/object_events/palettes/followers/wobbuffet.pal new file mode 100644 index 000000000..a5cedfd43 --- /dev/null +++ b/graphics/object_events/palettes/followers/wobbuffet.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +57 129 161 +57 161 193 +33 49 65 +169 185 209 +57 81 113 +1 1 1 +25 57 113 +113 201 241 +65 145 41 +145 193 65 +57 105 17 +169 41 41 +113 177 81 +233 233 249 +193 217 113 diff --git a/graphics/object_events/palettes/followers/wooper.pal b/graphics/object_events/palettes/followers/wooper.pal new file mode 100644 index 000000000..b0ebb5db6 --- /dev/null +++ b/graphics/object_events/palettes/followers/wooper.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +1 1 1 +33 65 121 +145 201 249 +73 145 201 +177 113 209 +97 41 97 +57 113 161 +233 233 249 +113 177 241 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wurmple.pal b/graphics/object_events/palettes/followers/wurmple.pal new file mode 100644 index 000000000..a6f96b9dc --- /dev/null +++ b/graphics/object_events/palettes/followers/wurmple.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 153 57 +121 97 25 +137 137 145 +1 1 1 +81 81 81 +129 33 57 +169 169 177 +241 105 105 +241 217 105 +249 209 185 +185 49 73 +177 145 129 +113 89 81 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/wynaut.pal b/graphics/object_events/palettes/followers/wynaut.pal new file mode 100644 index 000000000..b73b089b8 --- /dev/null +++ b/graphics/object_events/palettes/followers/wynaut.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +81 137 153 +25 65 81 +193 57 57 +137 209 225 +49 105 121 +41 41 49 +105 177 193 +33 81 97 +1 1 1 +233 233 249 +113 33 33 +97 97 121 +65 65 81 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/xatu.pal b/graphics/object_events/palettes/followers/xatu.pal new file mode 100644 index 000000000..399c787a2 --- /dev/null +++ b/graphics/object_events/palettes/followers/xatu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +97 145 57 +113 129 153 +49 49 49 +129 193 113 +65 81 97 +176 198 222 +121 17 33 +1 1 1 +233 233 249 +217 73 89 +97 81 1 +241 209 97 +177 41 57 +185 153 49 +57 81 33 diff --git a/graphics/object_events/palettes/followers/yanma.pal b/graphics/object_events/palettes/followers/yanma.pal new file mode 100644 index 000000000..40a8c8679 --- /dev/null +++ b/graphics/object_events/palettes/followers/yanma.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +233 121 49 +41 105 9 +185 201 225 +81 97 137 +113 193 81 +185 65 17 +145 49 9 +97 25 25 +1 1 1 +241 105 81 +161 233 129 +57 73 73 +233 233 249 +217 73 49 +0 0 0 diff --git a/graphics/object_events/palettes/followers/zangoose.pal b/graphics/object_events/palettes/followers/zangoose.pal new file mode 100644 index 000000000..2736e0cb2 --- /dev/null +++ b/graphics/object_events/palettes/followers/zangoose.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +113 121 137 +161 49 97 +41 49 65 +209 209 209 +225 113 129 +1 1 1 +161 49 57 +121 33 33 +73 81 97 +241 113 185 +233 233 249 +153 161 177 +209 73 81 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/zapdos.pal b/graphics/object_events/palettes/followers/zapdos.pal new file mode 100644 index 000000000..037f1b687 --- /dev/null +++ b/graphics/object_events/palettes/followers/zapdos.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +185 121 1 +1 1 1 +65 65 65 +249 209 1 +225 169 25 +177 177 209 +161 113 73 +57 41 25 +233 233 249 +225 145 73 +249 217 65 +89 81 65 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/followers/zigzagoon.pal b/graphics/object_events/palettes/followers/zigzagoon.pal new file mode 100644 index 000000000..a2d068ced --- /dev/null +++ b/graphics/object_events/palettes/followers/zigzagoon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +177 129 89 +89 73 33 +169 185 209 +1 1 1 +41 33 25 +65 73 81 +121 129 145 +153 97 57 +233 233 249 +217 209 153 +73 49 25 +201 177 121 +121 73 41 +153 137 89 +65 49 41 diff --git a/graphics/object_events/palettes/followers/zubat.pal b/graphics/object_events/palettes/followers/zubat.pal new file mode 100644 index 000000000..548a44a6a --- /dev/null +++ b/graphics/object_events/palettes/followers/zubat.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +161 177 129 +65 113 121 +1 1 1 +97 65 129 +137 97 185 +81 185 177 +17 57 65 +161 129 177 +185 185 193 +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/object_events/palettes/friend_ball.pal b/graphics/object_events/palettes/friend_ball.pal new file mode 100644 index 000000000..a155698a8 --- /dev/null +++ b/graphics/object_events/palettes/friend_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +107 149 43 +157 157 189 +45 75 1 +249 249 249 +75 75 123 +141 199 57 +1 1 1 +195 79 61 +209 123 109 +247 223 17 +205 205 223 +255 255 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/great_ball.pal b/graphics/object_events/palettes/great_ball.pal new file mode 100644 index 000000000..552f0b9e8 --- /dev/null +++ b/graphics/object_events/palettes/great_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +157 157 189 +75 75 123 +249 249 249 +155 43 37 +1 1 1 +55 65 169 +5 1 77 +255 255 255 +205 205 223 +87 97 201 +207 57 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/heal_ball.pal b/graphics/object_events/palettes/heal_ball.pal new file mode 100644 index 000000000..f5b6713c1 --- /dev/null +++ b/graphics/object_events/palettes/heal_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +129 47 107 +253 237 225 +87 135 201 +249 199 167 +245 41 189 +249 249 249 +249 103 209 +193 185 209 +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/object_events/palettes/heavy_ball.pal b/graphics/object_events/palettes/heavy_ball.pal new file mode 100644 index 000000000..2c8781c6b --- /dev/null +++ b/graphics/object_events/palettes/heavy_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +95 133 225 +27 53 115 +1 1 1 +69 65 59 +205 205 223 +39 93 217 +249 249 249 +47 47 47 +157 157 189 +105 97 87 +75 75 123 +255 255 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/level_ball.pal b/graphics/object_events/palettes/level_ball.pal new file mode 100644 index 000000000..80e49c9cc --- /dev/null +++ b/graphics/object_events/palettes/level_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +233 131 119 +69 65 59 +1 1 1 +105 97 87 +205 205 223 +157 157 189 +215 119 41 +249 249 249 +47 47 47 +225 79 63 +75 75 123 +225 153 95 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/love_ball.pal b/graphics/object_events/palettes/love_ball.pal new file mode 100644 index 000000000..e8e8e8a0d --- /dev/null +++ b/graphics/object_events/palettes/love_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +157 157 189 +1 1 1 +75 75 123 +205 205 223 +255 191 229 +159 65 129 +249 249 249 +93 1 63 +255 129 201 +191 97 161 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/lure_ball.pal b/graphics/object_events/palettes/lure_ball.pal new file mode 100644 index 000000000..e156e3232 --- /dev/null +++ b/graphics/object_events/palettes/lure_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +43 153 213 +75 75 123 +205 205 223 +207 49 69 +1 1 1 +219 101 115 +249 249 249 +1 53 81 +33 115 159 +157 157 189 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/luxury_ball.pal b/graphics/object_events/palettes/luxury_ball.pal new file mode 100644 index 000000000..319242f49 --- /dev/null +++ b/graphics/object_events/palettes/luxury_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +249 231 71 +69 65 59 +177 63 33 +107 31 13 +215 75 41 +47 47 47 +105 97 87 +255 255 255 +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/object_events/palettes/master_ball.pal b/graphics/object_events/palettes/master_ball.pal new file mode 100644 index 000000000..72ac65599 --- /dev/null +++ b/graphics/object_events/palettes/master_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +157 157 189 +191 1 159 +249 249 249 +75 75 123 +205 205 223 +117 49 207 +63 41 95 +1 1 1 +151 101 219 +255 1 211 +217 201 241 +255 255 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/moon_ball.pal b/graphics/object_events/palettes/moon_ball.pal new file mode 100644 index 000000000..ac8987a4c --- /dev/null +++ b/graphics/object_events/palettes/moon_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +245 193 11 +21 181 235 +93 71 1 +249 249 249 +157 157 189 +1 85 111 +101 119 155 +1 1 1 +41 51 71 +205 205 223 +249 209 71 +75 75 123 +81 201 239 +75 89 117 +255 255 255 diff --git a/graphics/object_events/palettes/nest_ball.pal b/graphics/object_events/palettes/nest_ball.pal new file mode 100644 index 000000000..0f868af50 --- /dev/null +++ b/graphics/object_events/palettes/nest_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +89 133 59 +157 157 189 +249 249 249 +211 211 75 +75 75 123 +1 1 1 +47 77 27 +119 177 79 +205 205 223 +225 225 127 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/net_ball.pal b/graphics/object_events/palettes/net_ball.pal new file mode 100644 index 000000000..d14a3f13f --- /dev/null +++ b/graphics/object_events/palettes/net_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +49 131 143 +1 1 1 +17 57 63 +65 175 191 +205 205 223 +75 75 123 +105 97 87 +249 249 249 +157 157 189 +193 185 209 +69 65 59 +255 255 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/park_ball.pal b/graphics/object_events/palettes/park_ball.pal new file mode 100644 index 000000000..00d4cf5ad --- /dev/null +++ b/graphics/object_events/palettes/park_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +235 193 21 +97 77 3 +75 75 123 +205 205 223 +249 249 249 +249 137 49 +241 209 79 +41 105 201 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/premier_ball.pal b/graphics/object_events/palettes/premier_ball.pal new file mode 100644 index 000000000..f871d2bdd --- /dev/null +++ b/graphics/object_events/palettes/premier_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +51 49 49 +223 223 223 +155 43 37 +191 191 191 +249 249 249 +0 0 0 +0 0 0 +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/object_events/palettes/quick_ball.pal b/graphics/object_events/palettes/quick_ball.pal new file mode 100644 index 000000000..28ce5c50b --- /dev/null +++ b/graphics/object_events/palettes/quick_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +191 191 1 +41 141 215 +1 1 1 +157 157 189 +35 75 107 +255 255 1 +95 169 225 +249 249 249 +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/object_events/palettes/repeat_ball.pal b/graphics/object_events/palettes/repeat_ball.pal new file mode 100644 index 000000000..641e5fb81 --- /dev/null +++ b/graphics/object_events/palettes/repeat_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +241 149 79 +157 157 189 +69 65 59 +249 249 249 +105 97 87 +213 171 43 +1 1 1 +107 53 11 +235 113 21 +205 205 223 +223 191 97 +75 75 123 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/safari_ball.pal b/graphics/object_events/palettes/safari_ball.pal new file mode 100644 index 000000000..4f7ae21c2 --- /dev/null +++ b/graphics/object_events/palettes/safari_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +63 131 63 +157 157 189 +249 249 249 +1 1 1 +75 75 123 +245 159 105 +249 197 167 +17 55 17 +83 173 83 +205 205 223 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/sport_ball.pal b/graphics/object_events/palettes/sport_ball.pal new file mode 100644 index 000000000..a107ed002 --- /dev/null +++ b/graphics/object_events/palettes/sport_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +213 171 43 +157 157 189 +193 63 31 +249 249 249 +1 1 1 +75 75 123 +83 21 7 +223 191 97 +205 205 223 +225 95 63 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/ss_tidal.pal b/graphics/object_events/palettes/ss_tidal.pal index 5e68e105d..05eef587a 100644 --- a/graphics/object_events/palettes/ss_tidal.pal +++ b/graphics/object_events/palettes/ss_tidal.pal @@ -14,6 +14,6 @@ JASC-PAL 0 0 0 197 148 0 246 213 24 -0 0 0 -0 0 0 +255 255 255 +74 180 230 74 106 139 diff --git a/graphics/object_events/palettes/submarine_shadow.pal b/graphics/object_events/palettes/submarine_shadow.pal deleted file mode 100644 index fe4c1c112..000000000 --- a/graphics/object_events/palettes/submarine_shadow.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 123 197 -255 255 255 -222 230 238 -189 205 230 -156 164 189 -139 139 156 -98 98 123 -65 74 106 -197 98 98 -172 65 106 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -74 180 230 diff --git a/graphics/object_events/palettes/timer_ball.pal b/graphics/object_events/palettes/timer_ball.pal new file mode 100644 index 000000000..e4c93a648 --- /dev/null +++ b/graphics/object_events/palettes/timer_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +157 157 189 +69 65 59 +249 249 249 +105 97 87 +1 1 1 +105 33 17 +75 75 123 +193 185 209 +215 75 41 +225 121 95 +47 47 47 +205 205 223 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/ultra_ball.pal b/graphics/object_events/palettes/ultra_ball.pal new file mode 100644 index 000000000..253c8a380 --- /dev/null +++ b/graphics/object_events/palettes/ultra_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 165 +217 139 7 +157 157 189 +69 65 59 +249 249 249 +1 1 1 +75 75 123 +47 47 47 +249 171 39 +205 205 223 +105 97 87 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/pics/misc/cherish_ball.png b/graphics/object_events/pics/misc/cherish_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..ebb64441ce90ce07441f947a33f5ee6991f8d3cd GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$5o}bax(fXjd{Li01 zABNilW$=Jg7xsh!r8x^cB8wRqxP?KOkzv*x380{(r;B3<$IRpe1wjrjr;KA40vHXP zuUxeda4}|Wmzu5BkTRurO0PqakJ~E8Qv!ll6*h1*Pna}G$z^xu28LCQKnIrXWm^`} RWc?K608dvxmvv4FO#r>$Gxq=h literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/dive_ball.png b/graphics/object_events/pics/misc/dive_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..54b5557c2898dbc66f495de826ee04d99d0b835c GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$*?%ch1&wk`C{pvpb zC%=9uBO~L_pFelcer##z3RHy#JQU7e0}62#ctjR6FmMZlFeAgPITAoY4^J1z5RRG2 z2?~N|=5Q{w44tFaAURpf%H$xEl&+kwf}$D!<|orw6q-#f1JCF%94YV?@n$rXaJmx| mb8uIL?;K_Yw$?T!X?}*k?7Y!Q0VbC~c6++|xvX4x z=BoY&cV7INzVzqMpWVf47bg*#837H^PTeOt7=k=5*-*c3KS!+a65DP|0v60=mfn_VJW&rafH scIZ-4kM?7Io%D5%5QCwHiO9_gh6oA1bBm5m-2$@J)78&qol`;+05sb`IsgCw literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/dusk_ball.png b/graphics/object_events/pics/misc/dusk_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..70bfbf9ae258989f39dfb8914776d326a47a6674 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3%`ezCo7vF=VqMtyyK zS4Zp2#PFM*j6Z+=1S-J<9LFE90!29sJR*x37`TN&n2}-D90{PHlc$Sg2*=Fi1O>qz zI~+2mxfrq=9NwrK!lE-_%8FHNLP=twW?Uu=oik>Mvp2g$w4CkkJ+SKTq_aT^x0qdJ c19)2)82Be}USj1~XbZB~)78&qol`;+0NDF9jsO4v literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/fast_ball.png b/graphics/object_events/pics/misc/fast_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..198542370d10ec0ef1741f16bd38e11bd7a46e45 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&R<5d5-bN5EOGXDJe z^Xh7CMn*<&@9I=-#@B_SXV2chzd!N+|NlVc5RkaV^caxES>O>_%)r1c48n{Iv*t(u z1-(37978x}CMPHemXtVT@V)HiO>kSByo9AA?VhGZ@ixW@2e*|*rIj#EI5=Fr(Jd)$(dk@2v;p@xab%?gGG-}#>zyoafQXW0gaiy^E6i%kPe tn2sb|$mq>rdYv@u;z|ZX4^PgU6%5fQ__mgN9-jxY)zj6_Wt~$(69DZDMIHbE literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/heal_ball.png b/graphics/object_events/pics/misc/heal_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..127deecf9bca4227ae9ce986a5dd09e12210e274 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3%mQ9t|d+lS%pCx0Ga z{#A4DPasIYcyQ-Mpb|`QNAcH5peSd7M`SSr1Gg{;GcwGYBLNh2@^o z<&<&kQxT(qv(3q^0y+V!(25$xa#QCUM|I3%^|D- aye&Y-9^{NwW?~0f!QkoY=d#Wzp$PzO#5(o> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/heavy_ball.png b/graphics/object_events/pics/misc/heavy_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..e866a3edf8988094c8efbcf418c8abb88715cae8 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$5zV)HBX)z-sqpPF! z*|Yc6V{iWa`BPtCf9~A9nTg@v-qrvA{|73E01Mdz{y-LIfk$L90|U1(2s1Lwnj--e z^z?Lb4B?oWoS-0BQsR)&7rI*N0MAh^am5V{9aCm2dvsKGZtk4UIN@M!lI6`x=8nP} wMVoj#4sLk9;cVsxy>~MfODnLwz1N##!{Ey)$ggF!>>kKYPgg&ebxsLQ0Q0;>Y5)KL literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/level_ball.png b/graphics/object_events/pics/misc/level_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..e873bc17c96e91ec1cf668c55bb08b2373ed7a21 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&RWplZ!qctNVV`gIb z*|YcO&fR;xT=VD8pZfax5B=@Ey{jM2jQ{`tKTrn{yz-u$4x~5>JR*x37`TN&n2}-D z90{PHr>Bc!2*=Fi1O>q}b2t}T#>S{MNCro3u{p@pE+hW3p=CzD`0VQv43c-ArJXz~ z?a*^N?c_EEw!`;MZ`*!w*N)`%c?}Xzopr0PTBA A9{>OV literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/love_ball.png b/graphics/object_events/pics/misc/love_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..a37c20132eda511d2f675858aaeeb5764273aeb0 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$*?%chMjEvsi)o0J% z|G)p~e8+3MW|}60toV`{F7 uxdP1xt0sR-+n|^BUYAXvxu@1Hkx zWn^T$om%|!=TAn{K*i$ubLZ~;|NlQwEgaZBKb8yRa29w(7Bet#3xhBt!>l;7 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/luxury_ball.png b/graphics/object_events/pics/misc/luxury_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f1268193c0a7c540286d2c4e191f7541dc5fe4 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&R=W};gN9&FDirMnK z*S$6M_4P9o!~g&P4^)B)Zhp5s1{CEi@Q5sCVBi)8VMc~ob0mO*uAVNAAsjQ46BGoO zEOpG7_Nj>7KzZ-g9Xu|ZMMX7NsxwHgab4y1icw+W0*A!V2^`Ux3pP|TMHFUQL>My9 ft_oyY)d+Ot>hC<$cY5gTe~DWM4f2i!S% literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/master_ball.png b/graphics/object_events/pics/misc/master_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..cb76bf8516dcfa72a824fc3cf9067b1220c2a916 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$*?%cim8R!4}`P19G z`s~^JrH1G2HRBl>8KdhL7qAX9f)T6SZL#j?~bsb&n4I=Q_Co*%Q~loCICvsND}}6 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/moon_ball.png b/graphics/object_events/pics/misc/moon_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..13b8c195c888882b2a52738a16d0713ecb95b536 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&R>p^bOt*>L<8Gru# zId|?}#?buK^4W}xjGD&oXV2dMdC}e5yE^dXd+*57|NsAUC(jWA>g6o(h%9Dc;1&j9 zMuu5)B!Gfmo-U3d95a&>6a*#Cw_M2CeOkRia_7CKsR@nV+n>&BZn4nI{9>EWU{oSrgn^rzTrREZFEAz@&0yTYyfW7UPKoU(cXoZU)0`sw-2Q sC3r60-n6}`bmO^uk_?6#CL%X07!2?5$1rVpdkkc&r>mdKI;Vst0EU)AHvj+t literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/net_ball.png b/graphics/object_events/pics/misc/net_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..65c302d7285a1dfc20cc5892c4dadb0224fd70c0 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3%`u(_X+kx|gn-f{i@ zvuE#ndsk;BhX4HebMD-|2X|g{b+rEf|36SU1l*0DvIfZFEbxddW?R literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/park_ball.png b/graphics/object_events/pics/misc/park_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..965d2a5dfc3bca896ae8e81a493d1c73dcc1e587 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&R^+C}@UuJLb>a%C> z{{(_g!;csJH8W5C|NkGT3Jv&siQWbZaTa()7Bet#3xhBt!>l{U1Rb@1A z);QrRsIy?vlSeEgWGiF#=H@iqo^_|muU{&jsUJ=Dxb3<4Hcv~14e4E*{ T^S|_hoX6nl>gTe~DWM4fJ0mq& literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/quick_ball.png b/graphics/object_events/pics/misc/quick_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..a4fddcc134f7aa7f5c602ddcab5a3e1e303e215c GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$*|9(cz-s_BvjC1Gi zRrb#Q|DQ2_<-?ype*%?Yg109bwgW{u3p^r=85p>QL70(Y)*K0-pp&PIV+hC0zopr04HWRjsO4v literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/repeat_ball.png b/graphics/object_events/pics/misc/repeat_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..98f84b22f19e2aa2e1ff60635d87e6eb8578a84e GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&R<5d5-bN9MBTL1j{ zGcz&#>S}F9M#gMY?$?E)XV2chzdzC2yZZnC|3Do;aLZNaH@*n*^S7ee71-ulHs{zd%=jhjy!q(16(AcuUHx3vIVCg!0Cn_7 A8UO$Q literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/safari_ball.png b/graphics/object_events/pics/misc/safari_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..0663ccb2519587d0e330b2863b05cd76b9a9c049 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3%`zS(~6+`T`4{$yli z^!Bd)IzRL0(dB~Xg28Kp&z`;i|NnoWS~!qWJdz3Ia29w(7Bet#3xhBt!>lBe>UL>UYT2z|bN3#!m;d?m zCnF=Hw|8~0DEs~WiD%E=e;9B7|NnoWS~$4nr!oo1;VkfoEM{Qf76xHPhFNnYfP$W$ zE{-7_Gm{e(1gA`Q&iE!8%bMUeb^61i4F?{D9t%@YymoX^V;G|YTXeyMRhdj38%;e- urH&+=xF@xjcTIQhw{t8Vj+vP!jxjSt_6e}fGCkZ2vewhp&t;ucLK6U=%0=z~ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/ss_tidal.png b/graphics/object_events/pics/misc/ss_tidal.png index 44510d25ae5a3a036d872c917be2ae5998243a95..d4918e06ca8fc3867dfb091aab1b90648fd390be 100644 GIT binary patch delta 24 gcmdnWx|MZ80Pp|*|Gl<6^UCTzApF*bq;0F^KcA^-pY delta 24 ccmdnWx|MZ8051a=cx83Bzd5*lV{8Ny09P9a^Z)<= diff --git a/graphics/object_events/pics/misc/submarine_shadow.png b/graphics/object_events/pics/misc/submarine_shadow.png index d43bc98dc1a1e2fe0bd7f82c38749a33f6d5b86f..847a353dbb5ae0c41a9db5393820e1f66449c817 100644 GIT binary patch delta 35 tcmV+;0Nnrc0rLTnECTNKkuDq)#gqW{)foT(|4OvxN@|P3P8bl8U6wof5s?4@ delta 35 icmey&_?dBn4%7et6ZK?-8IXY2mS@(EPpv1$P6GhK3<{S3 diff --git a/graphics/object_events/pics/misc/timer_ball.png b/graphics/object_events/pics/misc/timer_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..6037bc29c7fbd9168e9f28d796661ef54c6ee35f GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3$*?%chuj@Cba{>)4a zXJll|R21~~u0FW);&pG$hn4aA`ub}%W!Z9;BK|%1%J>G>o_fE@UFgA1KYe(z8`7s_@@Tn-}G2`oAp^fpYCJ2J8^mO%eS?83{1OVGF BM(Y3o literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/misc/ultra_ball.png b/graphics/object_events/pics/misc/ultra_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..6e20e316e8000dfc42e003c17391f87ea8e7b666 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3&RW;grXxqDq5t$+Uf z$;im)?Om;}um5wk`q{JhGZVxA|NjqE3kNO!EeSvlXMsm#F#`j)FbFd;%$g$s6!h?P zaSY*@nVg^?IAywX#<#vcCWFO?PH&La*|6bs0GG;&NmS_~%=xOsv^eHje5v8{A# smf*P=y?A?L>Bh77W-=IR=mdKI;Vst03-oHZ2$lO literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/abra.png b/graphics/object_events/pics/pokemon/followers/abra.png new file mode 100644 index 0000000000000000000000000000000000000000..127d6fc2c6226e4ea3d48c68b0354b6d9af193df GIT binary patch literal 554 zcmV+_0@eMAP)OW000000000000000y87gL00009 za7bBm000XU000XU0RWnu7ytkPph-kQR7i>Kl);LFFc5|VIpuAHL5S;P$bjwZ1R>%@ z5W%#^(nEWdJ(RxO##YTl(YkxslmE$&B>$folQ6bx*REavB=doPFAhM!=+YaU@NB_H z7Di$k4cp{(S_O3Ogl7vjFlLC^p{EcJSwh^VJX^4VEh6UqhV5snNC6X`E!e=U?zkM% z5jAPalxGVzuooEG&jSgc@?R?8nzW(D2vIRH|nygkl(W( zkR_Oq)EQg1(XbOprJ?V$s9!xF1A6u^8+4(;3d>M}V{xxSINgSL0BG5H?BJVOL;j(- z114X$6*ggXa?GD`7{~3%)w4B)!;Xb_oB6W=d2Ux2t`}m+puJw&u_9w z=yRij6>jgukeS@_BQJ-RsB^2`(SLLCApRzmxt51=k@N2(j)u0qMR>$`*dn*HD_yyI zU!2ndY8@shvvP@>!oEeZtC?%dQn~3ma{fJg@2O}MfHsTFHE1QtF^#xZV(dwi`%mwb sI|n-%Rybl12=9F%ht^%<1>Uu;9|uP1jbjV}%K!iX07*qoM6N<$f`;YwxBvhE literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/absol.png b/graphics/object_events/pics/pokemon/followers/absol.png new file mode 100644 index 0000000000000000000000000000000000000000..253abb9345066a2699a818d7e04e30a4b8188955 GIT binary patch literal 1043 zcmV+u1nm2XP)Y)&K}lhOAtCAM`MJ5dVQG;70000000000EJxbc00009 za7bBm000XU000XU0RWnu7ytkRiAh93R9J=W)nYtu|zSHF`&Rsc^CVmNxmmi zq6P3A&+!~Gtn|45TbFOh-;a-a7k7i>{+0-?j(Zo@h2Lma|LKYML0E&yiQmd|{nF~>6)Qx@7jI@2T$(c6unPCTyt#jZf0%O}`0O|WU@Xe0W zdP3d%u-Z{-Ho5TskO_YSv$5~BbQ~;Cd=qr485uV&4+~VL)&EH z2~jAQtoslFZd>7-OqK(F9n3lZ?odG80GlypH7u)xs)H)QYKs&j7Q4!0}qvix(Vx088^Pk zAuhRa37Pc@MQp@HqU#<9I<8(u4JMA{@5#MAYgjbB;Zok^q!B8`q_q>9RV+bD$&@2-!z*^r;Bj=yT0E;yKNy|O?)ICKT-6P&-jB<76SqvD`*U(K zzwZdM!*>tD8K1r({hrY>;idnAuicxUzbuS~Z2i~eGE2$?x?AqaT-;B%^KVq z<8#fGE7T0p?V!A4pO_Rm&4qYqvTVY$J*TwSWGh+m)#`U>GR#C;J4U6;0xZ^<$Y;OF zuzNH`kx{?N5Cwb{DNB}0D-&dbdS5F-OHfg4OVK}Rp%iGL@hliA1$%{{ldQ~u{}-NW zAnr$|)C058+fT}PXnA>ND<ZfL9$ zY7JDrK_|mngTh@xJ!%D!r!QG*K^Fd;rZs}vu>Wo;lVF2od~y5#<6qT;v5j}s8two9 N002ovPDHLkV1ms$?~VWf literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/aerodactyl.png b/graphics/object_events/pics/pokemon/followers/aerodactyl.png new file mode 100644 index 0000000000000000000000000000000000000000..54d73ad71dc0aec1353a4ef154e7dbae15dfb811 GIT binary patch literal 1037 zcmV+o1oHcdP)FN1_S%JBU!D)#x;o;$-*-1G`82|tP@S^q)00009 za7bBm000XU000XU0RWnu7ytkRgGod|R7i>KmcMS>Fc8K?@CC?FGTLqh3S<>QN=3X0 zqO}XMy1Qif07Ze!eS{)i;;qOOJ!OyoWXW#Q0-aivOH7`8AMf{_&dIX>>t9{0Tx~Id zqZc0kRs3R6dnRzmkPaUaSv~lB@%WTTpM-7CZn#L$EY8zr89yxJ^9GQJYB=Rz7m#H& z-NYj-NrHh%E-vGih=>fA8=We#r5Hz&95tY`Y1dsF(6QBcoyo}pJU51KkZuNX+ zJdS-PMA#W&53BsRvxyph)HEjGOg~=6?d?wZIIeb4z#*ynLU84f3V7JwlIH}n8&Q)W zun{-qWxTdZdt}&jp;rPD-cThn# z1%Z#9A!h>bI`uYHFv&6`klUvyfRr`q0@7F#1UJST6Ob?_+2n|#oqg4rQmh5Obj_E9 zYx-7(1oD_XMoOt9fQ^mu+URUXf+c?w3TAs{)zGX2L~c!bx$*S1^$Bn@3*fv}bMtog z;NvJ@i%4+3eTYQy-RFI~TfPZ+mw(t7sZEaeEq9)X_IMvo%BrZVB32E_wMT}7Kt#gZ z=_%gl{ijAMwQvDT1q~)u#I`-k#(AQ)$8d{Um|pU|uH)8P?vTOX1(N(`n!bi~*YAjw zYAEsi?wau>+Pb4uZ)Q+W2-88uZWVxapIU#wV^W>wX7FO@7aUVx%(6rvBi+L)rhemmx79^wUfQq7~w zXlU|YFq1}4#sJxnTm&Q;RtqEv*_(U*8AebY2BDGBSlX9V1;Kmk1qNg*fow+NF0I$I?tCHd zN&jpdkdd=r|J8p3*p%7Ji>|-$)A$Pu>zCtyyzs9I_^Z|rZOaA_4Afkb00000NkvXX Hu0mjfWy#+U literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/aggron.png b/graphics/object_events/pics/pokemon/followers/aggron.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72691c938b0970a63c2cda271aa9021bd53707 GIT binary patch literal 1225 zcmV;)1UCDLP)K*0FD^MjQulWHGQh%FyLW4nY->pBLl7 zRa%L_Pp^j@#{L6Uhc|bxTA=bSvt%p?2&^QcKPxrs{2M1Uo zB&zh*-jomczQ4O4XBdw9TD3KIrpxo!E3SK42jK`zg zMDD0*Me%nD#HXJ{?poL__60L8FffVCFu%}rpIhUZHFU>Z_M~ZC@^19Q$twPo4%0TP zLeMz|ZfIEU@S#Bm_8Q!=`-QF17Awlp0eR)E;#b7!_S)==^agvr+=_CC4Xf5yUmsHv zK~K}|7At2jGV;wTdQAp$LMTjWk+)dUx+1-G`1<@t+d1Zb%LsgLp|G^Y z9U)AQuA(`C)2sYG9}($+*r5pqp8ugA-;#ZS+Qo|OH@{jC2n-C37Gt2}f7{o;a{~Po zCrpNVAT0~Jz90mT#hCcQwI3VDd^REj!~ds8iT&7lApGoo8NpGvpZln56fO&@7C7n5 zvgnS&D!(5=APsJL)I-Z5CZTaknf=&#ps~XcbA5E5ukcR4E^Nqx8n8jOF!ZG`FNzi> z%gVHTn`oe3Q$|HJ09(2<**gymAdVa+&n2ExCM^qUx?@u7%pEZbq?ip%8gG;*T>;J* z^&(T0XCEflwbk92VWPuKMv7-*5@zOROnwn41lj%fvn(6XJWw-2voN-7TIMq`Suz5I z$QCJDm~LvTCKX1;m;!vm<7(FfcWD$1=5hg{E-likz+A_#FQWm4az_i@ zAe5C>{rJ)pnW3MQ4a9=zL3}Acj)BYvpD^~W_`vy+6|M^AffEC7SBD5I(lxM@Rd%ph zx`}1VmWJ^qnt&s3V<0{2cEOLga)*CjLhhv~iLI)3+sLuhqGSmCOmT(cL)01rs2dMcdc|K;ohu^>jVxdC+`6=^_NCMRd5tAfR@ zDL~rbzFzTH9at93f4ZtbJZ}tc7?WmfizZb;ISJ1leUjzHdO`5udLD=iQtJ+=1!z^U noC6PLHTe8cTR+@>_0jkjX0)b~Yg`BU00000NkvXXu0mjf2dPCC literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/aipom.png b/graphics/object_events/pics/pokemon/followers/aipom.png new file mode 100644 index 0000000000000000000000000000000000000000..76dd6b92bb14c259d6e4a61c6c7949fc263b2584 GIT binary patch literal 798 zcmV+(1L6FMP)DKHkpTe#Q7Lih>G_Fisflq>iJ7^{v4H>p00000h?Pvk00009 za7bBm000XU000XU0RWnu7ytkQlu1NER7i>K)G=$@Koke?0}ayZCZKlk(4%ldP;e@P zCl9G_s3{&Z^b>TI&xKR21YD;eMUbJ8(gfPYi-e#3PuTcn%3mbra$i z?tePu+_BPf^VVRZ^#|bSBgU`tW(QeDSg4z@tg!XyLw@b6fLnujst1_kg9F>&;5c!E zni)zTt`?cmMP9y!mE7t=|!a4Fcm?cTlXw!|E-jAdi zOSM2*LHlR8(OKMVBgz83pB1My%X*j4+FLg%d#HPSci&cM1)x^iUv2fBEi0S%>H6lK cg@0JT0h#bA42cB`8UO$Q07*qoM6N<$f~t*nUjP6A literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/alakazam.png b/graphics/object_events/pics/pokemon/followers/alakazam.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1d8a91c1563e0114d599b2343fc782c075536a GIT binary patch literal 808 zcmV+@1K0eCP)FN2Ad0}Z$IRF3vwi3AN00009 za7bBm000XU000XU0RWnu7ytkQo=HSOR7i>Kl|gFbFcd(w5@;!=7!u|Z10ky}W=IJ% zr?5y6y97k0hv77% ztcNgn8}PVGKx7X#eZcfPp5Hq@k2?jZSaaTY9(kKdaW|gJ5S`;rfo3Vsb0OtKItBaO zDS-1NA;cLb8k}~0?i3*XxFC9GxE4Cq_^f@bFXcKA=a^8f_;YdJNhE! z6J4aI8HtSc*Rh4d?2W!Iq^ul!et!^Fl?M*cJGAQ?k!c&|c-NzYZd0?;y)7Q}Sx@CO8-G zJ3GI4+jG8p-_-?Rb}jOo@loir{$C4}PwpZljF9XtXZ1lLG*6PMD$C^1(W*2YnV%U` z`f%l33_c?fa6u<`RB%=cvxe)E30#ebMKI#33dKPP3590ZX)Jio7s?U(Jl+1hPs*g6-{4v}4K2qeL5KuSO0H5P#6zNZ zQiej$=!m!cedjz9#7pIJyv0#oRZ$)q;k4ncSwYlnJiF$p5#o^W+wp8{Pc4c!SsA$r z;th8hHVAQjD`?LM<84MYi-Qmn@chR`M2~kxMm2Mr0P`$x?h*Y3YcXs{SwIFuTj6x1 z*%hWFC8M$B*+6qM4@dK&bvH!rDb){U1RD@PehF_Q5DbQn5XRO#wACa;_}drP=pkyq m-j3l3KbVIFtrZ^r-}nPuRF?D}3~c290000l%Uk3D%5d~r2!$xO=dv| zJ*fy4MY$R9m?2NH8Pjr4EFhYYPFC0&@~th*Fw(842}Asq+1Xi&T-phmBIz9LH9a%$ z^Ui)K%KsJ1uiU@6y!^@nmo>9 zAkX239E~8)`-1p;E8j(YA`shea z038xB6Uf2kBl6!Qf9}Zr)zN$3zrNw)P#MUE9IdIO0SS19?}Gy<_bLOhH8UQE0Pbx; ze4a7^pn+<~t;bQdzcqvRt=2W977DPzZr-7z^EH*cV!!a%vVYv7#UuwC9fgoPK|#C< z*BOX2r~KMpteAo(=A<%0SnL8LM1ldhnS+iJmrCZPz#ZnJAa_K9ocKw^>^Olq2M5NF zKR*dHPaJ$~0Iz=s(Lhbu47ej!(ibDS*xx%7BdI%LanXK^)wkoVKy+jJ-W8o}l?(95 z@A`!xI^qp*Q{l#2F3l0}O-08J3M7u0dE?0F@@zre0OlupZtRmF5*D!~6pn7iv3y~~ zJ>v}>OGO#ZQgk#+rzLU12K=J9i|m3xa%fy}0ZwRR_pl@+IZlWd%l0~Z`zK~d7mH~y|N5oJN zi(}*F7HzVMgp7&tAR(txhgdP?YxcNJ`}p)~zB=TO8w+x@6&Uf6ctngbWRh7bMuvp+ zxg=Cs3EjKOgI8ITqpg67^L*)hrR2cfUOP@G@`l^TjXM&#he}x|*5s)CK1#rvj4NN% z`NpOFdYG^pYX9N26jN(^Zz-&3E?&w93BN=P3W0w`_#Z-r;LA08Ff9J_1ISjvyu}hJ QumAu607*qoM6N<$g8v^N*8l(j literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ampharos.png b/graphics/object_events/pics/pokemon/followers/ampharos.png new file mode 100644 index 0000000000000000000000000000000000000000..8fbb26f04426db24b892be32466383eb93773c7b GIT binary patch literal 775 zcmV+i1Ni)jP)0u5pjW;F*!j20Rg$m;qh5fff)%=VR7-%S!r1b>FN2&p&K)iG-uF%$q`1tc)slEE25$ynMwTczd%`6zoFlgaEXF%vKCRmV49dh?{x)r&DYW zy4m?2-vC^ov8LA(UIH|oEnZe!;HDl6!|a>sWLXdli_Mm&hUL4d=etIqOsBn<+iWQ{ zEU*|ufX{tuau-FcSKKv>zxz?4tx37M`ln0XJHr+2_lKps4lyo4L_SSGTwNiHU;F43 z1?>3Iu6X7UXC-u*|I^o*k=WKo!HmCQO3)^tIWwkmSpqs{JNGw`PJ?#5^ z8(Ee6_-C!XnBIqT+i#_?S;h1Ajx)ejxw=002ovPDHLk FV1noaZ;Su{ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/anorith.png b/graphics/object_events/pics/pokemon/followers/anorith.png new file mode 100644 index 0000000000000000000000000000000000000000..62e93257ea91e412c1e56dfd92dcbd1b53adb032 GIT binary patch literal 840 zcmV-O1GoH%P)If1Ep>FN2wacMCrF==UWsXK)Xz)XU>pYUcSUjtE)XdQ9!h<6j5Q+% zMUWlJIs`#jF5;l#Bo_k_6&%8#2QRyO@DRutB}S#JN)J7*ARacsQE#)SInrNN>wN!) z<;|NnO-s`a#$bnj4~0+LJkR^SO#?uG`qQ8O{ON=Mi1zYd4;u{`z5M?dC?!_EXK@$gKZJ zL72HO$+S?!uFyhuQ4o2)l5Z8XyMpe7q?!f*d48nnmS>>u!c?J3}a+?}M% zSmy2obTxOpIwGPARc1w>OB!%(2cp_ALYoqD1JyL~tws~eW}y&^ct=_!E|MKqR;)b{_=yIB!3E+4#}883T=_^4a-R|EX1u5PyW6kF z>FKJ~-FBcUnV`)~HV^r#8c@biI9E6{7_K&pWcXI`U> z&5%CsEnkh_Cs#Cge~vG;q$>Lg*jatRx*8*qH7>HZDa z7g$`ghdEf2=snkIPQov(XOZKdZOFN2Ad9k^X;c-!s;j!@m0000000000e_uOZ00009 za7bBm000V|000V|0Vb6__5c6^IY~r8R7i>KmA$UpFbstS2=Lw^FF-3wM?*GpcSZ1> z6Cit_1Zw9Xg1#htAF`%a|n1Nk4d|;~2iVW8T z4M0%ZX9Jk@Hw-J)2NYaJ#&Av0!1WUR^^zVn4=T=W%P{!E{+bmTjs=rodTQXjJM6zC z7V*TmbY@~Gy2E)_z6cbvpiaC;-etk+Hv`Ju^LzogZD72UA5rj`Lgr=h$;})u5sDIS zC>=aAaf}5j3TnA1REO868;TUersk=k90t(2oruifTNJ!?DaU^fgDuV|4bV$9#PH+g z$c=p94U{Y%Itt$VWZ1jm)r)i@Q3VgCFksv{OB%)>Pi_zejn0fuiI($;?ijE-H@t8% zsPK34ek=RI>Lb!|33$LaS!dIU{d}TFD^C_oGT>TNjSt1 pihTS|_BmJKE{-=AkVNtStzR()*PgqfURwYF002ovPDHLkV1k1nIgbDU literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/arcanine.png b/graphics/object_events/pics/pokemon/followers/arcanine.png new file mode 100644 index 0000000000000000000000000000000000000000..696ba9eff5d3f7dcb7d7b529b4ea045770a65131 GIT binary patch literal 1005 zcmVqN1xltKOF&VM3(OFqp0RaK&>G}C-F?m@zF)=aec}a;`Dan~p@u&CX00009 za7bBm000XU000XU0RWnu7ytkRV@X6oR7i>Kl|gRQFcgNpiR7(`f+E3+!h&TmBjo^& zG_AU5lthY#TcAn^R^!H@X6Px8NlP)_js>9rLp}AuAG6&5p;P^VM-|(={W6>5R3x(083bL^>!i0JXBVau$~)1RFXn1gU>qn%txi>_8t|KSs7DM1l$qOsmHe>($;uj|u3^vo!W-!#V*yfr# zIUl$v<`s=aGJHYDoyGa$%MVFH!FXq2xHnXSzq?%T&@`u8u9BDNo{OSQVshPb^=3t9 zNq*jJx*2y_3I1tw{chI_l$v$J+g6ZW_xIDCuMR`DZ3)aH$=KDWrb~s(s-ybwfYR5A z-pX0ewSJ&%lP9*?aHldrM4zH6qC^}uADYvXDOQ5=@V)=!r~_A_}Zs4;LD(r{!5dN-`OI_CZ1qxh)# zsS%}W3SeIk8?ED13yLZxBxGg^Ma31HDa0%(l7<~uv1V4}YlFyp&SBNah3Tm1SQ}g>CrUqMWw*kwrkK^#KR}V~zK2ZA_ b_*eY}TnlnUfG6s@00000NkvXXu0mjfE)600009 za7bBm000XU000XU0RWnu7ytkRiAh93R7i>KmAy|RM;OLO_7*POGv=;% zDJ&B8&c_qRS(fR6u^Qu2fiZUd5lms8sKo|OJmDBiQxjjoIOhwD_OCxqW1eV(v06Og z7|XRk-Sg~H8s~m~O6dw6kRxJoG*Oa*tFvb?M5TU+!F0y znc+ej@6tyP zVuZhTs7}8TdJ)@5akgL<0N#JT<-^SoB49u(c%s;tE=~b}jIbiMoDE7HA-GuH)6AVg z04ODdlsjFsa#0gICfO{~l39^#Am0Ixe(Uvrf%;UxQ~`Ue7o;($AWnx&4#pyU*`yUOh^q_Dk0RI^CiDPpVphx zUg@l=P621Uw?>IQqkgQ!KIZtrs;V&Zq8T9N7`V0YkD4P}<)UVlD7Qsm4tv{boMh~| z7sQSIVjG7W_Mr+RFPc>e-_4nV17f9ECHm?oBy4R*a-8|w$N#Z1u>rq!|2ou;h0TZo zh!&TZS+bsY9 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/armaldo.png b/graphics/object_events/pics/pokemon/followers/armaldo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba9f344ea9005da558bce5046ae6f19bdfd470c GIT binary patch literal 1003 zcmVG3m)kIcbq`ad`m&0qN=ap(#;;smW1MQIV0M@YGJV00009 za7bBm000XU000XU0RWnu7ytkRVM#Kl`&`(K@^6EEhG#!7a<9$E)$5$niFyZ zvYbRjtkc=0NC?CjBw#EOth~JSy5+~7)#kv1sl2A)97HA^;nuX85F*2N9!6f5= zT&jfm++He+Qn=4+X^ccdFv*zi-Kd1i%|aRnZz-kuU@wh{aC`I;jPSYX$CZQHMJtWV z?@N@jfcIyk!OPu(Nru>|P0loOJ8|ny6?nYE9y6(JIw?FE)?PeqbkvdzvGn8N?(Y84 zTne9F_P7v^xY?I+c(wIh{CXMJBf&CZxB8(H(t0C}uRR#2bmIPOUoL-XeBBUjuY9jP_!z4hx2Bu45H`~I_0ODFvkv<+4(OD_7UQBP zS;p({UNgUW_%emb%(BUtwQ{-LulY(=k;sfNb6F1V&j<}nj4@&sNo?>+@r2o)Qp3uT zoHhAMClJkVqJx0NnC&dM@PB6eGHgrp`Z{B4LuPC^EO{ZgtI%g;5N1pU_0fid9 ziS^G@)HySUkfT?SU^EcW#o^M%P+JfTBc6UAB?wp$fh9$PV5r$r2eux59v;u%z5sdZ zj>8EC17Z8~BblYD76e1Ze!*7>91KPoAJKx!P&1c$p*X*4-!35YtrD!ayp?VSBU`|} zWJa~1G*m47>AR|=-ntTGt5OgQI}GG?rnfiWpLX_3jHp|R1?;b~!UK{-iTSy^#uc>n+a1yVK)Uj%WFc=4Lhl4Jm4+lUao%2Ya46gF<7 z%_;$EH){1l(^DY^3|DTWGRs!fZUn{xuq`+ME*iJdo5;4*?i!$IS$dqAo(g4)d*L>s zd7e|dIUMp%WXGB5sqmhM)t%d@gLd89%_G_7p|Zg6n9CPlidVOT1miHan@6|&`hCZK z7U-Um?#e!%aUGTsvztdZJf)qoK=%}pQo?5Zn1tlPZnTu-S^0KNf8A|}{wolqSAB6h z-+x~dg7#0!D>t}SJ!TOHX0$V))4B2@4o~YRCYHXx$_MyIy=V%}#I67U002ovPDHLk FV1hmN&a(gj literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/articuno.png b/graphics/object_events/pics/pokemon/followers/articuno.png new file mode 100644 index 0000000000000000000000000000000000000000..da3cc960efe0c609d43035f82280495fc1c9e8f5 GIT binary patch literal 1286 zcmV+h1^N1kP)R7i=nmNAdyG!(~OY!~sWtpHJEm1@uw8=)if-lW{4m}N38OP0Ki9)%U1C~DiK~1b3pnk76eGoSVR$a^5LO>&8twxzSm8r@&cH1QQh2Tzhkk*_udoD) zu*-0>`RwY2A;6!?o~SM|O+b|s+KPcGq9STAn`w_%+i8K?gQMh6%-Np%V@JUoeK;D~ zXplfhR2RnUMhRF1Nydl>aaU@O+cZO=oq6<$5&(5{2LXuvvAKuZBFj6X6>TatKxfdV zIi+D}g04KiO$$-z>5KPK!BCYriH1L_!(XPKiM%6Ho&K*Hb28tjv;)RA45!V;dVHG- zAcprhu-ICUu@z#q=RrSRKmGca1i%SVoBjOdLS%OPZl{QL#zKwa zw-4gub`W5S$h;7*7LN0FY($-mfO;z-%5s*b*ES~MqW`VVe$m&aV&sJO(g%vm=A{*ednUJmkOtP(v zcw{d!x_?*ed^JIv1&@e6HiNzI2fTzJZkocnaA|L6I)<&-T{G|p0o*=LeEagLJ8OP9 zKd;fARgZ{F20%S^(U?Lio2Fl&Zt-eRfahX+EvtaftiX@w&T~ygU0%F*OaeRmvJ;W% z@99pFL8K05|LXQ3qav{uKz#E!3iwHB1zxhDQB9Nb#ku<5lr~dDx?8Dj6}@qKKd6vJ z%HiQ0&FAMybYfqpX*N8i3Q(U=2(y*>QxUlW6kuNmfDRN{S48&Qv7-xmv~0+{Ja+{= z%r%-E2o#ZVpqrH@XAqGgApav1k$a5<+^KY9BcI^%{&L++&iXGIsQeT8&{A)+afiwB wpZgCq{iy`G{kNHaX>aip{C~B-0aEb4Y7f3vasU7T07*qoM6N<$f@{lL&;S4c literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/azumarill.png b/graphics/object_events/pics/pokemon/followers/azumarill.png new file mode 100644 index 0000000000000000000000000000000000000000..2852aca5b39ad8005b2e36bbbe0808b29e487448 GIT binary patch literal 725 zcmV;`0xJE9P)IJ$pHZY(b3_lxzUNCxgj}e&MP^*00009 za7bBm000XU000XU0RWnu7ytkQOG!jQR7i>KlfQ1;Fc8MMcpx-&@Q}5gT6Az47lF}k z72*i$kO1{iWX&5?@KvBj15waLfC(ss`vTom#D-ERqZcE7sGdklB5CwbhAxF~5b(S2 z?!F@>5weec>|-DQNeCNh=IB&p?Nc>~?rG@6(RIC8fIYE{9fMn_GdVPQ@3`)u(DdcN z>NdX_qZAqinwV`MmX0AQfn$cxS_6o&m#5>_01A9Yp=D5lUnmN%%$3pb$}#Y&G$8c! zx=mMiwZV0JML7=ifHek0)JMvhG9V(H*#c=4=RV3Aq_ zMVPt<HvLu_8G#dJBFo5Scb4O{~{28jQ_!LK;KnOWZ{vSlb6z!~@mrtmp1 zPv^2S#RfC^7^aTqvdkS%VG4upmy|r}bZcOy4TNE498a_LJM%G%7+xyX{}Pq#XR1h` zUN`AW=Yf0$0J@k@l|i$dW^TSSF@#SL4KseJHsO*-nJhwA)S=d;d32d^$s=VjXKLf- zM^{Ww#^$xH$B_7&jQh$!C_a!y`AKlFevb=pv;i6_Hm+ntn&mW8-!ve@Ex`7$e*uNb zA7xSQ2j{~IlJ!7oC7V2XU3NTAHt&)_?}J{B@Pxlj4kslu=9Bv^#;Q*$lfR$IA`go5 z)fO|_+$(zh`v-$xZsP5#=RwQ)SM2o))4;>}icD)7OKi>SU?j2S3XI~vz+pFA8#y;Y2^&N4y`X9zm8BRiZZ*iF$00000NkvXX Hu0mjfPuoj( literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/azurill.png b/graphics/object_events/pics/pokemon/followers/azurill.png new file mode 100644 index 0000000000000000000000000000000000000000..e77fda7e851a42edb3fe721ce45e33dd42c071ce GIT binary patch literal 534 zcmV+x0_pvUP)Kl(9?1Fc`&?E^%xQ3c9tyz}@J0e@23z zQg;vBvfb(-ijF-fl3Ne|Pn$DM^7X8qgIiyr@JqvcywH4vOqw)l(xgdIod2&sts!S- zG?3<^0o`#Gt9h4bzr>YQ==dl5G z90RF!N&^s|zv41OCZV#y92>kj!wvbKD~(Ufvk*zAR@*JSGt5m0G_%@Tow%f&)h#rM zq2~QUgN%u6m{eb zv~MvX8-^I07*qoM6N<$f)5q&KmY&$ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/bagon.png b/graphics/object_events/pics/pokemon/followers/bagon.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4964436c66f14e4bd88db4aa7c1fe90d57070e GIT binary patch literal 557 zcmV+|0@D47P)K)G=$qKo|yKCm}!IoM~{!1@OY3@EvDk+5ydABE@ z_kP?BW-@8gq)GFCvg7{FKW2gE$-TvPcZ%$JQZu?hH9~uzn)pCHsfP&FWugrlM=ec} zRg#mLK{yp+JFvgA^vqj_ax(XjAn>!W4EpPU2nx1$?*#FV6%L{OTUE)#)T()!fiHVn3vaTcsuAI{ju>V$5=6E_fZ~9 z7E7`aI#|0u*^4z-;iAlRJGLwQ{eg5A`;>62=;o+-(Ph8qOjqG*t%EV@+Y{xx#9pC6;=>HD|nkSe>N`I9&&GiCWku v=UV%eYRhVExB!PPgjbB6ul;(%@juHaWXKWf0;d;C00000NkvXXu0mjfjbHSK literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/baltoy.png b/graphics/object_events/pics/pokemon/followers/baltoy.png new file mode 100644 index 0000000000000000000000000000000000000000..acad0a1c4fe329b071b33cfb5202c5715eeced89 GIT binary patch literal 453 zcmV;$0XqJPP)KlEF`dFc`&qAkD63#@%rtUU3V%k}%lS zAfU&FLGe0K`xh|(Z41@W?-QBnb-Zxk*Vn%HH9*LuNs}gBl6-TvkcGJu{V?Z>K@YQP zeKY5s4?WDPRWMVg0^Sa@8fYiBro0tvFf!&&`+8L~Gp3uB?dTUktQMby5Sbb0Le#ca zj#(XW=k=90!k;qmILwuN)dMlB1M`Dh-;8i0#QSlWtHS~oAns(9$#q(23oUD#tUOI) z-EaBZrwjKLd;`Rt0;g>Ft=|WFlGmD_EpBOA9_l4vB zjF%vA#`h5_pfP)SX8GwivFr!Q@$!E@Z2}NTo6sXjoKX3k=8%Ds`@l1P!C@d~HBbfytqv!7)*p5RGTW00009 za7bBm000XU000XU0RWnu7ytkP;z>k7R7i>K)G=!tF%$>zg9tQa&j;v`I%^d$+$|<| zAUJ)3LY7SKctoN{e4Rqck~NSaTWmOZ&Qy!KiRLctm+DE5C7o(rhtjEjlYghv|H-nY zB-z)#_O-A7sBrZc{?p64_;}c}cEC+A7+Uu%7uBHWY25Us9~ioOy)FQXx*9McH0FE> zncqFMobo2I;*0OLv2xwhEt z835-*+3umuijNMs?$s%_@de1n!Qc}1r3B7svK*)2I z%a|!sl6Yqu`~LL)x<{cO~<0`-A5dZ;qdi;SHA%KAr(u|3OE}80000cahbWf$r(Xu000000000000000|03Hk00009 za7bBm000XU000XU0RWnu7ytkPq)9|UR7i>Kl(B2VKorJr2pl0(N{H>)|G+^grAx%1 z#nsYMoC@J=>5^bIq}_^>lORQGrgoBZu~=K;{d3h=%-z#Vq0*(~+kWqR@B4^`Ae1Rn zrcD1r>JPlLhT0^RcUEtj&P!<%#YXIRtcH0Z3-U@wRa(iX@L<8c?W{(&B@_T&sdP`9 zRtld|I+C#ZPCL8>d8KMNezww>QYv9}PDciIlY%9~e5E@c(~g|cmA+36z~8<`=}T@l zSX)arD=reGJdW8bU$6%_=jmNzJL5Uk&9jTO7c*BFi{z%YPah~7lLFVh=2Q31)hS+P-h>FN3D*;xSr0bx-g000000000000000OMyaV00009 za7bBm000XU000XU0RWnu7ytkQUr9tkR7i>Km9cKyFc5~>K?^+zkd}7K*p7q(*q#EA zOC|>*3#i!|AVBg2d4py*V&I&Gjnkr*7PmqQSbDioc3|BxW(su3l-s`J-T&WNl+4&$ zyv3`8F%yiDG5@3Dw;|Pgsjvf=(k~?(c>_IVwLB(GQrg}?Drz7nv=kpZCAr7IWwAjd zv4J5iTxqNrd48Ju^;PDWR4KhP;BE&jVL6r{rO%a~;+>lxRk1``j%JP%GSv6DH*|uy z)G<}sjUg?m@}5ZBVvG=Xr7NmbVcy0-)8EZ?k)jHq39wdQmbYj)tqfq^#yUw)DSyBt z^9z8P-OoB50?d(t$J++b1=yF^MSvq&08IORecr?Xw1HKae|CbG0d}(xcb~ghLZa|m zKEG&SI{49FW1lyIvzy{#9_B^YGYar>`W4`J+BbW=$$bO3nunPWZ;Gi6@Di?Imi3p= z=Pv$!1h~5lGZ$J38{jqk0+GGn9s1nGX}9u2mMs8-@!&BtxeytikTQ>R zfGoBlX7?Mx{wev)k5rcHB*@Gh0-WIiC`Yj|pJ6%*u@lU-%CG@tR*Utm7_$&ZG8czu zV&rk(&x|-pMcH%NF`Bp*<67VsjdB#{V=+bsaW3i_8`S4o9pGztpw&5=crg~DM)ka7 zWN5^wERmzBMY$j^&UI6v1>6cvb&bzO)zb5}!Too2#oA9KVgHan5YoLT^^bF2K2LDV bUL_s@l@&<^SEFK^00000NkvXXu0mjfsLDx= literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/beautifly.png b/graphics/object_events/pics/pokemon/followers/beautifly.png new file mode 100644 index 0000000000000000000000000000000000000000..33e2eccef9e9506adcd17f6f72ca56002cc33166 GIT binary patch literal 952 zcmV;p14sOcP)5%NdW-?*;!$+v9bBtX<G?rHNdN!Klrd}DKorLhBhX+loE8-XBEB|};{=!J|sXHi2!; zAMlhuLrj4ER_pRKJBYqx*#TfMNDB#ZcJNPnO#CP&lAVWQLA`U?1u~AF?|gNV!uOcC z&(aya$Mr5JHfci|lILZWl^+hvo2Ymh6+yOxicV6vq{P_^mi}Fji5KdS543DEtMof6 z%l-SqV%M_FJ~|?ClYdm~MnL_-ah$q^!=e-EO>~43ONCU=JB%2}P-DmvLSb*^0)1l( zVn+|`Pzf1E z1BYDqA)<{5J4Z2S7$RRZx=MTqL_N@d$n*-k%*9TAq>ffgDM@Xlmm$sIICdn`)sgSxu_&})Xs{V6@sM3rvOB&GHGleq03NrOKd-h&e1IG~ z68h5Kl{c=61#(^Y9}(X|{>Qatf-%0~_GyIehV8v;;|VL2V@D>}-D(Y2cZHs#j&7!i zA?C;qXn16Q~)DLZ7!0Da7s%w$wtDN{$a zEulx3H5NJuV@DG~EZ6uz$r4lN1(B&EJhvw|i5(F^4CXig@%hvdnbSZLN6E~Tcy9B5 aAHMKmBDYDFciiuaWTi-lIs%^aBJGNyCbBI z^Rz>cRU~V@GAgGxnnsPe0ig;0Z)am;Fv&Vi+IH$o6y-C|zwbTg1rYj(kN8i)kz4*t zzFWxmUo@1vxwRl(?->qJAbA1j?*m%_#8!!=UGQM2fQSt!3EKp=!3l6uF>>~MdxtSp zKnAAd9F+)1mI2EZkm)4GIsj&76S^Vf;unSrIOJkyf3Y2Du|n6m1TwnTnlb^vJFSJG zLkL;nQ329W>kb&uq2%S^!O{r(bS;5YFJd3)&EfDl^@HB95C#vsp@0`@*lP*g4M2yy zl4fTaWT`KKkZC{$p#*}bHPGxpNJG=0*H7}g))LsJ>C<39EG;XF6!5mMFuIZzUK;Ju zirgPFzt=t$hDWNj0{R9hPLI@?KQcfYuLFMSCt>5giLC2JYjK28I9tGNe}pviJ41Cu z9ngc3!PT;kz%qaiSQ`U)`$1NZy~Z1wC9_3LQ$6gpHcZPA&haD4Z#?u^0|TRz zuVi(nXBqFB7`%N0UVKyzwXX~nQ~?u1TV8*w;@JM5Z#!VD8$d;~6-Ur)dAD#(Lx`cO zy(k1Kk+_Hfq+!Ag@XK%?a5$f}46F`#2P|4884cs)z~jVUO9!_G4gwy9;!D?2S}Vhv zvL3iGKykU`bMQw7VyTfpl`non0NyUWD*P0bPzbySHw>F7JS$Ny3H0UR*Y0uswTe z^I-!OV`>a}IR%#00$FhabkXu+e7~ORiQyDjR@2AbDbPXhYb$>WEbWKM89-@1&g)73 n1bBi!1^h1T{4>Ch_=ETfoMSxQjC%l100000NkvXXu0mjfRpNYz literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/beldum.png b/graphics/object_events/pics/pokemon/followers/beldum.png new file mode 100644 index 0000000000000000000000000000000000000000..c0662fc9aaacec5dcbd8e287df30f608037c2de7 GIT binary patch literal 568 zcmV-80>}M{P)FN2I$?1`ip+RAJZw~ok00009 za7bBm000XU000XU0RWnu7ytkPu1Q2eR7i>K)W1u^Koke?PJy_+p@Fz`bEu$yhi(p6 zager34>Hu^puxd^!09qreEuM!2%4q;g#SX34w;->lp;nV$TN)&ZM=6K+@#;_GraG+ zgX2o2S!S8#|3o(a=4r9~eWPu$Vf6F`;23T92S!g#hp1t)_b}j%YO<{8(Se#icm`Xk ze~@s-&%s1v(Rty6zd112YWs(hvF#tm*)kg$=LvkjzovN0w%8nhH{-U6-bl(0F#awq zM>o5Qce5o#v%wg#O8`wk#-oJuw^3cOw#r#y%hB5o2_?V~&Xm^qK)rgux?JO3_7Eo) zj5%E2OS&Bj#n0m@Iv=Q2SB@5HyxrrtkB;7_?|b!ZUpwAbTIaV)w{EYzl(jV!aepn* z`=lo*4d5d7l-A#c2rj0)%TmggtM_>iDrucA;)dS&fS29L^LRU1p>*}e9+4DqEPhU0 zbUsj#lyqF)&spEjliqd!NjQW6c9hn6f`pQx!Pi9eddV0OOCbdnWIRe2035~ploppi z49-4=kc^I&s&^)bk1uF&srdK&c64d<+;wF1-!nJG|2SVSaXJ7@4|%Wv0000Kl`(7EKp2J(JP3s>!ccJQ{D>O9)w{ zMOlkz>!Hx0G9ioUAXC(}OD6{#6-80W5El$3TWwM|kW8hmT1b{4ns4fsA-|z_isbw5 zEQeC)RDY8ny{G5Zon=hOVivQQ#r(IUb_oe@$(1%Cohfy0Sy?Vrf~U!;`(~byC|-*w zZgD~R_@yh@W(#GZ7j)pl3)w*n_O5T>^P%1`0%h?$e!`#3P3&I(J}6&rRfd?c(89d~wvuB|t!t6X5{rfFcN zLQ7!ND)?YCbPjATV}+QrYZeol1PL~7xQx*pv#05grcv=-fj4aA4@n6LD&udmO~P% hLZKl(A03Fc5}MI(f?ysZYRAR!b3MnA+V? zS)J(6ffrz4>$8D?EgNFIEU07s3^QxV_)2 zn8Su;I=g=GZZGh5Y9+Qhdy61Abo$OWR_u~$5lfOLYD%G>a>Z#j} zdlN~c(8-?Vi*=_McnkkOq5MT%vs>qG6K&wiUy!JOT<2keGyuvyLkrQmkb=c!X}*{H i-$(0;f38@XzvT;K6W?~h85-FD0000>48xR@yStPVW}}WS&4~>>FN1VQBk?Mxd8zINht}jaT&>}Q2+n{Xr#Ta00009 za7bBm000V|000V|0Vb6__5c6_F-b&0R7i>K)jez5KmZ0{O#-7yr9;6G=oOh#Lx*Z9 zNjw-tArvwwIoCvsF_l8?IU&JQ3nm|4LZQ@+$P_S%UCPC&Mn5nn*WB5li|-F1HZV-}>frp;E=ZEm2OCWR6!M0^1ei*#xZ;jX{G zQ47*`(}wf{*lix57_SB1h_R?E079cbo~=Ceg@uT>ufj+;I;hh1Ro#F`ZL z4mLNpTfqXtE-LAli*pN=&g`gQ%-&-;qk-4_;E!86?N2wG` z`ZC4u@I+PHX;rQ9`P?oK`~nSg=^SIf;3ISblVkZKxjU>*4bV%0t#c4Lf`YyMQD;^=1Vv- deT@Hd`~}D1|2TWyKPvzL002ovPDHLkV1ho-wGsdT literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/blaziken.png b/graphics/object_events/pics/pokemon/followers/blaziken.png new file mode 100644 index 0000000000000000000000000000000000000000..7c49d9dcfcc21d4c1eb3fb4fee4c70dace448d6f GIT binary patch literal 958 zcmV;v13~KkS@G%NX%PYGF)8`cQMsw1>^uuQ00009 za7bBm000XU000XU0RWnu7ytkRG)Y83R7i>K)xB%mKo|$$gY)1ai?Q=>gmcf56~}H8 zvUUkVA%o~5@M)VcZ&e*SIko_H z4*;x87aI?*`!(Kj+I+*Xr`}&kH{fr1&MXg1hrL)?#-F`kk2eq=Z_aE(CQN?bp1;H+}!5w;hE8b`-v98KQ5YiKtv--S~u9cK6v3k%lB5eLK?RLhD|yA9T+o9YA|iX-5GM) zM!4MGyCPt}Y*nI24y+iyqYcQ%P4_yAL+taPh{pAg&kLG%9R;$6+^fgIKQ;?=HT4>wn*I;X zK4tT&8#P=#HY6<$#M2?wG_k?uC7o!R9tQG;+;n9n3Ov$19iN=|o=(X`_qM}^h%JSh$k8ZJtz&W3{>O?%T8-6l@aU*C1`QH!1^K|@raTxtMSOKW(2BX+Gq3Z=5( z5-C&!SJ&5YDO$f?Dy<>0<_35m+7NeGLy3k3iiE&fLqwyDS~Y&3J-`F!N^HnWyrw{t gQ|W8x2L56F22EVORTprSjsO4v07*qoM6N<$f(He{yZ`_I literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/blissey.png b/graphics/object_events/pics/pokemon/followers/blissey.png new file mode 100644 index 0000000000000000000000000000000000000000..ba65960e21bebe744dedc04cedbc504de68bf2df GIT binary patch literal 665 zcmV;K0%rY*P)K)iG<^Koke?0}BpH<}RHoLxxT!G6vH{ ztq<3tbBA_KcWjZdQJ8#n> zNwERG>CH+fzRtI@6|d&ovfL5LpI@zfy)jGk11Evjw~%sJ*Bdk~;_>2%U6W(!Snq>Z zXDo#Ex-6zz#$s?Lt_!2Rd?G~agJUmd@P1h}P%J}M;EC(fHTXd>vQJ27EFUHSUXDby zJP;iMe+@90>5UeVsCX4czRt2BPXX!;>K1Wm7vLDa&}mO=Sujtn!M!n)N2xVXEOK-h zuEaxy*LF{9^t7n=`HoG`PsLGYLns$j%aM#=GN+5lCDFTc^CK^Kv(b>Kgu2&jDOjOZ|HdH zl>dR^d?w@RleA084%@cTouk2w_T8$QYMK5s+kQ-Xf9XztRP`>cywY%b?lfL=!MU^C z{PFrSRqC~FAmSo5ja#I(jI8^0OI>c=_>cJw&nTco{rB}B00000NkvXXu0mjfTW2<> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/breloom.png b/graphics/object_events/pics/pokemon/followers/breloom.png new file mode 100644 index 0000000000000000000000000000000000000000..a133c90b616b076699bd40813aba6978ffb57ea6 GIT binary patch literal 659 zcmV;E0&M+>P)K)3Iw4Q5*;GH|3@fZo0A1LAxCO2Tnh% zgIxZFLH3w4?4Un{9w#^BV61 z+~u4N16V5zFE~r(+YZ3$gL)}fPq86fKCBdY(Uru&C-nB`8 z*h?8VPLhjM7#?TbZ|)u+kIa;_XjuFG153=e;T@WeXdR3gW5XYBUK};wrksU$*y=SW zg0nQI;(2H2aL!&yGVv0Rw}Ez8k3XA^ah88Ly78|$UXl^-ST?58=3IO7RYtW|k25~e z_RH^Ghj;8ZEZ^pAbXWFn{jwa+xOBt!x9AO?`ThpI;Y!omi#QuwzW?ze|HX7;o=Ul0 z&sph8d6SeY_Q192{&?WV`F=O%4_mP t%vkJ?4X=a_#L$L@TdZm4=e7H1`3(ShrnOUQO&|aO002ovPDHLkV1j6YE&Bif literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/bulbasaur.png b/graphics/object_events/pics/pokemon/followers/bulbasaur.png new file mode 100644 index 0000000000000000000000000000000000000000..09599242521ad445c59a519b971f3068d18daf7f GIT binary patch literal 552 zcmV+@0@wYCP)FN0a0Rg!&89`w&k&%&!Avtkzaj~(n7kf@m00009 za7bBm000V|000V|0Vb6__5c6@o=HSOR7i>Kl(A~VFcd`vnT#fpAq4+~i$b7uYaXV; zYlrMH4@##@{*9Q1g2x{jA1mcq#`Xt4uc0pD$iuW0Im`A- z;^C$+TVxCCipyk`gds#8E@Bi9jCIRhZVcyF#%@b5ld2inWteFiBkow%Zko%w(C3Ep z_@m>Q=A)@RHbRO@8E^?kB+cZh0_gVt)a_0bd7+xG69;OEW<|2VJ@4- z!U}L$KM*&Dq6>Juvl*E-oDXw}TTC%$?aW=)0WYtZZiSc0mGv9hT%>1w$2Zw-k;~ff z`3vzZyi9LRVJkrM&(9jDnUvQ1x~vV3YGc6qiZq{0AaKrCiCM3?wFqPl2uasibJ`CO z#~7sb2AYjw0F8u?selAd)=^P_1n7+jDk<&5Lnk7R7i>KlQC->F&Ku0@!~~6@Rq4Rpq(7J z!NqtD=*A|#7PNy7lk?P5_6p#!0uNnWUoxCeoqO6s50$$QD|l|#u^$}j^m-x+o%xl;ueF(<Ty4;8(j`LQn$-Ama2J=X+bk z%wP}9TP9RgWe5R@tuAy=jBX4wQUH$6w>SAk0K@^9fKzR_1=au@&`hKq2;$k81yGCJ z0`hb#?6@&Jf*N&zPkXu-)cqAwN`|{%-(O|+5e5ge0F{L#Z2|U3@-v!^-3b}PGy6jH zj_$TMuW83^K)*IEJ(t&$I$o25c$HRdzsAjGF%&t9z$6Qw4Ky(DnbPRwL+V>~M$cUUk)rGw_PUar?m`$ga-Ai}@vrGvQz3&3T= z(tcT@`6?k)e;K%>F9Meh>*()QdSzruf6Z`JFV`OeF7H_7cL**30000z>%+xcB&00009 za7bBm000XU000XU0RWnu7ytkP)Ja4^R7i>KlQB<&Kpe#x*l3uv7)@AMP z;U-rgaUz1zG`2~wjBRu{oguqb%=r86OKg{!4xtkg_3U67J7K~{QLB(u?>v4TW??e3 zO&xfiH$Y2SeWi?xS#<$NO`$+yw&E@D`d|dh*nzq?0IOBV4uJRKW@jQZ73p4D;P>?Zre@(*fOC%O3B+$ZbooHDgV07*qoM6N<$f)aERkpKVy literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/cacturne.png b/graphics/object_events/pics/pokemon/followers/cacturne.png new file mode 100644 index 0000000000000000000000000000000000000000..4005166681b39a2457958f9bc07b40b1a9543e4a GIT binary patch literal 582 zcmV-M0=fN(P)z>%+xcB&00009 za7bBm000XU000XU0RWnu7ytkPyh%hsR7i>K)iG+rFcb!04catms25+x0XLi-lT zWE`Ph+dHFpfbrOG2yKf5;Q-^g@+SapY9WXCW$LHUc14rv0OPdqQfOO6@+`0SJr!OG zjgU%{bSkfPoKTTDDYSk5&JIXJd7b0bHgq~dBQ%~-nk1Bp=o;r~YA=PDA5&;sBoma< zAj^6jbee>dQ6PjmrNB+e&k?1MQg&L+0-AMM7GWS%bWVYrdQdd{h`P;{$jVN$_Zc%z z3f;WcTVB5Q+2m#2X}qQ3)=8o5uHcM@++AT~CV!ph%3ClrVVgQvraBKen6)eF$WP}T zSH?RFp^2_|ZP=+HVSDSUoj}){+EjHr2(!I+>r+GXq!5 z&}+R~whgh)t(_d7#~xg1a2SnrwKPt{a;Nkv@^Za#{}XE`$GY-1CDzJ+161xL|8kyL zm}qIFpKl!(eonamIYP0!BaRJ;`;D;hCMNH;H*K Uvmvmtvj6}907*qoM6N<$f}aEgdjJ3c literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/camerupt.png b/graphics/object_events/pics/pokemon/followers/camerupt.png new file mode 100644 index 0000000000000000000000000000000000000000..89db8f6b89a7686d4e90403ea9d83b0eb6d5e2ae GIT binary patch literal 971 zcmV;+12p`JP)z>%kQMLp00009 za7bBm000XU000XU0RWnu7ytkRK}keGR7i>Kl|O6SKp4hv=pZl{l%>I)a+F$F&^gc! zCCy+%vlQ|bf}s$I7ah_ft0p>2j)zjHO`V~kP;*%vw-8aSfhNQmng;3=t7Hm>5PycA zY@H-4l09@P^s!{?r$5j0>Xm#4z<>QK;^y#Q%TQp%v!@zm`(eK2 z3>vE<3t&7sP9J)PwBPPDPJ0-tcNu^iTwdb&C2TT7##deo#2RikYNp7JGgesuX@A{+ zuy$bWdI3}H8Z60tW=j-3!yCq4i_9E``4z!PVBo!p>a=U|V=1%d)ck$TNtt z2@kZgR_=+D9(geqG`l0uH%#bnH zgknER21(X!B?+4y1ob^pfg1QDJD~890huAC@ubAPm z_zJuG0z=6NGu<}yP+;X*O4oIhuByitLdbT%e8Wz9bHfj~-rNLs5a=2rd%6Hi3Ibi> zVbL58gG=h$*iP5C>w#f-j^pS|5e^&|un{U?W2yjG_3KSAqAPP4(X-Pdb_wTCJ>i;y tK-ch20ii%|SJ-BJc66Rj)Vu;_=?^M(N}disXx{(;002ovPDHLkV1nrxyF&l~ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/carvanha.png b/graphics/object_events/pics/pokemon/followers/carvanha.png new file mode 100644 index 0000000000000000000000000000000000000000..ceba6596d6a9108f5513bc78538d8d8593a0442d GIT binary patch literal 768 zcmV+b1ONPqP)FN2YvAHohLCHBG`B5qP*&zS`00000zTbFg00009 za7bBm000XU000XU0RWnu7ytkQc1c7*R7i>K)IE>WFc=4L3)NXzFjCr~+~SgvrB*xK z)I%*Gx+G~F;8IJ;N$G-aC1Gy~Pbze}Q!+)jaRXzAlmYTxNSil1#XS}lR7)9t zar}Rtyf^?H#$g=B|1$=APr&?;`OZNb0f0JZ& zm)ZXzcAR-Q;0mC`WGhu_V9rhBoi4M#ZV7=~HzK~ModyaW)@(j88I~Ecd6Vi@VCMTH zE+68f345sRai8?NGMj9!60Hi%JZ@I)x)7gF*qH`qdJ&Mh4D1j>3Gd#76owk3lwhX_ zEd0K_+*q5P{=_EOUTq85vwNA9vS5ewZp8w(RRP>1q>G0|VD6KaTV8&orv0Qn9%Zl9 zNN8rZ$_x0IOyjOrte`&b{hD;OY(K%#Ca((2{k*yZK-(XW$#L(qn&m++H_AU$8e=>~ zXIh-kpU2pHWMVDZ&QD)=PP_DR8JPQ-=T;ToUM!xzSYDJJ=FWF~dWYBA6*9x(4iUXJ zP>4fgyP2IgUq4+U-zowN&#HU?7hk@8UtCITG<7Syi6h-c`8!gaFbM-Ydq*%_epnjG z+AbDv%vKIx0Gy74=%p^P?E)*hi37d-%77InQBc4L9VhgXqCn+~j{18$)q@y29OWCl(v{$v*(4DLn8U y|4jiH?xE5YCU?9&cZWgk5sE+jS~olXm*Y2NCiJz(&hha80000FN2oF-d`eiBVBexw)y~;n4s900000AygLX00009 za7bBm000XU000XU0RWnu7ytkPB1uF+R7i>Kk-=(%KoEu#FTFNzAOsA(`j_zm0?jkz z>d1NxTFf)#8Yu1Kc1D{xD>aJHOWE)C?fn0&va3}f5C{YU|A?pa`Lx)l!g|yI<>`Uf zKsM%6Wu*ZzO6zdeYxT@?;%sJFh@b_Et-}o+z7xl@%I%qRd@pqFfX6O{cve~2$`>$P zes}p?2g=RdcQrhR&eQ|we|AMbQ`1Mj*C*ujrLT`uO_~S`&X}saUmFVLQt~kcl$@os5 zO`fi@PB)K=VK&OL9!Fc1b{`~yRgaXoy9(JNBS{Uey2QsFK3TNDJdx_DSsC+{#}1}wm^qM4e#&GekB8R zSj>m_Xjb6aTMNEpyzu4)8(7-d$`0)%nw8K-_76H7>XvmyTFl@ScAZ`5{s*XG$r?xt zsN5yI0IE8)Pt*NS+n>4UK3&jZ`@CsbOf2o@4B!YCi%EO|vd^m2I=8eN*M)Gd^JpQq z&x6wCma%woZc12`EB6t0$Ud1q?H?J7wK1=R#s29t>X7>=^E~D(-*=>?nZ_Nm&$c~U z&g+>Wowdj4#n}C!-SBQ0D;Y1t9+b@T{>Qlj<_Y4wQkdl|00000NkvXXu0mjf?DVwf literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/caterpie.png b/graphics/object_events/pics/pokemon/followers/caterpie.png new file mode 100644 index 0000000000000000000000000000000000000000..af99246e6bbe4de4dd1318c1ad2e9d44081ad9ad GIT binary patch literal 606 zcmV-k0-^nhP)Kl0R$XFc^mgh681jJ@k5;Uqf*>|AD*9 zcwqWDj?{Q>J2dImK!}_v=?#rCwcOxbK4oQDPF|^vxk9`7H|eon{T@3JA$|Jv>C@+< z@})?>7w?(>okqoe{XYk?BERSm;zGs0z;EaC%gB!bi_-Au3e)2>@ZF1ponl7h9;3Kt2NW*cPI~SAwhnJZcM7Xeb5Y`Ej8opi{|E zHjrl{DHuGp0xjGbg4y&8X5~?#QCPEE^J%j#ijnV;?V{b(LjFV!q2)A9N>pGAQK4cc z(Qo)638%~>RV&cK!59n3I)ETt9v7lQl@$Y@HS-U_Y|T8=U$lJ=f_Sn=DU^I-2KmA^~FKorN5;anO)Xc2>5#aYrt=u&(N zqC*f0YAGm4LGeFua&U1A{(#WVB6V>vh{i%fRS0Cr;{Ri=QSaT$4|NfQez&`K_dfTz zCXJ$uGtM}Fme4CKYhm&3?*YSVF<_za0DfULj;RdG9+S=_Z85clx`OMn5wA+2Mx{tA zm%YhbG$k3a$d6l0nz*Gn080a?Q4FxGo(w3XH7p8r-ID>LN;G|_8-jkL?{j*a?Jqa^P6s#{>hu1_{k5kN9>=J&he5l$H; z4UWTb1~s5Ys_V2|bVZU;=_!0cbZV4L>bhlNC^6D|i)R7)ky-y_v;Wmovup>QZe)bU ziI!pPqsNdMRei&#`gum0;o|p-8}$j`b+qB%y)JUo&Mhc1QX?PJeqIF_K x{{D$kR;W=b#E7J*_Srx_@h|H?_(cDsyaT~C=!Q%gjfVgL002ovPDHLkV1hh=BH{o5 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/chansey.png b/graphics/object_events/pics/pokemon/followers/chansey.png new file mode 100644 index 0000000000000000000000000000000000000000..60b0babe58a668f7f02abfacdf83fae02fb4bb2a GIT binary patch literal 558 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 Bs@wno literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/chinchou.png b/graphics/object_events/pics/pokemon/followers/chinchou.png new file mode 100644 index 0000000000000000000000000000000000000000..abf39ef13689c60fcede09253b6cfcb058614c42 GIT binary patch literal 708 zcmV;#0z3VQP)FN2wx!C{!00000wN3G|00009 za7bBm000XU000XU0RWnu7ytkQI!Q!9R7i>Kls{|RKp4hfIIKaM(x9Oz(}^n3E{YB+ z+&Pmcdk`UXIhvw^y2aq5YrjF)t<^yaq~xxGvb21AoPu1> zp`9S$p&#B<-GEntCAe##s)?ho)~a29~ zJ-%%Ksx8+8DY4cp?>HF++!h=iG~aN4?K}X$XI4XZWNug+1m7F*--rqy{y|OLMd0V+ z1q4UZa2DO(u+$PPg0;g+m*j$V20acArf{8$yhbfGu?yjPu@E($Ri60e(V2)-OK^AZ zvWzkpLZl{C`2sW(6Y7*4qhJiPwT>**JbK*dOwPn*VhPSdmoZ9mjDoQV6{9w6GA|&b zi^U~PM^l~hG^6u5a-s1G4JhyQ{PWOZnQXQa;@vWpX@iW`@Lgnry8nzbO0$kh zv2p~-lk=WI2;=dRuEwbj6*D(HYYkp0!TlbG$!h%3{u6m=Ge+uPuqFM#Djh0ju9=(6 z!T*AKS+ec6Xf`pELtLH2dxJyv$YzXm^HrUAQ|nNRpPIKnbmp*`lu43Qr*)h1spQv_ zHiDCf@pG)+()Z7*uAyuuiaSA%dr6tVzTuRTy*7oQL@%qq1to6n_q)<= qPuN?KeY=BkyW9N6q%X(dztt}Re6HsV8}6V00000Kls`+uKp2NZZ|im`(zUsYE>h|pr39R; zi{O$%=qfGT;1EcP+|sF2KY$3)O`%}h&Cy8yi-Ic5ag}g_wud*6r$|&V}*4j8$d7EF=MI4T}mP zPl?&J^Ld>ME%A|o&0P5vBq4aC!N_@42*0?tm9-ZQxKI~uC5w4+zbpg}rPOICguL$7 zTxK;@!a9O-1Bdpyf)G&7RN%Of4+TP)T`(6i;q|mGM7qd4^vu7ar%INDT1s~z^yXtp zU&e)Lzs|gP13>%!b+@79xRA4JKxoXy08GD;MZ)|{zanzDhWmH@8=~Zti#lyXn5&_8 z+AtSgmreg-Ul7V1X7Bdlevnf#z|gjI;Q<9Vf=n{JRPdJiJ?w} zL-si18RJRiWFmZqGKV+p1iis1uVk&9CuFzyJs(WQg^y+P6^^>P!J~NaE9^mC#UPlr zo`jmr(ISBvvW_uAO2)x+Y$7s8A;n*_{O8^DC;sDn0(7*Weg%>Jp#T5?07*qoM6N<$ Ef-*S=W&i*H literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/claydol.png b/graphics/object_events/pics/pokemon/followers/claydol.png new file mode 100644 index 0000000000000000000000000000000000000000..45cb9b9f023554a5e38680f5b01940ac501cc6b3 GIT binary patch literal 628 zcmV-)0*n2LP)~jiFsMUNqO11S?THdSy4fWDM7ip!Rd){0RaJVSxEo@00000@ADTN00009 za7bBm000XU000XU0RWnu7ytkP>PbXFR7i>K)Uj*SP#g#FO4bZQQ7SmK2{lsBWF^)E6N0SjW^g zRINpHn^j6|9+FVHGc(kzwazJxNjV=mJ4%n~`;@4eq!)BME!Si7Y^GWM87kJk=lUkM zBa2KyoFvmw#rh}~f>BXoi=EFpaRTY&bz8;elWq!e(s^9GAGWw)54w{M9Qkb(oBkPe zx|5+N7a)rZ=C9EkzdHDJT5dT5 zEC4Gk=V9}e@SxXwXEAvr&K-xBeY3IFDEn6KSbpv9?z*ehdB`HHak5eFgxq?0!g}ld zS}!bn-A!G$GE8?FRGpmxfVzP}SZyJyJ3G_E1sv73i~V^1ffdJo O0000EWic{xe>!NC9k000000000000000000007!~;;00009 za7bBm000XU000XU0RWnu7ytkQ1W80eR7i>Km9dVTFc5~3XxyTG5%y*;9OWrjY@O8> zd4f~gSh<02B~WZ?6v4c0#`c1ZW70)RvA?tu-`M_VY!6G8J@n8+5B(p4a{G{Ct#7-` z>ilDZpD(~GZaG}bJr*rBd#tt4Kd#;|<}7=<5(paWUth{3KQoizYl?Fsh2H@dx0p@n zE73r#%PzM}ZJKMOSw3Aai(AY##)imC%6+yS*{UDNg!|hLAC2SG9m@p2*v&wfPW?H}85DphkB2hBHBY3mKll^cvQ^hkHC5pqSeAFri=wFTSQLi@n~5~_{*EJd zD>$TrgR2~m%Q&3gKJ(AN;Q$)hvvl+J?g{Nwn z8?&ppF=?CiVsdR6mxKy{bPMaEkgcHt3=_=g*(Ffe5(Y8HYDplJoKc}#6FAlu2JU;+ z_{GD_37Tz!yh5Wefsy|^QL<^|-Owd8?B*-d8$&e@Do$`Wj1zbk>@J%u$pTSh9&jek0 ogz}BS-v*;8dGs~=Gw@IK8%A$vBVO~Bi2wiq07*qoM6N<$f_51mk^lez literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/clefairy.png b/graphics/object_events/pics/pokemon/followers/clefairy.png new file mode 100644 index 0000000000000000000000000000000000000000..3ffd61f676a6904ad414b78c80a868dd9e4e9174 GIT binary patch literal 512 zcmV+b0{{JqP)K)V*$lFcbw~du8%vU?5rW;DJ6BL^^}p zzEhx*2h@e7i{GHioaZS7HJDpFojO$FWXb2BdofBZ#GXBS_U!pb8P30WcwnivliX7> z*z+SxKqZ_F@-T*5ndcBWz>-Q?QUNpxJLFFk6yu)Pd$`u&c}!Rwd=6AT>I`VfugBxQ z75sp+78ny2!YN2Cs-&^hIl$TEr~zhPGZ$ z%e@ThUhBR}dMaqzs*YM}*XpnV^O90)U8}SuK~utct?NAeg)!f99Eif}G3%&&4-0;F z<>r2&?mjOs9m!4eOZVeCjohz-l3+vpU-fg~PxA%CZMwMl@5U+s0000!P!}10RaJ-Sz%!@L2-e(vANkXF;U^+@kvp65;n_*00009 za7bBm000XU000XU0RWnu7ytkPH%UZ6R7i>K)3Iv9Fc1ddECJ)~pcu!aXuwaC-510<8=@$7UF&-bu((HRgqsx3l_;3Tw zB75@6aYJH@(d=cpB6B9E>28nQH!!2cjfgw>-BZLBk?&r)OVu`f-DdGj<>9W~rNDVL3TD>FN2wvFVXn+a0000000000000008gM_x00009 za7bBm000XU000XU0RWnu7ytkRzDYzuR7i>Kmc5UhMiju2C^Aat>fGK{SFTKg2wkN7 z2PZ~&TeL4|s+?q*RVwx{!(-aW(ypsWXy@?!l^Ny(xOKdhlQf~)9}j--y!qR zn+yM8Kgqwf@uK2yp5Ri*%P%V+^%b4~uf<;^Ac)mv1*{h36>jr@WGkbFcI|vwF$Z<| zkwb-IxWaKB61rK%cTHP-wPMbcs#nqJg%m~P0PBVIZxfI6ACf7-9Crz@{+o(JrLS?- zE!JTy8!n>&r@q@9gOrtwZ3yaNF>#m@6iYnbVGA~{uLN zc9Sln+tY`ts^0aVs1@u!TRs~BPGh52t`>qV031s|D{S?&RI~8@#Fz!2Dan*A-4Wsg?aewsF zRxt6P%kX2W7lviGEVQtoF`I=?H--o05*lIm>IRR?I_UA$>p7p^9vdxum^bh+wd~?g zH@rL#Y8HN1Sx)C2H5~gR;tA&yAl1+x#byzfh=mvGmMpshwNN#=YP^tihHLZ<1hE)T z$J0@9-$AMR<4KJEND*q(!gAh%iDNJ1Y#4A1yzqO+^F`Pwe!@OQFl}6|{Lo}SYk_l71 zT={}ao}Ll4c=@kk9P2g4$dmeOj7VM_`j>3(UHok!HC~N>$(O!=?fMJIOE>G}E5VaaI`c~KFekx}WX5z%1*T!XN|00009 za7bBm000XU000XU0RWnu7ytkP&`Cr=R7i>KkU?wWKp2LDq}~I%(4K;u?v#3y{(woG z#@0Pqv=&b-NP3s)er5ka&kO#6g%sI2?`{8FClhtP`6}5G>CN}#Gp~8xNj&e6Lk>CQ z!)flx|INew9-I*wWu0_%%jvFT*o;w4CO-_S$SeKhY&~gR{7xD9; zmDlCQgZp-r%>!yQ%j@#_?^%etcU)wsba*{(=%09;a{0hasTr@}iUFSpDVGl%t3M~a zf-47J$-wK5ftJc0A?1pJ`23fW$VItGBA$Y_L;}Of_8?)}w+d}WDl23Dw61^=`IQcp;byIH_+g};fA z3fyn>^-99ai?l*z__-f$`ZM?e&&&=OK3n%p4s&sDbxf!MX3vY3g56CcB$Ne<<(i}3 zfSodSWqZTPMad#s<`X0o*TV#}z7g+sCO2IxTz)S&6x&{m|NR|rgnH00U-w5@|MC{; zj^-B=%tkRulb&aVjb3^=cKVp~vF-hI{taK)&(g8;0y>Qz_c=Zgo)+RhirhZx*uEdR oHbD=JkcJLc^zL7G9eifq03tfj%7Nzl*#H0l07*qoM6N<$g0hPjvj6}9 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/corphish.png b/graphics/object_events/pics/pokemon/followers/corphish.png new file mode 100644 index 0000000000000000000000000000000000000000..00c485b72de420b9d940d09cc3d43596a2cb7cc2 GIT binary patch literal 889 zcmV-<1BU#GP)Kl|N70Kp2OwEUDCEL=1H30-+)cQoc!R zMJ1jX0%JsLndEL_2pw3e5}~6oA_Qcrl$yvMERb=MyARd(J)iAM#h;<=mUnTU+^n7AqGz34sb=FsuM({VmXm#Ycensj1U4drdK$R3elbp9QWD?F)%rE+jMr1pX&`}pA zY{3L0gg|<;)f|v+2RBO{$E717A|up+$T)x}c6k!n0mxBmZGj%{fWQNp5n>=RZR{Lj zL)CE?g%IaPh!?|+cPMOJggh;8AoA3;ZYW)AMT=rMIyXWL%=lNUh7IFkbs2;wZ!;kV zYF=Kw#dS_c7tN_#`hZ<=W8Z|k-QZRI$ML2SVxZ>A?Y3^CYTdgM;=<2_7^r!_rXPx_ zSeg+6GtsvLh}!skFTUUVMhJnLSuO8c@Ep;1j8F$6?`4CNZ}k}=@R-d85c;LwKdu)- zwV~O15}4yS&AkE_G@E07|KWZ{2>h^P9hnXYm)2HSq9?h+0^bjoBwIkJ!n;`Uy z_Y|17Qr~`W2@ij^wnIBWbJ4;ibDG>Q13560+4!2b!ducy8fFmKQ(jUq_J?fT`QVG)o7z_lU}gp*E3u_8cn;3N;MIjNr{rSKtf zxqIYVJ0MAL*E@)1xq}!u9a_Sn=SA!ZP8#b+PU04~h&ua;3#nFsjHyzj{2hnSz|s=J zQxjR^6gdx&e4!Rm>k$d=U}`yA3m+>xP$^|k(43FsRoVYCdaaK;|3m!-sM5b-YdCKy P00000NkvXXu0mjfFmQvd literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/corsola.png b/graphics/object_events/pics/pokemon/followers/corsola.png new file mode 100644 index 0000000000000000000000000000000000000000..62c09dd48a8ea71c889aec2b056b740933b11038 GIT binary patch literal 669 zcmV;O0%HA%P)G`QaS$QEr>4Bl~slnN4fx*$~000000000000000VD!{G00009 za7bBm000XU000XU0RWnu7ytkQ6G=otR7i>Kls}8xFciQIC#=2w22JSF?e3t%Euje8 z`UtmmFmBw*Lx|&yCCC<8jqKOCG?1~}aK&G)k`wEX8*^|_=#aPltf%*T(zES(*SN+t zu5pe3B=QmCY@E?Q$*1{+`iD`q?cah!=A?}{JPGmQvS9l&c2@8)A#Mgi(z#tBou+!& zniJ4M35sG^9|E3!ms79*s~*)EzqWHN(cr4<)vhG+607SJL9!McTdlq8VOdIR3re|B&?|?^mY!_4Pv!$$&=p#Bp zEOQ}Y)*GNWcE4`QDNr-hG5f3cvfzAuQHW)3TU9#w#73wB3Enio>M8baKJ2^wOrsR; zJ2nW{RabT2Om|~e1;dBmY4?##v3K+4`T5sd?=sU*UDwU6>lksrVgAtF&!!p8Z{OWp zd(e~Qr!$bd+1;(x@R<7z3q(BfT9*GT^PjxH|2F;r(uDrFd0ap*00000NkvXXu0mjf DWW+L? literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/cradily.png b/graphics/object_events/pics/pokemon/followers/cradily.png new file mode 100644 index 0000000000000000000000000000000000000000..e53d6af1c5ac4884544cc13360143cb5d559de99 GIT binary patch literal 1085 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 O0000 zefsq2^G`zZY0C-N zCKyWpsR3HsQkYbLL==?W9GurjM+y^a0#MPxew{Ncysnl>Fw9f79hLSVlU{kB71i@U9*D53j2?c zl;{bOJYdwZ4g94c#Iq%q8-rhFZnwD|L;mmB8>~uWXJh2cr zuwfj#nSwz&RalR++2;A89oFNUaPyp@)3cC={Mu4E3ukz4?aNcx@wThas~;-sxf?J~ zELhKp$Gi*NK)?gG{R?P9s)vwITi*oTV#JjW)Nx|z&2ZkMEB4-+=BGrA&!i>Irue~^ hFF!QjU!C+H@*Czh^R)5dFzx^V002ovPDHLkV1hY^Y2^R_ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/cyndaquil.png b/graphics/object_events/pics/pokemon/followers/cyndaquil.png new file mode 100644 index 0000000000000000000000000000000000000000..df71eedac9d1eedf2cb2bdda011ef0175a2c82e3 GIT binary patch literal 713 zcmV;)0yh1LP)G>fsQTfqfQDLE>DJeNYQSqS>VLuTP00009 za7bBm000XU000XU0RWnu7ytkQKS@MER7i>KlQC%9Kp2GuA}R z=X`8+0B0l40nat6HNH6@9F19NXkByZU}YVv0~_j@4jV5Bt8}!Oh~p?Mcd;mrMF4P3%>95#82^oG()91xd@f*-U z^ZfR<-)dyTPPevFySI=J&dG4YCTTIP^Hjmwi=Ex%4?IlM^#=BA*AMo{>^OCvs_V79 z7Kk(^+y{+ZLb`C?C&X12E3SOsF6&Ks&F)qLR*(AbGq|wgc8|XU!z16XyrB91F$i4! v`Mxs!_2bot+J0?L{@=`vUTr$J@Xz!c`qCwmitc1700000NkvXXu0mjfwzED+ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/delcatty.png b/graphics/object_events/pics/pokemon/followers/delcatty.png new file mode 100644 index 0000000000000000000000000000000000000000..9896fa83684d545537fffe634e3358ce596d95aa GIT binary patch literal 761 zcmVFN3D(Scz}i2wiq0000000000000001)Odo00009 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/deoxys_normal.png b/graphics/object_events/pics/pokemon/followers/deoxys_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..000d6ec5027b314ccda4155b783ccfbd6af8c5e0 GIT binary patch literal 897 zcmV-{1AhF8P)>G=Tx0l8VxL8+O!DJdaIK>z>%f$ljC00009 za7bBm000XU000XU0RWnu7ytkQ_en%SR7i>K)Ip2WKoke?!OOxs6oRlqa2NI@h#$ZO zzs6J$_t3*mBoe3xGZ2Uu!Ot;4oZz@AtXF&4gPwX>!2|+X+LKUdKZ7$#)6UE$^`f_Z z^zuuZ|Gdn+7NNVktAAAobie6%zyF&57SnyE`1!csG_qE=EGxu#IPUksImRC9Gn@~Z z9%frT@C##H^gEV38~6DW#=f3rTb7U=VW0IGxa3fvZi7Uizkp?VMVzU?;DzY6;JFIS z1?%+1cZ|udxm#ARbawu7h69XQmw}L6E=Y3HytwTzGd$D-Z6lO9M`Skp5jaPz%W&<~ zf!9unIt-VyVG-^EZ6h`F#b`FY@(S8*8dn4lgQ}f<(=fft!*DkNw(CkiKAhf9S)U;z zgaq0l>xSul9(&r*TCQ7;K0lkDim15 zN<0y_KMcz!lgbFRtrqYm&dG7w9z7+dffN;ui`*NV4w^H%x2(#N?b2+^xh7S)I9XPC zGbIPa&vc_qo@Z6W>lHPbDiZOs{RTsZRbU~~Hc&InH-YBV z*hVrb8zW=iEJJ|~WLI^d=C+JSJ1k57bEd4{5UEeEGb_-xdO{xXJ_~iF*XF(3{;%~1 XwVfML`xDa%00000NkvXXu0mjfWdfXl literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/deoxys_speed.png b/graphics/object_events/pics/pokemon/followers/deoxys_speed.png new file mode 100644 index 0000000000000000000000000000000000000000..01817fbe85f58bd1e5a6a37209e07716843346fb GIT binary patch literal 898 zcmV-|1AY97P)>G=Tx0l8VxL8+O!DJdaIK>z>%f$ljC00009 za7bBm000XU000XU0RWnu7ytkQ_(?=TR7i>K*1>AqFc=4LuR8>E2$VuMOq$E?gUyF! zeh;ru+N%SGLQnB1w3plhdx4!4%#uuv4co4{gt8rqD3q}n%skT5ptO00>62v1abtI^ z^fnO+KdJiuvMnnyjQ{O#+x!mSx7E+8eeVU_6;L;;eP;{zaHStSAZk{)c3}AaLAhB& z>0VOlYD$vns+t&0^bChXD)-SNtu#&Mdg_DSPgr=5FXMe_+;7j!aB&2mG*5}#0W7L!~+ z!F<9^(3ot5SLIHjt@g>({+Z@pnxc7&KE9Z|j&P}mP%mEXwbS<(>7m+Tw+xMtU;R%} zLb3`-T91dUAjypji-P9OMLbN^KTGS?u=#X@q-he&Jkg8#!r3I^e(!}T={C;fcqqIs z#-E2VSuFJRasSSpB#4@%OGwZoGqEqmXVNa8gxrL5d+=$9*MHzi%eR#THl+()5qy57 z1IFxN99hp=*ci@W20B;ffdjU_6ZPX0tLwK*-*iLBb68?-Gju zX%S%99d@=~s{n4a9I!cR4e|lfS->zIwZd2jWX=NM#j5Lj#C<)_1)#SvPc~T$hVPkZnXd0Q^Wl6Sye0wg25BpkOp#>S7!D9$r4$Zu=qI YA7AGx4^3@50RR9107*qoM6N<$f;Eq$>i_@% literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dewgong.png b/graphics/object_events/pics/pokemon/followers/dewgong.png new file mode 100644 index 0000000000000000000000000000000000000000..64a8502a1ac9580e6158e5251817d786c5d81763 GIT binary patch literal 806 zcmV+>1KIqEP)!P!}10RaJ-Sz%!@L2-e(vANkXF;U^+@kvp65;n_*00009 za7bBm000XU000XU0RWnu7ytkQoJmAMR7i>Kmb-4-FcgM8Y9aJG0a~E1W}u4(yD!sK zL5D5|bVv#47*bv}PzTw=%00XsN_6aW2?`VlCw~d~{XD$cyWL0oX#Yzyra)naclN8f z@N0bE0Ab635ncs|zwp~lquL6Evh%Ah!(FbQ%YR+7@2$!Ju=Aztb%Fl*9@k$kX}QB@OFS1C0GAI!~M4E5WviVH-*z@v=8fDphJU3_gnsr%-UWQ+Sd3* z8Vc4h+!2c2(Hzzp?;MbDbIe?CGlw;|Xw6Q@D_#SxgtP?Hc1a3h;L*;Oc|;wYM$3W+ zkqze{?DH<4C0>?!<+}C4AL|l5wkVNVm`@mtX~K!E)H&cO2)itN`gw-_SLXUfdSRDe zfENjB!H!FCZ4tl>kOTC0FKlywZh;!J8M`P{>FNtD&#)lycZh>72v3<+3}AtQD3ttm z=+>XA6d=&LD0J~$o6!Nf#lpgYG}ik#KtQK_L68ODBY`gl1;!b~Kmm${p=KWlUE8-D zxT_>MKf^r-9Ev~^B%xvfmzb`;?SrsS4664!=oK&W0sLRM0J>{oNlq!y3l}eRSwM56 z5?vHj2u%>44r+@1Pm%LeaIjRQ5j> zl`j85smT;i*&uvAC>`;m#B|Ft4+y knx^PqaOV07*qoM6N<$f)dzj!~g&Q literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/diglett.png b/graphics/object_events/pics/pokemon/followers/diglett.png new file mode 100644 index 0000000000000000000000000000000000000000..958ca3dac636ad3b2dde025eb83e70a19c824072 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*qGVLTv%A>Xeh|Y z$mrD=jZNX1*+(dGh4RLQh4YatNqw-S`s7;wyM=+<~-* zIXYWE2Y$IUv%P3@w%+F1rX2~}?KPk6p85a(PL-}E2>7?Ia+aU`l9x-<|I|L%I%V5w z&zasoE#%a><~pQqip}fV^`1B7i})`lcha#s`S~3(7vAFV>X*C(hQfsHx2K5UwF*o)^dY$|J`dDSI2c3@t$}y2Ndj{u6{1- HoD!M%INI^K6Ays$lR}SyVM-|H+-N{#5E3@7-2ot5q}8Jww8N{&}Xy*QKZaZq+ZY zjh`!dOj>^K(mP69f45$Ge%5c@`zyvx%O>uUQ0NR}4OEwZ5Nw)@SE^Gq?_)k6x25|9w@9#;N9gVoq1q=*;?? bUCZ1l$o@m@g%>dV7#KWV{an^LB{Ts5mr1P! literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dodrio.png b/graphics/object_events/pics/pokemon/followers/dodrio.png new file mode 100644 index 0000000000000000000000000000000000000000..c25503d7df045b85eb348d006a8c73a3fa52afef GIT binary patch literal 1088 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dragonite.png b/graphics/object_events/pics/pokemon/followers/dragonite.png new file mode 100644 index 0000000000000000000000000000000000000000..aedbf448ffa80f2adc17537fccd64f99256c0efd GIT binary patch literal 1030 zcmV+h1o``kP)FN2o!O@vvF`1c}>B*U4VPVm!dD)3UDNnPS00009 za7bBm000XU000XU0RWnu7ytkRd`Uz>R7i>CmcMJ;KorL{2o2c^{ZF2w!HZ066mU&6 z6ydR=axbk3+!9BBK>m?Z8xL+lTZhacLomtEC4WJOQk2225=7|h{nAN3;iQyy>ccqP z>D~K&Kc{yWTh@OOcErC&|4v|VVfT8@vh%z7QFDqFcw~Wp6u91iXn`k)9Jf*4@8^a8 zh(!N7rkA>YgUE2)Z~La?lE(DtqAs~fG==FD-s_=3WH`1lr-r0OE~kr&YSJXKfk$f_ zk>S{eqx0Ml2tKVIQoW!-)DYMpl8!4oar?ZtHUww^ZLDFLM25iTSUT=&h4`WC)r$#% z6+ks-cO;QsVhZetaeKot8LJ&|pr{uU>;2U!z-g`u+TE5Q8iAT1JID$&iYz`**)2{NVlEJaUvo@DS1pGd zXu-S=uzP$@!F#)&h)r;I!xKp~30-L^54eDjzy%#vT^L}0N$HpgOkPSr3h$UeyS7Jh zm{4ZOJCrGLI6RR=laNn1fJj*VoZ`wA4#CU$7}=soI`)vRZGQZ#S0QPAq7^zpL53^=66Y`nx8-myHK43XLoo~&}ll(6S*bM zp(09%+#zlr1%})s50Q$Gs~saIN%%@_3!$b!fOA4p+?N8Dt%#20dT%{ur9CW02qIw= zNTOb(9diLvUJyIC#Tv$yfIEUUF0a?C7EzaqBZ<^wvKNRp#XVmo*n&tO6XqBTLaefl z4{p=kqYEt%+0g%)Wkt7Tsm@kJ9r@UDPzo?bnb4O+<$Gj~nL_na2j`Hxh_mYUAi=|O ziM}$x4z409Eg)|g5B0VxqEdi4W!=dI@5|+FrDzaYH0Li}-!CQ+b1aU!HkbuWv8r#`X^~~wH=J!DvU)y0 zwY_pnOrnP4J`>Q{JjRROv*-Oqnb075F=GOwk9vtg)NpLgvFcKh(Thkls%~e4h~3`~ zI{{Tw7(`9SHmP5BjQNbIk3VlC;u%o?ziSdT9iMeJ#-hE;W6~tz5!cijL=DH*V?Tnd zCXp#%5;Yw^6$TL>85xG)6OR8N41vENCehaT1wax&NL?IBYybcN07*qoM6N<$f}R`8 Al>h($ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dratini.png b/graphics/object_events/pics/pokemon/followers/dratini.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab1aa0340e4c86c55f8c78430af4d6b524ae3a4 GIT binary patch literal 693 zcmV;m0!safP)Kl(B2uKorI$uea!^K{#GYQcyZJa_P{i z_%xVK0Ubqn%YWd+RBbY~|A9j^yl$Bcp6pg4r1#JDPGH}APuN?Q;x`yR`MdA;-JMVn z9OpR4`Cq2zeqO(vKS-h=2(R}CaLxTe@013fGI|mjgBS3Ct|oqA&Mt7A`JHmWtf=Ds z0bNb};<=j22<3y`ND4Tc0mP_82go$_HvpHV2Z#cyct-Mj=`}!tw#9)=Gyl^BaG;pO z0`c60Mrhw+;Ve&ZL3#5TTd+GpN|H<9sBK3f9`FHT@f&-*d5&<}n1Ul`2JHS#_QhC5? zHn{9FfcSa4JYS;#4#a`ZuL1PdAC^DhA@{4}Zv)6UV7yw55P$ zu{fad7iUjFkpi_P_>xbMH`*^3CFDj=F+pVI4Y6e9yz!ld)EWm`Al9O+raJd^oX)hu zTMoZifI_cYtG5o(XnO?+;D9*>yjS+fxW?Z*7pO*?HPu^LtBmZR1*)-c{9%ssJK8-O zmub4$r|kvUNq2z`sK)Pny)-2U$hDgx$>%zheTB3Gjz6x6n|%MdZWqaeIwaaE869wU b^h?e^?||>8EtLu900000NkvXXu0mjfixokg literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/drowzee.png b/graphics/object_events/pics/pokemon/followers/drowzee.png new file mode 100644 index 0000000000000000000000000000000000000000..1e73cbebbe5f91ec5b5d340720b09a569281c7c8 GIT binary patch literal 582 zcmV-M0=fN(P)jF;PJ=Sy4#<0000000000r(8Cz00009 za7bBm000XU000XU0RWnu7ytkPyh%hsR7i>Kl(BAuFc5|#RV-n$D(WFTM5`#u(3il9 zTvR1XAAtegkmu;otsS~CfTD;Y6GN7WhpNxC`0Qdbb*cE3(#KcrPs?(QX8{O+2ofJ(IluvcJrX;Ym7YQA)yv}t2mvy=HO(%g1R6$u zPLXpDR~RPDPFzOS*s%BW=mFLM{4F(xE_XwrN*|9NAkblTAMbKs1G;0ILynl0gZ%yF z+-W8YRW+Wev9iR=3|rVRr;u6mxvU%RQpWO^#K(uuu)lg%fZ*`N$$T#Bk;N^*Lsa^> zs+1#JECxBv>;)p@#|ns6jBU)#sya4?Olz10U&Ef81u8z(bfLQ82(UE%H-=h?hl`8cwKM=9S^;ycH1t&vW5o_A zNXza*1Lg%yN4vseZ78KAr9dGK++BV@CxK0TmefwFg5|FoX1`<`jy|`-2Md3wFM7Bg U!=ehS&Hw-a07*qoM6N<$f}%6{UH||9 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dugtrio.png b/graphics/object_events/pics/pokemon/followers/dugtrio.png new file mode 100644 index 0000000000000000000000000000000000000000..b60c3fb73ba29829f09888c7ad535c529d7f4878 GIT binary patch literal 764 zcmVKlQC=KFcil{oPK~@#x94GKnD*;+?E_T zP%cko4T(hNa?5=H2k*@yXy!uu0s0wkwz=X#TcL16zDu8E%eG|BJveTQAdsJ>_y0Zl zC4`*TX`R+-{q^#~@L!I5;q-%wnGjz(65K%dc)Q#YdP0bOM}>p#aW5C*u1iR~dvR}7 z*a>c6Pc#F4|616BmXLURnOOo`*mD9b?hS@dKYn%!@zBfTbNXkYD`?)xyB!RFKg>FW zdW6~W)e_jk);mYe{LlLP*XQ%W{H;Ss^hlyGssmfXW}xO=9I`TE{`h?`oYewXX!?_~ z4s?Z9pn3@-DP<;vHhRa~!Kb_qbcLjxs2qi+!LRIkc^pIVMD!>&wfq27$51MFJ6P;n(rbAa~1y(Gj z{EO}!BuS(7v?5W>;rg&BCR>GCZKieS62-_a(XJ=~^N+m3L zk>BaS^s;1`*6iVL{-6XYFRoV!xe>5kfE-}klbvR&8HELJH}Y2?(@~Hys`u9wtNr;K zhGB&tYkeWC85al2rN0isXuMDi@wWhZbbMu+*)kaW0i(cT-P9Hg16TKt~#R98+og*egs3}Q$agQVQ0JVrIcPc>v+!ht|Nc4S6)%?kSL u#&DmKJ~zZ~`V`A~9kv2WSG1Y`Ki4~`z@qj`uf$pa0000? literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dunsparce.png b/graphics/object_events/pics/pokemon/followers/dunsparce.png new file mode 100644 index 0000000000000000000000000000000000000000..2a886d622bd4d4ef6650f94e9d92e14824acd8a4 GIT binary patch literal 789 zcmV+w1M2*VP)2aBfX;GoMK~Z5rIXQX3*#H0lDj0xd00009 za7bBm000XU000XU0RWnu7ytkQi%CR5R7i>Kl)sDGU>L{WhE8o99B$|!NT77MQ4j}* zP4z)!pM!Ci#QmzuOxuGE8isWzT zo6E2Fm5ah*H=pfeUccYx$NRhhY-1bS@FJ$uY;N43MYEybeD3xJJGA12-?RZrP;4A- zxP(|7QHqlXt*E27G(a+CV4w~6=-&A;ZFn@>q&(Zp!Iyg)@r%Qhp-ErdWnL4i*pZ~J z(DPZli}^DfFo>NanN(cnb#`93?y>R_8 zYYmY!WE(T|>DLFs(BZ%kun_CXzzTz7%-)P*j@eV|uRd{iHDKS+3BxIw=pfCkHf~AMT=O0AjEt$&^=5R(Is3%2 zcof$|UJUt3sIaETs_$f0+`^|A2T~tSP-+(>EkKsGb zZ>N2QR6&FZk`J;l9fW-)~oIa=Do;=>)&floGk=%wv1Lzk+w+(NQURGe6sXbq1j} z@E6-<2+2hUAfLMt?F0gg*X^Z$*18;p7x T{(WgQ00000NkvXXu0mjfY4CON literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/dusclops.png b/graphics/object_events/pics/pokemon/followers/dusclops.png new file mode 100644 index 0000000000000000000000000000000000000000..472bffdaf7b8db85414f69c200f71f22618f497d GIT binary patch literal 915 zcmV;E18n?>P)n+aH79z500009 za7bBm000XU000XU0RWnu7ytkR2}wjjR7i>KmAz}*Kp2MwhQmt+V^A`<84k}T#b7V) z5`>o$?P(Xe39k#a4WSS%8ImRS&~(d?jvYI6=vpX*fU{`mhtW`af(D}@p!aX+d%BZs ztCj+V4u#yL=T7%~?n@`bxG(qR|0$(HE^ejb+`&ev?G$mpx%_&Tn}@|rJzS@V?`ST$ z6QhU?gIymMbEZdz+egd(ER(Y1IYm71me(Z1O>fzsWyA2j$(Ld_3wUkd4HsLpOf$A% zzx(&R-vxAxd^U`s#p^pxK99CJw{w}@)Dis!eTJp-8|PD}fH~*&TxJb!N8y4X!&EcH zPoHOgJ_i)o$mLNTMG(#XS*8xrudziHyYb&p!gAcd0Mt7J|m8)tE#4;8hECI~4M>Lq!OsL=j|n*krWb79;RQi!Q`2ObW`GImYg#c2o5-DAhiPo^Sf#k2?nKk9#v3> p#ed#n_^P@)+F7>!kBWa-egpmt_h;_i^!We)002ovPDHLkV1imhqi6sC literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/duskull.png b/graphics/object_events/pics/pokemon/followers/duskull.png new file mode 100644 index 0000000000000000000000000000000000000000..faeed6a2041b9f132d0c5b061369decd89599b9b GIT binary patch literal 568 zcmV-80>}M{P)%tcq00009 za7bBm000XU000XU0RWnu7ytkPu1Q2eR7i>K)iF=PKoke?YNuOeQCAm6;>BQ#U&6)2 zui(mXG`QeIaA{H!yl{((i4->n5?=>Q2U58YWob=&ee@bkoD6UKweQ~l+Ca}RcD1Wr z?P}{H99`h<-v)>U3Y66wDCBd2o6)o_0&s(RpRCYg5p2vi1Y1qKg=HwJLz})vln~n=xm6P zT2#8Fw*5z7z5H*2oerE{O|I2|qD^NEZN}TBjvsc!9G*QccCx@b8cul4)0zRiGuAHk zdF^<_ZkO3W?4)RiPaoP1olVA=wNwKX*SRfNcb+w4r|;x+;NMw#Ta3!4(#c%_&iYaxQn~Vua7H&PdJ?Tf9o68S_EKmK-I?p0000S-CMu@o8y!VX0}EDM48wVM!tJ*=Yd*0RR91`rn;t00009 za7bBm000XU000XU0RWnu7ytkQ-bqA3R7i>Kl|O6SKp4h_p;N+v_eL0Jawr{oQy};| zWXzIL1qZSk+@P_9Z0)9|WVFH=L?@N%f@sqr1d>4Z#>jDSk>tLgp{M&RsUgjf(4o1( z`0mmDp67jK-&xkvcpCrBfX6n-lgH(wQOy87upuIGZ6Ut>K`|DKj-vU!^^0VoZjjw+ zfG(4EYcjsCzSvAM5>#JvROwkg5o(Tc_tL&yXWiAhfF8rwjLfJZUL>e$SV@E+S-i4w zcj<=(Ac0Ef^VsOT4~>^g5RG~!GOK8T1lo`RRU!clw{Ip4(7XXB7C^1@dARk7>j~w$ zmHuj`Db%SEIc_AY1ZBMGQC;i3QNgiMw=)SI_N%Xd?smm_a6iOz)Fk zn)UpFG{D&V(APj!kuu~PL}CeqD6q%g!Pq9T0uHxv*YUMZ2>DWcaD5rCefRbW8A$_G zk$LG1C=yGc1^sX9-n;b^H<3LgWSGu~&Ita11cdZOMug98uk-nh`dO-qM%usvS0pyT zxxKOZJSziPVhLn=pTq!>Kj1oIJH5_62_#KbWd3+4@Jz`>mBS+kcnwDVu>lyI{QA&*qYFvU4L}XI-a@_ zR7Iu32tXtTwUpDJ$0xb25rB0oB1T7fjJs4HHjNkVj`zN$rm~{)6(kdzrsZ)824DfD zQ&ykZfv%U^rNa!(-Hs7uMJ=oJKwcy+?_h^p`80%U{7UB+E0q~a$~Rc8BK`oRaObt% ySZ?1X*G9D>G1{$L9xRP&;=ej14}B;9!|@xJmLpNQ;M8LP0000FN0a0ReeoK>z>%000000000000000F0hie00009 za7bBm000XU000XU0RWnu7ytkPm`OxIR7i>K)In>5Fcb&yoB}xtYn)e+eS-~lEk$T= zWmxcLN{!2I4rbPG5l5@!I?ABma#5HhsoB_Jhk^f|e)`@^U$Fu(Wy+K(Q~pt)a2qlJ z8k8aGunNu0cGIeX!9CCi7)CxrRm+NC+%OX~(FWS?8wyey0}O+f*JasqF>YAxla2m; zEvq!V=4D$6mzBDY!+FV>)P7Oh-N1sYP~kH2I}Zz)hQ42E+g-SCpsK!NPJ^SGI1}TB zoELhn?H>p9TT9B0*|^&mzoJ^L?LOp@zmm*tc?zSm7&o~lUJ6h%^jhvyGcO>*X?Tk0 zF8UaE9*|kuwEXL#w%s=@?>u}TyS<`Y`s6TrxJ`D9Ki`0H_t)lflfEt8{=oAXpBv2q#3CzIRF3v07*qoM6N<$f`9VyKmY&$ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ekans.png b/graphics/object_events/pics/pokemon/followers/ekans.png new file mode 100644 index 0000000000000000000000000000000000000000..dc315987acabdc3b2d1bf3f111f3bd9dff9cbe15 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#_tTzPS!VPT@?$;N|~ zft87dnLlqjGBPqwOq>W*f(dqTs2&4~au#?*7Bet#%>`jbwW+q>7#J9jd%8G=cyzv< zyfN>Pfk4}0uW9MxQ&Zktv1@4kz-(Zk*2Ob(^`dp10;bwsKJPYG`zhMZ-jcL1NHwqV z{kebj@il&vs_#6O`~JiH;Ff)B6EsunydBk+&iT6~?)3%hXW1; z{`(zZTiS4(HQsn-&>O!@p*Skux^xjE|^w^({_*1mW>-$N(NCc3gYyWcTU zTA_G3Z|{P6Rn1pstcm+s%cD?{apU3vpA>6f|KOCZ)n|@ueK{v#v*eE4mWE$f1dq#y z9h@VT;NI-0nz*{CUh3K^*?mIWKAx5?X!?EUvy}a(cUJ`OFWC1jxvPzF`l&}AqW2tD z2`QvMNs=?_4Nl~YescIHhi{zL3O2@loRzB?w6r@Iceps_$1%uUvPqbDtN2my;+C)C z;)dtmB>KAD@11dgWpAajOO*Sb&+hX|+U%aFrSx?RPiEikJE6cb`2Qh}DV0Y)runGU Zi^tb@?$~&x%Uuu@`<||TF6*2UngIV)`<(y) literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/electabuzz.png b/graphics/object_events/pics/pokemon/followers/electabuzz.png new file mode 100644 index 0000000000000000000000000000000000000000..0baa0f144e8eeea6ba62f6cecd2657b1e8afab31 GIT binary patch literal 699 zcmV;s0!00ZP)G^4CX}O6JK{+8wQBm>H0RR91uL5^c00009 za7bBm000XU000XU0RWnu7ytkQF-b&0R7i>KmA`J=Fc8MQaH{fdUg!*zwY5OuCNGfZ zNP$8?-$Gs}3tBWu=9Vn3ys-Xvg- zhoP9qu0$^7ZY9=X=8(}MPs8`z6)|ROILqQ4n{NMNMiG!d-(NxAoc5QJ1Eyf3NJpgxlT;xe)12D6B;;Gx-jMBkQzQn$D9{I z9Qi<}<@m{C);g*`oKjZya!P3UG}Hn2c3R{R#A(h8|80m_*R0>b{#&J(H9RWA+woos$al=!b(lj_UG2_iY^f2s>c0kq}p56k@;;7H97a!TiA5OAob<)+=?%{OV`izew z;X|+V>tzk3;pw^5{M1!Jd}JFZPyp-N=dV){ARBxhQ?UJxr<0+6jSXKXkZguFh#R(s zXT8Vl2hD6@$=mR@_ZZcc4ehvFQ;S@BYb+Ys_;KWEpUIHPoz6z41QIsf<8go<{P^fP zu-$rw3{MST-{5V-f}(CIkH4>INE*l3_7kE3pK)Uj{cKokb>w^(vUOBh||4lN@(H6f!V zx3MzWB4^QV2=YX-b|BfV!gd}T5<{CY3yS<#_Mi>iIX)99iqwH``<>74!!|a+A%`4t z$g6X-$8XNBMYI3=f}`nOqu&}w4Rjg|ju6n~eM!F2Jc;dwqdb?$*`g{fti(0Rjx~lWB2R8S|?OD;%3JiZ=d7khS_P`glR+()Ea%poqX3O6U zw*~1$x%KSSJ3$@O=7#t4Cf;{CaOnr=NK50ANz&C;2uSLMjt{Q!X3~0T*B_~i z)J|8>p4i`kFQXT_FE{8*>dWH}%wxH%p737z1JqU4tyyuFh5!Hn07*qoM6N<$f~o8j A8vp>G`?2!D(q}+1c3u0000000000fA|{|00009 za7bBm000XU000XU0RWnu7ytkPjY&j7R7i>K(XnoWFc1b{GqB?=;;FK*B)kk8;th~k zG9aNVYqzW*LGPjJ^VtLrh!mnORlI#??*HpXsn7YG&-pheOp@~(PLgC1C#}M?EW7hz zCqr4y6Q%9<^Nkm6^2&Llv{ETe%Bnl&5J@HaK4~*)EBbyI&xd>&s1K{!#Ys~obt3xC z7oDOBtPuSJrA?(@s3)6WX{cs?av!#IjU~DV8FRrn{f|<=&`maH;V1W@l__u!BHO~p zkJ92dFL0+b;=?HJadvOsb7j{4eOE55r-BygkGhUNU~SIZ^kwXrtt${#DgYbU;Rw;5 zIdIc4xInnsIB8k{{6V}U_<*%}W79F*U7asj+AI`6vmbya+H*?_+m7K2Y#U^*U}IUoXuIe4;~+``*e2 zO4~OhnrXK0<;K!M-^}Y*rqQXuzR99}+q^w%o2REZX}6I@hpk1PG;L@dy^%Sg literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/elekid.png b/graphics/object_events/pics/pokemon/followers/elekid.png new file mode 100644 index 0000000000000000000000000000000000000000..e655f8d994e6022ef618b898812aa9fe18b11930 GIT binary patch literal 558 zcmV+}0@3}6P)OW000000000000000y87gL00009 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 DY<8AM literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/exploud.png b/graphics/object_events/pics/pokemon/followers/exploud.png new file mode 100644 index 0000000000000000000000000000000000000000..fe13983e17fc6c7d03dc292869773da9a00c6925 GIT binary patch literal 1163 zcmV;61a$j}P)CtHc0RgG8!Eqrmxj|{Mso`mHiHRvexO^d400009 za7bBm000XU000XU0RWnu7ytkS0ZBwbR7i>K)<1~bRvZWLhq+KR$|cku098ZspB zzz9xokOzudEJFVshi=8MJT!Q4Lckshx|725BXy@v?U1cUaM})C4dto>W6Ill zlv|R$cX0hZ>G_||_ENf(KJf67rSJDiPm+z$|KmS046)e=mF$1y!%no(2-P~)M%U|` z>{Pl-fkh)5)w@>7+F+--!KHF{X~spPQrCjO`r~yrK8j$*{pLEC>K(CEP%s2KHPcxv zShmr%Yo=ZAtusC8RjLblMWfQKNn3`pyw;{`n$^4O%w+nY+ndJ~jY`&?)3&72ve)@G z{lcVdjo*^8ak6mDi$Zh7oV8 z15WYux)p8Pol|o1*tS;Lkn(qlUFHR__`yqUyl$c{|Y z(H35VYjcJ}zd0Pfd=#|2i7K4C!6LNf(5=5i3;3e3ntm399#&Jqydd$1Q{VY%w zPHjYLjbJk))DJ^L1wx^b8@^yF!gzB`2PqWn>Id=7aR|>cnHsi`?=DAweH$PZ2!%6e zUxKM11nzWIralJA9O^$0#`i23q%NJlS(GKt%k%N9`Fc3~>HHvCV}rm*$isaV2%k@s zpkn$p3nPI;iWVFJU;67?D{zgI9LLnUcP>7}fT1y*rU~$X}^T6U*Dn!>3 dR!06C<8PQTiEA)gQ8fSn002ovPDHLkV1g?WHNF4< literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/farfetchd.png b/graphics/object_events/pics/pokemon/followers/farfetchd.png new file mode 100644 index 0000000000000000000000000000000000000000..d4eb66b53a5f3a4ca74eb385bf233d6f88123682 GIT binary patch literal 811 zcmV+`1JwM9P)gryp#cE_v5_fBIVtJs`H68s(b2)Nfl1k^dC9qX_6Vic!^mtz{G~X#vE{M6>{GZX(=QF{;|HHA{hZQgfZgwdS{m7T_3F?bn)TDcJ$X zJk3mkZ8B5#>umWI&vji+iqfRk=f;rzam;g)g0S#3gsxH0 zk6#w8T^pmnV?C6EwnUST3ZoS>2_Tw1>iu=X@tfl;wnJUx0zQ9h+X5Q>ozi?L#;pnZ z=pK!3g0lePU?1&B;j49A?{o$iX!ji3IY;vP6up8*uwR-Beb|yVAs;%v)&Nfl*98@R zzVd~FlMvniuGdZJq40#wuhhj=X%@n2_g>qCqVSn@0tylvbM11+ruPuwD`pCbBv($+ zv>fU?v@tr4zyByLe!e?7unAdMIIsyr&^oj+^8%20R|CGN`C9;4c?Vp^aTkw@L4L5F z-gO^r!iFe}MtdP7xPY+m^LFw(2^xo9K@8ObVu%mO!ICht_NEUCA05Xm-|+xh6fQMd zc`KZ2B+iJRo(3a2>bF21yjBADGEcQ}0b>=Aqb<~@iCs*a{sCZKd&4PUYD|AL$2cUb p-W;M9l^K=Z>hKLuHxK&f?GI$4+yVl_I;8*r002ovPDHLkV1jPMc^Ciy literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/fearow.png b/graphics/object_events/pics/pokemon/followers/fearow.png new file mode 100644 index 0000000000000000000000000000000000000000..99508e3be13ad3779dcd38d71aff4be9ff511aae GIT binary patch literal 1072 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 IM6N<$f_Wtb?*IS* literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/flaaffy.png b/graphics/object_events/pics/pokemon/followers/flaaffy.png new file mode 100644 index 0000000000000000000000000000000000000000..57e8ee5023718f904cf90e25fcfd7af193b7619b GIT binary patch literal 782 zcmV+p1M&QcP)K)G=$@Ko|z#8;rpaH1-F$kfmcFV-WO= zT|zTSG){srrp?$X;RZFCTxu^Og_zVHGNp@BJhTA~pBy|iWRS^J$RJV#QAko7{f3^B zNcwbGrck<+yo-5s_ugmD$b>xRF^~CwG8|0zU!M>5V47zJLz3m3oIXo*80lPRKc|?K z-!VDMi}p*3*F=Xog>%;$WLts@_n1s}4jdcMbkTPix#zBn4s=3$XnhO%dWLg-0Otq| z5PbJ+wAJtHXUP|ILi=bPcru*Z>Vu012o5t|1sh<^%k(RLo|War3t;#c63ydlaN-;* z-V_65dLK5f@qwawq(-o!`NkAG0N*oQFq=1;p4^G(Ff+lbd8myuT@Dyy+t>0$cg=&7 z;V3y!bQs6(nY}MC$Z{D@8FMUoqPvF&CluX@=(_{iFVno%2kV04D*=l!NM3}LyFK%T zrZYKTOFMN%u)U(`_LE{QWfFDrZ!NHny`&Hz7gjzSBR;J@n|68t>+I=v{p)1( z0{qxX3cJ|BnCX_6fA+M7O~^Vy1qRl}$9i!ddnfATi{DR;x7GObYu~RobFK@`OkqI{RoI zzsAmv;I&2mdg?0igW20Xo^kcmMzZ M07*qoM6N<$f>ir#N&o-= literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/flareon.png b/graphics/object_events/pics/pokemon/followers/flareon.png new file mode 100644 index 0000000000000000000000000000000000000000..280b5f4506144ccbbc9c58ab9a3222d9ed23ef60 GIT binary patch literal 828 zcmV-C1H=4@P);!BIg$!9gJa0000000000tNfAh00009 za7bBm000XU000XU0RWnu7ytkQvPnciR7i>Kl`(7EKorNXsEbC&7@9F>G-Q)?61KoY zz=mMR;uAOcV-yEu(`*j)nJh}=Lls%OWG}QOW3v?eq59-Vx+gUXDQ&mBNk84)`|G`X z?}?CCd$m_9jj`wO@6F)dXYe2RcPzUZ!Ri71X@HJHyNzf@@CF3a27ZAVlvV|RbqK~P zGDMfes|IdEKsew!gE4RzAU#eg%8{|y7@feB^9DY!*%&*lGlcB%V@zOJZ0>3Nf3vO?rgD8l zErvN3s7!7bBT5G!q9!II$MXCWEimyMt9?=kyj#gDzpRUrQCZ%8Q#kE2X^uqA~$tS6ElNkti;b zm^5;Bx~Ch(m^!*M`*JAdq{E9=(yRsixi4mH*~nQR(t}>fJ?9`3c;vyySdLUjLI_sjB4wF*Ng~&YDjn1r9D>BP=9^40 z7c~0eoCy$^kqUD(eY{z?2$#ZcV$-9RCD5HHVNuI3C}mU(p|vXPK}hK>8rCwaeYSwcYLX=W>2H z-u*~X-@pJA{1`g`K0@rKtv3F>m~rcHt262{cJ`p>n+nEkR~>iej`=ZSNaOG)ULP?Z ze-KF-o1j&wl{9}keanbC{a_m6l#JXeqZPx}Q;01usaPX=oM0000L0Nf`IRF3vh-XOw00009 za7bBm000XU000XU0RWnu7ytkRp-DtRR7i>KltF9bMi_>NMd+a0m=cN$r53@59Qq4- zNQ$hQ7N6?Rg!RVAjxuq3Q;^z5dJxl zh5M?3mib~2N1yKgg5?oc5Bh;_d_B2D~i-B#|wE%^o5HyJ=7u&d^>6;kWuvePUh)kPR zxvvljLEp(gFe{iZE)25_7~}G>X+#4|DJ~JqJkRx8>7gJp(ko92`tFL- zu`qbs{{nnh8VZAy8Kly{Jj{vQjX{^vd2ZmZ=#?O9(S^Ga47&7}OklA8+meDCNJC-p z@>l!!z>^WLIMH{hpGpVo9-tTHT{=H$aD(=BmokK0@EUTxS3jrAd9N7rGTh}4)LlAK z;Y1Jx-Gy*49GCQnbC|W?Qh+N?)B>P4ULkla0=`xjNP*8L_MPnJ@_E(4M}3@$Lh_g3s`1 zf(VY8g1MT5+vt$~K6DqJJQKEM{vlEYWnyGbJG0wrGCj&1%@rJfe|q}k>8J_aEMgNJ zPUO7d`lw0g?QhAbgZCR<8s-Xo%e;+#E+`YDmmmAM_vP1-xM`*{39Y?9UOZHdN$84z zh!aIdcBnxbI1aAC3(Owsa9%Rl7DTZ&wx4}f9%@9$jI8p|BJnMWb_x=-voxZu8WEyy l$=?ZXl}4nOM)aSqKLO)QtuyVP^wR(U002ovPDHLkV1m|R@Sy+z literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/forretress.png b/graphics/object_events/pics/pokemon/followers/forretress.png new file mode 100644 index 0000000000000000000000000000000000000000..286ecb983e9b709c1e95229d9c372496cc81a3a9 GIT binary patch literal 620 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 Nrk<{TF6*2UngBEau~Ps5 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/girafarig.png b/graphics/object_events/pics/pokemon/followers/girafarig.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd1087aa3e4fd156ac6b895459f6d020d45a0f6 GIT binary patch literal 770 zcmV+d1O5DoP)G|n#xjAv6X;C==0Rc%-Sz&RR24XUB00009 za7bBm000XU000XU0RWnu7ytkQcu7P-R7i>K)W2)nKoke?8?>J3p$uL;b!kR%P4Q5J zi`C-6hC&FqhD;3}3hwHuLuv&w)Jsi5kJk1O)c+w{p&n(hi0WF#7XpDmhIkBkC{(Ir z-Mg!Aap{%^9zG}O`+QG75W27Xy01m0E*8Hv4G*m{LSYx7>(1J~dMn4N{^tfa=W?8C zgm8T}8x7ZX2zsw_bU`ib)P{PeYV%(0LT4OyzDa3{5en?@7|SdVj!!|q;R z+JIt&##YE!$870*mVLq4UNg7am~~&%JlKHZsHWR2s;z<6l-6pLYK$3c@4)#gj+ZKN z;K5L9pGK9@IK|iz3{)Lgal}~N(Yrvmw&`Pyqj9!(Uy6f?4O?vCGh?T4m#S&ir5fX~ z&S=g}0)-1Czr4Ws$k=9H1gOT8bGgAmW$7R6^wP?>JIlbt#uF>KYsUMdSC3!=#i&fo z01y>8UruP!-n_KTiHqzUE+nYM+>OXiUuIh9)NuqdT7C&vzGr!o{m( z)5f^!w%`s_kB&c;q2q>k#ueu~CDbB(5h%xqrjHd(a58zWx>L@8IKV*xcx<>hPR#% z8#E~a$9=`|$A{81Y_LzM2|V54rDp@^pbYG13s#8;j}=EVKP)-~KIf$99721gzNhzi zzxbi=d3orPC*I?@0sq;60gZQDYS7?ZZos)XAE%u`P_jL+uo2kse1vbJk34XU^P%4I z`FQr{@dO>C1>BIncT)Q5CG`*dB`zP(kA463fB*mh07*qoM6N<$g5W%G A+W-In literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/glalie.png b/graphics/object_events/pics/pokemon/followers/glalie.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e15e52eb75d2dd61f6c0dc764c4444a5cc57ea GIT binary patch literal 598 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jQNE$;ilPY3Vt0 z;YLkOOU=fE2T$G%3`_(n!32k8f6oGnau#?*7Bet#3xhBt!>lwb4z(Eqr=@x$hH55*&L!bD zUT4F1Zc}T~_@C?ZG|zN@NB-mDAQeri|Mp)H3le{b^r@O;aWV72CN=~rXl|NMN<-Q~ZYjL9{_-ya(y zbm#4Iy8CsW%wLuZ_Lj|VsV2Jv?q9kdu;sg3d99LQGGnStHS;`0CK-cmzIj}+dMWkI z^Io&=yswjS{9fhvXBSe|aXsB0`fuBBYjgE``N9=9-|t~`juAiRnepk@geP+KaobvV z&33={Un@|q{98k}$^C{ELYbe0_UE)th+X*3O4~xN;D7b;wmD9nt|HQZHGix!dwjYq zsQmM-X9`Eya?Bo-F1TmmBE9(K9}cHauGTAeOP)@f^n9932}2;)#B`IX4AZv0$Xog@ zE$6AOaox_HyH2iZU@1y7i?`W5t#synr*{|FU`MyO`HmpKd*O6E#a( h<o3eNxl literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/gligar.png b/graphics/object_events/pics/pokemon/followers/gligar.png new file mode 100644 index 0000000000000000000000000000000000000000..6d17b0e3abf84b78feec20d34c8d583f387959ee GIT binary patch literal 958 zcmV;v13~Kmdk3}Koo|DA=Tc+`zWWD7z`l`(=NP< zL)vXXR6=BBMC2%jtkboM+`*5bAVH@MR-LOZaauxXcR2=;Z+_`N z|6HsXp_h88m-;t_;lTjdUAF7Xv)CqS*ACNe1M8i+Jd1JO^~1T}ZHTP5Q-osufECq@ z-A8o39JLPGFzp!P+Fdy57hvVr}bVA>B_JA{KH4uqTSKzWhC9+tq8MDjh$r^QN725Bzlt8aQ6M52fl{F6sAaU2rO3Gr>ICrnhSbSEU5lOfj;X4kA(mC?c^ z7R=@gqNgAdB{!c~c~wRtF|xqd9DAU3D*UL@u~TYJ3X%F%!6B!iX&{-AjG8qPiN2h( zn{z4?BQ)7)j`j|vK3q^yi>1=}R!C0y=7>X5UU5I-8$Zc;ngwRbcEAb3C1W)3VIT%h zdLI<;?TQB2VJxCR(m9ifc>}|$!Oi)yBcQgBWd;24*dWW)OuP^zm z*H@dymjhT%_{441prnGSYJfvZA?-JZNU(R%44^^pcs=`i7i}heWiUBe&+hM{YI39- zlyoUl*A1v(evu8V`|sfIHGYbFt&Z7o^~;~dLA7}=Unz;l`GWI0w6&iw42096IC??(sKTCVYIP^|@58~Ikpz^w>BqtgR1RkW!`##+68DQA_1-qtf}DU6%1AgXQ~wCIkF@_qY%_5?YL~4X2dKm7!R?}&1$d0Nel>Iq gZ9MJrw*CLB-x5@!LziqCmH+?%07*qoM6N<$f(>lD;s5{u literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/gloom.png b/graphics/object_events/pics/pokemon/followers/gloom.png new file mode 100644 index 0000000000000000000000000000000000000000..410a1ec72d9e3057e5d7ec567405d9accae7c3fa GIT binary patch literal 534 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 IM6N<$f^qa;>Hq)$ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/gorebyss.png b/graphics/object_events/pics/pokemon/followers/gorebyss.png new file mode 100644 index 0000000000000000000000000000000000000000..08c8e2f5941ede9892cf821af0c3dc55d2e970d3 GIT binary patch literal 925 zcmV;O17iG%P)b0RaJ-smZxfVaZu>i6Kd;nepk7q3P-Qq(QsN00009 za7bBm000XU000XU0RWnu7ytkR6G=otR7i>4l|N`xK^(`=2kP;7gNF{mlt(F*g0{P> zVxV&&*hT0lPMIupda0$pCLyJp*d?9%e3oi)Xvme2S15+IW)Oug9RdzP zFpl_ZR~4dh0M&v2BS4Op@i{=8YYimWyHKD3@uR^6!6bjnXu@m2r~`4=L4%B9PZfkh zMW6vqEgK^vDpAYDpV&or<(^Ooav#tfQljQK){7*9_|OCPEFa) zeoTgC4<}!VUoiG2!P=gRaFE5nG|b{?^E%1az`{YkxzsOZw7R$ zG@}TU90~wX9B|Bfuz?*ntmRqmX*6-r7X0hq@`Yqc*sGWeCk27sq_iOgp)k(k3eg2s#vIu|J^q2m^J7s1QA5VwR6?|DW)IPAP?O!5A&)z;W-T7%8l(6($K6n-v90R-|Z>Uoo~`V0_+dNba@ z1!2SMvfx=Eko-uPrj`oi0xWX6nDdx8q#Hmej?G3&KsV1A`y-<QcTr?yzPUyxLs z2tWrfm)Xf8=s*z)0R&crfDjKpp)TRT{el#dOq#{G@yfov2s%)Nr2@jingntI3f8hx zaMJ4%A(%@9XH_BubD-pXJKF*RMOZ3W?Fs-2A;=c{yFy5|j&NLY=VXZxLLKY_0dCfz zKoOc72P-RC3ItXFa`o54HzZT0?rHSQG5fSsBrdHlgWmw*PWvMiKq2bq*B)6qda5Ds5C$VUn?fkmoK;KWMy-o(Mm4 zrt9YBDY!fNC^{C5iV!=P0s$AgBBw1Pvxe{8_g>50KANBM)jtS~)S(GWzGtOCUNp~0 z3OEqEuwJu}YukKl|PTuKoG@^kejsk8R$V)6hs}A990Bt zoVX{VPgdh|OH4+tIUPx5=@PB+r)1U}d&iqUNCvt*rO40Ee(PC##-4Z6O*j1;mHBo4 zTlFxz&SmLUzq}iJGlbSHpYlc^iWt*w96{L%blIb`jYKE*5jQ1^bD2sWoAcLsCoT|E zF|lzj>zWffn5ncI)BiE1HqB*S^DL&aQqhThQ%-ZsE>|_l!+HVZ=+FeZtQ8isZ*S8~UStz^p4D`!WSBHzE}Ov5i0}CV z4ujrvIM0QWDS!=hxvC02Mu%5mpOfLp`jwbp$@qRI(iIDIne=iHN|l7N>5kIy@^$Th z(s_OB8$S94CL`XtF4L|JWC$R`)$wR=WO$j>J_IDNzTuf6Tl4t#NPw>u|aUvMHP@T%{8 dUmX0u`VDP9rj)xkKZ5`O002ovPDHLkV1nMBMRWiF literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/graveler.png b/graphics/object_events/pics/pokemon/followers/graveler.png new file mode 100644 index 0000000000000000000000000000000000000000..767e6561c9b396f8ec51b6ff6a036518ef99d7a4 GIT binary patch literal 687 zcmV;g0#N;lP)Kl)rAY>jbJAL#ARK$s+K=E#;YN#-g3zEBaViSTY243mRFZ!pqJ$m z1A~^Yzy^EJ-0qHF1|AGgf@PK;gCtuNJE?zr)W ziD^ezK{*H-L&xT`RiP>cC}0$H%(`Og$OwW0UXMjx;h1~Fg!aH}L*NCip=ajOgw+|W z`*G-w)3yu_r7O5l^?~WZK=+PELt2CB8U{gY=-I!fp7FP|ovw}Jb#$$C?_0jsP~k^% zH6$o9$f457E$)Evb%CRS<+R2=Fra4OW`BV}%*0M4GwW`$nHXO~I_gKJ*Y<99Dg@YP;VkZyhKOr79{f^_?bLLxf%Z3_z4gj V5npD_r858k002ovPDHLkV1i%fHr@aL literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/grimer.png b/graphics/object_events/pics/pokemon/followers/grimer.png new file mode 100644 index 0000000000000000000000000000000000000000..be245e18543f11cd5ec1de35d063db80a4aeae5f GIT binary patch literal 596 zcmV-a0;~OrP)FN2gk-33siD5};$+6jaVVQxEkts1*VX5IMDJj`eS)sAnU@QeX00009 za7bBm000XU000XU0RWnu7ytkP%1J~)R7i>KkuguhFc5_s|AL0n&aI_HFhWEmc8XwZ z)vM|;iR%A>L?u=#1u6fQ^VxA6$5brc^0qI1_uid5nT#4WYSgIfi7zkz&iMbmArn7r zFHW)KWE(hm-cX?z$lwdM{Y2iw{lOo%ISsflS~~?X2N$ObdY$4X_&XT(4h9rbY#J0c>}I-N^~0 zjrZLYUTh1*i@^4&wfco!;CII#>*nLNV>ggA$3Am1JKU<3y8^F}lv1FyAJfk@e7<*V z0?QVoXUr72=DRn1zaP7eDRj2OZ+i;d7nboI_h-wKSO?k@qUs4ClkFREXk=y2(}f+Q z5*>KlEL-LvIk(Jm6KGzR&198JX_)hV0rv{k1C$h)Y#v)KaVoW(W;$?QwyX$QoybZ) zhlR}B_w$)9E+}v@D_fTML0V3$OyyM%=1)l_HE50=S8!b9vJLcEpRD}ZgItCA27!)P zTCOZdRdI}Q0bAfP1u8RsE2d$N7E&w7X%;))A=Ce&+(kV7i=&t#;~=xN=N&L9Molj; iMxy@UXz2Cguc}{zlE3?J($ES30000FN1d5eZ3AVX+}04FYAETx4dx22aH!csy@ zb8QE~9K^N|li;g9|h6XS0LF@v@|+24e7GG3t`R6?^KT z6ml?|1s%k6KBWE7%7Nx#uzs4I|9kW1%{&=~w$LpZ-YL7Vd_sOC6! z&eJ8uGApO8^GSB&a&SXo%bmg7uXX>+bvW@VI5vPs6%EBKvFmkYBGKCfUaK5u5Y zxnERHnUx*TESpTy%`14D04WIA#}%A7Jj0mNG+%F-)ru*Wf;bJUxrU(32!dM`98a<* z`%TpD`1ux;SnAz*{1k*czF*6I^;6T3H>hnKBd2qemAUQ!z)ta85Qg^`g%8c zNeaO-tDI+~J!O-{9<1_ROl8C=eptnaCnpEpl;L)slQPSQpTWH(IYAf23QGJ*>`TGO zc~HgX-rm7C7pO(^c*<-T1U`db?w$OAE+|u+7K{{I9?}s*Z&by2h_a~7Ba|PmGMgfq zX>_vZQ`A;Ri%tuM>afNT=#vXjrs`zDj#i{0rs;2>NP3CA=5>sR@=wfDJ6eL0^ECYf3PCemK|RO&)nj#7FTOn~vx84{i^KPci47bl`E0C2w{;FAfb0`bA121V$EE zX6;}*;2z$wQ6Ix}jZJUH@y>8K9Mq#(OWg73GVtq%;>9uMf$+$VPNP6ZJoArE(a3_! zOmxycuf^^GWcNwB&d3hF(0X(hi?Sh3kZO`d-C z(v?$U6T!yeul4%iLps(e>ZI=;*6Y^>Jp=`_e%B#D7>oN|vd*dwJqHOrgj9;w8P}yn z4OewRWcPgaB5x^C3~f)Ci=Z#7C_)80c_D6N*KY$TBxzbOUodi$p43y@uF4d8k{gLF z9hwRAeSjc{#2$;^Q?biAlSCiZnjifWXhB>spR);UM`Waa4S`@LQxwbq6e+6@Vpq0Z z;oz9El#+BuokVdC3oabU79l2iBK3I}tVLkX(gAxV4B4DZLC#$$nG_BZUo;=lgd)(E zMKA>gCkqF31|C1MKcl$=le=>^K__8fZ*2UH?DkX&wx=$XOp>wsa3G1u2#_lV%3=N} za+ENmFyBq0$47k%=MEMejT3cl5>RY1$Y1ETM-ql&033*by(NNm0n|*E9AL2;eDrF5 zgR*hLa;_c!KG1=V{hkzPL>)ELJp6Y@@>kwhTeH!SOc+y$Tm(c>U;tHh2~old2ffV>Su974eRQis z<_)K~$NLX;ncnRdZ?vC0E|ci~Kp@LsECswv$nv+A+219L(fP0N>i@EtD}GBurAhM- a!T$h3kvHA7q`~t50000!f literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/grovyle.png b/graphics/object_events/pics/pokemon/followers/grovyle.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2a2df5867ab13609cd7c2cde3667b336c78cfc GIT binary patch literal 658 zcmV;D0&V??P)T5di@KX&D(|nMs++d6_9GL1`)Z*;%#qm000000000000000*`Kl|OIWFc8HZU5Ab~gzSM;xPuqUS1M|` zwPU7$&=;@)B7wJb@LE7X;5~qsj@>*)g@AxxuA~(4pDZCAviVK^>8SUPl6;&@&N}O? zv)(SmF&?kJMNkwt%vcn}^A8x%!yYS9o_hCq3`I=2mma4c)566bD}AJSN#h|-d0z5g zwyGFirkn=d`KnD<2xrnF}ECX0@N`KS?@_~gdj6=nqdY)WWrVhUS^xg zh0|TgjiC~`Ag39oEt{&(^IEU9h9PS)QEx?M1AK;QrVTeXz-6eL-^MWH*6>ho@7(~8 zVal{&WdmG(4Ks!zw}wxL`>z!YF=0{&X##v!h6fd9nhUw@=|za&WQ3*C0O#WAuytx7 zw^|92j4_kW27Ctg^6Z5N-0FI<{yD;UDxe!BfY+*MheODXLHYeteq}k*jP{Oa{Yc!| zqQC?wZr~?~*wE&SYm1f6VwnmTjbpN*BTSFbV-~VxXi0G}hH0zmW^GK0$ zna1{!02a(;ZSePa{9z3dzZ{P@SI&ZRMq`H~&4$t#rTb1{h8P|Qc@myr?kiDs4C}bE sK$hNj3E2Nk`zH|Kf7JcOA-=Ev0Vj#rZBkHlN&o-=07*qoM6N<$f*6A$8UO$Q literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/growlithe.png b/graphics/object_events/pics/pokemon/followers/growlithe.png new file mode 100644 index 0000000000000000000000000000000000000000..3848e8747d7f9fe0fd0fc6a8514b520911575b59 GIT binary patch literal 652 zcmV;70(1R|P)qN1xltKOF&VM3(OFqp0RaK&>G}C-F?m@zF)=aec}a;`Dan~p@u&CX00009 za7bBm000XU000XU0RWnu7ytkQ0!c(cR7i>Kl)r1-FcinV2=sq+4jmq*S%M+h;KdMX zi+E{n$PfwC9>#VcR zI_s~+gf<{<{*B*K2wpxG|*ZD0m-LKXR!qztP$?n$@sD?Tp4UNpirRt?|uMNn< zYn-*MFfa=tQT#O?4V%luD=hK-9_2cR&^C0b&Vxi_OEYuC-xr9<8Z&SjTCvXK=yeVa zX)^n$@D_VjYs{QBqutYaEZBX7lqTqSnYJwh#Nt!6#;n~J@@9EPIuD96aAMEMJnanq zWR*7;70S?=%hS1+^uURvnNznEu1^_7G%&kHe5n8qqvOofpBKTqeGw!kwz#`-Vp0=# zz1kka9G}V;A7FYH6Cdanw$I(IxT{QTu?)aj@>whm0fx)?UKM5APU$CBPMN2_5Fh9vs%%B&anJM;EX-?wV7HlDuJc%O z6BM~`=BTP2x`SK7vbKX=nawesd&S4JPG;s?%-iiZlCa~ilVggwE0>_o{et|%W8-T~ zTM|^VNEYTDPxG1U33N#`aw8;Wozl-z#?&B_@;jNsT_Kczl@wyODT7}FZ}_d1wUR~4JF3_0000ZZS;& literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/grumpig.png b/graphics/object_events/pics/pokemon/followers/grumpig.png new file mode 100644 index 0000000000000000000000000000000000000000..8f757d50ce1e18020b957bd5f7f6967e467f46e5 GIT binary patch literal 749 zcmVKl+SC^U>t|@BBQs`mp5Iyv`wHWJ4(nQ z&_bZ>6%Ru3_d&YjJhx0K#Djl^Udxa{7=l>n;RU6L^`eIfyEzzCsHaMCW4Fe)NzMDs zyQO#$JoIxYecrrzK6#TjQIu6yS!I>~B%PM{y@b(%+bPVG0sk*yZ@)D;>G-V_Mt;QI z6z0BNE9sZGl& z7k*;;v;F|GSM2|70jjEXe@_Ty=E)XW{T4HpF;5zkt)6!vu0|m@lRQ6x@>|ktEMu0+ zYmaI@@>x7onWGb^{)9pS_0%M@UK($IU=#{vo+nfIUZ+36T?<(gtWqAqnUELrn_nrd z+u~%I=kYew%GC`Z2w9IGY9tiw!NRqj#!HHYOlF=dzI)^Ns8Nku^@#Uk;cM<|fcGHc zMIo-gpfk8j=ZqgD3)a63jaVo%^4(KPXLkIl*bTY5D9ozV34k!GZaok3$G1fRsu^dG zcV@aM2)Ss*Li3c~3AFesHFJ8O24qoaRHnWOgvNEf8?1jk1WVA&VEi)>!dl2s7@U1G z#eGF)=_rVg7fj;kheB8|s@-eDJS@n#LBX6kLKv|SI+bQwvjCS%cQ^kqHjC%lLm|ZY zeY=CV;XcZ^6U!cfT|`EfI{^i@-7FJOV3$kx?0CWBHgkw{j!ci<3+jd6*!jO|0PZc;rK{*A%LWD7PV4=ka#L-{ioeUe~fw}NP@Di5h f%Tq57{KNbPMl2mk75L+K00000NkvXXu0mjfY>H3T literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/gulpin.png b/graphics/object_events/pics/pokemon/followers/gulpin.png new file mode 100644 index 0000000000000000000000000000000000000000..320f5fce9bd70e5b7c1add8ba90ff7208b80d6dc GIT binary patch literal 562 zcmV-20?qx2P)IZ07znLz;o0UKlrd|QIFG<$CAg-Mx!(>r(Q^<@f&Y{k?Z2A*58PQl(1$ zC(&1%s^P`v>U*w|8^D2tOi%~C#V*6$6UWXExPgSM@gH=N`PjiO#xn!CKrw@_2u08i zK41R0qJ`lC!-w#mS9O~!$<54|$qQ~yHZ$U=wT>G$H-c_t^L(2Q5$}A%^Y#Xt?Ki}7 z0iL8hw0XC}EL6naXu!wTkzJNb`A+;Uu}~4uInTy>YXOI)d^xZ!<|Y69;UDIVif1R2 zXRx=MG0TldGB68^*lY5`fe&V9nTmA)zO?D`u?8{_!Xoxyd^miAo?(jBgBQtG=23p8t(6)U(*{Y zRvUTC006Gcx(=&A5JeM6eaTxh!=Nb^FxRSBgFm!ygux(t!tX8hqe0vFN22k&&^9F+q8m5pzGF00009 za7bBm000XU000XU0RWnu7ytkTAW1|)R7i=vmc5G`M;M2v2wM!KI7pMmMZj02OA&<} zT#P~7!4)=K*bS)BCO(bAVBI!G8y0dR-H|3u8aHO`lV)K++CRWmNC+V$*q}p(1#tw9 zy+j6y5Nibs=gB)WJNoihm29O)JNtWP-uc)?=zqD$8~9BZ4&Tt=w!0d-&N{{Aui&sl zkZZZG5#DAYFTIBKQ>D_&8T0)b`}t%cctOazCFf-DYSt+{DZQL=XVb21ZHJ3nYeLKU zeaj|ExX##Ri@eybb`$hchCJKpFK(_2kyqL7*j{5EIA^Cb?*(BsJ0C7OwZ!=9Cg*u~ zF+uA>L}PgqAb4Gclzm(5gzI;7aaP9miSvcSG99=qv`V20WK-L& z2+He(ht}mk6-%=cB6RO%u-*+Cdt&s{`2uCTVQUHN1A)d1+ zh+-PT@6fOmB6R&;gYFzYPf>iS*6sCsQrJsz_iI(6UddlUVXvwV&3_{8ASs+&__u}K@?_%1!P=N~}@RQI4 ziU0%=18%ptVI_oh+3qIKVMSVUaFX$9(u3KF^v-W2U;VK0OE5g#K@Ax=7Xo`lU`x!7 zXq>C#6YnLO3n8-H-d+!;AhZ(IW6PDokv!7XVPTP@jg2c!GKyRkXoNI!$xH{L2+AP^ z@->R1ZfLkTug9Z_$gC26QXCGwk(`ncn^(-i#>P7b-SK&r3EiR)W?4BX0zEPF(>zYQlFJk+E`$iZ z)jNMi(5+#sIL<);EQN|5C)USzOM9mScJm<6!gud(bj!QIO&w^}h3}{1vD-zDE z7ea^_T|7%enzWm!5K6u^^pp?}L+j7ubleyOyE0G;pFT`M80^+veHg}!`~HX!*;vlH zr`QOg$Gnwiw3QcAfJc!4PVQ(Sm-~i}(|X{`Kq-U~NujSR27$TYM{dy=wRdC1MhKI7 z!F##r1;~_Wq}T}6e>cwkNC$ExM|2~tN51|BXzxZM^4s&)xV&Kf;yoPuH-d?&5D3>; zrIfiJn2$L^T**zHX_Y~JXYmDNL4B54cG>saML{+1uCRKFmUrkHn+EjGPI+hP9x1Of zth;hEYVze4#BZ*CXu|S$U&+K>y}8b^@mh=Zxc~0@7vM|jtL2A4`Tzg`07*qoM6N<$ Ef=AAyzyJUM literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/hariyama.png b/graphics/object_events/pics/pokemon/followers/hariyama.png new file mode 100644 index 0000000000000000000000000000000000000000..541c6a2f58cee07c6795093c46861337f4ed18b3 GIT binary patch literal 1187 zcmV;U1YG-xP)G?rXiMd%30RaJFAqny6!O?*^a49=F00009 za7bBm000XU000XU0RWnu7ytkS8A(JzR7i>KmQQQrMi|Bgo5ND%gCIH8y=X5b_)u15 zX@v_l@v;l`MXPc^OY|i|=Gka>9l61-z!@ zn}k=E_%aL^^)2iIJi!Hnw{z~A?>VYE(xE|m5Hu)fOS<=S7^=;FrnkxW5%^erzOPSC zD7RBi19nBs;=bn_$?~AjcuJOp6ZS#4=uA$Rf}7k~j0$R9bZ(ESUo+(s8Zbm+;YCv{ zOd&Ne8GB?&Ig^uBB<{=046Jhw)x%Tq?E44ZTa75Tnkm<(SkL#2g)2Ivedm^Lg1=-h zAO=od)Dg%G=IcC-o$j{}$D_}W&JYm@GM?QHaKLjTJOzEw@7|hZ%5=#|&Tyiz+xV~L z9{Ov{$FYNcwDkUEs~!hQ$4zudxZ}*?D9H%CQe^-h9oYe$@f%~$OmgP=uVqoX>bg49 z=lwOt20=XePL__x!FfbFj6Vp^q8n_$`4CplEYNp4Z5HCBL-{M122u}wGJmE zz^;e6b$QtOCS@MIfzZ}YTa5}N6Fdlwa>Do_LW#hyTB8E=vX-7rp7AlOs=3vPClk#T zdr1VjAb#C``h%A84C|Z1Sks2Po|#zkQ)mXhwCE# zQ`HW{2gJaPk*%svQYHpU9vXsDqf6wGLilTDz+IG)D2fI9F-y@V_tln(`EulkGzSglg_VL+Co)E;6%v8dFj+y--8>HN*iXq0GS=3o?$wYHWr z#}(1Dp@N%Tb;Kl(BB4Fc5}mEY~h_g&*PGAgTAR*lQeV z;Uc;#FcK9hf+hOA#C0TRR+&0oUhX`$!Nx#}q&S_le}VW0&p(4PlVulObkTn!)xOW4 z6jic)kBJD^kFe@xo=1KuXXFa6x8j4W#ws6lOEFqr8fB2pN?*&W#*|u~y@JGGRopBuJ9izfA zaW3R^kg^VoQ^r$q!j8U$0p&O{lmK!vq`h`ro_#=di_x><9v+T|!=IlpClF+zW<%OF zW8Heg0w#86g+2({MIEa=ql*ef*$egKRgtrdT0W4_Q7evFXFki$Q<~T;n3b)RV%(7b?dUBSF6NCxV_;m@kAhIuL z4T+u&t;%5Hmxlt&pKPtPppPbtB1f|9SR_j?`q%mkDbyRNYXl8;00000NkvXXu0mjf D6YC75 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/heracross.png b/graphics/object_events/pics/pokemon/followers/heracross.png new file mode 100644 index 0000000000000000000000000000000000000000..3699497b44303a23b40ef1981c4efeb3b0eeb93f GIT binary patch literal 838 zcmV-M1G)T(P)K)z502KpY3~xh$Pa=N8>F1rLF~z?P8UVIQE!K1f(BW^7t~hWc+t*K`aN3O(ev zm;KB*-=CwqiqKO%)qhZvlW|u?e1zh^^}9jf(Dj0Igcpxkleo}#1BY%F9E2aWQAbNp z;=A+&6}`Ekn+oRd{ZYfd%;wCQDBEso=yvo2JsGub$~>XLg!Tf5t}8<67W-pnQWM2T zhGB@gq3f|(mS*W<#D2D2N=!@@6%<6`(DfKF-AuI+TcGJOW0lNO0I|WLt12|z(zYYE z=iteVA%-$gMG{xFWT2$}h!5s7kUCWp0N6(|S3N(&{-ru%nD6Y0*e@^pfkT&%mBa6__e1k#exw14UYCK&RBnYG!;4p`%hz)^9k5@l ztH8~cFW`<^PmXm^B3A?s9D6i!Y{w1TKoqt1ym}y7KwtwnORWjSG50y&qH81vft;ruGp~&u{O6&n*Iffs?z}TTb##v1k|y zDRk zdr#uBj3T(mJ5H?3HG2*$QWWG&Z241dgPSB9=F(!tU-M)YS57uv0-8*Voi`F*6<3{p zTJ=7~mg;ZhOgMFN1NF)^Wu$#H3c0RaKwIXRheK{+`&000000000000000(>b=t00009 za7bBm000XU000XU0RWnu7ytkQ21!IgR7i>KmCuUXFc8KCi$Ktm0s`S%U<+Zdxn!?} z-tDrXX&zwv29==~DTTOTU8Q&(OOur-lwL|ceEH2}z8U?AjnG9G zUG)D5=V|_Hf64O{rw3R9H^^2}a-QPk0GNSc*xB;2oKAcP$f%HzPD6H* z=53qZX&z;+4+kS(WQ zfB3R+%!e_^qUA!!Z2Me=2d?^d+UVBX6Uerpc`%!qUY*vp+ByEvJR6ev+6bY$dG#U_ zwOa>=0N6&FuXS0Mw}T-bxEdOoT8L6_hX#wDhk;%-532I~em1*+T>~YAIvGMncwY)p z{}{Kh=V70(n#Y;%ciU|CD3DV3_W3e4c)UM`#t|HQLxsGxEB+odSUmac3Z6cF{5%>e z<+uX*DA)5v=^I|n>k>4;Myc9=Tb4@c9OV55L7u2Cyp{W3@RLJCj)Hf%LReIPoPS>e qzq0^3`$8aSn97q11(p#cE_SxG6ek%6IsQOU{CVPRoOF)``s`FUYE(YbM%iCF*u00000kO_(>00009 za7bBm000XU000XU0RWnu7ytkP)k#D_R7i>Km9cJvFcd{CdGefzZ|IU1Iz)6T-7gtJr%ss|`$x4Q#m@#*gw!o};=F6_b&LXpTy)Vz7mXDY zVmdoshxPgm=VB@|+v~8FTF-epkvF#2VcmJuHyfr-yE$>;G<^N2L9zsZk>qa zfmJ|!LLZ>4Rwi&&K@kx;$G(Ss5Bq^ktY_*cfyGL!61kU}Krs`d!oDZ+3i~G^JhSC* z-%j&qZh@E)D$u*8%n9|-e?^>B$J+R7kI<_1#hvqR%PVJ~12f3lX}0}LtwI&}3is`{ zZk8XZDP&jI3p>so)Pa7Mw*mSZ7wW*UFy}x6n43bjEuF8CJE#MRkIqe9<3b%s@i{9% tg<0vGNM~S$_syu^vC)XRah<_`>Ib>LXPH;!J8S>|002ovPDHLkV1k1R44MD{ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/hitmontop.png b/graphics/object_events/pics/pokemon/followers/hitmontop.png new file mode 100644 index 0000000000000000000000000000000000000000..9a64f87a5f6d003ae0704e6867696a1af6b2ca04 GIT binary patch literal 591 zcmV-V0G?Tvp&2=8vAMwk0Re$g82|tP000000000000000in%x&00009 za7bBm000XU000XU0RWnu7ytkP#Ysd#R7i>Kld*2XFc5~RGN5#`5>SqU%&tCZ4iRP|ewpQb1iQ{wbd?{{QnisZ_4I>Z<=E<3c_v z-n@W+lYUXav6qEh2%6{f@c=h~fbKYrKOy*_ZaU}v}46lhSk?4 zyk1#g`@Wos&P7LQ7oO5|*P+fE#)RWx=H0q5+znl4Arl!wJFa0Vw}c_{4l_>}XYzjb zxlqE~mbENr6n?c5Hdgi22TRs;F4in$wS@jiIg>pMT~DpMUi@A6-cvsy={gq%quw*$ z{Tv3|_nu#Az{EwQ^_*qh@bHD&xf z`9eKpG#m73eJ~_-j2@A`Y-TEN4Uw*yn5lt-zFsGR)oG|SJPotGD?t5770vL+x~Vp7 d>iz$zz5wSN&RqL*BYpq?002ovPDHLkV1jDA1a1HT literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ho_oh.png b/graphics/object_events/pics/pokemon/followers/ho_oh.png new file mode 100644 index 0000000000000000000000000000000000000000..714171a55d48f4b2fc027cf311bb9bc6fd603c6b GIT binary patch literal 2252 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/hoppip.png b/graphics/object_events/pics/pokemon/followers/hoppip.png new file mode 100644 index 0000000000000000000000000000000000000000..90dc9f1260659cf67e5bdd4ac9b771b345a0d32a GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*!c1!Rnt-_IxEw_oMVzy}P%bW&OUZRf-Zz)^99* z_T>9!-d_Q~b=I7TYGb@I(KaFQ-TdAK3l+_shVCb{On4Sl<&!g$jb^Q%cHWM zNt{Wv7vWYE4Ae?f*{`XdG$Z7BaKQQG6Fkd!ZkNv2cMW@JqAoDkUq?NuDat|Wr(bUt z&o4g%XNI1)ZkLpQ=1uH8xu?QN^_7H@{Li-yarg7y+?#Ht=+6?BR=o18-WKMILH6mN z+wJC?gtaHnTyvsfZC(A9_F{(IJ6{Diu6}!Lsou1#6#j&rc`3`vq@EwY^i9w(cg~%C zg?38$OWtkSXE^54dohsT~xOt||* z{FGb4&x(_0{hc}^-mUC)VivvbRk_2^D(2m_*}ONHAI$xHT!Q_E%ZE=NKQ;bo>ED~b zC^-3wpIEC({l(1UhK{GJW$vHcJGWfzS60sPiT`pRP451z5mFN1FK|%S^p{cpikr5FoS&0Dw0g<`k000000000000000V|e~t00009 za7bBm000XU000XU0RWnu7ytkPr%6OXR7i>Kl)X;FFcgI=Sqx+=NbJ24Rg)~inVN2$ z7(s|ijDX+)5RbqUIATbO8_s~g~h=bAf<Bp5}QmzYn&-Z2l>vzu(r;8%7 z@}!&2pA46BEq;1pPRx3bxKPaV#K!FU!CM%Cl-CzI{$Fv<(H3zZtjsz1x5k!GUMtUV zVJ;Cn&5ORr9H!`I%4@~pVOE)y8TqqO{$u?B`}w{gWpk6A00000NkvXXu0mjf|FidX literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/houndoom.png b/graphics/object_events/pics/pokemon/followers/houndoom.png new file mode 100644 index 0000000000000000000000000000000000000000..a08a961ee091843c10ad98f4c632cd31c3c61007 GIT binary patch literal 758 zcmVd^%DJe0Dfst`xc}Y1@kr^rJ>G=Tx0jZ(6iD5xGIYDW0ak06K)iG}qF%$scH=J~mMTf$|Y_ilT3@Euw~RdPUA*0ZTp;t&B1O9r5>wZIMox{My-4(&y&Np$3PL63l7xh zepjuTUcfSHg~?!V7`8nIU=O6kT2rQjZX%l6sO_?&WSpmZho-M6FwPUctBu+&A5c?f z^b%uvhJ8jdPwQnu?)LHlDdidUdktfJA3R1|=Yt9=JEu;srhM|*TmsYK0pW+>_N|jG zDHr9{c;WIgqWwF!_v_&Gp2*_7g3@cV9~~ zR9CCbZ+ki8`Mp|=w7_Qw=Daupx7U8GuVXUo^#B?!myxr|<3~8BKEpO)xT-CgY5oc4 z!;PHR1L|~{kbF2b3YdmS@M5ABu*`5i+sGM@sM}DqF=yo2pMXW^&9SmM{_a#y7~{>4Mu8yuIWo54^!=AubBuRlp(QMic8r3Nnhn>dgh>z^1*Vi~ zM-w1Mje=^^2SocmuRx#|+%8|bqHWyJStd09gE(cGPLd^%DJe0Dfst`xc}Y1@kr^rJ>G=Tx0jZ(6iD5xGIYDW0ak06K)W1u^Koke?8w!O$2k}2Rx>&JL9J-d` zVx3h`oQ1k{YKa~ECj?1duBkuhtH~tD-(b>+dH2lK$t`dD%G1^MS;{|;Op(_^|Rj02CzlEFN;UgLp|y+aH)A~X7y%p zWA#P6JF8tO8}QSm4mY&^-uNh&v}PLsJw$9{vEWMcvQ-iB4g=er)i!zt)Tx}mV|+qv zSO@}-^Fre=u()4P2B=OgZ(Z!-0g53n`%O2;bPfV@j|-!fD9{Pa(Lg@RJ!x%l|D_#A zfz-201Gpa{djq&bD{St0wlct3K?BQNj(I6sP8|eZ4bOLwH?M{c8t8DpzZW^<_wDG! zYa9RvIvi{=U{f$hIe}p6KmfH5fch^x%sAi1%WIh5frdaA{C^1@IHwEAN;uH#Q*>R07*qoM6N<$f;Vgk&;S4c literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/huntail.png b/graphics/object_events/pics/pokemon/followers/huntail.png new file mode 100644 index 0000000000000000000000000000000000000000..9e09fc66e4a98e7b42186bd3ccc4ab1f569a22fc GIT binary patch literal 1060 zcmV+<1l#+GP)OqH+3B&t*#H0lqw|Jz00009 za7bBm000XU000XU0RWnu7ytkRnn^@KR7i=%mQQOFK^Vq&JOsS$Y@DsZAnZbffC#cs zQre5)!Rw|>j8G)ovSGy@y;X!XBrLRuNwK)lPtcw`Xb*eZ1e*%gPv9k<{SeOV&g{-i z4N_EmFUfEIJnu8_%+9W+{l6%6{&j-ozb)8N8n)DiKTV)GE(ObfIm4E$=WjUobBNx^ zV^t>6RrpdxRLB08bDjUM*mYg(Q~4MEF7Kh_nDpani~k38yKV`6D*swg%_ur1ap-#P zl@fIOa*@=Eh>l5Iujv}h$rz8NlBk@{pE^>TQW429OHc%~EorjKWc=aAx1QJ#DHV|& zlR!c*SdR|!?BsMv%+_SV^Nzs4hSi~HsZx_I>b{@=`i_&^3pz4ufXoEVPKjGeeWE)Z zu_EvyL85=kd`F05wC*^VO{a%NWNMxyaJ@89>Ye@~PZKHvKHK#~*y5C%dhQstody#u zZ7oYoqH?5@1a~=uD4_|eVnrmuoafvzz%;T2-|T;CiJXomGm(*Su8uT`(^ZbghzaJL zDNx72Cwjh@sqKGj5$+C5yGy-CcdXL$0S)7qs{F42@+gE z{&v7w15PyRkU}MFet9J_HG$JH{Ytr)393vTk4>~4xJ(e4s6zO>#}kyDl>>4htI3e% zbD~D4VBYB57ZXt4Z0p={L%$EZ0OsR{gU zo?yE6YC34u-wkSP1+yOwycuz(QCgZ!XESrIuwDp`{BDr%85$fH@AMY2EJ%51Cl-Hf z%JGW_C{2(pVDT z1%0F6fVTR&vmt~=eIZMNRFgEgxdw!`C$1 ezY9h1D)AFyGD@?zGGAo?0000jF;PJ=Sy4#<0000000000r(8Cz00009 za7bBm000XU000XU0RWnu7ytkQB1uF+R7i>K)G@D{Fc1fD53sPE63T8BhHOZUQgsTg zBcx71FjmJRWqBJ)kkt?J_B2C3XYGUs_7PWAq;|>;QGSN|pCJT7p7pF}{ikB%$73em z)(*rL1tEU_xV_8{#3tW*#>A`JLc4d`%b>RNZR^0Ovj^A~+P%vvFEkF$tOFw{yH~e` zcJH!~)^282l}lA8w=?af!+s=>Ka488Y&}z6t9Z;peTDEmreXh0 z;BCkEeLWe%mDOzcy7o>lelMJcYtwxT8ATm@8UwL)1!*JYVR3fY`lrSTq_Sycv{!ztiz19R==n*;Uk;XE4OO##U}&gD4J z?|yp->@NVMaa&6XkWN42eg#`I4qFGZ9Tb=I7zj0sdee*B5J?I^XAZ`z+5cPG*Id_#Y0=+VAB3tNIN%*z>7; S^3>)40000lzzeqZ-G2ymLU(NaEe7*DsGNLi(cDcL}Hw)jmbD!UzXAh%g3BX7lL6h4PDQURS@; yJ|p#W&288I$o1tW_q$ls)X)4l`MBga|5xs9p0Sr@m;#$Y0q^PR=d#Wzp$P!m+Qq#9 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/illumise.png b/graphics/object_events/pics/pokemon/followers/illumise.png new file mode 100644 index 0000000000000000000000000000000000000000..b48a801f2c7054c4a1340eca9633cc1310cdb66a GIT binary patch literal 793 zcmV+!1LpjRP)$w5I$p~2~KSvgsu>B+fSF+pi5DKV+3$?56&X=!l*0Rhpm>1jD>308gD00009 za7bBm000XU000XU0RWnu7ytkQk4Z#9R7i>K(?4h$Q5*;GTLf=7LU8DmH!JifsHdcf>I{Qtn686dqzi(i6D7 zj2J)y(S`}=z!?L91`SFe_m+?!<*e7Y@`uwtAJ~C#dj$ZQ0WMQ5h!ci9A2fjq0O6_w zNMY65LRgjO1-8uf=NaHGgmBdZcraHrz%>O_vjCW?JTK5(f88?};8k?=9>UF!BRS&( zhN~F&D!>CKJ8}UgumkUZAB@1&JrBtJAr%O>PRO+lxS(_9kzT*n>r(H;0_`2yf!;Tr zI9MGFqul}ppz~C6E0r4drhw{zzcMzUYyBF2gWRtuQZ~VN_Dh}yHrLncH+ZeY|$fN=S)&_p_iCNKY(2Jyi|`rX-*!G4IReLG#qF)(vVV7PJDH zi8VbUaMi@PNe8f?AoSySgN|T9K2R)ZJRlwlMS9JFGkq4E2^6^#nk_!?hW^cgx48ZS XMiabqCxuKq00000NkvXXu0mjfpmSQC literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ivysaur.png b/graphics/object_events/pics/pokemon/followers/ivysaur.png new file mode 100644 index 0000000000000000000000000000000000000000..fda631a53a8b1fac26b49a872d25e20405705ffc GIT binary patch literal 657 zcmV;C0&e|@P)G>%^K|w)5<(O4J00009 za7bBm000V|000V|0Vb6__5c6^2T4RhR7i>Kl(B2uKorIwWRy8L49?(8hX+$Nj*Y;J zJ1I99TF4}V!HWra@l?`aXxhc~5Xc-t{tH_Pso{w6kPZdYzri>j0s>FjGBjt)l1>-h zEhdn`-=yC=>HFT@lLWBQMjLJPel#BGd0nM0>snr0e=lky9j~iY?dqbgVKf1lYZy}F zF=%+}lfw-yCBv*R{+F95*@8b;ha*t(Rw;YpIH%ZBFgN^iS*K!v$jHLHp>}8}GeEh4 ze>;bL+$<(Dpd6pceIa}x#%Nl`J2l4%3}s&IsF}s>ui4B|F_{5!9rfFP+SO zz!POR^tqs5?Tlt!?zgx7BS@DyFg&C20Fn7j((U8ej3S=VpY;E)MjEdcW%iFG&kd_) z6yS4sWPOIyINR?f@vM4hlWr+fO0NPWUdq^YseKn2dOk<%XME^`^F%fX7cC#Lm7&aj z@xwPtznf|%W}`(EJSTZV_bU+WPv+&BxP;ndsAS$1b7KJ_^UItaEy8db=Y^r^<_HrE zmK=RpMrT0s?zw`|fE0-E>oYp}4k6+Oct;*%o={?(r$Q5q>rtFRg%^6!<4p83$lM#o r1AxJ689g;i_p^9`O#mf1zKvc0Q^yfpP8i$s00000NkvXXu0mjfE3PDV literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/jigglypuff.png b/graphics/object_events/pics/pokemon/followers/jigglypuff.png new file mode 100644 index 0000000000000000000000000000000000000000..ea877a890adf812292ce324f03d2cd5ba30b751e GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*vQDpnCR(PxbSCS zU}d7FO>_%)r1c48n{Iv*t)JFfc}Xx;Tb- zbiTc^F|XM`fGt5nK%0lva2d1z1@{*d3}qFPRD{xRoDc|j=B6Pl*>LanwHvvG>&&9f z|7ir-9r?R_LPKiq%}uGNr|H^%{CWG^wL90e{XAs1rZ!){=D6=sL5kY;tQY$FGNyy1%s6HsAjDkl#V~QC%6&yU8~# zzQ24s?Jma-k)ZAytV(=4Z(1zBe(Tsmr>Ex@O{?6c6lb&9`JTC?jGuez_75d$f2Y~1 z_Va6~Tds1xc=LPh*P3&$zcZ;HGXJ`-=nv1y+O(6$)o;F>>ENDY_2>D4{m;1dP9G{~ SnQlA}6d9hbelF{r5}E+7AG@GK)Ip2WKo|z#90ts(P-rkve}F$@7bXx` zdkFZ!f;oC99!g!2-9itkv@jZ|SI^!(?4eYs$1N`S{eZoAa6u^wdoBnYXOd5JMyQ61x2@dzj66aeV1ALx1fG}{o(yDCjVdT%(9Li zLOctoT9kTsckAjYF4fwdB}Kg8rq9^m8|pZ{y8s9H+b*ZQN5eg<`0HEHY0_@)A0ZR N002ovPDHLkV1j8#D1rb0 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/jolteon.png b/graphics/object_events/pics/pokemon/followers/jolteon.png new file mode 100644 index 0000000000000000000000000000000000000000..c75292549d2f3155ded51bc02c6a64bc3add50c1 GIT binary patch literal 740 zcmV8WWU`NK)lYBQFc=1KOHmFSBZxw;nTEv8sS}YM zD_*p4gF-ZR?V2x0xVz=u z2pep5h8z+KZG+1qQg5u`aLNha&auHZgAn9rXRsW!z^Sj1hUYU%37t<&UO)$+lbCGJ z9H)({b=Neq;t}C-ln{fF%>f{(I$XCMCd5rs6g&@0)3W4ZB*%0&b`3_>LX5|cGo<$d zz@5X$a-Ju>X_+sba!fCbw(pCg5Xu|W+<~iQvY*9}5v^suKP&;3Vq!8X{GQ)CAg!%( zIz)a49vkU=?$HASU^%LpR~G(_INkIQTFVL(A*L*0qlwPvvQ0T@)z)pgxDhZu-5#_K zVF@(7{9sk^?>=rJ6G z>Ukckwu4LmcAC*H*1N3GPxrg)zR?yhE2JjR{9YP3gO`olG%DA1dR<@VHCr@WXBjoQ zC{kzbR3k3!t(~=c+=-&s%asOlX`wVQ@W{ZehSZ9ry%)DyM~}?bS>>Njv{wJXknMKlQC=KFc^mIL*1h|4%U`rD0DPm4m1Yh zJ8ta3QSj)}6XXvZWHjo5Ru?+x59D`NmZjQ~V>L^cl5a_@SNh)P6`!K$TGzVPXH>B} zvxtiDp^x-of7p&4&>n&vg1SqL0AM@XvsbI`w&G&lBfiYQCl2U-!$f_<%uba85@CoKmQ#i9@t=5)<7;f^31G-Nf3nA)zum4S^ zR?}(XknR)TU{RBiL6r&ocbYh)`@|)~M80|k53ItB^}BrHrPgO>b)Wcwv8Tc_D1NfG z`WNXDqovjtXA_kNOo|_lK>`D~HYDWi#7>o+3siK8{@Ay)CvE>jVgZUS(PC#BR>O%a zRU^n(LjyI*c!he0h`&H3oYyiS%15Pt2a|?n5@5*N#C(DUnjDpUyx5NR_CeX4Dbq_?E2`{%j2R zf1QYPZE$4jl*Bh7}!Jx|PFEaoD002ovPDHLk FV1nmCDw_ZR literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/jynx.png b/graphics/object_events/pics/pokemon/followers/jynx.png new file mode 100644 index 0000000000000000000000000000000000000000..e2c2430691b26ecb23bd953a8f31ee301755e629 GIT binary patch literal 880 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 VvWdtlEC2ui002ovPDHLkV1f|l(sBR* literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/kangaskhan.png b/graphics/object_events/pics/pokemon/followers/kangaskhan.png new file mode 100644 index 0000000000000000000000000000000000000000..9faf8c2adf6cf28267ae44eecf004d998d6335c9 GIT binary patch literal 841 zcmV-P1GfB$P)*DXF>9(Wzl^adAO0AxTL|`N?_d>G`>NacKzw0RaIyIYEJOk$F)$G9e)n00009 za7bBm000XU000XU0RWnu7ytkQzez+vR7i>K);(+6Ko|#bO_~HnL){FapP*Z}Hed?D z%@8OZu3iGMQ*(nj5QREg+?GHF5BUUzP6Z8z!VUcbZj;DGy+&i`i#xVU3x%c{4#D-# z(n)7UN{6&tp26_Dlb-+iu|#4Rmvvc}^^c1F#TPAW{d~(vdI5hvTx?jiydD60u7}-b zzX#oAeY0xAgmef%m%?77JpjBWTjFAGQnssFtc-VL!=>@0$-B~P4W16c##C!qwW!1K zH2@xs*PHxy^(p}OSNG~Y^?yQAGnqwOgGBfH+#iMPG9Q#P!6Ui8HC zp3rkV^SoJuMZ;(Pai|9@SeEI$@VpOxugQjsXEU4_wT|{b-SkmhTwJv*$GJV5z4HAg zn-LZj^lBaBch50Nip{F!m%>r7|1k>iq~3-TVMcIJ9zeGxvIx~iRPlT%kSB`DfT}qr zOnlUv@^*^T^2Ak(iAH3FkpmX|%zQ;TpE6>;40MPJP|lA@X^gcW?2HX34P8nT6#KO{ z35^*eB&B(vtIXzIOm90SLHP(&ZJ0Q4J9i%s5~c!3<_KpE2zTX363%LU>~#_v!=m5Z zp|1tBS57-Wz6|cEhB(N4@GCPN^PEYR9GJE&b!C-@dofydjD+7iS20 zARa7^@>^iY#UmDRl;6F#1!>5+nz}Hh#O3;nnY2*YcatWEJi*w7NI8bmD!>?Yn3!7m zY7OqR7>V^)%}x5Yz5IJa`RKuG+iq!rkTa6#2XGnTusAa0Vq9fEbL)m!(E1xkn<0cf zI#IT$2_Y&2<3vngai4SKriC{*i@kXQsw`Nw{{-j_4G0%Eh0Fajf3eRl{J;7G268x6 TZA1$Y00000NkvXXu0mjf$}4+t literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/kecleon.png b/graphics/object_events/pics/pokemon/followers/kecleon.png new file mode 100644 index 0000000000000000000000000000000000000000..22540441b3f3b085f079afaffbfde5f773f368ad GIT binary patch literal 739 zcmV<90v!E`P)K)xnC|Ko|$`EF`3dUY14DJ^KVDwiT%m zSS@>qkPu^JHHTu?^GYk}b+KLJ(u?#FTtVy#g}P8$3Wdf?iKnQC;Jizdu_iNPhL%11 z9YTJ7$$!SlL>XpZ``XvO{r5(5^TwgL zxb%y|&&U9T8Rp>}yl9qyOEc@t^>fp4lFj}A{S49fyIxa*J2KIHQ@-GK5(06fE~lq=c1RNApy|wj4kV()3xG04}Ag8&F?F1blHx2 zq+#BmJOMWv@(`ipZTnSg>qpg#sQ(uF4xZP*m)t1TiJGK0f!RXg6nzh%k$taLU#fot z;egPaK35z6?yBOms7ZM9;c>6mOU3J^LnBMlsXWrU@qh;O_GVpZwbUnZ7-1OD>i7E= z-JDf1j5f`DUlh8?7T`ZV#vGO^=nnd7lxM~vYE?7p5@K01)TqxNpJ7+?siAO)zi2@q zga3Fa95$dFJXNf(wUGhqsUp_3>M6_&_IJ1~JkSvED+~eYb7Y*p8~3jwGj=j*^#{3n VKYW}c9-9CF002ovPDHLkV1iuIUVs1q literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/kingdra.png b/graphics/object_events/pics/pokemon/followers/kingdra.png new file mode 100644 index 0000000000000000000000000000000000000000..8043bb032d06a45443d23e582a9d329c296e337d GIT binary patch literal 859 zcmV-h1ElPx#Md$}g00009 za7bBm000XU000XU0RWnu7ytkQ(Md!>R7i>Kl|65pKp22;K{s^k-l0?$N~JFCU$B#o z$Ot*6RSH$*~S7{ZhY=13G>t1xuPkSR;mA#?XGQRE>VDk0>d_ZxZ++;Ml{s_Ms< zTkMAyKM!Dx5xQG<>z}OG&CAuF&im`?t4u~^gb2Cz%pMjRbu&-a%zHwFJR3RPCZobB zLXpn{dXNQHa}nqTbs=NdA-0SwL71-zA`ey!Vy*@ILgXcZ1KkEps?ePge@(DISA%^a z;}EFW-$6j*f&zQfFc&(%H}46NK@!UL=WEBtlr7&l=G+K5Z}a(tb331`5h5d}b%(}| zJ6j2=@Yrrx1npLs+|Ijz8q|ddC)Mh7pgkp=rA;8p{6QX1ZUeACR=C<8`-4Ihv#AZZ zta*S0OG-!a@ikp(ker z$zpy&2rbAtrRU^Sa2w=2g}{tSJ>mzX1{-0Nl13P^>-GL@K~e}s0A|Z_Sytjc(1S1z ztWyX-4+gm~YlVm3mgMG!lAE#k;oUn*56k6s^!#Eth~MnyZZUbW$-guu$c5>CBg7CB z!ft^uI~IZLlaY(}ZLM3?wsQs4J4*8~w@??aaP z;*9j5E(GL)JCC+R0O3c6*H61gi56t@+=-65xfbjTjR)okvhD*2y>i1Z5^6#AFe{2w zo~yy0(0FEAPe2y9(@`j)9z<@j0GYKQ?5RT7bF9ED-${q24*H6aI_b@*>T08&%002ovPDHLkV1f|teG>ox literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/kingler.png b/graphics/object_events/pics/pokemon/followers/kingler.png new file mode 100644 index 0000000000000000000000000000000000000000..85b23939fef0266bc01720ef3f9bf8b501ead242 GIT binary patch literal 1156 zcmV-~1bh35P)0RaI)DJij;Y3b?t*=aH1!I@DxG09;e!Kr}&0000000000!qs1%00009 za7bBm000XU000XU0RWnu7ytkR`bk7VR9J=Wmb;SMHWY?g01x09@d=W=KtS4ZM+Jv4 z)sf-FQf&w`TRWajFLHw3($4JL=HNmQ;>wN-PpX9q@gqU}9}YlDN%GoW+iQDm*a#H= z(@o!Kl^*|l?DfgzCV<+UnN(@5kTHuAyZJ_7# z)_1B_-PimwFrU_+=PuB3r8x+zNLb41hto4D_%q`2A&!8C$m-Di1tx&`X8FgDtqKBpb>JM16O{CPuqV!XIC~)(D0W%XUisN_Yz;Qr-iMMW1=8sHjp)`G+d@$sKAO4 zR(5TU&vokpQ3xEf9+X=G`j!3q$V3|i3}=@`fHJ|~{e6BLIo&UxExl-VL(;5Yt_NuS^U{u}y)@huCu5qSKAy|3>xl&uxWJ85SGL1=>& z88*Cq#K6Zq+nKJK2T;IzszaG`nU!redB6mky@@wjzljCU?dO#s^ zO&>mD;FqW2YP$#azP4yebrM2=VJYD>&sa43;X$d;ecyaRh&~7z z0ofcM5TCB8Gy~GWo2BLn^r|4II%3oje%sRlgivbvjTIouz*LnrQ4$1>pv=3Y*+?&x zir)A&LOtV0ik(zau|4rWc*h|7eT5{>1;|N%Ajh W{nLk_n2fXl0000r literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/kirlia.png b/graphics/object_events/pics/pokemon/followers/kirlia.png new file mode 100644 index 0000000000000000000000000000000000000000..d2843518d26f9565ef95d7a5a57ff59766c989d3 GIT binary patch literal 551 zcmV+?0@(eDP)JNR7i>K&@oHHKo|z#Na%35SW<_8lUue1&LM+C z=q-T`T^u@OaqBNA9UO%^6s{Pl*Wyw^uv0D4p_#;6ga|H0GxWch%V6&=UZ4S;@(zI~ z$@hNTX-J5bFO;3+?yC6`c>`R`@UTDN??iSI5Jxn6i;G!z{mmw>Zx0|j9q^NZ_jWPsM;p`_ zatkE01gJ?Pgs|F4AywFJM#!xiKV`Dhff}R~*09=ap~80b>Y^dHKr%bAfdUr=4O4AI zDN@*`4ubpw$?1S+xt_%pWQ<(oDGa>N8Z@_eE}OlA{om@6Fy9^va`v!&hfsF&yS>9nIV=#q(8COQq7 z5S-)v)$=M;nk<%cVOTO7SUfGl90Ln^meS$zL@1PIVP-002ovPDHLkV1g@3^9%q0 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/koffing.png b/graphics/object_events/pics/pokemon/followers/koffing.png new file mode 100644 index 0000000000000000000000000000000000000000..62a0d5e6592a6a2bd6e4c0e2bdce0f4aed2b8d17 GIT binary patch literal 644 zcmV-~0(IVm}Tfr07i`GHAM0RaJdX~C(f(P=qB$+>xKmAy{GFc5%ksRKiXcJCCrbghd-V5yWy zv|{8Pkaz+lrb-}D7-NJmD-z=837|{6=b^YuY{$OFEds>UoBHLm@6Jw@V{9AS*v9`x z(f*e2c+0pZ-r1O+7fXNTve_3)*LO8_b$PzpWn_A&cAAwe(m#l|1uDN%z?ARW0=S_y z@(WblZt}cXxSngW?G(l?Oabg6?J;w?U09*H(X-CN_pF5!8Cq1#>o*FwmdPZu2xoJd zdd3L1CPCn>3~?z>l{!uK!;A$& ze0+Z}I1&*z_VKga_A_aea87tloWnLpZiR`!#i_0?44r|ea1(- z;_+1srfXQ{>0lZWwl^k*sk53e##lTZh$|Kmwx9N~5E-!jK5Et;NB}w6O7_Orc<%&O z)F0T2%kQe$gWM)uxKxj)lIyut#%#vi1e%vV^N>f13g40fWzcEYF#W=wlZoC`;CDfX eerH2_e-vM(M=tlM=F!Cf00000RaI)DJij;Y3b?t*=aH1!I@DxG09;e!Kr}&0000000000!qs1%00009 za7bBm000XU000XU0RWnu7ytkPlu1NER7i>KkiBk$Fcd~Tc=A>$6UtNcB1Iw#h$}@R zd7D(q(3b(3$ze;RNVrSYOeqglWAG24rj^=k+=tSwT(0nit~ z!3taY1ZyahetVID%C^lF4iH~RNbwPIA)G*GBj{)-u)o9r{I(8R?P0a|5S<;usvU34 zZJUM4<`QqZuritU+2iqc*}%)|E;svEojrsl87^bDQC+jd+!p0h^}Q!{d!cg{crUbQ zKIL0ukBU-fyV4e_*YE^oOlU7;*Su(+ngDNxMV;BsTOS@xR&?QHdLfMoD>2K7{lR^v gZfA5fS$X7q0mrfFHCog~jQ{`u07*qoM6N<$g2b`uv;Y7A literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/kyogre.png b/graphics/object_events/pics/pokemon/followers/kyogre.png new file mode 100644 index 0000000000000000000000000000000000000000..5af391b3025ad5d398447127bd6f1903de7c12cb GIT binary patch literal 1311 zcmV+)1>pLLP)@x!E~6IpM(}VWGh(VVMB|0m<3%$tfvW5eXSNS(&M^)b@MR00009 za7bBm000XU000XU0RWnu7ytkSl}SWFR7i=nmceV=RvgFQDUb&hCn)js(WoKVULM4ruaw5wB$pd}u zp8j>R<0LQ?)wz?rK;DBue8xRYM3w~-zNd?N9QTYJCxHRy!JQy^8*aP^Z6mz#A`zJ| zj3b)>lI{?7cbE^PdwPQh@@P0V7*YVM8ynDfFTplo>$Q~+B;Ceey8g}Fa1tn1v$9va zr>osT5v4gkr7Z4(QMkCsr$Yn4?*2YL+KYjKJVWU+)NJTRDgh+EOa83&`weZN+QQ2Z z-LZksn0aZCGF@d2EBD|MP#?-B7 zGix|CyE%w~rQ@ACS?Z!@4E1n{q=2Sx(7DC_kBzrtp)`x!HU(pOh7+5KG6r=BrSMYdC=$(2R2tk{z)%4M(3JbvWULXKx56kX5GEVH==D~Jwz&oMGZ8oC(SatF$$1o{Q2?h0Ko-izP2 zw(XYCX`teE9p`6;qJ>YZSX!&!S4vv*R;~6-^#-lmXBb%^4SN{b&S4U`F`LyXAZc6l z^taE->XtYj+T0ckd&S=znE&*DSnSXHrDO9Xifn9%k?o&%AdtWwR1c0&yB*Y31$7D- zn4Iu0mQE{M+uNUr0TeQeJUSI8O9OGz-RBsYCbfr=(St*iNFeby&Mm1yl+-Dp=@rFT zz5BOqy!nM*^ z06f~jX*RXOEv0!&*Pp2_uq-#0CaQ6#dCz%=sufM?}VB zLoOoA1Bwe0%N8$*k1%0I3K0?;@;M;Hq3U6h}4VK1Tgbzmsd%{Y{!#z4d8!Ny5kS2e*ynl Vg>?uD8_ECx002ovPDHLkV1jM)UOfN+ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/lairon.png b/graphics/object_events/pics/pokemon/followers/lairon.png new file mode 100644 index 0000000000000000000000000000000000000000..3445498f290d6607524bf72cc2afb9fa1aa1e910 GIT binary patch literal 867 zcmV-p1DyPcP)G?rnfiWpLX_3jHp|R1?;b~!UK{-iTSy^#uc>n+a1yVK)4^-nP#g#F2MRfO+OTY}Q(qFKc#*t_ zw7IRx6CLa{=noS7Xx{Jp z%S!~{rC#d4slp!rb7{5RE`i^#v9x2y5 zrk>+)wivk2(@+EmuYMn#YLqHkU_3&SW!}J14Op!!OwTc!h4k!snr(?z>$Ic5fUhZM zm=|$w_-jM2oj5QtjvMx;h@LinBmsX|lKD#m4@t8s8|4i1vYl(%q1|g2XPdA#p1E3bB}fZl#(4WrRVVZ#kmqu5cyIkLSw;*G?X zcq8tXE&?s*p-jlDc{0F!<;!>gLW0Jk*)jsl>3H98>JdX$?5H6om{?}K=aR*R(?H@)oW8@>1~4NhcMOWy)vyu^a{7fHiqA94NaQ!xpQ1~73EF)=`22j^@R7i>KmcMHoF%-uSgz~{QmJ&?i0=ASG zimyv!0@><7rZ$s<=QtVMhGgzqx*4)$C6SPdd=%qU9!n_o4VeS|8!DZoJL#^} zE$J9--*->n&(p7GTh`-v9RF#Q(jj2V?Fab-KOOT7Xtww2A;8&ydj6B~H3ggjps77d zgz9AzkOa;GxM{%92!VoGaS}KS0Mh_71eOz@3;(u75G6y{1XL3VBsn2@=%(I+D6s^9 zpzHl)&OAA&rP)i@YTMGHKC(-9a}SGz~`Y> zDH+?l$Qd`adOGm6Dc-aF#$&_CcsYuya-@-LBNUPab|62PXQwUpyTn%R5uun15INAK(P)1LT7t> zFIY0?hp+#zYbl@xnAR5p9q@g;qv?H@A?UCeYs&1EZi7h(@Y%vk{E#gP1W`$t-sYWS zy}}TPVng3e0)}3sGZXH|9A(7{2!<${aBDlqx&a3&4M+`g0IZ3tVu4l20dQR|u};sP za)2+7O#z7n0J85+4!hG~Q5rD7$aantpwg^i1cwmSnvF2OQp3=N7}XjgzuvpPV17d+ z4Ha+D>?&r?G?cDT>8x0A_oga3YmVjLX5oCji@0I2{R~W7epjFTP>@j~9Lk18= zfR{XQcE2PH0Ac#e8>Z#!Ar@xMip>_f(kNkOzl=ad0PvGmkJ}*yP{4v{27s*R@6T_p z?^dNjQ)yWt+toQZAGJfk?jtVq>VP~GY|p`G9}y{tiUp8hWUKx`T5o&3_lqRjk}}ux zWFrFDaKUVbb*QzfY#S~$H%q{l6?0&x*&uNWC^)BcQH4Zl5}9u6%~BwZhTraNG#fz0 zLLghdmO|JO>JySWlLnZ9_JLv8?$kETUl?NerSwdIr7c$gfAd%CPb2j==x_fQ{Q}`( VY*yvcccuUU002ovPDHLkV1m-hri%ao literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/lapras.png b/graphics/object_events/pics/pokemon/followers/lapras.png new file mode 100644 index 0000000000000000000000000000000000000000..f55e3028db1e24253f5a6c479eedaabb451f1052 GIT binary patch literal 940 zcmV;d15^BoP)KmcMJ;KorLf1_g>1bqFbR$rY3ev}Eg$ z(TTz2F9;djOR6Bykio%JWNC+@`3iyu8U+U7DV?&pYO0__e^lRDce*s31OO^r+AM^SDPrwH3aWNpLOrN~ zs0O`;CXg=zN=T)^WE!eufVm(Y7*T^f>-Xk(=nnGFpf*Te%Nv<*0vsdHKL8Mw+!JK!1t zR|?Q?r~}tfg5gUu-aQa?OhcAkv)(Zsl;1pfqc!L^)PZX#-IHu!o^^aikZMfwfw z;}D|bryJ_Pbu<^nrA&uF9O9qPWi7Dnmzow1aTzs-{e}jR=a1(3MCR?vap=ur+||B! zHi@Qryue)~cfV<<12Hyc#bl%`HoIh2pLP#B2l zO`MM=vodN6hRJ8RDaNtfR@6+_cs-RY!H3oKagB~!pmZGEj^koJmib{4fv_hdf#|XTekELUra$MXMmvX|xO-M;xH1fI~ZiT3q-CGCGWXgfA zIGGmhbhjz-GDD!8q0Mfi>`dL5dw7?-bLduJw}xQnV-`qV5#LFYPp^r)5)E7J$)7^W zZYet}yUVF&Clo)OwgIXjQuq0=#s@V>KCVIa-Eo|%5ldS literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/larvitar.png b/graphics/object_events/pics/pokemon/followers/larvitar.png new file mode 100644 index 0000000000000000000000000000000000000000..3ead6cf48e7cae8d19a4ff748e3852625cb4f018 GIT binary patch literal 479 zcmV<50U-W~P)G^pfAt500009 za7bBm000XU000XU0RWnu7ytkPRY^oaR7i>K)Uj@ZFc1ddY#_Fi8kvrHl(r%2ilPfV zL91-Il4Y{t0g)$ZP@b}wC~!W>NJ-Q#<+jg1zQZQUVlmfTbItXSDtN>}$wFpZs(8RE zV7@=Dw~u4Q_CVZbR;24fFfl z4@<{y&fRZ#>(;jKeoqcaw`*qrv#sD+As&R^=pNf~jfVt*p1}2`;Ro*a!tbSR=&{-D z0iYT}?#p6=_)<+6wMsn>L3R!Gka1r&7)(ty;aHXQ)YAHz>joeuugqi0l`5*At@KmceTqM-;{f%nmyBSZMx&9s@2dQLarhS0_|Eja`WQ>N*uX-FybRC%Ecy48msN-wMR zLCoLKnSDE>l`Q*^ODS}~i{EJX`+o0zyDK5||N1vq>s2pYxjs8yAy_-tM`yjdH(y=0 z-agjH`rURy{JGh8IDbGo{U`SF4Q2+mGD1cP=((HT)Za@8h7h*5;x zHeE)H`AKuQ&FO-{p*47`Fz95uC7f1TXh#&cQ+LA;DGn!HHyY8U#C5J#rGb@-pe~65 zL^Uak+83E2?udyp6e(-u8{K%5MItIjHX|+vxH;s!*_as=#70n+jRw{AdC^fniVbm| zo~n8(HhK5=8$tZd3I9&{bz}w&`7`24aYBF49G>kohrLr;W@Lzq zjFiL5V?rKZSNcUpmKX&4qRC$%l-%!>9pR}V9>aZs*`K^Ql*Nap}RpLVM zrn>gl%cQL$4-?SC6Cn0!S<9VBi1bX-GNWK!6FVMc6s1AjAtcMaC}mY*5UlfuA^C+6 zDG%h{GGf(Hrx!Jc=^%rS{4@sQJSsL=8i(HQS`g+DnJa)>75S|T%KPPgC4pF)5#gh2 zoIl;7W$hc{i5a1s5;B%>z9l|Tf{NJ9?|!8WJXeJvTjfZAI5REaqt~0mJ6qJ0GSv-h0!dmSt20P$=@ z0n20NRli&dVmlIaFOSu~UnG|hqX+7fp$BV>^%Nc0m-W5M-fY^@Y!df7{U_do7zUntqL42wH be|r4`Jxp}pI@Gz`00000NkvXXu0mjf?hhS- literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/latios.png b/graphics/object_events/pics/pokemon/followers/latios.png new file mode 100644 index 0000000000000000000000000000000000000000..553453a311c6bc0c29278f45a134ce57487b425d GIT binary patch literal 1219 zcmV;!1U&nRP)At4DlSpfk7xyjKXaj8L>*&!(@>FN2Isj-2PnZY3;%%88&00009 za7bBm000XU000XU0RWnu7ytkSIY~r8R7i>Kmd|VBMij?Y0v?KwJ+!5#isJ2x9JaXZ zF0FkjhS206DD+}nP$~z?G#er-Nq5=)lGe_lEQ`dGZz9;%qzfseNgT76Yf65=fmj3Bnrqgw4lY=?lgLOoB+GZw8~ zO2@9!7sOJK`MECU`ADQrEQ!Me*nu4f%4G;HfaR!^CvM=x0(q2ryl`PCiBmzl<&Lpd zw4`4FBr()QzT=cBEi(g7->7HAg%U<3e$ivW3u<6RtOQ@8;~iFQK^25DVzC<5)ixJA zzV!KBqm&UhB8(m~hXrnMgXv$#8L<>x-=#aO+9Qw^X_h4RMLxP}?dtm2y-X%Fbzc%& zdXE|E%%SCZF4NZ|tcax`I$OM;u4bCh-A@g+CGm0EvzGg%uD{)Kla4vMfdw&&bhaq# z9~iy*?N7h`s?dzyx|R_SQ^D$)enHXaTKq6Ag5wFEzV({jlmHQqcd#BK~lz|{l4K`MPeoE=%>gEy_2Zg}RLHiRB z=h`%v36MdX4SS}UBW8kJpt1PJYxljc$tZ?yy2=}pcq!dh_Ooxk|LLPAc6!7e0{)O0fRsw{Bb_{WP8#zE& zfOzgo;!}X3*r>K$^}GiF{vi?1iVaD;Bo#itN67E5s%MlVhy&%g84?n&iu)O{Kav}N zq5O;YD?r#4Yk;sIR&N)l|Ge3|yOjwFVr5teEkgXbo~Dwx`)EbZ&~Cr-I=n~ZL6|09 zH}3xS+4Ja{n(lA|<)<}ci}8j%bs;4tM7?qrszbjf7kP$wUEc;c)-waq5>)^J2Ot1a zR}&KAcS%@PmJ}ZlILO_dCf1&?nWJYfYzeXh%XjRY0VghIEz!P! zH7ys@#9Hw{{J*dzwrS>m8>GZpOBjMS5tGC-!CJzI=l_J6OFR>k#Ipu=V44#xnVs>s h`u`ku^7o&NzW@Oraw$AK62brg002ovPDHLkV1fi=In@9F literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ledian.png b/graphics/object_events/pics/pokemon/followers/ledian.png new file mode 100644 index 0000000000000000000000000000000000000000..d8651c2ff6c63884946d39c77bc1149fd62a05ca GIT binary patch literal 1027 zcmV+e1pNDnP)<3NfBw8>FN2=u~Fe6IRF3vTr6#900009 za7bBm000XU000XU0RWnu7ytkRc}YY;R7i>Kl)-BgK@`T9P3eM1K|Dwytih!RLvTO? zO{L1x7|@*bD2PZ)FC}b3XG@#CROlRX5>e(7=t&Sf^%(3WhXlGu(bM)2gCP{=Z}82| z%w{%StQQf)7jk$z^SrWfB{)A{l{-Lb3xd^|N$hu@-%3v)HTr5w z>Dx8a&SxjeBwlM+D>xDXlngmKwCUU%l4+JH#5M1t#c2>sj z`CX62$714!B*ro2vRe%p16l0W^4#G3K4UHD^I9S>94QA76vRT%WYO8)=}EnJ8boI! zCCJx>ph?HINen%8r;w_^dZ%pSva!5Xk%$}0TjqiRC%!KP&D&A5hfdh>N;`_|M6j*| zEx7P5L|_5ji^J!SduOm=;@Q#w5^=+a>dbDVRYBZFtNhuOPw3u_6V|(qRzDgS1r4)M z>vBOxUB2D?(ffQBut~Ed^h6?9Z>l@Uk%PTsAnrBELHqy_xBYb^YCSrLXXXSA1H*9@ z;Ww_v@17k+)nMXx`szd=5g7WRbTlf22;ws7lw!lfu-cCBHEJYRZV^+nGGi$Ls1LFmZ=W8X<)@Oa>Q$KHZ?(>NdNX4h9FkYP|3naM<1{;o3YvK#WZrL zvtS{E5&H(U7RRoAc<4^QwTA!zMeN6 x;}?}qltDaS7lCB%QRegfu#8@CN?r2zl{002ovPDHLkV1hr{*E9eC literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ledyba.png b/graphics/object_events/pics/pokemon/followers/ledyba.png new file mode 100644 index 0000000000000000000000000000000000000000..32e858e2b77cd3cc9188040e5ad28cb6851c4b25 GIT binary patch literal 1025 zcmV+c1pfPpP)FM$D;eq*aG2uBOIXOAu$tmgS`2YX_S?-on00009 za7bBm000XU000XU0RWnu7ytkRcS%G+R7i>KlCf{wMij;m2}CYl=m4E8z-9!)LsGO| zx^yBgve0PA!WfA>Fh+6(gfws+%LGKBgW!Q{vU$iX;92k#g@8|klQ?uCT>>auVQ@1t zWboh6yW^2ZD~W>!Ejlz09PS->@B6;r9YSC0YyEG_T>qB^Iz7F1U9~8=H~y*lCes2X z3aLWr_U_=zNBU>F_DCZ#hok7*|ev-(9<03M{-#Rx@8#MEH#_J5Z>s-NXu))@= zxHTNF$d)6MiCBir^w*mJUcu9uMA9+SNbbdrAOc`HCEI7K?PjyHdbBYwdM=(OQpn8C zcm)7@4W<=}iMZn;l2Wq?K^ywxOu!DER=@}Bwl->Au3!h0QJyFmj;U1a0MIr-un+y* zrbtw9+@Tst37RlyFo;xtAq?^I@9zOleOwE>ykBmxp-9A$)w<$I1ET}ir5xRnLgtG^ z%CmG_K+@iO553_y%FJ+q?dr)J*sH(8p%mEm-89k4W+(*q`)ts<<+g_0l|mNrL_STC zNyh~wZTtp$5N+fL?XbI8eE@r;%2yo8Qi%OD(Pk~=y+K#WD`)5NwfKJH8B)kZB85yk z=18(j2>7t5w~1}7FmF8l82~@yD-p@YSt3XNM2L;K0CpB*!CfMAZ@CSHOgiq5{cK?A z>2(@yU>wfp3Wx+WIi_3Lwb@xB^^1-1)tx65?8sgqJK}=NEJY?AgO5X{U>sBWFsWd1 zf2xerUw%s_{)2bl*m%Yv+@bby7=Si^RiVb2q5yZJV`Fa8KS8~ zOX2p_a*~uQp*+H$U3Y;evg|M&DIHJjT!5c{v1TnU6$I`wYciQT)B<-zA}!$DnON3j zt)>K=E8p`()=zfIEOl)CVCMsgfn&U;pAj;+!rURzi7tyoi%Rf<&8n}HB(A?mkJwl0 zuSFtOS0hu$-=V_5lla6##SM=g==sx$&W vX(GMxf#c8BRHEscO7wZhf4im<{ipR8+F#Rp)L@A!00000NkvXXu0mjf$9v@_ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/lickitung.png b/graphics/object_events/pics/pokemon/followers/lickitung.png new file mode 100644 index 0000000000000000000000000000000000000000..715f9a5b9d81ed3904b32cd88602c462617ab025 GIT binary patch literal 642 zcmV-|0)737P)Km9cKyFc5|{O5*_fx|M4WiL2%JU z7hUxKC|~~_zoZ)5?fD#faXtq@goqDkb68^QI{GZNmj`frE|(G#$Ia(s3D;+GsNly3 zdjXGCX@tGdKjY5OiTC+6hS27DGsLVjtn*-ir6PEb_>TOB88&Q)`RF@h!_7PKxjP`= z8YhEXB=Sm$)7O050#6Adl;*SYSt@6M4cI${n%8C{g)}7Wi36rNc^XH_8ipRrN<(;> z3a|#6Ticg`1k76n&By*%p$uaLy%X`J&*}gI5duc-00$-G0KBw)&D}szy*kK;AqG8Q zboID!S%*UMcmQT6W{QcKV8fMRwLZo7tDgr*kpbwHMbr5KJ~oDrJGosgt|!K@P8Hh$ zLY@Ih>yvzcwcG(gnON%sqTa#&0StEsQZiq{#NlMMaJizqqV-9R#P;s?S^$g9e0Miw z2TAOHru6f4_9=6DzI2(;Vv~^}4)-@es51|!f@NixO=n{#@!Q+!j5+~vPA40uUn#bM z`zFpNb|FEo3Jy!dH)1Q?M9~kdvb^Z`^McxbG^WnNrHV1_{e1*cAEms&XMOpE`&;-; czwqz$3!}ap)px;SuxSMNm&soVL6e}X^Ekc*#Q9oDH$nIIZ?quVE_OC@WVKz00009 za7bBm000XU000XU0RWnu7ytkQN=ZaPR7i>Kl+TOPKoo$7qKuH@VHZUA-yx_b+0sje2uS@9!>AgP zezROCXy3>YCxAi(jOjS+^WFR^F-+3t1W0I+56>kx%zFkx1g!d|rMpnTLfeyFlVxo{ zAyvnfi-APH&z=Aw23DudE!zhJqlOoGU7z_g01^s@TYGVD_kyp_6Bd9c)V<3sFaxT& ztsn8kcAI5F@5)+mw&BeeA|SQ);!nmH7%XivN)C^j=6qplSPOzc%=Q2w27XaTU-z@O zo$YuvO5$!-gM_5*tp>ran12Ueh=B*&NwP1)-^l8G+>AE|og4s!g62I_6h+P^34{gU zwdBF)7B~o0^IvYq*6Zw(AfaFk-qu%?L8Jqr^GAq)r>BfXQ#fRUwZ~Vdt!Or6EM&CS z5S0xf8!|7%zysZW)O9DkAO*M&@7SFg01F9;t~c)2jeN+w5Cf}+{+m@Bo#e>7soeHC z01%S&RLkOqns>V>7&`J!xM(iy^o9<%i1Xjhkg)Yd^9myZ|9&|CxA7CvLtVD}XPn>w0000G?q^5!unXxv{C4aalo0Q2+n{Pz%0X00009 za7bBm000XU000XU0RWnu7ytkQ0ZBwbR7i>K(m!w0Ko|z_(+xK;FfdeNGaf3$83}dB zLMD*-2(X%fE>az5LD)i0J_O&u%7|b>a;3iZ(n>J+I>68jZg)NgZ~oYKXW|Qz1yi2w z=fux*u|voqhaB?XLS4K2ho^S;A2_$WZ&-D1b?=0br#AO}N9?AA)aIZP#NxjgkXOFN zd>jXk#rp?jYrr%M9w%IMdw;^RGzMB`d6DEOm|7NFY-UY;Dy?ODw!lHU`)@%EH^*3X0e_Tn}RIglBPa zs_t)_P09p*c6fZlVVnTu%g8WXZ3fpjyej5rFSUY}J;+PA-ff0mS&9AIKFv{cgSbDN zeK>0N2wPh{Av{hF(QZ%SJ-|~u|F%!FDjXdpRdlb*`1%Tb!p%T!XLGpkALDmYV&7<| z*O@%1;D_gT*jpV3mY2>>v+(sY9!gBx+P{Lnc=+r1nKn2;59j0^uVzX3BNIwtgBLV5rI002ovPDHLkV1ggAA;|y$ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/lombre.png b/graphics/object_events/pics/pokemon/followers/lombre.png new file mode 100644 index 0000000000000000000000000000000000000000..72b9f1badf97c57e34cdac518cc63c439d359e6f GIT binary patch literal 679 zcmV;Y0$BZtP)G^>v5owu00RaK&SwV5B5lL}DnZco{F&O{=00000FWlrs00009 za7bBm000XU000XU0RWnu7ytkQ9Z5t%R7i>K)xT@oKokdXn?TXnbZLhyQb}!S2g3`N zKw||lWb4$SLnos^mvW|eG>hW1t!J$M0flBtp~kC+1U%JH@Ss1S{cn0_66McXPTppHZaq*D$6z95{=0fHMWdM(##2OZ!tWkEohOAbE6-F9B8)c`jIZR@5E zfM5`GD02ynK`M6o1bqg~cznxxLQndf!$45x!e>0-yFEbgeP0ZcyI$MtQ;Q_P;4~pU zn+h@ew%h5M0@-g+mqfIKp64+Ufb(u*6%gL3QzlZP1xZ* zwVmQ6w!LoquKt;qt15d<(t0=iqGg;%*?Pk9&^sPBX}g~1xs(soYY(z0Xj`ZM`q$4_ zNrhkJxkq{YW4L&_C<@wMZ|T$LE39%qUy>ewdGkD+7oE0s>do`mtu!KOr@Qpb6S1vx zbl7l@9@5VGo|h$*>j0iHc*|6EE!%5Z?{o4u*&#G~8Ne&brXL1p`fEwz-s?srwp0bA4m?#BM7{04GDHC(_+qNM-; N002ovPDHLkV1mG&KCu7* literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/lotad.png b/graphics/object_events/pics/pokemon/followers/lotad.png new file mode 100644 index 0000000000000000000000000000000000000000..3e81947f9a22996c3d5dbba6be90101e4afaf561 GIT binary patch literal 532 zcmV+v0_**WP)G>HkS?Re!sd*V;K?wi=00000K)W1u^Koke?K;iZy5IRR9IEJgCyBRuL zE?}pmF^{(BP=wI62qAO9-9?9tf>ZrBbP)d-Um{6*XJ2q}%a<&ld*s~@E-{Qgefsq2 z)29xD^69ehXfpr^m8xnSaV>*!ufrTenMEbqj=C`m0mXAX4oPz%ggYc0rMRDUyCL0% zG00**k4(7lu*oU23&C9znufZ|p)3}bDIn{xNqP*No1#5G-Q^3z6c5$gSRJ-VFTfQp zw-)sQ>Mmbc=PAHun^NX^nxL(tzQzON0=9KS-DM)4=lPb0v@;n{W|K?^FRy3+By1+kB^&;Cb%5GIdt9C*c3mFIG`;-1_@;t`M!T}?{#AaXG?jtJfVH*NNG=x zo4uUka?YEEx~t3|Y-bmC*v1fMdt8nTR?P&JXX*s-wSW5vX(!Tlg2Osm*1mb&IkK2F z#mY~Q$^;4As-GS@Ih+6z_4kEt>g;`1$W_~read83DE$qlZs@1SpX*o!wWR$_|25yC W9=K9&Fd`rT0000EyWp literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/loudred.png b/graphics/object_events/pics/pokemon/followers/loudred.png new file mode 100644 index 0000000000000000000000000000000000000000..986e9117f9a1620cd24cafcb7a36d07f434a5c38 GIT binary patch literal 831 zcmV-F1Hk-=P)CtHc0RgG8!Eqrmxj|{Mso`mHiHRvexO^d400009 za7bBm000XU000XU0RWnu7ytkQwMj%lR7i>K)K6;@K^O+`A?#(2L9hryNu-B@x7joe z7+BcFxMKW62~yFD;-U3qyIaN)5lRp4NfNWV4%mZ=evz76iih;F(7g(NgC2@Hvy<7` z9allYTjmh*n>ReqW@lLdW^1-)Yqrv5IDhtZLv8=9JJ>4Z=?2}z%0B zhyj4f_^{ltaff{~l3uIa;M!hX2-IziZnqrAz0mtyZn)CmZlKk21A3GcE?GAZOp>@z zkT<-!&E3GO<#yuHK|WA7?7!XLOOj+bmb;m0+Go95=`!0rInOK(yB&}AbAh^n9YZ?} zbO9BG(r{ui4^8N`nGpdZ(2_O~&*>)d)7B%EryF!*Fhof*L46TuE2q!Numx-s1iQ!* zfkRUoavQ9ypGg+K& zR$$VtjR(%geG;aDc9a=7`c5^t7e&4(l&0cWlr;p8pJUu{ zMWM9I=dc!-)Ei`hy3@U_kM;V(djiF-E1k`8y5yWni|N9;XA-Oeb*H6wPsTrPoU`Pq z2ruReHmlPc1jJ3^76p~_$6k|cW`Vjz;QV;}rJ5@!ngv!j=L!YNm9xhfN9s_Sy}U)> zi<9y99d*UR`2svWQZetOo)*l%^AJ`qXyztr7GKzqe63bbe|vU)>NR0?1|729BhJ-q z?zqgdur|l?92HnQg%S1(1#6hRtkcUx2CP1DnXxK#oCt@Zo6Vh&Sr%3nv-1|Nhs6yZ z$orr=m-L;KD|Gsh7U#^W@K*7eDcPW)Wa)*!pF@5A%f^3PKLHI2m^Eed2Pyyn002ov JPDHLkV1k<3gUSE^ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ludicolo.png b/graphics/object_events/pics/pokemon/followers/ludicolo.png new file mode 100644 index 0000000000000000000000000000000000000000..d31ae43665de8e6175e33364c1dbf8da45cb426c GIT binary patch literal 909 zcmV;819JR{P)aDd9fj3NihKd0g=%WiD^;k>G{!t2{9=Ni9rF;u|es{c|k!*y`g@;00009 za7bBm000XU000XU0RWnu7ytkR14%?dR7i>KmcMJ;KorLX1}&K`YMr5U=+ZexiCPFL zgotG7D3e9Tj;trw#s<^k`vXc$mt^cz=$65BNC;#x&d{x;6iO=*FqcjafnY($429m= z`f+!OU1HiTZ}R8fyYH9xB>7HJ?&2=~QK&VwC~)z3I*au%2ZEf;bi-vs6gWSb&SHI| z76@`OE15>nC&OEObK zgtGlQAfzV@L9aB8x%x~FW$U#7A#L1}%ygxM^sWnC9c332hP=pfK4k-GE5~l_D2K*V zk(suXHFVdq^14$h&cL4I7?x!@hLIh~$xJt(GPHKKJlH_R8Q5#Jyo%M%mP(O<#B77P zfS0FC-2hEb3tEwiGyKi=zI}aQSlN4pFh-t zSkS|D#;}gZj+w?_uQ0eMqy`a3BLcj7W?RY3RnTpo6?M(rtONM5ATzW9f>-9fsKyP$ zK_Lv&5k(yB542WeNc_Ygz{>@W6{Tz%J|X#7kQus!*p9go6;ukNk)#hVJ^$6p1 zs1gHqLi$=BBom>AJX3>JTJC>eoW$LFKuGUcnZ)pH7}&K$kQxfCutTEP&mE<_qV@WS zJ5{07>x0IzBd}2;hx|VSH58b>c-q_ne-BZMa|bz1%o}{(5%L+-)pfj zf;~q9Y@K7Q19cq$b`BB1N=Vjg2Kd^&o~#O9M0}_0ibm#!D=A_6paMHgRe(>hs>gz?Im3N_329AgZ2&)zzU#B z#i!)8Q8tuyqiE-l!4(wJK~NQqbj(+rzoWfFhLid5!5Ff8&=>K}A?l=V2tXR&DvP@W zSOkFOb_uKjqz)!UBc1Xt17r(ZhZ00#2IDD!zK!l2vXCJ_4$?q&DVG9{7QWA+twRa* zkVzI=c^{1!6we2!cbE&meKLFk|v|Db#ab0FAf>Z2#=Wlx9#Gd+Z5r1EBT#OX)d7 z7T|ZWi>P&I3N^Qv)|z>u-C=z$DDwi+7Qkr&3{QZ#k4@Oa<%j`H!V@SL#2x^@sVkWs z`aahTAOLPI0eAsv>yT3fn0od6Sg%BaiY-{OL%e{*`P(Y|@+`aPMW^;x3 zuu%n+!J)Axph8@%5yg9!Iw+7Q0BHgFV za^e}rr<8mD{P-~ys|i0K@O{wh9qy#Y1^(c|pUVHHGtq{ps8k#xfK$W^4Iql&2Zuh& z3Mj{TlW5YOCCbB#%WoH#wO>aZ%@1i20L&GKY=Px_#E)a_yew_wEI4#0-n27F!wfsf zpzIHVtzvhpOOE|7R%z zXb2$Xg?cIg{9P4Tf#eXq==^*0`Q6PwP8(th>=4Mu40SpN-shpz0lY)K0F=lp$S1M( z-RtD0f<|7{F-&(>uho-VE{px4i(7 zok$M(6yTR3J5f_03J!_4_=^uUU971Sr_4a>P@g*9VA5_4^m9mnFH~FQZ6!2RX2;D~ z^!e4p6T{>hK=B%Yqo4mpfPB}GKc30}!6EUMVF0Sfxf&+`xmw&h)Thm9FDpNHBnZeM zZvkc+Kwnfd0ys6x3j)ZsISdZ<1v!}?1rQ_7vu%-cR%u_adq?))Neq`)PW)mKMXf{q z-Q@X^dQS7`w#t-`Zbu{D1N?#kFMplt`3ce-{c+D_ tAbrp)qmMNs#~m00000b9F7N00009 za7bBm000XU000XU0RWnu7ytkPLrFwIR7i>K(!FkjFc83T#Nw(?fy~gr7zPASRCTgo zpt3SVT|!Z_B-3Ry1I16$$Ex{IfNOjMYx!?KPMj=*<7{nhZT+KMzTPh9-g35dpC5T^ z?FIms*%W(tn82QNlv-`}LEB6-?7nA!8|kD?Eq0+>*b2wuA-{#%qnxyn#colX(_HUI z#vWe?!1pMdSFDyTTva>`vAek1E03@baJ8E0DAnO~C)i!PxA4^?oSTKhVwQcETI>55 zyRWQtc_b{&wTj1Pd0hTf(?aZ_bEVHm!ZLwWJa)!+=R-AJ3HH$G<8nF@mUXl^(#%XY zW}&+OHP}OkPxumqvru!JS#GXm_SazdJ;~cUWu}%#nwbSr_fe;Bj66PV;)ZmnUu>4z z55w6Mdnn_AwA5BJsZ>0hVvkRY^=3sOmb2o|{w;gIHIu?~ioQcq00000NkvXXu0mjf D3iQjr literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/luvdisc.png b/graphics/object_events/pics/pokemon/followers/luvdisc.png new file mode 100644 index 0000000000000000000000000000000000000000..29d568c356207a27d410dc8591121e0b6b451d4d GIT binary patch literal 419 zcmV;U0bKrxP)G}Dwk)bhR*=d>SnV|px00000Jqvtp00009 za7bBm000XU000XU0RWnu7ytkP8A(JzR7i>KlcBD{FcgL-D*6DBCL|RkJOr8A$R%)t z#ehYkAR{Hg>;|$;TpVwJ-~|Xg1)^%0z6;O^dJcCLTdwQpzMk&?+b#1vhr{7;INs2> zhSLmAvA@{gt2^DZGss7-*SL%;`>)D3fic9cA5bc;>hz{^VFY5=gi1B4`m>CI0_3#| zLM4S6h`n~f&oeMGX4o}-F2^8%OAt8VGAeQ6^IXL55%z-bb$S2=>l79&SXAQ4tjWw1 zC$l#Dyg_fB*TvK|!&ZanZR+>FN2wDM9h+aiO8fQCVrp$;kl$0RR910cCnn00009 za7bBm000XU000XU0RWnu7ytkRJxN4CR7i>KmAz^mITXj$s8tj40tcp&5v0f)WZTPR zK-=6fm2r8CEnTE=x8yAXX&RtTjIYWrR0Sh>#+&Hv`;v=_H@xb+)B<{8>OW8@?5 z=L>83>-bwn;$Opgf&F zJG9*lzAPZIG|to|5is%vO%ZZn;m-IhEIhj?3Fzzm6!7KZ;@qnv7GY*Fq4Ud4XnLg6 zJX(lC4qQ0xYe4RmxluT#CF7V`9HT>B5Pk9LCKoG<`2(&25b)+Jx{!r;S>ZsM+03~~ z-m}b8a;g*JICay98jx6;7fXP!5MCkTRXEG{=|$zH%|eI77tL5M;Xe|)6etR|MeCavy^(oB}(&eDTh49VgSVgX^P6QC?{Gjs z7k{YKLuQ?v|LS+ITtm7BM23Fl)Zuvf8m?ciTd?PzV$TRvdXlDaI{N>-{(J>EF2cwf z!zMt*xtG^3`KlUFIiH#inka0bJe(`XZC97qf1K&DE-&$W-ooWE;DDxcM8Vm542Qxx zGc>#>+QC#$*}_ReWdG)4u=tocz-)GCY`JIP{*NV~a-WtIj8(wH$R(g~pYM9Wk8VAa zk!L+_ct)?#b=-aya$w;(2b_5kSm;F-2GbV)ngeEjP;e(4!YDQjzN6_eg*FTMvvAN! z2wwKY3ok+rEF5xxBHQbYQBgl{0~ATLj~+cf4p}(ER9I1|9|vZ%Sr}j{oa;h9wL7DH z((MA`8`(U6((6@Nc&(4t_PD8MuJsOj+#0RHeL#mWSqk-q%RSO$`6Smje8Kl`(GHFcgLfXyTl;6FnHT7DWW)5^j%? z9wC5NXY82C(IQZ=14g%C2FrP4yA;g@I`l3jMcRI%BO^7?rSQLf?-5U2U~m)#q}ty1A+F;t@OLc7n==d1kp8;AH;g_I8dp z&}Tnky=kAWfE`8;P#rU&1%_o-rBqqLaa1jE&0q1iq#@IKItxz=Okdk#L;O^IKu zm#r_p1A{-Kgw0xfsWB6^kqTI9bh-=+a?exKJxIQh zxxG^((-2s4&r{>i$f#b|#7r8fDBOMBk`SminP+PRKluspjfB8_lX(t4seiF04y^0+ zzPEs>g#P}c&JKZ|RbW%ePp_{M`JRJMu79f*x6O6a_U}NGsrYa;9qj|_vEz*DouAi2 zDC9H8JD+^kyS;cx^bzn%*qsoI(LOLR@<+O6*zXu0dasSrZS=WL7#C9EKrJN0%x!!3 zd_vIz5H-G5M+?{jMMXEh7kJXAEPAmhi+?!L06(gFw|`{6HU3}e4?DMFt->hd&Hw-a M07*qoM6N<$g5In*sQ>@~ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/machop.png b/graphics/object_events/pics/pokemon/followers/machop.png new file mode 100644 index 0000000000000000000000000000000000000000..37f625a5d0e8126b1062e8503b68b8acd5d98290 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU)u`SRpUOG`^e zM#h7hjvHqdzI^%9GcmJsEamT z(fM}r#=K?&fwqZfxaTA!`u=8MT5b$K>yj4|UpWQd734?z%zE}NU{S}a zAohQ6KexX>7ty!KH2d0`$j|nRzJAkd*H|mQ*(z_|3}Kt48eMOL?nT}X(yYw7WpcJo zbNcbK#=06muk+qo_c}{SwLK*F_O7>1d0X#oWNUJs^Ih(B>KdUV51Z%seGvKF_ao|l zqRX574X4~ZJeUtY=gt3dlFLiZ{2*`GO-B=pGtyHue@!Wnneped5W@`qKX0$TY@O@( zY0I_QmrqV;s(jE`#qiF3U&Z0s=Ph_zR&I6R?wj+Iy*5WzI-;n<^oDg*LCUYGXP@ue zQ^Csl`>7UVCF|w0%eN#Pd+(VVS5g0!YgOaEm{8u6Z&aDT{Sn%j&U--e-Q1nO?)+># z@o_4{|kc(W3wW literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/magby.png b/graphics/object_events/pics/pokemon/followers/magby.png new file mode 100644 index 0000000000000000000000000000000000000000..aa824e4c4a3578544305b3314e89404b74e7a30a GIT binary patch literal 545 zcmV++0^a?JP)G|=&IZ;_@(J46q0000000000BKw0G00009 za7bBm000XU000XU0RWnu7ytkPmq|oHR7i>Kl(A03Fc5~L$YKXUkq`?~#lT#3$`INr z&ESQh%n=E0hAc=`o}h|u$Rn_H1zrHwMp2RcP{eLS&lfdABqsWAUw+?zXUmRd9d*=E zNBti$m$_Y;O-L4DEm3gMm3^2Pk(6~);03tdm}Sw@@Ca*h$Tv`QV;1Ke(8!dvyci&h zy737BEc5-yl(nk$RYf$1_swnD+QgHZE_!yeIVssL3O4^0Ogj3ypTCMz6R?p z=e*ctEe!q=4zT^<6doFw@^+-iS$jbX3n|3`zIzL$L>}dB!8$3OpoOJ0iZJ(ApN2pQd8rT14aW z{64`iRq+6^oXsTSvEq8YeHI!M+dYR~B8$yO{RIw~j`}H{IN?Q!2T)x5_Gwb$UxVF~ zN#k!ff4Laq!0_QRHT*a;8Y=#!sfTx8v5*EUg^&0as(bi6G#aGTpYI!l>BPk*3l|3K jf}s6NtKTr2tN&0xT*mU>tCYpk00000NkvXXu0mjfgEZ@E literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/magcargo.png b/graphics/object_events/pics/pokemon/followers/magcargo.png new file mode 100644 index 0000000000000000000000000000000000000000..a64af468ebaf3a575f1c458470f6bdeb77fbb744 GIT binary patch literal 1206 zcmV;n1WEgeP)(OKb9NqHF&000000000000000Z>qnf00009 za7bBm000XU000XU0RWnu7ytkSEJ;K`R9J=WmA!AO zP~*R1aYnF}^V+VlvWZYfHR((^OAYldkb*+mbtF$djHxdYy^B=vyXE+Z&O0iKUNsAf z=tU>PD4(G=JRAD}&I$uR$2Hy#zg$>tpZeXkT-1ZxMei$vhIE#)`=d#Hs=vNCJdqBx zGn3MAiVwfN+%^g(+;fJ#!oVN#22x+Qn)!h9VRY5@L;8OGQwPZ_}4X6F+lJlD;K~eI0!9OkR96kPhn^M?m<_YIkwDNu3oXbiay(bt&)b7nHoc880?z^9V zY5)WXFk#?2yZHvx4HyUmcg17BBdCn;Ip37G!Zj#tPjQjZB!(jvD93b zU$w*}&Ge~IN%B4DbK6cwz_M89v75g<+9naaD`$9TIhI|rX95<$ZehTcTo}5u?9b<7 zT|qX50~en{D}YA2B8s7l;y_eoXI=%O`1pmW+9#;>ZPbm+C08xR*t~dn6i>398<<$z ztuZI?JTsuhueKYA2Q2G>S<4DU%E>yY#{n_*?G_hrF_wb;Vh=F3iA_rGTL1#Re0x>N zg&}O+p0pr12e|-wMLrJ#IQS;zXRQFXUXV>bfCi31Ft|M_-_nPIm=NTYh6oDgxa7X% z!jLMe2Y`WAevuI&1i%1f>?YqLg|cQ>787Fa2$G6`jDj`Mih21?V9BMSd%}eSLhK3? zA(0!9jhtNP24rK&$+=B>lz)brC)lq1sgL_HLFKJb(Ih5gRIp3pM8Fy~vxbx5oxRb{!O`jI`FSBh>8VNSVL>r5G08a*>eDGU00009 za7bBm000XU000XU0RWnu7ytkQzDYzuR7i>Kl|N|IP#nh}XtD@_1KVy+4(=%jS$YNE z6+6_VT;AOv_^x_MkHl=LTKzkp7nb7TwRgdfqgYwY zg{!FoDNYC@R^4#;{t2E`S1Ll7X6AEOU38x1|0E%gqq_^Ys(iSx-h|@vnh>U$3D)zb_WDxH+Pq9ju4Kr-xfmSrKz-=BL}Zc!Y>0@gz}xw&IeKkY(;hhrBua#HaSn z&AsD_6D=^!JhX}XUmdVyKB^mWfo@j_d9?P<%1#Le8hun-E8|8(t&~+1R1qw>aBV1t7#8jjkVK3Nf=>JqB1bY_BD=ZX2H1k`@bj zmKp^LXJLW8hLL!!5s{f7YJEY{3wt%IV=5fFg8Ifn6XYx zc>{>T?(4djpVnIv8yoK6J}G7Ot|x@Nfd8;(LX%4rv((m4Vj<&3z^?REQ~Ybs_uN`^ zmqX5rX}{J35(!zs8c>R1uxh)s6bOsusDxd@-3}C?9~ZdyOvgZ`R3dY+98I?k+#{wC zvVtZt`}Ki=6bs#sU&E0wVDSC=w6ude2hR(TpUPs*+c13)LRQcQJU2Sn?<^)@;@gcE zD9PfY1$#c&|De~ZncUuxg{+`co?9LZSzWu1ald9vv`~V#Q5?;A{L#gunf#+530c7% z3(d}xa0SYIZp5w9=m8n9+y)T3QgzDCa?Z+P+C#CB7qn1Cv`b}vBse5qFlR+>WNrS& zR!A1}CRLI8uND+6#|>Wzx&n>gdd}#+R6ygqxoTxGk0eCNj|pOpSZO8s|K$%@ykP}C SMzELw0000ArS!q0r5#8k=r(L00009 za7bBm000XU000XU0RWnu7ytkQ=Sf6CR7i>Kl)Z1$Kp4ioWwNC#5mJ*dGSQK4otXFo z7(rd$NGLfAhIXP7TZYi73@rR3Oj)7~j^*&-hT?M^pia~#*Uc@c$#HhhzKh#ymogyr zl`Z*qAJ6lgeLhXQtGoJ7O6PZ0PIBE|4V>kj8NQ9LTMTfM!A<>|j#mY7&fa4aT2h31j$12{^_(9|Y+=uGuHiRMUk){~98Uzm zt~F~)aTxb<@2Fp{)r*dry;h^%QgH!l#A*qHm_6B$EvapSxz$s1*{ZNh!38qB=r)8} z!jfS;;XaKht*Cj+>R9cDf(=TkWec^0CBt|^i3vs(B^zLw^$t?-0n@Xjz(|cMg$~H5X_E&ei1F#4E~kQeThhpCj=z>IqAN zA)v4k$PAG3mv_fIbW03QS(ksz(ELpyOdWJL;aS%0+b&x8B9vjfGw|)@c;hips0Nu} z%6L!cyY{d5`=n#?AwyVlYB)ref4cDOEP!wMi-(@g$CEK&ccD$vZq7ro&4)1B-T&~C zM9aOU!y@633+Pcq(8V4KMF4`%Llj1Hp83c6HrBj(w!j=SK@22pIH%8+{m+AheQs#L z%thxmU@oXfbC($c4*51Hpvj&Yh{Ofb49&pJm)!z}KiPnHw^m!W7j5E@(h7 zh0v~N<6RipNE>E}T~r<;JrW<87|l{0?un1WITg^1UMCEDb{2qhI(*tV8)Ga4r^DSH zj5EJjpxw9HeOt|yYTd3>RXjQ}(Ha$p19=*aN~U~R804h5Mgq~0FcCcJmy7*u+iH5k z*?6P+=wwt9(~Y0#dW^X>k9 zTwZ@BGu-B1aC(uI$?iSEmjXU!-{7`A&;5(xGf?5>h#c3t?vkTsdT;+Xv{foU+AAou z$inpd=dZ^;U-HxV&1sPP`?LHZrzMkfbXy(;O`DsVndBtUrE_3MrNU;hUB6!cVx3Yj VM{wr3t|y>a@O1TaS?83{1OWY;#)<#{ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/magneton.png b/graphics/object_events/pics/pokemon/followers/magneton.png new file mode 100644 index 0000000000000000000000000000000000000000..75f67de256193522c4ee6cc591ceddfd8cb6d312 GIT binary patch literal 841 zcmV-P1GfB$P)KRZnZ%FdPl!;9RvrVz&G4y=-Co0PDWN zpr>S@hMiQ>R`z_6Nmt9!dDM_oFKh8mh0(b4m)lR0E&c3_FnZag3JBisN$)-DUj~Ec z_S~M(r1;n3(*#F#wL4~~*f-o0pg(uCDgH93SKOJjCqRGhX`ZqjgMM+xa8Cf38%a+E zj}q_Qo3-}(Q&2?5nj=7{25`P4I2!C zi#qaZ!?KI@kffsJk44Q921AVJJq(5|)`DB4HUue*&5Z5KvYhy8U4NNAmD|%`zfzoLT(Ka9#h)E#*nvyL>(cyw})K}Yx*%M>S~i8IUH%j*yAN3 zhUD_c=@esqD)Nd)kJ6tKr4140DIu%K;|vTZEw2Ryl2gS>6`VUPML@%B z5XkXKdwsYu%$Vb6Qz;Lr=a<@$GbD&^(I|bBSL%bqm(|5<8VdP>(&(2F@P>{*SS~T& z8a9F#c{TBgzuwLlvi94|>nlq0>JfUiWje7lWID0o$?|lJd248RBbcJZ?{0esH@W&! zs$#P)sbV&9YiJWEDV-6K61bp_w}zHCf++FyMju>%)p(MYk&I43$t444ZSG^Nmo~v1s_9!I`}m zXXh-&f_KlreAHFc5_ep+K~r5*1V@$$$Z&o6Nzn zw{|GJssIbE$}h;)bQ2{AId`ikdo1!tOH!mIGPV;aNGCsN(02#EM^YjulZ!68=%W9m z=?nZ;dBJ&>k+FQnvPUXAz+s`5_+d4glh!tLSq>OE(nH0MQpj)9X??4<$V zpy#rxg-F_9Bqzld_+ZK|s~Y=0WqCY`y^y5{WDst%(u_&PCpnRrA7@X#L%%$irTkDC zl2iNvWC3oDvYHIQVNYCEhEOn8mfjM+!?k%N-Mx->Bo4PK~^4)$4qmf{r+sEU&KvdqIs)E7f{|n)Vnz>)U3!FfULv9 z1a|z1c8T7S)BpiSTOGL9JXcr~VYutE569XFb<=0FjfEST#6!wWSX zTCZ!m>{sBh&?Dv7lu|H;jp2pfvj+f5Ga!o&uWmKpE5j88jP(D#;91VCbKv6!p6K7m z7(UXD(HwX`Q6DwE*ZiQlYcAn4CH5OKeIZ6AOBvMx8l&H_ZOaw~S}d>`G*^I72?^$$3MyZ&v8Jv9IT N002ovPDHLkV1mZ;4krKr literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/manectric.png b/graphics/object_events/pics/pokemon/followers/manectric.png new file mode 100644 index 0000000000000000000000000000000000000000..effb66258998e83708d4ebed81f62d9f975a2a74 GIT binary patch literal 798 zcmV+(1L6FMP)eG+p`oGa>G?rHNdN!<289j<00009 za7bBm000XU000XU0RWnu7ytkQlu1NER7i>KltF9aKorLZ0(0)^CiY8qiejZP-U}sD}D-f!KL_T@>%S>_g8y02634idSe@jPf)i|5@taA0gOGCn2pe{Mb&^jC2$9?u>C6(s zByStm;s{fV`&K%$#CDPl4RyY@j`7g|gV$riB!|Mfb%Yt?ij~sX;JJo~1;iPu#kkEx zI@ds0E2S~xxiS_ec_*xiRHmv1LO+e!t?lP=K!ORCn;f?Hfyu%h8DV8UPS)Nd@vk%`paTB!2Nw-X0BHGxoP=@DdLvv>^P|AwcD;lZzZ8y z)&sB`Z|Kd=BQ~$}w&_MpNT+BP5t0n>2OR*y`^o2=o*?VpPjKKW zUx2d}h%Y&}^Z?UkWZd+aAFI0RR9107*qoM6N<$g1)Y9r~m)} literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/mankey.png b/graphics/object_events/pics/pokemon/followers/mankey.png new file mode 100644 index 0000000000000000000000000000000000000000..dd57bbd4280666f35c89aa440fc4e181152352f9 GIT binary patch literal 631 zcmV--0*L*IP)Kls{|SFc^mg))zRq(R3(X3qEABTo4Wx zDW!+k+q%Sf3EYS1-hPs97gEZ5Xt``>Zs?Q_$ztPBOy18>$^Rs~xuYC(s^9I=PkLS? zStewxvBnx}tpB4N?>N_kjGfH$xStJKSI9xK;6&zm)H4oQ6_wWjtDDo=M<)!A_x7!s?t+=QXS%|tk0ma#h-*$7#<7y#_>FKD~eV`K}Pb zA;#Gbu*Yf3^bzyPHY2T2@obCPSJ(bhDL%h`i}?}edpyJuqQEfigb`l6D#HDhN0_hh5Yy;75eare8s(R9lJ%aN6Gsn^!aOwRPV<$OhXoh0*+Io^?f_$3W`qs{ zw(bA$XzGjR6RJxnKDSKR=;c8P!JXf0>XId)}e(4Iy93&Dk(0R z^lVT-OIwF#C}aqR`~{}OTU~Gq1*fP1iFk=KR0oD^rpUX8cyNgdwLwG2{ujOXOM0>! zyInHnz*y(^bl>;g-MeQ^yR$pH9W%Q8bF&32SE-fa6^miSKQ}WV?wa`V==eVXmK3c8 zC^g4R0E#37EDMx?ON#82tj^J})x2B?A1jDPSm{S1f~5jjV#AJ?1JK`eODo!_wIHC> zQYAh62=MhCd(_D^S5zjZ07xe#!dMxe=a^iPZYKyJ7-s;QZ>4hpi~7SXs%}|k z0bq2MuMx5fXcs()pAv^FvPtR+#$e?Ne248uHt|>n(JKJ`0)nCl*--?HPaFz>-(CXX zCHUYn#skWj?Tu;i866-dwx)=p+w>QQBUq{;k>AWr+VZ&~T3Lm0iFRHXRcMNUINPnJ zsJtDd0BPXxgiLcqv`etXGfSlep@<6LjDrxj4rwnMumf|pyghy^is(W(A4K4@4#qB# zim*#e+Tw&}gV675jY|;L)db^+xWswRPiqM2F4S;!5?_iUy3m^sX5iBd=-4Gv5q62G zW3GE08m%+K+_N%EKsFv2xzfA6?{ z=fO1KePr}F{~6CPG6ug|_sOLBjr#9>4p8l8T}UbsK-lL+#N|v8k}ybsAy3Xu?&JP| zpVu;1H01$0yYPY35x@jP9m`bau)>6m?Sm%tP{uFIQq4@`SA2Ww^>MA zD#`^Ehab9EDqI8OH2D#fg~Y0@-LN zr|C3vG^t2^r*HxN?E)+SkTn;aR8%naU%~PXSTuhPK&I#>E5+lL07kGn{y$i}65tl? Y54EAbF$x%2xc~qF07*qoM6N<$f+!HnO8@`> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/mareep.png b/graphics/object_events/pics/pokemon/followers/mareep.png new file mode 100644 index 0000000000000000000000000000000000000000..5cce3787a0e0bccf71d355cbdae6e63d0146cd0a GIT binary patch literal 722 zcmV;@0xkWCP)FMeD;c)?p1qbQTY5A!E+?>K(?4(8KokJ*(^;xIGcdbnY$$_k;Sy!C zCH{0|0A5F{i4>Q1=)lk+BU3wei9EAZa=t;7j}VFPU|_ug#zdlL%l7?AT(tumkLl;T z_ujqJfzT;Vaf(y?SGY&6uN|D@Ht_HFN=Kogt29^re11*d!4mw3y=3H<#s*A?uv;~H zVSZmat_u?fA9Tsu<0{X=EgOOsuc$h!r_9f@Gi?FZuZe8!so2trJP6LCvcGCD9}1*_aH$73Rc1wtljK*_|NCAUsMd3WKk+8>7lkD>Gy%MFZ{71#Y|yqXknxU(LOp@*C2U`gIt8 zudOT0UR-!{6$C{C|9uHFxuUeN|F8?W+jrIl zd$zoR;;dk@jF-!@z%#!egcslFx-dRib?$aMCX@;d6lWQ<8UMDEY7ahyl=43!8HAUm zoAJDn)+;WQ*%qCJ(Yv1a^=gyBh$ey?f-z~(jXNsm#l#rVz9(*HALoP^f;B?OTv~TK zVgfeY4qwMjg8EJIJoAQ>o_<1VVEy0MiL!&O$?3<8KMgk}z>*nwdjJ3c07*qoM6N<$ Ef_t1&O8@`> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/marill.png b/graphics/object_events/pics/pokemon/followers/marill.png new file mode 100644 index 0000000000000000000000000000000000000000..93a409288b6a91c39465661e825f52cbf64ea155 GIT binary patch literal 581 zcmV-L0=oT)P)IJ$pHZY(b3_lxzUNCxgj}e&MP^*00009 za7bBm000XU000XU0RWnu7ytkPyGcYrR7i>Klf7!gFcgI^6ikf<4<3`pF(f5}hrC4SmUj@uC56zs`fVh)&JfzoM@zn|>vOIw2cTE4UcGwt z`WxZqGILdB!>aOHK2qkmwHW}>AWx(@I}jRp7GVi$giAt(q{3% zl2ZD-C_9--b?~O3YkTB2+lI{*0hnfsJU*Klwoicq(LV%Cn8T(CNk97zEXI^B-2lnP zOVy$=okua$lfq%sbaNDj2i?p7+suF8<-8FyhmDu64YNEbpe8y%GF45&kZ`|Dr`3EA z$$IL;Jet*fuXfpZNi~u9C?baRYduPiRg*CE3HJ|W0L~_?k?gC$V;&Gf7#>FsBWnF` zz@Ja2S@`BvI#BWeM3Xk;8mQCplVHgz5N;=G#8=9|@U#`vgl{6$)b;WT_V$VzL0Q9lnpRAJR)EJ`rft<|Vid zf|ULfrDo_*kB*c;MlU7BQ2#se!3@-0de|jC?^1HzWsp6|Sic&VtqgX__h9%uN$-92 zWXbc6I_jvSj`}xx_xW{Rd9QJK7nUV_-^!qcQ}FM2Jj4i*Xw=Iy;8WVmURfe5q03Nk zX!&&*(}>b&I(jRYl*VRymq8B^J-h2=AM#N;cq@khQzN^}LTiYf^>R2C2~T_3F9hHB zaJU4R->81LEJRjf#g{$~1ER+46sfMcyrxrx zjILTNb4}5}%58A#3g%lbZ7$BCYqwMza2W|jhZzb^R|x4V;&3aB;)U53n~U?0lwRpk zm$58}?hZ13xVc)QSRIhdQelju+ibNS9cF);(b?rpH_YX=sCR#ueT=T)+NqYi+y>)_ zo?jx;!~Qy^bE|;O9uW`IM2|~W=ZT@0M7P}KHiI}B(#Ppnv|J2pH5y2MR5=1(5yCa6 zlGS{FJR=w8b{&?=2qk^&H(R`1Bt`+r&68#hQVjDYtNB^dTm)wFbZaqe!OI)dRN#Hu zYWCR)F4l=z0C@6Va}D+C$IRhwJlNIEQ?7e1c#>OZkg)Xow;u*)jpmS`99mlIg6u@J zSRZnebHaH(=-x)$a%U*mKc`RJFtAUXgxdyq+7ROik_zx=m!A&!x7|(^6ov%re*(k$ zgtMr-7k~O^m7AttQ!N%k03siq~G2zdgKX*%nA;Gn=oTrd-+&u(A z%gPYrRbu{i*HyxuzYuy>o*7NaO)LX`z29Fd&&6Z|oa;UKJlj^h4z+=5TjknN&Ka}z z3jw>n7vwxEO=fwiJ^GuPu}mBC2xDwxG?7erZ5d*`CL?7CyZe0+0F#^1D*^Y}co}0C n#G22ni*McVLxDe=^I!BEhK(=ltpKoke?3|VgI5TuB!TcAUsU%(+D zWav;Zg!Eeo)l=wFs6%lHHbGC~uF{T9?bJM+FHk3+>jb(y8M#!W;v_wn&aWr=^BSzl(Pw+^Wi&&oK#`4a$M-cgzW-b z^6(ueVVc(Aot9QB^r6eSQ{WI9_VRAjkXxt%@2_rx|~^=kNXx z7LGSAFq?I?@$@<058^cTba5|`8MuM!i*Pc>b#PXn%&uzj3jG9P1x`hCaP6Xo78sox zZ#})m82K>PbiUzyoJ>wlqEb#_UlxM3{p< zZfJ&szK!-gi1Z_=o;b+rtUu~)(4Mm!9&E^epgM+)8w%SnrMqGTLaqlvBOfoOpVI4! qQ_1NXT~L@`Eb@d(pWa#c%X|TGaPn}mH|Ng)0000FN2&SxK?k=>Px#k%Pg&00009 za7bBm000XU000XU0RWnu7ytkRK1oDDR7i>Kl|5@4F&M`s@NyW+DSl~MzkGr&hYTg8 z1e-hPP%vaDX&@dv#CXWksd&hcLfZ@;Y?`0G;zmQKwx9FiaD|NlLYd^!N`<39c@>i<~ZDBWo}@&?fK9>1i1YhYBwKrgJN zh6z(2z`n|h@yu4xGBzsu+z`v)P-24Mts<1nNZIhbwDutfr^dF=08}{M^b3@a>u zUNBicTI`AnYWbee;N3>4F;qVoTX|Oi?rZ`{=n8m*k6!V7ann^X8r{#QZr-?P_Uc@) z5G}8(4iWOaRO4b^1$lP^+z}N}!T=#tNeI0>?{j3-{c%9^jZt@Ca)Z4>S)D-x%>(74Yc*y&>fKb!1Q##2$(plV{J4YL1oR-A95{3Cq>Wy5^f89MCu91~1Z%q{iLR26u2$`TutZj&;oK;g2 z4-X{@T}lXEsn1-eflrk9K+U0rv1MrsG-4JfS>m)j;+v0_LIH4Z4`au#4>+;5Kfb&l z53Bnw;1X+j)FGF*ZBr8K=J3ff#wYrfOQX$*rC_kLw7>s0)=`2kaa(S3Na$G?C#UJT z#7iISRqQtia$+gy;LP$qvQr+HL&D^8Dg>z{!4{racx^nN7-g`1;xlltOB_lmfz)az zB?Q2*+&vB4n8hh#|3v>6>GV5^Dm)v~fB)mfr!4D6uCG=Tx0daA0Nl8fn00000000004!rO600009 za7bBm000XU000XU0RWnu7ytkQYe_^wR7i>K)j@09Fcbh_v6INnrG+lbB_)Fp_5()N zON!YcJLOO){s}t|G~$a_T4HKl20iU0r}N_3x!YK|Y&*=T`cab_E3;fBY(3{)%;#sl zCo7Hwz&`e|kA3_{BxJi=iJoivpX$?sY;!B6TE(UTfWEiWVoX43vCS#vWxadT0M5`y zZ--?;?%z|-Y>24OYXzGI03(F*9hNW6mOSvxhRBU^Z2=$I7xfO`k!`M8mVB6-J+s{c zA+||241?b+K(4L&)6>XgHu{0<#ZxvBfgtObobTug$))+e3tC z{I@~fFmuJ{5TH?Ewv3jWB2;8?Znh}MC|zL>m<(rb`ibDot=6n*8H;I9r1@f+n?1Ah zl+xTOfyw@hps)yjv#JUWJ5dWP;|O0OMWy@KxU%FjZAOI{UhS{CH< z&tJ#S2mH=6dgd-8&L{m+HPGDiM?nGLFMdye$ugGnFSh-Cz|<=1hO`)3BI28Bk#+aR zx50`)zNEzHhbfb9w*9`fR1I{Cf~;#ug45}XLEp0)z1i| zy~=TM8V|Y$bCnY&(rPwIcObSt%rZnweh55rq605xssZde(P3G6Stj`0iOxN>pyGcd ztsZ_hi9{vHht&q(w2b7$vU(*cIF?QpHDbYpB{ezQ9h*a{XQ&D00000NkvXXu0mjfMOS0A literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/medicham.png b/graphics/object_events/pics/pokemon/followers/medicham.png new file mode 100644 index 0000000000000000000000000000000000000000..25f063da4d1d4d58a9c2464eca29a022ef6d8dc2 GIT binary patch literal 673 zcmV;S0$%-zP)4~A~>G}EDS#fb;F&QDjp%IZeS;=96d^)GK00009 za7bBm000XU000XU0RWnu7ytkQ7fD1xR7i>K(=lt?KokdXE!LzhgLe~o@wYHnEnQ4- zyeNZeV!5f3ArzzzX~%MuLYCBDqI5C1L%kRZiiw3prVQOmkV|Xi&8R_Gm1Jn&J?k!A zIu!EXe(&u6J(((O}vTNrXluyQQ|~s`GqaAg4V&#CiJb)GJP%bQ}%Sr*&EW8 z*s;iRjINKjFIa|Re-l`7DRVt`o*)P&B2R-U*GjNT4cL#oS(u)OBFB`jc%IUPSs44? zg4~oc-zv01X$pUG*u~7t3KNfSe;q|@jum>Ib`5v|>pXq?JAD&62G9Q4SJGU(nv^=Y zOWhhM#4ZYNmuY%CH+a6B5kekcPD*{1`fIo`b{_fY_%1mzxmJ3+gs8{muDDv-17+An z_AkuCcP+jvHPTe2atGRlIRaX^&@CIq`g}HG7xrdb|76MBn&3jgIs4MG!N1He($!$#|C?6C00000NkvXX Hu0mjfuWC3d literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/meditite.png b/graphics/object_events/pics/pokemon/followers/meditite.png new file mode 100644 index 0000000000000000000000000000000000000000..69d936343b3f9a6b6dbddd085f29091480beb2ff GIT binary patch literal 556 zcmV+{0@MA8P)FN0Z0000000000XR79o00009 za7bBm000XU000XU0RWnu7ytkPqDe$SR7i>K(lJlMKo|z#COxN)HqnlrP0TqJaA{mx zazgM{aOsLHP8y71_7@Z{A@?sB3Jjf0_+j>r9$Zg*nCQU38^(Ln*khhBFx#|%?Q3V6#WU~JXyXFE8PGzPfyt%?>=5C~nP%~9ir|OA#swM(rjc@{ zTRejZUIg_vEnuT5WUg|inFsWWLgl@58yB#r5HhL`ubSuHX9&^jsLsX(nh+w!cGGq9 zv~OaT;$~E5;{qY?QwnwS#FVDRC#rKh^it+Ee|C5^nf25Gn#C*Q_49a*YaLUTvdRLA z8{_rFSN;LIH;vu%GvznUg`K%{)-4KWc)q(XT*Ci+@s)*ji^7;-5))YfM#7z8X(w@T zN{N$f?{8e*$M3z$pGG$?%m(?Qzm$dGQFyT(FzBvc-&S{WfRhLl=}teY^yw}Nogt-9 zC$iAO!eDzX&-CCVUcNRLAkNXr2u}$00009 za7bBm000XU000XU0RWnu7ytkQ!AV3xR7i>K)IUgDK^zD08!ZO`x6T2FAkJMn9_^Et zNszX8XDwLPR&q)Qm@**yteX?fYDdlp&44FIjcP~xuPwwp0 zq0n1iKKI^zfA{|6N67#2FO0%KKTLWsFt4}$$ADh^T{}#;Fg;y0;w;N66L~mQ0jBBc zA>q|RoD!$6IXAX!8%y@y;Q|^DJjO&0ovoBOUASB5#oCr_4-@5rf!AaT06N6&LUk+t zp@&%>E_e^{_7;D{KuFxaP7hP<(g_b2^a1+GExx6|O|K7nqV3^=GdME>Ow$LL*ACsj zIRt2FYi;KXKn8aGX3GFiL$^=yZlS8eY!3sM`~Bsv-%O6s?L1JOn{dA1>-}>1Uf1tP z25!6k3Cuv-`GSY|){aB3NkaxEZr9rD_&&t=ob7zPkT0$3_td-)0dc$bWgS{!@g?zC zjynzfV?`%^@70UNJ>hoLU2n5sadvdlwjA|+#-p%4E?QrbUQnK$%d**`+qBjWA`Ile zPui9nnpu(`#bU{0TFFX6%w=nC(-dFH#_qwm7h0Bqk1;UN3Yeyq%L4$R6);WkquN|J zfTqvn_zI`CE)t)QB7Ets4X^R)T@38-#BExMGx6r?gW6$yE_Rj46f5%@Q=gITJvP5u z(%O@4e5R|5Pb&H|HjFz8pkow}X4TR4CGq+ZKD1GDv5k*pMVw#0T1kA)|F|m9Hl3-* z7Z}(M+$LmGY-HayweNgrU!bEvw)za)UtoFM3mR;Gu4Fs{Y1JDzizW+1!PrNo;*Q=9 zZIed1wcq4gGvi$BfGR*)$fHOv5b^W+*YpWf9jxdY<4D|_}#%_Fb)*YJFQ)^aExI+KJ_yvTC VG*W;9Kls}3aF%-syKxK-(fuix)sMu!4lVpli z%NENL7&I0}OR5dIz=H7=7Sd@D%PUf*OPOLXFc;Xc_sQ5Z_B;s-8%(C)3-TP9 zvbt+gK1FF@kSYYm6~Eg8su-UjYAla)QfiT!oF8TytS#g|1t5#_B)@{@YR*SaphN!tU}&sac!h^i)+M5hBz&|38CPJnEl!X_Ln{~ z(&ZncmAie3Fl|cE268*H(=ae=-RGaUH2Q3PC@~eizn?d#r2pPa9!guCQ3L+MkI-pAo~2S2R8<6IaJ3T%O`XPvP=O~ zV`EHM=Ab~2Pj7he>fY1*1{y(p&Tu)V3XFrXT7*n!Zt8oKz!Fmrzk*7zrd#nobYQgK zO+pRc3PUE-H1RGuPp7*Xn3{e!=--Fj+gh#h8PiN_TwhsUEmzoJUDbO-ntTw+M-(l- z-OmC8qB+IIkpZW;8g~;i@BeEu8q!=4y2i`P1;#Na1_yXkul8LP2B-t^|4sh@LaErD T#+Ho$00000NkvXXu0mjfR+cIt literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/metagross.png b/graphics/object_events/pics/pokemon/followers/metagross.png new file mode 100644 index 0000000000000000000000000000000000000000..49df7af8d45c7c636bc95861f17636127629265d GIT binary patch literal 964 zcmV;#13UbQP)G^pfAprpamX@I@DKSA|d6B{Cnc4CG|NkLDQJEKlQC=CKpe#nJcuragMjH71Pufy84aeh zK}*%mB@}-P*~_I;aG*=#r8J?Tc7}!nfyg-+3J*N}{GN zv|DbF_4~hj@9AtAfXDT?{>h3LMbmP;s{Y3nE{X!n`ii;`a!be?c zy4sxtl;e1j5Bw_*bq!nWn&rU=TVn*?O(SRA#fWW17I+P=8j3+7lpa%megb?#xA&kZC9 z5Q(ZHVA2zu3w%f~J)_RvoH`v@P@7%^a|(r;7;H!=MbPu7oE=}X418FxpC36D>Q!-C zQ1>P_rKD1o1&-f2KXT2drn0F1ye*p;^qOcB}7u&>N)%r8e8Z3r6{ZjSnwc{R;KjsWhKTR)OYP(>0ZzvMAW8 z;adee{D=@`1QXH&zS3t7ItPHWbM5qukngK0WU~Y zAOiOX8?F8iY>EI^au!Hk!!T(ib;*g|sO>w57o$o4q#h9LLMC(gi0v(AEzKVFi$b z2!tMlP!1Bqw*!oK4=&^7OH2Daj<0t)zf*zWl+tre=@w^@==?kCgs_)F8psYP2Z`Yg zH+;PI{h6hWeE(8#E)WcdKvTNlMCXaKIG!??iGmR`^x{Yka)!__kfjmB(C-KGoq3&e zqO%*j>iZD`B*r8$XmX$o?8tBkz!0*pq$sdh=LKsG^pfAprpamX@I@DKSA|d6B{Cnc4CG|NkLDQJEKmO*P1K@@-oau|9E3@u%HsE9z^ia zbLl`a6c3S5y!1CDA?2l0*h`UIZK>8+5Jv)wQ(Pz%ib?P)XnsT^fh{Qxcu{(DW_CB( zT^A7*y!0Ki`|VD?_jYFXB?w)`Ra`|B0JUH8Uq$XNg2C{#hVEta?-cM$&OK}o)`n}R zI}fv2k2eWXHs_^;{@}yxewuS7HdMlon>Vr#k`g>3Z`dcY*6)R!Pcg!U8vl zr4%DvZO^};wA`^CuV*qGkgiI|tpmv5+*0*A=?cMlqh!XX8KDM0*jm}S54*2xS&XkA z6e;b}vbDFU*Eh~sjmWhY=R34Ziq=gtKF!Lo;D6hzJo|oOWig=E{)n#Z(B<*-ni3wu zjA8qU9zT9|*;T?(G@~g-_~`iZX|?mUZzk1=b6yLfX?OQ3`(6RG@X(L(g-O7z%Y9DN z=82Xl!Aj`$`g@hb-g_f#N`K07tP=Ru+f+WSz8sfJ>q@vA=aES;qEf0!Cw`b9$x0}^ zqj!(`o-o4Zn6Z#qQ}M2B-74scyYn|4C7dhHn9T<@suj6LZrjnmOtKaV+h3H$K**>C z%rHQqTvI}83kvriQFSOP;hc!^8@;K3$pS6aOD_T;03_H538|A%h?lqfzGmy9UtiTi z;s{SA6kc5m^Mp^C+bY4vku9XZ37g@XZcdITaW+D5q*^f}#O_IB!&fXT%~RJ1JrIHk z*Wp^2C&h>bv2}&VBl$p_vsSbzk8FE9iLn-*3GpfvVz<|Dz6kMFHdv6L=;_CXTHXk; z?3T|APpGGtv2N34U%1ouiOHDSEXG=RrcOd3f>q(EHwxbo?rJR*nvsDJpOi(&f~tlG zb(<4+)}AqtiJtCR=Sm3?{>;2}J-4Ev3rq|1%sUUh+>*jkpUjrRpV|;^b2;(iy*(vV ztzrW}SK?Iku(S|C8=~#f)=%iTM8*;znAB~V`1wf+^;skc4oRVI9#LsQuL405LSWpE zXG{x!ij?rDz-pT(?x=okWvl))aJsaA`Iq5;#}Cg{Hrx3Ak1GHG002ovPDHLkV1iUg B%zpp? literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/metapod.png b/graphics/object_events/pics/pokemon/followers/metapod.png new file mode 100644 index 0000000000000000000000000000000000000000..182914514375e6d74d0bbad4a83593ef0e8f23f0 GIT binary patch literal 456 zcmV;(0XP1MP)FN1_S%JBU!D)#x;o;$-*-1G`82|tP@S^q)00009 za7bBm000V|000V|0Vb6__5c6@K1oDDR7i>K(o1fHFboFZj{u zKY6y3z`&d<4x~G+PXo4jL~5dNF@e_ig;@t!17XF5lZn!PYCs?$$j2_6)ymde10rLp zyTBYMjvzc=rb@Kl8{QG4SlN1nr4GFW%I{^pH+%rSiH~FLm&7l3<(R!xu^l!_XbAl8ul>CdBTA(qx!)XPm`H36xJIW z`;_#6hdmR32;7|2dTT?DExQ4_iu?JGO(Jl$US|!QV$1WTcQwE8G|Ir$<^Zh?_lagD yVLw2M;_bz~&3C?U+u4<5V&AK$vw!6OU3~+I-$2gJOHhCS0000G`o~saY{m`O)dwp}BEcaR2}S000000000000000>WLFE00009 za7bBm000XU000XU0RWnu7ytkP;7LS5R7i>K)-g}xFcbjbNJUuceD@o;@uUuyZb6D5 z8JUhBP&Eycg-YzOHrG7Qgg9?wIC00nJXa*eFFIQwl?CA?`Re#R=h<=^1fT7*yq^p2b@L3cdw5hB+dU!b_t7Pl6CAr zh`?!~mgM1QPwZVXnIqnP_juN+naivLm6?m64ne;RkP4uyJ+7s@zl2R_Vo8W>Pr%+K zXB~iAxSb|7D67!vu79wERi(HI7}*ZBUDPu$ZQ*eWlDHQ8{#`{DiqETfW42&L2&&A z;Pk}pvV&x9Cum|dnBnO+vmX0^y{9C>5rRqTGs>JgnGY6-+T8D7q4!@>qjSWy*Lpj$ zd|C7LdBLp&y=j6nj=ULl&ye{b3JGR*sw||7s z>El)7^V2Bc*g?Tr=5xuJ_Idh1KmN9GFKp2K^I50s|h|uDx>d;b8=@~=q zMUE~?vDTChnT*5@)e=G>nX|-@r4T429hD`@B3p_|a(}LOk|lk*Sn|-NLk|LZ?xg2^ zPn?Ai`ak}S@k{(^Kic_k$4(R@^zzWk+Y4Z;X;c_T&$qWP_pQ9O0GfSj1}Kcjb`;Kr z?YynP?c^EyR2G2`(L-dl@|FTScVsq!euc%b!zc``cJ3~47u`otsInABQPc=fxvKz< z!n-i77gd&1L<)zk++9Ej$B(35RXG=qqlgSUxT}C8;06d)7DLO0lUD97V2`7akhtES z!czE+c-}Z@=dJ?S^9UiMN~m%^W^X<3gVoBKyoCgt8IL}S!eDy}=X2Q$8D}6fXK)Z~ zvQOYsg^bx_2-8)TQ}#qu3P6dR39SRk&l|Yu22(}|i&5{qg%Nf}Hur+05@MT3c1Fbn zw(!KsG8YyoczpwP7`M>H;uLLWo9TGYmwqJ_|47D$mp=tMq{L5BuM~>Fg6Xh$N=~0o zt={Fu)jEFOWJLF3%`lAq@meSXPb8y6xAN=vJl_bI?yZG%X!{1wbkE!M3xPh;QSbVs z44BdeqfC!c=CkxmAryg6$AV*&8gYKT*f3@Op;HJ&AUkwfV7b|Ry(QNcPh?ODsh0EC zk`oJIeM*hPLMQ^C9KpKSOTiqWDV@@jLMQ`|1zSif4<2^no;j! zg_&dv@p2vOtJJgBLJ?^Dt5g&y))8L@M`uEKT?)C8a}|g*cCff~CY4YdNd`yR4i?uQ zSSOOL^6n9H4ovg3SDu=L`3;trd|oVU_$mkiK(HvK{-(X00000000001Bbqs00009 za7bBm000XU000XU0RWnu7ytkQnMp)JR7i>KmcMS>Fc8KGYSm(8@G6N#S;&hb0woZ4 z>QnR$I-3MaAesXdeT8h!;6m*g%KSd^bUGTL z|MBkxCUr2tURIwf-=O63MGdI(^{@&I|K7kC)cm45&<-+Z}{5lRFhK2w+P^8FrP$N4r83>oE^3yGtg!qs|r1~)N&)&Ot0ex~z0 z%CG^LL6rAh`S^W|5#Ff%Ud{3-uea;nd>7+eSRTw05-=MIr`Ws$_%+Lr%fBt7Id6Np zMdO^V`&nzW`9mc-JX8wZ%>XuQG0YDcovQPdIzi){f+~z)q80N4{OZx$JbW?8w724%q~6F9Ck` zGRBChVj`So!s#R%rsJ+VTj}0N7&{y(As>D}{{V2YwFUtr-Yh1W(>t1CG9|-pQFTJ7 zQg4!tvdKte-b^y&BxF4x#AHHk3Juv43R6LZQjbLwvgw@_!157CxZy>{Ez2U4#NJQ1 zCaG7Ek26B&^y?R~vMC4{%ZxSU)EX>G!U}7MsueA1qskbg^JTT9?n4ySvT_VhGscRO zIODEiP1TSXBQ8ttkPn$oNptF!=?Q5T4(pugk8>z;ReNWmX8iHJo$%^Yp15ZmQNsJz zkr-}Vu1)i_GZJ3AXatel!f}Z_LoJXf_r9zX*YNEDUJGx)K_mD_c!qkn!2%NQv$^Kp hfP>G*a|?JP?g3LzRml>Qd^rFB002ovPDHLkV1kFjXEFc) literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/milotic.png b/graphics/object_events/pics/pokemon/followers/milotic.png new file mode 100644 index 0000000000000000000000000000000000000000..724a2011f6794bf558e8684706bd150531913178 GIT binary patch literal 1050 zcmV+#1m*jQP)Kl|N_`Q5?q~M};04W%Yr*MeW@e;&gbI_PHuH8q#<3cTF4@Vme+!NakbN8n?;5ZEPc z5g^FD1m5}DeotH%+Y9D1PoNVpEGt_EW;6DDmR>`^M5=w_y*_3QJX$kNJu7p8ws3S= zDQ^`B`j4JA%@gz%0ahP^b+QsdCI3c6~`8bh1qX znebp+Xl9#0ytOoXhzlgbMg^fq4QIFVyq?R=;|I;RA(dm+z_tC=3lx3o1aiV51>c6U zG@6>{0*P?VK;e5G!432zYC#oi3nap|0F<`X z+oZ8DvKX`yI4RWH@Gxx2nmaW*V6mAKq72o2K3GfRl`c?_`jl$I}Kb` zyQ&ph)(2OxVywJtEU(+3rO%h*c3?8jgdCIiyt}anZA2nE5Z5_IRqhicPe~BoPfpyWg7-FCpF4LZ%%05O zMpgQ~q{2xiC`9X@0|v)yp$;K~$oFju0)y zh8IFiAQ}hTJ783`{`FXi3;rzgu;@b z@WQYp#;G7ZJ*ydz20B8Q!9oxrsLjl?fgplVy_wTkK4}erUR+FT5b^@A5Qq?k2Y}}O z5HCQyEpqwzn*j&Zo-Akq1A2v+C4L%uwnf9sWJdiZ`-J`jX`a(|^B>f24$!-P0(hwG U*KA1kG5`Po07*qoM6N<$f&*pNhX4Qo literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/miltank.png b/graphics/object_events/pics/pokemon/followers/miltank.png new file mode 100644 index 0000000000000000000000000000000000000000..09393dfbcfe1d0036364453638f8dc4dac9c35dc GIT binary patch literal 799 zcmV+)1K|9LP)FN2=iJ?hhd9h)6@u|T%K}lIDInlX!lRau200009 za7bBm000XU000XU0RWnu7ytkQl}SWFR7i>K)lF*}K^z9~MX)(lh?gD;X*b}Z^b3U2 zLJqS?Y!4yq_%ez&4>qN=pag=qP_Ut=qJ=Ty$su*jr4R$|f|r&i8zdC+1=2uTBwqRn z(pmRyc6CB8z4_qfw|{+x-JL;6nrEJQ=K0sa$>$btZHayNhrcXnmT)yyuCCwW9Yj`y zK7ZzK3tEyE$}5QMq~3^KMWib9IaK`%1T0AiKuRGXLQ~UJWR=oYzAk7fOxu7`kf7@# z(>A3EDsY&s)%Ml-&91Z+kZ1!nu`X~)L6j0TKHE7`Mf?s3ngt^D#W#gOp;hya6oGSO z2T^VZ1Z`$}*l7&+#V!Gs_-rpwgS`>={Y-h1%E{@$hhwo-vrw7s-zP)BZGb78i5%=c z{rdUzLg)f(RFbn@dGfvnp!Z0EHoyO>`>tuEwKM0!*z$L~F;eW;Q{~LwCui<>GSAgn zA@B-=W+~xX^SENHVf*APIJTd1sWa+gj9b`Q5L<3c=3xW-3WH{WYa`I#1NA+pu%7|C z4q7#Po51H8+QC}A;Vx+T(3&SPz=x||UC?Yzi0^Ihzs0Iks91I%B*c`kPHxT)a-(Cj z2>J#dcy&dfH<`oSO+=2)Zf?e#SI$AoTfT7TeJxG2&XwbQUn9GyW6wA7*ci3E!c9CF zwpvn}+encwKOg*Ax_==w)e+Hk-aVSNeaBcr-O(WA6f*bdpcO*=0)>x@i;wti7_g?t zvigzdm-;ev7nH9d(Jy7UP`>V=?4=yz-}5ghM`6Kp()4T3*HC^8%bruFoyQ(Z_Ob;z z>K2BQI_$|&iH{nGu+0CVq#!KuCpW$k^UpV8-aMQKh2@9dG{(q#@&joqzCt)X=MSs@ d;0F1B^B3elf20uJaA5!d002ovPDHLkV1jQ2c)kDt literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/minun.png b/graphics/object_events/pics/pokemon/followers/minun.png new file mode 100644 index 0000000000000000000000000000000000000000..406825363509c4670545c06dca7bc0f3f24b6a46 GIT binary patch literal 483 zcmV<90UZ8`P)K)3I*CFc1b{4|MPdr2``ep~_4VuoY?~ zGJ@)XwU0n6xojP%LN`-_sNc4U8L%(CsEX8~QvSipmy6GGoG@0UN|h>A{!5I$jAhK& z4t4a+)i@i68`2-y7*kIB^_|7?=1QeLsZB{U-XHl5ky)&^Ld5Eg_MH$z(&jL7c9S<_ zhjj=cJZsW}6@;=+Sb&U`(-1q`QX_x>TC{H#(3XU2OXwKpj<$ADk{#@+y%|r-O;97Gonv|0VnY=nhY};^nJdF!no5k;fGJg@1kvkdr zysCWEg^sthclF3?h@E90`5zWH6R+WZj_O}dec#mHJLh$c&wz1!?9BYW&hb}oa!>zZ Zz5y{Nqd7ZbU+w?^002ovPDHLkV1kMt(|G^@ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/misdreavus.png b/graphics/object_events/pics/pokemon/followers/misdreavus.png new file mode 100644 index 0000000000000000000000000000000000000000..89b91ee032347d41f651a6a6eb20533c63812a8e GIT binary patch literal 891 zcmV->1BCpEP)y6&VaZ8pX@Q|3FG|QYDFFci!9jshahX{O0{{R3A&Mpm00009 za7bBm000XU000XU0RWnu7ytkQ@kvBMR7i>Kl(B2uKorK0faqY*(2iY-h;soatD$QU zcxWi0RA{itVo0VgN0c|5ovF|c-TF7QT}5hF1*siEiUuhf3Z_GH#iT76D*QL}BujUv zEAG@W58L=B-F@G8?+GDvTeo#vRhe_`!s0(0z7}ZB=7*3$`auk4D3r=A3MFIpe#lW-e9b(&$ zs$&|Q$=4(Mu~!=q!VNG~21a~V9AOK}p-jm7a|kRUI3b%oO0b*>7l5aBQ7)}{QgT@L zHQ<4Y&jZzvf64>FRjoK*Y_o?A~oSh9E$)&MNvRdEYf+$pKp2~x0P zPc=a9+ll?*oul!d*aKw=ji6$GDfrPbTk@<6SlA9um) z%bO)P_0b*2^E`Jo8@wZ=vx27>I;V=5&Sgu6VgLQ%-bzN-mSxS+3U&^0l!3Jk6*?7VQl|4;<*gdq=nd)3@u#US#6>vAYSk9bJ*#e6yOfbQMhljY)bIwGY z0W!4bN@w2Jw)*-CUFiFAal4_%*+F_aj`mz>OTw`6dPJ>I-K^!+`L_O9e*giHi{~Eq RZ*c$s002ovPDHLkV1jTyk}&`P literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/moltres.png b/graphics/object_events/pics/pokemon/followers/moltres.png new file mode 100644 index 0000000000000000000000000000000000000000..70d6298ea3f4f35bfcee3262f12810e805970e59 GIT binary patch literal 1158 zcmV;11bO?3P)G?r1F}ZPJ`N?_du~Er^IdMrjC0HmR00009 za7bBm000XU000XU0RWnu7ytkR{7FPXR7i=B$NNkLQ#gLL(;!r@H|uozcu2 zjpeX8EDN1O$aqG-KX2Z=H8QO#w{+3-z`DkOS*-A?O(sIq-!sK@GhIfm%Y9oO)jX@=$-s|Aunv8?t5> zBv!i7IA{_Cp4M6cCh0u2SQAtLlAs2d?r8$&+=7td1sp}t z!}&#`_8>w?lOXWAlWhRk0I={`yLS#-g+)o=D_KG@&i4~FMILE42=LjH?lu5%4FIb( z50Cx=v;7G;Qj#mh_#*y8<#PCCyO~6-*PU$u=?FYqt!0`rBZkruM6gm^=C2^2VK=&N z5RB3wJsp|=!clz$_EkFnTm2t7{kU?36XK4w;_`B?0)ubz^s+%P`}}qK#Sj2!TsgwY z!i7*KOFDrNIs^K(aO5+EC=|E20n!yy{IYzP{<)1Gz4#&h{YQ1v1E-*sBcE>ItXi|> z>SqYi9w{>6h;F>DR@{o`W)p=lK_U-7#|d zz=?$;gTP)dS5pW{6;;M>g`%r!&ol4SuZ-GLIRY?xIOg@ANAK_mj@c593J|;~mrlcx*iO)T}e|V+}n0$OJI{ Y0|$E&pV9HaQvd(}07*qoM6N<$f(L3D>Hq)$ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/mr_mime.png b/graphics/object_events/pics/pokemon/followers/mr_mime.png new file mode 100644 index 0000000000000000000000000000000000000000..ce52c1f03c82ba1a4471b4e5d1df18e5850fa4c3 GIT binary patch literal 743 zcmV?P)FN2YX?e-X>Cr)1X=!P}k&#I;IRF3v6tnKm9c8uKpe)k_=XMw(cr;D27!|YI9f_T zLm*^msR;!ubd%EPl17z=LXrmvcxdMiT}n+#2c;Ma#RLaDb||5Xi#8jX8qr3zo}qX8 z%hpMjtQYV%2>tHl@B8$ZYzx9lE3LE=2$AJn*%QK$9SgYB|DdidjH<*10mSzwq~Kvb|IzpT%nc$OoX z*DoHv?IwmXgQ57v14HqLmlKHa1%9u1$?ax1`hefN+`6)7hJ6oM45G{K)<0ToB<{U& zCk_OLK!i^y@BwLNhT%6d9Fiv?7zXQIU~}AO{7?Gn52hZkye;Q87=p9cQgk#6erpxpc92-{qO< z*!69zRm_uJNjhv4G5Sh;-p#C9ZrWc!G*IP2kpXLS{$TrmiG?rHQCYFs0RaJVX_28x5wWq+000000000000000=*}(L00009 za7bBm000XU000XU0RWnu7ytkPLrFwIR7i>K)WJ%_Fc=5$QN{?~+8vah>`r>MW$m$= zLIqzyZ-Th{NK1MwYiA?AfZ#=oFW|{-zMLj7O};fE9STDKr~L9y^YxTouS=IMUAp|E z^tUm~)e@Q~&f6RLOzEJv9#Hv#(n0^t0GzirDo7?*&>|5o!?tFGBytDM)Aw=gwKPg7 zt)%JDBA60N!tYGA=4q<^|?Gi zHjiUwG@F|HIzJ7)dFh&ujm9apt>=sTbqURb>{s7k?P+b8@w_^=nmt%dP4o6)u`Z#- zh0fvI(mBxDsH?kbR%<+YaYkp${Ii7?Uj&Su$UbH4NOr;8nbzgV9m}r|G!F(l=*A6Y zM*--W_th8C#Fc*-jjuM|3Y5bg_VfOuR8OFN2gk-33siD5};$+6jaVVQxEkts1*VX5IMDJj`eS)sAnU@QeX00009 za7bBm000XU000XU0RWnu7ytkQPDw;TR7i>Kld*2wFc5}C_XWflV$scJVgVUr!b0Z` z-EDyaG)j!G@S35IP-JZj8_?U9M^Y3;$wq;qn>hse$kYGbQF4;p*L~gBef{m?eD#k7 z!CFjfxs->|W}J7kV8Qt)e-qW}EveVxM&6>kQJ@25Xn2ll-IlD=>%t5LbN+vlo=_r!HVK zd*ith1+-3RSWncN8x#5jmk`aANz2=U%0>v=p5cZ<&!}9QdVH#NLc@9@D=>*dHw?{` zmjzbdW{oeBmE;IrZ&$1u41+i&>(Kgw=3}9FfQi*y#4?WWF}OaI`a|$0000< KMNUMnLSTY3Y)qQ~ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/murkrow.png b/graphics/object_events/pics/pokemon/followers/murkrow.png new file mode 100644 index 0000000000000000000000000000000000000000..c714663ab2d3251101d845dddb8be5902a3a2bc8 GIT binary patch literal 509 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 AfB*mh literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/nidorino.png b/graphics/object_events/pics/pokemon/followers/nidorino.png new file mode 100644 index 0000000000000000000000000000000000000000..02861fdc66dda599d351adf41e624d9f9f4621d5 GIT binary patch literal 702 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/noctowl.png b/graphics/object_events/pics/pokemon/followers/noctowl.png new file mode 100644 index 0000000000000000000000000000000000000000..e7fc38c3d95c4c353c166148ca5a7b1cab65c5e3 GIT binary patch literal 1114 zcmV-g1f~0lP)w!QCZ=ssc9)G(V=n4adGMC`Qh22VM#fGVNn4A0jV)D6#Pja00009 za7bBm000XU000XU0RWnu7ytkR&`Cr=R7i>Kma&T*Hx$N&np7Fkfbl}&V@KS=z@DZ{ zo8q|6#E_7y?yrb(Y}^EHs;Ra}k#y-&hb%D!2DWhR1Wr|oykWg@5!f5Kca^87C$09f zXS+|-%+BcPec$grt!9MyfBg4`oaT2rd#2y9FwMU`u&|ke9_TV}{KR~En*n-mY8NAH(hIb=3v``fqOs<C%n5sA1eLQ?)RL~Cyx ziAsN6N5?G+gn!+WN2d<;n@qqoulm0K#hFlp>L?QN5RqGLZ!p2rpP^Dlg( zoQoA2li+*w4?rD|Tx=IUa7l7M4$HB4WGf zz>HpCG_X6!P4-?w$L9*`Rb*R#+_^Qew1Q7Za)3l)_tZJlxXmt-h^AtfZ}w$&$E)~t zC~{wE5fQ~u{||SV8v7irc!716PtL#H7bqZYI>=s;smR$d5zE7JC=ulXH@*eDfMwny zOIjQdD8Qslqe=7o=?{z%Gz-`)baO}`|1>#3c*`h8Ubz1a5U%)G@-x(xs g|Im651^RgT2mh*D-Pz^A&Hw-a07*qoM6N<$f^Cct00000 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/nosepass.png b/graphics/object_events/pics/pokemon/followers/nosepass.png new file mode 100644 index 0000000000000000000000000000000000000000..c407b389206da75b8c0f9e7a0b695b97b2bb3216 GIT binary patch literal 705 zcmV;y0zUnTP)7m000000000000000RdY%{00009 za7bBm000XU000XU0RWnu7ytkQH%UZ6R7i>KmA#MCFc`*@F5K9+CmpU?NGEg~>TOJ@ zNH?>xWpO^X4kQv&jRbOU3qw?AJBFzBN~hzW!>;3x1lkS=iJ|ZIdmra{9Lpa;aH&gO z>QetrF~(MZ!vKB1Az#(J-kjnc=i5`<@^Ns2&j)bMPw{%k5`V1`vrBZb(sGwWk7C@ zu3`X@dq){J`F`>4DQ~QyW_w{BmMFLTBJ8-+VV}ku*4jM=`*_Er);r2!^>DpdVDBJl zb^}~w%x)Vq2BMg8j<2>@7mh5&dw_VrohKOrH^ZasY@n3w*i nMmTtYhOKk@@B#b1@$c#vnAR%3PJjP`00000NkvXXu0mjf#RocE literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/numel.png b/graphics/object_events/pics/pokemon/followers/numel.png new file mode 100644 index 0000000000000000000000000000000000000000..96307f1364bc85bcb91c0a7512767150efa575a5 GIT binary patch literal 848 zcmV-W1F!svP)K)jw<7KokJ*8v@qQ#e~q1cGA?Li@An| z8cHGl0wn}GcW_H-Af04n8-(-kBHQ1fi+v4bDj@RM}!N$*Z40G6?gW&9_B_)oL4{r6ZYmHuFj@?_0^ra^9BPNy2IY(rSe zwoT7Ljt;CWgZf0yry6X--5vNO(>&qTg#jscg9E*G?*!Bn}9l!ZB^>A;sEn-V~50|4Vqn{$%LxINAANdsRgn@%|)o2m^j%!X;PQ3i!4V8 zjfz}AGN>Fth!O=PYXfQzT)r+!>E=^ldk%Iye3)SXj`*Z+CZ1ZdK@AhT+nc-dWuclU z>|-1r`;cLv?eIy5&p@hk?~G3){B`y5HGGifuw?PX@f@f5aPHi~q6rYLt-`IiK+>j8 zY0$OL3Qu9dN->Yt9kWWQS-m|^Xv}?g(S#!yM%*LG4gK67xFZUCFq$>hVF9OG_5GUD z%`j;8U=hN2=}B(r=8$5O_KNiVdWyq@uJ8C4-lZs@7`!P$e*Gh{j3hU7e>lLl*DDq~ z>nRRf>Uu+?M%}o;%!@Zm>uh+C;(WR_{o7kiY)t9wT~r+v`1lKVfA&QJ)dBA0H*kKE z?vw9(WWum`*;Vr}Ph0x^Q(Lq^akx|D6MKVdWS}++cN6AHCc*p)4Y$7N`jsv2Sn;iT zbUUP$VLswD9%DR>Z((oL4akUy0`7BNf62sYHVGZ?ZmlSxnDZM3V2r1X@jr1zK*rO6 zd|o7+BK=;AT`mfYXBOL~-Nxlt#I~}`H*hv7m+SEejj`hw;;W#I**>zgcn?PiAgeA4 z0(){?E~CT~xS<2NK;@(@6+kHd>>vbgMxtPgR1m75#3}B2vPIFwi4jrC)U>IgrQg6m ajr|SB5)U{l>!t?)00006Gi9w-pG3m*9Nii9DQ7Hfb00000?=$W?00009 za7bBm000XU000XU0RWnu7ytkP=1D|BR7i>KlRrVoZJI@R8Hkvr(0d+{zvq7yF*zxT;K&vQ+y zY1`S(cK&gSS5j6;zwp0qNx670IznEnLi4sI<>KvKLpTmt*)Exj^M;(SPec*2s@-z* zvz>;Vo4co?0bpgjrC}2(SU@ zGsK8%j99qfXq;+#s{e33(xt zS1IceGYlm>!vs?=bA!wd?3sk@mE}z7ETEx;XN0^70f4z-l}wJxa;7w?eQYFrxsd0ZdMW%gt;A4| zIOiTwy+l7vCowd7obB{R&R8hC!kShigNNtbBjQ{EdS>X0dcnoQBQIEE7X;}2(!RSf z7u-k;a8?7lxp#)&p=!6+*KJYMJX`z>*a5iE^ve1=@c&`)hw}~Y+A^sEbtuUI0000< KMNUMnLSTZP%ok|@ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/octillery.png b/graphics/object_events/pics/pokemon/followers/octillery.png new file mode 100644 index 0000000000000000000000000000000000000000..261f3a46af5582ab4df428f27959c6d84a9a1491 GIT binary patch literal 691 zcmV;k0!;mhP)FN3T*;%nE0RR910000000000000007)bf>00009 za7bBm000XU000XU0RWnu7ytkQDM>^@R7i>Kls}8xFdRTdu|B|cxwSQvgY37PLsEh# zU$LC4ryDF8JRXe&+1sJxEyZiGeV|WSDXFEO6<<1(c4@RE4@vJS{u6{Q<1#Me{~7VS zzbkyxJ^x|wyb!OIqG#p_ncG7Ct*}t>O`E+sPoBCDGk?IR!qN!$K)8MCo)zGEFzVuN z1!hBD5Y|@s==(30hu4C4-AxShA)g8(W%;uYXnO!3m<2Ik$4dEp$VzyJv5s!>w;*^n27s@5;{?p(lgu1BUC5D0it*tDwM3)fE? zD|~bh_bh-5xoLXsR)@SGMELfrYQNl0$db|uGnOm{aj|*mrGIKdJ{2PLVBU+3Tf!=8 zjDpByIf$!o3?4Y-6CsLdP1nL*5hfXt6=NVS{pz2y2dj6>r#ak zZg-Aza|tTPs2rL>3!QmRdrc?a?wHmj)d}2A;4k|0{V43Ri3@WNN5=~Rz_{CKv%Tku z)0Ly)+z0Njr4`m!*~C?9&g2+N%7&4;C&RD}{9=67+Vihm|Ngq^(;x6nD|Bv!<(N&J zVa}0b%;@}@0`PGdJma%B2l8QE1m^8m%F#a> ZKLHA#KTcAMl;8jW002ovPDHLkV1fZhF@pdA literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/oddish.png b/graphics/object_events/pics/pokemon/followers/oddish.png new file mode 100644 index 0000000000000000000000000000000000000000..312a72979496d8a43872f54c1e00757fc0bae46a GIT binary patch literal 412 zcmV;N0b~A&P)K)IDy(Fc=14%LnioB5zJba@TBO@ZhbE z1am=f0~Xfc%3`B~naP0a#1e!rwrP>NRDLr(-%lLLQV>c>Nl8gb`9C2VBNMT$z>Qz* z_C;P6JYs}S8u@L&EVL_{x@6qwkP#&{#~JeZ3}&HSadBJUG&v+~x1 z9zr@Hg}erR$}fy{O#4jiq?j-6yTC)RZ0sX~Cb_KUvhe!Zt_zc^)q55+srt|2e&>z+ zXhyrx?%21sr4bvub-#i~lg+x_j%J}W{OeZbhxKJce_RQ9T$%?>$Is$VsxG`Rtv1w^(F-cJX00000000007@AxX00009 za7bBm000XU000XU0RWnu7ytkP(Md!>R7i>Klrc*yK@^1-7Pd+wNUEtukhKeM$zzMx z2%;!fK1M88Uvi&fenmpUZABEte;}`ZwL(~k%#U*JX5E>&agxf)oGRa(-E(e+or$8g z)>><=@1rcsI?H&~^Q#n}A^u*%JaEBZSum7xw2b)xz8`1c$1#qgt_e_`F!RDZMNAt% z{(Z9VUtfpAK%TF*GERaOhEtu002ovPDHLkV1jj!3sL|8 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/omastar.png b/graphics/object_events/pics/pokemon/followers/omastar.png new file mode 100644 index 0000000000000000000000000000000000000000..5f32df5ec9050d8124f7dc43740668f76b1572d7 GIT binary patch literal 837 zcmV-L1G@Z)P)Kl|5_QKp4jlG#=Ump^GLLBQU6ui#--f zp&vux4wTWL18HifgpjR6O6g><;JheuV!J-H&n*__Uojq)AlBgm)Jb9(s&1NLG;7t4CO%UlrCB@LZ^ zM*h5Gpk~doDdB!*;4qf~34PdwK`(1AJ)2PHFhlCmkWzOZ9p-8b`@0>v=x3k0E)9B^ z@rH0gf7!!jf`>6iK|f&~Jc21&{t5x?!Q;zF(3!-TXA)U53&M#RHt zbeI9y-f%(QH6>UTELp#-Sm(SzsAWKKQNk_^Jwk}5wr!XB=Sfb=B`ZN*P;em*i*E9k zP|90U09jD5ZdU1tAkV@COTjMlgn=D;6PqmF3qiP5Y>J;2=VL-cG8KYlLBScT46QM9 zuw4sw8Ds_X!-owG5+$HGORE)`D`!lI<-|ge#gdaj$=dn!Dqnd-?cy#2P{8l2kAe5$ z*AF3><%;!+VZ2#8mW4J#kQbC3S1Z21zrNkB@%~^{e2tq2EgyV)MCXsULm^l|#i{J! zCa@8jl32DdmYj$VK3)AZ5!!d8;&shD-$=gPTkq~}Vkwv@HkAVsSW^1ewk7z zUEFst!5caD=I)}IJV3??gh8832~2$*`|K441WTq2yh;){1F@bB-8z))lU`Zr*JaHZyBy!d00SQ^n=;lpWd_VZ ztRD=!EKOe=N)xtF9&ih+ z-h{bnLM@KHC#xwv*3NKVL!48Z(RAU~)Xq4~wYuzvATR@El2IYH^m%HHwKHT6@JB{} z{pMF0GnN|*I1WKz0ucI1N5kx1&x7`cZtu#cZ|R?j^n1CS07Vd(Dq64l-QS1u^wjpl&7fw145JnBmYrAcRVFubwEMJElTrI2Rhy2t zlw|J$4Ie(3H`)PJ+i9WwR~8>krFrn|z`U<6L4^1FS2%{w=-@luL7=+q+XHA+?IzIU zl;}2mN^Oppeelc)M>J~C0T*F2kJC|*emB6658VIa_ZOoLQyZGR^X32m002ovPDHLk FV1mGI*j@kt literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/paras.png b/graphics/object_events/pics/pokemon/followers/paras.png new file mode 100644 index 0000000000000000000000000000000000000000..edd76c832b7e759ada4a3f37afed9f8d2cd46482 GIT binary patch literal 625 zcmV-%0*?KOP)FN2YF-h5Bap9pM>B(6D0000000000Qlk*900009 za7bBm000XU000XU0RWnu7ytkP=Sf6CR7i>KlCf^vFc5~hkZ;f-83|bI>;QR$&IS$2 z=q5)TZatMQL+6!&T?{;BgcjW1m_}8n6dPRCrHB<9BSQ{ zNBrK!kxQn^xQS2MM1jWv4g&EYOpIHySKYxQp1Xc3s*xc!lx`F9><9yg#1x-|GvslY zf`hcZL-F-K#$pf{r!$cf-I3Uo5ImdEfPMV5g$?j&v*)VKZ;Wq%@Xeed8fxoVM^@mE zq_tCn+W4PrLt^~^_Xu1~iyd#Z<=W;ATHJN}=8zhUY$j%=70BzFN2YF-h5Bap9pM>B(6D0000000000Qlk*900009 za7bBm000XU000XU0RWnu7ytkQfJsC_R7i>Kl}&EjFc5{g5f36j@&Sw%J%*t|bd7EV z79wF}C&1(Zas~@v+zXiTHUS*x0&#Pw4u3>jgd{JD?mR1fwwOC1@;}}WwcxBq@Z>&G?+BU4U zs)pIE?A({QaBb87Y`g535#GVT(2?G?gA64nQ}X;$4KY@(oxRVF*_^x^IsK{HL52gf z)G=P4V4VjLJUaiFO}_O!eC%Ea89f*_C4OgpUhiBxM}Hf$IdUDTQ#HanH}rFmxaPHb zGH*ny?lxlhBnVR{rBuuOTMJxvhVOQyXIHykq<6tteRUtgpstYAUp#xSLh(UK{3dfThE_7WX)bN`*x zEgTSk3A{4>Z98^?--;h!XAN}*ROZ0JFlp?Bim|0PB#!H115`c|E*YcD%axBz3dZU@ zOpt(JnPy}uy#bfR@T_r7;0;L$W2_K#;|y72IWL95Igt$&WY(={&Sg$gMnxC_1W~!b zOX&oYz^(*mOr#L`tQO9Y=axmC+m^Wm`I>ivM9P{pHI~)20YtFGjr}@015|OCFwGX+ z3F3@bhN0)m*H?&(B$P{mjN398I6*|ifqS~l$SeB?qh7G0j=3+OP)`L82D2RT9EIy3 z$O7X*!%Kp@4+%yZ3w+r~WyLRg=yG=*vEg_E>!-l;NX7q%ztqX{+d`#qhyVZp07*qo IM6N<$f@k1cCjbBd literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/pelipper.png b/graphics/object_events/pics/pokemon/followers/pelipper.png new file mode 100644 index 0000000000000000000000000000000000000000..b4097c06c22ce1d3c7f574e5552d4a416d19180a GIT binary patch literal 1014 zcmVFN2Ak&yub0YPbz;n7KnX&H%$nK4OmFh2US00009 za7bBm000XU000XU0RWnu7ytkRY)M2xR7i>KmAz}*Kp4ga0T0SxMB`HY2Q<(Qi7}>- zt#EaO1{YIQN+-1#BRsTV0t(3>D8hL$#oaQ?wbPn&s5@jz29t(RC>jcd&_5sqkHG{S zl0iM)hb)2#5#+q$j)w0!^gFNXd}k59HN+m8=ngf#bxCD-V2 z`=k|AERbw1A#3IGCD-T^iHU&;pk0&(1M&8KEVl zjpt7g(ZurVhz`ij)OTm#Oc>PPeXG}a93Ko$WPTXg!T^N^cuYjMlPB)ltF-B+=k0a| zjutbhG~RoSx5i*4Vo`op0|gK zoJwwSB603ssQ?3j$8<$`7Qm!LCam2zMB=u1NgH}l_nhcKYU;)8UPc!N6GWsZK%)WT z+bOHi2!P0syb&fYA%4u6ff+SOG*fypqwC72i-{ytZJ6)|RL)EsC=u;1fR zJU&;g6s-xDpju}y%?Kw4=L3xu+m#G2NBi~I)Q)s2dYY{}; zz;sFoz(FP8dbUG}TJvGzXNahL`UW*X?Q{qLg(fxlA|lG1Na(c^ev;DKW#D>(5p;y?_v zK7X8^J284Vqb&5?lK+r3U_|VlPunMMj~cjbf0b`4B{If|^`fGLiOJr2V%kc~1T)?h?*x!cNiG0{g%=Y~?$VWBULtGl(eBjmH-N+y?PlKdL2@CJ-% ztYh|nBGh9BBylT?&%?*Sz~)yURmbDvZ%)K2s`EvhC{{wFwL=WPN>>yoy0q{_!^x6+ kcJB)L21>@)&$*fU1Ixed$&Iw|UjP6A07*qoM6N<$f~g|XfB*mh literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/persian.png b/graphics/object_events/pics/pokemon/followers/persian.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec83aea565c1bc8ae09d9bfaf72a42c249cd621 GIT binary patch literal 717 zcmV;;0y6!HP)En`N64q@!5fqX;GnpX+b$L000000000000000eBX&_00009 za7bBm000XU000XU0RWnu7ytkQLrFwIR7i>Km9fs#Fc8Nhd*lTeqZla>U7~o11sg)5 zkHC(Qy3!yyjE!6Q{|4yOx6zHU%O}*A!zN9A4sz)bCb&vff3kh|zw@1&W&iD8HCZq1 zP)5jMmi5npNHX8AmrcPrj3jeZ%cj5~Vuyk+TqD6|4kLbccDL@nQhbly4DbY@yUOM% zzQ@Yp2A3GzCpet*9VV;U?oyC8DtikHou~NE#(RjUFD0rj5PJ(?|0c-^r)0KTcYqe% z1%#z3xOG~Qh}q=mGX4`QGF!?Wprh8#c)lL-N{_#$@t?Q~!^#RsH56HjeL_H&;MZR- z%J(Mb5MXt7ZMQn-DbAFWtY`*=IVLGDOw8fL>fwap$77!2Uy{kCN37tb_}8*Ef!z&r zlEH&J@P!75IpapgP2fs6@p~slNOvWCR6Mdm&VwZO%^d%>cZs?{eY11oJVVR*bQ}(d0(kGfakFUtkr{8Y%fpK#PL&A zu7P)Xn%k&ewQ==L){R}vLaLTABVZoq%|!&za{8vtUz&H zXI30veq*2>$?o7Yw&La@r^^M)o1Fjd^RL)X>ERSMf4=7^00000NkvXXu0mjfjC)Go literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/phanpy.png b/graphics/object_events/pics/pokemon/followers/phanpy.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f9fb8f3bfdc2b059f5db81af0507ae2fc033bd GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*vQDpsA!qF^W@D= zM#jL#jWZP$fByX0x$)vfLqnh{G*B1Dp9B=*EbxddW?o@Ehdg**1G^}Kmk&6)Yu z(dd7d4x86M_g8Nbm^1|hOuSEd&q!U^eX}mVC+7T_7Yc&LidQ01vu{px%e0H;6u$QF zm}r#T=cU{+rHKm9E+5HwcK@@>Vy??JWlJw!-IXJIf0s?e=I)!mHapt9)+hb?Yg)Ff z<+6Tq*{+N7$M$sDohyqz&e47NaJK>T3hPZLf}I!N`)>38F;AG_vjaN~@)?dhobjs+ zmbGi&)A?Cs$C)Xf0>A6-DIE#!J$+n#Dt)|c-p(6k%K5hY zL-&068};$io8XMMkLS)3N~!2Nu}tjOz5QJ4TJ^T=(@%ZjZTY+8xWw(svV}L)BpNRC pJi4v9B0>D>jgMc~EbaS$k^istmK4VlhBu%f_jL7hS?83{1OUv>$5j9T literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/pichu.png b/graphics/object_events/pics/pokemon/followers/pichu.png new file mode 100644 index 0000000000000000000000000000000000000000..67d6c4b6d79f1bd90c14f672cac2d3526952263c GIT binary patch literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*f_D$GB7akVdX+Y zLqkSJ#>7a?gDV{m26n!D`Sa(^Oh-pYpjtR^WyvuDaySb-B8wRqxP?KOkzv*x2?hp6 zcTX3`5RcBcSN3}!b`W9zAYCPUr+LBb3;P{d+}qPGKK=7iNyWR>tTD&ww!>W3kNX9B z+~d>^>g=sQ=dJPO(+Ad`9Z#h>YCaX+KQPgyL(#d7N75)ooS}Nsf`2Kuo~s#UmA^{0 z{2E<)<=eenf#VB<9dg$wUn{t-w`3c)!FKnR5z?#UjMGI+qV6@ znSA6#$Zw-pRz?m-_+LC{K63h!=90Wgw^%J+KNq=wQFlq6kXXcmR|T;rEOZ65)7|bq z`Ns1(_~`F@-!hMR_Eo(t2{fO$KL5v^rz~HaK2{XZJ3B|RRQNvkf!7bR z+phl5apKOT=SGoT*VxjE8J{pt+854LXSh80m+{~0HOz5YSKqt!=}iI!x~Hq3%Q~lo FCIBEw%W41s literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/pidgeot.png b/graphics/object_events/pics/pokemon/followers/pidgeot.png new file mode 100644 index 0000000000000000000000000000000000000000..cdcdce3cdd81eb872d5065201498aebbdb7f3727 GIT binary patch literal 1177 zcmV;K1ZMk*P)G|=|arwb9Q8^jmadF8>A)%q6G2&_w00009 za7bBm000V|000V|0Vb6__5c6`4@pEpR7i=vmN9GOMi_=w2(FoC$#uK9y)F`N1pAK+zfSr!7$C4WH1Ori41bXmkPxDi+CIA*aBy7gFTQrbnpkRtY$sZwM# z-^^&_i!U6(nZ}Yv`kwcFzZuUujvRLJd%CDz@H?nZ{r z`-Whl?rj}k=lL5Of!2dN!0v6G_ur}~=oA#T*Y7Ll{XFaSdX`EH0IC3B6beC^2Bge5 zDm7r#Q7r3o&MlP}>%pbEtNxe6WTle#w z0a-;4`!gOSa7{F)Qt_Hk{nR0YSC~FlLQwo4y{$?9-esS3WyjB2&=S(|7ClG-E zth3tJ5s?u%LIG*!mE!9ug*VpytiE=-TW3=Dvzz1l0cXzyV2`PY2q~naipYpSaWNs@ zN&yDfdz}V!0Vz&&WEGYfi>MC1$POmZ@l8rd(g61fIcXx2iak+(0c&cVi>W(+=&yeE zOQakC;I#yRg9-rf6~ctX(vbixwc>(!m_pTh=Vn5VL%TjIe){9>yM3k{1PmOZSUC`Y z;_-zBP>~S;iPS6=7vfz2Jo=Qs6jL2S#lQP)=TBJlh~gjtKox^1MB)apMlHS)Y^!q;OME`xl%D{64H`g`m<=l#N*rm#xz~f znF3I}gvd%v6`=TDlz4Hb7oWQ?9Yw8T(GG0(6#$OC`bxcDCF2F9>8#QjFG&*_DHpJF zs*~cIfDFGb&FXfgqqZO=qJFD*vl0m%?{06I?(rU`6#J^nE?ovqWN`@woa)pWpLu17 zUKxONWC5tC-zrA4W)&6Nt4j@VON^Icr87>4O=O1)m4N`b;(v`}0i+|-#Ek%8&nOoA zN-k5r)d1#xi}4R3(h)>u6WLN{ERL0fZG9WcqXvd_WB_Q9VvLPq2l>LFm{vyuS}^n^ zijG)Y03tKrpE}Xi!LMO^0)wM=aQuACjbZ^125mlTekpLL1wdpLz=_0?v;fkPP5812 zOdnzbfM?e1Mn5+NAhPyzHP6fw>BuVKxb_|LDPDaL0FgN#7*Q17KZ#~^(E+mVU(o!K rKjpfBboTFW{g+Xs;ll!)$Xxvme`|!V|7a@-00000NkvXXu0mjf8!{AX literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/pidgeotto.png b/graphics/object_events/pics/pokemon/followers/pidgeotto.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf9865eba7d3c18059768afe3ca99a4c408394f GIT binary patch literal 912 zcmV;B18@9^P)FN35adGj{aq)@a$w?uhA)&#UK>+~)u~8ua0000000000F2s+r00009 za7bBm000V|000V|0Vb6__5c6_21!IgR7i>KmA`A-KorLhZYr7%Z?3kCU1W|JV{7Y} z(HI1of{CE=pW#KtW1*(aR18PBXmBu1O{7H#LXqAd)syarlv7#=B%Si`p!=cs{eIrP zlM#B0w|J?*-fIi2UoaV+Juznq*hKUh`SIy_e{MauC#>PWN@zJg4fcJ3*b=aaCTokZ zOH@0?)HuM4O`7%vf=3o@qDc^2>z$!+jD0W@r{~8wwizZtD^QnT5*eF#5X=W%_YILc zr^YdK1dj2hN6;1UJx%26IXqaj0(hzR*ALopR+!~Qyy>4oS72J`1f`yHieO%K1f-xA zs2xM94*>_8tfe&q3nPF-Bk-_PbF(5ouk?m7^JK}ygL0g~!386b<~;#iEasXK^W2jH zqjIO0Vd58h!6OM%*P<(8omc(*sYYewX~(xES7y-m=EI0QM!F0W0&*RvBPg&|98AFZ5febd_hP^^Wjn< zxHZwR0YKx3C5M92B4b>3ijy^hkQ&FpY3taZ5%9sBiD*mWO~WvZywOnB$VnTbN+!T; zm7<@QmwP7-Ri`+jT%hwKhg|@jw2tY_g`$|4ujBYfg=RdAZagPva+A{#>2I*OqWE}y zeQ2IkPC;aDHo6bRDYlLU5)@whhjO>tBWIibxLF z@ibHfKliHMa^!hSY)!n&-rGxqR^5)|Wp!6w=im41(gp=)A9va0*d)^<+FvKeO!u>O z(djDv^z2)scjfC3ih%a=b5 z4Gn)@44heL$;ilfGSYIQr6f=l8u%jr*aaxWS>O>_%)r1k7lawrrrLgEU|^i%>EamT z(fRi3LBAFQ0fq~00+##}pK7^G*Z;6j=Afctpti&-4kU|4US!#=Fn%IdA!2>b4{!F@gX1{CQ k{PJT`Kgyo5|1;XhkfE`%ZVlHpMNoWty85}Sb4q9e0BA_*>Hq)$ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/piloswine.png b/graphics/object_events/pics/pokemon/followers/piloswine.png new file mode 100644 index 0000000000000000000000000000000000000000..00942dede2d2e0867ce1b4a9bba04c1ae38a6494 GIT binary patch literal 640 zcmV-`0)PF9P)4~A~>G_#yL6Ipz000000000000000->Jj<00009 za7bBm000XU000XU0RWnu7ytkP_DMuRR7i>K)V*%oFc1fD4&(#SP!~B;_SK@NYybaWTCa&RY=l{_l1*TntRGWO~JO~U8 zfp)@j!Z_v-$fKT3IWIRLTEVH&&4lp^^7JVhw+V!SRIkCn%MJ3V4OH%61U83qP1msx z3~hEq!@)K8U5>j_Ht;xVoIqfz-PNJnK)Ir;SauDDCbiuXfyVsh2L!HsU}#fyV{Tee zb}Gk>_9+A=85;Aa=lr-f8|nhR58X4UE2(u=iwWbz25v@u`&{KYHM@5H+I!y(lnDLv zS5vzYL*vA5iEA+2BK-Md#q`!s?7j63SabF5&(r;`IjrFQP4B(Gu>ikC|Hy`e_ zkovSmLnrG%DPIXBk+<-@s5Q_1~AqBXMtHxE0lG*_E*e`}@ptapsQK8ouH z=@tmLWaR<4K?@G;q;Bn;R&^S>O>_%)r1c48n{Iv*t)JFfdAax;Tb- zbiSRqG3&5_h->r53!!ndE{ZMtc5CT`vq3IvZ2t<1H*VS{G3k7s4(q2sM4Myvn`#;5AdPxo_97 z2?hPi(O(eHY1qAeT93M6ruBpi8Ap~R@V78_Z~G%&8!q~LVe8XN=NGU$oq44DU&HR+ zJyl&Dm29mG&WQ)Ot{EQK_2svJ@fB0eH%Gr60qUyw@N~oGFlEQ=n_sftF-P3EmG%lK zx>uTIjpe#+f0B)(E*?6#)!@y0C!3DQ|Dr(#D>F5&EsvNUbpF+%jKnqkPx@S&noO_n zXL}#EHh-7@#(xt}dwn|oPNdpWP)G^4CX}O6JK{+8wQBm>H0RR91uL5^c00009 za7bBm000XU000XU0RWnu7ytkQib+I4R7i>K)z5F*Fcb&yT%*g`bpbQ=ae4;XiNQGTFTyv-D!8i~5IS~`(|+(_K0>CxG~TX;F* zZAL$Nj%sPT^FWuQ+2`}Bfpi&2=2skn@r8?R_T5c#LY1aFD>2%drrF<&qgE5w{c&xY z?8SB3Odm&AQ&T1C&g${FnVP1*IY#YXC$xWTB)A!K>I3GeWI@M{X7 z=0vwazuv?EAK}pD5b~M?9ga=x)dO`K_wV2iZf2etwL2abf!?6QGx(nIQ03`1W(;6_ z2~0L^ngp>OPs9q6fxIs*%EdVI^1wvpX%5mb{%|_NDlD5)(klc)@wb7^^CFFsBCE7d?Z;o*Ljrb)_+z^tLP-0#USOBD7w z5Gz-6f-$CQiZUmx?(A0`3SonNKFn}XS}rtt5gvp{!(oRFA6OuUDvw+OHauVtmX%nx zv}NZ8X`0$0Owg+K#jfy0wGh#{UG1Y0000K)3I*CFc1b{4|MPdq66JH5u~6#L_uaq znTqOxwNKim~z zbs4Leu>isr_oUYb)yGahf;hR7^2dm$3Dqx~wxmb6}M ztlbpN*y8Ae51)$kY6iZH2@8;ku^M7$TWWdWL5KGB19TMvG3Y%AxT^QOXQz&Jj3rhi}O f_^a22r~feDFO|;ubGB}e00000NkvXXu0mjfM^4v0 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/politoed.png b/graphics/object_events/pics/pokemon/followers/politoed.png new file mode 100644 index 0000000000000000000000000000000000000000..0180446b328032a6e3b7a6fcc830bba81b12928f GIT binary patch literal 751 zcmVG_%2aq-DX0~Kdr00009 za7bBm000XU000XU0RWnu7ytkQWl2OqR7i>Kls||QK^VnX7|23wgbP?)Wp({*G{vzb z>;$)14#K$*B%F=yiN!&RfGk|}0^xG4jW%8(2SN%#A&syJT(P7Ov9yVL0d+bdr8BdC zX1>WKQ9-MGRes;gdvE^?YZ&WU&wBpXDFRiUT~}x9M2WFuO3jk|B|FPkZ?KGJrVdl(-V&M z!|Ag#ie;eA+z?jxY}G=Qv00000n?{iC00009 za7bBm000XU000XU0RWnu7ytkPgh@m}R7i>Kkuht7Kp2Lz?!=U)bn~5jzL)QP@6JxA zRjXF5TD7WVny0gAD4xRk3}f?DHnDEVo?dI{VkYA>K78v+mdLrrSf2id$4a@%e=X=m zdEi+B7O@8q0dQHE3u(L6von}B@`xS+E5<3!fO{_v3%u0>2m~$*`NHC6{rWhZHnR803Pe9$ zX27U_%`WF!Vc~Hu3t{1o(ho5}Vb7=0kW@@q0Wf;#V@%vK54bGknm;AUm)p!vundXl z$9`6D|H>!Cs{SeGP`m(J2+uEL_Xx+9T;OejJ@9?#6W6Ic&T@XIJ9)pD8O@BGO|Y8^ zY{yo?DA|ivjd>ukZCe~LB!=wIM1Laqb5A}lntN(K3;bbp%tz{ZYlDB)Hvmb|;m5a3 QkN^Mx07*qoM6N<$f`G~Bm;e9( literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/poliwhirl.png b/graphics/object_events/pics/pokemon/followers/poliwhirl.png new file mode 100644 index 0000000000000000000000000000000000000000..d98396f8131170e09a152c0fe6165ecc67b15966 GIT binary patch literal 569 zcmV-90>=G`P)Kls`|xKp4h*iRnxQOmTAI1DNANWK#KK z7=gTiTS+Xknt-_01UyD!O$;lOd`ho(E!R6}ql1YC#DNWK-(pjwthOm#niedozFmaS|E0jKlsk*tKoG~ZaH!UjL{{!T#j!Rvb`wYw zb5*ccEV)L8SZr&2;D9T^$!u#Pf?Wo?h_5>?iHm%>%&vCzvXpQ|Qh8(-znPu?JoK=v zvz_g1XZt@EhJR)-yW)Em+mr>RV1?yzE<_=vhAC_2DP^moVwEk6Qy;Fp?DN=;sSv9| zyA@7L!bO7yh74t^dY;lS6md{cE3@30fa5Io8#%RlwqY2`v)~C!7o*Tq%={+)O93ik zzgVEm(lt^m8Tk#&wV+vgnWqd67ZzG&=^FLH_kkGS32Q-muka!^oED($wnqyEDy(LD z{GtASJ!gXKjpTO*)4TklbGz%nPK{udVPa+yvI1H!-GOc5Y~GdwkWYry`O6)>Vsx54 z#8rlbF&v)49+;k)X&#T-r3M%ozz8>_S8CvOzXQ+BN*KW^L&7y35&0YI0%OhZmEZ-r z(}H8NbS&#?-Zrczdiiz-{V>l6O7>}#7r2^V$3$8u(kqx5R)ROA`zjTT7Bh&W#Z2Fn zmTCYc{f=l2T%!lvYYn3ORYuF7;&cDufo$&e3fh`izhp)m>R>G_#CQ2_w~NjWL`Q6X_*LAl9!En%XX00009 za7bBm000XU000XU0RWnu7ytkQ9Z5t%R7i>Klrd}DKorMs3J21nMF_lvY#Gx>Z8g<5 zXorA@2ArW zfA9V8-5tl+CN{B&|0Z~%4J5c(vWc-F9@ao@a2;y~=oOA7f^T zFUB}w2VQJ9aq4z5%=5b?=dc5Vg!|$cGmC9%FojMdhv_LXcxZk8#pXBgUP>vJ^;Y}| z&u6`$PtKqp^zoLMH`bKsXI5*)=`BD<&RHElCO~@Y4NE>Rm=yFAqQ4fcQttwQhZ@$o zNC*HvpaP-d0WB!^u&%f?%-smu=*|=@(d;5&0N%;_l7(Vo2w$Q$))kkAQ-1_LdXE&h zwbw#??7fQ-ZxxIS21nf!tQWk}O=q;gZ=>OizG{!fRz99&c;J3K{jTX`Qzux@kDk7= zg)Hw;166QN4CWa%oK*GF@Lv5IZ^>-qjb=d8t0Rqisy+iZm{R<=@e}f@@}WmI4OsvH N002ovPDHLkV1gQfH=6(e literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/poochyena.png b/graphics/object_events/pics/pokemon/followers/poochyena.png new file mode 100644 index 0000000000000000000000000000000000000000..2c92a6b8f4cb1be745e76dc2b9fe5145832f5ec4 GIT binary patch literal 551 zcmV+?0@(eDP)JNR7i>K)Im$bFc=2lu(C^UacdB73cIHUO6foF zrYoECC}E-WEO^#o3B3t=uM9`&uQYAhmVENm0X|Y@%?lHf|p@@z$x53yE9F_Jg_6 z!l{F93z<@Z#9b(p4Pw8L?JYg-54cU#Uchn3h8gBsMN3YOM-JT=GUiU;I@T)Fn3wEv znfT>l5V}psD5D&AtW6O6lqt5W<$f5tFZ`szJIC$mLfcP{}}&cL!4gj5x~ zdVkNL`xS}%)L9{LTxY80h{Z0{Wmz^2;;!&Tgs+xI#@g9I4R&B#T$*RfS}$~4c#&Ms zZO@bB%(AB=>5Q);X*JBw7f#`ovHM3G&AI11w}OBPBjJum!Wti?_3S6+|&TrxRei!~%egK(JzTgV%)2;vj002ovPDHLkV1h|x_yYg{ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/porygon.png b/graphics/object_events/pics/pokemon/followers/porygon.png new file mode 100644 index 0000000000000000000000000000000000000000..04115d119ac348ca23b89893617dd8e9fe11fec2 GIT binary patch literal 612 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 P00000NkvXXu0mjfp^h7> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/quagsire.png b/graphics/object_events/pics/pokemon/followers/quagsire.png new file mode 100644 index 0000000000000000000000000000000000000000..7a848da87fe6c5aea39111be455e6ce9d7e50404 GIT binary patch literal 625 zcmV-%0*?KOP)FN0Z0000000000GeIm=00009 za7bBm000XU000XU0RWnu7ytkP=Sf6CR7i>Kl|66UFc5|X58NH20=l^poZUKzg11cF zTY*AHSr@VJY`{)_Ku~*5;g5gYqf}8x)-D_)*?iF8hZNt3q(v|YZgs0$-Rk1f`g#_+ zbozX5-d9Rr%c52VPxQHIQ&i=ZJfYtO3-j4jt=z`9@IbkCpDzsj@p6tY5i~1ijVE|} zILFOonBC|151KP_R< zY~2S685;&Bz)_Aeoyx>=0Z?0}#|Q$4NIu zm>t&})eGRr*t`lXkVc2#3FJ4FpRgC8VcD@5(Z7~$l-&bp*$Ps#qq0xSk#jRb13i^x zX&5aNNn|J4Wg3l;$daXvIGdUe@AWX`tSio1SCP6u!-Br(Df{XNI;QD4`N2Fa1Lt7q zK+Kuo%iY-NA4IHQz%Z=FEG@$6(7OPI>-(qe|NYv(B87j!eq{XtEUx^dMHPFP00000 LNkvXXu0mjf@|qWV literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/quilava.png b/graphics/object_events/pics/pokemon/followers/quilava.png new file mode 100644 index 0000000000000000000000000000000000000000..00fad810be39ed66a22f4e9724d20b2625fa3df9 GIT binary patch literal 1062 zcmV+>1ljwEP)G>HsNhxu8`O#syF);xF0RR91soTi100009 za7bBm000XU000XU0RWnu7ytkRoJmAMR7i>KmCbA0NEpUNU|=ywARpR8OGtFdp-T^a zo3KcmoF+x27!0vNZE#s|lfxDYX%D`YJ&a&jP@$KeOGQi9*`8d7P_cXIp%=G=+6J?r z;y5(@IOuQajAYM@#ikItJrs5@*pJ5Zd!BjcLz?z~`(B&=tqp4BZ*1UwwZZhv+@bw@jK^#avp}%7sC=Lj#2F54ob?xMMU~Y>sV2p#F1jfC!%WI`rsajIG zrX(&vebBAj5?7rDqH^vWGT@~(EP;A$$8nz4j!j$uSO%CFpx@ABdSilDR?EwQZ=9#$ z1^KYB0gK>VRTD3ROsr`ku=YS0c;gk%c1l_EYNcs|LJKPE@LcGf7Sz@udLa5a4-|u= z7QpUsEIgmO>FiNvP(`G|4NzGHR#YIkfm+l2_S`?k4f;Zw1ikZepetAfLemsGAmDVzDBLc=C4?5Uzu4_wz&1O?Lr1{HXyz zY;!3uL<2Z*MN{-Z(RzRh#-ud4OIXo)bF+XUEJ3%$4SsT~nPGj|Ve+DwfM(e2WZH_s z64OgUR|nK1u1EXh0cb!xOe-{7gV6b-o}LpYD^UTS-_N9+!OX`)fR7{XIQ_xjBeYG2 zA^>H2?`|gke0AmQ3l4mSOX&D_?eX1Y z{MdQfVEl+uD}6BPbQ-rI+M~Wa%I7=q^XoZjFw1pOmh32MN4xT}V+XA*51NsfryJX6 zqR3pxA|wZ9qhUrxOAOEslFsXcq15wS&nf-IWMr!ST+4pTEL!uXSsWW^GuC|3H0STg z0mdj9sqc^Xw~|pq0U8Pa$hL4tGaABRrZGEYP|Mn$3|ZJtEK3FCo5A|N@WRUXCu5X& g#M8`t3Gg4b&zrV|mCx|>K>z>%07*qoM6N<$f?`tg6951J literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/qwilfish.png b/graphics/object_events/pics/pokemon/followers/qwilfish.png new file mode 100644 index 0000000000000000000000000000000000000000..97f77749593a37487ac50f3b208af8ed134cecdf GIT binary patch literal 633 zcmV-<0*3vGP)K)iF!MKokJrgK~%HREjQc4@`wPqy#!S z7QrnIv=r(PQ$2?`Iq2Xbf>T#P&>tWj4K!4)lcJ0HQQoyp?=I$wgAPg`6#A9id%2g_ z3qs3S#xnj-;Fj)|_rnD`BP}ED-~4ca=96AvbN#OsSll8KP)Y)`zY%z-yQ|eB7C;!7 z{f(e>kqPh!jLuEq7xNjV08~z9-pCgTw~)!chqVpojc_6sM4rin3e&*gR>*ucVctAK zvA{BV(h;R6nsGbkyO9a=o+cD6v5a=7EpZEtZJ=PwM>e-|I1mW^Ela&a-L<$6FtRJf z_9s`%yPFwznd~u$1!@7^B_@_Ir_dziSI0w-%$`Z+?)YOq`gQvZpc?l~MiGr|nxH}x zo41Q~S`ixts#8|ZR+KiXCjjSXhfcA1LdHWapm>E(ggxp%rR-z!%i7H4vMk_+7taqD zmg^LoH$6&{q#_H{qA1EdV3#&8N3(>P581lx@e$k)V9zlbxhrkUn-38;4v(*99^9RX z?Kn+V9;znte}hW(#{O-i=a|gnU`Ia;U*58>tB;qAje7_;H$Bx_kXoZr3Cvzp0G+06 zoW9Gs&#V=ArF1tin;+-fdVypw@sO#H2 TR1qMv00000NkvXXu0mjf@!=D{ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/raichu.png b/graphics/object_events/pics/pokemon/followers/raichu.png new file mode 100644 index 0000000000000000000000000000000000000000..1887d9a74621bb5f563d79e33fe53b5784c7b1a6 GIT binary patch literal 805 zcmV+=1KRwFP)Ct&p000009&AD100009 za7bBm000V|000V|0Vb6__5c6^n@L1LR7i>Kl`(4@F&Ku$70eA<)(+)8N66H_W#gL?E3ItlH|4Sv^Njf_@+#1>` z@8IK+zVCfc(jf!ztYAF#w# z!MK1KJ@-7EGgRzlSekn%R}4z`6@(7*{=nLv&wrJR86s5n z{65q3g7wW&3VO)Nxs`%>&sho(*KdAJ9%nx{kCWa0!hEuu`@eaQ%L{&8J^&Wwfk(33 jKcDy9rO8JF|4zRF=C)~SaP%|M00000NkvXXu0mjfUC(7L literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/raikou.png b/graphics/object_events/pics/pokemon/followers/raikou.png new file mode 100644 index 0000000000000000000000000000000000000000..9f092fbc5170a10abf0ac75d1cbc1f89d409b48a GIT binary patch literal 1010 zcmVFN3Dxj~^>xk*`BaXFD$K`A+5VVTLvBKjg@00009 za7bBm000XU000XU0RWnu7ytkRXh}ptR7i>K)<0<5N*Dm}!w@tW51m{S0>-5Xf|foF z3TQQWE7>x7Y~OaaQodML78QzuP!ZQ?FYg4JMO;kPUn+@(9ig>sCC+p`pL0R=8yWRQ6nAFe#B3X4k1GRp_Gm6 zmAyib_&ZTs?h`?sGmW@|sUab@ANq!DYlH_^U1F9ICr_t^0wqTwxNW92N6NdwB@f5q8nOJ4P$e6tg+C6o6FJ*b*@`%H9Yw?}qxuSQ zge==E*OaTNVP%I>wk6RmZNwGJ$g&ZiPgr(iECGn`)A0?3T25UTf7t*yqRcRYi7|B5 zMY`p(5rFRbkR3|Nbx}|W(O$?5gYOyO@S1}TOHP8O)9D{(xGn-AWTD8_=6u};sUvJ) z=f3E;AVQu`6Z+m)#PE7S=47#0Ra*zY>(Nuu$jjic==*p@XTE>u``#2)8>s|Tq7qzb zPWSJ+%COT>$)6!E__tuYg)8I6@4fau8}X8^P9OYNVx;XmWd6I5UBtXO@2=ZB)d)RR zCn!0@al((fuAh9!3KWe%aA2eH*_S||bYtt#1;ya$z0#aME;`tbx6b}~)9bzUPFL0D z=0kTf(S{3@Sfg}f>vv#2H^yttb>9WJ=>B#MiWGX?-oHU|HOuCf!1wz{T3TQUlzi;t zFDCZY|3RP4^@%= z^ZX$9t|_{qSW-Vcvfig&Q;M;7`k`_lnKa=Au5uJNlas;81g;rwD6(|_cOYg3BFeFM z&hABdWYRdVbQHI618_6CX1LL`CGcRqmwHVpCqC@M$ZVPC<|mvOTD0R+R)Cu|5!cGu zq<)rpG_xe-(oA=JJF`H%G?NAF9Ny08>(R8&6Vn-zY2!k|fqj{FMD2XRk-2Nzt?ZG0 zF`LwB0lJtbeKU?|mNdg2v}Rd>DB)O2&m2YVe8Kv|jQU^LL}6+@P5sFnE>~ zh!S!bvIMl9FBpv<7Ygj+d_iRoZ$Hujuhvx8*@Rs3s=g>8Vep_lfd;kCd07*qoM6N<$g6ZJo(f|Me literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ralts.png b/graphics/object_events/pics/pokemon/followers/ralts.png new file mode 100644 index 0000000000000000000000000000000000000000..94cd696d3a4f1b4b9940b7009e902944e326f49a GIT binary patch literal 476 zcmV<20VDp2P)K(6LIyKoADtfTRei4&n=Fb)-p58bOPY zZ35Q{5zK1{cfNp)5LC!ba#ac?m&W$6615Pvy~4tGFJ0!O&7$w_Ii}2G0HLMj zSJLS$micm-i=E7tT!~$0l|tFQM3KVX#=VvTHw?S}RG7C}cR*5(i>}L4)Zd)73w3kK z-KO$ATA(Kdx-sB|!2LC3oj%Po?#;D4+u^3w1HU~QS}5yR0NjmrfDAAAySxK={>Mh- S*xr8t0000p)m>R>G_#CQ2_w~NjWL`Q6X_*LAl9!En%XX00009 za7bBm000XU000XU0RWnu7ytkR5J^NqR7i>Kl|O6SKp4hvJkVj#W(fKe?;sHyeF2+( z84VJ|H4^S{gXN_|yJzdNl3?2Grh<`fW z^E`L=NxxJ(I@`=?2wK zS#L3csVm6j8v=P8%PXY1tVosh7ZVIaQVf`q(2x}aDG=_Xo3#%?_b70*C}b zmA6)?uSE9PiF@S8bl_k<<@r%i<$9Ha@~@q*GD_DulL835dPtrDENd3#ng0hq3OZ-9 zfyBg#b3=NPOFr(AmY@{M^6K7Kxt;(?1jB~$ykf(<*KAO&wG2Pjw!Fma!Y09ngJ z&w*j9hxLbHay4y_1kwF8xio*af;6(-sVxM!Dj4E6z}CG@ZX%DhZJ$oq!hGUim|#Ca z32>H6y wM!q~jEm`oz07d5u|EfxsBE4R(1$d!;0pCrwLFbHEv;Y7A07*qoM6N<$g0?xNDF6Tf literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/raticate.png b/graphics/object_events/pics/pokemon/followers/raticate.png new file mode 100644 index 0000000000000000000000000000000000000000..691a58a6611b0599635a8626cc8da6a539bd01ef GIT binary patch literal 589 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*!Xaw<-?OJBON7o zt}J}{@@J=E<;jyLHzry#GBN^Hp#eS1J4xx2M2|?OPwuxWVQe zczdC!dC-#2P48>X>h|7?Ex-FU|4HI*r#g#-nzbKd&wfb#$ISS|Nct0pTFd^t59%F4 z=C|7fpNM?Ce*LfQvDUdc(p4AOIUcmhx*Ren-<10z_<_^WkL=$v=gzq|wL$o>t^R_o zUB_9T{`#gXrrM^l=A0*#m)sV-Tryz&={Y!1I~ zaDR*xTb0Rh!F^^o@8PzUIYAlBhqV}74t=c5v#JxTf3&J#W8w`N#r>fkatrx4JQQbG zs(f?9*-aLLZJ!Sv-Ie%x?%5-z8cQC2P-IM4U6z+Kjmx#Yb8@NkY;%Uy%NN|9e>Ug| zbArR18mS5WqSFmLINwJ|-qPt$_|){GtZ%LkZ>is+X{Sr9~j@%+z;-R6fr{WWYT7Tf3* zedoxr-Kk4cr`^np^e4cx%OlBA*E)o(>$hfPd>7EbGz@g@EKS1wlmlH Z&bR!r&(inK15o;4@O1TaS?83{1OV2E{$2n8 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/rattata.png b/graphics/object_events/pics/pokemon/followers/rattata.png new file mode 100644 index 0000000000000000000000000000000000000000..e3b389ef618ba5fd8fc4ea2e642fb665b670f19c GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*toDWaAo67OT);Q zH#hDCvTojdXsMVPIrHVqpNx!*K!wO4<+z3ekk47*5n0T@z%>_y8P%rReq&%@oagD{ z7~;|ScFM-QW&?pX-Mh!aQcqWeNliJqb@HjRQu7otr}s%3e-lh_?0L&A5TJY{Sj^e$ zUB-zC%YxYb3~Dyk&Nr+VNLsP5P3qPEDS}#^fyjBmhtJdsFQGPlCI#&1==Otdf(YyN*i^(vx2*;)BS^pVZ0^b<>#`fphALu1XoX?12?e(Yhz?hH~B>tyN*#5Vso zd${VM%8DRYmcGX2LN!MMzHXlW`#98aMs~>%g;!!SFhf7`0Emd7*3tr zmpkRl^<8CdmK7cDd=XN2Lw99C$qn0pgXxj`x;FD<$xnS6Yb_aKsrCKwI)@6)!*{$_ n22A-{I`8hKa|z3D&%Y+V_;*W=?+tNTP;`2_`njxgN@xNA(B9~F literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/rayquaza.png b/graphics/object_events/pics/pokemon/followers/rayquaza.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1a1e547c83d3c15f85bc2122ae524d97a9049b GIT binary patch literal 1648 zcmV-$29NoPP)*xp6TuG4aVU$=UIl;gP|iDUo>@$tfujK^a*Q2>}5C>lL=V00009 za7bBm000XU000XU0RWnu7ytkT=1D|BR7i<^md$G%M;eFg zzaW?$8sDsD#CCiNmK&#cFWx}{N8m+=-9xUyx%m)G29kimEaZ?Jg781!gVnKRVo`3b z84P>ysJlGse9`l!K6+*}BPERx^K`%Ud#b9dtD6vt88OG?$NVw9fOyvBO#l4}-*pH9 zASAz=&BRTA*owEw`TyUWi9Ua*|I3Wz*_k}BWykAe;k$o5Car5{3T*{l3>|WQ%?x2; zwk$KsD#03^;r^kiRCsXf>hAdLywFxWzZKqoJo5JV%!o8o$Y`y6tf%h;r@9+2Ma^X9 z&Po_=10Oxg*?L-opc>JmM?Zb(7?zwv&Q^Ox48fG)K98fO)E%OY&Kj+1Y1A!j}Lxnt>4?d)(AgPldkT*6%H+v zg)f$tbr->tX5miRJQNLY4?H0xqU2L9Q;rBmpwPf}p@dM^8z`M8a`Lnhw!*T!`Pg6YpcIxZ2q`DRecT+mC>w@0T?tPzi>q z@8{`}-ZN<9X&r#8)!E=_N+wJ}*2>cC6iD*X_4?84eax4_4J|CS@HMs!$E+TuBgADm z+Mt)nl$B7i3XHFS+8&@xODoVkQbvKo&Jm4<@Ba{t2F3NIu&#tO(!$X|3+v~uz+dYH zf0=mi$(s>mmPfFsgqn}N&bRHd;UMzlHx;Pa_cY6r@1{m@J>r8wQAZN7?XL`LVa4aX zX4@^?kq|Fsw4YqEY=xSSJJ-H#`GFCLC{`;tb_IzW>|>HD z) zT`pr-b?G~~Vl8z3Qz%w};5AV_vue?$NGdi$&6K?k`q;)dKV$jeL27uYxV-c!K7XzR z^qnHkW9YhZR|WQ5>Frm1GvSJLVA9M=As*W2(r_g-JL?ep!*H1+70)59xYbEewdr{o zQGq0{$I>M>u>9mw#c%$RDyA}yl7I?vV3&ktG7(ZIp#3~dnra{I^-|5F02V(4KclOw zN?-zOUEpyQm|?}prD9Tu{U?KgNG{qHG3K$5yvgWV5&J4nZf&9F;St0))V_)@kmpW`pb0<7T@Vxz!1|$l}O{%TT?sXcw{9P5^@V zG%u{MIQ*OMjs^3q>w(pxHh4vMENC#d36RF)8g@?FARv!#rx_q2g@d<&R zHre(>noW$ro9d-7`A#cEvf7JaZz`BFy}wx>sO^8!xMEIb1y_V<9G(=YN98Y*F$#eD zo?yXQELYSE5ca2OmS?^WzyC(Pq7yb2kl()NHxv}B->FJ3nNnzQ^ae1lH0RaI)X_1k+;mPs&000000000000000>|J~&00009 za7bBm000XU000XU0RWnu7ytkQ$Vo&&R7i>K*2_-YKokbx*;pE0V~|zHyD|c#=mWAG5?d!U=B;^k_gYw4Lje+a}FKC~(8ca^G zA|EE*&F;&TAD)8zPBt6I^@z*1IJ;`{$wHU=rtEHZzk`9y>nsb@tQIv&xe#Z~p1wQk zv+D+b;tLTQB61r{2n`(mB*Zy1SOb_I^=9C2w6@!6V_#D=8-yHn(#c}%2j!mEodrclxt9f6jFn~>Ky?hfQ;snZI}SZo znuT}^gA@Z}&nTZt<+x%DG=f`oK?Ew0covlQdv0Fv0{xH|Bm*4^gKuD)^foKdS_YyS zTUiA{G{*C1Ss<}Ox3C-f7!X=OZ!VOnKUACUlfuRSzRy(0voa42%%~UxeTbrH=I4O~ zmd>7Y%X5Rwf$RDCjV)cY4A^mr%prsoW1w1uY9HLyqVnbZ$vkag$CY;&+Jp6X8kq5H zDwf;wxAw5(YM`f9zgB=+0~f5pwx-x|HIP=%%}0Qb(^b literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/regirock.png b/graphics/object_events/pics/pokemon/followers/regirock.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7985681f636f1c9bdb9ae8546f50b28beccc19 GIT binary patch literal 1074 zcmV-21kL-2P)Oqf*~zh4IkBOUVJRU10000000000ziMr400009 za7bBm000XU000XU0RWnu7ytkRs7XXYR7i>KmN9SJMi@Xp9AIeaLc%f!Eyt5-s+N|7 zNedKQq+T2p$sjRiwRDl{oDsA`EXd%HPRXJcSqcPbXm8e{c#ELa2)L0*fExT!{f?3- zQW4uUK)0M0zN7RW#XAB7_&h$3j~j&k0~3}%_^&KSHOvQc+!!r#wdeFx_+JB6`~hKj zHMM8-Qy73TJER$7p2@Qbg}Q%Ep*DV6$l|9W#+kRjH)>B;{x#koT~hL$@3&xo@*6GS z10jkSVAns-1=e_fG@|6K?@ysNnhQ3tV0--n2Kjf@Q6`XQ5>1{{^QHgt584=w!vgM4 zE{-=dj=z4*2l7m;C<yg-2&+XD|AZ9fh0u z;OB2_(b~uW-@kfwUdsg5n8dLiibuXL`mr5{1$;k_4>mIp;rspT(Kvnl))*RbsEZ%* z(_?W=3mEUldt`>p8Y`CPiFou?)f!u28pyMJW`?-ygx~}D^lapvh*jTj4_JW0`gFx? zF631!jx&KA1G&=bGxQx%n1Dom?o~d6EQzlusm+KWDsQ+pEAD zC&Ga9%geF(Ylf{nC&F$euq;YCqK&((=Rh6#YbOaN z!fu7tH43^S0}2IGvXcbSXlg^o(oHjLnwp2)PPc8(*(-DYt>u6&9>SLBVTp6=_70Ol zDXhPlPA;w-Fx&xKfRW1V2g@Ed2Y52|tbAZR0A-Abjb+M&HW6Hi1Iez5C#Xf zl;vV4WA~n-tL;o+ZNi~oc+7QBn117~<2vRkg~e7dT-I??p$s}5$8eW{reYYmfSiEr z(B*HXa4`&zE+*%r>ruCz3S|)4^x8|G>MH3bnondA7VjT=_6lk4r6f5_g-I~?_Ch<_ s03h>qJ&QTZ2ZtYbe!kj8`2UW-0mRGmqRg=|ga7~l07*qoM6N<$f)!`#hX4Qo literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/registeel.png b/graphics/object_events/pics/pokemon/followers/registeel.png new file mode 100644 index 0000000000000000000000000000000000000000..ad188426fe12e4774614c328b06cdfe9c5df8dfe GIT binary patch literal 845 zcmV-T1G4;yP)K)W2)nKoke?BOKn(5sJZ+RpVq$FW9AC zBw0}e?i5P#Xgi7`(4@vhflhLSbNLUtXUk?Bf6i{roSdX4S0it!Z*0jW^uyboIWqtyMzm`9$7u92x{S{qc6j4a>5EER1(F5Tys~ z1MO~S!@8tbb~ZBaXrKpbumMd+eC`6QrJtn^2p%qxs7 z3W2VfHsB0b^j&&HhyV|0RTjXz<<^}Qg+MFW32%gkpB!os(irsZzFg*>vkB~9l=<0) zz@956fxHpEymyvSpc0Z-e128<+uykR8G_teqP(-Sw)stg?!uiV(XYF-OO$Tm_mTru_5Y$};< zM>ETuEzm?{~* zymR^+Cir!l7*FMwdSl-^AQi3=eOlOvW?2P8Aa3X#LqN6BSMcat;!Q(ILYUOQ!!tDr zc7ms!#5+M2_hn!Ug_Ky|@yd|MvU= X`Kgag_@>}l00000NkvXXu0mjf?s|W6 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/relicanth.png b/graphics/object_events/pics/pokemon/followers/relicanth.png new file mode 100644 index 0000000000000000000000000000000000000000..10c4c9943484b306dc773121761a78465e2b0c6e GIT binary patch literal 864 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 UiAokZPXGV_07*qoM6N<$g5W)Bk^lez literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/rhyhorn.png b/graphics/object_events/pics/pokemon/followers/rhyhorn.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2c6a992c7b440bb3c22944f4226a8e494cf929 GIT binary patch literal 635 zcmV->0)+jEP)FN0a0Rg!&89`w&k&%&!Avtkzaj~(n7kf@m00009 za7bBm000XU000XU0RWnu7ytkP@kvBMR7i>K)iIBoFcb%HBqqMbZQW3rEVG@V>r~}!KZE}`_9H~mv!3;=|EIEa+n=sH z-S%e}5QEzE!v#FbmnCK!j-a7p%a2NOjhu!pNDA8UqlzKRGoivpM&z)gq=;Z1c;`Vi z8conPP^})Ya8#RQod2LZf2CaP^CIK~&09OTHQjmSjEk^sAOkKQuyjIZPllq9Yb}sz zEJBXz_apP4*$pcrSNj8U$Z;>rFPRM5HpOTI-%J`Z>O;QMLlJN;=|zk^0{A_3wPem+ zXRn;Jue_6FTEF9g%U(32YK+&@mRv8OXG?UNM1je5AfI(M4$5w0b zx>P#1c?MagK2Hc@G)f~{hx(nBX&9fWEjH%D(L;Lx=tbfhAWMzp{pu2zJ zr0+pejat`*&*yDp_1+_0|K4J8@$GsAueE9`zZ3oKJ0sZzUskmCG;{#H*Hlr!F?F5T zb*=UrnT52G*E5@(%{(1yhf>1n)>S8CT^-$_tDTLkZe7%Yb#@I%08o>t1UR#BJ_jbY zrNC`jVV$@KcCGyY#k1=c%8t5#4l;4NITChY#wps(_6)5r-i@B$+4)^|z(48V*Iy*e V0eKi=c0T|B002ovPDHLkV1hl+Cg1=7 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/roselia.png b/graphics/object_events/pics/pokemon/followers/roselia.png new file mode 100644 index 0000000000000000000000000000000000000000..5c067a5ee2452e3c03c36a7e127667700884aa72 GIT binary patch literal 623 zcmV-#0+9WQP)+~)SrIYGL2;>pIXPhwkttE3$&mm600000=ql5R00009 za7bBm000XU000XU0RWnu7ytkPZKo|#bAp~d8^l69(A+WS4ATlMw zYpDx)fYjt6y2v6yPL#o&T4)}?2JKxfQ)=kpJq0hxlELU*a*ieW?(>~Nbm*f0_S0wG zUv~&u)7rFY)22I*?+YnBZ=`;hlAXrA?S@1C$g#_?eT^)+@3PcNV*B)3&R70+WMDEVZ+!}$oO|pX|hPf zAID44$L6W9F8fTW{taW%I^S{d%+XN_7ZNlg(gToO$2b0$yaCmx@0X+n-e&*+002ov JPDHLkV1n3+BYyw@ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/sableye.png b/graphics/object_events/pics/pokemon/followers/sableye.png new file mode 100644 index 0000000000000000000000000000000000000000..97f7ccfc2d88b4fba2796be0c76c4eff16c74a6d GIT binary patch literal 554 zcmV+_0@eMAP)K)V*rMFcbw~qfK<{6BrGpu{#z*-=`#C zI)*+(CJ_p4WGyu`AX$?)J6neoJNKa~I}l5%6uJ~T_zVf3e~uK#+$fqdWy+K(|0dhZ z#_{kq3mKhELXL3l6uNFBMEcKwkr-SAo!f=3brniWVlH4C36yliT);9(_cb-@TeWy=^!Eu=BPo<4$z~#zNP9W)gH^C*pv4uKVD4 z-j?MnedS#@7P{_}$_1!HR>lGIQt84{QJ))t&yI|Ru7|>#)suRBPUC=?lnSJj)MpM0 zDU0#NcRduo&a-AY&*OlZZq#AaXMR{^Ql9^>AMS(jJ!@VbP{ z+S0aZYDR;mZ@jx_W}oZf*pY0iP1*)s?BBlfO8Cu0BCpNeI*x|XFx$q~sIXl} zY)5hBH>UiyFxwnQ{qRC^U75oSHS5Ciy9^scva$9HiL-#dr6Sggg*T-7^?BUp)-%Vg sJ5BqaKmQQQjNEpV4r31#d7ezGd?xA)!hp;Cx z7>dbpOvOS$Q+d)@>wJoAsgDYkiD>bm0Uyd<>`i$a3xV`t~F$*vq?Nndx(ESzGHHCD<*qiu%WBUMh2CuJLDsHg)Qf z9=+sdndz@Q6c?M--TCQ%{8gD%{L#RKhUtuQjM*Bn6C9C!)Z^SOG2WibtKsTw{*rTU zl~@gUp-*e$bP9P!!S1aZ(VHcY4RVZv&xFQq8T1l^9II0S18bX;XhsF@@nF6fZ&u;? zGPsTeip=>)V~puuVvu7(J#)0M$b<16T32w73lI;7tJffKOjZTslo}dq=zM38Wnzcn z08sGa9`5n(Oy3_q9qKUO3KSW`0ciA6gDlg3!;PU&$pep@UIk+Ze*};Gr|&@by-1+Q zrtg^m`*?DA1rPolGC)C-n{Lf3GojqAJI6LVb{yh$tJoqwKNp^f3tqv4)w=~8=vaqh zHMhisc8P5W#_+Oew~`5cJ6{H)xLjaybPPY-3hDj4Jp)B1L=q{b#&jtyYE?3E0u&4| zzZFaYVE&KLj6l`{Qs(IO20|D@=;R(I4v2+lSk?UE!vqF1+_;7ef(ll%GGHXn!AKN} zjDtc!$P6II@&H}JPw~O~!^bf<=GT0_6I6!C0b~qp z*8gC$o|#k}u=a$t`IhC)4QaI=(?k#rBfh!W=AaLaQC2WEd<)<2a@4nt7p+U<#7!1u z!t}!@dh+2RqlP;{Wtdju6Sq9R_I843=py4`NLTq17o^`z7p33S>18^@tWUO(u*7{q xc7n=~swykjgk(Ql@JCvd`BJ1E3ZFoqjZg1CM&9dp_FVt~002ovPDHLkV1nUvq2bx7VL>6esfhsr0U=>|*{M0{>G^qSSpfk7000000000000000ici1R00009 za7bBm000V|000V|0Vb6__5c6@e@R3^R7i>K)Ui&(Fc1LH3{i$|CxUD70o_prbAzlZ zuvN5TjoUPe*g7D@XbDBf7nBd69rBgLO=&KU-2sUKDL3_pL$!|oHtT;UZtoas8`264#FSU0pgR>KY5i|IP@ zH-K&7cA!s`SS?|@q1S2pSn$NvOX9ZFch0O1#;*&>n}(*31=H(`l)0TkfiSf@UCfaV zH+`5IsnsoSe!U%Yp65zAoZYK9BwIGE3yP1?@-t7IM%@q{Ufl@{Nk`MV0J6uMta*wZ za|Wz+0_vUMDk7J%o42h)UXI5z^6z-orq6`&0$d(c-6D3H?hWPulK9YYRF)Y@1zA}x z$w0~0v-bLWCQk#G`;@*3y{fcjUC^G_$puM}8LL^d-l?{=`?L54K|7z0_>g@#00000 LNkvXXu0mjfa=h!D literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/sandslash.png b/graphics/object_events/pics/pokemon/followers/sandslash.png new file mode 100644 index 0000000000000000000000000000000000000000..7977fb8fc91d427b88177ff1eeb30954e46960e5 GIT binary patch literal 729 zcmV;~0w(>5P)EW4KSy{2MvB`-s0RaK&>G_FaDKQ}tDQSV>sX@V^iJ@sBzBqal00009 za7bBm000V|000V|0Vb6__5c6^Pf0{UR7i>K)G><_K@PSq>o}mZ6 zUtnsngRm&bJZF=9p_^)A$UYTmg*Xj9! znRxWDqq{B`;!asAqq4$SYlwQIAJs@(uY`wv#aFm0wSTuL2s_pB+NX@fgWU|8#LKmcMV)KorMM7AF>#OR-SIk~`NzHzp?! zsTg6m9bQ_ebJUfk0x|I~B$WrxC`Fb&EjsB z7yScw<+&V;S68Yy{#YBdxQx>;Xd8DkFQi-y?&d(LY81Y21S~_D z2LeoT-!U|-Gg$KxoPKAsGh3536B?1H^Orw2{+Si5nMP$krrPypx zaMkSV7E=`iW7r2)kkCZ4A5ThF8JwZu@!SY%L&Mp`td+wzjJ^6auN7M?E?~T17=;y# zGsDqjiFNicUzQ}xtYKyt^Ho)N&xi9owUWq?%q`=V3L#}Z$c&&iEExhN^+ZY)eghHC zRz?sFBg4Vi&O7%f(N{5wtOEy?)a(J)gmLauBd85a#$u#8UkG}crs>oQqM>0=F0Ejy z{10L@wgzD^Od7_6DdRmR<4O<>4Vx3oLlsztB9DzA8dhAU%&J;MiC8RHubS5E09eB! zBJz+umxJmE#4p2CSB!YrOfw;;m7s1aCZejj%8LYNjaM9uvz$2$v{-Jg`?(QBLt6AU z*F|2xvgiv~=EuGfM8lfxq(&(!a+y|h5G_eFu~`ubX>p06At3+&00000e}i@500009 za7bBm000XU000XU0RWnu7ytkR21!IgR7i>Kl|66MKp4kwIEBG`zX3>mfzBST!L55+ z8X?rdMTr$Pjl={CqlpehUQm(v08NL|A*iOZdUzusg^WiP>2%+P=lmAiy@rX2K9M5- z?wg|0MWd7{Z!u=8a)VOg6DrizgM$ChKS#Ryh{V1Z`l111;#-_c2V_ zsu|YV3LG{=Z`SoT7zCLePvGx91~02-SYsscmBNQ4+qm_)*9;89a&F zW$aXy+wNyfGCj1vq#{&-+F#lxwg_SS7yi27CZjl{!U%H@Ig0$uGY2M=~FvG9HX)sR1Dp7yAVf5n5yT@*LS#yEkhM3WKqy z8E@rZn=ga@l!iOgOi&xezc;u)34hw1JcEGRzs(yR4MIw}uo3N0Rqyfu0000K)jw<8FcbiAfi-0_5;#Y`gnbg#rCF?4 zAZR{CDQ$*MM%NSJrqV)t*+P~m(}fJZ%NDMrL%v*PTXJljlR`s>Lf-cCJH7WL|2Y6& z;wAo@fY0rwM#UON!~W-8LSP??6s1PT!YX$Z3?oJLDxW>Xm_BY z!Hz-kvDR#OYKOLjR>9EaNrll-1b2(&tBF8!w z%w@N1WA&A(1ZnzxIqZGAC6=L)Nrw#WEILLfrWt3;)kq8__SBNsk2o@)GZbfw^FhO8 zqf5-pg&QZd4aug3Rzg!}=*;rQV*iYCk(oB{-Q){aA~JdyIJ9l>lkSoUrim*kapPak z9IX&WyVvm}j!0HsoIVU38qPL6vp25r1*P-dw8_Wo)9X^*EUtV5Z`|a?N~)Vxdrw2# z2E^`(#L5?(Z5qFFM&^R*>BOAlLGzdpIx+sKgn{jj<|&hlZ*uGl&c?OVgXU`!?GYk{ zEXaXt&>A`F7~?lLt{mUnu(D%Yz<$;2MA@M)I3L%}BWL9DN60libottRqwhDFzkjyh zJ)3vjG!U8K6#Ie-;>x}OAU^LJAfK<_1J3R~Qa)`D92fHsx4id{LttFQh<6$|`wxC# z|NBP8{2hU~{W`;(-4R-(-3GQmPSPXP7Krw&eF2~6=wZ)sCm$)hO!!CE1|vN-r)nK_ znpX21^$Kq1eZ%_tL8l_=vt1BISn#R5eYg6#p#}daegjVOPa+cd12_Nx002ovPDHLk FV1hmAfT;ig literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/seadra.png b/graphics/object_events/pics/pokemon/followers/seadra.png new file mode 100644 index 0000000000000000000000000000000000000000..64c61f85ffd643510743cf55b6937dc965390e50 GIT binary patch literal 813 zcmV+|1JeA7P)FN1FK}o5((MgG^`O%>>@c;k-000000000000000bfRQ)00009 za7bBm000XU000XU0RWnu7ytkQqe(KmOX3RKp21zjtm+dQ%c6Z3J7UZbh!5E z2Xv0=iY6V~Ur>qkP_{G_GTJACdl{WV$^FVoitf{OhK6o=2g4(Y_jx~jLI}OYOT2`N zcJ;jbPX|s>o+7e0VX*4&i+>m5`z}HEvrib@qb$V_PYJO@KI5&(DYpc^P^Ns98}@|= z5gt4FJ;urWZj*<5g(!z;if!n_ketDnEKg+ZGo5}?-odORdJmQwyQOZJ2)7%DdZ3r9EykPJXC$mcG~_s5^4 z`~csM>zGbtU@zP=xo{e0tvg(dk>8&bY z^(cH~OySFC=*k|S_PM`wQZtC^uWG4y6ke+W&P5gi6-u}`AB0qK2HnORvm&2SSu&D@ z^9wzq`LY*&oQ;gHqBbL&H%f@F2H{#WftK0F$YWHz7HtxW&E!<^AY>CQtblW1GtJNm zd88N}5So!vZ*1UMX#|*xXWgklh`6=O;mV>LAe)Sa+x^g%3cju^Av_C443K_hs&X{R_f+zSmC%cf~+tAIgx zqBsx}poQ)SiFMDfkR8M|;wh`A)?FloSlI>iLd_h0!tGRVB!Kukte4gf`iu}dOdzy{ zNU+9v|Mo%+obv{o{(?A$2D=UH2zHn`?-tau+6XcM4Kl|b$Gl^=0fejiY2LK^83S|L r%_3*sk3rIBFmb*Yx`Vcx|Nq4wm6Q<;${Sc{00000NkvXXu0mjfaMotW literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/seaking.png b/graphics/object_events/pics/pokemon/followers/seaking.png new file mode 100644 index 0000000000000000000000000000000000000000..6277a92913ad1276f19a6bb7272a711df435b8f4 GIT binary patch literal 1038 zcmV+p1o8WcP)G=Tx0byZb!9i&N0000000000v!Cws00009 za7bBm000XU000XU0RWnu7ytkRgh@m}R7i>Kl|PT1Mi|Da&C$n!RkZ0m5;9C> zDV58UW_7o2(4ifL+Yb4gRb-}wd_C&(x)UmzbV!!W}F*^O-}?mPv< zk7b@`-ak8N+Sl=Qe2Jmc;q*TY>W$|h@CMT-5A*$zAM_|1%~}BMjSld62Bn)G_R}F6 z%~~Lw^yu>pOvK`mAKn|NlqiEn7$o(;z?jGl*=+Lm>VjM#*hJWn5h8En5fm&@8IasZr0I2J)H@w2mE|?;>Rp{EgWz#P>uR-S zT^INO_boHEBLh{}SA@3XS9SR@tvI_5lAf+uHWwW2uyny@m| zp%gj2t)qkNV~Ee!S4&8wf{z4;0*$;NWJMMkgd(6lqdp_yQ$l^ZxU4ufu{?)ru0Gz{EI^j50tV5^=Fk}-d!!defEKnYBnon zd_AiGc*vU-`GecudWV^f1U1ulI!1-qa&txqv1W}lP~2xoGph}G@$Gkn{MyKn6wBW; z0GD1n5EdQVNO0(4SyMvJujZ(+wIMgE#=M9dvi$KmA+NeUnC~UubcUvj5EtYZENi?L zj5G26yUpbrVp((KbZy^r|GxwD%Nz3cp8R&}#GRpJY3Spk#IqkzQ*=z%e#04;g*cnu zy-b*8ou)pL29irh8RU@FT=24FaV`u)$r%Vk>Sg#(%W6<6KY0d1oJ-_(^mm+HSuXDl zd%!jiRHaCJ$QW6Y%j_ZT45{Mlyjy~s)}V3a`xAaVeZqUr>%X{yz0oJ#cyhMgSne?{ z>d?1NeQ46de3xekrF*%S2iT7M`=4LV(__rQKG|;hnUo%8aej^zGiPF;<*)D3qs+u1 zprhVk!tJBc=Xi=jaT?Qr4cSfZ5pEximrwAcBcH6A@_&tg00Y@wusSF>#U6+3B&l(Rp!E>FN1VQE34I0RR91>(!B%00009 za7bBm000XU000XU0RWnu7ytkQs!2paR7i>Km9cBvKorJr(G+r!p+lAq!X^L6Q&EQq z4_46R$vHA*DtKy^o{XU2U4axbcIc88TF4r@x1g!Ku@{3S?52-2*U?_!`6HSzWo zR0We-#x%W^%@*Std|>PuN-U-v@Yq9A$I~ZgG7m3j-)33!G~Kzq z*-gtSv6up@d^id?1m>PU-lXXn49clnVaGhy?a}G@%XpklNj-NL2JJc?Pj+{%aV0~+ zCFfCW677zD^`Fg0<&;<)a-BHV24T##L5vIA^wl{E_F@#&takXZxq?WHZu|ZDv@i)B z!@1E$P>{xvF-$`I3iSMSOE&bt2qLQmp9d!33(B{yF@I;N^OVkVhS%F0mulR5hNFG3p~kA zN1y26_}g2l*LovZR~tUptPNGoyraYAJ0m1lh9z%xILODh7GLnPa z@-m%J8fKccp*mC|{Gf=J2314H_X7YqqDGKhp7_33{fiVrl>O?L=JHAeDYC`xKMg5Q y^6FpgWxz2!bo~Z}bmGeo2S1Gf00003K{+{radBBm2>}5CVOdcjAsOk(d3jMOK|x80c_{z@00000$^SVm00009 za7bBm000XU000XU0RWnu7ytkPFiAu~R7i>K(J@QIKor37;&R*=*Dm7XP@J9IP7JvA z=(!1gfkQ3VSjUtmTM$q5BVGoc4QsY0QqDPi z*|kS#NDW)pQM3v5)3S?C*D!R~JJvh>`s_99*^}Da5<|CN_5aS2&zpVc{G2?GpPn@q ku*R9p{&PczjSGL-H~Sd8>GSk`W&i*H07*qoM6N<$g5J!>m;e9( literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/seel.png b/graphics/object_events/pics/pokemon/followers/seel.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d2cca52acddbaef5bd6610a791da443852a862 GIT binary patch literal 669 zcmV;O0%HA%P)jQ2_w~;oB(VXVPWa%`2YX_-wAx-00009 za7bBm000XU000XU0RWnu7ytkQ6G=otR7i>Kls%5yFc3xs1f~vNyOGxh6j+Xxk@gOCUEWJgrxpvXv@JCK^hZq@g$P(^N^Y#xR3j|kNfy< zL!=(A(sX8OHx};{WU!)G!J&oxmN0q!i_nWKTP{GvmI!=du*QZhxDfi0g-R)h`>;p~uohLdryF zH`~J$*|Ii2R`P6Fsbn?J!rUr)C{(zx^&pXZMk)|BBuQP*u~;vS0Hf(sqCx?!t&u)5 z)?BbR)~25047)MibSLaTwMSbLv*93cERo%rg*&wM97~8xRhG$k%nQd+2hZ&pP~w=l zXDSe~Is=^5Sb~M)-S|GL;Ml_M`!wHjKmYmT78{&4?3vwiy{!PYYB(k#J069hYaQdg z&d{;yO7`L9^b}z;_NIWSe0%)-@^uho+VRtLQA^u8#!M0%SAEHTKJ2g|UzKCt z7xd=z`}9i=r<%dhGHE9Knu=1|L*5kq|Jz|pdv%x#&H9K57`%OY$iu-ZbYZwqWLAL( znkiI>Q|3_9um0Kt>!9mP$6-GA-nQFv{^gYi|8V>P8YMM=K)%QP00000NkvXXu0mjf DYBe(O literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/sentret.png b/graphics/object_events/pics/pokemon/followers/sentret.png new file mode 100644 index 0000000000000000000000000000000000000000..0c51731d0780e63c9060f4d309e4511ce4bae1e0 GIT binary patch literal 608 zcmV-m0-ybfP)wae-k;*};J^AsOlE`H3Mh(W!x1NjU%j00000Jm73500009 za7bBm000XU000XU0RWnu7ytkP)=5M`R7i>Kl|M_vKp4hvNbS_&prHgb7_Hv0r^@E*2XN|LGK+# z86H*`&^wjA@|;ZYybw9Ei17et?sZk%W4VAF#{nNVw_yPjuX!?4@uS?%FB}`b&lh0< zR{>zH;)kccwC7TmHllWUx3CM?5QctB!R~MxV6%idUt$AcXtmVbfq(;Mfjh4HLx6zP zb}LS}w#5NjXANsGkwL`Ba0E_ZU1j4(PB8GtsUZwRJ$!GN@OI1VC;%d5iCQz_Y=B1f zErf_8q$yA1$<2L0!gPaor3NqJS*n@pJdgqe?gBdZi6NI*m;NISp2f3Nv!P#e7qzf0 zkhW68s3X41c8&>W{Y+lM3Q*5Qi&nTr+2n8gg2bMs6LdJ5!e2fsg@HX8;~(5wPR2fNqRninrxVt9_dv&{fgMe1 ui#`DZO9jWsHfGiU0000KmCs8XK@`Ua_7a$0)*pltJUChpje%@7 z#nLnf<46xZZK>qagY*yt=^@at2R(=dDb{2E0#88^HW9US+)FMMj2BaSaGn39Z#O^Y z&889rd-I+0-JSh>=FPq&ggn+`^~%UT1m)}9IluG(e7SaKHaOQ?xOYeJfIqjTUBWrf zx!%IPJIXK7Oa%#yEY8L(=Ow)7p^iosyl!4-$aTM>)r! zX4LJWjz$#?A2?l)2~{2v#5)=(;7~&7LX>k%N+l3OLff_pN%W`MufDi-L%Jz<4{@qSLUgw~NUx#CX1esb+- zPu5Dg%HNWKFaj>t%1<=`76MQgv{?anv=9;jY0QUj&8UUCu>YPgtg~vZoZRq~AQE~y zP~G19$b2Ow?XK6Qmrox91Zd#MOrVSs?g;cFb^$_y4Pn(k)? zL@L(+kvEfWiG}TVg;6~@n{+lV2Ed*$K)@5HqXegw^o*VBKb+@p+;*I!;<6_5agp9&rV1_Jp=E{*fIhACvjIZ4s*QbL$1Kd>BI zkVqJnf4f`13KY=41)&D)tRO#S>=@-8DvGi(_97KI6RYA_O3Sevj}DgjY`e}7(4XI} zw=`g5WxSyBbq41hIPDH&Rwp{O#40f|(i*dztZEVn`|6FrTfN?{XFLo%HajRw*)cl< zL4q_He6eLwMoYH97sjcAnhSdUd>;WJGn{Er0utT#WBDh{fK+2(?8|O>if|)4cnpg- zM;HKyD(zU-?jK3mzv8`uFN1_iIG8Zp>Y{8`O#6Ksj(qhiAhme*5qyi00009 za7bBm000XU000XU0RWnu7ytkQU`a$lR7i>K)iI0IKoke?@kp?+IJU6RR_tt!w`qp3 zEM$T>g#?ly<~TcRudxv<_X8Zb99v2H&B+#W*lca1m6K$5FEdGI zIZnHK-ETJezn4iiA>^iR>Yr7x#aqf6noTUn>}}-*W?#2~1%c6o*pAs-w$MYfw>L1` zq8Tw+uJ{hSiW?0?U@{?GI5;%en>(|*wT2;L5F1Qv7!1HMIGu}`P#TJQLm3$Rq}wC` zN`VHQw%obM`<)GaikYZQteaS25eQM2i3g4ka5*w_=YHN_+j1xho^5{CO&Iq8QUK0| zttOUiAOJSIu6pMIMMOr|SESowxRimi_%dTn7Z*@nfw!JX^`jZcKu*_>zV1*?TLpS@ z>Y(9OpwJp@ypzw$qbc4cZ6-EPQ|2l-p7T>Mjy5IOOh( zdP~2}76%S+0o0?c#fcn-$>LcRsJo~)JauzGe%NN)>qCOYNMRrRrjw7r*->ubbPyb ztsD@?fx&kC0tTA}i}{MHu2bdxEl*KMZXX-{d;CZF3hTadpzhtVt?apOS%>6Wj)}U5 cy8mDO1xET)n@>z2S^xk507*qoM6N<$g3OFq#{d8T literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/shedinja.png b/graphics/object_events/pics/pokemon/followers/shedinja.png new file mode 100644 index 0000000000000000000000000000000000000000..34c74185d9305b143c13dfc8afd561abc42cb15f GIT binary patch literal 693 zcmV;m0!safP)FN1-X+gQM!Fh3sIWb8A0RaF200000K(!Yz_Fcb%H;Ul*M4>m`$)L;vNmKq9O zO1A`+Oo7ri*A6$dOW=kMF)nZNR0{bE0vQ5@ETz-IjhQ-h%V3)jb8zo}shnSDDRRgk zkT;loZ29~2nSdOTCN(Xm_=ln(`9PKzS#*uO2gEyvBfC~y!0twGs#7G z)k}oOI%$pbZUIGSX|~0q9tmXEeZFc!Y|)EFEE3VHbLXmu!mTkEtev~veV}e)QO1P~ z>@rGCCNvQ1YE$1}D;A>bGRWy>KHc&T3@MX=G=Ru#5aMlLzGk!~TY=m#z_x*AIdKjw z5^*Qy5!M*Q&EliXGnt9D14H1j{ZHvG-zf4nz_3%G*%kuaEIvV!o6JN@@JOytcMVjR z6=VplB+GoWZN3SF&}1f_4|%ek&fs;R`^Z}_a>qA2fCRq(lNay}wz|0BI1IwwC)Hf; z$O*m7K`-#kM!srge~V{Dm>O)iLh4O2$Jriv4vyQ_ccd6s%6T04 bT*vA^P;yOVVc|Su00000NkvXXu0mjfCg?&Y literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/shelgon.png b/graphics/object_events/pics/pokemon/followers/shelgon.png new file mode 100644 index 0000000000000000000000000000000000000000..5d959acdadeef4b37483645686ce427e556b07a0 GIT binary patch literal 596 zcmV-a0;~OrP)iGe98xw*;d>G@e%X#oKN000000000000000Z_Pnp00009 za7bBm000XU000XU0RWnu7ytkP%1J~)R7i>K)z50%KoACSgKpJZY)UBPqGUp#@hx6N z zWtaab9=yUH1Z3E>&E0je)yo^Vz4zGLY^1i)366`u_3;^FvyCCOiT^fM@xeAH=(PVG z5zp6;Ol@tPs1Y0v2t!%38;t@baNd15xG)>D@^ z@N5#|yyrA#lL=;NtNq0E;muXOfVh0)Xl~v(5r=~x%m3a zZ8@BcTwZ`Fgl;{A($M(&YCV$Ur;P$@UHsX6)jeW+tM!7JHrBJ|=e+|EY!((k{xi1B ieeIE1r;P)DKY7p**Q5$0RaKQS+Sv^@kt>;000000000000000LP`1$00009 za7bBm000XU000XU0RWnu7ytkPw@E}nR7i>Kld)>UFc5~b*^sG2plgG`CR35zq*9c$7B)Ip=(7{A%dozH~Tmj-`*|)^ZoL07koVgsPbe z#2e-Lw#26}P<Yw4h8C^1o8$T+%P5)zz$4+0z~b7HF1ss0!&}YRr!j5HmU+N(4`7MLwz8we1s-O zPr^-sWEQ~LT(QYO@8zDZOb6Nk!>fsjz;BL8>KSiP0bcIe^cDe5SB3(CP$2ET|B(VE z>3QV-elie{nkzW#HJh#x;HCol+6&5K&{ya}FN2QvALm%K~Ygz>B)H^ISHY0F#rGn-7?X?00009 za7bBm000XU000XU0RWnu7ytkR21!IgR7i>KmA`M=Koo#)uvkzA6x5ByLRF(o5iYX> zXJd;RDZ(UEDIk9%@5>-^fjnpZBK#L-EVreO3{)Rr=cLzAQ znJRV2lMw#6_r7;OY=h8aJjP@EH*x&{KOFh1Y(7QE0L*nWczsh(|Iw{|r(I zxeyCTF@&Uyq8TfhOyaoM&UxZvn-IR-dmR0g%&3{ge{V1)&n5=(#Auo$;W*0o$60J7 zLNTdLp2F4C^TcSHA5f?`MbzqLgkIyIXU~NYSbuKKWSKW;92Lu&z3AX_ zB7}yF3nyGCLzH0x(JT*(FB!)T;nmc}zn#L23xQk5hb39wXWVcXeY;XuI!+>lhKv`( zO<{2!v2|N=)*GT;-NE(Uk`VTls(x@VlQCoK*6knnDyLi+HB8uL!lEgUMtfz4RY1UsNDfFs>^S7rF@}F2ppXBU8NVq9>Emav;V#6>Bl9 zt%O>;)o{yrl@I?AU1%c;;;UYDH3PWou+&}UW0MA|DzNVCxEQa5QoVuK9^|+J-3w_w mBb_hd^$M(}1nKmD8GiuxGpc)naq$oU0000Z@NWCW^018WqHUj_e$1S7M9G@owf{8N0IPZrHtR+n)=q zU%oA~^2~WD|IO^Bi`QK&OA4RGt+9FO^4l&=4&lqncsnDyYi<>NFD|gVMn+0X-}v6k zMf>#%!!OtH-l@2yu_OG&(*}K4&e)RH#=TGyWKU->6F>fR5rx2Gfg-WV! k`|a(_?T_`={Ez?1q;zffVWYHtMxfyKboFyt=akR{0Li4o2LJ#7 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/shuckle.png b/graphics/object_events/pics/pokemon/followers/shuckle.png new file mode 100644 index 0000000000000000000000000000000000000000..01fe3ce737826022088c92c99cb292f92193cb3f GIT binary patch literal 594 zcmV-Y0Kl)p>EKpe$`=aNlr1>Gc(2z5ysLQ}hG zaj2sl=qeH+V;qV&Nh#E=8VbF&6a~8#LC}BByQaAxUz<}92cd8K+`GJ&yUWEemRf45 zrT&iyS<~`wWnz4<<8OsrJr6O){URoPbuwg@H#m27Yy>pWEntFA)qKG7`KLN&1844H zMqRZV@=ODa&vneUBrRYBb`LTWJu;;gG9Brj^$VEoR!3c&!g;A22${Vy_-F(N0VoI- z6l?~8yv2~U1z~`Dr6b`$&IYNfJH>2N!p_K8%&6D#$}hHfJHYwi@NrtqE7#M##!dnI zu3dH}!i7vl_WcHVJrn~OlN`;H_p94jT0+M8F|Q{3PAmmNHVm&7oqV*$Jdk8u;{I_I zKgDDI9hn*De)BDf;<1Q>Om}4DTsEzW2+Wutb2@UOSoIm#=XEX1iL6~w5145$iAL>& z2cp`Hp{{jdrpnO-toMmsb0`sMwxc{vA6Rc3OuQanL3qb_ z!V(3SzF@rhW9CR<=dQo`TH?Rfm+}6*%W?2 g^VxoV(KCObPg+jBUN!N3*#H0l07*qoM6N<$f)1SlPyhe` literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/shuppet.png b/graphics/object_events/pics/pokemon/followers/shuppet.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9f6d56806f767fd620ccfe0eb6baefbfbbadb6 GIT binary patch literal 522 zcmV+l0`>igP)bfytqv!7)*p5RGTW00009 za7bBm000XU000XU0RWnu7ytkPfJsC_R7i>Kl+kK~FcgM!5%6M9z{(?X$xJj0T}YLXc@*xlxz8^3e#J29vT&6zW2&OZwN4Oc-k zWRrb0&CLWSSHBms-O#?CW0oz)yI9DRdXr=jFj5AS+-%dj_WGm#lsE%>&m5vzajlR4c24Tqd24;%K zICCS6@Q(%vrhOvLQybW*MbEqeKHD3%YsR(^vtr1XviODTgt3rM}8!YSw@axf8E z2#$nmEbk6XI^PG9q97Q+FMvA^Q3@q>CAD`bN%(*M;{QIhn&v;84_k2nPyb!qUjP6A M07*qoM6N<$f;^ntv;Y7A literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/silcoon.png b/graphics/object_events/pics/pokemon/followers/silcoon.png new file mode 100644 index 0000000000000000000000000000000000000000..595d02ea6e2c7badd6df2e90f7551ca5bc20964c GIT binary patch literal 421 zcmV;W0b2fvP)FN2oF-d`eiBVBexw)y~;n4s900000AygLX00009 za7bBm000XU000XU0RWnu7ytkP8%ab#R7i>K(J^j=KoA8`yA4fzfEWs#LEcC6C9?2kW?7TL3Q~H5#zt)6a#p#W5%EyyOu%Dnp`2B=ob(A8 z6b9?#5+u0u*d|68%Hu2>Fh#>le1R6}S#%r7uTrXD=r~I0t9&_3S&M zKW|;aovZK_;9h_1cD8*3f9Jtlyjd3tMV5X?Rp(W7II<<%?m%^3dW-X?em4Dd@7~fo zt8+c0TX|&5`ol)A&v#vzoAOt$i=Dw;j@@RXjb^jZQa|{{u P00000NkvXXu0mjf_xidO literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/skarmory.png b/graphics/object_events/pics/pokemon/followers/skarmory.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3183449d7b086385b0af23057705716a57172b GIT binary patch literal 1071 zcmV+~1kn45P)KmcfeaHWY@9L6AN`>DI{C%{AUxm?304 zQ?fMn)o6m(W3o;WDtHsxBpA9&2sCun#eD$>leT)f%C?Rid&-@L(p|NfSc-K1|2s!H z9?SZF{Oz!vdrzSIwomUCVDT5f9yvzhUki+gMvmG20@+AlC^&Y^*7wG@f{~@6KOYkNmt_L_|gc1ESWkEh|06590ebIWhu>b|1GB^)-1I zCVfDp9LH85wI&wL7$fuof|@yEkV|&C#$bRNqVBnM%f{vG={E`KG9#PMwZloyl-X7=yFRaA!_t(%Rtio-G!;D2jt?FsDt@_Xci=!$YdBCb zpF_IKS5dbD=*m|cy@-7S?Gh~4ipVZ1mpI@!iNp{4TyLjK=ZuE}LS8u#l&o+XqCmXt zH36<>VWkx)Q3}p74pjUo2FG@$;zL5M7b z>9?*TGWU#ef)C5&;6|o%AQf-WUJ;q~jvG(wDuVN>AuN7MvotNA3dmuqhzLYuNpuR+ z=1thf5AGXju?MM+tut5pLP8vJ37qA!xXA`tNGxNCk1f*7_U>MPvEyj?(RnVE#K=hectE!&-^zXO4WXb@ri&VKufz3pyOufCb}Eo7pVtd?jT p;T?g282a)n{vV7x|CRg?$6p9`LNL3+1JnQj002ovPDHLkV1fs_>k0q> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/skiploom.png b/graphics/object_events/pics/pokemon/followers/skiploom.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ac8a5d941a196aeea12d7c87a4b29d24574da8 GIT binary patch literal 581 zcmV-L0=oT)P)KlfO#CP!xybq@k10rEegP4mE4xE~R;d z&Z*GFL7IX~QD_S;5we72DQ?oCLMeokB~XW$^HAP|COP*uH5Ji8a<+Rv&iQ>Oe-x#z zy6URyZ)!gI-T7ww`u5vRRZ@hX8V}O}WoMK5kEJNzJifk6R|PvA4GdFmkV31Z1isNO zFWMwvbaSN{lAat|B_(iktZ610XmU7{0;EtimGY0|t}&YqEs`#6R1#{BxzzZsXu9Y8 ziSSf<$5kDSVGxr54o6~uWUOMGNMUpoKS6{5Nr1Z<7(g~kjMC6`cIojJE`?|v!}%#f zbP8KNUV}~oQ==p_H?}ccLa@NCb&zxEaL2t5L>IdGG`w>#EB z&JVcb-a8^=T{?|#&;z+0<$$?`@e#{2>Re9EbD zG6a44oOCFv&?6Wp7fM6=S1A-WDl^_I*|@44Ywt!h-k18y_@CD&qS`o; Ttp_yY00000NkvXXu0mjf7PIjP literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/skitty.png b/graphics/object_events/pics/pokemon/followers/skitty.png new file mode 100644 index 0000000000000000000000000000000000000000..becb58b41ea5fc3cb5d0001aca47378c20ee0200 GIT binary patch literal 536 zcmV+z0_XjSP)00009 za7bBm000XU000XU0RWnu7ytkPj!8s8R7i>K)J`Aln4_r% zJg-7})S!@Snu&O*tLWqP9BTo^hThibxgYX5e`x#}v+Hxic@6(X@DmiT@#nhO%;(;7b z-`i{8gbxiHQZ_j4R)PrA zU0IQK_9Zc27H>vF+vNdIh{_cqnq9NryQn`Hb>Kmc47+Kp2OQa*$Ej4TKCPB!qy64z0Qd zY^wMRoc;kVGy!qiLK2L$l@1{!Swg{s&x>g=AwFm`btvuHu|w;033w|ubWj}d5W6(# zE8XeqDy2i04t=r3J-W;Dd+#Jn5c*&LNZlZ$3~%ATuF25(B=esdkh}SC^K|?wHG}iiIttvAxdPdl{#Ue%y5StEwFYn zqf(PKa!HJ8#s(-+*Ow& z-AL>Rn^m>DTxlgSI&g(A;+YGB{mBfa)m62tKCI^w7*ogB@!zW`S5;L#XLZXzA&H^J zi(L?&WrqojDHuC66cA=t*lCbW6wk2!q?+pWK4(hpcvdRZt>)ucuHH|nvy|2cUVy|P ztmK#PW$xXtXgsv$vk)@c0bi$i8prt4-Q~bAeMb78ec*2Irz+9)R=dR$bSL-4|yhF$izQw6RC&jR;tc z@)Rj-xI&`y0G$Ztfy$1yTOdwxq0At(bqcRteWT9<3Le`zAtb~(@gN|==;~@jh`Hno zflXp8nSMaQHnh3cbdmV4A?J<08-Qv=R49NmZ%9#KoSz{?{QM}20doO^km&1|x)}tJ z8ZZelu`H`Vid^W7EX(xg;Shd(ew3%8?+|aD)qE+()kt@`_6LGen z8&06N-Yl3#Q8x_##n%nu@EQt)aNU~s65SE@1Gz9y){BCjVJHycvl-pFEPBFfz6RfI zuK}UPn#X+P2RgzWno6a;2DVc(2nB%%r_(up5tW}`biYxdT)|yeh_p}xpb7=@sbJn+ lfaQOUZmIaST5MZ#{Q_{ucuNtrxC#IO002ovPDHLkV1imp*2n+= literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/slakoth.png b/graphics/object_events/pics/pokemon/followers/slakoth.png new file mode 100644 index 0000000000000000000000000000000000000000..c116006819e1d275ed05b1b9568efbeed17f78d8 GIT binary patch literal 652 zcmV;70(1R|P)>G^pfA<Klrd}EFc^k~Ky$Id+qri!WIG2s^dDpk z1ou)wOXA#?De2a^h2wrgmky;%hqlluU3xUoQf`ti*lD1HzXU>3D7lziAlrd!=@LtK zm6I-Air-0(r0;$8N!SQgs#K{`rT<45;~V)_-N~|ZowF>PTKAiN<0igM*awKU3J(B0 zeSO5fT$J)(wCBgR4Nif?6|4o$B}o#Ma^6lb0tN?8Ci&q^GSB85+_^) z&e?2Z^Q+Y`GG^(J!;`)Wm}Y5skg`F#U&?q*ocMtXkldQU>OpUr!+;I910zer=dR^PilcF)f4GP^t4mANDdi9xO8vbeU+KZ<FN1#F*(6OLBYw<*>Pb30Rho@fdBvihMSP800009 za7bBm000XU000XU0RWnu7ytkQo=HSOR7i>K)jw<7KokJ*BSS%h2a|ZnQiK+_n07fR zF(HC3g)RjTf{uX}6%Y2{p(>ax@lZhsxOVMw1nWb%LtG9Qx@Qm$*mc7hS`~vRzR%D* z>yOX!$r(B}Z}RWNdr!JM-vMwJcX1d0Paw42|5^Y+h_*Q6u4gBGYXRaxsFPIp#^tqY zNwWmVf}}bFUqSc;x+$JQ*b}QI%@g<=i3O5gMvA#~SFE<~TMGc7%sHz~xv$yRIEz)a zqt}dvXuVGc@py2mh>0E4(FkRFxXKM{s?ijXR9Me%97hIW_ z34d(Eu)ls%V-F1DY-Qk#-dz$O0GT_vmkp@XiH7?`W*%s6u&DMbv3*DgzQ4fZzs<0_! z_PsBm7g!sdX*evnX|oNx=A-wc=mX2JXbNU6DG&cJJVBJtv*iGZPLx&wYi!LPM+JWc zei-Fv+t4v5HV$W0*@s0cn5_%_X&Cn@iUvqv5?Rr(jjKT+3Rffg|P2?6U#c8rdsKm z6*n_l8L6i*1BGlJ0Dla<+1f`l`E$}QYT6EkszB?mGDY=qcwTt=uTzQ7cr mZe>fptl+lTykq5KlK2aSx58`yz@R1o00005fOP=5$Wmq>B(X7sjK)-h|_KokIAK`#(8cglD;Cg7!Dk+hSq z)>%n#sY9^5XmjO*R?x)(WhosJsKILps9U!diicpifg`^l!D|YkQ=vm}-64i{yZY?d zI$iFRp>%5B_TBltcRKu#4C8~Xrm+@XB1XRecs^4VgnFvbWbnKyCKqf9YctlYCkHYygal8F8PnlK9H3G8XR_SN9X&IQinL vX(U7S86~a(l$VZ_&&T^9Ik$?1zZt&)hAgR@|3CZZ00000NkvXXu0mjfo^*SI literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/slowpoke.png b/graphics/object_events/pics/pokemon/followers/slowpoke.png new file mode 100644 index 0000000000000000000000000000000000000000..c57aeaf7db67e244a600643c47b96f86718362ac GIT binary patch literal 634 zcmV-=0)_pFP)G`3lvBAN?VJR`0Sz+;+p#cE_`N6RO0000000000lLfbF00009 za7bBm000XU000XU0RWnu7ytkP@JU2LR7i>KlRt~wFc`))+#vAuLOJqhbLi5oSNZ{Z zbs=*hkReN;L!on_qeZzxj+bW39 zGE7#fleuAMGNFKo$-v28B6;s(3hm99EIM8ec{DyY6^eh?W!^>@ruW3ol&?em)tD?4 z;}hc3K6G(s3+Xo5+~F=Hr$aHhGL+H-+Dvl5q!pks6Wv;g4G}uGvI@;*Pm9{{R7Q3x7Os!lQ zeE8`5vv;)tQ#@?~0S3sLQ_dBS)%fSj1IFsvgjTL5eD{5S!ZIfVFv!8moKl`)T-Fc^kCc{u+`CJ)41{?Jw37(VRW zO&J2T8`7CCx(%rW{y^@!o`gE2Bq`yuIZ|D_=8Y2h1?PEff5tF&(@i(s^pBGLmj|Oi zwy*im0(mj~{E-T-`@hKtuFw8y@Zt=d_m|dLsUP42Gc6fcdIZ$vlgP}x-?_Zp3!DHs z>V?u|2_lpdt687A0b&y11398nNIdKia|q^qUR|1}fL2ZdT%f|T{~!TsL<@61ttBnE z$YbRMPJ!zA7na@VS&F?#=^QUmVo7LOq0n0+A1Iaw{dicADK?1PV8&-K8%@81FAA8ZfbeNCnIUXL$in;QE zebv!>ql5s}3SdtlqW5pZeUaC2Pq$bLaq{ZyBc2?ABY?+Es44w93;dco%Rt(X6Od4Z3qpytzrOUX&Jb2f!sJFJQ3;9#JINF4n&c( zQBCvn3R-X1DQm0=<~_@{P2l`t+g#2Y0jWVC$B)QtV`Hbkh_qc?@jWDQs+Lk8_Gbk> z-ncGQ;qd!wQeO2e_1`JErUG^SCA-TDU000000000000000Ng<*D00009 za7bBm000XU000XU0RWnu7ytkQEJ;K`R7i>Kl+B77K@^1>gf5p68ORglZ>3DY7jUKn z+0M0tvvHwzhHQk4Ug_RUAcIZv07CYeYO7Z+oR-wfrK;?os&WiL2xQ@1^;doGIj739 z9p_Z1I@PKEpBm2wN3$D@jdwPye&6p6j%0T+&09`I|xy%J>O_QZygcyZ;{JG`G z-{a+vIV*R!$1*XQzh?c_E8JnbX|fE!MP)ldotsi{vwA}rtqd%diJdz838iVf(K1+^ z`9cZCwWh_5mb^86#=}a`W|??*@8(5>vmUuOZl$;xLU7_JL54_4hpHl>wQr*Kr{z4Yps_TO8*n-2wCr13xlYCcgE$@jzSp_|@y8 z!JTd?C=74Cw^hH3m-?)DYw|AQqN^_sz1Z0G&~pqX6H@iNUGu}Rzo5zzumbE);FFIB c7XD%V27bUjU}ofAy8r+H07*qoM6N<$f+O5CQvd(} literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/smoochum.png b/graphics/object_events/pics/pokemon/followers/smoochum.png new file mode 100644 index 0000000000000000000000000000000000000000..973d42d240ddc2e6cd1fa8eed876542e0ede79c2 GIT binary patch literal 541 zcmV+&0^FN2|L20qM!I@zx;h|}nF;U5ZIRF3v7Hf>k00009 za7bBm000XU000XU0RWnu7ytkPlSxEDR7i>K(mzhaFcb#xNLbmQh?<=Vv7s_CphUQ& zDu{v9sADX^nIlE<1zL#%bYWm&>H#CaF7UjEech71`p z{ZJVYidQSx|H=5aRA$@Bnq+ z0wTg9ETDNN+H!AobjY5Mj#p`b8T3nqZj%$L{&darbFB*(%eT$cSl}2`BS5#en;GLq z;dV2%tP-Eom-Xy4LJd0I-Y%ysHWxTn@gL@|>r|j7x{-GKV6jSLV_17`dUyCuZ$5iW zXdTStv fyft(m(4Xc9hmOAh<5%6K00000NkvXXu0mjfA@KFu literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/sneasel.png b/graphics/object_events/pics/pokemon/followers/sneasel.png new file mode 100644 index 0000000000000000000000000000000000000000..d512ecb6672123eeb838afd39a1731924bb02d8e GIT binary patch literal 741 zcmV`2hg|8Bux3F-fVp$?>s4IdO@Bk*S#p0~uLy#!yKs00009 za7bBm000XU000XU0RWnu7ytkQTS-JgR9J=W)-j73K@|^onPSYER--{b6-KYY7r!8A(-9hIy285 zQzpg!tNYFD%$wPrT`!YKlO|1?G->{$IOm6L4dsU&CF>k=cNR7E++=UA%`MHb${8&sOZ6XA31a7iPuQC&2bsG0#)A`t#8+%hQQ2X0=Ef0{dmMtd1=Q99LEx>fn zp9rGeQ0#3g>`}~Y_J#m+?Y<#jJ03uBWU&u0YJ60KvEyZf2V{e88 zl^S}^>^QUd>TO~0NxuWgEeRk;$@bt4th9%Vy(=i;seT9ylm5j?Q+vkP zREFWnZoRlXmfFPFak}#U^2^BP`mos1zfGpIOi0;Ly@qN3+p*Lai@e*Eyno*07E`}d zAAitJvNW6xT0%(mTuq0IVOj0aVQ`F%AgvefK2E4lp1EoO{Y^@7-& zf>X+v)#Cfz(R(qqIUBH7a?N5s`f{k6y5rdnBPTRu#T0-Cfil^vhp%+S-ROtXQrux#{)Jti3QkJlLCp)%JqfU2=(WaEVK9 zbkk+V__k0^)dEY4YxB3K^lSgODC4}oF&zB00000NkvXXu0mjfGM8E7 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/snorlax.png b/graphics/object_events/pics/pokemon/followers/snorlax.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c911a60272c6eb260b125cfc4b6b82cd7f8e97 GIT binary patch literal 892 zcmV-?1B3jDP)G?rvdBMTS*}-`!Nl5?z00000mIw^W00009 za7bBm000XU000XU0RWnu7ytkQ@<~KNR7i>KmN9GFKorLhEYO?`8A|5Ph0;zL+(vDR z5^uc_jJq_gLpymeNVsHkh)};mMzt2t)mCWM45kp2Az*4Sx$n~VPCDsymXZ?aQu+)w zzk9m>|K8m@VaEQ)KN8*@Y`5`i=l*PkgNmNX%#S>87!U5t_N%exw#qmmbioY<_hm13 z$NG{@W^5E-Xl0q~2Qhw{*bc_=c%l_x@E;i5&OX8fbo(l!C7cAoNjPa{DcHn5Hw?IG zV8#3(;0IA7LyUsZz}5@}0SbGQY3K{*C!9x(45$duz!vA-P|q5Shdx9>j7U|b*vkg& zA;>86IcL|&dd<6_8yL(yNcOhh^TWN)BvbGdgB-9&i7N%me9j;p?DPc*ilV7Z4nnw| z;es!ga4H8%4rss+A(9J*BCl9>>eh#p1eZ$CWcwVqbMq`cdjMH$`x^hiJZ-mw;c9us zc#^Hzeu{dDI#rVy`xGYdb!}~fPVST{LIKGMd>&9wVm=QNwBsf$C?OZY}j(*tLU z6Rc_E<_vSnJ4z3oD37`-hHWXh4DO?7PPtd94{K$L@~b0%Eq()+S?93x SK=^?G0000G`Rtxd8zI@o8BxF+o8=QNd9`p!(g>00009 za7bBm000XU000XU0RWnu7ytkPS4l)cR7i>K(=kiKKoke?;?U)$=i)(y)GYl%P7Zzn zhZ2_?dP_E;gS+5&xT00zpdbzzjGJ`P=+>oJ=u|;Vyj+Ily>I~o4nqE!e(&YpO9JV1 z+O%oYrp-T!-*4_6ANQzjO`JCOK;Z4vSq?YFuA8F5RNH^));cha-3y8B!yyv6C_o7%ac;<4L zT@Tj)rR~J_!1?y#G7Xi}p?M~7c)BzLc`=aME)A!P_-3V)d& XgP7%C()KKl)sDAKorLZ390T13uQqIiHjiD$zr`^ z$Kaakj=N&HX4NndlK;SJVLLmyU7Vz~+0x@K5N9oH4q@>RIP{Nk-u&2k$+;&8c6n7k zc{88yn?+$BZ)I$^>4^Yb*pl#z*o3Uc!c&8v`9{J~M&d z3$E(eZ1VaOz(uHdA1)IoRGfZ5i88>H4rnt8Et^f=SmW6?fO98oGfZ4x%8~2SlG;Gc z+kmI?bn=vTQ^+;zz?7dzc0$GC0zD!U9;Cc3`SRQ>qC&Hucp>9T zCsb@_GlC~YU6YF z>(cfK)vN>4FLE&wDz@K;HS*Q@LBWT+m}DTV$RF8%w`vF#FG;iF#j2QG>}EKEJ3xyw z`3iC*Ycs5`s1OwWbQy5wjM;t0UgH2@bAr8jEZ9TWYqMIP_vSBWPUu&_SI)?Kv)&9p zB49Jn-uF5EwsC9Qtc~j*zcx2KR`vLK5@AlFx6c~=K^R~T`lD^%9}OD+)?PFkVAePP ja_83mjpohO|FM1pxp_X$CKrp)qmMNs#~m00000b9F7N00009 za7bBm000XU000XU0RWnu7ytkPb4f%&R7i>K)IDp$Ko|$`G)o4jJCI0S5?eW=TRRl} z76z{U8mA(MaT4s%(OV>r=@7I_D~MFTT=Oz`KIViTol5>g;K$uPPcAQK7-h0Y%>uaKPGjXTb-<00wf0WTaMDi zMJ^)6uFPj-D*d_8*`7B67PmpH_5cf{^3h($ay9650ke*sy}_?|8!2rbhrP422sjVt zOxtb39eE5oZyV{`0#5`w58Tvm3=W11m${lBY<1T~T5ekr00000NkvXXu0mjflXuqM literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/spearow.png b/graphics/object_events/pics/pokemon/followers/spearow.png new file mode 100644 index 0000000000000000000000000000000000000000..fc34bc4ee9b9603d0aa37d272d64eda1f83e541f GIT binary patch literal 471 zcmV;|0Vw{7P)j5&4Oc>3LZ}K|#qm8M&!(ktq@B>G`2iX@OZGiFrW*0RaF200000TJj+m00009 za7bBm000V|000V|0Vb6__5c6@O-V#SR7i>K(m!j1Ko|yaaq4oz-5P`_g+hW;wuWvc zTSv!kB3b+f4LFo;{UU`7+M$HQk5JIW*w*rXm!5w@&eM}3w9`G??@ph457jgk6%`c~ zm4A$-Pe)tW>bP2)%*j~mbF1AYxLPwY#@0xi7P0v<(e*$WPsorBkXgr=8hn@F=2SM( zbjSdy#O0%(LHkwSRZuyxA-9fMA?Y_OjA4ELvZCw4T^R0Sxpe~oNU!xJrW7DCn@=LT z&QtomO!GkM%sx7Bne_Sa@Jnj{8OLkIv4)tX0w(Xd1;vY5?fK^d0e09D$iFRb}-<4ALWV6 z@bC_NndmYF`zv@OfPybX+s^*>j9GhL1T*mh8tSZQ@caGFyq$$V%nz(7y(a4dIJy7; N002ovPDHLkV1gwb)Q|uG literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/spheal.png b/graphics/object_events/pics/pokemon/followers/spheal.png new file mode 100644 index 0000000000000000000000000000000000000000..94699cc83b064e6bf21207507a19cbd77c69b41c GIT binary patch literal 582 zcmV-M0=fN(P)FN1VQE9=ki2wiq!z}%v00009 za7bBm000XU000XU0RWnu7ytkPyh%hsR7i>Klrd|ySt~iqNrBphM}}FJiYsKSS>&Cb=A*gB_dy_IvN$|9`n$qG`2i z)v8tNzo_9HXDm_r2Oh4gZZh+E4}hM`6o83tGILFVYounr1Oi9F4Gz9AEHjp3G>nvN z058N#1$z*9&@J6$#?p%Wt-w*S(Zj%UO_e=}1F*$_Dq|^K&~sEgPMM4jGCvVNAZ1f# zRD|;oJgIp6fX6BXh>V7z6c9=QZffW|N`6C34zm}3`h*ZCzc@0dJG$Z5=2O_A#4dT{ zCqnW7{VU_$em9K!kwHE#GiuhI#xc7dDOmqbaLM~F=d+BP*^v<9_7gIE-jB6I*JDyspI5*9$$QXKIa^08wvoX!rT{$ofAP~RoG%#mlYtEvO6ff1-G|h>?sUc6e5)2vV zj`)ZSmf`{r1B(-7tqEm9o4vFqtok=%mSu^Cnr>NIbwcb)fercBM&-f@ssFTT(A U#au7kdH?_b07*qoM6N<$f`u&xG?rnS*f|vq1j>4L1_U20dWx-!HEIk!3iNzApigXTv^jz00009 za7bBm000XU000XU0RWnu7ytkQ5lKWrR7i>KlQC=CKp2J(3>j1qHMk%$iV{qR61d<& zm=0+$qJ^wo9ny+o)c%JE4Idf&8w6(wbI78r6DX8IhS0f#CI_1mH0U??bpxXZ|7z95`_com z??2zoIsi=3ZbsdFdtaR&*#TG+K^?+b8RBm-2~f%vSz(=Mc^zc0^$$ITdUf z#hn~h0)hv8et7}#=zHErQCRRsVYYzc%y?lOuA@{eBqdu^@V$L%n)bUpDIl58-`cDY zU?dCcT!e(5efShlL?LxKlRyf*IW@sE&ntnXV zd=Y4AingK!bT=2pwZA@RxsZL+0;C>bpY6W?n7?0WE$o#llgK)G=$@Koke?!?}P~2|FFS$i{6zQwyTd zO|~ym>@Ic5l59!Ex$Tx<{J>K}LqT+m3YA77*Z4XWx|Dpm=tLu(PP!HXU5elKySw*) zk~oCWwzjpcZT%;ukv|*Ze1SL*^~dLzl|0#KM6(5r+A0sgM5qOAl|S3XtVSdE`W-@_ z4t)~N$L&YwgRrgintQ2m z%SuOQV!q_8@Z$u)`r#<88vtEh;eAL_qu8sPH%!+6%Z~FP<277-H(r-vlJl3EPym>l zYG;JB*}DMex|I}Rvh#*-bOwtLrqT=+Ghog3_{*>|P&;)-rpow)MG;#$jot+^jyL7Smz~$dousL+_JD0-)^0XVe}(btve=W& zOCzsVCqJEX0do_f$zm)SJ-g?Q&3%8Kq+u)!ubKDLaM&OFMWE(#(_-Sz%P-T;aa0&b z+&8}m;#<8hJY3EB&_LI}mVuaZm;YQG1)Ztj?0n{8;8k!_xiqqQ!d?`;5d)q?(WxUk z-kgdJd-0|`AB1O>PZB&GN}mX!?h!FXx5$A}c>*h`xN9Zl`~zd?h@09_`cv?LzpdbE i1{S|^t+}4|59mL9#$;qZo5J>I z>Qvh+m!_^=xbVWk^6FhbWW1Sfe{SQEGDH~ z<_?E+{sR}I3%0P4L(cewJVoKZ?)M`)Z-pi;GG|!et(3`ozX?K1)%cNC@v{%gMsJCx__HNBi j&b?{Jw732@ub+|M_@${_&!%KIC~7=i{an^LB{Ts5?3Ke7 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/squirtle.png b/graphics/object_events/pics/pokemon/followers/squirtle.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf56fd5af8857eeb2176d5e2dab98f8933c67b3 GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*m$y1(z0{s&6S2P zU;b3|Ox(G1CnF={LQdw$ogY75ECeb<232-toIpNjfk$L90|VDw5N1@HYWt0Wfl=4f z#WBRA^X=u0euoVN*dFMGrL}e44V6mGRgqip>QI{G%oE9731)65tfjMCRP)jvYZ~s@ z^3C*{z`=))`eDTM# z&gL(^e)VU?z1Zn(M{n#~_;T^gW!HU=U93DLEi5Ly>dejmBK9KJouA6gb$`3+bK3uz Y`m1f0pPlNM@&gpQp00i_>zopr0C*|B!~g&Q literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/stantler.png b/graphics/object_events/pics/pokemon/followers/stantler.png new file mode 100644 index 0000000000000000000000000000000000000000..e6c5e8a826eca62051f47231175359512e7c09bc GIT binary patch literal 745 zcmVG`=~F^M5DaamExv2g$Z00000n%a=!00009 za7bBm000XU000XU0RWnu7ytkQUr9tkR7i>K)jez5Ko|$`!;6oSB}2@OO{RQ-e1oS* zI2~#lxu%ybPG9rc(Nb;e%Q?qn1Slrwtbm`U*x*PmydXi0acfLnkm(mAh^t+e8 zPUkZw)lk>Z<|cdYo-S%0pm?_;`c*^6L6^s>?)_jB?7eP&iG+ ze5Rf#CWy(UC_|y;*(T-vsN^)9PeZ5aVsfqmvvb4)7A~gRl5IEd8q7Hz1&5tEby-Y4 z5Hi6$VBJuc)yuMvQ%>)1GT}7MiW^4g1?BUjoRy#;w-mkGaznHe(rg zfwtSWN;N{wdkioZ#Ayn*U*)pf65DOPc?5X+hI_aH*b=vk&5tk5{qLV{AD;U7{q~9D z9;Q<22Sayp*FNkF-n)H#t#^08ag#JjwNq-i_za#*)WJP|C$^7)K>$4-ZoxCQNHbll zKq)Jb-08!FJP7=#&+3OoFblO|`&zyR+HNM)#jJ{O#}$lo)I+u4{Z7`H+os)0M!54z z%A8|9+p9$FWZG^jUG26#u9mV+IqDa=O7#t~-2^U$`2exjO}AoQe{$j^(CDY!=vTAbOKUJl%-N16%6t2TogiF+ bf2sZevL=M$E(Wre00000NkvXXu0mjf*6Um3 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/starmie.png b/graphics/object_events/pics/pokemon/followers/starmie.png new file mode 100644 index 0000000000000000000000000000000000000000..420d228698982879a1852fdab04b6cfe81a1ab2b GIT binary patch literal 703 zcmV;w0zmzVP)9Ha4SxH%0!MQ0Zsd*uJQ3>H;Nm)rLju}o(00009 za7bBm000XU000XU0RWnu7ytkQHAzH4R7i>K)G=!tF%$=I(T39;3?*YxsZ?%DOd)tH zWJu{))PtK;LFD4;5L^nkg@ob{&?R(}aSq;A=;klir#kLQitLoqZhnjTNxt`gr#p_2 zeeG*s|DtHK+kf<@U8YsMoBCI^)!)1AZPYOJ{o*6u8NiZ&*#36u(lx(tJGEc(4lfD) zXh2srR6;{HQ>XTU=xBhzw08P33{Q*=msKZ0v~|D5RpU)J$C8-VFqJ9{h>a^CTM4}% zDr*e%4hIO04KM0AATl9O%6=)qb?$lI7+AG^8x9cqRS6dm9C~U(jj>V!2xC;vh3S^q zQPzFdPv@oUf_E-8Atk`#<#_BS050biW*}>fyn`y^gYRPzHcU;3m9V%z9-U4=ioEY& zS<4z`S-)M)Cpj*#%?NVbI_WtO0b@iH= zysdV4Y_8-YXKaXJQ9xurl6i4+yE;EHP2Pp?=6kA~4}Q!~WboFc#_GhUo7K1TFSgGc z4}@XCX0F6LqAnI84nJ8>1QH_>=d{iRhuG_A_zDbg8zPuH9_$jAsYzh_c7itK^`9DYfG>=Wf lYqN{H_Y0NmJXrXj^%HrtW7}`jv{e8A002ovPDHLkV1l!rLX`jj literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/staryu.png b/graphics/object_events/pics/pokemon/followers/staryu.png new file mode 100644 index 0000000000000000000000000000000000000000..318f3bd048baa0ef320a2f74b06f767275214ac1 GIT binary patch literal 512 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 JPDHLkV1g!X|I7dY literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/sunflora.png b/graphics/object_events/pics/pokemon/followers/sunflora.png new file mode 100644 index 0000000000000000000000000000000000000000..defe0b6fc0667dd1c198be03817daf978e9d8434 GIT binary patch literal 605 zcmV-j0;2tiP)A@j+(Q)CSDS=4=000000000000000Lbs=i00009 za7bBm000XU000XU0RWnu7ytkP(@8`@R7i>K)xT@PKokdXhd8X=zElR16O{Ej&=P27Q9pI60 zS)uvNX|kX+i9)3v*6;~uyGaL?hR_h2FVGu4^@q5mv_l_R!)!PGa!K4V^m<2cbQp*` zgnsFDRBkT59BBYB4|Zn3_#2x_yRVbacZFSg4 z>j=qp=1tv0)~>_{P7FAJog`Fi3#Y*3KDM5>4e4{F5!-|PwHmSI|3qx#*t%6MN}I`h rsJJ&^@4CxB9jt5cbDD=g{A+#z#jz7|-j>lY00000NkvXXu0mjfPRA9` literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/sunkern.png b/graphics/object_events/pics/pokemon/followers/sunkern.png new file mode 100644 index 0000000000000000000000000000000000000000..f19116651a5c58e4d3099676fba2e324f1e7cbb1 GIT binary patch literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*toNk^X1E*k&cXo z2LnA53mF+1XJ&GKyjiGdXqmat^5#xM%|Jn*atK&Ze8vpO;wGbt-fH|MdX+E2^xf z-?=TPY-)^+svf5V{=50(mB{^u4?Dy7<>JKD4;z;-p9yoyym<0(wfyqcIgd-W|0s82 gDb^~Gds=@@JU?UI6S;YMJ3yi9>FVdQ&MBb@08R6k literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/surskit.png b/graphics/object_events/pics/pokemon/followers/surskit.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebf3a22e0a2f65277a5cb901a5af3842c7fcff2 GIT binary patch literal 466 zcmV;@0WJQCP)F6XU=)mkQ7{S+fQcf$0-7v39|*b| zDByGKK$S%2gB;Y|L;+u82deexe4u(2X%QuSd~FeF-29-88=V4>WYPIR(B!gvi&Fz0 z{_c&tH{s&5T1#&cHbqFH^MPQ-S)hw`PfWng*Y@?s$&a}t?c!vEa56fdfq^r^_L7p) zU5iLOd|ll9*t<$f%Ek!)q4OCSCU6+vy?ghv1q0McoKQX|QSzLy&&jc(+1U65%)3DU zg82;a7z2W-5n0Ao8KDz!^MP7AaPr%7&Kzw;G7iW;iOgr<3}E2s=wM)oB#+NIHKL<6 z65(KUK2U@*dMcQN*^bF)K!g@7m7p0!Kz;&>Af_%lSU^(%01Kh7oBB&;<^TWy07*qo IM6N<$f^^iydjJ3c literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/swablu.png b/graphics/object_events/pics/pokemon/followers/swablu.png new file mode 100644 index 0000000000000000000000000000000000000000..c60df13f746f9e506bb2da2e4bb9862f55e9b811 GIT binary patch literal 713 zcmV;)0yh1LP)KmBDJ;KoExau*j$QnRHkb>_~YA9fX2i z8+<4gHSJrN9CQ{k8gehCr6=Q)l9Om5SfK}#Ufe!IcV~C4UCDJ4N}&f2fn?_2{pb57 zn-FrUQ=RHm|4mVsu)opm>UT#$MQiuSm8W#Oz8`=&3#_(7d{l1{_qPXN&VE{Lhxn-8 zBJKxWe{%WI40|(0oIFo&6VnH)#bflgUa6~ujF*zQ2ch;;x^!&m9pYb`%4{9r20>j5 zig}I$J`u!o$hDu;rDI!1Viq?6_}S1{FoxyK;j{WHNkBL_P|T3{EvS8oxKmfXxf)nH z64L@AZ75(WFEkdU%hza-Kq?o2i^N0i2XAh9zn&L*qp2hD7@$zk$(iz=LB8KG001#- zPL1Ij6X7~SQ+~j&>&=k=UPz=Ib&&5sEE|Dp2pPTS{wbuH-axtSVml9QlSiAea05xT1Q}McDWvW^zIle(14~Y(LxdofR(#) zw;C2qBgsUWCLZ#~=qbC4cQ-3skni6DbDiDAC;yTEp$0Nhq*}`8E(rWB)!(O)OeC2V z@%~ffe3@Wa`8ajOKR!G*@14j*ZZlxhAZl7C!bEXHoO#XJxGdKZq`7gOkn=dcG6pJ< zp-%%-mx&r;Z&Dhn7oWS#_?+Sm{P|-dLLEOcbu$qszT5gM%g&-dRINmu)3bFmkszio v_;-N_twe-`wr(eSn)t=lO7ssZeCD~|<27XGHNP9H00000NkvXXu0mjfjs-_{ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/swalot.png b/graphics/object_events/pics/pokemon/followers/swalot.png new file mode 100644 index 0000000000000000000000000000000000000000..31f2741f0dd5346f8cfd822e724922f9f63004a4 GIT binary patch literal 821 zcmV-51Iqk~P)A68UNl~GJ!C^^xp&1zg0Rh=*X}OWvd0CMF00000000006rU?900009 za7bBm000XU000XU0RWnu7ytkQt4TybR7i>Kmc5GGKoo@yDi)Oqd4kDeVNhXYuratv zioAhv`N!`amFfD+{d<+=t4YAN|daEs~Hb8LWXb=jwd- z$|}@q{a^pg>h-#R*@E;j&ExTT3~~(1zP>%u}-j#xW1haZ1DBKH7{RP0r$uH zksjFKYk{_?zN_ThGwnzVZ1D9!>AtUwAS;eP&ILC3df+E6ztalfAOjv&X9631EzqW1 zQ<{~4o$RP6(E~60df*kEA&$~c3FyO>|D%Y!HNd z=nZq5ZGwPBaiL|A&3<3oY=ysy%~-3Z|K|D${_2Xvqm10^00000NkvXXu0mjf9-w!& literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/swampert.png b/graphics/object_events/pics/pokemon/followers/swampert.png new file mode 100644 index 0000000000000000000000000000000000000000..11de991d473dc1225b6c8a272651a61476108192 GIT binary patch literal 894 zcmV-^1A+XBP)K*1u}oKmZ1CQCi{2U_4}Mpx2;yXagaI z%yADpT>>4uDXKZy;0Tfyou^>jAgf?H6;Ul-GW8LPGi5M@2n~G#Cjq4b_nx75(#iT` zDMLz!LT)hr`SX2epU<)d;bAN zm~}9r1!1Zn?M}F$obO+TYqLT!%Qqe6ppX>06D}y{yVV$vZF+3x?kv}=aBm75?w(L& z(W9Pv`4(Zv{|b9DEp+qD`feK*Y*@`Nk%ys4Y*v`e6Mjq!A#AcjXO?3+Zf;+Hhi^`s zH-(0DOIihPHS88EEIaeyaAr*hSvgc-eIKvRii{zhQs7qO6vEe}PYZ*Cn>BsMmCX+; zA93|?bG67ABa92Iz!1$R8n4hplT9~uBIA?Lu1<_|(YkM2j1X0@-FCm(p8-oW?in-f#W#m;2EEA1w!vcdtL{}wy%JfJpTIA=ZhS$O9WZrwd$d)2rX8V@C^AandJi#*4{hawf%vp-0RHd#ko3^4}MA{>JxjqARK^=MZYkp^^q*b zzoQ7z{{<%KFLEF+=SrNbhBz2Vi#m~BN>dN83Ckm0cxNus)ssK-h^5)TGXHA)0o8~| U6m+8J@Bjb+07*qoM6N<$f?zq9c>n+a literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/swellow.png b/graphics/object_events/pics/pokemon/followers/swellow.png new file mode 100644 index 0000000000000000000000000000000000000000..2412333810765a4996c967fd52c17d411fd2ab82 GIT binary patch literal 1050 zcmV+#1m*jQP)KmOX3RKp4l560{sO^dn>}p-^~?AxH&- z6fbtRcqttOG8!tU(50ncAcS_zEPaVXrY^<#0?E*OkDN3l zOQD54#BjMgKmY&lx#uoH=q~Q!KZ#TJshs@l0#eUpHRc#e&!;5dnz7{Z9 zOGB2w=v0-0>Qb)Wf|V*aXc- zlaRU^Mh9*ziISB<*-in#QDQ?bAczvE#l~?b48V@10Nb2LV)Lm^nk)lR$+`z?wjjdQ zHdS-O3?NqmX$H0+VigjE(s2{O^Td{iOrRDHSx@29V_g+>=XqfmPKo>yrqJ7R)PY)b8w62M-O~cKBnXC&k=_h~ zC;|Bu={P-H^P1f8hgbGFr4x?_=}CcRnof^WeF}rN%ZVUaS<|K=&+|-o49hNv5?M9r zI7-`XDjeenxF`ztv1gK)u@A=rX*U~RsyVXXr@~R;Ry&Ls0sk-I6Z88 zp>&K#Q_6xwAyvK9rRmw?(s`er=T+p5Nvw?DqN1t+s zRjH+WwUe#BfBkagPL##xyOOA{eow$={tMCnA_2)bQK9v@}M|WZ< zh#CeUE4tuBSyo0c0Maq9dSNEeW}hQ8bxEt^{pt7dz|k)Q5=7cy0e7oJbdd=Srh)%(9xdjS=~%oUc!dae0ClR^4oN zaq2iGF+r}rYe*28OHeH;c|82g+S3SdqPcvV8|z=^XUyBw&8li@0ra^^B2^*Bsn32P zJUeMQrbe6y%}3?ur3p*Du0i>IR|1kqM!=3{#IlWI*8gf<5TP4G{C&Wtz4>t#S2kgo z6i950@kBotlIUgynIO6t2lmxq29X&NUS2lVwGBUpGTnJQ!2Hf+wBY{Gk1s;*b3=G`DAk4@xYmNj117o_Ui(`mK z=i4hA^O_ArSOcbo#5u2O`Kjo5{fDQb{Gm&_DnhBe6BQQU4tc=;;?n-LjW;CN@2vDb zde<+fW+Su3xjB}_&(6&J-0x(u{gzo(W;JLD-w^d^wYZ(dTLpYz5)lszkT-`5(^iEx=eK2?Il_grY*Ezv*zXW53^;x z<{xnH;WEvN5~-N7E@oG}clz9`|2-T;g4QNHNWLNCxg_uS7LRF%Roh=Xik3}l<$K9B zH&DMQL-~9Dueb-!@gEYLW;^Y5D2_SAS|~lOy>Pqu4n~#-zQ3-Cee1t^V154cZyuX| zH(i<+_u#5PQU0Y+K_>~3oGTl{r>9oNoqjp@bn2pI-Fxio>veA~@!Z?&Q2p5>)FI%` zUXN*y+OA7m-l?1&^Ofn7II&fvaQj0abG7i_*B?L3R`Rd7GG}uS h@0s~$)?b|el%1isXSv?T$YxN~c)I$ztaD0e0styy)iMA8 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/taillow.png b/graphics/object_events/pics/pokemon/followers/taillow.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a8afac0cda41aa3d5b2679993e4c69f77c4cc2 GIT binary patch literal 465 zcmV;?0WSWDP)FN1-d4T}|0g*9LNokp>sj)#pLGfv6o=Lkz00009 za7bBm000XU000XU0RWnu7ytkPM@d9MR7i>K)G8C99-O79b8Vx5{Sh? zC@v08?hX}cpn*W~8(6=?m0AkV*0FRD92^SaX3^poXum>-^Ugq_Ge+Tv3)cQTQ9vZHrdpE(;SYiv&CX|Xf>nVG>5NQXAnyn zaf?+$%9Yq`h+S-Wmhy>PtX_#AT#;rCyV!8sxN38Yg$m(7E~0V`yV&qH8h>z$EdzRu zvA$n^SL|ZybZ2*Jv+9==n!UcyZLX=14rZC?8@o;G zbPm9r__)W7`aT#2DA!fhc;I;l@XsRPXu*SD)Yq!u{a-!-N_^W}H$MPG00000NkvXX Hu0mjf&WX?i literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/tangela.png b/graphics/object_events/pics/pokemon/followers/tangela.png new file mode 100644 index 0000000000000000000000000000000000000000..a20ce784c54aae25fd24125bbdd15483a98d9707 GIT binary patch literal 656 zcmV;B0&o3^P)@~000000000000000E98P!00009 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/togepi.png b/graphics/object_events/pics/pokemon/followers/togepi.png new file mode 100644 index 0000000000000000000000000000000000000000..d588b9b441ba0b19a2d77f256f4bda7bd0149869 GIT binary patch literal 553 zcmV+^0@nSBP)FN1-$?;K9Q2_w~Am}_}00009 za7bBm000XU000XU0RWnu7ytkPpGibPR7i>K(7#IpVHgMS8*bJ?g$6-zaB7M3AP~+A zZwQJ#a=cpF^nX_W|&mmK4J6n+gVPMI1%HjtZN$HdvSozFpmBfH9|4}W!(AM{wU*H~2cntd zE`K@(U8rKLb=*B|^BDK;i3{vD^MG&^9l(CpFs=gj-G#MkZ(#LkoB7BeUUg~sN!e8bK-1P$9Auosp00000NkvXXu0mjfzcKxM literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/togetic.png b/graphics/object_events/pics/pokemon/followers/togetic.png new file mode 100644 index 0000000000000000000000000000000000000000..c51ec204fdca78f46ff7cb96927170da905fa908 GIT binary patch literal 753 zcmVFN2gk-33siD5};$+6jaVVQxEkts1*VX5IMDJj`eS)sAnU@QeX00009 za7bBm000XU000XU0RWnu7ytkQXGugsR7i>Kl`(7UFc8P>SqKuy7D_%#;U@d#`7;(W zWyvdO(+gR;KI#YFOzOpJ%PVNA>*}4H*uJ~8DOo!83m{3& zv-k@nFEmbxgklX)?wOe2TLG-b1d>Q~@$>^Cp&08qU}C$XXrzE3QZ9uQn)ivM;$p*c z9TS8CB!M7`3~W|pqZyG@T!dV*jSMPsqf-)LfrKt%L{jk#i-YXRu4+yaa3Yipkdpb7 zNGhJq0Av?MRRT#ystTe=JHCh#9TbmOAqMcd5|>$D!!Ne`H}y78VAh|9vklPmxBj(JCv zPWrgX9%`uIwvW#aM133;`-bFGrUpyTAd0qkP(P9>O(6O=D!8g^_%j{Hrornw)C-CY zZL$Zr`^m3b{0dLcWZV&vDf+GcLGM9~L<4W9m^HQjeb2uAXmj68$WRjDxxcauf#{54 zUCEEpZn~f@NfeoVLF0nxRPo6V(&Q|GB*F!Ji6oMW#SaH(-vtRnDNg`>I j=tS{nCKX>A|3do@q1>2TD;tIt00000NkvXXu0mjf28~a8 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/torchic.png b/graphics/object_events/pics/pokemon/followers/torchic.png new file mode 100644 index 0000000000000000000000000000000000000000..e56e3f05e837dc3a2d69153c9bf93de21a1b1b2a GIT binary patch literal 465 zcmV;?0WSWDP)>G}E5VaaI`c~KFekx}WX5z%1*T!XN|00009 za7bBm000XU000XU0RWnu7ytkPM@d9MR7i>K(>-d#Fcb%H4I0%!kg=s#aX^!4@!5QY zf~SYwT)_rUMrz3_l1`mM7el5lYSaX(Cq;5gDHP)W_RIUS!69VMoH=tYC`_g}RhMmg z`jDZ$PAY}^YBH`~w#pmGh+U~dy<0O%E- zAb173+rn$gu+~-7O2eDGP3cGX-sixu)_uaA;x}CzG3#E?S7hz&C*8HT0Go1~MZ_JK z+&$oXa>0Ztt_A)d2S)4tdFLal1wIaxoR|BkNpTo5*?H#=CBJnKcs>p+%~)h{vu9(_ zAI&jc6~;a8`!oP6nQ|jl9kVdT{iFj=F0dW|WYj|H7G3ac2Xga%moO20kwv}K6IZ?T}xiL9G000000000000000OgZzd00009 za7bBm000XU000XU0RWnu7ytkQQAtEWR7i>K)je<8Ko|$`N2+Y8@`NSK9IKFlrBXUj zW#ojAyiinNbq$<}JW(mR4-nV7$RkS_6RA@dT8wk)eYu`pY>In!hIZsZviw8#|K98~ zz^P7ks#E>9QbyJO=lpZhtn$mny-k%JLO$CSemTDvTbl}hFwL_;nekj4v_p@IPUNEq zh2>U>sGAZiWNCvI6a3d#Z!f>Nz1z z)j|kyTjn(If+4@Zy)1L(8mT&2np4EZ&z3o<>B?f1cUN|aE7!HABWlfW+f(jaxZwd96ZD=YHFh(Ko7onYgt zLp$`YvynIn?1y6IiAOED;q^VTIO?xKW_38OwF0(XvD@1A2$Fsdg1g2jooOM8)2}2oA}|mH!=?wlW9j&8EcrOVz`irKcsalKOq;;r^nl>K7~2X|oX#jR*h$ N002ovPDHLkV1kIuOdkLM literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/totodile.png b/graphics/object_events/pics/pokemon/followers/totodile.png new file mode 100644 index 0000000000000000000000000000000000000000..7973715de3f3fe98bd5e35a2b1b93a1a4e697dd6 GIT binary patch literal 574 zcmV-E0>S->P)G^T7=|N$Md1)!3Avpj500000xI@)W00009 za7bBm000XU000XU0RWnu7ytkPv`IukR7i>K)W1r@KpY3~EXCVh1V`V%UnB8Kw}RG5 z2!YU!zJO!tloA4I;--V(7)#18bdVy{*gJ>EHE&crO_cS zlmT_~4zw(?z+}Wmk0} z#PW3489mT!xM;T9&!_M9ekUc)PcEbhG}ke{W9~ekP8*!!>F}g0in{CgBbv!OPq-uD z@oM$)A=kNIzkkQ~0NvnnThm;(;aliDEk#4ZEzThUe7-_?54hpGPCOUrKy0gS-V}OA zGf&(cl5so2QHfZ9FmU@nzB^pdd?FU8nsMhlSd;mk!> zxtHuz*j44)Cg;;;r^yCD`u3%pA_V2z$S#NH^{x$uWLZg%M5<&7+j_@OUp;xWaa?Iv zxx*HuG{tP=r3nc7fm$b#^bWj8o}F1A-?DZZEPX;_ov3xP=kNcPPmsXx6`}mWvH$=8 M07*qoM6N<$f)Yv%MF0Q* literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/trapinch.png b/graphics/object_events/pics/pokemon/followers/trapinch.png new file mode 100644 index 0000000000000000000000000000000000000000..4a27dff4060a3695d7a84ea5c14b364ffc5a4b34 GIT binary patch literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*!XZ};mSzQla+y* znwmd<{$yli%*@QJtgI|FGz6+b1J-c|Hvxq>3p^r=85p>QL70(Y)*J~221aL37sn8f z&bN~ty$>6R9B*!S>ffl|@4aBg<7t5}b8q;4c*oxH^2D{(O;_~|%I4^X{L1xRyv6fc zNfU?MFYB+zPygP}?#Va<41TzqoGrXkFFnDz;%H19_ui6M>C6lt(gY4&c*xr_apUZ# z>C7tsVybN3ye&U)X4bo|?rn(=%luL=H}O`f_OsnOwXNQCg~PKlt->FRMKg9MUC!H* z;`cm)ZBgR+6ouYd>(X{7%{^imyME3&L#G=O7plL>shAwPyLfYKVZY`16Q^F<%{-sP z#Ad60n%yhlyGl-Yg{f2G+p_uWKaAwd_(M4#{hht}Z*@+ml-VO|q4?b~CsGaGuD@D# zv|Zr#&H#g@4Y$8m>Rg}g>=`Vic8F=P4*hU%B)&_^>psi`QHvd r^8KwF%4~5k*?v9u=LQ|gyY;8kpWQDIv={ur4+?fqS3j3^P6R0{{o0t2#u9L@rd$YKTtZeb8+WSBKaf`Nh2 z%G1R$#G~`=m5q7L1_EpkI?gT*6tDI&3R#pN@GNhxamjisgYZ+@Eoa+89^T8euciX;1LCH|``KRlauc9v=OwLkOUn4c`$DETAxiW#TYW!-JhPGv7HldgI* zZPv%VANU+Y8{Per6Nkm!2T<=TKCVz3yT;Gmn?z0q$%z9y!b9=l+^@%Oi62 zhOKY2nf;>bd#g0oe0;^La7`v!ZbRnpnkWxjn=^vNqT8OCF-q5*vFz!-qUR&l+Hvz+ zYfhK8xUVIjLYZenw^ovxNk>EEs@#V^J_qr;?>peSy2Cz>&oO)sv&^y3tnClq{diZK z{OU$S>@>5dOD5csef{~RWRlqOpq4Xzdn|qLEi2nu-}?5-&7WsK^PRAIk$-zP`<{JW phu_$xZvM?*x6dwncKr4F8Tu_%=aO6vq`W}k?CI*~vd$@?2>|#8xQ_q; literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/tropius.png b/graphics/object_events/pics/pokemon/followers/tropius.png new file mode 100644 index 0000000000000000000000000000000000000000..d052138683fe802e4d6bb8ae6a85fd337cec5f61 GIT binary patch literal 1065 zcmV+^1lIeBP)G}E5A)$Fud0|Nb0RaF200000rKGab00009 za7bBm000XU000XU0RWnu7ytkRpGibPR7i>KmOpRfHWKS_;mq$+{?RMTse3ov zRNy$+`ia!@JS1Py_PkH+Q~TdEKm0iUp#Jb8{1|pO)qi76=@hR?i0qSN{m0lT=EqSB z2180O%2qHUSB?iHZHELCN|SQ`>=O>$1N-ue76IXPm9IG)k{SP`!5*h<~z_CLsI5BIUI6)s6GKbJ6R%}D*iYuE~KOZ}; zDE(G12&G_?jUEozcjyGEsS4@@2Nlba^Q$)T_3z)@w274=5_Xr>i7upyjp%0Yd|0nElB3g*|peSOoQL4a%nn8Xkl zMFnl70GMMAr7e<-!g;YB)XWwga=-xE83gM5qt#CJa{b@IHzlL5KK283vGAs|O)hIz~H-e#|Mn_`-AYq)28 ziwLm0UrtW{e$K%;5M+W&<_tu6lmm75rILT7nTSVMPuP_yA@T0ybXyT(>z)8|Yp5DQ zbQ3uqkH{^4c6wIsZb4+btuO*#>^U=rRVJeJ{$-SkQCwO>WM`;gT9Kk4aShHvAuHU& zU%e^u(_a?k~MXc9*pwvNa6A#0B?hcNLHU9ZF9Cq=HJ-<4jz(?D_0R zfLA=kK*-KeiEIQ#0oh0>XQ-#9*?e_JHs=75piAV4L&|2CE&JcEqIB~*#NI>piPA+; zthS1{1rTcCSagN$MY`$<2z+-9vxv=FgW!6#Sj%}gI+)AFdULbqh15rbEYUEK`lyiW zl5~;0S}y0?8nDnbujjYGmYtwdk7s+qv!zmfL%EQ0Cwsh=a=mAFOR4$m?niTH_)#o7 zK@WePY%^2u8_MnDa<}fy$nc@Ti>>$hi)DA~exWaa=rXGQSbSt}s0IHWpl67;dNOu& jaQHXlJ?#Sl-q-#CS{jm_jR6va00000NkvXXu0mjf_{{CB literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/typhlosion.png b/graphics/object_events/pics/pokemon/followers/typhlosion.png new file mode 100644 index 0000000000000000000000000000000000000000..9a836bf5616f2628ed942402bb8231ba0364dab9 GIT binary patch literal 1101 zcmV-T1hV^yP)G?Tfc>w_dX<0eBF){hkVE_OCA+eVa00009 za7bBm000XU000XU0RWnu7ytkR!%0LzR7i>KmA{J{M-<101#Ppq7(uLHr8q546o^qX z_y`Jd5jJ9)gA2zVVcp1yGHkPj1kMzO5S-0s8&!dn2aeGl>^0III)OGR;v!949OMv! z;KB*y3WNTJ%-tecsG|zwf;nApri5|3=ux=j$;z=bvQVam}w=y#Kwy zu;Xt z&YpEdA}V>IDmYz!9{xTyc=7m9GXVbn*C8Q##;iZnus1wyqc-|E7CBq6oS8i&7vIE- z$Y5ru8C0_UBu;VHVA3N*Fd@B8zy#a-p2*p0!JjIDCB8`FB|cZYx@^Q(XvS~shFUDTHqiTxMn7xLwVjrQy*wYPg?it)mq+mIt zFp-97*-(sQk3}kKWEEU+!-W_+)61tlFC|)^bD|7vuXFSmp`$~uBU%!SMU#17&T#u$5Q=8Sm=ZoN2Iv4MKBV!=2i+F|+83-rOCc+nLzmP};D zc)0yxYIKltPD^h6eXx3t*wn+i$Ih1XRFHwRR+y|b9FhPGGSdmWrFDJi7e>XlB=Se)$=z~945!W;3Vxx zW*OS3(?N~OiY-d3^Z{%Rq@!C1o>b*}wPdvnuZQtxVKz3H{iYNHX9{6HsnZ9NnR-5f zZ{%{rG-G=0AN2?e9w`C0_GLof$?h6_Z$LDI0P>hgL1#AMd}CLx&olPB$aF<7GaK@~ z+WqX<;3nNS_!CHJAJ(S=D>*C@(x5WWikNO-E;zWnpN)L^gf+PA2bwF7DCL6E(Rl=m z#7GL3df6uCL#3^^vynxv@He!tOgiH$)(t~o<@rlnoct=y*Af2!;b-aM Trp3Uo00000NkvXXu0mjfUZNA- literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/tyranitar.png b/graphics/object_events/pics/pokemon/followers/tyranitar.png new file mode 100644 index 0000000000000000000000000000000000000000..ec13b289dcb6ba3b5f840f9af518fead6263369d GIT binary patch literal 940 zcmV;d15^BoP)L=X{qVy`LWq~0RaJFiNP^JK>z>%3@&9J00009 za7bBm000XU000XU0RWnu7ytkRB1uF+R7i>Kl`(JAKorLVF4k@yffe_wRH{Xi)FpRC!w^*&`CBB!mY7#Y@BS_Q}f~`9Fc6BiLq@Dp@f0j362+Uh6eIAmWS2y>U0Y;CrUFVE~&kGxSMSkiIcp6U9S4h*b*e zr2=1dvgo+%8dk_NYNkfA()&7M4VT`{g<*Mr zl)&WJS@U`fv$NNfzdbgF7)d|;_4839SP|qWWUlL+B{WQ^;Vhvy4TmyG;lT-y`gI~J zF4NJQm}^6IsPQD6oDzLExP&PNBe-DsU_l7e8$iq=vek1YClvg25lwlWn4DG$BW{abrN#9L3SB#(N!ey1cY^LNTa?%(QlAZe%G4+BLFiVV~!_Npc{lN8z4!15;6kMq> zZZfJU8^hwzk@CR$;C$=J)qyc|df)BuYa6v-J1oOqXWdG+>RrqKS^Ne`(xO~7a|7@I O0000; literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/tyrogue.png b/graphics/object_events/pics/pokemon/followers/tyrogue.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa25a19b8078015b238866860265f33536591e5 GIT binary patch literal 515 zcmV+e0{s1nP)G_Fa3CW?^ktr#0QGoye00000;7cV|00009 za7bBm000XU000XU0RWnu7ytkPc}YY;R7i>Kk1=b5Kp2J{4&s_6KOjpxWJ{ZbP7VeF zhnqG5>DawX>5@T$k}J9v`WL!qkbXGVF@u8;{4b3cXzn|6R)kLV*`9mv-tRk2>*(m{ z_(v>^_D+19$<7JA*6!;u5mVVYX6PGro`wEiFKo+b0_-jZM z9wyW@!TSkiKNa4==S{43+Xb*!mpy#70OrB~$vMG0#BZM3eaCTZh3g*=01IJT$xnxY zIcK%*I7&C2A{Q5yy@ce98REf$v8-{<819q(NH8mMTv+6{UelapXt+i!>}A1ye}D=n z{ej~(&Gp9_Zktqopl`=hRJa^ZS>t^3ywXI1<+VIO+gz=3VUnp{DCK*u;zIstls`Zz5!Mv@FAG^AfW&N002ovPDHLk FV1iQP;#&X! literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/umbreon.png b/graphics/object_events/pics/pokemon/followers/umbreon.png new file mode 100644 index 0000000000000000000000000000000000000000..d15f9abcfa342221af91ab49b19311861fd700e3 GIT binary patch literal 739 zcmV<90v!E`P)FN35u_+lTIYCKL0RaK|*;#3Ed5JjzDLFv^0000000000B*hr>00009 za7bBm000XU000XU0RWnu7ytkQSxH1eR7i>Kmc4GXao&vBsCodq-1w3_Op=3OFq1aU8dQL zXG~cFTpmqIKdG2Sb~G{Q%LFSdJ7a_vs+KnPto^&>G6l;srrZfCW?;29 zc$I>I9csB)3Cq{vW&K0O&cIr3V7-B^u&aCU-t<>S)^Hj!?WWuwWbCXh-8_(d0H25D z(9mxNfhSbpBxM2-Z&5GH38P~(uz?30x>7I*dTxS%Y@n(ddyqw9(|Rrl<5n_GP=9~x zR;U>TM{dXmK;GR~)q_3AXz=5dB!)b--k`mQHO8`35!3!(-k+rJ!WG%^Ds(8_8jy%e z8=e8F@u|TYn`7>8_y%`$^No1}nPvva^~g!#2Hg1Op1HvsenLAt%-hDSYjVd1j0uX; zOwGj^Y0jo*+7K4vV_{a8geCG{M6@6d})Z{F=A?v@z^MopH^Mo6SLc|q+(c=Nc#M+C$`$OpFh7H5G+WHAE+w=f7ZGR&GI z0Ti6z>EamT(fM|YAys*9ab|`Dl>MqM0r> zbDEVli?HC&#J&Q7pOG^%zX|OZmsvjj$JzsHe;-p4z8b0A@uYHwX;YeK($)N|mCxAh Wmd3oExxQv5$myQ0elF{r5}E)YwQg(x literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowna.png b/graphics/object_events/pics/pokemon/followers/unowna.png new file mode 100644 index 0000000000000000000000000000000000000000..de577e3db18d2fc10c29679ad25aecb4f68a5e33 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TkTo>EamT(fM|YA=hC80hX&Tli3+39+x?`p?Ch|Q%iiN@-I2LI4S&@*hx#xCA(eE zX8CXSXbs|Oby|4g{}k(@d28oAJ?r|{^8BXtd4BPHzI$1D-h4DpeUr_wC;rtrTUMT! zYrE$?D|)M~kf7K9d@1LhB0 JF6*2Ung9=Id>8-# literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownb.png b/graphics/object_events/pics/pokemon/followers/unownb.png new file mode 100644 index 0000000000000000000000000000000000000000..bfcf2163a62a819f25753b3f61896909a55531b5 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TjIG>EamT(fM|YA=hC89@o7ulb9M`Ci)m=oGi3z?VDTGsAn4@Yjx#UVT|Ohv-5TC z+wbXrW1;Bd3j}}tXZ^8sY}?0aqh7zyp=}@QmFLPki~SjyrhlEa%W}S*9kW0!v&YA> z=~V|AyycBgdoVI-7Oml6;5qV`Rg9yR;m<)9#r4x4>)tGSw$Yd&AzB(u!n3Ej(D&;z)k%^mE!7~9zoWPXJuJ;JIj8W j*R)>$>z>#7R;4S%8{d~dU9wxx0OWU1S3j3^P6pFh7H5G+WHAE+w=f7ZGR&GI z!N9=CO%HHIonRz1EOGR+(qHP3L}wwpb1_C3=y zZ_P~ZC#?4G3@;0vnDzJTR4FDA0TaLJ9^4@V}My?a~q5`o@J6w|PihO0@ zjoG#|#)&V6ZBy>rs$M;Y+-{qSP0QsH+BlAO#5_H|NG_ovMQ!D2-d9R1St1l>GAu1` lSjxa`!k8CrerMUpFh7H5G+WHAE+w=f7ZGR&GI z0TjIL>EamT(fM|YA>UyI9@o7;lcp(cwdG-+B;Ge!)7E2&R(sYZ#Y6Hlhf0J+I}Px&6T1%^g0nj2u0iZ!j?bQDbOu zWw&Q%n2>+kWi3OOk~*7w>eGoz1^d4}yP*4__{Gh`A6OVR?AXTEas8TL0YmrA3tH08 uxi5UnI1sq#uB=AIpB09GY%Z6)h{~UTzf#lm)5}AkQ1Ep1b6Mw<&;$S|R*FRc literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowne.png b/graphics/object_events/pics/pokemon/followers/unowne.png new file mode 100644 index 0000000000000000000000000000000000000000..078033eb9221fbd40becd0bdb1309fdce0d28824 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TjIG>EamT(fM|YBiA7V0oQbM_m4` za`C&gm(!KYK=AqaioU>842A2sZk~@=zAAObgW!U7oSo8#uAjQc6!GNnHi62f^1^kT zmAkTMxN`-Z*#7j^6LC$OkO!@E&Mm(wHP@h6@aG2yMy|_cJF=JoM4yTAv2T=8OMBv|Z%17!*GWJfFxUvW{P_p!!1+>-~31`x(vK lxwNiF{@!%EcJ{ZNr;PSdX}bB@^BX~a_jL7hS?83{1OVH5jGzDj literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownf.png b/graphics/object_events/pics/pokemon/followers/unownf.png new file mode 100644 index 0000000000000000000000000000000000000000..2be9dbd7f237c4b56faa422362fdc2f4c71afe2a GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0Tle;>EamT(fM|YHD9xVfXm&tN5eK9$<)yCJzN;%su{er&*kt!rfDD2c@FwbJrrE| z<|*%MQHje}f#9qBB<^~Zp6MYiPhF0_;ctjY)AMS$=jVN61xLbzlKOx^t}p-Ae%@CW za(W-jsSh=gDX~irY?ZbMy?cH=vxG)7pO{oFpUI-Lj4XGUCR;H{Me^Ua_V|AHFWV7o z^#@kQ4p-+f@~1gCFmFw^YLeM;ccumJS5ZcuC$nUBl#9+&dvMV`WDkpjDCY&|3la_v z>6!|xRqtmpu~asQ@G|__=pHZFP{Y*vJ@~-P^_&Jqb)VBdTYTRC$9MN4JA>ph?mcl9 QS3p7I>FVdQ&MBb@03mLX&;S4c literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowng.png b/graphics/object_events/pics/pokemon/followers/unowng.png new file mode 100644 index 0000000000000000000000000000000000000000..917ae377442d2ed15b0004978580e00e8166abe2 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TjIL>EamT(fM|YA>UyI9@o7;lcr5rB-h4xlKc2ekBhmb1`;P>6#;t4}ct?}<4XCxT{)Mq#G9SCM*IC9`WbAn3h zKDmCE2XO}J3=W0fj*rjs?PC@w<pFh7H5G+WHAE+w=f7ZGR&GI z0TjIH>EamT(fM|YE!SZKp4PoTlbRe}B$}|uO}VpNz$)z&>#i>WQ*R&i@Jva4@l4$4 zM*NR?pPx^u0)cAK9CuAW|IaaSu}JmO(X;oY{Xxq@8ki%#8U4YRnY!9JI>wZ3>^g8H8I(tfRn zQrV`zbKsu1!RCr`;GsjAD`dcC?Fn(%8=|^pPi#Uf`~0QHnOQfvoIBV5^mCb`*6ZT! qY}47fQvA-}x_jm6#JgLb+sL2Yy+Hm9zkm-Y3_M-^T-G@yGywoFvX3eN literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowni.png b/graphics/object_events/pics/pokemon/followers/unowni.png new file mode 100644 index 0000000000000000000000000000000000000000..9d14fd5201b31de6e6ece131be858209e39c5d4a GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0Tf*C>EamT(fM|YHP>MS0hg;UlepO?9_C06c>H*Yk!J8yrpzJ@>!}x==Z88e9Q8Ao zddYh$X|C~1AGOQxpRgC*)7|&cE z?xSgX(>F3P)b6lfruE^3>ytC0tSrA26hBLTSj@x_`JpFh7H5G+WHAE+w=f7ZGR&GI z0TkTp>EamT(fM|YA>UyI9#=`N!YMIFf>f>?Hc+TMS!m@dYyFievS@{x@K^Sj?XiEi zpErNc&EN8%XlIPx^@us$lj4k?zfxNAqT1o!_Dl{Nfy?`@HoK;*ea~=s)4lu4RX&_~ z`74%@>GESs{zi8{7gK!(m-~#zTs$in|Ey$ai1<;@xMsJ_W1ez^aY SiA*m+{`7S9b6Mw<&;$VF>w(Mw literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownk.png b/graphics/object_events/pics/pokemon/followers/unownk.png new file mode 100644 index 0000000000000000000000000000000000000000..d48d0f7263b94abf24d626f15140ef8279615a99 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0Tevu>EamT(fM|YEf=$*K&viO^_0CQ4m3P55Mq(;pPY5mC{%BPTKlP4N^8!~FI8w1 z`D}If{QH+&Qj0HUn9RDLD#UOi?E0gWlE)02j^4WUgmodGK}f@)MGKfKezZKk_3J~8 z#eFtEJ;q5)BF9pBi@kTmo{)K|qs8zrCBHn6>vCI12PpFh7H5G+WHAE+w=f7ZGR&GI z0TkTt>EamT(fM|=A=hC80hUmfcbflBG&(*p)MB~*!*Zq1sgR!y()L<`$xo+EUUcMb z?$gwxJ%So6{l_1FtccpF;`vv2(x;EU8xqYMOy15mt6}oKyZxmG_aB}z?j38&uZnJX zQ?vGW14E;T{P~@nHSf>FeCKg^!!|+5{i^5(eMW}Bia3VwN!O!)d!0HL^PQ2Asrkd2 zT}+SclpGY~UcLK~cE-FV?B}M->zP=RmS1L?=%?N|eci7K4Gs<(FV>zg`Z2F8?yPrs Uyv0htc_5#9y85}Sb4q9e0NOu;5C8xG literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownm.png b/graphics/object_events/pics/pokemon/followers/unownm.png new file mode 100644 index 0000000000000000000000000000000000000000..80b421e4bf6771d5cb7453303015b162cb496f7c GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0Tev%>EamT(fM|YHP>MS0hdsgk|{AMjtNCGj&dyfSQs>O%F3cf6U&e%CL7&0ZYdML zQ1Uqa-h=hUwjl6-*5s-KuG-&Qc20MycVjshW|z6{aU7RyNyv(++u6Am?h2G$V>4+& zwdR+u>%oanr!~fKn4dNO8uhT~=cjKB+z;D-E3c{2^NDdeG>=j2mt)%oO&b#jC%H9z z4J~)-?@qFa-=2T+kZZ|#2F}aQQzzJ7@j0=__Q0VfOnax9-jnla-|%mO-SQ`UkMS~} izWTTz|Non+tV(8)hZFa&tJ`%NpFh7H5G+WHAE+w=f7ZGR&GI z0TjIL>EamT(fM|YA>Sbb9@ou3<#b|>1TE=0>=LS?Z_5{a^u!U?2n!KT(Ir2ROgZq% zK4R;>-*wWiW#>|iX8NePig@LEhMDp|dOiCbV#c*#5~gxC=dBT&Hp~U2h+Qz;Ct-oYjGiKZ7>B=XOZgH!YBPS48~ld?tn&+#A_S wF50v0V!C9rrs--{#2O)n)v49uGwojTy<6H?{xRGCASe_(UHx3vIVCg!0AbLEDF6Tf literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowno.png b/graphics/object_events/pics/pokemon/followers/unowno.png new file mode 100644 index 0000000000000000000000000000000000000000..e68f7b5170281d9517969bc59adeae5c36eb477a GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TjIK>EamT(fM|YA>UyI9@m>ShTa}4+7lf4idA!q5*&5L=S zwSHHfbi+~`2v+YG?VR&yG4IZ|VttkibFSZ)P^o)oxi7^3-PgSnl3u1v>t_z|2#hod)-hw!#8WDR51rHo^qn?=eLU>-+Q|HxvXpFh7H5G+WHAE+w=f7ZGR&GI z0TkTq>EamT(fM}DL9S*40hhgR^S^FT*kUiNvSE5npZag<)}|kUxqMgOn6z!R<+NVj zW4x!45Nc&59ZM`41}>-lj^ zhUUBq0ZV4CZekFq744AK*<*N|&FQxG0)82}4K`)#YWFg1=MMjR-Ad;($akKuelF{r G5}E)!`*|M# literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownq.png b/graphics/object_events/pics/pokemon/followers/unownq.png new file mode 100644 index 0000000000000000000000000000000000000000..01ef95120852eccc0697471848cb1534306c5914 GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TjIB>EamT(fM|YE#Dyno>t?KPk~i}-cz~SPbQr7?z^mMU}UHq>SQajkokrtFQ+~C zlic%l=bne;_O4t71iyq23jg0W$M?58lO9J3V}$5I-#M>dGq|!JtD869EwXj9d~hwZ z`X2TohI8*zrY8L(x5d_=*@7&ZwG{@^!+w vG{!?wcUSpu;bLeDs}=Tj`S;p>xBPY1xz1rz1+0UDLBZhZ>gTe~DWM4fIw^(} literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownquestion.png b/graphics/object_events/pics/pokemon/followers/unownquestion.png new file mode 100644 index 0000000000000000000000000000000000000000..afbba73b0b55275cf3b9846117b48067dba35bb3 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TkTt>EamT(fM|YA>UyI9@m>Y+{N{hI5l4-28f>IKK}B`&S3ost&Q;ef-Ornx*kaNyqhDK@`I<`CwwL^ zlfTQx*&o;E-(jj-q?uI{_o2qM_dM5~KReW?cBX9On341pFh7H5G+WHAE+w=f7ZGR&GI z0TkTk>EamT(fM|YA=hC89@nielbRY{CfZ1Bd15iw>A2rshiP)FG8ZoSwYB#S-_iyC z)8_NPXKi*C>2y(=Xy2Fi|J;Ve^^9M4rG2+Md^}-2 z_K7njt!J?GG`h=RFT^0wdY}7&$El(#^A>cx5ou>=Tw*lS*xcccEfd3}RofbOJf6Gq z?m}~gjb-0*pExoy$@?>Vd^gfj5ZQB#Y5saP*1LZ8qC4u!CZ^>{_rxSBtkZ7-dC=3< K&t;ucLK6VpYkDjI literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowns.png b/graphics/object_events/pics/pokemon/followers/unowns.png new file mode 100644 index 0000000000000000000000000000000000000000..286e583cf468263077002366de2b5ab1f6150be3 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0Tle=>EamT(fM|&Az!lrkL%{28Zk$LRIVIW5Ygm5{<6i&=qrgfvxFdN2WBbR2_7O~z&u#ZLmr$5+>*dSt1EJ~9 ze7DbGXt+|ex`_49DTaoOAG;Z2JSE;g)%LXdye#>6s_YEr*p&5F;f%rOH|-URxEaPd XPRdOVT>9l0D0npFh7H5G+WHAE+w=f7ZGR&GI z0Ti6+>EamT(fM|YAy3u z^Zzt^VAFH?tJIbSTyN&pU51! ePclEcncD3`yOKR8<*suA`N7lG&t;ucLK6TDscKjN literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownu.png b/graphics/object_events/pics/pokemon/followers/unownu.png new file mode 100644 index 0000000000000000000000000000000000000000..06434e728ac496b8a2018dec0178b5ee7ccc3b30 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TkTj>EamT(fM|YA=hC80hX(GkMpr8^$Q*>=$$|L)DoYk{7X(QR$AJ*W!t3EOZTLB zjz5T0jOIJ|_+y35yh5GNF%1v*XxpUEJAa_yp75>5^D@tgd~xFbTy%DleSz)XpDa#u zwmVHOiB2~De&|rBshp<6LKWXajXx_HS|WbbGv=J!5_2p%Xy>bqpFh7H5G+WHAE+w=f7ZGR&GI z0Tf*4>EamT(fM|YA=hC89@niuqhwi{E*$PixG?E)374$(SEk6K71v_BT$irWljZtV zQTgxNe~xCxpp_w7U$1Mi-(LK0$v#OAk%=?cIyC%zXaBafI{b6@fgr)7JXh)#IIwTa z)OZsvx?*SSf^BY=0SuwP?)F;*1$@h$qs)4`DsB45jN&J}%T7Tj^2kN5 zKK{dF&IRk#%Oo#8^JrA~XyDFuPwtb&kDE(*?lRc@N>Jy#`ja2zF;7=Nmvv4FO#u9! Bd5i!6 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownw.png b/graphics/object_events/pics/pokemon/followers/unownw.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c1b05d2040fd1ecd36e253ef1a286dcbc5888a GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TkTg>EamT(fM|YA=hC89@o7ulbD=OB>EU;oGi3z?VDTFsAn6JE1nf85S_Ph^1W}L z&i?mnvq+a{OOz1(anL=TJNm~xASwP&z^Uxgv&W2)7B2%uy#AkNu#w+$K%IU4SyAS? z+xbVh3@g9b9N&7ju-BM*#~uDPtbLPyANa&`eskTYj}BT#T1Bl+ocp}&!`_Huq1H>@ ziMtBV-xi-CUr@NeZJqMG-DwT8^bKClYJ9kG-s*p@$29es{-$b%&u#|$(9_k=Wt~$( F695(keenPQ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownx.png b/graphics/object_events/pics/pokemon/followers/unownx.png new file mode 100644 index 0000000000000000000000000000000000000000..e368a92313afe824337308e1a32c7ea0c53db504 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TkTk>EamT(fM|=A=hC89@o7;HFmnOHy-$6peC{BiN#!}<9>S`rpc{3mGV1TdSafd zype|fp7}FQSau&x+8FWATxa_J%$@9A#qK+f$y{IYH2P~w{yUDppDe{p!$lTc$o*~X zXL*;~U*X73b)NO+{H=#NR}{E1a@8)laHjV|5F^LN58s(ACT+1l=3Z2^=#Vi-p&hHz znXhM#oR#h_I3vocDSTai+LP@$&oskDHr!bw&MBUKPIPw8%qQI2y+YX+C@`^sJm~4_ K=d#Wzp$P!~jCp(j literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unowny.png b/graphics/object_events/pics/pokemon/followers/unowny.png new file mode 100644 index 0000000000000000000000000000000000000000..7646ae83e12f58508ef73b4e6dd804fd81ba39fd GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0TkTp>EamT(fM|YA=hC80hX(Gga7o3urp0OE_1A)cmCv4OMIsCFFCpRQAnRyWTf_z z%T3*1J0g>tonO2Jf}i1!s!n!3WfG}&w3u}}LubCd-?S=6jl-V}FU*l}NSrZ!b?DA{ z=5~z&)t)o*zVFbE*|{nYD6vq*H}ZUoFSEjtgZJ4VO!YaP`hV)4ov$|LGaPy#wRs-r zL}O-+BhI1k6pr}Wx~>gozR!2n%2?su+qsejr{BxHy5b;^{qD&9Ez2i~OB!d|b9dBq Pfc)v{>gTe~DWM4fy_bUe literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/unownz.png b/graphics/object_events/pics/pokemon/followers/unownz.png new file mode 100644 index 0000000000000000000000000000000000000000..4eddb404134d0820b0c751a5f2f4d7d0035f3894 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg&9b0+m^KrNErn9gt#u;*jU-P(9tt;pFh7H5G+WHAE+w=f7ZGR&GI z0Tg`f>EamT(fM|YA>UyI9@m=|UV2HKoKFn`Tc4;Ne<@OW=E}~X=`yPpa{rj#aJld3 z?epgEg;~s&g|Cm>`)`|$|5~wUS9(|9b~x?K`s1C%q=;+BFd@!`|P|k>UUV literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/ursaring.png b/graphics/object_events/pics/pokemon/followers/ursaring.png new file mode 100644 index 0000000000000000000000000000000000000000..564c10a1769640b2d62cb0d66b8dab9dcf88e818 GIT binary patch literal 844 zcmV-S1GD^zP)Kl`)IkFc^jf^`P~j9W&*&+fFx_8bcZj zE|Bxkxntp=9NGE<3^v6OG?#0;b?y}R2nhdxj)#t*Yxw?4KgE`<2)j2GI^358@<{Ug zetIP^AhmQE_ON3_I-oRrMh*o#se%-{P8fKC!z)~t3 z;!mG1aX)>>KAY6UX7~2hD$=}RZn@1Qs0Au2u!hI{;=@SfkerzE9f(Y5Ox47$gP28 z$QtIk5ro1TaB(<;B5mhc9Epcs(B~l5sD_%N5u{*QHEpCSJ{T}-*l{yI5lmH%;6y}G z>KaVrMo=|^L2UWFHP8n=+^FToKsQVuOI7h+kUola;Tn*+fC<1o=teM@T0U(%XcDr5 zouMjP!3Umdd*uulTtm<1nxYzNTEV$xyCy*~hCh3YEI0FXr`NSsUCVSQqz2_~0XsZ7 z!3bu3#|Q4_V_4UCb+bXH@58e?k9&jnXA+OeHAq4XRpl3>%wiN|Y&Og}n`@SIt4TiJ zDwoYWv}E|r#+jv%uFN1NiLs%fp)qNRfmsY$00009 za7bBm000XU000XU0RWnu7ytkQ+(|@1R7i>KmO*RVFc^k)CzVcF zYGBGxECa5pH&tP`M65Wpvy_y(St`;?Kn~=5ATo%%r3e&Wc!lFQ4m&#qjCAAJmjXFM zi|{GHp1Vn;e3cjWsw9rOb|%=XF+t2(V|k}fM4;gMDi;j)-L5D7g~5IYNlZpd^q?B~ zf)gQUS3f>|{mjn-1&8T6qb=`cr{8R6H!;TmN0x2bVJ5&=Le6er?4qU!%otpxPl{VY zdJvSPo2W9t6I`XMFl0i``2M>2V!0jKX&~pCB?P^VhWTh?vyj16 z6 z{FnX8B!k*Az&Oqnmgp9t|K!dq0HLE-&TI#cBmxKlGSfGN=HK(4>T1M wg+dKS9f8!mV!Z07*qoM6N<$f}}Bxxc~qF literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/venomoth.png b/graphics/object_events/pics/pokemon/followers/venomoth.png new file mode 100644 index 0000000000000000000000000000000000000000..5d7f1ff73b618eb926357a1fa3be5777831c1d67 GIT binary patch literal 1087 zcmV-F1i<@=P)FN1NL0JI-0l~q+p=t4PadGLn`PsRF000000000000000_>5MQ00009 za7bBm000XU000XU0RWnu7ytkRwMj%lR7i>Kma&f8I1q-_khs=Gwn;Zw353csb~g`@ z;!2+Y8$v2CH&O_v4A!}N0uhAjLmoiD8V0)*SMAH)kRmC`mu!*ha5ycn_Ha1!e>0>> zW!eAFfArbB;NwmD%G#gI&$^`<^tS%LH13nT@f!Ev0r1nf58O?|+d1@wK%I}H!p-5< zB7I6qUG?@f2}ckqobCLqh6KROl(Wt1Zq^4%M45@G1}^|0a-V<+fWpN(K}TG5-v{uJ zT^sw!3s!d$XB8cWjSHyk-X|Dr*OJYfe((txbfX~V5nxL;+Xet4rUEJx%i%@cYGY>t zk}^;Ljx!FWMY*pwQuekSB|}B!DFC3{RGUf$03zP7PS~Lc>2h7{&@L+Q#L`!gNo&ti zqef-z-~~W<;(Fxu0NQ9w07P6@2(e!>mqiUQ7brdP!B2NhKC2u%K?0|7Kva&n_7!-5 zA~#(j0)QhX0Si%}KwVF(;}*zz;=|dCawx49Xo}vB$b1+y5o;Vy5ugxXj1xFT;!c#- zjxFL)Lt_>Ktn|c(Ja(+qh^TuQdzQVk+7b6-TN#vRlWfij)Ei1v>o<}BHi1~tj-3QRG(F4(xGfxUd5We!{t4G# zk9}-vc_w0IAr>^4Vtp&n1_5*eP!6MjgttcFqJpd%iNm_Hb8&nR*X>a}#R|_vtcGY> z90mHPMC{apTV8*Cq-qz(-EJg~V-su_Nz!?PD21Wo!+_*JP0_~%M z=@1zOJaH6YP$&>B*b*Awb0S)DgYEfBv>_XBi!F@>f{={`_qR@lN4)_chK>PySr#r2rD~bO-T$##dMV zB8dWycn-i;ud)fCUHv5%8~^^QUMvFBMBL7c%-Z?<3dz3!@OOLy;LbY_;CntdolV3) zen(-NhVp6P literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/venonat.png b/graphics/object_events/pics/pokemon/followers/venonat.png new file mode 100644 index 0000000000000000000000000000000000000000..ce572706871a2d8b6c93025d4d2c260485c3c1b5 GIT binary patch literal 589 zcmV-T0K)GzTW-nL!4F`dSPmzlgR9W} ztQ^+bPa(KD6)f?HlTdIA2ikg`ql<0@A(SU>Vuud(L%0bhm8MPZUg_dw|JyGwc}cFJ zp100A>#XyCl6oEyOWafraT8(9&N&sC@G_AK)Gg((*t%6iWM(_pI`@y+kigBe!2HyT z32zp=cN%()8)+K4*6|M-11b+9%%qnL=%AMtnjAlpc57%piR<5vRmonexJke&ae!DI z=Ny7~@wk?C`n_$~>I>8vQ{kBXDnKUZRoCi3ynO~IJjN|mL%`fW;|?0 zBm)>C&e~u#bgj0OdPJIAIV zIWD$;rOv{bneAE+ZGHwRos>~m^t)$>Nt30lLQU1RPCcQNCgBpRE2B>0NwPTGwLVgf z*2}eJt~79~FSG^3PDPgG*p`oDx0Rcf_G5O&M^??(900009 za7bBm000V|000V|0Vb6__5c6^_(?=TR7i>K)G=t=KokH_%?23^oomoyk)=aMlR%+s z#?xeLiVs?F1~2if#fQLTYKBfBlPhRDc>GvfI|f1RU}~R83HBl+NT<@Nr#qdj$me<} z9SS)-_!xsKcU1jowAA?il8k+M4!lWSFF3dV$*eI-C>l`r(H+B7xd0 z!tR)#8+oAQitNZ$TlXA;I6e1+rnZ*M`;Fm=WA?*4rFGd6)zl`9-f++}hnm_|m=H33 zHYY>yl}=?XnO|Fb!3{Z%$&~Q4EK7TdrE&ag#QE7)MchWM!wJn`yTRJ{+CSY;GhS z-iSk;MQK4;$wMx>iZP{l;R7syH(WA*EvGna!tt$4c#}JOO|5%AvbC*kdyUz8wSZ_W zCR#SX0a<5>pJ3D$3FF+^b)1c?tMD3kFh0G9alE2|!lD4iX9>ogw%Ri+Mph^w+zEKX z*BIMTvPS&zHtu9+oSw_2#rm=?ZBa7JEenW|@q}fwnZIY7lXZ4=W1N4A!r8lYaBtqu zvINp$W~*bfky(WTsS!p&dLTGk;_Akm0<#$L4eeE+HbTfwkVq&BawBfqvaq!&urY4u z1=>ri)4{D}OKe%TglU#gN9`5M79&|eT4bO!S>dxa&IX#=!uBdZ!ZabJ2(>AdUq>n| z3u-h>L)HAPLN<5)mT3By&&!r9z!~U;fKJo0`R?p70v>-93(9{A+x22FeN=sW*FRam Y0jaAA*XSELIRF3v07*qoM6N<$f~)bV0ssI2 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/vibrava.png b/graphics/object_events/pics/pokemon/followers/vibrava.png new file mode 100644 index 0000000000000000000000000000000000000000..466a1de0d12adac8e3064c07a2c40443da7bb5da GIT binary patch literal 916 zcmV;F18e+=P)KmA`A-KorNXi!R`$Uc3Yky(L5Isn7=6 zu5IbA3?_rXaDvc+V$-|yVnZN9I8PZH@1x+Ry<}bWcpIA zR-9C3D1hFSP9*s9ODc$mifhJVm>G=6XN5^+h5}rPsv{N*Qb9bl)d8>=+S!!-bFVO| z%us-kg+wPK%eRu5 zjiK%VaF)N4gLysV=?ZZ60hq>y&G{xFkC-q8#7spXd(V=Lw8Pi%gk>8~UEq|&u998C z)oI%^hOA3iV)&pL64GK~r#}-;$_*iVPt6u0%Zb`9?Xn_6dj+%0)z9E6ITzZHuZ-d5 z$cGJCzGKwgb25GdS??JG7xi`9;cABMgZA!62+`}! zM;v-eB!Xo|9_n=$Jr8-63{B=RpImq}YO}~tGm8!595BLgP1c~y`c~I3{4Vkgy4b0$ zk!!_$tUogm!-I4J^H|~ARAw|7-^SSLbSTalMr>sV2Ya|Mzszt4-^!if{ltiA*_d;m qKlreAGKp2KkvQAl8PBI(GfW*=+Rtc$F z6(Xz0Mk*70fvABCz#}*hY;PBf(~MAzi8-3t@?hm#9+5o{jB0 zJBAKbruG)}obP*|`)uw2_&@%cA>DJnz5UEuxd7^amya6NOvDiH$cPD63T-Pkk-|7F z))B@&i;IAMMx~0fE z>;qwJ^^E#4SH?R61UHN_e}fUB7pPecg+H`0&OlKhbxqT}cqIsra9I$pb%|Q2cR72) zdKg$4VnIMikA3E-;EnmwG`WBYjhBLOt@$oi30fW z)HF|XONC&sqi%KdWPZfD|C9q^p!ASUv~{2gUm3Q~O!NKgr9x0(J0?mp?|wGTw>2(s zi!X8t7uYuYh}mp5r?VqsB?>{wQA>`J%zF=d?c7ulv_BkYTY_MSZSaH;vahfcW8D?H z><1DzZST47E%GgW}maohZ_6AaGd}Kz3@Ilnq1k&dwbn8a$u7 zfm3aeNnlX?#)?IO$AC`^v21t(+3Pqigea4~b^~V_lulqUr<62>9s3MJK^1GRV2Azc z2|_SHqiZ_u)7b!tyyLUP@^D!JhrS?Scq`=>Q*eNqo&b#!g=~KA2L|jge&Mr3zak`C zOpwn5fx%&u`c6pZ^or7%f4h0YD=vhC^deB;^>N?vd6QOUtW^N~$^J_M14w7VOM=c0 zr4x>1!NGM3N6tD`^FKxb+s=j)G7DtaDGO{)^aukIUM>;~pw1L5W5@!xsc;vy9L~k7 z?>J2k+fkE6v60k&u94lTN1M+8Bog pf8bi77A*;xJyT+9;|<*B_zl?3>6fzxXodg)002ovPDHLkV1i_Vtr7qL literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/vigoroth.png b/graphics/object_events/pics/pokemon/followers/vigoroth.png new file mode 100644 index 0000000000000000000000000000000000000000..4aad2e9b6ef2cab6134a1f234c117aed3bc1bd7f GIT binary patch literal 759 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 N002ovPDHLkV1gUt8h`)* literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/wailmer.png b/graphics/object_events/pics/pokemon/followers/wailmer.png new file mode 100644 index 0000000000000000000000000000000000000000..ea637a5e275728804b149798a9e517d603044409 GIT binary patch literal 718 zcmV;<0x|uGP)K)W2)nKoke?x734&gV3Rn!G(5gr)qMC z;^8>FSaU`X;u1>gzrr?}0O9pog-5f5hVw8Y2woAZ$?|w-ZQK2q{ z4t`$rIZp5UbVvr+)vk86tN*8@?EZx%7W~Gz634^t)<*St29?$;JS|-pL10!xaYV$6Ls9@Q`z_#w^8kP;|koyv` zvVm@)WgFVUhDB1~wY#(porMob`-0PRCxXYRqCjs7Og0)Shzb)33}B07qaj&ud1C`= z>G1f6-f<`6r4DqCC=hc((=Nmt71Wa49QVU&ak0@5-RtW__hH<=J(uXi&y&mqezRUu zAdC3-_qyRMp|=KB9p@Fj>a4L^T1xj%uWL{F?a`iS>tLS@~YEBlWMaM!L0eI z%50=3R^F$3So`?{=yT1o?Op$fRGYrt=>HGv7a}GC3ahe5NB{r;07*qoM6N<$g8w&M A5dZ)H literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/wailord.png b/graphics/object_events/pics/pokemon/followers/wailord.png new file mode 100644 index 0000000000000000000000000000000000000000..a27912ba77b83afc272e69b47633439704dea31f GIT binary patch literal 1151 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/weepinbell.png b/graphics/object_events/pics/pokemon/followers/weepinbell.png new file mode 100644 index 0000000000000000000000000000000000000000..f21e1a243fff5cc84eff2322cfd7175593e1492a GIT binary patch literal 698 zcmV;r0!96aP)G^pH1*t)CL0KvB;YqonF@a$zZ}b9F00009 za7bBm000XU000XU0RWnu7ytkQFiAu~R7i>KlCf*sKoo}$4m6l9Ub1!ZkfB}z0d-2C zAT(tzbW@#hjWL$DdhAdzftG9;Iv9!v4f20bVQ8UaJBWh8!wHH(xNUr6*Y@u0yL)$5 zGz7BwZJ(a*dq2GsLi^g+zV>zR!bcA*eEPcn{o@*{EJx_QiE3Z>hA8Sl=+$4RySrdlh{@9K5A7p(0G$JO!0v)wp}(Hn#({mrFV8{WkL`FB3wDHfP5RbE zJ2Ao~EkQq~&H!g0B-#i`r1+HPv^XN>H9IlFl=Odqal~05DXn?U11a>I2Zm{`c_*<5 zKurMrlQMe%SYPFt#-v$U}pHY3WNqclz270y}Xtt>i z{NchjxR}WyA+3)ZJt-^!Gg`0>r=8XHZPRQd?Tjv&-sT-bG)dER0yq}J2r{n?Pdkh) z%^h=IT{E-IZS}Zt3Ix4RX_{3FU2aSn1AfWOcRm1ly(}Yj9NQMaUS@R!FRcgL$AsLM g6GxXgzvx5PeIVm}Tfr07i`GHAM0RaJdX~C(f(P=qB$+>xdM~@&GB)2$66gaUEAMICr=zKmecHAc?KU>iGgG@-CU>evrFdJ1MTX;?{tr z-*R^5zcVZCh>-8&+Z=KH^79~GeC>#~|NiuHfVe+>z1YD*M0~OZ^p1d7Tgs9ArvP7$ z{CNwKlZa?PN_yMqYj?L0?v zE*{0lN`MtD@SVS5GUy$r39i)Da&zbubr?h5aKY1*M*(4FyiOTMRVbfIfa1Y4?t9`B zFv&=4?Rc^cxh7B?ZkE+lfM$%hIuuiFhJ^#8Uk98eFtGDB6%bEXG@OC(o1APWA#m1B zoR2IV%qloLo`ENCQyzR)HQA*p9F*57lTDk#n$*VL=E40{ZOSzWn6R3u>V2E56(atG zMf?pw#Zm^HkDD~jcm;4!P94SyM-A{o3q<`E4;B^r+R6RM-CG=%xY>?2f7?C26} zzJw2jmm_v4dA@;?)?Owx&GSu;=Z0^69A)`s*1&rsz+tQjH z#d8@W?#gq_J68f6ZqnB`S@&S{xr_lBXYK8E+WEP;czXl4@9*f=&qC7XfC10-7oyD{ z+U_^t$2%R+Wvm%y3*I%^Uw-~YAnILh{X8VK#EFu<@^SP4UjRRKe65~3Orj;DfODU= z&oDiH!N1YoVUaT`Do$li@T=6~=vbiRUs2>4wAY@%QI=cmDvN9>)gJyLxi~H`1R+QF-#E}DKPjT#(w_u^! ztY2J-iFHBrO|5xUK!4bqdwXG6b*946)v!RdRGNp2HhB{Eu-EN{sE}l}{!9o4v0N#_ zjY>W{Nr9M?x;Bl2@H+6=>xh>cYbq^dYbkjl=hXUzmTRpaUWK_5FxW{}J)ufW;B=R6 zuVW-yJ>J-GDMzNMwFIc@OuUep0PT2mFl(%RKP=2#;^@`u-CsF@(-V5z@E0HaPkY1e c18W=q0>6ECCJ9C@MF0Q*07*qoM6N<$f>%i^^#A|> literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/whiscash.png b/graphics/object_events/pics/pokemon/followers/whiscash.png new file mode 100644 index 0000000000000000000000000000000000000000..d364f49360b2532770aeae7f7db64433e289865b GIT binary patch literal 787 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 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/wooper.png b/graphics/object_events/pics/pokemon/followers/wooper.png new file mode 100644 index 0000000000000000000000000000000000000000..192b64f0bb0d56232b2f139f1b1573436378a022 GIT binary patch literal 446 zcmV;v0YUzWP)FN0Z0000000000GeIm=00009 za7bBm000XU000XU0RWnu7ytkPG)Y83R7i>Kl(BAuFc5}O1}{udHFJy9Q3`V*JJ4wQ~WL z+50K=R?)&%r9TIxQX_SLAU-{i@%P|Y=CUP)nUp!}kHnh4CoLI>G)JAcu2QZuQYaG5 o`}+rkFXX?^MZ>a*$L{a=1};jGE_ZMOGynhq07*qoM6N<$f&w?d`2YX_ literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/wurmple.png b/graphics/object_events/pics/pokemon/followers/wurmple.png new file mode 100644 index 0000000000000000000000000000000000000000..443a8b8da87891aadc4178effe88e9527f7c2d65 GIT binary patch literal 642 zcmV-|0)737P)*IjO0!@o8!C*=hOFxw$b(v5|psSy2E000000Qm~iT00009 za7bBm000XU000XU0RWnu7ytkP_(?=TR7i>K)W1t3K@QwbjUQI66*(*p^1AQ7 zxAWPV3}I|ggBsMJ{-5ICy?|HzNAR-+?7p493|QIm$|-&OYu>@r7htT>gw>Ddtzo|P z7VtK~7_vYI8ja@1;O78`{Iv1Z0v(WE)5sL$kqO9mfW0|yHwBci1)8ivK`y)~5J^u6 zt%WHvR;dN&HS*8~WdwkvPr=N74w^yI%kNBsdIK!sMTI=HL8%bwO9nVM3Yq|XI5Iw_ zTh)WdhrblCK&}yuBctF{cfrYCFC)8NW}E{2`lQuP0e{E{C7mar1F(ldCfDmVU|YxF zgaJ6!yE}R>ZIElwbO#j7wzg~N*MIiD=i%u0Vd%37^1H{tFR|dKfUW|)PIhE~i^r84 ztoKipw|4(v=ugp0!hCmSxx7m9D@d|451R%UXScuN(inzezVD068&s-p0BYg(N|FUt z4AShL&*aa@4xBiL$$rWbaV;4aJ|c$3Ux8Y?Z7T{`Ag|;`=$X24?(cwQuQq}pOvaz? zB}z$;oDCJ8JF_X7%?GDs1B}O+fKR1TiNx%4yHF_5`S@OnYB4SIqH!s#%tfa|yID~+ cU;oZ}0iPAdj@!J-b^rhX07*qoM6N<$f=4(cumAu6 literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/wynaut.png b/graphics/object_events/pics/pokemon/followers/wynaut.png new file mode 100644 index 0000000000000000000000000000000000000000..e90e1c8111dfd469092533b3878a0f4d1737f002 GIT binary patch literal 564 zcmV-40?Yl0P)CRu00009 za7bBm000XU000XU0RWnu7ytkPs!2paR7i>K)jdnYKo|$`GoWzeMQqKMRElPF(8cvc z+-xP-+w4>vBdteAh3-jcEQjl~<}|SyEhtZHZYWIYrOgN(ay1b6FNaqIo+lQg?1sm_*;reP z?y{UQolGpoZO(~r_MFl#%+g&277g6DxFGk;UQilDAWL^y+d=x@M>23m(IJ zHCMAvdYn(|-IIZPW@Dl*Mt2n`8>Y3!ZgFIBkQlwyX)C+aT{W~gAHo35Ua=~Yn(b)E zr@L%m!_h-4PwJeqM?&^<&uAHVul)g_Wd-c|c=sfC>zpz{h=3CSJMB^I!U;524KHVJ z?=V2OBZOaL=d|S!@Kow<43Is3HkgHuZ}!252Oq-9JGXEG$Ik~d1_M+hlt&SR9ne_x zi3b8p|9q-@5K$y-#v>qLPPD82kvCkRFM1btLoP;OYRlw-xq71&OgGZ-kk zIm2tORQ1Z*`17ke{&fd$mOn5m*5eyX|HS?Ii}?!*io~P~+-9x-0000QDLyg-gyxr0RaK&>G|17Sz%ED@zG(iDLJ{BF*#8oZ#THC00009 za7bBm000XU000XU0RWnu7ytkQT1iAfR7i>K)jeq2KokdXK?mPv4#!keJ7=pXH3`K9 zg9b09m?G-kOS%+yvIq!dV%2BI9^yc8hRiVn58Vvu91Jxb>VnjO)-G*B3fbK|=_EZ} ztdzJPlOJAw_jK>ClVvPP>sr^k{#z{;f8gxmGSL*xu2R_5ouod&H3vhDXRa`?J}^s7Lz)JJG4VJ&dI*VTGct$z}7tTVUmaG~p1gj9`)W1~FI`em#9*1f@OV46|k_(vi@FsshyurnB@o4z#kwMj7=96iMMK!9NXjy4as z2X4CeFKA6tj6NMbx%dVG1hcY?dC{q+yLn1WPBD7nJwAO00tEYO+Ve-+UhFMqa0z0M z1ooMuzNIM`{=tZ*RhSc6v6+gs*u~oQeqkQP(>ASc)_&8!)?Rk~zp7uU WCt5^VV}Q>90000G|17F#rGnNg%>Y00009 za7bBm000XU000XU0RWnu7ytkRgh@m}R7i>Kmd|SwK@`UqS!@G)S;%!EgnH^p40>r{ z(+=3nUWz?v#e>LNdJqq_wKQDB#Ew!d*089%&A07u@LZbv4AZ#rwRlJfo9Mv z^Sa3>AYvo>H9`}NBjoSbeImA>DIRu-9*8T}FkWW9FHt5cl4i}va$aL~G}?$0$$9>i z(N2#*0;F3YQ*5}MFhQ?@@urp2rT!^L;?HZO(!+-vghwz`4N)Q)209l& zIydI7kv10~w^cU_2?pRhQ2flLL#DU{$AjzGf`ta}#8HG0U>4sXG^*2rNZei->f#V+`0?Y$~e)cShaL*kbCF--Nm|xC4D{XB=L0C^jQP zye|<_6sOc(Y$<*p!#pEG%ncPkoM(#rj>{7R25ZyR;D?}8fAsLtUN!JroG7~Q6lv93 zQNkaN!iieUVTz4Nao>D4s~FMMLCvYI?|61~B?uT21shV8f;V4@68J>SVTuV;{4U%u z+%e(_%C@}~B}fuUYc<^H;^;0CiKyb_-P63P=2boNTd9c!@5$}3BuOGEwF_ArlrkNdyshU+xMD8IczeeIxOj%Y+!=<;2aJTKqi`SS9v` zOb{teg5vRn7tm>zBsyscA_++-w*IGAXoBbztDN&+%ztFR0B3juA7#~xB>(^b07*qo IM6N<$g4XHMdjJ3c literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/zangoose.png b/graphics/object_events/pics/pokemon/followers/zangoose.png new file mode 100644 index 0000000000000000000000000000000000000000..323463b6766f133d6d6cc1250515766e1fba9f5d GIT binary patch literal 912 zcmV;B18@9^P)Kl+Q~WK@`WQ1h&aBLA^w?7+eC2IrdUY4@tI)jD-e5YH&|2RYCH<^v&+h{)q0e zm*P7t`+4)``<;0+yM#Q%Lp;QP5;2)SKSXl8$)83fyNPJ740!T}M)B4SJ`%l1CM|z4 z_wwc<*6tqAC@#0~wK^Bc@#~xL24Ispi`_bIEA`&Y`^5eP|(wk)>LGM}XdOw=$ z(|2vN7|923&O(Z_j6GqCe@1qBjfjE|gUiH4ateZXP}E_jwnY^BKSZ?D9LbS1=Camy2fDh;!A zVgtTfe8l}OJocxP)A&YVG)gCAnH@Z=@y zZ!1(7YR@_Ec?FuTGE-yed2dN7W5sH3NbQa+nNUbv!n)yhXo;DHgwZ|o4Ycf+KKrc7 z?(|Wvg#1+)5~7y?QY@X9Jwt#@t~W~Av-{gPsaZ~6sXQ=tI#_EsA9#FPFCd%3FkY`0 zMvHhg#=hYM*<9apmJF5-#|%oMA+SC{7KX0i+j_11qUj`B%bUo1!jK#+?@Uk+mS1~@ z$P5&x{=Icv0&JSldv8rt9S!|MM!~gutv2qsJyAL%&Yt0sVhvRWP;PpLHotPQ(YhMx z-Ug5_rkeq_1?y`7KNQh2*=El$CU=Jbkk81Tp=Gm!tBsa|O_~U~)yBo|od9#eof?2e zsYpt&Jetd(dbl8L(_GP$~Gs-AH#dEmYsBv_1b!I~7uEr!wSj mNLm!!!!s$3hK6SFAID!ZVv;30jR~j#0000w_d0YO1Q`OyL4sTr}c(V=lkIVlG|Q2N%`49Sy4d%0000000000T(64>00009 za7bBm000XU000XU0RWnu7ytkRr%6OXR7i>Kl|PT$HWt< zF2u`!&+mCi%LsjG|E-M>4*tjE#L38Ie)pun=K_tp|4>|22uT%?3~ z2Jy0fw|fQk_EoyC>p%)_Y-HzmTCm~-ZU$UCEbI5Jqlay7iBZwF2~7cp{Up)?XUVjN z&5w2cQ#q|urUdsUvdx1O#I?xf2>^o(2}$fRc!#y4^X+Y7iE)dJMN|W%{Rqr0FbXOE z?XT_c8KmJ=BWNPKYy``CB8oY{Oo*u>4%sx;jxKLm&=Lm)Gsx>dfBEhM0EPBxoh1>_ z^q*ZSJ9RNEf>cKaAO$_fz5yWx79}tyiRD159o?$Z5+??k($`;qn9vATS4N(-I7)&8F<4~eWlJh+qd+OU_W84TL0CfN1{!m&Bja4vF_)PPVBBXc=ITHiwvK4v z5L;xmWH6Jv7ws)GvZ7fQ7JZG7#BF3$dG^AD^@{my*-seN+e7W3J-;F52W07*&-g;L zKW&!y-adY@!##G@=&@lF8Ih!#;F=Bxgbqyv-XXGMVvCH>h7Y*C5;V-u@8i*HR2U*k zbYwkKhdpmM=8OxhYe5k^$Ov!#_W8oz2}RG>V!aN`$HOB&Q<1$SJp&Nn zKZfDG?3;2V#6~)LA%tiJB(cvOWbb}Q1V7vfqJsEKizB}cDl*g(QMCS<^nT4fyQ6V* z*sh4>fd^#o*+?v$OP625Lio-G9oeCYxT@U$1MTS06mjk%Q&h~{1M#X@xqo{)GUtHr zt5xRAYe&w!B1SGUDyqsY&+wU39Y@vxR7U_^M<>Jx$sIX*v~?rv0(2dn5_flW1v-(P r&R5;}r-@J6)A}Eq|J05z?a}rx=?!BBcf(b500000NkvXXu0mjff0XRp literal 0 HcmV?d00001 diff --git a/graphics/object_events/pics/pokemon/followers/zigzagoon.png b/graphics/object_events/pics/pokemon/followers/zigzagoon.png new file mode 100644 index 0000000000000000000000000000000000000000..78759aa8b4ce8e5a7aef46f50a77514c6d69af14 GIT binary patch literal 769 zcmV+c1OEJpP)G|2wnMpAj$+3BPNhz6$SwS%=G*%Q800009 za7bBm000XU000XU0RWnu7ytkQcS%G+R7i>K)W3_`U>FDR7s*Xd0f&G~2se3$W0yjS z_8o$W(&eQTIXd)j=pPWs@PZuu3vLmooP)Lzgx5Goh9eh*f(OMI3gYJBR_Ib_)ckmJ z=gWc6rTBIFBu}2_O?(poPC4b2|0j|tWtfv#l}D!3Zf96(vnr2EuGBR}il*BZS+z$c z@0r~mMc4Ft?CK+82VOuA2V+*!l9(|ykgKl8WO^<$%we)^NU(g^ zfDFlfI3U@Fk&}VIDv+W;Dk{rF(RD#E2*Xe(qczN%@qoRlfuOHfc)lPMS?2IA@?oES z=L=e3sB`x`<76PotBmbGcs+dRT#TWO9q-8kCb zd87}8)(FqXft<1JCKp`bUkH7~Us;B$T6wwbqzhQJH|0`e?+O~?*61#5Xk{G@+@{>T zLFi_%WI1om-CFH7{Zv@pPRCSxQNw0yNWANKe&WE2>jC%RBjjJnOdAW+?fyu8?R8Br z^6UjX6hYR>4TtYs9sT)KmCb7FFc5{c8$E|0sh=k>ak>q7qNNB} z%EF6auq(POT)2IMK4vBV=qGl_z0g(31RNC0=R0RCDU3bqS>)$&9?tbL~a^2A2SVv6< zSiA!Mu|X680GCl968Z{}uIq^g#|hvaaoLO31A;&;$3#_d!kvnZ(=THp6&!=?!(5BI zKheu9Aiuss2l&1i6K$iD9{2Gfz#&mr2FJQPL;%Un3c%U`=!F;(wPG74UP#8q)_CxV zre1r;_82v}Cc6M=ZF@Z{*j5xikq}`bR8)m716Jq~by$^?<83bz)264}Wdu7-bS{I3 zw(yBW?0Q|&DXa}Jx;l_VGG=z%3K7}~#eM;(Uw}@qiSM*^iOx|UurWI7JuYG%jF3P2?Tuy5{NPXq3^89)Z$l6e4^$!{tH zsCb<;StgM<9sw+iFe#^iT;L%faXbKWea5fjcXAly0^>V_`+p;;BLr z?;7ibk750=0$)bt)AS;TA6wjuC;hDPwQW}5Xab>{&urSC WBWn1sOi=@Rk-^i|&t;ucLK6V?WRi;j literal 0 HcmV?d00001 diff --git a/graphics/pokemon/unown/a/back.png b/graphics/pokemon/unown/a/back.png new file mode 100644 index 0000000000000000000000000000000000000000..b909730231026f887603c65cc8da8e5d86564455 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}qS zJv!Z(n!9O%J#+JEX2Ypk*IPEcIh-K)d8QsqzZOUPv<>~6PU#i0v8Xp>aroIPYSaZROLL{OHk|*-QWL)==GkPIvi%qrebg@O1TaS?83{ F1OU~JpH2V( literal 0 HcmV?d00001 diff --git a/graphics/pokemon/unown/a/front.png b/graphics/pokemon/unown/a/front.png new file mode 100644 index 0000000000000000000000000000000000000000..697de36dc030c206fe973e467d2ef862cc98d26d GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}krG$9CEm!!>=NlJxcz|fhuBM@ddI`b|L@1P?D%qg(tF_q+5N0m)l6U1 z8&a-2H25`kFiLVI3r>7D(^kV^_KLu+g6>q?2BGS$nx*HNi{_nj5C0y?ztduC=2Z5K zjb70#8+6@M6szhEP2l{n!#C+#LBL9u!-3pfJ>PYGdwTwT&68>pTk9=-*uhyM!Cr#h zXrGL@bw;z6_+u`{_w8k;m=7*#aBiJ8RcgTe~DWM4fC+CeU literal 0 HcmV?d00001 diff --git a/graphics/pokemon/unown/a/icon.png b/graphics/pokemon/unown/a/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9056ab292fca2d77744af2318a80a03d8222e0 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+AYtnwy)8_wL>M|NsBJ zOB}y_)4ZDG_-%@2clG}yue0xp=ltKYWXaM0S!?DbB}F+pI!3OXkOI`pSQ6wH%;50s zMjDV)?CIhdV$u8d(nj6}1p(Fzvm3a%9WKNPzbX8$%Tg^O%aHv1@1b)?BadditionalPhrases[byteOffset] >> shift) & 1; + int byteOffset = wordIndex / 8; + int shift = wordIndex % 8; + return (gSaveBlock1Ptr->unlockedTrendySayings[byteOffset] >> shift) & 1; } -void UnlockAdditionalPhrase(u8 additionalPhraseId) +void UnlockTrendySaying(u8 wordIndex) { - if (additionalPhraseId < NUM_ADDITIONAL_PHRASES) + if (wordIndex < NUM_TRENDY_SAYINGS) { - int byteOffset = additionalPhraseId / 8; - int shift = additionalPhraseId % 8; - gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift; + int byteOffset = wordIndex / 8; + int shift = wordIndex % 8; + gSaveBlock1Ptr->unlockedTrendySayings[byteOffset] |= 1 << shift; } } -static u8 GetNumAdditionalPhrasesUnlocked(void) +static u8 GetNumTrendySayingsUnlocked(void) { u8 i; - u8 numAdditionalPhrasesUnlocked; + u8 numUnlocked; - for (i = 0, numAdditionalPhrasesUnlocked = 0; i < NUM_ADDITIONAL_PHRASES; i++) + for (i = 0, numUnlocked = 0; i < NUM_TRENDY_SAYINGS; i++) { - if (IsAdditionalPhraseUnlocked(i)) - numAdditionalPhrasesUnlocked++; + if (IsTrendySayingUnlocked(i)) + numUnlocked++; } - return numAdditionalPhrasesUnlocked; + return numUnlocked; } -u16 GetNewHipsterPhraseToTeach(void) +u16 UnlockRandomTrendySaying(void) { u16 i; - u16 additionalPhraseId; - u8 numAdditionalPhrasesUnlocked = GetNumAdditionalPhrasesUnlocked(); - if (numAdditionalPhrasesUnlocked == NUM_ADDITIONAL_PHRASES) + u16 numToSkip; + u8 numUnlocked = GetNumTrendySayingsUnlocked(); + if (numUnlocked == NUM_TRENDY_SAYINGS) return EC_EMPTY_WORD; - additionalPhraseId = Random() % (NUM_ADDITIONAL_PHRASES - numAdditionalPhrasesUnlocked); - for (i = 0; i < NUM_ADDITIONAL_PHRASES; i++) + numToSkip = Random() % (NUM_TRENDY_SAYINGS - numUnlocked); + for (i = 0; i < NUM_TRENDY_SAYINGS; i++) { - if (!IsAdditionalPhraseUnlocked(i)) + if (!IsTrendySayingUnlocked(i)) { - if (additionalPhraseId) + if (numToSkip) { - additionalPhraseId--; + // Skip the first n locked words, as determined by the Random call above. + numToSkip--; } else { - UnlockAdditionalPhrase(i); + UnlockTrendySaying(i); return EC_WORD(EC_GROUP_TRENDY_SAYING, i); } } } + // Would only be reached if there are no new words to teach, which is handled at the start. return EC_EMPTY_WORD; } // Unused -u16 GetRandomTaughtHipsterPhrase(void) +static u16 GetRandomUnlockedTrendySaying(void) { u16 i; - u16 additionalPhraseId = GetNumAdditionalPhrasesUnlocked(); - if (additionalPhraseId == 0) + u16 n = GetNumTrendySayingsUnlocked(); + if (n == 0) return EC_EMPTY_WORD; - additionalPhraseId = Random() % additionalPhraseId; - for (i = 0; i < NUM_ADDITIONAL_PHRASES; i++) + n = Random() % n; + for (i = 0; i < NUM_TRENDY_SAYINGS; i++) { - if (IsAdditionalPhraseUnlocked(i)) + if (IsTrendySayingUnlocked(i)) { - if (additionalPhraseId) - additionalPhraseId--; + if (n) + n--; else return EC_WORD(EC_GROUP_TRENDY_SAYING, i); } @@ -5569,10 +5588,10 @@ void InitEasyChatPhrases(void) // Mauville old man data is corrupted, which is initialized directly after // this function is called when starting a new game. for (i = 0; i < 64; i++) - gSaveBlock1Ptr->additionalPhrases[i] = 0; + gSaveBlock1Ptr->unlockedTrendySayings[i] = 0; #else - for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->additionalPhrases); i++) - gSaveBlock1Ptr->additionalPhrases[i] = 0; + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->unlockedTrendySayings); i++) + gSaveBlock1Ptr->unlockedTrendySayings[i] = 0; #endif } @@ -5611,7 +5630,7 @@ static void SetUnlockedEasyChatGroups(void) sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_MOVE_2; } - if (FlagGet(FLAG_SYS_HIPSTER_MEET)) + if (FlagGet(FLAG_UNLOCKED_TRENDY_SAYINGS)) sWordData->unlockedGroupIds[sWordData->numUnlockedGroups++] = EC_GROUP_TRENDY_SAYING; if (IsNationalPokedexEnabled()) @@ -5800,7 +5819,7 @@ static bool8 IsEasyChatIndexAndGroupUnlocked(u16 wordIndex, u8 groupId) case EC_GROUP_MOVE_2: return TRUE; case EC_GROUP_TRENDY_SAYING: - return IsAdditionalPhraseUnlocked(wordIndex); + return IsTrendySayingUnlocked(wordIndex); default: return gEasyChatGroups[groupId].wordData.words[wordIndex].enabled; } diff --git a/src/event_data.c b/src/event_data.c index 50f6f68da..bf8a6c27a 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -201,7 +201,7 @@ bool8 VarSet(u16 id, u16 value) return TRUE; } -u8 VarGetObjectEventGraphicsId(u8 id) +u16 VarGetObjectEventGraphicsId(u8 id) { return VarGet(VAR_OBJ_GFX_ID_0 + id); } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ccb6143bc..750747e15 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -12,17 +12,22 @@ #include "field_effect.h" #include "field_effect_helpers.h" #include "field_player_avatar.h" +#include "field_specials.h" +#include "field_weather.h" #include "fieldmap.h" #include "mauville_old_man.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" +#include "pokemon.h" #include "random.h" +#include "script.h" #include "sprite.h" #include "task.h" #include "trainer_see.h" #include "trainer_hill.h" #include "util.h" +#include "follow_me.h" #include "constants/event_object_movement.h" #include "constants/event_objects.h" #include "constants/field_effects.h" @@ -30,6 +35,7 @@ #include "constants/mauville_old_man.h" #include "constants/trainer_types.h" #include "constants/union_room.h" +#include "constants/metatile_behaviors.h" // this file was known as evobjmv.c in Game Freak's original source @@ -45,6 +51,8 @@ enum { JUMP_DISTANCE_IN_PLACE, JUMP_DISTANCE_NORMAL, JUMP_DISTANCE_FAR, + JUMP_DISTANCE_FAR_QUICK, + JUMP_DISTANCE_FAR_QUICKER, }; // Sprite data used throughout @@ -76,10 +84,10 @@ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprit return 0;\ } -static EWRAM_DATA u8 sCurrentReflectionType = 0; -static EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; static EWRAM_DATA struct LockedAnimObjectEvents *sLockedAnimObjectEvents = {0}; +extern void PlaySE(u16); +extern void PlaySE12WithPanning(u16, s8); static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16); static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *, struct Sprite *); static void SetMovementDelay(struct Sprite *, s16); @@ -112,6 +120,9 @@ static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent *, u32 *); static u8 ObjectEventGetNearbyReflectionType(struct ObjectEvent *); static u8 GetReflectionTypeByMetatileBehavior(u32); static void InitObjectPriorityByElevation(struct Sprite *, u8); +static void DoTracksGroundEffect_FootprintsBug(struct ObjectEvent *, struct Sprite *, u8); +static void DoTracksGroundEffect_FootprintsSpot(struct ObjectEvent *, struct Sprite *, u8); +static void DoTracksGroundEffect_SlitherTracks(struct ObjectEvent *, struct Sprite *, u8); static void ObjectEventUpdateSubpriority(struct ObjectEvent *, struct Sprite *); static void DoTracksGroundEffect_None(struct ObjectEvent *, struct Sprite *, u8); static void DoTracksGroundEffect_Footprints(struct ObjectEvent *, struct Sprite *, u8); @@ -132,23 +143,21 @@ static void SetObjectEventDynamicGraphicsId(struct ObjectEvent *); static void RemoveObjectEventInternal(struct ObjectEvent *); static u16 GetObjectEventFlagIdByObjectEventId(u8); static void UpdateObjectEventVisibility(struct ObjectEvent *, struct Sprite *); -static void MakeSpriteTemplateFromObjectEventTemplate(struct ObjectEventTemplate *, struct SpriteTemplate *, const struct SubspriteTable **); +static void MakeSpriteTemplateFromObjectEventTemplate(const struct ObjectEventTemplate *, struct SpriteTemplate *, const struct SubspriteTable **); static void GetObjectEventMovingCameraOffset(s16 *, s16 *); -static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8); -static void LoadObjectEventPalette(u16); static void RemoveObjectEventIfOutsideView(struct ObjectEvent *); static void SpawnObjectEventOnReturnToField(u8, s16, s16); static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8); static void ResetObjectEventFldEffData(struct ObjectEvent *); static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *); -static u8 FindObjectEventPaletteIndexByTag(u16); +static u16 FindObjectEventPaletteIndexByTag(u16); static void _PatchObjectPalette(u16, u8); static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *, u8); static void SpriteCB_CameraObject(struct Sprite *); static void CameraObject_0(struct Sprite *); static void CameraObject_1(struct Sprite *); static void CameraObject_2(struct Sprite *); -static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8, struct ObjectEventTemplate *, u8); +static const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8, const struct ObjectEventTemplate *, u8); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); static void SetSpriteDataForNormalStep(struct Sprite *, u8, u8); @@ -169,21 +178,6 @@ static bool8 AreElevationsCompatible(u8, u8); static const struct SpriteFrameImage sPicTable_PechaBerryTree[]; -const u8 gReflectionEffectPaletteMap[16] = { - [PALSLOT_PLAYER] = PALSLOT_PLAYER_REFLECTION, - [PALSLOT_PLAYER_REFLECTION] = PALSLOT_PLAYER_REFLECTION, - [PALSLOT_NPC_1] = PALSLOT_NPC_1_REFLECTION, - [PALSLOT_NPC_2] = PALSLOT_NPC_2_REFLECTION, - [PALSLOT_NPC_3] = PALSLOT_NPC_3_REFLECTION, - [PALSLOT_NPC_4] = PALSLOT_NPC_4_REFLECTION, - [PALSLOT_NPC_1_REFLECTION] = PALSLOT_NPC_1_REFLECTION, - [PALSLOT_NPC_2_REFLECTION] = PALSLOT_NPC_2_REFLECTION, - [PALSLOT_NPC_3_REFLECTION] = PALSLOT_NPC_3_REFLECTION, - [PALSLOT_NPC_4_REFLECTION] = PALSLOT_NPC_4_REFLECTION, - [PALSLOT_NPC_SPECIAL] = PALSLOT_NPC_SPECIAL_REFLECTION, - [PALSLOT_NPC_SPECIAL_REFLECTION] = PALSLOT_NPC_SPECIAL_REFLECTION -}; - static const struct SpriteTemplate sCameraSpriteTemplate = { .tileTag = 0, .paletteTag = TAG_NONE, @@ -286,6 +280,7 @@ static void (*const sMovementTypeCallbacks[])(struct Sprite *) = [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_FOLLOWING_POKEMON] = MovementType_FollowingPokemon, }; static const bool8 sMovementTypeHasRange[NUM_MOVEMENT_TYPES] = { @@ -330,6 +325,7 @@ static const bool8 sMovementTypeHasRange[NUM_MOVEMENT_TYPES] = { [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = TRUE, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = TRUE, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = TRUE, + [MOVEMENT_TYPE_FOLLOWING_POKEMON] = FALSE, }; const u8 gInitialMovementTypeFacingDirections[] = { @@ -414,6 +410,7 @@ const u8 gInitialMovementTypeFacingDirections[] = { [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST, [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_FOLLOWING_POKEMON] = DIR_SOUTH, }; #define OBJ_EVENT_PAL_TAG_BRENDAN 0x1100 @@ -443,24 +440,382 @@ const u8 gInitialMovementTypeFacingDirections[] = { #define OBJ_EVENT_PAL_TAG_GROUDON 0x1118 #define OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION 0x1119 #define OBJ_EVENT_PAL_TAG_UNUSED 0x111A -#define OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW 0x111B -#define OBJ_EVENT_PAL_TAG_POOCHYENA 0x111C -#define OBJ_EVENT_PAL_TAG_RED_LEAF 0x111D -#define OBJ_EVENT_PAL_TAG_DEOXYS 0x111E -#define OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE 0x111F -#define OBJ_EVENT_PAL_TAG_HO_OH 0x1120 -#define OBJ_EVENT_PAL_TAG_LUGIA 0x1121 -#define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122 -#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123 +#define OBJ_EVENT_PAL_TAG_POOCHYENA 0x111B +#define OBJ_EVENT_PAL_TAG_RED_LEAF 0x111C +#define OBJ_EVENT_PAL_TAG_DEOXYS 0x111D +#define OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE 0x111E +#define OBJ_EVENT_PAL_TAG_HO_OH 0x111F +#define OBJ_EVENT_PAL_TAG_LUGIA 0x1120 +#define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1121 +#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1122 +#define OBJ_EVENT_PAL_TAG_BULBASAUR 0x1123 +#define OBJ_EVENT_PAL_TAG_IVYSAUR 0x1124 +#define OBJ_EVENT_PAL_TAG_VENUSAUR 0x1125 +#define OBJ_EVENT_PAL_TAG_CHARMANDER 0x1126 +#define OBJ_EVENT_PAL_TAG_CHARMELEON 0x1127 +#define OBJ_EVENT_PAL_TAG_CHARIZARD 0x1128 +#define OBJ_EVENT_PAL_TAG_SQUIRTLE 0x1129 +#define OBJ_EVENT_PAL_TAG_WARTORTLE 0x112A +#define OBJ_EVENT_PAL_TAG_BLASTOISE 0x112B +#define OBJ_EVENT_PAL_TAG_CATERPIE 0x112C +#define OBJ_EVENT_PAL_TAG_BUTTERFREE 0x112D +#define OBJ_EVENT_PAL_TAG_WEEDLE 0x112E +#define OBJ_EVENT_PAL_TAG_BEEDRILL 0x112F +#define OBJ_EVENT_PAL_TAG_PIDGEY 0x1130 +#define OBJ_EVENT_PAL_TAG_PIDGEOTTO 0x1131 +#define OBJ_EVENT_PAL_TAG_PIDGEOT 0x1132 +#define OBJ_EVENT_PAL_TAG_RATTATA 0x1133 +#define OBJ_EVENT_PAL_TAG_RATICATE 0x1134 +#define OBJ_EVENT_PAL_TAG_SPEAROW 0x1135 +#define OBJ_EVENT_PAL_TAG_FEAROW 0x1136 +#define OBJ_EVENT_PAL_TAG_EKANS 0x1137 +#define OBJ_EVENT_PAL_TAG_ARBOK 0x1138 +#define OBJ_EVENT_PAL_TAG_PIKACHU 0x1139 +#define OBJ_EVENT_PAL_TAG_RAICHU 0x113A +#define OBJ_EVENT_PAL_TAG_SANDSHREW 0x113B +#define OBJ_EVENT_PAL_TAG_SANDSLASH 0x113C +#define OBJ_EVENT_PAL_TAG_NIDORAN_F 0x113D +#define OBJ_EVENT_PAL_TAG_NIDORINA 0x113E +#define OBJ_EVENT_PAL_TAG_NIDOQUEEN 0x113F +#define OBJ_EVENT_PAL_TAG_NIDORAN_M 0x1140 +#define OBJ_EVENT_PAL_TAG_NIDOKING 0x1141 +#define OBJ_EVENT_PAL_TAG_CLEFABLE 0x1142 +#define OBJ_EVENT_PAL_TAG_VULPIX 0x1143 +#define OBJ_EVENT_PAL_TAG_NINETALES 0x1144 +#define OBJ_EVENT_PAL_TAG_JIGGLYPUFF 0x1145 +#define OBJ_EVENT_PAL_TAG_WIGGLYTUFF 0x1146 +#define OBJ_EVENT_PAL_TAG_GOLBAT 0x1147 +#define OBJ_EVENT_PAL_TAG_GLOOM 0x1148 +#define OBJ_EVENT_PAL_TAG_PARAS 0x1149 +#define OBJ_EVENT_PAL_TAG_VENONAT 0x114A +#define OBJ_EVENT_PAL_TAG_VENOMOTH 0x114B +#define OBJ_EVENT_PAL_TAG_DIGLETT 0x114C +#define OBJ_EVENT_PAL_TAG_DUGTRIO 0x114D +#define OBJ_EVENT_PAL_TAG_MEOWTH 0x114E +#define OBJ_EVENT_PAL_TAG_PERSIAN 0x114F +#define OBJ_EVENT_PAL_TAG_GOLDUCK 0x1150 +#define OBJ_EVENT_PAL_TAG_MANKEY 0x1151 +#define OBJ_EVENT_PAL_TAG_PRIMEAPE 0x1152 +#define OBJ_EVENT_PAL_TAG_ARCANINE 0x1153 +#define OBJ_EVENT_PAL_TAG_POLIWAG 0x1154 +#define OBJ_EVENT_PAL_TAG_POLIWHIRL 0x1155 +#define OBJ_EVENT_PAL_TAG_KADABRA 0x1156 +#define OBJ_EVENT_PAL_TAG_MACHOP 0x1157 +#define OBJ_EVENT_PAL_TAG_MACHOKE 0x1158 +#define OBJ_EVENT_PAL_TAG_MACHAMP 0x1159 +#define OBJ_EVENT_PAL_TAG_WEEPINBELL 0x115A +#define OBJ_EVENT_PAL_TAG_VICTREEBEL 0x115B +#define OBJ_EVENT_PAL_TAG_TENTACOOL 0x115C +#define OBJ_EVENT_PAL_TAG_TENTACRUEL 0x115D +#define OBJ_EVENT_PAL_TAG_GRAVELER 0x115E +#define OBJ_EVENT_PAL_TAG_GOLEM 0x115F +#define OBJ_EVENT_PAL_TAG_PONYTA 0x1160 +#define OBJ_EVENT_PAL_TAG_SLOWPOKE 0x1161 +#define OBJ_EVENT_PAL_TAG_SLOWBRO 0x1162 +#define OBJ_EVENT_PAL_TAG_MAGNEMITE 0x1163 +#define OBJ_EVENT_PAL_TAG_FARFETCHD 0x1164 +#define OBJ_EVENT_PAL_TAG_DODUO 0x1165 +#define OBJ_EVENT_PAL_TAG_DODRIO 0x1166 +#define OBJ_EVENT_PAL_TAG_SEEL 0x1167 +#define OBJ_EVENT_PAL_TAG_MUK 0x1168 +#define OBJ_EVENT_PAL_TAG_SHELLDER 0x1169 +#define OBJ_EVENT_PAL_TAG_CLOYSTER 0x116A +#define OBJ_EVENT_PAL_TAG_GASTLY 0x116B +#define OBJ_EVENT_PAL_TAG_HAUNTER 0x116C +#define OBJ_EVENT_PAL_TAG_GENGAR 0x116D +#define OBJ_EVENT_PAL_TAG_HYPNO 0x116E +#define OBJ_EVENT_PAL_TAG_KINGLER 0x116F +#define OBJ_EVENT_PAL_TAG_VOLTORB 0x1170 +#define OBJ_EVENT_PAL_TAG_EXEGGCUTE 0x1171 +#define OBJ_EVENT_PAL_TAG_EXEGGUTOR 0x1172 +#define OBJ_EVENT_PAL_TAG_CUBONE 0x1173 +#define OBJ_EVENT_PAL_TAG_HITMONLEE 0x1174 +#define OBJ_EVENT_PAL_TAG_HITMONCHAN 0x1175 +#define OBJ_EVENT_PAL_TAG_LICKITUNG 0x1176 +#define OBJ_EVENT_PAL_TAG_KOFFING 0x1177 +#define OBJ_EVENT_PAL_TAG_RHYDON 0x1178 +#define OBJ_EVENT_PAL_TAG_CHANSEY 0x1179 +#define OBJ_EVENT_PAL_TAG_TANGELA 0x117A +#define OBJ_EVENT_PAL_TAG_KANGASKHAN 0x117B +#define OBJ_EVENT_PAL_TAG_HORSEA 0x117C +#define OBJ_EVENT_PAL_TAG_SEADRA 0x117D +#define OBJ_EVENT_PAL_TAG_GOLDEEN 0x117E +#define OBJ_EVENT_PAL_TAG_SEAKING 0x117F +#define OBJ_EVENT_PAL_TAG_STARMIE 0x1180 +#define OBJ_EVENT_PAL_TAG_MR_MIME 0x1181 +#define OBJ_EVENT_PAL_TAG_SCYTHER 0x1182 +#define OBJ_EVENT_PAL_TAG_JYNX 0x1183 +#define OBJ_EVENT_PAL_TAG_MAGMAR 0x1184 +#define OBJ_EVENT_PAL_TAG_PINSIR 0x1185 +#define OBJ_EVENT_PAL_TAG_TAUROS 0x1186 +#define OBJ_EVENT_PAL_TAG_MAGIKARP 0x1187 +#define OBJ_EVENT_PAL_TAG_GYARADOS 0x1188 +#define OBJ_EVENT_PAL_TAG_LAPRAS 0x1189 +#define OBJ_EVENT_PAL_TAG_EEVEE 0x118A +#define OBJ_EVENT_PAL_TAG_VAPOREON 0x118B +#define OBJ_EVENT_PAL_TAG_JOLTEON 0x118C +#define OBJ_EVENT_PAL_TAG_FLAREON 0x118D +#define OBJ_EVENT_PAL_TAG_PORYGON 0x118E +#define OBJ_EVENT_PAL_TAG_OMANYTE 0x118F +#define OBJ_EVENT_PAL_TAG_OMASTAR 0x1190 +#define OBJ_EVENT_PAL_TAG_KABUTO 0x1191 +#define OBJ_EVENT_PAL_TAG_KABUTOPS 0x1192 +#define OBJ_EVENT_PAL_TAG_AERODACTYL 0x1193 +#define OBJ_EVENT_PAL_TAG_SNORLAX 0x1194 +#define OBJ_EVENT_PAL_TAG_ARTICUNO 0x1195 +#define OBJ_EVENT_PAL_TAG_ZAPDOS 0x1196 +#define OBJ_EVENT_PAL_TAG_MOLTRES 0x1197 +#define OBJ_EVENT_PAL_TAG_DRATINI 0x1198 +#define OBJ_EVENT_PAL_TAG_DRAGONAIR 0x1199 +#define OBJ_EVENT_PAL_TAG_DRAGONITE 0x119A +#define OBJ_EVENT_PAL_TAG_MEWTWO 0x119B +#define OBJ_EVENT_PAL_TAG_MEW 0x119C +#define OBJ_EVENT_PAL_TAG_BAYLEEF 0x119D +#define OBJ_EVENT_PAL_TAG_MEGANIUM 0x119E +#define OBJ_EVENT_PAL_TAG_CYNDAQUIL 0x119F +#define OBJ_EVENT_PAL_TAG_QUILAVA 0x11A0 +#define OBJ_EVENT_PAL_TAG_TYPHLOSION 0x11A1 +#define OBJ_EVENT_PAL_TAG_TOTODILE 0x11A2 +#define OBJ_EVENT_PAL_TAG_CROCONAW 0x11A3 +#define OBJ_EVENT_PAL_TAG_FERALIGATR 0x11A4 +#define OBJ_EVENT_PAL_TAG_SENTRET 0x11A5 +#define OBJ_EVENT_PAL_TAG_FURRET 0x11A6 +#define OBJ_EVENT_PAL_TAG_HOOTHOOT 0x11A7 +#define OBJ_EVENT_PAL_TAG_NOCTOWL 0x11A8 +#define OBJ_EVENT_PAL_TAG_LEDYBA 0x11A9 +#define OBJ_EVENT_PAL_TAG_LEDIAN 0x11AA +#define OBJ_EVENT_PAL_TAG_SPINARAK 0x11AB +#define OBJ_EVENT_PAL_TAG_ARIADOS 0x11AC +#define OBJ_EVENT_PAL_TAG_CROBAT 0x11AD +#define OBJ_EVENT_PAL_TAG_CHINCHOU 0x11AE +#define OBJ_EVENT_PAL_TAG_LANTURN 0x11AF +#define OBJ_EVENT_PAL_TAG_PICHU 0x11B0 +#define OBJ_EVENT_PAL_TAG_CLEFFA 0x11B1 +#define OBJ_EVENT_PAL_TAG_IGGLYBUFF 0x11B2 +#define OBJ_EVENT_PAL_TAG_TOGEPI 0x11B3 +#define OBJ_EVENT_PAL_TAG_NATU 0x11B4 +#define OBJ_EVENT_PAL_TAG_XATU 0x11B5 +#define OBJ_EVENT_PAL_TAG_MAREEP 0x11B6 +#define OBJ_EVENT_PAL_TAG_FLAAFFY 0x11B7 +#define OBJ_EVENT_PAL_TAG_AMPHAROS 0x11B8 +#define OBJ_EVENT_PAL_TAG_BELLOSSOM 0x11B9 +#define OBJ_EVENT_PAL_TAG_AZUMARILL 0x11BA +#define OBJ_EVENT_PAL_TAG_SUDOWOODO 0x11BB +#define OBJ_EVENT_PAL_TAG_POLITOED 0x11BC +#define OBJ_EVENT_PAL_TAG_HOPPIP 0x11BD +#define OBJ_EVENT_PAL_TAG_SKIPLOOM 0x11BE +#define OBJ_EVENT_PAL_TAG_JUMPLUFF 0x11BF +#define OBJ_EVENT_PAL_TAG_AIPOM 0x11C0 +#define OBJ_EVENT_PAL_TAG_SUNKERN 0x11C1 +#define OBJ_EVENT_PAL_TAG_SUNFLORA 0x11C2 +#define OBJ_EVENT_PAL_TAG_YANMA 0x11C3 +#define OBJ_EVENT_PAL_TAG_QUAGSIRE 0x11C4 +#define OBJ_EVENT_PAL_TAG_ESPEON 0x11C5 +#define OBJ_EVENT_PAL_TAG_UMBREON 0x11C6 +#define OBJ_EVENT_PAL_TAG_MURKROW 0x11C7 +#define OBJ_EVENT_PAL_TAG_SLOWKING 0x11C8 +#define OBJ_EVENT_PAL_TAG_MISDREAVUS 0x11C9 +#define OBJ_EVENT_PAL_TAG_WOBBUFFET 0x11CA +#define OBJ_EVENT_PAL_TAG_GIRAFARIG 0x11CB +#define OBJ_EVENT_PAL_TAG_PINECO 0x11CC +#define OBJ_EVENT_PAL_TAG_FORRETRESS 0x11CD +#define OBJ_EVENT_PAL_TAG_DUNSPARCE 0x11CE +#define OBJ_EVENT_PAL_TAG_GLIGAR 0x11CF +#define OBJ_EVENT_PAL_TAG_SNUBBULL 0x11D0 +#define OBJ_EVENT_PAL_TAG_GRANBULL 0x11D1 +#define OBJ_EVENT_PAL_TAG_QWILFISH 0x11D2 +#define OBJ_EVENT_PAL_TAG_SCIZOR 0x11D3 +#define OBJ_EVENT_PAL_TAG_SHUCKLE 0x11D4 +#define OBJ_EVENT_PAL_TAG_HERACROSS 0x11D5 +#define OBJ_EVENT_PAL_TAG_SNEASEL 0x11D6 +#define OBJ_EVENT_PAL_TAG_TEDDIURSA 0x11D7 +#define OBJ_EVENT_PAL_TAG_URSARING 0x11D8 +#define OBJ_EVENT_PAL_TAG_MAGCARGO 0x11D9 +#define OBJ_EVENT_PAL_TAG_SWINUB 0x11DA +#define OBJ_EVENT_PAL_TAG_PILOSWINE 0x11DB +#define OBJ_EVENT_PAL_TAG_CORSOLA 0x11DC +#define OBJ_EVENT_PAL_TAG_REMORAID 0x11DD +#define OBJ_EVENT_PAL_TAG_OCTILLERY 0x11DE +#define OBJ_EVENT_PAL_TAG_DELIBIRD 0x11DF +#define OBJ_EVENT_PAL_TAG_MANTINE 0x11E0 +#define OBJ_EVENT_PAL_TAG_SKARMORY 0x11E1 +#define OBJ_EVENT_PAL_TAG_HOUNDOOM 0x11E2 +#define OBJ_EVENT_PAL_TAG_KINGDRA 0x11E3 +#define OBJ_EVENT_PAL_TAG_PHANPY 0x11E4 +#define OBJ_EVENT_PAL_TAG_DONPHAN 0x11E5 +#define OBJ_EVENT_PAL_TAG_PORYGON2 0x11E6 +#define OBJ_EVENT_PAL_TAG_STANTLER 0x11E7 +#define OBJ_EVENT_PAL_TAG_SMEARGLE 0x11E8 +#define OBJ_EVENT_PAL_TAG_TYROGUE 0x11E9 +#define OBJ_EVENT_PAL_TAG_HITMONTOP 0x11EA +#define OBJ_EVENT_PAL_TAG_SMOOCHUM 0x11EB +#define OBJ_EVENT_PAL_TAG_ELEKID 0x11EC +#define OBJ_EVENT_PAL_TAG_MAGBY 0x11ED +#define OBJ_EVENT_PAL_TAG_MILTANK 0x11EE +#define OBJ_EVENT_PAL_TAG_BLISSEY 0x11EF +#define OBJ_EVENT_PAL_TAG_RAIKOU 0x11F0 +#define OBJ_EVENT_PAL_TAG_ENTEI 0x11F1 +#define OBJ_EVENT_PAL_TAG_SUICUNE 0x11F2 +#define OBJ_EVENT_PAL_TAG_LARVITAR 0x11F3 +#define OBJ_EVENT_PAL_TAG_TYRANITAR 0x11F4 +#define OBJ_EVENT_PAL_TAG_LUGIA_FOLLOWER 0x11F5 +#define OBJ_EVENT_PAL_TAG_HO_OH_FOLLOWER 0x11F6 +#define OBJ_EVENT_PAL_TAG_CELEBI 0x11F7 +#define OBJ_EVENT_PAL_TAG_TREECKO 0x11F8 +#define OBJ_EVENT_PAL_TAG_GROVYLE 0x11F9 +#define OBJ_EVENT_PAL_TAG_SCEPTILE 0x11FA +#define OBJ_EVENT_PAL_TAG_COMBUSKEN 0x11FB +#define OBJ_EVENT_PAL_TAG_BLAZIKEN 0x11FC +#define OBJ_EVENT_PAL_TAG_MUDKIP 0x11FD +#define OBJ_EVENT_PAL_TAG_MARSHTOMP 0x11FE +#define OBJ_EVENT_PAL_TAG_SWAMPERT 0x10FF +#define OBJ_EVENT_PAL_TAG_POOCHYENA_FOLLOWER 0x10FE +#define OBJ_EVENT_PAL_TAG_MIGHTYENA 0x10FD +#define OBJ_EVENT_PAL_TAG_ZIGZAGOON_FOLLOWER 0x10FC +#define OBJ_EVENT_PAL_TAG_LINOONE 0x10FB +#define OBJ_EVENT_PAL_TAG_WURMPLE 0x10FA +#define OBJ_EVENT_PAL_TAG_BEAUTIFLY 0x10F9 +#define OBJ_EVENT_PAL_TAG_CASCOON 0x10F8 +#define OBJ_EVENT_PAL_TAG_DUSTOX 0x10F7 +#define OBJ_EVENT_PAL_TAG_LOTAD 0x10F6 +#define OBJ_EVENT_PAL_TAG_LOMBRE 0x10F5 +#define OBJ_EVENT_PAL_TAG_LUDICOLO 0x10F4 +#define OBJ_EVENT_PAL_TAG_SEEDOT 0x10F3 +#define OBJ_EVENT_PAL_TAG_NUZLEAF 0x10F2 +#define OBJ_EVENT_PAL_TAG_SHIFTRY 0x10F1 +#define OBJ_EVENT_PAL_TAG_TAILLOW 0x10F0 +#define OBJ_EVENT_PAL_TAG_SWELLOW 0x10EF +#define OBJ_EVENT_PAL_TAG_WINGULL 0x10EE +#define OBJ_EVENT_PAL_TAG_PELIPPER 0x10ED +#define OBJ_EVENT_PAL_TAG_GARDEVOIR 0x10EC +#define OBJ_EVENT_PAL_TAG_SURSKIT 0x10EB +#define OBJ_EVENT_PAL_TAG_MASQUERAIN 0x10EA +#define OBJ_EVENT_PAL_TAG_SHROOMISH 0x10E9 +#define OBJ_EVENT_PAL_TAG_BRELOOM 0x10E8 +#define OBJ_EVENT_PAL_TAG_SLAKOTH 0x10E7 +#define OBJ_EVENT_PAL_TAG_VIGOROTH_FOLLOWER 0x10E6 +#define OBJ_EVENT_PAL_TAG_SLAKING 0x10E5 +#define OBJ_EVENT_PAL_TAG_NINCADA 0x10E4 +#define OBJ_EVENT_PAL_TAG_NINJASK 0x10E3 +#define OBJ_EVENT_PAL_TAG_SHEDINJA 0x10E2 +#define OBJ_EVENT_PAL_TAG_WHISMUR 0x10E1 +#define OBJ_EVENT_PAL_TAG_EXPLOUD 0x10E0 +#define OBJ_EVENT_PAL_TAG_MAKUHITA 0x10DF +#define OBJ_EVENT_PAL_TAG_HARIYAMA 0x10DE +#define OBJ_EVENT_PAL_TAG_AZURILL_FOLLOWER 0x10DD +#define OBJ_EVENT_PAL_TAG_NOSEPASS 0x10DC +#define OBJ_EVENT_PAL_TAG_DELCATTY 0x10DB +#define OBJ_EVENT_PAL_TAG_SABLEYE 0x10DA +#define OBJ_EVENT_PAL_TAG_MAWILE 0x10D9 +#define OBJ_EVENT_PAL_TAG_LAIRON 0x10D8 +#define OBJ_EVENT_PAL_TAG_AGGRON 0x10D7 +#define OBJ_EVENT_PAL_TAG_MEDITITE 0x10D6 +#define OBJ_EVENT_PAL_TAG_MEDICHAM 0x10D5 +#define OBJ_EVENT_PAL_TAG_ELECTRIKE 0x10D4 +#define OBJ_EVENT_PAL_TAG_MANECTRIC 0x10D3 +#define OBJ_EVENT_PAL_TAG_MINUN 0x10D2 +#define OBJ_EVENT_PAL_TAG_VOLBEAT 0x10D1 +#define OBJ_EVENT_PAL_TAG_ILLUMISE 0x10D0 +#define OBJ_EVENT_PAL_TAG_ROSELIA 0x10CF +#define OBJ_EVENT_PAL_TAG_GULPIN 0x10CE +#define OBJ_EVENT_PAL_TAG_SWALOT 0x10CD +#define OBJ_EVENT_PAL_TAG_CARVANHA 0x10CC +#define OBJ_EVENT_PAL_TAG_SHARPEDO 0x10CB +#define OBJ_EVENT_PAL_TAG_WAILMER 0x10CA +#define OBJ_EVENT_PAL_TAG_WAILORD 0x10C9 +#define OBJ_EVENT_PAL_TAG_NUMEL 0x10C8 +#define OBJ_EVENT_PAL_TAG_CAMERUPT 0x10C7 +#define OBJ_EVENT_PAL_TAG_TORKOAL 0x10C6 +#define OBJ_EVENT_PAL_TAG_SPOINK 0x10C5 +#define OBJ_EVENT_PAL_TAG_GRUMPIG 0x10C4 +#define OBJ_EVENT_PAL_TAG_SPINDA 0x10C3 +#define OBJ_EVENT_PAL_TAG_TRAPINCH 0x10C2 +#define OBJ_EVENT_PAL_TAG_VIBRAVA 0x10C1 +#define OBJ_EVENT_PAL_TAG_FLYGON 0x10C0 +#define OBJ_EVENT_PAL_TAG_CACNEA 0x10BF +#define OBJ_EVENT_PAL_TAG_ALTARIA 0x10BE +#define OBJ_EVENT_PAL_TAG_ZANGOOSE 0x10BD +#define OBJ_EVENT_PAL_TAG_SEVIPER 0x10BC +#define OBJ_EVENT_PAL_TAG_SOLROCK 0x10BB +#define OBJ_EVENT_PAL_TAG_BARBOACH 0x10BA +#define OBJ_EVENT_PAL_TAG_WHISCASH 0x10B9 +#define OBJ_EVENT_PAL_TAG_CORPHISH 0x10B8 +#define OBJ_EVENT_PAL_TAG_CRAWDAUNT 0x10B7 +#define OBJ_EVENT_PAL_TAG_BALTOY 0x10B6 +#define OBJ_EVENT_PAL_TAG_CLAYDOL 0x10B5 +#define OBJ_EVENT_PAL_TAG_LILEEP 0x10B4 +#define OBJ_EVENT_PAL_TAG_CRADILY 0x10B3 +#define OBJ_EVENT_PAL_TAG_ANORITH 0x10B2 +#define OBJ_EVENT_PAL_TAG_ARMALDO 0x10B1 +#define OBJ_EVENT_PAL_TAG_FEEBAS 0x10B0 +#define OBJ_EVENT_PAL_TAG_MILOTIC 0x10AF +#define OBJ_EVENT_PAL_TAG_KECLEON 0x10AE +#define OBJ_EVENT_PAL_TAG_BANETTE 0x10AD +#define OBJ_EVENT_PAL_TAG_DUSKULL 0x10AC +#define OBJ_EVENT_PAL_TAG_DUSCLOPS 0x10AB +#define OBJ_EVENT_PAL_TAG_TROPIUS 0x10AA +#define OBJ_EVENT_PAL_TAG_CHIMECHO 0x10A9 +#define OBJ_EVENT_PAL_TAG_ABSOL 0x10A8 +#define OBJ_EVENT_PAL_TAG_WYNAUT 0x10A7 +#define OBJ_EVENT_PAL_TAG_SNORUNT 0x10A6 +#define OBJ_EVENT_PAL_TAG_GLALIE 0x10A5 +#define OBJ_EVENT_PAL_TAG_SPHEAL 0x10A4 +#define OBJ_EVENT_PAL_TAG_SEALEO 0x10A3 +#define OBJ_EVENT_PAL_TAG_WALREIN 0x10A2 +#define OBJ_EVENT_PAL_TAG_CLAMPERL 0x10A1 +#define OBJ_EVENT_PAL_TAG_HUNTAIL 0x10A0 +#define OBJ_EVENT_PAL_TAG_GOREBYSS 0x109F +#define OBJ_EVENT_PAL_TAG_RELICANTH 0x109E +#define OBJ_EVENT_PAL_TAG_LUVDISC 0x109D +#define OBJ_EVENT_PAL_TAG_BAGON 0x109C +#define OBJ_EVENT_PAL_TAG_SHELGON 0x109B +#define OBJ_EVENT_PAL_TAG_SALAMENCE 0x109A +#define OBJ_EVENT_PAL_TAG_BELDUM 0x1099 +#define OBJ_EVENT_PAL_TAG_METANG 0x1098 +#define OBJ_EVENT_PAL_TAG_REGIROCK 0x1097 +#define OBJ_EVENT_PAL_TAG_REGICE 0x1096 +#define OBJ_EVENT_PAL_TAG_REGISTEEL 0x1095 +#define OBJ_EVENT_PAL_TAG_LATIAS 0x1094 +#define OBJ_EVENT_PAL_TAG_LATIOS 0x1093 +#define OBJ_EVENT_PAL_TAG_KYOGRE_FOLLOWER 0x1092 +#define OBJ_EVENT_PAL_TAG_GROUDON_FOLLOWER 0x1091 +#define OBJ_EVENT_PAL_TAG_RAYQUAZA 0x1090 +#define OBJ_EVENT_PAL_TAG_JIRACHI 0x108F +#define OBJ_EVENT_PAL_TAG_DEOXYS_FOLLOWER 0x108E +#define OBJ_EVENT_PAL_TAG_GREAT_BALL 0x108D +#define OBJ_EVENT_PAL_TAG_ULTRA_BALL 0x108C +#define OBJ_EVENT_PAL_TAG_MASTER_BALL 0x108B +#define OBJ_EVENT_PAL_TAG_SAFARI_BALL 0x108A +#define OBJ_EVENT_PAL_TAG_NET_BALL 0x1089 +#define OBJ_EVENT_PAL_TAG_DIVE_BALL 0x1088 +#define OBJ_EVENT_PAL_TAG_NEST_BALL 0x1087 +#define OBJ_EVENT_PAL_TAG_REPEAT_BALL 0x1086 +#define OBJ_EVENT_PAL_TAG_TIMER_BALL 0x1085 +#define OBJ_EVENT_PAL_TAG_LUXURY_BALL 0x1084 +#define OBJ_EVENT_PAL_TAG_PREMIER_BALL 0x1083 +#define OBJ_EVENT_PAL_TAG_HEAL_BALL 0x1082 +#define OBJ_EVENT_PAL_TAG_DUSK_BALL 0x1081 +#define OBJ_EVENT_PAL_TAG_QUICK_BALL 0x1080 +#define OBJ_EVENT_PAL_TAG_LEVEL_BALL 0x107F +#define OBJ_EVENT_PAL_TAG_LURE_BALL 0x107E +#define OBJ_EVENT_PAL_TAG_MOON_BALL 0x107D +#define OBJ_EVENT_PAL_TAG_FRIEND_BALL 0x107C +#define OBJ_EVENT_PAL_TAG_LOVE_BALL 0x107B +#define OBJ_EVENT_PAL_TAG_FAST_BALL 0x107A +#define OBJ_EVENT_PAL_TAG_HEAVY_BALL 0x1079 +#define OBJ_EVENT_PAL_TAG_DREAM_BALL 0x1078 +#define OBJ_EVENT_PAL_TAG_SPORT_BALL 0x1077 +#define OBJ_EVENT_PAL_TAG_PARK_BALL 0x1076 +#define OBJ_EVENT_PAL_TAG_CHERISH_BALL 0x1075 #define OBJ_EVENT_PAL_TAG_NONE 0x11FF -#include "data/object_events/object_event_graphics_info_pointers.h" #include "data/field_effects/field_effect_object_template_pointers.h" #include "data/object_events/object_event_pic_tables.h" #include "data/object_events/object_event_anims.h" #include "data/object_events/base_oam.h" #include "data/object_events/object_event_subsprites.h" #include "data/object_events/object_event_graphics_info.h" +#include "data/object_events/object_event_graphics_info_pointers.h" static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_Npc1, OBJ_EVENT_PAL_TAG_NPC_1}, @@ -489,7 +844,6 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_KyogreReflection, OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION}, {gObjectEventPal_Groudon, OBJ_EVENT_PAL_TAG_GROUDON}, {gObjectEventPal_GroudonReflection, OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION}, - {gObjectEventPal_SubmarineShadow, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW}, {gObjectEventPal_Poochyena, OBJ_EVENT_PAL_TAG_POOCHYENA}, {gObjectEventPal_RedLeaf, OBJ_EVENT_PAL_TAG_RED_LEAF}, {gObjectEventPal_Deoxys, OBJ_EVENT_PAL_TAG_DEOXYS}, @@ -498,195 +852,374 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_Lugia, OBJ_EVENT_PAL_TAG_LUGIA}, {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN}, {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY}, + {gObjectEventPal_Bulbasaur, OBJ_EVENT_PAL_TAG_BULBASAUR}, + {gObjectEventPal_Ivysaur, OBJ_EVENT_PAL_TAG_IVYSAUR}, + {gObjectEventPal_Venusaur, OBJ_EVENT_PAL_TAG_VENUSAUR}, + {gObjectEventPal_Charmander, OBJ_EVENT_PAL_TAG_CHARMANDER}, + {gObjectEventPal_Charmeleon, OBJ_EVENT_PAL_TAG_CHARMELEON}, + {gObjectEventPal_Charizard, OBJ_EVENT_PAL_TAG_CHARIZARD}, + {gObjectEventPal_Squirtle, OBJ_EVENT_PAL_TAG_SQUIRTLE}, + {gObjectEventPal_Wartortle, OBJ_EVENT_PAL_TAG_WARTORTLE}, + {gObjectEventPal_Blastoise, OBJ_EVENT_PAL_TAG_BLASTOISE}, + {gObjectEventPal_Caterpie, OBJ_EVENT_PAL_TAG_CATERPIE}, + {gObjectEventPal_Butterfree, OBJ_EVENT_PAL_TAG_BUTTERFREE}, + {gObjectEventPal_Weedle, OBJ_EVENT_PAL_TAG_WEEDLE}, + {gObjectEventPal_Beedrill, OBJ_EVENT_PAL_TAG_BEEDRILL}, + {gObjectEventPal_Pidgey, OBJ_EVENT_PAL_TAG_PIDGEY}, + {gObjectEventPal_Pidgeotto, OBJ_EVENT_PAL_TAG_PIDGEOTTO}, + {gObjectEventPal_Pidgeot, OBJ_EVENT_PAL_TAG_PIDGEOT}, + {gObjectEventPal_Rattata, OBJ_EVENT_PAL_TAG_RATTATA}, + {gObjectEventPal_Raticate, OBJ_EVENT_PAL_TAG_RATICATE}, + {gObjectEventPal_Spearow, OBJ_EVENT_PAL_TAG_SPEAROW}, + {gObjectEventPal_Fearow, OBJ_EVENT_PAL_TAG_FEAROW}, + {gObjectEventPal_Ekans, OBJ_EVENT_PAL_TAG_EKANS}, + {gObjectEventPal_Arbok, OBJ_EVENT_PAL_TAG_ARBOK}, + {gObjectEventPal_Pikachu, OBJ_EVENT_PAL_TAG_PIKACHU}, + {gObjectEventPal_Raichu, OBJ_EVENT_PAL_TAG_RAICHU}, + {gObjectEventPal_Sandshrew, OBJ_EVENT_PAL_TAG_SANDSHREW}, + {gObjectEventPal_Sandslash, OBJ_EVENT_PAL_TAG_SANDSLASH}, + {gObjectEventPal_Nidoran_F, OBJ_EVENT_PAL_TAG_NIDORAN_F}, + {gObjectEventPal_Nidorina, OBJ_EVENT_PAL_TAG_NIDORINA}, + {gObjectEventPal_Nidoqueen, OBJ_EVENT_PAL_TAG_NIDOQUEEN}, + {gObjectEventPal_Nidoran_M, OBJ_EVENT_PAL_TAG_NIDORAN_M}, + {gObjectEventPal_Nidoking, OBJ_EVENT_PAL_TAG_NIDOKING}, + {gObjectEventPal_Clefable, OBJ_EVENT_PAL_TAG_CLEFABLE}, + {gObjectEventPal_Vulpix, OBJ_EVENT_PAL_TAG_VULPIX}, + {gObjectEventPal_Ninetales, OBJ_EVENT_PAL_TAG_NINETALES}, + {gObjectEventPal_Jigglypuff, OBJ_EVENT_PAL_TAG_JIGGLYPUFF}, + {gObjectEventPal_Wigglytuff, OBJ_EVENT_PAL_TAG_WIGGLYTUFF}, + {gObjectEventPal_Golbat, OBJ_EVENT_PAL_TAG_GOLBAT}, + {gObjectEventPal_Gloom, OBJ_EVENT_PAL_TAG_GLOOM}, + {gObjectEventPal_Paras, OBJ_EVENT_PAL_TAG_PARAS}, + {gObjectEventPal_Venonat, OBJ_EVENT_PAL_TAG_VENONAT}, + {gObjectEventPal_Venomoth, OBJ_EVENT_PAL_TAG_VENOMOTH}, + {gObjectEventPal_Diglett, OBJ_EVENT_PAL_TAG_DIGLETT}, + {gObjectEventPal_Dugtrio, OBJ_EVENT_PAL_TAG_DUGTRIO}, + {gObjectEventPal_Meowth, OBJ_EVENT_PAL_TAG_MEOWTH}, + {gObjectEventPal_Persian, OBJ_EVENT_PAL_TAG_PERSIAN}, + {gObjectEventPal_Golduck, OBJ_EVENT_PAL_TAG_GOLDUCK}, + {gObjectEventPal_Mankey, OBJ_EVENT_PAL_TAG_MANKEY}, + {gObjectEventPal_Primeape, OBJ_EVENT_PAL_TAG_PRIMEAPE}, + {gObjectEventPal_Arcanine, OBJ_EVENT_PAL_TAG_ARCANINE}, + {gObjectEventPal_Poliwag, OBJ_EVENT_PAL_TAG_POLIWAG}, + {gObjectEventPal_Poliwhirl, OBJ_EVENT_PAL_TAG_POLIWHIRL}, + {gObjectEventPal_Kadabra, OBJ_EVENT_PAL_TAG_KADABRA}, + {gObjectEventPal_Machop, OBJ_EVENT_PAL_TAG_MACHOP}, + {gObjectEventPal_Machoke, OBJ_EVENT_PAL_TAG_MACHOKE}, + {gObjectEventPal_Machamp, OBJ_EVENT_PAL_TAG_MACHAMP}, + {gObjectEventPal_Weepinbell, OBJ_EVENT_PAL_TAG_WEEPINBELL}, + {gObjectEventPal_Victreebel, OBJ_EVENT_PAL_TAG_VICTREEBEL}, + {gObjectEventPal_Tentacool, OBJ_EVENT_PAL_TAG_TENTACOOL}, + {gObjectEventPal_Tentacruel, OBJ_EVENT_PAL_TAG_TENTACRUEL}, + {gObjectEventPal_Graveler, OBJ_EVENT_PAL_TAG_GRAVELER}, + {gObjectEventPal_Golem, OBJ_EVENT_PAL_TAG_GOLEM}, + {gObjectEventPal_Ponyta, OBJ_EVENT_PAL_TAG_PONYTA}, + {gObjectEventPal_Slowpoke, OBJ_EVENT_PAL_TAG_SLOWPOKE}, + {gObjectEventPal_Slowbro, OBJ_EVENT_PAL_TAG_SLOWBRO}, + {gObjectEventPal_Magnemite, OBJ_EVENT_PAL_TAG_MAGNEMITE}, + {gObjectEventPal_Farfetchd, OBJ_EVENT_PAL_TAG_FARFETCHD}, + {gObjectEventPal_Doduo, OBJ_EVENT_PAL_TAG_DODUO}, + {gObjectEventPal_Dodrio, OBJ_EVENT_PAL_TAG_DODRIO}, + {gObjectEventPal_Seel, OBJ_EVENT_PAL_TAG_SEEL}, + {gObjectEventPal_Muk, OBJ_EVENT_PAL_TAG_MUK}, + {gObjectEventPal_Shellder, OBJ_EVENT_PAL_TAG_SHELLDER}, + {gObjectEventPal_Cloyster, OBJ_EVENT_PAL_TAG_CLOYSTER}, + {gObjectEventPal_Gastly, OBJ_EVENT_PAL_TAG_GASTLY}, + {gObjectEventPal_Haunter, OBJ_EVENT_PAL_TAG_HAUNTER}, + {gObjectEventPal_Gengar, OBJ_EVENT_PAL_TAG_GENGAR}, + {gObjectEventPal_Hypno, OBJ_EVENT_PAL_TAG_HYPNO}, + {gObjectEventPal_Kingler, OBJ_EVENT_PAL_TAG_KINGLER}, + {gObjectEventPal_Voltorb, OBJ_EVENT_PAL_TAG_VOLTORB}, + {gObjectEventPal_Exeggcute, OBJ_EVENT_PAL_TAG_EXEGGCUTE}, + {gObjectEventPal_Exeggutor, OBJ_EVENT_PAL_TAG_EXEGGUTOR}, + {gObjectEventPal_Cubone, OBJ_EVENT_PAL_TAG_CUBONE}, + {gObjectEventPal_Hitmonlee, OBJ_EVENT_PAL_TAG_HITMONLEE}, + {gObjectEventPal_Hitmonchan, OBJ_EVENT_PAL_TAG_HITMONCHAN}, + {gObjectEventPal_Lickitung, OBJ_EVENT_PAL_TAG_LICKITUNG}, + {gObjectEventPal_Koffing, OBJ_EVENT_PAL_TAG_KOFFING}, + {gObjectEventPal_Rhydon, OBJ_EVENT_PAL_TAG_RHYDON}, + {gObjectEventPal_Chansey, OBJ_EVENT_PAL_TAG_CHANSEY}, + {gObjectEventPal_Tangela, OBJ_EVENT_PAL_TAG_TANGELA}, + {gObjectEventPal_Kangaskhan, OBJ_EVENT_PAL_TAG_KANGASKHAN}, + {gObjectEventPal_Horsea, OBJ_EVENT_PAL_TAG_HORSEA}, + {gObjectEventPal_Seadra, OBJ_EVENT_PAL_TAG_SEADRA}, + {gObjectEventPal_Goldeen, OBJ_EVENT_PAL_TAG_GOLDEEN}, + {gObjectEventPal_Seaking, OBJ_EVENT_PAL_TAG_SEAKING}, + {gObjectEventPal_Starmie, OBJ_EVENT_PAL_TAG_STARMIE}, + {gObjectEventPal_Mr_Mime, OBJ_EVENT_PAL_TAG_MR_MIME}, + {gObjectEventPal_Scyther, OBJ_EVENT_PAL_TAG_SCYTHER}, + {gObjectEventPal_Jynx, OBJ_EVENT_PAL_TAG_JYNX}, + {gObjectEventPal_Magmar, OBJ_EVENT_PAL_TAG_MAGMAR}, + {gObjectEventPal_Pinsir, OBJ_EVENT_PAL_TAG_PINSIR}, + {gObjectEventPal_Tauros, OBJ_EVENT_PAL_TAG_TAUROS}, + {gObjectEventPal_Magikarp, OBJ_EVENT_PAL_TAG_MAGIKARP}, + {gObjectEventPal_Gyarados, OBJ_EVENT_PAL_TAG_GYARADOS}, + {gObjectEventPal_Lapras, OBJ_EVENT_PAL_TAG_LAPRAS}, + {gObjectEventPal_Eevee, OBJ_EVENT_PAL_TAG_EEVEE}, + {gObjectEventPal_Vaporeon, OBJ_EVENT_PAL_TAG_VAPOREON}, + {gObjectEventPal_Jolteon, OBJ_EVENT_PAL_TAG_JOLTEON}, + {gObjectEventPal_Flareon, OBJ_EVENT_PAL_TAG_FLAREON}, + {gObjectEventPal_Porygon, OBJ_EVENT_PAL_TAG_PORYGON}, + {gObjectEventPal_Omanyte, OBJ_EVENT_PAL_TAG_OMANYTE}, + {gObjectEventPal_Omastar, OBJ_EVENT_PAL_TAG_OMASTAR}, + {gObjectEventPal_Kabuto, OBJ_EVENT_PAL_TAG_KABUTO}, + {gObjectEventPal_Kabutops, OBJ_EVENT_PAL_TAG_KABUTOPS}, + {gObjectEventPal_Aerodactyl, OBJ_EVENT_PAL_TAG_AERODACTYL}, + {gObjectEventPal_Snorlax, OBJ_EVENT_PAL_TAG_SNORLAX}, + {gObjectEventPal_Articuno, OBJ_EVENT_PAL_TAG_ARTICUNO}, + {gObjectEventPal_Zapdos, OBJ_EVENT_PAL_TAG_ZAPDOS}, + {gObjectEventPal_Moltres, OBJ_EVENT_PAL_TAG_MOLTRES}, + {gObjectEventPal_Dratini, OBJ_EVENT_PAL_TAG_DRATINI}, + {gObjectEventPal_Dragonair, OBJ_EVENT_PAL_TAG_DRAGONAIR}, + {gObjectEventPal_Dragonite, OBJ_EVENT_PAL_TAG_DRAGONITE}, + {gObjectEventPal_Mewtwo, OBJ_EVENT_PAL_TAG_MEWTWO}, + {gObjectEventPal_Mew, OBJ_EVENT_PAL_TAG_MEW}, + {gObjectEventPal_Bayleef, OBJ_EVENT_PAL_TAG_BAYLEEF}, + {gObjectEventPal_Meganium, OBJ_EVENT_PAL_TAG_MEGANIUM}, + {gObjectEventPal_Cyndaquil, OBJ_EVENT_PAL_TAG_CYNDAQUIL}, + {gObjectEventPal_Quilava, OBJ_EVENT_PAL_TAG_QUILAVA}, + {gObjectEventPal_Typhlosion, OBJ_EVENT_PAL_TAG_TYPHLOSION}, + {gObjectEventPal_Totodile, OBJ_EVENT_PAL_TAG_TOTODILE}, + {gObjectEventPal_Croconaw, OBJ_EVENT_PAL_TAG_CROCONAW}, + {gObjectEventPal_Feraligatr, OBJ_EVENT_PAL_TAG_FERALIGATR}, + {gObjectEventPal_Sentret, OBJ_EVENT_PAL_TAG_SENTRET}, + {gObjectEventPal_Furret, OBJ_EVENT_PAL_TAG_FURRET}, + {gObjectEventPal_Hoothoot, OBJ_EVENT_PAL_TAG_HOOTHOOT}, + {gObjectEventPal_Noctowl, OBJ_EVENT_PAL_TAG_NOCTOWL}, + {gObjectEventPal_Ledyba, OBJ_EVENT_PAL_TAG_LEDYBA}, + {gObjectEventPal_Ledian, OBJ_EVENT_PAL_TAG_LEDIAN}, + {gObjectEventPal_Spinarak, OBJ_EVENT_PAL_TAG_SPINARAK}, + {gObjectEventPal_Ariados, OBJ_EVENT_PAL_TAG_ARIADOS}, + {gObjectEventPal_Crobat, OBJ_EVENT_PAL_TAG_CROBAT}, + {gObjectEventPal_Chinchou, OBJ_EVENT_PAL_TAG_CHINCHOU}, + {gObjectEventPal_Lanturn, OBJ_EVENT_PAL_TAG_LANTURN}, + {gObjectEventPal_Pichu, OBJ_EVENT_PAL_TAG_PICHU}, + {gObjectEventPal_Cleffa, OBJ_EVENT_PAL_TAG_CLEFFA}, + {gObjectEventPal_Igglybuff, OBJ_EVENT_PAL_TAG_IGGLYBUFF}, + {gObjectEventPal_Togepi, OBJ_EVENT_PAL_TAG_TOGEPI}, + {gObjectEventPal_Natu, OBJ_EVENT_PAL_TAG_NATU}, + {gObjectEventPal_Xatu, OBJ_EVENT_PAL_TAG_XATU}, + {gObjectEventPal_Mareep, OBJ_EVENT_PAL_TAG_MAREEP}, + {gObjectEventPal_Flaaffy, OBJ_EVENT_PAL_TAG_FLAAFFY}, + {gObjectEventPal_Ampharos, OBJ_EVENT_PAL_TAG_AMPHAROS}, + {gObjectEventPal_Bellossom, OBJ_EVENT_PAL_TAG_BELLOSSOM}, + {gObjectEventPal_Azumarill, OBJ_EVENT_PAL_TAG_AZUMARILL}, + {gObjectEventPal_Sudowoodo, OBJ_EVENT_PAL_TAG_SUDOWOODO}, + {gObjectEventPal_Politoed, OBJ_EVENT_PAL_TAG_POLITOED}, + {gObjectEventPal_Hoppip, OBJ_EVENT_PAL_TAG_HOPPIP}, + {gObjectEventPal_Skiploom, OBJ_EVENT_PAL_TAG_SKIPLOOM}, + {gObjectEventPal_Jumpluff, OBJ_EVENT_PAL_TAG_JUMPLUFF}, + {gObjectEventPal_Aipom, OBJ_EVENT_PAL_TAG_AIPOM}, + {gObjectEventPal_Sunkern, OBJ_EVENT_PAL_TAG_SUNKERN}, + {gObjectEventPal_Sunflora, OBJ_EVENT_PAL_TAG_SUNFLORA}, + {gObjectEventPal_Yanma, OBJ_EVENT_PAL_TAG_YANMA}, + {gObjectEventPal_Quagsire, OBJ_EVENT_PAL_TAG_QUAGSIRE}, + {gObjectEventPal_Espeon, OBJ_EVENT_PAL_TAG_ESPEON}, + {gObjectEventPal_Umbreon, OBJ_EVENT_PAL_TAG_UMBREON}, + {gObjectEventPal_Murkrow, OBJ_EVENT_PAL_TAG_MURKROW}, + {gObjectEventPal_Slowking, OBJ_EVENT_PAL_TAG_SLOWKING}, + {gObjectEventPal_Misdreavus, OBJ_EVENT_PAL_TAG_MISDREAVUS}, + {gObjectEventPal_Wobbuffet, OBJ_EVENT_PAL_TAG_WOBBUFFET}, + {gObjectEventPal_Girafarig, OBJ_EVENT_PAL_TAG_GIRAFARIG}, + {gObjectEventPal_Pineco, OBJ_EVENT_PAL_TAG_PINECO}, + {gObjectEventPal_Forretress, OBJ_EVENT_PAL_TAG_FORRETRESS}, + {gObjectEventPal_Dunsparce, OBJ_EVENT_PAL_TAG_DUNSPARCE}, + {gObjectEventPal_Gligar, OBJ_EVENT_PAL_TAG_GLIGAR}, + {gObjectEventPal_Snubbull, OBJ_EVENT_PAL_TAG_SNUBBULL}, + {gObjectEventPal_Granbull, OBJ_EVENT_PAL_TAG_GRANBULL}, + {gObjectEventPal_Qwilfish, OBJ_EVENT_PAL_TAG_QWILFISH}, + {gObjectEventPal_Scizor, OBJ_EVENT_PAL_TAG_SCIZOR}, + {gObjectEventPal_Shuckle, OBJ_EVENT_PAL_TAG_SHUCKLE}, + {gObjectEventPal_Heracross, OBJ_EVENT_PAL_TAG_HERACROSS}, + {gObjectEventPal_Sneasel, OBJ_EVENT_PAL_TAG_SNEASEL}, + {gObjectEventPal_Teddiursa, OBJ_EVENT_PAL_TAG_TEDDIURSA}, + {gObjectEventPal_Ursaring, OBJ_EVENT_PAL_TAG_URSARING}, + {gObjectEventPal_Magcargo, OBJ_EVENT_PAL_TAG_MAGCARGO}, + {gObjectEventPal_Swinub, OBJ_EVENT_PAL_TAG_SWINUB}, + {gObjectEventPal_Piloswine, OBJ_EVENT_PAL_TAG_PILOSWINE}, + {gObjectEventPal_Corsola, OBJ_EVENT_PAL_TAG_CORSOLA}, + {gObjectEventPal_Remoraid, OBJ_EVENT_PAL_TAG_REMORAID}, + {gObjectEventPal_Octillery, OBJ_EVENT_PAL_TAG_OCTILLERY}, + {gObjectEventPal_Delibird, OBJ_EVENT_PAL_TAG_DELIBIRD}, + {gObjectEventPal_Mantine, OBJ_EVENT_PAL_TAG_MANTINE}, + {gObjectEventPal_Skarmory, OBJ_EVENT_PAL_TAG_SKARMORY}, + {gObjectEventPal_Houndoom, OBJ_EVENT_PAL_TAG_HOUNDOOM}, + {gObjectEventPal_Kingdra, OBJ_EVENT_PAL_TAG_KINGDRA}, + {gObjectEventPal_Phanpy, OBJ_EVENT_PAL_TAG_PHANPY}, + {gObjectEventPal_Donphan, OBJ_EVENT_PAL_TAG_DONPHAN}, + {gObjectEventPal_Porygon2, OBJ_EVENT_PAL_TAG_PORYGON2}, + {gObjectEventPal_Stantler, OBJ_EVENT_PAL_TAG_STANTLER}, + {gObjectEventPal_Smeargle, OBJ_EVENT_PAL_TAG_SMEARGLE}, + {gObjectEventPal_Tyrogue, OBJ_EVENT_PAL_TAG_TYROGUE}, + {gObjectEventPal_Hitmontop, OBJ_EVENT_PAL_TAG_HITMONTOP}, + {gObjectEventPal_Smoochum, OBJ_EVENT_PAL_TAG_SMOOCHUM}, + {gObjectEventPal_Elekid, OBJ_EVENT_PAL_TAG_ELEKID}, + {gObjectEventPal_Magby, OBJ_EVENT_PAL_TAG_MAGBY}, + {gObjectEventPal_Miltank, OBJ_EVENT_PAL_TAG_MILTANK}, + {gObjectEventPal_Blissey, OBJ_EVENT_PAL_TAG_BLISSEY}, + {gObjectEventPal_Raikou, OBJ_EVENT_PAL_TAG_RAIKOU}, + {gObjectEventPal_Entei, OBJ_EVENT_PAL_TAG_ENTEI}, + {gObjectEventPal_Suicune, OBJ_EVENT_PAL_TAG_SUICUNE}, + {gObjectEventPal_Larvitar, OBJ_EVENT_PAL_TAG_LARVITAR}, + {gObjectEventPal_Tyranitar, OBJ_EVENT_PAL_TAG_TYRANITAR}, + {gObjectEventPal_Lugia_Follower, OBJ_EVENT_PAL_TAG_LUGIA_FOLLOWER}, + {gObjectEventPal_HoOh_Follower, OBJ_EVENT_PAL_TAG_HO_OH_FOLLOWER}, + {gObjectEventPal_Celebi, OBJ_EVENT_PAL_TAG_CELEBI}, + {gObjectEventPal_Treecko, OBJ_EVENT_PAL_TAG_TREECKO}, + {gObjectEventPal_Grovyle, OBJ_EVENT_PAL_TAG_GROVYLE}, + {gObjectEventPal_Sceptile, OBJ_EVENT_PAL_TAG_SCEPTILE}, + {gObjectEventPal_Combusken, OBJ_EVENT_PAL_TAG_COMBUSKEN}, + {gObjectEventPal_Blaziken, OBJ_EVENT_PAL_TAG_BLAZIKEN}, + {gObjectEventPal_Mudkip, OBJ_EVENT_PAL_TAG_MUDKIP}, + {gObjectEventPal_Marshtomp, OBJ_EVENT_PAL_TAG_MARSHTOMP}, + {gObjectEventPal_Swampert, OBJ_EVENT_PAL_TAG_SWAMPERT}, + {gObjectEventPal_Poochyena_Follower, OBJ_EVENT_PAL_TAG_POOCHYENA_FOLLOWER}, + {gObjectEventPal_Mightyena, OBJ_EVENT_PAL_TAG_MIGHTYENA}, + {gObjectEventPal_Zigzagoon_Follower, OBJ_EVENT_PAL_TAG_ZIGZAGOON_FOLLOWER}, + {gObjectEventPal_Linoone, OBJ_EVENT_PAL_TAG_LINOONE}, + {gObjectEventPal_Wurmple, OBJ_EVENT_PAL_TAG_WURMPLE}, + {gObjectEventPal_Beautifly, OBJ_EVENT_PAL_TAG_BEAUTIFLY}, + {gObjectEventPal_Cascoon, OBJ_EVENT_PAL_TAG_CASCOON}, + {gObjectEventPal_Dustox, OBJ_EVENT_PAL_TAG_DUSTOX}, + {gObjectEventPal_Lotad, OBJ_EVENT_PAL_TAG_LOTAD}, + {gObjectEventPal_Lombre, OBJ_EVENT_PAL_TAG_LOMBRE}, + {gObjectEventPal_Ludicolo, OBJ_EVENT_PAL_TAG_LUDICOLO}, + {gObjectEventPal_Seedot, OBJ_EVENT_PAL_TAG_SEEDOT}, + {gObjectEventPal_Nuzleaf, OBJ_EVENT_PAL_TAG_NUZLEAF}, + {gObjectEventPal_Shiftry, OBJ_EVENT_PAL_TAG_SHIFTRY}, + {gObjectEventPal_Taillow, OBJ_EVENT_PAL_TAG_TAILLOW}, + {gObjectEventPal_Swellow, OBJ_EVENT_PAL_TAG_SWELLOW}, + {gObjectEventPal_Wingull, OBJ_EVENT_PAL_TAG_WINGULL}, + {gObjectEventPal_Pelipper, OBJ_EVENT_PAL_TAG_PELIPPER}, + {gObjectEventPal_Gardevoir, OBJ_EVENT_PAL_TAG_GARDEVOIR}, + {gObjectEventPal_Surskit, OBJ_EVENT_PAL_TAG_SURSKIT}, + {gObjectEventPal_Masquerain, OBJ_EVENT_PAL_TAG_MASQUERAIN}, + {gObjectEventPal_Shroomish, OBJ_EVENT_PAL_TAG_SHROOMISH}, + {gObjectEventPal_Breloom, OBJ_EVENT_PAL_TAG_BRELOOM}, + {gObjectEventPal_Slakoth, OBJ_EVENT_PAL_TAG_SLAKOTH}, + {gObjectEventPal_Vigoroth_Follower, OBJ_EVENT_PAL_TAG_VIGOROTH_FOLLOWER}, + {gObjectEventPal_Slaking, OBJ_EVENT_PAL_TAG_SLAKING}, + {gObjectEventPal_Nincada, OBJ_EVENT_PAL_TAG_NINCADA}, + {gObjectEventPal_Ninjask, OBJ_EVENT_PAL_TAG_NINJASK}, + {gObjectEventPal_Shedinja, OBJ_EVENT_PAL_TAG_SHEDINJA}, + {gObjectEventPal_Whismur, OBJ_EVENT_PAL_TAG_WHISMUR}, + {gObjectEventPal_Exploud, OBJ_EVENT_PAL_TAG_EXPLOUD}, + {gObjectEventPal_Makuhita, OBJ_EVENT_PAL_TAG_MAKUHITA}, + {gObjectEventPal_Hariyama, OBJ_EVENT_PAL_TAG_HARIYAMA}, + {gObjectEventPal_Azurill_Follower, OBJ_EVENT_PAL_TAG_AZURILL_FOLLOWER}, + {gObjectEventPal_Nosepass, OBJ_EVENT_PAL_TAG_NOSEPASS}, + {gObjectEventPal_Delcatty, OBJ_EVENT_PAL_TAG_DELCATTY}, + {gObjectEventPal_Sableye, OBJ_EVENT_PAL_TAG_SABLEYE}, + {gObjectEventPal_Mawile, OBJ_EVENT_PAL_TAG_MAWILE}, + {gObjectEventPal_Lairon, OBJ_EVENT_PAL_TAG_LAIRON}, + {gObjectEventPal_Aggron, OBJ_EVENT_PAL_TAG_AGGRON}, + {gObjectEventPal_Meditite, OBJ_EVENT_PAL_TAG_MEDITITE}, + {gObjectEventPal_Medicham, OBJ_EVENT_PAL_TAG_MEDICHAM}, + {gObjectEventPal_Electrike, OBJ_EVENT_PAL_TAG_ELECTRIKE}, + {gObjectEventPal_Manectric, OBJ_EVENT_PAL_TAG_MANECTRIC}, + {gObjectEventPal_Minun, OBJ_EVENT_PAL_TAG_MINUN}, + {gObjectEventPal_Volbeat, OBJ_EVENT_PAL_TAG_VOLBEAT}, + {gObjectEventPal_Illumise, OBJ_EVENT_PAL_TAG_ILLUMISE}, + {gObjectEventPal_Roselia, OBJ_EVENT_PAL_TAG_ROSELIA}, + {gObjectEventPal_Gulpin, OBJ_EVENT_PAL_TAG_GULPIN}, + {gObjectEventPal_Swalot, OBJ_EVENT_PAL_TAG_SWALOT}, + {gObjectEventPal_Carvanha, OBJ_EVENT_PAL_TAG_CARVANHA}, + {gObjectEventPal_Sharpedo, OBJ_EVENT_PAL_TAG_SHARPEDO}, + {gObjectEventPal_Wailmer, OBJ_EVENT_PAL_TAG_WAILMER}, + {gObjectEventPal_Wailord, OBJ_EVENT_PAL_TAG_WAILORD}, + {gObjectEventPal_Numel, OBJ_EVENT_PAL_TAG_NUMEL}, + {gObjectEventPal_Camerupt, OBJ_EVENT_PAL_TAG_CAMERUPT}, + {gObjectEventPal_Torkoal, OBJ_EVENT_PAL_TAG_TORKOAL}, + {gObjectEventPal_Spoink, OBJ_EVENT_PAL_TAG_SPOINK}, + {gObjectEventPal_Grumpig, OBJ_EVENT_PAL_TAG_GRUMPIG}, + {gObjectEventPal_Spinda, OBJ_EVENT_PAL_TAG_SPINDA}, + {gObjectEventPal_Trapinch, OBJ_EVENT_PAL_TAG_TRAPINCH}, + {gObjectEventPal_Vibrava, OBJ_EVENT_PAL_TAG_VIBRAVA}, + {gObjectEventPal_Flygon, OBJ_EVENT_PAL_TAG_FLYGON}, + {gObjectEventPal_Cacnea, OBJ_EVENT_PAL_TAG_CACNEA}, + {gObjectEventPal_Altaria, OBJ_EVENT_PAL_TAG_ALTARIA}, + {gObjectEventPal_Zangoose, OBJ_EVENT_PAL_TAG_ZANGOOSE}, + {gObjectEventPal_Seviper, OBJ_EVENT_PAL_TAG_SEVIPER}, + {gObjectEventPal_Solrock, OBJ_EVENT_PAL_TAG_SOLROCK}, + {gObjectEventPal_Barboach, OBJ_EVENT_PAL_TAG_BARBOACH}, + {gObjectEventPal_Whiscash, OBJ_EVENT_PAL_TAG_WHISCASH}, + {gObjectEventPal_Corphish, OBJ_EVENT_PAL_TAG_CORPHISH}, + {gObjectEventPal_Crawdaunt, OBJ_EVENT_PAL_TAG_CRAWDAUNT}, + {gObjectEventPal_Baltoy, OBJ_EVENT_PAL_TAG_BALTOY}, + {gObjectEventPal_Claydol, OBJ_EVENT_PAL_TAG_CLAYDOL}, + {gObjectEventPal_Lileep, OBJ_EVENT_PAL_TAG_LILEEP}, + {gObjectEventPal_Cradily, OBJ_EVENT_PAL_TAG_CRADILY}, + {gObjectEventPal_Anorith, OBJ_EVENT_PAL_TAG_ANORITH}, + {gObjectEventPal_Armaldo, OBJ_EVENT_PAL_TAG_ARMALDO}, + {gObjectEventPal_Feebas, OBJ_EVENT_PAL_TAG_FEEBAS}, + {gObjectEventPal_Milotic, OBJ_EVENT_PAL_TAG_MILOTIC}, + {gObjectEventPal_Kecleon, OBJ_EVENT_PAL_TAG_KECLEON}, + {gObjectEventPal_Banette, OBJ_EVENT_PAL_TAG_BANETTE}, + {gObjectEventPal_Duskull, OBJ_EVENT_PAL_TAG_DUSKULL}, + {gObjectEventPal_Dusclops, OBJ_EVENT_PAL_TAG_DUSCLOPS}, + {gObjectEventPal_Tropius, OBJ_EVENT_PAL_TAG_TROPIUS}, + {gObjectEventPal_Chimecho, OBJ_EVENT_PAL_TAG_CHIMECHO}, + {gObjectEventPal_Absol, OBJ_EVENT_PAL_TAG_ABSOL}, + {gObjectEventPal_Wynaut, OBJ_EVENT_PAL_TAG_WYNAUT}, + {gObjectEventPal_Snorunt, OBJ_EVENT_PAL_TAG_SNORUNT}, + {gObjectEventPal_Glalie, OBJ_EVENT_PAL_TAG_GLALIE}, + {gObjectEventPal_Spheal, OBJ_EVENT_PAL_TAG_SPHEAL}, + {gObjectEventPal_Sealeo, OBJ_EVENT_PAL_TAG_SEALEO}, + {gObjectEventPal_Walrein, OBJ_EVENT_PAL_TAG_WALREIN}, + {gObjectEventPal_Clamperl, OBJ_EVENT_PAL_TAG_CLAMPERL}, + {gObjectEventPal_Huntail, OBJ_EVENT_PAL_TAG_HUNTAIL}, + {gObjectEventPal_Gorebyss, OBJ_EVENT_PAL_TAG_GOREBYSS}, + {gObjectEventPal_Relicanth, OBJ_EVENT_PAL_TAG_RELICANTH}, + {gObjectEventPal_Luvdisc, OBJ_EVENT_PAL_TAG_LUVDISC}, + {gObjectEventPal_Bagon, OBJ_EVENT_PAL_TAG_BAGON}, + {gObjectEventPal_Shelgon, OBJ_EVENT_PAL_TAG_SHELGON}, + {gObjectEventPal_Salamence, OBJ_EVENT_PAL_TAG_SALAMENCE}, + {gObjectEventPal_Beldum, OBJ_EVENT_PAL_TAG_BELDUM}, + {gObjectEventPal_Metang, OBJ_EVENT_PAL_TAG_METANG}, + {gObjectEventPal_Regirock, OBJ_EVENT_PAL_TAG_REGIROCK}, + {gObjectEventPal_Regice, OBJ_EVENT_PAL_TAG_REGICE}, + {gObjectEventPal_Registeel, OBJ_EVENT_PAL_TAG_REGISTEEL}, + {gObjectEventPal_Latias, OBJ_EVENT_PAL_TAG_LATIAS}, + {gObjectEventPal_Latios, OBJ_EVENT_PAL_TAG_LATIOS}, + {gObjectEventPal_Kyogre_Follower, OBJ_EVENT_PAL_TAG_KYOGRE_FOLLOWER}, + {gObjectEventPal_Groudon_Follower, OBJ_EVENT_PAL_TAG_GROUDON_FOLLOWER}, + {gObjectEventPal_Rayquaza, OBJ_EVENT_PAL_TAG_RAYQUAZA}, + {gObjectEventPal_Jirachi, OBJ_EVENT_PAL_TAG_JIRACHI}, + {gObjectEventPal_Deoxys_Follower, OBJ_EVENT_PAL_TAG_DEOXYS_FOLLOWER}, + {gObjectEventPal_GreatBall, OBJ_EVENT_PAL_TAG_GREAT_BALL}, + {gObjectEventPal_UltraBall, OBJ_EVENT_PAL_TAG_ULTRA_BALL}, + {gObjectEventPal_MasterBall, OBJ_EVENT_PAL_TAG_MASTER_BALL}, + {gObjectEventPal_SafariBall, OBJ_EVENT_PAL_TAG_SAFARI_BALL}, + {gObjectEventPal_NetBall, OBJ_EVENT_PAL_TAG_NET_BALL}, + {gObjectEventPal_DiveBall, OBJ_EVENT_PAL_TAG_DIVE_BALL}, + {gObjectEventPal_NestBall, OBJ_EVENT_PAL_TAG_NEST_BALL}, + {gObjectEventPal_RepeatBall, OBJ_EVENT_PAL_TAG_REPEAT_BALL}, + {gObjectEventPal_TimerBall, OBJ_EVENT_PAL_TAG_TIMER_BALL}, + {gObjectEventPal_LuxuryBall, OBJ_EVENT_PAL_TAG_LUXURY_BALL}, + {gObjectEventPal_PremierBall, OBJ_EVENT_PAL_TAG_PREMIER_BALL}, + {gObjectEventPal_HealBall, OBJ_EVENT_PAL_TAG_HEAL_BALL}, + {gObjectEventPal_DuskBall, OBJ_EVENT_PAL_TAG_DUSK_BALL}, + {gObjectEventPal_QuickBall, OBJ_EVENT_PAL_TAG_QUICK_BALL}, + {gObjectEventPal_LevelBall, OBJ_EVENT_PAL_TAG_LEVEL_BALL}, + {gObjectEventPal_LureBall, OBJ_EVENT_PAL_TAG_LURE_BALL}, + {gObjectEventPal_MoonBall, OBJ_EVENT_PAL_TAG_MOON_BALL}, + {gObjectEventPal_FriendBall, OBJ_EVENT_PAL_TAG_FRIEND_BALL}, + {gObjectEventPal_LoveBall, OBJ_EVENT_PAL_TAG_LOVE_BALL}, + {gObjectEventPal_FastBall, OBJ_EVENT_PAL_TAG_FAST_BALL}, + {gObjectEventPal_HeavyBall, OBJ_EVENT_PAL_TAG_HEAVY_BALL}, + {gObjectEventPal_DreamBall, OBJ_EVENT_PAL_TAG_DREAM_BALL}, + {gObjectEventPal_SportBall, OBJ_EVENT_PAL_TAG_SPORT_BALL}, + {gObjectEventPal_ParkBall, OBJ_EVENT_PAL_TAG_PARK_BALL}, + {gObjectEventPal_CherishBall, OBJ_EVENT_PAL_TAG_CHERISH_BALL}, + {gFieldEffectPal_SmallSparkle, FLDEFF_PAL_TAG_SMALL_SPARKLE}, #ifdef BUGFIX - {NULL, OBJ_EVENT_PAL_TAG_NONE}, + {NULL, OBJ_EVENT_PAL_TAG_NONE}, #else {}, // BUG: FindObjectEventPaletteIndexByTag looks for OBJ_EVENT_PAL_TAG_NONE and not 0x0. // If it's looking for a tag that isn't in this table, the game locks in an infinite loop. #endif }; -static const u16 sReflectionPaletteTags_Brendan[] = { - OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, -}; - -static const u16 sReflectionPaletteTags_May[] = { - OBJ_EVENT_PAL_TAG_MAY_REFLECTION, - OBJ_EVENT_PAL_TAG_MAY_REFLECTION, - OBJ_EVENT_PAL_TAG_MAY_REFLECTION, - OBJ_EVENT_PAL_TAG_MAY_REFLECTION, -}; - -static const u16 sReflectionPaletteTags_PlayerUnderwater[] = { - OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, - OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, - OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, - OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, -}; - -static const struct PairedPalettes sPlayerReflectionPaletteSets[] = { - {OBJ_EVENT_PAL_TAG_BRENDAN, sReflectionPaletteTags_Brendan}, - {OBJ_EVENT_PAL_TAG_MAY, sReflectionPaletteTags_May}, - {OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, sReflectionPaletteTags_PlayerUnderwater}, - {OBJ_EVENT_PAL_TAG_NONE, NULL}, -}; - -static const u16 sReflectionPaletteTags_QuintyPlump[] = { - OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION, - OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION, - OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION, - OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION, -}; - -static const u16 sReflectionPaletteTags_Truck[] = { - OBJ_EVENT_PAL_TAG_TRUCK, - OBJ_EVENT_PAL_TAG_TRUCK, - OBJ_EVENT_PAL_TAG_TRUCK, - OBJ_EVENT_PAL_TAG_TRUCK, -}; - -static const u16 sReflectionPaletteTags_VigorothMover[] = { - OBJ_EVENT_PAL_TAG_VIGOROTH, - OBJ_EVENT_PAL_TAG_VIGOROTH, - OBJ_EVENT_PAL_TAG_VIGOROTH, - OBJ_EVENT_PAL_TAG_VIGOROTH, -}; - -static const u16 sReflectionPaletteTags_MovingBox[] = { - OBJ_EVENT_PAL_TAG_MOVING_BOX, - OBJ_EVENT_PAL_TAG_MOVING_BOX, - OBJ_EVENT_PAL_TAG_MOVING_BOX, - OBJ_EVENT_PAL_TAG_MOVING_BOX, -}; - -static const u16 sReflectionPaletteTags_CableCar[] = { - OBJ_EVENT_PAL_TAG_CABLE_CAR, - OBJ_EVENT_PAL_TAG_CABLE_CAR, - OBJ_EVENT_PAL_TAG_CABLE_CAR, - OBJ_EVENT_PAL_TAG_CABLE_CAR, -}; - -static const u16 sReflectionPaletteTags_SSTidal[] = { - OBJ_EVENT_PAL_TAG_SSTIDAL, - OBJ_EVENT_PAL_TAG_SSTIDAL, - OBJ_EVENT_PAL_TAG_SSTIDAL, - OBJ_EVENT_PAL_TAG_SSTIDAL, -}; - -static const u16 sReflectionPaletteTags_SubmarineShadow[] = { - OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, - OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, - OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, - OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, -}; - -static const u16 sReflectionPaletteTags_Kyogre[] = { - OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION, - OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION, - OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION, - OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION, -}; - -static const u16 sReflectionPaletteTags_Groudon[] = { - OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION, - OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION, - OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION, - OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION, -}; - -static const u16 sReflectionPaletteTags_Npc3[] = { // Only used by the Route 120 bridge Kecleon - OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, -}; - -static const u16 sReflectionPaletteTags_RedLeaf[] = { - OBJ_EVENT_PAL_TAG_RED_LEAF, - OBJ_EVENT_PAL_TAG_RED_LEAF, - OBJ_EVENT_PAL_TAG_RED_LEAF, - OBJ_EVENT_PAL_TAG_RED_LEAF, -}; - -static const struct PairedPalettes sSpecialObjectReflectionPaletteSets[] = { - {OBJ_EVENT_PAL_TAG_BRENDAN, sReflectionPaletteTags_Brendan}, - {OBJ_EVENT_PAL_TAG_MAY, sReflectionPaletteTags_May}, - {OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, sReflectionPaletteTags_QuintyPlump}, - {OBJ_EVENT_PAL_TAG_TRUCK, sReflectionPaletteTags_Truck}, - {OBJ_EVENT_PAL_TAG_VIGOROTH, sReflectionPaletteTags_VigorothMover}, - {OBJ_EVENT_PAL_TAG_MOVING_BOX, sReflectionPaletteTags_MovingBox}, - {OBJ_EVENT_PAL_TAG_CABLE_CAR, sReflectionPaletteTags_CableCar}, - {OBJ_EVENT_PAL_TAG_SSTIDAL, sReflectionPaletteTags_SSTidal}, - {OBJ_EVENT_PAL_TAG_KYOGRE, sReflectionPaletteTags_Kyogre}, - {OBJ_EVENT_PAL_TAG_GROUDON, sReflectionPaletteTags_Groudon}, - {OBJ_EVENT_PAL_TAG_NPC_3, sReflectionPaletteTags_Npc3}, - {OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, sReflectionPaletteTags_SubmarineShadow}, - {OBJ_EVENT_PAL_TAG_RED_LEAF, sReflectionPaletteTags_RedLeaf}, - {OBJ_EVENT_PAL_TAG_NONE, NULL}, -}; - -static const u16 sObjectPaletteTags0[] = { - [PALSLOT_PLAYER] = OBJ_EVENT_PAL_TAG_BRENDAN, - [PALSLOT_PLAYER_REFLECTION] = OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - [PALSLOT_NPC_1] = OBJ_EVENT_PAL_TAG_NPC_1, - [PALSLOT_NPC_2] = OBJ_EVENT_PAL_TAG_NPC_2, - [PALSLOT_NPC_3] = OBJ_EVENT_PAL_TAG_NPC_3, - [PALSLOT_NPC_4] = OBJ_EVENT_PAL_TAG_NPC_4, - [PALSLOT_NPC_1_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION, - [PALSLOT_NPC_2_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION, - [PALSLOT_NPC_3_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - [PALSLOT_NPC_4_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION, -}; - -static const u16 sObjectPaletteTags1[] = { - [PALSLOT_PLAYER] = OBJ_EVENT_PAL_TAG_BRENDAN, - [PALSLOT_PLAYER_REFLECTION] = OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - [PALSLOT_NPC_1] = OBJ_EVENT_PAL_TAG_NPC_1, - [PALSLOT_NPC_2] = OBJ_EVENT_PAL_TAG_NPC_2, - [PALSLOT_NPC_3] = OBJ_EVENT_PAL_TAG_NPC_3, - [PALSLOT_NPC_4] = OBJ_EVENT_PAL_TAG_NPC_4, - [PALSLOT_NPC_1_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION, - [PALSLOT_NPC_2_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION, - [PALSLOT_NPC_3_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - [PALSLOT_NPC_4_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION, -}; - -static const u16 sObjectPaletteTags2[] = { - [PALSLOT_PLAYER] = OBJ_EVENT_PAL_TAG_BRENDAN, - [PALSLOT_PLAYER_REFLECTION] = OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - [PALSLOT_NPC_1] = OBJ_EVENT_PAL_TAG_NPC_1, - [PALSLOT_NPC_2] = OBJ_EVENT_PAL_TAG_NPC_2, - [PALSLOT_NPC_3] = OBJ_EVENT_PAL_TAG_NPC_3, - [PALSLOT_NPC_4] = OBJ_EVENT_PAL_TAG_NPC_4, - [PALSLOT_NPC_1_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION, - [PALSLOT_NPC_2_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION, - [PALSLOT_NPC_3_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - [PALSLOT_NPC_4_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION, -}; - -static const u16 sObjectPaletteTags3[] = { - [PALSLOT_PLAYER] = OBJ_EVENT_PAL_TAG_BRENDAN, - [PALSLOT_PLAYER_REFLECTION] = OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION, - [PALSLOT_NPC_1] = OBJ_EVENT_PAL_TAG_NPC_1, - [PALSLOT_NPC_2] = OBJ_EVENT_PAL_TAG_NPC_2, - [PALSLOT_NPC_3] = OBJ_EVENT_PAL_TAG_NPC_3, - [PALSLOT_NPC_4] = OBJ_EVENT_PAL_TAG_NPC_4, - [PALSLOT_NPC_1_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION, - [PALSLOT_NPC_2_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION, - [PALSLOT_NPC_3_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION, - [PALSLOT_NPC_4_REFLECTION] = OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION, -}; - -static const u16 *const sObjectPaletteTagSets[] = { - sObjectPaletteTags0, - sObjectPaletteTags1, - sObjectPaletteTags2, - sObjectPaletteTags3, -}; - #include "data/object_events/berry_tree_graphics_tables.h" #include "data/field_effects/field_effect_objects.h" @@ -1217,7 +1750,9 @@ u8 GetFirstInactiveObjectEventId(void) u8 GetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId) { - if (localId < OBJ_EVENT_ID_PLAYER) + if (localId == OBJ_EVENT_ID_FOLLOWER) + return GetFollowerObjectId(); + else if (localId < OBJ_EVENT_ID_PLAYER) return GetObjectEventIdByLocalIdAndMapInternal(localId, mapNum, mapGroupId); return GetObjectEventIdByLocalId(localId); @@ -1268,7 +1803,7 @@ static u8 GetObjectEventIdByLocalId(u8 localId) return OBJECT_EVENTS_COUNT; } -static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, u8 mapNum, u8 mapGroup) +static u8 InitObjectEventStateFromTemplate(const struct ObjectEventTemplate *template, u8 mapNum, u8 mapGroup) { struct ObjectEvent *objectEvent; u8 objectEventId; @@ -1364,7 +1899,7 @@ static bool8 GetAvailableObjectEventId(u16 localId, u8 mapNum, u8 mapGroup, u8 * return FALSE; } -static void RemoveObjectEvent(struct ObjectEvent *objectEvent) +void RemoveObjectEvent(struct ObjectEvent *objectEvent) { objectEvent->active = FALSE; RemoveObjectEventInternal(objectEvent); @@ -1382,10 +1917,13 @@ void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) static void RemoveObjectEventInternal(struct ObjectEvent *objectEvent) { + u8 paletteNum; struct SpriteFrameImage image; image.size = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->size; gSprites[objectEvent->spriteId].images = ℑ + paletteNum = gSprites[objectEvent->spriteId].oam.paletteNum; DestroySprite(&gSprites[objectEvent->spriteId]); + FieldEffectFreePaletteIfUnused(paletteNum); } void RemoveAllObjectEventsExceptPlayer(void) @@ -1399,7 +1937,7 @@ void RemoveAllObjectEventsExceptPlayer(void) } } -static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) +static u8 TrySetupObjectEventSprite(const struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) { u8 spriteId; u8 paletteSlot; @@ -1414,25 +1952,15 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl objectEvent = &gObjectEvents[objectEventId]; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - paletteSlot = graphicsInfo->paletteSlot; - if (paletteSlot == PALSLOT_PLAYER) + if (spriteTemplate->paletteTag != 0xFFFF) { - LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteSlot); - } - else if (paletteSlot == PALSLOT_NPC_SPECIAL) - { - LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteSlot); - } - else if (paletteSlot >= 16) - { - paletteSlot -= 16; - _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot); + LoadObjectEventPalette(spriteTemplate->paletteTag); + UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate->paletteTag), COLOR_MAP_CONTRAST); } if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE) objectEvent->invisible = TRUE; - *(u16 *)&spriteTemplate->paletteTag = TAG_NONE; spriteId = CreateSprite(spriteTemplate, 0, 0, 0); if (spriteId == MAX_SPRITES) { @@ -1446,7 +1974,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); sprite->x += 8; sprite->y += 16 + sprite->centerToCornerVecY; - sprite->oam.paletteNum = paletteSlot; + sprite->oam.paletteNum = IndexOfSpritePaletteTag(spriteTemplate->paletteTag); sprite->coordOffsetEnabled = TRUE; sprite->sObjEventId = objectEventId; objectEvent->spriteId = spriteId; @@ -1459,7 +1987,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl return objectEventId; } -static u8 TrySpawnObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) +u8 TrySpawnObjectEventTemplate(const struct ObjectEventTemplate *objectEventTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) { u8 objectEventId; struct SpriteTemplate spriteTemplate; @@ -1491,7 +2019,7 @@ u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *objectEventTemplate) return TrySpawnObjectEventTemplate(objectEventTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); } -u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation) +u8 SpawnSpecialObjectEventParameterized(u16 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation) { struct ObjectEventTemplate objectEventTemplate; @@ -1513,7 +2041,7 @@ u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 l u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup) { - struct ObjectEventTemplate *objectEventTemplate; + const struct ObjectEventTemplate *objectEventTemplate; s16 cameraX, cameraY; objectEventTemplate = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup); @@ -1543,7 +2071,7 @@ static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphics CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, sMovementTypeCallbacks[movementType], spriteTemplate, subspriteTables); } -static void MakeSpriteTemplateFromObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +static void MakeSpriteTemplateFromObjectEventTemplate(const struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEventTemplate->graphicsId, objectEventTemplate->movementType, spriteTemplate, subspriteTables); } @@ -1581,7 +2109,7 @@ u8 CreateObjectGraphicsSprite(u16 graphicsId, void (*callback)(struct Sprite *), // A unique id is given as an argument and stored in the sprite data to allow referring back to the same virtual object. // They can be turned (and, in the case of the Union Room, animated teleporting in and out) but do not have movement types // or any of the other data normally associated with object events. -u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction) +u8 CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction) { u8 spriteId; struct Sprite *sprite; @@ -1591,7 +2119,11 @@ u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevatio graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCB_VirtualObject, &spriteTemplate, &subspriteTables); - *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; + if (spriteTemplate.paletteTag != 0xFFFF) + { + LoadObjectEventPalette(spriteTemplate.paletteTag); + UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate.paletteTag), COLOR_MAP_CONTRAST); + } x += MAP_OFFSET; y += MAP_OFFSET; SetSpritePosToOffsetMapCoords(&x, &y, 8, 16); @@ -1602,18 +2134,10 @@ u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevatio sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); sprite->y += sprite->centerToCornerVecY; - sprite->oam.paletteNum = graphicsInfo->paletteSlot; - if (sprite->oam.paletteNum >= 16) - sprite->oam.paletteNum -= 16; - + sprite->oam.paletteNum = IndexOfSpritePaletteTag(spriteTemplate.paletteTag); sprite->coordOffsetEnabled = TRUE; sprite->sVirtualObjId = virtualObjId; sprite->sVirtualObjElev = elevation; - if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) - LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - else if (graphicsInfo->paletteSlot >= 16) - _PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0); - if (subspriteTables != NULL) { SetSubspriteTables(sprite, subspriteTables); @@ -1674,7 +2198,7 @@ void RemoveObjectEventsOutsideView(void) { struct ObjectEvent *objectEvent = &gObjectEvents[i]; - if (objectEvent->active && !objectEvent->isPlayer) + if (objectEvent->active && !objectEvent->isPlayer && i != GetFollowerObjectId()) RemoveObjectEventIfOutsideView(objectEvent); } } @@ -1712,7 +2236,6 @@ void SpawnObjectEventsOnReturnToField(s16 x, s16 y) static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) { u8 i; - u8 paletteSlot; struct Sprite *sprite; struct ObjectEvent *objectEvent; struct SpriteTemplate spriteTemplate; @@ -1732,23 +2255,11 @@ static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) spriteFrameImage.size = graphicsInfo->size; CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); spriteTemplate.images = &spriteFrameImage; - - *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; - paletteSlot = graphicsInfo->paletteSlot; - if (paletteSlot == PALSLOT_PLAYER) + if (spriteTemplate.paletteTag != 0xFFFF) { - LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); + LoadObjectEventPalette(spriteTemplate.paletteTag); + UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate.paletteTag), COLOR_MAP_CONTRAST); } - else if (paletteSlot == PALSLOT_NPC_SPECIAL) - { - LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - else if (paletteSlot >= 16) - { - paletteSlot -= 16; - _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot); - } - *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; i = CreateSprite(&spriteTemplate, 0, 0, 0); if (i != MAX_SPRITES) @@ -1768,7 +2279,7 @@ static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) if (subspriteTables != NULL) SetSubspriteTables(sprite, subspriteTables); - sprite->oam.paletteNum = paletteSlot; + sprite->oam.paletteNum = IndexOfSpritePaletteTag(spriteTemplate.paletteTag); sprite->coordOffsetEnabled = TRUE; sprite->sObjEventId = objectEventId; objectEvent->spriteId = i; @@ -1801,7 +2312,7 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8 objectEventId, u8 spriteI SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, PLAYER_AVATAR_FLAG_CONTROLLABLE); } -void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) +void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u16 graphicsId) { const struct ObjectEventGraphicsInfo *graphicsInfo; struct Sprite *sprite; @@ -1809,26 +2320,17 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); sprite = &gSprites[objectEvent->spriteId]; - paletteSlot = graphicsInfo->paletteSlot; - if (paletteSlot == PALSLOT_PLAYER) + if (graphicsInfo->paletteTag != 0xFFFF) { - PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - else if (paletteSlot == PALSLOT_NPC_SPECIAL) - { - LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - else if (paletteSlot >= 16) - { - paletteSlot -= 16; - _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot); + LoadObjectEventPalette(graphicsInfo->paletteTag); + UpdatePaletteGammaType(IndexOfSpritePaletteTag(graphicsInfo->paletteTag), COLOR_MAP_CONTRAST); } sprite->oam.shape = graphicsInfo->oam->shape; sprite->oam.size = graphicsInfo->oam->size; sprite->images = graphicsInfo->images; sprite->anims = graphicsInfo->anims; sprite->subspriteTables = graphicsInfo->subspriteTables; - sprite->oam.paletteNum = paletteSlot; + sprite->oam.paletteNum = IndexOfSpritePaletteTag(graphicsInfo->paletteTag); objectEvent->inanimate = graphicsInfo->inanimate; objectEvent->graphicsId = graphicsId; SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->x, &sprite->y); @@ -1840,7 +2342,7 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) CameraObjectReset1(); } -void ObjectEventSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId) +void ObjectEventSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u16 graphicsId) { u8 objectEventId; @@ -1888,14 +2390,16 @@ static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, struct Sprite if (berryId > ITEM_TO_BERRY(LAST_BERRY_INDEX)) berryId = 0; + LoadObjectEventPalette(gBerryTreePaletteTagTablePointers[berryId][berryStage]); ObjectEventSetGraphicsId(objectEvent, gBerryTreeObjectEventGraphicsIdTablePointers[berryId][berryStage]); sprite->images = gBerryTreePicTablePointers[berryId]; - sprite->oam.paletteNum = gBerryTreePaletteSlotTablePointers[berryId][berryStage]; + sprite->oam.paletteNum = IndexOfSpritePaletteTag(gBerryTreePaletteTagTablePointers[berryId][berryStage]); + UpdatePaletteGammaType(sprite->oam.paletteNum, COLOR_MAP_CONTRAST); StartSpriteAnim(sprite, berryStage); } } -const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId) +const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u16 graphicsId) { u8 bard; @@ -1995,7 +2499,7 @@ void FreeAndReserveObjectSpritePalettes(void) gReservedSpritePaletteCount = OBJ_PALSLOT_COUNT; } -static void LoadObjectEventPalette(u16 paletteTag) +void LoadObjectEventPalette(u16 paletteTag) { u16 i = FindObjectEventPaletteIndexByTag(paletteTag); @@ -2027,8 +2531,7 @@ static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *spritePalette void PatchObjectPalette(u16 paletteTag, u8 paletteSlot) { - // paletteTag is assumed to exist in sObjectEventSpritePalettes - u8 paletteIndex = FindObjectEventPaletteIndexByTag(paletteTag); + u16 paletteIndex = FindObjectEventPaletteIndexByTag(paletteTag); LoadPalette(sObjectEventSpritePalettes[paletteIndex].data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } @@ -2043,9 +2546,9 @@ void PatchObjectPaletteRange(const u16 *paletteTags, u8 minSlot, u8 maxSlot) } } -static u8 FindObjectEventPaletteIndexByTag(u16 tag) +static u16 FindObjectEventPaletteIndexByTag(u16 tag) { - u8 i; + u16 i; for (i = 0; sObjectEventSpritePalettes[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++) { @@ -2055,37 +2558,6 @@ static u8 FindObjectEventPaletteIndexByTag(u16 tag) return 0xFF; } -void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot) -{ - u8 i; - - PatchObjectPalette(tag, slot); - for (i = 0; sPlayerReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++) - { - if (sPlayerReflectionPaletteSets[i].tag == tag) - { - PatchObjectPalette(sPlayerReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]); - return; - } - } -} - -void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot) -{ - u8 i; - - sCurrentSpecialObjectPaletteTag = tag; - PatchObjectPalette(tag, slot); - for (i = 0; sSpecialObjectReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++) - { - if (sSpecialObjectReflectionPaletteSets[i].tag == tag) - { - PatchObjectPalette(sSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]); - return; - } - } -} - static void _PatchObjectPalette(u16 tag, u8 slot) { PatchObjectPalette(tag, slot); @@ -2375,7 +2847,7 @@ const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId) static u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { - struct ObjectEventTemplate *obj = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup); + const struct ObjectEventTemplate *obj = GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup); #ifdef UBFIX // BUG: The function may return NULL, and attempting to read from NULL may freeze the game using modern compilers. if (obj == NULL) @@ -2422,9 +2894,9 @@ u8 GetObjectEventBerryTreeId(u8 objectEventId) return gObjectEvents[objectEventId].trainerRange_berryTreeId; } -static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) +const struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { - struct ObjectEventTemplate *templates; + const struct ObjectEventTemplate *templates; const struct MapHeader *mapHeader; u8 count; @@ -2442,7 +2914,7 @@ static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8 loca return FindObjectEventTemplateByLocalId(localId, templates, count); } -static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count) +static const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, const struct ObjectEventTemplate *templates, u8 count) { u8 i; @@ -2524,37 +2996,6 @@ void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup } } -void InitObjectEventPalettes(u8 reflectionType) -{ - FreeAndReserveObjectSpritePalettes(); - sCurrentSpecialObjectPaletteTag = OBJ_EVENT_PAL_TAG_NONE; - sCurrentReflectionType = reflectionType; - if (reflectionType == 1) - { - PatchObjectPaletteRange(sObjectPaletteTagSets[sCurrentReflectionType], PALSLOT_PLAYER, PALSLOT_NPC_4 + 1); - gReservedSpritePaletteCount = 8; - } - else - { - PatchObjectPaletteRange(sObjectPaletteTagSets[sCurrentReflectionType], PALSLOT_PLAYER, PALSLOT_NPC_4_REFLECTION + 1); - } -} - -u16 GetObjectPaletteTag(u8 palSlot) -{ - u8 i; - - if (palSlot < PALSLOT_NPC_SPECIAL) - return sObjectPaletteTagSets[sCurrentReflectionType][palSlot]; - - for (i = 0; sSpecialObjectReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++) - { - if (sSpecialObjectReflectionPaletteSets[i].tag == sCurrentSpecialObjectPaletteTag) - return sSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType]; - } - return OBJ_EVENT_PAL_TAG_NONE; -} - movement_type_empty_callback(MovementType_None) movement_type_def(MovementType_WanderAround, gMovementTypeFuncs_WanderAround) @@ -2836,6 +3277,38 @@ u8 TryGetTrainerEncounterDirection(struct ObjectEvent *objectEvent, u8 movementT return gGetVectorDirectionFuncs[movementType](dx, dy, absdx, absdy); } +movement_type_def(MovementType_FollowingPokemon, gMovementTypeFuncs_FollowingPokemon) + +bool8 MovementType_FollowingPokemon_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + ClearObjectEventMovement(objectEvent, sprite); + sprite->data[1] = 1; + return TRUE; +} + +bool8 MovementType_FollowingPokemon_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_FOLLOWING_POKEMON); + sprite->data[1] = 2; + return TRUE; +} + +bool8 MovementType_FollowingPokemon_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) + { + objectEvent->singleMovementActive = FALSE; + sprite->data[1] = 3; + } + return FALSE; +} + +bool8 MovementType_FollowingPokemon_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + sprite->data[1] = 1; + return TRUE; +} + movement_type_def(MovementType_LookAround, gMovementTypeFuncs_LookAround) bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) @@ -4730,8 +5203,9 @@ static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *objectEvent, s16 for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { curObject = &gObjectEvents[i]; - if (curObject->active && curObject != objectEvent) + if (curObject->active && curObject != objectEvent && !FollowMe_IsCollisionExempt(curObject, objectEvent)) { + // check for collision if curObject is active, not the object in question, and not exempt from collisions if ((curObject->currentCoords.x == x && curObject->currentCoords.y == y) || (curObject->previousCoords.x == x && curObject->previousCoords.y == y)) { if (AreElevationsCompatible(objectEvent->currentElevation, curObject->currentElevation)) @@ -4879,6 +5353,7 @@ bool8 ObjectEventSetHeldMovement(struct ObjectEvent *objectEvent, u8 movementAct objectEvent->heldMovementActive = TRUE; objectEvent->heldMovementFinished = FALSE; gSprites[objectEvent->spriteId].sActionFuncId = 0; + FollowMe(objectEvent, movementActionId, FALSE); return FALSE; } @@ -4979,6 +5454,41 @@ bool8 ObjectEventFaceOppositeDirection(struct ObjectEvent *objectEvent, u8 direc return ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(GetOppositeDirection(direction))); } +bool8 ObjectEventPokemonFacePlayer(struct ObjectEvent *follower, struct ObjectEvent *player) +{ + if(follower->currentCoords.x == player->currentCoords.x) + { + // Follower is south of player + if(follower->currentCoords.y > player->currentCoords.y) + { + gSprites[follower->spriteId].animNum = 5; + follower->facingDirection = DIR_NORTH; + } + // Follower is north of player + else + { + gSprites[follower->spriteId].animNum = 4; + follower->facingDirection = DIR_SOUTH; + } + } + else + { + // Follower is east of player + if(follower->currentCoords.x > player->currentCoords.x) + { + gSprites[follower->spriteId].animNum = 6; + follower->facingDirection = DIR_WEST; + } + // Follower is west of player + else + { + gSprites[follower->spriteId].animNum = 7; + follower->facingDirection = DIR_EAST; + } + } + return ObjectEventSetHeldMovement(follower, MOVEMENT_ACTION_FOLLOWING_POKEMON); +} + dirn_to_anim(GetAcroWheelieFaceDirectionMovementAction, gAcroWheelieFaceDirectionMovementActions); dirn_to_anim(GetAcroPopWheelieFaceDirectionMovementAction, gAcroPopWheelieFaceDirectionMovementActions); dirn_to_anim(GetAcroEndWheelieFaceDirectionMovementAction, gAcroEndWheelieFaceDirectionMovementActions); @@ -5121,7 +5631,8 @@ static bool8 UpdateMovementNormal(struct ObjectEvent *objectEvent, struct Sprite { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; - sprite->animPaused = TRUE; + if (!(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId])) + sprite->animPaused = TRUE; return TRUE; } return FALSE; @@ -5227,7 +5738,19 @@ bool8 MovementAction_WalkSlowDiagonalDownRight_Step1(struct ObjectEvent *objectE bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitWalkSlow(objectEvent, sprite, DIR_SOUTH); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 19) + { + sprite->data[7] = 19; + sprite->animNum = 4; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitWalkSlow(objectEvent, sprite, DIR_SOUTH); + } + else + InitWalkSlow(objectEvent, sprite, DIR_SOUTH); return MovementAction_WalkSlowDown_Step1(objectEvent, sprite); } @@ -5243,7 +5766,19 @@ bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitWalkSlow(objectEvent, sprite, DIR_NORTH); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 20) + { + sprite->data[7] = 20; + sprite->animNum = 5; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitWalkSlow(objectEvent, sprite, DIR_NORTH); + } + else + InitWalkSlow(objectEvent, sprite, DIR_NORTH); return MovementAction_WalkSlowUp_Step1(objectEvent, sprite); } @@ -5259,7 +5794,19 @@ bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sp bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitWalkSlow(objectEvent, sprite, DIR_WEST); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 21) + { + sprite->data[7] = 21; + sprite->animNum = 6; + sprite->x2 = 8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitWalkSlow(objectEvent, sprite, DIR_WEST); + } + else + InitWalkSlow(objectEvent, sprite, DIR_WEST); return MovementAction_WalkSlowLeft_Step1(objectEvent, sprite); } @@ -5275,7 +5822,19 @@ bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitWalkSlow(objectEvent, sprite, DIR_EAST); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 22) + { + sprite->data[7] = 22; + sprite->animNum = 7; + sprite->x2 = -8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitWalkSlow(objectEvent, sprite, DIR_EAST); + } + else + InitWalkSlow(objectEvent, sprite, DIR_EAST); return MovementAction_WalkSlowRight_Step1(objectEvent, sprite); } @@ -5355,7 +5914,19 @@ bool8 MovementAction_WalkNormalDiagonalDownRight_Step1(struct ObjectEvent *objec bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_NORMAL); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 2) + { + sprite->data[7] = 2; + sprite->animNum = 4; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_SOUTH, 0); + } + else + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalDown_Step1(objectEvent, sprite); } @@ -5371,7 +5942,19 @@ bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_NORMAL); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 3) + { + sprite->data[7] = 3; + sprite->animNum = 5; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_NORTH, 0); + } + else + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalUp_Step1(objectEvent, sprite); } @@ -5387,7 +5970,19 @@ bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_NORMAL); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 4) + { + sprite->data[7] = 4; + sprite->animNum = 6; + sprite->x2 = 8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_WEST, 0); + } + else + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalLeft_Step1(objectEvent, sprite); } @@ -5403,7 +5998,19 @@ bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_NORMAL); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 5) + { + sprite->data[7] = 5; + sprite->animNum = 7; + sprite->x2 = -8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_EAST, 0); + } + else + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalRight_Step1(objectEvent, sprite); } @@ -5424,6 +6031,9 @@ enum { JUMP_TYPE_HIGH, JUMP_TYPE_LOW, JUMP_TYPE_NORMAL, +#if FAST_FOLLOWERS == TRUE + JUMP_TYPE_QUICK, +#endif }; static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) @@ -5477,7 +6087,8 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; objectEvent->landingJump = TRUE; - sprite->animPaused = TRUE; + if (!(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId])) + sprite->animPaused = TRUE; } return result; } @@ -5526,7 +6137,22 @@ static bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *s bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + sprite->x2 = 0; + sprite->data[7] = 10; +#if FAST_FOLLOWERS == TRUE + if(TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR_QUICKER, JUMP_TYPE_QUICK); + else + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR_QUICK, JUMP_TYPE_QUICK); + } + else + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#else + } InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#endif return MovementAction_Jump2Down_Step1(objectEvent, sprite); } @@ -5543,7 +6169,22 @@ bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + sprite->x2 = 0; + sprite->data[7] = 10; +#if FAST_FOLLOWERS == TRUE + if(TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR_QUICKER, JUMP_TYPE_QUICK); + else + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR_QUICK, JUMP_TYPE_QUICK); + } + else + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#else + } InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#endif return MovementAction_Jump2Up_Step1(objectEvent, sprite); } @@ -5560,7 +6201,22 @@ bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + sprite->x2 = 8; + sprite->data[7] = 10; +#if FAST_FOLLOWERS == TRUE + if(TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR_QUICKER, JUMP_TYPE_QUICK); + else + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR_QUICK, JUMP_TYPE_QUICK); + } + else + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#else + } InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#endif return MovementAction_Jump2Left_Step1(objectEvent, sprite); } @@ -5577,7 +6233,22 @@ bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + sprite->x2 = -8; + sprite->data[7] = 10; +#if FAST_FOLLOWERS == TRUE + if(TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR_QUICKER, JUMP_TYPE_QUICK); + else + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR_QUICK, JUMP_TYPE_QUICK); + } + else + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#else + } InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); +#endif return MovementAction_Jump2Right_Step1(objectEvent, sprite); } @@ -5640,7 +6311,19 @@ bool8 MovementAction_Delay16_Step0(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 6) + { + sprite->data[7] = 6; + sprite->animNum = 8; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_SOUTH, 1); + } + else + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_WalkFastDown_Step1(objectEvent, sprite); } @@ -5656,7 +6339,19 @@ bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 7) + { + sprite->data[7] = 7; + sprite->animNum = 9; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_NORTH, 1); + } + else + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_WalkFastUp_Step1(objectEvent, sprite); } @@ -5672,7 +6367,19 @@ bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sp bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 8) + { + sprite->data[7] = 8; + sprite->animNum = 10; + sprite->x2 = 8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_WEST, 1); + } + else + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_WalkFastLeft_Step1(objectEvent, sprite); } @@ -5688,7 +6395,19 @@ bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 9) + { + sprite->data[7] = 9; + sprite->animNum = 11; + sprite->x2 = -8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitNpcForMovement(objectEvent, sprite, DIR_EAST, 1); + } + else + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_WalkFastRight_Step1(objectEvent, sprite); } @@ -5893,7 +6612,19 @@ bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent bool8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTER); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 11) + { + sprite->data[7] = 11; + sprite->animNum = 12; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTER); + } + else + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTER); return MovementAction_WalkFasterDown_Step1(objectEvent, sprite); } @@ -5909,7 +6640,19 @@ bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTER); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 12) + { + sprite->data[7] = 12; + sprite->animNum = 13; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTER); + } + else + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTER); return MovementAction_WalkFasterUp_Step1(objectEvent, sprite); } @@ -5925,7 +6668,19 @@ bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *objectEvent, struct bool8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTER); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 13) + { + sprite->data[7] = 13; + sprite->animNum = 14; + sprite->x2 = 8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTER); + } + else + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTER); return MovementAction_WalkFasterLeft_Step1(objectEvent, sprite); } @@ -5941,7 +6696,19 @@ bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *objectEvent, struc bool8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTER); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 14) + { + sprite->data[7] = 14; + sprite->animNum = 15; + sprite->x2 = -8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTER); + } + else + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTER); return MovementAction_WalkFasterRight_Step1(objectEvent, sprite); } @@ -5957,7 +6724,19 @@ bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *objectEvent, stru bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTEST); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 15) + { + sprite->data[7] = 15; + sprite->animNum = 16; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTEST); + } + else + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTEST); return MovementAction_SlideDown_Step1(objectEvent, sprite); } @@ -5973,7 +6752,19 @@ bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTEST); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 16) + { + sprite->data[7] = 16; + sprite->animNum = 17; + sprite->x2 = 0; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTEST); + } + else + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTEST); return MovementAction_SlideUp_Step1(objectEvent, sprite); } @@ -5989,7 +6780,19 @@ bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprit bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTEST); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 17) + { + sprite->data[7] = 17; + sprite->animNum = 18; + sprite->x2 = 8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTEST); + } + else + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTEST); return MovementAction_SlideLeft_Step1(objectEvent, sprite); } @@ -6005,7 +6808,19 @@ bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Spr bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTEST); + if(gSaveBlock2Ptr->follower.inProgress && objectEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId]) + { + if(sprite->data[7] != 18) + { + sprite->data[7] = 18; + sprite->animNum = 19; + sprite->x2 = -8; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTEST); + } + else + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTEST); return MovementAction_SlideRight_Step1(objectEvent, sprite); } @@ -7765,6 +8580,13 @@ void ObjectEventUpdateElevation(struct ObjectEvent *objEvent) if (curElevation == 15 || prevElevation == 15) return; + + if (gSaveBlock2Ptr->follower.inProgress && + objEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId] && + objEvent->currentCoords.y == gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y - 1) + { + curElevation = gObjectEvents[gPlayerAvatar.objectEventId].currentElevation; + } objEvent->currentElevation = curElevation; @@ -7872,6 +8694,9 @@ static void (*const sGroundEffectTracksFuncs[])(struct ObjectEvent *objEvent, st [TRACKS_NONE] = DoTracksGroundEffect_None, [TRACKS_FOOT] = DoTracksGroundEffect_Footprints, [TRACKS_BIKE_TIRE] = DoTracksGroundEffect_BikeTireTracks, + [TRACKS_SLITHER] = DoTracksGroundEffect_SlitherTracks, + [TRACKS_BUG] = DoTracksGroundEffect_FootprintsBug, + [TRACKS_SPOT] = DoTracksGroundEffect_FootprintsSpot, }; void GroundEffect_SandTracks(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -7906,7 +8731,74 @@ static void DoTracksGroundEffect_Footprints(struct ObjectEvent *objEvent, struct FieldEffectStart(sandFootprints_FieldEffectData[isDeepSand]); } -static void DoTracksGroundEffect_BikeTireTracks(struct ObjectEvent *objEvent, struct Sprite *sprite, bool8 isDeepSand) +static void DoTracksGroundEffect_FootprintsSpot(struct ObjectEvent *objEvent, struct Sprite *sprite, u8 a) +{ + // First half-word is a Field Effect script id. (gFieldEffectScriptPointers) + u16 otherFootprintsA_FieldEffectData[2] = { + FLDEFF_TRACKS_SPOT, + FLDEFF_TRACKS_SPOT + }; + + gFieldEffectArguments[0] = objEvent->previousCoords.x; + gFieldEffectArguments[1] = objEvent->previousCoords.y; + gFieldEffectArguments[2] = 149; + gFieldEffectArguments[3] = 2; + gFieldEffectArguments[4] = objEvent->facingDirection; + if (Random() % 2 == 0) + PlaySE(159); + if (Random() % 2 == 1) + PlaySE12WithPanning(159, 1); + FieldEffectStart(otherFootprintsA_FieldEffectData[a]); +} + +static void DoTracksGroundEffect_FootprintsBug(struct ObjectEvent *objEvent, struct Sprite *sprite, u8 a) +{ + // First half-word is a Field Effect script id. (gFieldEffectScriptPointers) + u16 otherFootprintsB_FieldEffectData[2] = { + FLDEFF_TRACKS_BUG, + FLDEFF_TRACKS_BUG + }; + + gFieldEffectArguments[0] = objEvent->previousCoords.x; + gFieldEffectArguments[1] = objEvent->previousCoords.y; + gFieldEffectArguments[2] = 149; + gFieldEffectArguments[3] = 2; + gFieldEffectArguments[4] = objEvent->facingDirection; + if (Random() % 2 == 0) + PlaySE(159); + if (Random() % 2 == 1) + PlaySE12WithPanning(159, 1); + FieldEffectStart(otherFootprintsB_FieldEffectData[a]); +} + +static void DoTracksGroundEffect_SlitherTracks(struct ObjectEvent *objEvent, struct Sprite *sprite, u8 a) +{ + // Specifies which bike track shape to show next. + // For example, when the bike turns from up to right, it will show + // a track that curves to the right. + // Each 4-byte row corresponds to the initial direction of the bike, and + // each byte in that row is for the next direction of the bike in the order + // of down, up, left, right. + static const u8 slitherTracks_Transitions[4][4] = { + 1, 2, 7, 8, + 1, 2, 6, 5, + 5, 8, 3, 4, + 6, 7, 3, 4, + }; + + if (objEvent->currentCoords.x != objEvent->previousCoords.x || objEvent->currentCoords.y != objEvent->previousCoords.y) + { + gFieldEffectArguments[0] = objEvent->previousCoords.x; + gFieldEffectArguments[1] = objEvent->previousCoords.y; + gFieldEffectArguments[2] = 149; + gFieldEffectArguments[3] = 2; + gFieldEffectArguments[4] = + slitherTracks_Transitions[objEvent->previousMovementDirection][objEvent->facingDirection - 5]; + FieldEffectStart(FLDEFF_TRACKS_SLITHER); + } +} + +static void DoTracksGroundEffect_BikeTireTracks(struct ObjectEvent *objEvent, struct Sprite *sprite, u8 a) { // Specifies which bike track shape to show next. // For example, when the bike turns from up to right, it will show @@ -8051,6 +8943,9 @@ static void DoFlaggedGroundEffects(struct ObjectEvent *objEvent, struct Sprite * if (ObjectEventIsFarawayIslandMew(objEvent) == TRUE && !ShouldMewShakeGrass(objEvent)) return; + + if (gSaveBlock2Ptr->follower.inProgress && objEvent == &gObjectEvents[gSaveBlock2Ptr->follower.objId] && objEvent->invisible == TRUE) + return; for (i = 0; i < ARRAY_COUNT(sGroundEffectFuncs); i++, flags >>= 1) if (flags & 1) @@ -8428,10 +9323,19 @@ static const s8 sJumpY_Normal[] = { -9, -8, -6, -5, -3, -2, 0, 0 }; +#if FAST_FOLLOWERS == TRUE +static const s8 sJumpY_Quick[] = { + -2, -4, -6, -8, -6, -4, -2, 0, 0 +}; +#endif + static const s8 *const sJumpYTable[] = { [JUMP_TYPE_HIGH] = sJumpY_High, [JUMP_TYPE_LOW] = sJumpY_Low, - [JUMP_TYPE_NORMAL] = sJumpY_Normal + [JUMP_TYPE_NORMAL] = sJumpY_Normal, +#if FAST_FOLLOWERS == TRUE + [JUMP_TYPE_QUICK] = sJumpY_Quick, +#endif }; static s16 GetJumpY(s16 i, u8 type) @@ -8457,16 +9361,35 @@ static u8 DoJumpSpriteMovement(struct Sprite *sprite) [JUMP_DISTANCE_IN_PLACE] = 16, [JUMP_DISTANCE_NORMAL] = 16, [JUMP_DISTANCE_FAR] = 32, + #if FAST_FOLLOWERS == TRUE + [JUMP_DISTANCE_FAR_QUICK] = 16, + [JUMP_DISTANCE_FAR_QUICKER] = 8, + #endif }; u8 distanceToShift[] = { [JUMP_DISTANCE_IN_PLACE] = 0, [JUMP_DISTANCE_NORMAL] = 0, [JUMP_DISTANCE_FAR] = 1, + #if FAST_FOLLOWERS == TRUE + [JUMP_DISTANCE_FAR_QUICK] = 1, + [JUMP_DISTANCE_FAR_QUICKER] = 0, + #endif }; u8 result = 0; if (sprite->sDistance != JUMP_DISTANCE_IN_PLACE) +#if FAST_FOLLOWERS == TRUE + { + if (sprite->sDistance == JUMP_DISTANCE_FAR_QUICKER) + Step4(sprite, sprite->sDirection); + else if (sprite->sDistance == JUMP_DISTANCE_FAR_QUICK) + Step2(sprite, sprite->sDirection); + else + Step1(sprite, sprite->sDirection); + } +#else Step1(sprite, sprite->sDirection); +#endif sprite->y2 = GetJumpY(sprite->sTimer >> distanceToShift[sprite->sDistance], sprite->sJumpType); @@ -8621,7 +9544,7 @@ void TurnVirtualObject(u8 virtualObjId, u8 direction) StartSpriteAnim(&gSprites[spriteId], GetFaceDirectionAnimNum(direction)); } -void SetVirtualObjectGraphics(u8 virtualObjId, u8 graphicsId) +void SetVirtualObjectGraphics(u8 virtualObjId, u16 graphicsId) { int spriteId = GetVirtualObjectSpriteId(virtualObjId); @@ -8799,6 +9722,42 @@ u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite * MovementAction_Fly_Finish, }; +u8 (*const gMovementActionFuncs_FollowingPokemon[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_Step0, +}; + +u8 (*const gMovementActionFuncs_FollowingPokemon_FaceSouth[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_FaceSouth_Step0, + MovementAction_Finish, +}; + +u8 (*const gMovementActionFuncs_FollowingPokemon_FaceNorth[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_FaceNorth_Step0, + MovementAction_Finish, +}; + +u8 (*const gMovementActionFuncs_FollowingPokemon_FaceWest[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_FaceWest_Step0, + MovementAction_Finish, +}; + +u8 (*const gMovementActionFuncs_FollowingPokemon_FaceEast[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_FaceEast_Step0, + MovementAction_Finish, +}; + +u8 (*const gMovementActionFuncs_FollowingPokemon_Shrink[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_Shrink_Step0, + MovementAction_FollowingPokemon_Shrink_Step1, + MovementAction_Finish, +}; + +u8 (*const gMovementActionFuncs_FollowingPokemon_Grow[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FollowingPokemon_Grow_Step0, + MovementAction_FollowingPokemon_Grow_Step1, + MovementAction_Finish, +}; + u8 MovementAction_LockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { bool32 ableToStore = FALSE; @@ -8967,8 +9926,610 @@ u8 MovementAction_FlyDown_Step1(struct ObjectEvent *objectEvent, struct Sprite * return FALSE; } +u8 MovementAction_FollowingPokemon_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + switch(sprite->animNum % 4) + { + case 0: + case 1: + sprite->x2 = 0; + break; + case 2: + sprite->x2 = 8; + break; + case 3: + sprite->x2 = -8; + break; + } + if(sprite->data[7] != 1) + { + sprite->data[7] = 1; + sprite->animPaused = FALSE; + if(sprite->animNum > 3) + sprite->animNum = sprite->animNum % 4; + SeekSpriteAnim(sprite, ++sprite->animCmdIndex); + } + + return ArePlayerFieldControlsLocked(); +} + +void RecreateObjectEvent(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + u8 newSpriteId; + struct ObjectEventTemplate clone; + struct ObjectEvent backupFollower = *objectEvent; + backupFollower.graphicsId = objectEvent->graphicsId; + DestroySprite(sprite); + RemoveObjectEvent(objectEvent); + + clone = *GetObjectEventTemplateByLocalIdAndMap(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup); + clone.graphicsId = objectEvent->graphicsId; + + objectEvent = &gObjectEvents[TrySpawnObjectEventTemplate(&clone, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, clone.x, clone.y)]; + newSpriteId = objectEvent->spriteId; + *objectEvent = backupFollower; + objectEvent->spriteId = newSpriteId; +} + +u8 MovementAction_FollowingPokemon_FaceSouth_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + SetObjectEventDirection(objectEvent, DIR_SOUTH); + RecreateObjectEvent(objectEvent, sprite); + sprite->animNum = 0; + sprite->x2 = 0; + MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); + sprite->data[2]++; + return FALSE; +} + +u8 MovementAction_FollowingPokemon_FaceNorth_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + SetObjectEventDirection(objectEvent, DIR_NORTH); + RecreateObjectEvent(objectEvent, sprite); + sprite->animNum = 1; + sprite->x2 = 0; + MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); + sprite->data[2]++; + return FALSE; +} + +u8 MovementAction_FollowingPokemon_FaceWest_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + SetObjectEventDirection(objectEvent, DIR_WEST); + RecreateObjectEvent(objectEvent, sprite); + sprite->animNum = 2; + sprite->x2 = 8; + MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); + sprite->data[2]++; + return FALSE; +} + +u8 MovementAction_FollowingPokemon_FaceEast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + SetObjectEventDirection(objectEvent, DIR_EAST); + RecreateObjectEvent(objectEvent, sprite); + sprite->animNum = 3; + sprite->x2 = -8; + MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y); + sprite->data[2]++; + return FALSE; +} + +static void PokeballCallback(struct Sprite *sprite) +{ + if (++sprite->data[0] == 21) + DestroySprite(sprite); +} + +u8 MovementAction_FollowingPokemon_Shrink_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + s16 x = objectEvent->currentCoords.x; + s16 y = objectEvent->currentCoords.y; + u8 spriteId; + bool8 playerPriority; + + sprite->data[7] = 1; + sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(sprite); + + if (objectEvent->facingDirection == DIR_EAST && GetObjectEventGraphicsInfo(objectEvent->graphicsId)->anims != gObjectEventImageAnimTable_FollowingPokemon_UniqueEast && objectEvent->graphicsId != OBJ_EVENT_GFX_KRABBY) + StartSpriteAffineAnim(sprite, 2); + else + StartSpriteAffineAnim(sprite, 0); + + if (y == gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y) // If follower is to the east or west of player + { + SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); + playerPriority = FALSE; + } + else if (y < gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y) // If follower is north of player + { + SetSpritePosToOffsetMapCoords(&x, &y, 8, 4); + playerPriority = TRUE; + } + else // If follower is south of player + { + SetSpritePosToOffsetMapCoords(&x, &y, 8, 0); + playerPriority = FALSE; + } + + switch(GetMonData(&gPlayerParty[GetLeadMonNotFaintedIndex()], MON_DATA_POKEBALL)) + { + case ITEM_MASTER_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MASTER_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_ULTRA_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_ULTRA_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_GREAT_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_GREAT_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_SAFARI_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_SAFARI_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_NET_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_NET_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_DIVE_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_DIVE_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_NEST_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_NEST_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_REPEAT_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_REPEAT_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_TIMER_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_TIMER_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_LUXURY_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LUXURY_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_PREMIER_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_PREMIER_BALL, &PokeballCallback, x, y, 2); + break; + #ifdef ITEM_EXPANSION + case ITEM_HEAL_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_HEAL_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_DUSK_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_DUSK_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_QUICK_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_QUICK_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_LEVEL_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LEVEL_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_LURE_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LURE_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_MOON_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MOON_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_FRIEND_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_FRIEND_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_LOVE_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LOVE_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_FAST_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_FAST_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_HEAVY_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_HEAVY_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_DREAM_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_DREAM_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_SPORT_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_SPORT_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_PARK_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_PARK_BALL, &PokeballCallback, x, y, 2); + break; + case ITEM_CHERISH_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_CHERISH_BALL, &PokeballCallback, x, y, 2); + break; + #endif + default: // PokeBall + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_ITEM_BALL, &PokeballCallback, x, y, 2); + break; + } + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].data[0] = 0; + } + + if (playerPriority) + { + gSprites[gPlayerAvatar.spriteId].oam.priority = 1; + gSprites[gPlayerAvatar.spriteId].subpriority = 1; + gObjectEvents[gPlayerAvatar.objectEventId].fixedPriority = TRUE; + } + + sprite->oam.priority = 1; + sprite->subpriority = 1; + + objectEvent->hasShadow = FALSE; + sprite->data[2]++; + return FALSE; +} + +u8 MovementAction_FollowingPokemon_Shrink_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + sprite->data[7]++; + + if (objectEvent->currentCoords.x > gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x) // east side + { + switch(objectEvent->facingDirection) + { + case DIR_EAST: + if (sprite->data[7] < 8) + sprite->x2 += sprite->data[7] - 1; + else + sprite->x2 += 7; + break; + case DIR_WEST: + if (sprite->data[7] <= 5) + { + if (sprite->data[7] > 3) + sprite->x2 += 1 - sprite->data[7]; + else + sprite->x2 -= sprite->data[7]; + } + else if (sprite->data[7] == 6) + sprite->x2 += -5; + else + sprite->x2 += 1 - sprite->data[7]; + break; + } + + // Adjust the height of the 64x64 sprites differently + if (IsBigSprite(objectEvent->graphicsId)) + { + if (sprite->data[7] < 3) + sprite->y2 = sprite->data[7] * 2 + 1; + else if (sprite->data[7] < 5) + sprite->y2 = sprite->data[7] * 2 + 2; + else if (sprite->data[7] < 6) + sprite->y2 = sprite->data[7] * 2 + 3; + else if (sprite->data[7] < 8) + sprite->y2 = sprite->data[7] * 2 + 4; + else if (sprite->data[7] < 9) + sprite->y2 = sprite->data[7] * 2 + 5; + else + sprite->y2 = sprite->data[7] * 2 + 6; + } + else + { + if (sprite->data[7] >= 10) + sprite->y2 = 10; + else + sprite->y2 = sprite->data[7]; + } + } + else if (objectEvent->currentCoords.x < gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x) // west side + { + switch(objectEvent->facingDirection) + { + case DIR_EAST: + if (sprite->data[7] <= 5) + { + if (sprite->data[7] > 3) + sprite->x2 -= 2 - sprite->data[7]; + else + sprite->x2 += sprite->data[7] - 1; + } + else if (sprite->data[7] == 6) + sprite->x2 -= -4; + else + sprite->x2 -= 2 - sprite->data[7]; + break; + case DIR_WEST: + if (sprite->data[7] < 9) + sprite->x2 -= sprite->data[7] - 1; + else + sprite->x2 -= 8; + break; + } + + // Adjust the height of the 64x64 sprites differently + if (IsBigSprite(objectEvent->graphicsId)) + { + if (sprite->data[7] < 3) + sprite->y2 = sprite->data[7] * 2 + 1; + else if (sprite->data[7] < 5) + sprite->y2 = sprite->data[7] * 2 + 2; + else if (sprite->data[7] < 6) + sprite->y2 = sprite->data[7] * 2 + 3; + else if (sprite->data[7] < 8) + sprite->y2 = sprite->data[7] * 2 + 4; + else if (sprite->data[7] < 9) + sprite->y2 = sprite->data[7] * 2 + 5; + else + sprite->y2 = sprite->data[7] * 2 + 6; + } + else + { + if (sprite->data[7] >= 10) + sprite->y2 = 10; + else + sprite->y2 = sprite->data[7]; + } + } + else if (objectEvent->currentCoords.y > gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y) // south side + { + switch(objectEvent->facingDirection) + { + case DIR_EAST: + if (sprite->data[7] < 7) + sprite->x2 += sprite->data[7] - 1; + else + sprite->x2 += 6; + break; + case DIR_WEST: + if (sprite->data[7] < 8) + sprite->x2 -= sprite->data[7] - 1; + else + sprite->x2 -= 7; + break; + } + + // Adjust the height of the 64x64 sprites differently + if (IsBigSprite(objectEvent->graphicsId)) + { + if (sprite->data[7] < 3) + sprite->y2 = sprite->data[7] + 3; + else if (sprite->data[7] < 5) + sprite->y2 = sprite->data[7] + 4; + else if (sprite->data[7] < 6) + sprite->y2 = sprite->data[7] + 5; + else if (sprite->data[7] < 8) + sprite->y2 = sprite->data[7] + 6; + else if (sprite->data[7] < 9) + sprite->y2 = sprite->data[7] + 7; + else + sprite->y2 = sprite->data[7] + 8; + } + else + sprite->y2 = 1; + } + else // north side + { + switch(objectEvent->facingDirection) + { + case DIR_EAST: + if (sprite->data[7] < 7) + sprite->x2 += sprite->data[7] - 1; + else + sprite->x2 += 6; + break; + case DIR_WEST: + if (sprite->data[7] < 8) + sprite->x2 -= sprite->data[7] - 1; + else + sprite->x2 -= 7; + break; + } + + // Adjust the height of the 64x64 sprites differently + if (IsBigSprite(objectEvent->graphicsId)) + { + if (sprite->data[7] < 5) + sprite->y2 = sprite->data[7] * 2 + 1; + else if (sprite->data[7] < 8) + sprite->y2 = sprite->data[7] * 2 + 2; + else + sprite->y2 = sprite->data[7] * 2 + 3; + } + else + { + if (sprite->data[7] < 6) + sprite->y2 = sprite->data[7]; + else + sprite->y2 = 6; + } + } + + if (sprite->data[7] >= 11) + { + FreeSpriteOamMatrix(sprite); + gObjectEvents[gPlayerAvatar.objectEventId].fixedPriority = FALSE; + gPlayerAvatar.preventStep = FALSE; + objectEvent->invisible = TRUE; + sprite->data[2]++; + } + + objectEvent->hasShadow = FALSE; + return FALSE; +} + +u8 MovementAction_FollowingPokemon_Grow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + sprite->data[7] = 11; + sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(sprite); + + if (gObjectEvents[gPlayerAvatar.objectEventId].facingDirection == DIR_EAST && GetObjectEventGraphicsInfo(objectEvent->graphicsId)->anims != gObjectEventImageAnimTable_FollowingPokemon_UniqueEast && objectEvent->graphicsId != OBJ_EVENT_GFX_KRABBY) + StartSpriteAffineAnim(sprite, 3); + else + StartSpriteAffineAnim(sprite, 1); + + switch(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection) + { + case DIR_SOUTH: + sprite->y2 = 6; + sprite->x2 = 0; + break; + case DIR_NORTH: + sprite->y2 = 1; + sprite->x2 = 0; + break; + case DIR_EAST: + sprite->y2 = 10; + sprite->x2 += 9; + break; + case DIR_WEST: + sprite->y2 = 10; + sprite->x2 -= 9; + break; + } + sprite->data[2]++; + return FALSE; +} + +u8 MovementAction_FollowingPokemon_Grow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + sprite->data[7]--; + + if (sprite->data[7] == 10) + gObjectEvents[gSaveBlock2Ptr->follower.objId].invisible = FALSE; + + switch(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection) + { + case DIR_SOUTH: + if (sprite->data[7] < 6) + sprite->y2 = sprite->data[7]; + else + sprite->y2 = 6; + break; + case DIR_NORTH: + sprite->y2 = 1; + break; + case DIR_WEST: + if (sprite->data[7] <= 5) + { + if (sprite->data[7] > 3) + sprite->x2 += 1 - sprite->data[7]; + else + sprite->x2 -= sprite->data[7]; + } + else if (sprite->data[7] == 6) + sprite->x2 += -5; + else + sprite->x2 += 1 - sprite->data[7]; + + if (sprite->data[7] >= 10) + sprite->y2 = 10; + else + sprite->y2 = sprite->data[7]; + + break; + case DIR_EAST: + if (sprite->data[7] <= 5) + { + if (sprite->data[7] > 3) + sprite->x2 -= 2 - sprite->data[7]; + else + sprite->x2 += sprite->data[7] - 1; + } + else if (sprite->data[7] == 6) + sprite->x2 -= -4; + else + sprite->x2 -= 2 - sprite->data[7]; + + if (sprite->data[7] >= 10) + sprite->y2 = 10; + else + sprite->y2 = sprite->data[7]; + + break; + } + + // Adjust the height of the 64x64 sprites differently + if (IsBigSprite(objectEvent->graphicsId)) + { + if (sprite->data[7] > 9) + sprite->y2 -= (11 - sprite->data[7]) + 2; + else if (sprite->data[7] > 7) + sprite->y2 -= (11 - sprite->data[7]) + 3; + else if (sprite->data[7] > 6) + sprite->y2 -= (11 - sprite->data[7]) + 4; + else if (sprite->data[7] > 4) + sprite->y2 -= (11 - sprite->data[7]) + 5; + else if (sprite->data[7] > 3) + sprite->y2 -= (11 - sprite->data[7]) + 6; + else + sprite->y2 -= (11 - sprite->data[7]) + 7; + } + + if (sprite->data[7] <= 1) + { + // Set y2 of the 64x64 sprites back to 0, and compensate with y. + if (IsBigSprite(objectEvent->graphicsId)) + { + sprite->y -= 16; + sprite->y2 = 0; + } + + FreeSpriteOamMatrix(sprite); + + // Make sure water ripples at the feet of the follower if they are appearing on top of shallow water. + if (MetatileBehavior_IsShallowFlowingWater(MapGridGetMetatileBehaviorAt(objectEvent->currentCoords.x, objectEvent->currentCoords.y))) + { + objectEvent->inShallowFlowingWater = TRUE; + StartFieldEffectForObjectEvent(FLDEFF_FEET_IN_FLOWING_WATER, objectEvent); + } + gPlayerAvatar.preventStep = FALSE; + + // Account for warps in scripts where the follower needs to pop out of a pokeball afterwards + if (gSaveBlock2Ptr->follower.createSurfBlob == 2) + { + sprite->data[7] = 0; + gSaveBlock2Ptr->follower.createSurfBlob = 0; + switch(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection) + { + case DIR_SOUTH: + ObjectEventForceSetHeldMovement(objectEvent, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACESOUTH); + break; + case DIR_NORTH: + ObjectEventForceSetHeldMovement(objectEvent, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACENORTH); + break; + case DIR_WEST: + ObjectEventForceSetHeldMovement(objectEvent, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACEWEST); + break; + case DIR_EAST: + ObjectEventForceSetHeldMovement(objectEvent, MOVEMENT_ACTION_FOLLOWING_POKEMON_FACEEAST); + break; + } + } + sprite->data[2]++; + } + + return FALSE; +} + // though this function returns TRUE without doing anything, this header is required due to being in an array of functions which needs it. u8 MovementAction_Fly_Finish(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return TRUE; } + +// NEW +u16 GetMiniStepCount(u8 speed) +{ + return (u16)sStepTimes[speed]; +} + +void RunMiniStep(struct Sprite *sprite, u8 speed, u8 currentFrame) +{ + sNpcStepFuncTables[speed][currentFrame](sprite, sprite->data[3]); +} + +bool8 PlayerIsUnderWaterfall(struct ObjectEvent *objectEvent) +{ + s16 x; + s16 y; + + x = objectEvent->currentCoords.x; + y = objectEvent->currentCoords.y; + MoveCoordsInDirection(DIR_NORTH, &x, &y, 0, 1); + if (MetatileBehavior_IsWaterfall(MapGridGetMetatileBehaviorAt(x, y))) + return TRUE; + + return FALSE; +} diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index b784a2ab8..040224eb4 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -29,6 +29,7 @@ #include "trainer_see.h" #include "trainer_hill.h" #include "wild_encounter.h" +#include "follow_me.h" #include "constants/event_bg.h" #include "constants/event_objects.h" #include "constants/field_poison.h" @@ -61,8 +62,8 @@ static s8 GetWarpEventAtMapPosition(struct MapHeader *, struct MapPosition *); static void SetupWarp(struct MapHeader *, s8, struct MapPosition *); static bool8 TryDoorWarp(struct MapPosition *, u16, u8); static s8 GetWarpEventAtPosition(struct MapHeader *, u16, u16, u8); -static u8 *GetCoordEventScriptAtPosition(struct MapHeader *, u16, u16, u8); -static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *, u16, u16, u8); +static const u8 *GetCoordEventScriptAtPosition(struct MapHeader *, u16, u16, u8); +static const struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *, u16, u16, u8); static bool8 TryStartCoordEventScript(struct MapPosition *); static bool8 TryStartWarpEventScript(struct MapPosition *, u16); static bool8 TryStartMiscWalkingScripts(u16); @@ -165,9 +166,18 @@ int ProcessPlayerFieldInput(struct FieldInput *input) { IncrementGameStat(GAME_STAT_STEPS); IncrementBirthIslandRockStepCount(); + if (TryStartStepBasedScript(&position, metatileBehavior, playerDirection) == TRUE) return TRUE; } + else if(gSaveBlock2Ptr->follower.inProgress && gSaveBlock2Ptr->follower.createSurfBlob != 2) + { + // Keep the follower bouncing, unless we're dealing with a follower coming out of a pokeball after a scripted warp. + // Need to stop bouncing to run the grow-out-of-pokeball animation + ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gSaveBlock2Ptr->follower.objId]); + ObjectEventSetHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId], 0x9E); + } + if (input->checkStandardWildEncounter && CheckStandardWildEncounter(metatileBehavior) == TRUE) return TRUE; if (input->heldDirection && input->dpadDirection == playerDirection) @@ -325,6 +335,13 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 if (InTrainerHill() == TRUE) script = GetTrainerHillTrainerScript(); + else if (objectEventId == GetFollowerObjectId())//(gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_FOLLOWER) + { + if(gObjectEvents[objectEventId].invisible == FALSE) + script = GetFollowerScriptPointer(); + else + return NULL; + } else script = GetObjectEventScriptPointerByObjectEventId(objectEventId); @@ -334,7 +351,7 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction) { - struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); + const struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (bgEvent == NULL) return NULL; @@ -516,7 +533,7 @@ static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileB static bool8 TryStartCoordEventScript(struct MapPosition *position) { - u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); + const u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (script == NULL) return FALSE; @@ -885,7 +902,7 @@ static bool8 TryDoorWarp(struct MapPosition *position, u16 metatileBehavior, u8 static s8 GetWarpEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) { s32 i; - struct WarpEvent *warpEvent = mapHeader->events->warps; + const struct WarpEvent *warpEvent = mapHeader->events->warps; u8 warpCount = mapHeader->events->warpCount; for (i = 0; i < warpCount; i++, warpEvent++) @@ -899,7 +916,7 @@ static s8 GetWarpEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 e return WARP_ID_NONE; } -static u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent) +static const u8 *TryRunCoordEventScript(const struct CoordEvent *coordEvent) { if (coordEvent != NULL) { @@ -919,10 +936,10 @@ static u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent) return NULL; } -static u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) +static const u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) { s32 i; - struct CoordEvent *coordEvents = mapHeader->events->coordEvents; + const struct CoordEvent *coordEvents = mapHeader->events->coordEvents; u8 coordEventCount = mapHeader->events->coordEventCount; for (i = 0; i < coordEventCount; i++) @@ -931,7 +948,7 @@ static u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 { if (coordEvents[i].elevation == elevation || coordEvents[i].elevation == 0) { - u8 *script = TryRunCoordEventScript(&coordEvents[i]); + const u8 *script = TryRunCoordEventScript(&coordEvents[i]); if (script != NULL) return script; } @@ -940,15 +957,15 @@ static u8 *GetCoordEventScriptAtPosition(struct MapHeader *mapHeader, u16 x, u16 return NULL; } -u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position) +const u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position) { return GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } -static struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) +static const struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) { u8 i; - struct BgEvent *bgEvents = mapHeader->events->bgEvents; + const struct BgEvent *bgEvents = mapHeader->events->bgEvents; u8 bgEventCount = mapHeader->events->bgEventCount; for (i = 0; i < bgEventCount; i++) diff --git a/src/field_effect.c b/src/field_effect.c index b5880b3fc..52fa8d894 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,8 +1,10 @@ #include "global.h" #include "decompress.h" +#include "event_data.h" #include "event_object_movement.h" #include "field_camera.h" #include "field_control_avatar.h" +#include "field_door.h" #include "field_effect.h" #include "field_effect_helpers.h" #include "field_player_avatar.h" @@ -26,6 +28,7 @@ #include "trainer_pokemon_sprites.h" #include "trig.h" #include "util.h" +#include "follow_me.h" #include "constants/field_effects.h" #include "constants/event_object_movement.h" #include "constants/metatile_behaviors.h" @@ -35,9 +38,11 @@ #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} EWRAM_DATA s32 gFieldEffectArguments[8] = {0}; +EWRAM_DATA u16 gReflectionPaletteBuffer[0x10] = {0}; // Static type declarations +extern void FollowMe_WarpSetEnd(void); static void Task_PokecenterHeal(u8 taskId); static void PokecenterHealEffect_Init(struct Task *); static void PokecenterHealEffect_WaitForBallPlacement(struct Task *); @@ -782,6 +787,7 @@ void FieldEffectScript_LoadFadedPalette(u8 **script) { struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script); LoadSpritePalette(palette); + UpdatePaletteGammaType(IndexOfSpritePaletteTag(palette->tag), COLOR_MAP_DARK_CONTRAST); UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(palette->tag)); (*script) += 4; } @@ -1366,8 +1372,32 @@ static void Task_UseFly(u8 taskId) gFieldEffectArguments[0] = 0; FieldEffectStart(FLDEFF_USE_FLY); + + #if FAST_FOLLOWERS == TRUE + if (FlagGet(FLAG_FOLLOWER_IN_BUILDING)) + { + // In case the player just exited a building and the follower has not exited the building + FlagClear(FLAG_FOLLOWER_IN_BUILDING); + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gSaveBlock2Ptr->follower.warpEnd = 0; + FieldAnimateDoorClose(gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y - 1); + } + else + FollowerIntoPokeball(); + #else + if (gSaveBlock2Ptr->follower.inProgress) + { + // In case the player just exited a building and the follower has not exited the building + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gSaveBlock2Ptr->follower.warpEnd = 0; + + FollowerIntoPokeball(); + } + #endif + task->data[0]++; } + if (!FieldEffectActiveListContains(FLDEFF_USE_FLY)) { Overworld_ResetStateAfterFly(); @@ -1546,6 +1576,7 @@ static bool8 FallWarpEffect_End(struct Task *task) UnfreezeObjectEvents(); InstallCameraPanAheadCallback(); DestroyTask(FindTaskIdByFunc(Task_FallWarpFieldEffect)); + FollowMe_WarpSetEnd(); return FALSE; } @@ -1597,6 +1628,7 @@ static bool8 EscalatorWarpOut_WaitForPlayer(struct Task *task) task->tState++; task->data[2] = 0; task->data[3] = 0; + EscalatorMoveFollower(task->data[1]); if ((u8)task->tGoingUp == FALSE) { task->tState = 4; // jump to EscalatorWarpOut_Down_Ride @@ -1894,6 +1926,7 @@ static bool8 WaterfallFieldEffect_ContinueRideOrEnd(struct Task *task, struct Ob gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(Task_UseWaterfall)); FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL); + FollowMe_WarpSetEnd(); return FALSE; } @@ -2280,6 +2313,31 @@ static void EscapeRopeWarpOutEffect_Spin(struct Task *task) else if (task->tSpinDelay == 0 || (--task->tSpinDelay) == 0) { ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(spinDirections[objectEvent->facingDirection])); + + if (gSaveBlock2Ptr->follower.inProgress) + { + ObjectEventClearHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId]); + switch(objectEvent->facingDirection) + { + case DIR_SOUTH: + gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId].x2 = 0; + ObjectEventSetHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId], 25); + break; + case DIR_NORTH: + gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId].x2 = 0; + ObjectEventSetHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId], 26); + break; + case DIR_WEST: + gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId].x2 = 8; + ObjectEventSetHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId], 27); + break; + case DIR_EAST: + gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId].x2 = -8; + ObjectEventSetHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId], 28); + break; + } + } + if (task->tNumTurns < 12) task->tNumTurns++; task->tSpinDelay = 8 >> (task->tNumTurns >> 2); @@ -3021,6 +3079,28 @@ static void SurfFieldEffect_FieldMovePose(struct Task *task) SetPlayerAvatarFieldMove(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->tState++; + + #if FAST_FOLLOWERS == TRUE + if (FlagGet(FLAG_FOLLOWER_IN_BUILDING)) + { + // in case the follower hasn't left a warp yet + FlagClear(FLAG_FOLLOWER_IN_BUILDING); + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gSaveBlock2Ptr->follower.warpEnd = 0; + FieldAnimateDoorClose(gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y - 1); + } + else + FollowerIntoPokeball(); + #else + if (gSaveBlock2Ptr->follower.inProgress) + { + // in case the follower hasn't left a warp yet + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gSaveBlock2Ptr->follower.warpEnd = 0; + + FollowerIntoPokeball(); + } + #endif } } @@ -3114,10 +3194,13 @@ u8 FldEff_RayquazaSpotlight(void) u8 FldEff_NPCFlyOut(void) { - u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1); - struct Sprite *sprite = &gSprites[spriteId]; + u8 spriteId; + struct Sprite *sprite; + + LoadFieldEffectPalette(FLDEFFOBJ_BIRD); + spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1); + sprite = &gSprites[spriteId]; - sprite->oam.paletteNum = 0; sprite->oam.priority = 1; sprite->callback = SpriteCB_NPCFlyOut; sprite->data[1] = gFieldEffectArguments[0]; @@ -3297,9 +3380,10 @@ static u8 CreateFlyBirdSprite(void) { u8 spriteId; struct Sprite *sprite; + + LoadFieldEffectPalette(FLDEFFOBJ_BIRD); spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0xff, 0xb4, 0x1); sprite = &gSprites[spriteId]; - sprite->oam.paletteNum = 0; sprite->oam.priority = 1; sprite->callback = SpriteCB_FlyBirdLeaveBall; return spriteId; diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c old mode 100755 new mode 100644 index 9421aaf27..69d3341bc --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -7,18 +7,18 @@ #include "fieldmap.h" #include "gpu_regs.h" #include "metatile_behavior.h" +#include "palette.h" #include "sound.h" #include "sprite.h" #include "trig.h" #include "constants/field_effects.h" #include "constants/songs.h" +#include "constants/rgb.h" #define OBJ_EVENT_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c static void UpdateObjectReflectionSprite(struct Sprite *); static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *, u8); -static void LoadObjectRegularReflectionPalette(struct ObjectEvent *, u8); static void UpdateGrassFieldEffectSubpriority(struct Sprite *, u8, u8); static void FadeFootprintsTireTracks_Step0(struct Sprite *); static void FadeFootprintsTireTracks_Step1(struct Sprite *); @@ -30,7 +30,13 @@ static void SynchroniseSurfAnim(struct ObjectEvent *, struct Sprite *); static void SynchroniseSurfPosition(struct ObjectEvent *, struct Sprite *); static void UpdateBobbingEffect(struct ObjectEvent *, struct Sprite *, struct Sprite *); static void SpriteCB_UnderwaterSurfBlob(struct Sprite *); -static u32 ShowDisguiseFieldEffect(u8, u8, u8); +static u32 ShowDisguiseFieldEffect(u8, u8); +static void LoadFieldEffectPalette_(u8 fieldEffect, bool8 updateGammaType); +static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent, u8 paletteIndex); + +void LoadSpecialReflectionPalette(struct Sprite *sprite); + +extern u16 gReflectionPaletteBuffer[]; // Used by several field effects to determine which of a group it is #define sFldEff data[1] @@ -47,7 +53,6 @@ void SetUpReflection(struct ObjectEvent *objectEvent, struct Sprite *sprite, boo reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->x, sprite->y, 0x98)]; reflectionSprite->callback = UpdateObjectReflectionSprite; reflectionSprite->oam.priority = 3; - reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[reflectionSprite->oam.paletteNum]; reflectionSprite->usingSheet = TRUE; reflectionSprite->anims = gDummySpriteAnimTable; StartSpriteAnim(reflectionSprite, 0); @@ -68,6 +73,8 @@ static s16 GetReflectionVerticalOffset(struct ObjectEvent *objectEvent) return GetObjectEventGraphicsInfo(objectEvent->graphicsId)->height - 2; } +#define OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION 0x1102 + static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *reflectionSprite) { u8 bridgeType; @@ -81,30 +88,46 @@ static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct && ((bridgeType = MetatileBehavior_GetBridgeType(objectEvent->previousMetatileBehavior)) || (bridgeType = MetatileBehavior_GetBridgeType(objectEvent->currentMetatileBehavior)))) { + // When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color. + // This is so the sprite blends in with the dark water metatile underneath the bridge. reflectionSprite->sReflectionVerticalOffset = bridgeReflectionVerticalOffsets[bridgeType - 1]; - LoadObjectHighBridgeReflectionPalette(objectEvent, reflectionSprite->oam.paletteNum); + LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION); + reflectionSprite->oam.paletteNum = IndexOfSpritePaletteTag(OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION); + UpdatePaletteGammaType(reflectionSprite->oam.paletteNum, COLOR_MAP_DARK_CONTRAST); + UpdateSpritePaletteWithWeather(reflectionSprite->oam.paletteNum); } else { - LoadObjectRegularReflectionPalette(objectEvent, reflectionSprite->oam.paletteNum); + LoadSpecialReflectionPalette(reflectionSprite); } } -static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent, u8 paletteIndex) +void LoadSpecialReflectionPalette(struct Sprite *sprite) { - const struct ObjectEventGraphicsInfo *graphicsInfo; + u32 R, G, B, i; + u16 color; + u16* pal; + struct SpritePalette reflectionPalette; - graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE) - { - if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) - LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex); - else if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) - LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex); - else - PatchObjectPalette(GetObjectPaletteTag(paletteIndex), paletteIndex); - UpdateSpritePaletteWithWeather(paletteIndex); - } + CpuCopy16(&gPlttBufferUnfaded[0x100 + sprite->oam.paletteNum * 16], gReflectionPaletteBuffer, 32); + pal = gReflectionPaletteBuffer; + for (i = 0; i < 16; ++i) + { + color = pal[i]; + R = GET_R(color) + 8; + G = GET_G(color) + 8; + B = GET_B(color) + 16; + if (R > 31) R = 31; + if (G > 31) G = 31; + if (B > 31) B = 31; + pal[i] = RGB(R, G, B); + } + reflectionPalette.data = gReflectionPaletteBuffer; + reflectionPalette.tag = GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum) + 0x1000; + LoadSpritePalette(&reflectionPalette); + sprite->oam.paletteNum = IndexOfSpritePaletteTag(reflectionPalette.tag); + UpdatePaletteGammaType(sprite->oam.paletteNum, COLOR_MAP_CONTRAST); + UpdateSpritePaletteWithWeather(sprite->oam.paletteNum); } // When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color. @@ -134,7 +157,6 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) } else { - reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[mainSprite->oam.paletteNum]; reflectionSprite->oam.shape = mainSprite->oam.shape; reflectionSprite->oam.size = mainSprite->oam.size; reflectionSprite->oam.matrixNum = mainSprite->oam.matrixNum | ST_OAM_VFLIP; @@ -177,6 +199,7 @@ u8 CreateWarpArrowSprite(void) u8 spriteId; struct Sprite *sprite; + LoadFieldEffectPalette_(FLDEFFOBJ_ARROW, FALSE); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52); if (spriteId != MAX_SPRITES) { @@ -235,6 +258,7 @@ u32 FldEff_Shadow(void) objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); + LoadFieldEffectPalette_(sShadowEffectTemplateIds[graphicsInfo->shadowSize], FALSE); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); if (spriteId != MAX_SPRITES) { @@ -489,6 +513,7 @@ u32 FldEff_JumpLongGrass(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); + LoadFieldEffectPalette(FLDEFFOBJ_SURF_BLOB); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0); if (spriteId != MAX_SPRITES) { @@ -579,6 +604,60 @@ u32 FldEff_SandFootprints(void) return 0; } +u32 FldEff_TracksBug(void) +{ + u8 spriteId; + struct Sprite *sprite; + + SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TRACKS_BUG], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = gFieldEffectArguments[3]; + sprite->data[7] = FLDEFF_TRACKS_BUG; + StartSpriteAnim(sprite, gFieldEffectArguments[4]); + } + return 0; +} + +u32 FldEff_TracksSpot(void) +{ + u8 spriteId; + struct Sprite *sprite; + + SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TRACKS_SPOT], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = gFieldEffectArguments[3]; + sprite->data[7] = FLDEFF_TRACKS_SPOT; + StartSpriteAnim(sprite, gFieldEffectArguments[4]); + } + return 0; +} + +u32 FldEff_TracksSlither(void) +{ + u8 spriteId; + struct Sprite *sprite; + + SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TRACKS_SLITHER], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = gFieldEffectArguments[3]; + sprite->data[7] = FLDEFF_TRACKS_SLITHER; + StartSpriteAnim(sprite, gFieldEffectArguments[4]); + } + return spriteId; +} + u32 FldEff_DeepSandFootprints(void) { u8 spriteId; @@ -663,6 +742,7 @@ u32 FldEff_Splash(void) sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; linkedSprite = &gSprites[objectEvent->spriteId]; + sprite->subpriority = linkedSprite->subpriority - 1; sprite->oam.priority = linkedSprite->oam.priority; sprite->data[0] = gFieldEffectArguments[0]; sprite->data[1] = gFieldEffectArguments[1]; @@ -760,7 +840,8 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) struct Sprite *linkedSprite; struct ObjectEvent *objectEvent; - if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater) + if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[0], sprite->data[1], sprite->data[2], &objectEventId) || !gObjectEvents[objectEventId].inShallowFlowingWater + || (gObjectEvents[objectEventId].invisible && objectEventId == gSaveBlock2Ptr->follower.objId && gSaveBlock2Ptr->follower.inProgress)) { FieldEffectStop(sprite, FLDEFF_FEET_IN_FLOWING_WATER); } @@ -1014,7 +1095,6 @@ u32 FldEff_SurfBlob(void) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; - sprite->oam.paletteNum = 0; sprite->tPlayerObjId = gFieldEffectArguments[2]; sprite->data[3] = -1; sprite->data[6] = -1; @@ -1291,13 +1371,13 @@ u32 FldEff_BerryTreeGrowthSparkle(void) struct Sprite *sprite; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4); + LoadFieldEffectPalette(FLDEFFOBJ_SPARKLE); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->oam.paletteNum = 5; sprite->data[0] = FLDEFF_BERRY_TREE_GROWTH_SPARKLE; } return 0; @@ -1312,20 +1392,20 @@ u32 FldEff_BerryTreeGrowthSparkle(void) u32 ShowTreeDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4); + return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE); } u32 ShowMountainDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3); + return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE); } u32 ShowSandDisguiseFieldEffect(void) { - return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2); + return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE); } -static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) +static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx) { u8 spriteId; struct Sprite *sprite; @@ -1335,12 +1415,12 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum) FieldEffectActiveListRemove(fldEff); return MAX_SPRITES; } - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[fldEffObj], 0, 0, 0); + LoadFieldEffectPalette(templateIdx); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[templateIdx], 0, 0, 0); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled ++; - sprite->oam.paletteNum = paletteNum; sprite->sFldEff = fldEff; sprite->sLocalId = gFieldEffectArguments[0]; sprite->sMapNum = gFieldEffectArguments[1]; @@ -1687,6 +1767,24 @@ static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 elevatio } } +static void LoadFieldEffectPalette_(u8 fieldEffect, bool8 updateGammaType) +{ + const struct SpriteTemplate *spriteTemplate; + + spriteTemplate = gFieldEffectObjectTemplatePointers[fieldEffect]; + if (spriteTemplate->paletteTag != 0xffff) + { + LoadObjectEventPalette(spriteTemplate->paletteTag); + if (updateGammaType) + UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate->paletteTag), COLOR_MAP_DARK_CONTRAST); + } +} + +void LoadFieldEffectPalette(u8 fieldEffect) +{ + LoadFieldEffectPalette_(fieldEffect, TRUE); +} + // Unused, duplicates of data in event_object_movement.c static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { 1, 2, 2, 2, 2, 2, 2, 2, diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 0f087799e..1c93f2706 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -20,6 +20,7 @@ #include "strings.h" #include "task.h" #include "tv.h" +#include "follow_me.h" #include "wild_encounter.h" #include "constants/abilities.h" #include "constants/event_objects.h" @@ -610,6 +611,9 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) { if (collision == COLLISION_LEDGE_JUMP) { + if (gSaveBlock2Ptr->follower.inProgress && gObjectEvents[gSaveBlock2Ptr->follower.objId].invisible == TRUE) + gSaveBlock2Ptr->follower.delayedState = MOVEMENT_ACTION_JUMP_2_DOWN; + FollowerPokeballSparkle(); PlayerJumpLedge(direction); return; } @@ -637,12 +641,14 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_UNDERWATER) && (heldKeys & B_BUTTON) && FlagGet(FLAG_SYS_B_DASH) && IsRunningDisallowed(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior) == 0) { + FollowerPokeballSparkle(); PlayerRun(direction); gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_DASH; return; } else { + FollowerPokeballSparkle(); PlayerWalkNormal(direction); } } @@ -1212,32 +1218,32 @@ void StopPlayerAvatar(void) } } -u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender) +u16 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender) { return sRivalAvatarGfxIds[state][gender]; } -u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender) +u16 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender) { return sPlayerAvatarGfxIds[state][gender]; } -u8 GetFRLGAvatarGraphicsIdByGender(u8 gender) +u16 GetFRLGAvatarGraphicsIdByGender(u8 gender) { return sFRLGAvatarGfxIds[gender]; } -u8 GetRSAvatarGraphicsIdByGender(u8 gender) +u16 GetRSAvatarGraphicsIdByGender(u8 gender) { return sRSAvatarGfxIds[gender]; } -u8 GetPlayerAvatarGraphicsIdByStateId(u8 state) +u16 GetPlayerAvatarGraphicsIdByStateId(u8 state) { return GetPlayerAvatarGraphicsIdByStateIdAndGender(state, gPlayerAvatar.gender); } -u8 unref_GetRivalAvatarGenderByGraphicsId(u8 gfxId) +u8 unref_GetRivalAvatarGenderByGraphicsId(u16 gfxId) { switch (gfxId) { @@ -1255,7 +1261,7 @@ u8 unref_GetRivalAvatarGenderByGraphicsId(u8 gfxId) } } -u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId) +u8 GetPlayerAvatarGenderByGraphicsId(u16 gfxId) { switch (gfxId) { @@ -1324,7 +1330,7 @@ void SetPlayerAvatarStateMask(u8 flags) gPlayerAvatar.flags |= flags; } -static u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender) +static u8 GetPlayerAvatarStateTransitionByGraphicsId(u16 graphicsId, u8 gender) { u8 i; @@ -1336,7 +1342,7 @@ static u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender) return PLAYER_AVATAR_FLAG_ON_FOOT; } -u8 GetPlayerAvatarGraphicsIdByCurrentState(void) +u16 GetPlayerAvatarGraphicsIdByCurrentState(void) { u8 i; u8 flags = gPlayerAvatar.flags; @@ -1349,7 +1355,7 @@ u8 GetPlayerAvatarGraphicsIdByCurrentState(void) return 0; } -void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 transitionFlag) +void SetPlayerAvatarExtraStateTransition(u16 graphicsId, u8 transitionFlag) { u8 stateFlag = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender); @@ -1387,6 +1393,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) gPlayerAvatar.spriteId = objectEvent->spriteId; gPlayerAvatar.gender = gender; SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_CONTROLLABLE | PLAYER_AVATAR_FLAG_ON_FOOT); + CreateFollowerAvatar(); } void SetPlayerInvisibility(bool8 invisible) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 616444116..ce4d3ed2f 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -27,6 +27,7 @@ #include "sound.h" #include "start_menu.h" #include "task.h" +#include "follow_me.h" #include "text.h" #include "constants/event_object_movement.h" #include "constants/event_objects.h" @@ -42,8 +43,6 @@ static void FillPalBufferWhite(void); static void Task_ExitDoor(u8); static bool32 WaitForWeatherFadeIn(void); static void Task_SpinEnterWarp(u8 taskId); -static void Task_WarpAndLoadMap(u8 taskId); -static void Task_DoDoorWarp(u8 taskId); static void Task_EnableScriptAfterMusicFade(u8 taskId); // data[0] is used universally by tasks in this file as a state for switches @@ -111,7 +110,7 @@ void WarpFadeOutScreen(void) } } -static void SetPlayerVisibility(bool8 visible) +void SetPlayerVisibility(bool8 visible) { SetPlayerInvisibility(!visible); } @@ -275,6 +274,7 @@ void FieldCB_DefaultWarpExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); SetUpWarpExitTask(); + FollowMe_WarpSetEnd(); LockPlayerFieldControls(); } @@ -323,6 +323,7 @@ static void Task_ExitDoor(u8 taskId) switch (task->tState) { case 0: + HideFollower(); SetPlayerVisibility(FALSE); FreezeObjectEvents(); PlayerGetDestCoords(x, y); @@ -343,15 +344,26 @@ static void Task_ExitDoor(u8 taskId) if (IsPlayerStandingStill()) { u8 objEventId; - task->data[1] = FieldAnimateDoorClose(*x, *y); + + #if FAST_FOLLOWERS == TRUE + if (!gSaveBlock2Ptr->follower.inProgress) + #endif + task->data[1] = FieldAnimateDoorClose(*x, *y); + objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objEventId]); task->tState = 3; } break; case 3: + #if FAST_FOLLOWERS == TRUE + if (gSaveBlock2Ptr->follower.inProgress || task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + #else if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + #endif { + FollowMe_SetIndicatorToComeOutDoor(); + FollowMe_WarpSetEnd(); UnfreezeObjectEvents(); task->tState = 4; } @@ -359,6 +371,12 @@ static void Task_ExitDoor(u8 taskId) case 4: UnlockPlayerFieldControls(); DestroyTask(taskId); + + #if FAST_FOLLOWERS == TRUE + if (gSaveBlock2Ptr->follower.inProgress) + FlagSet(FLAG_FOLLOWER_IN_BUILDING); + #endif + break; } } @@ -372,6 +390,7 @@ static void Task_ExitNonAnimDoor(u8 taskId) switch (task->tState) { case 0: + HideFollower(); SetPlayerVisibility(FALSE); FreezeObjectEvents(); PlayerGetDestCoords(x, y); @@ -390,6 +409,8 @@ static void Task_ExitNonAnimDoor(u8 taskId) case 2: if (IsPlayerStandingStill()) { + FollowMe_SetIndicatorToComeOutDoor(); + FollowMe_WarpSetEnd(); UnfreezeObjectEvents(); task->tState = 3; } @@ -414,6 +435,11 @@ static void Task_ExitNonDoor(u8 taskId) if (WaitForWeatherFadeIn()) { UnfreezeObjectEvents(); + + // Account for follower exiting pokeball after scripted warp + if (gSaveBlock2Ptr->follower.createSurfBlob != 2) + gSaveBlock2Ptr->follower.comeOutDoorStairs = 2; + UnlockPlayerFieldControls(); DestroyTask(taskId); } @@ -643,7 +669,7 @@ void ReturnFromLinkRoom(void) CreateTask(Task_ReturnToWorldFromLinkRoom, 10); } -static void Task_WarpAndLoadMap(u8 taskId) +void Task_WarpAndLoadMap(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -674,59 +700,6 @@ static void Task_WarpAndLoadMap(u8 taskId) } } -static void Task_DoDoorWarp(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - s16 *x = &task->data[2]; - s16 *y = &task->data[3]; - - switch (task->tState) - { - case 0: - FreezeObjectEvents(); - PlayerGetDestCoords(x, y); - PlaySE(GetDoorSoundEffect(*x, *y - 1)); - task->data[1] = FieldAnimateDoorOpen(*x, *y - 1); - task->tState = 1; - break; - case 1: - if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) - { - u8 objEventId; - objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); - ObjectEventClearHeldMovementIfActive(&gObjectEvents[objEventId]); - objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); - ObjectEventSetHeldMovement(&gObjectEvents[objEventId], MOVEMENT_ACTION_WALK_NORMAL_UP); - task->tState = 2; - } - break; - case 2: - if (IsPlayerStandingStill()) - { - u8 objEventId; - task->data[1] = FieldAnimateDoorClose(*x, *y - 1); - objEventId = GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0); - ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objEventId]); - SetPlayerVisibility(FALSE); - task->tState = 3; - } - break; - case 3: - if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) - { - task->tState = 4; - } - break; - case 4: - TryFadeOutOldMapMusic(); - WarpFadeOutScreen(); - PlayRainStoppingSoundEffect(); - task->tState = 0; - task->func = Task_WarpAndLoadMap; - break; - } -} - static void Task_DoContestHallWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1010,6 +983,7 @@ static void Task_SpinEnterWarp(u8 taskId) case 1: if (WaitForWeatherFadeIn() && IsPlayerSpinEntranceActive() != TRUE) { + //FollowMe_WarpSetEnd(); UnfreezeObjectEvents(); UnlockPlayerFieldControls(); DestroyTask(taskId); diff --git a/src/field_specials.c b/src/field_specials.c index 6fdec2a5f..91a629902 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -101,9 +101,9 @@ void SetPlayerGotFirstFans(void); u16 GetNumFansOfPlayerInTrainerFanClub(void); static void RecordCyclingRoadResults(u32, u8); -static void LoadLinkPartnerObjectEventSpritePalette(u8, u8, u8); -static void Task_PetalburgGymSlideOpenRoomDoors(u8); -static void PetalburgGymSetDoorMetatiles(u8, u16); +static void LoadLinkPartnerObjectEventSpritePalette(u16 graphicsId, u8 localEventId, u8 paletteNum); +static void Task_PetalburgGymSlideOpenRoomDoors(u8 taskId); +static void PetalburgGymSetDoorMetatiles(u8 roomNumber, u16 metatileId); static void Task_PCTurnOnEffect(u8); static void PCTurnOnEffect(struct Task *); static void PCTurnOnEffect_SetMetatile(s16, s8, s8); @@ -513,7 +513,7 @@ void SpawnLinkPartnerObjectEvent(void) }; u8 myLinkPlayerNumber; u8 playerFacingDirection; - u8 linkSpriteId; + u16 linkSpriteId; u8 i; myLinkPlayerNumber = GetMultiplayerId(); @@ -574,7 +574,7 @@ void SpawnLinkPartnerObjectEvent(void) } } -static void LoadLinkPartnerObjectEventSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum) +static void LoadLinkPartnerObjectEventSpritePalette(u16 graphicsId, u8 localEventId, u8 paletteNum) { u8 adjustedPaletteNum; // Note: This temp var is necessary; paletteNum += 6 doesn't match. @@ -1548,6 +1548,21 @@ u8 GetLeadMonIndex(void) return 0; } +u8 GetLeadMonNotFaintedIndex(void) +{ + u8 i; + u8 partyCount = CalculatePlayerPartyCount(); + for(i = 0; i < partyCount; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG, NULL) != 0 + && GetMonData(&gPlayerParty[i], MON_DATA_HP, NULL) != 0) + { + return i; + } + } + return 0; +} + u16 ScriptGetPartyMonSpecies(void) { return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES_OR_EGG, NULL); diff --git a/src/field_weather.c b/src/field_weather.c index 92863dee5..c8d02da68 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -19,13 +19,6 @@ #define DROUGHT_COLOR_INDEX(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00)) -enum -{ - COLOR_MAP_NONE, - COLOR_MAP_DARK_CONTRAST, - COLOR_MAP_CONTRAST, -}; - struct RGBColor { u16 r:5; @@ -111,7 +104,7 @@ void (*const gWeatherPalStateFuncs[])(void) = // This table specifies which of the color maps should be // applied to each of the background and sprite palettes. -static const u8 sBasePaletteColorMapTypes[32] = +EWRAM_DATA u8 sBasePaletteColorMapTypes[32] = { // background palettes COLOR_MAP_DARK_CONTRAST, @@ -155,11 +148,10 @@ void StartWeather(void) { if (!FuncIsActiveTask(Task_WeatherMain)) { - u8 index = AllocSpritePalette(PALTAG_WEATHER); + u8 index = 15; CpuCopy32(gFogPalette, &gPlttBufferUnfaded[0x100 + index * 16], 32); BuildColorMaps(); gWeatherPtr->contrastColorMapSpritePalIndex = index; - gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(PALTAG_WEATHER_2); gWeatherPtr->rainSpriteCount = 0; gWeatherPtr->curRainSpriteIndex = 0; gWeatherPtr->cloudSpritesCreated = 0; @@ -279,6 +271,9 @@ static void BuildColorMaps(void) u16 baseBrightness; u32 remainingBrightness; s16 diff; + + for (i = 0; i <= 12; i++) + sBasePaletteColorMapTypes[i] = COLOR_MAP_DARK_CONTRAST; sPaletteColorMapTypes = sBasePaletteColorMapTypes; for (i = 0; i < 2; i++) @@ -864,10 +859,10 @@ static bool8 IsFirstFrameOfWeatherFadeIn(void) return FALSE; } -void LoadCustomWeatherSpritePalette(const u16 *palette) +void LoadCustomWeatherSpritePalette(const struct SpritePalette *palette) { - LoadPalette(palette, OBJ_PLTT_ID(gWeatherPtr->weatherPicSpritePalIndex), PLTT_SIZE_4BPP); - UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex); + LoadSpritePalette(palette); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(palette->tag)); } static void LoadDroughtWeatherPalette(u8 *palsIndex, u8 *palsOffset) @@ -1109,3 +1104,9 @@ void ResetPreservedPalettesInWeather(void) { sPaletteColorMapTypes = sBasePaletteColorMapTypes; } + +void UpdatePaletteGammaType(u8 index, u8 gammaType) +{ + if (index != 0xFF) + sBasePaletteColorMapTypes[index + 16] = gammaType; +} diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 05eae421e..32ceabbad 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -29,6 +29,10 @@ const u8 gWeatherAshTiles[] = INCBIN_U8("graphics/weather/ash.4bpp"); const u8 gWeatherRainTiles[] = INCBIN_U8("graphics/weather/rain.4bpp"); const u8 gWeatherSandstormTiles[] = INCBIN_U8("graphics/weather/sandstorm.4bpp"); +const struct SpritePalette sFogSpritePalette = {gFogPalette, 0x1201}; +const struct SpritePalette sCloudsSpritePalette = {gCloudsWeatherPalette, 0x1207}; +const struct SpritePalette sSandstormSpritePalette = {gSandstormWeatherPalette, 0x1204}; + //------------------------------------------------------------------------------ // WEATHER_SUNNY_CLOUDS //------------------------------------------------------------------------------ @@ -84,7 +88,7 @@ static const union AnimCmd *const sCloudSpriteAnimCmds[] = static const struct SpriteTemplate sCloudSpriteTemplate = { .tileTag = GFXTAG_CLOUD, - .paletteTag = PALTAG_WEATHER_2, + .paletteTag = 0x1207, .oam = &sCloudSpriteOamData, .anims = sCloudSpriteAnimCmds, .images = NULL, @@ -180,7 +184,7 @@ static void CreateCloudSprites(void) return; LoadSpriteSheet(&sCloudSpriteSheet); - LoadCustomWeatherSpritePalette(gCloudsWeatherPalette); + LoadCustomWeatherSpritePalette(&sCloudsSpritePalette); for (i = 0; i < NUM_CLOUD_SPRITES; i++) { spriteId = CreateSprite(&sCloudSpriteTemplate, 0, 0, 0xFF); @@ -213,7 +217,7 @@ static void DestroyCloudSprites(void) DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); } - FreeSpriteTilesByTag(GFXTAG_CLOUD); + FreeSpriteTilesByTag(0x1207); gWeatherPtr->cloudSpritesCreated = FALSE; } @@ -1483,6 +1487,7 @@ static void CreateFogHorizontalSprites(void) sprite->x = (i % 5) * 64 + 32; sprite->y = (i / 5) * 64 + 32; gWeatherPtr->sprites.s2.fogHSprites[i] = sprite; + sprite->oam.paletteNum = gWeatherPtr->contrastColorMapSpritePalIndex; } else { @@ -1641,7 +1646,7 @@ static const union AnimCmd *const sAshSpriteAnimCmds[] = static const struct SpriteTemplate sAshSpriteTemplate = { .tileTag = GFXTAG_ASH, - .paletteTag = PALTAG_WEATHER, + .paletteTag = 0x1201, .oam = &sAshSpriteOamData, .anims = sAshSpriteAnimCmds, .images = NULL, @@ -1662,6 +1667,7 @@ static void CreateAshSprites(void) if (!gWeatherPtr->ashSpritesCreated) { + LoadCustomWeatherSpritePalette(&sFogSpritePalette); for (i = 0; i < NUM_ASH_SPRITES; i++) { spriteId = CreateSpriteAtEnd(&sAshSpriteTemplate, 0, 0, 0x4E); @@ -1858,7 +1864,7 @@ static const union AnimCmd *const sFogDiagonalSpriteAnimCmds[] = static const struct SpriteTemplate sFogDiagonalSpriteTemplate = { .tileTag = GFXTAG_FOG_D, - .paletteTag = PALTAG_WEATHER, + .paletteTag = 0x1201, .oam = &sFogDiagonalSpriteOamData, .anims = sFogDiagonalSpriteAnimCmds, .images = NULL, @@ -1880,6 +1886,7 @@ static void CreateFogDiagonalSprites(void) { fogDiagonalSpriteSheet = sFogDiagonalSpriteSheet; LoadSpriteSheet(&fogDiagonalSpriteSheet); + LoadCustomWeatherSpritePalette(&sFogSpritePalette); for (i = 0; i < NUM_FOG_DIAGONAL_SPRITES; i++) { spriteId = CreateSpriteAtEnd(&sFogDiagonalSpriteTemplate, 0, (i / 5) * 64, 0xFF); @@ -2105,7 +2112,7 @@ static const union AnimCmd *const sSandstormSpriteAnimCmds[] = static const struct SpriteTemplate sSandstormSpriteTemplate = { .tileTag = GFXTAG_SANDSTORM, - .paletteTag = PALTAG_WEATHER_2, + .paletteTag = 0x1204, .oam = &sSandstormSpriteOamData, .anims = sSandstormSpriteAnimCmds, .images = NULL, @@ -2138,7 +2145,7 @@ static void CreateSandstormSprites(void) if (!gWeatherPtr->sandstormSpritesCreated) { LoadSpriteSheet(&sSandstormSpriteSheet); - LoadCustomWeatherSpritePalette(gSandstormWeatherPalette); + LoadCustomWeatherSpritePalette(&sSandstormSpritePalette); for (i = 0; i < NUM_SANDSTORM_SPRITES; i++) { spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, 0, (i / 5) * 64, 1); diff --git a/src/fieldmap.c b/src/fieldmap.c index 89d6b602c..df4db47b5 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -36,7 +36,7 @@ struct BackupMapLayout gBackupMapLayout; static const struct ConnectionFlags sDummyConnectionFlags = {0}; static void InitMapLayoutData(struct MapHeader *mapHeader); -static void InitBackupMapLayoutData(u16 *map, u16 width, u16 height); +static void InitBackupMapLayoutData(const u16 *map, u16 width, u16 height); static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHeader const *connectedMapHeader, s32 offset); @@ -44,14 +44,14 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader); static void LoadSavedMapView(void); static bool8 SkipCopyingMetatileFromSavedMap(u16 *mapBlock, u16 mapWidth, u8 yMode); -static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y); -static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection); +static const struct MapConnection *GetIncomingConnection(u8 direction, int x, int y); +static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, const struct MapConnection *connection); static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset); #define GetBorderBlockAt(x, y)({ \ u16 block; \ int i; \ - u16 *border = gMapHeader.mapLayout->border; \ + const u16 *border = gMapHeader.mapLayout->border; /* Unused, they read it again below */ \ \ i = (x + 1) & 1; \ i += ((y + 1) & 1) * 2; \ @@ -63,7 +63,7 @@ static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, #define GetMapGridBlockAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.width * y] : GetBorderBlockAt(x, y)) -struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) +const struct MapHeader *const GetMapHeaderFromConnection(const struct MapConnection *connection) { return Overworld_GetMapHeaderByGroupAndId(connection->mapGroup, connection->mapNum); } @@ -116,7 +116,7 @@ static void InitMapLayoutData(struct MapHeader *mapHeader) } } -static void InitBackupMapLayoutData(u16 *map, u16 width, u16 height) +static void InitBackupMapLayoutData(const u16 *map, u16 width, u16 height) { u16 *dest; int y; @@ -133,7 +133,7 @@ static void InitBackupMapLayoutData(u16 *map, u16 width, u16 height) static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader) { int count; - struct MapConnection *connection; + const struct MapConnection *connection; int i; if (mapHeader->connections) @@ -171,7 +171,7 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader) static void FillConnection(int x, int y, struct MapHeader const *connectedMapHeader, int x2, int y2, int width, int height) { int i; - u16 *src; + const u16 *src; u16 *dest; int mapWidth; @@ -619,7 +619,7 @@ bool32 CanCameraMoveInDirection(int direction) return TRUE; } -static void SetPositionFromConnection(struct MapConnection *connection, int direction, int x, int y) +static void SetPositionFromConnection(const struct MapConnection *connection, int direction, int x, int y) { struct MapHeader const *mapHeader; mapHeader = GetMapHeaderFromConnection(connection); @@ -647,7 +647,7 @@ static void SetPositionFromConnection(struct MapConnection *connection, int dire bool8 CameraMove(int x, int y) { int direction; - struct MapConnection *connection; + const struct MapConnection *connection; int old_x, old_y; gCamera.active = FALSE; direction = GetPostCameraMoveMapBorderId(x, y); @@ -675,11 +675,11 @@ bool8 CameraMove(int x, int y) return gCamera.active; } -static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y) +static const struct MapConnection *GetIncomingConnection(u8 direction, int x, int y) { int count; int i; - struct MapConnection *connection; + const struct MapConnection *connection; const struct MapConnections *connections = gMapHeader.connections; #ifdef UBFIX // UB: Multiple possible null dereferences @@ -696,7 +696,7 @@ static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y) return NULL; } -static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection) +static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, const struct MapConnection *connection) { struct MapHeader const *mapHeader; mapHeader = GetMapHeaderFromConnection(connection); @@ -737,7 +737,7 @@ static int IsCoordInConnectingMap(int coord, int max) return FALSE; } -static int IsPosInConnectingMap(struct MapConnection *connection, int x, int y) +static int IsPosInConnectingMap(const struct MapConnection *connection, int x, int y) { struct MapHeader const *mapHeader; mapHeader = GetMapHeaderFromConnection(connection); @@ -753,10 +753,10 @@ static int IsPosInConnectingMap(struct MapConnection *connection, int x, int y) return FALSE; } -struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y) +const struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y) { int count; - struct MapConnection *connection; + const struct MapConnection *connection; int i; u8 direction; if (!gMapHeader.connections) diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 27689b02e..4e4b7023b 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -27,7 +27,8 @@ static void Task_DoFieldMove_RunFunc(u8 taskId); static void FieldCallback_RockSmash(void); static void FieldMove_RockSmash(void); -bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) +// text +bool8 CheckObjectGraphicsInFrontOfPlayer(u16 graphicsId) { u8 objEventId; diff --git a/src/follow_me.c b/src/follow_me.c new file mode 100644 index 000000000..31af6212e --- /dev/null +++ b/src/follow_me.c @@ -0,0 +1,1534 @@ +#include "global.h" +#include "follow_me.h" +#include "event_object_movement.h" +#include "field_door.h" +#include "field_effect.h" +#include "field_effect_helpers.h" +#include "field_player_avatar.h" +#include "field_control_avatar.h" +#include "field_screen_effect.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "fldeff_misc.h" +#include "item.h" +#include "task.h" +#include "metatile_behavior.h" +#include "overworld.h" +#include "script.h" +#include "event_data.h" +#include "sound.h" +#include "trig.h" +#include "metatile_behavior.h" +#include "constants/event_object_movement.h" +#include "constants/event_objects.h" +#include "constants/songs.h" +#include "constants/map_types.h" +#include "constants/field_effects.h" +#include "constants/metatile_behaviors.h" +/* + -FollowMe_StairsMoveHook ? + -FollowMe_WarpStairsEndHook ? +*/ + +/* +Known Issues: + -follower gets messed up if you go into a map with a maximum number of event objects + -inherits incorrect palette, may get directionally confused +*/ + +// Defines +#define PLAYER_AVATAR_FLAG_BIKE PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE + +struct FollowerSpriteGraphics +{ + u16 normalId; + u16 machBikeId; + u16 acroBikeId; + u16 surfId; + u16 underwaterId; +}; + +// EWRAM +//EWRAM_DATA struct Follower gSaveBlock2Ptr->follower = {0}; + +// Function Declarations +static u8 GetFollowerMapObjId(void); +static u16 GetFollowerSprite(void); +static void TryUpdateFollowerSpriteUnderwater(void); +static void Task_ReallowPlayerMovement(u8 taskId); +static u8 DetermineFollowerDirection(struct ObjectEvent* player, struct ObjectEvent* follower); +static void PlayerLogCoordinates(struct ObjectEvent* player); +static u8 DetermineFollowerState(struct ObjectEvent* follower, u8 state, u8 direction); +static bool8 IsStateMovement(u8 state); +static u8 ReturnFollowerDelayedState(u8 direction); +static void SetSurfJump(void); +static void Task_BindSurfBlobToFollower(u8 taskId); +static void SetUpSurfBlobFieldEffect(struct ObjectEvent* npc); +static void SetSurfDismount(void); +static void Task_FinishSurfDismount(u8 taskId); +static void Task_FollowerOutOfDoor(u8 taskId); +static void Task_FollowerHandleIndoorStairs(u8 taskId); +static void Task_FollowerHandleEscalator(u8 taskId); +static void Task_FollowerHandleEscalatorFinish(u8 taskId); +static void CalculateFollowerEscalatorTrajectoryUp(struct Task *task); +static void CalculateFollowerEscalatorTrajectoryDown(struct Task *task); +static void TurnNPCIntoFollower(u8 localId, u16 followerFlags); + +// Const Data +static const struct FollowerSpriteGraphics gFollowerAlternateSprites[] = +{ + //FORMAT: + //{WALKING/RUNNING SPRITE ID, MACH BIKE SPRITE ID, ACRO BIKE SPRITE ID, SURFING SPRITE ID}, + [0] = + { + .normalId = OBJ_EVENT_GFX_RIVAL_MAY_NORMAL, + .machBikeId = OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE, + .acroBikeId = OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE, + .surfId = OBJ_EVENT_GFX_RIVAL_MAY_SURFING, + .underwaterId = OBJ_EVENT_GFX_MAY_UNDERWATER, + }, + +}; + +// Functions +u8 GetFollowerObjectId(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return OBJECT_EVENTS_COUNT; + + return gSaveBlock2Ptr->follower.objId; +} + +u8 GetFollowerLocalId(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return 0; + + return gObjectEvents[gSaveBlock2Ptr->follower.objId].localId; +} + +const u8* GetFollowerScriptPointer(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return NULL; + + return gSaveBlock2Ptr->follower.script; +} + +void HideFollower(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + if (gSaveBlock2Ptr->follower.createSurfBlob == 2 || gSaveBlock2Ptr->follower.createSurfBlob == 3) + { + SetSurfBlob_BobState(gObjectEvents[GetFollowerMapObjId()].fieldEffectSpriteId, 2); + DestroySprite(&gSprites[gObjectEvents[GetFollowerMapObjId()].fieldEffectSpriteId]); + gObjectEvents[GetFollowerMapObjId()].fieldEffectSpriteId = 0; //Unbind + } + + gObjectEvents[GetFollowerMapObjId()].invisible = TRUE; +} + +/* +void IsFollowerStoppingRockClimb(void) +{ + gSpecialVar_Result = FALSE; + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + gSpecialVar_Result = (gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_CAN_ROCK_CLIMB) == 0; +} +*/ + +void FollowMe_SetIndicatorToComeOutDoor(void) +{ + if (gSaveBlock2Ptr->follower.inProgress) + gSaveBlock2Ptr->follower.comeOutDoorStairs = 1; +} + +void FollowMe_SetIndicatorToRecreateSurfBlob(void) +{ + if (gSaveBlock2Ptr->follower.inProgress) + gSaveBlock2Ptr->follower.createSurfBlob = 2; +} + +void FollowMe_TryRemoveFollowerOnWhiteOut(void) +{ + if (gSaveBlock2Ptr->follower.inProgress) + { + if (gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_CLEAR_ON_WHITE_OUT) + gSaveBlock2Ptr->follower.inProgress = FALSE; + else + FollowMe_WarpSetEnd(); + } +} + +static u8 GetFollowerMapObjId(void) +{ + return gSaveBlock2Ptr->follower.objId; +} + +static u16 GetFollowerSprite(void) +{ + u32 i; + + switch (gSaveBlock2Ptr->follower.currentSprite) + { + case FOLLOWER_SPRITE_INDEX_MACH_BIKE: + for (i = 0; i < NELEMS(gFollowerAlternateSprites); i++) + { + if (gFollowerAlternateSprites[i].normalId == gSaveBlock2Ptr->follower.graphicsId) + return gFollowerAlternateSprites[i].machBikeId; + } + break; + case FOLLOWER_SPRITE_INDEX_ACRO_BIKE: + for (i = 0; i < NELEMS(gFollowerAlternateSprites); i++) + { + if (gFollowerAlternateSprites[i].normalId == gSaveBlock2Ptr->follower.graphicsId) + return gFollowerAlternateSprites[i].acroBikeId; + } + break; + case FOLLOWER_SPRITE_INDEX_SURF: + for (i = 0; i < NELEMS(gFollowerAlternateSprites); i++) + { + if (gFollowerAlternateSprites[i].normalId == gSaveBlock2Ptr->follower.graphicsId) + return gFollowerAlternateSprites[i].surfId; + } + break; + case FOLLOWER_SPRITE_INDEX_UNDERWATER: + for (i = 0; i < NELEMS(gFollowerAlternateSprites); i++) + { + if (gFollowerAlternateSprites[i].normalId == gSaveBlock2Ptr->follower.graphicsId) + return gFollowerAlternateSprites[i].underwaterId; + } + break; + } + + return gSaveBlock2Ptr->follower.graphicsId; +} + +static void TryUpdateFollowerSpriteUnderwater(void) +{ + if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) + { + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_UNDERWATER); + + follower = &gObjectEvents[GetFollowerMapObjId()]; //Can change on reload sprite + follower->fieldEffectSpriteId = StartUnderwaterSurfBlobBobbing(follower->spriteId); + } +} + +//Actual Follow Me +void FollowMe(struct ObjectEvent* npc, u8 state, bool8 ignoreScriptActive) +{ + struct ObjectEvent* player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + u8 dir; + u8 newState; + u8 taskId; + + if (player != npc) //Only when the player moves + return; + else if (!gSaveBlock2Ptr->follower.inProgress) + return; + else if (ArePlayerFieldControlsLocked() && !ignoreScriptActive) + return; //Don't follow during a script + + + // fix post-surf jump + if ((gSaveBlock2Ptr->follower.currentSprite == FOLLOWER_SPRITE_INDEX_SURF) && !(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) && follower->fieldEffectSpriteId == 0) + { + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_NORMAL); + gSaveBlock2Ptr->follower.createSurfBlob = 0; + } + + //Check if state would cause hidden follower to reappear + if (IsStateMovement(state) && gSaveBlock2Ptr->follower.warpEnd) + { + gSaveBlock2Ptr->follower.warpEnd = 0; + + #if FAST_FOLLOWERS == TRUE + if (gSaveBlock2Ptr->follower.comeOutDoorStairs == 1 || (FlagGet(FLAG_FOLLOWER_IN_BUILDING) && gMapHeader.mapType != MAP_TYPE_INDOOR)) + { + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_BIKE)) + { + FlagClear(FLAG_FOLLOWER_IN_BUILDING); + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + FieldAnimateDoorClose(player->currentCoords.x, player->currentCoords.y - 1); + } + else + { + #else + if (gSaveBlock2Ptr->follower.comeOutDoorStairs == 1) + { + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_BIKE)) + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + else + { + gPlayerAvatar.preventStep = TRUE; + #endif + taskId = CreateTask(Task_FollowerOutOfDoor, 1); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[2] = follower->currentCoords.x; + gTasks[taskId].data[3] = follower->currentCoords.y; + goto RESET; + } + } + else if (gSaveBlock2Ptr->follower.comeOutDoorStairs == 2) + { + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + } + + // This makes sure the follower is still invisible after diving or surfacing or on a bike + if(!(TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER) || TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_BIKE))) + follower->invisible = FALSE; + MoveObjectEventToMapCoords(follower, player->currentCoords.x, player->currentCoords.y); + ObjectEventTurn(follower, player->facingDirection); //The follower should be facing the same direction as the player when it comes out of hiding + + /*if (gSaveBlock2Ptr->follower.createSurfBlob == 2) //Recreate surf blob + { + SetUpSurfBlobFieldEffect(follower); + follower->fieldEffectSpriteId = FieldEffectStart(FLDEFF_SURF_BLOB); + SetSurfBlob_BobState(follower->fieldEffectSpriteId, 1); + } + else + { + TryUpdateFollowerSpriteUnderwater(); + }*/ + } + + dir = DetermineFollowerDirection(player, follower); + + if (dir == DIR_NONE) + goto RESET; + + newState = DetermineFollowerState(follower, state, dir); + if (newState == MOVEMENT_INVALID) + goto RESET; + + /*if (gSaveBlock2Ptr->follower.createSurfBlob == 1) //Get on Surf Blob + { + gSaveBlock2Ptr->follower.createSurfBlob = 2; + gPlayerAvatar.preventStep = TRUE; //Wait for finish + SetSurfJump(); + goto RESET; + } + else if (gSaveBlock2Ptr->follower.createSurfBlob == 3) //Get off Surf Blob + { + gSaveBlock2Ptr->follower.createSurfBlob = 0; + gPlayerAvatar.preventStep = TRUE; //Wait for finish + SetSurfDismount(); + goto RESET; + }*/ + + ObjectEventClearHeldMovementIfActive(follower); + ObjectEventSetHeldMovement(follower, newState); + PlayerLogCoordinates(player); + + switch (newState) + { + case MOVEMENT_ACTION_JUMP_2_DOWN ... MOVEMENT_ACTION_JUMP_2_RIGHT: + if(follower->invisible == FALSE) + { + CreateTask(Task_ReallowPlayerMovement, 1); //Synchronize movements on stairs and ledges + gPlayerAvatar.preventStep = TRUE; //allow follower to catch up + } + } + +RESET: + ObjectEventClearHeldMovementIfFinished(follower); +} + +static void Task_ReallowPlayerMovement(u8 taskId) +{ + bool8 animStatus = ObjectEventClearHeldMovementIfFinished(&gObjectEvents[GetFollowerMapObjId()]); + if (animStatus == 0 && gObjectEvents[GetFollowerMapObjId()].movementActionId != MOVEMENT_ACTION_FOLLOWING_POKEMON) + { + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH) + && ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gPlayerAvatar.objectEventId])) + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); //Temporarily stop running + return; + } + + gPlayerAvatar.preventStep = FALSE; + DestroyTask(taskId); +} + +static u8 DetermineFollowerDirection(struct ObjectEvent* player, struct ObjectEvent* follower) +{ + //Move the follower towards the player + s8 delta_x = follower->currentCoords.x - player->currentCoords.x; + s8 delta_y = follower->currentCoords.y - player->currentCoords.y; + + if (delta_x < 0) + return DIR_EAST; + else if (delta_x > 0) + return DIR_WEST; + + if (delta_y < 0) + return DIR_SOUTH; + else if (delta_y > 0) + return DIR_NORTH; + + return DIR_NONE; +} + +static void PlayerLogCoordinates(struct ObjectEvent* player) +{ + gSaveBlock2Ptr->follower.log.x = player->currentCoords.x; + gSaveBlock2Ptr->follower.log.y = player->currentCoords.y; +} + +#define RETURN_STATE(state, dir) return newState == MOVEMENT_INVALID ? state + (dir - 1) : ReturnFollowerDelayedState(dir - 1); +static u8 DetermineFollowerState(struct ObjectEvent* follower, u8 state, u8 direction) +{ + u8 newState = MOVEMENT_INVALID; + #if SIDEWAYS_STAIRS_IMPLEMENTED == TRUE + u8 collision = COLLISION_NONE; + s16 followerX = follower->currentCoords.x; + s16 followerY = follower->currentCoords.y; + u8 currentBehavior = MapGridGetMetatileBehaviorAt(followerX, followerY); + u8 nextBehavior; + + MoveCoords(direction, &followerX, &followerY); + nextBehavior = MapGridGetMetatileBehaviorAt(followerX, followerY); + #endif + + if (IsStateMovement(state) && gSaveBlock2Ptr->follower.delayedState) + newState = gSaveBlock2Ptr->follower.delayedState + direction; + + //Clear ice tile stuff + follower->disableAnim = FALSE; //follower->field1 &= 0xFB; + + #if SIDEWAYS_STAIRS_IMPLEMENTED == TRUE + // clear overwrite movement + follower->directionOverwrite = DIR_NONE; + + //sideways stairs checks + collision = GetSidewaysStairsCollision(follower, direction, currentBehavior, nextBehavior, collision); + switch (collision) + { + case COLLISION_SIDEWAYS_STAIRS_TO_LEFT: + follower->directionOverwrite = GetLeftSideStairsDirection(direction); + break; + case COLLISION_SIDEWAYS_STAIRS_TO_RIGHT: + follower->directionOverwrite = GetRightSideStairsDirection(direction); + break; + } + #endif + + switch (state) + { + case MOVEMENT_ACTION_WALK_SLOW_DOWN ... MOVEMENT_ACTION_WALK_SLOW_RIGHT: + // Slow walk + RETURN_STATE(MOVEMENT_ACTION_WALK_SLOW_DOWN, direction); + + case MOVEMENT_ACTION_WALK_NORMAL_DOWN ... MOVEMENT_ACTION_WALK_NORMAL_RIGHT: + // normal walk + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + + case MOVEMENT_ACTION_JUMP_2_DOWN ... MOVEMENT_ACTION_JUMP_2_RIGHT: + // If the follower is invisible due to bike riding, just walk + if(!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_BIKE)) + { + // Ledge jump + if (((newState - direction) >= MOVEMENT_ACTION_JUMP_2_DOWN && (newState - direction) <= MOVEMENT_ACTION_JUMP_2_RIGHT) + || ((newState - direction) >= 0x84 && (newState - direction) <= 0x87)) //Previously jumped + { + newState = MOVEMENT_INVALID; + RETURN_STATE(MOVEMENT_ACTION_JUMP_2_DOWN, direction); //Jump right away + } + + gSaveBlock2Ptr->follower.delayedState = MOVEMENT_ACTION_JUMP_2_DOWN; + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + } + else + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + + case MOVEMENT_ACTION_WALK_FAST_DOWN ... MOVEMENT_ACTION_WALK_FAST_RIGHT: + // Handle player on waterfall + if (PlayerIsUnderWaterfall(&gObjectEvents[gPlayerAvatar.objectEventId]) && (state == MOVEMENT_ACTION_WALK_FAST_UP)) + return MOVEMENT_INVALID; + + //Handle ice tile (some walking animation) - Set a bit to freeze the follower's animation + if (MetatileBehavior_IsIce(follower->currentMetatileBehavior) || MetatileBehavior_IsTrickHouseSlipperyFloor(follower->currentMetatileBehavior)) + follower->disableAnim = TRUE; + + RETURN_STATE(MOVEMENT_ACTION_WALK_FAST_DOWN, direction); + + case MOVEMENT_ACTION_WALK_FASTER_DOWN ... MOVEMENT_ACTION_WALK_FASTER_RIGHT: + // mach bike + if (MetatileBehavior_IsIce(follower->currentMetatileBehavior) || MetatileBehavior_IsTrickHouseSlipperyFloor(follower->currentMetatileBehavior)) + follower->disableAnim = TRUE; + + RETURN_STATE(MOVEMENT_ACTION_WALK_FASTER_DOWN, direction); + + // acro bike + case MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN ... MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT: + // Handle player on waterfall + if (PlayerIsUnderWaterfall(&gObjectEvents[gPlayerAvatar.objectEventId]) && IsPlayerSurfingNorth()) + //if (PlayerIsUnderWaterfall(&gObjectEvents[gPlayerAvatar.objectEventId]) && (state == MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN)) + return MOVEMENT_INVALID; + + RETURN_STATE(MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN, direction); //regular movement + + + case MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN ... MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT: + if(follower->invisible == FALSE) + { + switch(state) + { + case MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN ... MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN ... MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN ... MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN ... MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN ... MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN, direction); + case MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN ... MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN, direction); + case MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN ... MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN ... MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN ... MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN, direction); + case MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN ... MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN, direction); + } + } + else + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + + // Sliding + case MOVEMENT_ACTION_SLIDE_DOWN ... MOVEMENT_ACTION_SLIDE_RIGHT: + RETURN_STATE(MOVEMENT_ACTION_SLIDE_DOWN, direction); + case MOVEMENT_ACTION_PLAYER_RUN_DOWN ... MOVEMENT_ACTION_PLAYER_RUN_RIGHT: + //Running frames + if (gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_HAS_RUNNING_FRAMES) + RETURN_STATE(MOVEMENT_ACTION_PLAYER_RUN_DOWN, direction); + + RETURN_STATE(MOVEMENT_ACTION_WALK_FAST_DOWN, direction); + case MOVEMENT_ACTION_JUMP_SPECIAL_DOWN ... MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT: + gSaveBlock2Ptr->follower.delayedState = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN; + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + case MOVEMENT_ACTION_JUMP_DOWN ... MOVEMENT_ACTION_JUMP_RIGHT: + if(!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_BIKE)) + gSaveBlock2Ptr->follower.delayedState = MOVEMENT_ACTION_JUMP_DOWN; + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + + // run slow + #ifdef MOVEMENT_ACTION_RUN_DOWN_SLOW + case MOVEMENT_ACTION_RUN_DOWN_SLOW ... MOVEMENT_ACTION_RUN_RIGHT_SLOW: + if (gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_HAS_RUNNING_FRAMES) + RETURN_STATE(MOVEMENT_ACTION_RUN_DOWN_SLOW, direction); + + RETURN_STATE(MOVEMENT_ACTION_WALK_NORMAL_DOWN, direction); + #endif + + default: + return MOVEMENT_INVALID; + } + + return newState; +} + +static bool8 IsStateMovement(u8 state) +{ + switch (state) + { + case MOVEMENT_ACTION_FACE_DOWN: + case MOVEMENT_ACTION_FACE_UP: + case MOVEMENT_ACTION_FACE_LEFT: + case MOVEMENT_ACTION_FACE_RIGHT: + //case MOVEMENT_ACTION_FACE_DOWN_FAST: + //case MOVEMENT_ACTION_FACE_UP_FAST: + //case MOVEMENT_ACTION_FACE_LEFT_FAST: + //case MOVEMENT_ACTION_FACE_RIGHT_FAST: + case MOVEMENT_ACTION_DELAY_1: + case MOVEMENT_ACTION_DELAY_2: + case MOVEMENT_ACTION_DELAY_4: + case MOVEMENT_ACTION_DELAY_8: + case MOVEMENT_ACTION_DELAY_16: + case MOVEMENT_ACTION_FACE_PLAYER: + case MOVEMENT_ACTION_FACE_AWAY_PLAYER: + case MOVEMENT_ACTION_LOCK_FACING_DIRECTION: + case MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION: + case MOVEMENT_ACTION_SET_INVISIBLE: + case MOVEMENT_ACTION_SET_VISIBLE: + case MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK: + case MOVEMENT_ACTION_EMOTE_QUESTION_MARK: + case MOVEMENT_ACTION_EMOTE_HEART: + //case MOVEMENT_ACTION_EMOTE_CROSS: + //case MOVEMENT_ACTION_EMOTE_DOUBLE_EXCLAMATION_MARK: + //case MOVEMENT_ACTION_EMOTE_HAPPY: + case MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN: + case MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP: + case MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT: + case MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT: + case MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN: + case MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP: + case MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT: + case MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT: + case MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN: + case MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP: + case MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT: + case MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT: + case MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN: + case MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP: + case MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT: + case MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT: + case MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN: + case MOVEMENT_ACTION_JUMP_IN_PLACE_UP: + case MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT: + case MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT: + case MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP: + case MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN: + case MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT: + case MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT: + return FALSE; + } + + return TRUE; +} + +static u8 ReturnFollowerDelayedState(u8 direction) +{ + u8 newState = gSaveBlock2Ptr->follower.delayedState; + gSaveBlock2Ptr->follower.delayedState = 0; + + /* + #ifdef MOVEMENT_ACTION_WALK_STAIRS_DIAGONAL_UP_LEFT + switch (newState) + { + case MOVEMENT_ACTION_WALK_STAIRS_DIAGONAL_UP_LEFT ... MOVEMENT_ACTION_WALK_STAIRS_DIAGONAL_DOWN_RIGHT: + case MOVEMENT_ACTION_WALK_STAIRS_DIAGONAL_UP_LEFT_RUNNING ... MOVEMENT_ACTION_WALK_STAIRS_DIAGONAL_DOWN_RIGHT_RUNNING: + case MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP_LEFT ... MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN_RIGHT: + return newState; //Each its own movement, so don't modify direction + } + #endif + */ + + return newState + direction; +} + +#define LEDGE_FRAMES_MULTIPLIER 2 + +//extern void (**stepspeeds[5])(struct Sprite*, u8); +//extern const u16 stepspeed_seq_length[5]; +void FollowMe_Ledges(struct ObjectEvent* npc, struct Sprite* sprite, u16* ledgeFramesTbl) +{ + u8 speed; + u16 frameCount; + u8 currentFrame; + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + if (follower == npc) + speed = gPlayerAvatar.runningState ? 3 : 1; + else + speed = 0; + + //Calculate the frames for the jump + frameCount = GetMiniStepCount(speed) * LEDGE_FRAMES_MULTIPLIER; //in event_object_movement.c + ledgeFramesTbl[sprite->data[4]] = frameCount; + + //Call the step shifter + currentFrame = sprite->data[6] / LEDGE_FRAMES_MULTIPLIER; + //stepspeeds[speed][currentFrame](sprite, sprite->data[3]); + RunMiniStep(sprite, speed, currentFrame); //in event_object_movement.c +} + +bool8 FollowMe_IsCollisionExempt(struct ObjectEvent* obstacle, struct ObjectEvent* collider) +{ + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + struct ObjectEvent* player = &gObjectEvents[gPlayerAvatar.objectEventId]; + + if (!gSaveBlock2Ptr->follower.inProgress) + return FALSE; + + if (obstacle == follower && collider == player) + return TRUE; + + return FALSE; +} + +/*void FollowMe_FollowerToWater(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + //Prepare for making the follower do the jump and spawn the surf head + //right in front of the follower's location. + FollowMe(&gObjectEvents[gPlayerAvatar.objectEventId], MOVEMENT_ACTION_JUMP_DOWN, TRUE); + gSaveBlock2Ptr->follower.createSurfBlob = 1; +}*/ + +/*void FollowMe_BindToSurbBlobOnReloadScreen(void) +{ + struct ObjectEvent* follower; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + follower = &gObjectEvents[GetFollowerMapObjId()]; + TryUpdateFollowerSpriteUnderwater(); + + if (gSaveBlock2Ptr->follower.createSurfBlob != 2 && gSaveBlock2Ptr->follower.createSurfBlob != 3) + return; + + //Spawn surfhead under follower + SetUpSurfBlobFieldEffect(follower); + follower->fieldEffectSpriteId = FieldEffectStart(FLDEFF_SURF_BLOB); + SetSurfBlob_BobState(follower->fieldEffectSpriteId, 1); +}*/ + +/*static void SetSurfJump(void) +{ + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + u8 direction; + u8 jumpState; + + //Reset NPC movement bits + ObjectEventClearHeldMovement(follower); + + //Jump animation according to direction + direction = DetermineFollowerDirection(&gObjectEvents[gPlayerAvatar.objectEventId], follower); + jumpState = GetJumpMovementAction(direction); + SetUpSurfBlobFieldEffect(follower); + + //Adjust surf head spawn location infront of follower + switch (direction) + { + case DIR_SOUTH: + gFieldEffectArguments[1]++; //effect_y + break; + case DIR_NORTH: + gFieldEffectArguments[1]--; + break; + case DIR_WEST: + gFieldEffectArguments[0]--; //effect_x + break; + default: //DIR_EAST + gFieldEffectArguments[0]++; + }; + + //Execute, store sprite ID in fieldEffectSpriteId and bind surf blob + follower->fieldEffectSpriteId = FieldEffectStart(FLDEFF_SURF_BLOB); + CreateTask(Task_BindSurfBlobToFollower, 0x1); + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_SURF); + + follower = &gObjectEvents[GetFollowerMapObjId()]; + ObjectEventSetHeldMovement(follower, jumpState); +}*/ + +/*static void Task_BindSurfBlobToFollower(u8 taskId) +{ + struct ObjectEvent* npc = &gObjectEvents[GetFollowerMapObjId()]; + bool8 animStatus = ObjectEventClearHeldMovementIfFinished(npc); //Wait jump animation + if (animStatus == 0) + return; + + //Bind objs + SetSurfBlob_BobState(npc->fieldEffectSpriteId, 0x1); + UnfreezeObjectEvents(); + DestroyTask(taskId); + gPlayerAvatar.preventStep = FALSE; //Player can move again + return; +}*/ + +/*static void SetUpSurfBlobFieldEffect(struct ObjectEvent* npc) +{ + //Set up gFieldEffectArguments for execution + gFieldEffectArguments[0] = npc->currentCoords.x; //effect_x + gFieldEffectArguments[1] = npc->currentCoords.y; //effect_y + gFieldEffectArguments[2] = gSaveBlock2Ptr->follower.objId; //objId +}*/ + +/*void PrepareFollowerDismountSurf(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + FollowMe(&gObjectEvents[gPlayerAvatar.objectEventId], MOVEMENT_ACTION_WALK_NORMAL_DOWN, TRUE); + gSaveBlock2Ptr->follower.createSurfBlob = 3; +}*/ + +/*static void SetSurfDismount(void) +{ + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + u8 direction; + u8 jumpState; + u8 task; + + ObjectEventClearHeldMovement(follower); + + //Jump animation according to direction + direction = DetermineFollowerDirection(&gObjectEvents[gPlayerAvatar.objectEventId], follower); + jumpState = GetJumpMovementAction(direction); + + //Unbind and destroy Surf Blob + task = CreateTask(Task_FinishSurfDismount, 1); + gTasks[task].data[0] = follower->fieldEffectSpriteId; + SetSurfBlob_BobState(follower->fieldEffectSpriteId, 2); + follower->fieldEffectSpriteId = 0; //Unbind + FollowMe_HandleSprite(); + + follower = &gObjectEvents[GetFollowerMapObjId()]; //Can change after sprite reload + ObjectEventSetHeldMovement(follower, jumpState); +}*/ + +/*static void Task_FinishSurfDismount(u8 taskId) +{ + struct ObjectEvent* npc = &gObjectEvents[GetFollowerMapObjId()]; + bool8 animStatus = ObjectEventClearHeldMovementIfFinished(npc); //Wait animation + + if (animStatus == 0) + { + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH) && ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gPlayerAvatar.objectEventId])) + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); //Temporarily stop running + + return; + } + + DestroySprite(&gSprites[gTasks[taskId].data[0]]); + UnfreezeObjectEvents(); + DestroyTask(taskId); + gPlayerAvatar.preventStep = FALSE; +}*/ + +void Task_DoDoorWarp(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + u8 playerObjId = gPlayerAvatar.objectEventId; + u8 followerObjId = GetFollowerObjectId(); + + switch (task->data[0]) + { + case 0: + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); //Stop running + + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; //Just in case came out and when right back in + FreezeObjectEvents(); + PlayerGetDestCoords(x, y); + PlaySE(GetDoorSoundEffect(*x, *y - 1)); + + #if FAST_FOLLOWERS == TRUE + if (!FlagGet(FLAG_FOLLOWER_IN_BUILDING)) + #endif + task->data[1] = FieldAnimateDoorOpen(*x, *y - 1); + + task->data[0] = 1; + break; + case 1: + #if FAST_FOLLOWERS == TRUE + if (FlagGet(FLAG_FOLLOWER_IN_BUILDING) || task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + FlagClear(FLAG_FOLLOWER_IN_BUILDING); + #else + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + #endif + ObjectEventClearHeldMovementIfActive(&gObjectEvents[playerObjId]); + ObjectEventSetHeldMovement(&gObjectEvents[playerObjId], MOVEMENT_ACTION_WALK_NORMAL_UP); + + if (gSaveBlock2Ptr->follower.inProgress && !gObjectEvents[followerObjId].invisible) + { + u8 newState = DetermineFollowerState(&gObjectEvents[followerObjId], MOVEMENT_ACTION_WALK_NORMAL_UP, + DetermineFollowerDirection(&gObjectEvents[playerObjId], &gObjectEvents[followerObjId])); + ObjectEventClearHeldMovementIfActive(&gObjectEvents[followerObjId]); + ObjectEventSetHeldMovement(&gObjectEvents[followerObjId], newState); + } + + task->data[0] = 2; + } + break; + case 2: + if (IsPlayerStandingStill()) + { + if (!gSaveBlock2Ptr->follower.inProgress || gObjectEvents[followerObjId].invisible) //Don't close door on follower + task->data[1] = FieldAnimateDoorClose(*x, *y - 1); + ObjectEventClearHeldMovementIfFinished(&gObjectEvents[playerObjId]); + SetPlayerVisibility(0); + task->data[0] = 3; + } + break; + case 3: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + task->data[0] = 4; + } + break; + case 4: + if (gSaveBlock2Ptr->follower.inProgress) + { + ObjectEventClearHeldMovementIfActive(&gObjectEvents[followerObjId]); + ObjectEventSetHeldMovement(&gObjectEvents[followerObjId], MOVEMENT_ACTION_WALK_NORMAL_UP); + } + + TryFadeOutOldMapMusic(); + WarpFadeOutScreen(); + PlayRainStoppingSoundEffect(); + task->data[0] = 0; + task->func = Task_WarpAndLoadMap; + break; + case 5: + TryFadeOutOldMapMusic(); + PlayRainStoppingSoundEffect(); + task->data[0] = 0; + task->func = Task_WarpAndLoadMap; + break; + } +} + +static u8 GetPlayerFaceToDoorDirection(struct ObjectEvent* player, struct ObjectEvent* follower) +{ + s16 delta_x = player->currentCoords.x - follower->currentCoords.x; + + if (delta_x < 0) + return DIR_EAST; + else if (delta_x > 0) + return DIR_WEST; + + return DIR_NORTH; +} + +static void Task_FollowerOutOfDoor(u8 taskId) +{ + struct ObjectEvent *follower = &gObjectEvents[GetFollowerMapObjId()]; + struct ObjectEvent *player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + //if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH) && ObjectEventClearHeldMovementIfFinished(player)) + //SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); //Temporarily stop running + +#if FAST_FOLLOWERS == FALSE + if (ObjectEventClearHeldMovementIfFinished(player)) + ObjectEventTurn(player, GetPlayerFaceToDoorDirection(player, follower)); //The player should face towards the follow as the exit the door +#endif + + switch (task->data[0]) + { +#if FAST_FOLLOWERS == TRUE + case 0: + FlagClear(FLAG_FOLLOWER_IN_BUILDING); + FreezeObjectEvents(); + + task->data[0] = 1; + break; + case 1: + follower->invisible = FALSE; + ObjectEventTurn(follower, DIR_SOUTH); //The follower should be facing down when it comes out the door + follower->singleMovementActive = FALSE; + follower->heldMovementActive = FALSE; + + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH)) + ObjectEventSetHeldMovement(follower, MOVEMENT_ACTION_WALK_FASTER_DOWN); + else + ObjectEventSetHeldMovement(follower, MOVEMENT_ACTION_WALK_FAST_DOWN); //follower step down + task->data[0] = 2; + break; + case 2: + if (/*ObjectEventClearHeldMovementIfFinished(follower)*/follower->currentCoords.y == *y + 1) +#else + case 0: + FreezeObjectEvents(); + task->data[1] = FieldAnimateDoorOpen(follower->currentCoords.x, follower->currentCoords.y); + if (task->data[1] != -1) + PlaySE(GetDoorSoundEffect(*x, *y)); //only play SE for animating doors + + task->data[0] = 1; + break; + case 1: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) //if Door isn't still opening + { + follower->invisible = FALSE; + ObjectEventTurn(follower, DIR_SOUTH); //The follower should be facing down when it comes out the door + follower->singleMovementActive = FALSE; + follower->heldMovementActive = FALSE; + ObjectEventSetHeldMovement(follower, MOVEMENT_ACTION_WALK_NORMAL_DOWN); //follower step down + task->data[0] = 2; + } + break; + case 2: + if (/*ObjectEventClearHeldMovementIfFinished(follower)*/follower->movementActionId == 0x9E) +#endif + { + task->data[1] = FieldAnimateDoorClose(*x, *y); + task->data[0] = 3; + } + break; + case 3: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) //Door is closed + { + UnfreezeObjectEvents(); + task->data[0] = 4; + } + break; + case 4: + FollowMe_HandleSprite(); + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gPlayerAvatar.preventStep = FALSE; //Player can move again + DestroyTask(taskId); + break; + } +} + +void StairsMoveFollower(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + if (!FuncIsActiveTask(Task_FollowerHandleIndoorStairs) && gSaveBlock2Ptr->follower.comeOutDoorStairs != 2) + CreateTask(Task_FollowerHandleIndoorStairs, 1); +} + +static void Task_FollowerHandleIndoorStairs(u8 taskId) +{ + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + struct ObjectEvent* player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + gSaveBlock2Ptr->follower.comeOutDoorStairs = 2; //So the task doesn't get created more than once + ObjectEventClearHeldMovementIfActive(follower); + ObjectEventSetHeldMovement(follower, DetermineFollowerState(follower, MOVEMENT_ACTION_WALK_NORMAL_DOWN, DetermineFollowerDirection(player, follower))); + task->data[0]++; + break; + case 1: + if (ObjectEventClearHeldMovementIfFinished(follower)) + { + ObjectEventSetHeldMovement(follower, DetermineFollowerState(follower, MOVEMENT_ACTION_WALK_NORMAL_DOWN, player->movementDirection)); + DestroyTask(taskId); + } + break; + } +} + +void EscalatorMoveFollower(u8 movementType) +{ + u8 taskId; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + taskId = CreateTask(Task_FollowerHandleEscalator, 1); + gTasks[taskId].data[1] = movementType; +} + +static void Task_FollowerHandleEscalator(u8 taskId) +{ + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + struct ObjectEvent* player = &gObjectEvents[gPlayerAvatar.objectEventId]; + + ObjectEventClearHeldMovementIfActive(follower); + ObjectEventSetHeldMovement(follower, DetermineFollowerState(follower, MOVEMENT_ACTION_WALK_NORMAL_DOWN, DetermineFollowerDirection(player, follower))); + DestroyTask(taskId); +} + +void EscalatorMoveFollowerFinish(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + CreateTask(Task_FollowerHandleEscalatorFinish, 1); +} + +static void Task_FollowerHandleEscalatorFinish(u8 taskId) +{ + s16 x, y; + struct ObjectEvent* follower = &gObjectEvents[GetFollowerMapObjId()]; + struct ObjectEvent* player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct Sprite* sprite = &gSprites[follower->spriteId]; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + MoveObjectEventToMapCoords(follower, player->currentCoords.x, player->currentCoords.y); + PlayerGetDestCoords(&x, &y); + task->data[2] = MapGridGetMetatileBehaviorAt(x, y); + task->data[7] = 0; + task->data[0]++; + break; + case 1: + if (task->data[7]++ < 0x20) //Wait half a second before revealing the follower + break; + + task->data[0]++; + task->data[1] = 16; + CalculateFollowerEscalatorTrajectoryUp(task); + gSaveBlock2Ptr->follower.warpEnd = 0; + gPlayerAvatar.preventStep = TRUE; + ObjectEventSetHeldMovement(follower, GetFaceDirectionMovementAction(DIR_EAST)); + if (task->data[2] == 0x6b) + task->data[0] = 4; + break; + case 2: + follower->invisible = FALSE; + CalculateFollowerEscalatorTrajectoryDown(task); + task->data[0]++; + break; + case 3: + CalculateFollowerEscalatorTrajectoryDown(task); + task->data[2]++; + if (task->data[2] & 1) + { + task->data[1]--; + } + + if (task->data[1] == 0) + { + sprite->x2 = 0; + sprite->y2 = 0; + task->data[0] = 6; + } + break; + case 4: + follower->invisible = FALSE; + CalculateFollowerEscalatorTrajectoryUp(task); + task->data[0]++; + break; + case 5: + CalculateFollowerEscalatorTrajectoryUp(task); + task->data[2]++; + if (task->data[2] & 1) + { + task->data[1]--; + } + + if (task->data[1] == 0) + { + sprite->x2 = 0; + sprite->y2 = 0; + task->data[0]++; + } + break; + case 6: + if (ObjectEventClearHeldMovementIfFinished(follower)) + { + gPlayerAvatar.preventStep = FALSE; + DestroyTask(taskId); + } + } +} + +static void CalculateFollowerEscalatorTrajectoryDown(struct Task *task) +{ + struct Sprite* sprite = &gSprites[gObjectEvents[GetFollowerMapObjId()].spriteId]; + + sprite->x2 = Cos(0x84, task->data[1]); + sprite->y2 = Sin(0x94, task->data[1]); +} + +static void CalculateFollowerEscalatorTrajectoryUp(struct Task *task) +{ + struct Sprite* sprite = &gSprites[gObjectEvents[GetFollowerMapObjId()].spriteId]; + + sprite->x2 = Cos(0x7c, task->data[1]); + sprite->y2 = Sin(0x76, task->data[1]); +} + +bool8 FollowerCanBike(void) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return TRUE; + else if (gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_CAN_BIKE) + return TRUE; + else + return FALSE; +} + +void FollowMe_HandleBike(void) +{ + if (gSaveBlock2Ptr->follower.currentSprite == FOLLOWER_SPRITE_INDEX_SURF) //Follower is surfing + return; //Sprite will automatically be adjusted when they finish surfing + + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE && FollowerCanBike() && gSaveBlock2Ptr->follower.comeOutDoorStairs != 1) //Coming out door + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_MACH_BIKE); //Mach Bike on + else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE && FollowerCanBike() && gSaveBlock2Ptr->follower.comeOutDoorStairs != 1) //Coming out door + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_ACRO_BIKE); //Acro Bike on + else + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_NORMAL); +} + +void FollowMe_HandleSprite(void) +{ + if (gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_CAN_BIKE) + { + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_MACH_BIKE); + else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE) + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_ACRO_BIKE); + } + else if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) + { + TryUpdateFollowerSpriteUnderwater(); + } + else + { + SetFollowerSprite(FOLLOWER_SPRITE_INDEX_NORMAL); + } +} + +void SetFollowerSprite(u8 spriteIndex) +{ + u8 oldSpriteId; + u8 newSpriteId; + u16 newGraphicsId; + struct ObjectEventTemplate clone; + struct ObjectEvent backupFollower; + struct ObjectEvent *follower; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + if (gSaveBlock2Ptr->follower.currentSprite == spriteIndex && gObjectEvents[GetFollowerMapObjId()].invisible == FALSE) + return; + + //Save sprite + follower = &gObjectEvents[GetFollowerMapObjId()]; + gSaveBlock2Ptr->follower.currentSprite = spriteIndex; + oldSpriteId = follower->spriteId; + newGraphicsId = GetFollowerSprite(); + + //Reload the entire event object. + //It would usually be enough just to change the sprite Id, but if the original + //sprite and the new sprite have different palettes, the palette would need to + //be reloaded. + backupFollower = *follower; + backupFollower.graphicsId = newGraphicsId; + //backupFollower.graphicsIdUpperByte = newGraphicsId >> 8; + DestroySprite(&gSprites[oldSpriteId]); + RemoveObjectEvent(&gObjectEvents[GetFollowerMapObjId()]); + + clone = *GetObjectEventTemplateByLocalIdAndMap(gSaveBlock2Ptr->follower.map.id, gSaveBlock2Ptr->follower.map.number, gSaveBlock2Ptr->follower.map.group); + clone.graphicsId = newGraphicsId; + //clone.graphicsIdUpperByte = newGraphicsId >> 8; + gSaveBlock2Ptr->follower.objId = TrySpawnObjectEventTemplate(&clone, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, clone.x, clone.y); + + follower = &gObjectEvents[GetFollowerMapObjId()]; + newSpriteId = follower->spriteId; + *follower = backupFollower; + follower->spriteId = newSpriteId; + MoveObjectEventToMapCoords(follower, follower->currentCoords.x, follower->currentCoords.y); + ObjectEventTurn(follower, follower->facingDirection); +} + +void FollowMe_WarpSetEnd(void) +{ + struct ObjectEvent *player; + struct ObjectEvent *follower; + u8 toY; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + player = &gObjectEvents[gPlayerAvatar.objectEventId]; + follower = &gObjectEvents[GetFollowerMapObjId()]; + + gSaveBlock2Ptr->follower.warpEnd = 1; + PlayerLogCoordinates(player); + + toY = gSaveBlock2Ptr->follower.comeOutDoorStairs == 1 ? (player->currentCoords.y - 1) : player->currentCoords.y; + MoveObjectEventToMapCoords(follower, player->currentCoords.x, toY); + + follower->facingDirection = player->facingDirection; + follower->movementDirection = player->movementDirection; +} + +void CreateFollowerAvatar(void) +{ + struct ObjectEvent* player; + struct ObjectEventTemplate clone; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + player = &gObjectEvents[gPlayerAvatar.objectEventId]; + clone = *GetObjectEventTemplateByLocalIdAndMap(gSaveBlock2Ptr->follower.map.id, gSaveBlock2Ptr->follower.map.number, gSaveBlock2Ptr->follower.map.group); + + clone.graphicsId = GetFollowerSprite(); + //clone.graphicsIdUpperByte = GetFollowerSprite() >> 8; + clone.x = player->currentCoords.x - 7; + clone.y = player->currentCoords.y - 7; + clone.movementType = 0; //Doesn't get to move on its own + + switch (GetPlayerFacingDirection()) + { + case DIR_NORTH: + clone.movementType = MOVEMENT_TYPE_FACE_UP; + break; + case DIR_WEST: + clone.movementType = MOVEMENT_TYPE_FACE_LEFT; + break; + case DIR_EAST: + clone.movementType = MOVEMENT_TYPE_FACE_RIGHT; + break; + } + + // Create NPC and store ID + gSaveBlock2Ptr->follower.objId = TrySpawnObjectEventTemplate(&clone, gSaveBlock2Ptr->follower.map.number, gSaveBlock2Ptr->follower.map.group, clone.x, clone.y); + if (gSaveBlock2Ptr->follower.objId == OBJECT_EVENTS_COUNT) + gSaveBlock2Ptr->follower.inProgress = FALSE; //Cancel the following because couldn't load sprite + + if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) + gSaveBlock2Ptr->follower.createSurfBlob = 0; + + gObjectEvents[gSaveBlock2Ptr->follower.objId].invisible = TRUE; +} + +static void TurnNPCIntoFollower(u8 localId, u16 followerFlags) +{ + struct ObjectEvent* follower; + u8 eventObjId; + const u8 *script; + u16 flag; + + if (gSaveBlock2Ptr->follower.inProgress) + return; //Only 1 NPC following at a time + + for (eventObjId = 0; eventObjId < OBJECT_EVENTS_COUNT; eventObjId++) //For each NPC on the map + { + if (!gObjectEvents[eventObjId].active || gObjectEvents[eventObjId].isPlayer) + continue; + + if (gObjectEvents[eventObjId].localId == localId) + { + follower = &gObjectEvents[eventObjId]; + follower->movementType = MOVEMENT_TYPE_NONE; //Doesn't get to move on its own anymore + gSprites[follower->spriteId].callback = MovementType_None; //MovementType_None + SetObjEventTemplateMovementType(localId, 0); + if (followerFlags & FOLLOWER_FLAG_CUSTOM_FOLLOW_SCRIPT) + script = (const u8 *)ReadWord(0); + else + script = GetObjectEventScriptPointerByObjectEventId(eventObjId); + + flag = GetObjectEventTemplateByLocalIdAndMap(follower->localId, follower->mapNum, follower->mapGroup)->flagId; + gSaveBlock2Ptr->follower.inProgress = TRUE; + gSaveBlock2Ptr->follower.objId = eventObjId; + gSaveBlock2Ptr->follower.graphicsId = follower->graphicsId; + gSaveBlock2Ptr->follower.map.id = gObjectEvents[eventObjId].localId; + gSaveBlock2Ptr->follower.map.number = gSaveBlock1Ptr->location.mapNum; + gSaveBlock2Ptr->follower.map.group = gSaveBlock1Ptr->location.mapGroup; + gSaveBlock2Ptr->follower.script = script; + gSaveBlock2Ptr->follower.flag = flag; + gSaveBlock2Ptr->follower.flags = followerFlags; + gSaveBlock2Ptr->follower.createSurfBlob = 0; + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + + if (!(gSaveBlock2Ptr->follower.flags & FOLLOWER_FLAG_CAN_BIKE) //Follower can't bike + && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_BIKE)) //Player on bike + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); //Dismmount Bike + } + } +} + +bool8 CheckFollowerFlag(u16 flag) +{ + if (!gSaveBlock2Ptr->follower.inProgress) + return TRUE; + + if (gSaveBlock2Ptr->follower.flags & flag) + return TRUE; + + return FALSE; +} + +static u8 GetPlayerMapObjId(void) +{ + return gPlayerAvatar.objectEventId; +} + +enum +{ + GoDown, + GoUp, + GoLeft, + GoRight +}; +void FollowerPositionFix(u8 offset) +{ + u8 playerObjId = GetPlayerMapObjId(); + u8 followerObjid = gSaveBlock2Ptr->follower.objId; + u16 playerX = gObjectEvents[playerObjId].currentCoords.x; + u16 playerY = gObjectEvents[playerObjId].currentCoords.y; + u16 npcX = gObjectEvents[followerObjid].currentCoords.x; + u16 npcY = gObjectEvents[followerObjid].currentCoords.y; + + gSpecialVar_Result = 0xFFFF; + + if (!gSaveBlock2Ptr->follower.inProgress) + return; + + if (playerX == npcX) + { + if (playerY > npcY) + { + if (playerY != npcY + offset) //Player and follower are not 1 tile apart + { + if (gSpecialVar_0x8000 == 0) + gSpecialVar_Result = GoDown; + else + gObjectEvents[followerObjid].currentCoords.y = playerY - offset; + } + } + else // Player Y <= npcY + { + if (playerY != npcY - offset) //Player and follower are not 1 tile apart + { + if (gSpecialVar_0x8000 == 0) + gSpecialVar_Result = GoUp; + else + gObjectEvents[followerObjid].currentCoords.y = playerY + offset; + } + } + } + else //playerY == npcY + { + if (playerX > npcX) + { + if (playerX != npcX + offset) //Player and follower are not 1 tile apart + { + if (gSpecialVar_0x8000 == 0) + gSpecialVar_Result = GoRight; + else + gObjectEvents[followerObjid].currentCoords.x = playerX - offset; + } + } + else // Player X <= npcX + { + if (playerX != npcX - offset) //Player and follower are not 1 tile apart + { + if (gSpecialVar_0x8000 == 0) + gSpecialVar_Result = GoLeft; + else + gObjectEvents[followerObjid].currentCoords.x = playerX + offset; + } + } + } +} + +void FollowerTrainerSightingPositionFix(void) +{ + FollowerPositionFix(1); +} + +void FollowerIntoPlayer(void) +{ + FollowerPositionFix(0); +} + +bool8 PlayerHasFollower(void) +{ + return gSaveBlock2Ptr->follower.inProgress; +} + +bool8 IsPlayerOnFoot(void) +{ + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ON_FOOT) + return TRUE; + else + return FALSE; +} + +bool8 FollowerComingThroughDoor(void) +{ + if (!PlayerHasFollower()) + return FALSE; + + if (gSaveBlock2Ptr->follower.comeOutDoorStairs) + return TRUE; + + return FALSE; +} + +//////////////////SCRIPTING//////////////////// +//@Details: Sets up the follow me feature. +//@Input: local id - NPC to start following player. +// flags - Follower flags. +void SetUpFollowerSprite(u8 localId, u16 flags) +{ + TurnNPCIntoFollower(localId, flags); +} + +//@Details: Ends the follow me feature. +void DestroyFollower(void) +{ + if (gSaveBlock2Ptr->follower.inProgress) + { + RemoveObjectEvent(&gObjectEvents[gSaveBlock2Ptr->follower.objId]); + FlagSet(gSaveBlock2Ptr->follower.flag); + gSaveBlock2Ptr->follower.inProgress = FALSE; + } +} + +//@Details: Faces the player and the follower sprite towards each other. +void PlayerFaceFollowerSprite(void) +{ + if (gSaveBlock2Ptr->follower.inProgress) + { + u8 playerDirection, followerDirection; + struct ObjectEvent* player, *follower; + + player = &gObjectEvents[gPlayerAvatar.objectEventId]; + follower = &gObjectEvents[gSaveBlock2Ptr->follower.objId]; + playerDirection = DetermineFollowerDirection(player, follower); + followerDirection = playerDirection; + + //Flip direction + switch (playerDirection) + { + case DIR_NORTH: + playerDirection = DIR_SOUTH; + followerDirection = DIR_NORTH; + break; + case DIR_SOUTH: + playerDirection = DIR_NORTH; + followerDirection = DIR_SOUTH; + break; + case DIR_WEST: + playerDirection = DIR_EAST; + followerDirection = DIR_WEST; + break; + case DIR_EAST: + playerDirection = DIR_WEST; + followerDirection = DIR_EAST; + break; + } + + ObjectEventTurn(player, playerDirection); + ObjectEventTurn(follower, followerDirection); + } +} + +//@Details: Checks if the player is being followed. +//@Returns: LastResult: 0 if the Player isn't being followed. 1 otherwise. +void CheckPlayerHasFollower(void) +{ + gSpecialVar_Result = gSaveBlock2Ptr->follower.inProgress; +} + +void ShowFollower(void) +{ + gObjectEvents[gSaveBlock2Ptr->follower.objId].invisible = FALSE; +} + +void SetFollowerWarpPosition(void) +{ + gSaveBlock2Ptr->follower.createSurfBlob = 1; +} diff --git a/src/item_use.c b/src/item_use.c index dbdcc16d6..9c925945a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -380,7 +380,7 @@ static bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *events, u8 ta static bool8 IsHiddenItemPresentAtCoords(const struct MapEvents *events, s16 x, s16 y) { u8 bgEventCount = events->bgEventCount; - struct BgEvent *bgEvent = events->bgEvents; + const struct BgEvent *bgEvent = events->bgEvents; int i; for (i = 0; i < bgEventCount; i++) @@ -396,7 +396,7 @@ static bool8 IsHiddenItemPresentAtCoords(const struct MapEvents *events, s16 x, return FALSE; } -static bool8 IsHiddenItemPresentInConnection(struct MapConnection *connection, int x, int y) +static bool8 IsHiddenItemPresentInConnection(const struct MapConnection *connection, int x, int y) { u16 localX, localY; @@ -461,7 +461,7 @@ static void CheckForHiddenItemsInMapConnection(u8 taskId) || var2 > y || y >= height) { - struct MapConnection *conn = GetMapConnectionAtPos(x, y); + const struct MapConnection *conn = GetMapConnectionAtPos(x, y); if (conn && IsHiddenItemPresentInConnection(conn, x, y) == TRUE) SetDistanceOfClosestHiddenItem(taskId, x - playerX, y - playerY); } diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 90e3671cc..9bec5fd08 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -88,7 +88,7 @@ static void SetupHipster(void) struct MauvilleManHipster *hipster = &gSaveBlock1Ptr->oldMan.hipster; hipster->id = MAUVILLE_MAN_HIPSTER; - hipster->alreadySpoken = FALSE; + hipster->taughtWord = FALSE; hipster->language = gGameLanguage; } @@ -225,27 +225,28 @@ void PlayBardSong(void) ScriptContext_Stop(); } -void GetHipsterSpokenFlag(void) +void HasHipsterTaughtWord(void) { - gSpecialVar_Result = (&gSaveBlock1Ptr->oldMan.hipster)->alreadySpoken; + gSpecialVar_Result = (&gSaveBlock1Ptr->oldMan.hipster)->taughtWord; } -void SetHipsterSpokenFlag(void) +void SetHipsterTaughtWord(void) { - (&gSaveBlock1Ptr->oldMan.hipster)->alreadySpoken = TRUE; + (&gSaveBlock1Ptr->oldMan.hipster)->taughtWord = TRUE; } void HipsterTryTeachWord(void) { - u16 phrase = GetNewHipsterPhraseToTeach(); + u16 word = UnlockRandomTrendySaying(); - if (phrase == EC_EMPTY_WORD) + if (word == EC_EMPTY_WORD) { + // All words already unlocked gSpecialVar_Result = FALSE; } else { - CopyEasyChatWord(gStringVar1, phrase); + CopyEasyChatWord(gStringVar1, word); gSpecialVar_Result = TRUE; } } @@ -369,7 +370,7 @@ static void ResetBardFlag(void) static void ResetHipsterFlag(void) { - (&gSaveBlock1Ptr->oldMan.hipster)->alreadySpoken = FALSE; + (&gSaveBlock1Ptr->oldMan.hipster)->taughtWord = FALSE; } static void ResetTraderFlag(void) diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 124ababa4..b146bbab3 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -293,7 +293,7 @@ bool8 MEScrCmd_givenationaldex(struct ScriptContext *ctx) bool8 MEScrCmd_addrareword(struct ScriptContext *ctx) { - UnlockAdditionalPhrase(ScriptReadByte(ctx)); + UnlockTrendySaying(ScriptReadByte(ctx)); StringExpandPlaceholders(gStringVar4, gText_MysteryEventRareWord); ctx->mStatus = MEVENT_STATUS_SUCCESS; return FALSE; diff --git a/src/new_game.c b/src/new_game.c index 0efc12d47..356c9f282 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -204,6 +204,7 @@ void NewGameInitData(void) WipeTrainerNameRecords(); ResetTrainerHillResults(); ResetContestLinkResults(); + memset(&gSaveBlock2Ptr->follower, 0, sizeof(gSaveBlock2Ptr->follower)); } static void ResetMiniGamesRecords(void) diff --git a/src/overworld.c b/src/overworld.c index 6b63a60d5..1048735d6 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -11,6 +11,7 @@ #include "event_scripts.h" #include "field_camera.h" #include "field_control_avatar.h" +#include "field_door.h" #include "field_effect.h" #include "field_message_box.h" #include "field_player_avatar.h" @@ -39,6 +40,7 @@ #include "new_game.h" #include "palette.h" #include "play_time.h" +#include "pokemon.h" #include "random.h" #include "roamer.h" #include "rotating_gate.h" @@ -49,6 +51,7 @@ #include "script_pokemon_util.h" #include "secret_base.h" #include "sound.h" +#include "sprite.h" #include "start_menu.h" #include "task.h" #include "tileset_anims.h" @@ -59,6 +62,7 @@ #include "scanline_effect.h" #include "wild_encounter.h" #include "frontier_util.h" +#include "follow_me.h" #include "constants/abilities.h" #include "constants/layouts.h" #include "constants/map_types.h" @@ -66,6 +70,9 @@ #include "constants/songs.h" #include "constants/trainer_hill.h" #include "constants/weather.h" +#include "constants/event_object_movement.h" +#include "constants/event_objects.h" +#include "constants/items.h" struct CableClubPlayer { @@ -156,7 +163,7 @@ static void InitMenuBasedScript(const u8 *); static void LoadCableClubPlayer(s32, s32, struct CableClubPlayer *); static bool32 IsCableClubPlayerUnfrozen(struct CableClubPlayer *); static bool32 CanCableClubPlayerPressStart(struct CableClubPlayer *); -static u8 *TryGetTileEventScript(struct CableClubPlayer *); +static const u8 *TryGetTileEventScript(struct CableClubPlayer *); static bool32 PlayerIsAtSouthExit(struct CableClubPlayer *); static const u8 *TryInteractWithPlayer(struct CableClubPlayer *); static u16 KeyInterCB_DeferToRecvQueue(u32); @@ -203,6 +210,513 @@ EWRAM_DATA static u16 sAmbientCrySpecies = 0; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {0}; +static const u8 FollowerSparkleCoords[][6] = +{ + {15, 9, 15, 9, 11, 9}, // Bulbasaur + {15, 11, 15, 9, 10, 9}, // Ivysaur + {16, 13, 16, 12, 13, 13}, // Venusaur + {16, 9, 16, 10, 11, 9}, // Charmander + {15, 12, 15, 10, 10, 11}, // Charmeleon + {16, 13, 16, 13, 16, 13}, // Charizard + {15, 9, 15, 9, 7, 9}, // Squirtle + {16, 10, 15, 9, 9, 11}, // Wartortle + {16, 13, 16, 13, 14, 12}, // Blastoise + {15, 10, 15, 9, 9, 10}, // Caterpie + {16, 10, 16, 11, 8, 10}, // Metapod + {16, 13, 16, 13, 12, 12}, // Butterfree + {16, 10, 16, 10, 8, 9}, // Weedle + {15, 10, 15, 10, 8, 10}, // Kakuna + {15, 13, 15, 15, 9, 13}, // Beedrill + {15, 8, 15, 8, 7, 8}, // Pidgey + {15, 16, 15, 15, 11, 14}, // Pidgeotto + {16, 17, 16, 17, 15, 16}, // Pidgeot + {16, 11, 16, 9, 9, 8}, // Rattata + {16, 12, 16, 9, 11, 8}, // Raticate + {16, 8, 16, 8, 10, 8}, // Spearow + {16, 15, 16, 16, 15, 19}, // Fearow + {16, 10, 13, 11, 9, 10}, // Ekans + {15, 12, 14, 13, 13, 12}, // Arbok + {16, 10, 16, 9, 8, 10}, // Pikachu + {13, 12, 20, 12, 14, 11}, // Raichu + {16, 9, 16, 9, 9, 9}, // Sandshrew + {15, 11, 15, 11, 10, 11}, // Sandslash + {16, 9, 16, 9, 7, 9}, // Nidoran_F + {15, 10, 15, 10, 11, 10}, // Nidorina + {16, 12, 16, 12, 13, 12}, // Nidoqueen + {16, 9, 16, 9, 8, 8}, // Nidoran_M + {16, 10, 16, 11, 11, 9}, // Nidorino + {16, 12, 16, 12, 14, 12}, // Nidoking + {15, 9, 16, 9, 7, 9}, // Clefairy + {16, 11, 16, 11, 9, 11}, // Clefable + {15, 11, 15, 11, 12, 9}, // Vulpix + {15, 13, 15, 14, 13, 11}, // Ninetales + {15, 9, 15, 9, 7, 9}, // Jigglypuff + {15, 11, 15, 11, 8, 11}, // Wigglytuff + {15, 12, 15, 13, 10, 11}, // Zubat + {16, 12, 16, 12, 12, 12}, // Golbat + {15, 8, 15, 8, 7, 8}, // Oddish + {16, 10, 16, 10, 9, 11}, // Gloom + {16, 10, 16, 10, 11, 10}, // Vileplume + {16, 9, 16, 8, 9, 9}, // Paras + {15, 13, 16, 12, 12, 12}, // Parasect + {16, 10, 16, 10, 11, 10}, // Venonat + {15, 14, 15, 14, 13, 14}, // Venomoth + {15, 7, 16, 7, 7, 7}, // Diglett + {16, 11, 16, 11, 11, 11}, // Dugtrio + {16, 13, 15, 11, 11, 9}, // Meowth + {15, 14, 15, 12, 13, 9}, // Persian + {15, 10, 15, 10, 7, 10}, // Psyduck + {15, 12, 15, 12, 8, 11}, // Golduck + {15, 9, 15, 9, 9, 9}, // Mankey + {15, 11, 15, 11, 9, 12}, // Primeape + {16, 11, 16, 11, 9, 10}, // Growlithe + {15, 15, 15, 15, 16, 12}, // Arcanine + {16, 9, 16, 9, 9, 9}, // Poliwag + {16, 9, 16, 9, 7, 10}, // Poliwhirl + {15, 11, 15, 11, 10, 11}, // Poliwrath + {15, 11, 15, 11, 11, 12}, // Abra + {15, 11, 16, 11, 12, 11}, // Kadabra + {16, 12, 16, 13, 11, 13}, // Alakazam + {15, 9, 15, 9, 8, 10}, // Machop + {15, 12, 15, 12, 8, 12}, // Machoke + {16, 13, 16, 13, 12, 12}, // Machamp + {15, 11, 15, 11, 7, 10}, // Bellsprout + {15, 11, 15, 10, 7, 11}, // Weepinbell + {15, 14, 15, 14, 14, 13}, // Victreebel + {16, 10, 16, 10, 9, 10}, // Tentacool + {15, 13, 15, 13, 13, 12}, // Tentacruel + {15, 10, 15, 10, 7, 11}, // Geodude + {15, 9, 15, 9, 10, 11}, // Graveler + {15, 11, 15, 11, 12, 11}, // Golem + {15, 12, 15, 12, 11, 11}, // Ponyta + {15, 15, 15, 14, 15, 13}, // Rapidash + {15, 11, 15, 9, 12, 8}, // Slowpoke + {16, 11, 16, 11, 14, 11}, // Slowbro + {15, 10, 15, 10, 8, 11}, // Magnemite + {15, 15, 15, 15, 10, 15}, // Magneton + {16, 11, 16, 11, 8, 11}, // Farfetch'd + {15, 11, 15, 11, 9, 12}, // Doduo + {16, 16, 15, 16, 15, 15}, // Dodrio + {15, 11, 15, 11, 13, 10}, // Seel + {15, 13, 15, 12, 15, 12}, // Dewgong + {16, 9, 16, 9, 9, 10}, // Grimer + {15, 11, 15, 11, 11, 11}, // Muk + {15, 9, 15, 8, 7, 9}, // Shellder + {15, 13, 15, 13, 13, 14}, // Cloyster + {15, 15, 16, 15, 10, 14}, // Gastly + {16, 13, 16, 13, 10, 14}, // Haunter + {15, 11, 15, 11, 9, 11}, // Gengar + {16, 15, 15, 16, 13, 16}, // Onix + {16, 10, 16, 10, 10, 11}, // Drowzee + {16, 12, 16, 12, 10, 12}, // Hypno + {16, 9, 16, 9, 13, 7}, // Krabby + {16, 13, 16, 12, 16, 13}, // Kingler + {15, 9, 15, 9, 7, 9}, // Voltorb + {16, 12, 16, 12, 13, 12}, // Electrode + {16, 13, 16, 11, 14, 12}, // Exeggcute + {16, 15, 16, 14, 12, 14}, // Exeggutor + {14, 10, 16, 10, 9, 11}, // Cubone + {14, 11, 16, 11, 10, 12}, // Marowak + {15, 11, 15, 11, 9, 11}, // Hitmonlee + {16, 12, 16, 11, 9, 11}, // Hitmonchan + {15, 11, 15, 11, 12, 10}, // Lickitung + {17, 13, 17, 13, 12, 12}, // Koffing + {15, 14, 16, 14, 13, 13}, // Weezing + {15, 12, 15, 11, 14, 9}, // Rhyhorn + {16, 12, 16, 12, 16, 12}, // Rhydon + {15, 10, 15, 10, 10, 10}, // Chansey + {16, 11, 16, 11, 10, 10}, // Tangela + {16, 12, 16, 12, 12, 13}, // Kangaskhan + {15, 9, 15, 9, 9, 9}, // Horsea + {15, 13, 15, 13, 11, 12}, // Seadra + {15, 11, 15, 10, 12, 9}, // Goldeen + {15, 13, 15, 11, 14, 13}, // Seaking + {16, 10, 16, 10, 8, 10}, // Staryu + {16, 12, 16, 12, 9, 13}, // Starmie + {16, 11, 16, 10, 10, 12}, // Mr. Mime + {15, 13, 15, 13, 12, 13}, // Scyther + {16, 13, 16, 12, 11, 13}, // Jynx + {16, 12, 16, 12, 12, 12}, // Electabuzz + {15, 13, 15, 13, 12, 12}, // Magmar + {15, 12, 15, 12, 11, 12}, // Pinsir + {15, 15, 16, 12, 15, 11}, // Tauros + {16, 10, 16, 11, 12, 10}, // Magikarp + {16, 16, 16, 16, 15, 16}, // Gyarados + {16, 12, 16, 13, 14, 13}, // Lapras + {16, 8, 16, 8, 9, 7}, // Ditto + {15, 9, 15, 9, 11, 9}, // Eevee + {15, 15, 15, 12, 15, 11}, // Vaporeon + {15, 12, 15, 11, 14, 10}, // Jolteon + {15, 13, 15, 12, 14, 11}, // Flareon + {15, 10, 15, 10, 12, 9}, // Porygon + {15, 10, 15, 10, 10, 9}, // Omanyte + {15, 12, 15, 12, 12, 11}, // Omastar + {15, 8, 15, 8, 9, 8}, // Kabuto + {16, 11, 15, 11, 11, 12}, // Kabutops + {15, 16, 15, 16, 16, 15}, // Aerodactyl + {16, 14, 16, 14, 12, 15}, // Snorlax + {15, 17, 15, 16, 14, 17}, // Articuno + {15, 18, 15, 17, 14, 15}, // Zapdos + {15, 16, 15, 17, 15, 17}, // Moltres + {17, 12, 14, 11, 12, 11}, // Dratini + {18, 15, 14, 15, 14, 14}, // Dragonair + {15, 16, 15, 16, 13, 15}, // Dragonite + {15, 15, 15, 14, 13, 14}, // Mewtwo + {16, 13, 16, 11, 13, 13}, // Mew + {16, 10, 15, 10, 9, 10}, // Chikorita + {16, 13, 15, 14, 13, 13}, // Bayleef + {15, 14, 15, 15, 14, 15}, // Meganium + {16, 11, 16, 10, 12, 9}, // Cyndaquil + {15, 13, 15, 14, 15, 10}, // Quilava + {15, 14, 15, 14, 14, 13}, // Typhlosion + {16, 10, 16, 10, 10, 10}, // Totodile + {15, 13, 15, 14, 13, 13}, // Croconaw + {15, 15, 15, 15, 15, 15}, // Feraligatr + {15, 10, 15, 10, 12, 9}, // Sentret + {15, 14, 15, 13, 15, 11}, // Furret + {16, 10, 16, 10, 10, 10}, // Hoothoot + {15, 13, 15, 14, 14, 16}, // Noctowl + {15, 14, 15, 12, 13, 12}, // Ledyba + {16, 12, 16, 13, 13, 16}, // Ledian + {15, 9, 15, 9, 11, 7}, // Spinarak + {15, 13, 15, 12, 15, 13}, // Ariados + {15, 13, 15, 13, 12, 15}, // Crobat + {16, 8, 16, 8, 10, 8}, // Chinchou + {16, 14, 16, 13, 15, 11}, // Lanturn + {15, 9, 15, 9, 9, 9}, // Pichu + {16, 8, 16, 8, 9, 8}, // Cleffa + {15, 9, 15, 9, 8, 9}, // Igglybuff + {16, 9, 16, 9, 9, 9}, // Togepi + {15, 14, 15, 15, 10, 13}, // Togetic + {16, 8, 16, 8, 9, 9}, // Natu + {16, 12, 16, 12, 12, 12}, // Xatu + {16, 11, 15, 10, 12, 10}, // Mareep + {18, 12, 15, 11, 12, 11}, // Flaaffy + {16, 13, 16, 13, 13, 13}, // Ampharos + {15, 10, 15, 10, 8, 10}, // Bellossom + {19, 8, 12, 8, 12, 9}, // Marill + {18, 10, 13, 10, 12, 11}, // Azumarill + {16, 12, 16, 12, 10, 12}, // Sudowoodo + {15, 12, 15, 12, 9, 12}, // Politoed + {16, 12, 16, 12, 9, 12}, // Hoppip + {15, 10, 15, 10, 9, 13}, // Skiploom + {16, 14, 16, 14, 9, 13}, // Jumpluff + {16, 12, 16, 11, 13, 11}, // Aipom + {16, 8, 16, 8, 7, 9}, // Sunkern + {15, 11, 15, 11, 7, 11}, // Sunflora + {16, 15, 16, 15, 15, 13}, // Yanma + {16, 8, 16, 8, 8, 8}, // Wooper + {17, 11, 15, 11, 12, 11}, // Quagsire + {15, 14, 15, 12, 13, 12}, // Espeon + {15, 13, 15, 12, 14, 11}, // Umbreon + {15, 10, 15, 10, 9, 10}, // Murkrow + {16, 14, 16, 14, 10, 13}, // Slowking + {16, 14, 16, 13, 11, 13}, // Misdreavus + {15, 10, 15, 10, 7, 11}, // Unown (A) + {16, 11, 16, 11, 10, 11}, // Wobbuffet + {16, 13, 16, 13, 15, 13}, // Girafarig + {16, 9, 16, 9, 8, 9}, // Pineco + {16, 10, 16, 10, 11, 10}, // Forretress + {15, 13, 15, 9, 13, 8}, // Dunsparce + {15, 12, 15, 12, 11, 13}, // Gligar + {33, 17, 32, 19, 36, 17}, // Steelix + {16, 10, 16, 10, 10, 10}, // Snubbull + {16, 12, 16, 12, 10, 13}, // Granbull + {16, 12, 16, 10, 14, 9}, // Qwilfish + {16, 13, 16, 12, 12, 13}, // Scizor + {16, 10, 16, 11, 11, 10}, // Shuckle + {15, 13, 15, 13, 12, 14}, // Heracross + {17, 10, 15, 10, 9, 10}, // Sneasel + {15, 10, 15, 10, 9, 10}, // Teddiursa + {16, 13, 16, 13, 11, 14}, // Ursaring + {15, 11, 16, 11, 11, 10}, // Slugma + {16, 13, 14, 12, 15, 11}, // Magcargo + {15, 8, 15, 8, 11, 8}, // Swinub + {15, 11, 15, 12, 12, 11}, // Piloswine + {16, 9, 16, 9, 10, 10}, // Corsola + {16, 10, 16, 10, 13, 7}, // Remoraid + {15, 11, 15, 12, 11, 11}, // Ocitllery + {16, 10, 15, 10, 9, 11}, // Delibird + {16, 15, 16, 15, 16, 16}, // Mantine + {15, 13, 15, 16, 15, 16}, // Skarmory + {16, 9, 16, 10, 11, 10}, // Houndour + {15, 12, 15, 13, 14, 12}, // Houndoom + {16, 14, 16, 14, 14, 13}, // Kingdra + {16, 9, 16, 9, 11, 9}, // Phanpy + {16, 11, 16, 11, 15, 12}, // Donphan + {16, 11, 16, 12, 13, 12}, // Porygon2 + {16, 14, 15, 14, 12, 15}, // Stantler + {14, 11, 18, 11, 9, 11}, // Smeargle + {15, 10, 15, 10, 8, 10}, // Tyrogue + {15, 12, 15, 12, 9, 11}, // Hitmontop + {15, 10, 15, 10, 9, 10}, // Smoochum + {15, 10, 15, 10, 8, 10}, // Elekid + {16, 10, 16, 10, 8, 10}, // Magby + {16, 11, 16, 11, 12, 11}, // Miltank + {16, 11, 16, 11, 11, 12}, // Blissey + {15, 15, 15, 13, 15, 13}, // Raikou + {15, 15, 15, 13, 15, 12}, // Entei + {15, 15, 15, 13, 16, 12}, // Suicune + {15, 10, 15, 10, 10, 10}, // Larvitar + {15, 11, 15, 11, 8, 11}, // Pupitar + {15, 14, 15, 14, 14, 13}, // Tyranitar + {32, 21, 32, 23, 40, 21}, // Lugia + {32, 22, 31, 22, 38, 24}, // Ho-oh + {16, 14, 16, 14, 9, 14}, // Celebi + {15, 9, 15, 9, 9, 9}, // Treecko + {16, 11, 16, 11, 11, 11}, // Grovyle + {15, 13, 15, 13, 15, 14}, // Sceptile + {15, 10, 15, 10, 8, 10}, // Torchic + {15, 11, 15, 11, 8, 11}, // Combusken + {16, 13, 16, 13, 12, 13}, // Blaziken + {15, 9, 15, 9, 10, 9}, // Mudkip + {15, 10, 15, 10, 9, 10}, // Marshtomp + {15, 13, 15, 13, 15, 13}, // Swampert + {15, 10, 15, 10, 12, 10}, // Poochyena + {16, 14, 16, 12, 15, 12}, // Mightyena + {16, 12, 16, 10, 14, 9}, // Zigzagoon + {16, 13, 14, 10, 15, 8}, // Linoone + {15, 10, 15, 11, 11, 9}, // Wurmple + {16, 8, 16, 8, 10, 8}, // Silcoon + {16, 13, 16, 13, 13, 12}, // Beautifly + {16, 8, 16, 8, 10, 8}, // Cascoon + {15, 11, 15, 11, 12, 15}, // Dustox + {15, 9, 15, 9, 10, 9}, // Lotad + {15, 12, 15, 12, 10, 11}, // Lombre + {16, 14, 16, 14, 13, 14}, // Ludicolo + {15, 9, 15, 9, 8, 9}, // Seedot + {15, 12, 15, 12, 9, 12}, // Nuzleaf + {16, 12, 16, 12, 13, 12}, // Shiftry +#ifndef POKEMON_EXPANSION + {15, 9, 15, 8, 12, 8}, // Nincada + {15, 12, 15, 12, 12, 12}, // Ninjask + {16, 13, 16, 14, 12, 13}, // Shedinja + {15, 9, 15, 9, 10, 8}, // Taillow + {15, 13, 15, 12, 16, 15}, // Swellow + {15, 9, 15, 9, 10, 9}, // Shroomish + {16, 12, 16, 12, 12, 12}, // Breloom + {16, 10, 16, 10, 9, 11}, // Spinda + {15, 11, 15, 10, 12, 13}, // Wingull + {16, 14, 16, 14, 14, 13}, // Pelipper + {15, 9, 15, 9, 10, 9}, // Surskit + {16, 14, 16, 15, 10, 14}, // Masquerain + {16, 11, 16, 11, 13, 11}, // Wailmer + {32, 19, 32, 18, 38, 12}, // Wailord + {15, 10, 15, 9, 12, 9}, // Skitty + {16, 13, 16, 12, 13, 12}, // Delcatty + {16, 11, 16, 11, 10, 11}, // Kecleon + {16, 11, 16, 11, 7, 11}, // Baltoy + {16, 14, 16, 14, 11, 13}, // Claydol + {15, 11, 15, 11, 11, 11}, // Nosepass + {16, 10, 16, 11, 15, 10}, // Torkoal + {16, 9, 16, 9, 9, 10}, // Sableye + {15, 9, 16, 9, 9, 11}, // Barboach + {15, 10, 15, 11, 14, 9}, // Whiscash + {16, 9, 16, 9, 8, 9}, // Luvdisc + {15, 10, 15, 11, 11, 10}, // Corphish + {16, 13, 16, 13, 13, 12}, // Crawdaunt + {16, 9, 16, 9, 10, 9}, // Feebas + {19, 13, 11, 12, 14, 13}, // Milotic + {15, 12, 15, 12, 11, 11}, // Carvanha + {16, 14, 16, 12, 13, 14}, // Sharpedo + {16, 8, 16, 8, 10, 8}, // Trapinch + {16, 13, 16, 11, 15, 14}, // Vibrava + {16, 17, 16, 17, 15, 14}, // Flygon + {16, 10, 16, 10, 9, 11}, // Makuhita + {14, 14, 14, 13, 14, 13}, // Hariyama + {15, 11, 15, 9, 13, 8}, // Electrike + {15, 13, 15, 13, 14, 13}, // Manectric + {15, 12, 15, 12, 15, 12}, // Numel + {15, 14, 15, 14, 17, 12}, // Camerupt + {15, 9, 15, 9, 11, 9}, // Spheal + {15, 12, 15, 13, 15, 12}, // Sealeo + {15, 13, 15, 14, 16, 14}, // Walrein + {15, 9, 15, 9, 8, 9}, // Cacnea + {15, 12, 15, 12, 11, 12}, // Cacturne + {15, 9, 15, 9, 9, 9}, // Snorunt + {16, 12, 16, 12, 11, 14}, // Glalie + {16, 11, 16, 11, 10, 11}, // Lunatone + {16, 13, 16, 13, 8, 13}, // Solrock + {17, 9, 14, 8, 13, 7}, // Azurill + {15, 11, 15, 11, 8, 10}, // Spoink + {15, 11, 15, 11, 11, 11}, // Grumpig + {15, 9, 15, 9, 9, 9}, // Plusle + {15, 9, 15, 9, 9, 9}, // Minun + {17, 11, 14, 11, 13, 11}, // Mawile + {15, 12, 15, 11, 8, 11}, // Meditite + {15, 13, 15, 13, 8, 13}, // Medicham + {16, 12, 16, 11, 11, 10}, // Swablu + {16, 16, 16, 16, 14, 15}, // Altaria + {16, 10, 16, 10, 10, 9}, // Wynaut + {16, 12, 16, 11, 9, 12}, // Duskull + {15, 13, 15, 13, 13, 13}, // Dusclops + {15, 10, 15, 10, 8, 10}, // Roselia + {15, 9, 15, 9, 12, 8}, // Slakoth + {16, 11, 16, 11, 14, 11}, // Vigoroth + {16, 15, 16, 14, 14, 14}, // Slaking + {16, 9, 16, 9, 10, 9}, // Gulpin + {16, 14, 16, 14, 14, 14}, // Swalot + {16, 13, 16, 13, 16, 13}, // Tropius + {16, 8, 16, 8, 8, 8}, // Whismur + {16, 11, 16, 11, 9, 12}, // Loudred + {16, 14, 16, 14, 17, 15}, // Exploud + {15, 8, 15, 8, 8, 9}, // Clamperl + {18, 15, 11, 14, 14, 14}, // Huntail + {17, 16, 12, 14, 15, 11}, // Gorebyss + {14, 14, 16, 14, 15, 13}, // Absol + {15, 11, 15, 11, 8, 11}, // Shuppet + {17, 10, 16, 10, 9, 10}, // Banette + {18, 14, 14, 14, 16, 10}, // Seviper + {15, 12, 15, 12, 13, 12}, // Zangoose + {15, 13, 15, 12, 14, 10}, // Relicanth + {16, 8, 16, 8, 9, 8}, // Aron + {15, 13, 15, 12, 16, 10}, // Lairon + {15, 15, 15, 14, 16, 14}, // Aggron + {15, 11, 15, 10, 7, 10}, // Castform + {15, 14, 15, 14, 12, 12}, // Volbeat + {16, 13, 16, 13, 11, 12}, // Illumise + {16, 11, 16, 12, 10, 11}, // Lileep + {16, 15, 16, 15, 12, 15}, // Cradily + {16, 11, 16, 10, 14, 9}, // Anorith + {15, 13, 15, 12, 13, 13}, // Armaldo + {15, 9, 15, 9, 9, 9}, // Ralts + {15, 11, 15, 11, 9, 11}, // Kirlia + {16, 12, 16, 13, 10, 12}, // Gardevoir + {16, 11, 16, 11, 10, 10}, // Bagon + {16, 10, 16, 10, 11, 10}, // Shelgon + {16, 14, 16, 13, 16, 13}, // Salamence + {15, 13, 15, 12, 12, 12}, // Beldum + {16, 14, 16, 13, 15, 13}, // Metang + {16, 14, 16, 14, 13, 13}, // Metagross + {15, 14, 15, 14, 11, 14}, // Regirock + {15, 13, 15, 13, 12, 13}, // Regice + {16, 13, 16, 13, 10, 13}, // Registeel + {16, 17, 16, 15, 16, 14}, // Kyogre + {15, 16, 16, 16, 16, 16}, // Groudon + {16, 17, 16, 16, 16, 16}, // Rayquaza + {16, 15, 16, 14, 16, 15}, // Latias + {16, 15, 16, 14, 15, 15}, // Latios + {15, 13, 15, 13, 10, 12}, // Jirachi + {16, 14, 16, 14, 9, 13}, // Deoxys (Normal) + {16, 11, 16, 11, 7, 11}, // Chimecho +#else + {15, 9, 15, 9, 10, 8}, // Taillow + {15, 13, 15, 12, 16, 15}, // Swellow + {15, 11, 15, 10, 12, 13}, // Wingull + {16, 14, 16, 14, 14, 13}, // Pelipper + {9, 15, 9, 9, 9}, // Ralts + {15, 11, 15, 11, 9, 11}, // Kirlia + {16, 12, 16, 13, 10, 12}, // Gardevoir + {15, 9, 15, 9, 10, 9}, // Surskit + {16, 14, 16, 15, 10, 14}, // Masquerain + {15, 9, 15, 9, 10, 9}, // Shroomish + {16, 12, 16, 12, 12, 12}, // Breloom + {15, 9, 15, 9, 12, 8}, // Slakoth + {16, 11, 16, 11, 14, 11}, // Vigoroth + {16, 15, 16, 14, 14, 14}, // Slaking + {15, 9, 15, 8, 12, 8}, // Nincada + {15, 12, 15, 12, 12, 12}, // Ninjask + {16, 13, 16, 14, 12, 13}, // Shedinja + {16, 8, 16, 8, 8, 8}, // Whismur + {16, 11, 16, 11, 9, 12}, // Loudred + {16, 14, 16, 14, 17, 15}, // Exploud + {16, 10, 16, 10, 9, 11}, // Makuhita + {14, 14, 14, 13, 14, 13}, // Hariyama + {17, 9, 14, 8, 13, 7}, // Azurill + {15, 11, 15, 11, 11, 11}, // Nosepass + {15, 10, 15, 9, 12, 9}, // Skitty + {16, 13, 16, 12, 13, 12}, // Delcatty + {16, 9, 16, 9, 9, 10}, // Sableye + {17, 11, 14, 11, 13, 11}, // Mawile + {16, 8, 16, 8, 9, 8}, // Aron + {15, 13, 15, 12, 16, 10}, // Lairon + {15, 15, 15, 14, 16, 14}, // Aggron + {15, 12, 15, 11, 8, 11}, // Meditite + {15, 13, 15, 13, 8, 13}, // Medicham + {15, 11, 15, 9, 13, 8}, // Electrike + {15, 13, 15, 13, 14, 13}, // Manectric + {15, 9, 15, 9, 9, 9}, // Plusle + {15, 9, 15, 9, 9, 9}, // Minun + {15, 14, 15, 14, 12, 12}, // Volbeat + {16, 13, 16, 13, 11, 12}, // Illumise + {15, 10, 15, 10, 8, 10}, // Roselia + {16, 9, 16, 9, 10, 9}, // Gulpin + {16, 14, 16, 14, 14, 14}, // Swalot + {15, 12, 15, 12, 11, 11}, // Carvanha + {16, 14, 16, 12, 13, 14}, // Sharpedo + {16, 11, 16, 11, 13, 11}, // Wailmer + {32, 19, 32, 18, 38, 12}, // Wailord + {15, 12, 15, 12, 15, 12}, // Numel + {15, 14, 15, 14, 17, 12}, // Camerupt + {16, 10, 16, 11, 15, 10}, // Torkoal + {15, 11, 15, 11, 8, 10}, // Spoink + {15, 11, 15, 11, 11, 11}, // Grumpig + {16, 10, 16, 10, 9, 11}, // Spinda + {16, 8, 16, 8, 10, 8}, // Trapinch + {16, 13, 16, 11, 15, 14}, // Vibrava + {16, 17, 16, 17, 15, 14}, // Flygon + {15, 9, 15, 9, 8, 9}, // Cacnea + {15, 12, 15, 12, 11, 12}, // Cacturne + {16, 12, 16, 11, 11, 10}, // Swablu + {16, 16, 16, 16, 14, 15}, // Altaria + {15, 12, 15, 12, 13, 12}, // Zangoose + {18, 14, 14, 14, 16, 10}, // Seviper + {16, 11, 16, 11, 10, 11}, // Lunatone + {16, 13, 16, 13, 8, 13}, // Solrock + {15, 9, 16, 9, 9, 11}, // Barboach + {15, 10, 15, 11, 14, 9}, // Whiscash + {15, 10, 15, 11, 11, 10}, // Corphish + {16, 13, 16, 13, 13, 12}, // Crawdaunt + {16, 11, 16, 11, 7, 11}, // Baltoy + {16, 14, 16, 14, 11, 13}, // Claydol + {16, 11, 16, 12, 10, 11}, // Lileep + {16, 15, 16, 15, 12, 15}, // Cradily + {16, 11, 16, 10, 14, 9}, // Anorith + {15, 13, 15, 12, 13, 13}, // Armaldo + {16, 9, 16, 9, 10, 9}, // Feebas + {19, 13, 11, 12, 14, 13}, // Milotic + {15, 11, 15, 10, 7, 10}, // Castform + {16, 11, 16, 11, 10, 11}, // Kecleon + {15, 11, 15, 11, 8, 11}, // Shuppet + {17, 10, 16, 10, 9, 10}, // Banette + {16, 12, 16, 11, 9, 12}, // Duskull + {15, 13, 15, 13, 13, 13}, // Dusclops + {16, 13, 16, 13, 16, 13}, // Tropius + {16, 11, 16, 11, 7, 11}, // Chimecho + {14, 14, 16, 14, 15, 13}, // Absol + {16, 10, 16, 10, 10, 9}, // Wynaut + {15, 9, 15, 9, 9, 9}, // Snorunt + {16, 12, 16, 12, 11, 14}, // Glalie + {15, 9, 15, 9, 11, 9}, // Spheal + {15, 12, 15, 13, 15, 12}, // Sealeo + {15, 13, 15, 14, 16, 14}, // Walrein + {15, 8, 15, 8, 8, 9}, // Clamperl + {18, 15, 11, 14, 14, 14}, // Huntail + {17, 16, 12, 14, 15, 11}, // Gorebyss + {15, 13, 15, 12, 14, 10}, // Relicanth + {16, 9, 16, 9, 8, 9}, // Luvdisc + {16, 11, 16, 11, 10, 10}, // Bagon + {16, 10, 16, 10, 11, 10}, // Shelgon + {16, 14, 16, 13, 16, 13}, // Salamence + {15, 13, 15, 12, 12, 12}, // Beldum + {16, 14, 16, 13, 15, 13}, // Metang + {16, 14, 16, 14, 13, 13}, // Metagross + {15, 14, 15, 14, 11, 14}, // Regirock + {15, 13, 15, 13, 12, 13}, // Regice + {16, 13, 16, 13, 10, 13}, // Registeel + {16, 15, 16, 14, 16, 15}, // Latias + {16, 15, 16, 14, 15, 15}, // Latios + {16, 17, 16, 15, 16, 14}, // Kyogre + {15, 16, 16, 16, 16, 16}, // Groudon + {16, 17, 16, 16, 16, 16}, // Rayquaza + {15, 13, 15, 13, 10, 12}, // Jirachi + {16, 14, 16, 14, 9, 13}, // Deoxys (Normal) +#endif + {16, 15, 16, 15, 12, 13}, // Deoxys (Speed) + {16, 13, 16, 13, 10, 13}, // Deoxys (Defense) + {16, 14, 16, 14, 10, 14}, // Deoxys (Attack) +}; + static const struct WarpData sDummyWarpData = { .mapGroup = MAP_GROUP(UNDEFINED), @@ -367,6 +881,7 @@ void DoWhiteOut(void) HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); SetWarpDestinationToLastHealLocation(); + UpdateFollowerPokemonGraphic(); WarpIntoMap(); } @@ -419,6 +934,8 @@ static void Overworld_ResetStateAfterWhiteOut(void) VarSet(VAR_SHOULD_END_ABNORMAL_WEATHER, 0); VarSet(VAR_ABNORMAL_WEATHER_LOCATION, ABNORMAL_WEATHER_NONE); } + + FollowMe_TryRemoveFollowerOnWhiteOut(); } static void UpdateMiscOverworldStates(void) @@ -487,7 +1004,7 @@ void LoadObjEventTemplatesFromHeader(void) void LoadSaveblockObjEventScripts(void) { - struct ObjectEventTemplate *mapHeaderObjTemplates = gMapHeader.events->objectEvents; + const struct ObjectEventTemplate *mapHeaderObjTemplates = gMapHeader.events->objectEvents; struct ObjectEventTemplate *savObjTemplates = gSaveBlock1Ptr->objectEventTemplates; s32 i; @@ -631,6 +1148,44 @@ static void SetPlayerCoordsFromWarp(void) } } +static void SetFollowerCoordsFromWarp(void) +{ + struct ObjectEvent* player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct ObjectEvent* follower = &gObjectEvents[gSaveBlock2Ptr->follower.objId]; + + gSaveBlock2Ptr->follower.warpEnd = 0; + + // Based on value passed in via setfollowerwarppos macro, place the follower relative to the player. + // If DIR_NONE, then setup for follower popping out of pokeball + switch(gSpecialVar_Result) + { + case DIR_NONE: + MoveObjectEventToMapCoords(follower, player->currentCoords.x, player->currentCoords.y); + gSaveBlock2Ptr->follower.createSurfBlob = 2; + break; + case DIR_SOUTH: + MoveObjectEventToMapCoords(follower, player->currentCoords.x, player->currentCoords.y + 1); + follower->invisible = FALSE; + gSaveBlock2Ptr->follower.createSurfBlob = 0; + break; + case DIR_NORTH: + MoveObjectEventToMapCoords(follower, player->currentCoords.x, player->currentCoords.y - 1); + follower->invisible = FALSE; + gSaveBlock2Ptr->follower.createSurfBlob = 0; + break; + case DIR_WEST: + MoveObjectEventToMapCoords(follower, player->currentCoords.x - 1, player->currentCoords.y); + follower->invisible = FALSE; + gSaveBlock2Ptr->follower.createSurfBlob = 0; + break; + case DIR_EAST: + MoveObjectEventToMapCoords(follower, player->currentCoords.x + 1, player->currentCoords.y); + follower->invisible = FALSE; + gSaveBlock2Ptr->follower.createSurfBlob = 0; + break; + } +} + void WarpIntoMap(void) { ApplyCurrentWarp(); @@ -1449,6 +2004,10 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) PlayerStep(inputStruct.dpadDirection, newKeys, heldKeys); } } + + // if stop running but keep holding B -> fix follower frame + if (PlayerHasFollower() && IsPlayerOnFoot() && IsPlayerStandingStill()) + ObjectEventSetHeldMovement(&gObjectEvents[GetFollowerObjectId()], GetFaceDirectionAnimNum(gObjectEvents[GetFollowerObjectId()].facingDirection)); } void CB1_Overworld(void) @@ -1484,6 +2043,20 @@ void CB2_Overworld(void) OverworldBasic(); if (fading) SetFieldVBlankCallback(); + + // Make sure follower's sprite is properly positioned when map reloads. + if (gSaveBlock2Ptr->follower.inProgress) + { + switch(gObjectEvents[gSaveBlock2Ptr->follower.objId].facingDirection) + { + case DIR_EAST: + gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId].x2 = -8; + break; + case DIR_WEST: + gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId].x2 = 8; + break; + } + } } void SetMainCallback1(MainCallback cb) @@ -1580,6 +2153,10 @@ static void CB2_LoadMap2(void) SetFieldVBlankCallback(); SetMainCallback1(CB1_Overworld); SetMainCallback2(CB2_Overworld); + + // Handle placing follower after warp as determined via setfollowerwarppos macro + if (gSaveBlock2Ptr->follower.inProgress && gSaveBlock2Ptr->follower.createSurfBlob == 1) + SetFollowerCoordsFromWarp(); } void CB2_ReturnToFieldContestHall(void) @@ -1666,6 +2243,7 @@ void CB2_ReturnToFieldWithOpenMenu(void) { FieldClearVBlankHBlankCallbacks(); gFieldCallback2 = FieldCB_ReturnToFieldOpenStartMenu; + UpdateFollowerPokemonGraphic(); CB2_ReturnToField(); } @@ -1967,6 +2545,12 @@ static bool32 ReturnToFieldLocal(u8 *state) break; case 1: InitViewGraphics(); + + #if FAST_FOLLOWERS == TRUE + if (FlagGet(FLAG_FOLLOWER_IN_BUILDING)) + FieldSetDoorOpened(gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x, gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y - 1); + #endif + TryLoadTrainerHillEReaderPalette(); (*state)++; break; @@ -2132,10 +2716,7 @@ static void ResumeMap(bool32 a1) ResetAllPicSprites(); ResetCameraUpdateInfo(); InstallCameraPanAheadCallback(); - if (!a1) - InitObjectEventPalettes(0); - else - InitObjectEventPalettes(1); + FreeAllSpritePalettes(); FieldEffectActiveListClear(); StartWeather(); @@ -2170,6 +2751,7 @@ static void InitObjectEventsLocal(void) ResetInitialPlayerAvatarState(); TrySpawnObjectEvents(0, 0); TryRunOnWarpIntoMapScript(); + FollowMe_HandleSprite(); } static void InitObjectEventsReturnToField(void) @@ -2719,7 +3301,7 @@ static bool32 CanCableClubPlayerPressStart(struct CableClubPlayer *player) return FALSE; } -static u8 *TryGetTileEventScript(struct CableClubPlayer *player) +static const u8 *TryGetTileEventScript(struct CableClubPlayer *player) { if (player->movementMode != MOVEMENT_MODE_SCRIPTED) return FACING_NONE; @@ -3220,3 +3802,568 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) sprite->data[7]++; } } + +void UpdateFollowerPokemonGraphic(void) +{ + // Loaded in case the player changed the species of the Pokemon in the lead of the party. + // If so, the following Pokemon needs to change. + u16 leadMonGraphicId = GetMonData(&gPlayerParty[GetLeadMonNotFaintedIndex()], MON_DATA_SPECIES, NULL) + OBJ_EVENT_GFX_BULBASAUR - 1; + struct ObjectEvent *follower = &gObjectEvents[gSaveBlock2Ptr->follower.objId]; + + // If the lead Pokemon is Unown, use the correct sprite + if (leadMonGraphicId == OBJ_EVENT_GFX_UNOWN_A) + { + u8 unownLetter = GET_UNOWN_LETTER(GetMonData(&gPlayerParty[GetLeadMonNotFaintedIndex()], MON_DATA_PERSONALITY)); + + // If the Unown is not A, set the graphics id to the proper Unown + if (unownLetter) + leadMonGraphicId = OBJ_EVENT_GFX_DEOXYS_SPEED + unownLetter; + } + + if(gSaveBlock2Ptr->follower.inProgress && leadMonGraphicId != gSaveBlock2Ptr->follower.graphicsId) + { + // Sets the follower's graphic data to the proper following Pokemon graphic data + gSaveBlock2Ptr->follower.graphicsId = leadMonGraphicId; + + // Sets the current follower object's graphic data to the proper data. + // Necessary because, without it, the follower's sprite won't change until entering a loading zone. + follower->graphicsId = leadMonGraphicId; + + // Specifically for Pokemon Center, if lead Pokemon is revived, deletes old follower and creates new one + if(gSpecialVar_Unused_0x8014 == 1) + { + u8 newSpriteId; + struct ObjectEventTemplate clone; + struct ObjectEvent backupFollower = *follower; + backupFollower.graphicsId = gSaveBlock2Ptr->follower.graphicsId; + DestroySprite(&gSprites[gObjectEvents[gSaveBlock2Ptr->follower.objId].spriteId]); + RemoveObjectEvent(&gObjectEvents[gSaveBlock2Ptr->follower.objId]); + + clone = *GetObjectEventTemplateByLocalIdAndMap(gSaveBlock2Ptr->follower.map.id, gSaveBlock2Ptr->follower.map.number, gSaveBlock2Ptr->follower.map.group); + clone.graphicsId = gSaveBlock2Ptr->follower.graphicsId;; + gSaveBlock2Ptr->follower.objId = TrySpawnObjectEventTemplate(&clone, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, clone.x, clone.y); + + follower = &gObjectEvents[gSaveBlock2Ptr->follower.objId]; + newSpriteId = follower->spriteId; + *follower = backupFollower; + follower->spriteId = newSpriteId; + MoveObjectEventToMapCoords(follower, follower->currentCoords.x, follower->currentCoords.y); + ObjectEventTurn(follower, follower->facingDirection); + gSpecialVar_Unused_0x8014 = 0; + } + } +} + +static void SparkleCallback(struct Sprite *sprite) +{ + if (++sprite->data[0] >= 19) + { + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +static void BigSparkleCallback(struct Sprite *sprite) +{ + if (sprite->data[0] % 2 == 0) + { + switch(sprite->data[7]) + { + // North Sparkle + case 0: + sprite->x++; + break; + // NorthEast Sparkle + case 1: + if (sprite->data[0] % 4 == 0) + sprite->y++; + else + sprite->x++; + break; + // East sparkle + case 2: + sprite->y++; + break; + // SouthEast Sparkle + case 3: + if (sprite->data[0] % 4 == 0) + sprite->y++; + else + sprite->x--; + break; + // South Sparkle + case 4: + sprite->x--; + break; + // SouthWest Sparkle + case 5: + if (sprite->data[0] % 4 == 0) + sprite->y--; + else + sprite->x--; + break; + // West Sparkle + case 6: + sprite->y--; + break; + // NorthWest Sparkle + case 7: + if (sprite->data[0] % 4 == 0) + sprite->y--; + else + sprite->x++; + break; + } + } + + if (++sprite->data[0] >= 19) + { + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +bool8 IsBigSprite(u16 graphicsId) +{ + switch(graphicsId) + { + case OBJ_EVENT_GFX_STEELIX: + case OBJ_EVENT_GFX_LUGIA_FOLLOWER: + case OBJ_EVENT_GFX_HOOH_FOLLOWER: + case OBJ_EVENT_GFX_WAILORD: + return TRUE; + default: + return FALSE; + } +} + +static void SparklePokeballCallback(struct Sprite *sprite) +{ + sprite->data[0]++; + + if (sprite->data[0] >= 10) + { + struct ObjectEvent *player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct ObjectEvent *follower = &gObjectEvents[gSaveBlock2Ptr->follower.objId]; + s16 x = gSprites[follower->spriteId].x; + s16 y = gSprites[follower->spriteId].y; + u8 spriteId; + u16 graphicsId; + + DestroySprite(sprite); + + gSprites[follower->spriteId].oam.priority = ElevationToPriority(follower->previousElevation); + gSprites[gPlayerAvatar.spriteId].oam.priority = ElevationToPriority(player->previousElevation); + player->fixedPriority = FALSE; + + // Shift the location of the sparkle, depending on which way the follower will be facing + // Account for the other Unown forms + if (gSaveBlock2Ptr->follower.graphicsId > OBJ_EVENT_GFX_DEOXYS_SPEED) + graphicsId = 200; + #ifndef POKEMON_EXPANSION + else if (gSaveBlock2Ptr->follower.graphicsId > OBJ_EVENT_GFX_CELEBI) // Gen 3+ OBJ_EVENT_GFX constants are 25 too high due to OLD_UNOWN constants. + graphicsId = gSaveBlock2Ptr->follower.graphicsId - OBJ_EVENT_GFX_BULBASAUR - 25; + #endif + else + graphicsId = gSaveBlock2Ptr->follower.graphicsId - OBJ_EVENT_GFX_BULBASAUR; + + switch(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection) + { + case DIR_SOUTH: + x -= 16 - FollowerSparkleCoords[graphicsId][0]; + if (IsBigSprite(follower->graphicsId)) + x -= 16; + + y += 16 - FollowerSparkleCoords[graphicsId][1]; + + break; + case DIR_NORTH: + x -= 16 - FollowerSparkleCoords[graphicsId][2]; + if (IsBigSprite(follower->graphicsId)) + x -= 16; + + y += 16 - FollowerSparkleCoords[graphicsId][3]; + + break; + case DIR_EAST: + x += 7 - FollowerSparkleCoords[graphicsId][4]; // 7 looks better than 8 + if (IsBigSprite(follower->graphicsId)) + x += 16; + + y += 16 - FollowerSparkleCoords[graphicsId][5]; + + break; + case DIR_WEST: + x -= 8 - FollowerSparkleCoords[graphicsId][4]; + if (IsBigSprite(follower->graphicsId)) + x -= 16; + + y += 16 - FollowerSparkleCoords[graphicsId][5]; + + break; + } + + if (IsBigSprite(follower->graphicsId)) + { + // North sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 0); + } + + // NorthEast sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 1; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 1); + } + + // East sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 2; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 2); + } + + // SouthEast sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 3; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 3); + } + + // South sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 4; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 4); + } + + // SouthWest sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 5; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 5); + } + + // West sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 6; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 6); + } + + // NorthWest sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &BigSparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[7] = 7; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 7); + } + } + else + { + // North sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 0); + } + + // NorthEast sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 1); + } + + // East sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 2); + } + + // SouthEast sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 3); + } + + // South sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 4); + } + + // SouthWest sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 5); + } + + // West sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 6); + } + + // NorthWest sparkle + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_EXPANDING_SPARKLE, &SparkleCallback, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + InitSpriteAffineAnim(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], 7); + } + } + } +} + +void FollowerPokeballSparkle(void) +{ + if (gObjectEvents[gSaveBlock2Ptr->follower.objId].invisible == TRUE && gSaveBlock2Ptr->follower.comeOutDoorStairs == 0 && !(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_UNDERWATER) && gSaveBlock2Ptr->follower.inProgress) + { + struct ObjectEvent *player = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct ObjectEvent *follower = &gObjectEvents[gSaveBlock2Ptr->follower.objId]; + s16 x = player->currentCoords.x; + s16 y = player->currentCoords.y; + u8 spriteId; + + switch(player->facingDirection) + { + case DIR_SOUTH: + SetSpritePosToOffsetMapCoords(&x, &y, 8, 4); + gSprites[follower->spriteId].y = y - 4; + break; + case DIR_NORTH: + SetSpritePosToOffsetMapCoords(&x, &y, 8, 0); + gSprites[follower->spriteId].y = y; + break; + case DIR_EAST: + case DIR_WEST: + SetSpritePosToOffsetMapCoords(&x, &y, 8, 8); + gSprites[follower->spriteId].y = y - 8; + break; + } + gSprites[follower->spriteId].x = x; + + switch(GetMonData(&gPlayerParty[GetLeadMonNotFaintedIndex()], MON_DATA_POKEBALL)) + { + case ITEM_MASTER_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MASTER_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_ULTRA_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_ULTRA_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_GREAT_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_GREAT_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_SAFARI_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_SAFARI_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_NET_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_NET_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_DIVE_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_DIVE_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_NEST_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_NEST_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_REPEAT_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_REPEAT_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_TIMER_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_TIMER_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_LUXURY_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LUXURY_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_PREMIER_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_PREMIER_BALL, &SparklePokeballCallback, x, y, 2); + break; + #ifdef ITEM_EXPANSION + case ITEM_HEAL_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_HEAL_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_DUSK_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_DUSK_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_QUICK_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_QUICK_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_LEVEL_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LEVEL_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_LURE_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LURE_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_MOON_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_MOON_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_FRIEND_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_FRIEND_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_LOVE_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_LOVE_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_FAST_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_FAST_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_HEAVY_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_HEAVY_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_DREAM_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_DREAM_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_SPORT_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_SPORT_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_PARK_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_PARK_BALL, &SparklePokeballCallback, x, y, 2); + break; + case ITEM_CHERISH_BALL: + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_CHERISH_BALL, &SparklePokeballCallback, x, y, 2); + break; + #endif + default: // PokeBall + spriteId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_ITEM_BALL, &SparklePokeballCallback, x, y, 2); + break; + } + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].coordOffsetEnabled = TRUE; + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].data[0] = 0; + } + + follower->currentCoords.x = player->currentCoords.x; + follower->currentCoords.y = player->currentCoords.y; + follower->facingDirection = player->facingDirection; + + gSprites[follower->spriteId].animNum = player->facingDirection - 1; + + if (player->facingDirection == DIR_NORTH) + { + gSprites[follower->spriteId].oam.priority = 0; + gSprites[follower->spriteId].subpriority = 0; + gSprites[gPlayerAvatar.spriteId].oam.priority = 1; + gSprites[gPlayerAvatar.spriteId].subpriority = 1; + } + else + { + gSprites[follower->spriteId].oam.priority = 1; + gSprites[follower->spriteId].subpriority = 1; + gSprites[gPlayerAvatar.spriteId].oam.priority = 0; + gSprites[gPlayerAvatar.spriteId].subpriority = 0; + } + player->fixedPriority = TRUE; + gPlayerAvatar.preventStep = TRUE; + + SeekSpriteAnim(&gSprites[follower->spriteId], 0); + ObjectEventForceSetHeldMovement(follower, MOVEMENT_ACTION_FOLLOWING_POKEMON_GROW); + } +} + +void FollowerIntoPokeball(void) +{ + if (gObjectEvents[gSaveBlock2Ptr->follower.objId].invisible == FALSE && gSaveBlock2Ptr->follower.inProgress) + { + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gPlayerAvatar.preventStep = TRUE; + ObjectEventForceSetHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId], MOVEMENT_ACTION_FOLLOWING_POKEMON_SHRINK); + gSpecialVar_Unused_0x8014 = 1; + } +} diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7d9f71f55..992c28a4c 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -654,6 +654,7 @@ static void SetMovingMonPriority(u8); static void SpriteCB_HeldMon(struct Sprite *); static struct Sprite *CreateMonIconSprite(u16, u32, s16, s16, u8, u8); static void DestroyBoxMonIcon(struct Sprite *); +extern void UpdateFollowerPokemonGraphic(void); // Pokémon data static void MoveMon(void); @@ -1699,6 +1700,7 @@ static void CB2_ExitPokeStorage(void) { sPreviousBoxOption = GetCurrentBoxOption(); gFieldCallback = FieldTask_ReturnToPcMenu; + UpdateFollowerPokemonGraphic(); SetMainCallback2(CB2_ReturnToField); } diff --git a/src/rotating_gate.c b/src/rotating_gate.c index f9e732eb7..059ece90b 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -3,6 +3,7 @@ #include "event_data.h" #include "event_object_movement.h" #include "fieldmap.h" +#include "field_weather.h" #include "sound.h" #include "sprite.h" #include "constants/songs.h" @@ -241,7 +242,6 @@ static const struct OamData sOamData_RotatingGateLarge = .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, - .paletteNum = 2, .affineParam = 0, }; @@ -258,7 +258,6 @@ static const struct OamData sOamData_RotatingGateRegular = .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 2, - .paletteNum = 2, .affineParam = 0, }; @@ -460,7 +459,7 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_RotatingGate[] = static const struct SpriteTemplate sSpriteTemplate_RotatingGateLarge = { .tileTag = ROTATING_GATE_TILE_TAG, - .paletteTag = TAG_NONE, + .paletteTag = 0x1103, // OBJ_EVENT_PAL_TAG_NPC_1 .oam = &sOamData_RotatingGateLarge, .anims = sSpriteAnimTable_RotatingGateLarge, .images = NULL, @@ -471,7 +470,7 @@ static const struct SpriteTemplate sSpriteTemplate_RotatingGateLarge = static const struct SpriteTemplate sSpriteTemplate_RotatingGateRegular = { .tileTag = ROTATING_GATE_TILE_TAG, - .paletteTag = TAG_NONE, + .paletteTag = 0x1103, // OBJ_EVENT_PAL_TAG_NPC_1 .oam = &sOamData_RotatingGateRegular, .anims = sSpriteAnimTable_RotatingGateRegular, .images = NULL, @@ -743,10 +742,17 @@ static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY) x = gate->x + MAP_OFFSET; y = gate->y + MAP_OFFSET; + + if (template.paletteTag != 0xFFFF) + { + LoadObjectEventPalette(template.paletteTag); + UpdatePaletteGammaType(IndexOfSpritePaletteTag(template.paletteTag), COLOR_MAP_CONTRAST); + } sprite = &gSprites[spriteId]; sprite->data[0] = gateId; sprite->coordOffsetEnabled = 1; + sprite->oam.paletteNum = IndexOfSpritePaletteTag(template.paletteTag); GetMapCoordsFromSpritePos(x + deltaX, y + deltaY, &sprite->x, &sprite->y); RotatingGate_HideGatesOutsideViewport(sprite); diff --git a/src/scrcmd.c b/src/scrcmd.c index 3a5a17fa8..1ac5ccb39 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1177,7 +1177,7 @@ bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx) bool8 ScrCmd_createvobject(struct ScriptContext *ctx) { - u8 graphicsId = ScriptReadByte(ctx); + u16 graphicsId = ScriptReadByte(ctx); u8 virtualObjId = ScriptReadByte(ctx); u16 x = VarGet(ScriptReadHalfword(ctx)); u32 y = VarGet(ScriptReadHalfword(ctx)); @@ -2324,3 +2324,79 @@ bool8 ScrCmd_warpwhitefade(struct ScriptContext *ctx) ResetInitialPlayerAvatarState(); return TRUE; } + +bool8 ScrCmd_pokemonfaceplayer(struct ScriptContext *ctx) +{ + // The script will affect the following Pokemon if no argument is passed to it. + if(gSpecialVar_Unused_0x8014 == OBJ_EVENT_ID_FOLLOWER) + { + ObjectEventClearHeldMovement(&gObjectEvents[gSaveBlock2Ptr->follower.objId]); + ObjectEventPokemonFacePlayer(&gObjectEvents[gSaveBlock2Ptr->follower.objId], &gObjectEvents[gPlayerAvatar.objectEventId]); + } + // The script will affect an event object based on the local id passed to the script. + else + { + gSpecialVar_Unused_0x8014 = GetObjectEventIdByLocalIdAndMap(gSpecialVar_Unused_0x8014, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + ObjectEventClearHeldMovement(&gObjectEvents[gSpecialVar_Unused_0x8014]); + + #define POW2(num) (num * num) + + // Checks to see whether the object is furthest away from the player along the x or y axis. + if(POW2((gObjectEvents[gSpecialVar_Unused_0x8014].currentCoords.x - gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x)) < POW2((gObjectEvents[gSpecialVar_Unused_0x8014].currentCoords.y - gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y))) + { + // Player is South of object + if(gObjectEvents[gSpecialVar_Unused_0x8014].currentCoords.y < gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.y) + { + ObjectEventSetHeldMovement(&gObjectEvents[gSpecialVar_Unused_0x8014], 159); + } + // Player is North of object + else + { + ObjectEventSetHeldMovement(&gObjectEvents[gSpecialVar_Unused_0x8014], 160); + } + } + else + { + // Player is East of object + if(gObjectEvents[gSpecialVar_Unused_0x8014].currentCoords.x < gObjectEvents[gPlayerAvatar.objectEventId].currentCoords.x) + { + ObjectEventSetHeldMovement(&gObjectEvents[gSpecialVar_Unused_0x8014], 162); + } + // Player is West of object + else + { + ObjectEventSetHeldMovement(&gObjectEvents[gSpecialVar_Unused_0x8014], 161); + } + } + } + return TRUE; +} + +// follow me script commands +#include "follow_me.h" +bool8 ScrCmd_setfollower(struct ScriptContext *ctx) +{ + u8 localId = ScriptReadByte(ctx); + u16 flags = ScriptReadHalfword(ctx); + + SetUpFollowerSprite(localId, flags); + return FALSE; +} + +bool8 ScrCmd_destroyfollower(struct ScriptContext *ctx) +{ + DestroyFollower(); + return FALSE; +} + +bool8 ScrCmd_facefollower(struct ScriptContext *ctx) +{ + PlayerFaceFollowerSprite(); + return FALSE; +} + +bool8 ScrCmd_checkfollower(struct ScriptContext *ctx) +{ + CheckPlayerHasFollower(); + return FALSE; +} \ No newline at end of file diff --git a/src/script.c b/src/script.c index c252c95f0..e6ebe9890 100644 --- a/src/script.c +++ b/src/script.c @@ -468,3 +468,10 @@ void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize) scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script); InitRamScript(script, scriptSize, MAP_GROUP(UNDEFINED), MAP_NUM(UNDEFINED), NO_OBJECT); } + +u8* ReadWord(u8 index) +{ + struct ScriptContext *ctx = &sGlobalScriptContext; + + return (T1_READ_PTR(&ctx->data[index])); +} diff --git a/src/script_movement.c b/src/script_movement.c index 10517dfc8..5a638b0f0 100644 --- a/src/script_movement.c +++ b/src/script_movement.c @@ -1,4 +1,5 @@ #include "global.h" +#include "event_data.h" #include "script_movement.h" #include "event_object_movement.h" #include "task.h" @@ -26,6 +27,14 @@ bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGrou return TRUE; if (!FuncIsActiveTask(ScriptMovement_MoveObjects)) ScriptMovement_StartMoveObjects(50); + if (gSaveBlock2Ptr->follower.inProgress && objEventId == gSaveBlock2Ptr->follower.objId) + { + gSaveBlock2Ptr->follower.comeOutDoorStairs = 0; + gSaveBlock2Ptr->follower.warpEnd = 0; + #if FAST_FOLLOWERS == TRUE + FlagClear(FLAG_FOLLOWER_IN_BUILDING); + #endif + } return ScriptMovement_TryAddNewMovement(GetMoveObjectsTaskId(), objEventId, movementScript); } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index f6ee9e818..2995a2cb2 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -685,7 +685,8 @@ static u16 GetMetatileForFloor(u8 floorId, u32 x, u32 y, u32 floorWidth) // floo void GenerateTrainerHillFloorLayout(u16 *mapArg) { s32 y, x; - u16 *src, *dst; + const u16 *src; + u16 *dst; u8 mapId = GetCurrentTrainerHillMapId(); if (mapId == TRAINER_HILL_ENTRANCE) diff --git a/src/trainer_see.c b/src/trainer_see.c index 8d3450628..f7877d1ed 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -4,6 +4,7 @@ #include "event_object_movement.h" #include "field_effect.h" #include "field_player_avatar.h" +#include "field_weather.h" #include "pokemon.h" #include "script.h" #include "script_movement.h" @@ -19,6 +20,9 @@ #include "constants/field_effects.h" #include "constants/trainer_types.h" +extern const struct SpritePalette sObjectEventSpritePalettes[]; +extern const struct SpritePalette gObjectEventPal_Npc1; + // this file's functions static u8 CheckTrainer(u8 objectEventId); static u8 GetTrainerApproachDistance(struct ObjectEvent *trainerObj); @@ -168,7 +172,7 @@ static const union AnimCmd *const sSpriteAnimTable_Icons[] = static const struct SpriteTemplate sSpriteTemplate_ExclamationQuestionMark = { .tileTag = TAG_NONE, - .paletteTag = TAG_NONE, + .paletteTag = 0x1100, ////LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRENDAN) .oam = &sOamData_Icons, .anims = sSpriteAnimTable_Icons, .images = sSpriteImageTable_ExclamationQuestionMark, @@ -698,7 +702,10 @@ void TryPrepareSecondApproachingTrainer(void) u8 FldEff_ExclamationMarkIcon(void) { - u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_ExclamationQuestionMark, 0, 0, 0x53); + u8 spriteId, paletteNum; + + LoadObjectEventPalette(0x1100); //LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRENDAN) + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_ExclamationQuestionMark, 0, 0, 0x52); if (spriteId != MAX_SPRITES) SetIconSpriteData(&gSprites[spriteId], FLDEFF_EXCLAMATION_MARK_ICON, 0); @@ -708,7 +715,10 @@ u8 FldEff_ExclamationMarkIcon(void) u8 FldEff_QuestionMarkIcon(void) { - u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_ExclamationQuestionMark, 0, 0, 0x52); + u8 spriteId; + + LoadObjectEventPalette(0x1100); //LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRENDAN) + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_ExclamationQuestionMark, 0, 0, 0x52); if (spriteId != MAX_SPRITES) SetIconSpriteData(&gSprites[spriteId], FLDEFF_QUESTION_MARK_ICON, 1); @@ -718,7 +728,10 @@ u8 FldEff_QuestionMarkIcon(void) u8 FldEff_HeartIcon(void) { - u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HeartIcon, 0, 0, 0x52); + u8 spriteId; + + LoadSpritePalette(&gObjectEventPal_Npc1); + spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HeartIcon, 0, 0, 0x52); if (spriteId != MAX_SPRITES) {