From 4776851bb86cfbb104f6c6ba6fb6f8a204db6064 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Thu, 4 Jan 2024 19:37:07 -0500 Subject: [PATCH] Add new boss trainers and tweak boss trainer logic --- public/images/trainer/aaron.json | 41 +++ public/images/trainer/aaron.png | Bin 0 -> 735 bytes public/images/trainer/acerola.json | 41 +++ public/images/trainer/acerola.png | Bin 0 -> 787 bytes public/images/trainer/agatha.json | 41 +++ public/images/trainer/agatha.png | Bin 0 -> 851 bytes public/images/trainer/allister.json | 41 +++ public/images/trainer/allister.png | Bin 0 -> 809 bytes public/images/trainer/amarys.json | 41 +++ public/images/trainer/amarys.png | Bin 0 -> 757 bytes public/images/trainer/bea.json | 41 +++ public/images/trainer/bea.png | Bin 0 -> 833 bytes public/images/trainer/bede.json | 41 +++ public/images/trainer/bede.png | Bin 0 -> 800 bytes public/images/trainer/bertha.json | 41 +++ public/images/trainer/bertha.png | Bin 0 -> 661 bytes public/images/trainer/brassius.json | 41 +++ public/images/trainer/brassius.png | Bin 0 -> 829 bytes public/images/trainer/bruno.json | 41 +++ public/images/trainer/bruno.png | Bin 0 -> 1011 bytes public/images/trainer/clemont.json | 41 +++ public/images/trainer/clemont.png | Bin 0 -> 1161 bytes public/images/trainer/crispin.json | 41 +++ public/images/trainer/crispin.png | Bin 0 -> 938 bytes public/images/trainer/diantha.json | 41 +++ public/images/trainer/diantha.png | Bin 0 -> 992 bytes public/images/trainer/drake.json | 41 +++ public/images/trainer/drake.png | Bin 0 -> 945 bytes public/images/trainer/drasna.json | 41 +++ public/images/trainer/drasna.png | Bin 0 -> 961 bytes public/images/trainer/drayton.json | 41 +++ public/images/trainer/drayton.png | Bin 0 -> 895 bytes public/images/trainer/flint.json | 41 +++ public/images/trainer/flint.png | Bin 0 -> 785 bytes public/images/trainer/glacia.json | 41 +++ public/images/trainer/glacia.png | Bin 0 -> 758 bytes public/images/trainer/gordie.json | 41 +++ public/images/trainer/gordie.png | Bin 0 -> 1015 bytes public/images/trainer/grant.json | 41 +++ public/images/trainer/grant.png | Bin 0 -> 772 bytes public/images/trainer/grusha.json | 41 +++ public/images/trainer/grusha.png | Bin 0 -> 854 bytes public/images/trainer/hala.json | 41 +++ public/images/trainer/hala.png | Bin 0 -> 1091 bytes public/images/trainer/hassel.json | 41 +++ public/images/trainer/hassel.png | Bin 0 -> 810 bytes public/images/trainer/input/configuration.tps | 207 +++++++++++++ public/images/trainer/input/convert.ps1 | 59 ++++ public/images/trainer/iono.json | 41 +++ public/images/trainer/iono.png | Bin 0 -> 1280 bytes public/images/trainer/kabu.json | 41 +++ public/images/trainer/kabu.png | Bin 0 -> 985 bytes public/images/trainer/kahili.json | 41 +++ public/images/trainer/kahili.png | Bin 0 -> 929 bytes public/images/trainer/karen.json | 41 +++ public/images/trainer/karen.png | Bin 0 -> 731 bytes public/images/trainer/katy.json | 41 +++ public/images/trainer/katy.png | Bin 0 -> 821 bytes public/images/trainer/kieran.json | 41 +++ public/images/trainer/kieran.png | Bin 0 -> 719 bytes public/images/trainer/kofu.json | 41 +++ public/images/trainer/kofu.png | Bin 0 -> 1100 bytes public/images/trainer/koga.json | 41 +++ public/images/trainer/koga.png | Bin 0 -> 913 bytes public/images/trainer/korrina.json | 41 +++ public/images/trainer/korrina.png | Bin 0 -> 954 bytes public/images/trainer/lacey.json | 41 +++ public/images/trainer/lacey.png | Bin 0 -> 794 bytes public/images/trainer/larry.json | 41 +++ public/images/trainer/larry.png | Bin 0 -> 721 bytes public/images/trainer/leon.json | 41 +++ public/images/trainer/leon.png | Bin 0 -> 1216 bytes public/images/trainer/lorelei.json | 41 +++ public/images/trainer/lorelei.png | Bin 0 -> 809 bytes public/images/trainer/lucian.json | 41 +++ public/images/trainer/lucian.png | Bin 0 -> 576 bytes public/images/trainer/malva.json | 41 +++ public/images/trainer/malva.png | Bin 0 -> 677 bytes public/images/trainer/marnie.json | 41 +++ public/images/trainer/marnie.png | Bin 0 -> 721 bytes public/images/trainer/melony.json | 41 +++ public/images/trainer/melony.png | Bin 0 -> 918 bytes public/images/trainer/milo.json | 41 +++ public/images/trainer/milo.png | Bin 0 -> 1086 bytes public/images/trainer/molayne.json | 41 +++ public/images/trainer/molayne.png | Bin 0 -> 816 bytes public/images/trainer/nemona.json | 41 +++ public/images/trainer/nemona.png | Bin 0 -> 769 bytes public/images/trainer/nessa.json | 41 +++ public/images/trainer/nessa.png | Bin 0 -> 884 bytes public/images/trainer/olivia.json | 41 +++ public/images/trainer/olivia.png | Bin 0 -> 857 bytes public/images/trainer/olympia.json | 41 +++ public/images/trainer/olympia.png | Bin 0 -> 1204 bytes public/images/trainer/opal.json | 41 +++ public/images/trainer/opal.png | Bin 0 -> 1000 bytes public/images/trainer/phoebe.json | 41 +++ public/images/trainer/phoebe.png | Bin 0 -> 847 bytes public/images/trainer/piers.json | 41 +++ public/images/trainer/piers.png | Bin 0 -> 913 bytes public/images/trainer/poppy.json | 41 +++ public/images/trainer/poppy.png | Bin 0 -> 617 bytes public/images/trainer/raihan.json | 41 +++ public/images/trainer/raihan.png | Bin 0 -> 817 bytes public/images/trainer/ramos.json | 41 +++ public/images/trainer/ramos.png | Bin 0 -> 867 bytes public/images/trainer/rika.json | 41 +++ public/images/trainer/rika.png | Bin 0 -> 716 bytes public/images/trainer/ryme.json | 41 +++ public/images/trainer/ryme.png | Bin 0 -> 867 bytes public/images/trainer/sidney.json | 41 +++ public/images/trainer/sidney.png | Bin 0 -> 775 bytes public/images/trainer/siebold.json | 41 +++ public/images/trainer/siebold.png | Bin 0 -> 718 bytes public/images/trainer/tulip.json | 41 +++ public/images/trainer/tulip.png | Bin 0 -> 853 bytes public/images/trainer/unknown_f.json | 41 +++ public/images/trainer/unknown_f.png | Bin 0 -> 561 bytes public/images/trainer/unknown_m.json | 41 +++ public/images/trainer/unknown_m.png | Bin 0 -> 624 bytes public/images/trainer/valerie.json | 41 +++ public/images/trainer/valerie.png | Bin 0 -> 1134 bytes public/images/trainer/viola.json | 41 +++ public/images/trainer/viola.png | Bin 0 -> 776 bytes public/images/trainer/wikstrom.json | 41 +++ public/images/trainer/wikstrom.png | Bin 0 -> 1042 bytes public/images/trainer/will.json | 41 +++ public/images/trainer/will.png | Bin 0 -> 844 bytes public/images/trainer/wulfric.json | 41 +++ public/images/trainer/wulfric.png | Bin 0 -> 1045 bytes src/arena.ts | 2 +- src/battle-phases.ts | 12 +- src/battle-scene.ts | 8 +- src/battle.ts | 41 ++- src/data/biome.ts | 197 ++++++++---- src/data/trainer-type.ts | 291 +++++++++++++----- src/modifier/modifier-type.ts | 2 +- src/pokemon.ts | 1 - src/trainer.ts | 6 +- src/ui/vouchers-ui-handler.ts | 93 ++++-- 140 files changed, 3361 insertions(+), 182 deletions(-) create mode 100644 public/images/trainer/aaron.json create mode 100644 public/images/trainer/aaron.png create mode 100644 public/images/trainer/acerola.json create mode 100644 public/images/trainer/acerola.png create mode 100644 public/images/trainer/agatha.json create mode 100644 public/images/trainer/agatha.png create mode 100644 public/images/trainer/allister.json create mode 100644 public/images/trainer/allister.png create mode 100644 public/images/trainer/amarys.json create mode 100644 public/images/trainer/amarys.png create mode 100644 public/images/trainer/bea.json create mode 100644 public/images/trainer/bea.png create mode 100644 public/images/trainer/bede.json create mode 100644 public/images/trainer/bede.png create mode 100644 public/images/trainer/bertha.json create mode 100644 public/images/trainer/bertha.png create mode 100644 public/images/trainer/brassius.json create mode 100644 public/images/trainer/brassius.png create mode 100644 public/images/trainer/bruno.json create mode 100644 public/images/trainer/bruno.png create mode 100644 public/images/trainer/clemont.json create mode 100644 public/images/trainer/clemont.png create mode 100644 public/images/trainer/crispin.json create mode 100644 public/images/trainer/crispin.png create mode 100644 public/images/trainer/diantha.json create mode 100644 public/images/trainer/diantha.png create mode 100644 public/images/trainer/drake.json create mode 100644 public/images/trainer/drake.png create mode 100644 public/images/trainer/drasna.json create mode 100644 public/images/trainer/drasna.png create mode 100644 public/images/trainer/drayton.json create mode 100644 public/images/trainer/drayton.png create mode 100644 public/images/trainer/flint.json create mode 100644 public/images/trainer/flint.png create mode 100644 public/images/trainer/glacia.json create mode 100644 public/images/trainer/glacia.png create mode 100644 public/images/trainer/gordie.json create mode 100644 public/images/trainer/gordie.png create mode 100644 public/images/trainer/grant.json create mode 100644 public/images/trainer/grant.png create mode 100644 public/images/trainer/grusha.json create mode 100644 public/images/trainer/grusha.png create mode 100644 public/images/trainer/hala.json create mode 100644 public/images/trainer/hala.png create mode 100644 public/images/trainer/hassel.json create mode 100644 public/images/trainer/hassel.png create mode 100644 public/images/trainer/input/configuration.tps create mode 100644 public/images/trainer/input/convert.ps1 create mode 100644 public/images/trainer/iono.json create mode 100644 public/images/trainer/iono.png create mode 100644 public/images/trainer/kabu.json create mode 100644 public/images/trainer/kabu.png create mode 100644 public/images/trainer/kahili.json create mode 100644 public/images/trainer/kahili.png create mode 100644 public/images/trainer/karen.json create mode 100644 public/images/trainer/karen.png create mode 100644 public/images/trainer/katy.json create mode 100644 public/images/trainer/katy.png create mode 100644 public/images/trainer/kieran.json create mode 100644 public/images/trainer/kieran.png create mode 100644 public/images/trainer/kofu.json create mode 100644 public/images/trainer/kofu.png create mode 100644 public/images/trainer/koga.json create mode 100644 public/images/trainer/koga.png create mode 100644 public/images/trainer/korrina.json create mode 100644 public/images/trainer/korrina.png create mode 100644 public/images/trainer/lacey.json create mode 100644 public/images/trainer/lacey.png create mode 100644 public/images/trainer/larry.json create mode 100644 public/images/trainer/larry.png create mode 100644 public/images/trainer/leon.json create mode 100644 public/images/trainer/leon.png create mode 100644 public/images/trainer/lorelei.json create mode 100644 public/images/trainer/lorelei.png create mode 100644 public/images/trainer/lucian.json create mode 100644 public/images/trainer/lucian.png create mode 100644 public/images/trainer/malva.json create mode 100644 public/images/trainer/malva.png create mode 100644 public/images/trainer/marnie.json create mode 100644 public/images/trainer/marnie.png create mode 100644 public/images/trainer/melony.json create mode 100644 public/images/trainer/melony.png create mode 100644 public/images/trainer/milo.json create mode 100644 public/images/trainer/milo.png create mode 100644 public/images/trainer/molayne.json create mode 100644 public/images/trainer/molayne.png create mode 100644 public/images/trainer/nemona.json create mode 100644 public/images/trainer/nemona.png create mode 100644 public/images/trainer/nessa.json create mode 100644 public/images/trainer/nessa.png create mode 100644 public/images/trainer/olivia.json create mode 100644 public/images/trainer/olivia.png create mode 100644 public/images/trainer/olympia.json create mode 100644 public/images/trainer/olympia.png create mode 100644 public/images/trainer/opal.json create mode 100644 public/images/trainer/opal.png create mode 100644 public/images/trainer/phoebe.json create mode 100644 public/images/trainer/phoebe.png create mode 100644 public/images/trainer/piers.json create mode 100644 public/images/trainer/piers.png create mode 100644 public/images/trainer/poppy.json create mode 100644 public/images/trainer/poppy.png create mode 100644 public/images/trainer/raihan.json create mode 100644 public/images/trainer/raihan.png create mode 100644 public/images/trainer/ramos.json create mode 100644 public/images/trainer/ramos.png create mode 100644 public/images/trainer/rika.json create mode 100644 public/images/trainer/rika.png create mode 100644 public/images/trainer/ryme.json create mode 100644 public/images/trainer/ryme.png create mode 100644 public/images/trainer/sidney.json create mode 100644 public/images/trainer/sidney.png create mode 100644 public/images/trainer/siebold.json create mode 100644 public/images/trainer/siebold.png create mode 100644 public/images/trainer/tulip.json create mode 100644 public/images/trainer/tulip.png create mode 100644 public/images/trainer/unknown_f.json create mode 100644 public/images/trainer/unknown_f.png create mode 100644 public/images/trainer/unknown_m.json create mode 100644 public/images/trainer/unknown_m.png create mode 100644 public/images/trainer/valerie.json create mode 100644 public/images/trainer/valerie.png create mode 100644 public/images/trainer/viola.json create mode 100644 public/images/trainer/viola.png create mode 100644 public/images/trainer/wikstrom.json create mode 100644 public/images/trainer/wikstrom.png create mode 100644 public/images/trainer/will.json create mode 100644 public/images/trainer/will.png create mode 100644 public/images/trainer/wulfric.json create mode 100644 public/images/trainer/wulfric.png diff --git a/public/images/trainer/aaron.json b/public/images/trainer/aaron.json new file mode 100644 index 000000000..68ea64540 --- /dev/null +++ b/public/images/trainer/aaron.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "aaron.png", + "format": "RGBA8888", + "size": { + "w": 79, + "h": 79 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 56, + "h": 79 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 56, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 56, + "h": 79 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:895f0a79b89fa0fb44167f4584fd9a22:357b46953b7e17c6b2f43a62d52855d8:cc1ed0e4f90aaa9dcf1b39a0af1283b0$" + } +} diff --git a/public/images/trainer/aaron.png b/public/images/trainer/aaron.png new file mode 100644 index 0000000000000000000000000000000000000000..a63f49849a6dfb0d508e02230dfa965a569b834d GIT binary patch literal 735 zcmV<50wDc~P)h($0d!JM zQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_00K)%L_t(o!`;}6j^Z#31yF7tZqlUu z|L3lqv`{G1nQiV$tFaK`QBLeS35DD3G(xx$BZLV|ZentQ%uRvKP2jboc}9YE^7Li_ zPG?t*0(P#8^GxvOFgJ0w7*5c7G0&SfQM`65z2qa?4z!Ktk7us2CkvWNtdmyo6; zxc6l;+Fyh_N-9hD0>N9>DB2Uk0>S1jS3I~6V6yC%f(x8}@?C^zbIY=%Py36*cVH>* z?I4Kd_fgX~aLy$wZHWT zYSD=HVWgBSojyd|#_MC_wA!^UOQ!VjZslAbL5sAoZ1rqw3Mb&pSz1l+ofFmEHb7~m zuZNshe25s;^WyZ*m6%%b_&SB3h)UJw#l-kNiqbtHd8nG2lGzo?_b+nwPHOfn&*xf| z(=2ZsPeJ26Se~n%>Um;%H=BO7GQBF^Kvua`+VmrNqS@JM%Q;g(m)r92j+7wTi|!c| z@1E}#c2Dr4w!tX9uZ()5Z3R`T1>LJ4d5-Go&Wr{MC|uQ*K{|om(K_)jyeb?I+k@c~ z`0)B8j+gNwGd*FH+xJmM!TTZ^Gv?q`o~KV_v|z})mq)$)AdvOhXhY1v^9kJ>{1Vn{ z$-S5VJFo6r3fo#oz`lGRlNf!k{^j1TA%mVyIC=4GHV#~7*#wc-{)!BG`w7zKi(K`9 zd%Mbgdb-?1u6k&feR@^D`?z>}MFxs}`|aF@kgJ>D;Xe|>3O@Y5@E1St{{ZlKAZnN% R_BH?j002ovPDHLkV1kDoWB>pF literal 0 HcmV?d00001 diff --git a/public/images/trainer/acerola.json b/public/images/trainer/acerola.json new file mode 100644 index 000000000..840a4d8a2 --- /dev/null +++ b/public/images/trainer/acerola.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "acerola.png", + "format": "RGBA8888", + "size": { + "w": 67, + "h": 67 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 43, + "h": 67 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 43, + "h": 67 + }, + "frame": { + "x": 0, + "y": 0, + "w": 43, + "h": 67 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:5680a6e0778a71446f94603145504b24:c4313687140323d33396895eff653ccc:0c49408a7def70e48e5557c97abd3355$" + } +} diff --git a/public/images/trainer/acerola.png b/public/images/trainer/acerola.png new file mode 100644 index 0000000000000000000000000000000000000000..3804d2986a3dda3b6879d00f872268140970bc6f GIT binary patch literal 787 zcmV+u1MK{XP)0{{R3@DxZv0000&P)t-s00000 z001B-K1EcDN=jp3M~ZVwLUdO!b(-0PIy#7)x{XvWk9Aa-azB}Bx}|kotitHMV`Ipl z-_p8m-lcp0*1ZZ0+PMG#00DGTPE!Ct=GbNc000SaNLh0L01FcU01FcV0GgZ_0007N zNkl92RjTeErc+fY++qj zoHuYj4xH{zxIwye2Dxq924FrB32wJ-#>$U5683_9S!)Ysf*;MtJkOT#33D|HcV;6Z zmq`#HVl+4yb0`HUMFF!h7dDN8M(9ES67o}Wk&haI2INl%jesCVX-#@ULyjLef*K2Q z(Uep}kmDWF3ueT^P!>^`j8GenrbAB-_r5H0|0?u!1=4vzB&)d{>FY`jC6}*1UzO0v zdWIL+`x7%8swoFM=h%K@L>plpqF-*$_h-cXGa74MyaExHP%MVIlFkT@3_B)uoz?kB`l0Kr*3-5HVVa;cj62 zh8*ZuWYOSR7`^{S7#k63OMD-Z5ONiKHTd=Q?zJf4 z9TDSCLXeSP_&V>1MEr_G1tj9(!SExJ-_PK*iNDSKDD}5xt`fXne>X(#^S1DmWk07G zem5F&=ph;YWhin`xd-}0uq9D^*Q5VTv_jBPN?zkoM0e0=XU84UgU8pZ zMm!oEeBYanN5j`A09}SYa8JhZ*C{c^7sL0h5Ri0g?XV;NF}e`!73?V?-Elk`9MrM2(+hQ-@TQetS4)XVjKTN@qKjP($ow+(ZA81V zSNK>?8?o4pHmA6?BJh{XMFxZ$Z+xZW>YQbAa_cX!_C#9U+TXNm@$LJ6;V*gRBAIB| REI|MO002ovPDHLkV1nV=RQUh^ literal 0 HcmV?d00001 diff --git a/public/images/trainer/agatha.json b/public/images/trainer/agatha.json new file mode 100644 index 000000000..f081d452a --- /dev/null +++ b/public/images/trainer/agatha.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "agatha.png", + "format": "RGBA8888", + "size": { + "w": 68, + "h": 68 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 34, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 34, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 34, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:6f4100ff4fc7c044d92936c8320df4de:bd7b031e494bd55c240289dbc2634313:bdc71ea78681af7cf5d2c1498cebb044$" + } +} diff --git a/public/images/trainer/agatha.png b/public/images/trainer/agatha.png new file mode 100644 index 0000000000000000000000000000000000000000..71eed6763184a3a6ccf0e55cd3d46dc1e5eed660 GIT binary patch literal 851 zcmV-Z1FZasP)|eSPF#sxT``1ZQ+#SjG;&jlb8}jIN?L$leK~z}7#n#&g|Zhv5KmBSX`w`WcfM$Fc9REMzTt)bxLq)JSP;j&)Sd^T(5f7s%93)y4}i=e-n)EO81-yh~keIkZbpx1*GdVNO!%`7eu36uTP~QFQ_1u=Xcjk6sde^ dB{hQ1{spjyPZFz?`Hlbp002ovPDHLkV1micd0_wm literal 0 HcmV?d00001 diff --git a/public/images/trainer/allister.json b/public/images/trainer/allister.json new file mode 100644 index 000000000..7b726e799 --- /dev/null +++ b/public/images/trainer/allister.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "allister.png", + "format": "RGBA8888", + "size": { + "w": 66, + "h": 66 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 36, + "h": 66 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 36, + "h": 66 + }, + "frame": { + "x": 0, + "y": 0, + "w": 36, + "h": 66 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:75db9fc1f33fa585e50ffddcfe9b3cee:a949aa38eb90f0c5e83d1319a994e426:f20638e564c49dea842055a17fa5139f$" + } +} diff --git a/public/images/trainer/allister.png b/public/images/trainer/allister.png new file mode 100644 index 0000000000000000000000000000000000000000..07c20c1b275c99b39e1f8c3e9e1d0f0a126dc4c6 GIT binary patch literal 809 zcmV+^1J?YBP)n+a0d!JMQvg8b*k%9#010qNS#tmY z3ljhU3ljkVnw%H_00MDIL_t(o!=;u1ld3QbgxOZ5*pr?f=L7!#4}F`I8%1yCNQk2| zWyt4lniQJmEdrz272(L(1qnwW96yeJ29D6*9SmjyqQi}V*a&2>9&jT_;FiFTko2%1 zd<-S17nS27oJcsGPK3zE!2q*`AP`YwM?jNzF(B#qs*K=6gbxzFN;rLpj1+=Hg@`EQ zs0x895{8~$O}mMJVHo)Pn0HYjmKwx%)5Oy~8B_kzQ8KTz88LzgE;a}O@10_f zsEd-@VQ5P{kQ8%nGqxZYxgrn`am;PZ;~`=YM8*aNvIHq&o_{{(c*!HN7-%GJtcDVp zBY7C(M01bh$qx2)h%MpOOVE3uqqzH`Ah`UvwDz~S-`(_7qok#P^Mz5Vcp?tX$a< zw;N<9q+98PE323D8PJZZQzJuf^dk3{a?z<3F9-6BUgZ9QOC4~j22YHe5m76#Anx&y zxiojU4vMq{?)lFBb-m^+V2^B%c z;A1=xO+W2Mbbdtlc-l_=E)iZC&mxpDSQ+UBk@|j4Hp1NZX?#o|s}Kl(J4Ca<-jX^V)|pO-7XPqJrf$SONF%O~sq8zeF%r=TxP_bmqMr nmUx41d_(!=y=OFe*kt@UeX`1tt$|NqT#W3&JO00DGTPE!Ct=GbNc z000SaNLh0L01FcU01FcV0GgZ_0006sNkl=>*F_)KsF4+I|wnD1IYQD&Sr`v1486}i5X6A4j$4gF^spHw33oLL4WSbv=Tvi|&eEy{2a42x z?rio3l^?$@rQo?(_9UfP2vEYa*q}>7Iw>v1;xLwbNiCM8e{^}xU(y9o_nHCHv4HgR zcT~qTZs=277A>sbX)l0*JVkAf@s*?-+Iw$7reT@}3O)o+C7 zHb@ilwOOJWb$v*NVH`(?UxR%A=u#d(CCe!7i)0x87nF?$8w|*(;YTCnU*jJu1eB%+NgJ?GYxeeTnQ)2>%k~bW=Nai2hS#JF4R;XxLkH*{W*g*UNN`WRzF^vEB00000NkvXXu0mjfMq)`f literal 0 HcmV?d00001 diff --git a/public/images/trainer/bea.json b/public/images/trainer/bea.json new file mode 100644 index 000000000..25cc0dd6f --- /dev/null +++ b/public/images/trainer/bea.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "bea.png", + "format": "RGBA8888", + "size": { + "w": 75, + "h": 75 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 34, + "h": 75 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 34, + "h": 75 + }, + "frame": { + "x": 0, + "y": 0, + "w": 34, + "h": 75 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:26fdace31a755813f9a8e68e482bd7bd:c2dfe78337407865299317e90af65a71:d148eceec650723a955869e99e55f98a$" + } +} diff --git a/public/images/trainer/bea.png b/public/images/trainer/bea.png new file mode 100644 index 0000000000000000000000000000000000000000..844abc3df9f1aed44050fce9702e51b71ebc14b6 GIT binary patch literal 833 zcmV-H1HSx;P)002t}0{{R350Hx30000yP)t-s00000 z001s7Ha|W_RashGR#aj?NqkQ|je>rjmz}D2Yp}n}zIH*D2xbDt*0Ykaam5Mli+Vy8&HdYa}vIcvlh$@q6T3=MOoIe z;yK8Qr7%N$E+vi$1F94&6`y4cCXhrk4WzJSQQa)9+(9#Wbc8Gs=gEz#HJ~A4u;Ig= z^|IiobcgBAGI&!bt5wQ*ny+vm7pxnNu^tnaEC-CJc9Rtbg*{}2ew|nbgy};TCqLU& zyuxC%HNEib%477%QuiNfleKmh!VQbDFNNJKHx`Viv+7QmHrqJ(4Nf64Tw{qh*xrh1 z!x=QzLK-}RtU#FcO55QV+B=FFBDZ1=wk(EMo4q?&0VQvJBtjQi^qw2*cDDYRC2KHN zxL=+7{gNzcRb{6Q_NMO$d)A(rcepVflVfM6`CWB--n8A@_oG=Hz@m@d0fg0oB+;t0 z>4*6b&9tY&K`D6_Z?k|gFge9*PqOjtu7~P?~=qi2|woadq@z?LW zT2-|^yNmLoFYdN~W!XO|DpT8+5i9m0d!JMQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_ z00MMLL_t(o!_AlBj^iK(EbwylE)5}d?J=lkfA!G zzdf)B3f+Q)4P^rC0QSl9xr2g^^gW1o1Sv(+>^cuc`5|*VbNE#HwP)b>r z@Kr-%&x>I|DB)`%QGaTabyimh;h!B+dQ>builA6jnvF(_LwRf{41)fJ=d(W1Gwii` zEG0-rhDaQn24V#gCbI(S^Em=H49+?F8ORA7lD&kTa2oZI3L1*q*$jV{b@-XPsK=ue<;e=mEQC;s8(j*kP5#YKA=uQJ2wr`Euq?r^9InP-s{bOg~D(N%J4q?`fe0kmW%nl4-?i{ z%?!T%ZEUocp{xRB)^)cSD%8hfMi~VPA6FW=tOLr(Q6?XDI*3vDRg^K}$BF|A!Yvv3 zo2slp<>S5E7>Tt&%RWj&f6%Efu_MfY7`ps?t00000d!JM zQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_00IF?L_t(o!{wIUma8BPg^fwHz{vYQ z?%4#WI@4Jiyf_yV*P_+c{WXw3r|G+Cv1!~i7GtwXK)#TzUI6p}L^uv>01u()vu2cV2SD!t zXs!TgU=fiJdqfUBGOtKxSnRaB0PDt0G6JanSBV-Ra^u|rXxCFL+YouZN^`yKLYL#W z=Edvf1vEk=`=TWP`xdSNjM^^|KnK>{gZGhK5(M4Hh5)tADA7#!0aDtRaJ0fR+03}+ zJt|kTK~mU+>3y1rBJ^*-^>{J>O$UH^V27CX#(Wd#_jn==ss|Rv2Ds>JBBz9~L~MXq zJNxb4tZ@g#I^HYbc17CzQ3KT7+ao5we(uNTdC&L&XnU9*05EGp5_teXt_C1(1Ly|; z1cwLu0pNH`q%J>%!8e-blaYTmegpVt^Hac?Frc3Z?00000NkvXXu0mjfQ#uvZ literal 0 HcmV?d00001 diff --git a/public/images/trainer/brassius.json b/public/images/trainer/brassius.json new file mode 100644 index 000000000..e3b8e8725 --- /dev/null +++ b/public/images/trainer/brassius.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "brassius.png", + "format": "RGBA8888", + "size": { + "w": 87, + "h": 87 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 39, + "h": 87 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 39, + "h": 87 + }, + "frame": { + "x": 0, + "y": 0, + "w": 39, + "h": 87 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:dc1bad563e8ec3d1f356e16bb060cc6c:62f1750833180a804cd665ae2b70c182:5c5965653c56f3addba6c7f44fbfa5e6$" + } +} diff --git a/public/images/trainer/brassius.png b/public/images/trainer/brassius.png new file mode 100644 index 0000000000000000000000000000000000000000..9e736d32f457aa88009d5b966783d733e6de2b45 GIT binary patch literal 829 zcmV-D1H$}?P)4RaML=Q*IAUdJdrDe@f;fVgv6!X~)XMFK^$azZTpt-a)qtt>K#bHIA<~R}U&xJATLd#S;Kf{+ z@P!qbQL!|DFZ&X5tGCx9dJ(sPUdq2T7M*=wY_k0V)PoHP>nm!3yq#tMsyd*%_=iykPcf zcCrl~E8yfTVWMi_l&EcNVBNvbW>4|8a)l?#WYeb%p&dbZzOIvp)MXKaohxb=>_H1A zHc_?74azfnvcO%8SmN4JcgJ3WVFlsZu;U$j3QnoH(pUngw|Bvb z`>2^a-UXLZtKi18{Q<5{pnX6TC%(Y7HzdR1jT0j9Q!wWbUb=C1|E&iY4_l;QmBarC zd^U%Wi!Oq3-4AHF_{~*<4eC2|^Br5kD(?OAMJ1Tn=VcKjP51o{>Nzt+E(isGTM$qz zjd%Y6yzj;B1NP|i$wMC_C^&Wk$8Lg^A7}j7EwU?#zy6zF6NDP={cM-W00000NkvXX Hu0mjfjdpbA literal 0 HcmV?d00001 diff --git a/public/images/trainer/bruno.json b/public/images/trainer/bruno.json new file mode 100644 index 000000000..c95532df3 --- /dev/null +++ b/public/images/trainer/bruno.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "bruno.png", + "format": "RGBA8888", + "size": { + "w": 68, + "h": 68 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 65, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 65, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 65, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f692676a166fc1915532cd94d5799af4:fb833f76fb6797474657726bb59a7eee:aeb55e30992938f494b6cd2420158dda$" + } +} diff --git a/public/images/trainer/bruno.png b/public/images/trainer/bruno.png new file mode 100644 index 0000000000000000000000000000000000000000..5dc90107ec258b47336f22a10cd039cd85a94e3a GIT binary patch literal 1011 zcmVFi#13Nu_FVd~w|L=8=*_pcj)5 zM_!JGg!Hnph426YL6|IxwuA*4_3|LJ{&+MRL5MYt9> zLn3{a#0*N_A(mVk;e#NKP%57e_R5x6usqL@!Dg6vi^!`Oh*OL|Kf~iFO!ba|yhpFZ z9Djd)pRG2q3T^47WV2<67*7xgSPHHT;&Bq%BR%ZWCV96d)Y6Hq@*sY4EvLaj%>++u7=*dsH+0ci!Y;)p#s zbKI1?Rh0wM8`kNf$PaxUJVmr8OCd{0sc-DME)tY8j+8PX)CCWvv$PFjH}>UKHx%Hm z6wr30x@nb4hu?rN27qqH)(ZZjTou3(fW!9KyU>kii%5?=2q3)MGp`igc1jR@iwx-o zfnvNz`sS`mfVv~sE%^(iDj41vlhkgSU4dy5r7&=dOpDYG@k%)(>g-C~Y27gTLXr1@S)h4ck!_jOwmeQVuR*Zi z1~GfhkCDC6zLY;n)DXP+eynq0001HP)t-s00000 z002i)e@RD1P*ZeRSXf$0I$l6#Xh=wGg}ZNSYj1COb~g%rfu@^iLY!+-oxk&i*}+g5C&i- zQ6WgVxEMBz2)_SI?mtPmSTBXx9JTE^<#RHbNfJfdMqNk0H0rMYB`@o`%yXNE&hu}Q z)dEI-y~4^TDI12Y4w53e!n%^ncMWK0h7Tz1B+RQ}X@D7$t6ck-FgY*{A+Eq&AuRI0 zKq5&E(RK-Imy`BTBx{5uCBHUGIhGECaz`PY0ZhkXWm`*N9OR{%0|GQ`N;zF`w>t__ zCsU4W*j5R={x@K^nd-V4RKta^A?M_y(eCY~u1+Ots;So&0+viW$R$hjB1Rbz)wK($ zqixC7`Dig3ake|AvbB(J5`Fpl%Pl-Y(Z1UAhEVf+eVQ;XmrH)#T`oJ$69?fWO!0k| z3RB$uoqV0o=N%wWsxby)5J$?of`?|01Q zhO|cijgpP*EoF*>5W;?|)`{tPfJ+#nMNB`8q9}|pqAVRndEWPb*fKOW@j9vK5tAv3 z5|nV+FunQ5khW7>O>sm8FoIMni&2so1cZr^KNZ$VND>|T-bywwA+SFtO|y7--SiHJ zhy;xghEfWR&o4i<{l2Q!wh1YIoY=DzZ`#;#6|WnZYQNvoC1U&uRDvcYK@l_ipcAD! zLXoLd0-qdd5Mx`5Dq2cP(7PN}Y3e_sIF6r414~NV`~mZo_BhhEZHe%aM)B#iq>e<# zs*>7CI0iUt_WfF_Qpp}1SaVEm%MvDMS5w+$WrDULcuTJ~~B)p@_c^_ThZd~cMMtNsZY9Y-NTu+@&9HS`Ro~Qg4x>d5r zIM3BT4vEHOiLh;D3<>4!C=o0vCy6OOMWGU!%y-=9Qn{4MKnRkU9=E>@p%ONhVG2ax z;{1^`J^rgwc%C>pQyk)xjMFm9!Zu(SMRN_fKT8!Rk*mw;S$cCo{d{Fv7B$)PGgMkW zNh&BN;UE!xDv`fV(3=?7w(diIi9&)B;|1}4a>CwVw@XSi50evjx8NYi7e&*k0I7MD znh*(Je?Ji0Pd}6V00000NkvXXu0mjft0EQ- literal 0 HcmV?d00001 diff --git a/public/images/trainer/crispin.json b/public/images/trainer/crispin.json new file mode 100644 index 000000000..6d4103be2 --- /dev/null +++ b/public/images/trainer/crispin.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "crispin.png", + "format": "RGBA8888", + "size": { + "w": 68, + "h": 68 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 39, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 39, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 39, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:46087582195f32b62e99e37c43975505:8c7c8ead42dca09b80eb90122624e002:1494e5216927600d39e09396a28686d4$" + } +} diff --git a/public/images/trainer/crispin.png b/public/images/trainer/crispin.png new file mode 100644 index 0000000000000000000000000000000000000000..865e1ac1990bc87c3dd814eeefefad025041588b GIT binary patch literal 938 zcmV;b16BNqP)PP|Ns9>!sgrn0004WQchC`6pHR9M5U*9~u@FboD@ObH24pj@CIf&c$I@3jeB z%S{5)MXH#(<&on!4oi|as-&v;>6}Z>jz5p;QL!)#Za527jL@(Qmu07rM>Px*2^;Qy zKc`?BGG7>?Qwj|(E@l4EolY2WepIL|)r#y&AKZeBBdHNF0){A98Amdy6&fugfk4p6 zf#?x2T2X=+SvjeZgluS7X`gKv8_Ke2%1ZVAkehB235BM&Y~1xo(o6)S!KV+11V&jN zE;#IjJh7f$avK^d#X!|&_L$MRo@OK(feVd|tSoJ?_DCFE7ng2(D7PE3f`ybsob86= z+DH0Tp{Bn*9yjvDL%s>TXZwil`iSt%zQ0*tw97PX6k@sWHW#}DLYQn*B9CW5v?#$6 z%5F!o!9@d;ub0$&lv{C~%<^lbXtzW0UvX-@H;CY3O#6Jom?m11O$qH~1qlDy2*kH- zkrvO0hyvqKp;%t_=mbG5Fj~)u8)=T?AQDh;j6lF*+UtyTBQ{HcK=IfeAVuN*6(E$( zxueDsil=LVZDD~CVx-q0*hk_xun@xtQZ2~wUcjkM5=lt0A_;Y!21)E}FoN^~nai(p z>h@SXWj#IyB8N$9TqhI>3jYn!Uw~X1e#xsjZ(tZN$f;0_kH}=E_1v5`Fy37H+;gO{L1rth34HLdOx+})~^K{m{ z?{wYmX5U2W1a^B9&oU?z`Pzu=7?;F#wp}5!Y_e2PZ@}HUn-zIo;x*zjWw+Nh=f_cA zTPVbJo?qUoOjg&m8EbvWMan?QO+|53%+mhWlG^cb|jH$zn-QElZx2CVQP@tnK}sqtQE; zVUOlO*#=`t;wf(O`Z%fK`z9z4<*XRhOz z2LU>Mz_{tk0<0nUh#ScW0vlA&C3giBZU0qPo5jDMhoMKQ}mLn9V72^V*3 zse#8%0SuJ0>qD-ort6MraEK5HItx&nPuX=;nm|FW=#RPq<&QnzNMVt$%Nr z@rmQ9`@p_k0Kb<#cgG`+DNh{V8Xsed_Qkfx-ccT)7{(veee&cL{}r`R{k}1Zp*itJ zoj9L-pDO!+P`JxwoQ?>jE?-r)3CGEkahXJ}XuCV&#+@6)Te7R@uDGHBx9dza!F{2| z))(B@D!g^A!}$$opg05Ott(%qbwWMOaM|v-uXUZ=w4y4mXWTTguyuL^PIwSq)1>m= zgdABGwMq0@Ysf{KL2s``;!Z&-&{PD+Lk+aYT`0x+jhlQoI{g1 zI#1wM9L_)bTAU~I1ux?2-Q+Kp0a|C_)(V{f O0000P)t-s00000 z0006qPXkbWCWgi*C@?`qV?;wpTVac6V0dX}YI{mrd{I$|mBY1sPqlir#5U<8#3 zfv&%R3nh5J&DIIX;trAs?{y#vk)K<^Ek(@m>1#?86rLH<#G{f2B!e?Rll{Jz!AY7t zXD|;9fh79-bwiJuH;{Udzh=vug2uamOt2WE7Mx9e0__S?MbqxDSSU6yiAanX;3dLB zv+xKg(=dbCfR^JrHU>>IH53O}LCHyi2w`jk#R=3eg$!b(EgpeR4$no)J;+CfLZHm* z5ZZBB%Cy-=nll6j>BDf$8$DPT1v$YQB|-8CY}-tVcULsVoPN{-h6YU=v>2x z$t}$q0;9bzW<=0>^;!<>3F^Qj(C*-x;61T8xb@rtHjRi4cJKbUyxue9rK^D&q+{h- zT$|iNHc^Er$JBZ^H*W=b1GVm!$P-4)PYJ5THObZ7!Py<5>BcR#Su^+U61P*7mYW0Y zUH=5+ayBnhVfUVh+mb_{Xqz4E`PK|*QaoKLb`U*Ux{5dLBk|-_XhM+RcmOsV$PW`3 z9)euR0?MOdJ}93bxn+t@(ag-pJIfnNY!if6FGmSH|5>V_HEJ@&)i0sNl^ zzQSzaNM0zO%R2+AFBfFjp6T zf!Yk=`abVS7f?HKV7HC^0`hy5H6j4=;-+IMpyXIxL%4+2mk;80d!JMQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_ z00R|CL_t(o!>!njcB>!^0ASNV%LeE~%KJa+O#)8a-JQvgJF9N1-$D{lJ59fBN+IGj zWNeWjtvH26r7URehoQmYD4Cff&m4tjW;Y><14V5rNCGA}DChxmY0+fL=X6-W)mrRVp zaUqJP9_ngEm7GA>og9Z5m(FL6BjmWO1`XYq)^tD`VY-DghF-|9d^Q`*=zJiY zsnVj!C9rgE(Q=fsqrXF)Mhl0Wc-G_)Xogj5k*@{Q8552#4>4A0#?xeij7_j|Ek1qx z%tYq=bvYqcU1XWmu6XUB}+lukiSV2j?(&sZQK6jX1C3=OHM{O{iaD} zX#^LdbFc3@w6G7g+yJ;M-1M4|H|@kxT3q$a|4rlnJGE&vVgI8|janF{WyywxG~3T* zZ5gELU8Ci5oJP_ZZ8@|)4%i5Gpca;0vm;^~uGwAd;`B-DPMj{I9Ho`v9f@n_^m1;s zJ$*wp3(eTMIrd#6r{9?G9gNa)O`vU{uiEh=jMKs(P0Gp_uzF5^PpLg&au7tT<@7nG z(@+aHLJK9h>PLq+4S+EY3Rr6?0*E0EOSi5eWT)l1h%~t$Ttwy1MVf;8=HyHVITZQ8 z20A~_b95V-)l`3r_4C58`FzXlOnHLn(oD>^z|I@fs{uWU$g_rvKKc~~YNlI*)$o&p jqlc?*?0AHS+V=Pd7H~jRnH2^$00000NkvXXu0mjf1$?kq literal 0 HcmV?d00001 diff --git a/public/images/trainer/drayton.json b/public/images/trainer/drayton.json new file mode 100644 index 000000000..f200987f0 --- /dev/null +++ b/public/images/trainer/drayton.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "drayton.png", + "format": "RGBA8888", + "size": { + "w": 74, + "h": 74 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 43, + "h": 74 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 43, + "h": 74 + }, + "frame": { + "x": 0, + "y": 0, + "w": 43, + "h": 74 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:da0a59e671e446e0636760e5ee0cf934:dd7c56f30917bbf38989cc2ac8271050:67e43c4868b068c5f6b927d55e7dbbac$" + } +} diff --git a/public/images/trainer/drayton.png b/public/images/trainer/drayton.png new file mode 100644 index 0000000000000000000000000000000000000000..bd575b2593765cb4214c6e0aabb3a2df3783c361 GIT binary patch literal 895 zcmV-_1AzRAP)P)t-s00000 z001L3i!d!KHd4MmFK|&#Qd~g4U|?WngZOShPJnfQk!$;!U@x3HJ)E4JwsKX$jab3K z!OzRj)tPGbYiIZ1bNtS%|NsB0-RIc=0004WQchC^IYyQY4UNUOOoHSMthpO*y~YC-eMDG(@jG^EEA^Qw!O zVHjHI^AWn8WNslSvraGSl<2!L+@kXf9+7I{c)F;{T86kOf9Y^qBx$l3;^%N!D5IdY zmRznR)KPdivNR19XI4PL-q66nb`R$sI3TVLl}m_RD4u0WxK9}uY^vDcPSrN zc2iHm)JrYTm9@hy)G&2~`B?PTNl{F`aJl?OO_Miu7L^iH(=>I1AGpxla*3uYmX#fR z+#*UXru=Z6q=PTtUe2AJsBY?}5Mo+G@%p26=ZE9Kid5aYc}XDvl_eU|z#UW{qmDX^ zQ7QUUb<{YHz2_U+O_aIAV(O-}5{fNUN-s*?K&iLY|BsYX<^~I+x{1PBPUfuA3JXVX zgQOnHtX_Rb6DxN)&HZ0|gu~%%6MBO|(TqE}0M9O5m3Br5&P~U`#BlP?Wd51pz zH&e>IC{7DZ72O`l0wqUnAV+;=JZ literal 0 HcmV?d00001 diff --git a/public/images/trainer/flint.json b/public/images/trainer/flint.json new file mode 100644 index 000000000..92375b068 --- /dev/null +++ b/public/images/trainer/flint.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "flint.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 33, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:c45265366b9c12c783d9e5665a8923e6:f5a393826ba0efa119cb758ff0aa2491:b0c7193bc2babfb51dd6f481a819daab$" + } +} diff --git a/public/images/trainer/flint.png b/public/images/trainer/flint.png new file mode 100644 index 0000000000000000000000000000000000000000..46fc32c5796d40ce553d7962af77861e059ff238 GIT binary patch literal 785 zcmV+s1Md8ZP)!oclB^&M1<=k;1|hBU z|DQVvc){a&F~C%Jsa34rTtuAD=U$d&shc z(T2w0AavU{9qcvn`dcfihK^{CeRoWxS<6VDSu%C%SJkxv%<77eVM@Ph(d=|&G#B}$ zz0*dqk4WCm5s)#-#WF3|4x=f_j4?|}8P|wYA||3K z*vg5hVKf7??&rd58srig!K#`nwyqek*5X)FUROIdY(R6&3Tv|ORF4t2cFe7ITv8N6 zY1qmKR!TwCD&@-LsmdVMoK_r5DWoA;W%SsJl2l`u%`SYm8`FspXQ zj;pa?9aaYtn)Ca1!d6$0fRk#oLUhZoqhV{6(57lRF?${aFaT|?l@7Dt*xs*0_+bWJ zSi6$|&hIfY3LUokpJ8mj@qU4YEw3QE3(}=oFlCOcwqUCV-#UtAmJ#{v87*U}rGv{~nX?>s_++n2qL%ab*AA^_XEqU9`ZT4c@W8##tOtm{%71JA(ltQyuDhQ8+EBk-WZ6RT@lef|Zb_07al zXil^djQ@*;b_aK?JqQq-XxLY?egMGHXYg(8;*Gq9^NAsPKjGfW0nEFotGa8U*H@yP z^DPGXDMhrl>gRmF(QW&u@Bdjsnm5}D-zNh0=L&`T-x~D@92$UNS3k=izbYfd-djs; P00000NkvXXu0mjfcIk2L literal 0 HcmV?d00001 diff --git a/public/images/trainer/glacia.json b/public/images/trainer/glacia.json new file mode 100644 index 000000000..b93a6da0c --- /dev/null +++ b/public/images/trainer/glacia.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "glacia.png", + "format": "RGBA8888", + "size": { + "w": 79, + "h": 79 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 41, + "h": 79 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 41, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 41, + "h": 79 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:8120da20ccadaed0910a881241350edc:99b0be03b993d64f938b1159982b6c74:83b3844c8024ad73371b1aab7b18a7b3$" + } +} diff --git a/public/images/trainer/glacia.png b/public/images/trainer/glacia.png new file mode 100644 index 0000000000000000000000000000000000000000..c73b9b69baba6a24ef88d291891a45e937c2b607 GIT binary patch literal 758 zcmVCQf3dWJf{cq?w2^X1nry#y?bNG$k@=p zSl*?3`1qjs`1t?Uz5oCJ4=jL}00001bW%=J06^y0W&i*H32;bRa{vGf6951U69E94 zoEQKA0!K+iK~z}7&DiN~<1h>aV2`E5wdAdQNqzq}-H~D^X^tNe>BX{W;}*q-p-3Y~ z)7+Q$zELc{uB(SCx2`i(xpme8w|Fd-WAuBza^dCa=Ji(MrgNtGO6H~^KfKw`S5Cw8 z^S&}(!}Cij`8>*y#q;nfrG>k)EEJ_n$V@(cFBF%q!zkZr%>Fy&>b`!)Md2O+lYKE@ z0y8RjT{r%qBuop>PdE?TfB~0_2S^8OC&Ue0Qs)~fXl;yrBsh*~%)N3v63|ZMdTt7b zf)Y)(f{1aNP-@wF6^)o)M6{`ojxiy<-7Nb>phvJT1D1JUvw>a)$=T>2+m`IHZKm`r6xW+@GZVE&ZF zp;f9fAid0)TzRQ^T|m@MWjlWG$e8JJJ@o~w>zJVmYsyza@~!8LXb+23zOjXtZB00b z;9NMnPzE7f!i&esKXE&SdhX5(@+YJ{-sQo_x!uzVc#XGt1GM6)d*y17fp_ih-TmhdS^8?-h6NeFARrhQqz#e4O_IXtv$>Prbd}Cyz)Cc=ZNNZ}=zP4gBDR zFYwYEZr-Oaqxt{uyz&7+-TN8y=t1`KzQIE&e8kIlf$a%xek-W)i80!?J)LkO*eZau oSU`IstJ3b}*pSsmu>`~T3mz9&bt(sL*8l(j07*qoM6N<$f)E&ONdN!< literal 0 HcmV?d00001 diff --git a/public/images/trainer/gordie.json b/public/images/trainer/gordie.json new file mode 100644 index 000000000..2f79f6f05 --- /dev/null +++ b/public/images/trainer/gordie.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "gordie.png", + "format": "RGBA8888", + "size": { + "w": 77, + "h": 77 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 39, + "h": 77 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 39, + "h": 77 + }, + "frame": { + "x": 0, + "y": 0, + "w": 39, + "h": 77 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:40f532362044b20223ea6ffe0ac871be:f6aead889b6739cbd59d354862d43be7:5d2d27ea79d50bffb1e2dbaa0fedbd0e$" + } +} diff --git a/public/images/trainer/gordie.png b/public/images/trainer/gordie.png new file mode 100644 index 0000000000000000000000000000000000000000..a91f7dacaa785e233c75853ffaa6f0365711aaf6 GIT binary patch literal 1015 zcmVtMre8Sdiu2lWA9#mWipVw6(RhzIiOtS`uTVN*1iA#{}Mu#yN<aF4kYf#rxG2=Maa~N&TilU~01g#cvqgY*!7MvoY7>kbKKc6=q4KK4C9~!hemW_5k zi!cKXo&YS}&@IEF+7fQ#;Z+zPAG)$!x(-2IOycD9Vv)dkK98mR^-(SeL9{7JgZFaK zq#Ejg@`JQtr=2y3hI9&So+++eDqaa!56`ygmT1HYY^RBvwx$x8r;Alp`6tcR@}yy| zst_ulXh`|AHvC9cUT{yE)zLzvJq?v+)GW=ZqqDE%th7;cYL1%ZfNlm)nl}5{ULHqB ztI9Svo_zrKfO(7=v{uF-|SN~3p29NU)qtg#cCf0i3Wm&VSf&F?j)z?9SJ z>YOobyJ?FhUB+cEY3@LimAU9L=k!4HI-96#Hur)cHX3uWP0k#e)1*46tHSfMx$T{z zxKb+i?wXyo?eWMd3ioIRm$NNGqKP;_7r*wlPmc>gHVWLv#Ku06nj?VdJY1qh?3)nX zBIV%X6GxhCqTfYJTk@>P9b9eRPwR^}(G-_MOC?tvXwBPb_^)WGH;V(#PU8gk_?-q= z#|HwZqd!g!PIAk?1CT#wWRay~?QvJv=BB|bIGMM>A835>m!|C`(hK1@Z22XWr&9@I l==A)@FJuh!eP)t-s00000 z001l}EHE%IF)lAULP9>B&_^U4N=jo+K}u~mDsy0Mb8B;ni;s<6I+Z?5m6VyO*59s~ zFu93h#KXq#@Bi{iV*mGE|NsBPhG;GT0004WQchCUPBet@PTvz3laxdF8%mq^ zQ*bFJ2)RF%+vl%=jgfQBQm(Zc9$8|JwVXoEwRrd%hm?|(OPO0tjiVkhm!Iu4u*AhE z8K11k)Uyp-6BIW-Pqt-~WexN?uwCM*W=B*Ou&JdV`ALK;>D_rXK^akPnmb(OCG zRCgW-D&ebi&S|)+B@>Ok<5*8)spR;+NY7n|)@7&T;K+!m%{i?$xWTRTZB4VXGew`F zdL=|vY^!sH8yvLzHU{RZHmG++lpJS64Vbahfa*CEgRw(<>(;xU4MUCz=IEoZT;pZ~ zuFNjx_Sqm;e$?S*68c&H^k@-}6r(fZcn6H?X@6PiGUp15vETKkb<<#M|9AU*(!nq0000;P)t-s00000 z000m|S`c%kIyyQ+YlKB(#71GsQnkHevCMg7IGk%zsrdY}n`gDX#kM_Fy?bNcrF-FR zmGAHW@bkp|waNe1z5oCJ5my!r00001bW%=J06^y0W&i*H32;bRa{vGf6951U69E94 zoEQKA0;fqtK~z}7t(ehv<1h$B4KdnCmEuIvrvLw^J0K_B-8X}2dz_cvGYm+EEX#i( z8cRG#s)kS)R4u{9RjFc?7 zEg9)3=8(~UoESU-^-sSF$&$0sjKDOG30g@Op>fjF|DB?r4`h~weCCF^vRC`siyg!vK8H*9#4v{`$_NL#Gwh}ef&Vm g;qMQ3=HXf84@?{~*8NM)uK)l507*qoM6N<$g5_g}^Z)<= literal 0 HcmV?d00001 diff --git a/public/images/trainer/hala.json b/public/images/trainer/hala.json new file mode 100644 index 000000000..f909ebe76 --- /dev/null +++ b/public/images/trainer/hala.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "hala.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 59, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 59, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 59, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:b6547cc9975d92a02b99fd63122d740b:0a72e0ac4fcbfe4329a7dcdad284ab36:7c2af56b9a9851f2e2eaeaf0cdca9370$" + } +} diff --git a/public/images/trainer/hala.png b/public/images/trainer/hala.png new file mode 100644 index 0000000000000000000000000000000000000000..0a72be4113ba84655586440768a081023cbba3cb GIT binary patch literal 1091 zcmV-J1ibr+P)Emb$eLc-MLG4(2>J2x`{1g)<2ZhtEKOQ&x33n$?IIIWDA(ai2!-#91QJ)|b&)_|0!YI( zkqZISgp5mIrDX9lOc(GZVnP#F!)aX1d4XLKx>y&>*Wwg-k{8Pz7tiCUs5XHm3hrzw zVlBm2`7AM(5F<|F0AGD`nM7N0u7Ydx)dNkSJ*6%b)?CX%Y^ku(0w;hW$KuHlo`Xhi$=5}kKp%0Pye4j*7j47v zf*X4hOqx@18{Ep9Hv;`ZT5{uqxWTNrmfJ<3tp|86D{d=pn_9(rer4mg-(ZeyEw#V4 zltq~g=*Dd#Al^#pEcyf|1Nf6X&*ov1z$A2AarlP?H?PH)h?9x5NAud)8tmEEhBMMn zR32d>j*WkB^0K9|?XpX*xaMo%d@vylC@QaIfz8G1E{J`4H*VJ6WH76|F@<1Em}r9J znBWF^)}(^jr#jyKb8og%lvsQ%1WnDB%aqgHoF&eQrEi_y>NFHwCJtrFd6KJIR(ZHJ z-r+XSMm}=y&!Yrke2JqFOPUO{Vn@#ilS~+ht8zerF_Mj?lp!v3(ejizALyz&3VxAV z(UpeIiRc_<5yCBwLC65JY-H<`|K#=38V_=^BQUSo=$1#?QW#SM1XWqKydE5;Y0HyS z6#i(9mpXVGTI1zV9!-|)aa@?5c+a>#-Xm_0hu>%|y?Ex~Fz*=$aCyD}5A(t!3r_8c z2iJ|ev)rpdbOtYTZMg^A@_r~3+@5)NVD9AsoGKfCTSr2_JZRYBa(KmJda7Cj*Rg1o z72lkNp(u17lWn8b*NMD;r_Vgw<|y{=)O}30JGfQ(mAsu_zVY7sw0ooP`Pk)kI~%4D z^F{LXp_6`-NXPrr?R@|M002ov JPDHLkV1ll!{IUQ5 literal 0 HcmV?d00001 diff --git a/public/images/trainer/hassel.json b/public/images/trainer/hassel.json new file mode 100644 index 000000000..7c5610cba --- /dev/null +++ b/public/images/trainer/hassel.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "hassel.png", + "format": "RGBA8888", + "size": { + "w": 81, + "h": 81 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 31, + "h": 81 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 31, + "h": 81 + }, + "frame": { + "x": 0, + "y": 0, + "w": 31, + "h": 81 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:2728b70a929df09ddf2421b220eb9288:cd8352a4aeee20deddbfa6db0dc27519:e955289064c69bc88782995aad0234f9$" + } +} diff --git a/public/images/trainer/hassel.png b/public/images/trainer/hassel.png new file mode 100644 index 0000000000000000000000000000000000000000..d78bc4dd5db170809071393010c9335f2487c5ca GIT binary patch literal 810 zcmV+_1J(SAP)WEQc_QSU0h*sXgox1rHhS`pp;TMn3$-rJwd&DV#S75OSf)+B~qc$VQ{S*Nao2WxVMF#nYV1$r_=>n`lMyMC7C?=6)9c8#7YRfmSu5^2AO6Rz2`4hu!^^m(##k2KUhH}9m+fx z$2uBCmavg5U@DGD+erSkYlTE&+E|QY4bVI2Gp6|vD+!CpUMPtv&0-ZBh$HJMB_Un6 z&qc9;t&mR<@CMNnbgl;JCYh6pj;0|*1l^;zg2TC25>ul7#D`g0+O4+=rMB(ZM2eDi-c% zCqi-L;%g5>(n?~Q;6(_nfe#h0?j9W1i&W8{Vu0nwr5CW&82wYMLE3JG2lyg-XT7_U zP>|xt$I5YO6*a&L_7aD76{^VZ6@&fUJZgtn#egyJM~62wOjTR5B7D5a0xH=_3~Ns@ zoFR4-$2W-zbrg>fKV7U&H!-Zu=@;YpB95IlINHbiC7 odMr185GQN+Apq7&+J)!(3+EaqtNMlNJOBUy07*qoM6N<$f>LB~AOHXW literal 0 HcmV?d00001 diff --git a/public/images/trainer/input/configuration.tps b/public/images/trainer/input/configuration.tps new file mode 100644 index 000000000..d761a9330 --- /dev/null +++ b/public/images/trainer/input/configuration.tps @@ -0,0 +1,207 @@ + + + + fileFormatVersion + 6 + texturePackerVersion + 7.0.3 + autoSDSettings + + + scale + 1 + extension + + spriteFilter + + acceptFractionalValues + + maxTextureSize + + width + -1 + height + -1 + + + + allowRotation + + shapeDebug + + dpi + 72 + dataFormat + phaser + textureFileName + + flipPVR + + pvrQualityLevel + 3 + astcQualityLevel + 2 + basisUniversalQualityLevel + 2 + etc1QualityLevel + 70 + etc2QualityLevel + 70 + dxtCompressionMode + DXT_PERCEPTUAL + ditherType + NearestNeighbour + backgroundColor + 0 + libGdx + + filtering + + x + Linear + y + Linear + + + shapePadding + 0 + jpgQuality + 80 + pngOptimizationLevel + 1 + webpQualityLevel + 101 + textureSubPath + + textureFormat + png + borderPadding + 0 + maxTextureSize + + width + 2048 + height + 2048 + + fixedTextureSize + + width + -1 + height + -1 + + algorithmSettings + + algorithm + MaxRects + freeSizeMode + Best + sizeConstraints + AnySize + forceSquared + + maxRects + + heuristic + Best + + basic + + sortBy + Best + order + Ascending + + polygon + + alignToGrid + 1 + + + dataFileNames + + json + + name + + + + multiPackMode + MultiPackOff + forceIdenticalLayout + + outputFormat + RGBA8888 + alphaHandling + ClearTransparentPixels + contentProtection + + key + + + autoAliasEnabled + + trimSpriteNames + + prependSmartFolderName + + autodetectAnimations + + globalSpriteSettings + + scale + 1 + scaleMode + Smooth + extrude + 0 + trimThreshold + 1 + trimMargin + 1 + trimMode + Trim + tracerTolerance + 200 + heuristicMask + + defaultPivotPoint + 0.5,0.5 + writePivotPoints + + + individualSpriteSettings + + fileLists + + default + + files + + + + ignoreFileList + + replaceList + + ignoredWarnings + + commonDivisorX + 1 + commonDivisorY + 1 + packNormalMaps + + autodetectNormalMaps + + normalMapFilter + + normalMapSuffix + + normalMapSheetFileName + + exporterProperties + + + diff --git a/public/images/trainer/input/convert.ps1 b/public/images/trainer/input/convert.ps1 new file mode 100644 index 000000000..01cab3836 --- /dev/null +++ b/public/images/trainer/input/convert.ps1 @@ -0,0 +1,59 @@ +$sourceDir = "." +$outputDir = ".\output" + +if (-not (Test-Path $outputDir -PathType Container)) { + New-Item -ItemType Directory -Path $outputDir | Out-Null +} + +Get-ChildItem -Path $outputDir -Include *.* -File -Recurse | foreach { $_.Delete()} + +Get-ChildItem -Path "$sourceDir\*.webp" | ForEach-Object { + $destinationDir = $outputDir + + magick.exe mogrify -format PNG $_.FullName +} + +Get-ChildItem -Path "$sourceDir\*.png" | ForEach-Object { + $destinationDir = $outputDir + + magick.exe convert -trim $_.FullName $_.FullName + + if (-not (Test-Path $destinationDir -PathType Container)) { + New-Item -ItemType Directory -Path $destinationDir | Out-Null + } + + Move-Item -Path $_.FullName -Destination $destinationDir + Write-Host "Moved: $($_.FullName) to $destinationDir" +} + +$env:PATH = "C:\Program Files\CodeAndWeb\TexturePacker\bin;$env:PATH" + +$dirs = @(".\output") + +foreach ($dir in $dirs) { + Get-ChildItem $dir -Filter *.png | ForEach-Object { + $outputDir = Join-Path $_.Directory $_.BaseName + New-Item -ItemType Directory -Path $outputDir | Out-Null + ffmpeg -i $_.FullName "$outputDir\%04d.png" + } +} + +foreach ($dir in $dirs) { + Get-ChildItem -Path $dir -Directory | ForEach-Object { + $name = $_.BaseName + Get-ChildItem -Path $_.FullName -Recurse -File | ForEach-Object { + $imagePath = Join-Path $dir "$($name).png" + $jsonPath = Join-Path $dir "$($name).json" + & TexturePacker.exe .\configuration.tps --sheet $imagePath --data $jsonPath $_.FullName + } + } + + $folders = Get-ChildItem -Path $dir -Directory + + $foldersToDelete = $folders + + foreach ($folder in $foldersToDelete) { + Remove-Item -Path $folder.FullName -Recurse -Force + Write-Host "Deleted folder: $($folder.FullName)" + } +} \ No newline at end of file diff --git a/public/images/trainer/iono.json b/public/images/trainer/iono.json new file mode 100644 index 000000000..53ae74144 --- /dev/null +++ b/public/images/trainer/iono.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "iono.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 74, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 74, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 74, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:7c5a09a59c72207c4c63b85453e24cb1:47088180adf798fd38df43258d162963:902a1357c6442f1250f67b7d864391ca$" + } +} diff --git a/public/images/trainer/iono.png b/public/images/trainer/iono.png new file mode 100644 index 0000000000000000000000000000000000000000..e2637beba084052eafe5964a7d1022b7c94f1527 GIT binary patch literal 1280 zcmV+b1^@bqP)O0;k5GA~o3pN?l(FyaxKL=lgk#ZL z;L(mM(#+Z2*2>^;h~}Hk@4cM=;{X5UQvc@G|Ns9WD9?@n0004WQchC&*m1evuk}n2aYcbRu^^6+HFmz&EOd|M@=|f-(j1mu{J~^-4(xEygX_A(QByD zjG_T*T`rfp`z;#GEq2vtN&QbFzv(Vw75sdL{h*=N2?a+E8m#DwXIOrRQR6J^I7A$> z=6r_7RwT=#XnmyZy1Fb+Af_7U^&(c4t_2p~E!Kyr3^iis9kZ1G;Y90jfM7K*tmBo% z)iPKVwo^5hl6LrxMWR4#+wS>r|GSV9nHc zD@PV-u3RCO-F3STC()RW^)bS)TC;SLCD;*jZ{7i0OGqRY)J@MTq4vU zXR-YLR%;Y&^qh2X*@o{A3HNI{W3q2ag@71q;&hOV5(J}emW@v(r-O!jT*h#vq}fDc zaMP0N`%=aS5^#w${&aYW&f)Ts$7XJYEezvn#pvZ%VrjUgq#O%esT#5rdZ)3oR_FQw zq&qv(gIf{-b)8`H!7bZ}CYv6{2O3{WutxeXt1hx+mG;)kUId3(#l{w7?UIoct>&&W7%NOCOoC}Hm(y>>)+(cGA?;;2AeWWt zuwJ_w`WP&~vD+xzk7t5LG$uX`X2bo{&1`hy*yolWm3f58;#90(PKPube!o|6m{}S( zy#$LiJiGHSxr;+&zc)v-H+!8(q?jy?=Gnbfgz?Mqc;q+8!Z{OZt8SZ}=CI>&f0S(D zoJpgt)N5eEXw0?sIsoPqlufrd`c_GagH#>FevTGtY2@(%|rCG1j}( zW*t__xr-dWMSo5ilo<+&N>UX+{x>m30{80 z)EN`@~ zq;yG`7p<=^M9+3S)7!AC1I+biFva8_2)McPdSk={8&rGyi9hOPW(I0$v=_0sC!&3V z-8@}?mhA3X-E3vK`P}HgK~}Vla`8rVORVRk(so#nYBLP>Zts4($)m<*ShhX3oknb{ q`E13|m_5T6^ScV6TFEs)H0000acSVT}KoR-HsI>Cuzw6P!?&&}7 z>R#^b?eV7^`uF(!`1t?-|BZV85dZ)H0d!JMQvg8b*k%9#010qNS#tmY3ljhU3ljkV znw%H_00O~DL_t(o!_C)QSK=@f1>kPPf{LvfFcqAUOJyKZFKu)P{r^8~&PiKF)|!{` z~(XI zh`H2|SXHUX5*DSLF($1{WzuI~FM*KD3~QM+kE~@fF2XXasw}hCl#fIKu-ySpP#IUQ!Z zgLqhIEcMQ9x6TF8G+1*EI*fM7+7?>Aj2G^5cgY-31mLt|ZSPP}q?}&d5VzZ{h&vpl z9Q4h?t(H3mO_jmI-dxdHS*4+d{<)_ND?v7{VPnn8j_PxLdQQA@_k-3S|vSbG}L zyi`iWQMFC$QDBs8mjfbfHvGxjb%5=i77K^O;yMbj0}MSkr04%yUXIrBupmtr)Ndl^ zVzjC2Is_Nzwa(H@GS`SmQ#?vVwSo2`lYtf0ZKc)2h%)PHU@3MM*4imU~=UmAqqkSs8=Og6&f#-N7 zf3wit0UKKW-t&oz@SkzOEy8iQJ)h5kIf8Jc5l0EY(Q50oKOEi2uQqEi|F7XtbG@&5 zIBx>JXt}w>>mIN68Ed$&dw(hH+ZE?gD6biR6v{hpFaMa|fH!+&+M8fF00000NkvXX Hu0mjf;;X)< literal 0 HcmV?d00001 diff --git a/public/images/trainer/kahili.json b/public/images/trainer/kahili.json new file mode 100644 index 000000000..4a79e6e69 --- /dev/null +++ b/public/images/trainer/kahili.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "kahili.png", + "format": "RGBA8888", + "size": { + "w": 79, + "h": 79 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 51, + "h": 79 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 51, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 51, + "h": 79 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3fd46753fa2e2ca83568b7a370050742:19ed43583642cca425dee05b3a72db31:d13fdee1b072f9c6087653eb140b7ad3$" + } +} diff --git a/public/images/trainer/kahili.png b/public/images/trainer/kahili.png new file mode 100644 index 0000000000000000000000000000000000000000..94dea140f4c187430b17139b8723485c66220186 GIT binary patch literal 929 zcmV;S177@zP)vfDfT^IY4+!6rdEr9<*~0_U#veZ$G%tr$*=5ror2hGyI9gPBgPsAak}~+)P0q zy?|D=(rD$*J$v+7ijWp!Q@$=)=g!J=dC_nPV|F`OuUHANmwgMyPIUYUwDu=`Q z{4CaUZycZICZSy9oiCrodN#|#Guoup|8lupyFDqR<^Gz~mR_&d+a|{1aTt?4OS;?b zR+bxQjQlxMC??+FKq6RkEqji?H8%|+%aS)!!dPq#w3inm5o;$+$#BUBwti5PbAas* z{2x7+cfdQ3`inR#6;V6G4hLU*Wmc*@zFAE*ZL1QLA(2Xtu71S|f~QbfDw6D1ufXcb z#+E+p`tEHBZepqO_6dr3JRs5Q*MBGO%y!s#p90qR^wtca^ccK*pAszn5orZ{7z7TF z3L>$={d_-7>R|}lHQa>|y6xAd_iB$WFTUHnFzCR}^WAS)y@3Mi;f8zB#2dP7UbY0k z%M(!V?Fi)Xc0!f}_dtdOhwt>%U^nFT@am~H1uP$*U&ryN@aXNQ*D=tp1;uuCd>L>^ z-B-JXUX8!Dc6TK2KN4#g?|_KZ#~Bxh00000NkvXXu0mjf DlefOB literal 0 HcmV?d00001 diff --git a/public/images/trainer/karen.json b/public/images/trainer/karen.json new file mode 100644 index 000000000..67e83595a --- /dev/null +++ b/public/images/trainer/karen.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "karen.png", + "format": "RGBA8888", + "size": { + "w": 77, + "h": 77 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 35, + "h": 77 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 35, + "h": 77 + }, + "frame": { + "x": 0, + "y": 0, + "w": 35, + "h": 77 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:27c2a63da0469ffffa9705b92132663f:10475fd03f01307babb9543675992f39:b86cc7dd564038f90ec9af695d9fd260$" + } +} diff --git a/public/images/trainer/karen.png b/public/images/trainer/karen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed1ef2d8ad71361aa3e3f232c3e5f3daa4f0897 GIT binary patch literal 731 zcmV<10wn#3P)~8&pR=D#7&FEC!qnQpFtPk=VFIo$ z0iUZ!gW5M_#`yeCt?{Yh`Hd#bA7Lm6w%2IW4ve7XT*-hP8f{zVCGUHlpa}*oqNl_r zuHBjid()Hy$0x_o_ER%)3~z#V4111m8s?XQ!<@fi7A@8)3+CBTZMI(33a!)&W*Ik< zXctZUz+JQ}rqp^*V-&2A6>H&WM>nTv!ePe(wytExz>$=cQcek+H)lB-=pf<;V*o`w~Y{N*(uoOcGRYojF;!uay>(gL(#)Y9`} zgm64!bh;dAfh0)#Q~qx;dI0+V=R7 zwoKKO;l5~%(`&`e(#mHvz4i@joK`Dtmi9fGXk}6jgY=BkkIT0ivS z)BfJn|NsB@erXH<0004WQchCRWF5}(faGLWwOGQ5uNrs4gn z;~sIxcClHDJ0*cHvC+GtNstn-MUw+#MyVg<2CanLKS?uJHp;=7J;YeC_2sRJ6A>Td zYss8PSUCyN$G(opZBjHl7bJT0+qU)7G*R@#8aTbSPxGeW<1xX<22MR{xlh|RrNo42 z(K>jq92hPk&pp~WdZ1N{&D)sJq!ll1X{%#S0NR=W{Fu`2B~1O)qs>ForPYGL%`#a$ zR`l_4g7jw1=GA-j54_#wJf7?2X}z2^FeeFJdt}4uU-`|FNh0W7w(;nIw)oMa!pfSXuE&jLKRv&d-WJj)zs&E}+-JRd2UIc(#&&A3KsE}PZs zMs1mUG;yM{##V3U)Pq#dm1>oQOdxm#6FD4i7MLFCs3E^%@eo5H1l%y6PD!#tT=p%IO-d zmh}Y=tZF;QTb<>8+c|Od^gH*7>ug=molE+KYdID_o0Ge^ZzakyJ-L?N?uKa+l&z}zMnu6|p)V_yfk+`GMq75$H#tp-=EW-c{L%Lxh zmYfyDGVpz9<}!z7Bb%3d_6c@2-?X+DYZ-q5DOxSzXT?c{00000NkvXXu0mjf8M%t2 literal 0 HcmV?d00001 diff --git a/public/images/trainer/kieran.json b/public/images/trainer/kieran.json new file mode 100644 index 000000000..ec6a32482 --- /dev/null +++ b/public/images/trainer/kieran.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "kieran.png", + "format": "RGBA8888", + "size": { + "w": 69, + "h": 69 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 22, + "h": 69 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 22, + "h": 69 + }, + "frame": { + "x": 0, + "y": 0, + "w": 22, + "h": 69 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4e4bd6e0a927f757399d25efb22d75d7:7a2d72c2e1646e4c5dee91b2f31e9ba1:443178ffdd632963913f5c41c408ab83$" + } +} diff --git a/public/images/trainer/kieran.png b/public/images/trainer/kieran.png new file mode 100644 index 0000000000000000000000000000000000000000..17eeedb3bc2a5b028de5ee8e75f614da48bc079a GIT binary patch literal 719 zcmV;=0xqKtNhycx4tFXh=wXK1hrz7K}b}kCv;Tcu>52X~N6r(6D&cGcetx zi0J6}_~3x~*vJ3>|LW;UK>z>%0d!JMQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_ z00JXPL_t(o!_Ak$a_b-rMZ?7=h1d|N;r~DNNdmvgwo(_>!qYBv=5i5|@_2lNr+65{ z`<=pw!Tt*n7Q$*w7?2cyULG(Y@WzgdG`EcxLqrZF-U^C9CIwl(@0a4P<%VZ|Uy5E(`GP2@ z80AP0=<3CPN0BnvV0G#GZ%j%wT=ec+rtjW+=KoZbWlTfsjZXB?HU~;W%e}L)ur*AQ z6P=OaoXeR$77i}wwx`>OQq&lfi^Noclq0AZDUl_o+iG<#mZJn6q&|D36D8Msk3~m8 zO_jvBicXi^Q8dmVq1I<1N@=f?TNdrU^2jx}^X<#C4sB85rYGVL~B8abC

P)t-s00000 z0000sYyerd9;g2@LW4HJ|5RdnV?tVMYioN#LVJs~k?H@Nu+*GNW1MSay?bN5y~WL> zXV#^A==uNe@BjbSz5m{8|NsBt(7fmX0004WQchC>uK4m z7-tY`7>5kRCutA>#@!%|Z77#FiY7}6-@G0~6t`XTOwNYRpW9PvO`@ky}!dwvj* zY1ET=^t^Z#UVPxeG&~;b2n~;cGZk3$Ak~bIN2K5*b+m-gmPL%whrsC_<4RJT399A^ zkZ?YDaC##-8#%>;x^TVV$is1D-^jj5hR_NcA>$Yr*RQYd@9#B^aL#IRKH~y-0U0+W zSm(40SZDzjiS$PbOza)#J}Thmp0%KwOSE*>IwUghRm%v$QG|(g69NaDvW27sdSplt zT;+wN6Cy35bvC8jjR5w5qo`FL-Y6Zn=aU<2ZG+SC2($6HZFmZxPlbn+p@K@E%oLI77js@_KP6ep*<=+g@&Ivu9Pq zLlrIY$fPN)bOgMraKbY%TT7kP9dx)8C=EuM(qvd^(^%ai_c)48eF9wofi{G

NX5DIc}rYS~O+4>MXN1%MfUueRXWDTJo%Bl@(K)w}Hl1YCFu@P^X1f6AZC# zHq>B#ZbKJqKMNWZvlUnu!X#_J&%T=iI8?;uCBZObvRZvF7zh7-XqY86@3s086A@oo zR>#H5{zW67r!oYLHjg7U>UiOxvwz~pF;3;|L%J#7nXj{Ud)4BM`FXDqksGC8*8AWg zV;qm-_LshgQ^Dnt5YlI6Bid+n5}`LAxjhx%J7`u@vi&ghgL=$NqVcE~S|pCHsq|5= zp$+Vuf~=Y$BbsJqD08q!Nr?Q;fwDfff>dhJh_YssZPpO%0xbYembE%*(v~)9z1$x$ zc1E%_#x#qj9&i9~#GrE-RP-q{t(#yHnj^*HMJsnI(hFwA(WP_7Bs6ksLfONq-sd)x zZkN#fikWDo(0CsO&eFw7)X$Wj3X)U|Y{7_+Sn<+^^{WMwEDi0;{a+xZfGnlZzCKJS z)ntbmSNpHVPqAhx8SOgbYik%x@(eR-vy4;G_r@@)Ezu$;U~R!t%Nq51s*Eg3srs>Q zrh+40thCrk_eOkc$=$re68sG(%SX3t<`vt5eCX*(a-a~4;EG&AnAWDScar;j%cAkjHj5||V zCW^~t7;9fJk$TmlNwSw8zO0KPOg4Ja-XHz+#M0RCdDRwL1+7TM)_qq$uK14InAh7-lcou)N%I!&zu|?q%`d5K4cDg3JC$qLFplm`=ShsC?rG(IqQ=%R3LM5q^}et_X2XE(HtyG zAK>JVujF1hjqdTXkP?Hki-HkQXmpP`l+x!XV27`Jq z2Ife{EJ@cP8SNNrvd3y`?Bg-ey*R=WrN`r8b2kX-F|wFo4m|8^gUf+)P&nDLc2HkK zT_|PG-jK>!R0ty7RfFE+s82BCmD8Lr)L=@CfjdG`(!`W%O+6)EARHb{!32;p9VY|r zShGV~Kw=OVcr!*3uhr!$98jnggjmR8nK&{M9{j^_#Hk)*3g>$=MxX8xms2fhhV&h!|6^yk-I~s~;J~7hN*8;N8 zk~}x%iZO`_hJ_y>5=ngxTv{9xp6E+pUR)(htZO*5bVd2TqT z1@zJz3&@L%)RR<7|GhN3?=sItNh&$&tpZY!wK|a6cl{nz1gQ>WaW3ioCZ-7{Ff_j`^~ zyVm*+bZ3w%1%3Hg*@>>d+|YX0PYk+vX1}#qJ%w@gN+@S+e{LJyG}D`|pzsE}J&A_D ct-9IiFF{W(hS~E9-v9sr07*qoM6N<$g8s&=FaQ7m literal 0 HcmV?d00001 diff --git a/public/images/trainer/lacey.json b/public/images/trainer/lacey.json new file mode 100644 index 000000000..c7d43bd4c --- /dev/null +++ b/public/images/trainer/lacey.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "lacey.png", + "format": "RGBA8888", + "size": { + "w": 68, + "h": 68 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 29, + "h": 68 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 29, + "h": 68 + }, + "frame": { + "x": 0, + "y": 0, + "w": 29, + "h": 68 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:cf546e460f48ab8dd21f5954a68ce136:8dbd790c04cb3a1fc3f5a464858b4a7f:591e6fb163fc295a15e76c8cd8c9604b$" + } +} diff --git a/public/images/trainer/lacey.png b/public/images/trainer/lacey.png new file mode 100644 index 0000000000000000000000000000000000000000..0e71e6976c9735fb33d585ca853eed4fab346961 GIT binary patch literal 794 zcmV+#1LgdQP)n=lXrU@r#Qjs!Ke z0b^tM|NpXk0^&^jq*XPZBro}9?{pF*hr_yptwYud=(@lUG7J(OgYYY|jD4xfk;p3w zdY0pbzxxW&;ZL|61*Cd*;nnR(^*l<*g-Do930+v8&q_=JY)Ex^YE20(s&OV1tLe0n z3%?eO^E_4{614q6hb0i1v7nnFBcmBaLPQjWt!P(;&4oH|jM9!*8eiNW=m^^DbsobD zISBW69Pt|-b|;9Z7-I-Ddha10})x6)1Rk+jrL}aL8^`$3a4b}@bg~(v#B`eMmnIdvx z5GpJ%y)8R(>J6chUe9jyCr=~>d5egRtB*<0K-py*jt!}~+49+8fQZCUB4Sn8+S;Qd z1&RVIqMX4v9X}B#HP(XILT$#7f!JrTlgLB?3PkrFn%lJbp|c2^Hl6jrk~<-Z|?)9TrfvmwO| zlZs3$QrvDtcEzP4?CklB+lKHtWKU(6802qcT`m=&LZsmSd=v>OiZUX*l8CIAL1_!$ zQBsYcNSt69Sx0ss9Osh90AK8R*Jm2Nr{i;o_>L3*M9>WqW_Z8oibd$*mu2xwMig6%tv+{u;u3!G Y56l=w6Ye^G0000007*qoM6N<$g6Ae=-2eap literal 0 HcmV?d00001 diff --git a/public/images/trainer/larry.json b/public/images/trainer/larry.json new file mode 100644 index 000000000..9eeb3a885 --- /dev/null +++ b/public/images/trainer/larry.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "larry.png", + "format": "RGBA8888", + "size": { + "w": 82, + "h": 82 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 82 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 82 + }, + "frame": { + "x": 0, + "y": 0, + "w": 28, + "h": 82 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f6478e4bd276827116e912ffa27e4ca8:b3a8f82bd444cc12d4ce629e3c31a12a:232c3fb757e66b58a85018ae0b167b1c$" + } +} diff --git a/public/images/trainer/larry.png b/public/images/trainer/larry.png new file mode 100644 index 0000000000000000000000000000000000000000..08dfa0bdc4b26abefbf5c4760c9a66503e10719a GIT binary patch literal 721 zcmV;?0xtcDP)k0d!JMQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_00J>dL_t(o!|mAH zQiL!N1Wfsc&lC5W_kCxYB67dqVNqEL zQ&LhAW>(Pop7Xv-&SF7H%_yRzKJ>#Oagz37#T=%GB;`bcT@Gqb#god0-nV`0y*ER* zaIa&NLGDU+Y}*FLI9IY)CpjGiK}xOHq)!q#6>GxY_0cMNp^&vbYwZosRy&7mwKpZ3 zJ}QTtQ2TY2LYh9sGMd;}6H-e*L()Voy=!|CGrBnjI+GNj-~cZsbd#v%I3$zSHt2-3 z!b=vr2>jOAve-Eq=Ix!ta!gQSldWn@{-h+)!2=)hU7qJx#6Ee9Rmw~I`1QvckB(IQvm zVC8^|YM!F5A<=<34n^8c3MHHE_8W)Pukp>uA;(EukDMGPC?T1ooFr(ZN@Eqal;e~| zAiW_$Ec|0iL7W_8#>DG~A0ZLl&w)>*o{*yFH-AM*{;C2$bA^Zcn2mPXf>An&v^~gI z%F+v))P|_>RpS#WdV@*|R^5R>B(bimZa|2yZWlSWp3Eg}o)gFw0R4O zF}p#GXoW*qCXQnr?-HWlIgROuVE7rG74zy9M)$k`6wDUSYNSM?00000NkvXXu0mjf D2SG;< literal 0 HcmV?d00001 diff --git a/public/images/trainer/leon.json b/public/images/trainer/leon.json new file mode 100644 index 000000000..e7949ce07 --- /dev/null +++ b/public/images/trainer/leon.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "leon.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 66, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 66, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 66, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:efe0524ff1196156815fac1b476fd326:ff0b73e3f8cf56ff756df48a54910784:95402922d3ca486f9564f2102e5e3810$" + } +} diff --git a/public/images/trainer/leon.png b/public/images/trainer/leon.png new file mode 100644 index 0000000000000000000000000000000000000000..c907f0dc87c5c97390b7b5ed50d4b876eb3b4e95 GIT binary patch literal 1216 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 Ef|h>usQ>@~ literal 0 HcmV?d00001 diff --git a/public/images/trainer/molayne.json b/public/images/trainer/molayne.json new file mode 100644 index 000000000..ae80a12f0 --- /dev/null +++ b/public/images/trainer/molayne.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "molayne.png", + "format": "RGBA8888", + "size": { + "w": 79, + "h": 79 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 31, + "h": 79 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 31, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 31, + "h": 79 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:056720ae56077b81375b258850332053:774e1c8463f26fac3be55ed88c8b48b9:11092260a376b1a46e696927361b6498$" + } +} diff --git a/public/images/trainer/molayne.png b/public/images/trainer/molayne.png new file mode 100644 index 0000000000000000000000000000000000000000..75f9569370e2960d55de8a60f0116cf665697608 GIT binary patch literal 816 zcmV-01JC@4P)o!Zf2*5stfiH`dt%J9rq{lB-lTiqK~>`1(D&=s|JA*5j84J;0004W zQchCX`z}iXvS@PwvkAFZ^@!x*npVx0}zA|Afz;IIl0000P)t-s00000 z000(Bk02;0AUHrcKtM^HZBQr>V=*ypJs@*KCWJ~#l9RTSb~~k#}bP$uAX6|Fn(Yq?n*s_IEXS~L(ht=V5bRYLzL`pu^)<3 zR!)6-iy{dgWG}Fy$xP%{l;N0q731T?%Cvl;Md|)T&rUo~8KuI}#OR+9e582)n&1IA zm>Ps9_GK$2Ucn(*TM*typCB~P&R>7D&ZXc}NGZsX_i09Gc1wJW$tLGQ&LIVMDw4{v z&^08mlJb~1l=S!8RxH=qJp#8uf+>nk%%J9IIvpEWNn;*E;H)s^YZy+jlT=#i&1n&Z zU+`o_UzHnnHW%%#IDYUdf$YpmX5NGW!kA^9$bledO@-1C&392sHpa9oathaNAtDl_ z6Gd8Cx3!2kWu=Bo!7}+y)$D=LM3@%sHBBVJ1jIN^le+St^~M>x5ubPsNM3KqxFJ$R zv$7J#v0*?NIcKanuj5GSPA52puvB}OfNRXc z;OWISS27Ym6W8?t32v?q=Iuk~V7tav@qP3UaI+@a6Rk?H00000NkvXXu0mjfO$1q9 literal 0 HcmV?d00001 diff --git a/public/images/trainer/nessa.json b/public/images/trainer/nessa.json new file mode 100644 index 000000000..55be9696b --- /dev/null +++ b/public/images/trainer/nessa.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "nessa.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 40, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 40, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 40, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:7b977e29a2e59b52c1362e057c3822c6:8edb10f791b9ec8a8efd38ec03dbdeb5:47ca73d6a032aab4a720c6254ff4fc93$" + } +} diff --git a/public/images/trainer/nessa.png b/public/images/trainer/nessa.png new file mode 100644 index 0000000000000000000000000000000000000000..b645ff7159a4461a83d9a82bb6cbec3b5fcddcfd GIT binary patch literal 884 zcmV-)1B?8LP){V{ySv)gfOiyQLXKmN#d`~@qsKA_S zQn29gw6wIiePrM2iRke7>5C}+2H?E20Vj}DFgwuw{~tO@rVUNlb(Z;1 z-SwJFj|W-Eiqq5SC7^LSB7lzL?d=E+tx|7CXmGCUS`H>_HJs09$Dvkb;l#?}a-a%h zV5?PNSX@ep0AXtT1CEjgF(#F>Vo)q~Vs!}_GqwkM2!=#z!JR=iOsbQy-ykX4pNu&} z=Q7l5u^Ia%%WP-jCV>fK%lou0bA1BRaWG);K3g9(V~c{cn-L?$vNp4YyKV-QVj&T0 zSR3sQ$%`wPHCNcTA*Ih&XN)iRJ}$Bi^1ebD=CNrK?=P2mUPx}Csg-ewEg?dbDE59|v`q<^!!g z(4xw^-xF{4kQZBr=`;&@sPS6Sw$5rb%c8xer4L%T);T*Sfg}y4pLUFOMy;8cnu1s) zlKk)q#-#C>n5Kzmg+5N1WclD{(in@e?`85_ugGK3$$71F<&|sLYFO;A9FKNYt~k3! z#!r*2>$bt1C9`43nBPuv`&Qy%hGD4P;hTM#e}yA3e4ydyVe5+nu*c{=2s=VM91Ewz zv8>f$^cABDEe!Oyyf!sHWjtXO`!mo6%b&&sJ0=H?jV8w#9E0g`?Jx{PcI_n**s<43 z55@E?JBDw4J7!Pq$6|n-%l1#<#nuE0@8eEtVHpcGj3dJGK0aNCDex_B3(B$a_Iw#e z#>Qf7Lfpq<49irE-QrGl002t}0{{R350Hx30000;P)t-s00000 z001i{EI2?&P)AZ#HyvR#NMfFtY17VbN-B0dUxr^tkeHa0cv+yJsHAUQtAt#wUwpKR zZNRwD=(ED;$*TD2`2YX^fIb0_00001bW%=J06^y0W&i*H32;bRa{vGf6951U69E94 zoEQKA0;)+wK~z}7t=QpmtRM^pU=NB{r0oS3==;CvJwbQZ_WnzBwvM|qev>=-MfyH-FK58vuRj3Si2Bo6}n`9g#YR<#rNcf^F8z(wL1LMnh zMnzc}7>~z;!e}3kgqrd`1U$k=X4MXh1F9>R|LZq=d~5-N`N^|b%EJ2+Hsp*A9V0NY zv=ndc3<>C+(=3k8R8vHHkW-H=yL2YB)UaxLTHZuW=&7|-dxzdSDbBB!M58+TQfrO- zkZPjFYbY(D;xX@QP5j_!MWq$n5f>?9^~7{Jwg!nTomMzIUDeZV1mO3Ts@pWVLYVa?4v< zywAGcZ?t4vdu?IzCBk6EcZ%HqZC1Hj(O|v$=Pv90rV(TG(|wkyT$f0QHPbL&BJr^q z%Jnl4-z??&8HhKfc%jx+7FK~Z~pl22MzTPj;brZyOxpQ00000NkvXXu0mjf*)ERv literal 0 HcmV?d00001 diff --git a/public/images/trainer/olympia.json b/public/images/trainer/olympia.json new file mode 100644 index 000000000..7657c203b --- /dev/null +++ b/public/images/trainer/olympia.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "olympia.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 71, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 71, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 71, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:8a5317d8179477c4ebacd1a8320c8f00:af036c98f1ea81c2f6f206ee2a8a27e4:8d30aebeb02e9ba6100c89e96a91cfa6$" + } +} diff --git a/public/images/trainer/olympia.png b/public/images/trainer/olympia.png new file mode 100644 index 0000000000000000000000000000000000000000..5faa566d31be922517f215a67ffb34b4168c0cbd GIT binary patch literal 1204 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 Ze*yLoFJCazVvzs<002ovPDHLkV1iK@fsX(H literal 0 HcmV?d00001 diff --git a/public/images/trainer/piers.json b/public/images/trainer/piers.json new file mode 100644 index 000000000..3bd41235a --- /dev/null +++ b/public/images/trainer/piers.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "piers.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 32, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:572b029af7ba070df3da72bb45fe5f9b:9888d3bee3803cdb59761c07028038f9:e89e8efdc4525aa7088f4ff29ad6c9d4$" + } +} diff --git a/public/images/trainer/piers.png b/public/images/trainer/piers.png new file mode 100644 index 0000000000000000000000000000000000000000..7730a2d54cae5e555167f951ba2bf73e8232d317 GIT binary patch literal 913 zcmV;C18)3@P)GMyKj&Nl zaXnkfi{YH~XW{QiAOy}Z{4+3|HxN$K0Ag+}grHOi_vh2ig>el0km3lzuhFa4HC*o} zXcfC|+ve56!5YWRiGv3V_lA+mTvW%*9kR^8l!Hgx7l3L0!gmIPGiy6Gan81!CkOUZ z85JX^mQ6cU*>lQ@HOsQ5%?hvOobxuJYlhf>u|D|hiDpF6O>f+$*s&?+88M28y*Ti~ zWWwacx;0WmjzCM&)fPF3y`z*^f~&99-~>;8s)ohWIy5n^VrFEqlmd^|B8!r;My8qv z(`jRVX=#y_2uWsaS%9^aBwDbFNm^2jCX1C7SB_NHl@q3=#wd#^)mRu&#X=z_#3Qz3 zv`P{1=eoZAkwxnR*tR4vVhBa}>n(^DoPKilV5;@%yxt5=(5;Xf0xQ<%okwp<3y0pZY@xB%`@Ew=fg2vC&@?Vl4DBco z?b(W%E~UV&_OD@wq#u}uW{VlO8~R?a5Q4dvVVi3t?X*OjHft;6vD=d(bh%tqTa2OU zT}7Y#{df>tFKaChGd9kdEBXC+e726J0opL|)&hnGTA#QOW44;CMZ*UwHh|XGg&JW- zX2m{URh8DSwP75l^{k<_Ka*Oi9aYJSeH^jce^T1E$)xRXnQ3KZw3Ig^b{L6cYFo^& zO*?^8vFuKB$9QDs6R^1lmR+xjdf}ORU@>|ziLqml5^a~MZI?|Dv00000NkvXXu0mjf8Q8E@ literal 0 HcmV?d00001 diff --git a/public/images/trainer/poppy.json b/public/images/trainer/poppy.json new file mode 100644 index 000000000..474918a5e --- /dev/null +++ b/public/images/trainer/poppy.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "poppy.png", + "format": "RGBA8888", + "size": { + "w": 51, + "h": 51 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 51 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 51 + }, + "frame": { + "x": 0, + "y": 0, + "w": 28, + "h": 51 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:5f8cbcde857b7a29fea01a9e477a675f:546d2e2698c05e1a4d75c26a7ed8d979:1f59734568d54df11aae4a850db1cb34$" + } +} diff --git a/public/images/trainer/poppy.png b/public/images/trainer/poppy.png new file mode 100644 index 0000000000000000000000000000000000000000..750043084c03f766ee8d35f443fe0c89ab13285c GIT binary patch literal 617 zcmV-v0+#)WP)Bg$T78tGgmzVqmfW_swz$pNyRvh=dt$|7bI#xY-lTi`_{RR1 ziT~BT|JT0%|NnSi|B3(r00DGTPE!Ct=GbNc000SaNLh0L01FcU01FcV0GgZ_0005N zNkl zyoD>syv!;ugae^)9l5}K2u^1C4?~+(Q5i3UU?Mgn!Np)SZJ2|Juqs3V#gKXsUY)V6 zdK;BWMb42Cx_%-nbwfoMQ3_6x5UdQ=x|+Z*WN_Bm7<4(wT)5V8nDme%-UXS zhds<}DcczF71GmGeR?rSF2>F&z`b?ial*rUn*L#8bU-3s$3+6J)0CN<XtX_^xQelWRmQa5zAKZA^(eFNtMct+lPczQVvr zP{Xx~;bBSZ-m(Ax|M5F;s{jB10d!JMQvg8b*k%9#010qNS#tmY3ljhU3ljkVnw%H_ z00M<@`Kky6HH_8F44B*y*QuYK_8C zqkGnflk`MWa?T01V%}%u4AJPNnx~F6RM$+xW(x6|4mL$| zG!5usuvzN})0E<% z+xXsU6ZOJ0+4RCx!$w1~Ot`8k4@Ykf(_}Rq1K%9Z7dws4mS&usROwi5qA@191&c0S zDrQkB%GKjfYH~BO(hdf88aiVwaK*tw!lBP zT)BFj8k)WkboV|id+brJx&PL^1O4-W00001bW%=J z06^y0W&i*H32;bRa{vGf6951U69E94oEQKA0-Q-iK~z}7rPtAtqA(Bz&|DCLMje(# zfdwZ2|Ce(+K|o7ulT2HqCoMH(dlM8DbbsA!cX6pNie?9YU zV=*KM%jIpdV9_(T|1(*6VYtT%s^^uh1z)UzKy(eN`L?cy?{C}Vejnl&lod?YBLol+ zeBGK}@;MC5bHb+ln&-y$O~XoVw>gObW>~IfgMTx(R+Z4kjfo9p1oNz`wrUgpH@K6B z;Vx6u1lqQ$qKy;NhdXNBIw8g2ULMej(4ut=;^)Z@7NQa$wg_fbs5A+Fx;_vKa2YFM zRssnn5YbK$Ds~KwBh*?%A3eu@a+ihH+83b`Zd2UMsJpJ#5^+MF=K{zyoKQ2O1n?(| z$adQnA*u-Em;7>ZB@_j>)ln1;9U+u?`2dRID#r21LUcI5Sb^eNT#1MfMi`@>0f-<* zpkT%^&&zxRNEDvXLCaxAV>ksfVg)$Lt1lvCH6&96jN@7XEiZ&@2?69SFYypuJBtul zg1nU|JmK%r;ezSl87#t*5-FH&G)g()k>Lc6Lxl)j3D=5LvI&I~LYA`YfDUdL9g1BS zB#Iyc9StrgE7=Q5fIwlH1U#@6vH$YFBAg(VV4oCDEP}yn5&{L|#?W<8Z-pXcL-6Xx zZ>*Qgh8Dra@Kbm%1QC!up?)J6>|5Vu1kZ9iF##z8N7-$=2zVBNAYuHl5Ajmd$F*1m z*G2p!u{I$OTiBKD?^q!Me=htpvwu)~>LTO_0E6|3wJeXv?Z%eLX)xpvf%TEKu8+H_ tGk>6rIEDbvO=mUFLN!tzJwK6e;|DV7F#Gt0-E05=002ovPDHLkV1hYcYa##u literal 0 HcmV?d00001 diff --git a/public/images/trainer/rika.json b/public/images/trainer/rika.json new file mode 100644 index 000000000..16b47cea8 --- /dev/null +++ b/public/images/trainer/rika.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "rika.png", + "format": "RGBA8888", + "size": { + "w": 74, + "h": 74 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 33, + "h": 74 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 74 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 74 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:e58cd8809538d1f92ce64d8d1996a867:38dec2321db5101ff0f07d4014a4cc27:2bfb91984c30734729050b61c6ad6a04$" + } +} diff --git a/public/images/trainer/rika.png b/public/images/trainer/rika.png new file mode 100644 index 0000000000000000000000000000000000000000..f5848fda2196f3c7c35faef97f165dedbf665f20 GIT binary patch literal 716 zcmV;-0yF)IP)<~eRW|5_V;n9`mV|)MA zz5oCJUve~600001bW%=J06^y0W&i*H32;bRa{vGf6951U69E94oEQKA0x3yEK~z}7 z-Pr4H;xG^eV4v8;4enysegAjeGvg3KwLg{_uY}gE6oiydbF&GAa9)e9;9f-5vAi1A zD;3Bh=9AX-3LJU*C}2*huqrg6Qlw60pVL3Rz!emUJH}SRM^)x1ZM-_;!qU5xYYf-o zv4raDQkVOnI%PRr^g~`f)J^hFvPM`>4`F6oF@q@ z3zdf@Mbm|sDG4hBBOsv|WzMftdsqk6QXa)?ug@zfRwXy=%{ztla3BWA zP^4K+sgWT_m0m3SaRftY5sNkBUh3U+bV>IICC3AI4tD^IhoF{5@(T*3c${LUPeR)Fr3kY`3QA#6$wO_+hzc%BpZBor=NDYms@8F+rs$&9DU?1^{h-W2{UZve&si%K z=1|;y>s|U!sjzRGFo6m)sXafTtmndsLYPY3gR^eubAE3^h3BffsK>M9Gz#I(s3X6L zl)ms-4}jk<-h~>{zL{rG`(}O{D(FvF$9F`Rv|TPZu^wr|iQ4Rse3YIkqoojUK5kdo yB;9T|Db%A@e8*~y<^ksxTsGe^^M}Fs>-8H_TNj`!u5jA`0000( zlA|yTL}@!VU?pOm|Nq#PWJq8tv$e>?l@}g3(~@;*W*9!4pl7(|6d50sf09%YDh&SVR#d!Mb6} zTDWG)wQ{`WTTkLN%JRI4s@qdo0o-v329xNB5F-MI%91wc9TcHqn({=k8Y+WwkhBFC zOiF*6CQ_K9L}X^|t>CJEf#v7(PplkZMIx|ycEPkWg_iRKO_vI*Rbd{Qb-4yAAn8x3 zvz6tbN&fW*ZA=D}6b7KI*)fsyGF6(CD$Cqpowzb7P1#wRvH}bytkhtJ>w&Sd1eU^j z9D`R{bA#F2A}(y=a5`o8RhdOKL)E!JhcG4O^WyYP}sq|G;IO7%%xptWilB1x$w+pU7Q`##_=P}>ALOTQ#jDYC5)q+wig2PE)F9!HebbuSJe#>pLRlH z9YxrvpXW#0R`tvOJZ!8%?B@?@q1JFZXQSk%l761kF;3=sI%o2hE literal 0 HcmV?d00001 diff --git a/public/images/trainer/sidney.json b/public/images/trainer/sidney.json new file mode 100644 index 000000000..61c455fa8 --- /dev/null +++ b/public/images/trainer/sidney.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "sidney.png", + "format": "RGBA8888", + "size": { + "w": 79, + "h": 79 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 43, + "h": 79 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 43, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 43, + "h": 79 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:e82b9e75a81a7d2bef29539ab11efa51:b6c121de42b0360b6deeddb3eb098241:99a3e87f970e3e2c688c2c674d8bedb9$" + } +} diff --git a/public/images/trainer/sidney.png b/public/images/trainer/sidney.png new file mode 100644 index 0000000000000000000000000000000000000000..72e6db5e4af26aea5e3f687a647809b752fbb8f3 GIT binary patch literal 775 zcmV+i1Ni)jP)Q8s{hP^fTtsF-N3Mr*)0Fu{>V*r0gec#r7l z`1;qs{@aBA|Nl9>iGctB00DGTPE!Ct=GbNc000SaNLh0L01FcU01FcV0GgZ_0007B zNklr)FfZAc%>{$U$S%5lZFOq;4HC7b#;=u(8 zFJsOzC*)Z~7?_h7LA9Z|o7>=7i2&6`F>bUWJb(gTh-FxMIW?)L2JfEg;v%iTUE>#Ctspj-vZu)f=1pKP zEgx8oBHF3WAT0~L$ed>nKaHS818n&AC>gGx@f=?bacRm}VP{nkT=BpqDqMTkx&HYp zZBI9vlsw}^yV#U9gAl>NONKq4;FXV9n!N&AelLPD=mupw7bGQ!tif*$HL7PvPkpLm%qLf{e)vlSefUhDS(SK5xH*=9x<$xy+G&suXaBedj=lUF zphS4P$MKDOS|1(-2@X!p*O7<^v3ia~xEx{$P{zZlCF$iuOTs(Cn`(e06`qK9a|b7q zFmGK!FK@M-lkvX8V{pv7hF1gpS)P8Yr`>I+A9Nl+_Vn%Sw|n~C-Wd26k1ntOD-VB= z_5l9FUS5-6L+sP@6cOSZ@WQiaN1kB#UPylrxM|IE2=mJ|jQY7{p2fVZ;VFE6X?Y*V zSJl~j|KuU!9*`wi^Haj*Lfn_`OYQO<(R(lOZ^h2~{RY>7DLpUqXvY8m002ovPDHLk FV1mEBY8U_j literal 0 HcmV?d00001 diff --git a/public/images/trainer/siebold.json b/public/images/trainer/siebold.json new file mode 100644 index 000000000..dfdf4c691 --- /dev/null +++ b/public/images/trainer/siebold.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "siebold.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 29, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 29, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 29, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:dabf7ee86ceadc21affe2ce9fa3bc8bd:49f60999e72f0bd6e11ba675f7169d08:76ee2f6492637a426e906f99db57b891$" + } +} diff --git a/public/images/trainer/siebold.png b/public/images/trainer/siebold.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac8038f87e774123195552977487ec0b311c03e GIT binary patch literal 718 zcmV;<0x|uGP)VvwMhJ^io<{GzEE~P=J62*F`l0|0yT$_W z)aIQ2g$3MZTB0bO1N)b?ZT9#!aN5>q#220onoB9yVq@ouqwg1JHn|oZ$I&yu&Q8^b zamTPV04y|KD+mxDed}~^7{G^l<86$-35p2E4g7vPhL4Up#Xc1Gz&MUetG3rbaiW$g z&bii9QCRLV9=5WowD#!@)3h~K6Xz6gP3hQdAz{&BuV&R+X>AGwdo!xGMg=FXS#)ry zwN|N|3v5C~tDQX6Q%-Luom`qqZ51X3C$~eB)U^I;t_iin-EqnzI9UAtziX@ST&j9M*DvXs_h((wx7Xy*8&< zR06WucpC?eehsUJ%$clB!ne)v~ zWzNRN&{>k?#hT{Pv+30M?^-|cq0ITaru*UU{PyYp`~3g^|9ao@u>b%70d!JMQvg8b z*k%9#010qNS#tmY3ljhU3ljkVnw%H_00NOoL_t(o!_An{mZC5Wh6#?11xF$ys}z>^ zf6V>UqT`;uYqIA|1k?+^^CwM{#-{nl2-bKRQGj^?Nl}VaUI=CyP%-KguNcYfY6K2< zrWtWWF$`fChRicZ5aNc6!$ZYc)eSoi(R1JdR{|GFFI^Q24-DYiw$0gxFQFb6@>;gk zO1OM%nkA$uQ!fpGuzg%a65%QtZE-bH+fkCFmi;ATp0px`mfFT%3ch*VI8*`p9a!W7 zZHIBJg`7_BHGrY6{iJ0XYxHq*+8(Dj9Ad`&d057!0>_CSFnZNaViKXlJTFzjBYyDL zSN>`L3%fvgVHTQas!fl?&`1sIHUMs10Gz3>;<0d-I6+V+xnjz)%=0|1>)Q7fu}d1P z4*4O%xrQX|7HhV?!q?mj0V|(k52@>J^#!2pC|aQ_(|WuUTek&3(=>smSlw$z-ZVwM zayBOi-tBf%+H;*8aJL(k91=DcmFv|J7p~c;(9AWj;JQw8P}nT)epecnAQzU#j#D0M zGxMRrLdu)Y+$&@|xi?}e zq9Z{w&g6%~*fWkUxUL!XWH&phBaDiQ^YRsgECv+vSqYvo7_(2NsIM9{r_96nl!NAj z%i^eXjEP)uWzv(*2e&?PE;PwF90pv($u15vr~^)Rand=g1U<)f6=%ljKW$HE9gZkj f+~oOpyIIs9x9vHG-Ou$l00000NkvXXu0mjfj8Tv_ literal 0 HcmV?d00001 diff --git a/public/images/trainer/unknown_f.json b/public/images/trainer/unknown_f.json new file mode 100644 index 000000000..1de0ba518 --- /dev/null +++ b/public/images/trainer/unknown_f.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "unknown_f.png", + "format": "RGBA8888", + "size": { + "w": 70, + "h": 70 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 70 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 70 + }, + "frame": { + "x": 0, + "y": 0, + "w": 32, + "h": 70 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:1857a7c5c3d096e3bce41cbf9e6d5e5a:bd97816910eab6e27b5da6f99a335029:6df1809e5e428fcf2b0510546d330f1c$" + } +} diff --git a/public/images/trainer/unknown_f.png b/public/images/trainer/unknown_f.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fb6d789a812fb195ba31845964e233e2d2a2e1 GIT binary patch literal 561 zcmV-10?z%3P)P|}uQ{{LHxgTXR&7P?X<+9VsDk*;1IoU6^#vKo1(u#J%o zMP*30nu7GCbj2`EqI4%)IZ{l6k~q>}+7vPf2GGWa(#FW^)WkSvB8{`DlecLa0tF7k zINtEAGUgtWJ+3GwC-wcr#Q6dymFF`2gf2W{91QwqjB!LUtc!n3G=y)P;m}4N&bB|3 z>vfg*hBXdbpO<-0Nm}s|$yV|&sEzAQKF0}LIQ2N~#TIkwp`79!o6gp313RZqDvUjb zsm@%gcc1-*wc?mQmVsJirK*ye;vBm27!X{TTI2rMH6*)JFV^sf?j^nRV2U@ESvY)C zD8f0v`p|vuOrCu&itY?lhN3x&UVfoRdU0QHg-cdSjQ@ur1mjK^G@OD_g>%M0eZ#fU zV8{l;+D=n)Rv?YWEEPpozKOxtdW9i)-!Kf26?63p3`>d#*Vwnh0W@x7NRyR99G;Z| z!%htUXMsVcienc1#?%_?J_2QLQhb!!Ihgk!(^fI0u#q1j00000NkvXXu0mjf7{vG7 literal 0 HcmV?d00001 diff --git a/public/images/trainer/unknown_m.json b/public/images/trainer/unknown_m.json new file mode 100644 index 000000000..e6b57696d --- /dev/null +++ b/public/images/trainer/unknown_m.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "unknown_m.png", + "format": "RGBA8888", + "size": { + "w": 70, + "h": 70 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 40, + "h": 70 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 40, + "h": 70 + }, + "frame": { + "x": 0, + "y": 0, + "w": 40, + "h": 70 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:8a769f0a59df10aa34c7d41d92424b07:4e6268a9786172c7ced0dc7cc4d557ae:a448147530457384723696685136600a$" + } +} diff --git a/public/images/trainer/unknown_m.png b/public/images/trainer/unknown_m.png new file mode 100644 index 0000000000000000000000000000000000000000..a48f97af57ab90b0d907dc2af1a0d874f6f5b6f1 GIT binary patch literal 624 zcmV-$0+0QPP)FhD>+P*6}{U|?`?aDRV)j*gC=o}R9*uD-s$&d$!>-rnx+ z?)&=s{{H@hryxQA000AYQchCgoP+WT^Lal^F^@s|UNB*- z4T;QR)ciEQd56#$%u4H^52451la_)1-PJ&On2PBR-$0y%@|axwG~|!O)MGRW;z-OC z@~{1Qh$DS7h9Sy8de53R`y)rNC5JNWa(`k7FWz>LR;Z5f74w1md&D$-%VV@%$gI)> zGsnASnHM<_rVX;7qE%Qy3}I~8q{571PHt;H@Ydh63rkxD=J0Hra(2JCS_T#l(7ouE z)kIsBEK3ESy#)&wU-a)-|5%;E7$L@v;bI)tXRgG=6asxrLJWgqRtXBR;6oT`630Rq zm(BpPU`}GH3hcqU7>;pZ>|tRati&e9pD~JUWPF!?7W)Iz1v5R^8AA>L0000< KMNUMnLSTYDoElaD literal 0 HcmV?d00001 diff --git a/public/images/trainer/valerie.json b/public/images/trainer/valerie.json new file mode 100644 index 000000000..6ae402bd2 --- /dev/null +++ b/public/images/trainer/valerie.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "valerie.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 62, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 62, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 62, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d9b7a3cf34f83f484b83ac9b12906d14:01a80c0c099066865189b83103db5199:2f92cf0c7738dd2686d43b6d79df83d1$" + } +} diff --git a/public/images/trainer/valerie.png b/public/images/trainer/valerie.png new file mode 100644 index 0000000000000000000000000000000000000000..dc03beceb5616377ff57392a6914ef593e2629ce GIT binary patch literal 1134 zcmV-!1d;oRP)LP32|6Oo*^+~Df_Iw~eV~^Rz&$fY^v%GK5K#LJvGzMX>FaR@?q`~QB|g)HqiLEN za^^?1pGKUa>CYeTD7F!2$V`)tQs>-voI!Y8gYqPxG}4z`A{iSp#*(|wtrCKg5{c&U zUTGKec8LM1+?X5>e+~?PFWQJ=?wXdy(a{o}RvL3d<=lv3=bmWHjdG>or>1Zm;xJe@ zW)G$QO1Vp%dTyyZ3668kcPZLwcrKU2g-DpC(K&7c#3&pK`IZ+vm+w02f$oOsD+IT2 zX{~+cN^sRfYX+Tz3b#GndCjdkc=O!rMDebr58ZlIc*}+Pko(|qaPvH`Ic-n&WP)RF zBT3;iPQY+ zRsqiRDY~U8B6)bCv7^7ln`iHDR~lmR z`*XH_X$L7qsJxPD;Sw*b63x+H;bN@mdQzDFg8e=@n*5h2PTt{ZrYcpr@wpf!bTs-1(2iS5}IgBw# zwk%`|7iWLMMLXNV@x@6a3S{k?vxVD@F1G|YYc)7ifyyn5P`+pUz)5d9=6DaKtDZ6m z6Us>po(_Ala5+~~cPXg-u-)lUWKI%_JL7D{Y4pm;nivbI2Xik=aulY6Ve3~~4i39m zUO^$K$Kyde-WexF?83?7&H!VMw?g!?V>sc;ey-c)-or!L{b8X^TDO85&hQHn2fE6^ z(|(}m3MU@_dWiRyE}d{oQBysF_K+%g@kmG8LC4$Y;AO6R-;mwnVBuM%mAAXyy2NEq z2bEOb(TwGfo=}^8h&DkPplFKY@OC--#!=#_(0v6LvQ~C?d)j__o$hl zU3X!(ESzceMHx71$)O^fc_Ovtr1GedCS0TVbk9wV8n?_FVm9C?KlONBK&{%L5l6|S z{FHCevZPvS*$_yx&6nF6UAyneseX6S#=DLE1MV17Z`NB9j{pDw07*qoM6N<$f*p<< At^fc4 literal 0 HcmV?d00001 diff --git a/public/images/trainer/viola.json b/public/images/trainer/viola.json new file mode 100644 index 000000000..ce61fcbb6 --- /dev/null +++ b/public/images/trainer/viola.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "viola.png", + "format": "RGBA8888", + "size": { + "w": 72, + "h": 72 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 26, + "h": 72 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 26, + "h": 72 + }, + "frame": { + "x": 0, + "y": 0, + "w": 26, + "h": 72 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:487fada157503f66c1330000e49cfd0f:98af44af7633d716892338063a6abf74:215527e3c1922dfbceffd5c9e9eac3ed$" + } +} diff --git a/public/images/trainer/viola.png b/public/images/trainer/viola.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6f19cadffca0f79ee9bb5d6cca6a7b84154eaf GIT binary patch literal 776 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 P00000NkvXXu0mjf;raOK literal 0 HcmV?d00001 diff --git a/src/arena.ts b/src/arena.ts index 978abc147..5153acea4 100644 --- a/src/arena.ts +++ b/src/arena.ts @@ -125,7 +125,7 @@ export class Arena { } randomTrainerType(waveIndex: integer): TrainerType { - const isBoss = waveIndex > 20 && !(waveIndex % 30) && !!this.trainerPool[BiomePoolTier.BOSS].length + const isBoss = (waveIndex % 30) === 20 && !!this.trainerPool[BiomePoolTier.BOSS].length && (this.biomeType !== Biome.END || this.scene.gameMode === GameMode.CLASSIC || waveIndex % 250 === 0); const tierValue = Utils.randSeedInt(!isBoss ? 512 : 64); let tier = !isBoss diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 0d9d87e85..2f650625d 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -2473,12 +2473,12 @@ export class VictoryPhase extends PokemonPhase { if (this.scene.currentBattle.waveIndex % 10) this.scene.pushPhase(new SelectModifierPhase(this.scene)); else { - if (this.scene.currentBattle.waveIndex <= 750 && (this.scene.currentBattle.waveIndex <= 500 || !(this.scene.currentBattle.waveIndex % 30))) { - this.scene.pushPhase(new ModifierRewardPhase(this.scene, ((this.scene.currentBattle.waveIndex + (this.scene.gameMode !== GameMode.CLASSIC ? 20 : 0)) % 30) || this.scene.currentBattle.waveIndex >= 250 ? modifierTypes.EXP_CHARM : modifierTypes.SUPER_EXP_CHARM)); - if (this.scene.currentBattle.waveIndex <= 150 && !(this.scene.currentBattle.waveIndex % 50)) - this.scene.pushPhase(new ModifierRewardPhase(this.scene, modifierTypes.GOLDEN_POKEBALL)); - } - if (this.scene.gameMode !== GameMode.CLASSIC && !(this.scene.currentBattle.waveIndex % 50)) { + const superExpWave = this.scene.gameMode === GameMode.CLASSIC ? 20 : 10; + if (this.scene.currentBattle.waveIndex <= 750 && (this.scene.currentBattle.waveIndex <= 500 || (this.scene.currentBattle.waveIndex % 30) === superExpWave)) + this.scene.pushPhase(new ModifierRewardPhase(this.scene, (this.scene.currentBattle.waveIndex % 30) !== superExpWave || this.scene.currentBattle.waveIndex > 250 ? modifierTypes.EXP_CHARM : modifierTypes.SUPER_EXP_CHARM)); + if (this.scene.currentBattle.waveIndex <= 150 && !(this.scene.currentBattle.waveIndex % 50)) + this.scene.pushPhase(new ModifierRewardPhase(this.scene, modifierTypes.GOLDEN_POKEBALL)); + if (this.scene.gameMode !== GameMode.CLASSIC && !(this.scene.currentBattle.waveIndex % 50)) { this.scene.pushPhase(new ModifierRewardPhase(this.scene, !(this.scene.currentBattle.waveIndex % 250) ? modifierTypes.VOUCHER_PREMIUM : modifierTypes.VOUCHER_PLUS)); this.scene.pushPhase(new AddEnemyBuffModifierPhase(this.scene)); } diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 266362ac4..3e72d8ee1 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -701,18 +701,18 @@ export default class BattleScene extends Phaser.Scene { this.resetSeed(newWaveIndex); - if (fixedBattles.hasOwnProperty(newWaveIndex) && this.gameMode === GameMode.CLASSIC) { + if (fixedBattles.hasOwnProperty(newWaveIndex) && this.gameMode === GameMode.CLASSIC && trainerData === undefined) { battleConfig = fixedBattles[newWaveIndex]; newDouble = battleConfig.double; newBattleType = battleConfig.battleType; - this.executeWithSeedOffset(() => newTrainer = battleConfig.getTrainer(this), newWaveIndex); + this.executeWithSeedOffset(() => newTrainer = battleConfig.getTrainer(this), (battleConfig.seedOffsetWaveIndex || newWaveIndex) << 8); if (newTrainer) this.field.add(newTrainer); } else { if (this.gameMode !== GameMode.CLASSIC) newBattleType = BattleType.WILD; else if (battleType === undefined) { - if (newWaveIndex > 20 && !(newWaveIndex % 30)) + if ((newWaveIndex % 30) === 20) newBattleType = BattleType.TRAINER; else if (newWaveIndex % 10 !== 1 && newWaveIndex % 10) { const trainerChance = this.arena.getTrainerChance(); @@ -722,7 +722,7 @@ export default class BattleScene extends Phaser.Scene { for (let w = Math.max(newWaveIndex - 3, waveBase + 2); w <= Math.min(newWaveIndex + 3, waveBase + 9); w++) { if (w === newWaveIndex) continue; - if (((w > 20 && !(w % 30)) || fixedBattles.hasOwnProperty(w))) { + if ((w % 30) === 20 || fixedBattles.hasOwnProperty(w)) { allowTrainerBattle = false; break; } else if (w < newWaveIndex) { diff --git a/src/battle.ts b/src/battle.ts index 964d9bf8e..5872ed0f0 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -156,6 +156,7 @@ export class FixedBattleConfig { public double: boolean; public getTrainer: GetTrainerFunc; public getEnemyParty: GetEnemyPartyFunc; + public seedOffsetWaveIndex: integer; setBattleType(battleType: BattleType): FixedBattleConfig { this.battleType = battleType; @@ -176,6 +177,26 @@ export class FixedBattleConfig { this.getEnemyParty = getEnemyPartyFunc; return this; } + + setSeedOffsetWave(seedOffsetWaveIndex: integer): FixedBattleConfig { + this.seedOffsetWaveIndex = seedOffsetWaveIndex; + return this; + } +} + +function getRandomTrainerFunc(trainerPool: (TrainerType | TrainerType[])[]): GetTrainerFunc { + return (scene: BattleScene) => { + const rand = Utils.randSeedInt(trainerPool.length); + console.log(rand); + const trainerTypes: TrainerType[] = []; + for (let trainerPoolEntry of trainerPool) { + const trainerType = Array.isArray(trainerPoolEntry) + ? Phaser.Math.RND.pick(trainerPoolEntry) + : trainerPoolEntry; + trainerTypes.push(trainerType); + } + return new Trainer(scene, trainerTypes[rand]); + }; } interface FixedBattleConfigs { @@ -196,15 +217,15 @@ export const fixedBattles: FixedBattleConfigs = { [145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_5, true)), [186]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) - .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.SHAUNTAL)), - [187]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) - .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.MARSHAL)), - [188]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) - .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.GRIMSLEY)), - [189]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) - .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.CAITLIN)), - [190]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) - .setGetTrainerFunc(scene => new Trainer(scene, Phaser.Math.RND.pick([ TrainerType.BLUE, TrainerType.RED, TrainerType.LANCE, TrainerType.STEVEN, TrainerType.WALLACE, TrainerType.CYNTHIA, TrainerType.IRIS, TrainerType.ALDER, TrainerType.CYNTHIA ]))), + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ]/*, TrainerType.RIKA, TrainerType.CRISPIN*/ ])), + [187]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(186) + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BRUNO, TrainerType.KOGA, TrainerType.PHOEBE, TrainerType.BERTHA, TrainerType.MARSHAL, TrainerType.SIEBOLD, TrainerType.OLIVIA/*, TrainerType.POPPY, TrainerType.AMARYS*/ ])), + [188]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(186) + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.AGATHA, TrainerType.BRUNO, TrainerType.GLACIA, TrainerType.FLINT, TrainerType.GRIMSLEY, TrainerType.WIKSTROM, TrainerType.ACEROLA/*, TrainerType.LARRY_ELITE, TrainerType.LACEY*/ ])), + [189]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(186) + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LANCE, TrainerType.KAREN, TrainerType.DRAKE, TrainerType.LUCIAN, TrainerType.CAITLIN, TrainerType.DRASNA, TrainerType.KAHILI/*, TrainerType.HASSEL, TrainerType.DRAYTON*/ ])), + [190]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(186) + .setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.BLUE, TrainerType.RED, TrainerType.LANCE_CHAMPION, TrainerType.STEVEN, TrainerType.WALLACE, TrainerType.CYNTHIA, TrainerType.IRIS, TrainerType.ALDER, TrainerType.IRIS, TrainerType.DIANTHA, TrainerType.LEON/*, TrainerType.NEMONA, TrainerType.KIERAN*/ ])), [195]: new FixedBattleConfig().setBattleType(BattleType.TRAINER) .setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_6, true)) -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/data/biome.ts b/src/data/biome.ts index 2be335558..0322b1efc 100644 --- a/src/data/biome.ts +++ b/src/data/biome.ts @@ -1591,7 +1591,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CILAN, TrainerType.CHILI, TrainerType.CRESS, TrainerType.CHEREN, TrainerType.LENORA ], + [BiomePoolTier.BOSS]: [ TrainerType.CILAN, TrainerType.CHILI, TrainerType.CRESS, TrainerType.CHEREN ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1602,7 +1602,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.ERIKA, TrainerType.GARDENIA ], + [BiomePoolTier.BOSS]: [ TrainerType.ERIKA ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1613,7 +1613,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.ERIKA, TrainerType.GARDENIA ], + [BiomePoolTier.BOSS]: [ TrainerType.GARDENIA, TrainerType.VIOLA ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1624,7 +1624,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [ TrainerType.ARTIST ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.NORMAN, TrainerType.CHEREN ], + [BiomePoolTier.BOSS]: [ TrainerType.WHITNEY, TrainerType.NORMAN ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1646,7 +1646,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.JUAN, TrainerType.CRASHER_WAKE, TrainerType.MARLON ], + [BiomePoolTier.BOSS]: [ TrainerType.MARLON ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1679,7 +1679,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.MISTY ], + [BiomePoolTier.BOSS]: [ TrainerType.CRASHER_WAKE ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1690,7 +1690,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.JUAN, TrainerType.CRASHER_WAKE, TrainerType.MARLON ], + [BiomePoolTier.BOSS]: [ TrainerType.JUAN ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1712,7 +1712,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CLAY ], + [BiomePoolTier.BOSS]: [ TrainerType.CLAY, TrainerType.GRANT ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1734,7 +1734,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CLAY ], + [BiomePoolTier.BOSS]: [ TrainerType.GORDIE ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1745,7 +1745,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.PRYCE, TrainerType.CANDICE, TrainerType.BRYCEN ], + [BiomePoolTier.BOSS]: [ TrainerType.PRYCE, TrainerType.BRYCEN, TrainerType.WULFRIC ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1756,7 +1756,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.WHITNEY ], + [BiomePoolTier.BOSS]: [ TrainerType.LENORA, TrainerType.MILO ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1767,7 +1767,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.LT_SURGE, TrainerType.WATTSON, TrainerType.VOLKNER, TrainerType.ELESA ], + [BiomePoolTier.BOSS]: [ TrainerType.VOLKNER, TrainerType.ELESA, TrainerType.CLEMONT ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1778,7 +1778,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.BLAINE, TrainerType.FLANNERY ], + [BiomePoolTier.BOSS]: [ TrainerType.BLAINE, TrainerType.FLANNERY, TrainerType.KABU ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1789,7 +1789,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.MORTY, TrainerType.FANTINA ], + [BiomePoolTier.BOSS]: [ TrainerType.MORTY, TrainerType.ALLISTER ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1800,7 +1800,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CHUCK, TrainerType.BRAWLY ], + [BiomePoolTier.BOSS]: [ TrainerType.BRAWLY, TrainerType.KORRINA, TrainerType.BEA ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1833,7 +1833,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CLAIR, TrainerType.DRAYDEN ], + [BiomePoolTier.BOSS]: [ TrainerType.CLAIR, TrainerType.DRAYDEN, TrainerType.RAIHAN ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1844,7 +1844,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.GIOVANNI ], + [BiomePoolTier.BOSS]: [ TrainerType.MARNIE ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1855,7 +1855,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.SABRINA ], + [BiomePoolTier.BOSS]: [ TrainerType.OLYMPIA ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1866,7 +1866,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CHUCK ], + [BiomePoolTier.BOSS]: [ TrainerType.LT_SURGE, TrainerType.CHUCK, TrainerType.WATTSON ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1877,7 +1877,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.ERIKA, TrainerType.GARDENIA ], + [BiomePoolTier.BOSS]: [ TrainerType.RAMOS ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1888,7 +1888,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.WHITNEY ], + [BiomePoolTier.BOSS]: [ TrainerType.VALERIE, TrainerType.OPAL, TrainerType.BEDE ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1910,7 +1910,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.JANINE ], + [BiomePoolTier.BOSS]: [ TrainerType.PIERS ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1921,7 +1921,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CANDICE ], + [BiomePoolTier.BOSS]: [ TrainerType.CANDICE, TrainerType.MELONY ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -1932,7 +1932,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ TrainerType.CANDICE ], + [BiomePoolTier.BOSS]: [ TrainerType.NESSA ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -7070,33 +7070,27 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.MISTY, [ - [ Biome.LAKE, BiomePoolTier.BOSS ], [ Biome.BEACH, BiomePoolTier.BOSS ] ] ], [ TrainerType.LT_SURGE, [ - [ Biome.POWER_PLANT, BiomePoolTier.BOSS ] + [ Biome.CONSTRUCTION_SITE, BiomePoolTier.BOSS ] ] ], [ TrainerType.ERIKA, [ - [ Biome.GRASS, BiomePoolTier.BOSS ], - [ Biome.TALL_GRASS, BiomePoolTier.BOSS ], - [ Biome.JUNGLE, BiomePoolTier.BOSS ] + [ Biome.GRASS, BiomePoolTier.BOSS ] ] ], [ TrainerType.JANINE, [ - [ Biome.SWAMP, BiomePoolTier.BOSS ], - [ Biome.SLUM, BiomePoolTier.BOSS ] + [ Biome.SWAMP, BiomePoolTier.BOSS ] ] ], [ TrainerType.SABRINA, [ - [ Biome.RUINS, BiomePoolTier.BOSS ], - [ Biome.SPACE, BiomePoolTier.BOSS ] + [ Biome.RUINS, BiomePoolTier.BOSS ] ] ], [ TrainerType.GIOVANNI, [ - [ Biome.ABYSS, BiomePoolTier.BOSS ], - [ Biome.LABORATORY, BiomePoolTier.BOSS ] // Temporary + [ Biome.LABORATORY, BiomePoolTier.BOSS ] ] ], [ TrainerType.BLAINE, [ @@ -7112,8 +7106,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.WHITNEY, [ - [ Biome.MEADOW, BiomePoolTier.BOSS ], - [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] + [ Biome.METROPOLIS, BiomePoolTier.BOSS ] ] ], [ TrainerType.MORTY, [ @@ -7121,7 +7114,6 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.CHUCK, [ - [ Biome.DOJO, BiomePoolTier.BOSS ], [ Biome.CONSTRUCTION_SITE, BiomePoolTier.BOSS ] ] ], @@ -7146,7 +7138,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.WATTSON, [ - [ Biome.POWER_PLANT, BiomePoolTier.BOSS ] + [ Biome.CONSTRUCTION_SITE, BiomePoolTier.BOSS ] ] ], [ TrainerType.FLANNERY, [ @@ -7170,7 +7162,6 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.JUAN, [ - [ Biome.SEA, BiomePoolTier.BOSS ], [ Biome.SEABED, BiomePoolTier.BOSS ] ] ], @@ -7179,18 +7170,14 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.GARDENIA, [ - [ Biome.GRASS, BiomePoolTier.BOSS ], - [ Biome.TALL_GRASS, BiomePoolTier.BOSS ], - [ Biome.JUNGLE, BiomePoolTier.BOSS ] + [ Biome.TALL_GRASS, BiomePoolTier.BOSS ] ] ], [ TrainerType.CRASHER_WAKE, [ - [ Biome.SEA, BiomePoolTier.BOSS ], - [ Biome.SEABED, BiomePoolTier.BOSS ] + [ Biome.LAKE, BiomePoolTier.BOSS ] ] ], [ TrainerType.FANTINA, [ - [ Biome.GRAVEYARD, BiomePoolTier.BOSS ], [ Biome.TEMPLE, BiomePoolTier.BOSS ] ] ], @@ -7199,8 +7186,6 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.CANDICE, [ - [ Biome.ICE_CAVE, BiomePoolTier.BOSS ], - [ Biome.ISLAND, BiomePoolTier.BOSS ], // Temporary [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS ] ] ], @@ -7218,12 +7203,11 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ Biome.PLAINS, BiomePoolTier.BOSS ] ] ], [ TrainerType.CHEREN, [ - [ Biome.PLAINS, BiomePoolTier.BOSS ], - [ Biome.METROPOLIS, BiomePoolTier.BOSS ] + [ Biome.PLAINS, BiomePoolTier.BOSS ] ] ], [ TrainerType.LENORA, [ - [ Biome.PLAINS, BiomePoolTier.BOSS ] + [ Biome.MEADOW, BiomePoolTier.BOSS ] ] ], [ TrainerType.ROXIE, [ @@ -7239,8 +7223,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.CLAY, [ - [ Biome.BADLANDS, BiomePoolTier.BOSS ], - [ Biome.DESERT, BiomePoolTier.BOSS ] + [ Biome.BADLANDS, BiomePoolTier.BOSS ] ] ], [ TrainerType.SKYLA, [ @@ -7256,22 +7239,120 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.MARLON, [ - [ Biome.SEA, BiomePoolTier.BOSS ], - [ Biome.SEABED, BiomePoolTier.BOSS ] - ] - ], + [ Biome.SEA, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.VIOLA, [ + [ Biome.TALL_GRASS, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.GRANT, [ + [ Biome.BADLANDS, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.KORRINA, [ + [ Biome.DOJO, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.RAMOS, [ + [ Biome.JUNGLE, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.CLEMONT, [ + [ Biome.POWER_PLANT, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.VALERIE, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.OLYMPIA, [ + [ Biome.SPACE, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.WULFRIC, [ + [ Biome.ICE_CAVE, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.MILO, [ + [ Biome.MEADOW, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.NESSA, [ + [ Biome.ISLAND, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.KABU, [ + [ Biome.VOLCANO, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.BEA, [ + [ Biome.DOJO, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.ALLISTER, [ + [ Biome.GRAVEYARD, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.OPAL, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.BEDE, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.GORDIE, [ + [ Biome.DESERT, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.MELONY, [ + [ Biome.SNOWY_FOREST, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.PIERS, [ + [ Biome.SLUM, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.MARNIE, [ + [ Biome.ABYSS, BiomePoolTier.BOSS ] + ] ], + [ TrainerType.RAIHAN, [ + [ Biome.WASTELAND, BiomePoolTier.BOSS ] + ] ], + /*[ TrainerType.KATY, [] ], + [ TrainerType.BRASSIUS, [] ], + [ TrainerType.IONO, [] ], + [ TrainerType.KOFU, [] ], + [ TrainerType.LARRY, [] ], + [ TrainerType.RYME, [] ], + [ TrainerType.TULIP, [] ], + [ TrainerType.GRUSHA, [] ],*/ + [ TrainerType.LORELEI, [] ], + [ TrainerType.BRUNO, [] ], + [ TrainerType.AGATHA, [] ], + [ TrainerType.LANCE, [] ], + [ TrainerType.WILL, [] ], + [ TrainerType.KOGA, [] ], + [ TrainerType.KAREN, [] ], + [ TrainerType.SIDNEY, [] ], + [ TrainerType.PHOEBE, [] ], + [ TrainerType.GLACIA, [] ], + [ TrainerType.DRAKE, [] ], + [ TrainerType.AARON, [] ], + [ TrainerType.BERTHA, [] ], + [ TrainerType.FLINT, [] ], + [ TrainerType.LUCIAN, [] ], [ TrainerType.SHAUNTAL, [] ], [ TrainerType.MARSHAL, [] ], [ TrainerType.GRIMSLEY, [] ], [ TrainerType.CAITLIN, [] ], + [ TrainerType.MALVA, [] ], + [ TrainerType.SIEBOLD, [] ], + [ TrainerType.WIKSTROM, [] ], + [ TrainerType.DRASNA, [] ], + [ TrainerType.HALA, [] ], + [ TrainerType.MOLAYNE, [] ], + [ TrainerType.OLIVIA, [] ], + [ TrainerType.ACEROLA, [] ], + [ TrainerType.KAHILI, [] ], + /*[ TrainerType.RIKA, [] ], + [ TrainerType.POPPY, [] ], + [ TrainerType.LARRY_ELITE, [] ], + [ TrainerType.HASSEL, [] ],*/ [ TrainerType.BLUE, [] ], [ TrainerType.RED, [] ], - [ TrainerType.LANCE, [] ], + [ TrainerType.LANCE_CHAMPION, [] ], [ TrainerType.STEVEN, [] ], [ TrainerType.WALLACE, [] ], [ TrainerType.CYNTHIA, [] ], [ TrainerType.ALDER, [] ], [ TrainerType.IRIS, [] ], + [ TrainerType.DIANTHA, [] ], + [ TrainerType.LEON, [] ], + /*[ TrainerType.NEMONA, [] ], + [ TrainerType.KIERAN, [] ],*/ [ TrainerType.RIVAL, [] ] ]; diff --git a/src/data/trainer-type.ts b/src/data/trainer-type.ts index 9bbd4b872..6bf594282 100644 --- a/src/data/trainer-type.ts +++ b/src/data/trainer-type.ts @@ -106,22 +106,82 @@ export enum TrainerType { BRYCEN, DRAYDEN, MARLON, + VIOLA, + GRANT, + KORRINA, + RAMOS, + CLEMONT, + VALERIE, + OLYMPIA, + WULFRIC, + MILO, + NESSA, + KABU, + BEA, + ALLISTER, + OPAL, + BEDE, + GORDIE, + MELONY, + PIERS, + MARNIE, + RAIHAN, + /*KATY, + BRASSIUS, + IONO, + KOFU, + LARRY, + RYME, + TULIP, + GRUSHA*/ - SHAUNTAL = 300, + LORELEI = 300, + BRUNO, + AGATHA, + LANCE, + WILL, + KOGA, + KAREN, + SIDNEY, + PHOEBE, + GLACIA, + DRAKE, + AARON, + BERTHA, + FLINT, + LUCIAN, + SHAUNTAL, MARSHAL, GRIMSLEY, CAITLIN, + MALVA, + SIEBOLD, + WIKSTROM, + DRASNA, + HALA, + MOLAYNE, + OLIVIA, + ACEROLA, + KAHILI, + /*RIKA, + POPPY, + LARRY_ELITE, + HASSEL*/ - BLUE = 325, + BLUE = 350, RED, - LANCE, + LANCE_CHAMPION, STEVEN, WALLACE, CYNTHIA, ALDER, IRIS, + DIANTHA, + LEON, + /*NEMONA, + KIERAN,*/ - RIVAL = 350, + RIVAL = 375, RIVAL_2, RIVAL_3, RIVAL_4, @@ -341,6 +401,12 @@ export class TrainerConfig { case TrainerType.RIVAL_6: trainerType = TrainerType.RIVAL; break; + case TrainerType.LANCE_CHAMPION: + trainerType = TrainerType.LANCE; + break; + /*case TrainerType.LARRY_ELITE: + trainerType = TrainerType.LARRY; + break;*/ } return trainerType; @@ -453,12 +519,17 @@ export class TrainerConfig { return this; } - initForGymLeader(signatureSpecies: Species, specialtyType?: Type): TrainerConfig { + initForGymLeader(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig { this.setPartyTemplateFunc(getGymLeaderPartyTemplate); - this.setPartyMemberFunc(-1, getRandomPartyMemberFunc([ signatureSpecies ])); - if (specialtyType !== undefined) - this.setSpeciesFilter(p => p.isOfType(specialtyType)); - this.setSpecialtyTypes(specialtyType); + signatureSpecies.forEach((speciesPool, s) => { + if (!Array.isArray(speciesPool)) + speciesPool = [ speciesPool ]; + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + if (specialtyTypes.length) { + this.setSpeciesFilter(p => !!specialtyTypes.find(t => p.isOfType(t))); + this.setSpecialtyTypes(...specialtyTypes); + } this.setMoneyMultiplier(2.5); this.setBoss(); this.setStaticParty(); @@ -467,12 +538,16 @@ export class TrainerConfig { return this; } - initForEliteFour(signatureSpecies: Species, specialtyType?: Type): TrainerConfig { + initForEliteFour(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig { this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR); - this.setPartyMemberFunc(-1, getRandomPartyMemberFunc([ signatureSpecies ])); - if (specialtyType !== undefined) { - this.setSpeciesFilter(p => p.isOfType(specialtyType) && p.baseTotal >= 450); - this.setSpecialtyTypes(specialtyType); + signatureSpecies.forEach((speciesPool, s) => { + if (!Array.isArray(speciesPool)) + speciesPool = [ speciesPool ]; + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); + if (specialtyTypes.length) { + this.setSpeciesFilter(p => specialtyTypes.find(t => p.isOfType(t)) && p.baseTotal >= 450); + this.setSpecialtyTypes(...specialtyTypes); } else this.setSpeciesFilter(p => p.baseTotal >= 450); this.setMoneyMultiplier(3.25); @@ -483,9 +558,13 @@ export class TrainerConfig { return this; } - initForChampion(signatureSpecies: Species): TrainerConfig { + initForChampion(signatureSpecies: (Species | Species[])[]): TrainerConfig { this.setPartyTemplates(trainerPartyTemplates.CHAMPION); - this.setPartyMemberFunc(-1, getRandomPartyMemberFunc([ signatureSpecies ])); + signatureSpecies.forEach((speciesPool, s) => { + if (!Array.isArray(speciesPool)) + speciesPool = [ speciesPool ]; + this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(speciesPool)); + }); this.setSpeciesFilter(p => p.baseTotal >= 470); this.setMoneyMultiplier(10); this.setBoss(); @@ -735,23 +814,23 @@ export const trainerConfigs: TrainerConfigs = { `I hope we get to have a rematch some day.` ]), - [TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(Species.GEODUDE, Type.ROCK), - [TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(Species.STARYU, Type.WATER), - [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(Species.ELECTABUZZ, Type.ELECTRIC), - [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(Species.TANGELA, Type.GRASS), - [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(Species.VENONAT, Type.POISON), - [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(Species.ALAKAZAM, Type.PSYCHIC), - [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(Species.MAGMAR, Type.FIRE), - [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(Species.SANDILE, Type.DARK), - [TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader(Species.PIDGEY, Type.FLYING), - [TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader(Species.SCYTHER, Type.BUG), - [TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader(Species.MILTANK, Type.FAIRY), - [TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader(Species.GASTLY, Type.GHOST), - [TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader(Species.POLIWRATH, Type.FIGHTING), - [TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader(Species.STEELIX, Type.STEEL), - [TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader(Species.SWINUB, Type.ICE), - [TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader(Species.DRATINI, Type.DRAGON), - [TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader(Species.NOSEPASS, Type.ROCK) + [TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader([ Species.GEODUDE, Species.ONIX ], Type.ROCK), + [TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader([ Species.STARYU, Species.PSYDUCK ], Type.WATER), + [TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader([ Species.VOLTORB, Species.PIKACHU, Species.ELECTABUZZ ], Type.ELECTRIC), + [TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader([ Species.ODDISH, Species.BELLSPROUT, Species.TANGELA, Species.HOPPIP ], Type.GRASS), + [TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader([ Species.VENONAT, Species.SPINARAK, Species.ZUBAT ], Type.POISON), + [TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader([ Species.ABRA, Species.MR_MIME, Species.ESPEON ], Type.PSYCHIC), + [TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader([ Species.GROWLITHE, Species.PONYTA, Species.MAGMAR ], Type.FIRE), + [TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader([ Species.SANDILE, Species.MURKROW, Species.NIDORAN_M, Species.NIDORAN_F ], Type.DARK), + [TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader([ Species.PIDGEY, Species.HOOTHOOT, Species.DODUO ], Type.FLYING), + [TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader([ Species.SCYTHER, Species.HERACROSS, Species.SHUCKLE, Species.PINSIR ], Type.BUG), + [TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader([ Species.CLEFAIRY, Species.MILTANK ], Type.NORMAL), + [TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader([ Species.GASTLY, Species.MISDREAVUS, Species.SABLEYE ], Type.GHOST), + [TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader([ Species.POLIWRATH, ], Type.FIGHTING), + [TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader([ Species.MAGNEMITE, Species.STEELIX ], Type.STEEL), + [TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader([ Species.SEEL, Species.SWINUB ], Type.ICE), + [TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader([ Species.DRATINI, Species.HORSEA, Species.GYARADOS ], Type.DRAGON), + [TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader([ Species.GEODUDE, Species.NOSEPASS ], Type.ROCK) .setEncounterMessages([ `Would you kindly demonstrate how you battle?`, `You can learn many things by battling many trainers.`, @@ -765,7 +844,7 @@ export const trainerConfigs: TrainerConfigs = { `I look forward to battling you again.\nI hope you'll use what you've learned here.`, `I won due to everything I have learned.` ]), - [TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader(Species.MAKUHITA, Type.FIGHTING) + [TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader([ Species.MACHOP, Species.MAKUHITA ], Type.FIGHTING) .setEncounterMessages([ `Oh man, a challenger!\nLet's see what you can do!`, `You seem like a big splash.\nLet's battle!`, @@ -779,7 +858,7 @@ export const trainerConfigs: TrainerConfigs = { `Surf with me again some time!`, `Just like the tides come in and out, I hope you return to challenge me again.` ]), - [TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader(Species.ELECTRIKE, Type.ELECTRIC) + [TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader([ Species.MAGNEMITE, Species.VOLTORB, Species.ELECTRIKE ], Type.ELECTRIC) .setEncounterMessages([ `Time to get shocked!\nWahahahaha!`, `I'll make sparks fly!\nWahahahaha!`, @@ -793,7 +872,7 @@ export const trainerConfigs: TrainerConfigs = { `I hope you found our battle electrifying!\nWahahahaha!`, `Aren't you shocked I won?\nWahahahaha!` ]), - [TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader(Species.TORKOAL, Type.FIRE) + [TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader([ Species.SLUGMA, Species.TORKOAL, Species.NUMEL ], Type.FIRE) .setEncounterMessages([ `Nice to meet you! Wait, no…\nI will crush you!`, `I've only been a leader for a little while, but I'll smoke you!`, @@ -807,7 +886,7 @@ export const trainerConfigs: TrainerConfigs = { `I…I can't believe I won!\nDoing things my way worked!`, `Let's exchange burning hot moves again soon!` ]), - [TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader(Species.SLAKOTH, Type.NORMAL) + [TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader([ Species.SLAKOTH, Species.SPINDA, Species.CHANSEY, Species.KANGASKHAN ], Type.NORMAL) .setEncounterMessages([ `I'm surprised you managed to get here.\nLet's battle.`, `I'll do everything in my power as a Gym Leader to win.\nLet's go!`, @@ -821,7 +900,7 @@ export const trainerConfigs: TrainerConfigs = { `You should try challenging my kid instead.\nYou might learn something!`, `Thank you for the excellent battle.\nBetter luck next time.` ]), - [TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader(Species.SWABLU, Type.FLYING) + [TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader([ Species.SWABLU, Species.WINGULL, Species.TROPIUS, Species.SKARMORY ], Type.FLYING) .setEncounterMessages([ `I've been soaring the skies looking for prey…\nAnd you're my target!`, `No matter how our battle is, my Flying Pokémon and I will triumph with grace. Let's battle!`, @@ -835,7 +914,7 @@ export const trainerConfigs: TrainerConfigs = { `I hope you enjoyed our show.\nOur graceful dance is finished.`, `Won't you come see our elegant choreography again?` ]), - [TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader(Species.SOLROCK, Type.PSYCHIC) + [TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader([ Species.SOLROCK, Species.NATU, Species.CHIMECHO, Species.GALLADE ], Type.PSYCHIC) .setEncounterMessages([ `Hehehe…\nWere you surprised to see me without my sister?`, `I can see what you're thinking…\nYou want to battle!`, @@ -849,7 +928,7 @@ export const trainerConfigs: TrainerConfigs = { `If you can't even defeat me, you'll never be able to defeat Liza either.`, `It's all thanks to my strict training with Liza.\nI can make myself one with Pokémon.` ]), - [TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader(Species.LUNATONE, Type.PSYCHIC) + [TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader([ Species.LUNATONE, Species.SPOINK, Species.BALTOY, Species.GARDEVOIR ], Type.PSYCHIC) .setEncounterMessages([ `Fufufu…\nWere you surprised to see me without my brother?`, `I can determine what you desire…\nYou want to battle, don't you?`, @@ -863,7 +942,7 @@ export const trainerConfigs: TrainerConfigs = { `If you can't even defeat me, you'll never be able to defeat Tate either.`, `It's all thanks to my strict training with Tate.\nI can synchronize myself with my Pokémon.` ]), - [TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader(Species.HORSEA, Type.WATER) + [TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader([ Species.HORSEA, Species.BARBOACH, Species.SPHEAL, Species.RELICANTH ], Type.WATER) .setEncounterMessages([ `Now's not the time to act coy.\nLet's battle!`, `Ahahaha, You'll be witness to my artistry with Water Pokémon!`, @@ -877,41 +956,105 @@ export const trainerConfigs: TrainerConfigs = { `Ahahaha, I have won, and you have lost.`, `Shall I loan you my outfit? It may help you battle!\nAhahaha, I jest!` ]), - [TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader(Species.CRANIDOS, Type.ROCK), - [TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader(Species.ROSELIA, Type.GRASS), - [TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader(Species.LUCARIO, Type.FIGHTING), - [TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader(Species.BUIZEL, Type.WATER), - [TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader(Species.MISDREAVUS, Type.GHOST), - [TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader(Species.SHIELDON, Type.STEEL), - [TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader(Species.SNEASEL, Type.ICE), - [TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader(Species.SHINX, Type.ELECTRIC), - [TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader(Species.PANSAGE, Type.GRASS), - [TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader(Species.PANSEAR, Type.FIRE), - [TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader(Species.PANPOUR, Type.WATER), - [TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader(Species.LILLIPUP, Type.NORMAL), - [TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader(Species.KANGASKHAN, Type.NORMAL), - [TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader(Species.SCOLIPEDE, Type.POISON), - [TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader(Species.SEWADDLE, Type.BUG), - [TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader(Species.EMOLGA, Type.ELECTRIC), - [TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader(Species.DRILBUR, Type.GROUND), - [TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader(Species.DUCKLETT, Type.FLYING), - [TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader(Species.CRYOGONAL, Type.ICE), - [TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader(Species.DRUDDIGON, Type.DRAGON), - [TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader(Species.WAILMER, Type.WATER), + [TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader([ Species.CRANIDOS, Species.LARVITAR, Species.GEODUDE ], Type.ROCK), + [TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader([ Species.ROSELIA, Species.TANGELA, Species.TURTWIG ], Type.GRASS), + [TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader([ Species.LUCARIO, Species.MEDITITE, Species.CHIMCHAR ], Type.FIGHTING), + [TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader([ Species.BUIZEL, Species.MAGIKARP, Species.PIPLUP ], Type.WATER), + [TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader([ Species.MISDREAVUS, Species.DRIFLOON, Species.SPIRITOMB ], Type.GHOST), + [TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader([ Species.SHIELDON, Species.BRONZOR, Species.AGGRON ], Type.STEEL), + [TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader([ Species.SNEASEL, Species.SNOVER, Species.SNORUNT ], Type.ICE), + [TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader([ Species.SHINX, Species.CHINCHOU, Species.ROTOM ], Type.ELECTRIC), + [TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader([ Species.PANSAGE, Species.COTTONEE, Species.PETILIL ], Type.GRASS), + [TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader([ Species.PANSEAR, Species.DARUMAKA, Species.HEATMOR ], Type.FIRE), + [TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader([ Species.PANPOUR, Species.BASCULIN, Species.TYMPOLE ], Type.WATER), + [TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader([ Species.LILLIPUP, Species.MINCCINO, Species.PATRAT ], Type.NORMAL), + [TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader([ Species.KANGASKHAN, Species.DEERLING, Species.AUDINO ], Type.NORMAL), + [TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader([ Species.VENIPEDE, Species.TRUBBISH, Species.SKORUPI ], Type.POISON), + [TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader([ Species.SEWADDLE, Species.SHELMET, Species.KARRABLAST ], Type.BUG), + [TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader([ Species.EMOLGA, Species.BLITZLE, Species.JOLTIK ], Type.ELECTRIC), + [TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader([ Species.DRILBUR, Species.SANDILE, Species.GOLETT ], Type.GROUND), + [TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader([ Species.DUCKLETT, Species.WOOBAT, Species.RUFFLET ], Type.FLYING), + [TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader([ Species.CRYOGONAL, Species.VANILLITE, Species.CUBCHOO ], Type.ICE), + [TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader([ Species.DRUDDIGON, Species.AXEW, Species.DEINO ], Type.DRAGON), + [TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader([ Species.WAILMER, Species.FRILLISH, Species.TIRTOUGA ], Type.WATER), + [TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader([ Species.SURSKIT, Species.SCATTERBUG ], Type.BUG), + [TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader([ Species.AMAURA, Species.TYRUNT ], Type.ROCK), + [TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader([ Species.HAWLUCHA, Species.LUCARIO, Species.MIENFOO ], Type.FIGHTING), + [TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader([ Species.SKIDDO, Species.HOPPIP, Species.BELLSPROUT ], Type.GRASS), + [TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader([ Species.HELIOPTILE, Species.MAGNEMITE, Species.EMOLGA ], Type.ELECTRIC), + [TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader([ Species.SYLVEON, Species.MAWILE, Species.MR_MIME ], Type.FAIRY), + [TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader([ Species.ESPURR, Species.SIGILYPH, Species.SLOWKING ], Type.PSYCHIC), + [TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader([ Species.BERGMITE, Species.SNOVER, Species.CRYOGONAL ], Type.ICE), + [TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader([ Species.GOSSIFLEUR, Species.APPLIN, Species.BOUNSWEET ], Type.GRASS), + [TrainerType.NESSA]: new TrainerConfig(++t).initForGymLeader([ Species.CHEWTLE, Species.ARROKUDA, Species.WIMPOD ], Type.WATER), + [TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader([ Species.SIZZLIPEDE, Species.VULPIX, Species.TORKOAL ], Type.FIRE), + [TrainerType.BEA]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_FARFETCHD, Species.MACHOP, Species.CLOBBOPUS ], Type.FIGHTING), + [TrainerType.ALLISTER]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_YAMASK, Species.GALAR_CORSOLA, Species.GASTLY ], Type.GHOST), + [TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader([ Species.MILCERY, Species.TOGETIC, Species.GALAR_WEEZING ], Type.FAIRY), + [TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader([ Species.HATENNA, Species.GALAR_PONYTA, Species.GARDEVOIR ], Type.FAIRY), + [TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader([ Species.ROLYCOLY, Species.STONJOURNER, Species.BINACLE ], Type.ROCK), + [TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader([ Species.SNOM, Species.GALAR_DARUMAKA, Species.GALAR_MR_MIME ], Type.ICE), + [TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader([ Species.GALAR_ZIGZAGOON, Species.SCRAGGY, Species.INKAY ], Type.DARK), + [TrainerType.MARNIE]: new TrainerConfig(++t).initForGymLeader([ Species.IMPIDIMP, Species.PURRLOIN, Species.MORPEKO ], Type.DARK), + [TrainerType.RAIHAN]: new TrainerConfig(++t).initForGymLeader([ Species.DURALUDON, Species.TURTONATOR, Species.GOOMY ], Type.DRAGON), + /*[TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader([ Species.NYMBLE, Species.TAROUNTULA, Species.HERACROSS ], Type.BUG), + [TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader([ Species.SMOLIV, Species.SHROOMISH, Species.ODDISH ], Type.GRASS), + [TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader([ Species.TADBULB, Species.WATTREL, Species.VOLTORB ], Type.ELECTRIC), + [TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader([ Species.VELUZA, Species.WIGLETT, Species.WINGULL ], Type.WATER), + [TrainerType.LARRY]: new TrainerConfig(++t).initForGymLeader([ Species.STARLY, Species.DUNSPARCE, Species.KOMALA ], Type.NORMAL), + [TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader([ Species.GREAVARD, Species.SHUPPET, Species.MIMIKYU ], Type.GHOST), + [TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader([ Species.GIRAFARIG, Species.FLITTLE, Species.RALTS ], Type.PSYCHIC), + [TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader([ Species.CETODDLE, Species.ALOLA_VULPIX, Species.CUBCHOO ], Type.ICE),*/ - [TrainerType.SHAUNTAL]: new TrainerConfig((t = TrainerType.SHAUNTAL)).initForEliteFour(Species.LITWICK, Type.GHOST), - [TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour(Species.TIMBURR, Type.FIGHTING), - [TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour(Species.PAWNIARD, Type.DARK), - [TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour(Species.GOTHITA, Type.PSYCHIC), + [TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour([ Species.SLOWBRO, Species.LAPRAS, Species.DEWGONG, Species.ALOLA_SANDSLASH ], Type.ICE), + [TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour([ Species.ONIX, Species.HITMONCHAN, Species.HITMONLEE, Species.ALOLA_GOLEM ], Type.FIGHTING), + [TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour([ Species.GENGAR, Species.ARBOK, Species.CROBAT, Species.ALOLA_MAROWAK ], Type.GHOST), + [TrainerType.LANCE]: new TrainerConfig(++t).initForEliteFour([ Species.DRAGONITE, Species.GYARADOS, Species.AERODACTYL, Species.ALOLA_EXEGGUTOR ], Type.DRAGON), + [TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour([ Species.XATU, Species.JYNX, Species.SLOWBRO, Species.EXEGGUTOR ], Type.PSYCHIC), + [TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour([ Species.WEEZING, Species.VENOMOTH, Species.CROBAT, Species.TENTACRUEL ], Type.POISON), + [TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour([ Species.UMBREON, Species.HONCHKROW, Species.HOUNDOOM, Species.WEAVILE ], Type.DARK), + [TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour([ Species.SHIFTRY, Species.SHARPEDO, Species.ABSOL, Species.ZOROARK ], Type.DARK), + [TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour([ Species.SABLEYE, Species.DUSKNOIR, Species.BANETTE, Species.CHANDELURE ], Type.GHOST), + [TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour([ Species.GLALIE, Species.WALREIN, Species.FROSLASS, Species.ABOMASNOW ], Type.ICE), + [TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour([ Species.ALTARIA, Species.SALAMENCE, Species.FLYGON, Species.KINGDRA ], Type.DRAGON), + [TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour([ Species.SCIZOR, Species.HERACROSS, Species.VESPIQUEN, Species.DRAPION ], Type.BUG), + [TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour([ Species.WHISCASH, Species.HIPPOWDON, Species.GLISCOR, Species.RHYPERIOR ], Type.GROUND), + [TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour([ Species.FLAREON, Species.HOUNDOOM, Species.RAPIDASH, Species.INFERNAPE ], Type.FIRE), + [TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour([ Species.MR_MIME, Species.GALLADE, Species.BRONZONG, Species.ALAKAZAM ], Type.PSYCHIC), + [TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour([ Species.COFAGRIGUS, Species.CHANDELURE, Species.GOLURK, Species.DRIFBLIM ], Type.GHOST), + [TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour([ Species.TIMBURR, Species.MIENFOO, Species.THROH, Species.SAWK ], Type.FIGHTING), + [TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour([ Species.LIEPARD, Species.KINGAMBIT, Species.SCRAFTY, Species.KROOKODILE ], Type.DARK), + [TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour([ Species.MUSHARNA, Species.GOTHITELLE, Species.SIGILYPH, Species.REUNICLUS ], Type.PSYCHIC), + [TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour([ Species.PYROAR, Species.TORKOAL, Species.CHANDELURE, Species.TALONFLAME ], Type.FIRE), + [TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour([ Species.CLAWITZER, Species.GYARADOS, Species.BARBARACLE, Species.STARMIE ], Type.WATER), + [TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour([ Species.KLEFKI, Species.PROBOPASS, Species.SCIZOR, Species.AEGISLASH ], Type.STEEL), + [TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour([ Species.DRAGALGE, Species.DRUDDIGON, Species.ALTARIA, Species.NOIVERN ], Type.DRAGON), + [TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour([ Species.HARIYAMA, Species.BEWEAR, Species.CRABOMINABLE, Species.POLIWRATH ], Type.FIGHTING), + [TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour([ Species.KLEFKI, Species.MAGNEZONE, Species.METAGROSS, Species.ALOLA_DUGTRIO ], Type.PSYCHIC), + [TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour([ Species.ARMALDO, Species.CRADILY, Species.ALOLA_GOLEM, Species.LYCANROC ], Type.ROCK), + [TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour([ Species.BANETTE, Species.DRIFBLIM, Species.DHELMISE, Species.PALOSSAND ], Type.GHOST), + [TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour([ Species.BRAVIARY, Species.HAWLUCHA, Species.ORICORIO, Species.TOUCANNON ], Type.FLYING), + /*[TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour([ Species. WHISCASH, Species.DONPHAN, Species.CAMERUPT, Species.CLODSIRE ], Type.GROUND), + [TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour([ Species.COPPERAJAH, Species.BRONZONG, Species.CORVIKNIGHT, Species.TINKATON ], Type.STEEL), + [TrainerType.LARRY_ELITE]: new TrainerConfig(++t).initForEliteFour([ Species.STARAPTOR, Species.FLAMIGO, Species.ALTARIA, Species.TROPIUS ], Type.NORMAL, Type.FLYING), + [TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour([ Species.NOIVERN, Species.HAXORUS, Species.DRAGALGE, Species.BAXCALIBUR ], Type.DRAGON), + [TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour([ Species.TALONFLAME, Species.CAMERUPT, Species.MAGMORTAR, Species.BLAZIKEN ], Type.FIRE), + [TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour([ Species.SKARMORY, Species.EMPOLEON, Species.SCIZOR, Species.METAGROSS ], Type.STEEL), + [TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour([ Species.EXCADRILL, Species.PRIMARINA, Species.ALCREMIE, Species.GALAR_SLOWBRO ], Type.FAIRY), + [TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour([ Species.DRAGONITE, Species.ARCHALUDON, Species.FLYGON, Species.SCEPTILE ], Type.DRAGON),*/ - [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion(Species.GYARADOS), - [TrainerType.RED]: new TrainerConfig(++t).initForChampion(Species.CHARIZARD), - [TrainerType.LANCE]: new TrainerConfig(++t).initForChampion(Species.DRAGONITE), - [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(Species.BELDUM), - [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(Species.MILOTIC), - [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(Species.GARCHOMP).setBattleBgm('battle_cynthia'), - [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(Species.VOLCARONA), - [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(Species.AXEW), + [TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion([ Species.GYARADOS, Species.MEWTWO, Species.ARCANINE, Species.ALAKAZAM, Species.PIDGEOT ]), + [TrainerType.RED]: new TrainerConfig(++t).initForChampion([ Species.CHARIZARD, [ Species.LUGIA, Species.HO_OH ], Species.SNORLAX, Species.RAICHU, Species.ESPEON ]), + [TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).initForChampion([ Species.DRAGONITE, [ Species.ZACIAN, Species.ZAMAZENTA ], Species.AERODACTYL, Species.KINGDRA, Species.ALOLA_EXEGGUTOR ]), + [TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion([ Species.METAGROSS, [ Species.DIALGA, Species.PALKIA ], Species.SKARMORY, Species.AGGRON, Species.CARBINK ]), + [TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion([ Species.MILOTIC, Species.KYOGRE, Species.WHISCASH, Species.WALREIN, Species.LUDICOLO ]), + [TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion([ Species.SPIRITOMB, Species.GIRATINA, Species.GARCHOMP, Species.MILOTIC, Species.LUCARIO, Species.TOGEKISS ]).setBattleBgm('battle_cynthia'), + [TrainerType.ALDER]: new TrainerConfig(++t).initForChampion([ Species.VOLCARONA, Species.GROUDON, Species.BOUFFALANT, Species.ACCELGOR, Species.CONKELDURR ]), + [TrainerType.IRIS]: new TrainerConfig(++t).initForChampion([ Species.HAXORUS, Species.YVELTAL, Species.DRUDDIGON, Species.ARON, Species.LAPRAS ]), + [TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion([ Species.HAWLUCHA, Species.XERNEAS, Species.GOURGEIST, Species.GOODRA, Species.GARDEVOIR ]), + [TrainerType.LEON]: new TrainerConfig(++t).initForChampion([ Species.DRAGAPULT, [ Species.ZACIAN, Species.ZAMAZENTA ], Species.SEISMITOAD, Species.AEGISLASH, Species.MR_RIME ]), + /*[TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion([ Species.LYCANROC, Species.KORAIDON, Species.KOMMO_O, Species.PAWMOT, Species.DUSKNOIR ]), + [TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion([ Species.POLITOED, Species.MIRAIDON, Species.HYDRAPPLE, Species.PORYGON_Z, Species.GRIMMSNARL ]),*/ [TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm('battle_rival').setPartyTemplates(trainerPartyTemplates.RIVAL).setEncounterMessages([ `There you are! I've been looking everywhere for you!\nDid you forget to say goodbye to your best friend? diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index f364d4ac7..7450d3e5b 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -529,7 +529,7 @@ class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator { if (pregenArgs) return new EvolutionItemModifierType(pregenArgs[0] as EvolutionItem); - const evolutionItemPool = party.filter(p => !p.pauseEvolutions && pokemonEvolutions.hasOwnProperty(p.species.speciesId)).map(p => { + const evolutionItemPool = party.filter(p => pokemonEvolutions.hasOwnProperty(p.species.speciesId)).map(p => { const evolutions = pokemonEvolutions[p.species.speciesId]; return evolutions.filter(e => e.item !== EvolutionItem.NONE && (e.evoFormKey === null || (e.preFormKey || '') === p.getFormKey()) && (!e.condition || e.condition.predicate(p))); }).flat().filter(e => (e.item >= 100) === mega).flatMap(e => e.item); diff --git a/src/pokemon.ts b/src/pokemon.ts index 6f30ffd37..f8b15cb01 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -464,7 +464,6 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { case Stat.ATK: if (this.getTag(BattlerTagType.SLOW_START)) ret >>= 1; - console.log(ret, this.name); break; case Stat.DEF: break; diff --git a/src/trainer.ts b/src/trainer.ts index 1f46e9fdf..2a560eaf7 100644 --- a/src/trainer.ts +++ b/src/trainer.ts @@ -114,14 +114,12 @@ export default class Trainer extends Phaser.GameObjects.Container { this.scene.executeWithSeedOffset(() => { const template = this.getPartyTemplate(); - const isLastIndex = index === template.size - 1; - if (this.config.partyMemberFuncs.hasOwnProperty(index)) { ret = this.config.partyMemberFuncs[index](this.scene, level); return; } - if (isLastIndex && this.config.partyMemberFuncs.hasOwnProperty(-1)) { - ret = this.config.partyMemberFuncs[-1](this.scene, level); + if (this.config.partyMemberFuncs.hasOwnProperty(index - template.size)) { + ret = this.config.partyMemberFuncs[index - template.size](this.scene, level); return; } diff --git a/src/ui/vouchers-ui-handler.ts b/src/ui/vouchers-ui-handler.ts index d986b4dbd..39f525db2 100644 --- a/src/ui/vouchers-ui-handler.ts +++ b/src/ui/vouchers-ui-handler.ts @@ -5,6 +5,9 @@ import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import { addWindow } from "./window"; +const itemRows = 4; +const itemCols = 17; + export default class VouchersUiHandler extends MessageUiHandler { private vouchersContainer: Phaser.GameObjects.Container; private voucherIconsContainer: Phaser.GameObjects.Container; @@ -14,10 +17,16 @@ export default class VouchersUiHandler extends MessageUiHandler { private titleText: Phaser.GameObjects.Text; private unlockText: Phaser.GameObjects.Text; + private itemsTotal: integer; + private scrollCursor: integer; + private cursorObj: Phaser.GameObjects.NineSlice; constructor(scene: BattleScene, mode?: Mode) { super(scene, mode); + + this.itemsTotal = Object.keys(vouchers).length; + this.scrollCursor = 0; } setup() { @@ -41,9 +50,9 @@ export default class VouchersUiHandler extends MessageUiHandler { this.voucherIcons = []; - for (let a = 0; a < Object.keys(vouchers).length; a++) { - const x = (a % 17) * 18; - const y = Math.floor(a / 17) * 18; + for (let a = 0; a < itemRows * itemCols; a++) { + const x = (a % itemCols) * 18; + const y = Math.floor(a / itemCols) * 18; const icon = this.scene.add.sprite(x, y, 'items', 'unknown'); icon.setOrigin(0, 0); @@ -98,21 +107,11 @@ export default class VouchersUiHandler extends MessageUiHandler { show(args: any[]): boolean { super.show(args); - const voucherUnlocks = this.scene.gameData.voucherUnlocks; - - Object.values(vouchers).forEach((voucher: Voucher, i: integer) => { - const icon = this.voucherIcons[i]; - const unlocked = voucherUnlocks.hasOwnProperty(voucher.id); - - icon.setFrame(getVoucherTypeIcon(voucher.voucherType)); - if (!unlocked) - icon.setTintFill(0); - else - icon.clearTint(); - }); - this.vouchersContainer.setVisible(true); this.setCursor(0); + this.setScrollCursor(0); + + this.updateVoucherIcons(); this.getUi().moveTo(this.vouchersContainer, this.getUi().length - 1); @@ -139,21 +138,34 @@ export default class VouchersUiHandler extends MessageUiHandler { success = true; this.scene.ui.revertMode(); } else { + const rowIndex = Math.floor(this.cursor / itemCols); + const itemOffset = (this.scrollCursor * itemCols); switch (button) { case Button.UP: - if (this.cursor >= 17) - success = this.setCursor(this.cursor - 17); + if (this.cursor < itemCols) { + if (this.scrollCursor) + success = this.setScrollCursor(this.scrollCursor - 1); + } else + success = this.setCursor(this.cursor - itemCols); break; case Button.DOWN: - if (this.cursor + 17 < Object.keys(vouchers).length) - success = this.setCursor(this.cursor + 17); + const canMoveDown = (this.cursor + itemOffset) + itemCols < this.itemsTotal; + if (rowIndex >= itemRows - 1) { + if (this.scrollCursor < Math.ceil(this.itemsTotal / itemCols) - itemRows && canMoveDown) + success = this.setScrollCursor(this.scrollCursor + 1); + } else if (canMoveDown) + success = this.setCursor(this.cursor + itemCols); break; case Button.LEFT: - if (this.cursor) + if (!this.cursor && this.scrollCursor) + success = this.setScrollCursor(this.scrollCursor - 1) && this.setCursor(this.cursor + (itemCols - 1)); + else if (this.cursor) success = this.setCursor(this.cursor - 1); break; case Button.RIGHT: - if (this.cursor < Object.keys(vouchers).length - 1) + if (this.cursor + 1 === itemRows * itemCols && this.scrollCursor < Math.ceil(this.itemsTotal / itemCols) - itemRows) { + success = this.setScrollCursor(this.scrollCursor + 1) && this.setCursor(this.cursor - (itemCols - 1)); + } else if (this.cursor + itemOffset < Object.keys(vouchers).length - 1) success = this.setCursor(this.cursor + 1); break; } @@ -180,11 +192,46 @@ export default class VouchersUiHandler extends MessageUiHandler { this.cursorObj.setPositionRelative(this.voucherIcons[this.cursor], 0, 0); if (updateVoucher) - this.showVoucher(vouchers[Object.keys(vouchers)[cursor]]); + this.showVoucher(vouchers[Object.keys(vouchers)[cursor + this.scrollCursor * itemCols]]); return ret; } + setScrollCursor(scrollCursor: integer): boolean { + if (scrollCursor === this.scrollCursor) + return false; + + this.scrollCursor = scrollCursor; + + this.updateVoucherIcons(); + + return true; + } + + updateVoucherIcons(): void { + const voucherUnlocks = this.scene.gameData.voucherUnlocks; + + const itemOffset = this.scrollCursor * itemCols; + const itemLimit = itemRows * itemCols; + + const voucherRange = Object.values(vouchers).slice(itemOffset, itemLimit + itemOffset); + + voucherRange.forEach((voucher: Voucher, i: integer) => { + const icon = this.voucherIcons[i]; + const unlocked = voucherUnlocks.hasOwnProperty(voucher.id); + + icon.setFrame(getVoucherTypeIcon(voucher.voucherType)); + icon.setVisible(true); + if (!unlocked) + icon.setTintFill(0); + else + icon.clearTint(); + }); + + if (voucherRange.length < this.voucherIcons.length) + this.voucherIcons.slice(voucherRange.length).map(i => i.setVisible(false)); + } + clear() { super.clear(); this.vouchersContainer.setVisible(false);