From 707e3556d0577725332e76670cbf9b552978d931 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 23 Apr 2023 12:35:16 -0400 Subject: [PATCH] Add rarer candy and candy jar items --- public/images/items.json | 2355 ++++++++++++++------------ public/images/items.png | Bin 18917 -> 19900 bytes public/images/items/candy_jar.png | Bin 0 -> 511 bytes public/images/items/focus_band.png | Bin 0 -> 366 bytes public/images/items/rarer_candy.png | Bin 0 -> 538 bytes public/images/items/reveal_glass.png | Bin 0 -> 369 bytes public/images/items/scanner.png | Bin 0 -> 285 bytes src/data/pokeball.ts | 2 +- src/modifier/modifier-type.ts | 94 +- src/modifier/modifier.ts | 29 +- 10 files changed, 1312 insertions(+), 1168 deletions(-) create mode 100644 public/images/items/candy_jar.png create mode 100644 public/images/items/focus_band.png create mode 100644 public/images/items/rarer_candy.png create mode 100644 public/images/items/reveal_glass.png create mode 100644 public/images/items/scanner.png diff --git a/public/images/items.json b/public/images/items.json index 75212d733..b5f778fdc 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,8 +4,8 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 243, - "h": 243 + "w": 248, + "h": 248 }, "scale": 1, "frames": [ @@ -72,6 +72,27 @@ "h": 31 } }, + { + "filename": "focus_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 27, + "y": 0, + "w": 24, + "h": 24 + } + }, { "filename": "golden_exp_charm", "rotated": false, @@ -107,27 +128,6 @@ "w": 24, "h": 24 }, - "frame": { - "x": 27, - "y": 0, - "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": 51, "y": 0, @@ -136,7 +136,7 @@ } }, { - "filename": "sun_stone", + "filename": "scanner", "rotated": false, "trimmed": true, "sourceSize": { @@ -156,6 +156,48 @@ "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": 99, + "y": 0, + "w": 24, + "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": 123, + "y": 0, + "w": 24, + "h": 24 + } + }, { "filename": "big_root", "rotated": false, @@ -171,7 +213,7 @@ "h": 24 }, "frame": { - "x": 99, + "x": 147, "y": 0, "w": 23, "h": 24 @@ -192,7 +234,7 @@ "h": 23 }, "frame": { - "x": 122, + "x": 170, "y": 0, "w": 24, "h": 23 @@ -213,7 +255,7 @@ "h": 23 }, "frame": { - "x": 146, + "x": 194, "y": 0, "w": 24, "h": 23 @@ -233,52 +275,10 @@ "w": 24, "h": 23 }, - "frame": { - "x": 170, - "y": 0, - "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": 194, - "y": 0, - "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": 218, "y": 0, - "w": 23, + "w": 24, "h": 23 } }, @@ -367,7 +367,7 @@ } }, { - "filename": "max_revive", + "filename": "reveal_glass", "rotated": false, "trimmed": true, "sourceSize": { @@ -375,18 +375,39 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 4, "y": 4, - "w": 22, + "w": 23, "h": 24 }, "frame": { "x": 0, "y": 208, - "w": 22, + "w": 23, "h": 24 } }, + { + "filename": "silver_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 11, + "w": 24, + "h": 15 + }, + "frame": { + "x": 0, + "y": 232, + "w": 24, + "h": 15 + } + }, { "filename": "calcium", "rotated": false, @@ -450,6 +471,48 @@ "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": 40, + "y": 24, + "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": 64, + "y": 24, + "w": 23, + "h": 23 + } + }, { "filename": "exp_balance", "rotated": false, @@ -465,7 +528,7 @@ "h": 22 }, "frame": { - "x": 40, + "x": 87, "y": 24, "w": 24, "h": 22 @@ -486,7 +549,7 @@ "h": 22 }, "frame": { - "x": 64, + "x": 111, "y": 24, "w": 24, "h": 22 @@ -507,7 +570,7 @@ "h": 22 }, "frame": { - "x": 88, + "x": 135, "y": 24, "w": 23, "h": 22 @@ -528,12 +591,33 @@ "h": 23 }, "frame": { - "x": 111, + "x": 158, "y": 24, "w": 22, "h": 23 } }, + { + "filename": "max_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 24 + }, + "frame": { + "x": 180, + "y": 23, + "w": 22, + "h": 24 + } + }, { "filename": "rare_candy", "rotated": false, @@ -549,14 +633,14 @@ "h": 23 }, "frame": { - "x": 133, + "x": 202, "y": 23, "w": 23, "h": 23 } }, { - "filename": "fire_stone", + "filename": "rarer_candy", "rotated": false, "trimmed": true, "sourceSize": { @@ -564,81 +648,18 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 4, "y": 5, - "w": 22, + "w": 23, "h": 23 }, "frame": { - "x": 156, + "x": 225, "y": 23, - "w": 22, + "w": 23, "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": 178, - "y": 23, - "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": 200, - "y": 23, - "w": 22, - "h": 23 - } - }, - { - "filename": "oval_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 222, - "y": 23, - "w": 21, - "h": 24 - } - }, { "filename": "iron", "rotated": false, @@ -661,7 +682,7 @@ } }, { - "filename": "reaper_cloth", + "filename": "fire_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -676,32 +697,11 @@ }, "frame": { "x": 49, - "y": 46, + "y": 47, "w": 22, "h": 23 } }, - { - "filename": "charcoal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 71, - "y": 46, - "w": 22, - "h": 22 - } - }, { "filename": "max_elixir", "rotated": false, @@ -716,153 +716,6 @@ "w": 18, "h": 24 }, - "frame": { - "x": 93, - "y": 46, - "w": 18, - "h": 24 - } - }, - { - "filename": "dire_hit", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 111, - "y": 47, - "w": 22, - "h": 22 - } - }, - { - "filename": "dragon_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 133, - "y": 46, - "w": 21, - "h": 23 - } - }, - { - "filename": "electirizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 154, - "y": 46, - "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": 176, - "y": 46, - "w": 22, - "h": 22 - } - }, - { - "filename": "sacred_ash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 198, - "y": 46, - "w": 24, - "h": 20 - } - }, - { - "filename": "shiny_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 222, - "y": 47, - "w": 21, - "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": 33, "y": 74, @@ -871,49 +724,7 @@ } }, { - "filename": "leaf_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 51, - "y": 69, - "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": 72, - "y": 68, - "w": 21, - "h": 23 - } - }, - { - "filename": "dawn_stone", + "filename": "oval_charm", "rotated": false, "trimmed": true, "sourceSize": { @@ -922,15 +733,246 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, - "w": 20, - "h": 21 + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 51, + "y": 70, + "w": 21, + "h": 24 + } + }, + { + "filename": "dragon_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 71, + "y": 47, + "w": 21, + "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": 92, + "y": 46, + "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": 114, + "y": 46, + "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": 136, + "y": 46, + "w": 22, + "h": 23 + } + }, + { + "filename": "charcoal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 158, + "y": 47, + "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": 180, + "y": 47, + "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": 202, + "y": 46, + "w": 22, + "h": 22 + } + }, + { + "filename": "sacred_ash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 224, + "y": 46, + "w": 24, + "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": 224, + "y": 66, + "w": 24, + "h": 20 + } + }, + { + "filename": "shiny_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 72, + "y": 70, + "w": 21, + "h": 24 + } + }, + { + "filename": "guard_spec", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 }, "frame": { "x": 93, - "y": 70, - "w": 20, - "h": 21 + "y": 69, + "w": 22, + "h": 22 } }, { @@ -948,7 +990,7 @@ "h": 22 }, "frame": { - "x": 113, + "x": 115, "y": 69, "w": 22, "h": 22 @@ -969,7 +1011,7 @@ "h": 22 }, "frame": { - "x": 135, + "x": 137, "y": 69, "w": 22, "h": 22 @@ -990,14 +1032,14 @@ "h": 22 }, "frame": { - "x": 157, - "y": 68, + "x": 159, + "y": 69, "w": 22, "h": 22 } }, { - "filename": "metal_coat", + "filename": "leaf_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -1005,60 +1047,39 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, + "x": 5, "y": 5, - "w": 19, + "w": 21, + "h": 23 + }, + "frame": { + "x": 181, + "y": 69, + "w": 21, + "h": 23 + } + }, + { + "filename": "protector", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, "h": 22 }, "frame": { - "x": 179, + "x": 202, "y": 68, - "w": 19, + "w": 22, "h": 22 } }, - { - "filename": "soft_sand", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 198, - "y": 66, - "w": 24, - "h": 20 - } - }, - { - "filename": "dusk_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 222, - "y": 71, - "w": 21, - "h": 21 - } - }, { "filename": "choice_specs", "rotated": false, @@ -1074,14 +1095,14 @@ "h": 18 }, "frame": { - "x": 198, + "x": 224, "y": 86, "w": 24, "h": 18 } }, { - "filename": "poison_barb", + "filename": "deep_sea_scale", "rotated": false, "trimmed": true, "sourceSize": { @@ -1091,14 +1112,35 @@ "spriteSourceSize": { "x": 5, "y": 6, - "w": 21, - "h": 21 + "w": 22, + "h": 20 }, "frame": { - "x": 222, - "y": 92, - "w": 21, - "h": 21 + "x": 202, + "y": 90, + "w": 22, + "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": 224, + "y": 104, + "w": 24, + "h": 18 } }, { @@ -1123,7 +1165,7 @@ } }, { - "filename": "protector", + "filename": "sharp_beak", "rotated": false, "trimmed": true, "sourceSize": { @@ -1133,18 +1175,18 @@ "spriteSourceSize": { "x": 5, "y": 5, - "w": 22, - "h": 22 + "w": 21, + "h": 23 }, "frame": { "x": 18, "y": 119, - "w": 22, - "h": 22 + "w": 21, + "h": 23 } }, { - "filename": "thunder_stone", + "filename": "mystic_water", "rotated": false, "trimmed": true, "sourceSize": { @@ -1152,20 +1194,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, + "x": 6, "y": 5, - "w": 22, - "h": 22 + "w": 20, + "h": 23 }, "frame": { "x": 18, - "y": 141, - "w": 22, - "h": 22 + "y": 142, + "w": 20, + "h": 23 } }, { - "filename": "deep_sea_tooth", + "filename": "dubious_disc", "rotated": false, "trimmed": true, "sourceSize": { @@ -1174,19 +1216,19 @@ }, "spriteSourceSize": { "x": 5, - "y": 6, + "y": 7, "w": 22, - "h": 21 + "h": 19 }, "frame": { "x": 18, - "y": 163, + "y": 165, "w": 22, - "h": 21 + "h": 19 } }, { - "filename": "max_potion", + "filename": "max_ether", "rotated": false, "trimmed": true, "sourceSize": { @@ -1207,7 +1249,28 @@ } }, { - "filename": "mystic_water", + "filename": "max_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 23, + "y": 208, + "w": 18, + "h": 24 + } + }, + { + "filename": "dawn_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -1216,40 +1279,19 @@ }, "spriteSourceSize": { "x": 6, - "y": 5, + "y": 6, "w": 20, - "h": 23 - }, - "frame": { - "x": 22, - "y": 208, - "w": 20, - "h": 23 - } - }, - { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 + "h": 21 }, "frame": { "x": 41, "y": 98, - "w": 15, - "h": 23 + "w": 20, + "h": 21 } }, { - "filename": "pp_max", + "filename": "thunder_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -1257,58 +1299,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 + "x": 5, + "y": 5, + "w": 22, + "h": 22 }, "frame": { - "x": 40, - "y": 121, - "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": 40, - "y": 145, - "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": 56, - "y": 92, - "w": 16, - "h": 24 + "x": 39, + "y": 119, + "w": 22, + "h": 22 } }, { @@ -1326,8 +1326,8 @@ "h": 22 }, "frame": { - "x": 72, - "y": 91, + "x": 61, + "y": 94, "w": 22, "h": 22 } @@ -1347,12 +1347,33 @@ "h": 22 }, "frame": { - "x": 94, - "y": 91, + "x": 61, + "y": 116, "w": 22, "h": 22 } }, + { + "filename": "pp_max", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 83, + "y": 94, + "w": 16, + "h": 24 + } + }, { "filename": "tm_dragon", "rotated": false, @@ -1368,33 +1389,12 @@ "h": 22 }, "frame": { - "x": 116, + "x": 99, "y": 91, "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": 138, - "y": 91, - "w": 20, - "h": 22 - } - }, { "filename": "tm_electric", "rotated": false, @@ -1410,54 +1410,12 @@ "h": 22 }, "frame": { - "x": 158, - "y": 90, + "x": 121, + "y": 91, "w": 22, "h": 22 } }, - { - "filename": "razor_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 18, - "h": 20 - }, - "frame": { - "x": 180, - "y": 90, - "w": 18, - "h": 20 - } - }, - { - "filename": "zinc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 56, - "y": 116, - "w": 16, - "h": 24 - } - }, { "filename": "tm_fairy", "rotated": false, @@ -1473,12 +1431,117 @@ "h": 22 }, "frame": { - "x": 72, - "y": 113, + "x": 143, + "y": 91, "w": 22, "h": 22 } }, + { + "filename": "pp_up", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 165, + "y": 91, + "w": 16, + "h": 24 + } + }, + { + "filename": "dusk_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 181, + "y": 92, + "w": 21, + "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": 202, + "y": 110, + "w": 22, + "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": 181, + "y": 113, + "w": 21, + "h": 21 + } + }, + { + "filename": "binding_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 23, + "h": 20 + }, + "frame": { + "x": 83, + "y": 118, + "w": 23, + "h": 20 + } + }, { "filename": "tm_fighting", "rotated": false, @@ -1494,7 +1557,7 @@ "h": 22 }, "frame": { - "x": 94, + "x": 106, "y": 113, "w": 22, "h": 22 @@ -1515,12 +1578,75 @@ "h": 22 }, "frame": { - "x": 116, + "x": 128, "y": 113, "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": 150, + "y": 113, + "w": 15, + "h": 23 + } + }, + { + "filename": "protein", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 165, + "y": 115, + "w": 16, + "h": 24 + } + }, + { + "filename": "black_glasses", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 224, + "y": 122, + "w": 23, + "h": 17 + } + }, { "filename": "tm_flying", "rotated": false, @@ -1536,54 +1662,12 @@ "h": 22 }, "frame": { - "x": 138, - "y": 113, + "x": 202, + "y": 131, "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": 160, - "y": 112, - "w": 22, - "h": 22 - } - }, - { - "filename": "dragon_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 198, - "y": 104, - "w": 24, - "h": 18 - } - }, { "filename": "shiny_stone", "rotated": false, @@ -1599,12 +1683,96 @@ "h": 21 }, "frame": { - "x": 222, - "y": 113, + "x": 181, + "y": 134, "w": 21, "h": 21 } }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 224, + "y": 139, + "w": 23, + "h": 20 + } + }, + { + "filename": "prism_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 24, + "y": 232, + "w": 15, + "h": 15 + } + }, + { + "filename": "tm_ghost", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 202, + "y": 153, + "w": 22, + "h": 22 + } + }, + { + "filename": "wise_glasses", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 224, + "y": 159, + "w": 23, + "h": 17 + } + }, { "filename": "hyper_potion", "rotated": false, @@ -1620,12 +1788,117 @@ "h": 23 }, "frame": { - "x": 56, - "y": 140, + "x": 38, + "y": 142, "w": 17, "h": 23 } }, + { + "filename": "lum_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 40, + "y": 165, + "w": 20, + "h": 19 + } + }, + { + "filename": "metal_coat", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 19, + "h": 22 + }, + "frame": { + "x": 41, + "y": 184, + "w": 19, + "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": 41, + "y": 206, + "w": 20, + "h": 22 + } + }, + { + "filename": "gb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 41, + "y": 228, + "w": 20, + "h": 20 + } + }, + { + "filename": "zinc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 55, + "y": 141, + "w": 16, + "h": 24 + } + }, { "filename": "tm_grass", "rotated": false, @@ -1641,92 +1914,8 @@ "h": 22 }, "frame": { - "x": 73, - "y": 135, - "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": 95, - "y": 135, - "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": 117, - "y": 135, - "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": 139, - "y": 135, - "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": 161, - "y": 134, + "x": 71, + "y": 138, "w": 22, "h": 22 } @@ -1746,12 +1935,54 @@ "h": 22 }, "frame": { - "x": 182, - "y": 110, + "x": 93, + "y": 138, "w": 15, "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": 108, + "y": 135, + "w": 22, + "h": 22 + } + }, + { + "filename": "magnet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 130, + "y": 135, + "w": 20, + "h": 20 + } + }, { "filename": "potion", "rotated": false, @@ -1767,14 +1998,14 @@ "h": 23 }, "frame": { - "x": 183, - "y": 132, + "x": 60, + "y": 165, "w": 17, "h": 23 } }, { - "filename": "tm_psychic", + "filename": "tm_ice", "rotated": false, "trimmed": true, "sourceSize": { @@ -1788,8 +2019,50 @@ "h": 22 }, "frame": { - "x": 200, - "y": 122, + "x": 77, + "y": 160, + "w": 22, + "h": 22 + } + }, + { + "filename": "everstone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 17 + }, + "frame": { + "x": 60, + "y": 188, + "w": 20, + "h": 17 + } + }, + { + "filename": "tm_normal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 61, + "y": 205, "w": 22, "h": 22 } @@ -1809,14 +2082,56 @@ "h": 21 }, "frame": { - "x": 222, - "y": 134, + "x": 61, + "y": 227, "w": 21, "h": 21 } }, { - "filename": "deep_sea_scale", + "filename": "spell_tag", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 82, + "y": 227, + "w": 19, + "h": 21 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 80, + "y": 182, + "w": 17, + "h": 23 + } + }, + { + "filename": "tm_poison", "rotated": false, "trimmed": true, "sourceSize": { @@ -1825,19 +2140,19 @@ }, "spriteSourceSize": { "x": 5, - "y": 6, + "y": 5, "w": 22, - "h": 20 + "h": 22 }, "frame": { - "x": 200, - "y": 144, + "x": 83, + "y": 205, "w": 22, - "h": 20 + "h": 22 } }, { - "filename": "silver_powder", + "filename": "metronome", "rotated": false, "trimmed": true, "sourceSize": { @@ -1845,16 +2160,37 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 11, - "w": 24, - "h": 15 + "x": 7, + "y": 5, + "w": 17, + "h": 22 }, "frame": { - "x": 40, - "y": 169, - "w": 24, - "h": 15 + "x": 99, + "y": 160, + "w": 17, + "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": 97, + "y": 182, + "w": 22, + "h": 22 } }, { @@ -1872,8 +2208,8 @@ "h": 22 }, "frame": { - "x": 41, - "y": 184, + "x": 105, + "y": 204, "w": 22, "h": 22 } @@ -1893,75 +2229,12 @@ "h": 22 }, "frame": { - "x": 42, - "y": 206, + "x": 105, + "y": 226, "w": 22, "h": 22 } }, - { - "filename": "prism_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 42, - "y": 228, - "w": 15, - "h": 15 - } - }, - { - "filename": "binding_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 23, - "h": 20 - }, - "frame": { - "x": 73, - "y": 157, - "w": 23, - "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": 96, - "y": 157, - "w": 23, - "h": 20 - } - }, { "filename": "tm_water", "rotated": false, @@ -1977,7 +2250,7 @@ "h": 22 }, "frame": { - "x": 119, + "x": 116, "y": 157, "w": 22, "h": 22 @@ -1998,8 +2271,8 @@ "h": 22 }, "frame": { - "x": 141, - "y": 157, + "x": 119, + "y": 179, "w": 22, "h": 22 } @@ -2019,138 +2292,12 @@ "h": 22 }, "frame": { - "x": 163, - "y": 156, + "x": 127, + "y": 201, "w": 22, "h": 22 } }, - { - "filename": "everstone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 17 - }, - "frame": { - "x": 222, - "y": 155, - "w": 20, - "h": 17 - } - }, - { - "filename": "revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 - }, - "frame": { - "x": 185, - "y": 155, - "w": 12, - "h": 17 - } - }, - { - "filename": "black_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 197, - "y": 164, - "w": 23, - "h": 17 - } - }, - { - "filename": "wise_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 220, - "y": 172, - "w": 23, - "h": 17 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 63, - "y": 184, - "w": 17, - "h": 22 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 64, - "y": 206, - "w": 17, - "h": 23 - } - }, { "filename": "x_attack", "rotated": false, @@ -2166,75 +2313,12 @@ "h": 22 }, "frame": { - "x": 80, - "y": 177, + "x": 127, + "y": 223, "w": 22, "h": 22 } }, - { - "filename": "golden_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 102, - "y": 177, - "w": 17, - "h": 20 - } - }, - { - "filename": "dubious_disc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 119, - "y": 179, - "w": 22, - "h": 19 - } - }, - { - "filename": "upgrade", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 141, - "y": 179, - "w": 22, - "h": 19 - } - }, { "filename": "x_defense", "rotated": false, @@ -2250,8 +2334,8 @@ "h": 22 }, "frame": { - "x": 163, - "y": 178, + "x": 138, + "y": 155, "w": 22, "h": 22 } @@ -2271,8 +2355,8 @@ "h": 22 }, "frame": { - "x": 81, - "y": 199, + "x": 141, + "y": 177, "w": 22, "h": 22 } @@ -2292,8 +2376,8 @@ "h": 22 }, "frame": { - "x": 81, - "y": 221, + "x": 149, + "y": 199, "w": 22, "h": 22 } @@ -2313,14 +2397,14 @@ "h": 22 }, "frame": { - "x": 185, - "y": 181, + "x": 149, + "y": 221, "w": 22, "h": 22 } }, { - "filename": "gb", + "filename": "oval_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -2328,20 +2412,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 + "x": 7, + "y": 7, + "w": 18, + "h": 19 }, "frame": { - "x": 103, - "y": 198, - "w": 20, - "h": 20 + "x": 163, + "y": 139, + "w": 18, + "h": 19 } }, { - "filename": "magnet", + "filename": "upgrade", "rotated": false, "trimmed": true, "sourceSize": { @@ -2349,16 +2433,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 + "x": 5, + "y": 7, + "w": 22, + "h": 19 }, "frame": { - "x": 123, - "y": 198, - "w": 20, - "h": 20 + "x": 160, + "y": 158, + "w": 22, + "h": 19 } }, { @@ -2376,12 +2460,33 @@ "h": 20 }, "frame": { - "x": 143, - "y": 198, + "x": 182, + "y": 155, "w": 20, "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": 163, + "y": 177, + "w": 19, + "h": 20 + } + }, { "filename": "pb", "rotated": false, @@ -2397,8 +2502,8 @@ "h": 20 }, "frame": { - "x": 103, - "y": 218, + "x": 182, + "y": 175, "w": 20, "h": 20 } @@ -2418,12 +2523,54 @@ "h": 20 }, "frame": { - "x": 123, - "y": 218, + "x": 202, + "y": 175, "w": 20, "h": 20 } }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 222, + "y": 176, + "w": 20, + "h": 19 + } + }, + { + "filename": "golden_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 171, + "y": 197, + "w": 17, + "h": 20 + } + }, { "filename": "ub", "rotated": false, @@ -2439,33 +2586,12 @@ "h": 20 }, "frame": { - "x": 143, - "y": 218, + "x": 188, + "y": 195, "w": 20, "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": 163, - "y": 200, - "w": 19, - "h": 21 - } - }, { "filename": "hard_stone", "rotated": false, @@ -2481,54 +2607,12 @@ "h": 20 }, "frame": { - "x": 163, - "y": 221, + "x": 208, + "y": 195, "w": 19, "h": 20 } }, - { - "filename": "lum_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 182, - "y": 203, - "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": 182, - "y": 222, - "w": 20, - "h": 19 - } - }, { "filename": "lucky_egg", "rotated": false, @@ -2544,8 +2628,8 @@ "h": 20 }, "frame": { - "x": 202, - "y": 203, + "x": 171, + "y": 217, "w": 17, "h": 20 } @@ -2565,14 +2649,14 @@ "h": 19 }, "frame": { - "x": 202, - "y": 223, + "x": 188, + "y": 215, "w": 19, "h": 19 } }, { - "filename": "oval_stone", + "filename": "razor_fang", "rotated": false, "trimmed": true, "sourceSize": { @@ -2581,15 +2665,36 @@ }, "spriteSourceSize": { "x": 7, - "y": 7, + "y": 6, "w": 18, - "h": 19 + "h": 20 }, "frame": { - "x": 219, - "y": 189, + "x": 207, + "y": 215, "w": 18, - "h": 19 + "h": 20 + } + }, + { + "filename": "revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 10, + "y": 8, + "w": 12, + "h": 17 + }, + "frame": { + "x": 150, + "y": 136, + "w": 12, + "h": 17 } } ] @@ -2598,6 +2703,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:765f253f422caab501ac3462c455c37f:f48edcc7cd6d3b90aef5a1f31e2529df:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:b6805cfc15896d75dbfaf0817c2b16ed:fb72ca38a99466642275b1256b378b18:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 16b7e5bc3ab5fad6525e5daaa6ca03e5f6097d49..a369477d00bc9c9b5e7f87ee4d798d8a76d00749 100644 GIT binary patch literal 19900 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 literal 18917 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 Ef{&9sdjJ3c diff --git a/public/images/items/candy_jar.png b/public/images/items/candy_jar.png new file mode 100644 index 0000000000000000000000000000000000000000..2718b9fa083f466a5fe4980d28e363d3130b408e GIT binary patch literal 511 zcmVN`IFN^8Pu(DcV%@ch!@UYZ zE}3aNgygQ%8J=PJyUct0|J(fl9XfRQ$57gSsH!UKah7Gus|l!yH=E5arfJ&ALK>6* z4f|Pnb@H|%E{<6&gg9xwwE$IBId&s>vHT;65CUE-F?J&ylLe&-`Q=KW7vCMkXQRPx z?8Wk6t{jcAy3`w)@=X(!6TOcp24)|p0DvHp@Z#r8^oDvxoQmE0)wzrplC&2-lRcv) zBxxmNSkMV`I$=&eF3AUj_QI#V@EJBVAV{%x0tE63`n7;ap8$Ifw-4aM9I#X1iv=^ft=7xn zJjXE0GR4$1L|=8>|4g@z9Aa9g&+mJLV&=l_1JT=Cn3{IJQvd*^XJ91X17$`0?%Q`v z%M|NgC1^SU@OgrJD}6aH_;x`jHx6oD$7(NxM_$LuF(PiZ9q>+G;nR;Q?)Izacu>{9 zY3f_G<9cT|d#$*J*|H@oZA679XkA%_yx33VK@Gw>DK@N002ovPDHLkV1n;T B>`(vz literal 0 HcmV?d00001 diff --git a/public/images/items/focus_band.png b/public/images/items/focus_band.png new file mode 100644 index 0000000000000000000000000000000000000000..830e12942135a1ed8e037a3e37c2a8e64f47e4ed GIT binary patch literal 366 zcmV-!0g?WRP) zu?@mN3`H4%5wZenq+|rvprmAtl&p}Fl9HB^GAjfe^w2-+5}0N6oc}<|JkRk zR?Aw}zpkPvT8-J^^>&-YY$6QQR;RYv?>q3ZEZ;GUD+sUv%C5pDbp;pzo(;-AsR*jJ zYPBD5MqR+2(5^QCaNB`UF%crbL#dpXv#SvA)MybNtd&x&HliMj7xA?K8cW9vs6Su* zj~6jYKo0KbJeMDGVf2{wonh|6;mCd-KfP=|xz)5$L*~B|aC zJ!sod6oo$*|B!$wc+g<9YcnRvrd?#{R490j*CwS?z#Srz#o(bGoUHEXcFCkkd%YwP zqC)2X$Cgm15nf~)(sy(0DSv?ol`F0VT$do)%iIJUD^k` z0F3-D&Gtkr5|RH?VyC3Si zf4h!-=+i#fB??^t!pq>vZ|2epaKC<_q&EQg;h1PugQ8~52_;Uv^IK7$f2r|+j9%hC zxip>>VITUO1=Hv2g5RSr0F>8y^YeY21=A;^{;N3XRasfJKH% zYPeJ;eAwr`R+-^=hBJtG`+DWkviM>Z!qziyxKX9O+MLf%f@c%67*VS0FI8Y_}KH9c+G`vmX6+z!dYNk5`M>tP c3>lsaH+ACXL~e-szW@LL07*qoM6N<$g0P1IF8}}l literal 0 HcmV?d00001 diff --git a/public/images/items/reveal_glass.png b/public/images/items/reveal_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..3fae3bdf93443ee013b8e504b4792daaaf9fd9d1 GIT binary patch literal 369 zcmV-%0gnEOP)(<;nthF=nPG=(vx#=pq5LM#9&yGAx3Mnnj*2w)K)lBXM<3-I?t$i-odoJF8r)+u0j!Z5ptbL+M`=g7(;wNdlykxDZHLwii#qnh@Xa*Itj2BtV>S zIkpb8dlsH70G(r52nh+fM?Gm8*bN3-JBZjZXE1pY!UYD}aul=hr1Xab@L&KgB!~k- zeRds2?1pba&H&$vI%`?(1745}kZU9_ye+?DOu`FKPths=hM{_i5|@iFgiUvj{?s*K P00000NkvXXu0mjf&LWv- literal 0 HcmV?d00001 diff --git a/public/images/items/scanner.png b/public/images/items/scanner.png new file mode 100644 index 0000000000000000000000000000000000000000..27a67484f1982d10532b661831aafff4916a12c8 GIT binary patch literal 285 zcmV+&0pk9NP)g2oexrni*b!1JS#F2=y;@FHkr5;Q zIi_ifn%&^%Ye?xX0yw~~A~~GXT!i8BkSHg4*H_j=@Z8Tr`I~>>RC9^Ld`#CN#5MxU zdMS<{Q@|tu*LvF;z#*Vb(fHdQFkGdZ31~BIS`#sY? new Modifiers.PokemonLevelIncrementModifier(this, -1), iconImage); + } +} + function getBaseStatBoosterItemName(stat: Stat) { switch (stat) { case Stat.HP: @@ -431,14 +437,15 @@ class HeldItemTransferModifierType extends PokemonHeldItemModifierType { } } +type ModifierTypeFunc = () => ModifierType; type WeightedModifierTypeWeightFunc = (party: Pokemon[]) => integer; class WeightedModifierType { public modifierType: ModifierType; public weight: integer | WeightedModifierTypeWeightFunc; - constructor(modifierType: ModifierType, weight: integer | WeightedModifierTypeWeightFunc) { - this.modifierType = modifierType; + constructor(modifierTypeFunc: ModifierTypeFunc, weight: integer | WeightedModifierTypeWeightFunc) { + this.modifierType = modifierTypeFunc(); this.weight = weight; } @@ -448,46 +455,47 @@ class WeightedModifierType { } const modifierTypes = { - POKEBALL: new AddPokeballModifierType(PokeballType.POKEBALL, 5, 'pb'), - GREAT_BALL: new AddPokeballModifierType(PokeballType.GREAT_BALL, 5, 'gb'), - ULTRA_BALL: new AddPokeballModifierType(PokeballType.ULTRA_BALL, 5, 'ub'), - MASTER_BALL: new AddPokeballModifierType(PokeballType.MASTER_BALL, 1, 'mb'), + POKEBALL: () => new AddPokeballModifierType(PokeballType.POKEBALL, 5, 'pb'), + GREAT_BALL: () => new AddPokeballModifierType(PokeballType.GREAT_BALL, 5, 'gb'), + ULTRA_BALL: () => new AddPokeballModifierType(PokeballType.ULTRA_BALL, 5, 'ub'), + MASTER_BALL: () => new AddPokeballModifierType(PokeballType.MASTER_BALL, 1, 'mb'), - RARE_CANDY: new PokemonLevelIncrementModifierType('RARE CANDY'), + RARE_CANDY: () => new PokemonLevelIncrementModifierType('RARE CANDY'), + RARER_CANDY: () => new AllPokemonLevelIncrementModifierType('RARER CANDY'), - EVOLUTION_ITEM: new EvolutionItemModifierTypeGenerator(), + EVOLUTION_ITEM: () => new EvolutionItemModifierTypeGenerator(), - POTION: new PokemonHpRestoreModifierType('POTION', 20), - SUPER_POTION: new PokemonHpRestoreModifierType('SUPER POTION', 50), - HYPER_POTION: new PokemonHpRestoreModifierType('HYPER POTION', 200), - MAX_POTION: new PokemonHpRestoreModifierType('MAX POTION', 100, true), + POTION: () => new PokemonHpRestoreModifierType('POTION', 20), + SUPER_POTION: () => new PokemonHpRestoreModifierType('SUPER POTION', 50), + HYPER_POTION: () => new PokemonHpRestoreModifierType('HYPER POTION', 200), + MAX_POTION: () => new PokemonHpRestoreModifierType('MAX POTION', 100, true), - REVIVE: new PokemonReviveModifierType('REVIVE', 50), - MAX_REVIVE: new PokemonReviveModifierType('MAX REVIVE', 100), + REVIVE: () => new PokemonReviveModifierType('REVIVE', 50), + MAX_REVIVE: () => new PokemonReviveModifierType('MAX REVIVE', 100), - FULL_HEAL: new PokemonStatusHealModifierType('FULL HEAL'), + FULL_HEAL: () => new PokemonStatusHealModifierType('FULL HEAL'), - SACRED_ASH: new AllPokemonFullReviveModifierType('SACRED ASH'), + SACRED_ASH: () => new AllPokemonFullReviveModifierType('SACRED ASH'), - ETHER: new PokemonPpRestoreModifierType('ETHER', 10), - MAX_ETHER: new PokemonPpRestoreModifierType('MAX ETHER', -1), + ETHER: () => new PokemonPpRestoreModifierType('ETHER', 10), + MAX_ETHER: () => new PokemonPpRestoreModifierType('MAX ETHER', -1), - ELIXIR: new PokemonAllMovePpRestoreModifierType('ELIXIR', 10), - MAX_ELIXIR: new PokemonAllMovePpRestoreModifierType('MAX ELIXIR', -1), + ELIXIR: () => new PokemonAllMovePpRestoreModifierType('ELIXIR', 10), + MAX_ELIXIR: () => new PokemonAllMovePpRestoreModifierType('MAX ELIXIR', -1), - TEMP_STAT_BOOSTER: new ModifierTypeGenerator((party: Pokemon[]) => { + TEMP_STAT_BOOSTER: () => new ModifierTypeGenerator((party: Pokemon[]) => { const randTempBattleStat = Utils.randInt(7) as TempBattleStat; return new TempBattleStatBoosterModifierType(randTempBattleStat); }), - BASE_STAT_BOOSTER: new ModifierTypeGenerator((party: Pokemon[]) => { + BASE_STAT_BOOSTER: () => new ModifierTypeGenerator((party: Pokemon[]) => { const randStat = Utils.randInt(6) as Stat; return new PokemonBaseStatBoosterModifierType(getBaseStatBoosterItemName(randStat), randStat); }), - ATTACK_TYPE_BOOSTER: new AttackTypeBoosterModifierTypeGenerator(), + ATTACK_TYPE_BOOSTER: () => new AttackTypeBoosterModifierTypeGenerator(), - BERRY: new ModifierTypeGenerator((party: Pokemon[]) => { + BERRY: () => new ModifierTypeGenerator((party: Pokemon[]) => { const berryTypes = Utils.getEnumValues(BerryType); const randBerryType = berryTypes[Utils.randInt(berryTypes.length)]; return new PokemonHeldItemModifierType(getBerryName(randBerryType), getBerryEffectDescription(randBerryType), @@ -495,7 +503,7 @@ const modifierTypes = { null, 'berry'); }), - TM: new ModifierTypeGenerator((party: Pokemon[]) => { + TM: () => new ModifierTypeGenerator((party: Pokemon[]) => { const partyMemberCompatibleTms = party.map(p => (p as PlayerPokemon).compatibleTms); const uniqueCompatibleTms = partyMemberCompatibleTms.flat().filter((tm, i, array) => array.indexOf(tm) === i); if (!uniqueCompatibleTms.length) @@ -504,35 +512,37 @@ const modifierTypes = { return new TmModifierType(uniqueCompatibleTms[randTmIndex]); }), - EXP_SHARE: new ModifierType('EXP. SHARE', 'All POKéMON in your party gain an additional 10% of a battle\'s EXP. Points', + EXP_SHARE: () => new ModifierType('EXP. SHARE', 'All POKéMON in your party gain an additional 10% of a battle\'s EXP. Points', (type, _args) => new Modifiers.ExpShareModifier(type), 'exp_share'), - EXP_BALANCE: new ModifierType('EXP. BALANCE', 'All EXP. Points received from battles are split between the lower leveled party members', + EXP_BALANCE: () => new ModifierType('EXP. BALANCE', 'All EXP. Points received from battles are split between the lower leveled party members', (type, _args) => new Modifiers.ExpBalanceModifier(type), 'exp_balance'), - EXP_CHARM: new ExpBoosterModifierType('EXP CHARM', 25), - GOLDEN_EXP_CHARM: new ExpBoosterModifierType('GOLDEN EXP CHARM', 100), + EXP_CHARM: () => new ExpBoosterModifierType('EXP CHARM', 25), + GOLDEN_EXP_CHARM: () => new ExpBoosterModifierType('GOLDEN EXP CHARM', 100), - LUCKY_EGG: new PokemonExpBoosterModifierType('LUCKY EGG', 50), + LUCKY_EGG: () => new PokemonExpBoosterModifierType('LUCKY EGG', 50), - HEALING_CHARM: new ModifierType('HEALING CHARM', 'Doubles the effectiveness of HP restoring moves and items (excludes revives)', + HEALING_CHARM: () => new ModifierType('HEALING CHARM', 'Doubles the effectiveness of HP restoring moves and items (excludes revives)', (type, _args) => new Modifiers.HealingBoosterModifier(type, 2), 'healing_charm'), - OVAL_CHARM: new ModifierType('OVAL CHARM', 'For every X (no. of party members) items in a POKéMON\'s held item stack, give one to each other party member', + OVAL_CHARM: () => new ModifierType('OVAL CHARM', 'For every X (no. of party members) items in a POKéMON\'s held item stack, give one to each other party member', (type, _args) => new Modifiers.PartyShareModifier(type), 'oval_charm'), - BERRY_POUCH: new ModifierType('BERRY POUCH', 'Adds a 25% chance that a used berry will not be consumed', + CANDY_JAR: () => new ModifierType('CANDY JAR', 'Increases the number of levels added by RARE CANDY items by 1', (type, _args) => new Modifiers.LevelIncrementBoosterModifier(type)), + + BERRY_POUCH: () => new ModifierType('BERRY POUCH', 'Adds a 25% chance that a used berry will not be consumed', (type, _args) => new Modifiers.PreserveBerryModifier(type)), - LEFTOVERS: new PokemonHeldItemModifierType('LEFTOVERS', 'Heals 1/16 of a POKéMON\'s maximum HP every turn', + LEFTOVERS: () => new PokemonHeldItemModifierType('LEFTOVERS', 'Heals 1/16 of a POKéMON\'s maximum HP every turn', (type, args) => new Modifiers.TurnHealModifier(type, (args[0] as Pokemon).id)), - SHELL_BELL: new PokemonHeldItemModifierType('SHELL BELL', 'Heals 1/8 of a POKéMON\'s dealt damage', + SHELL_BELL: () => new PokemonHeldItemModifierType('SHELL BELL', 'Heals 1/8 of a POKéMON\'s dealt damage', (type, args) => new Modifiers.HitHealModifier(type, (args[0] as Pokemon).id)), - SHINY_CHARM: new ModifierType('SHINY CHARM', 'Dramatically increases the chance of a wild POKéMON being shiny', (type, _args) => new Modifiers.ShinyRateBoosterModifier(type)), + SHINY_CHARM: () => new ModifierType('SHINY CHARM', 'Dramatically increases the chance of a wild POKéMON being shiny', (type, _args) => new Modifiers.ShinyRateBoosterModifier(type)), - MINI_BLACK_HOLE: new HeldItemTransferModifierType('MINI BLACK HOLE'), + MINI_BLACK_HOLE: () => new HeldItemTransferModifierType('MINI BLACK HOLE'), - GOLDEN_POKEBALL: new ModifierType(`GOLDEN ${getPokeballName(PokeballType.POKEBALL)}`, 'Adds 1 extra item option at the end of every battle', + GOLDEN_POKEBALL: () => new ModifierType(`GOLDEN ${getPokeballName(PokeballType.POKEBALL)}`, 'Adds 1 extra item option at the end of every battle', (type, _args) => new Modifiers.ExtraModifierModifier(type), 'pb_gold', null, 'pb_bounce_1'), }; @@ -600,6 +610,7 @@ const modifierPool = { new WeightedModifierType(modifierTypes.ULTRA_BALL, 8), new WeightedModifierType(modifierTypes.EVOLUTION_ITEM, 12), new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 5), + new WeightedModifierType(modifierTypes.CANDY_JAR, 3), //new WeightedModifierType(modifierTypes.OVAL_CHARM, 1), new WeightedModifierType(modifierTypes.HEALING_CHARM, 1), new WeightedModifierType(modifierTypes.LEFTOVERS, 2), @@ -616,7 +627,8 @@ const modifierPool = { ].map(m => { m.setTier(ModifierTier.MASTER); return m; }), [ModifierTier.LUXURY]: [ new WeightedModifierType(modifierTypes.GOLDEN_EXP_CHARM, (party: Pokemon[]) => party.filter(p => p.level < 100).length ? 1 : 0), - new WeightedModifierType(modifierTypes.GOLDEN_POKEBALL, 1) + new WeightedModifierType(modifierTypes.GOLDEN_POKEBALL, 1), + new WeightedModifierType(modifierTypes.RARER_CANDY, 1) ].map(m => { m.setTier(ModifierTier.LUXURY); return m; }), }; @@ -628,7 +640,7 @@ const enemyModifierPool = { new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 1) ].map(m => { m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ - new WeightedModifierType(new AttackTypeBoosterModifierTypeGenerator(), 5), + new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 5), new WeightedModifierType(modifierTypes.LUCKY_EGG, 2), ].map(m => { m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.MASTER]: [ @@ -741,7 +753,7 @@ function getNewModifierTypeOption(party: Pokemon[], player?: boolean, tier?: Mod } export function getDefaultModifierTypeForTier(tier: ModifierTier): ModifierType { - let modifierType: ModifierType | WeightedModifierType = modifierPool[tier][tier !== ModifierTier.LUXURY ? 0 : 1]; + let modifierType: ModifierType | WeightedModifierType = modifierPool[tier][tier !== ModifierTier.LUXURY ? 0 : 2]; if (modifierType instanceof WeightedModifierType) modifierType = (modifierType as WeightedModifierType).modifierType; return modifierType; diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 80ec2749b..13702f590 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -404,6 +404,30 @@ export class HitHealModifier extends PokemonHeldItemModifier { } } +export class LevelIncrementBoosterModifier extends PersistentModifier { + constructor(type: ModifierType, stackCount?: integer) { + super(type, stackCount); + } + + match(modifier: Modifier) { + return modifier instanceof LevelIncrementBoosterModifier; + } + + clone() { + return new LevelIncrementBoosterModifier(this.type, this.stackCount); + } + + shouldApply(args: any[]): boolean { + return super.shouldApply(args) && args[0] instanceof Utils.IntegerHolder; + } + + apply(args: any[]): boolean { + (args[0] as Utils.IntegerHolder).value += this.getStackCount(); + + return true; + } +} + export class BerryModifier extends PokemonHeldItemModifier { public berryType: BerryType; public consumed: boolean; @@ -587,7 +611,10 @@ export class PokemonLevelIncrementModifier extends ConsumablePokemonModifier { apply(args: any[]): boolean { const pokemon = args[0] as PlayerPokemon; - pokemon.level++; + const levelCount = new Utils.IntegerHolder(1); + pokemon.scene.applyModifiers(LevelIncrementBoosterModifier, true, levelCount); + + pokemon.level += levelCount.value; if (pokemon.level <= 100) { pokemon.exp = getLevelTotalExp(pokemon.level, pokemon.species.growthRate); pokemon.levelExp = 0;