From 355bfc76bf77e45491998b7381ea0c7eadcc14d3 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Fri, 21 Apr 2023 15:45:48 -0400 Subject: [PATCH] Add mini black hole item --- public/images/items.json | 1981 ++++++++++++----------- public/images/items.png | Bin 18807 -> 18917 bytes public/images/items/mini_black_hole.png | Bin 0 -> 187 bytes src/battle-phases.ts | 38 +- src/battle-scene.ts | 30 +- src/data/battle-tag.ts | 1 - src/modifier/modifier-type.ts | 15 +- src/modifier/modifier.ts | 34 + src/ui/confirm-ui-handler.ts | 1 - 9 files changed, 1088 insertions(+), 1012 deletions(-) create mode 100644 public/images/items/mini_black_hole.png diff --git a/public/images/items.json b/public/images/items.json index 23ce0ee71..75212d733 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -976,28 +976,7 @@ } }, { - "filename": "moon_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 157, - "y": 68, - "w": 23, - "h": 21 - } - }, - { - "filename": "deep_sea_tooth", + "filename": "mini_black_hole", "rotated": false, "trimmed": true, "sourceSize": { @@ -1006,19 +985,19 @@ }, "spriteSourceSize": { "x": 5, - "y": 6, + "y": 5, "w": 22, - "h": 21 + "h": 22 }, "frame": { - "x": 180, + "x": 157, "y": 68, "w": 22, - "h": 21 + "h": 22 } }, { - "filename": "mystic_water", + "filename": "metal_coat", "rotated": false, "trimmed": true, "sourceSize": { @@ -1028,14 +1007,35 @@ "spriteSourceSize": { "x": 6, "y": 5, - "w": 20, - "h": 23 + "w": 19, + "h": 22 }, "frame": { - "x": 202, + "x": 179, + "y": 68, + "w": 19, + "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": 20, - "h": 23 + "w": 24, + "h": 20 } }, { @@ -1059,6 +1059,69 @@ "h": 21 } }, + { + "filename": "choice_specs", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 24, + "h": 18 + }, + "frame": { + "x": 198, + "y": 86, + "w": 24, + "h": 18 + } + }, + { + "filename": "poison_barb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 222, + "y": 92, + "w": 21, + "h": 21 + } + }, + { + "filename": "moon_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 23, + "h": 21 + }, + "frame": { + "x": 18, + "y": 98, + "w": 23, + "h": 21 + } + }, { "filename": "protector", "rotated": false, @@ -1075,7 +1138,7 @@ }, "frame": { "x": 18, - "y": 98, + "y": 119, "w": 22, "h": 22 } @@ -1096,34 +1159,13 @@ }, "frame": { "x": 18, - "y": 120, + "y": 141, "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": 18, - "y": 142, - "w": 22, - "h": 22 - } - }, - { - "filename": "binding_band", + "filename": "deep_sea_tooth", "rotated": false, "trimmed": true, "sourceSize": { @@ -1133,14 +1175,14 @@ "spriteSourceSize": { "x": 5, "y": 6, - "w": 23, - "h": 20 + "w": 22, + "h": 21 }, "frame": { "x": 18, - "y": 164, - "w": 23, - "h": 20 + "y": 163, + "w": 22, + "h": 21 } }, { @@ -1165,7 +1207,7 @@ } }, { - "filename": "metal_coat", + "filename": "mystic_water", "rotated": false, "trimmed": true, "sourceSize": { @@ -1175,14 +1217,35 @@ "spriteSourceSize": { "x": 6, "y": 5, - "w": 19, - "h": 22 + "w": 20, + "h": 23 }, "frame": { "x": 22, "y": 208, - "w": 19, - "h": 22 + "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 + }, + "frame": { + "x": 41, + "y": 98, + "w": 15, + "h": 23 } }, { @@ -1201,7 +1264,7 @@ }, "frame": { "x": 40, - "y": 98, + "y": 121, "w": 16, "h": 24 } @@ -1222,95 +1285,11 @@ }, "frame": { "x": 40, - "y": 122, + "y": 145, "w": 16, "h": 24 } }, - { - "filename": "choice_specs", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 40, - "y": 146, - "w": 24, - "h": 18 - } - }, - { - "filename": "tm_dark", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 41, - "y": 164, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_dragon", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 41, - "y": 186, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_electric", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 41, - "y": 208, - "w": 22, - "h": 22 - } - }, { "filename": "protein", "rotated": false, @@ -1333,7 +1312,7 @@ } }, { - "filename": "soft_sand", + "filename": "tm_bug", "rotated": false, "trimmed": true, "sourceSize": { @@ -1341,20 +1320,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 + "x": 5, + "y": 5, + "w": 22, + "h": 22 }, "frame": { "x": 72, "y": 91, - "w": 24, - "h": 20 + "w": 22, + "h": 22 } }, { - "filename": "shell_bell", + "filename": "tm_dark", "rotated": false, "trimmed": true, "sourceSize": { @@ -1363,19 +1342,19 @@ }, "spriteSourceSize": { "x": 5, - "y": 7, - "w": 23, - "h": 20 + "y": 5, + "w": 22, + "h": 22 }, "frame": { - "x": 96, + "x": 94, "y": 91, - "w": 23, - "h": 20 + "w": 22, + "h": 22 } }, { - "filename": "deep_sea_scale", + "filename": "tm_dragon", "rotated": false, "trimmed": true, "sourceSize": { @@ -1384,14 +1363,77 @@ }, "spriteSourceSize": { "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 116, + "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, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 158, + "y": 90, + "w": 22, + "h": 22 + } + }, + { + "filename": "razor_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, "y": 6, - "w": 22, + "w": 18, "h": 20 }, "frame": { - "x": 119, - "y": 91, - "w": 22, + "x": 180, + "y": 90, + "w": 18, "h": 20 } }, @@ -1432,7 +1474,7 @@ }, "frame": { "x": 72, - "y": 111, + "y": 113, "w": 22, "h": 22 } @@ -1453,7 +1495,7 @@ }, "frame": { "x": 94, - "y": 111, + "y": 113, "w": 22, "h": 22 } @@ -1474,32 +1516,11 @@ }, "frame": { "x": 116, - "y": 111, + "y": 113, "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": 141, - "y": 91, - "w": 20, - "h": 20 - } - }, { "filename": "tm_flying", "rotated": false, @@ -1516,7 +1537,7 @@ }, "frame": { "x": 138, - "y": 111, + "y": 113, "w": 22, "h": 22 } @@ -1535,137 +1556,32 @@ "w": 22, "h": 22 }, - "frame": { - "x": 161, - "y": 89, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_grass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, "frame": { "x": 160, - "y": 111, - "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": 183, - "y": 89, - "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": 182, - "y": 111, - "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": 205, - "y": 89, - "w": 17, - "h": 23 - } - }, - { - "filename": "poison_barb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 222, - "y": 92, - "w": 21, - "h": 21 - } - }, - { - "filename": "razor_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 18, - "h": 20 - }, - "frame": { - "x": 204, "y": 112, - "w": 18, - "h": 20 + "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 } }, { @@ -1690,7 +1606,7 @@ } }, { - "filename": "dragon_scale", + "filename": "hyper_potion", "rotated": false, "trimmed": true, "sourceSize": { @@ -1698,62 +1614,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 + "x": 8, + "y": 5, + "w": 17, + "h": 23 }, "frame": { - "x": 72, - "y": 133, - "w": 24, - "h": 18 + "x": 56, + "y": 140, + "w": 17, + "h": 23 } }, { - "filename": "black_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 96, - "y": 133, - "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": 119, - "y": 133, - "w": 23, - "h": 17 - } - }, - { - "filename": "dubious_disc", + "filename": "tm_grass", "rotated": false, "trimmed": true, "sourceSize": { @@ -1762,15 +1636,57 @@ }, "spriteSourceSize": { "x": 5, - "y": 7, + "y": 5, "w": 22, - "h": 19 + "h": 22 }, "frame": { - "x": 142, - "y": 133, + "x": 73, + "y": 135, "w": 22, - "h": 19 + "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 } }, { @@ -1788,54 +1704,12 @@ "h": 22 }, "frame": { - "x": 164, - "y": 133, + "x": 139, + "y": 135, "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": 186, - "y": 133, - "w": 20, - "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": 206, - "y": 132, - "w": 15, - "h": 23 - } - }, { "filename": "tm_poison", "rotated": false, @@ -1851,432 +1725,12 @@ "h": 22 }, "frame": { - "x": 221, + "x": 161, "y": 134, "w": 22, "h": 22 } }, - { - "filename": "silver_powder", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 11, - "w": 24, - "h": 15 - }, - "frame": { - "x": 64, - "y": 151, - "w": 24, - "h": 15 - } - }, - { - "filename": "tm_psychic", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 63, - "y": 166, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 63, - "y": 188, - "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": 63, - "y": 210, - "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": 85, - "y": 166, - "w": 17, - "h": 23 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 85, - "y": 189, - "w": 17, - "h": 23 - } - }, - { - "filename": "golden_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 85, - "y": 212, - "w": 17, - "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": 88, - "y": 151, - "w": 15, - "h": 15 - } - }, - { - "filename": "tm_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 103, - "y": 150, - "w": 22, - "h": 22 - } - }, - { - "filename": "water_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 102, - "y": 172, - "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": 102, - "y": 194, - "w": 22, - "h": 22 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 125, - "y": 150, - "w": 17, - "h": 22 - } - }, - { - "filename": "x_attack", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 142, - "y": 152, - "w": 22, - "h": 22 - } - }, - { - "filename": "upgrade", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 164, - "y": 155, - "w": 22, - "h": 19 - } - }, - { - "filename": "x_defense", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 186, - "y": 155, - "w": 22, - "h": 22 - } - }, - { - "filename": "oval_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 - }, - "frame": { - "x": 124, - "y": 172, - "w": 18, - "h": 19 - } - }, - { - "filename": "x_sp_atk", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 124, - "y": 191, - "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": 142, - "y": 174, - "w": 20, - "h": 17 - } - }, - { - "filename": "x_sp_def", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 162, - "y": 174, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_speed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 177, - "w": 22, - "h": 22 - } - }, { "filename": "leftovers", "rotated": false, @@ -2292,12 +1746,54 @@ "h": 22 }, "frame": { - "x": 146, - "y": 191, + "x": 182, + "y": 110, "w": 15, "h": 22 } }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 183, + "y": 132, + "w": 17, + "h": 23 + } + }, + { + "filename": "tm_psychic", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 200, + "y": 122, + "w": 22, + "h": 22 + } + }, { "filename": "zoom_lens", "rotated": false, @@ -2313,14 +1809,14 @@ "h": 21 }, "frame": { - "x": 102, - "y": 216, + "x": 222, + "y": 134, "w": 21, "h": 21 } }, { - "filename": "lum_berry", + "filename": "deep_sea_scale", "rotated": false, "trimmed": true, "sourceSize": { @@ -2328,20 +1824,209 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 + "x": 5, + "y": 6, + "w": 22, + "h": 20 }, "frame": { - "x": 161, - "y": 196, - "w": 20, - "h": 19 + "x": 200, + "y": 144, + "w": 22, + "h": 20 } }, { - "filename": "magnet", + "filename": "silver_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 11, + "w": 24, + "h": 15 + }, + "frame": { + "x": 40, + "y": 169, + "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": 41, + "y": 184, + "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": 42, + "y": 206, + "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, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 119, + "y": 157, + "w": 22, + "h": 22 + } + }, + { + "filename": "water_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 141, + "y": 157, + "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": 163, + "y": 156, + "w": 22, + "h": 22 + } + }, + { + "filename": "everstone", "rotated": false, "trimmed": true, "sourceSize": { @@ -2350,15 +2035,15 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, + "y": 8, "w": 20, - "h": 20 + "h": 17 }, "frame": { - "x": 181, - "y": 199, + "x": 222, + "y": 155, "w": 20, - "h": 20 + "h": 17 } }, { @@ -2376,12 +2061,306 @@ "h": 17 }, "frame": { - "x": 208, + "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, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 80, + "y": 177, + "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, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 163, + "y": 178, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_atk", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 81, + "y": 199, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_def", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 81, + "y": 221, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_speed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 185, + "y": 181, + "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": 103, + "y": 198, + "w": 20, + "h": 20 + } + }, + { + "filename": "magnet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 123, + "y": 198, + "w": 20, + "h": 20 + } + }, { "filename": "mb", "rotated": false, @@ -2397,33 +2376,12 @@ "h": 20 }, "frame": { - "x": 220, - "y": 156, + "x": 143, + "y": 198, "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": 201, - "y": 199, - "w": 19, - "h": 20 - } - }, { "filename": "pb", "rotated": false, @@ -2439,33 +2397,12 @@ "h": 20 }, "frame": { - "x": 124, - "y": 213, + "x": 103, + "y": 218, "w": 20, "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": 144, - "y": 213, - "w": 17, - "h": 20 - } - }, { "filename": "pb_gold", "rotated": false, @@ -2481,75 +2418,12 @@ "h": 20 }, "frame": { - "x": 161, - "y": 215, + "x": 123, + "y": 218, "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": 181, - "y": 219, - "w": 20, - "h": 19 - } - }, - { - "filename": "miracle_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 19, - "h": 19 - }, - "frame": { - "x": 201, - "y": 219, - "w": 19, - "h": 19 - } - }, - { - "filename": "spell_tag", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 206, - "y": 177, - "w": 19, - "h": 21 - } - }, { "filename": "ub", "rotated": false, @@ -2565,11 +2439,158 @@ "h": 20 }, "frame": { - "x": 220, - "y": 198, + "x": 143, + "y": 218, "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, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 163, + "y": 221, + "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, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 202, + "y": 203, + "w": 17, + "h": 20 + } + }, + { + "filename": "miracle_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 19, + "h": 19 + }, + "frame": { + "x": 202, + "y": 223, + "w": 19, + "h": 19 + } + }, + { + "filename": "oval_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 19 + }, + "frame": { + "x": 219, + "y": 189, + "w": 18, + "h": 19 + } } ] } @@ -2577,6 +2598,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:cd6f7e7d7ca088a48736507750d678e7:2e6f80a76c6bb03e5060479cd463686a:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:765f253f422caab501ac3462c455c37f:f48edcc7cd6d3b90aef5a1f31e2529df:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 56025517826ad8959d95b9f98edb72344d8a7c06..16b7e5bc3ab5fad6525e5daaa6ca03e5f6097d49 100644 GIT binary patch literal 18917 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 Ef{&9sdjJ3c literal 18807 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®x8NM`?J25grOQGQqK@ZE%AC^DU zSn||8)ADCV|`^UxI&nZ(vCmMG@`%?-As5AF# z<6nQZ*h(qI4|GSwPWwva$no28?joQ;AS3j!@y;brlDVJh-S}2EozEcTO~{;KJUuWx z{M{$s^?KS*bYh~FpJ;fUW!X;xJp zix+=IFWf%o$tRzj<76H--nHb3y0hhsVz6oJ`Sa^{;jnuC{HFEiGr%Nf^LyG)^u>$z z(|$nQb(c?y{?niS#K`#dOQ<6QK|5;?qPzu0Upjh8%u z0{TlsXz4l#4gX}i6FC0?LXNVA#m76AJoW3|9hLjwu9v0WR|H39k#){AmplzC zQ6?fckY_8EH?3E_7G*wjrd_*sO$O8Fc1k zQ6cP%L>J7L;1WY${IuedP+2gGCl3l{Wff%V8Wx5R7RX3E*l%R|6pY)iKGSX<=_7Rh^wUeEGP?Gs z^0YJ%$YQ)qKo1W8}#76*=SoOLv9T3oGzzUkX)c-~6L>tWNT zUCzvhs3~GgVq!+*{7)|u@I||;n$Oep*g`J+X5m5}sQ5oWX1<`388EgIG^$meooyGU zVC2ZI1(I1pOJZb>gSzTM&Kv&gh3&FE+o0YuSQAU;Pcd9yMCc0enoxOdAs4=l)C;%J z$6zCH+i%5|nKFml;>ye8%8_`}Ci!R@7@?RExpiy7{9+r6iEF#n=^g7B8N45%yk)TI zB-on?IS+-tR1u&W>%WDZS_h+RZ`mSzTMG^FAHsnC)b6QQLMQzb)ic zA~<^%na`em@Il24QegmlzlD@JTkcy~w{DYIYRvMmB#{l7Tf4Rmi3;+VF~96)LIVMpl`*n|lnxGKJh(F{8?u z(v>r|5*~qbaV*T<|J-wak3UXKv{DlPX=tD%44IjD3qT;5i8;GG%8J{+pM$p2vuoF` z1qB0>o!f@QSx3zLvdK(F$ch=lZa`)swd~S_T+X}85ZaO7BJ#wEeouV%zWGx}58twd zQ%^-qd&M|@xsZvuTx6Zup_?`hGB%mC9!OE!+&08#9gRWeUm~^AZ)l!Ct{`L)YE@?@ z6DKT!&^UWPeK>?h<% z>^B7T_Po5#f;r5NU}4NGWEQ@?-)4rB6SK3^LQ*U%JNsl>w&T&>iREvoWx42)w@>1FG}1n*y;xXy8D{wxQ=?mZo-2v7v!7EsOO*+F;>om$6VobfkMB1#k&yc#vw0$Wft5f~v3i_9tnM5YyW!RfVMglSN2=_2zjuARj^vb5s`?bu-Nx-Nv z5VJ<^_x8-0E7#;&*36mxR?c)V`|720_4OwFwcp_-XztCnYqQ1%vT=mFbZx#dES!74 zmYJSW8p6;MvrmQ?Dz90C(77`qx1Wm{GJK?SLR~sn=Xg!tZn&YQrUt%+`q=hML2Muo zTZSPF^Lot+IkK#tlsWNyLfy>OIeyF_LMlQ#Cw?<2wU~K*X)okaz;-&e{BcrbJKGk##xns4 zIVF1{0Z%+>ldXX@4E^@Zerp^m<8YmL{`~m_pRX?0?l`2{*&`)#A|%!r6TkWMXYwxG zne(qleaNfWzI}UzA97GF$L;IyS!N8^6A{{AUWvZFhEzt^o@qLEB0(o6`h0;y7zo$y zI0QNxXS8eNM6iX1ni|PmmhXTDc!#zDMf$yYn;DIXuY34F=4?VvL!m=7GmvL1mHVwU zkbRh-_`LFRS4T#fk-4g>V@G>hn<$WxSp8$zqL|B!6(LMqSRmG{MH-DgddLT~aUqAI z_8Z@7wtJG6c%-GJ!AWC30}yiV%(n^n?S3XQ8p)hk3o~@A0z~eFzFkFDt)CAekrNd& zrKki=GX;A^2)4iT&O?IPN-2m0gSfaj66z=e)UqN(|1C{eh~e3Sc_xPIw-MUDVNWVs z7D-(TGBH;Xb56$`h89vo8YK&itb-U#or=)&^YiD^iV%7FGo5v+nNv~<3dAK7#Pmq- z`mO%2xMFq~rNPN?+(FgQHF zO~@;uU%xeu$Re0)i`msf@S}?RGe7bPweDEWzKzsrHT01v0yi_y-{Lyuo7Nv9bYV(L zVM+mA3$6i<7%^gfmg5AbT4(qfmG8V`uZ)7Z_sxZ!Fn8|UTIWS8g{@iXUS~yG*FL2h zk~5@Q#4tp~&RmV%n^$Qdb&c?C7MgnVmMt^gr+o9;+Q`C4t-fG}3F{-XBJHYaZR`6G zdE7Wee&-#rcx3K<3nn1*ga!41uKV%GftZI#X6Oi2;%Pl_g`hDKT)A>ZFk=>qo!NcL zH!~MTa@`YwCG&*!$Xx7+oQ_`HH^X$>afKO#JPw(u9j;!zZvokT2D9+)@1*KU_wk4p zKM^x@9D<|t5N7%7l`F`6<;tN$l6gK^ewp)>Z+M3sxIn5ueY#SA{rX5`UcbJDyJnL< zV}`lD55~PySQxxE+_DM_#|0M(X6q_FS<~=sfCnF>=hh!S{GF_Y)Xbf*8&`K4LME91 ziquywTp;E|$viWkqPBU;H;z*nz*21WRoycyE2~9|30s}eh}^6hBF~timVK>Vi_qbP z5I#;b(-Rqxcdq?B1}1(GKRx*1w;A94?+oS)q0{&~b?h_*06z`E|H#SH{z`TM?NDOk z4T5=Qewl^j<|*Is&_fRu7Sc8#iL44@I9RnV6$eeW= zr+m{b`+^jT+7z*4MJ|3&JxUauP6V48&Zi5}GNi?1Ls0 zGBV@e9K+IOSIHAx&+^5Vv13158Txj!bg6S;;aXA|UAwT-ak`s64yi3OlgQn% zLw^kpIb8<8!f>VXxM0)yOlCr5zh-pl-HeR7cc-tH<>uKG zhW2GBX!u+)V~_rPk+bWQ$Ut2istu>FF^L1#Jvr^9ywj|Ej@VjNg~%heD&}i&jiG0t z+EQg?M&$6qcL?~MapuaCDN|NWksTVDO=QW8ncn5g-Mb6u%a`TmSw4%CWERkXs5Qd3 zk$KUgMIHgL?n6bq>z+uR@{m*g5nG9t7Q|?sSFgTCDx+(!mgf;Lb0LQ7cM#e*ug#(Z z?dX6?5X@goX0)%{w$-;oyL&Q+$yu0Wo~669oB2DhdXG@hLT4b))+*}gv@Pe%p4|}LmbRP=0)G(?hY^Y33{u3 z>=6)h-_MdsVhEq)TmhXbi=WZWNu<* zRHbiX;FVp?gk3WqM_B)OL0X#0HgsRlkN6t;*Oy-w$jBT*d+Cum#Afzh2dJ5Y&1<{J zL98|_!M?F$1+)EhLrLr_6*uH31}OFhsfSK}%Nei#)IqM5LS`ihGe?B+lg!mo7@q3@ z)x?kbm8ExLfrD5!!@hkCZ9d(Q+s8~iDwv}xOD7svV$`VqU7*exe!x9n^;#chE?8ma zk3Y7N1FZuzn1e0l;jqypwi;>XePd&biel;MhJyz;QHKLel+00;m8JS|I=~Np>T+XU zPvd}=Y%UdDE5>SJcAWn~$OH|wuLGp!ECFp*S8L`*jWqG1MPk!8A@7S72ZawFteBzS z7>16DLX}Ik`T`k+t{qwuqfG+$Z6gz!pT6YxR7B{W=XBTz@id{jHWAZGYr#x>)u5SY zZ^TcF=)+)+<%7bTAh69$(7wt_UnLSh^NjR~E~6}qp_f1{i#?&`*s*@lpq3J8=%l1Q zdtzfFBmJlWY76)QFEl@)f|$kp$dXBfgV~l@Jlzm^n+*O)RK92x=osG^R-YbbDVh6g z<{Ry*79Au?6LqkWElWX9nxvNo@|v+5^fEalw)P-(WMr45?Iw{I z;3lfDjN+#ol4B44s7V9O?Bo6MjSyHeLzn)elyfVg#o?))u7_DXrI3&w%F-)(ZpUp9hI%sSxJ>5_u3z>NvvDoc~yp5jO80ui|ubDNn+7Tu?v*FtU8g4Mw z$x%a6F^iE;#4!F{vm0@Lrej}HizsSS$VSg@AWwO~ z07exKAjf`Yqd5FvNtgcp1+rqck>}3crP8UEhD{2{94mB=bu#n2#_5A!coNSWG840~E=$A#ADyHTGO|M;W)qp8v7Ho& z%%VRda~A~-R%N9%D<;PEkOU;=2Y+^|n>ko8>jcz`d0(u4y5V3YvpA@)lA<<+Z1n5~ zl37A`(ah-58hPBjPGWlGL|*S=4zrm_>OFLl(h~VJazajviE%>P#I-X+utW|va&FJD zDpo(;P$Ls_X=Rkl2*J z(TX|NkJ&`Fp+OP%>QuXLgF?4q?dkU8rNeMZSl%uD3CIQSRA zY{kb5=w0|pG0V9g1Ix#Tn#jz&Ig*c2+9Q!SC&})pk<}9eBr^78g07vJ1g_?7hDNgB zH$HRaYgDS0I?7r3suYup%F0lUjIB3HY9TW-&z-A<9;fy%dptJOy#zGr_>GaVIRA}} z9YsHHvtpiQBMYIm$}DrQI-lqwwpKb)UXogvv5v{B?kRPyEH&$%Hxe{im;RDDUg?a` zyNoAj`aL$3p`#TtG9O>Eq_}9$=SY0x@#Dvtxw5j-kXZ;Vm`~S3X8XQXPO#^bUtm$4 zbx)*@s&wrN#5ahAGb$po70%SuoJi?;OK)aj26B-1By!nb01O4OI(3WxAb|dSXeJ zqGBdql3L8nF~mG80l%g>m`{_?^+v9155x7Y_w+v&f(H4T(yFt5}H8 y2Yd8@A0F~|dGWrl%lU8nxBc7xZU43(lKo#(c(eYb7hV+r00005YI}kWPD~%wIc+)w7m1Wk2Loye8PQB%<$h zQVy7TW!sz(cY{lZih^Vgnq+KNT)I!)OoYvb#ZA`WRl~)igaYxS&5MkrM6P~ZkTK!H hDo-;mw}ToC3_W`aWLS1?-wkvPgQu&X%Q~loCIE-&Lv;WE literal 0 HcmV?d00001 diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 9bfbf68d0..d7b7d71f1 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -5,7 +5,7 @@ import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, ConditionalMoveA import { Mode } from './ui/ui'; import { Command } from "./ui/command-ui-handler"; import { Stat } from "./data/pokemon-stat"; -import { BerryModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, HealingBoosterModifier, HitHealModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, TempBattleStatBoosterModifier, TurnHealModifier } from "./modifier/modifier"; +import { BerryModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, HealingBoosterModifier, HeldItemTransferModifier, HitHealModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, TempBattleStatBoosterModifier, TurnHealModifier } from "./modifier/modifier"; import PartyUiHandler, { PartyOption, PartyUiMode } from "./ui/party-ui-handler"; import { doPokeballBounceAnim, getPokeballAtlasKey, getPokeballCatchMultiplier, getPokeballTintColor, PokeballType } from "./data/pokeball"; import { CommonAnim, CommonBattleAnim, MoveAnim, initMoveAnim, loadMoveAnimAssets } from "./data/battle-anims"; @@ -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 { ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, getEnemyModifierTypesForWave, getPlayerModifierTypeOptionsForWave, regenerateModifierPoolThresholds } from "./modifier/modifier-type"; +import { ModifierTypeOption, PokemonModifierType, PokemonMoveModifierType, getPlayerModifierTypeOptionsForWave, regenerateModifierPoolThresholds } from "./modifier/modifier-type"; import SoundFade from "phaser3-rex-plugins/plugins/soundfade"; import { BattleTagLapseType, BattleTagType, HideSpriteTag as HiddenTag } from "./data/battle-tag"; import { getPokemonMessage } from "./messages"; @@ -293,6 +293,8 @@ export class SummonPhase extends BattlePhase { const playerPokemon = this.scene.getPlayerPokemon(); + this.scene.applyModifiers(HeldItemTransferModifier, true, this.scene); + pokeball.setVisible(true); this.scene.tweens.add({ targets: pokeball, @@ -860,8 +862,6 @@ abstract class MoveEffectPhase extends PokemonPhase { const overridden = new Utils.BooleanHolder(false); - console.log(this.move.getName()); - applyMoveAttrs(OverrideMoveEffectAttr, user, target, this.move.getMove(), overridden).then(() => { if (overridden.value) { @@ -1843,30 +1843,16 @@ export class SelectModifierPhase extends BattlePhase { if (toSlotIndex !== undefined && fromSlotIndex < 6 && toSlotIndex < 6 && fromSlotIndex !== toSlotIndex && itemIndex > -1) { this.scene.ui.setMode(Mode.MODIFIER_SELECT); const itemModifiers = this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier - && (m as PokemonHeldItemModifier).pokemonId === party[fromSlotIndex].id) as PokemonHeldItemModifier[]; + && (m as PokemonHeldItemModifier).pokemonId === party[fromSlotIndex].id) as PokemonHeldItemModifier[]; const itemModifier = itemModifiers[itemIndex]; - const newItemModifier = itemModifier.clone() as PokemonHeldItemModifier; - newItemModifier.pokemonId = party[toSlotIndex].id; - const matchingModifier = party[toSlotIndex].scene.findModifier(m => m instanceof PokemonHeldItemModifier - && (m as PokemonHeldItemModifier).matchType(itemModifier)) as PokemonHeldItemModifier; - let removeOld = true; - if (matchingModifier) { - const newStackCount = matchingModifier.stackCount + itemModifier.stackCount; - const maxStackCount = matchingModifier.getMaxStackCount(); - if (newStackCount > maxStackCount) { - itemModifier.stackCount = newStackCount - maxStackCount; - newItemModifier.stackCount = maxStackCount; - removeOld = !itemModifier.stackCount; - } - } - if (!removeOld || this.scene.removeModifier(itemModifier)) { - this.scene.addModifier(newItemModifier, true).then(() => super.end()); - this.scene.ui.clearText(); - this.scene.ui.setMode(Mode.MESSAGE); - return; - } + this.scene.tryTransferHeldItemModifier(itemModifier, party[toSlotIndex], true).then(success => { + if (success) { + this.scene.ui.clearText(); + this.scene.ui.setMode(Mode.MESSAGE); + } else + this.scene.ui.setMode(Mode.MODIFIER_SELECT, typeOptions, modifierSelectCallback); + }); } - this.scene.ui.setMode(Mode.MODIFIER_SELECT, typeOptions, modifierSelectCallback); }, PartyUiHandler.FilterItemMaxStacks); return; } diff --git a/src/battle-scene.ts b/src/battle-scene.ts index a13138cf1..7de36c4a3 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1,6 +1,6 @@ import Phaser from 'phaser'; import { Biome } from './data/biome'; -import UI from './ui/ui'; +import UI, { Mode } from './ui/ui'; import { EncounterPhase, SummonPhase, CommandPhase, NextEncounterPhase, NewBiomeEncounterPhase, SelectBiomePhase, SelectStarterPhase, MessagePhase } from './battle-phases'; import Pokemon, { PlayerPokemon, EnemyPokemon } from './pokemon'; import PokemonSpecies, { allSpecies, getPokemonSpecies } from './data/pokemon-species'; @@ -662,6 +662,34 @@ export default class BattleScene extends Phaser.Scene { }); } + tryTransferHeldItemModifier(itemModifier: PokemonHeldItemModifier, target: Pokemon, playSound: boolean): Promise { + return new Promise(resolve => { + const newItemModifier = itemModifier.clone() as PokemonHeldItemModifier; + newItemModifier.pokemonId = target.id; + const matchingModifier = target.scene.findModifier(m => m instanceof PokemonHeldItemModifier + && (m as PokemonHeldItemModifier).matchType(itemModifier)) as PokemonHeldItemModifier; + let removeOld = true; + if (matchingModifier) { + const maxStackCount = matchingModifier.getMaxStackCount(); + if (matchingModifier.stackCount >= maxStackCount) { + resolve(false); + return; + } + const newStackCount = matchingModifier.stackCount + itemModifier.stackCount; + if (newStackCount > maxStackCount) { + itemModifier.stackCount = newStackCount - maxStackCount; + newItemModifier.stackCount = maxStackCount; + removeOld = !itemModifier.stackCount; + } + } + if (!removeOld || this.removeModifier(itemModifier)) { + this.addModifier(newItemModifier, playSound).then(() => resolve(true)); + return; + } + resolve(false); + }); + } + removePartyMemberModifiers(partyMemberIndex: integer): Promise { return new Promise(resolve => { const pokemonId = this.getParty()[partyMemberIndex].id; diff --git a/src/data/battle-tag.ts b/src/data/battle-tag.ts index b352bb60d..21040e064 100644 --- a/src/data/battle-tag.ts +++ b/src/data/battle-tag.ts @@ -281,7 +281,6 @@ export class ProtectedTag extends BattleTag { } lapse(pokemon: Pokemon, lapseType: BattleTagLapseType): boolean { - console.log(pokemon, BattleTagLapseType[lapseType]); if (lapseType === BattleTagLapseType.CUSTOM) { new CommonBattleAnim(CommonAnim.PROTECT, pokemon).play(pokemon.scene); pokemon.scene.unshiftPhase(new MessagePhase(pokemon.scene, getPokemonMessage(pokemon, '\nprotected itself!'))); diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index a3a2b9c26..27c838309 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -425,6 +425,12 @@ class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator { } } +class HeldItemTransferModifierType extends ModifierType { + constructor(name: string, iconImage?: string, group?: string, soundName?: string) { + super(name, 'All held items in your party are transferred to a POKéMON on summon', (type, _args) => new Modifiers.HeldItemTransferModifier(type), iconImage, group, soundName); + } +} + class WeightedModifierType { public modifierType: ModifierType; public weight: integer | Function; @@ -521,6 +527,8 @@ const modifierTypes = { (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)), + + 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', (type, _args) => new Modifiers.ExtraModifierModifier(type), 'pb_gold', null, 'pb_bounce_1'), @@ -600,8 +608,9 @@ const modifierPool = { modifierTypes.EXP_BALANCE ].map(m => { m.setTier(ModifierTier.ULTRA); return m; }), [ModifierTier.MASTER]: [ - modifierTypes.MASTER_BALL, - new WeightedModifierType(modifierTypes.SHINY_CHARM, 2) + new WeightedModifierType(modifierTypes.MASTER_BALL, 3), + new WeightedModifierType(modifierTypes.SHINY_CHARM, 2), + modifierTypes.MINI_BLACK_HOLE ].map(m => { m.setTier(ModifierTier.MASTER); return m; }), [ModifierTier.LUXURY]: [ modifierTypes.GOLDEN_EXP_CHARM, @@ -690,8 +699,8 @@ export function getEnemyModifierTypesForWave(waveIndex: integer, count: integer, function getNewModifierTypeOption(party: Pokemon[], player?: boolean, tier?: ModifierTier, upgrade?: boolean): ModifierTypeOption { if (player === undefined) player = true; - const tierValue = Utils.randInt(256); if (tier === undefined) { + const tierValue = Utils.randInt(256); if (player) { const partyShinyCount = party.filter(p => p.shiny).length; const upgradeOdds = Math.floor(32 / Math.max((partyShinyCount * 2), 1)); diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 34b19f541..e83650227 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -833,6 +833,40 @@ export class ShinyRateBoosterModifier extends PersistentModifier { } } +export class HeldItemTransferModifier extends PersistentModifier { + constructor(type: ModifierType, stackCount?: integer) { + super(type, stackCount); + } + + match(modifier: Modifier): boolean { + return modifier instanceof HeldItemTransferModifier; + } + + clone(): HeldItemTransferModifier { + return new HeldItemTransferModifier(this.type, this.stackCount); + } + + shouldApply(args: any[]): boolean { + return super.shouldApply(args) && args.length && args[0] instanceof BattleScene; + } + + apply(args: any[]): boolean { + const scene = args[0] as BattleScene; + const targetPokemon = scene.getPlayerPokemon(); + + const itemModifiers = scene.findModifiers(m => m instanceof PokemonHeldItemModifier + && (m as PokemonHeldItemModifier).pokemonId !== targetPokemon.id) as PokemonHeldItemModifier[]; + for (let modifier of itemModifiers) + scene.tryTransferHeldItemModifier(modifier, targetPokemon, false); + + return true; + } + + getMaxStackCount(): integer { + return 1; + } +} + export class ExtraModifierModifier extends PersistentModifier { constructor(type: ModifierType, stackCount?: integer) { super(type, stackCount); diff --git a/src/ui/confirm-ui-handler.ts b/src/ui/confirm-ui-handler.ts index 34c64596f..a3fcca03f 100644 --- a/src/ui/confirm-ui-handler.ts +++ b/src/ui/confirm-ui-handler.ts @@ -62,7 +62,6 @@ export default class ConfirmUiHandler extends UiHandler { this.setCursor(1); const handler = this.cursor ? this.noHander : this.yesHandler; handler(); - console.log(this.cursor ? this.noHander : this.yesHandler); this.clear(); } else { switch (button) {