diff --git a/public/images/items.json b/public/images/items.json index a878c7db59b..7b654e7616d 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,8 +4,8 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 391, - "h": 391 + "w": 395, + "h": 395 }, "scale": 1, "frames": [ @@ -450,6 +450,27 @@ "h": 24 } }, + { + "filename": "full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 4, + "w": 15, + "h": 23 + }, + "frame": { + "x": 380, + "y": 0, + "w": 15, + "h": 23 + } + }, { "filename": "black_augurite", "rotated": false, @@ -598,7 +619,7 @@ } }, { - "filename": "silver_powder", + "filename": "coupon", "rotated": false, "trimmed": true, "sourceSize": { @@ -607,15 +628,57 @@ }, "spriteSourceSize": { "x": 4, - "y": 11, - "w": 24, - "h": 15 + "y": 7, + "w": 23, + "h": 19 }, "frame": { "x": 0, "y": 376, - "w": 24, - "h": 15 + "w": 23, + "h": 19 + } + }, + { + "filename": "golden_mystic_ticket", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 23, + "y": 376, + "w": 23, + "h": 19 + } + }, + { + "filename": "leftovers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 15, + "h": 22 + }, + "frame": { + "x": 380, + "y": 23, + "w": 15, + "h": 22 } }, { @@ -871,7 +934,7 @@ } }, { - "filename": "coupon", + "filename": "clefairy_doll", "rotated": false, "trimmed": true, "sourceSize": { @@ -880,36 +943,15 @@ }, "spriteSourceSize": { "x": 4, - "y": 7, - "w": 23, - "h": 19 + "y": 5, + "w": 24, + "h": 23 }, "frame": { - "x": 24, + "x": 46, "y": 372, - "w": 23, - "h": 19 - } - }, - { - "filename": "golden_mystic_ticket", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 - }, - "frame": { - "x": 47, - "y": 372, - "w": 23, - "h": 19 + "w": 24, + "h": 23 } }, { @@ -1186,7 +1228,7 @@ } }, { - "filename": "clefairy_doll", + "filename": "coin_case", "rotated": false, "trimmed": true, "sourceSize": { @@ -1206,27 +1248,6 @@ "h": 23 } }, - { - "filename": "coin_case", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 70, - "y": 368, - "w": 24, - "h": 23 - } - }, { "filename": "max_repel", "rotated": false, @@ -1521,27 +1542,6 @@ "h": 18 } }, - { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 - }, - "frame": { - "x": 376, - "y": 24, - "w": 15, - "h": 23 - } - }, { "filename": "pp_max", "rotated": false, @@ -1837,7 +1837,7 @@ } }, { - "filename": "healing_charm", + "filename": "fighting_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -1845,20 +1845,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 23, - "h": 22 + "x": 6, + "y": 4, + "w": 22, + "h": 23 }, "frame": { "x": 353, "y": 42, - "w": 23, - "h": 22 + "w": 22, + "h": 23 } }, { - "filename": "leftovers", + "filename": "mystic_water", "rotated": false, "trimmed": true, "sourceSize": { @@ -1866,58 +1866,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, + "x": 6, "y": 5, - "w": 15, - "h": 22 + "w": 20, + "h": 23 }, "frame": { - "x": 376, - "y": 47, - "w": 15, - "h": 22 - } - }, - { - "filename": "adamant_crystal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 353, - "y": 64, - "w": 23, - "h": 21 - } - }, - { - "filename": "prism_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 376, - "y": 69, - "w": 15, - "h": 15 + "x": 375, + "y": 45, + "w": 20, + "h": 23 } }, { @@ -2047,7 +2005,7 @@ } }, { - "filename": "amulet_coin", + "filename": "adamant_crystal", "rotated": false, "trimmed": true, "sourceSize": { @@ -2055,8 +2013,8 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 5, + "x": 4, + "y": 6, "w": 23, "h": 21 }, @@ -2088,6 +2046,27 @@ "h": 20 } }, + { + "filename": "silver_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 11, + "w": 24, + "h": 15 + }, + "frame": { + "x": 113, + "y": 81, + "w": 24, + "h": 15 + } + }, { "filename": "dragon_fang", "rotated": false, @@ -2130,27 +2109,6 @@ "h": 24 } }, - { - "filename": "fighting_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 51, - "y": 99, - "w": 22, - "h": 23 - } - }, { "filename": "fire_stone", "rotated": false, @@ -2165,6 +2123,27 @@ "w": 22, "h": 23 }, + "frame": { + "x": 51, + "y": 99, + "w": 22, + "h": 23 + } + }, + { + "filename": "fire_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, "frame": { "x": 54, "y": 122, @@ -2173,7 +2152,7 @@ } }, { - "filename": "fire_tera_shard", + "filename": "flying_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -2194,7 +2173,7 @@ } }, { - "filename": "flying_tera_shard", + "filename": "focus_sash", "rotated": false, "trimmed": true, "sourceSize": { @@ -2202,7 +2181,7 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, + "x": 5, "y": 4, "w": 22, "h": 23 @@ -2214,6 +2193,27 @@ "h": 23 } }, + { + "filename": "amulet_coin", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 137, + "y": 87, + "w": 23, + "h": 21 + } + }, { "filename": "auspicious_armor", "rotated": false, @@ -2229,14 +2229,14 @@ "h": 21 }, "frame": { - "x": 113, - "y": 81, + "x": 160, + "y": 87, "w": 23, "h": 21 } }, { - "filename": "binding_band", + "filename": "healing_charm", "rotated": false, "trimmed": true, "sourceSize": { @@ -2245,78 +2245,15 @@ }, "spriteSourceSize": { "x": 5, - "y": 6, + "y": 5, "w": 23, - "h": 20 + "h": 22 }, "frame": { - "x": 136, + "x": 183, "y": 87, "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": 159, - "y": 87, - "w": 23, - "h": 21 - } - }, - { - "filename": "n_lunarizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 182, - "y": 87, - "w": 23, - "h": 21 - } - }, - { - "filename": "n_solarizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 205, - "y": 87, - "w": 23, - "h": 21 + "h": 22 } }, { @@ -2334,264 +2271,12 @@ "h": 22 }, "frame": { - "x": 228, + "x": 206, "y": 87, "w": 23, "h": 22 } }, - { - "filename": "wellspring_mask", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 251, - "y": 88, - "w": 23, - "h": 21 - } - }, - { - "filename": "hyper_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 96, - "y": 90, - "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": 113, - "y": 102, - "w": 23, - "h": 17 - } - }, - { - "filename": "dusk_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 75, - "y": 97, - "w": 21, - "h": 21 - } - }, - { - "filename": "focus_sash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 76, - "y": 118, - "w": 22, - "h": 23 - } - }, - { - "filename": "ghost_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 78, - "y": 141, - "w": 22, - "h": 23 - } - }, - { - "filename": "grass_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 80, - "y": 164, - "w": 22, - "h": 23 - } - }, - { - "filename": "mystic_ticket", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 - }, - "frame": { - "x": 136, - "y": 107, - "w": 23, - "h": 19 - } - }, - { - "filename": "pair_of_tickets", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 - }, - "frame": { - "x": 159, - "y": 108, - "w": 23, - "h": 19 - } - }, - { - "filename": "reviver_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 8, - "w": 23, - "h": 20 - }, - "frame": { - "x": 182, - "y": 108, - "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": 205, - "y": 108, - "w": 23, - "h": 20 - } - }, - { - "filename": "blunder_policy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 19 - }, - "frame": { - "x": 228, - "y": 109, - "w": 22, - "h": 19 - } - }, { "filename": "charcoal", "rotated": false, @@ -2607,12 +2292,33 @@ "h": 22 }, "frame": { - "x": 250, - "y": 109, + "x": 229, + "y": 87, "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": 251, + "y": 88, + "w": 23, + "h": 21 + } + }, { "filename": "relic_gold", "rotated": false, @@ -2719,7 +2425,7 @@ } }, { - "filename": "ground_tera_shard", + "filename": "ghost_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -2740,7 +2446,7 @@ } }, { - "filename": "ice_tera_shard", + "filename": "grass_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -2760,6 +2466,111 @@ "h": 23 } }, + { + "filename": "ground_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 72, + "y": 344, + "w": 22, + "h": 23 + } + }, + { + "filename": "hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 96, + "y": 90, + "w": 17, + "h": 23 + } + }, + { + "filename": "binding_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 23, + "h": 20 + }, + "frame": { + "x": 113, + "y": 96, + "w": 23, + "h": 20 + } + }, + { + "filename": "dusk_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 75, + "y": 97, + "w": 21, + "h": 21 + } + }, + { + "filename": "ice_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 76, + "y": 118, + "w": 22, + "h": 23 + } + }, { "filename": "lansat_berry", "rotated": false, @@ -2775,8 +2586,29 @@ "h": 23 }, "frame": { - "x": 72, - "y": 344, + "x": 78, + "y": 141, + "w": 21, + "h": 23 + } + }, + { + "filename": "leaf_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 80, + "y": 164, "w": 21, "h": 23 } @@ -2824,7 +2656,7 @@ } }, { - "filename": "wise_glasses", + "filename": "black_glasses", "rotated": false, "trimmed": true, "sourceSize": { @@ -2844,48 +2676,6 @@ "h": 17 } }, - { - "filename": "leaf_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 82, - "y": 250, - "w": 21, - "h": 23 - } - }, - { - "filename": "mystic_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 23 - }, - "frame": { - "x": 86, - "y": 273, - "w": 20, - "h": 23 - } - }, { "filename": "petaya_berry", "rotated": false, @@ -2901,8 +2691,8 @@ "h": 23 }, "frame": { - "x": 93, - "y": 296, + "x": 82, + "y": 250, "w": 22, "h": 23 } @@ -2922,12 +2712,33 @@ "h": 23 }, "frame": { - "x": 93, - "y": 319, + "x": 86, + "y": 273, "w": 22, "h": 23 } }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 93, + "y": 296, + "w": 17, + "h": 23 + } + }, { "filename": "psychic_tera_shard", "rotated": false, @@ -2944,7 +2755,7 @@ }, "frame": { "x": 93, - "y": 342, + "y": 319, "w": 22, "h": 23 } @@ -2965,13 +2776,139 @@ }, "frame": { "x": 94, - "y": 365, + "y": 342, "w": 22, "h": 23 } }, { - "filename": "dire_hit", + "filename": "burn_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 136, + "y": 108, + "w": 23, + "h": 17 + } + }, + { + "filename": "chill_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 159, + "y": 108, + "w": 23, + "h": 17 + } + }, + { + "filename": "douse_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 182, + "y": 109, + "w": 23, + "h": 17 + } + }, + { + "filename": "mystic_ticket", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 205, + "y": 109, + "w": 23, + "h": 19 + } + }, + { + "filename": "n_lunarizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 23, + "h": 21 + }, + "frame": { + "x": 228, + "y": 109, + "w": 23, + "h": 21 + } + }, + { + "filename": "n_solarizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 23, + "h": 21 + }, + "frame": { + "x": 251, + "y": 109, + "w": 23, + "h": 21 + } + }, + { + "filename": "masterpiece_teacup", "rotated": false, "trimmed": true, "sourceSize": { @@ -2980,15 +2917,36 @@ }, "spriteSourceSize": { "x": 5, + "y": 7, + "w": 21, + "h": 18 + }, + "frame": { + "x": 115, + "y": 116, + "w": 21, + "h": 18 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, "y": 5, - "w": 22, - "h": 22 + "w": 17, + "h": 23 }, "frame": { "x": 98, - "y": 119, - "w": 22, - "h": 22 + "y": 116, + "w": 17, + "h": 23 } }, { @@ -3006,8 +2964,8 @@ "h": 23 }, "frame": { - "x": 100, - "y": 141, + "x": 99, + "y": 139, "w": 22, "h": 23 } @@ -3027,8 +2985,8 @@ "h": 23 }, "frame": { - "x": 102, - "y": 164, + "x": 101, + "y": 162, "w": 21, "h": 23 } @@ -3049,7 +3007,7 @@ }, "frame": { "x": 102, - "y": 187, + "y": 185, "w": 22, "h": 23 } @@ -3070,11 +3028,32 @@ }, "frame": { "x": 102, - "y": 210, + "y": 208, "w": 22, "h": 23 } }, + { + "filename": "blunder_policy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 19 + }, + "frame": { + "x": 103, + "y": 231, + "w": 22, + "h": 19 + } + }, { "filename": "water_tera_shard", "rotated": false, @@ -3090,201 +3069,12 @@ "h": 23 }, "frame": { - "x": 103, - "y": 233, + "x": 104, + "y": 250, "w": 22, "h": 23 } }, - { - "filename": "mystery_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 18 - }, - "frame": { - "x": 120, - "y": 119, - "w": 16, - "h": 18 - } - }, - { - "filename": "everstone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 17 - }, - "frame": { - "x": 103, - "y": 256, - "w": 20, - "h": 17 - } - }, - { - "filename": "potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 106, - "y": 273, - "w": 17, - "h": 23 - } - }, - { - "filename": "relic_crown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 18 - }, - "frame": { - "x": 136, - "y": 126, - "w": 23, - "h": 18 - } - }, - { - "filename": "deep_sea_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 159, - "y": 127, - "w": 22, - "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": 181, - "y": 128, - "w": 22, - "h": 21 - } - }, - { - "filename": "dna_splicers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 203, - "y": 128, - "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": 225, - "y": 128, - "w": 22, - "h": 22 - } - }, - { - "filename": "dubious_disc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 247, - "y": 131, - "w": 22, - "h": 19 - } - }, { "filename": "sachet", "rotated": false, @@ -3300,8 +3090,8 @@ "h": 23 }, "frame": { - "x": 115, - "y": 296, + "x": 108, + "y": 273, "w": 18, "h": 23 } @@ -3321,8 +3111,8 @@ "h": 23 }, "frame": { - "x": 115, - "y": 319, + "x": 110, + "y": 296, "w": 21, "h": 23 } @@ -3343,11 +3133,200 @@ }, "frame": { "x": 115, - "y": 342, + "y": 319, "w": 22, "h": 23 } }, + { + "filename": "dire_hit", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 116, + "y": 342, + "w": 22, + "h": 22 + } + }, + { + "filename": "berry_pot", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 18, + "h": 22 + }, + "frame": { + "x": 121, + "y": 134, + "w": 18, + "h": 22 + } + }, + { + "filename": "dna_splicers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 139, + "y": 125, + "w": 22, + "h": 22 + } + }, + { + "filename": "poison_barb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 161, + "y": 125, + "w": 21, + "h": 21 + } + }, + { + "filename": "reviver_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 8, + "w": 23, + "h": 20 + }, + "frame": { + "x": 182, + "y": 126, + "w": 23, + "h": 20 + } + }, + { + "filename": "pair_of_tickets", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 205, + "y": 128, + "w": 23, + "h": 19 + } + }, + { + "filename": "relic_crown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 18 + }, + "frame": { + "x": 228, + "y": 130, + "w": 23, + "h": 18 + } + }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 251, + "y": 130, + "w": 23, + "h": 20 + } + }, + { + "filename": "electirizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 122, + "y": 156, + "w": 22, + "h": 22 + } + }, { "filename": "enigma_berry", "rotated": false, @@ -3363,33 +3342,12 @@ "h": 22 }, "frame": { - "x": 116, - "y": 365, + "x": 124, + "y": 178, "w": 22, "h": 22 } }, - { - "filename": "fairy_feather", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 20 - }, - "frame": { - "x": 122, - "y": 144, - "w": 22, - "h": 20 - } - }, { "filename": "ganlon_berry", "rotated": false, @@ -3405,8 +3363,8 @@ "h": 22 }, "frame": { - "x": 123, - "y": 164, + "x": 124, + "y": 200, "w": 22, "h": 22 } @@ -3426,8 +3384,8 @@ "h": 22 }, "frame": { - "x": 124, - "y": 186, + "x": 125, + "y": 222, "w": 22, "h": 22 } @@ -3447,8 +3405,8 @@ "h": 22 }, "frame": { - "x": 124, - "y": 208, + "x": 126, + "y": 244, "w": 22, "h": 22 } @@ -3468,14 +3426,14 @@ "h": 22 }, "frame": { - "x": 125, - "y": 230, + "x": 126, + "y": 266, "w": 22, "h": 22 } }, { - "filename": "revive", + "filename": "hard_meteorite", "rotated": false, "trimmed": true, "sourceSize": { @@ -3483,58 +3441,37 @@ "h": 32 }, "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 + "x": 7, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 131, + "y": 288, + "w": 20, + "h": 22 + } + }, + { + "filename": "lock_capsule", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 19, + "h": 22 }, "frame": { "x": 144, - "y": 144, - "w": 12, - "h": 17 - } - }, - { - "filename": "liechi_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 156, "y": 147, - "w": 22, - "h": 21 - } - }, - { - "filename": "malicious_armor", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 178, - "y": 149, - "w": 22, - "h": 20 + "w": 19, + "h": 22 } }, { @@ -3552,12 +3489,96 @@ "h": 22 }, "frame": { - "x": 200, - "y": 150, + "x": 163, + "y": 146, "w": 22, "h": 22 } }, + { + "filename": "sitrus_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 185, + "y": 146, + "w": 20, + "h": 22 + } + }, + { + "filename": "wellspring_mask", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 205, + "y": 147, + "w": 23, + "h": 21 + } + }, + { + "filename": "deep_sea_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 228, + "y": 148, + "w": 22, + "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": 250, + "y": 150, + "w": 22, + "h": 21 + } + }, { "filename": "memory_dark", "rotated": false, @@ -3573,8 +3594,8 @@ "h": 22 }, "frame": { - "x": 222, - "y": 150, + "x": 146, + "y": 169, "w": 22, "h": 22 } @@ -3593,52 +3614,10 @@ "w": 22, "h": 22 }, - "frame": { - "x": 244, - "y": 150, - "w": 22, - "h": 22 - } - }, - { - "filename": "masterpiece_teacup", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 21, - "h": 18 - }, - "frame": { - "x": 145, - "y": 168, - "w": 21, - "h": 18 - } - }, - { - "filename": "hard_meteorite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 20, - "h": 22 - }, "frame": { "x": 146, - "y": 186, - "w": 20, + "y": 191, + "w": 22, "h": 22 } }, @@ -3657,8 +3636,8 @@ "h": 22 }, "frame": { - "x": 146, - "y": 208, + "x": 168, + "y": 168, "w": 22, "h": 22 } @@ -3678,8 +3657,8 @@ "h": 22 }, "frame": { - "x": 147, - "y": 230, + "x": 168, + "y": 190, "w": 22, "h": 22 } @@ -3699,75 +3678,12 @@ "h": 22 }, "frame": { - "x": 166, - "y": 169, + "x": 190, + "y": 168, "w": 22, "h": 22 } }, - { - "filename": "mega_bracelet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 16 - }, - "frame": { - "x": 166, - "y": 191, - "w": 20, - "h": 16 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 168, - "y": 207, - "w": 17, - "h": 23 - } - }, - { - "filename": "berry_pot", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 18, - "h": 22 - }, - "frame": { - "x": 169, - "y": 230, - "w": 18, - "h": 22 - } - }, { "filename": "memory_fire", "rotated": false, @@ -3783,8 +3699,8 @@ "h": 22 }, "frame": { - "x": 188, - "y": 172, + "x": 190, + "y": 190, "w": 22, "h": 22 } @@ -3804,8 +3720,8 @@ "h": 22 }, "frame": { - "x": 210, - "y": 172, + "x": 212, + "y": 168, "w": 22, "h": 22 } @@ -3825,14 +3741,14 @@ "h": 22 }, "frame": { - "x": 232, - "y": 172, + "x": 212, + "y": 190, "w": 22, "h": 22 } }, { - "filename": "lock_capsule", + "filename": "mystery_egg", "rotated": false, "trimmed": true, "sourceSize": { @@ -3840,16 +3756,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 19, - "h": 22 + "x": 8, + "y": 8, + "w": 16, + "h": 18 }, "frame": { - "x": 254, - "y": 172, - "w": 19, - "h": 22 + "x": 234, + "y": 168, + "w": 16, + "h": 18 } }, { @@ -3867,12 +3783,33 @@ "h": 22 }, "frame": { - "x": 186, - "y": 194, + "x": 234, + "y": 186, "w": 22, "h": 22 } }, + { + "filename": "candy_overlay", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 12, + "w": 16, + "h": 15 + }, + "frame": { + "x": 250, + "y": 171, + "w": 16, + "h": 15 + } + }, { "filename": "memory_ground", "rotated": false, @@ -3888,8 +3825,8 @@ "h": 22 }, "frame": { - "x": 208, - "y": 194, + "x": 147, + "y": 213, "w": 22, "h": 22 } @@ -3909,8 +3846,8 @@ "h": 22 }, "frame": { - "x": 230, - "y": 194, + "x": 169, + "y": 212, "w": 22, "h": 22 } @@ -3930,8 +3867,8 @@ "h": 22 }, "frame": { - "x": 252, - "y": 194, + "x": 191, + "y": 212, "w": 22, "h": 22 } @@ -3951,8 +3888,8 @@ "h": 22 }, "frame": { - "x": 252, - "y": 194, + "x": 191, + "y": 212, "w": 22, "h": 22 } @@ -3972,33 +3909,12 @@ "h": 22 }, "frame": { - "x": 266, - "y": 150, + "x": 213, + "y": 212, "w": 22, "h": 22 } }, - { - "filename": "big_mushroom", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 19 - }, - "frame": { - "x": 269, - "y": 131, - "w": 19, - "h": 19 - } - }, { "filename": "memory_psychic", "rotated": false, @@ -4014,54 +3930,12 @@ "h": 22 }, "frame": { - "x": 272, - "y": 109, + "x": 235, + "y": 208, "w": 22, "h": 22 } }, - { - "filename": "dawn_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 21 - }, - "frame": { - "x": 274, - "y": 88, - "w": 20, - "h": 21 - } - }, - { - "filename": "poison_barb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 280, - "y": 67, - "w": 21, - "h": 21 - } - }, { "filename": "memory_rock", "rotated": false, @@ -4077,8 +3951,8 @@ "h": 22 }, "frame": { - "x": 301, - "y": 65, + "x": 148, + "y": 235, "w": 22, "h": 22 } @@ -4098,8 +3972,8 @@ "h": 22 }, "frame": { - "x": 323, - "y": 65, + "x": 148, + "y": 257, "w": 22, "h": 22 } @@ -4119,8 +3993,8 @@ "h": 22 }, "frame": { - "x": 273, - "y": 172, + "x": 170, + "y": 234, "w": 22, "h": 22 } @@ -4140,8 +4014,8 @@ "h": 22 }, "frame": { - "x": 274, - "y": 194, + "x": 170, + "y": 256, "w": 22, "h": 22 } @@ -4161,8 +4035,8 @@ "h": 22 }, "frame": { - "x": 187, - "y": 216, + "x": 192, + "y": 234, "w": 22, "h": 22 } @@ -4182,8 +4056,8 @@ "h": 22 }, "frame": { - "x": 209, - "y": 216, + "x": 192, + "y": 256, "w": 22, "h": 22 } @@ -4203,8 +4077,8 @@ "h": 22 }, "frame": { - "x": 231, - "y": 216, + "x": 214, + "y": 234, "w": 22, "h": 22 } @@ -4224,8 +4098,8 @@ "h": 22 }, "frame": { - "x": 253, - "y": 216, + "x": 214, + "y": 256, "w": 22, "h": 22 } @@ -4245,75 +4119,12 @@ "h": 22 }, "frame": { - "x": 275, - "y": 216, + "x": 236, + "y": 230, "w": 22, "h": 22 } }, - { - "filename": "sweet_apple", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 187, - "y": 238, - "w": 22, - "h": 21 - } - }, - { - "filename": "syrupy_apple", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 209, - "y": 238, - "w": 22, - "h": 21 - } - }, - { - "filename": "tart_apple", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 231, - "y": 238, - "w": 22, - "h": 21 - } - }, { "filename": "thunder_stone", "rotated": false, @@ -4329,29 +4140,8 @@ "h": 22 }, "frame": { - "x": 253, - "y": 238, - "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": 275, - "y": 238, + "x": 236, + "y": 252, "w": 22, "h": 22 } @@ -4371,12 +4161,33 @@ "h": 22 }, "frame": { - "x": 294, - "y": 88, + "x": 256, + "y": 186, "w": 19, "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": 257, + "y": 208, + "w": 22, + "h": 22 + } + }, { "filename": "tm_dark", "rotated": false, @@ -4392,33 +4203,12 @@ "h": 22 }, "frame": { - "x": 313, - "y": 87, + "x": 258, + "y": 230, "w": 22, "h": 22 } }, - { - "filename": "shiny_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 294, - "y": 110, - "w": 21, - "h": 21 - } - }, { "filename": "tm_dragon", "rotated": false, @@ -4434,54 +4224,12 @@ "h": 22 }, "frame": { - "x": 288, - "y": 131, + "x": 258, + "y": 252, "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": 288, - "y": 153, - "w": 22, - "h": 19 - } - }, - { - "filename": "sitrus_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 22 - }, - "frame": { - "x": 315, - "y": 109, - "w": 20, - "h": 22 - } - }, { "filename": "tm_electric", "rotated": false, @@ -4497,54 +4245,12 @@ "h": 22 }, "frame": { - "x": 310, - "y": 131, + "x": 151, + "y": 279, "w": 22, "h": 22 } }, - { - "filename": "tera_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 310, - "y": 153, - "w": 22, - "h": 20 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 335, - "y": 87, - "w": 17, - "h": 22 - } - }, { "filename": "tm_fairy", "rotated": false, @@ -4560,33 +4266,12 @@ "h": 22 }, "frame": { - "x": 352, - "y": 85, + "x": 173, + "y": 278, "w": 22, "h": 22 } }, - { - "filename": "soothe_bell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 374, - "y": 85, - "w": 17, - "h": 22 - } - }, { "filename": "tm_fighting", "rotated": false, @@ -4602,8 +4287,8 @@ "h": 22 }, "frame": { - "x": 335, - "y": 109, + "x": 195, + "y": 278, "w": 22, "h": 22 } @@ -4623,8 +4308,8 @@ "h": 22 }, "frame": { - "x": 332, - "y": 131, + "x": 217, + "y": 278, "w": 22, "h": 22 } @@ -4644,8 +4329,8 @@ "h": 22 }, "frame": { - "x": 357, - "y": 107, + "x": 239, + "y": 274, "w": 22, "h": 22 } @@ -4665,14 +4350,56 @@ "h": 22 }, "frame": { - "x": 332, - "y": 153, + "x": 261, + "y": 274, "w": 22, "h": 22 } }, { - "filename": "zoom_lens", + "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": 301, + "w": 22, + "h": 19 + } + }, + { + "filename": "fairy_feather", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 20 + }, + "frame": { + "x": 173, + "y": 300, + "w": 22, + "h": 20 + } + }, + { + "filename": "liechi_berry", "rotated": false, "trimmed": true, "sourceSize": { @@ -4682,13 +4409,34 @@ "spriteSourceSize": { "x": 5, "y": 6, - "w": 21, + "w": 22, "h": 21 }, "frame": { - "x": 295, - "y": 173, - "w": 21, + "x": 195, + "y": 300, + "w": 22, + "h": 21 + } + }, + { + "filename": "sweet_apple", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 217, + "y": 300, + "w": 22, "h": 21 } }, @@ -4707,8 +4455,8 @@ "h": 22 }, "frame": { - "x": 296, - "y": 194, + "x": 239, + "y": 296, "w": 22, "h": 22 } @@ -4728,8 +4476,8 @@ "h": 22 }, "frame": { - "x": 297, - "y": 216, + "x": 261, + "y": 296, "w": 22, "h": 22 } @@ -4749,33 +4497,12 @@ "h": 22 }, "frame": { - "x": 297, - "y": 238, + "x": 137, + "y": 320, "w": 22, "h": 22 } }, - { - "filename": "abomasite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 316, - "y": 173, - "w": 16, - "h": 16 - } - }, { "filename": "tm_poison", "rotated": false, @@ -4791,33 +4518,12 @@ "h": 22 }, "frame": { - "x": 332, - "y": 175, + "x": 159, + "y": 320, "w": 22, "h": 22 } }, - { - "filename": "metal_alloy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 21, - "h": 19 - }, - "frame": { - "x": 318, - "y": 197, - "w": 21, - "h": 19 - } - }, { "filename": "tm_psychic", "rotated": false, @@ -4833,8 +4539,8 @@ "h": 22 }, "frame": { - "x": 319, - "y": 216, + "x": 138, + "y": 342, "w": 22, "h": 22 } @@ -4854,14 +4560,35 @@ "h": 22 }, "frame": { - "x": 319, - "y": 238, + "x": 160, + "y": 342, "w": 22, "h": 22 } }, { - "filename": "lum_berry", + "filename": "prism_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 266, + "y": 171, + "w": 15, + "h": 15 + } + }, + { + "filename": "dawn_stone", "rotated": false, "trimmed": true, "sourceSize": { @@ -4870,15 +4597,57 @@ }, "spriteSourceSize": { "x": 6, - "y": 7, + "y": 6, "w": 20, - "h": 19 + "h": 21 }, "frame": { - "x": 339, - "y": 197, + "x": 272, + "y": 150, "w": 20, - "h": 19 + "h": 21 + } + }, + { + "filename": "metronome", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 275, + "y": 186, + "w": 17, + "h": 22 + } + }, + { + "filename": "soothe_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 279, + "y": 208, + "w": 17, + "h": 22 } }, { @@ -4896,8 +4665,8 @@ "h": 22 }, "frame": { - "x": 341, - "y": 216, + "x": 280, + "y": 230, "w": 22, "h": 22 } @@ -4917,8 +4686,8 @@ "h": 22 }, "frame": { - "x": 341, - "y": 238, + "x": 280, + "y": 252, "w": 22, "h": 22 } @@ -4938,8 +4707,8 @@ "h": 22 }, "frame": { - "x": 125, - "y": 252, + "x": 283, + "y": 274, "w": 22, "h": 22 } @@ -4959,12 +4728,54 @@ "h": 22 }, "frame": { - "x": 123, - "y": 274, + "x": 283, + "y": 296, "w": 22, "h": 22 } }, + { + "filename": "syrupy_apple", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 181, + "y": 321, + "w": 22, + "h": 21 + } + }, + { + "filename": "tart_apple", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 203, + "y": 321, + "w": 22, + "h": 21 + } + }, { "filename": "x_attack", "rotated": false, @@ -4980,33 +4791,12 @@ "h": 22 }, "frame": { - "x": 147, - "y": 252, + "x": 182, + "y": 342, "w": 22, "h": 22 } }, - { - "filename": "razor_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 18, - "h": 20 - }, - "frame": { - "x": 169, - "y": 252, - "w": 18, - "h": 20 - } - }, { "filename": "x_defense", "rotated": false, @@ -5022,12 +4812,33 @@ "h": 22 }, "frame": { - "x": 145, - "y": 274, + "x": 204, + "y": 342, "w": 22, "h": 22 } }, + { + "filename": "shiny_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 225, + "y": 321, + "w": 21, + "h": 21 + } + }, { "filename": "x_sp_atk", "rotated": false, @@ -5043,8 +4854,8 @@ "h": 22 }, "frame": { - "x": 133, - "y": 296, + "x": 226, + "y": 342, "w": 22, "h": 22 } @@ -5064,7 +4875,7 @@ "h": 22 }, "frame": { - "x": 136, + "x": 246, "y": 318, "w": 22, "h": 22 @@ -5085,12 +4896,33 @@ "h": 22 }, "frame": { - "x": 137, - "y": 340, + "x": 268, + "y": 318, "w": 22, "h": 22 } }, + { + "filename": "malicious_armor", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 248, + "y": 340, + "w": 22, + "h": 20 + } + }, { "filename": "big_nugget", "rotated": false, @@ -5106,12 +4938,180 @@ "h": 20 }, "frame": { - "x": 138, - "y": 362, + "x": 270, + "y": 340, "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": 290, + "y": 318, + "w": 19, + "h": 21 + } + }, + { + "filename": "zoom_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 290, + "y": 339, + "w": 21, + "h": 21 + } + }, + { + "filename": "apicot_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 280, + "y": 67, + "w": 19, + "h": 20 + } + }, + { + "filename": "tera_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 299, + "y": 65, + "w": 22, + "h": 20 + } + }, + { + "filename": "upgrade", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 321, + "y": 65, + "w": 22, + "h": 19 + } + }, + { + "filename": "metal_alloy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 21, + "h": 19 + }, + "frame": { + "x": 343, + "y": 65, + "w": 21, + "h": 19 + } + }, + { + "filename": "shock_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 364, + "y": 68, + "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": 248, + "y": 360, + "w": 23, + "h": 17 + } + }, { "filename": "sharp_meteorite", "rotated": false, @@ -5127,8 +5127,8 @@ "h": 18 }, "frame": { - "x": 187, - "y": 259, + "x": 70, + "y": 377, "w": 21, "h": 18 } @@ -5148,369 +5148,12 @@ "h": 18 }, "frame": { - "x": 208, - "y": 259, + "x": 91, + "y": 377, "w": 21, "h": 18 } }, - { - "filename": "blue_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 229, - "y": 259, - "w": 20, - "h": 20 - } - }, - { - "filename": "gb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 249, - "y": 260, - "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": 269, - "y": 260, - "w": 20, - "h": 20 - } - }, - { - "filename": "mb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 289, - "y": 260, - "w": 20, - "h": 20 - } - }, - { - "filename": "pb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 309, - "y": 260, - "w": 20, - "h": 20 - } - }, - { - "filename": "pb_gold", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 329, - "y": 260, - "w": 20, - "h": 20 - } - }, - { - "filename": "apicot_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 349, - "y": 260, - "w": 19, - "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": 155, - "y": 296, - "w": 19, - "h": 21 - } - }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 158, - "y": 317, - "w": 19, - "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": 159, - "y": 337, - "w": 19, - "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": 167, - "y": 277, - "w": 19, - "h": 19 - } - }, - { - "filename": "razor_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 186, - "y": 277, - "w": 20, - "h": 19 - } - }, - { - "filename": "rb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 174, - "y": 296, - "w": 20, - "h": 20 - } - }, - { - "filename": "smooth_meteorite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 206, - "y": 277, - "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": 177, - "y": 316, - "w": 17, - "h": 20 - } - }, - { - "filename": "strange_ball", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 226, - "y": 279, - "w": 20, - "h": 20 - } - }, - { - "filename": "ub", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 246, - "y": 280, - "w": 20, - "h": 20 - } - }, { "filename": "wl_ability_urge", "rotated": false, @@ -5526,8 +5169,8 @@ "h": 18 }, "frame": { - "x": 266, - "y": 280, + "x": 112, + "y": 377, "w": 20, "h": 18 } @@ -5547,8 +5190,8 @@ "h": 18 }, "frame": { - "x": 286, - "y": 280, + "x": 132, + "y": 377, "w": 20, "h": 18 } @@ -5568,8 +5211,8 @@ "h": 18 }, "frame": { - "x": 306, - "y": 280, + "x": 152, + "y": 377, "w": 20, "h": 18 } @@ -5589,8 +5232,8 @@ "h": 18 }, "frame": { - "x": 326, - "y": 280, + "x": 172, + "y": 377, "w": 20, "h": 18 } @@ -5610,33 +5253,12 @@ "h": 18 }, "frame": { - "x": 346, - "y": 280, + "x": 192, + "y": 377, "w": 20, "h": 18 } }, - { - "filename": "oval_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 - }, - "frame": { - "x": 178, - "y": 336, - "w": 18, - "h": 19 - } - }, { "filename": "wl_custom_thief", "rotated": false, @@ -5652,8 +5274,8 @@ "h": 18 }, "frame": { - "x": 194, - "y": 297, + "x": 212, + "y": 377, "w": 20, "h": 18 } @@ -5673,33 +5295,12 @@ "h": 18 }, "frame": { - "x": 194, - "y": 315, + "x": 232, + "y": 377, "w": 20, "h": 18 } }, - { - "filename": "candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 11, - "w": 18, - "h": 18 - }, - "frame": { - "x": 196, - "y": 333, - "w": 18, - "h": 18 - } - }, { "filename": "wl_ether", "rotated": false, @@ -5715,12 +5316,33 @@ "h": 18 }, "frame": { - "x": 214, - "y": 299, + "x": 252, + "y": 377, "w": 20, "h": 18 } }, + { + "filename": "everstone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 17 + }, + "frame": { + "x": 271, + "y": 360, + "w": 20, + "h": 17 + } + }, { "filename": "wl_full_heal", "rotated": false, @@ -5736,12 +5358,432 @@ "h": 18 }, "frame": { - "x": 214, - "y": 317, + "x": 272, + "y": 377, "w": 20, "h": 18 } }, + { + "filename": "mega_bracelet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 16 + }, + "frame": { + "x": 291, + "y": 360, + "w": 20, + "h": 16 + } + }, + { + "filename": "lum_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 292, + "y": 376, + "w": 20, + "h": 19 + } + }, + { + "filename": "blue_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 274, + "y": 88, + "w": 20, + "h": 20 + } + }, + { + "filename": "gb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 274, + "y": 108, + "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": 274, + "y": 128, + "w": 20, + "h": 20 + } + }, + { + "filename": "candy_jar", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 294, + "y": 87, + "w": 19, + "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": 294, + "y": 107, + "w": 19, + "h": 20 + } + }, + { + "filename": "mb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 294, + "y": 127, + "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": 313, + "y": 85, + "w": 17, + "h": 20 + } + }, + { + "filename": "pb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 330, + "y": 84, + "w": 20, + "h": 20 + } + }, + { + "filename": "pb_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 313, + "y": 105, + "w": 20, + "h": 20 + } + }, + { + "filename": "rb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 314, + "y": 125, + "w": 20, + "h": 20 + } + }, + { + "filename": "razor_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 18, + "h": 20 + }, + "frame": { + "x": 333, + "y": 104, + "w": 18, + "h": 20 + } + }, + { + "filename": "smooth_meteorite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 334, + "y": 124, + "w": 20, + "h": 20 + } + }, + { + "filename": "revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 10, + "y": 8, + "w": 12, + "h": 17 + }, + "frame": { + "x": 350, + "y": 84, + "w": 12, + "h": 17 + } + }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 362, + "y": 85, + "w": 20, + "h": 19 + } + }, + { + "filename": "strange_ball", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 351, + "y": 104, + "w": 20, + "h": 20 + } + }, + { + "filename": "ub", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 354, + "y": 124, + "w": 20, + "h": 20 + } + }, + { + "filename": "big_mushroom", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 19 + }, + "frame": { + "x": 371, + "y": 104, + "w": 19, + "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": 374, + "y": 123, + "w": 19, + "h": 19 + } + }, { "filename": "wl_full_restore", "rotated": false, @@ -5757,8 +5799,8 @@ "h": 18 }, "frame": { - "x": 214, - "y": 335, + "x": 314, + "y": 145, "w": 20, "h": 18 } @@ -5778,8 +5820,8 @@ "h": 18 }, "frame": { - "x": 234, - "y": 300, + "x": 334, + "y": 144, "w": 20, "h": 18 } @@ -5799,12 +5841,33 @@ "h": 18 }, "frame": { - "x": 234, - "y": 318, + "x": 354, + "y": 144, "w": 20, "h": 18 } }, + { + "filename": "oval_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 19 + }, + "frame": { + "x": 374, + "y": 142, + "w": 18, + "h": 19 + } + }, { "filename": "wl_ice_heal", "rotated": false, @@ -5820,54 +5883,12 @@ "h": 18 }, "frame": { - "x": 234, - "y": 336, + "x": 294, + "y": 147, "w": 20, "h": 18 } }, - { - "filename": "dark_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 254, - "y": 300, - "w": 18, - "h": 18 - } - }, - { - "filename": "light_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 254, - "y": 318, - "w": 18, - "h": 18 - } - }, { "filename": "wl_item_drop", "rotated": false, @@ -5883,8 +5904,8 @@ "h": 18 }, "frame": { - "x": 272, - "y": 298, + "x": 292, + "y": 165, "w": 20, "h": 18 } @@ -5904,12 +5925,33 @@ "h": 18 }, "frame": { - "x": 272, - "y": 316, + "x": 292, + "y": 183, "w": 20, "h": 18 } }, + { + "filename": "candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 11, + "w": 18, + "h": 18 + }, + "frame": { + "x": 296, + "y": 201, + "w": 18, + "h": 18 + } + }, { "filename": "wl_max_elixir", "rotated": false, @@ -5925,8 +5967,8 @@ "h": 18 }, "frame": { - "x": 292, - "y": 298, + "x": 314, + "y": 163, "w": 20, "h": 18 } @@ -5946,8 +5988,8 @@ "h": 18 }, "frame": { - "x": 292, - "y": 316, + "x": 334, + "y": 162, "w": 20, "h": 18 } @@ -5967,12 +6009,33 @@ "h": 18 }, "frame": { - "x": 312, - "y": 298, + "x": 354, + "y": 162, "w": 20, "h": 18 } }, + { + "filename": "dark_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 374, + "y": 161, + "w": 18, + "h": 18 + } + }, { "filename": "wl_max_revive", "rotated": false, @@ -5989,11 +6052,32 @@ }, "frame": { "x": 312, - "y": 316, + "y": 181, "w": 20, "h": 18 } }, + { + "filename": "light_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 18 + }, + "frame": { + "x": 314, + "y": 199, + "w": 18, + "h": 18 + } + }, { "filename": "wl_paralyze_heal", "rotated": false, @@ -6009,8 +6093,8 @@ "h": 18 }, "frame": { - "x": 332, - "y": 298, + "x": 334, + "y": 180, "w": 20, "h": 18 } @@ -6030,8 +6114,8 @@ "h": 18 }, "frame": { - "x": 332, - "y": 316, + "x": 354, + "y": 180, "w": 20, "h": 18 } @@ -6051,8 +6135,8 @@ "h": 18 }, "frame": { - "x": 254, - "y": 336, + "x": 374, + "y": 179, "w": 20, "h": 18 } @@ -6072,8 +6156,8 @@ "h": 18 }, "frame": { - "x": 274, - "y": 334, + "x": 332, + "y": 198, "w": 20, "h": 18 } @@ -6093,8 +6177,8 @@ "h": 18 }, "frame": { - "x": 294, - "y": 334, + "x": 352, + "y": 198, "w": 20, "h": 18 } @@ -6115,11 +6199,32 @@ }, "frame": { "x": 314, - "y": 334, + "y": 217, "w": 17, "h": 16 } }, + { + "filename": "abomasite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 302, + "y": 233, + "w": 16, + "h": 16 + } + }, { "filename": "absolite", "rotated": false, @@ -6135,8 +6240,8 @@ "h": 16 }, "frame": { - "x": 331, - "y": 334, + "x": 302, + "y": 249, "w": 16, "h": 16 } @@ -6156,8 +6261,8 @@ "h": 16 }, "frame": { - "x": 352, - "y": 298, + "x": 318, + "y": 233, "w": 16, "h": 16 } @@ -6177,8 +6282,8 @@ "h": 16 }, "frame": { - "x": 352, - "y": 314, + "x": 318, + "y": 249, "w": 16, "h": 16 } @@ -6198,8 +6303,8 @@ "h": 16 }, "frame": { - "x": 159, - "y": 357, + "x": 305, + "y": 265, "w": 16, "h": 16 } @@ -6219,8 +6324,8 @@ "h": 16 }, "frame": { - "x": 158, - "y": 373, + "x": 305, + "y": 281, "w": 16, "h": 16 } @@ -6240,8 +6345,8 @@ "h": 16 }, "frame": { - "x": 347, - "y": 334, + "x": 305, + "y": 297, "w": 16, "h": 16 } @@ -6261,8 +6366,8 @@ "h": 16 }, "frame": { - "x": 196, - "y": 351, + "x": 321, + "y": 265, "w": 16, "h": 16 } @@ -6282,8 +6387,8 @@ "h": 16 }, "frame": { - "x": 212, - "y": 353, + "x": 321, + "y": 281, "w": 16, "h": 16 } @@ -6303,8 +6408,8 @@ "h": 16 }, "frame": { - "x": 228, - "y": 354, + "x": 321, + "y": 297, "w": 16, "h": 16 } @@ -6324,8 +6429,8 @@ "h": 16 }, "frame": { - "x": 244, - "y": 354, + "x": 309, + "y": 313, "w": 16, "h": 16 } @@ -6345,8 +6450,8 @@ "h": 16 }, "frame": { - "x": 260, - "y": 354, + "x": 325, + "y": 313, "w": 16, "h": 16 } @@ -6366,8 +6471,8 @@ "h": 16 }, "frame": { - "x": 276, - "y": 352, + "x": 311, + "y": 329, "w": 16, "h": 16 } @@ -6387,8 +6492,8 @@ "h": 16 }, "frame": { - "x": 292, - "y": 352, + "x": 311, + "y": 345, "w": 16, "h": 16 } @@ -6408,8 +6513,8 @@ "h": 16 }, "frame": { - "x": 308, - "y": 352, + "x": 327, + "y": 329, "w": 16, "h": 16 } @@ -6429,8 +6534,8 @@ "h": 16 }, "frame": { - "x": 324, - "y": 350, + "x": 327, + "y": 345, "w": 16, "h": 16 } @@ -6450,8 +6555,8 @@ "h": 16 }, "frame": { - "x": 340, - "y": 350, + "x": 331, + "y": 217, "w": 16, "h": 16 } @@ -6471,8 +6576,8 @@ "h": 16 }, "frame": { - "x": 356, - "y": 350, + "x": 347, + "y": 216, "w": 16, "h": 16 } @@ -6492,8 +6597,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 131, + "x": 334, + "y": 233, "w": 16, "h": 16 } @@ -6513,8 +6618,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 147, + "x": 334, + "y": 249, "w": 16, "h": 16 } @@ -6534,8 +6639,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 163, + "x": 337, + "y": 265, "w": 16, "h": 16 } @@ -6555,8 +6660,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 179, + "x": 337, + "y": 281, "w": 16, "h": 16 } @@ -6576,8 +6681,8 @@ "h": 16 }, "frame": { - "x": 359, - "y": 195, + "x": 337, + "y": 297, "w": 16, "h": 16 } @@ -6597,8 +6702,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 129, + "x": 341, + "y": 313, "w": 16, "h": 16 } @@ -6618,8 +6723,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 145, + "x": 343, + "y": 329, "w": 16, "h": 16 } @@ -6639,8 +6744,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 161, + "x": 343, + "y": 345, "w": 16, "h": 16 } @@ -6660,8 +6765,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 177, + "x": 350, + "y": 232, "w": 16, "h": 16 } @@ -6681,8 +6786,8 @@ "h": 16 }, "frame": { - "x": 375, - "y": 193, + "x": 350, + "y": 248, "w": 16, "h": 16 } @@ -6702,8 +6807,8 @@ "h": 16 }, "frame": { - "x": 375, - "y": 209, + "x": 363, + "y": 216, "w": 16, "h": 16 } @@ -6723,8 +6828,8 @@ "h": 16 }, "frame": { - "x": 363, - "y": 225, + "x": 379, + "y": 197, "w": 16, "h": 16 } @@ -6744,8 +6849,8 @@ "h": 16 }, "frame": { - "x": 363, - "y": 241, + "x": 379, + "y": 213, "w": 16, "h": 16 } @@ -6765,33 +6870,12 @@ "h": 16 }, "frame": { - "x": 368, - "y": 257, + "x": 379, + "y": 229, "w": 16, "h": 16 } }, - { - "filename": "candy_overlay", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 12, - "w": 16, - "h": 15 - }, - "frame": { - "x": 368, - "y": 273, - "w": 16, - "h": 15 - } - }, { "filename": "metagrossite", "rotated": false, @@ -6807,8 +6891,8 @@ "h": 16 }, "frame": { - "x": 368, - "y": 288, + "x": 353, + "y": 264, "w": 16, "h": 16 } @@ -6828,8 +6912,8 @@ "h": 16 }, "frame": { - "x": 368, - "y": 304, + "x": 353, + "y": 280, "w": 16, "h": 16 } @@ -6849,8 +6933,8 @@ "h": 16 }, "frame": { - "x": 368, - "y": 320, + "x": 353, + "y": 296, "w": 16, "h": 16 } @@ -6870,8 +6954,8 @@ "h": 16 }, "frame": { - "x": 175, - "y": 357, + "x": 357, + "y": 312, "w": 16, "h": 16 } @@ -6891,8 +6975,8 @@ "h": 16 }, "frame": { - "x": 174, - "y": 373, + "x": 359, + "y": 328, "w": 16, "h": 16 } @@ -6912,8 +6996,8 @@ "h": 16 }, "frame": { - "x": 276, - "y": 368, + "x": 359, + "y": 344, "w": 16, "h": 16 } @@ -6933,8 +7017,8 @@ "h": 16 }, "frame": { - "x": 292, - "y": 368, + "x": 366, + "y": 245, "w": 16, "h": 16 } @@ -6954,8 +7038,8 @@ "h": 16 }, "frame": { - "x": 308, - "y": 368, + "x": 369, + "y": 261, "w": 16, "h": 16 } @@ -6975,8 +7059,8 @@ "h": 16 }, "frame": { - "x": 324, - "y": 366, + "x": 369, + "y": 277, "w": 16, "h": 16 } @@ -6996,8 +7080,8 @@ "h": 16 }, "frame": { - "x": 340, - "y": 366, + "x": 369, + "y": 293, "w": 16, "h": 16 } @@ -7017,8 +7101,8 @@ "h": 16 }, "frame": { - "x": 356, - "y": 366, + "x": 373, + "y": 309, "w": 16, "h": 16 } @@ -7038,8 +7122,8 @@ "h": 16 }, "frame": { - "x": 191, - "y": 367, + "x": 375, + "y": 325, "w": 16, "h": 16 } @@ -7059,8 +7143,8 @@ "h": 16 }, "frame": { - "x": 207, - "y": 369, + "x": 375, + "y": 341, "w": 16, "h": 16 } @@ -7080,8 +7164,8 @@ "h": 16 }, "frame": { - "x": 223, - "y": 370, + "x": 375, + "y": 357, "w": 16, "h": 16 } @@ -7101,8 +7185,8 @@ "h": 16 }, "frame": { - "x": 239, - "y": 370, + "x": 359, + "y": 360, "w": 16, "h": 16 } @@ -7122,8 +7206,8 @@ "h": 16 }, "frame": { - "x": 255, - "y": 370, + "x": 375, + "y": 373, "w": 16, "h": 16 } @@ -7143,8 +7227,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 336, + "x": 312, + "y": 361, "w": 16, "h": 16 } @@ -7164,8 +7248,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 352, + "x": 328, + "y": 361, "w": 16, "h": 16 } @@ -7185,8 +7269,8 @@ "h": 16 }, "frame": { - "x": 372, - "y": 368, + "x": 312, + "y": 377, "w": 16, "h": 16 } @@ -7197,6 +7281,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:bda718c15def8b97caee75dc31add8c1:50d57f91c9db9f806a878fdee40ed0cb:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:5e107075b02043b9293b3010d1d1d751:152a3263fda6e8ea193cdf4a11078173:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 53ba858c58d..9a29493495f 100644 Binary files a/public/images/items.png and b/public/images/items.png differ diff --git a/public/images/items/burn_drive.png b/public/images/items/burn_drive.png new file mode 100644 index 00000000000..47ad9cc8f38 Binary files /dev/null and b/public/images/items/burn_drive.png differ diff --git a/public/images/items/chill_drive.png b/public/images/items/chill_drive.png new file mode 100644 index 00000000000..d5ef99b1686 Binary files /dev/null and b/public/images/items/chill_drive.png differ diff --git a/public/images/items/douse_drive.png b/public/images/items/douse_drive.png new file mode 100644 index 00000000000..0f9f780e5cb Binary files /dev/null and b/public/images/items/douse_drive.png differ diff --git a/public/images/items/shock_drive.png b/public/images/items/shock_drive.png new file mode 100644 index 00000000000..e0bcc66f202 Binary files /dev/null and b/public/images/items/shock_drive.png differ diff --git a/public/images/ui/candy.png b/public/images/ui/candy.png new file mode 100644 index 00000000000..6b633a19504 Binary files /dev/null and b/public/images/ui/candy.png differ diff --git a/public/images/ui/candy_overlay.png b/public/images/ui/candy_overlay.png new file mode 100644 index 00000000000..835cfccb05c Binary files /dev/null and b/public/images/ui/candy_overlay.png differ diff --git a/public/images/ui/legacy/candy.png b/public/images/ui/legacy/candy.png new file mode 100644 index 00000000000..6b633a19504 Binary files /dev/null and b/public/images/ui/legacy/candy.png differ diff --git a/public/images/ui/legacy/candy_overlay.png b/public/images/ui/legacy/candy_overlay.png new file mode 100644 index 00000000000..835cfccb05c Binary files /dev/null and b/public/images/ui/legacy/candy_overlay.png differ diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest index 4b5f2dbadd1..cefde7f8601 100644 --- a/public/manifest.webmanifest +++ b/public/manifest.webmanifest @@ -3,7 +3,7 @@ "short_name": "PokéRogue", "description": "A Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, and reaching Pokémon stats you never thought possible.", "scope": "/", - "start_url": "https://pokerogue.net", + "start_url": "/", "display": "fullscreen", "background_color": "#8c8c8c", "theme_color": "#8c8c8c", diff --git a/src/data/ability.ts b/src/data/ability.ts index 3245b26f62f..39c70fd7ee3 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2104,6 +2104,13 @@ export class StatChangeMultiplierAbAttr extends AbAttr { } } +export class StatChangeCopyAbAttr extends AbAttr { + apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean | Promise { + pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, (args[0] as BattleStat[]), (args[1] as integer), true, false, false)); + return true; + } +} + export class BypassBurnDamageReductionAbAttr extends AbAttr { constructor() { super(false); @@ -3484,7 +3491,7 @@ export function initAbilities() { .attr(PostBiomeChangeTerrainChangeAbAttr, TerrainType.ELECTRIC) .conditionalAttr(getTerrainCondition(TerrainType.ELECTRIC), BattleStatMultiplierAbAttr, BattleStat.SPATK, 4 / 3), new Ability(Abilities.OPPORTUNIST, 9) - .unimplemented(), + .attr(StatChangeCopyAbAttr), new Ability(Abilities.CUD_CHEW, 9) .unimplemented(), new Ability(Abilities.SHARPNESS, 9) diff --git a/src/data/egg-moves.ts b/src/data/egg-moves.ts index 221496a177d..ca54b693c80 100644 --- a/src/data/egg-moves.ts +++ b/src/data/egg-moves.ts @@ -115,7 +115,7 @@ export const speciesEggMoves = { [Species.PHANPY]: [ Moves.SHORE_UP, Moves.HEAD_SMASH, Moves.MOUNTAIN_GALE, Moves.VOLT_TACKLE ], [Species.STANTLER]: [ Moves.HORN_LEECH, Moves.HIGH_JUMP_KICK, Moves.BULK_UP, Moves.HEAD_CHARGE ], [Species.SMEARGLE]: [ Moves.BATON_PASS, Moves.BURNING_BULWARK, Moves.SALT_CURE, Moves.SPORE ], - [Species.TYROGUE]: [ Moves.MACH_PUNCH, Moves.WICKED_TORQUE, Moves.METEOR_MASH, Moves.COLLISION_COURSE ], + [Species.TYROGUE]: [ Moves.VICTORY_DANCE, Moves.WICKED_TORQUE, Moves.METEOR_MASH, Moves.COLLISION_COURSE ], [Species.SMOOCHUM]: [ Moves.EXPANDING_FORCE, Moves.AURA_SPHERE, Moves.FREEZY_FROST, Moves.TAKE_HEART ], [Species.ELEKID]: [ Moves.DRAIN_PUNCH, Moves.TIDY_UP, Moves.ICE_HAMMER, Moves.PLASMA_FISTS ], [Species.MAGBY]: [ Moves.STORED_POWER, Moves.EARTH_POWER, Moves.ARMOR_CANNON, Moves.FLEUR_CANNON ], diff --git a/src/data/move.ts b/src/data/move.ts index 054d0505e65..b8a516e4028 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2216,6 +2216,36 @@ export class VariableMoveTypeAttr extends MoveAttr { } } +export class TechnoBlastTypeAttr extends VariableMoveTypeAttr { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if ([user.species.speciesId, user.fusionSpecies?.speciesId].includes(Species.GENESECT)) { + const form = user.species.speciesId === Species.GENESECT ? user.formIndex : user.fusionSpecies.formIndex; + const type = (args[0] as Utils.IntegerHolder); + + switch (form) { + case 1: // Shock Drive + type.value = Type.ELECTRIC; + break; + case 2: // Burn Drive + type.value = Type.FIRE; + break; + case 3: // Chill Drive + type.value = Type.ICE; + break; + case 4: // Douse Drive + type.value = Type.WATER; + break; + default: + type.value = Type.NORMAL; + break; + } + return true; + } + + return false; + } +} + export class AuraWheelTypeAttr extends VariableMoveTypeAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if ([user.species.speciesId, user.fusionSpecies?.speciesId].includes(Species.MORPEKO)) { @@ -4736,8 +4766,7 @@ export function initMoves() { .attr(StatusEffectAttr, StatusEffect.SLEEP) .soundBased(), new StatusMove(Moves.TICKLE, Type.NORMAL, 100, 20, -1, 0, 3) - .attr(StatChangeAttr, BattleStat.ATK, -1) - .attr(StatChangeAttr, BattleStat.DEF, -1), + .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF ], -1), new SelfStatusMove(Moves.COSMIC_POWER, Type.PSYCHIC, -1, 20, -1, 0, 3) .attr(StatChangeAttr, [ BattleStat.DEF, BattleStat.SPDEF ], 1, true), new AttackMove(Moves.WATER_SPOUT, Type.WATER, MoveCategory.SPECIAL, 150, 100, 5, -1, 0, 3) @@ -5334,7 +5363,7 @@ export function initMoves() { .ballBombMove() .target(MoveTarget.ALL_NEAR_OTHERS), new AttackMove(Moves.TECHNO_BLAST, Type.NORMAL, MoveCategory.SPECIAL, 120, 100, 5, -1, 0, 5) - .partial(), + .attr(TechnoBlastTypeAttr), new AttackMove(Moves.RELIC_SONG, Type.NORMAL, MoveCategory.SPECIAL, 75, 100, 10, 10, 0, 5) .attr(StatusEffectAttr, StatusEffect.SLEEP) .soundBased() @@ -5777,8 +5806,7 @@ export function initMoves() { .ignoresAbilities() .partial(), new StatusMove(Moves.TEARFUL_LOOK, Type.NORMAL, -1, 20, 100, 0, 7) - .attr(StatChangeAttr, BattleStat.ATK, -1) - .attr(StatChangeAttr, BattleStat.SPATK, -1), + .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], -1), new AttackMove(Moves.ZING_ZAP, Type.ELECTRIC, MoveCategory.PHYSICAL, 80, 100, 10, 30, 0, 7) .attr(FlinchAttr), new AttackMove(Moves.NATURES_MADNESS, Type.FAIRY, MoveCategory.SPECIAL, -1, 90, 10, -1, 0, 7) @@ -5957,8 +5985,7 @@ export function initMoves() { new AttackMove(Moves.BODY_PRESS, Type.FIGHTING, MoveCategory.PHYSICAL, 80, 100, 10, -1, 0, 8) .attr(DefAtkAttr), new StatusMove(Moves.DECORATE, Type.FAIRY, -1, 15, 100, 0, 8) - .attr(StatChangeAttr, BattleStat.ATK, 2) - .attr(StatChangeAttr, BattleStat.SPATK, 2), + .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], 2), new AttackMove(Moves.DRUM_BEATING, Type.GRASS, MoveCategory.PHYSICAL, 80, 100, 10, 100, 0, 8) .attr(StatChangeAttr, BattleStat.SPD, -1) .makesContact(false), diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index 87094af2028..9a38ed81e34 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -82,7 +82,11 @@ export enum FormChangeItem { SHADOW_REINS_OF_UNITY, WELLSPRING_MASK, HEARTHFLAME_MASK, - CORNERSTONE_MASK + CORNERSTONE_MASK, + SHOCK_DRIVE, + BURN_DRIVE, + CHILL_DRIVE, + DOUSE_DRIVE } export type SpeciesFormChangeConditionPredicate = (p: Pokemon) => boolean; @@ -542,6 +546,12 @@ export const pokemonFormChanges: PokemonFormChanges = { new SpeciesFormChange(Species.MELOETTA, 'pirouette', 'aria', new SpeciesFormChangePostMoveTrigger(Moves.RELIC_SONG), true), new SpeciesFormChange(Species.MELOETTA, 'pirouette', 'aria', new SpeciesFormChangeActiveTrigger(false), true) ], + [Species.GENESECT]: [ + new SpeciesFormChange(Species.GENESECT, '', 'shock', new SpeciesFormChangeItemTrigger(FormChangeItem.SHOCK_DRIVE)), + new SpeciesFormChange(Species.GENESECT, '', 'burn', new SpeciesFormChangeItemTrigger(FormChangeItem.BURN_DRIVE)), + new SpeciesFormChange(Species.GENESECT, '', 'chill', new SpeciesFormChangeItemTrigger(FormChangeItem.CHILL_DRIVE)), + new SpeciesFormChange(Species.GENESECT, '', 'douse', new SpeciesFormChangeItemTrigger(FormChangeItem.DOUSE_DRIVE)) + ], [Species.GRENINJA]: [ new SpeciesFormChange(Species.GRENINJA, 'battle-bond', 'ash', new SpeciesFormChangeManualTrigger(), true), new SpeciesFormChange(Species.GRENINJA, 'ash', 'battle-bond', new SpeciesFormChangeManualTrigger(), true) diff --git a/src/data/pokemon-level-moves.ts b/src/data/pokemon-level-moves.ts index c67e917b34d..2b5d95b2546 100644 --- a/src/data/pokemon-level-moves.ts +++ b/src/data/pokemon-level-moves.ts @@ -2597,7 +2597,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 31, Moves.LIGHT_SCREEN ], [ 34, Moves.BODY_SLAM ], [ 39, Moves.SAFEGUARD ], - [ 42, Moves.AROMATHERAPY ], + [ 42, Moves.GIGA_DRAIN ], [ 45, Moves.SOLAR_BEAM ], ], [Species.BAYLEEF]: [ @@ -2613,7 +2613,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 36, Moves.LIGHT_SCREEN ], [ 40, Moves.BODY_SLAM ], [ 46, Moves.SAFEGUARD ], - [ 50, Moves.AROMATHERAPY ], + [ 50, Moves.GIGA_DRAIN ], [ 54, Moves.SOLAR_BEAM ], ], [Species.MEGANIUM]: [ @@ -2631,7 +2631,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 40, Moves.LIGHT_SCREEN ], [ 46, Moves.BODY_SLAM ], [ 54, Moves.SAFEGUARD ], - [ 60, Moves.AROMATHERAPY ], + [ 60, Moves.GIGA_DRAIN ], [ 65, Moves.SOLAR_BEAM ], ], [Species.CYNDAQUIL]: [ @@ -2795,6 +2795,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 1, Moves.ECHOED_VOICE ], [ 9, Moves.CONFUSION ], [ 12, Moves.REFLECT ], + [ 15, Moves.DEFOG ], [ 18, Moves.AIR_SLASH ], [ 23, Moves.EXTRASENSORY ], [ 28, Moves.TAKE_DOWN ], @@ -3573,7 +3574,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 13, Moves.LICK ], [ 19, Moves.HEADBUTT ], [ 25, Moves.ROAR ], - [ 31, Moves.RAGE ], + [ 31, Moves.LAST_RESORT ], [ 37, Moves.PLAY_ROUGH ], [ 43, Moves.PAYBACK ], [ 49, Moves.CRUNCH ], @@ -3591,7 +3592,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 13, Moves.LICK ], [ 19, Moves.HEADBUTT ], [ 27, Moves.ROAR ], - [ 35, Moves.RAGE ], + [ 35, Moves.LAST_RESORT ], [ 43, Moves.PLAY_ROUGH ], [ 51, Moves.PAYBACK ], [ 59, Moves.CRUNCH ], @@ -3867,7 +3868,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 20, Moves.WING_ATTACK ], [ 24, Moves.SLASH ], [ 28, Moves.STEEL_WING ], - [ 32, Moves.AUTOTOMIZE ], + [ 32, Moves.PAYBACK ], [ 36, Moves.DRILL_PECK ], [ 40, Moves.METAL_SOUND ], [ 44, Moves.SPIKES ], @@ -3922,11 +3923,12 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 20, Moves.DRAGON_BREATH ], [ 25, Moves.BUBBLE_BEAM ], [ 30, Moves.AGILITY ], - [ 37, Moves.LASER_FOCUS ], + [ 37, Moves.WATER_PULSE ], [ 44, Moves.DRAGON_PULSE ], [ 51, Moves.HYDRO_PUMP ], [ 58, Moves.DRAGON_DANCE ], [ 65, Moves.RAIN_DANCE ], + [ 72, Moves.WAVE_CRASH ], ], [Species.PHANPY]: [ [ 1, Moves.TACKLE ], @@ -3973,10 +3975,9 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 35, Moves.RECOVER ], [ 40, Moves.DISCHARGE ], [ 45, Moves.TRI_ATTACK ], - [ 50, Moves.MAGIC_COAT ], - [ 55, Moves.LOCK_ON ], - [ 60, Moves.ZAP_CANNON ], - [ 65, Moves.HYPER_BEAM ], + [ 50, Moves.LOCK_ON ], + [ 55, Moves.ZAP_CANNON ], + [ 60, Moves.HYPER_BEAM ], ], [Species.STANTLER]: [ [ 1, Moves.TACKLE ], @@ -4267,7 +4268,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = { [ 72, Moves.FIRE_BLAST ], [ 81, Moves.FUTURE_SIGHT ], [ 90, Moves.SKY_ATTACK ], - [ 99, Moves.BURN_UP ], + [ 99, Moves.OVERHEAT ], ], [Species.CELEBI]: [ [ 1, Moves.CONFUSION ], diff --git a/src/data/status-effect.ts b/src/data/status-effect.ts index 4ae09526536..c14d49a3250 100644 --- a/src/data/status-effect.ts +++ b/src/data/status-effect.ts @@ -134,4 +134,44 @@ export function getStatusEffectCatchRateMultiplier(statusEffect: StatusEffect): } return 1; +} + +/** +* Returns a random non-volatile StatusEffect +*/ +export function generateRandomStatusEffect(): StatusEffect { + return Utils.randIntRange(1, 6); +} + +/** +* Returns a random non-volatile StatusEffect between the two provided +* @param statusEffectA The first StatusEffect +* @param statusEffectA The second StatusEffect +*/ +export function getRandomStatusEffect(statusEffectA: StatusEffect, statusEffectB: StatusEffect): StatusEffect { + if (statusEffectA === StatusEffect.NONE || statusEffectA === StatusEffect.FAINT) { + return statusEffectB; + } + if (statusEffectB === StatusEffect.NONE || statusEffectB === StatusEffect.FAINT) { + return statusEffectA; + } + + return Utils.randIntRange(0, 2) ? statusEffectA : statusEffectB; +} + +/** +* Returns a random non-volatile StatusEffect between the two provided +* @param statusA The first Status +* @param statusB The second Status +*/ +export function getRandomStatus(statusA: Status, statusB: Status): Status { + if (statusA === undefined || statusA.effect === StatusEffect.NONE || statusA.effect === StatusEffect.FAINT) { + return statusB; + } + if (statusB === undefined || statusB.effect === StatusEffect.NONE || statusB.effect === StatusEffect.FAINT) { + return statusA; + } + + + return Utils.randIntRange(0, 2) ? statusA : statusB; } \ No newline at end of file diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index adbe8a8d893..7281090b3e0 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -14,7 +14,7 @@ import { AttackTypeBoosterModifier, DamageMoneyRewardModifier, EnemyDamageBooste import { PokeballType } from '../data/pokeball'; import { Gender } from '../data/gender'; import { initMoveAnim, loadMoveAnimAssets } from '../data/battle-anims'; -import { Status, StatusEffect } from '../data/status-effect'; +import { Status, StatusEffect, getRandomStatus } from '../data/status-effect'; import { pokemonEvolutions, pokemonPrevolutions, SpeciesFormEvolution, SpeciesEvolutionCondition, FusionSpeciesFormEvolution } from '../data/pokemon-evolutions'; import { reverseCompatibleTms, tmSpecies } from '../data/tms'; import { DamagePhase, FaintPhase, LearnMovePhase, ObtainStatusEffectPhase, StatChangePhase, SwitchSummonPhase } from '../phases'; @@ -2542,6 +2542,10 @@ export class PlayerPokemon extends Pokemon { this.generateCompatibleTms(); } + /** + * Returns a Promise to fuse two PlayerPokemon together + * @param pokemon The PlayerPokemon to fuse to this one + */ fuse(pokemon: PlayerPokemon): Promise { return new Promise(resolve => { this.fusionSpecies = pokemon.species; @@ -2555,8 +2559,25 @@ export class PlayerPokemon extends Pokemon { this.scene.validateAchv(achvs.SPLICE); this.scene.gameData.gameStats.pokemonFused++; + // Store the average HP% that each Pokemon has + const newHpPercent = ((pokemon.hp / pokemon.stats[Stat.HP]) + (this.hp / this.stats[Stat.HP])) / 2; + this.generateName(); this.calculateStats(); + + // Set this Pokemon's HP to the average % of both fusion components + this.hp = Math.round(this.stats[Stat.HP] * newHpPercent); + if (!this.isFainted()) { + // If this Pokemon hasn't fainted, make sure the HP wasn't set over the new maximum + this.hp = Math.min(this.hp, this.stats[Stat.HP]); + this.status = getRandomStatus(this.status, pokemon.status); // Get a random valid status between the two + } + else if (!pokemon.isFainted()) { + // If this Pokemon fainted but the other hasn't, make sure the HP wasn't set to zero + this.hp = Math.max(this.hp, 1); + this.status = pokemon.status; // Inherit the other Pokemon's status + } + this.generateCompatibleTms(); this.updateInfo(true); const fusedPartyMemberIndex = this.scene.getParty().indexOf(pokemon); diff --git a/src/loading-scene.ts b/src/loading-scene.ts index 05b6c9f50b1..88e60fb9c74 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -31,6 +31,8 @@ export class LoadingScene extends SceneBase { this.loadAtlas('bg', 'ui'); this.loadImage('command_fight_labels', 'ui'); this.loadAtlas('prompt', 'ui'); + this.loadImage('candy', 'ui'); + this.loadImage('candy_overlay', 'ui'); this.loadImage('cursor', 'ui'); this.loadImage('cursor_reverse', 'ui'); for (let wv of Utils.getEnumValues(WindowVariant)) { diff --git a/src/phases.ts b/src/phases.ts index a3b66edf01c..e65e76daa8a 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -30,7 +30,7 @@ import { Weather, WeatherType, getRandomWeatherType, getTerrainBlockMessage, get import { TempBattleStat } from "./data/temp-battle-stat"; import { ArenaTagSide, ArenaTrapTag, MistTag, TrickRoomTag } from "./data/arena-tag"; import { ArenaTagType } from "./data/enums/arena-tag-type"; -import { CheckTrappedAbAttr, IgnoreOpponentStatChangesAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, applyPostBattleInitAbAttrs, PostBattleInitAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr, PreventBerryUseAbAttr } from "./data/ability"; +import { CheckTrappedAbAttr, IgnoreOpponentStatChangesAbAttr, PostAttackAbAttr, PostBattleAbAttr, PostDefendAbAttr, PostSummonAbAttr, PostTurnAbAttr, PostWeatherLapseAbAttr, PreSwitchOutAbAttr, PreWeatherDamageAbAttr, ProtectStatAbAttr, RedirectMoveAbAttr, RunSuccessAbAttr, StatChangeMultiplierAbAttr, SuppressWeatherEffectAbAttr, SyncEncounterNatureAbAttr, applyAbAttrs, applyCheckTrappedAbAttrs, applyPostAttackAbAttrs, applyPostBattleAbAttrs, applyPostDefendAbAttrs, applyPostSummonAbAttrs, applyPostTurnAbAttrs, applyPostWeatherLapseAbAttrs, applyPreStatChangeAbAttrs, applyPreSwitchOutAbAttrs, applyPreWeatherEffectAbAttrs, BattleStatMultiplierAbAttr, applyBattleStatMultiplierAbAttrs, IncrementMovePriorityAbAttr, applyPostVictoryAbAttrs, PostVictoryAbAttr, applyPostBattleInitAbAttrs, PostBattleInitAbAttr, BlockNonDirectDamageAbAttr as BlockNonDirectDamageAbAttr, applyPostKnockOutAbAttrs, PostKnockOutAbAttr, PostBiomeChangeAbAttr, applyPostFaintAbAttrs, PostFaintAbAttr, IncreasePpAbAttr, PostStatChangeAbAttr, applyPostStatChangeAbAttrs, AlwaysHitAbAttr, PreventBerryUseAbAttr, StatChangeCopyAbAttr } from "./data/ability"; import { Unlockables, getUnlockableName } from "./system/unlockables"; import { getBiomeKey } from "./field/arena"; import { BattleType, BattlerIndex, TurnCommand } from "./battle"; @@ -1179,14 +1179,25 @@ export class SummonPhase extends PartyMemberPokemonPhase { this.preSummon(); } + /** + * Sends out a Pokemon before the battle begins and shows the appropriate messages + */ preSummon(): void { const partyMember = this.getPokemon(); + // If the Pokemon about to be sent out is fainted, switch to the first non-fainted Pokemon if (partyMember.isFainted()) { + console.warn("The Pokemon about to be sent out is fainted. Attempting to resolve..."); const party = this.getParty(); - const nonFaintedIndex = party.slice(this.partyMemberIndex).findIndex(p => !p.isFainted()) + this.partyMemberIndex; - const nonFaintedPartyMember = party[nonFaintedIndex]; - party[nonFaintedIndex] = partyMember; - party[this.partyMemberIndex] = nonFaintedPartyMember; + + const nonFaintedIndex = party.findIndex(x => !x.isFainted()); // Find the first non-fainted Pokemon index + if (nonFaintedIndex === -1) { + console.error("Party Details:\n", party); + throw new Error("All available Pokemon were fainted!"); + } + + // Swaps the fainted Pokemon and the first non-fainted Pokemon in the party + [party[this.partyMemberIndex], party[nonFaintedIndex]] = [party[nonFaintedIndex], party[this.partyMemberIndex]]; + console.warn("Swapped %s %O with %s %O", partyMember?.name, partyMember, party[0]?.name, party[0]); } if (this.player) { @@ -2661,8 +2672,9 @@ export class StatChangePhase extends PokemonPhase { private levels: integer; private showMessage: boolean; private ignoreAbilities: boolean; + private canBeCopied: boolean; - constructor(scene: BattleScene, battlerIndex: BattlerIndex, selfTarget: boolean, stats: BattleStat[], levels: integer, showMessage: boolean = true, ignoreAbilities: boolean = false) { + constructor(scene: BattleScene, battlerIndex: BattlerIndex, selfTarget: boolean, stats: BattleStat[], levels: integer, showMessage: boolean = true, ignoreAbilities: boolean = false, canBeCopied: boolean = true) { super(scene, battlerIndex); this.selfTarget = selfTarget; @@ -2670,6 +2682,7 @@ export class StatChangePhase extends PokemonPhase { this.levels = levels; this.showMessage = showMessage; this.ignoreAbilities = ignoreAbilities; + this.canBeCopied = canBeCopied; } start() { @@ -2717,8 +2730,12 @@ export class StatChangePhase extends PokemonPhase { for (let stat of filteredStats) pokemon.summonData.battleStats[stat] = Math.max(Math.min(pokemon.summonData.battleStats[stat] + levels.value, 6), -6); + if (levels.value > 0 && this.canBeCopied) + for (let opponent of pokemon.getOpponents()) + applyAbAttrs(StatChangeCopyAbAttr, opponent, null, this.stats, levels.value); + applyPostStatChangeAbAttrs(PostStatChangeAbAttr, pokemon, filteredStats, this.levels, this.selfTarget); - + pokemon.updateInfo(); handleTutorial(this.scene, Tutorial.Stat_Change).then(() => super.end()); @@ -4344,7 +4361,7 @@ export class SelectModifierPhase extends BattlePhase { const isMoveModifier = modifierType instanceof PokemonMoveModifierType; const isTmModifier = modifierType instanceof TmModifierType; const isRememberMoveModifier = modifierType instanceof RememberMoveModifierType; - const isPpRestoreModifier = modifierType instanceof PokemonPpRestoreModifierType; + const isPpRestoreModifier = (modifierType instanceof PokemonPpRestoreModifierType || modifierType instanceof PokemonPpUpModifierType); const partyUiMode = isMoveModifier ? PartyUiMode.MOVE_MODIFIER : isTmModifier ? PartyUiMode.TM_MODIFIER : isRememberMoveModifier ? PartyUiMode.REMEMBER_MOVE_MODIFIER diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 7776e21782f..ee514665dc9 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -1,8 +1,10 @@ -import BattleScene, { Button } from "../battle-scene"; +import BattleScene, { Button, starterColors } from "../battle-scene"; import { Mode } from "./ui"; import UiHandler from "./ui-handler"; import * as Utils from "../utils"; import { PlayerPokemon } from "../field/pokemon"; +import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from '../data/pokemon-species'; +import { argbFromRgba } from "@material/material-color-utilities"; import { Type, getTypeRgb } from "../data/type"; import { TextStyle, addBBCodeTextObject, addTextObject, getBBCodeFrag, getTextColor } from "./text"; import Move, { MoveCategory } from "../data/move"; @@ -44,6 +46,9 @@ export default class SummaryUiHandler extends UiHandler { private genderText: Phaser.GameObjects.Text; private shinyIcon: Phaser.GameObjects.Image; private fusionShinyIcon: Phaser.GameObjects.Image; + private candyShadow: Phaser.GameObjects.Sprite; + private candyIcon: Phaser.GameObjects.Sprite; + private candyOverlay: Phaser.GameObjects.Sprite; private statusContainer: Phaser.GameObjects.Container; private status: Phaser.GameObjects.Image; private summaryPageContainer: Phaser.GameObjects.Container; @@ -136,6 +141,20 @@ export default class SummaryUiHandler extends UiHandler { this.pokeball.setOrigin(0, 1); this.summaryContainer.add(this.pokeball); + this.candyShadow = this.scene.add.sprite(13, -140, 'candy'); + this.candyShadow.setTint(0x141414) + this.candyShadow.setScale(0.8); + this.candyShadow.setInteractive(new Phaser.Geom.Rectangle(0, 0, 16, 16), Phaser.Geom.Rectangle.Contains); + this.summaryContainer.add(this.candyShadow); + + this.candyIcon = this.scene.add.sprite(13, -140, 'candy'); + this.candyIcon.setScale(0.8); + this.summaryContainer.add(this.candyIcon); + + this.candyOverlay = this.scene.add.sprite(13, -140, 'candy_overlay'); + this.candyOverlay.setScale(0.8); + this.summaryContainer.add(this.candyOverlay); + this.levelText = addTextObject(this.scene, 36, -17, '', TextStyle.SUMMARY_ALT); this.levelText.setOrigin(0, 1); this.summaryContainer.add(this.levelText); @@ -222,6 +241,10 @@ export default class SummaryUiHandler extends UiHandler { this.shinyOverlay.setVisible(this.pokemon.isShiny()); + const colorScheme = starterColors[this.pokemon.species.getRootSpeciesId()]; + this.candyIcon.setTint(argbFromRgba(Utils.rgbHexToRgba(colorScheme[0]))); + this.candyOverlay.setTint(argbFromRgba(Utils.rgbHexToRgba(colorScheme[1]))); + this.numberText.setText(Utils.padInt(this.pokemon.species.speciesId, 4)); this.numberText.setColor(this.getTextColor(!this.pokemon.isShiny() ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD)); this.numberText.setShadowColor(this.getTextColor(!this.pokemon.isShiny() ? TextStyle.SUMMARY : TextStyle.SUMMARY_GOLD, true)); @@ -251,6 +274,21 @@ export default class SummaryUiHandler extends UiHandler { this.splicedIcon.on('pointerout', () => (this.scene as BattleScene).ui.hideTooltip()); } + var currentFriendship = this.scene.gameData.starterData[this.pokemon.species.getRootSpeciesId()].friendship; + if (!currentFriendship || currentFriendship === undefined) + currentFriendship = 0; + + const friendshipCap = getStarterValueFriendshipCap(speciesStarters[this.pokemon.species.getRootSpeciesId()]); + const candyCropY = 16 - (16 * (currentFriendship / friendshipCap)); + + if (this.candyShadow.visible) { + this.candyShadow.on('pointerover', () => (this.scene as BattleScene).ui.showTooltip(null, `${currentFriendship}/${friendshipCap}`, true)); + this.candyShadow.on('pointerout', () => (this.scene as BattleScene).ui.hideTooltip()); + } + + this.candyIcon.setCrop(0,candyCropY,16, 16); + this.candyOverlay.setCrop(0,candyCropY,16, 16); + const doubleShiny = isFusion && this.pokemon.shiny && this.pokemon.fusionShiny; const baseVariant = !doubleShiny ? this.pokemon.getVariant() : this.pokemon.variant; diff --git a/src/utils.ts b/src/utils.ts index 577e35c748e..3ae440a0bfb 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -62,6 +62,11 @@ export function padInt(value: integer, length: integer, padWith?: string): strin return valueStr; } +/** +* Returns a random integer between min and min + range +* @param range The amount of possible numbers +* @param min The starting number +*/ export function randInt(range: integer, min: integer = 0): integer { if (range === 1) return min; @@ -74,6 +79,11 @@ export function randSeedInt(range: integer, min: integer = 0): integer { return Phaser.Math.RND.integerInRange(min, (range - 1) + min); } +/** +* Returns a random integer between min and max (non-inclusive) +* @param min The lowest number +* @param max The highest number +*/ export function randIntRange(min: integer, max: integer): integer { return randInt(max - min, min); }