diff --git a/public/images/items.json b/public/images/items.json index 9ba66e483..95f716f18 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,8 +4,8 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 267, - "h": 267 + "w": 281, + "h": 281 }, "scale": 1, "frames": [ @@ -324,6 +324,27 @@ "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": 259, + "y": 0, + "w": 22, + "h": 24 + } + }, { "filename": "catching_charm", "rotated": false, @@ -409,7 +430,7 @@ } }, { - "filename": "max_revive", + "filename": "rare_candy", "rotated": false, "trimmed": true, "sourceSize": { @@ -417,20 +438,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 24 + "x": 4, + "y": 5, + "w": 23, + "h": 23 }, "frame": { "x": 0, "y": 174, - "w": 22, - "h": 24 + "w": 23, + "h": 23 } }, { - "filename": "black_belt", + "filename": "rarer_candy", "rotated": false, "trimmed": true, "sourceSize": { @@ -438,36 +459,15 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 0, - "y": 198, - "w": 22, - "h": 23 - } - }, - { - "filename": "fire_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, + "x": 4, "y": 5, - "w": 22, + "w": 23, "h": 23 }, "frame": { "x": 0, - "y": 221, - "w": 22, + "y": 197, + "w": 23, "h": 23 } }, @@ -487,11 +487,53 @@ }, "frame": { "x": 0, - "y": 244, + "y": 220, "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": 0, + "y": 243, + "w": 24, + "h": 23 + } + }, + { + "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": 266, + "w": 24, + "h": 15 + } + }, { "filename": "oval_charm", "rotated": false, @@ -535,7 +577,28 @@ } }, { - "filename": "dragon_fang", + "filename": "black_belt", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 23, + "y": 120, + "w": 22, + "h": 23 + } + }, + { + "filename": "fire_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -545,13 +608,13 @@ "spriteSourceSize": { "x": 5, "y": 5, - "w": 21, + "w": 22, "h": 23 }, "frame": { "x": 23, - "y": 120, - "w": 21, + "y": 143, + "w": 22, "h": 23 } }, @@ -571,11 +634,95 @@ }, "frame": { "x": 23, - "y": 143, + "y": 166, "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": 23, + "y": 189, + "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": 24, + "y": 212, + "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": 24, + "y": 235, + "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": 24, + "y": 258, + "w": 23, + "h": 23 + } + }, { "filename": "calcium", "rotated": false, @@ -681,27 +828,6 @@ "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": 44, - "y": 96, - "w": 24, - "h": 23 - } - }, { "filename": "exp_balance", "rotated": false, @@ -718,32 +844,11 @@ }, "frame": { "x": 44, - "y": 119, + "y": 96, "w": 24, "h": 22 } }, - { - "filename": "rare_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 45, - "y": 141, - "w": 23, - "h": 23 - } - }, { "filename": "exp_share", "rotated": false, @@ -759,8 +864,8 @@ "h": 22 }, "frame": { - "x": 74, - "y": 24, + "x": 45, + "y": 118, "w": 24, "h": 22 } @@ -780,75 +885,12 @@ "h": 22 }, "frame": { - "x": 98, - "y": 24, + "x": 45, + "y": 140, "w": 23, "h": 22 } }, - { - "filename": "rarer_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 121, - "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": 144, - "y": 24, - "w": 23, - "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": 167, - "y": 24, - "w": 22, - "h": 23 - } - }, { "filename": "petaya_berry", "rotated": false, @@ -864,8 +906,8 @@ "h": 23 }, "frame": { - "x": 189, - "y": 24, + "x": 45, + "y": 162, "w": 22, "h": 23 } @@ -885,8 +927,8 @@ "h": 23 }, "frame": { - "x": 211, - "y": 23, + "x": 45, + "y": 185, "w": 22, "h": 23 } @@ -906,8 +948,8 @@ "h": 22 }, "frame": { - "x": 233, - "y": 23, + "x": 45, + "y": 208, "w": 22, "h": 22 } @@ -926,13 +968,202 @@ "w": 22, "h": 22 }, + "frame": { + "x": 45, + "y": 230, + "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": 74, + "y": 24, + "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": 96, + "y": 24, + "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": 118, + "y": 24, + "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": 140, + "y": 24, + "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": 162, + "y": 24, + "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": 184, + "y": 24, + "w": 22, + "h": 22 + } + }, + { + "filename": "leaf_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, "frame": { "x": 75, "y": 46, + "w": 21, + "h": 23 + } + }, + { + "filename": "mini_black_hole", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 96, + "y": 46, "w": 22, "h": 22 } }, + { + "filename": "moon_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 23, + "h": 21 + }, + "frame": { + "x": 118, + "y": 46, + "w": 23, + "h": 21 + } + }, { "filename": "sacred_ash", "rotated": false, @@ -948,7 +1179,7 @@ "h": 20 }, "frame": { - "x": 97, + "x": 141, "y": 46, "w": 24, "h": 20 @@ -969,56 +1200,14 @@ "h": 20 }, "frame": { - "x": 121, - "y": 47, + "x": 165, + "y": 46, "w": 24, "h": 20 } }, { - "filename": "binding_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 23, - "h": 20 - }, - "frame": { - "x": 145, - "y": 47, - "w": 23, - "h": 20 - } - }, - { - "filename": "moon_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 168, - "y": 47, - "w": 23, - "h": 21 - } - }, - { - "filename": "dawn_stone", + "filename": "mystic_water", "rotated": false, "trimmed": true, "sourceSize": { @@ -1027,374 +1216,17 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, - "w": 20, - "h": 21 - }, - "frame": { - "x": 191, - "y": 47, - "w": 20, - "h": 21 - } - }, - { - "filename": "electirizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 211, - "y": 46, - "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": 233, - "y": 45, - "w": 22, - "h": 22 - } - }, - { - "filename": "lansat_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, + "w": 20, "h": 23 }, "frame": { "x": 76, - "y": 68, - "w": 21, + "y": 69, + "w": 20, "h": 23 } }, - { - "filename": "ganlon_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 97, - "y": 66, - "w": 22, - "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": 119, - "y": 67, - "w": 22, - "h": 21 - } - }, - { - "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": 67, - "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": 163, - "y": 68, - "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": 185, - "y": 68, - "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": 207, - "y": 68, - "w": 22, - "h": 22 - } - }, - { - "filename": "revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 - }, - "frame": { - "x": 255, - "y": 23, - "w": 12, - "h": 17 - } - }, - { - "filename": "full_restore", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 68, - "y": 96, - "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": 68, - "y": 120, - "w": 18, - "h": 24 - } - }, - { - "filename": "apicot_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 68, - "y": 144, - "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": 23, - "y": 166, - "w": 24, - "h": 18 - } - }, - { - "filename": "leaf_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 22, - "y": 184, - "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": 22, - "y": 207, - "w": 21, - "h": 23 - } - }, - { - "filename": "reviver_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 8, - "w": 23, - "h": 20 - }, - "frame": { - "x": 47, - "y": 164, - "w": 23, - "h": 20 - } - }, { "filename": "protector", "rotated": false, @@ -1410,12 +1242,138 @@ "h": 22 }, "frame": { - "x": 43, - "y": 184, + "x": 96, + "y": 68, "w": 22, "h": 22 } }, + { + "filename": "sharp_beak", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 118, + "y": 67, + "w": 21, + "h": 23 + } + }, + { + "filename": "apicot_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 189, + "y": 46, + "w": 19, + "h": 20 + } + }, + { + "filename": "full_restore", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 47, + "y": 252, + "w": 18, + "h": 24 + } + }, + { + "filename": "leftovers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 15, + "h": 22 + }, + "frame": { + "x": 68, + "y": 96, + "w": 15, + "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": 69, + "y": 118, + "w": 15, + "h": 23 + } + }, + { + "filename": "dawn_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 21 + }, + "frame": { + "x": 68, + "y": 141, + "w": 20, + "h": 21 + } + }, { "filename": "shed_shell", "rotated": false, @@ -1431,33 +1389,12 @@ "h": 22 }, "frame": { - "x": 43, - "y": 206, + "x": 67, + "y": 162, "w": 22, "h": 22 } }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 70, - "y": 164, - "w": 19, - "h": 20 - } - }, { "filename": "starf_berry", "rotated": false, @@ -1473,7 +1410,7 @@ "h": 22 }, "frame": { - "x": 65, + "x": 67, "y": 184, "w": 22, "h": 22 @@ -1494,12 +1431,33 @@ "h": 22 }, "frame": { - "x": 65, + "x": 67, "y": 206, "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": 67, + "y": 228, + "w": 22, + "h": 22 + } + }, { "filename": "hp_up", "rotated": false, @@ -1515,54 +1473,12 @@ "h": 24 }, "frame": { - "x": 86, - "y": 91, + "x": 83, + "y": 92, "w": 16, "h": 24 } }, - { - "filename": "tm_bug", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 102, - "y": 88, - "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": 124, - "y": 88, - "w": 17, - "h": 23 - } - }, { "filename": "tm_dark", "rotated": false, @@ -1578,14 +1494,14 @@ "h": 22 }, "frame": { - "x": 141, - "y": 89, + "x": 99, + "y": 90, "w": 22, "h": 22 } }, { - "filename": "liechi_berry", + "filename": "max_elixir", "rotated": false, "trimmed": true, "sourceSize": { @@ -1593,58 +1509,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 + "x": 7, + "y": 4, + "w": 18, + "h": 24 }, "frame": { - "x": 163, + "x": 121, "y": 90, - "w": 22, - "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": 185, - "y": 90, - "w": 23, - "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": 208, - "y": 90, - "w": 22, - "h": 20 + "w": 18, + "h": 24 } }, { @@ -1662,12 +1536,138 @@ "h": 24 }, "frame": { - "x": 86, - "y": 115, + "x": 84, + "y": 116, "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": 100, + "y": 112, + "w": 21, + "h": 21 + } + }, + { + "filename": "big_mushroom", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 19 + }, + "frame": { + "x": 121, + "y": 114, + "w": 19, + "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": 88, + "y": 140, + "w": 19, + "h": 22 + } + }, + { + "filename": "max_ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 89, + "y": 162, + "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": 89, + "y": 186, + "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": 89, + "y": 210, + "w": 17, + "h": 24 + } + }, { "filename": "tm_dragon", "rotated": false, @@ -1683,8 +1683,8 @@ "h": 22 }, "frame": { - "x": 102, - "y": 110, + "x": 107, + "y": 133, "w": 22, "h": 22 } @@ -1704,8 +1704,8 @@ "h": 22 }, "frame": { - "x": 124, - "y": 111, + "x": 107, + "y": 155, "w": 22, "h": 22 } @@ -1725,14 +1725,14 @@ "h": 22 }, "frame": { - "x": 146, - "y": 111, + "x": 107, + "y": 177, "w": 22, "h": 22 } }, { - "filename": "lure", + "filename": "max_lure", "rotated": false, "trimmed": true, "sourceSize": { @@ -1746,12 +1746,201 @@ "h": 24 }, "frame": { - "x": 168, - "y": 111, + "x": 129, + "y": 133, "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": 129, + "y": 157, + "w": 17, + "h": 24 + } + }, + { + "filename": "binding_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 23, + "h": 20 + }, + "frame": { + "x": 129, + "y": 181, + "w": 23, + "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": 107, + "y": 199, + "w": 22, + "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": 129, + "y": 201, + "w": 24, + "h": 18 + } + }, + { + "filename": "dragon_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 24, + "h": 18 + }, + "frame": { + "x": 106, + "y": 219, + "w": 24, + "h": 18 + } + }, + { + "filename": "reviver_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 8, + "w": 23, + "h": 20 + }, + "frame": { + "x": 130, + "y": 219, + "w": 23, + "h": 20 + } + }, + { + "filename": "golden_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 89, + "y": 234, + "w": 17, + "h": 20 + } + }, + { + "filename": "ability_capsule", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 9, + "w": 24, + "h": 14 + }, + "frame": { + "x": 106, + "y": 237, + "w": 24, + "h": 14 + } + }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 130, + "y": 239, + "w": 23, + "h": 20 + } + }, { "filename": "tm_fighting", "rotated": false, @@ -1767,8 +1956,8 @@ "h": 22 }, "frame": { - "x": 185, - "y": 110, + "x": 65, + "y": 259, "w": 22, "h": 22 } @@ -1788,54 +1977,12 @@ "h": 22 }, "frame": { - "x": 207, - "y": 110, + "x": 87, + "y": 259, "w": 22, "h": 22 } }, - { - "filename": "max_ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 87, - "y": 139, - "w": 18, - "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": 89, - "y": 163, - "w": 21, - "h": 21 - } - }, { "filename": "tm_flying", "rotated": false, @@ -1851,8 +1998,8 @@ "h": 22 }, "frame": { - "x": 87, - "y": 184, + "x": 109, + "y": 259, "w": 22, "h": 22 } @@ -1872,470 +2019,8 @@ "h": 22 }, "frame": { - "x": 87, - "y": 206, - "w": 22, - "h": 22 - } - }, - { - "filename": "max_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 105, - "y": 132, - "w": 18, - "h": 24 - } - }, - { - "filename": "tm_grass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 123, - "y": 133, - "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": 145, - "y": 133, - "w": 22, - "h": 22 - } - }, - { - "filename": "gb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 167, - "y": 135, - "w": 20, - "h": 20 - } - }, - { - "filename": "tm_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 187, - "y": 132, - "w": 22, - "h": 22 - } - }, - { - "filename": "mystic_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 23 - }, - "frame": { - "x": 209, - "y": 132, - "w": 20, - "h": 23 - } - }, - { - "filename": "max_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 110, - "y": 156, - "w": 17, - "h": 24 - } - }, - { - "filename": "tm_normal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 127, - "y": 155, - "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": 149, - "y": 155, - "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": 171, - "y": 155, - "w": 19, - "h": 22 - } - }, - { - "filename": "spell_tag", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 190, - "y": 154, - "w": 19, - "h": 21 - } - }, - { - "filename": "magnet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 209, - "y": 155, - "w": 20, - "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": 127, - "y": 177, - "w": 24, - "h": 18 - } - }, - { - "filename": "dubious_disc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 151, - "y": 177, - "w": 22, - "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": 110, - "y": 180, - "w": 17, - "h": 20 - } - }, - { - "filename": "super_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 109, - "y": 200, - "w": 17, - "h": 24 - } - }, - { - "filename": "hard_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 173, - "y": 177, - "w": 19, - "h": 20 - } - }, - { - "filename": "tm_psychic", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 192, - "y": 175, - "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": 214, - "y": 175, - "w": 15, - "h": 23 - } - }, - { - "filename": "silver_powder", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 11, - "w": 24, - "h": 15 - }, - "frame": { - "x": 127, - "y": 195, - "w": 24, - "h": 15 - } - }, - { - "filename": "tm_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 151, - "y": 196, - "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": 173, - "y": 197, + "x": 131, + "y": 259, "w": 22, "h": 22 } @@ -2355,12 +2040,96 @@ "h": 22 }, "frame": { - "x": 195, - "y": 197, + "x": 206, + "y": 24, "w": 17, "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": 223, + "y": 23, + "w": 22, + "h": 22 + } + }, + { + "filename": "candy_jar", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 208, + "y": 46, + "w": 19, + "h": 20 + } + }, + { + "filename": "deep_sea_tooth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 227, + "y": 45, + "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": 245, + "y": 24, + "w": 22, + "h": 21 + } + }, { "filename": "poison_barb", "rotated": false, @@ -2376,14 +2145,14 @@ "h": 21 }, "frame": { - "x": 212, - "y": 198, + "x": 249, + "y": 45, "w": 21, "h": 21 } }, { - "filename": "wise_glasses", + "filename": "revive", "rotated": false, "trimmed": true, "sourceSize": { @@ -2391,18 +2160,249 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, + "x": 10, "y": 8, - "w": 23, + "w": 12, "h": 17 }, "frame": { - "x": 126, - "y": 210, - "w": 23, + "x": 267, + "y": 24, + "w": 12, "h": 17 } }, + { + "filename": "pp_max", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 139, + "y": 67, + "w": 16, + "h": 24 + } + }, + { + "filename": "tm_ground", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 155, + "y": 66, + "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": 177, + "y": 66, + "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": 199, + "y": 66, + "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": 221, + "y": 66, + "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": 243, + "y": 66, + "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": 265, + "y": 66, + "w": 16, + "h": 24 + } + }, + { + "filename": "hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 139, + "y": 91, + "w": 17, + "h": 23 + } + }, + { + "filename": "dubious_disc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 140, + "y": 114, + "w": 22, + "h": 19 + } + }, + { + "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": 88, + "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": 178, + "y": 88, + "w": 22, + "h": 22 + } + }, { "filename": "tm_water", "rotated": false, @@ -2418,8 +2418,8 @@ "h": 22 }, "frame": { - "x": 149, - "y": 218, + "x": 200, + "y": 88, "w": 22, "h": 22 } @@ -2439,117 +2439,12 @@ "h": 22 }, "frame": { - "x": 171, - "y": 219, + "x": 222, + "y": 88, "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": 193, - "y": 219, - "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": 215, - "y": 219, - "w": 20, - "h": 22 - } - }, - { - "filename": "leftovers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 15, - "h": 22 - }, - "frame": { - "x": 229, - "y": 68, - "w": 15, - "h": 22 - } - }, - { - "filename": "lucky_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 230, - "y": 90, - "w": 17, - "h": 20 - } - }, - { - "filename": "potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 229, - "y": 110, - "w": 17, - "h": 23 - } - }, { "filename": "shiny_stone", "rotated": false, @@ -2565,56 +2460,14 @@ "h": 21 }, "frame": { - "x": 246, - "y": 110, + "x": 244, + "y": 88, "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": 246, - "y": 131, - "w": 21, - "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": 229, - "y": 133, - "w": 17, - "h": 23 - } - }, - { - "filename": "pp_max", + "filename": "protein", "rotated": false, "trimmed": true, "sourceSize": { @@ -2628,12 +2481,33 @@ "h": 24 }, "frame": { - "x": 229, - "y": 156, + "x": 265, + "y": 90, "w": 16, "h": 24 } }, + { + "filename": "x_accuracy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 162, + "y": 110, + "w": 22, + "h": 22 + } + }, { "filename": "x_attack", "rotated": false, @@ -2649,8 +2523,8 @@ "h": 22 }, "frame": { - "x": 245, - "y": 156, + "x": 184, + "y": 110, "w": 22, "h": 22 } @@ -2670,12 +2544,33 @@ "h": 22 }, "frame": { - "x": 245, - "y": 178, + "x": 206, + "y": 110, "w": 22, "h": 22 } }, + { + "filename": "zinc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 146, + "y": 133, + "w": 16, + "h": 24 + } + }, { "filename": "x_sp_atk", "rotated": false, @@ -2691,54 +2586,12 @@ "h": 22 }, "frame": { - "x": 244, - "y": 67, + "x": 162, + "y": 132, "w": 22, "h": 22 } }, - { - "filename": "mb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 247, - "y": 89, - "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": 233, - "y": 200, - "w": 22, - "h": 19 - } - }, { "filename": "x_sp_def", "rotated": false, @@ -2754,33 +2607,12 @@ "h": 22 }, "frame": { - "x": 235, - "y": 219, + "x": 184, + "y": 132, "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": 229, - "y": 180, - "w": 15, - "h": 15 - } - }, { "filename": "x_speed", "rotated": false, @@ -2796,12 +2628,243 @@ "h": 22 }, "frame": { - "x": 24, - "y": 230, + "x": 206, + "y": 132, "w": 22, "h": 22 } }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 228, + "y": 110, + "w": 17, + "h": 23 + } + }, + { + "filename": "sitrus_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 245, + "y": 109, + "w": 20, + "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": 146, + "y": 157, + "w": 17, + "h": 23 + } + }, + { + "filename": "zoom_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 163, + "y": 154, + "w": 21, + "h": 21 + } + }, + { + "filename": "upgrade", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 184, + "y": 154, + "w": 22, + "h": 19 + } + }, + { + "filename": "gb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 206, + "y": 154, + "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": 228, + "y": 133, + "w": 19, + "h": 21 + } + }, + { + "filename": "magnet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 226, + "y": 154, + "w": 20, + "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": 247, + "y": 131, + "w": 19, + "h": 20 + } + }, + { + "filename": "lucky_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 152, + "y": 180, + "w": 17, + "h": 20 + } + }, + { + "filename": "mb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 153, + "y": 200, + "w": 20, + "h": 20 + } + }, { "filename": "pb", "rotated": false, @@ -2817,33 +2880,12 @@ "h": 20 }, "frame": { - "x": 46, - "y": 228, + "x": 153, + "y": 220, "w": 20, "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": 46, - "y": 248, - "w": 20, - "h": 19 - } - }, { "filename": "pb_gold", "rotated": false, @@ -2859,75 +2901,12 @@ "h": 20 }, "frame": { - "x": 66, - "y": 228, + "x": 153, + "y": 240, "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": 66, - "y": 248, - "w": 20, - "h": 19 - } - }, - { - "filename": "pp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 86, - "y": 228, - "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": 102, - "y": 228, - "w": 16, - "h": 24 - } - }, { "filename": "ub", "rotated": false, @@ -2943,12 +2922,33 @@ "h": 20 }, "frame": { - "x": 118, - "y": 227, + "x": 153, + "y": 260, "w": 20, "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": 265, + "y": 114, + "w": 15, + "h": 15 + } + }, { "filename": "razor_fang", "rotated": false, @@ -2964,8 +2964,8 @@ "h": 20 }, "frame": { - "x": 118, - "y": 247, + "x": 169, + "y": 175, "w": 18, "h": 20 } @@ -2985,14 +2985,14 @@ "h": 19 }, "frame": { - "x": 136, - "y": 247, + "x": 187, + "y": 173, "w": 19, "h": 19 } }, { - "filename": "zinc", + "filename": "wise_glasses", "rotated": false, "trimmed": true, "sourceSize": { @@ -3000,16 +3000,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 + "x": 4, + "y": 8, + "w": 23, + "h": 17 }, "frame": { - "x": 155, - "y": 240, - "w": 16, - "h": 24 + "x": 206, + "y": 174, + "w": 23, + "h": 17 } }, { @@ -3027,12 +3027,96 @@ "h": 17 }, "frame": { - "x": 171, - "y": 241, + "x": 229, + "y": 174, "w": 20, "h": 17 } }, + { + "filename": "lum_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 173, + "y": 195, + "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": 173, + "y": 214, + "w": 20, + "h": 19 + } + }, + { + "filename": "wl_ability_urge", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 173, + "y": 233, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_antidote", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 173, + "y": 251, + "w": 20, + "h": 18 + } + }, { "filename": "oval_stone", "rotated": false, @@ -3048,11 +3132,368 @@ "h": 19 }, "frame": { - "x": 191, - "y": 241, + "x": 193, + "y": 192, "w": 18, "h": 19 } + }, + { + "filename": "wl_awakening", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 211, + "y": 191, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_burn_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 193, + "y": 211, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 193, + "y": 229, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 193, + "y": 247, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_full_restore", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 231, + "y": 191, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_guard_spec", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 213, + "y": 209, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 213, + "y": 227, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_ice_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 213, + "y": 245, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_item_drop", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 213, + "y": 263, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_item_urge", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 233, + "y": 209, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_max_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 233, + "y": 227, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_max_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 233, + "y": 245, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_paralyze_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 233, + "y": 263, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 247, + "y": 151, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_reset_urge", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 249, + "y": 169, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 251, + "y": 187, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 253, + "y": 205, + "w": 20, + "h": 18 + } } ] } @@ -3060,6 +3501,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:ba82aafcf565da1a9adf0d1e3a405b83:d751914787cd1ba803961379ea6f7f7f:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:cb4559b9895634c5b63991a8f07b201f:60ff4678e7949d65c84f4a9476e5d0e7:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index febace7f2..eedb3d0c3 100644 Binary files a/public/images/items.png and b/public/images/items.png differ diff --git a/public/images/items/ability_capsule.png b/public/images/items/ability_capsule.png new file mode 100644 index 000000000..06b6b3e17 Binary files /dev/null and b/public/images/items/ability_capsule.png differ diff --git a/public/images/items/big_mushroom.png b/public/images/items/big_mushroom.png new file mode 100644 index 000000000..4384c7933 Binary files /dev/null and b/public/images/items/big_mushroom.png differ diff --git a/public/images/items/wl_ability_urge.png b/public/images/items/wl_ability_urge.png new file mode 100644 index 000000000..a9eaa8343 Binary files /dev/null and b/public/images/items/wl_ability_urge.png differ diff --git a/public/images/items/wl_antidote.png b/public/images/items/wl_antidote.png new file mode 100644 index 000000000..dbe0d5b94 Binary files /dev/null and b/public/images/items/wl_antidote.png differ diff --git a/public/images/items/wl_awakening.png b/public/images/items/wl_awakening.png new file mode 100644 index 000000000..9a0adcda9 Binary files /dev/null and b/public/images/items/wl_awakening.png differ diff --git a/public/images/items/wl_burn_heal.png b/public/images/items/wl_burn_heal.png new file mode 100644 index 000000000..d2f65e7da Binary files /dev/null and b/public/images/items/wl_burn_heal.png differ diff --git a/public/images/items/wl_ether.png b/public/images/items/wl_ether.png new file mode 100644 index 000000000..d3c0fe859 Binary files /dev/null and b/public/images/items/wl_ether.png differ diff --git a/public/images/items/wl_full_heal.png b/public/images/items/wl_full_heal.png new file mode 100644 index 000000000..68b8272c0 Binary files /dev/null and b/public/images/items/wl_full_heal.png differ diff --git a/public/images/items/wl_full_restore.png b/public/images/items/wl_full_restore.png new file mode 100644 index 000000000..d6d4ffe72 Binary files /dev/null and b/public/images/items/wl_full_restore.png differ diff --git a/public/images/items/wl_guard_spec.png b/public/images/items/wl_guard_spec.png new file mode 100644 index 000000000..b494123e9 Binary files /dev/null and b/public/images/items/wl_guard_spec.png differ diff --git a/public/images/items/wl_hyper_potion.png b/public/images/items/wl_hyper_potion.png new file mode 100644 index 000000000..51e81461d Binary files /dev/null and b/public/images/items/wl_hyper_potion.png differ diff --git a/public/images/items/wl_ice_heal.png b/public/images/items/wl_ice_heal.png new file mode 100644 index 000000000..e28f3205a Binary files /dev/null and b/public/images/items/wl_ice_heal.png differ diff --git a/public/images/items/wl_item_drop.png b/public/images/items/wl_item_drop.png new file mode 100644 index 000000000..fe7ffdbdc Binary files /dev/null and b/public/images/items/wl_item_drop.png differ diff --git a/public/images/items/wl_item_urge.png b/public/images/items/wl_item_urge.png new file mode 100644 index 000000000..5c291188d Binary files /dev/null and b/public/images/items/wl_item_urge.png differ diff --git a/public/images/items/wl_max_potion.png b/public/images/items/wl_max_potion.png new file mode 100644 index 000000000..cf9281094 Binary files /dev/null and b/public/images/items/wl_max_potion.png differ diff --git a/public/images/items/wl_max_revive.png b/public/images/items/wl_max_revive.png new file mode 100644 index 000000000..12e3b263c Binary files /dev/null and b/public/images/items/wl_max_revive.png differ diff --git a/public/images/items/wl_paralyze_heal.png b/public/images/items/wl_paralyze_heal.png new file mode 100644 index 000000000..9a741c705 Binary files /dev/null and b/public/images/items/wl_paralyze_heal.png differ diff --git a/public/images/items/wl_potion.png b/public/images/items/wl_potion.png new file mode 100644 index 000000000..42086fc20 Binary files /dev/null and b/public/images/items/wl_potion.png differ diff --git a/public/images/items/wl_reset_urge.png b/public/images/items/wl_reset_urge.png new file mode 100644 index 000000000..25ba0dfcd Binary files /dev/null and b/public/images/items/wl_reset_urge.png differ diff --git a/public/images/items/wl_revive.png b/public/images/items/wl_revive.png new file mode 100644 index 000000000..c0881125c Binary files /dev/null and b/public/images/items/wl_revive.png differ diff --git a/public/images/items/wl_super_potion.png b/public/images/items/wl_super_potion.png new file mode 100644 index 000000000..da9ccec78 Binary files /dev/null and b/public/images/items/wl_super_potion.png differ diff --git a/src/battle-phases.ts b/src/battle-phases.ts index c0c7a167e..c02b1bf69 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -16,7 +16,7 @@ import { EvolutionPhase } from "./evolution-phase"; import { BattlePhase } from "./battle-phase"; import { BattleStat, getBattleStatLevelChangeDescription, getBattleStatName } from "./data/battle-stat"; import { Biome, biomeLinks } from "./data/biome"; -import { ModifierPoolType, ModifierType, ModifierTypeFunc, ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, TmModifierType, getPlayerModifierTypeOptionsForWave, modifierTypes, regenerateModifierPoolThresholds } from "./modifier/modifier-type"; +import { ModifierPoolType, ModifierType, ModifierTypeFunc, ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, TmModifierType, getModifierType, getPlayerModifierTypeOptionsForWave, modifierTypes, regenerateModifierPoolThresholds } from "./modifier/modifier-type"; import SoundFade from "phaser3-rex-plugins/plugins/soundfade"; import { BattlerTagLapseType, BattlerTagType, HideSpriteTag as HiddenTag, TrappedTag } from "./data/battler-tag"; import { getPokemonMessage } from "./messages"; @@ -1293,7 +1293,7 @@ export class BattleEndPhase extends BattlePhase { pokemon.resetBattleSummonData(); } - this.scene.clearEnemyModifiers(); + this.scene.clearEnemyHeldItemModifiers(); const lapsingModifiers = this.scene.findModifiers(m => m instanceof LapsingPersistentModifier) as LapsingPersistentModifier[]; for (let m of lapsingModifiers) { @@ -2171,9 +2171,7 @@ export class ModifierRewardPhase extends BattlePhase { constructor(scene: BattleScene, modifierTypeFunc: ModifierTypeFunc) { super(scene); - this.modifierType = modifierTypeFunc(); - if (!this.modifierType.id) - this.modifierType.id = Object.keys(modifierTypes).find(k => modifierTypes[k] === modifierTypeFunc); + this.modifierType = getModifierType(modifierTypeFunc); } start() { @@ -2694,7 +2692,7 @@ export class AttemptCapturePhase extends PokemonPhase { this.scene.getPlayerField().filter(p => p.isActive()).forEach(playerPokemon => playerPokemon.removeTagsBySourceId(pokemon.id)); pokemon.hp = 0; pokemon.trySetStatus(StatusEffect.FAINT); - this.scene.clearEnemyModifiers(); + this.scene.clearEnemyHeldItemModifiers(); this.scene.field.remove(pokemon, true); }; const addToParty = () => { diff --git a/src/battle-scene.ts b/src/battle-scene.ts index b070ad303..7a90445f5 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -16,7 +16,7 @@ import { GameData } from './system/game-data'; import StarterSelectUiHandler from './ui/starter-select-ui-handler'; import { TextStyle, addTextObject } from './ui/text'; import { Moves, initMoves } from './data/move'; -import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave } from './modifier/modifier-type'; +import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getModifierType, modifierTypes } from './modifier/modifier-type'; import AbilityBar from './ui/ability-bar'; import { BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, applyAbAttrs, initAbilities } from './data/ability'; import Battle, { BattleType, FixedBattleConfig, fixedBattles } from './battle'; @@ -104,7 +104,7 @@ export default class BattleScene extends Phaser.Scene { private modifierBar: ModifierBar; private enemyModifierBar: ModifierBar; private modifiers: PersistentModifier[]; - private enemyModifiers: PokemonHeldItemModifier[]; + private enemyModifiers: PersistentModifier[]; public uiContainer: Phaser.GameObjects.Container; public ui: UI; @@ -1148,7 +1148,7 @@ export default class BattleScene extends Phaser.Scene { }); } - addEnemyModifier(itemModifier: PokemonHeldItemModifier): Promise { + addEnemyModifier(itemModifier: PersistentModifier): Promise { return new Promise(resolve => { itemModifier.add(this.enemyModifiers, false); this.updateModifiers(false).then(() => resolve()); @@ -1206,7 +1206,7 @@ export default class BattleScene extends Phaser.Scene { removePartyMemberModifiers(partyMemberIndex: integer): Promise { return new Promise(resolve => { const pokemonId = this.getParty()[partyMemberIndex].id; - const modifiersToRemove = this.modifiers.filter(m => (m instanceof PokemonHeldItemModifier) && (m as PokemonHeldItemModifier).pokemonId === pokemonId); + const modifiersToRemove = this.modifiers.filter(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === pokemonId); for (let m of modifiersToRemove) this.modifiers.splice(this.modifiers.indexOf(m), 1); this.updateModifiers().then(() => resolve()); @@ -1244,8 +1244,17 @@ export default class BattleScene extends Phaser.Scene { }); } - clearEnemyModifiers(): void { - this.enemyModifiers.splice(0, this.enemyModifiers.length); + generateEnemyBuffModifier(): void{ + const enemyBuffModifierTypes = [ modifierTypes.ENEMY_DAMAGE_BOOSTER, modifierTypes.ENEMY_DAMAGE_REDUCTION ]; + this.executeWithSeedOffset(() => { + (getModifierType(Phaser.Math.RND.pick(enemyBuffModifierTypes)).newModifier() as PersistentModifier).add(this.enemyModifiers, false); + }, Math.floor(this.currentBattle.waveIndex / 50)); + } + + clearEnemyHeldItemModifiers(): void { + const modifiersToRemove = this.enemyModifiers.filter(m => m instanceof PokemonHeldItemModifier); + for (let m of modifiersToRemove) + this.enemyModifiers.splice(this.enemyModifiers.indexOf(m), 1); this.updateModifiers(false).then(() => this.updateUIPositions()); } diff --git a/src/data/ability.ts b/src/data/ability.ts index 65af91071..567a6de62 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2,7 +2,7 @@ import Pokemon, { HitResult, PokemonMove } from "../pokemon"; import { Type } from "./type"; import * as Utils from "../utils"; import { BattleStat, getBattleStatName } from "./battle-stat"; -import { DamagePhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../battle-phases"; +import { DamagePhase, ObtainStatusEffectPhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../battle-phases"; import { getPokemonMessage } from "../messages"; import { Weather, WeatherType } from "./weather"; import { BattlerTag, BattlerTagType } from "./battler-tag"; @@ -290,9 +290,9 @@ export class PostDefendContactApplyStatusEffectAbAttr extends PostDefendAbAttr { } applyPostDefend(pokemon: Pokemon, attacker: Pokemon, move: PokemonMove, hitResult: HitResult, args: any[]): boolean { - if (move.getMove().hasFlag(MoveFlags.MAKES_CONTACT) && Utils.randInt(100) < this.chance) { + if (move.getMove().hasFlag(MoveFlags.MAKES_CONTACT) && Utils.randInt(100) < this.chance && !pokemon.status) { const effect = this.effects.length === 1 ? this.effects[0] : this.effects[Utils.randInt(this.effects.length)]; - return attacker.trySetStatus(effect); + pokemon.scene.unshiftPhase(new ObtainStatusEffectPhase(pokemon.scene, attacker.getBattlerIndex(), effect)); } return false; diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index a31d6e8f6..57c311448 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -660,6 +660,9 @@ export const modifierTypes = { 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'), + + ENEMY_DAMAGE_BOOSTER: () => new ModifierType('Damage Booster', 'Increases damage by 20%', (type, _args) => new Modifiers.EnemyDamageBoosterModifier(type), 'wl_item_drop'), + ENEMY_DAMAGE_REDUCTION: () => new ModifierType('Damage Reducer', 'Reduces incoming damage by 10%', (type, _args) => new Modifiers.EnemyDamageReducerModifier(type), 'wl_guard_spec') }; const modifierPool = { @@ -797,6 +800,13 @@ const trainerModifierPool = { ].map(m => { m.setTier(ModifierTier.MASTER); return m; }) }; +export function getModifierType(modifierTypeFunc: ModifierTypeFunc): ModifierType { + const modifierType = modifierTypeFunc(); + if (!modifierType.id) + modifierType.id = Object.keys(modifierTypes).find(k => modifierTypes[k] === modifierTypeFunc); + return modifierType; +} + let modifierPoolThresholds = {}; let ignoredPoolIndexes = {}; @@ -860,11 +870,8 @@ export function getPlayerModifierTypeOptionsForWave(waveIndex: integer, count: i export function getEnemyModifierTypesForWave(waveIndex: integer, count: integer, party: EnemyPokemon[], poolType: ModifierPoolType.WILD | ModifierPoolType.TRAINER, gameMode: GameMode): PokemonHeldItemModifierType[] { const ret = new Array(count).fill(0).map(() => getNewModifierTypeOption(party, poolType).type as PokemonHeldItemModifierType); - if ((gameMode === GameMode.CLASSIC && waveIndex === 200) || !(waveIndex % 1000)) { - const miniBlackHole = modifierTypes.MINI_BLACK_HOLE(); - miniBlackHole.id = 'MINI_BLACK_HOLE'; - ret.push(miniBlackHole); - } + if ((gameMode === GameMode.CLASSIC && waveIndex === 200) || !(waveIndex % 1000)) + ret.push(getModifierType(modifierTypes.MINI_BLACK_HOLE) as PokemonHeldItemModifierType); return ret; } diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 22ffbec06..4ac8eb57e 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -1,5 +1,5 @@ import * as ModifierTypes from './modifier-type'; -import { LearnMovePhase, LevelUpPhase, PokemonHealPhase } from "../battle-phases"; +import { LearnMovePhase, LevelUpPhase, ObtainStatusEffectPhase, PokemonHealPhase } from "../battle-phases"; import BattleScene from "../battle-scene"; import { getLevelTotalExp } from "../data/exp"; import { PokeballType } from "../data/pokeball"; @@ -15,6 +15,7 @@ import { TempBattleStat } from '../data/temp-battle-stat'; import { BerryType, getBerryEffectFunc, getBerryPredicate } from '../data/berry'; import { Species } from '../data/species'; import { BattleType } from '../battle'; +import { StatusEffect } from '../data/status-effect'; type ModifierType = ModifierTypes.ModifierType; export type ModifierPredicate = (modifier: Modifier) => boolean; @@ -1224,4 +1225,88 @@ export class ExtraModifierModifier extends PersistentModifier { getMaxStackCount(): integer { return 3; } +} + +export abstract class EnemyPersistentModifer extends PersistentModifier { + constructor(type: ModifierType, stackCount?: integer) { + super(type, stackCount); + } +} + +export class EnemyDamageBoosterModifier extends EnemyPersistentModifer { + constructor(type: ModifierType, stackCount?: integer) { + super(type, stackCount); + } + + match(modifier: Modifier): boolean { + return modifier instanceof EnemyDamageBoosterModifier; + } + + clone(): EnemyDamageBoosterModifier { + return new EnemyDamageBoosterModifier(this.type, this.stackCount); + } + + apply(args: any[]): boolean { + (args[0] as Utils.NumberHolder).value = Math.floor((args[0] as Utils.NumberHolder).value * (1 + 0.2 * this.getStackCount())); + + return true; + } + + getMaxStackCount(): number { + return 5; + } +} + +export class EnemyDamageReducerModifier extends EnemyPersistentModifer { + constructor(type: ModifierType, stackCount?: integer) { + super(type, stackCount); + } + + match(modifier: Modifier): boolean { + return modifier instanceof EnemyDamageReducerModifier; + } + + clone(): EnemyDamageReducerModifier { + return new EnemyDamageReducerModifier(this.type, this.stackCount); + } + + apply(args: any[]): boolean { + (args[0] as Utils.NumberHolder).value = Math.floor((args[0] as Utils.NumberHolder).value * (1 - 0.2 * this.getStackCount())); + + return true; + } + + getMaxStackCount(): number { + return 5; + } +} + +export class EnemyAttackStatusEffectChanceModifier extends EnemyPersistentModifer { + public effect: StatusEffect; + + constructor(type: ModifierType, effect: StatusEffect, stackCount?: integer) { + super(type, stackCount); + + this.effect = effect; + } + + match(modifier: Modifier): boolean { + return modifier instanceof EnemyAttackStatusEffectChanceModifier && modifier.effect === this.effect; + } + + clone(): EnemyDamageReducerModifier { + return new EnemyAttackStatusEffectChanceModifier(this.type, this.effect, this.stackCount); + } + + apply(args: any[]): boolean { + const target = (args[0] as Pokemon); + if (Utils.randInt(10) < this.getStackCount()) + target.scene.unshiftPhase(new ObtainStatusEffectPhase(target.scene, target.getBattlerIndex(), this.effect)); + + return true; + } + + getMaxStackCount(): number { + return 5; + } } \ No newline at end of file diff --git a/src/pokemon.ts b/src/pokemon.ts index 4ee9b2941..e6238302f 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -8,7 +8,7 @@ import * as Utils from './utils'; import { Type, TypeDamageMultiplier, getTypeDamageMultiplier } from './data/type'; import { getLevelTotalExp } from './data/exp'; import { Stat } from './data/pokemon-stat'; -import { AttackTypeBoosterModifier, PokemonBaseStatModifier, PokemonHeldItemModifier, ShinyRateBoosterModifier, SurviveDamageModifier, TempBattleStatBoosterModifier } from './modifier/modifier'; +import { AttackTypeBoosterModifier, EnemyDamageBoosterModifier, EnemyDamageReducerModifier, PokemonBaseStatModifier, PokemonHeldItemModifier, ShinyRateBoosterModifier, SurviveDamageModifier, TempBattleStatBoosterModifier } from './modifier/modifier'; import { PokeballType } from './data/pokeball'; import { Gender } from './data/gender'; import { initMoveAnim, loadMoveAnimAssets } from './data/battle-anims'; @@ -636,7 +636,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { let result: HitResult; const move = battlerMove.getMove(); const moveCategory = move.category; - let damage = 0; + let damage = new Utils.NumberHolder(0); const cancelled = new Utils.BooleanHolder(false); const typeless = !!move.getAttrs(TypelessAttr).length @@ -690,19 +690,19 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { applyAbAttrs(StabBoostAbAttr, source, null, stabMultiplier); if (!isTypeImmune) { - damage = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk / targetDef) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * weatherTypeMultiplier * ((Utils.randInt(15) + 85) / 100)) * criticalMultiplier; + damage.value = Math.ceil(((((2 * source.level / 5 + 2) * power.value * sourceAtk / targetDef) / 50) + 2) * stabMultiplier.value * typeMultiplier.value * weatherTypeMultiplier * ((Utils.randInt(15) + 85) / 100)) * criticalMultiplier; if (isPhysical && source.status && source.status.effect === StatusEffect.BURN) - damage = Math.floor(damage / 2); + damage.value = Math.floor(damage.value / 2); move.getAttrs(HitsTagAttr).map(hta => hta as HitsTagAttr).filter(hta => hta.doubleDamage).forEach(hta => { if (this.getTag(hta.tagType)) - damage *= 2; + damage.value *= 2; }); } const fixedDamage = new Utils.IntegerHolder(0); applyMoveAttrs(FixedDamageAttr, source, this, move, fixedDamage); if (!isTypeImmune && fixedDamage.value) { - damage = fixedDamage.value; + damage.value = fixedDamage.value; isCritical = false; result = HitResult.EFFECTIVE; } @@ -720,15 +720,21 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { result = HitResult.NO_EFFECT; } + if (!source.isPlayer()) + this.scene.applyModifiers(EnemyDamageBoosterModifier, false, damage); + + if (!this.isPlayer()) + this.scene.applyModifiers(EnemyDamageReducerModifier, false, damage); + if (damage) { this.scene.unshiftPhase(new DamagePhase(this.scene, this.getBattlerIndex(), result as DamageResult)); if (isCritical) this.scene.queueMessage('A critical hit!'); this.scene.setPhaseQueueSplice(); - damage = Math.min(damage, this.hp); - this.damage(damage); - source.turnData.damageDealt += damage; - this.turnData.attacksReceived.unshift({ move: move.id, result: result as DamageResult, damage: damage, critical: isCritical, sourceId: source.id }); + damage.value = Math.min(damage.value, this.hp); + this.damage(damage.value); + source.turnData.damageDealt += damage.value; + this.turnData.attacksReceived.unshift({ move: move.id, result: result as DamageResult, damage: damage.value, critical: isCritical, sourceId: source.id }); } switch (result) { diff --git a/src/system/game-data.ts b/src/system/game-data.ts index fc988fa8f..62d6d675e 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -274,7 +274,7 @@ export class GameData { } for (let enemyModifierData of sessionData.enemyModifiers) { - const modifier = enemyModifierData.toModifier(scene, modifiersModule[enemyModifierData.className]) as PokemonHeldItemModifier; + const modifier = enemyModifierData.toModifier(scene, modifiersModule[enemyModifierData.className]); if (modifier) scene.addEnemyModifier(modifier); }