From 70827420cd2d5fc9bbc74c7f4b3d68dfe00226d1 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Thu, 7 Dec 2023 17:43:56 -0500 Subject: [PATCH] Implement mega evolutions --- public/images/items.json | 7575 ++++++++++++++---------- public/images/items.png | Bin 27805 -> 30817 bytes public/images/items/abomasite.png | Bin 0 -> 241 bytes public/images/items/absolite.png | Bin 0 -> 234 bytes public/images/items/aerodactylite.png | Bin 0 -> 245 bytes public/images/items/aggronite.png | Bin 0 -> 235 bytes public/images/items/alakazite.png | Bin 0 -> 236 bytes public/images/items/altarianite.png | Bin 0 -> 228 bytes public/images/items/ampharosite.png | Bin 0 -> 250 bytes public/images/items/audinite.png | Bin 0 -> 240 bytes public/images/items/banettite.png | Bin 0 -> 245 bytes public/images/items/beedrillite.png | Bin 0 -> 247 bytes public/images/items/blastoisinite.png | Bin 0 -> 243 bytes public/images/items/blazikenite.png | Bin 0 -> 238 bytes public/images/items/cameruptite.png | Bin 0 -> 247 bytes public/images/items/charizardite_x.png | Bin 0 -> 240 bytes public/images/items/charizardite_y.png | Bin 0 -> 243 bytes public/images/items/diancite.png | Bin 0 -> 239 bytes public/images/items/galladite.png | Bin 0 -> 246 bytes public/images/items/garchompite.png | Bin 0 -> 244 bytes public/images/items/gardevoirite.png | Bin 0 -> 249 bytes public/images/items/gengarite.png | Bin 0 -> 235 bytes public/images/items/glalitite.png | Bin 0 -> 247 bytes public/images/items/gyaradosite.png | Bin 0 -> 252 bytes public/images/items/heracronite.png | Bin 0 -> 246 bytes public/images/items/houndoominite.png | Bin 0 -> 247 bytes public/images/items/kangaskhanite.png | Bin 0 -> 238 bytes public/images/items/latiasite.png | Bin 0 -> 250 bytes public/images/items/latiosite.png | Bin 0 -> 249 bytes public/images/items/lopunnite.png | Bin 0 -> 243 bytes public/images/items/lucarionite.png | Bin 0 -> 246 bytes public/images/items/manectite.png | Bin 0 -> 245 bytes public/images/items/mawilite.png | Bin 0 -> 241 bytes public/images/items/medichamite.png | Bin 0 -> 247 bytes public/images/items/mega_bracelet.png | Bin 0 -> 302 bytes public/images/items/metagrossite.png | Bin 0 -> 242 bytes public/images/items/mewtwonite_x.png | Bin 0 -> 243 bytes public/images/items/mewtwonite_y.png | Bin 0 -> 237 bytes public/images/items/pidgeotite.png | Bin 0 -> 242 bytes public/images/items/pinsirite.png | Bin 0 -> 246 bytes public/images/items/rayquazite.png | Bin 0 -> 428 bytes public/images/items/sablenite.png | Bin 0 -> 251 bytes public/images/items/salamencite.png | Bin 0 -> 250 bytes public/images/items/sceptilite.png | Bin 0 -> 252 bytes public/images/items/scizorite.png | Bin 0 -> 245 bytes public/images/items/sharpedonite.png | Bin 0 -> 243 bytes public/images/items/slowbronite.png | Bin 0 -> 242 bytes public/images/items/steelixite.png | Bin 0 -> 245 bytes public/images/items/swampertite.png | Bin 0 -> 248 bytes public/images/items/tyranitarite.png | Bin 0 -> 246 bytes public/images/items/venusaurite.png | Bin 0 -> 251 bytes src/battle-phases.ts | 39 +- src/data/arena-tag.ts | 2 +- src/data/move.ts | 3 +- src/data/pokemon-evolutions.ts | 212 +- src/data/pokemon-level-moves.ts | 1 + src/data/pokemon-species.ts | 126 +- src/evolution-phase.ts | 10 +- src/modifier/modifier-type.ts | 47 +- src/modifier/modifier.ts | 22 +- src/pokemon.ts | 23 +- src/system/achv.ts | 3 +- src/ui/battle-info.ts | 2 +- src/ui/starter-select-ui-handler.ts | 5 +- 64 files changed, 4664 insertions(+), 3406 deletions(-) create mode 100644 public/images/items/abomasite.png create mode 100644 public/images/items/absolite.png create mode 100644 public/images/items/aerodactylite.png create mode 100644 public/images/items/aggronite.png create mode 100644 public/images/items/alakazite.png create mode 100644 public/images/items/altarianite.png create mode 100644 public/images/items/ampharosite.png create mode 100644 public/images/items/audinite.png create mode 100644 public/images/items/banettite.png create mode 100644 public/images/items/beedrillite.png create mode 100644 public/images/items/blastoisinite.png create mode 100644 public/images/items/blazikenite.png create mode 100644 public/images/items/cameruptite.png create mode 100644 public/images/items/charizardite_x.png create mode 100644 public/images/items/charizardite_y.png create mode 100644 public/images/items/diancite.png create mode 100644 public/images/items/galladite.png create mode 100644 public/images/items/garchompite.png create mode 100644 public/images/items/gardevoirite.png create mode 100644 public/images/items/gengarite.png create mode 100644 public/images/items/glalitite.png create mode 100644 public/images/items/gyaradosite.png create mode 100644 public/images/items/heracronite.png create mode 100644 public/images/items/houndoominite.png create mode 100644 public/images/items/kangaskhanite.png create mode 100644 public/images/items/latiasite.png create mode 100644 public/images/items/latiosite.png create mode 100644 public/images/items/lopunnite.png create mode 100644 public/images/items/lucarionite.png create mode 100644 public/images/items/manectite.png create mode 100644 public/images/items/mawilite.png create mode 100644 public/images/items/medichamite.png create mode 100644 public/images/items/mega_bracelet.png create mode 100644 public/images/items/metagrossite.png create mode 100644 public/images/items/mewtwonite_x.png create mode 100644 public/images/items/mewtwonite_y.png create mode 100644 public/images/items/pidgeotite.png create mode 100644 public/images/items/pinsirite.png create mode 100644 public/images/items/rayquazite.png create mode 100644 public/images/items/sablenite.png create mode 100644 public/images/items/salamencite.png create mode 100644 public/images/items/sceptilite.png create mode 100644 public/images/items/scizorite.png create mode 100644 public/images/items/sharpedonite.png create mode 100644 public/images/items/slowbronite.png create mode 100644 public/images/items/steelixite.png create mode 100644 public/images/items/swampertite.png create mode 100644 public/images/items/tyranitarite.png create mode 100644 public/images/items/venusaurite.png diff --git a/public/images/items.json b/public/images/items.json index e93ec8946..37db8a598 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,1460 +4,11 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 296, - "h": 296 + "w": 318, + "h": 318 }, "scale": 1, "frames": [ - { - "filename": "exp_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 1, - "w": 17, - "h": 31 - }, - "frame": { - "x": 0, - "y": 0, - "w": 17, - "h": 31 - } - }, - { - "filename": "golden_exp_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 1, - "w": 17, - "h": 31 - }, - "frame": { - "x": 0, - "y": 31, - "w": 17, - "h": 31 - } - }, - { - "filename": "super_exp_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 1, - "w": 17, - "h": 31 - }, - "frame": { - "x": 0, - "y": 62, - "w": 17, - "h": 31 - } - }, - { - "filename": "linking_cord", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 3, - "y": 3, - "w": 27, - "h": 26 - }, - "frame": { - "x": 0, - "y": 93, - "w": 27, - "h": 26 - } - }, - { - "filename": "ability_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 3, - "y": 3, - "w": 23, - "h": 26 - }, - "frame": { - "x": 17, - "y": 0, - "w": 23, - "h": 26 - } - }, - { - "filename": "choice_scarf", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 17, - "y": 26, - "w": 24, - "h": 24 - } - }, - { - "filename": "focus_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 40, - "y": 0, - "w": 24, - "h": 24 - } - }, - { - "filename": "golden_punch", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 17, - "y": 50, - "w": 24, - "h": 24 - } - }, - { - "filename": "blunder_policy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 19 - }, - "frame": { - "x": 17, - "y": 74, - "w": 22, - "h": 19 - } - }, - { - "filename": "grip_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 119, - "w": 24, - "h": 24 - } - }, - { - "filename": "lucky_punch", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 143, - "w": 24, - "h": 24 - } - }, - { - "filename": "lucky_punch_great", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 167, - "w": 24, - "h": 24 - } - }, - { - "filename": "lucky_punch_master", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 191, - "w": 24, - "h": 24 - } - }, - { - "filename": "lucky_punch_ultra", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 215, - "w": 24, - "h": 24 - } - }, - { - "filename": "muscle_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 239, - "w": 24, - "h": 24 - } - }, - { - "filename": "salac_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 0, - "y": 263, - "w": 24, - "h": 24 - } - }, - { - "filename": "scanner", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 24, - "y": 119, - "w": 24, - "h": 24 - } - }, - { - "filename": "silk_scarf", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 27, - "y": 93, - "w": 24, - "h": 24 - } - }, - { - "filename": "dubious_disc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 39, - "y": 74, - "w": 22, - "h": 19 - } - }, - { - "filename": "sun_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 41, - "y": 24, - "w": 24, - "h": 24 - } - }, - { - "filename": "big_root", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 64, - "y": 0, - "w": 23, - "h": 24 - } - }, - { - "filename": "kings_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 41, - "y": 48, - "w": 23, - "h": 24 - } - }, - { - "filename": "reveal_glass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 24, - "y": 143, - "w": 23, - "h": 24 - } - }, - { - "filename": "max_revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 24 - }, - "frame": { - "x": 24, - "y": 167, - "w": 22, - "h": 24 - } - }, - { - "filename": "catching_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 24, - "y": 191, - "w": 21, - "h": 24 - } - }, - { - "filename": "oval_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 24, - "y": 215, - "w": 21, - "h": 24 - } - }, - { - "filename": "shiny_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 24, - "y": 239, - "w": 21, - "h": 24 - } - }, - { - "filename": "elixir", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 24, - "y": 263, - "w": 18, - "h": 24 - } - }, - { - "filename": "ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 42, - "y": 263, - "w": 18, - "h": 24 - } - }, - { - "filename": "full_restore", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 45, - "y": 191, - "w": 18, - "h": 24 - } - }, - { - "filename": "max_elixir", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 46, - "y": 167, - "w": 18, - "h": 24 - } - }, - { - "filename": "max_ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 47, - "y": 143, - "w": 18, - "h": 24 - } - }, - { - "filename": "max_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 48, - "y": 117, - "w": 18, - "h": 24 - } - }, - { - "filename": "lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 51, - "y": 93, - "w": 17, - "h": 24 - } - }, - { - "filename": "amulet_coin", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 61, - "y": 72, - "w": 23, - "h": 21 - } - }, - { - "filename": "max_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 64, - "y": 48, - "w": 17, - "h": 24 - } - }, - { - "filename": "super_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 65, - "y": 24, - "w": 17, - "h": 24 - } - }, - { - "filename": "calcium", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 81, - "y": 48, - "w": 16, - "h": 24 - } - }, - { - "filename": "carbos", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 82, - "y": 24, - "w": 16, - "h": 24 - } - }, - { - "filename": "hp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 87, - "y": 0, - "w": 16, - "h": 24 - } - }, - { - "filename": "iron", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 45, - "y": 215, - "w": 16, - "h": 24 - } - }, - { - "filename": "pp_max", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 45, - "y": 239, - "w": 16, - "h": 24 - } - }, - { - "filename": "pp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 60, - "y": 263, - "w": 16, - "h": 24 - } - }, - { - "filename": "protein", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 61, - "y": 215, - "w": 16, - "h": 24 - } - }, - { - "filename": "unknown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 63, - "y": 191, - "w": 16, - "h": 24 - } - }, - { - "filename": "zinc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 64, - "y": 167, - "w": 16, - "h": 24 - } - }, - { - "filename": "clefairy_doll", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 61, - "y": 239, - "w": 24, - "h": 23 - } - }, - { - "filename": "coin_case", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 77, - "y": 215, - "w": 24, - "h": 23 - } - }, - { - "filename": "expert_belt", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 23 - }, - "frame": { - "x": 79, - "y": 191, - "w": 24, - "h": 23 - } - }, - { - "filename": "scope-lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 65, - "y": 141, - "w": 24, - "h": 23 - } - }, - { - "filename": "twisted_spoon", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 66, - "y": 117, - "w": 24, - "h": 23 - } - }, - { - "filename": "berry_pouch", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 68, - "y": 93, - "w": 23, - "h": 23 - } - }, - { - "filename": "moon_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 84, - "y": 72, - "w": 23, - "h": 21 - } - }, - { - "filename": "rare_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 97, - "y": 48, - "w": 23, - "h": 23 - } - }, - { - "filename": "rarer_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 98, - "y": 24, - "w": 23, - "h": 23 - } - }, - { - "filename": "stick", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 103, - "y": 0, - "w": 23, - "h": 23 - } - }, - { - "filename": "black_belt", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 80, - "y": 164, - "w": 22, - "h": 23 - } - }, - { - "filename": "fire_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 89, - "y": 140, - "w": 22, - "h": 23 - } - }, - { - "filename": "focus_sash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 90, - "y": 116, - "w": 22, - "h": 23 - } - }, - { - "filename": "never_melt_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 91, - "y": 93, - "w": 22, - "h": 23 - } - }, - { - "filename": "map", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 3, - "y": 5, - "w": 27, - "h": 22 - }, - "frame": { - "x": 107, - "y": 71, - "w": 27, - "h": 22 - } - }, - { - "filename": "petaya_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 120, - "y": 47, - "w": 22, - "h": 23 - } - }, - { - "filename": "reaper_cloth", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 121, - "y": 23, - "w": 22, - "h": 23 - } - }, - { - "filename": "dragon_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 126, - "y": 0, - "w": 21, - "h": 23 - } - }, - { - "filename": "lansat_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 23 - }, - "frame": { - "x": 102, - "y": 163, - "w": 21, - "h": 23 - } - }, - { - "filename": "leaf_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 111, - "y": 139, - "w": 21, - "h": 23 - } - }, - { - "filename": "sharp_beak", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 112, - "y": 116, - "w": 21, - "h": 23 - } - }, - { - "filename": "mystic_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 23 - }, - "frame": { - "x": 113, - "y": 93, - "w": 20, - "h": 23 - } - }, - { - "filename": "hyper_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 76, - "y": 262, - "w": 17, - "h": 23 - } - }, { "filename": "relic_gold", "rotated": false, @@ -1473,1293 +24,12 @@ "h": 11 }, "frame": { - "x": 76, - "y": 285, + "x": 0, + "y": 0, "w": 15, "h": 11 } }, - { - "filename": "potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 85, - "y": 238, - "w": 17, - "h": 23 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 101, - "y": 214, - "w": 17, - "h": 23 - } - }, - { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 - }, - "frame": { - "x": 103, - "y": 186, - "w": 15, - "h": 23 - } - }, - { - "filename": "exp_balance", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 93, - "y": 261, - "w": 24, - "h": 22 - } - }, - { - "filename": "exp_share", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 102, - "y": 237, - "w": 24, - "h": 22 - } - }, - { - "filename": "healing_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 23, - "h": 22 - }, - "frame": { - "x": 117, - "y": 259, - "w": 23, - "h": 22 - } - }, - { - "filename": "silver_powder", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 11, - "w": 24, - "h": 15 - }, - "frame": { - "x": 117, - "y": 281, - "w": 24, - "h": 15 - } - }, - { - "filename": "charcoal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 118, - "y": 186, - "w": 22, - "h": 22 - } - }, - { - "filename": "dire_hit", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 123, - "y": 162, - "w": 22, - "h": 22 - } - }, - { - "filename": "dna_splicers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 132, - "y": 139, - "w": 22, - "h": 22 - } - }, - { - "filename": "electirizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 118, - "y": 208, - "w": 22, - "h": 22 - } - }, - { - "filename": "enigma_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 126, - "y": 230, - "w": 22, - "h": 22 - } - }, - { - "filename": "ganlon_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 140, - "y": 252, - "w": 22, - "h": 22 - } - }, - { - "filename": "guard_spec", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 141, - "y": 274, - "w": 22, - "h": 22 - } - }, - { - "filename": "ice_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 140, - "y": 184, - "w": 22, - "h": 22 - } - }, - { - "filename": "magmarizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 145, - "y": 161, - "w": 22, - "h": 22 - } - }, - { - "filename": "mini_black_hole", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 140, - "y": 206, - "w": 22, - "h": 22 - } - }, - { - "filename": "protector", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 148, - "y": 228, - "w": 22, - "h": 22 - } - }, - { - "filename": "shed_shell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 162, - "y": 250, - "w": 22, - "h": 22 - } - }, - { - "filename": "starf_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 163, - "y": 272, - "w": 22, - "h": 22 - } - }, - { - "filename": "thunder_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 162, - "y": 183, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_bug", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 162, - "y": 205, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_dark", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 170, - "y": 227, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_dragon", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 249, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_electric", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 185, - "y": 271, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_fairy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 133, - "y": 93, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_fighting", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 134, - "y": 70, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_fire", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 142, - "y": 46, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_flying", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 143, - "y": 23, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_ghost", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 147, - "y": 0, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_grass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 133, - "y": 115, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_ground", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 154, - "y": 137, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 167, - "y": 159, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_normal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 155, - "y": 92, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_poison", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 155, - "y": 114, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_psychic", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 176, - "y": 136, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 156, - "y": 68, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_steel", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 164, - "y": 45, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 165, - "y": 22, - "w": 22, - "h": 22 - } - }, - { - "filename": "water_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 169, - "y": 0, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_accuracy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 181, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_attack", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 189, - "y": 158, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_defense", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 203, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_sp_atk", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 192, - "y": 225, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_sp_def", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 206, - "y": 247, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_speed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 207, - "y": 269, - "w": 22, - "h": 22 - } - }, - { - "filename": "sitrus_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 22 - }, - "frame": { - "x": 206, - "y": 180, - "w": 20, - "h": 22 - } - }, - { - "filename": "metal_coat", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 19, - "h": 22 - }, - "frame": { - "x": 206, - "y": 202, - "w": 19, - "h": 22 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 214, - "y": 224, - "w": 17, - "h": 22 - } - }, - { - "filename": "leftovers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 15, - "h": 22 - }, - "frame": { - "x": 225, - "y": 202, - "w": 15, - "h": 22 - } - }, - { - "filename": "deep_sea_tooth", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 228, - "y": 246, - "w": 22, - "h": 21 - } - }, - { - "filename": "liechi_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 231, - "y": 224, - "w": 22, - "h": 21 - } - }, - { - "filename": "dusk_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 229, - "y": 267, - "w": 21, - "h": 21 - } - }, - { - "filename": "sacred_ash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 253, - "y": 0, - "w": 24, - "h": 20 - } - }, - { - "filename": "spell_tag", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 277, - "y": 0, - "w": 19, - "h": 21 - } - }, - { - "filename": "soft_sand", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 253, - "y": 20, - "w": 24, - "h": 20 - } - }, - { - "filename": "apicot_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 277, - "y": 21, - "w": 19, - "h": 20 - } - }, - { - "filename": "choice_specs", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 253, - "y": 40, - "w": 24, - "h": 18 - } - }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 277, - "y": 41, - "w": 19, - "h": 20 - } - }, - { - "filename": "dragon_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 253, - "y": 58, - "w": 24, - "h": 18 - } - }, - { - "filename": "hard_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 277, - "y": 61, - "w": 19, - "h": 20 - } - }, { "filename": "ability_capsule", "rotated": false, @@ -2775,75 +45,12 @@ "h": 14 }, "frame": { - "x": 253, - "y": 76, + "x": 15, + "y": 0, "w": 24, "h": 14 } }, - { - "filename": "big_mushroom", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 19 - }, - "frame": { - "x": 277, - "y": 81, - "w": 19, - "h": 19 - } - }, - { - "filename": "binding_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 23, - "h": 20 - }, - "frame": { - "x": 253, - "y": 90, - "w": 23, - "h": 20 - } - }, - { - "filename": "dawn_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 21 - }, - "frame": { - "x": 276, - "y": 100, - "w": 20, - "h": 21 - } - }, { "filename": "prism_scale", "rotated": false, @@ -2859,14 +66,14 @@ "h": 15 }, "frame": { - "x": 177, - "y": 121, + "x": 39, + "y": 0, "w": 15, "h": 15 } }, { - "filename": "reviver_seed", + "filename": "silver_powder", "rotated": false, "trimmed": true, "sourceSize": { @@ -2874,20 +81,713 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 8, - "w": 23, - "h": 20 + "x": 4, + "y": 11, + "w": 24, + "h": 15 }, "frame": { - "x": 253, - "y": 110, - "w": 23, - "h": 20 + "x": 54, + "y": 0, + "w": 24, + "h": 15 } }, { - "filename": "big_nugget", + "filename": "abomasite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 78, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "absolite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 94, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "aerodactylite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 110, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "aggronite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 126, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "alakazite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 142, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "altarianite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 158, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "ampharosite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 174, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "audinite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 190, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "banettite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 206, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "beedrillite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 222, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "blastoisinite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 238, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "blazikenite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 254, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "cameruptite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 270, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "charizardite_x", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 286, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "charizardite_y", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 302, + "y": 0, + "w": 16, + "h": 16 + } + }, + { + "filename": "revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 10, + "y": 8, + "w": 12, + "h": 17 + }, + "frame": { + "x": 0, + "y": 11, + "w": 12, + "h": 17 + } + }, + { + "filename": "diancite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 12, + "y": 14, + "w": 16, + "h": 16 + } + }, + { + "filename": "galladite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 28, + "y": 15, + "w": 16, + "h": 16 + } + }, + { + "filename": "garchompite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 44, + "y": 15, + "w": 16, + "h": 16 + } + }, + { + "filename": "gardevoirite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 60, + "y": 15, + "w": 16, + "h": 16 + } + }, + { + "filename": "gengarite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 76, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "glalitite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 92, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "gyaradosite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 108, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "heracronite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 124, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "houndoominite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 140, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "kangaskhanite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 156, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "latiasite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 172, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "latiosite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 188, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "lopunnite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 204, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "lucarionite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 220, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "manectite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 236, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "mawilite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 252, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "medichamite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 268, + "y": 16, + "w": 16, + "h": 16 + } + }, + { + "filename": "mega_bracelet", "rotated": false, "trimmed": true, "sourceSize": { @@ -2896,15 +796,372 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, + "y": 8, "w": 20, - "h": 20 + "h": 16 }, "frame": { - "x": 276, - "y": 121, + "x": 284, + "y": 16, "w": 20, - "h": 20 + "h": 16 + } + }, + { + "filename": "metagrossite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 0, + "y": 30, + "w": 16, + "h": 16 + } + }, + { + "filename": "mewtwonite_x", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 16, + "y": 31, + "w": 16, + "h": 16 + } + }, + { + "filename": "mewtwonite_y", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 32, + "y": 31, + "w": 16, + "h": 16 + } + }, + { + "filename": "nugget", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 48, + "y": 31, + "w": 16, + "h": 16 + } + }, + { + "filename": "pidgeotite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 64, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "pinsirite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 80, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "rayquazite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 96, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "sablenite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 112, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "salamencite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 128, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "sceptilite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 144, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "scizorite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 160, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "sharpedonite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 176, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "slowbronite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 192, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "steelixite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 208, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "swampertite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 224, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "tyranitarite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 240, + "y": 32, + "w": 16, + "h": 16 + } + }, + { + "filename": "venusaurite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 256, + "y": 32, + "w": 16, + "h": 16 } }, { @@ -2922,35 +1179,14 @@ "h": 17 }, "frame": { - "x": 198, - "y": 141, + "x": 272, + "y": 32, "w": 23, "h": 17 } }, { - "filename": "shell_bell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 23, - "h": 20 - }, - "frame": { - "x": 253, - "y": 130, - "w": 23, - "h": 20 - } - }, - { - "filename": "gb", + "filename": "everstone", "rotated": false, "trimmed": true, "sourceSize": { @@ -2959,99 +1195,15 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, + "y": 8, "w": 20, - "h": 20 + "h": 17 }, "frame": { - "x": 276, - "y": 141, + "x": 295, + "y": 32, "w": 20, - "h": 20 - } - }, - { - "filename": "upgrade", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 211, - "y": 161, - "w": 22, - "h": 19 - } - }, - { - "filename": "relic_crown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 18 - }, - "frame": { - "x": 253, - "y": 150, - "w": 23, - "h": 18 - } - }, - { - "filename": "magnet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 276, - "y": 161, - "w": 20, - "h": 20 - } - }, - { - "filename": "poison_barb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 226, - "y": 181, - "w": 21, - "h": 21 + "h": 17 } }, { @@ -3069,14 +1221,14 @@ "h": 17 }, "frame": { - "x": 253, - "y": 168, + "x": 0, + "y": 47, "w": 23, "h": 17 } }, { - "filename": "mb", + "filename": "choice_specs", "rotated": false, "trimmed": true, "sourceSize": { @@ -3084,20 +1236,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 + "x": 4, + "y": 8, + "w": 24, + "h": 18 }, "frame": { - "x": 276, - "y": 181, - "w": 20, - "h": 20 + "x": 23, + "y": 47, + "w": 24, + "h": 18 } }, { - "filename": "pb", + "filename": "dragon_scale", "rotated": false, "trimmed": true, "sourceSize": { @@ -3105,20 +1257,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 + "x": 4, + "y": 8, + "w": 24, + "h": 18 }, "frame": { - "x": 233, - "y": 0, - "w": 20, - "h": 20 + "x": 47, + "y": 48, + "w": 24, + "h": 18 } }, { - "filename": "pb_gold", + "filename": "relic_crown", "rotated": false, "trimmed": true, "sourceSize": { @@ -3126,100 +1278,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 233, - "y": 20, - "w": 20, - "h": 20 - } - }, - { - "filename": "strange_ball", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 233, - "y": 40, - "w": 20, - "h": 20 - } - }, - { - "filename": "ub", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 233, - "y": 60, - "w": 20, - "h": 20 - } - }, - { - "filename": "lum_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, + "x": 4, "y": 7, - "w": 20, - "h": 19 + "w": 23, + "h": 18 }, "frame": { - "x": 233, - "y": 80, - "w": 20, - "h": 19 - } - }, - { - "filename": "razor_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 233, - "y": 99, - "w": 20, - "h": 19 + "x": 71, + "y": 48, + "w": 23, + "h": 18 } }, { @@ -3237,8 +1305,8 @@ "h": 18 }, "frame": { - "x": 192, - "y": 118, + "x": 94, + "y": 48, "w": 20, "h": 18 } @@ -3258,8 +1326,8 @@ "h": 18 }, "frame": { - "x": 233, - "y": 118, + "x": 114, + "y": 48, "w": 20, "h": 18 } @@ -3279,8 +1347,8 @@ "h": 18 }, "frame": { - "x": 233, - "y": 136, + "x": 134, + "y": 48, "w": 20, "h": 18 } @@ -3300,75 +1368,12 @@ "h": 18 }, "frame": { - "x": 233, - "y": 154, + "x": 154, + "y": 48, "w": 20, "h": 18 } }, - { - "filename": "shiny_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 212, - "y": 0, - "w": 21, - "h": 21 - } - }, - { - "filename": "zoom_lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 191, - "y": 0, - "w": 21, - "h": 21 - } - }, - { - "filename": "revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 - }, - "frame": { - "x": 221, - "y": 21, - "w": 12, - "h": 17 - } - }, { "filename": "wl_ether", "rotated": false, @@ -3384,33 +1389,12 @@ "h": 18 }, "frame": { - "x": 212, - "y": 38, + "x": 174, + "y": 48, "w": 20, "h": 18 } }, - { - "filename": "everstone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 17 - }, - "frame": { - "x": 191, - "y": 21, - "w": 20, - "h": 17 - } - }, { "filename": "wl_full_heal", "rotated": false, @@ -3426,8 +1410,8 @@ "h": 18 }, "frame": { - "x": 212, - "y": 56, + "x": 194, + "y": 48, "w": 20, "h": 18 } @@ -3447,8 +1431,8 @@ "h": 18 }, "frame": { - "x": 212, - "y": 74, + "x": 214, + "y": 48, "w": 20, "h": 18 } @@ -3468,12 +1452,33 @@ "h": 18 }, "frame": { - "x": 212, - "y": 92, + "x": 234, + "y": 48, "w": 20, "h": 18 } }, + { + "filename": "oval_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 19 + }, + "frame": { + "x": 254, + "y": 48, + "w": 18, + "h": 19 + } + }, { "filename": "wl_hyper_potion", "rotated": false, @@ -3489,54 +1494,12 @@ "h": 18 }, "frame": { - "x": 212, - "y": 110, + "x": 272, + "y": 49, "w": 20, "h": 18 } }, - { - "filename": "deep_sea_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 253, - "y": 185, - "w": 22, - "h": 20 - } - }, - { - "filename": "miracle_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 19, - "h": 19 - }, - "frame": { - "x": 240, - "y": 205, - "w": 19, - "h": 19 - } - }, { "filename": "wl_ice_heal", "rotated": false, @@ -3552,33 +1515,12 @@ "h": 18 }, "frame": { - "x": 275, - "y": 201, + "x": 292, + "y": 49, "w": 20, "h": 18 } }, - { - "filename": "nugget", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 259, - "y": 205, - "w": 16, - "h": 16 - } - }, { "filename": "wl_item_drop", "rotated": false, @@ -3594,8 +1536,8 @@ "h": 18 }, "frame": { - "x": 275, - "y": 219, + "x": 0, + "y": 64, "w": 20, "h": 18 } @@ -3615,8 +1557,8 @@ "h": 18 }, "frame": { - "x": 253, - "y": 224, + "x": 20, + "y": 65, "w": 20, "h": 18 } @@ -3636,8 +1578,8 @@ "h": 18 }, "frame": { - "x": 273, - "y": 237, + "x": 40, + "y": 66, "w": 20, "h": 18 } @@ -3657,8 +1599,8 @@ "h": 18 }, "frame": { - "x": 253, - "y": 242, + "x": 60, + "y": 66, "w": 20, "h": 18 } @@ -3678,8 +1620,8 @@ "h": 18 }, "frame": { - "x": 273, - "y": 255, + "x": 80, + "y": 66, "w": 20, "h": 18 } @@ -3699,8 +1641,8 @@ "h": 18 }, "frame": { - "x": 250, - "y": 260, + "x": 100, + "y": 66, "w": 20, "h": 18 } @@ -3720,33 +1662,12 @@ "h": 18 }, "frame": { - "x": 250, - "y": 278, + "x": 120, + "y": 66, "w": 20, "h": 18 } }, - { - "filename": "razor_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 18, - "h": 20 - }, - "frame": { - "x": 270, - "y": 273, - "w": 18, - "h": 20 - } - }, { "filename": "wl_revive", "rotated": false, @@ -3762,8 +1683,8 @@ "h": 18 }, "frame": { - "x": 187, - "y": 38, + "x": 140, + "y": 66, "w": 20, "h": 18 } @@ -3783,12 +1704,306 @@ "h": 18 }, "frame": { - "x": 186, - "y": 56, + "x": 160, + "y": 66, "w": 20, "h": 18 } }, + { + "filename": "big_mushroom", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 19 + }, + "frame": { + "x": 180, + "y": 66, + "w": 19, + "h": 19 + } + }, + { + "filename": "blunder_policy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 19 + }, + "frame": { + "x": 199, + "y": 66, + "w": 22, + "h": 19 + } + }, + { + "filename": "dubious_disc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 221, + "y": 66, + "w": 22, + "h": 19 + } + }, + { + "filename": "lum_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 243, + "y": 67, + "w": 20, + "h": 19 + } + }, + { + "filename": "miracle_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 19, + "h": 19 + }, + "frame": { + "x": 263, + "y": 67, + "w": 19, + "h": 19 + } + }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 282, + "y": 67, + "w": 20, + "h": 19 + } + }, + { + "filename": "leftovers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 15, + "h": 22 + }, + "frame": { + "x": 302, + "y": 67, + "w": 15, + "h": 22 + } + }, + { + "filename": "apicot_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 0, + "y": 82, + "w": 19, + "h": 20 + } + }, + { + "filename": "big_nugget", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 19, + "y": 83, + "w": 20, + "h": 20 + } + }, + { + "filename": "upgrade", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 39, + "y": 84, + "w": 22, + "h": 19 + } + }, + { + "filename": "binding_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 23, + "h": 20 + }, + "frame": { + "x": 61, + "y": 84, + "w": 23, + "h": 20 + } + }, + { + "filename": "candy_jar", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 84, + "y": 84, + "w": 19, + "h": 20 + } + }, + { + "filename": "deep_sea_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 103, + "y": 84, + "w": 22, + "h": 20 + } + }, + { + "filename": "gb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 125, + "y": 84, + "w": 20, + "h": 20 + } + }, { "filename": "golden_egg", "rotated": false, @@ -3804,33 +2019,12 @@ "h": 20 }, "frame": { - "x": 177, - "y": 90, + "x": 145, + "y": 84, "w": 17, "h": 20 } }, - { - "filename": "oval_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 - }, - "frame": { - "x": 194, - "y": 74, - "w": 18, - "h": 19 - } - }, { "filename": "lucky_egg", "rotated": false, @@ -3846,11 +2040,2846 @@ "h": 20 }, "frame": { - "x": 194, - "y": 93, + "x": 162, + "y": 84, "w": 17, "h": 20 } + }, + { + "filename": "hard_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 179, + "y": 85, + "w": 19, + "h": 20 + } + }, + { + "filename": "magnet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 198, + "y": 85, + "w": 20, + "h": 20 + } + }, + { + "filename": "mb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 218, + "y": 85, + "w": 20, + "h": 20 + } + }, + { + "filename": "pb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 238, + "y": 86, + "w": 20, + "h": 20 + } + }, + { + "filename": "pb_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 258, + "y": 86, + "w": 20, + "h": 20 + } + }, + { + "filename": "razor_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 18, + "h": 20 + }, + "frame": { + "x": 278, + "y": 86, + "w": 18, + "h": 20 + } + }, + { + "filename": "strange_ball", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 296, + "y": 89, + "w": 20, + "h": 20 + } + }, + { + "filename": "reviver_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 8, + "w": 23, + "h": 20 + }, + "frame": { + "x": 0, + "y": 103, + "w": 23, + "h": 20 + } + }, + { + "filename": "sacred_ash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 23, + "y": 103, + "w": 24, + "h": 20 + } + }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 47, + "y": 104, + "w": 23, + "h": 20 + } + }, + { + "filename": "soft_sand", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 70, + "y": 104, + "w": 24, + "h": 20 + } + }, + { + "filename": "ub", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 94, + "y": 104, + "w": 20, + "h": 20 + } + }, + { + "filename": "amulet_coin", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 114, + "y": 104, + "w": 23, + "h": 21 + } + }, + { + "filename": "dawn_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 21 + }, + "frame": { + "x": 137, + "y": 104, + "w": 20, + "h": 21 + } + }, + { + "filename": "deep_sea_tooth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 157, + "y": 104, + "w": 22, + "h": 21 + } + }, + { + "filename": "dusk_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 179, + "y": 105, + "w": 21, + "h": 21 + } + }, + { + "filename": "liechi_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 200, + "y": 105, + "w": 22, + "h": 21 + } + }, + { + "filename": "moon_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 23, + "h": 21 + }, + "frame": { + "x": 222, + "y": 106, + "w": 23, + "h": 21 + } + }, + { + "filename": "poison_barb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 245, + "y": 106, + "w": 21, + "h": 21 + } + }, + { + "filename": "shiny_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 266, + "y": 106, + "w": 21, + "h": 21 + } + }, + { + "filename": "spell_tag", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 287, + "y": 109, + "w": 19, + "h": 21 + } + }, + { + "filename": "zoom_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 0, + "y": 123, + "w": 21, + "h": 21 + } + }, + { + "filename": "charcoal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 21, + "y": 123, + "w": 22, + "h": 22 + } + }, + { + "filename": "dire_hit", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 43, + "y": 124, + "w": 22, + "h": 22 + } + }, + { + "filename": "dna_splicers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 65, + "y": 124, + "w": 22, + "h": 22 + } + }, + { + "filename": "electirizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 87, + "y": 124, + "w": 22, + "h": 22 + } + }, + { + "filename": "enigma_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 109, + "y": 125, + "w": 22, + "h": 22 + } + }, + { + "filename": "exp_balance", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 22 + }, + "frame": { + "x": 131, + "y": 125, + "w": 24, + "h": 22 + } + }, + { + "filename": "exp_share", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 22 + }, + "frame": { + "x": 155, + "y": 125, + "w": 24, + "h": 22 + } + }, + { + "filename": "ganlon_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 179, + "y": 126, + "w": 22, + "h": 22 + } + }, + { + "filename": "metal_coat", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 19, + "h": 22 + }, + "frame": { + "x": 201, + "y": 126, + "w": 19, + "h": 22 + } + }, + { + "filename": "guard_spec", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 220, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "healing_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 23, + "h": 22 + }, + "frame": { + "x": 242, + "y": 127, + "w": 23, + "h": 22 + } + }, + { + "filename": "ice_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 265, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "magmarizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 287, + "y": 130, + "w": 22, + "h": 22 + } + }, + { + "filename": "metronome", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 0, + "y": 144, + "w": 17, + "h": 22 + } + }, + { + "filename": "mini_black_hole", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 17, + "y": 145, + "w": 22, + "h": 22 + } + }, + { + "filename": "map", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 3, + "y": 5, + "w": 27, + "h": 22 + }, + "frame": { + "x": 39, + "y": 146, + "w": 27, + "h": 22 + } + }, + { + "filename": "protector", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 66, + "y": 146, + "w": 22, + "h": 22 + } + }, + { + "filename": "sitrus_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 88, + "y": 146, + "w": 20, + "h": 22 + } + }, + { + "filename": "shed_shell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 108, + "y": 147, + "w": 22, + "h": 22 + } + }, + { + "filename": "starf_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 130, + "y": 147, + "w": 22, + "h": 22 + } + }, + { + "filename": "thunder_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 152, + "y": 147, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_bug", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 174, + "y": 148, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_dark", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 196, + "y": 148, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_dragon", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 218, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_electric", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 240, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_fairy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 262, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_fighting", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 284, + "y": 152, + "w": 22, + "h": 22 + } + }, + { + "filename": "full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 4, + "w": 15, + "h": 23 + }, + "frame": { + "x": 0, + "y": 166, + "w": 15, + "h": 23 + } + }, + { + "filename": "tm_fire", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 15, + "y": 167, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_flying", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 37, + "y": 168, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_ghost", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 59, + "y": 168, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_grass", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 81, + "y": 168, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_ground", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 103, + "y": 169, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_ice", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 125, + "y": 169, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_normal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 147, + "y": 169, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_poison", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 169, + "y": 170, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_psychic", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 191, + "y": 170, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 213, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_steel", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 235, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 257, + "y": 171, + "w": 22, + "h": 22 + } + }, + { + "filename": "water_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 279, + "y": 174, + "w": 22, + "h": 22 + } + }, + { + "filename": "hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 301, + "y": 174, + "w": 17, + "h": 23 + } + }, + { + "filename": "x_accuracy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 0, + "y": 189, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_attack", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 22, + "y": 190, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_defense", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 44, + "y": 190, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_atk", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 66, + "y": 190, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_def", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 88, + "y": 191, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_speed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 110, + "y": 191, + "w": 22, + "h": 22 + } + }, + { + "filename": "berry_pouch", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 132, + "y": 191, + "w": 23, + "h": 23 + } + }, + { + "filename": "black_belt", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 155, + "y": 192, + "w": 22, + "h": 23 + } + }, + { + "filename": "clefairy_doll", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 177, + "y": 192, + "w": 24, + "h": 23 + } + }, + { + "filename": "coin_case", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 201, + "y": 193, + "w": 24, + "h": 23 + } + }, + { + "filename": "dragon_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 225, + "y": 193, + "w": 21, + "h": 23 + } + }, + { + "filename": "expert_belt", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 23 + }, + "frame": { + "x": 246, + "y": 193, + "w": 24, + "h": 23 + } + }, + { + "filename": "fire_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 270, + "y": 196, + "w": 22, + "h": 23 + } + }, + { + "filename": "focus_sash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 292, + "y": 197, + "w": 22, + "h": 23 + } + }, + { + "filename": "lansat_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 23 + }, + "frame": { + "x": 0, + "y": 211, + "w": 21, + "h": 23 + } + }, + { + "filename": "leaf_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 21, + "y": 212, + "w": 21, + "h": 23 + } + }, + { + "filename": "mystic_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 23 + }, + "frame": { + "x": 42, + "y": 212, + "w": 20, + "h": 23 + } + }, + { + "filename": "never_melt_ice", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 62, + "y": 212, + "w": 22, + "h": 23 + } + }, + { + "filename": "petaya_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 84, + "y": 213, + "w": 22, + "h": 23 + } + }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 106, + "y": 213, + "w": 17, + "h": 23 + } + }, + { + "filename": "rare_candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 123, + "y": 214, + "w": 23, + "h": 23 + } + }, + { + "filename": "rarer_candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 146, + "y": 215, + "w": 23, + "h": 23 + } + }, + { + "filename": "reaper_cloth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 169, + "y": 215, + "w": 22, + "h": 23 + } + }, + { + "filename": "scope-lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 191, + "y": 216, + "w": 24, + "h": 23 + } + }, + { + "filename": "sharp_beak", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 215, + "y": 216, + "w": 21, + "h": 23 + } + }, + { + "filename": "stick", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 236, + "y": 216, + "w": 23, + "h": 23 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 259, + "y": 219, + "w": 17, + "h": 23 + } + }, + { + "filename": "calcium", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 276, + "y": 219, + "w": 16, + "h": 24 + } + }, + { + "filename": "twisted_spoon", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 292, + "y": 220, + "w": 24, + "h": 23 + } + }, + { + "filename": "carbos", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 0, + "y": 234, + "w": 16, + "h": 24 + } + }, + { + "filename": "big_root", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 16, + "y": 235, + "w": 23, + "h": 24 + } + }, + { + "filename": "catching_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 39, + "y": 235, + "w": 21, + "h": 24 + } + }, + { + "filename": "choice_scarf", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 60, + "y": 235, + "w": 24, + "h": 24 + } + }, + { + "filename": "elixir", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 84, + "y": 236, + "w": 18, + "h": 24 + } + }, + { + "filename": "ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 102, + "y": 236, + "w": 18, + "h": 24 + } + }, + { + "filename": "focus_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 120, + "y": 237, + "w": 24, + "h": 24 + } + }, + { + "filename": "full_restore", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 144, + "y": 238, + "w": 18, + "h": 24 + } + }, + { + "filename": "golden_punch", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 162, + "y": 238, + "w": 24, + "h": 24 + } + }, + { + "filename": "grip_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 186, + "y": 239, + "w": 24, + "h": 24 + } + }, + { + "filename": "hp_up", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 210, + "y": 239, + "w": 16, + "h": 24 + } + }, + { + "filename": "iron", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 226, + "y": 239, + "w": 16, + "h": 24 + } + }, + { + "filename": "lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 242, + "y": 239, + "w": 17, + "h": 24 + } + }, + { + "filename": "max_lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 259, + "y": 242, + "w": 17, + "h": 24 + } + }, + { + "filename": "kings_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 276, + "y": 243, + "w": 23, + "h": 24 + } + }, + { + "filename": "max_elixir", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 299, + "y": 243, + "w": 18, + "h": 24 + } + }, + { + "filename": "pp_max", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 0, + "y": 258, + "w": 16, + "h": 24 + } + }, + { + "filename": "lucky_punch", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 16, + "y": 259, + "w": 24, + "h": 24 + } + }, + { + "filename": "lucky_punch_great", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 40, + "y": 259, + "w": 24, + "h": 24 + } + }, + { + "filename": "max_ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 64, + "y": 259, + "w": 18, + "h": 24 + } + }, + { + "filename": "lucky_punch_master", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 82, + "y": 260, + "w": 24, + "h": 24 + } + }, + { + "filename": "lucky_punch_ultra", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 106, + "y": 261, + "w": 24, + "h": 24 + } + }, + { + "filename": "max_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 130, + "y": 262, + "w": 18, + "h": 24 + } + }, + { + "filename": "max_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 24 + }, + "frame": { + "x": 148, + "y": 262, + "w": 22, + "h": 24 + } + }, + { + "filename": "pp_up", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 170, + "y": 262, + "w": 16, + "h": 24 + } + }, + { + "filename": "muscle_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 186, + "y": 263, + "w": 24, + "h": 24 + } + }, + { + "filename": "oval_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 210, + "y": 263, + "w": 21, + "h": 24 + } + }, + { + "filename": "protein", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 231, + "y": 263, + "w": 16, + "h": 24 + } + }, + { + "filename": "reveal_glass", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 247, + "y": 266, + "w": 23, + "h": 24 + } + }, + { + "filename": "salac_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 270, + "y": 267, + "w": 24, + "h": 24 + } + }, + { + "filename": "scanner", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 294, + "y": 267, + "w": 24, + "h": 24 + } + }, + { + "filename": "unknown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 0, + "y": 282, + "w": 16, + "h": 24 + } + }, + { + "filename": "shiny_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 16, + "y": 283, + "w": 21, + "h": 24 + } + }, + { + "filename": "silk_scarf", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 37, + "y": 283, + "w": 24, + "h": 24 + } + }, + { + "filename": "super_lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 61, + "y": 283, + "w": 17, + "h": 24 + } + }, + { + "filename": "sun_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 78, + "y": 284, + "w": 24, + "h": 24 + } + }, + { + "filename": "zinc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 102, + "y": 285, + "w": 16, + "h": 24 + } + }, + { + "filename": "ability_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 3, + "y": 3, + "w": 23, + "h": 26 + }, + "frame": { + "x": 118, + "y": 286, + "w": 23, + "h": 26 + } + }, + { + "filename": "linking_cord", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 3, + "y": 3, + "w": 27, + "h": 26 + }, + "frame": { + "x": 141, + "y": 286, + "w": 27, + "h": 26 + } + }, + { + "filename": "exp_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 1, + "w": 17, + "h": 31 + }, + "frame": { + "x": 168, + "y": 286, + "w": 17, + "h": 31 + } + }, + { + "filename": "golden_exp_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 1, + "w": 17, + "h": 31 + }, + "frame": { + "x": 185, + "y": 287, + "w": 17, + "h": 31 + } + }, + { + "filename": "super_exp_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 1, + "w": 17, + "h": 31 + }, + "frame": { + "x": 202, + "y": 287, + "w": 17, + "h": 31 + } } ] } @@ -3858,6 +4887,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:7d150b6bd288db2e8dfa1530000690ee:53987dc1b2426cb0757237d04d6925a3:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:357b8dcf0ed67d82a9e8f39b048a9d91:4c1f7a668341620ca5ab8d05f49f8946:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index d7e0803a6be544164af84c9986cdacb8d6eb958b..23302c9e524e8a120b9de3831d438efff7800581 100644 GIT binary patch literal 30817 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 diff --git a/public/images/items/abomasite.png b/public/images/items/abomasite.png new file mode 100644 index 0000000000000000000000000000000000000000..09177d97a44e3a284a6a9ba561034d7c05057652 GIT binary patch literal 241 zcmVV3{kVwA|9t)-t76*wQlcWk-e~u#G>$GMvWQ7@9+LN;za00000NkvXXu0mjfA#Y(Z literal 0 HcmV?d00001 diff --git a/public/images/items/absolite.png b/public/images/items/absolite.png new file mode 100644 index 0000000000000000000000000000000000000000..617969f60372dc6b49e53a8a8a47deb4d546a8eb GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJjh-%!ArXh)PTk1aU?AcmtGYSD zs!4lC+tO68+dU6BGIe!h4_-1VYCIvxWcIJ)gM5vM;Jc?j8!|;)1OIgys(lFIf5$HV z>?sGsbuA?hhZ&{ObB^qq|FKd?kpKCEEFpg;osYX5xQ=hRTT;(-=XuAL3EUrgu8FH2 zVG;PDqNwyBbMixuXF@#pMDMaMRSV))dbm{VlbS+9u!7nFA)Tgzj*6EB(-H(*lE2RX iE4+$byKB*&v#hpu(?3lztl$GWp25@A&t;ucLK6TkUs><~ literal 0 HcmV?d00001 diff --git a/public/images/items/aerodactylite.png b/public/images/items/aerodactylite.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf5e028d6fbbb100966d3437d14c40d56c650f5 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJJ)SO(ArXh)PBr9eF%WRI^*U$d zzTr-GPG)xI&Tx;+olCEK0O_4ib?gmJ8*rHUxy)dfcWwDEGs%L-QGlgfb?FhSyWO87 zemWWp2ktHtbUbJ+t{44u&h@Z9pYuy?-S4QB?7R^A$iu;Vj-JBP6Ww;cOb7RhIm9eW zU@b{ejN&wJEd3|vwS!~Ip?c07N9~2IAJ)CLx-q-O=U}P$3(Xsz4h)4qtF#xo2Iwtc rl)clo%hlzS{%`dXeZD3Ii`nvf7Nv7c%06-p=nn=@S3j3^P6+(a`^GSzP?yl>nc|F<0tf4oCIQgTu(IjKl&8!9KHKoq0IC3Edn0PDnIVz+tM>} znc~%SVL_26n=Z$hX?+emJyE3iZ{G~h6Gh8b9+})Qr6RWB^u*+st67@LH5+F5IC7u( z;C4kQjY;*mJEt(?0U?W~C?_t4%e4jOob#GqYEB5gFu8#tX;YQ1qHDmp?Ta#Z?(34& j`~PPCg*`Wb7U$}%X`S$@EA(AF(D@9Wu6{1-oD!M@VF@ zHga+_A6Gfbq0VqE(U_y{_#V!yB9Ay7ocHh@D6n`QqmW>e&2VE$tCYj;yhedChR?<= zoD5BT9Tlw?7-r0_V=wpJzU;E6~{tp00i_>zopr0M9yHEdT%j literal 0 HcmV?d00001 diff --git a/public/images/items/ampharosite.png b/public/images/items/ampharosite.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff26217d23f3695ba41f2e9ea71bd95f1ba7a9d GIT binary patch literal 250 zcmVVU3`H|a=D6}kU=2oKg&TqPMqmWmjNpL{?Zo+A^n$+6GCvg zT&{mrj1i@q2j}!a9D2;pu3VddP{5or;xcZY#sUDZcX>`WgE)n=mJOf@#1(*qs1Cs4 zALeu8(2{;qcr33C)9DE|;seK83=KZ73z*IRF3v07*qoM6N<$f|I>u Aq5uE@ literal 0 HcmV?d00001 diff --git a/public/images/items/audinite.png b/public/images/items/audinite.png new file mode 100644 index 0000000000000000000000000000000000000000..51fdc9310b09a9343d5d7528450310fcc479ecca GIT binary patch literal 240 zcmVJqU8y}ISd(s!k&3~Mcm?pz8jH}|D zBbnjFR1^96MrFS9Iz)tvpPA|-a8Qoa5cxZzCh;lHi8@0ijs&E{=>ol+)BZgqSfuTx z0HQL5wSY{Gepf1>3>aOJqZXPDyQE_NDSj3`Hqff$nCx5w2v7tU;MFYf!QRB_%7QOzFfHMn6_08hj{{pY#Pni2tzeplO02 z2>z9n5@D(rmr`hbv_x|!$0{OR@Vd`Z@>~Zgmy9>L&T*5#a@wdWaVP*1rweE~C+ECB zoX@`mK5?0X6~O31v=VLtOFtY+xCl(svPsQgW93@ah%P;#UR4)#KAUK;h?#N$MOi5RL00000NkvXXu0mjfb?sl8 literal 0 HcmV?d00001 diff --git a/public/images/items/beedrillite.png b/public/images/items/beedrillite.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd1444bf767b474e2854dd28fda1172b0432114 GIT binary patch literal 247 zcmVPgp_JCf>v>vGApQb={6%|4V5ahLQ0h>-CpV(K z!(bSO@vk`Ngwwq^#Vpgs$&!xc+eM@n#~4NOT*{G0n#w++Ch<{T=_#=#z!JL))N;go zUnCH$SpZR)!difH4X37rnm`Eiri6;XGcRw6aXf!XumJv5JqN8x+;0cH^41jAlYjuC xCcqLbf^yu1>g6oKBDMTyZ$kHC!!V4!c>(1!aq-Gd3j6>7002ovPDHLkV1j4&XEOi* literal 0 HcmV?d00001 diff --git a/public/images/items/blastoisinite.png b/public/images/items/blastoisinite.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8310610e84d21122b6906c8dad0c61bfc8f57c GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJU7jwEArXh)PTk1aU?AWstE#=D zDfxy~)6!fo_X1Y$(`yoDUJ}*ORkklEl4kLlkL~JZnI#lz6!?8l&dC}p7jS)KKy~Ta0yPNI% zC!VbSwzHy4Q1ij}Lz*sitpN{SxSZeAx60F_!Z*BAnNhQFmqY7f!)Ap>H^%j$Go7>* zysd?*m=dj~1PFR${_}dkwM{69;r*(4&GnNN*4};Zw{Rv)Zs^TgZADjx_3^HuJEr^) my!l}IU*TQNx?i9dF8)zZqLeYv0}P(7elF{r5}E*hNn!8+ literal 0 HcmV?d00001 diff --git a/public/images/items/cameruptite.png b/public/images/items/cameruptite.png new file mode 100644 index 0000000000000000000000000000000000000000..5410fc85a395c57501e4fa2ab751cf4831a3662c GIT binary patch literal 247 zcmVvyoWiR4C}>3?mZ-vk5@ xmg##5DuVJb36xU_D$>di`zMGOD~h7*%^UAiW{LlpAVdHF002ovPDHLkV1fqkYU2O^ literal 0 HcmV?d00001 diff --git a/public/images/items/charizardite_x.png b/public/images/items/charizardite_x.png new file mode 100644 index 0000000000000000000000000000000000000000..81590bb86da8b44ad3140344d9a55204ac42dcca GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ?Vc`ekTurxN z=A4N}ueNq~h%8YLSk`pBX=_YSz;)F$p_qFwvea+$Iy@s-me~2=oGjr>mdKI;Vst06eZ<761SM literal 0 HcmV?d00001 diff --git a/public/images/items/charizardite_y.png b/public/images/items/charizardite_y.png new file mode 100644 index 0000000000000000000000000000000000000000..784eed51acebcb13621bbd04c75f98d342b472f9 GIT binary patch literal 243 zcmVSj3`IRcTDohqLP}O)1lC~#td4BZh1Ljwx~N4TDpHif0yihrw`PoGT1+^B+%R+U&aXIq1XMT^ENyzd>SBWhFDY3giD@P7- zVhIFmDS((vK?}&VgQz9U1X9kM5+(xt&EFDZnm;6@05ClV-zHJ6(PsB+Q_z!Ofmcj+ wuO*}i%5f{2m+Pyz(aL}JPv~CkIF7S7PtG%!?0B-;p#T5?07*qoM6N<$f+lQYO#lD@ literal 0 HcmV?d00001 diff --git a/public/images/items/garchompite.png b/public/images/items/garchompite.png new file mode 100644 index 0000000000000000000000000000000000000000..045fc815b27fa4bc603c87086b17847998c99fa1 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ-JULvArY-_ryk^Nb`WsYP1RKl z@0YW^<ilgt&L1Owkv-HZZ&^jb(qYwlKKhE~^czH7AFHo`1e-1k2N3 sp(VQMoMIP0&HpPrOPt+NV9r@#U;TiuGv`Pi0D6PL)78&qol`;+0Kni|Z2$lO literal 0 HcmV?d00001 diff --git a/public/images/items/gardevoirite.png b/public/images/items/gardevoirite.png new file mode 100644 index 0000000000000000000000000000000000000000..d29ee3eab0322e8f2a7adaf5024133f3335c8e02 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ1D-C9ArXh)PBr9eF%WRI^;)+f zeB&MMh^S{$)3#01)YZKlRmBqBZ}4ez56|JI-pQ$nb~QYTALidzG3!13wCL|@Ck~ZZ z+aGh4m)Zr@l|GGRWnnC~%eeLVc%}}6w@<2^S@VR4Iz5a5tdIB{oNV|GJS^D#<+}QT z2&MySx)}_a_d28w@gzhnkLD0=$X(3MFVdQ&MBb@01roB-T(jq literal 0 HcmV?d00001 diff --git a/public/images/items/gengarite.png b/public/images/items/gengarite.png new file mode 100644 index 0000000000000000000000000000000000000000..dcbaf4bf13a3aab6ca12b0c3597ab3598fc0840b GIT binary patch literal 235 zcmV9vFuK{@Y=rsaAo lW)Uv`?4K~a*l`@^ZB93OZMaUFt*ih5002ovPDHLkV1i~5T-E>p literal 0 HcmV?d00001 diff --git a/public/images/items/glalitite.png b/public/images/items/glalitite.png new file mode 100644 index 0000000000000000000000000000000000000000..83e05f132fab852705aeb31e853f346ab6f95ca5 GIT binary patch literal 247 zcmVSj3`H5`)^M3sC~2>xq@+#h5wZehN=jNr$O@OUktORwM1v0@`AJ_On*Z!W&@_(Y zICmw4kaVgSFY70DF(v@uYZVbG#(7PM$mNt_eDZUOnS?GEs!ALQXo=GWq@41=X*+@( zy4L~}lP#12I?(mI5@rJ9v>Zy92oNICzTUqQN`NqZ5B4?zZM2#G-xkVEus}Wvlj%zd xEy4l=vVduM`6(8-JWqbvKcRZD<2cUQd;!qdaKCI)AY=dl002ovPDHLkV1nVJVg&#I literal 0 HcmV?d00001 diff --git a/public/images/items/gyaradosite.png b/public/images/items/gyaradosite.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8e6d6b115671b3384d946c354487f6818fe0e1 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ!=5gVArXg@6C_v{Cy4YkE#wjr z5&5T_yeoRm%s+qs%dCF%|GEh8L6cY+rcDoCh_w9=zV`3`|N6I48=flE=y?h0@EtNK zX6brr;Nb5rP{goFdBr=18BY~-9(<8|!y&-7aiT24Arns45_W~;2q%|vma{Sev9Z1v z1WgJLY~5S@ppPNdvBZ5r3sZou?`6hq6B=5Xe2W>2G#0e8oM23Fzi{aLi#~@kjuS-{ yD?PkVU+hkr;hZpyKVq&!dAIvP4WOGFZZR+joOaL1v55ouiow&>&t;ucLK6V%TVD78 literal 0 HcmV?d00001 diff --git a/public/images/items/heracronite.png b/public/images/items/heracronite.png new file mode 100644 index 0000000000000000000000000000000000000000..164da1c9d3085295a4f1453d5e89acc0f12c73b6 GIT binary patch literal 246 zcmV+cXf)&t_jc6s@1lA>8OLz!;sqPXuf>uHc;9b{!a5jm33ZADxPr*(C0*K4% wt%MdqxqKB}%e90Sk@BDY6PgzXK@i-{2E?ISncT7Ge*gdg07*qoM6N<$f|HzO2mk;8 literal 0 HcmV?d00001 diff --git a/public/images/items/houndoominite.png b/public/images/items/houndoominite.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2e5f2eacd669df2d8888b5978070c41095e70c GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJeV#6kArXh)PBr9eF%WRI_0rjX z=h~$rZ|~^Sy1ILtQoW+R`xACPpY@bIO_KefnsDR{c6ry9|1y&zLi-+D{P*H$Oz9Hm zkM;lk*fZq%%P1EX*3Z>TYGXT-e4d_IUc2;p$IK%O=V)pcsw${%;x4efWRg3{p+KKi zV6tWgqhwr1)FGdQSMA=M!i}nV_MAD6x{9nH*1fc{n9bsUutfZX<_k{;2E(6Kx{9s= v=aw(Z+-cVp*>XDnx4MXanauH%XT_HsGrxWGY}aO>PZ&I1{an^LB{Ts5CMsTN literal 0 HcmV?d00001 diff --git a/public/images/items/kangaskhanite.png b/public/images/items/kangaskhanite.png new file mode 100644 index 0000000000000000000000000000000000000000..b7eb6849729cbe71c70b51ab1a21b32f7847d316 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJt)4E9ArY-_ry6p#7znu9dc8~A z>3-wd>Lp(|G%vpsEMh&ayWcNiTE0lm9GycpKQxs7OgDUGVA1#3W~u;_#og{;mPaPZ zQpc;_C@HaOST5JefqE2L!%R$z>@DN|C?dJLDWK*ST5JefqZC0Yq2&~{TB`bIgmsuetWm-y?7rvzs&6E z>#hnRkaY9lF;3JEUwXt+$0i^goHJD;93Ij#e^VXJAn;&>Aea^Nyn%pCAdUbe#OVNQ z_~O^|v%UgcO90rU1q~q08&N};0i;w8Axr?u{I3@$K|@FY+-tfI_L|@pOizJqK{o*a z*ktt@LV_Tizlx^e5<-G-_+|fu=D{wP%XPMXR9uden4E0L94p|TQ*-6L?FwX@8GCbJZRVP><*yyS-l^IxY8RFz>E z#=qj610MBac)uX{2efrfPZg0|yi5sFj8u+EaiI4YF$rFtQI)t7;1ahBsm=5wgaaFSzhI0&aW?fqU?=F^2ziNcJ=Z zK@j{aDJ9_yFTUQJ9=0(jSTAAFmHPQmpQ@D%JMAb_~6 w-b%0t%Jr-0TFw$IqUAsPCk!tRf*?4W4U{Bcd=y*Wh5!Hn07*qoM6N<$f~u8b+yDRo literal 0 HcmV?d00001 diff --git a/public/images/items/manectite.png b/public/images/items/manectite.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd7406cdc487447ca2ac6d8e089305476b70cb9 GIT binary patch literal 245 zcmVaYac@MsBMJzB!F;Biav>d_KxVUF4Tfh;iyUd${DdGJw0_;13DHcb!& z!M~DHBAx2R{j$?MjC8auU#p0qfM}xEb`a%>%Q?B@=ZKrcsa&WjaVwxC9v6^uq{}Ny zAh7kNsiGM_&$4t?TyR+Rk zHF`Zyv815Lf-}|rog0_7lrH(LvncLdOR|RgM->ItIPnKXOV-W)E&3peOF=8xgEggq zqgW`5DcIc3YXyhS={oNRpS@L=Fw6_JW#8%fK_uiD}mQDJW|@O5Im%XmU!n!rU_M`L!Kw>P~m2$~cg zxK`{gxRBvY(~CZbG6oM_-^+~KCN#7%`4%%4X)I`GIl-vlBYc0cHIu5917E|mE|aY? udo|iDS<-$sT;(j;UIBDypaItkUWUE4MWM1UgMI;h!rNkl~F&T zU7UhN#if5djnD+eNaVzJ*vQnS+m`U)9xq!=srV>{ITH{;T7dVOeg|ihh%wom{@WDlNw5INn2Lx!D~H6rSs(>Kf%oo}QQ(^~LIu+QFx8!JW2@(=1{RoSOLYUkE45bDf4A zJ`2Sj+)%nEl*e@ApDm|&V~}0FY6QdgUGEyx?$!An{Hpsv^UCA~hDV>iY-QNe<+6Q)uC~$UbW-v;| zbwnNVVOag&^N@?e^S@zETo2+dmpVi~dMe_xpUINdmXkw4&40b>5{^@q;U>D*qYb+Y ley0C#d3Ch!u|<9{1MBkYFEX3Hm;v3-;OXk;vd$@?2>{$TT?YUF literal 0 HcmV?d00001 diff --git a/public/images/items/pidgeotite.png b/public/images/items/pidgeotite.png new file mode 100644 index 0000000000000000000000000000000000000000..86d1b23558c745302910e1ea479415b8802780e2 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJot`d^ArXh)PSxdWFyL{sJhiUL zRcWG!j?hWb3D!*E4)3Hqo~UfQ@G<;f(?VsH+LO}-H$AD&_26J~6lmGMXbO|m`=hm@ zjhZG~65sjhD|r{@du`ZN^mK-v_poNVW{fx{u&tkcTQGk|f=>EE(3Ig9j6&wtq-ZIQ#oYM^sjUbRd~{@ZseIyn-St3EFnGH9xvX4pmDoIaUR;E@p=rVhbDIF{JQ#cf9CZFq8S*T3)3$9J4GQ z{5RgA><}q%S5SkGVb#)1s{>*}9|9I+>N#++ewn~v$?%3F>WAE6K@UF0NIreh%uLHo t$`fRnHrE_@#R7C0m)k)N3DzrY41L1cYpXW=O9Fa?!PC{xWt~$(697(XSeF0* literal 0 HcmV?d00001 diff --git a/public/images/items/rayquazite.png b/public/images/items/rayquazite.png new file mode 100644 index 0000000000000000000000000000000000000000..068f02936be02e32e8b1539604cd93523de8682c GIT binary patch literal 428 zcmV;d0aN~oP)NNvugk zf;U`pIdcvtgHtZ9FH_u?D?Hh)I2;aU78j_bGn=ZaZgt#&pD15t$mMdv`>Z0>1JG1y zuy;W*rs$#o!DX#gG)`lay`c`-rRCadGSSOUu6!fTwQO|wD_X!RK z`m6#|HMcMs)d)m$nl=jkUD?v*aPq10#J@EYCNNcmeU+)1&EoI)ReM5khB_mo%hR{f zoSIFa-iZG#(o}Q}__t&I{@>~)`er z@WAf!_YeAZ+`8NQkRye?;mRcw*#vG*&J2wUCgKY1OjRBYGC;i_ZFeb8kY(Cb(>-1M ut**O%S0Z0yq+LQO(_LLTuydKRm>DFQ%Z2uc{NM$8hQZU-&t;ucLK6Vo7F{O* literal 0 HcmV?d00001 diff --git a/public/images/items/sceptilite.png b/public/images/items/sceptilite.png new file mode 100644 index 0000000000000000000000000000000000000000..123e79d98939edaf38512a0a72eeeea3d2a4c2ad GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ!=5gVArXg@6C_v{Cy4YkE#wjr z5&5T_yeqn<#Oq`Iah>D;XT{A*n5Dth*K{ zXFO`ydw<;_*^S#RI1US*;A2?1G}3Ctz1gj%DqXsnPpV@UHpmGnus0a^*7U#QNNIN{ xay5Lb>#pCG$k!NYmr%-dS62?~V5Tf)hD$;2<-7}yvjV-t;OXk;vd$@?2>>WdT^RrX literal 0 HcmV?d00001 diff --git a/public/images/items/scizorite.png b/public/images/items/scizorite.png new file mode 100644 index 0000000000000000000000000000000000000000..ce86b80701c451fd9ca6e1ade1b04ef740495b2e GIT binary patch literal 245 zcmVcgLZ=YA3qGdcCIJB?UM8E+ t2+Ai)_T^eai`4R;{S&$uJC5U=%@g7#n8iw}>j3}&002ovPDHLkV1nq^XQ==H literal 0 HcmV?d00001 diff --git a/public/images/items/slowbronite.png b/public/images/items/slowbronite.png new file mode 100644 index 0000000000000000000000000000000000000000..7eac1fb82d5d23dae8cb890d5e9e85da2df08a26 GIT binary patch literal 242 zcmVWd6;h^5nReXC5*edn<3xmc@G%78zf1(XPEi!) zsTgCBr+G0XECNK@(Qwb4)5aS{doZCt;0eV;TJJ_3qAB9eTG=+K+BtQ{4eJ#O7 sa{0TLFXs|mq?F(GPiS7OD2j45GwAoE8Ju;Pi~s-t07*qoM6N<$f3azj(Q;yka+E-kR{pa$!M!*Lf?#i+eO!^$r*-sN00000NkvXXu0mjfM1g7W literal 0 HcmV?d00001 diff --git a/public/images/items/swampertite.png b/public/images/items/swampertite.png new file mode 100644 index 0000000000000000000000000000000000000000..bfcdd99606b2baf98fa15a0e2c04cb71a00a1946 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ{hlt4ArY-_ryBA#8}PVVdY!wx zQ90Rtz0AVo>pilP#?QE98mCU2sJ-LwN}ZhzN1B2|KTX~@Az;b>M*S_u^z@5+ZbQUCT^|zVptU!i;mad)WL+R9?us;o2AL8?#${4t^1Pp}9t#k?}~% w_iRqxrlO7+(}A?oQ~TfQA^K%9$1P`z$5^H>@7b~WFVHItp00i_>zopr0PY%Or~m)} literal 0 HcmV?d00001 diff --git a/public/images/items/tyranitarite.png b/public/images/items/tyranitarite.png new file mode 100644 index 0000000000000000000000000000000000000000..3d94f05c35f83362f1da019fd3952eb5739f804d GIT binary patch literal 246 zcmVH(N z1cG}hfS61{3&`+B)DmU_X?~tcmmMK$u1xw2ShE1)G6gHZ(T!*&+ypMKvMb>t@L1PP0 { this.scene.ui.setMode(Mode.CONFIRM, () => { @@ -1483,8 +1481,7 @@ export class MovePhase extends BattlePhase { if (!this.canMove()) { if (this.move.moveId && this.pokemon.summonData.disabledMove === this.move.moveId) this.scene.queueMessage(`${this.move.getName()} is disabled!`); - this.end(); - return; + return this.end(); } if (this.targets.length === 1 && this.targets[0] === BattlerIndex.ATTACKER) { @@ -1515,8 +1512,7 @@ export class MovePhase extends BattlePhase { this.pokemon.lapseTags(BattlerTagLapseType.MOVE); if (this.cancelled) { this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL }); - this.end(); - return; + return this.end(); } } @@ -1532,8 +1528,7 @@ export class MovePhase extends BattlePhase { if (this.cancelled) { this.pokemon.pushMoveHistory({ move: Moves.NONE, result: MoveResult.FAIL }); - this.end(); - return; + return this.end(); } if (!moveQueue.length || !moveQueue.shift().ignorePP) { @@ -1640,15 +1635,16 @@ export class MoveEffectPhase extends PokemonPhase { const user = this.getUserPokemon(); const targets = this.getTargets(); + if (!user) + return this.end(); + const overridden = new Utils.BooleanHolder(false); // Assume single target for override applyMoveAttrs(OverrideMoveEffectAttr, user, this.getTarget(), this.move.getMove(), overridden, this.move.virtual).then(() => { - if (overridden.value) { - this.end(); - return; - } + if (overridden.value) + return this.end(); user.lapseTags(BattlerTagLapseType.MOVE_EFFECT); @@ -1675,8 +1671,7 @@ export class MoveEffectPhase extends PokemonPhase { this.scene.queueMessage('But it failed!'); moveHistoryEntry.result = MoveResult.FAIL; } - this.end(); - return; + return this.end(); } const applyAttrs: Promise[] = []; @@ -2653,10 +2648,8 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase { const existingMoveIndex = pokemon.getMoveset().findIndex(m => m?.moveId === move.id); - if (existingMoveIndex > -1) { - this.end(); - return; - } + if (existingMoveIndex > -1) + return this.end(); const emptyMoveIndex = pokemon.getMoveset().length < 4 ? pokemon.getMoveset().length @@ -2819,10 +2812,8 @@ export class AttemptCapturePhase extends PokemonPhase { const pokemon = this.getPokemon(); - if (!pokemon?.hp) { - this.end(); - return; - } + if (!pokemon?.hp) + return this.end(); this.scene.pokeballCounts[this.pokeballType]--; diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts index 41e972f3b..dfbb866e9 100644 --- a/src/data/arena-tag.ts +++ b/src/data/arena-tag.ts @@ -126,7 +126,7 @@ export class ArenaTrapTag extends ArenaTag { apply(args: any[]): boolean { const pokemon = args[0] as Pokemon; - if (this.sourceId === pokemon.id || pokemon.scene.getPokemonById(this.sourceId).isPlayer() === pokemon.isPlayer()) + if (this.sourceId === pokemon.id || !!(pokemon.scene.getPokemonById(this.sourceId)?.isPlayer()) === pokemon.isPlayer()) return false; return this.activateTrap(pokemon); diff --git a/src/data/move.ts b/src/data/move.ts index cfd278fa9..e4a75115e 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4106,7 +4106,8 @@ export function initMoves() { .target(MoveTarget.ALL_NEAR_ENEMIES), new AttackMove(Moves.PRECIPICE_BLADES, "Precipice Blades (N)", Type.GROUND, MoveCategory.PHYSICAL, 120, 85, 10, -1, "The user attacks opposing Pokémon by manifesting the power of the land in fearsome blades of stone.", -1, 0, 6) .target(MoveTarget.ALL_NEAR_ENEMIES), - new AttackMove(Moves.DRAGON_ASCENT, "Dragon Ascent (N)", Type.FLYING, MoveCategory.PHYSICAL, 120, 100, 5, -1, "After soaring upward, the user attacks its target by dropping out of the sky at high speeds. But it lowers its own Defense and Sp. Def stats in the process.", 100, 0, 6), + new AttackMove(Moves.DRAGON_ASCENT, "Dragon Ascent", Type.FLYING, MoveCategory.PHYSICAL, 120, 100, 5, -1, "After soaring upward, the user attacks its target by dropping out of the sky at high speeds. But it lowers its own Defense and Sp. Def stats in the process.", 100, 0, 6) + .attr(StatChangeAttr, [ BattleStat.DEF, BattleStat.SPDEF ], -1), new AttackMove(Moves.HYPERSPACE_FURY, "Hyperspace Fury (N)", Type.DARK, MoveCategory.PHYSICAL, 100, -1, 5, -1, "Using its many arms, the user unleashes a barrage of attacks that ignore the effects of moves like Protect and Detect. But the user's Defense stat falls.", 100, 0, 6), /* Unused */ new AttackMove(Moves.BREAKNECK_BLITZ__PHYSICAL, "Breakneck Blitz (N)", Type.NORMAL, MoveCategory.PHYSICAL, -1, -1, 1, -1, "The user builds up its momentum using its Z-Power and crashes into the target at full speed. The power varies, depending on the original move.", -1, 0, 7), diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index de0b4fbff..a1bca039e 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -8,13 +8,15 @@ import { Stat } from "./pokemon-stat"; import { Species } from "./species"; import { Type } from "./type"; import * as Utils from "../utils"; +import { SpeciesFormKey } from "./pokemon-species"; export enum SpeciesWildEvolutionDelay { NONE, SHORT, MEDIUM, LONG, - VERY_LONG + VERY_LONG, + MEGA } export enum EvolutionItem { @@ -29,21 +31,74 @@ export enum EvolutionItem { ICE_STONE, DUSK_STONE, DAWN_STONE, - SHINY_STONE + SHINY_STONE, + + ABOMASITE = 100, + ABSOLITE, + AERODACTYLITE, + AGGRONITE, + ALAKAZITE, + ALTARIANITE, + AMPHAROSITE, + AUDINITE, + BANETTITE, + BEEDRILLITE, + BLASTOISINITE, + BLAZIKENITE, + CAMERUPTITE, + CHARIZARDITE_X, + CHARIZARDITE_Y, + DIANCITE, + GALLADITE, + GARCHOMPITE, + GARDEVOIRITE, + GENGARITE, + GLALITITE, + GYARADOSITE, + HERACRONITE, + HOUNDOOMINITE, + KANGASKHANITE, + LATIASITE, + LATIOSITE, + LOPUNNITE, + LUCARIONITE, + MANECTITE, + MAWILITE, + MEDICHAMITE, + METAGROSSITE, + MEWTWONITE_X, + MEWTWONITE_Y, + PIDGEOTITE, + PINSIRITE, + RAYQUAZITE, + SABLENITE, + SALAMENCITE, + SCEPTILITE, + SCIZORITE, + SHARPEDONITE, + SLOWBRONITE, + STEELIXITE, + SWAMPERTITE, + TYRANITARITE, + VENUSAURITE, } export type EvolutionConditionPredicate = (p: Pokemon) => boolean; export type EvolutionConditionEnforceFunc = (p: Pokemon) => void; -export class SpeciesEvolution { +export class SpeciesFormEvolution { public speciesId: Species; + public preFormKey: string; + public evoFormKey: string; public level: integer; public item: EvolutionItem; public condition: SpeciesEvolutionCondition; public wildDelay: SpeciesWildEvolutionDelay; - constructor(speciesId: Species, level: integer, item: EvolutionItem, condition: SpeciesEvolutionCondition, wildDelay?: SpeciesWildEvolutionDelay) { + constructor(speciesId: Species, preFormKey: string, evoFormKey: string, level: integer, item: EvolutionItem, condition: SpeciesEvolutionCondition, wildDelay?: SpeciesWildEvolutionDelay) { this.speciesId = speciesId; + this.preFormKey = preFormKey; + this.evoFormKey = evoFormKey; this.level = level; this.item = item || EvolutionItem.NONE; this.condition = condition; @@ -51,6 +106,12 @@ export class SpeciesEvolution { } } +export class SpeciesEvolution extends SpeciesFormEvolution { + constructor(speciesId: Species, level: integer, item: EvolutionItem, condition: SpeciesEvolutionCondition, wildDelay?: SpeciesWildEvolutionDelay) { + super(speciesId, null, null, level, item, condition, wildDelay); + } +} + export class SpeciesEvolutionCondition { public predicate: EvolutionConditionPredicate; public enforceFunc: EvolutionConditionEnforceFunc; @@ -998,6 +1059,143 @@ export const pokemonEvolutions: PokemonEvolutions = { ], [Species.SWADLOON]: [ new SpeciesEvolution(Species.LEAVANNY, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.winCount >= 10), SpeciesWildEvolutionDelay.LONG) + ], + [Species.VENUSAUR]: [ + new SpeciesFormEvolution(Species.VENUSAUR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.VENUSAURITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.BLASTOISE]: [ + new SpeciesFormEvolution(Species.BLASTOISE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.BLASTOISINITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.CHARIZARD]: [ + new SpeciesFormEvolution(Species.CHARIZARD, '', SpeciesFormKey.MEGA_X, 1, EvolutionItem.CHARIZARDITE_X, null, SpeciesWildEvolutionDelay.MEGA), + new SpeciesFormEvolution(Species.CHARIZARD, '', SpeciesFormKey.MEGA_Y, 1, EvolutionItem.CHARIZARDITE_Y, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.BEEDRILL]: [ + new SpeciesFormEvolution(Species.BEEDRILL, '', SpeciesFormKey.MEGA, 1, EvolutionItem.BEEDRILLITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.PIDGEOT]: [ + new SpeciesFormEvolution(Species.PIDGEOT, '', SpeciesFormKey.MEGA, 1, EvolutionItem.PIDGEOTITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.ALAKAZAM]: [ + new SpeciesFormEvolution(Species.ALAKAZAM, '', SpeciesFormKey.MEGA, 1, EvolutionItem.ALAKAZITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SLOWBRO]: [ + new SpeciesFormEvolution(Species.SLOWBRO, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SLOWBRONITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.GENGAR]: [ + new SpeciesFormEvolution(Species.GENGAR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.GENGARITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.KANGASKHAN]: [ + new SpeciesFormEvolution(Species.KANGASKHAN, '', SpeciesFormKey.MEGA, 1, EvolutionItem.KANGASKHANITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.PINSIR]: [ + new SpeciesFormEvolution(Species.PINSIR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.PINSIRITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.GYARADOS]: [ + new SpeciesFormEvolution(Species.GYARADOS, '', SpeciesFormKey.MEGA, 1, EvolutionItem.GYARADOSITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.AERODACTYL]: [ + new SpeciesFormEvolution(Species.AERODACTYL, '', SpeciesFormKey.MEGA, 1, EvolutionItem.AERODACTYLITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.MEWTWO]: [ + new SpeciesFormEvolution(Species.MEWTWO, '', SpeciesFormKey.MEGA_X, 1, EvolutionItem.MEWTWONITE_X, null, SpeciesWildEvolutionDelay.MEGA), + new SpeciesFormEvolution(Species.MEWTWO, '', SpeciesFormKey.MEGA_Y, 1, EvolutionItem.MEWTWONITE_Y, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.AMPHAROS]: [ + new SpeciesFormEvolution(Species.AMPHAROS, '', SpeciesFormKey.MEGA, 1, EvolutionItem.AMPHAROSITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.STEELIX]: [ + new SpeciesFormEvolution(Species.STEELIX, '', SpeciesFormKey.MEGA, 1, EvolutionItem.STEELIXITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SCIZOR]: [ + new SpeciesFormEvolution(Species.SCIZOR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SCIZORITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.HERACROSS]: [ + new SpeciesFormEvolution(Species.HERACROSS, '', SpeciesFormKey.MEGA, 1, EvolutionItem.HERACRONITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.HOUNDOOM]: [ + new SpeciesFormEvolution(Species.HOUNDOOM, '', SpeciesFormKey.MEGA, 1, EvolutionItem.HOUNDOOMINITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.TYRANITAR]: [ + new SpeciesFormEvolution(Species.TYRANITAR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.TYRANITARITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SCEPTILE]: [ + new SpeciesFormEvolution(Species.SCEPTILE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SCEPTILITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.BLAZIKEN]: [ + new SpeciesFormEvolution(Species.BLAZIKEN, '', SpeciesFormKey.MEGA, 1, EvolutionItem.BLAZIKENITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SWAMPERT]: [ + new SpeciesFormEvolution(Species.SWAMPERT, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SWAMPERTITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.GARDEVOIR]: [ + new SpeciesFormEvolution(Species.GARDEVOIR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.GARDEVOIRITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SABLEYE]: [ + new SpeciesFormEvolution(Species.SABLEYE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SABLENITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.MAWILE]: [ + new SpeciesFormEvolution(Species.MAWILE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.MAWILITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.AGGRON]: [ + new SpeciesFormEvolution(Species.AGGRON, '', SpeciesFormKey.MEGA, 1, EvolutionItem.AGGRONITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.MEDICHAM]: [ + new SpeciesFormEvolution(Species.MEDICHAM, '', SpeciesFormKey.MEGA, 1, EvolutionItem.MEDICHAMITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.MANECTRIC]: [ + new SpeciesFormEvolution(Species.MANECTRIC, '', SpeciesFormKey.MEGA, 1, EvolutionItem.MANECTITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SHARPEDO]: [ + new SpeciesFormEvolution(Species.SHARPEDO, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SHARPEDONITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.CAMERUPT]: [ + new SpeciesFormEvolution(Species.CAMERUPT, '', SpeciesFormKey.MEGA, 1, EvolutionItem.CAMERUPTITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.ALTARIA]: [ + new SpeciesFormEvolution(Species.ALTARIA, '', SpeciesFormKey.MEGA, 1, EvolutionItem.ALTARIANITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.BANETTE]: [ + new SpeciesFormEvolution(Species.BANETTE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.BANETTITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.ABSOL]: [ + new SpeciesFormEvolution(Species.ABSOL, '', SpeciesFormKey.MEGA, 1, EvolutionItem.ABSOLITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.GLALIE]: [ + new SpeciesFormEvolution(Species.GLALIE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.GLALITITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.SALAMENCE]: [ + new SpeciesFormEvolution(Species.SALAMENCE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.SALAMENCITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.METAGROSS]: [ + new SpeciesFormEvolution(Species.METAGROSS, '', SpeciesFormKey.MEGA, 1, EvolutionItem.METAGROSSITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.LATIAS]: [ + new SpeciesFormEvolution(Species.LATIAS, '', SpeciesFormKey.MEGA, 1, EvolutionItem.LATIASITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.LATIOS]: [ + new SpeciesFormEvolution(Species.LATIOS, '', SpeciesFormKey.MEGA, 1, EvolutionItem.LATIOSITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.RAYQUAZA]: [ + new SpeciesFormEvolution(Species.RAYQUAZA, '', SpeciesFormKey.MEGA, 1, EvolutionItem.RAYQUAZITE, new SpeciesEvolutionCondition((p: Pokemon) => p.moveset.filter(m => m.moveId === Moves.DRAGON_ASCENT).length > 0), SpeciesWildEvolutionDelay.MEGA) + ], + [Species.LOPUNNY]: [ + new SpeciesFormEvolution(Species.LOPUNNY, '', SpeciesFormKey.MEGA, 1, EvolutionItem.LOPUNNITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.GARCHOMP]: [ + new SpeciesFormEvolution(Species.GARCHOMP, '', SpeciesFormKey.MEGA, 1, EvolutionItem.GARCHOMPITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.LUCARIO]: [ + new SpeciesFormEvolution(Species.LUCARIO, '', SpeciesFormKey.MEGA, 1, EvolutionItem.LUCARIONITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.ABOMASNOW]: [ + new SpeciesFormEvolution(Species.ABOMASNOW, '', SpeciesFormKey.MEGA, 1, EvolutionItem.ABOMASITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.GALLADE]: [ + new SpeciesFormEvolution(Species.GALLADE, '', SpeciesFormKey.MEGA, 1, EvolutionItem.GALLADITE, null, SpeciesWildEvolutionDelay.MEGA) + ], + [Species.AUDINO]: [ + new SpeciesFormEvolution(Species.AUDINO, '', SpeciesFormKey.MEGA, 1, EvolutionItem.AUDINITE, null, SpeciesWildEvolutionDelay.MEGA) ] }; @@ -1008,10 +1206,14 @@ interface PokemonPrevolutions { export const pokemonPrevolutions: PokemonPrevolutions = {}; { + const megaFormKeys = [ SpeciesFormKey.MEGA, '', SpeciesFormKey.MEGA_X, '', SpeciesFormKey.MEGA_Y ].map(sfk => sfk as string); const prevolutionKeys = Object.keys(pokemonEvolutions); prevolutionKeys.forEach(pk => { const evolutions = pokemonEvolutions[pk]; - for (let ev of evolutions) + for (let ev of evolutions) { + if (ev.evoFormKey && megaFormKeys.indexOf(ev.evoFormKey) > -1) + continue; pokemonPrevolutions[ev.speciesId] = parseInt(pk) as Species; + } }); } \ No newline at end of file diff --git a/src/data/pokemon-level-moves.ts b/src/data/pokemon-level-moves.ts index 0e94fd719..ccf40718c 100644 --- a/src/data/pokemon-level-moves.ts +++ b/src/data/pokemon-level-moves.ts @@ -6376,6 +6376,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { ], [Species.RAYQUAZA]: [ [ 1, Moves.TWISTER ], + [ 1, Moves.DRAGON_ASCENT ], [ 5, Moves.SCARY_FACE ], [ 15, Moves.CRUNCH ], [ 20, Moves.HYPER_VOICE ], diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index c4faf4e62..f45858b8d 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -4,7 +4,6 @@ import { GrowthRate } from './exp'; import { SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from './pokemon-evolutions'; import { Species } from './species'; import { Type } from './type'; -import * as Utils from '../utils'; import { LevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from './pokemon-level-moves'; export function getPokemonSpecies(species: Species): PokemonSpecies { @@ -107,7 +106,7 @@ export abstract class PokemonSpeciesForm { } isObtainable() { - return (this.generation <= 5 || pokemonPrevolutions.hasOwnProperty(this.speciesId)) && this.getFormSpriteKey(this.formIndex) !== 'mega'; + return (this.generation <= 5 || pokemonPrevolutions.hasOwnProperty(this.speciesId)); } getSpriteAtlasPath(female: boolean, formIndex?: integer, shiny?: boolean): string { @@ -174,9 +173,9 @@ export abstract class PokemonSpeciesForm { if (forms.length) { const formKey = forms[formIndex || 0].formKey; switch (formKey) { - case 'mega': - case 'mega-x': - case 'mega-y': + case SpeciesFormKey.MEGA: + case SpeciesFormKey.MEGA_X: + case SpeciesFormKey.MEGA_Y: case 'white': case 'black': case 'therian': @@ -290,6 +289,19 @@ export default class PokemonSpecies extends PokemonSpeciesForm { }); } + getName(formIndex?: integer): string { + if (formIndex !== undefined && this.forms.length) { + const form = this.forms[formIndex]; + switch (form.formKey) { + case SpeciesFormKey.MEGA: + case SpeciesFormKey.MEGA_X: + case SpeciesFormKey.MEGA_Y: + return `${form.formName} ${this.name}`; + } + } + return this.name; + } + getSpeciesForLevel(level: integer, allowEvolving?: boolean): Species { const prevolutionLevels = this.getPrevolutionLevels(); @@ -383,7 +395,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm { const allEvolvingPokemon = Object.keys(pokemonEvolutions); for (let p of allEvolvingPokemon) { for (let e of pokemonEvolutions[p]) { - if (e.speciesId === this.speciesId) { + if (e.speciesId === this.speciesId && !e.evoFormKey) { const speciesId = parseInt(p) as Species; let level = e.level; prevolutionLevels.push([ speciesId, level ]); @@ -439,6 +451,12 @@ export class PokemonForm extends PokemonSpeciesForm { } } +export enum SpeciesFormKey { + MEGA = "mega", + MEGA_X = "mega-x", + MEGA_Y = "mega-y" +} + export const allSpecies: PokemonSpecies[] = []; export function initSpecies() { @@ -447,20 +465,20 @@ export function initSpecies() { new PokemonSpecies(Species.IVYSAUR, "Ivysaur", 1, false, false, false, "Seed Pokémon", Type.GRASS, Type.POISON, 1, 13, Abilities.OVERGROW, Abilities.NONE, Abilities.CHLOROPHYLL, 405, 60, 62, 63, 80, 80, 60, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.VENUSAUR, "Venusaur", 1, false, false, false, "Seed Pokémon", Type.GRASS, Type.POISON, 2, 100, Abilities.OVERGROW, Abilities.NONE, Abilities.CHLOROPHYLL, 525, 80, 82, 83, 100, 100, 80, 45, 50, 263, GrowthRate.MEDIUM_SLOW, 87.5, true, true, new PokemonForm("Normal", "", Type.GRASS, Type.POISON, 2, 100, Abilities.OVERGROW, Abilities.NONE, Abilities.CHLOROPHYLL, 525, 80, 82, 83, 100, 100, 80, 45, 50, 263, true), - new PokemonForm("Mega", "mega", Type.GRASS, Type.POISON, 2.4, 155.5, Abilities.THICK_FAT, Abilities.NONE, Abilities.NONE, 625, 80, 100, 123, 122, 120, 80, 45, 50, 263, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GRASS, Type.POISON, 2.4, 155.5, Abilities.THICK_FAT, Abilities.NONE, Abilities.NONE, 625, 80, 100, 123, 122, 120, 80, 45, 50, 263, true), ), new PokemonSpecies(Species.CHARMANDER, "Charmander", 1, false, false, false, "Lizard Pokémon", Type.FIRE, null, 0.6, 8.5, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 309, 39, 52, 43, 60, 50, 65, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.CHARMELEON, "Charmeleon", 1, false, false, false, "Flame Pokémon", Type.FIRE, null, 1.1, 19, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 405, 58, 64, 58, 80, 65, 80, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.CHARIZARD, "Charizard", 1, false, false, false, "Flame Pokémon", Type.FIRE, Type.FLYING, 1.7, 90.5, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 534, 78, 84, 78, 109, 85, 100, 45, 50, 267, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.FIRE, Type.FLYING, 1.7, 90.5, Abilities.BLAZE, Abilities.NONE, Abilities.SOLAR_POWER, 534, 78, 84, 78, 109, 85, 100, 45, 50, 267), - new PokemonForm("Mega X", "mega-x", Type.FIRE, Type.DRAGON, 1.7, 110.5, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.NONE, 634, 78, 130, 111, 130, 85, 100, 45, 50, 267), - new PokemonForm("Mega Y", "mega-y", Type.FIRE, Type.FLYING, 1.7, 100.5, Abilities.DROUGHT, Abilities.NONE, Abilities.NONE, 634, 78, 104, 78, 159, 115, 100, 45, 50, 267), + new PokemonForm("Mega X", SpeciesFormKey.MEGA_X, Type.FIRE, Type.DRAGON, 1.7, 110.5, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.NONE, 634, 78, 130, 111, 130, 85, 100, 45, 50, 267), + new PokemonForm("Mega Y", SpeciesFormKey.MEGA_Y, Type.FIRE, Type.FLYING, 1.7, 100.5, Abilities.DROUGHT, Abilities.NONE, Abilities.NONE, 634, 78, 104, 78, 159, 115, 100, 45, 50, 267), ), new PokemonSpecies(Species.SQUIRTLE, "Squirtle", 1, false, false, false, "Tiny Turtle Pokémon", Type.WATER, null, 0.5, 9, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 314, 44, 48, 65, 50, 64, 43, 45, 50, 63, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.WARTORTLE, "Wartortle", 1, false, false, false, "Turtle Pokémon", Type.WATER, null, 1, 22.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 405, 59, 63, 80, 65, 80, 58, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.BLASTOISE, "Blastoise", 1, false, false, false, "Shellfish Pokémon", Type.WATER, null, 1.6, 85.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 530, 79, 83, 100, 85, 105, 78, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.WATER, null, 1.6, 85.5, Abilities.TORRENT, Abilities.NONE, Abilities.RAIN_DISH, 530, 79, 83, 100, 85, 105, 78, 45, 50, 265), - new PokemonForm("Mega", "mega", Type.WATER, null, 1.6, 101.1, Abilities.MEGA_LAUNCHER, Abilities.NONE, Abilities.NONE, 630, 79, 103, 120, 135, 115, 78, 45, 50, 265), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.WATER, null, 1.6, 101.1, Abilities.MEGA_LAUNCHER, Abilities.NONE, Abilities.NONE, 630, 79, 103, 120, 135, 115, 78, 45, 50, 265), ), new PokemonSpecies(Species.CATERPIE, "Caterpie", 1, false, false, false, "Worm Pokémon", Type.BUG, null, 0.3, 2.9, Abilities.SHIELD_DUST, Abilities.NONE, Abilities.RUN_AWAY, 195, 45, 30, 35, 20, 20, 45, 255, 50, 39, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.METAPOD, "Metapod", 1, false, false, false, "Cocoon Pokémon", Type.BUG, null, 0.7, 9.9, Abilities.SHED_SKIN, Abilities.NONE, Abilities.NONE, 205, 50, 20, 55, 25, 25, 30, 120, 50, 72, GrowthRate.MEDIUM_FAST, 50, false), @@ -469,13 +487,13 @@ export function initSpecies() { new PokemonSpecies(Species.KAKUNA, "Kakuna", 1, false, false, false, "Cocoon Pokémon", Type.BUG, Type.POISON, 0.6, 10, Abilities.SHED_SKIN, Abilities.NONE, Abilities.NONE, 205, 45, 25, 50, 25, 25, 35, 120, 70, 72, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.BEEDRILL, "Beedrill", 1, false, false, false, "Poison Bee Pokémon", Type.BUG, Type.POISON, 1, 29.5, Abilities.SWARM, Abilities.NONE, Abilities.SNIPER, 395, 65, 90, 40, 45, 80, 75, 45, 70, 178, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.BUG, Type.POISON, 1, 29.5, Abilities.SWARM, Abilities.NONE, Abilities.SNIPER, 395, 65, 90, 40, 45, 80, 75, 45, 70, 178), - new PokemonForm("Mega", "mega", Type.BUG, Type.POISON, 1.4, 40.5, Abilities.ADAPTABILITY, Abilities.NONE, Abilities.NONE, 495, 65, 150, 40, 15, 80, 145, 45, 70, 178), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.BUG, Type.POISON, 1.4, 40.5, Abilities.ADAPTABILITY, Abilities.NONE, Abilities.NONE, 495, 65, 150, 40, 15, 80, 145, 45, 70, 178), ), new PokemonSpecies(Species.PIDGEY, "Pidgey", 1, false, false, false, "Tiny Bird Pokémon", Type.NORMAL, Type.FLYING, 0.3, 1.8, Abilities.KEEN_EYE, Abilities.TANGLED_FEET, Abilities.BIG_PECKS, 251, 40, 45, 40, 35, 35, 56, 255, 70, 50, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.PIDGEOTTO, "Pidgeotto", 1, false, false, false, "Bird Pokémon", Type.NORMAL, Type.FLYING, 1.1, 30, Abilities.KEEN_EYE, Abilities.TANGLED_FEET, Abilities.BIG_PECKS, 349, 63, 60, 55, 50, 50, 71, 120, 70, 122, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.PIDGEOT, "Pidgeot", 1, false, false, false, "Bird Pokémon", Type.NORMAL, Type.FLYING, 1.5, 39.5, Abilities.KEEN_EYE, Abilities.TANGLED_FEET, Abilities.BIG_PECKS, 479, 83, 80, 75, 70, 70, 101, 45, 70, 216, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.NORMAL, Type.FLYING, 1.5, 39.5, Abilities.KEEN_EYE, Abilities.TANGLED_FEET, Abilities.BIG_PECKS, 479, 83, 80, 75, 70, 70, 101, 45, 70, 216), - new PokemonForm("Mega", "mega", Type.NORMAL, Type.FLYING, 2.2, 50.5, Abilities.NO_GUARD, Abilities.NONE, Abilities.NONE, 579, 83, 80, 80, 135, 80, 121, 45, 70, 216), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.NORMAL, Type.FLYING, 2.2, 50.5, Abilities.NO_GUARD, Abilities.NONE, Abilities.NONE, 579, 83, 80, 80, 135, 80, 121, 45, 70, 216), ), new PokemonSpecies(Species.RATTATA, "Rattata", 1, false, false, false, "Mouse Pokémon", Type.NORMAL, null, 0.3, 3.5, Abilities.RUN_AWAY, Abilities.GUTS, Abilities.HUSTLE, 253, 30, 56, 35, 25, 35, 72, 255, 70, 51, GrowthRate.MEDIUM_FAST, 50, true), new PokemonSpecies(Species.RATICATE, "Raticate", 1, false, false, false, "Mouse Pokémon", Type.NORMAL, null, 0.7, 18.5, Abilities.RUN_AWAY, Abilities.GUTS, Abilities.HUSTLE, 413, 55, 81, 60, 50, 70, 97, 127, 70, 145, GrowthRate.MEDIUM_FAST, 50, true), @@ -525,7 +543,7 @@ export function initSpecies() { new PokemonSpecies(Species.KADABRA, "Kadabra", 1, false, false, false, "Psi Pokémon", Type.PSYCHIC, null, 1.3, 56.5, Abilities.SYNCHRONIZE, Abilities.INNER_FOCUS, Abilities.MAGIC_GUARD, 400, 40, 35, 30, 120, 70, 105, 100, 50, 140, GrowthRate.MEDIUM_SLOW, 75, true), new PokemonSpecies(Species.ALAKAZAM, "Alakazam", 1, false, false, false, "Psi Pokémon", Type.PSYCHIC, null, 1.5, 48, Abilities.SYNCHRONIZE, Abilities.INNER_FOCUS, Abilities.MAGIC_GUARD, 500, 55, 50, 45, 135, 95, 120, 50, 50, 250, GrowthRate.MEDIUM_SLOW, 75, true, true, new PokemonForm("Normal", "", Type.PSYCHIC, null, 1.5, 48, Abilities.SYNCHRONIZE, Abilities.INNER_FOCUS, Abilities.MAGIC_GUARD, 500, 55, 50, 45, 135, 95, 120, 50, 50, 250, true), - new PokemonForm("Mega", "mega", Type.PSYCHIC, null, 1.2, 48, Abilities.TRACE, Abilities.NONE, Abilities.NONE, 600, 55, 50, 65, 175, 105, 150, 50, 50, 250, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.PSYCHIC, null, 1.2, 48, Abilities.TRACE, Abilities.NONE, Abilities.NONE, 600, 55, 50, 65, 175, 105, 150, 50, 50, 250, true), ), new PokemonSpecies(Species.MACHOP, "Machop", 1, false, false, false, "Superpower Pokémon", Type.FIGHTING, null, 0.8, 19.5, Abilities.GUTS, Abilities.NO_GUARD, Abilities.STEADFAST, 305, 70, 80, 50, 35, 35, 35, 180, 50, 61, GrowthRate.MEDIUM_SLOW, 75, false), new PokemonSpecies(Species.MACHOKE, "Machoke", 1, false, false, false, "Superpower Pokémon", Type.FIGHTING, null, 1.5, 70.5, Abilities.GUTS, Abilities.NO_GUARD, Abilities.STEADFAST, 405, 80, 100, 70, 50, 60, 45, 90, 50, 142, GrowthRate.MEDIUM_SLOW, 75, false), @@ -543,7 +561,7 @@ export function initSpecies() { new PokemonSpecies(Species.SLOWPOKE, "Slowpoke", 1, false, false, false, "Dopey Pokémon", Type.WATER, Type.PSYCHIC, 1.2, 36, Abilities.OBLIVIOUS, Abilities.OWN_TEMPO, Abilities.REGENERATOR, 315, 90, 65, 65, 40, 40, 15, 190, 50, 63, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.SLOWBRO, "Slowbro", 1, false, false, false, "Hermit Crab Pokémon", Type.WATER, Type.PSYCHIC, 1.6, 78.5, Abilities.OBLIVIOUS, Abilities.OWN_TEMPO, Abilities.REGENERATOR, 490, 95, 75, 110, 100, 80, 30, 75, 50, 172, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.WATER, Type.PSYCHIC, 1.6, 78.5, Abilities.OBLIVIOUS, Abilities.OWN_TEMPO, Abilities.REGENERATOR, 490, 95, 75, 110, 100, 80, 30, 75, 50, 172), - new PokemonForm("Mega", "mega", Type.WATER, Type.PSYCHIC, 2, 120, Abilities.SHELL_ARMOR, Abilities.NONE, Abilities.NONE, 590, 95, 75, 180, 130, 80, 30, 75, 50, 172), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.WATER, Type.PSYCHIC, 2, 120, Abilities.SHELL_ARMOR, Abilities.NONE, Abilities.NONE, 590, 95, 75, 180, 130, 80, 30, 75, 50, 172), ), new PokemonSpecies(Species.MAGNEMITE, "Magnemite", 1, false, false, false, "Magnet Pokémon", Type.ELECTRIC, Type.STEEL, 0.3, 6, Abilities.MAGNET_PULL, Abilities.STURDY, Abilities.ANALYTIC, 325, 25, 35, 70, 95, 55, 45, 190, 50, 65, GrowthRate.MEDIUM_FAST, null, false), new PokemonSpecies(Species.MAGNETON, "Magneton", 1, false, false, false, "Magnet Pokémon", Type.ELECTRIC, Type.STEEL, 1, 60, Abilities.MAGNET_PULL, Abilities.STURDY, Abilities.ANALYTIC, 465, 50, 60, 95, 120, 70, 70, 60, 50, 163, GrowthRate.MEDIUM_FAST, null, false), @@ -560,7 +578,7 @@ export function initSpecies() { new PokemonSpecies(Species.HAUNTER, "Haunter", 1, false, false, false, "Gas Pokémon", Type.GHOST, Type.POISON, 1.6, 0.1, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 405, 45, 50, 45, 115, 55, 95, 90, 50, 142, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.GENGAR, "Gengar", 1, false, false, false, "Shadow Pokémon", Type.GHOST, Type.POISON, 1.5, 40.5, Abilities.CURSED_BODY, Abilities.NONE, Abilities.NONE, 500, 60, 65, 60, 130, 75, 110, 45, 50, 250, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.GHOST, Type.POISON, 1.5, 40.5, Abilities.CURSED_BODY, Abilities.NONE, Abilities.NONE, 500, 60, 65, 60, 130, 75, 110, 45, 50, 250), - new PokemonForm("Mega", "mega", Type.GHOST, Type.POISON, 1.4, 40.5, Abilities.SHADOW_TAG, Abilities.NONE, Abilities.NONE, 600, 60, 65, 80, 170, 95, 130, 45, 50, 250), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GHOST, Type.POISON, 1.4, 40.5, Abilities.SHADOW_TAG, Abilities.NONE, Abilities.NONE, 600, 60, 65, 80, 170, 95, 130, 45, 50, 250), ), new PokemonSpecies(Species.ONIX, "Onix", 1, false, false, false, "Rock Snake Pokémon", Type.ROCK, Type.GROUND, 8.8, 210, Abilities.ROCK_HEAD, Abilities.STURDY, Abilities.WEAK_ARMOR, 385, 35, 45, 160, 30, 45, 70, 45, 50, 77, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DROWZEE, "Drowzee", 1, false, false, false, "Hypnosis Pokémon", Type.PSYCHIC, null, 1, 32.4, Abilities.INSOMNIA, Abilities.FOREWARN, Abilities.INNER_FOCUS, 328, 60, 48, 45, 43, 90, 42, 190, 70, 66, GrowthRate.MEDIUM_FAST, 50, false), @@ -584,7 +602,7 @@ export function initSpecies() { new PokemonSpecies(Species.TANGELA, "Tangela", 1, false, false, false, "Vine Pokémon", Type.GRASS, null, 1, 35, Abilities.CHLOROPHYLL, Abilities.LEAF_GUARD, Abilities.REGENERATOR, 435, 65, 55, 115, 100, 40, 60, 45, 50, 87, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.KANGASKHAN, "Kangaskhan", 1, false, false, false, "Parent Pokémon", Type.NORMAL, null, 2.2, 80, Abilities.EARLY_BIRD, Abilities.SCRAPPY, Abilities.INNER_FOCUS, 490, 105, 95, 80, 40, 80, 90, 45, 50, 172, GrowthRate.MEDIUM_FAST, 0, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 2.2, 80, Abilities.EARLY_BIRD, Abilities.SCRAPPY, Abilities.INNER_FOCUS, 490, 105, 95, 80, 40, 80, 90, 45, 50, 172), - new PokemonForm("Mega", "mega", Type.NORMAL, null, 2.2, 100, Abilities.PARENTAL_BOND, Abilities.NONE, Abilities.NONE, 590, 105, 125, 100, 60, 100, 100, 45, 50, 172), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.NORMAL, null, 2.2, 100, Abilities.PARENTAL_BOND, Abilities.NONE, Abilities.NONE, 590, 105, 125, 100, 60, 100, 100, 45, 50, 172), ), new PokemonSpecies(Species.HORSEA, "Horsea", 1, false, false, false, "Dragon Pokémon", Type.WATER, null, 0.4, 8, Abilities.SWIFT_SWIM, Abilities.SNIPER, Abilities.DAMP, 295, 30, 40, 70, 70, 25, 60, 225, 50, 59, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.SEADRA, "Seadra", 1, false, false, false, "Dragon Pokémon", Type.WATER, null, 1.2, 25, Abilities.POISON_POINT, Abilities.SNIPER, Abilities.DAMP, 440, 55, 65, 95, 95, 45, 85, 75, 50, 154, GrowthRate.MEDIUM_FAST, 50, false), @@ -599,13 +617,13 @@ export function initSpecies() { new PokemonSpecies(Species.MAGMAR, "Magmar", 1, false, false, false, "Spitfire Pokémon", Type.FIRE, null, 1.3, 44.5, Abilities.FLAME_BODY, Abilities.NONE, Abilities.VITAL_SPIRIT, 495, 65, 95, 57, 100, 85, 93, 45, 50, 173, GrowthRate.MEDIUM_FAST, 75, false), new PokemonSpecies(Species.PINSIR, "Pinsir", 1, false, false, false, "Stag Beetle Pokémon", Type.BUG, null, 1.5, 55, Abilities.HYPER_CUTTER, Abilities.MOLD_BREAKER, Abilities.MOXIE, 500, 65, 125, 100, 55, 70, 85, 45, 50, 175, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.BUG, null, 1.5, 55, Abilities.HYPER_CUTTER, Abilities.MOLD_BREAKER, Abilities.MOXIE, 500, 65, 125, 100, 55, 70, 85, 45, 50, 175), - new PokemonForm("Mega", "mega", Type.BUG, Type.FLYING, 1.7, 59, Abilities.AERILATE, Abilities.NONE, Abilities.NONE, 600, 65, 155, 120, 65, 90, 105, 45, 50, 175), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.BUG, Type.FLYING, 1.7, 59, Abilities.AERILATE, Abilities.NONE, Abilities.NONE, 600, 65, 155, 120, 65, 90, 105, 45, 50, 175), ), new PokemonSpecies(Species.TAUROS, "Tauros", 1, false, false, false, "Wild Bull Pokémon", Type.NORMAL, null, 1.4, 88.4, Abilities.INTIMIDATE, Abilities.ANGER_POINT, Abilities.SHEER_FORCE, 490, 75, 100, 95, 40, 70, 110, 45, 50, 172, GrowthRate.SLOW, 100, false), new PokemonSpecies(Species.MAGIKARP, "Magikarp", 1, false, false, false, "Fish Pokémon", Type.WATER, null, 0.9, 10, Abilities.SWIFT_SWIM, Abilities.NONE, Abilities.RATTLED, 200, 20, 10, 55, 15, 20, 80, 255, 50, 40, GrowthRate.SLOW, 50, true), new PokemonSpecies(Species.GYARADOS, "Gyarados", 1, false, false, false, "Atrocious Pokémon", Type.WATER, Type.FLYING, 6.5, 235, Abilities.INTIMIDATE, Abilities.NONE, Abilities.MOXIE, 540, 95, 125, 79, 60, 100, 81, 45, 50, 189, GrowthRate.SLOW, 50, true, true, new PokemonForm("Normal", "", Type.WATER, Type.FLYING, 6.5, 235, Abilities.INTIMIDATE, Abilities.NONE, Abilities.MOXIE, 540, 95, 125, 79, 60, 100, 81, 45, 50, 189, true), - new PokemonForm("Mega", "mega", Type.WATER, Type.DARK, 6.5, 305, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 640, 95, 155, 109, 70, 130, 81, 45, 50, 189, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.WATER, Type.DARK, 6.5, 305, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 640, 95, 155, 109, 70, 130, 81, 45, 50, 189, true), ), new PokemonSpecies(Species.LAPRAS, "Lapras", 1, false, false, false, "Transport Pokémon", Type.WATER, Type.ICE, 2.5, 220, Abilities.WATER_ABSORB, Abilities.SHELL_ARMOR, Abilities.HYDRATION, 535, 130, 85, 80, 85, 95, 60, 45, 50, 187, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.DITTO, "Ditto", 1, false, false, false, "Transform Pokémon", Type.NORMAL, null, 0.3, 4, Abilities.LIMBER, Abilities.NONE, Abilities.IMPOSTER, 288, 48, 48, 48, 48, 48, 48, 35, 50, 101, GrowthRate.MEDIUM_FAST, null, false), @@ -620,7 +638,7 @@ export function initSpecies() { new PokemonSpecies(Species.KABUTOPS, "Kabutops", 1, false, false, false, "Shellfish Pokémon", Type.ROCK, Type.WATER, 1.3, 40.5, Abilities.SWIFT_SWIM, Abilities.BATTLE_ARMOR, Abilities.WEAK_ARMOR, 495, 60, 115, 105, 65, 70, 80, 45, 50, 173, GrowthRate.MEDIUM_FAST, 87.5, false), new PokemonSpecies(Species.AERODACTYL, "Aerodactyl", 1, false, false, false, "Fossil Pokémon", Type.ROCK, Type.FLYING, 1.8, 59, Abilities.ROCK_HEAD, Abilities.PRESSURE, Abilities.UNNERVE, 515, 80, 105, 65, 60, 75, 130, 45, 50, 180, GrowthRate.SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.ROCK, Type.FLYING, 1.8, 59, Abilities.ROCK_HEAD, Abilities.PRESSURE, Abilities.UNNERVE, 515, 80, 105, 65, 60, 75, 130, 45, 50, 180), - new PokemonForm("Mega", "mega", Type.ROCK, Type.FLYING, 2.1, 79, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.NONE, 615, 80, 135, 85, 70, 95, 150, 45, 50, 180), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.ROCK, Type.FLYING, 2.1, 79, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.NONE, 615, 80, 135, 85, 70, 95, 150, 45, 50, 180), ), new PokemonSpecies(Species.SNORLAX, "Snorlax", 1, false, false, false, "Sleeping Pokémon", Type.NORMAL, null, 2.1, 460, Abilities.IMMUNITY, Abilities.THICK_FAT, Abilities.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, GrowthRate.SLOW, 87.5, false), new PokemonSpecies(Species.ARTICUNO, "Articuno", 1, true, false, false, "Freeze Pokémon", Type.ICE, Type.FLYING, 1.7, 55.4, Abilities.PRESSURE, Abilities.NONE, Abilities.SNOW_CLOAK, 580, 90, 85, 100, 95, 125, 85, 3, 35, 290, GrowthRate.SLOW, null, false), @@ -631,8 +649,8 @@ export function initSpecies() { new PokemonSpecies(Species.DRAGONITE, "Dragonite", 1, false, false, false, "Dragon Pokémon", Type.DRAGON, Type.FLYING, 2.2, 210, Abilities.INNER_FOCUS, Abilities.NONE, Abilities.MULTISCALE, 600, 91, 134, 95, 100, 100, 80, 45, 35, 300, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.MEWTWO, "Mewtwo", 1, false, true, false, "Genetic Pokémon", Type.PSYCHIC, null, 2, 122, Abilities.PRESSURE, Abilities.NONE, Abilities.UNNERVE, 680, 106, 110, 90, 154, 90, 130, 3, 0, 340, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.PSYCHIC, null, 2, 122, Abilities.PRESSURE, Abilities.NONE, Abilities.UNNERVE, 680, 106, 110, 90, 154, 90, 130, 3, 0, 340), - new PokemonForm("Mega X", "mega-x", Type.PSYCHIC, Type.FIGHTING, 2.3, 127, Abilities.STEADFAST, Abilities.NONE, Abilities.NONE, 780, 106, 190, 100, 154, 100, 130, 3, 0, 340), - new PokemonForm("Mega Y", "mega-y", Type.PSYCHIC, null, 1.5, 33, Abilities.INSOMNIA, Abilities.NONE, Abilities.NONE, 780, 106, 150, 70, 194, 120, 140, 3, 0, 340), + new PokemonForm("Mega X", SpeciesFormKey.MEGA_X, Type.PSYCHIC, Type.FIGHTING, 2.3, 127, Abilities.STEADFAST, Abilities.NONE, Abilities.NONE, 780, 106, 190, 100, 154, 100, 130, 3, 0, 340), + new PokemonForm("Mega Y", SpeciesFormKey.MEGA_Y, Type.PSYCHIC, null, 1.5, 33, Abilities.INSOMNIA, Abilities.NONE, Abilities.NONE, 780, 106, 150, 70, 194, 120, 140, 3, 0, 340), ), new PokemonSpecies(Species.MEW, "Mew", 1, false, false, true, "New Species Pokémon", Type.PSYCHIC, null, 0.4, 4, Abilities.SYNCHRONIZE, Abilities.NONE, Abilities.NONE, 600, 100, 100, 100, 100, 100, 100, 45, 100, 300, GrowthRate.MEDIUM_SLOW, null, false), new PokemonSpecies(Species.CHIKORITA, "Chikorita", 2, false, false, false, "Leaf Pokémon", Type.GRASS, null, 0.9, 6.4, Abilities.OVERGROW, Abilities.NONE, Abilities.LEAF_GUARD, 318, 45, 49, 65, 49, 65, 45, 45, 70, 64, GrowthRate.MEDIUM_SLOW, 87.5, false), @@ -666,7 +684,7 @@ export function initSpecies() { new PokemonSpecies(Species.FLAAFFY, "Flaaffy", 2, false, false, false, "Wool Pokémon", Type.ELECTRIC, null, 0.8, 13.3, Abilities.STATIC, Abilities.NONE, Abilities.PLUS, 365, 70, 55, 55, 80, 60, 45, 120, 70, 128, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.AMPHAROS, "Ampharos", 2, false, false, false, "Light Pokémon", Type.ELECTRIC, null, 1.4, 61.5, Abilities.STATIC, Abilities.NONE, Abilities.PLUS, 510, 90, 75, 85, 115, 90, 55, 45, 70, 230, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.ELECTRIC, null, 1.4, 61.5, Abilities.STATIC, Abilities.NONE, Abilities.PLUS, 510, 90, 75, 85, 115, 90, 55, 45, 70, 230), - new PokemonForm("Mega", "mega", Type.ELECTRIC, Type.DRAGON, 1.4, 61.5, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 610, 90, 95, 105, 165, 110, 45, 45, 70, 230), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.ELECTRIC, Type.DRAGON, 1.4, 61.5, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 610, 90, 95, 105, 165, 110, 45, 45, 70, 230), ), new PokemonSpecies(Species.BELLOSSOM, "Bellossom", 2, false, false, false, "Flower Pokémon", Type.GRASS, null, 0.4, 5.8, Abilities.CHLOROPHYLL, Abilities.NONE, Abilities.HEALER, 490, 75, 80, 95, 90, 100, 50, 45, 50, 245, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.MARILL, "Marill", 2, false, false, false, "Aqua Mouse Pokémon", Type.WATER, Type.FAIRY, 0.4, 8.5, Abilities.THICK_FAT, Abilities.HUGE_POWER, Abilities.SAP_SIPPER, 250, 70, 20, 50, 20, 50, 40, 190, 50, 88, GrowthRate.FAST, 50, false), @@ -725,19 +743,19 @@ export function initSpecies() { new PokemonSpecies(Species.GLIGAR, "Gligar", 2, false, false, false, "Fly Scorpion Pokémon", Type.GROUND, Type.FLYING, 1.1, 64.8, Abilities.HYPER_CUTTER, Abilities.SAND_VEIL, Abilities.IMMUNITY, 430, 65, 75, 105, 35, 65, 85, 60, 70, 86, GrowthRate.MEDIUM_SLOW, 50, true), new PokemonSpecies(Species.STEELIX, "Steelix", 2, false, false, false, "Iron Snake Pokémon", Type.STEEL, Type.GROUND, 9.2, 400, Abilities.ROCK_HEAD, Abilities.STURDY, Abilities.SHEER_FORCE, 510, 75, 85, 200, 55, 65, 30, 25, 50, 179, GrowthRate.MEDIUM_FAST, 50, true, true, new PokemonForm("Normal", "", Type.STEEL, Type.GROUND, 9.2, 400, Abilities.ROCK_HEAD, Abilities.STURDY, Abilities.SHEER_FORCE, 510, 75, 85, 200, 55, 65, 30, 25, 50, 179, true), - new PokemonForm("Mega", "mega", Type.STEEL, Type.GROUND, 10.5, 740, Abilities.SAND_FORCE, Abilities.NONE, Abilities.NONE, 610, 75, 125, 230, 55, 95, 30, 25, 50, 179, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.STEEL, Type.GROUND, 10.5, 740, Abilities.SAND_FORCE, Abilities.NONE, Abilities.NONE, 610, 75, 125, 230, 55, 95, 30, 25, 50, 179, true), ), new PokemonSpecies(Species.SNUBBULL, "Snubbull", 2, false, false, false, "Fairy Pokémon", Type.FAIRY, null, 0.6, 7.8, Abilities.INTIMIDATE, Abilities.RUN_AWAY, Abilities.RATTLED, 300, 60, 80, 50, 40, 40, 30, 190, 70, 60, GrowthRate.FAST, 25, false), new PokemonSpecies(Species.GRANBULL, "Granbull", 2, false, false, false, "Fairy Pokémon", Type.FAIRY, null, 1.4, 48.7, Abilities.INTIMIDATE, Abilities.QUICK_FEET, Abilities.RATTLED, 450, 90, 120, 75, 60, 60, 45, 75, 70, 158, GrowthRate.FAST, 25, false), new PokemonSpecies(Species.QWILFISH, "Qwilfish", 2, false, false, false, "Balloon Pokémon", Type.WATER, Type.POISON, 0.5, 3.9, Abilities.POISON_POINT, Abilities.SWIFT_SWIM, Abilities.INTIMIDATE, 440, 65, 95, 85, 55, 55, 85, 45, 50, 88, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.SCIZOR, "Scizor", 2, false, false, false, "Pincer Pokémon", Type.BUG, Type.STEEL, 1.8, 118, Abilities.SWARM, Abilities.TECHNICIAN, Abilities.LIGHT_METAL, 500, 70, 130, 100, 55, 80, 65, 25, 50, 175, GrowthRate.MEDIUM_FAST, 50, true, true, new PokemonForm("Normal", "", Type.BUG, Type.STEEL, 1.8, 118, Abilities.SWARM, Abilities.TECHNICIAN, Abilities.LIGHT_METAL, 500, 70, 130, 100, 55, 80, 65, 25, 50, 175, true), - new PokemonForm("Mega", "mega", Type.BUG, Type.STEEL, 2, 125, Abilities.TECHNICIAN, Abilities.NONE, Abilities.NONE, 600, 70, 150, 140, 65, 100, 75, 25, 50, 175, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.BUG, Type.STEEL, 2, 125, Abilities.TECHNICIAN, Abilities.NONE, Abilities.NONE, 600, 70, 150, 140, 65, 100, 75, 25, 50, 175, true), ), new PokemonSpecies(Species.SHUCKLE, "Shuckle", 2, false, false, false, "Mold Pokémon", Type.BUG, Type.ROCK, 0.6, 20.5, Abilities.STURDY, Abilities.GLUTTONY, Abilities.CONTRARY, 505, 20, 10, 230, 10, 230, 5, 190, 50, 177, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.HERACROSS, "Heracross", 2, false, false, false, "Single Horn Pokémon", Type.BUG, Type.FIGHTING, 1.5, 54, Abilities.SWARM, Abilities.GUTS, Abilities.MOXIE, 500, 80, 125, 75, 40, 95, 85, 45, 50, 175, GrowthRate.SLOW, 50, true, true, new PokemonForm("Normal", "", Type.BUG, Type.FIGHTING, 1.5, 54, Abilities.SWARM, Abilities.GUTS, Abilities.MOXIE, 500, 80, 125, 75, 40, 95, 85, 45, 50, 175, true), - new PokemonForm("Mega", "mega", Type.BUG, Type.FIGHTING, 1.7, 62.5, Abilities.SKILL_LINK, Abilities.NONE, Abilities.NONE, 600, 80, 185, 115, 40, 105, 75, 45, 50, 175, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.BUG, Type.FIGHTING, 1.7, 62.5, Abilities.SKILL_LINK, Abilities.NONE, Abilities.NONE, 600, 80, 185, 115, 40, 105, 75, 45, 50, 175, true), ), new PokemonSpecies(Species.SNEASEL, "Sneasel", 2, false, false, false, "Sharp Claw Pokémon", Type.DARK, Type.ICE, 0.9, 28, Abilities.INNER_FOCUS, Abilities.KEEN_EYE, Abilities.PICKPOCKET, 430, 55, 95, 55, 35, 75, 115, 60, 35, 86, GrowthRate.MEDIUM_SLOW, 50, true), new PokemonSpecies(Species.TEDDIURSA, "Teddiursa", 2, false, false, false, "Little Bear Pokémon", Type.NORMAL, null, 0.6, 8.8, Abilities.PICKUP, Abilities.QUICK_FEET, Abilities.HONEY_GATHER, 330, 60, 80, 50, 50, 50, 40, 120, 70, 66, GrowthRate.MEDIUM_FAST, 50, false), @@ -755,7 +773,7 @@ export function initSpecies() { new PokemonSpecies(Species.HOUNDOUR, "Houndour", 2, false, false, false, "Dark Pokémon", Type.DARK, Type.FIRE, 0.6, 10.8, Abilities.EARLY_BIRD, Abilities.FLASH_FIRE, Abilities.UNNERVE, 330, 45, 60, 30, 80, 50, 65, 120, 35, 66, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.HOUNDOOM, "Houndoom", 2, false, false, false, "Dark Pokémon", Type.DARK, Type.FIRE, 1.4, 35, Abilities.EARLY_BIRD, Abilities.FLASH_FIRE, Abilities.UNNERVE, 500, 75, 90, 50, 110, 80, 95, 45, 35, 175, GrowthRate.SLOW, 50, true, true, new PokemonForm("Normal", "", Type.DARK, Type.FIRE, 1.4, 35, Abilities.EARLY_BIRD, Abilities.FLASH_FIRE, Abilities.UNNERVE, 500, 75, 90, 50, 110, 80, 95, 45, 35, 175, true), - new PokemonForm("Mega", "mega", Type.DARK, Type.FIRE, 1.9, 49.5, Abilities.SOLAR_POWER, Abilities.NONE, Abilities.NONE, 600, 75, 90, 90, 140, 90, 115, 45, 35, 175, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DARK, Type.FIRE, 1.9, 49.5, Abilities.SOLAR_POWER, Abilities.NONE, Abilities.NONE, 600, 75, 90, 90, 140, 90, 115, 45, 35, 175, true), ), new PokemonSpecies(Species.KINGDRA, "Kingdra", 2, false, false, false, "Dragon Pokémon", Type.WATER, Type.DRAGON, 1.8, 152, Abilities.SWIFT_SWIM, Abilities.SNIPER, Abilities.DAMP, 540, 75, 95, 95, 95, 95, 85, 45, 50, 270, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.PHANPY, "Phanpy", 2, false, false, false, "Long Nose Pokémon", Type.GROUND, null, 0.5, 33.5, Abilities.PICKUP, Abilities.NONE, Abilities.SAND_VEIL, 330, 90, 60, 60, 40, 40, 40, 120, 70, 66, GrowthRate.MEDIUM_FAST, 50, false), @@ -777,7 +795,7 @@ export function initSpecies() { new PokemonSpecies(Species.PUPITAR, "Pupitar", 2, false, false, false, "Hard Shell Pokémon", Type.ROCK, Type.GROUND, 1.2, 152, Abilities.SHED_SKIN, Abilities.NONE, Abilities.NONE, 410, 70, 84, 70, 65, 70, 51, 45, 35, 144, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.TYRANITAR, "Tyranitar", 2, false, false, false, "Armor Pokémon", Type.ROCK, Type.DARK, 2, 202, Abilities.SAND_STREAM, Abilities.NONE, Abilities.UNNERVE, 600, 100, 134, 110, 95, 100, 61, 45, 35, 300, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.ROCK, Type.DARK, 2, 202, Abilities.SAND_STREAM, Abilities.NONE, Abilities.UNNERVE, 600, 100, 134, 110, 95, 100, 61, 45, 35, 300), - new PokemonForm("Mega", "mega", Type.ROCK, Type.DARK, 2.5, 255, Abilities.SAND_STREAM, Abilities.NONE, Abilities.NONE, 700, 100, 164, 150, 95, 120, 71, 45, 35, 300), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.ROCK, Type.DARK, 2.5, 255, Abilities.SAND_STREAM, Abilities.NONE, Abilities.NONE, 700, 100, 164, 150, 95, 120, 71, 45, 35, 300), ), new PokemonSpecies(Species.LUGIA, "Lugia", 2, false, true, false, "Diving Pokémon", Type.PSYCHIC, Type.FLYING, 5.2, 216, Abilities.PRESSURE, Abilities.NONE, Abilities.MULTISCALE, 680, 106, 90, 130, 90, 154, 110, 3, 0, 340, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.HO_OH, "Ho-Oh", 2, false, true, false, "Rainbow Pokémon", Type.FIRE, Type.FLYING, 3.8, 199, Abilities.PRESSURE, Abilities.NONE, Abilities.REGENERATOR, 680, 106, 130, 90, 110, 154, 90, 3, 0, 340, GrowthRate.SLOW, null, false), @@ -786,19 +804,19 @@ export function initSpecies() { new PokemonSpecies(Species.GROVYLE, "Grovyle", 3, false, false, false, "Wood Gecko Pokémon", Type.GRASS, null, 0.9, 21.6, Abilities.OVERGROW, Abilities.NONE, Abilities.UNBURDEN, 405, 50, 65, 45, 85, 65, 95, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.SCEPTILE, "Sceptile", 3, false, false, false, "Forest Pokémon", Type.GRASS, null, 1.7, 52.2, Abilities.OVERGROW, Abilities.NONE, Abilities.UNBURDEN, 530, 70, 85, 65, 105, 85, 120, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.GRASS, null, 1.7, 52.2, Abilities.OVERGROW, Abilities.NONE, Abilities.UNBURDEN, 530, 70, 85, 65, 105, 85, 120, 45, 50, 265), - new PokemonForm("Mega", "mega", Type.GRASS, Type.DRAGON, 1.9, 55.2, Abilities.LIGHTNING_ROD, Abilities.NONE, Abilities.NONE, 630, 70, 110, 75, 145, 85, 145, 45, 50, 265), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GRASS, Type.DRAGON, 1.9, 55.2, Abilities.LIGHTNING_ROD, Abilities.NONE, Abilities.NONE, 630, 70, 110, 75, 145, 85, 145, 45, 50, 265), ), new PokemonSpecies(Species.TORCHIC, "Torchic", 3, false, false, false, "Chick Pokémon", Type.FIRE, null, 0.4, 2.5, Abilities.BLAZE, Abilities.NONE, Abilities.SPEED_BOOST, 310, 45, 60, 40, 70, 50, 45, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, true), new PokemonSpecies(Species.COMBUSKEN, "Combusken", 3, false, false, false, "Young Fowl Pokémon", Type.FIRE, Type.FIGHTING, 0.9, 19.5, Abilities.BLAZE, Abilities.NONE, Abilities.SPEED_BOOST, 405, 60, 85, 60, 85, 60, 55, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, true), new PokemonSpecies(Species.BLAZIKEN, "Blaziken", 3, false, false, false, "Blaze Pokémon", Type.FIRE, Type.FIGHTING, 1.9, 52, Abilities.BLAZE, Abilities.NONE, Abilities.SPEED_BOOST, 530, 80, 120, 70, 110, 70, 80, 45, 50, 265, GrowthRate.MEDIUM_SLOW, 87.5, true, true, new PokemonForm("Normal", "", Type.FIRE, Type.FIGHTING, 1.9, 52, Abilities.BLAZE, Abilities.NONE, Abilities.SPEED_BOOST, 530, 80, 120, 70, 110, 70, 80, 45, 50, 265, true), - new PokemonForm("Mega", "mega", Type.FIRE, Type.FIGHTING, 1.9, 52, Abilities.SPEED_BOOST, Abilities.NONE, Abilities.NONE, 630, 80, 160, 80, 130, 80, 100, 45, 50, 265, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.FIRE, Type.FIGHTING, 1.9, 52, Abilities.SPEED_BOOST, Abilities.NONE, Abilities.NONE, 630, 80, 160, 80, 130, 80, 100, 45, 50, 265, true), ), new PokemonSpecies(Species.MUDKIP, "Mudkip", 3, false, false, false, "Mud Fish Pokémon", Type.WATER, null, 0.4, 7.6, Abilities.TORRENT, Abilities.NONE, Abilities.DAMP, 310, 50, 70, 50, 50, 50, 40, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.MARSHTOMP, "Marshtomp", 3, false, false, false, "Mud Fish Pokémon", Type.WATER, Type.GROUND, 0.7, 28, Abilities.TORRENT, Abilities.NONE, Abilities.DAMP, 405, 70, 85, 70, 60, 70, 50, 45, 50, 142, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.SWAMPERT, "Swampert", 3, false, false, false, "Mud Fish Pokémon", Type.WATER, Type.GROUND, 1.5, 81.9, Abilities.TORRENT, Abilities.NONE, Abilities.DAMP, 535, 100, 110, 90, 85, 90, 60, 45, 50, 268, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.WATER, Type.GROUND, 1.5, 81.9, Abilities.TORRENT, Abilities.NONE, Abilities.DAMP, 535, 100, 110, 90, 85, 90, 60, 45, 50, 268), - new PokemonForm("Mega", "mega", Type.WATER, Type.GROUND, 1.9, 102, Abilities.SWIFT_SWIM, Abilities.NONE, Abilities.NONE, 635, 100, 150, 110, 95, 110, 70, 45, 50, 268), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.WATER, Type.GROUND, 1.9, 102, Abilities.SWIFT_SWIM, Abilities.NONE, Abilities.NONE, 635, 100, 150, 110, 95, 110, 70, 45, 50, 268), ), new PokemonSpecies(Species.POOCHYENA, "Poochyena", 3, false, false, false, "Bite Pokémon", Type.DARK, null, 0.5, 13.6, Abilities.RUN_AWAY, Abilities.QUICK_FEET, Abilities.RATTLED, 220, 35, 55, 35, 30, 30, 35, 255, 70, 56, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MIGHTYENA, "Mightyena", 3, false, false, false, "Bite Pokémon", Type.DARK, null, 1, 37, Abilities.INTIMIDATE, Abilities.QUICK_FEET, Abilities.MOXIE, 420, 70, 90, 70, 60, 60, 70, 127, 70, 147, GrowthRate.MEDIUM_FAST, 50, false), @@ -823,7 +841,7 @@ export function initSpecies() { new PokemonSpecies(Species.KIRLIA, "Kirlia", 3, false, false, false, "Emotion Pokémon", Type.PSYCHIC, Type.FAIRY, 0.8, 20.2, Abilities.SYNCHRONIZE, Abilities.TRACE, Abilities.TELEPATHY, 278, 38, 35, 35, 65, 55, 50, 120, 35, 97, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.GARDEVOIR, "Gardevoir", 3, false, false, false, "Embrace Pokémon", Type.PSYCHIC, Type.FAIRY, 1.6, 48.4, Abilities.SYNCHRONIZE, Abilities.TRACE, Abilities.TELEPATHY, 518, 68, 65, 65, 125, 115, 80, 45, 35, 259, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.PSYCHIC, Type.FAIRY, 1.6, 48.4, Abilities.SYNCHRONIZE, Abilities.TRACE, Abilities.TELEPATHY, 518, 68, 65, 65, 125, 115, 80, 45, 35, 259), - new PokemonForm("Mega", "mega", Type.PSYCHIC, Type.FAIRY, 1.6, 48.4, Abilities.PIXILATE, Abilities.NONE, Abilities.NONE, 618, 68, 85, 65, 165, 135, 100, 45, 35, 259), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.PSYCHIC, Type.FAIRY, 1.6, 48.4, Abilities.PIXILATE, Abilities.NONE, Abilities.NONE, 618, 68, 85, 65, 165, 135, 100, 45, 35, 259), ), new PokemonSpecies(Species.SURSKIT, "Surskit", 3, false, false, false, "Pond Skater Pokémon", Type.BUG, Type.WATER, 0.5, 1.7, Abilities.SWIFT_SWIM, Abilities.NONE, Abilities.RAIN_DISH, 269, 40, 30, 32, 50, 52, 65, 200, 70, 54, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MASQUERAIN, "Masquerain", 3, false, false, false, "Eyeball Pokémon", Type.BUG, Type.FLYING, 0.8, 3.6, Abilities.INTIMIDATE, Abilities.NONE, Abilities.UNNERVE, 454, 70, 60, 62, 100, 82, 80, 75, 70, 159, GrowthRate.MEDIUM_FAST, 50, false), @@ -846,27 +864,27 @@ export function initSpecies() { new PokemonSpecies(Species.DELCATTY, "Delcatty", 3, false, false, false, "Prim Pokémon", Type.NORMAL, null, 1.1, 32.6, Abilities.CUTE_CHARM, Abilities.NORMALIZE, Abilities.WONDER_SKIN, 400, 70, 65, 65, 55, 55, 90, 60, 70, 140, GrowthRate.FAST, 25, false), new PokemonSpecies(Species.SABLEYE, "Sableye", 3, false, false, false, "Darkness Pokémon", Type.DARK, Type.GHOST, 0.5, 11, Abilities.KEEN_EYE, Abilities.STALL, Abilities.PRANKSTER, 380, 50, 75, 75, 65, 65, 50, 45, 35, 133, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.DARK, Type.GHOST, 0.5, 11, Abilities.KEEN_EYE, Abilities.STALL, Abilities.PRANKSTER, 380, 50, 75, 75, 65, 65, 50, 45, 35, 133), - new PokemonForm("Mega", "mega", Type.DARK, Type.GHOST, 0.5, 161, Abilities.MAGIC_BOUNCE, Abilities.NONE, Abilities.NONE, 480, 50, 85, 125, 85, 115, 20, 45, 35, 133), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DARK, Type.GHOST, 0.5, 161, Abilities.MAGIC_BOUNCE, Abilities.NONE, Abilities.NONE, 480, 50, 85, 125, 85, 115, 20, 45, 35, 133), ), new PokemonSpecies(Species.MAWILE, "Mawile", 3, false, false, false, "Deceiver Pokémon", Type.STEEL, Type.FAIRY, 0.6, 11.5, Abilities.HYPER_CUTTER, Abilities.INTIMIDATE, Abilities.SHEER_FORCE, 380, 50, 85, 85, 55, 55, 50, 45, 50, 133, GrowthRate.FAST, 50, false, true, new PokemonForm("Normal", "", Type.STEEL, Type.FAIRY, 0.6, 11.5, Abilities.HYPER_CUTTER, Abilities.INTIMIDATE, Abilities.SHEER_FORCE, 380, 50, 85, 85, 55, 55, 50, 45, 50, 133), - new PokemonForm("Mega", "mega", Type.STEEL, Type.FAIRY, 1, 23.5, Abilities.HUGE_POWER, Abilities.NONE, Abilities.NONE, 480, 50, 105, 125, 55, 95, 50, 45, 50, 133), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.STEEL, Type.FAIRY, 1, 23.5, Abilities.HUGE_POWER, Abilities.NONE, Abilities.NONE, 480, 50, 105, 125, 55, 95, 50, 45, 50, 133), ), new PokemonSpecies(Species.ARON, "Aron", 3, false, false, false, "Iron Armor Pokémon", Type.STEEL, Type.ROCK, 0.4, 60, Abilities.STURDY, Abilities.ROCK_HEAD, Abilities.HEAVY_METAL, 330, 50, 70, 100, 40, 40, 30, 180, 35, 66, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.LAIRON, "Lairon", 3, false, false, false, "Iron Armor Pokémon", Type.STEEL, Type.ROCK, 0.9, 120, Abilities.STURDY, Abilities.ROCK_HEAD, Abilities.HEAVY_METAL, 430, 60, 90, 140, 50, 50, 40, 90, 35, 151, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.AGGRON, "Aggron", 3, false, false, false, "Iron Armor Pokémon", Type.STEEL, Type.ROCK, 2.1, 360, Abilities.STURDY, Abilities.ROCK_HEAD, Abilities.HEAVY_METAL, 530, 70, 110, 180, 60, 60, 50, 45, 35, 265, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.STEEL, Type.ROCK, 2.1, 360, Abilities.STURDY, Abilities.ROCK_HEAD, Abilities.HEAVY_METAL, 530, 70, 110, 180, 60, 60, 50, 45, 35, 265), - new PokemonForm("Mega", "mega", Type.STEEL, null, 2.2, 395, Abilities.FILTER, Abilities.NONE, Abilities.NONE, 630, 70, 140, 230, 60, 80, 50, 45, 35, 265), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.STEEL, null, 2.2, 395, Abilities.FILTER, Abilities.NONE, Abilities.NONE, 630, 70, 140, 230, 60, 80, 50, 45, 35, 265), ), new PokemonSpecies(Species.MEDITITE, "Meditite", 3, false, false, false, "Meditate Pokémon", Type.FIGHTING, Type.PSYCHIC, 0.6, 11.2, Abilities.PURE_POWER, Abilities.NONE, Abilities.TELEPATHY, 280, 30, 40, 55, 40, 55, 60, 180, 70, 56, GrowthRate.MEDIUM_FAST, 50, true), new PokemonSpecies(Species.MEDICHAM, "Medicham", 3, false, false, false, "Meditate Pokémon", Type.FIGHTING, Type.PSYCHIC, 1.3, 31.5, Abilities.PURE_POWER, Abilities.NONE, Abilities.TELEPATHY, 410, 60, 60, 75, 60, 75, 80, 90, 70, 144, GrowthRate.MEDIUM_FAST, 50, true, true, new PokemonForm("Normal", "", Type.FIGHTING, Type.PSYCHIC, 1.3, 31.5, Abilities.PURE_POWER, Abilities.NONE, Abilities.TELEPATHY, 410, 60, 60, 75, 60, 75, 80, 90, 70, 144, true), - new PokemonForm("Mega", "mega", Type.FIGHTING, Type.PSYCHIC, 1.3, 31.5, Abilities.PURE_POWER, Abilities.NONE, Abilities.NONE, 510, 60, 100, 85, 80, 85, 100, 90, 70, 144, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.FIGHTING, Type.PSYCHIC, 1.3, 31.5, Abilities.PURE_POWER, Abilities.NONE, Abilities.NONE, 510, 60, 100, 85, 80, 85, 100, 90, 70, 144, true), ), new PokemonSpecies(Species.ELECTRIKE, "Electrike", 3, false, false, false, "Lightning Pokémon", Type.ELECTRIC, null, 0.6, 15.2, Abilities.STATIC, Abilities.LIGHTNING_ROD, Abilities.MINUS, 295, 40, 45, 40, 65, 40, 65, 120, 50, 59, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.MANECTRIC, "Manectric", 3, false, false, false, "Discharge Pokémon", Type.ELECTRIC, null, 1.5, 40.2, Abilities.STATIC, Abilities.LIGHTNING_ROD, Abilities.MINUS, 475, 70, 75, 60, 105, 60, 105, 45, 50, 166, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.ELECTRIC, null, 1.5, 40.2, Abilities.STATIC, Abilities.LIGHTNING_ROD, Abilities.MINUS, 475, 70, 75, 60, 105, 60, 105, 45, 50, 166), - new PokemonForm("Mega", "mega", Type.ELECTRIC, null, 1.8, 44, Abilities.INTIMIDATE, Abilities.NONE, Abilities.NONE, 575, 70, 75, 80, 135, 80, 135, 45, 50, 166), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.ELECTRIC, null, 1.8, 44, Abilities.INTIMIDATE, Abilities.NONE, Abilities.NONE, 575, 70, 75, 80, 135, 80, 135, 45, 50, 166), ), new PokemonSpecies(Species.PLUSLE, "Plusle", 3, false, false, false, "Cheering Pokémon", Type.ELECTRIC, null, 0.4, 4.2, Abilities.PLUS, Abilities.NONE, Abilities.LIGHTNING_ROD, 405, 60, 50, 40, 85, 75, 95, 200, 70, 142, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.MINUN, "Minun", 3, false, false, false, "Cheering Pokémon", Type.ELECTRIC, null, 0.4, 4.2, Abilities.MINUS, Abilities.NONE, Abilities.VOLT_ABSORB, 405, 60, 40, 50, 75, 85, 95, 200, 70, 142, GrowthRate.MEDIUM_FAST, 50, false), @@ -878,14 +896,14 @@ export function initSpecies() { new PokemonSpecies(Species.CARVANHA, "Carvanha", 3, false, false, false, "Savage Pokémon", Type.WATER, Type.DARK, 0.8, 20.8, Abilities.ROUGH_SKIN, Abilities.NONE, Abilities.SPEED_BOOST, 305, 45, 90, 20, 65, 20, 65, 225, 35, 61, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.SHARPEDO, "Sharpedo", 3, false, false, false, "Brutal Pokémon", Type.WATER, Type.DARK, 1.8, 88.8, Abilities.ROUGH_SKIN, Abilities.NONE, Abilities.SPEED_BOOST, 460, 70, 120, 40, 95, 40, 95, 60, 35, 161, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.WATER, Type.DARK, 1.8, 88.8, Abilities.ROUGH_SKIN, Abilities.NONE, Abilities.SPEED_BOOST, 460, 70, 120, 40, 95, 40, 95, 60, 35, 161), - new PokemonForm("Mega", "mega", Type.WATER, Type.DARK, 2.5, 130.3, Abilities.STRONG_JAW, Abilities.NONE, Abilities.NONE, 560, 70, 140, 70, 110, 65, 105, 60, 35, 161), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.WATER, Type.DARK, 2.5, 130.3, Abilities.STRONG_JAW, Abilities.NONE, Abilities.NONE, 560, 70, 140, 70, 110, 65, 105, 60, 35, 161), ), new PokemonSpecies(Species.WAILMER, "Wailmer", 3, false, false, false, "Ball Whale Pokémon", Type.WATER, null, 2, 130, Abilities.WATER_VEIL, Abilities.OBLIVIOUS, Abilities.PRESSURE, 400, 130, 70, 35, 70, 35, 60, 125, 50, 80, GrowthRate.FLUCTUATING, 50, false), new PokemonSpecies(Species.WAILORD, "Wailord", 3, false, false, false, "Float Whale Pokémon", Type.WATER, null, 14.5, 398, Abilities.WATER_VEIL, Abilities.OBLIVIOUS, Abilities.PRESSURE, 500, 170, 90, 45, 90, 45, 60, 60, 50, 175, GrowthRate.FLUCTUATING, 50, false), new PokemonSpecies(Species.NUMEL, "Numel", 3, false, false, false, "Numb Pokémon", Type.FIRE, Type.GROUND, 0.7, 24, Abilities.OBLIVIOUS, Abilities.SIMPLE, Abilities.OWN_TEMPO, 305, 60, 60, 40, 65, 45, 35, 255, 70, 61, GrowthRate.MEDIUM_FAST, 50, true), new PokemonSpecies(Species.CAMERUPT, "Camerupt", 3, false, false, false, "Eruption Pokémon", Type.FIRE, Type.GROUND, 1.9, 220, Abilities.MAGMA_ARMOR, Abilities.SOLID_ROCK, Abilities.ANGER_POINT, 460, 70, 100, 70, 105, 75, 40, 150, 70, 161, GrowthRate.MEDIUM_FAST, 50, true, true, new PokemonForm("Normal", "", Type.FIRE, Type.GROUND, 1.9, 220, Abilities.MAGMA_ARMOR, Abilities.SOLID_ROCK, Abilities.ANGER_POINT, 460, 70, 100, 70, 105, 75, 40, 150, 70, 161, true), - new PokemonForm("Mega", "mega", Type.FIRE, Type.GROUND, 2.5, 320.5, Abilities.SHEER_FORCE, Abilities.NONE, Abilities.NONE, 560, 70, 120, 100, 145, 105, 20, 150, 70, 161, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.FIRE, Type.GROUND, 2.5, 320.5, Abilities.SHEER_FORCE, Abilities.NONE, Abilities.NONE, 560, 70, 120, 100, 145, 105, 20, 150, 70, 161, true), ), new PokemonSpecies(Species.TORKOAL, "Torkoal", 3, false, false, false, "Coal Pokémon", Type.FIRE, null, 0.5, 80.4, Abilities.WHITE_SMOKE, Abilities.DROUGHT, Abilities.SHELL_ARMOR, 470, 70, 85, 140, 85, 70, 20, 90, 50, 165, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.SPOINK, "Spoink", 3, false, false, false, "Bounce Pokémon", Type.PSYCHIC, null, 0.7, 30.6, Abilities.THICK_FAT, Abilities.OWN_TEMPO, Abilities.GLUTTONY, 330, 60, 25, 35, 70, 80, 60, 255, 70, 66, GrowthRate.FAST, 50, false), @@ -899,7 +917,7 @@ export function initSpecies() { new PokemonSpecies(Species.SWABLU, "Swablu", 3, false, false, false, "Cotton Bird Pokémon", Type.NORMAL, Type.FLYING, 0.4, 1.2, Abilities.NATURAL_CURE, Abilities.NONE, Abilities.CLOUD_NINE, 310, 45, 40, 60, 40, 75, 50, 255, 50, 62, GrowthRate.ERRATIC, 50, false), new PokemonSpecies(Species.ALTARIA, "Altaria", 3, false, false, false, "Humming Pokémon", Type.DRAGON, Type.FLYING, 1.1, 20.6, Abilities.NATURAL_CURE, Abilities.NONE, Abilities.CLOUD_NINE, 490, 75, 70, 90, 70, 105, 80, 45, 50, 172, GrowthRate.ERRATIC, 50, false, true, new PokemonForm("Normal", "", Type.DRAGON, Type.FLYING, 1.1, 20.6, Abilities.NATURAL_CURE, Abilities.NONE, Abilities.CLOUD_NINE, 490, 75, 70, 90, 70, 105, 80, 45, 50, 172), - new PokemonForm("Mega", "mega", Type.DRAGON, Type.FAIRY, 1.5, 20.6, Abilities.PIXILATE, Abilities.NONE, Abilities.NONE, 590, 75, 110, 110, 110, 105, 80, 45, 50, 172), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DRAGON, Type.FAIRY, 1.5, 20.6, Abilities.PIXILATE, Abilities.NONE, Abilities.NONE, 590, 75, 110, 110, 110, 105, 80, 45, 50, 172), ), new PokemonSpecies(Species.ZANGOOSE, "Zangoose", 3, false, false, false, "Cat Ferret Pokémon", Type.NORMAL, null, 1.3, 40.3, Abilities.IMMUNITY, Abilities.NONE, Abilities.TOXIC_BOOST, 458, 73, 115, 60, 60, 60, 90, 90, 70, 160, GrowthRate.ERRATIC, 50, false), new PokemonSpecies(Species.SEVIPER, "Seviper", 3, false, false, false, "Fang Snake Pokémon", Type.POISON, null, 2.7, 52.5, Abilities.SHED_SKIN, Abilities.NONE, Abilities.INFILTRATOR, 458, 73, 100, 60, 100, 60, 65, 90, 70, 160, GrowthRate.FLUCTUATING, 50, false), @@ -927,7 +945,7 @@ export function initSpecies() { new PokemonSpecies(Species.SHUPPET, "Shuppet", 3, false, false, false, "Puppet Pokémon", Type.GHOST, null, 0.6, 2.3, Abilities.INSOMNIA, Abilities.FRISK, Abilities.CURSED_BODY, 295, 44, 75, 35, 63, 33, 45, 225, 35, 59, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.BANETTE, "Banette", 3, false, false, false, "Marionette Pokémon", Type.GHOST, null, 1.1, 12.5, Abilities.INSOMNIA, Abilities.FRISK, Abilities.CURSED_BODY, 455, 64, 115, 65, 83, 63, 65, 45, 35, 159, GrowthRate.FAST, 50, false, true, new PokemonForm("Normal", "", Type.GHOST, null, 1.1, 12.5, Abilities.INSOMNIA, Abilities.FRISK, Abilities.CURSED_BODY, 455, 64, 115, 65, 83, 63, 65, 45, 35, 159), - new PokemonForm("Mega", "mega", Type.GHOST, null, 1.2, 13, Abilities.PRANKSTER, Abilities.NONE, Abilities.NONE, 555, 64, 165, 75, 93, 83, 75, 45, 35, 159), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GHOST, null, 1.2, 13, Abilities.PRANKSTER, Abilities.NONE, Abilities.NONE, 555, 64, 165, 75, 93, 83, 75, 45, 35, 159), ), new PokemonSpecies(Species.DUSKULL, "Duskull", 3, false, false, false, "Requiem Pokémon", Type.GHOST, null, 0.8, 15, Abilities.LEVITATE, Abilities.NONE, Abilities.FRISK, 295, 20, 40, 90, 30, 90, 25, 190, 35, 59, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.DUSCLOPS, "Dusclops", 3, false, false, false, "Beckon Pokémon", Type.GHOST, null, 1.6, 30.6, Abilities.PRESSURE, Abilities.NONE, Abilities.FRISK, 455, 40, 70, 130, 60, 130, 25, 90, 35, 159, GrowthRate.FAST, 50, false), @@ -935,13 +953,13 @@ export function initSpecies() { new PokemonSpecies(Species.CHIMECHO, "Chimecho", 3, false, false, false, "Wind Chime Pokémon", Type.PSYCHIC, null, 0.6, 1, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 455, 75, 50, 80, 95, 90, 65, 45, 70, 159, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.ABSOL, "Absol", 3, false, false, false, "Disaster Pokémon", Type.DARK, null, 1.2, 47, Abilities.PRESSURE, Abilities.SUPER_LUCK, Abilities.JUSTIFIED, 465, 65, 130, 60, 75, 60, 75, 30, 35, 163, GrowthRate.MEDIUM_SLOW, 50, false, true, new PokemonForm("Normal", "", Type.DARK, null, 1.2, 47, Abilities.PRESSURE, Abilities.SUPER_LUCK, Abilities.JUSTIFIED, 465, 65, 130, 60, 75, 60, 75, 30, 35, 163), - new PokemonForm("Mega", "mega", Type.DARK, null, 1.2, 49, Abilities.MAGIC_BOUNCE, Abilities.NONE, Abilities.NONE, 565, 65, 150, 60, 115, 60, 115, 30, 35, 163), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DARK, null, 1.2, 49, Abilities.MAGIC_BOUNCE, Abilities.NONE, Abilities.NONE, 565, 65, 150, 60, 115, 60, 115, 30, 35, 163), ), new PokemonSpecies(Species.WYNAUT, "Wynaut", 3, false, false, false, "Bright Pokémon", Type.PSYCHIC, null, 0.6, 14, Abilities.SHADOW_TAG, Abilities.NONE, Abilities.TELEPATHY, 260, 95, 23, 48, 23, 48, 23, 125, 50, 52, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.SNORUNT, "Snorunt", 3, false, false, false, "Snow Hat Pokémon", Type.ICE, null, 0.7, 16.8, Abilities.INNER_FOCUS, Abilities.ICE_BODY, Abilities.MOODY, 300, 50, 50, 50, 50, 50, 50, 190, 50, 60, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.GLALIE, "Glalie", 3, false, false, false, "Face Pokémon", Type.ICE, null, 1.5, 256.5, Abilities.INNER_FOCUS, Abilities.ICE_BODY, Abilities.MOODY, 480, 80, 80, 80, 80, 80, 80, 75, 50, 168, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.ICE, null, 1.5, 256.5, Abilities.INNER_FOCUS, Abilities.ICE_BODY, Abilities.MOODY, 480, 80, 80, 80, 80, 80, 80, 75, 50, 168), - new PokemonForm("Mega", "mega", Type.ICE, null, 2.1, 350.2, Abilities.REFRIGERATE, Abilities.NONE, Abilities.NONE, 580, 80, 120, 80, 120, 80, 100, 75, 50, 168), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.ICE, null, 2.1, 350.2, Abilities.REFRIGERATE, Abilities.NONE, Abilities.NONE, 580, 80, 120, 80, 120, 80, 100, 75, 50, 168), ), new PokemonSpecies(Species.SPHEAL, "Spheal", 3, false, false, false, "Clap Pokémon", Type.ICE, Type.WATER, 0.8, 39.5, Abilities.THICK_FAT, Abilities.ICE_BODY, Abilities.OBLIVIOUS, 290, 70, 40, 50, 55, 50, 25, 255, 50, 58, GrowthRate.MEDIUM_SLOW, 50, false), new PokemonSpecies(Species.SEALEO, "Sealeo", 3, false, false, false, "Ball Roll Pokémon", Type.ICE, Type.WATER, 1.1, 87.6, Abilities.THICK_FAT, Abilities.ICE_BODY, Abilities.OBLIVIOUS, 410, 90, 60, 70, 75, 70, 45, 120, 50, 144, GrowthRate.MEDIUM_SLOW, 50, false), @@ -955,24 +973,24 @@ export function initSpecies() { new PokemonSpecies(Species.SHELGON, "Shelgon", 3, false, false, false, "Endurance Pokémon", Type.DRAGON, null, 1.1, 110.5, Abilities.ROCK_HEAD, Abilities.NONE, Abilities.OVERCOAT, 420, 65, 95, 100, 60, 50, 50, 45, 35, 147, GrowthRate.SLOW, 50, false), new PokemonSpecies(Species.SALAMENCE, "Salamence", 3, false, false, false, "Dragon Pokémon", Type.DRAGON, Type.FLYING, 1.5, 102.6, Abilities.INTIMIDATE, Abilities.NONE, Abilities.MOXIE, 600, 95, 135, 80, 110, 80, 100, 45, 35, 300, GrowthRate.SLOW, 50, false, true, new PokemonForm("Normal", "", Type.DRAGON, Type.FLYING, 1.5, 102.6, Abilities.INTIMIDATE, Abilities.NONE, Abilities.MOXIE, 600, 95, 135, 80, 110, 80, 100, 45, 35, 300), - new PokemonForm("Mega", "mega", Type.DRAGON, Type.FLYING, 1.8, 112.6, Abilities.AERILATE, Abilities.NONE, Abilities.NONE, 700, 95, 145, 130, 120, 90, 120, 45, 35, 300), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DRAGON, Type.FLYING, 1.8, 112.6, Abilities.AERILATE, Abilities.NONE, Abilities.NONE, 700, 95, 145, 130, 120, 90, 120, 45, 35, 300), ), new PokemonSpecies(Species.BELDUM, "Beldum", 3, false, false, false, "Iron Ball Pokémon", Type.STEEL, Type.PSYCHIC, 0.6, 95.2, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.LIGHT_METAL, 300, 40, 55, 80, 35, 60, 30, 3, 35, 60, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.METANG, "Metang", 3, false, false, false, "Iron Claw Pokémon", Type.STEEL, Type.PSYCHIC, 1.2, 202.5, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.LIGHT_METAL, 420, 60, 75, 100, 55, 80, 50, 3, 35, 147, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.METAGROSS, "Metagross", 3, false, false, false, "Iron Leg Pokémon", Type.STEEL, Type.PSYCHIC, 1.6, 550, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.LIGHT_METAL, 600, 80, 135, 130, 95, 90, 70, 3, 35, 300, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.STEEL, Type.PSYCHIC, 1.6, 550, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.LIGHT_METAL, 600, 80, 135, 130, 95, 90, 70, 3, 35, 300), - new PokemonForm("Mega", "mega", Type.STEEL, Type.PSYCHIC, 2.5, 942.9, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.NONE, 700, 80, 145, 150, 105, 110, 110, 3, 35, 300), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.STEEL, Type.PSYCHIC, 2.5, 942.9, Abilities.TOUGH_CLAWS, Abilities.NONE, Abilities.NONE, 700, 80, 145, 150, 105, 110, 110, 3, 35, 300), ), new PokemonSpecies(Species.REGIROCK, "Regirock", 3, true, false, false, "Rock Peak Pokémon", Type.ROCK, null, 1.7, 230, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.STURDY, 580, 80, 100, 200, 50, 100, 50, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.REGICE, "Regice", 3, true, false, false, "Iceberg Pokémon", Type.ICE, null, 1.8, 175, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.ICE_BODY, 580, 80, 50, 100, 100, 200, 50, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.REGISTEEL, "Registeel", 3, true, false, false, "Iron Pokémon", Type.STEEL, null, 1.9, 205, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.LIGHT_METAL, 580, 80, 75, 150, 75, 150, 50, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.LATIAS, "Latias", 3, true, false, false, "Eon Pokémon", Type.DRAGON, Type.PSYCHIC, 1.4, 40, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 600, 80, 80, 90, 110, 130, 110, 3, 90, 300, GrowthRate.SLOW, 0, false, true, new PokemonForm("Normal", "", Type.DRAGON, Type.PSYCHIC, 1.4, 40, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 600, 80, 80, 90, 110, 130, 110, 3, 90, 300), - new PokemonForm("Mega", "mega", Type.DRAGON, Type.PSYCHIC, 1.8, 52, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 700, 80, 100, 120, 140, 150, 110, 3, 90, 300), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DRAGON, Type.PSYCHIC, 1.8, 52, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 700, 80, 100, 120, 140, 150, 110, 3, 90, 300), ), new PokemonSpecies(Species.LATIOS, "Latios", 3, true, false, false, "Eon Pokémon", Type.DRAGON, Type.PSYCHIC, 2, 60, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 600, 80, 90, 80, 130, 110, 110, 3, 90, 300, GrowthRate.SLOW, 100, false, true, new PokemonForm("Normal", "", Type.DRAGON, Type.PSYCHIC, 2, 60, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 600, 80, 90, 80, 130, 110, 110, 3, 90, 300), - new PokemonForm("Mega", "mega", Type.DRAGON, Type.PSYCHIC, 2.3, 70, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 700, 80, 130, 100, 160, 120, 110, 3, 90, 300), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DRAGON, Type.PSYCHIC, 2.3, 70, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 700, 80, 130, 100, 160, 120, 110, 3, 90, 300), ), new PokemonSpecies(Species.KYOGRE, "Kyogre", 3, false, true, false, "Sea Basin Pokémon", Type.WATER, null, 4.5, 352, Abilities.DRIZZLE, Abilities.NONE, Abilities.NONE, 670, 100, 100, 90, 150, 140, 90, 3, 0, 335, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.WATER, null, 4.5, 352, Abilities.DRIZZLE, Abilities.NONE, Abilities.NONE, 670, 100, 100, 90, 150, 140, 90, 3, 0, 335), @@ -984,7 +1002,7 @@ export function initSpecies() { ), new PokemonSpecies(Species.RAYQUAZA, "Rayquaza", 3, false, true, false, "Sky High Pokémon", Type.DRAGON, Type.FLYING, 7, 206.5, Abilities.AIR_LOCK, Abilities.NONE, Abilities.NONE, 680, 105, 150, 90, 150, 90, 95, 45, 0, 340, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.DRAGON, Type.FLYING, 7, 206.5, Abilities.AIR_LOCK, Abilities.NONE, Abilities.NONE, 680, 105, 150, 90, 150, 90, 95, 45, 0, 340), - new PokemonForm("Mega", "mega", Type.DRAGON, Type.FLYING, 10.8, 392, Abilities.DELTA_STREAM, Abilities.NONE, Abilities.NONE, 780, 105, 180, 100, 180, 100, 115, 45, 0, 340), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DRAGON, Type.FLYING, 10.8, 392, Abilities.DELTA_STREAM, Abilities.NONE, Abilities.NONE, 780, 105, 180, 100, 180, 100, 115, 45, 0, 340), ), new PokemonSpecies(Species.JIRACHI, "Jirachi", 3, false, false, true, "Wish Pokémon", Type.STEEL, Type.PSYCHIC, 0.3, 1.1, Abilities.SERENE_GRACE, Abilities.NONE, Abilities.NONE, 600, 100, 100, 100, 100, 100, 100, 3, 100, 300, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.DEOXYS, "Deoxys", 3, false, false, true, "DNA Pokémon", Type.PSYCHIC, null, 1.7, 60.8, Abilities.PRESSURE, Abilities.NONE, Abilities.NONE, 600, 50, 150, 50, 150, 50, 150, 3, 0, 270, GrowthRate.SLOW, null, false, true, @@ -1053,7 +1071,7 @@ export function initSpecies() { new PokemonSpecies(Species.BUNEARY, "Buneary", 4, false, false, false, "Rabbit Pokémon", Type.NORMAL, null, 0.4, 5.5, Abilities.RUN_AWAY, Abilities.KLUTZ, Abilities.LIMBER, 350, 55, 66, 44, 44, 56, 85, 190, 0, 70, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.LOPUNNY, "Lopunny", 4, false, false, false, "Rabbit Pokémon", Type.NORMAL, null, 1.2, 33.3, Abilities.CUTE_CHARM, Abilities.KLUTZ, Abilities.LIMBER, 480, 65, 76, 84, 54, 96, 105, 60, 140, 168, GrowthRate.MEDIUM_FAST, 50, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 1.2, 33.3, Abilities.CUTE_CHARM, Abilities.KLUTZ, Abilities.LIMBER, 480, 65, 76, 84, 54, 96, 105, 60, 140, 168), - new PokemonForm("Mega", "mega", Type.NORMAL, Type.FIGHTING, 1.3, 28.3, Abilities.SCRAPPY, Abilities.NONE, Abilities.NONE, 580, 65, 136, 94, 54, 96, 135, 60, 140, 168), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.NORMAL, Type.FIGHTING, 1.3, 28.3, Abilities.SCRAPPY, Abilities.NONE, Abilities.NONE, 580, 65, 136, 94, 54, 96, 135, 60, 140, 168), ), new PokemonSpecies(Species.MISMAGIUS, "Mismagius", 4, false, false, false, "Magical Pokémon", Type.GHOST, null, 0.9, 4.4, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 495, 60, 60, 60, 105, 105, 105, 45, 35, 173, GrowthRate.FAST, 50, false), new PokemonSpecies(Species.HONCHKROW, "Honchkrow", 4, false, false, false, "Big Boss Pokémon", Type.DARK, Type.FLYING, 0.9, 27.3, Abilities.INSOMNIA, Abilities.SUPER_LUCK, Abilities.MOXIE, 505, 100, 125, 52, 105, 52, 71, 30, 35, 177, GrowthRate.MEDIUM_SLOW, 50, false), @@ -1073,13 +1091,13 @@ export function initSpecies() { new PokemonSpecies(Species.GABITE, "Gabite", 4, false, false, false, "Cave Pokémon", Type.DRAGON, Type.GROUND, 1.4, 56, Abilities.SAND_VEIL, Abilities.NONE, Abilities.ROUGH_SKIN, 410, 68, 90, 65, 50, 55, 82, 45, 50, 144, GrowthRate.SLOW, 50, true), new PokemonSpecies(Species.GARCHOMP, "Garchomp", 4, false, false, false, "Mach Pokémon", Type.DRAGON, Type.GROUND, 1.9, 95, Abilities.SAND_VEIL, Abilities.NONE, Abilities.ROUGH_SKIN, 600, 108, 130, 95, 80, 85, 102, 45, 50, 300, GrowthRate.SLOW, 50, true, true, new PokemonForm("Normal", "", Type.DRAGON, Type.GROUND, 1.9, 95, Abilities.SAND_VEIL, Abilities.NONE, Abilities.ROUGH_SKIN, 600, 108, 130, 95, 80, 85, 102, 45, 50, 300, true), - new PokemonForm("Mega", "mega", Type.DRAGON, Type.GROUND, 1.9, 95, Abilities.SAND_FORCE, Abilities.NONE, Abilities.NONE, 700, 108, 170, 115, 120, 95, 92, 45, 50, 300, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.DRAGON, Type.GROUND, 1.9, 95, Abilities.SAND_FORCE, Abilities.NONE, Abilities.NONE, 700, 108, 170, 115, 120, 95, 92, 45, 50, 300, true), ), new PokemonSpecies(Species.MUNCHLAX, "Munchlax", 4, false, false, false, "Big Eater Pokémon", Type.NORMAL, null, 0.6, 105, Abilities.PICKUP, Abilities.THICK_FAT, Abilities.GLUTTONY, 390, 135, 85, 40, 40, 85, 5, 50, 50, 78, GrowthRate.SLOW, 87.5, false), new PokemonSpecies(Species.RIOLU, "Riolu", 4, false, false, false, "Emanation Pokémon", Type.FIGHTING, null, 0.7, 20.2, Abilities.STEADFAST, Abilities.INNER_FOCUS, Abilities.PRANKSTER, 285, 40, 70, 40, 35, 40, 60, 75, 50, 57, GrowthRate.MEDIUM_SLOW, 87.5, false), new PokemonSpecies(Species.LUCARIO, "Lucario", 4, false, false, false, "Aura Pokémon", Type.FIGHTING, Type.STEEL, 1.2, 54, Abilities.STEADFAST, Abilities.INNER_FOCUS, Abilities.JUSTIFIED, 525, 70, 110, 70, 115, 70, 90, 45, 50, 184, GrowthRate.MEDIUM_SLOW, 87.5, false, true, new PokemonForm("Normal", "", Type.FIGHTING, Type.STEEL, 1.2, 54, Abilities.STEADFAST, Abilities.INNER_FOCUS, Abilities.JUSTIFIED, 525, 70, 110, 70, 115, 70, 90, 45, 50, 184), - new PokemonForm("Mega", "mega", Type.FIGHTING, Type.STEEL, 1.3, 57.5, Abilities.ADAPTABILITY, Abilities.NONE, Abilities.NONE, 625, 70, 145, 88, 140, 70, 112, 45, 50, 184), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.FIGHTING, Type.STEEL, 1.3, 57.5, Abilities.ADAPTABILITY, Abilities.NONE, Abilities.NONE, 625, 70, 145, 88, 140, 70, 112, 45, 50, 184), ), new PokemonSpecies(Species.HIPPOPOTAS, "Hippopotas", 4, false, false, false, "Hippo Pokémon", Type.GROUND, null, 0.8, 49.5, Abilities.SAND_STREAM, Abilities.NONE, Abilities.SAND_FORCE, 330, 68, 72, 78, 38, 42, 32, 140, 50, 66, GrowthRate.SLOW, 50, true), new PokemonSpecies(Species.HIPPOWDON, "Hippowdon", 4, false, false, false, "Heavyweight Pokémon", Type.GROUND, null, 2, 300, Abilities.SAND_STREAM, Abilities.NONE, Abilities.SAND_FORCE, 525, 108, 112, 118, 68, 72, 47, 60, 50, 184, GrowthRate.SLOW, 50, true), @@ -1094,7 +1112,7 @@ export function initSpecies() { new PokemonSpecies(Species.SNOVER, "Snover", 4, false, false, false, "Frost Tree Pokémon", Type.GRASS, Type.ICE, 1, 50.5, Abilities.SNOW_WARNING, Abilities.NONE, Abilities.SOUNDPROOF, 334, 60, 62, 50, 62, 60, 40, 120, 50, 67, GrowthRate.SLOW, 50, true), new PokemonSpecies(Species.ABOMASNOW, "Abomasnow", 4, false, false, false, "Frost Tree Pokémon", Type.GRASS, Type.ICE, 2.2, 135.5, Abilities.SNOW_WARNING, Abilities.NONE, Abilities.SOUNDPROOF, 494, 90, 92, 75, 92, 85, 60, 60, 50, 173, GrowthRate.SLOW, 50, true, true, new PokemonForm("Normal", "", Type.GRASS, Type.ICE, 2.2, 135.5, Abilities.SNOW_WARNING, Abilities.NONE, Abilities.SOUNDPROOF, 494, 90, 92, 75, 92, 85, 60, 60, 50, 173, true), - new PokemonForm("Mega", "mega", Type.GRASS, Type.ICE, 2.7, 185, Abilities.SNOW_WARNING, Abilities.NONE, Abilities.NONE, 594, 90, 132, 105, 132, 105, 30, 60, 50, 173, true), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.GRASS, Type.ICE, 2.7, 185, Abilities.SNOW_WARNING, Abilities.NONE, Abilities.NONE, 594, 90, 132, 105, 132, 105, 30, 60, 50, 173, true), ), new PokemonSpecies(Species.WEAVILE, "Weavile", 4, false, false, false, "Sharp Claw Pokémon", Type.DARK, Type.ICE, 1.1, 34, Abilities.PRESSURE, Abilities.NONE, Abilities.PICKPOCKET, 510, 70, 120, 65, 45, 85, 125, 45, 35, 179, GrowthRate.MEDIUM_SLOW, 50, true), new PokemonSpecies(Species.MAGNEZONE, "Magnezone", 4, false, false, false, "Magnet Area Pokémon", Type.ELECTRIC, Type.STEEL, 1.2, 180, Abilities.MAGNET_PULL, Abilities.STURDY, Abilities.ANALYTIC, 535, 70, 70, 115, 130, 90, 60, 30, 50, 268, GrowthRate.MEDIUM_FAST, null, false), @@ -1112,7 +1130,7 @@ export function initSpecies() { new PokemonSpecies(Species.PORYGON_Z, "Porygon-Z", 4, false, false, false, "Virtual Pokémon", Type.NORMAL, null, 0.9, 34, Abilities.ADAPTABILITY, Abilities.DOWNLOAD, Abilities.ANALYTIC, 535, 85, 80, 70, 135, 75, 90, 30, 50, 268, GrowthRate.MEDIUM_FAST, null, false), new PokemonSpecies(Species.GALLADE, "Gallade", 4, false, false, false, "Blade Pokémon", Type.PSYCHIC, Type.FIGHTING, 1.6, 52, Abilities.STEADFAST, Abilities.SHARPNESS, Abilities.JUSTIFIED, 518, 68, 125, 65, 65, 115, 80, 45, 35, 259, GrowthRate.SLOW, 100, false, true, new PokemonForm("Normal", "", Type.PSYCHIC, Type.FIGHTING, 1.6, 52, Abilities.STEADFAST, Abilities.SHARPNESS, Abilities.JUSTIFIED, 518, 68, 125, 65, 65, 115, 80, 45, 35, 259), - new PokemonForm("Mega", "mega", Type.PSYCHIC, Type.FIGHTING, 1.6, 56.4, Abilities.INNER_FOCUS, Abilities.NONE, Abilities.NONE, 618, 68, 165, 95, 65, 115, 110, 45, 35, 259), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.PSYCHIC, Type.FIGHTING, 1.6, 56.4, Abilities.INNER_FOCUS, Abilities.NONE, Abilities.NONE, 618, 68, 165, 95, 65, 115, 110, 45, 35, 259), ), new PokemonSpecies(Species.PROBOPASS, "Probopass", 4, false, false, false, "Compass Pokémon", Type.ROCK, Type.STEEL, 1.4, 340, Abilities.STURDY, Abilities.MAGNET_PULL, Abilities.SAND_FORCE, 525, 60, 55, 145, 75, 150, 40, 60, 70, 184, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.DUSKNOIR, "Dusknoir", 4, false, false, false, "Gripper Pokémon", Type.GHOST, null, 2.2, 106.6, Abilities.PRESSURE, Abilities.NONE, Abilities.FRISK, 525, 45, 100, 135, 65, 135, 45, 45, 35, 263, GrowthRate.FAST, 50, false), @@ -1210,7 +1228,7 @@ export function initSpecies() { new PokemonSpecies(Species.EXCADRILL, "Excadrill", 5, false, false, false, "Subterrene Pokémon", Type.GROUND, Type.STEEL, 0.7, 40.4, Abilities.SAND_RUSH, Abilities.SAND_FORCE, Abilities.MOLD_BREAKER, 508, 110, 135, 60, 50, 65, 88, 60, 50, 178, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.AUDINO, "Audino", 5, false, false, false, "Hearing Pokémon", Type.NORMAL, null, 1.1, 31, Abilities.HEALER, Abilities.REGENERATOR, Abilities.KLUTZ, 445, 103, 60, 86, 60, 86, 50, 255, 50, 390, GrowthRate.FAST, 50, false, true, new PokemonForm("Normal", "", Type.NORMAL, null, 1.1, 31, Abilities.HEALER, Abilities.REGENERATOR, Abilities.KLUTZ, 445, 103, 60, 86, 60, 86, 50, 255, 50, 390), - new PokemonForm("Mega", "mega", Type.NORMAL, Type.FAIRY, 1.5, 32, Abilities.HEALER, Abilities.NONE, Abilities.NONE, 545, 103, 60, 126, 80, 126, 50, 255, 50, 390), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.NORMAL, Type.FAIRY, 1.5, 32, Abilities.HEALER, Abilities.NONE, Abilities.NONE, 545, 103, 60, 126, 80, 126, 50, 255, 50, 390), ), new PokemonSpecies(Species.TIMBURR, "Timburr", 5, false, false, false, "Muscular Pokémon", Type.FIGHTING, null, 0.6, 12.5, Abilities.GUTS, Abilities.SHEER_FORCE, Abilities.IRON_FIST, 305, 75, 80, 55, 25, 35, 35, 180, 70, 61, GrowthRate.MEDIUM_SLOW, 75, false), new PokemonSpecies(Species.GURDURR, "Gurdurr", 5, false, false, false, "Muscular Pokémon", Type.FIGHTING, null, 1.2, 40, Abilities.GUTS, Abilities.SHEER_FORCE, Abilities.IRON_FIST, 405, 85, 105, 85, 40, 50, 40, 90, 50, 142, GrowthRate.MEDIUM_SLOW, 75, false), @@ -1565,7 +1583,7 @@ export function initSpecies() { ),*/ /*new PokemonSpecies(Species.DIANCIE, "Diancie", 6, false, false, true, "Jewel Pokémon", Type.ROCK, Type.FAIRY, 0.7, 8.8, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.NONE, 600, 50, 100, 150, 100, 150, 50, 3, 50, 300, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.ROCK, Type.FAIRY, 0.7, 8.8, Abilities.CLEAR_BODY, Abilities.NONE, Abilities.NONE, 600, 50, 100, 150, 100, 150, 50, 3, 50, 300), - new PokemonForm("Mega", "mega", Type.ROCK, Type.FAIRY, 1.1, 27.8, Abilities.MAGIC_BOUNCE, Abilities.NONE, Abilities.NONE, 700, 50, 160, 110, 160, 110, 110, 3, 50, 300), + new PokemonForm("Mega", SpeciesFormKey.MEGA, Type.ROCK, Type.FAIRY, 1.1, 27.8, Abilities.MAGIC_BOUNCE, Abilities.NONE, Abilities.NONE, 700, 50, 160, 110, 160, 110, 110, 3, 50, 300), ),*/ /*new PokemonSpecies(Species.HOOPA, "Hoopa", 6, false, false, true, "Mischief Pokémon", Type.PSYCHIC, Type.GHOST, 0.5, 9, Abilities.MAGICIAN, Abilities.NONE, Abilities.NONE, 600, 80, 110, 60, 150, 130, 70, 3, 100, 270, GrowthRate.SLOW, null, false, false, new PokemonForm("Hoopa Confined", "", Type.PSYCHIC, Type.GHOST, 0.5, 9, Abilities.MAGICIAN, Abilities.NONE, Abilities.NONE, 600, 80, 110, 60, 150, 130, 70, 3, 100, 270), diff --git a/src/evolution-phase.ts b/src/evolution-phase.ts index 8ed7e1819..d97c6d217 100644 --- a/src/evolution-phase.ts +++ b/src/evolution-phase.ts @@ -6,6 +6,8 @@ import EvolutionSceneHandler from "./ui/evolution-scene-handler"; import * as Utils from "./utils"; import { Mode } from "./ui/ui"; import { LearnMovePhase } from "./battle-phases"; +import { SpeciesFormKey } from "./data/pokemon-species"; +import { achvs } from "./system/achv"; export class EvolutionPhase extends BattlePhase { private partyMemberIndex: integer; @@ -35,10 +37,8 @@ export class EvolutionPhase extends BattlePhase { this.scene.ui.setModeForceTransition(Mode.EVOLUTION_SCENE).then(() => { - if (!this.evolution) { - this.end(); - return; - } + if (!this.evolution) + return this.end(); this.scene.fadeOutBgm(null, false); @@ -176,6 +176,8 @@ export class EvolutionPhase extends BattlePhase { pokemon.cry(); this.scene.time.delayedCall(1250, () => { this.scene.playSoundWithoutBgm('evolution_fanfare'); + if (this.evolution.evoFormKey && this.evolution.evoFormKey.indexOf(SpeciesFormKey.MEGA) > -1) + this.scene.validateAchv(achvs.MEGA_EVOLVE); this.scene.ui.showText(`Congratulations! Your ${preName}\nevolved into ${pokemon.name}!`, null, () => this.end(), null, true, 3000); this.scene.time.delayedCall(Utils.fixedInt(4250), () => this.scene.playBgm()); }); diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index a107f4958..fc4601372 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -13,6 +13,7 @@ import { BerryType, getBerryEffectDescription, getBerryName } from '../data/berr import { Unlockables } from '../system/unlockables'; import { GameMode } from '../game-mode'; import { StatusEffect, getStatusEffectDescriptor } from '../data/status-effect'; +import { SpeciesFormKey } from '../data/pokemon-species'; type Modifier = Modifiers.Modifier; @@ -403,45 +404,18 @@ export class TmModifierType extends PokemonModifierType { } } -function getEvolutionItemName(evolutionItem: EvolutionItem) { - switch (evolutionItem) { - case EvolutionItem.LINKING_CORD: - return 'Linking Cord'; - case EvolutionItem.SUN_STONE: - return 'Sun Stone'; - case EvolutionItem.MOON_STONE: - return 'Moon Stone'; - case EvolutionItem.LEAF_STONE: - return 'Leaf Stone'; - case EvolutionItem.FIRE_STONE: - return 'Fire Stone'; - case EvolutionItem.WATER_STONE: - return 'Water Stone'; - case EvolutionItem.THUNDER_STONE: - return 'Thunder Stone'; - case EvolutionItem.ICE_STONE: - return 'Ice Stone'; - case EvolutionItem.DUSK_STONE: - return 'Dusk Stone'; - case EvolutionItem.DAWN_STONE: - return 'Dawn Stone'; - case EvolutionItem.SHINY_STONE: - return 'Shiny Stone'; - } -} - export class EvolutionItemModifierType extends PokemonModifierType implements GeneratedPersistentModifierType { public evolutionItem: EvolutionItem; constructor(evolutionItem: EvolutionItem) { - super(getEvolutionItemName(evolutionItem), `Causes certain Pokémon to evolve`, (_type, args) => new Modifiers.EvolutionItemModifier(this, (args[0] as PlayerPokemon).id), + super(Utils.toReadableString(EvolutionItem[evolutionItem]), `Causes certain Pokémon to evolve`, (_type, args) => new Modifiers.EvolutionItemModifier(this, (args[0] as PlayerPokemon).id), (pokemon: PlayerPokemon) => { if (pokemonEvolutions.hasOwnProperty(pokemon.species.speciesId) && pokemonEvolutions[pokemon.species.speciesId].filter(e => e.item === this.evolutionItem && (!e.condition || e.condition.predicate(pokemon))).length) return null; return PartyUiHandler.NoEffectMessage; - }, getEvolutionItemName(evolutionItem).replace(/[ \-]/g, '_').toLowerCase()); + }, EvolutionItem[evolutionItem].toLowerCase()); this.evolutionItem = evolutionItem; } @@ -529,15 +503,15 @@ class TmModifierTypeGenerator extends ModifierTypeGenerator { } class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator { - constructor() { + constructor(mega: boolean) { super((party: Pokemon[], pregenArgs?: any[]) => { if (pregenArgs) return new EvolutionItemModifierType(pregenArgs[0] as EvolutionItem); 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.condition || e.condition.predicate(p))); - }).flat().flatMap(e => e.item); + 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); if (!evolutionItemPool.length) return null; @@ -598,7 +572,10 @@ export const modifierTypes = { RARE_CANDY: () => new PokemonLevelIncrementModifierType('Rare Candy'), RARER_CANDY: () => new AllPokemonLevelIncrementModifierType('Rarer Candy'), - EVOLUTION_ITEM: () => new EvolutionItemModifierTypeGenerator(), + EVOLUTION_ITEM: () => new EvolutionItemModifierTypeGenerator(false), + MEGA_EVOLUTION_ITEM: () => new EvolutionItemModifierTypeGenerator(true), + + MEGA_BRACELET: () => new ModifierType('Mega Bracelet', 'Allows access to mega stones', (type, _args) => new Modifiers.MegaEvolutionAccessModifier(type)), MAP: () => new ModifierType('Map', 'Allows you to choose your destination at a crossroads', (type, _args) => new Modifiers.MapModifier(type)), @@ -828,11 +805,13 @@ const modifierPool = { new WeightedModifierType(modifierTypes.IV_SCANNER, 2), new WeightedModifierType(modifierTypes.EXP_BALANCE, 1), new WeightedModifierType(modifierTypes.COIN_CASE, 1), + new WeightedModifierType(modifierTypes.MEGA_EVOLUTION_ITEM, (party: Pokemon[]) => party[0].scene.getModifiers(Modifiers.MegaEvolutionAccessModifier).length && !party.filter(p => p.getFormKey().indexOf(SpeciesFormKey.MEGA) > -1).length ? 1 : 0), new WeightedModifierType(modifierTypes.REVERSE_DNA_SPLICERS, (party: Pokemon[]) => party[0].scene.gameMode !== GameMode.SPLICED_ENDLESS && party.filter(p => p.fusionSpecies).length ? 3 : 0), ].map(m => { m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.MASTER]: [ new WeightedModifierType(modifierTypes.MASTER_BALL, 3), new WeightedModifierType(modifierTypes.SHINY_CHARM, 2), + new WeightedModifierType(modifierTypes.MEGA_BRACELET, 1), new WeightedModifierType(modifierTypes.DNA_SPLICERS, (party: Pokemon[]) => party[0].scene.gameMode !== GameMode.SPLICED_ENDLESS && party.filter(p => !p.fusionSpecies).length > 1 ? 1 : 0), new WeightedModifierType(modifierTypes.MINI_BLACK_HOLE, (party: Pokemon[]) => party[0].scene.gameData.unlocks[Unlockables.MINI_BLACK_HOLE] ? 1 : 0), ].map(m => { m.setTier(ModifierTier.MASTER); return m; }), diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index d8aa82aba..7a2ee9e25 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -5,7 +5,7 @@ import { getLevelTotalExp } from "../data/exp"; import { PokeballType } from "../data/pokeball"; import Pokemon, { PlayerPokemon } from "../pokemon"; import { Stat } from "../data/pokemon-stat"; -import { addTextObject, getModifierTierTextTint, TextStyle } from "../ui/text"; +import { addTextObject, TextStyle } from "../ui/text"; import { Type } from '../data/type'; import { EvolutionPhase } from '../evolution-phase'; import { pokemonEvolutions } from '../data/pokemon-evolutions'; @@ -13,7 +13,6 @@ import { getPokemonMessage } from '../messages'; import * as Utils from "../utils"; import { TempBattleStat } from '../data/temp-battle-stat'; import { BerryType, getBerryEffectFunc, getBerryPredicate } from '../data/berry'; -import { Species } from '../data/species'; import { StatusEffect, getStatusEffectDescriptor } from '../data/status-effect'; import { MoneyAchv } from '../system/achv'; @@ -342,6 +341,24 @@ export class MapModifier extends PersistentModifier { } } +export class MegaEvolutionAccessModifier extends PersistentModifier { + constructor(type: ModifierType, stackCount?: integer) { + super(type, stackCount); + } + + clone(): MegaEvolutionAccessModifier { + return new MegaEvolutionAccessModifier(this.type, this.stackCount); + } + + apply(args: any[]): boolean { + return true; + } + + getMaxStackCount(): integer { + return 1; + } +} + export abstract class PokemonHeldItemModifier extends PersistentModifier { public pokemonId: integer; @@ -909,6 +926,7 @@ export class EvolutionItemModifier extends ConsumablePokemonModifier { const pokemon = args[0] as PlayerPokemon; const matchingEvolution = pokemonEvolutions[pokemon.species.speciesId].find(e => e.item === (this.type as ModifierTypes.EvolutionItemModifierType).evolutionItem + && (e.evoFormKey === null || (e.preFormKey || '') === pokemon.getFormKey()) && (!e.condition || e.condition.predicate(pokemon))); if (matchingEvolution) { diff --git a/src/pokemon.ts b/src/pokemon.ts index 3dba543c3..1c0242e5c 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -89,7 +89,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { super(scene, x, y); if (!species.isObtainable() && this.isPlayer()) - throw `Cannot create a player Pokemon for species '${species.name}'`; + throw `Cannot create a player Pokemon for species '${species.getName(formIndex)}'`; const hiddenAbilityChance = new Utils.IntegerHolder(256); if (!this.hasTrainer()) @@ -234,10 +234,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { generateName(): void { if (!this.fusionSpecies) { - this.name = this.species.name; + this.name = this.species.getName(this.formIndex); return; } - this.name = getFusedSpeciesName(this.species.name, this.fusionSpecies.name); + this.name = getFusedSpeciesName(this.species.getName(this.formIndex), this.fusionSpecies.getName(this.fusionFormIndex)); this.updateInfo(true); } @@ -288,6 +288,20 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { }); } + getFormKey(): string { + if (!this.species.forms.length || this.species.forms.length <= this.formIndex) + return ''; + return this.species.forms[this.formIndex].formKey; + } + + getFusionFormKey(): string { + if (!this.fusionSpecies) + return null; + if (!this.fusionSpecies.forms.length || this.fusionSpecies.forms.length <= this.fusionFormIndex) + return ''; + return this.fusionSpecies.forms[this.fusionFormIndex].formKey; + } + getSpriteAtlasPath(ignoreOverride?: boolean): string { return this.getSpriteId(ignoreOverride).replace(/\_{2}/g, '/'); } @@ -1690,6 +1704,7 @@ export class PlayerPokemon extends Pokemon { return new Promise(resolve => { this.handleSpecialEvolutions(evolution); this.species = getPokemonSpecies(evolution.speciesId); + this.formIndex = Math.max(this.species.forms.findIndex(f => f.formKey === evolution.evoFormKey), 0); this.generateName(); const abilityCount = this.getSpeciesForm().getAbilityCount(); if (this.abilityIndex >= abilityCount) // Shouldn't happen @@ -1794,7 +1809,7 @@ export class EnemyPokemon extends Pokemon { let prevolution: Species; let speciesId = species.speciesId; while ((prevolution = pokemonPrevolutions[speciesId])) { - const evolution = pokemonEvolutions[prevolution].find(pe => pe.speciesId === speciesId); + const evolution = pokemonEvolutions[prevolution].find(pe => pe.speciesId === speciesId && (!pe.evoFormKey || pe.evoFormKey === this.getFormKey())); if (evolution.condition?.enforceFunc) evolution.condition.enforceFunc(this); speciesId = prevolution; diff --git a/src/system/achv.ts b/src/system/achv.ts index 4eb3c9c95..112823e4d 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -109,12 +109,13 @@ export const achvs = { _10000_DMG: new DamageAchv('One Punch Man', 10000, 'lucky_punch_master', 100).setSecret(true), _250_HEAL: new HealAchv('Novice Healer', 250, 'potion', 10), _1000_HEAL: new HealAchv('Big Healer', 1000, 'super_potion', 25).setSecret(true), - _2500_HEAL: new HealAchv('Cleric', 2500, 'hyper_potion', 500).setSecret(true), + _2500_HEAL: new HealAchv('Cleric', 2500, 'hyper_potion', 50).setSecret(true), _10000_HEAL: new HealAchv('Recovery Master', 10000, 'max_potion', 100).setSecret(true), LV_100: new LevelAchv('But Wait, There\'s More!', 50, 'rare_candy', 25).setSecret(), LV_250: new LevelAchv('Elite', 250, 'rarer_candy', 50).setSecret(true), LV_1000: new LevelAchv('To Go Even Further Beyond', 1000, 'candy_jar', 100).setSecret(true), TRANSFER_MAX_BATTLE_STAT: new Achv('Teamwork', 'Baton pass to another party member with at least one stat maxed out', 'stick', 20), + MEGA_EVOLVE: new Achv('Megamorph', 'Mega evolve a Pokémon', 'mega_bracelet', 50), SPLICE: new Achv('Infinite Fusion', 'Splice two Pokémon together with DNA Splicers', 'dna_splicers', 10), MINI_BLACK_HOLE: new ModifierAchv('A Hole Lot of Items', 'Acquire a Mini Black Hole', 'mini_black_hole', 25, modifier => modifier instanceof TurnHeldItemTransferModifier).setSecret(), CATCH_LEGENDARY: new Achv('Legendary', 'Catch a legendary Pokémon', 'mb', 50).setSecret(), diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index 420fdd8d9..8104472f0 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -131,7 +131,7 @@ export default class BattleInfo extends Phaser.GameObjects.Container { this.splicedIcon.setPositionRelative(this.nameText, nameTextWidth + this.genderText.displayWidth + 1, 1); this.splicedIcon.setVisible(!!pokemon.fusionSpecies); if (this.splicedIcon.visible) { - this.splicedIcon.on('pointerover', () => (this.scene as BattleScene).ui.showTooltip(null, `${pokemon.species.name}/${pokemon.fusionSpecies.name}`)); + this.splicedIcon.on('pointerover', () => (this.scene as BattleScene).ui.showTooltip(null, `${pokemon.species.getName(pokemon.formIndex)}/${pokemon.fusionSpecies.getName(pokemon.fusionFormIndex)}`)); this.splicedIcon.on('pointerout', () => (this.scene as BattleScene).ui.hideTooltip()); } diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 7f5c554bf..8475bba28 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -1,5 +1,5 @@ import BattleScene, { Button } from "../battle-scene"; -import PokemonSpecies, { allSpecies, getPokemonSpecies, speciesStarters as speciesStarterValues } from "../data/pokemon-species"; +import PokemonSpecies, { SpeciesFormKey, allSpecies, getPokemonSpecies, speciesStarters as speciesStarterValues } from "../data/pokemon-species"; import { Species } from "../data/species"; import { TextStyle, addTextObject, getTextColor } from "./text"; import { Mode } from "./ui"; @@ -742,7 +742,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.canCycleShiny = !!(dexEntry.caughtAttr & DexAttr.NON_SHINY && dexEntry.caughtAttr & DexAttr.SHINY); this.canCycleGender = !!(dexEntry.caughtAttr & DexAttr.MALE && dexEntry.caughtAttr & DexAttr.FEMALE); this.canCycleAbility = [ dexEntry.caughtAttr & DexAttr.ABILITY_1, dexEntry.caughtAttr & DexAttr.ABILITY_2, dexEntry.caughtAttr & DexAttr.ABILITY_HIDDEN ].filter(a => a).length > 1; - this.canCycleForm = species.forms.map((_, f) => dexEntry.caughtAttr & this.scene.gameData.getFormAttr(f)).filter(a => a).length > 1; + this.canCycleForm = species.forms.filter(f => !f.formKey || f.formKey.indexOf(SpeciesFormKey.MEGA) === -1) + .map((_, f) => dexEntry.caughtAttr & this.scene.gameData.getFormAttr(f)).filter(a => a).length > 1; } if (dexEntry.caughtAttr && species.malePercent !== null) {