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 000000000..a63f49849 Binary files /dev/null and b/public/images/trainer/aaron.png differ 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 000000000..3804d2986 Binary files /dev/null and b/public/images/trainer/acerola.png differ 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 000000000..71eed6763 Binary files /dev/null and b/public/images/trainer/agatha.png differ 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 000000000..07c20c1b2 Binary files /dev/null and b/public/images/trainer/allister.png differ diff --git a/public/images/trainer/amarys.json b/public/images/trainer/amarys.json new file mode 100644 index 000000000..a5b207032 --- /dev/null +++ b/public/images/trainer/amarys.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "amarys.png", + "format": "RGBA8888", + "size": { + "w": 72, + "h": 72 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 32, + "h": 72 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 32, + "h": 72 + }, + "frame": { + "x": 0, + "y": 0, + "w": 32, + "h": 72 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:deee036bb6a3daba329c9c36700a30f0:cca80bc001c516ed5636d15c85153f1f:f806f6b770ad5c770d2e9438f4497202$" + } +} diff --git a/public/images/trainer/amarys.png b/public/images/trainer/amarys.png new file mode 100644 index 000000000..a342c909f Binary files /dev/null and b/public/images/trainer/amarys.png differ 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 000000000..844abc3df Binary files /dev/null and b/public/images/trainer/bea.png differ diff --git a/public/images/trainer/bede.json b/public/images/trainer/bede.json new file mode 100644 index 000000000..34d489448 --- /dev/null +++ b/public/images/trainer/bede.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "bede.png", + "format": "RGBA8888", + "size": { + "w": 74, + "h": 74 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 37, + "h": 74 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 37, + "h": 74 + }, + "frame": { + "x": 0, + "y": 0, + "w": 37, + "h": 74 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f9eee8dc2a33e23f8a0d31ee12d1d20e:befdfccc5599eb74fabfee2c1c9d3b4e:f83e0c6688e76f8445709521d28961d1$" + } +} diff --git a/public/images/trainer/bede.png b/public/images/trainer/bede.png new file mode 100644 index 000000000..7db54c785 Binary files /dev/null and b/public/images/trainer/bede.png differ diff --git a/public/images/trainer/bertha.json b/public/images/trainer/bertha.json new file mode 100644 index 000000000..d3fdc2187 --- /dev/null +++ b/public/images/trainer/bertha.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "bertha.png", + "format": "RGBA8888", + "size": { + "w": 64, + "h": 64 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 40, + "h": 64 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 40, + "h": 64 + }, + "frame": { + "x": 0, + "y": 0, + "w": 40, + "h": 64 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:ad3365835a8035551e81e7dbca1ee784:3f8d299f65ac4fd580260bf86f638e6d:32711de26878afa04ddb21f3fb7a13a6$" + } +} diff --git a/public/images/trainer/bertha.png b/public/images/trainer/bertha.png new file mode 100644 index 000000000..6b8f0b3e3 Binary files /dev/null and b/public/images/trainer/bertha.png differ 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 000000000..9e736d32f Binary files /dev/null and b/public/images/trainer/brassius.png differ 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 000000000..5dc90107e Binary files /dev/null and b/public/images/trainer/bruno.png differ diff --git a/public/images/trainer/clemont.json b/public/images/trainer/clemont.json new file mode 100644 index 000000000..7edaeab2e --- /dev/null +++ b/public/images/trainer/clemont.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "clemont.png", + "format": "RGBA8888", + "size": { + "w": 73, + "h": 73 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 62, + "h": 73 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 62, + "h": 73 + }, + "frame": { + "x": 0, + "y": 0, + "w": 62, + "h": 73 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d6e0ecabe685156cdd5ea20167ae79da:3219afb623a7e31f4c9432582e48d994:4c9725dfb9700bfac988bed88d5b061c$" + } +} diff --git a/public/images/trainer/clemont.png b/public/images/trainer/clemont.png new file mode 100644 index 000000000..a93aa4280 Binary files /dev/null and b/public/images/trainer/clemont.png differ 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 000000000..865e1ac19 Binary files /dev/null and b/public/images/trainer/crispin.png differ diff --git a/public/images/trainer/diantha.json b/public/images/trainer/diantha.json new file mode 100644 index 000000000..dfeb53d23 --- /dev/null +++ b/public/images/trainer/diantha.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "diantha.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 51, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 51, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 51, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4456156dd0f2bc87bd15c84e8f8bb9fa:557c907d4c96c9ee97f0705b73a40510:da8b56f90c7ed21a6cc9b1963804cc74$" + } +} diff --git a/public/images/trainer/diantha.png b/public/images/trainer/diantha.png new file mode 100644 index 000000000..663eb3613 Binary files /dev/null and b/public/images/trainer/diantha.png differ diff --git a/public/images/trainer/drake.json b/public/images/trainer/drake.json new file mode 100644 index 000000000..534ea6826 --- /dev/null +++ b/public/images/trainer/drake.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "drake.png", + "format": "RGBA8888", + "size": { + "w": 80, + "h": 80 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 52, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 52, + "h": 80 + }, + "frame": { + "x": 0, + "y": 0, + "w": 52, + "h": 80 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:ab839b552ffcc3287f53ab18712cb16e:0b87cfabbc44144897dbfe41c9644bd0:a85cf9ca87f7c2612880db71c2f41cca$" + } +} diff --git a/public/images/trainer/drake.png b/public/images/trainer/drake.png new file mode 100644 index 000000000..80d663d11 Binary files /dev/null and b/public/images/trainer/drake.png differ diff --git a/public/images/trainer/drasna.json b/public/images/trainer/drasna.json new file mode 100644 index 000000000..b24f40981 --- /dev/null +++ b/public/images/trainer/drasna.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "drasna.png", + "format": "RGBA8888", + "size": { + "w": 77, + "h": 77 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 50, + "h": 77 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 50, + "h": 77 + }, + "frame": { + "x": 0, + "y": 0, + "w": 50, + "h": 77 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f344fcdbc81cacffe5eee58234ad1188:3e295ade66c57cbdaf31c1e9f4b0e157:243a719ff24b562c81caf149627a44b6$" + } +} diff --git a/public/images/trainer/drasna.png b/public/images/trainer/drasna.png new file mode 100644 index 000000000..a6e1824f3 Binary files /dev/null and b/public/images/trainer/drasna.png differ 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 000000000..bd575b259 Binary files /dev/null and b/public/images/trainer/drayton.png differ 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 000000000..46fc32c57 Binary files /dev/null and b/public/images/trainer/flint.png differ 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 000000000..c73b9b69b Binary files /dev/null and b/public/images/trainer/glacia.png differ 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 000000000..a91f7daca Binary files /dev/null and b/public/images/trainer/gordie.png differ diff --git a/public/images/trainer/grant.json b/public/images/trainer/grant.json new file mode 100644 index 000000000..3b7847493 --- /dev/null +++ b/public/images/trainer/grant.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "grant.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 34, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 34, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 34, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:7b32aa4ff9f8c571a73de73dc1a8bd77:f2b8e648c5b179cb61df8348a5d8b10d:c789a53fe1e50b6c1da8cd11bdafc753$" + } +} diff --git a/public/images/trainer/grant.png b/public/images/trainer/grant.png new file mode 100644 index 000000000..60cf5b8d4 Binary files /dev/null and b/public/images/trainer/grant.png differ diff --git a/public/images/trainer/grusha.json b/public/images/trainer/grusha.json new file mode 100644 index 000000000..3e40fe591 --- /dev/null +++ b/public/images/trainer/grusha.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "grusha.png", + "format": "RGBA8888", + "size": { + "w": 73, + "h": 73 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 33, + "h": 73 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 73 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 73 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:b9f049bf55d3f9cdc018464fcb7e6309:85dc1f11ec33f5cc3f22c9c0f81a42b8:a4c558b836418c26eeddb4380b91aa9a$" + } +} diff --git a/public/images/trainer/grusha.png b/public/images/trainer/grusha.png new file mode 100644 index 000000000..73d6a8708 Binary files /dev/null and b/public/images/trainer/grusha.png differ 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 000000000..0a72be411 Binary files /dev/null and b/public/images/trainer/hala.png differ 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 000000000..d78bc4dd5 Binary files /dev/null and b/public/images/trainer/hassel.png differ 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 000000000..e2637beba Binary files /dev/null and b/public/images/trainer/iono.png differ diff --git a/public/images/trainer/kabu.json b/public/images/trainer/kabu.json new file mode 100644 index 000000000..a5643b04a --- /dev/null +++ b/public/images/trainer/kabu.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "kabu.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 28, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:1c4e935e5db0cf055af0a681fedc8a4f:c776fc77a4441cb5cdf1ed61a592499e:c41016fb8fe89cfca426493481594223$" + } +} diff --git a/public/images/trainer/kabu.png b/public/images/trainer/kabu.png new file mode 100644 index 000000000..bffcec47e Binary files /dev/null and b/public/images/trainer/kabu.png differ 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 000000000..94dea140f Binary files /dev/null and b/public/images/trainer/kahili.png differ 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 000000000..3ed1ef2d8 Binary files /dev/null and b/public/images/trainer/karen.png differ diff --git a/public/images/trainer/katy.json b/public/images/trainer/katy.json new file mode 100644 index 000000000..aa1b7c6c7 --- /dev/null +++ b/public/images/trainer/katy.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "katy.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 39, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 39, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 39, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:6c255503bb410a79a313c5a9cc35b81e:fc5c4975eb8d334c45d0eabf84b525b2:97e48d0e4e2b18a4109852da90432f92$" + } +} diff --git a/public/images/trainer/katy.png b/public/images/trainer/katy.png new file mode 100644 index 000000000..74da02325 Binary files /dev/null and b/public/images/trainer/katy.png differ 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 000000000..17eeedb3b Binary files /dev/null and b/public/images/trainer/kieran.png differ diff --git a/public/images/trainer/kofu.json b/public/images/trainer/kofu.json new file mode 100644 index 000000000..33cb14695 --- /dev/null +++ b/public/images/trainer/kofu.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "kofu.png", + "format": "RGBA8888", + "size": { + "w": 79, + "h": 79 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 44, + "h": 79 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 44, + "h": 79 + }, + "frame": { + "x": 0, + "y": 0, + "w": 44, + "h": 79 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:bcf884399b94bbe95280f781ee5b2a0a:e033e35e5eadb69035d247c2e1747f81:1d773fadacd338118d730aa7d6c20fd6$" + } +} diff --git a/public/images/trainer/kofu.png b/public/images/trainer/kofu.png new file mode 100644 index 000000000..ae7f364f7 Binary files /dev/null and b/public/images/trainer/kofu.png differ diff --git a/public/images/trainer/koga.json b/public/images/trainer/koga.json new file mode 100644 index 000000000..684a3905b --- /dev/null +++ b/public/images/trainer/koga.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "koga.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 76, + "h": 66 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 76, + "h": 66 + }, + "frame": { + "x": 0, + "y": 0, + "w": 76, + "h": 66 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4b9f7866a8cc7b18e2adacdb592ff6f3:ad3225ffb3ca65ec1ec7e213dae0df9e:68e4098bf70f43221776e4adbb32f609$" + } +} diff --git a/public/images/trainer/koga.png b/public/images/trainer/koga.png new file mode 100644 index 000000000..f763d7eff Binary files /dev/null and b/public/images/trainer/koga.png differ diff --git a/public/images/trainer/korrina.json b/public/images/trainer/korrina.json new file mode 100644 index 000000000..6258cf218 --- /dev/null +++ b/public/images/trainer/korrina.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "korrina.png", + "format": "RGBA8888", + "size": { + "w": 71, + "h": 71 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 49, + "h": 71 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 49, + "h": 71 + }, + "frame": { + "x": 0, + "y": 0, + "w": 49, + "h": 71 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:dcd818b8f03501d707b63d833cb238f6:1e2010d09d4f8d2d1dbc838268a154eb:ed5be09cd8b82ed6439ff8617ffa74c0$" + } +} diff --git a/public/images/trainer/korrina.png b/public/images/trainer/korrina.png new file mode 100644 index 000000000..4c311d29e Binary files /dev/null and b/public/images/trainer/korrina.png differ 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 000000000..0e71e6976 Binary files /dev/null and b/public/images/trainer/lacey.png differ 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 000000000..08dfa0bdc Binary files /dev/null and b/public/images/trainer/larry.png differ 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 000000000..c907f0dc8 Binary files /dev/null and b/public/images/trainer/leon.png differ diff --git a/public/images/trainer/lorelei.json b/public/images/trainer/lorelei.json new file mode 100644 index 000000000..4fddbde71 --- /dev/null +++ b/public/images/trainer/lorelei.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "lorelei.png", + "format": "RGBA8888", + "size": { + "w": 80, + "h": 80 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 39, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 39, + "h": 80 + }, + "frame": { + "x": 0, + "y": 0, + "w": 39, + "h": 80 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3a6052d7c6aef0042ce58e83b424aa70:6a9fcc08e60ae7b65fe8ee4beba2fb9c:211c2f4e187448584ca16e3dbaa2b645$" + } +} diff --git a/public/images/trainer/lorelei.png b/public/images/trainer/lorelei.png new file mode 100644 index 000000000..30b6643d8 Binary files /dev/null and b/public/images/trainer/lorelei.png differ diff --git a/public/images/trainer/lucian.json b/public/images/trainer/lucian.json new file mode 100644 index 000000000..96f0488c1 --- /dev/null +++ b/public/images/trainer/lucian.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "lucian.png", + "format": "RGBA8888", + "size": { + "w": 77, + "h": 77 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 30, + "h": 77 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 30, + "h": 77 + }, + "frame": { + "x": 0, + "y": 0, + "w": 30, + "h": 77 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:f34a3bf9f7a44b59a1aa1e4e88a04c51:e859343f97697ed9fbe2fd4b9e26d245:49df0cbe2043bad7e85962a978c957f6$" + } +} diff --git a/public/images/trainer/lucian.png b/public/images/trainer/lucian.png new file mode 100644 index 000000000..fabf59aad Binary files /dev/null and b/public/images/trainer/lucian.png differ diff --git a/public/images/trainer/malva.json b/public/images/trainer/malva.json new file mode 100644 index 000000000..85aa20704 --- /dev/null +++ b/public/images/trainer/malva.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "malva.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 21, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 21, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 21, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:25bbfe10808ed6f59377e906652c86ea:111bed1121fa5fd7cfec5c0e8169927a:f4cf71754af5ed87bafffaefd4512949$" + } +} diff --git a/public/images/trainer/malva.png b/public/images/trainer/malva.png new file mode 100644 index 000000000..850818e76 Binary files /dev/null and b/public/images/trainer/malva.png differ diff --git a/public/images/trainer/marnie.json b/public/images/trainer/marnie.json new file mode 100644 index 000000000..ac3397407 --- /dev/null +++ b/public/images/trainer/marnie.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "marnie.png", + "format": "RGBA8888", + "size": { + "w": 69, + "h": 69 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 28, + "h": 69 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 28, + "h": 69 + }, + "frame": { + "x": 0, + "y": 0, + "w": 28, + "h": 69 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:4c94f002ab9a1fb85f7a94dcb330f783:177b8e2a90b2b5e981808c255bd17fe6:99e5e83d5a19c43605a598152648c08c$" + } +} diff --git a/public/images/trainer/marnie.png b/public/images/trainer/marnie.png new file mode 100644 index 000000000..1cbac5f67 Binary files /dev/null and b/public/images/trainer/marnie.png differ diff --git a/public/images/trainer/melony.json b/public/images/trainer/melony.json new file mode 100644 index 000000000..d009d9666 --- /dev/null +++ b/public/images/trainer/melony.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "melony.png", + "format": "RGBA8888", + "size": { + "w": 74, + "h": 74 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 42, + "h": 74 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 42, + "h": 74 + }, + "frame": { + "x": 0, + "y": 0, + "w": 42, + "h": 74 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:e4ad3cfe7f6dde5598a49e5cdaa8c91a:88bffda9e4b8d72dc121eea19baba3e6:ebe558b9674eda16eab4e40b021d09b7$" + } +} diff --git a/public/images/trainer/melony.png b/public/images/trainer/melony.png new file mode 100644 index 000000000..01a148396 Binary files /dev/null and b/public/images/trainer/melony.png differ diff --git a/public/images/trainer/milo.json b/public/images/trainer/milo.json new file mode 100644 index 000000000..1fdad73aa --- /dev/null +++ b/public/images/trainer/milo.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "milo.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 42, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 42, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 42, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:3b4cf559313bb10301e12749b57c5fd7:a4c43b4bf7237f983af33d2e1ce9aca2:e0292feee7e32ad3e636e081475948c1$" + } +} diff --git a/public/images/trainer/milo.png b/public/images/trainer/milo.png new file mode 100644 index 000000000..dbc787818 Binary files /dev/null and b/public/images/trainer/milo.png differ 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 000000000..75f956937 Binary files /dev/null and b/public/images/trainer/molayne.png differ diff --git a/public/images/trainer/nemona.json b/public/images/trainer/nemona.json new file mode 100644 index 000000000..600535953 --- /dev/null +++ b/public/images/trainer/nemona.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "nemona.png", + "format": "RGBA8888", + "size": { + "w": 69, + "h": 69 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 37, + "h": 69 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 37, + "h": 69 + }, + "frame": { + "x": 0, + "y": 0, + "w": 37, + "h": 69 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:601e430da13d31ba792a0b8a20ce66a7:06383de14e841ac24b9b8da950bc4cb1:3fd882192419b7055e46ba7e71bcbddc$" + } +} diff --git a/public/images/trainer/nemona.png b/public/images/trainer/nemona.png new file mode 100644 index 000000000..83a9e803d Binary files /dev/null and b/public/images/trainer/nemona.png differ 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 000000000..b645ff715 Binary files /dev/null and b/public/images/trainer/nessa.png differ diff --git a/public/images/trainer/olivia.json b/public/images/trainer/olivia.json new file mode 100644 index 000000000..0e6ba9425 --- /dev/null +++ b/public/images/trainer/olivia.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "olivia.png", + "format": "RGBA8888", + "size": { + "w": 75, + "h": 75 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 37, + "h": 75 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 37, + "h": 75 + }, + "frame": { + "x": 0, + "y": 0, + "w": 37, + "h": 75 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:658607698e254827b77c03fe26cb1393:3845ac3c5f0c8db8befe184d52a3515f:5328f30bca2674a41765dd4e3ec981fc$" + } +} diff --git a/public/images/trainer/olivia.png b/public/images/trainer/olivia.png new file mode 100644 index 000000000..60b4336ef Binary files /dev/null and b/public/images/trainer/olivia.png differ 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 000000000..5faa566d3 Binary files /dev/null and b/public/images/trainer/olympia.png differ diff --git a/public/images/trainer/opal.json b/public/images/trainer/opal.json new file mode 100644 index 000000000..041cc4fbd --- /dev/null +++ b/public/images/trainer/opal.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "opal.png", + "format": "RGBA8888", + "size": { + "w": 75, + "h": 75 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 43, + "h": 75 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 43, + "h": 75 + }, + "frame": { + "x": 0, + "y": 0, + "w": 43, + "h": 75 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:c3312903b7e6729a5eb32f1e002bddf6:ce7f0a1aeb71f2a1e62cb3428cb0dc8a:f9c957986b83f79c66aeedd696237ab1$" + } +} diff --git a/public/images/trainer/opal.png b/public/images/trainer/opal.png new file mode 100644 index 000000000..8fbf60852 Binary files /dev/null and b/public/images/trainer/opal.png differ diff --git a/public/images/trainer/phoebe.json b/public/images/trainer/phoebe.json new file mode 100644 index 000000000..f953a0e79 --- /dev/null +++ b/public/images/trainer/phoebe.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "phoebe.png", + "format": "RGBA8888", + "size": { + "w": 72, + "h": 72 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 50, + "h": 72 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 50, + "h": 72 + }, + "frame": { + "x": 0, + "y": 0, + "w": 50, + "h": 72 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:5a22d130685801dd03e11d35a9123f31:e4c4e59b63f07e78217242a64917cde8:ea0a6e8c8eface990a45258dc85898cd$" + } +} diff --git a/public/images/trainer/phoebe.png b/public/images/trainer/phoebe.png new file mode 100644 index 000000000..eb0bf9f61 Binary files /dev/null and b/public/images/trainer/phoebe.png differ 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 000000000..7730a2d54 Binary files /dev/null and b/public/images/trainer/piers.png differ 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 000000000..750043084 Binary files /dev/null and b/public/images/trainer/poppy.png differ diff --git a/public/images/trainer/raihan.json b/public/images/trainer/raihan.json new file mode 100644 index 000000000..43a7b769d --- /dev/null +++ b/public/images/trainer/raihan.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "raihan.png", + "format": "RGBA8888", + "size": { + "w": 77, + "h": 77 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 34, + "h": 77 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 34, + "h": 77 + }, + "frame": { + "x": 0, + "y": 0, + "w": 34, + "h": 77 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:a2177674640874b2d6fa5253013af222:52253e0df4b5749a319a1848dcd43538:684005665aed00f73624d1519c3dba28$" + } +} diff --git a/public/images/trainer/raihan.png b/public/images/trainer/raihan.png new file mode 100644 index 000000000..a23c2b61e Binary files /dev/null and b/public/images/trainer/raihan.png differ diff --git a/public/images/trainer/ramos.json b/public/images/trainer/ramos.json new file mode 100644 index 000000000..1a97eaf18 --- /dev/null +++ b/public/images/trainer/ramos.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "ramos.png", + "format": "RGBA8888", + "size": { + "w": 65, + "h": 65 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 36, + "h": 65 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 36, + "h": 65 + }, + "frame": { + "x": 0, + "y": 0, + "w": 36, + "h": 65 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:768c2f70df1f72e252b2ad8450d2ebfe:c9fbbd9e392b8c57e842ee65e0e92c5c:3c08eac73f36b940848d9dd8195a730e$" + } +} diff --git a/public/images/trainer/ramos.png b/public/images/trainer/ramos.png new file mode 100644 index 000000000..ad47c93cb Binary files /dev/null and b/public/images/trainer/ramos.png differ 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 000000000..f5848fda2 Binary files /dev/null and b/public/images/trainer/rika.png differ diff --git a/public/images/trainer/ryme.json b/public/images/trainer/ryme.json new file mode 100644 index 000000000..f09db0391 --- /dev/null +++ b/public/images/trainer/ryme.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "ryme.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 44, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 44, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 44, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d16186c6fa4880ffdfe26edc6c3a72cd:f19bbdfc476f7a51ac4fdc6978f4b9e6:8a38752a2561361553b141209d7f0b5d$" + } +} diff --git a/public/images/trainer/ryme.png b/public/images/trainer/ryme.png new file mode 100644 index 000000000..f7756e94c Binary files /dev/null and b/public/images/trainer/ryme.png differ 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 000000000..72e6db5e4 Binary files /dev/null and b/public/images/trainer/sidney.png differ 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 000000000..0ac8038f8 Binary files /dev/null and b/public/images/trainer/siebold.png differ diff --git a/public/images/trainer/tulip.json b/public/images/trainer/tulip.json new file mode 100644 index 000000000..a30cfadde --- /dev/null +++ b/public/images/trainer/tulip.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "tulip.png", + "format": "RGBA8888", + "size": { + "w": 78, + "h": 78 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 33, + "h": 78 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 33, + "h": 78 + }, + "frame": { + "x": 0, + "y": 0, + "w": 33, + "h": 78 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:00a18dc03933bbd16a7c8f01a1bb0216:e1a63617b36e5efe2ad298fcf54bbd73:2624b87116e4e39e524835c64171e585$" + } +} diff --git a/public/images/trainer/tulip.png b/public/images/trainer/tulip.png new file mode 100644 index 000000000..87c9f3fd0 Binary files /dev/null and b/public/images/trainer/tulip.png differ 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 000000000..f7fb6d789 Binary files /dev/null and b/public/images/trainer/unknown_f.png differ 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 000000000..a48f97af5 Binary files /dev/null and b/public/images/trainer/unknown_m.png differ 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 000000000..dc03beceb Binary files /dev/null and b/public/images/trainer/valerie.png differ 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 000000000..0f6f19cad Binary files /dev/null and b/public/images/trainer/viola.png differ diff --git a/public/images/trainer/wikstrom.json b/public/images/trainer/wikstrom.json new file mode 100644 index 000000000..1ef9ad4d4 --- /dev/null +++ b/public/images/trainer/wikstrom.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "wikstrom.png", + "format": "RGBA8888", + "size": { + "w": 80, + "h": 80 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 43, + "h": 80 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 43, + "h": 80 + }, + "frame": { + "x": 0, + "y": 0, + "w": 43, + "h": 80 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:5f62c56114fd548d9b60ab05122e3029:031bbe695607b272523953a401cc9305:e63626abfd5c0d04bb799f8bf7171ce3$" + } +} diff --git a/public/images/trainer/wikstrom.png b/public/images/trainer/wikstrom.png new file mode 100644 index 000000000..c78630a3a Binary files /dev/null and b/public/images/trainer/wikstrom.png differ diff --git a/public/images/trainer/will.json b/public/images/trainer/will.json new file mode 100644 index 000000000..792c442db --- /dev/null +++ b/public/images/trainer/will.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "will.png", + "format": "RGBA8888", + "size": { + "w": 76, + "h": 76 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 50, + "h": 76 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 50, + "h": 76 + }, + "frame": { + "x": 0, + "y": 0, + "w": 50, + "h": 76 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:878fdbb855841cba87ad9d622be34b36:31d1c32bb74402069d0fde3c8d529d01:735f72ba22834ab713753cbdfa09ddcd$" + } +} diff --git a/public/images/trainer/will.png b/public/images/trainer/will.png new file mode 100644 index 000000000..918fe0643 Binary files /dev/null and b/public/images/trainer/will.png differ diff --git a/public/images/trainer/wulfric.json b/public/images/trainer/wulfric.json new file mode 100644 index 000000000..01c1907f3 --- /dev/null +++ b/public/images/trainer/wulfric.json @@ -0,0 +1,41 @@ +{ + "textures": [ + { + "image": "wulfric.png", + "format": "RGBA8888", + "size": { + "w": 77, + "h": 77 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": false, + "sourceSize": { + "w": 58, + "h": 77 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 58, + "h": 77 + }, + "frame": { + "x": 0, + "y": 0, + "w": 58, + "h": 77 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:5c3021cd40831fce9b938f455d0d6460:ff80fe1ea732b18f2525c030c1b57827:b8b7e5c6902e9deb6b8ead85d324b9de$" + } +} diff --git a/public/images/trainer/wulfric.png b/public/images/trainer/wulfric.png new file mode 100644 index 000000000..f379afa22 Binary files /dev/null and b/public/images/trainer/wulfric.png differ 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);