diff --git a/public/images/items.json b/public/images/items.json index 939b3927e..05f715ff0 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,8 +4,8 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 396, - "h": 396 + "w": 399, + "h": 399 }, "scale": 1, "frames": [ @@ -555,6 +555,27 @@ "h": 20 } }, + { + "filename": "lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 382, + "y": 0, + "w": 17, + "h": 24 + } + }, { "filename": "catching_charm", "rotated": false, @@ -703,7 +724,7 @@ } }, { - "filename": "mega_bracelet", + "filename": "coupon", "rotated": false, "trimmed": true, "sourceSize": { @@ -711,20 +732,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 16 + "x": 4, + "y": 7, + "w": 23, + "h": 19 }, "frame": { "x": 0, "y": 380, - "w": 20, - "h": 16 + "w": 23, + "h": 19 } }, { - "filename": "relic_band", + "filename": "golden_mystic_ticket", "rotated": false, "trimmed": true, "sourceSize": { @@ -732,16 +753,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, - "y": 9, - "w": 17, - "h": 16 + "x": 4, + "y": 7, + "w": 23, + "h": 19 }, "frame": { - "x": 20, + "x": 23, "y": 380, - "w": 17, - "h": 16 + "w": 23, + "h": 19 } }, { @@ -1039,7 +1060,7 @@ } }, { - "filename": "elixir", + "filename": "oval_charm", "rotated": false, "trimmed": true, "sourceSize": { @@ -1047,15 +1068,15 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, + "x": 6, "y": 4, - "w": 18, + "w": 21, "h": 24 }, "frame": { "x": 378, - "y": 20, - "w": 18, + "y": 24, + "w": 21, "h": 24 } }, @@ -1102,7 +1123,7 @@ } }, { - "filename": "oval_charm", + "filename": "red_orb", "rotated": false, "trimmed": true, "sourceSize": { @@ -1112,13 +1133,13 @@ "spriteSourceSize": { "x": 6, "y": 4, - "w": 21, + "w": 20, "h": 24 }, "frame": { "x": 24, "y": 224, - "w": 21, + "w": 20, "h": 24 } }, @@ -1228,7 +1249,7 @@ } }, { - "filename": "abomasite", + "filename": "mega_bracelet", "rotated": false, "trimmed": true, "sourceSize": { @@ -1236,83 +1257,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, + "x": 6, "y": 8, - "w": 16, + "w": 20, "h": 16 }, "frame": { "x": 24, "y": 364, - "w": 16, + "w": 20, "h": 16 } }, { - "filename": "absolite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 37, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "aerodactylite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 40, - "y": 364, - "w": 16, - "h": 16 - } - }, - { - "filename": "aggronite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 53, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "ether", + "filename": "elixir", "rotated": false, "trimmed": true, "sourceSize": { @@ -1333,7 +1291,7 @@ } }, { - "filename": "full_restore", + "filename": "ether", "rotated": false, "trimmed": true, "sourceSize": { @@ -1354,7 +1312,7 @@ } }, { - "filename": "max_elixir", + "filename": "full_restore", "rotated": false, "trimmed": true, "sourceSize": { @@ -1417,7 +1375,7 @@ } }, { - "filename": "max_ether", + "filename": "max_elixir", "rotated": false, "trimmed": true, "sourceSize": { @@ -1438,7 +1396,7 @@ } }, { - "filename": "hp_up", + "filename": "max_ether", "rotated": false, "trimmed": true, "sourceSize": { @@ -1446,20 +1404,20 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, + "x": 7, "y": 4, - "w": 16, + "w": 18, "h": 24 }, "frame": { - "x": 45, + "x": 44, "y": 224, - "w": 16, + "w": 18, "h": 24 } }, { - "filename": "iron", + "filename": "hp_up", "rotated": false, "trimmed": true, "sourceSize": { @@ -1480,7 +1438,7 @@ } }, { - "filename": "lure", + "filename": "iron", "rotated": false, "trimmed": true, "sourceSize": { @@ -1490,13 +1448,13 @@ "spriteSourceSize": { "x": 8, "y": 4, - "w": 17, + "w": 16, "h": 24 }, "frame": { "x": 47, "y": 272, - "w": 17, + "w": 16, "h": 24 } }, @@ -1563,69 +1521,6 @@ "h": 23 } }, - { - "filename": "alakazite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 56, - "y": 364, - "w": 16, - "h": 16 - } - }, - { - "filename": "altarianite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 69, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 - }, - "frame": { - "x": 382, - "y": 0, - "w": 12, - "h": 17 - } - }, { "filename": "ability_capsule", "rotated": false, @@ -1641,12 +1536,33 @@ "h": 14 }, "frame": { - "x": 138, - "y": 46, + "x": 44, + "y": 364, "w": 24, "h": 14 } }, + { + "filename": "amulet_coin", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 46, + "y": 378, + "w": 23, + "h": 21 + } + }, { "filename": "choice_specs", "rotated": false, @@ -1662,29 +1578,8 @@ "h": 18 }, "frame": { - "x": 162, - "y": 45, - "w": 24, - "h": 18 - } - }, - { - "filename": "dragon_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 186, - "y": 45, + "x": 138, + "y": 46, "w": 24, "h": 18 } @@ -1704,7 +1599,7 @@ "h": 22 }, "frame": { - "x": 210, + "x": 162, "y": 45, "w": 24, "h": 22 @@ -1725,7 +1620,7 @@ "h": 22 }, "frame": { - "x": 234, + "x": 186, "y": 45, "w": 24, "h": 22 @@ -1746,7 +1641,7 @@ "h": 23 }, "frame": { - "x": 258, + "x": 210, "y": 45, "w": 24, "h": 23 @@ -1767,7 +1662,7 @@ "h": 23 }, "frame": { - "x": 282, + "x": 234, "y": 45, "w": 24, "h": 23 @@ -1788,8 +1683,8 @@ "h": 23 }, "frame": { - "x": 306, - "y": 44, + "x": 258, + "y": 45, "w": 24, "h": 23 } @@ -1809,56 +1704,14 @@ "h": 22 }, "frame": { - "x": 330, - "y": 43, + "x": 282, + "y": 45, "w": 24, "h": 22 } }, { - "filename": "healing_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 23, - "h": 22 - }, - "frame": { - "x": 354, - "y": 43, - "w": 23, - "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": 377, - "y": 44, - "w": 19, - "h": 22 - } - }, - { - "filename": "icy_reins_of_unity", + "filename": "rare_candy", "rotated": false, "trimmed": true, "sourceSize": { @@ -1867,141 +1720,15 @@ }, "spriteSourceSize": { "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 330, - "y": 65, - "w": 24, - "h": 20 - } - }, - { - "filename": "amulet_coin", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, "y": 5, "w": 23, - "h": 21 - }, - "frame": { - "x": 354, - "y": 65, - "w": 23, - "h": 21 - } - }, - { - "filename": "metal_coat", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 19, - "h": 22 - }, - "frame": { - "x": 377, - "y": 66, - "w": 19, - "h": 22 - } - }, - { - "filename": "rusted_shield", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 24, - "h": 20 + "h": 23 }, "frame": { "x": 306, - "y": 67, - "w": 24, - "h": 20 - } - }, - { - "filename": "sacred_ash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 330, - "y": 85, - "w": 24, - "h": 20 - } - }, - { - "filename": "auspicious_armor", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, + "y": 44, "w": 23, - "h": 21 - }, - "frame": { - "x": 354, - "y": 86, - "w": 23, - "h": 21 - } - }, - { - "filename": "spell_tag", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 19, - "h": 21 - }, - "frame": { - "x": 377, - "y": 88, - "w": 19, - "h": 21 + "h": 23 } }, { @@ -2026,7 +1753,7 @@ } }, { - "filename": "red_orb", + "filename": "super_lure", "rotated": false, "trimmed": true, "sourceSize": { @@ -2034,102 +1761,18 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, + "x": 8, "y": 4, - "w": 20, + "w": 17, "h": 24 }, "frame": { "x": 61, "y": 200, - "w": 20, + "w": 17, "h": 24 } }, - { - "filename": "bug_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 61, - "y": 224, - "w": 22, - "h": 23 - } - }, - { - "filename": "dark_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 63, - "y": 247, - "w": 22, - "h": 23 - } - }, - { - "filename": "dragon_fang", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 64, - "y": 270, - "w": 21, - "h": 23 - } - }, - { - "filename": "dragon_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 64, - "y": 293, - "w": 22, - "h": 23 - } - }, { "filename": "max_repel", "rotated": false, @@ -2145,8 +1788,8 @@ "h": 24 }, "frame": { - "x": 70, - "y": 316, + "x": 62, + "y": 224, "w": 16, "h": 24 } @@ -2166,14 +1809,14 @@ "h": 24 }, "frame": { - "x": 70, - "y": 340, + "x": 63, + "y": 248, "w": 16, "h": 24 } }, { - "filename": "ampharosite", + "filename": "pp_up", "rotated": false, "trimmed": true, "sourceSize": { @@ -2182,19 +1825,19 @@ }, "spriteSourceSize": { "x": 8, - "y": 8, + "y": 4, "w": 16, - "h": 16 + "h": 24 }, "frame": { - "x": 72, - "y": 364, + "x": 63, + "y": 272, "w": 16, - "h": 16 + "h": 24 } }, { - "filename": "audinite", + "filename": "protein", "rotated": false, "trimmed": true, "sourceSize": { @@ -2203,15 +1846,225 @@ }, "spriteSourceSize": { "x": 8, - "y": 8, + "y": 4, "w": 16, - "h": 16 + "h": 24 }, "frame": { - "x": 85, - "y": 380, + "x": 64, + "y": 296, "w": 16, - "h": 16 + "h": 24 + } + }, + { + "filename": "repel", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 70, + "y": 320, + "w": 16, + "h": 24 + } + }, + { + "filename": "apicot_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 70, + "y": 344, + "w": 19, + "h": 20 + } + }, + { + "filename": "bug_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 69, + "y": 364, + "w": 22, + "h": 23 + } + }, + { + "filename": "relic_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 11, + "w": 15, + "h": 11 + }, + "frame": { + "x": 69, + "y": 387, + "w": 15, + "h": 11 + } + }, + { + "filename": "dragon_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 24, + "h": 18 + }, + "frame": { + "x": 330, + "y": 43, + "w": 24, + "h": 18 + } + }, + { + "filename": "icy_reins_of_unity", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 354, + "y": 43, + "w": 24, + "h": 20 + } + }, + { + "filename": "dragon_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 378, + "y": 48, + "w": 21, + "h": 23 + } + }, + { + "filename": "rusted_shield", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 24, + "h": 20 + }, + "frame": { + "x": 329, + "y": 61, + "w": 24, + "h": 20 + } + }, + { + "filename": "sacred_ash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 353, + "y": 63, + "w": 24, + "h": 20 + } + }, + { + "filename": "dark_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 377, + "y": 71, + "w": 22, + "h": 23 } }, { @@ -2256,6 +2109,27 @@ "h": 20 } }, + { + "filename": "auspicious_armor", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 21 + }, + "frame": { + "x": 115, + "y": 50, + "w": 23, + "h": 21 + } + }, { "filename": "binding_band", "rotated": false, @@ -2271,8 +2145,8 @@ "h": 20 }, "frame": { - "x": 115, - "y": 50, + "x": 138, + "y": 64, "w": 23, "h": 20 } @@ -2292,8 +2166,8 @@ "h": 17 }, "frame": { - "x": 138, - "y": 60, + "x": 161, + "y": 67, "w": 23, "h": 17 } @@ -2313,8 +2187,8 @@ "h": 17 }, "frame": { - "x": 161, - "y": 63, + "x": 184, + "y": 67, "w": 23, "h": 17 } @@ -2334,14 +2208,14 @@ "h": 17 }, "frame": { - "x": 184, - "y": 63, + "x": 207, + "y": 68, "w": 23, "h": 17 } }, { - "filename": "coupon", + "filename": "douse_drive", "rotated": false, "trimmed": true, "sourceSize": { @@ -2350,36 +2224,99 @@ }, "spriteSourceSize": { "x": 4, - "y": 7, + "y": 8, "w": 23, - "h": 19 - }, - "frame": { - "x": 207, - "y": 67, - "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 + "h": 17 }, "frame": { "x": 230, + "y": 68, + "w": 23, + "h": 17 + } + }, + { + "filename": "healing_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 23, + "h": 22 + }, + "frame": { + "x": 253, + "y": 68, + "w": 23, + "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": 276, + "y": 68, + "w": 18, + "h": 22 + } + }, + { + "filename": "rarer_candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 294, "y": 67, "w": 23, - "h": 19 + "h": 23 + } + }, + { + "filename": "revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 10, + "y": 8, + "w": 12, + "h": 17 + }, + "frame": { + "x": 317, + "y": 67, + "w": 12, + "h": 17 } }, { @@ -2397,8 +2334,8 @@ "h": 21 }, "frame": { - "x": 253, - "y": 68, + "x": 60, + "y": 70, "w": 23, "h": 21 } @@ -2418,73 +2355,10 @@ "h": 21 }, "frame": { - "x": 276, - "y": 68, - "w": 23, - "h": 21 - } - }, - { - "filename": "douse_drive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 60, + "x": 83, "y": 70, "w": 23, - "h": 17 - } - }, - { - "filename": "rare_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 57, - "y": 87, - "w": 23, - "h": 23 - } - }, - { - "filename": "rarer_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 57, - "y": 110, - "w": 23, - "h": 23 + "h": 21 } }, { @@ -2503,13 +2377,13 @@ }, "frame": { "x": 57, - "y": 133, + "y": 91, "w": 23, "h": 23 } }, { - "filename": "apicot_berry", + "filename": "dragon_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -2518,36 +2392,15 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, - "w": 19, - "h": 20 + "y": 4, + "w": 22, + "h": 23 }, "frame": { - "x": 63, - "y": 156, - "w": 19, - "h": 20 - } - }, - { - "filename": "mystic_ticket", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 - }, - "frame": { - "x": 83, - "y": 70, - "w": 23, - "h": 19 + "x": 80, + "y": 91, + "w": 22, + "h": 23 } }, { @@ -2565,12 +2418,33 @@ "h": 23 }, "frame": { - "x": 80, - "y": 89, + "x": 57, + "y": 114, "w": 22, "h": 23 } }, + { + "filename": "super_repel", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 57, + "y": 137, + "w": 16, + "h": 24 + } + }, { "filename": "fairy_tera_shard", "rotated": false, @@ -2586,14 +2460,14 @@ "h": 23 }, "frame": { - "x": 80, - "y": 112, + "x": 79, + "y": 114, "w": 22, "h": 23 } }, { - "filename": "deep_sea_tooth", + "filename": "fighting_tera_shard", "rotated": false, "trimmed": true, "sourceSize": { @@ -2601,16 +2475,58 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 6, + "x": 6, + "y": 4, "w": 22, - "h": 21 + "h": 23 }, "frame": { - "x": 80, - "y": 135, + "x": 73, + "y": 137, "w": 22, - "h": 21 + "h": 23 + } + }, + { + "filename": "candy_overlay", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 12, + "w": 16, + "h": 15 + }, + "frame": { + "x": 63, + "y": 161, + "w": 16, + "h": 15 + } + }, + { + "filename": "unknown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 79, + "y": 160, + "w": 16, + "h": 24 } }, { @@ -2629,13 +2545,13 @@ }, "frame": { "x": 106, - "y": 70, + "y": 71, "w": 23, "h": 21 } }, { - "filename": "fighting_tera_shard", + "filename": "rusted_sword", "rotated": false, "trimmed": true, "sourceSize": { @@ -2643,16 +2559,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 + "x": 4, + "y": 5, + "w": 23, + "h": 22 }, "frame": { "x": 102, - "y": 91, - "w": 22, - "h": 23 + "y": 92, + "w": 23, + "h": 22 } }, { @@ -2670,54 +2586,12 @@ "h": 23 }, "frame": { - "x": 102, + "x": 101, "y": 114, "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": 102, - "y": 137, - "w": 22, - "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": 82, - "y": 156, - "w": 23, - "h": 20 - } - }, { "filename": "fire_tera_shard", "rotated": false, @@ -2733,8 +2607,8 @@ "h": 23 }, "frame": { - "x": 79, - "y": 176, + "x": 95, + "y": 137, "w": 22, "h": 23 } @@ -2754,12 +2628,33 @@ "h": 23 }, "frame": { - "x": 81, - "y": 199, + "x": 95, + "y": 160, "w": 22, "h": 23 } }, + { + "filename": "abomasite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 79, + "y": 184, + "w": 16, + "h": 16 + } + }, { "filename": "focus_sash", "rotated": false, @@ -2775,8 +2670,8 @@ "h": 23 }, "frame": { - "x": 83, - "y": 222, + "x": 78, + "y": 200, "w": 22, "h": 23 } @@ -2796,12 +2691,33 @@ "h": 23 }, "frame": { - "x": 85, - "y": 245, + "x": 78, + "y": 223, "w": 22, "h": 23 } }, + { + "filename": "shock_drive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 95, + "y": 183, + "w": 23, + "h": 17 + } + }, { "filename": "grass_tera_shard", "rotated": false, @@ -2817,8 +2733,8 @@ "h": 23 }, "frame": { - "x": 85, - "y": 268, + "x": 79, + "y": 246, "w": 22, "h": 23 } @@ -2838,8 +2754,8 @@ "h": 23 }, "frame": { - "x": 86, - "y": 291, + "x": 79, + "y": 269, "w": 22, "h": 23 } @@ -2859,8 +2775,8 @@ "h": 23 }, "frame": { - "x": 86, - "y": 314, + "x": 100, + "y": 200, "w": 22, "h": 23 } @@ -2880,92 +2796,8 @@ "h": 23 }, "frame": { - "x": 86, - "y": 337, - "w": 22, - "h": 23 - } - }, - { - "filename": "big_nugget", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 88, - "y": 360, - "w": 20, - "h": 20 - } - }, - { - "filename": "banettite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 101, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "blue_orb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 105, - "y": 156, - "w": 20, - "h": 20 - } - }, - { - "filename": "normal_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 101, - "y": 176, + "x": 100, + "y": 223, "w": 22, "h": 23 } @@ -2985,8 +2817,8 @@ "h": 23 }, "frame": { - "x": 103, - "y": 199, + "x": 101, + "y": 246, "w": 21, "h": 23 } @@ -3006,12 +2838,33 @@ "h": 23 }, "frame": { - "x": 105, - "y": 222, + "x": 101, + "y": 269, "w": 21, "h": 23 } }, + { + "filename": "normal_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 80, + "y": 292, + "w": 22, + "h": 23 + } + }, { "filename": "mystic_water", "rotated": false, @@ -3027,8 +2880,8 @@ "h": 23 }, "frame": { - "x": 107, - "y": 245, + "x": 102, + "y": 292, "w": 20, "h": 23 } @@ -3048,12 +2901,33 @@ "h": 23 }, "frame": { - "x": 107, - "y": 268, + "x": 86, + "y": 315, "w": 22, "h": 23 } }, + { + "filename": "full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 4, + "w": 15, + "h": 23 + }, + "frame": { + "x": 108, + "y": 315, + "w": 15, + "h": 23 + } + }, { "filename": "poison_tera_shard", "rotated": false, @@ -3069,8 +2943,8 @@ "h": 23 }, "frame": { - "x": 108, - "y": 291, + "x": 89, + "y": 338, "w": 22, "h": 23 } @@ -3090,56 +2964,14 @@ "h": 23 }, "frame": { - "x": 108, - "y": 314, + "x": 91, + "y": 361, "w": 22, "h": 23 } }, { - "filename": "reaper_cloth", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 108, - "y": 337, - "w": 22, - "h": 23 - } - }, - { - "filename": "deep_sea_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 108, - "y": 360, - "w": 22, - "h": 20 - } - }, - { - "filename": "beedrillite", + "filename": "hyper_potion", "rotated": false, "trimmed": true, "sourceSize": { @@ -3148,246 +2980,78 @@ }, "spriteSourceSize": { "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 111, + "y": 338, + "w": 17, + "h": 23 + } + }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 113, + "y": 361, + "w": 17, + "h": 23 + } + }, + { + "filename": "prism_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 91, + "y": 384, + "w": 15, + "h": 15 + } + }, + { + "filename": "zinc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, "w": 16, - "h": 16 + "h": 24 }, "frame": { "x": 117, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "pp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, + "y": 137, "w": 16, "h": 24 - }, - "frame": { - "x": 124, - "y": 91, - "w": 16, - "h": 24 - } - }, - { - "filename": "protein", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 124, - "y": 115, - "w": 16, - "h": 24 - } - }, - { - "filename": "everstone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 17 - }, - "frame": { - "x": 124, - "y": 139, - "w": 20, - "h": 17 - } - }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 125, - "y": 156, - "w": 19, - "h": 20 - } - }, - { - "filename": "rock_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 123, - "y": 176, - "w": 22, - "h": 23 - } - }, - { - "filename": "sharp_beak", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 124, - "y": 199, - "w": 21, - "h": 23 - } - }, - { - "filename": "steel_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 126, - "y": 222, - "w": 22, - "h": 23 - } - }, - { - "filename": "stellar_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 127, - "y": 245, - "w": 22, - "h": 23 - } - }, - { - "filename": "water_tera_shard", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 129, - "y": 268, - "w": 22, - "h": 23 - } - }, - { - "filename": "whipped_dream", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 23 - }, - "frame": { - "x": 130, - "y": 291, - "w": 21, - "h": 23 - } - }, - { - "filename": "wide_lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 130, - "y": 314, - "w": 22, - "h": 23 } }, { @@ -3405,533 +3069,8 @@ "h": 22 }, "frame": { - "x": 130, - "y": 337, - "w": 22, - "h": 22 - } - }, - { - "filename": "liechi_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 130, - "y": 359, - "w": 22, - "h": 21 - } - }, - { - "filename": "blastoisinite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 133, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "blazikenite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 149, - "y": 380, - "w": 16, - "h": 16 - } - }, - { - "filename": "dusk_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 140, - "y": 77, - "w": 21, - "h": 21 - } - }, - { - "filename": "dire_hit", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 140, - "y": 98, - "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": 140, - "y": 120, - "w": 22, - "h": 19 - } - }, - { - "filename": "relic_crown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 18 - }, - "frame": { - "x": 161, - "y": 80, - "w": 23, - "h": 18 - } - }, - { - "filename": "pair_of_tickets", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 23, - "h": 19 - }, - "frame": { - "x": 184, - "y": 80, - "w": 23, - "h": 19 - } - }, - { - "filename": "dna_splicers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 162, - "y": 98, - "w": 22, - "h": 22 - } - }, - { - "filename": "rusted_sword", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 22 - }, - "frame": { - "x": 184, - "y": 99, - "w": 23, - "h": 22 - } - }, - { - "filename": "electirizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 207, - "y": 86, - "w": 22, - "h": 22 - } - }, - { - "filename": "enigma_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 229, - "y": 86, - "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": 162, - "y": 120, - "w": 22, - "h": 20 - } - }, - { - "filename": "sachet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 18, - "h": 23 - }, - "frame": { - "x": 144, - "y": 139, - "w": 18, - "h": 23 - } - }, - { - "filename": "ganlon_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 162, - "y": 140, - "w": 22, - "h": 22 - } - }, - { - "filename": "guard_spec", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 121, - "w": 22, - "h": 22 - } - }, - { - "filename": "ice_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 143, - "w": 22, - "h": 22 - } - }, - { - "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": 89, - "w": 23, - "h": 20 - } - }, - { - "filename": "wellspring_mask", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 274, - "y": 89, - "w": 23, - "h": 21 - } - }, - { - "filename": "shock_drive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 207, - "y": 108, - "w": 23, - "h": 17 - } - }, - { - "filename": "magmarizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 206, - "y": 125, - "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": 206, - "y": 147, - "w": 22, - "h": 20 - } - }, - { - "filename": "masterpiece_teacup", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 21, - "h": 18 - }, - "frame": { - "x": 230, - "y": 108, - "w": 21, - "h": 18 - } - }, - { - "filename": "memory_bug", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 228, - "y": 126, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_dark", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 228, - "y": 148, + "x": 117, + "y": 161, "w": 22, "h": 22 } @@ -3951,12 +3090,579 @@ "h": 17 }, "frame": { - "x": 251, - "y": 109, + "x": 118, + "y": 183, "w": 23, "h": 17 } }, + { + "filename": "reaper_cloth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 122, + "y": 200, + "w": 22, + "h": 23 + } + }, + { + "filename": "rock_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 122, + "y": 223, + "w": 22, + "h": 23 + } + }, + { + "filename": "steel_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 122, + "y": 246, + "w": 22, + "h": 23 + } + }, + { + "filename": "stellar_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 122, + "y": 269, + "w": 22, + "h": 23 + } + }, + { + "filename": "water_tera_shard", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 122, + "y": 292, + "w": 22, + "h": 23 + } + }, + { + "filename": "sharp_beak", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 123, + "y": 315, + "w": 21, + "h": 23 + } + }, + { + "filename": "sachet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 18, + "h": 23 + }, + "frame": { + "x": 128, + "y": 338, + "w": 18, + "h": 23 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 130, + "y": 361, + "w": 17, + "h": 23 + } + }, + { + "filename": "whipped_dream", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 23 + }, + "frame": { + "x": 123, + "y": 114, + "w": 21, + "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": 125, + "y": 92, + "w": 22, + "h": 22 + } + }, + { + "filename": "wide_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 147, + "y": 84, + "w": 22, + "h": 23 + } + }, + { + "filename": "dna_splicers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 169, + "y": 84, + "w": 22, + "h": 22 + } + }, + { + "filename": "leftovers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 15, + "h": 22 + }, + "frame": { + "x": 191, + "y": 84, + "w": 15, + "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": 206, + "y": 85, + "w": 23, + "h": 21 + } + }, + { + "filename": "deep_sea_tooth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 229, + "y": 85, + "w": 22, + "h": 21 + } + }, + { + "filename": "mystic_ticket", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 19 + }, + "frame": { + "x": 251, + "y": 90, + "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": 274, + "y": 90, + "w": 23, + "h": 19 + } + }, + { + "filename": "big_nugget", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 297, + "y": 90, + "w": 20, + "h": 20 + } + }, + { + "filename": "electirizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 317, + "y": 84, + "w": 22, + "h": 22 + } + }, + { + "filename": "enigma_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 133, + "y": 137, + "w": 22, + "h": 22 + } + }, + { + "filename": "ganlon_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 139, + "y": 159, + "w": 22, + "h": 22 + } + }, + { + "filename": "blunder_policy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 19 + }, + "frame": { + "x": 141, + "y": 181, + "w": 22, + "h": 19 + } + }, + { + "filename": "guard_spec", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 144, + "y": 200, + "w": 22, + "h": 22 + } + }, + { + "filename": "ice_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 144, + "y": 222, + "w": 22, + "h": 22 + } + }, + { + "filename": "magmarizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 144, + "y": 244, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_bug", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 144, + "y": 266, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_dark", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 144, + "y": 288, + "w": 22, + "h": 22 + } + }, { "filename": "memory_dragon", "rotated": false, @@ -3972,701 +3678,8 @@ "h": 22 }, "frame": { - "x": 250, - "y": 126, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_electric", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 250, - "y": 148, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_fairy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 274, - "y": 110, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_fighting", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 272, - "y": 132, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_fire", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 272, - "y": 154, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_flying", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 145, - "y": 162, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_ghost", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 145, - "y": 184, - "w": 22, - "h": 22 - } - }, - { - "filename": "super_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 167, - "y": 162, - "w": 17, - "h": 24 - } - }, - { - "filename": "memory_grass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 165, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_ground", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 206, - "y": 167, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 228, - "y": 170, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_normal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 250, - "y": 170, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_normal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 250, - "y": 170, - "w": 22, - "h": 22 - } - }, - { - "filename": "golden_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 167, - "y": 186, - "w": 17, - "h": 20 - } - }, - { - "filename": "memory_poison", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 184, - "y": 187, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_psychic", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 206, - "y": 189, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 228, - "y": 192, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_steel", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 250, - "y": 192, - "w": 22, - "h": 22 - } - }, - { - "filename": "memory_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 272, - "y": 176, - "w": 22, - "h": 22 - } - }, - { - "filename": "mini_black_hole", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 272, - "y": 198, - "w": 22, - "h": 22 - } - }, - { - "filename": "cameruptite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 145, - "y": 206, - "w": 16, - "h": 16 - } - }, - { - "filename": "protector", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 161, - "y": 206, - "w": 22, - "h": 22 - } - }, - { - "filename": "scroll_of_darkness", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 183, - "y": 209, - "w": 22, - "h": 22 - } - }, - { - "filename": "scroll_of_waters", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 205, - "y": 211, - "w": 22, - "h": 22 - } - }, - { - "filename": "shed_shell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 227, - "y": 214, - "w": 22, - "h": 22 - } - }, - { - "filename": "starf_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 249, - "y": 214, - "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": 271, - "y": 220, - "w": 22, - "h": 21 - } - }, - { - "filename": "repel", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 294, - "y": 132, - "w": 16, - "h": 24 - } - }, - { - "filename": "super_repel", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 294, - "y": 156, - "w": 16, - "h": 24 - } - }, - { - "filename": "unknown", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 294, - "y": 180, - "w": 16, - "h": 24 - } - }, - { - "filename": "dawn_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 21 - }, - "frame": { - "x": 310, - "y": 87, - "w": 20, - "h": 21 - } - }, - { - "filename": "berry_pot", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 18, - "h": 22 - }, - "frame": { - "x": 296, - "y": 110, - "w": 18, - "h": 22 - } - }, - { - "filename": "zinc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 314, - "y": 108, - "w": 16, - "h": 24 - } - }, - { - "filename": "thunder_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 330, - "y": 105, + "x": 144, + "y": 310, "w": 22, "h": 22 } @@ -4686,12 +3699,915 @@ "h": 22 }, "frame": { - "x": 310, - "y": 132, + "x": 146, + "y": 332, "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": 147, + "y": 354, + "w": 19, + "h": 22 + } + }, + { + "filename": "deep_sea_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 147, + "y": 107, + "w": 22, + "h": 20 + } + }, + { + "filename": "liechi_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 169, + "y": 106, + "w": 22, + "h": 21 + } + }, + { + "filename": "memory_electric", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 191, + "y": 106, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_fairy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 213, + "y": 106, + "w": 22, + "h": 22 + } + }, + { + "filename": "mystery_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 18 + }, + "frame": { + "x": 235, + "y": 106, + "w": 16, + "h": 18 + } + }, + { + "filename": "relic_crown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 18 + }, + "frame": { + "x": 251, + "y": 109, + "w": 23, + "h": 18 + } + }, + { + "filename": "reviver_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 8, + "w": 23, + "h": 20 + }, + "frame": { + "x": 274, + "y": 109, + "w": 23, + "h": 20 + } + }, + { + "filename": "blue_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 297, + "y": 110, + "w": 20, + "h": 20 + } + }, + { + "filename": "memory_fighting", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 317, + "y": 106, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_fire", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 155, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_flying", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 339, + "y": 83, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_ghost", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 339, + "y": 105, + "w": 22, + "h": 22 + } + }, + { + "filename": "absolite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 361, + "y": 83, + "w": 16, + "h": 16 + } + }, + { + "filename": "memory_grass", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 377, + "y": 94, + "w": 22, + "h": 22 + } + }, + { + "filename": "aerodactylite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 361, + "y": 99, + "w": 16, + "h": 16 + } + }, + { + "filename": "aggronite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 361, + "y": 115, + "w": 16, + "h": 16 + } + }, + { + "filename": "memory_ground", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 377, + "y": 116, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_ice", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 177, + "y": 128, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_normal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 199, + "y": 128, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_normal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 199, + "y": 128, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_poison", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 221, + "y": 128, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_psychic", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 243, + "y": 127, + "w": 22, + "h": 22 + } + }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 265, + "y": 129, + "w": 23, + "h": 20 + } + }, + { + "filename": "dubious_disc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 288, + "y": 130, + "w": 22, + "h": 19 + } + }, + { + "filename": "big_mushroom", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 19 + }, + "frame": { + "x": 147, + "y": 376, + "w": 19, + "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": 339, + "y": 127, + "w": 22, + "h": 20 + } + }, + { + "filename": "malicious_armor", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 317, + "y": 128, + "w": 22, + "h": 20 + } + }, + { + "filename": "alakazite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 361, + "y": 131, + "w": 16, + "h": 16 + } + }, + { + "filename": "memory_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 377, + "y": 138, + "w": 22, + "h": 22 + } + }, + { + "filename": "altarianite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 161, + "y": 149, + "w": 16, + "h": 16 + } + }, + { + "filename": "memory_steel", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 177, + "y": 150, + "w": 22, + "h": 22 + } + }, + { + "filename": "memory_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 199, + "y": 150, + "w": 22, + "h": 22 + } + }, + { + "filename": "mini_black_hole", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 221, + "y": 150, + "w": 22, + "h": 22 + } + }, + { + "filename": "protector", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 243, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "scroll_of_darkness", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 265, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "scroll_of_waters", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 287, + "y": 149, + "w": 22, + "h": 22 + } + }, + { + "filename": "ampharosite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 161, + "y": 165, + "w": 16, + "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": 163, + "y": 181, + "w": 20, + "h": 19 + } + }, + { + "filename": "metal_coat", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 19, + "h": 22 + }, + "frame": { + "x": 166, + "y": 200, + "w": 19, + "h": 22 + } + }, + { + "filename": "shed_shell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 166, + "y": 222, + "w": 22, + "h": 22 + } + }, + { + "filename": "starf_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 166, + "y": 244, + "w": 22, + "h": 22 + } + }, + { + "filename": "thunder_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 166, + "y": 266, + "w": 22, + "h": 22 + } + }, { "filename": "tm_bug", "rotated": false, @@ -4707,33 +4623,12 @@ "h": 22 }, "frame": { - "x": 330, - "y": 127, + "x": 166, + "y": 288, "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": 310, - "y": 154, - "w": 20, - "h": 22 - } - }, { "filename": "tm_dark", "rotated": false, @@ -4749,8 +4644,8 @@ "h": 22 }, "frame": { - "x": 330, - "y": 149, + "x": 166, + "y": 310, "w": 22, "h": 22 } @@ -4770,8 +4665,8 @@ "h": 22 }, "frame": { - "x": 352, - "y": 107, + "x": 166, + "y": 332, "w": 22, "h": 22 } @@ -4791,12 +4686,33 @@ "h": 22 }, "frame": { - "x": 374, - "y": 109, + "x": 166, + "y": 354, "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": 166, + "y": 376, + "w": 22, + "h": 21 + } + }, { "filename": "tm_fairy", "rotated": false, @@ -4812,8 +4728,8 @@ "h": 22 }, "frame": { - "x": 352, - "y": 129, + "x": 183, + "y": 172, "w": 22, "h": 22 } @@ -4833,14 +4749,14 @@ "h": 22 }, "frame": { - "x": 374, - "y": 131, + "x": 205, + "y": 172, "w": 22, "h": 22 } }, { - "filename": "syrupy_apple", + "filename": "metronome", "rotated": false, "trimmed": true, "sourceSize": { @@ -4848,16 +4764,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 + "x": 7, + "y": 5, + "w": 17, + "h": 22 }, "frame": { - "x": 352, - "y": 151, - "w": 22, - "h": 21 + "x": 227, + "y": 172, + "w": 17, + "h": 22 } }, { @@ -4875,8 +4791,8 @@ "h": 22 }, "frame": { - "x": 374, - "y": 153, + "x": 244, + "y": 171, "w": 22, "h": 22 } @@ -4896,54 +4812,12 @@ "h": 22 }, "frame": { - "x": 310, - "y": 176, + "x": 266, + "y": 171, "w": 22, "h": 22 } }, - { - "filename": "gb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 332, - "y": 171, - "w": 20, - "h": 20 - } - }, - { - "filename": "tart_apple", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 352, - "y": 172, - "w": 22, - "h": 21 - } - }, { "filename": "tm_ghost", "rotated": false, @@ -4959,54 +4833,12 @@ "h": 22 }, "frame": { - "x": 374, - "y": 175, + "x": 288, + "y": 171, "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": 294, - "y": 204, - "w": 19, - "h": 19 - } - }, - { - "filename": "lum_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 293, - "y": 223, - "w": 20, - "h": 19 - } - }, { "filename": "tm_grass", "rotated": false, @@ -5022,8 +4854,8 @@ "h": 22 }, "frame": { - "x": 313, - "y": 198, + "x": 185, + "y": 194, "w": 22, "h": 22 } @@ -5043,33 +4875,12 @@ "h": 22 }, "frame": { - "x": 313, - "y": 220, + "x": 207, + "y": 194, "w": 22, "h": 22 } }, - { - "filename": "hyper_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 335, - "y": 191, - "w": 17, - "h": 23 - } - }, { "filename": "tm_ice", "rotated": false, @@ -5085,8 +4896,8 @@ "h": 22 }, "frame": { - "x": 352, - "y": 193, + "x": 188, + "y": 216, "w": 22, "h": 22 } @@ -5106,33 +4917,12 @@ "h": 22 }, "frame": { - "x": 374, - "y": 197, + "x": 188, + "y": 238, "w": 22, "h": 22 } }, - { - "filename": "potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 335, - "y": 214, - "w": 17, - "h": 23 - } - }, { "filename": "tm_psychic", "rotated": false, @@ -5148,8 +4938,8 @@ "h": 22 }, "frame": { - "x": 352, - "y": 215, + "x": 188, + "y": 260, "w": 22, "h": 22 } @@ -5169,54 +4959,12 @@ "h": 22 }, "frame": { - "x": 374, - "y": 219, + "x": 188, + "y": 282, "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": 335, - "y": 237, - "w": 22, - "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": 357, - "y": 237, - "w": 17, - "h": 20 - } - }, { "filename": "tm_steel", "rotated": false, @@ -5232,33 +4980,12 @@ "h": 22 }, "frame": { - "x": 374, - "y": 241, + "x": 188, + "y": 304, "w": 22, "h": 22 } }, - { - "filename": "candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 11, - "w": 18, - "h": 18 - }, - "frame": { - "x": 165, - "y": 228, - "w": 18, - "h": 18 - } - }, { "filename": "tm_water", "rotated": false, @@ -5274,8 +5001,8 @@ "h": 22 }, "frame": { - "x": 183, - "y": 231, + "x": 188, + "y": 326, "w": 22, "h": 22 } @@ -5295,33 +5022,12 @@ "h": 22 }, "frame": { - "x": 205, - "y": 233, + "x": 188, + "y": 348, "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": 227, - "y": 236, - "w": 22, - "h": 19 - } - }, { "filename": "x_accuracy", "rotated": false, @@ -5337,12 +5043,33 @@ "h": 22 }, "frame": { - "x": 249, - "y": 236, + "x": 188, + "y": 370, "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": 210, + "y": 216, + "w": 20, + "h": 22 + } + }, { "filename": "x_attack", "rotated": false, @@ -5358,8 +5085,8 @@ "h": 22 }, "frame": { - "x": 271, - "y": 241, + "x": 210, + "y": 238, "w": 22, "h": 22 } @@ -5379,33 +5106,12 @@ "h": 22 }, "frame": { - "x": 293, - "y": 242, + "x": 210, + "y": 260, "w": 22, "h": 22 } }, - { - "filename": "magnet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 315, - "y": 242, - "w": 20, - "h": 20 - } - }, { "filename": "x_sp_atk", "rotated": false, @@ -5421,8 +5127,8 @@ "h": 22 }, "frame": { - "x": 149, - "y": 246, + "x": 210, + "y": 282, "w": 22, "h": 22 } @@ -5442,8 +5148,8 @@ "h": 22 }, "frame": { - "x": 151, - "y": 268, + "x": 210, + "y": 304, "w": 22, "h": 22 } @@ -5463,12 +5169,96 @@ "h": 22 }, "frame": { - "x": 151, - "y": 290, + "x": 210, + "y": 326, "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": 210, + "y": 348, + "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": 210, + "y": 369, + "w": 22, + "h": 21 + } + }, + { + "filename": "soothe_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 229, + "y": 194, + "w": 17, + "h": 22 + } + }, + { + "filename": "dusk_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 246, + "y": 193, + "w": 21, + "h": 21 + } + }, { "filename": "poison_barb", "rotated": false, @@ -5484,8 +5274,8 @@ "h": 21 }, "frame": { - "x": 152, - "y": 312, + "x": 267, + "y": 193, "w": 21, "h": 21 } @@ -5505,12 +5295,117 @@ "h": 21 }, "frame": { - "x": 152, - "y": 333, + "x": 288, + "y": 193, "w": 21, "h": 21 } }, + { + "filename": "dawn_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 21 + }, + "frame": { + "x": 230, + "y": 216, + "w": 20, + "h": 21 + } + }, + { + "filename": "tera_orb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 250, + "y": 214, + "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": 272, + "y": 214, + "w": 22, + "h": 19 + } + }, + { + "filename": "quick_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 232, + "y": 237, + "w": 19, + "h": 21 + } + }, + { + "filename": "spell_tag", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 232, + "y": 258, + "w": 19, + "h": 21 + } + }, { "filename": "zoom_lens", "rotated": false, @@ -5526,35 +5421,14 @@ "h": 21 }, "frame": { - "x": 152, - "y": 354, + "x": 232, + "y": 279, "w": 21, "h": 21 } }, { - "filename": "mystery_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 18 - }, - "frame": { - "x": 149, - "y": 228, - "w": 16, - "h": 18 - } - }, - { - "filename": "metal_alloy", + "filename": "gb", "rotated": false, "trimmed": true, "sourceSize": { @@ -5563,19 +5437,19 @@ }, "spriteSourceSize": { "x": 6, - "y": 7, - "w": 21, - "h": 19 + "y": 6, + "w": 20, + "h": 20 }, "frame": { - "x": 335, - "y": 257, - "w": 21, - "h": 19 + "x": 232, + "y": 300, + "w": 20, + "h": 20 } }, { - "filename": "oval_stone", + "filename": "magnet", "rotated": false, "trimmed": true, "sourceSize": { @@ -5583,16 +5457,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 + "x": 6, + "y": 6, + "w": 20, + "h": 20 }, "frame": { - "x": 356, - "y": 257, - "w": 18, - "h": 19 + "x": 232, + "y": 320, + "w": 20, + "h": 20 } }, { @@ -5610,75 +5484,12 @@ "h": 20 }, "frame": { - "x": 315, - "y": 262, + "x": 232, + "y": 340, "w": 20, "h": 20 } }, - { - "filename": "sharp_meteorite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 21, - "h": 18 - }, - "frame": { - "x": 374, - "y": 263, - "w": 21, - "h": 18 - } - }, - { - "filename": "unremarkable_teacup", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 21, - "h": 18 - }, - "frame": { - "x": 335, - "y": 276, - "w": 21, - "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": 356, - "y": 276, - "w": 18, - "h": 18 - } - }, { "filename": "pb", "rotated": false, @@ -5694,161 +5505,14 @@ "h": 20 }, "frame": { - "x": 374, - "y": 281, + "x": 232, + "y": 360, "w": 20, "h": 20 } }, { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 - }, - "frame": { - "x": 173, - "y": 282, - "w": 15, - "h": 23 - } - }, - { - "filename": "super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 173, - "y": 305, - "w": 17, - "h": 23 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 173, - "y": 328, - "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": 173, - "y": 350, - "w": 17, - "h": 22 - } - }, - { - "filename": "light_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 18 - }, - "frame": { - "x": 173, - "y": 264, - "w": 18, - "h": 18 - } - }, - { - "filename": "relic_gold", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 11, - "w": 15, - "h": 11 - }, - "frame": { - "x": 171, - "y": 253, - "w": 15, - "h": 11 - } - }, - { - "filename": "leftovers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 15, - "h": 22 - }, - "frame": { - "x": 188, - "y": 282, - "w": 15, - "h": 22 - } - }, - { - "filename": "hard_stone", + "filename": "metal_alloy", "rotated": false, "trimmed": true, "sourceSize": { @@ -5857,15 +5521,15 @@ }, "spriteSourceSize": { "x": 6, - "y": 6, - "w": 19, - "h": 20 + "y": 7, + "w": 21, + "h": 19 }, "frame": { - "x": 190, - "y": 304, - "w": 19, - "h": 20 + "x": 232, + "y": 380, + "w": 21, + "h": 19 } }, { @@ -5883,8 +5547,8 @@ "h": 20 }, "frame": { - "x": 190, - "y": 324, + "x": 251, + "y": 234, "w": 20, "h": 20 } @@ -5904,14 +5568,14 @@ "h": 20 }, "frame": { - "x": 190, - "y": 344, + "x": 251, + "y": 254, "w": 20, "h": 20 } }, { - "filename": "miracle_seed", + "filename": "candy_jar", "rotated": false, "trimmed": true, "sourceSize": { @@ -5920,15 +5584,57 @@ }, "spriteSourceSize": { "x": 6, - "y": 7, + "y": 6, "w": 19, - "h": 19 + "h": 20 }, "frame": { - "x": 191, - "y": 263, + "x": 294, + "y": 214, "w": 19, - "h": 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": 253, + "y": 274, + "w": 19, + "h": 20 + } + }, + { + "filename": "everstone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 17 + }, + "frame": { + "x": 253, + "y": 294, + "w": 20, + "h": 17 } }, { @@ -5946,54 +5652,12 @@ "h": 20 }, "frame": { - "x": 210, - "y": 255, + "x": 252, + "y": 311, "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": 230, - "y": 255, - "w": 18, - "h": 20 - } - }, - { - "filename": "razor_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 248, - "y": 258, - "w": 20, - "h": 19 - } - }, { "filename": "strange_ball", "rotated": false, @@ -6009,8 +5673,8 @@ "h": 20 }, "frame": { - "x": 268, - "y": 263, + "x": 252, + "y": 331, "w": 20, "h": 20 } @@ -6030,12 +5694,138 @@ "h": 20 }, "frame": { - "x": 288, - "y": 264, + "x": 252, + "y": 351, "w": 20, "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": 253, + "y": 371, + "w": 19, + "h": 19 + } + }, + { + "filename": "masterpiece_teacup", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 21, + "h": 18 + }, + "frame": { + "x": 339, + "y": 147, + "w": 21, + "h": 18 + } + }, + { + "filename": "golden_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 360, + "y": 147, + "w": 17, + "h": 20 + } + }, + { + "filename": "sharp_meteorite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 21, + "h": 18 + }, + "frame": { + "x": 377, + "y": 160, + "w": 21, + "h": 18 + } + }, + { + "filename": "unremarkable_teacup", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 21, + "h": 18 + }, + "frame": { + "x": 272, + "y": 233, + "w": 21, + "h": 18 + } + }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 271, + "y": 251, + "w": 20, + "h": 19 + } + }, { "filename": "wl_ability_urge", "rotated": false, @@ -6051,8 +5841,8 @@ "h": 18 }, "frame": { - "x": 190, - "y": 364, + "x": 293, + "y": 234, "w": 20, "h": 18 } @@ -6072,14 +5862,14 @@ "h": 18 }, "frame": { - "x": 210, - "y": 275, + "x": 291, + "y": 252, "w": 20, "h": 18 } }, { - "filename": "charizardite_x", + "filename": "razor_fang", "rotated": false, "trimmed": true, "sourceSize": { @@ -6087,16 +5877,16 @@ "h": 32 }, "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 + "x": 7, + "y": 6, + "w": 18, + "h": 20 }, "frame": { - "x": 230, - "y": 275, - "w": 16, - "h": 16 + "x": 272, + "y": 270, + "w": 18, + "h": 20 } }, { @@ -6114,12 +5904,33 @@ "h": 18 }, "frame": { - "x": 246, - "y": 277, + "x": 290, + "y": 270, "w": 20, "h": 18 } }, + { + "filename": "lucky_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 273, + "y": 290, + "w": 17, + "h": 20 + } + }, { "filename": "wl_burn_heal", "rotated": false, @@ -6135,8 +5946,8 @@ "h": 18 }, "frame": { - "x": 266, - "y": 283, + "x": 290, + "y": 288, "w": 20, "h": 18 } @@ -6156,12 +5967,54 @@ "h": 18 }, "frame": { - "x": 286, - "y": 284, + "x": 290, + "y": 306, "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": 272, + "y": 311, + "w": 18, + "h": 19 + } + }, + { + "filename": "candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 11, + "w": 18, + "h": 18 + }, + "frame": { + "x": 272, + "y": 330, + "w": 18, + "h": 18 + } + }, { "filename": "wl_custom_thief", "rotated": false, @@ -6177,12 +6030,33 @@ "h": 18 }, "frame": { - "x": 209, - "y": 293, + "x": 290, + "y": 324, "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": 272, + "y": 348, + "w": 18, + "h": 18 + } + }, { "filename": "wl_elixir", "rotated": false, @@ -6198,12 +6072,33 @@ "h": 18 }, "frame": { - "x": 210, - "y": 311, + "x": 290, + "y": 342, "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": 272, + "y": 366, + "w": 18, + "h": 18 + } + }, { "filename": "wl_ether", "rotated": false, @@ -6219,8 +6114,8 @@ "h": 18 }, "frame": { - "x": 210, - "y": 329, + "x": 290, + "y": 360, "w": 20, "h": 18 } @@ -6240,8 +6135,8 @@ "h": 18 }, "frame": { - "x": 210, - "y": 347, + "x": 290, + "y": 378, "w": 20, "h": 18 } @@ -6261,33 +6156,12 @@ "h": 18 }, "frame": { - "x": 210, - "y": 365, + "x": 311, + "y": 252, "w": 20, "h": 18 } }, - { - "filename": "candy_overlay", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 12, - "w": 16, - "h": 15 - }, - "frame": { - "x": 230, - "y": 291, - "w": 16, - "h": 15 - } - }, { "filename": "wl_guard_spec", "rotated": false, @@ -6303,33 +6177,12 @@ "h": 18 }, "frame": { - "x": 246, - "y": 295, + "x": 310, + "y": 270, "w": 20, "h": 18 } }, - { - "filename": "charizardite_y", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 230, - "y": 306, - "w": 16, - "h": 16 - } - }, { "filename": "wl_hyper_potion", "rotated": false, @@ -6345,8 +6198,8 @@ "h": 18 }, "frame": { - "x": 230, - "y": 322, + "x": 310, + "y": 288, "w": 20, "h": 18 } @@ -6366,8 +6219,8 @@ "h": 18 }, "frame": { - "x": 230, - "y": 340, + "x": 310, + "y": 306, "w": 20, "h": 18 } @@ -6387,8 +6240,8 @@ "h": 18 }, "frame": { - "x": 230, - "y": 358, + "x": 310, + "y": 324, "w": 20, "h": 18 } @@ -6408,8 +6261,8 @@ "h": 18 }, "frame": { - "x": 266, - "y": 301, + "x": 310, + "y": 342, "w": 20, "h": 18 } @@ -6429,33 +6282,12 @@ "h": 18 }, "frame": { - "x": 286, - "y": 302, + "x": 310, + "y": 360, "w": 20, "h": 18 } }, - { - "filename": "diancite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 250, - "y": 313, - "w": 16, - "h": 16 - } - }, { "filename": "wl_max_ether", "rotated": false, @@ -6471,8 +6303,8 @@ "h": 18 }, "frame": { - "x": 250, - "y": 329, + "x": 310, + "y": 378, "w": 20, "h": 18 } @@ -6492,8 +6324,8 @@ "h": 18 }, "frame": { - "x": 250, - "y": 347, + "x": 309, + "y": 193, "w": 20, "h": 18 } @@ -6513,8 +6345,8 @@ "h": 18 }, "frame": { - "x": 250, - "y": 365, + "x": 313, + "y": 211, "w": 20, "h": 18 } @@ -6534,33 +6366,12 @@ "h": 18 }, "frame": { - "x": 230, - "y": 376, + "x": 313, + "y": 229, "w": 20, "h": 18 } }, - { - "filename": "galladite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 270, - "y": 319, - "w": 16, - "h": 16 - } - }, { "filename": "wl_potion", "rotated": false, @@ -6576,33 +6387,12 @@ "h": 18 }, "frame": { - "x": 286, - "y": 320, + "x": 309, + "y": 149, "w": 20, "h": 18 } }, - { - "filename": "garchompite", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 8, - "w": 16, - "h": 16 - }, - "frame": { - "x": 270, - "y": 335, - "w": 16, - "h": 16 - } - }, { "filename": "wl_reset_urge", "rotated": false, @@ -6618,8 +6408,8 @@ "h": 18 }, "frame": { - "x": 270, - "y": 351, + "x": 310, + "y": 167, "w": 20, "h": 18 } @@ -6639,8 +6429,8 @@ "h": 18 }, "frame": { - "x": 270, - "y": 369, + "x": 330, + "y": 165, "w": 20, "h": 18 } @@ -6660,12 +6450,264 @@ "h": 18 }, "frame": { - "x": 165, - "y": 375, + "x": 350, + "y": 167, "w": 20, "h": 18 } }, + { + "filename": "relic_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 9, + "w": 17, + "h": 16 + }, + "frame": { + "x": 333, + "y": 183, + "w": 17, + "h": 16 + } + }, + { + "filename": "audinite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 350, + "y": 185, + "w": 16, + "h": 16 + } + }, + { + "filename": "banettite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 333, + "y": 199, + "w": 16, + "h": 16 + } + }, + { + "filename": "beedrillite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 333, + "y": 215, + "w": 16, + "h": 16 + } + }, + { + "filename": "blastoisinite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 333, + "y": 231, + "w": 16, + "h": 16 + } + }, + { + "filename": "blazikenite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 349, + "y": 201, + "w": 16, + "h": 16 + } + }, + { + "filename": "cameruptite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 349, + "y": 217, + "w": 16, + "h": 16 + } + }, + { + "filename": "charizardite_x", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 349, + "y": 233, + "w": 16, + "h": 16 + } + }, + { + "filename": "charizardite_y", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 331, + "y": 247, + "w": 16, + "h": 16 + } + }, + { + "filename": "diancite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 347, + "y": 249, + "w": 16, + "h": 16 + } + }, + { + "filename": "galladite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 331, + "y": 263, + "w": 16, + "h": 16 + } + }, + { + "filename": "garchompite", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 330, + "y": 279, + "w": 16, + "h": 16 + } + }, { "filename": "gardevoirite", "rotated": false, @@ -6681,8 +6723,8 @@ "h": 16 }, "frame": { - "x": 290, - "y": 338, + "x": 330, + "y": 295, "w": 16, "h": 16 } @@ -6702,8 +6744,8 @@ "h": 16 }, "frame": { - "x": 290, - "y": 354, + "x": 330, + "y": 311, "w": 16, "h": 16 } @@ -6723,8 +6765,8 @@ "h": 16 }, "frame": { - "x": 290, - "y": 370, + "x": 330, + "y": 327, "w": 16, "h": 16 } @@ -6744,8 +6786,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 284, + "x": 330, + "y": 343, "w": 16, "h": 16 } @@ -6765,8 +6807,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 300, + "x": 330, + "y": 359, "w": 16, "h": 16 } @@ -6786,8 +6828,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 316, + "x": 330, + "y": 375, "w": 16, "h": 16 } @@ -6807,8 +6849,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 332, + "x": 347, + "y": 265, "w": 16, "h": 16 } @@ -6828,8 +6870,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 348, + "x": 346, + "y": 281, "w": 16, "h": 16 } @@ -6849,8 +6891,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 364, + "x": 346, + "y": 297, "w": 16, "h": 16 } @@ -6870,8 +6912,8 @@ "h": 16 }, "frame": { - "x": 306, - "y": 380, + "x": 346, + "y": 313, "w": 16, "h": 16 } @@ -6891,8 +6933,8 @@ "h": 16 }, "frame": { - "x": 322, - "y": 294, + "x": 346, + "y": 329, "w": 16, "h": 16 } @@ -6912,8 +6954,8 @@ "h": 16 }, "frame": { - "x": 338, - "y": 294, + "x": 346, + "y": 345, "w": 16, "h": 16 } @@ -6933,8 +6975,8 @@ "h": 16 }, "frame": { - "x": 322, - "y": 310, + "x": 346, + "y": 361, "w": 16, "h": 16 } @@ -6954,8 +6996,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 294, + "x": 346, + "y": 377, "w": 16, "h": 16 } @@ -6975,8 +7017,8 @@ "h": 16 }, "frame": { - "x": 322, - "y": 326, + "x": 366, + "y": 185, "w": 16, "h": 16 } @@ -6996,8 +7038,8 @@ "h": 16 }, "frame": { - "x": 338, - "y": 310, + "x": 365, + "y": 201, "w": 16, "h": 16 } @@ -7017,8 +7059,8 @@ "h": 16 }, "frame": { - "x": 322, - "y": 342, + "x": 365, + "y": 217, "w": 16, "h": 16 } @@ -7038,8 +7080,8 @@ "h": 16 }, "frame": { - "x": 338, - "y": 326, + "x": 365, + "y": 233, "w": 16, "h": 16 } @@ -7059,8 +7101,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 310, + "x": 363, + "y": 249, "w": 16, "h": 16 } @@ -7080,8 +7122,8 @@ "h": 16 }, "frame": { - "x": 322, - "y": 358, + "x": 363, + "y": 265, "w": 16, "h": 16 } @@ -7101,8 +7143,8 @@ "h": 16 }, "frame": { - "x": 338, - "y": 342, + "x": 362, + "y": 281, "w": 16, "h": 16 } @@ -7122,8 +7164,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 326, + "x": 362, + "y": 297, "w": 16, "h": 16 } @@ -7143,8 +7185,8 @@ "h": 16 }, "frame": { - "x": 322, - "y": 374, + "x": 362, + "y": 313, "w": 16, "h": 16 } @@ -7164,8 +7206,8 @@ "h": 16 }, "frame": { - "x": 338, - "y": 358, + "x": 362, + "y": 329, "w": 16, "h": 16 } @@ -7185,8 +7227,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 342, + "x": 362, + "y": 345, "w": 16, "h": 16 } @@ -7206,8 +7248,8 @@ "h": 16 }, "frame": { - "x": 338, - "y": 374, + "x": 362, + "y": 361, "w": 16, "h": 16 } @@ -7227,8 +7269,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 358, + "x": 362, + "y": 377, "w": 16, "h": 16 } @@ -7248,8 +7290,8 @@ "h": 16 }, "frame": { - "x": 354, - "y": 374, + "x": 382, + "y": 178, "w": 16, "h": 16 } @@ -7269,8 +7311,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 301, + "x": 382, + "y": 194, "w": 16, "h": 16 } @@ -7290,8 +7332,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 317, + "x": 381, + "y": 210, "w": 16, "h": 16 } @@ -7311,8 +7353,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 333, + "x": 381, + "y": 226, "w": 16, "h": 16 } @@ -7332,8 +7374,8 @@ "h": 16 }, "frame": { - "x": 370, - "y": 349, + "x": 381, + "y": 242, "w": 16, "h": 16 } @@ -7353,32 +7395,11 @@ "h": 16 }, "frame": { - "x": 370, - "y": 365, + "x": 379, + "y": 258, "w": 16, "h": 16 } - }, - { - "filename": "prism_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 370, - "y": 381, - "w": 15, - "h": 15 - } } ] } @@ -7386,6 +7407,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:e6d832697add1029764f6145e5fa98b7:47250d3d95167f73038d290f7a73b96e:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:5676fc2ef4e2b6e18c96ca3c80e7521d:a6286201546cef975121cad6b35c7005:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 7ddd284fa..9af295e16 100644 Binary files a/public/images/items.png and b/public/images/items.png differ diff --git a/public/images/items/quick_claw.png b/public/images/items/quick_claw.png new file mode 100644 index 000000000..e6317898e Binary files /dev/null and b/public/images/items/quick_claw.png differ diff --git a/src/account.ts b/src/account.ts index 94c34ae90..8bd99646b 100644 --- a/src/account.ts +++ b/src/account.ts @@ -20,6 +20,15 @@ export function updateUserInfo(): Promise<[boolean, integer]> { lastSessionSlot = slotId; } loggedInUser.lastSessionSlot = lastSessionSlot; + // Migrate old data from before the username was appended + [ 'data', 'sessionData', 'sessionData1', 'sessionData2', 'sessionData3', 'sessionData4' ].map(d => { + if (localStorage.hasOwnProperty(d)) { + if (localStorage.hasOwnProperty(`${d}_${loggedInUser.username}`)) + localStorage.setItem(`${d}_${loggedInUser.username}_bak`, localStorage.getItem(`${d}_${loggedInUser.username}`)); + localStorage.setItem(`${d}_${loggedInUser.username}`, localStorage.getItem(d)); + localStorage.removeItem(d); + } + }); return resolve([ true, 200 ]); } Utils.apiFetch('account/info', true).then(response => { diff --git a/src/data/ability.ts b/src/data/ability.ts index 4128f22e2..a257525ef 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -1755,7 +1755,7 @@ export class StatusEffectImmunityAbAttr extends PreSetStatusAbAttr { } getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]): string { - return getPokemonMessage(pokemon, `'s ${abilityName}\nprevents ${this.immuneEffects.length ? getStatusEffectDescriptor(this.immuneEffects[0]) : 'status problems'}!`); + return getPokemonMessage(pokemon, `'s ${abilityName}\nprevents ${this.immuneEffects.length ? getStatusEffectDescriptor(args[0] as StatusEffect) : 'status problems'}!`); } } @@ -2825,7 +2825,7 @@ export function applyPostStatChangeAbAttrs(attrType: { new(...args: any[]): Post export function applyPreSetStatusAbAttrs(attrType: { new(...args: any[]): PreSetStatusAbAttr }, pokemon: Pokemon, effect: StatusEffect, cancelled: Utils.BooleanHolder, ...args: any[]): Promise { const simulated = args.length > 1 && args[1]; - return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreSetStatus(pokemon, passive, effect, cancelled, args), args, false, false, simulated); + return applyAbAttrsInternal(attrType, pokemon, (attr, passive) => attr.applyPreSetStatus(pokemon, passive, effect, cancelled, args), args, false, false, !simulated); } export function applyPreApplyBattlerTagAbAttrs(attrType: { new(...args: any[]): PreApplyBattlerTagAbAttr }, @@ -3456,7 +3456,7 @@ export function initAbilities() { .attr(MovePowerBoostAbAttr, (user, target, move) => user.scene.currentBattle.turnCommands[target.getBattlerIndex()].command === Command.POKEMON, 2), new Ability(Abilities.WATER_BUBBLE, 7) .attr(ReceivedTypeDamageMultiplierAbAttr, Type.FIRE, 0.5) - .attr(MoveTypePowerBoostAbAttr, Type.WATER, 1) + .attr(MoveTypePowerBoostAbAttr, Type.WATER, 2) .attr(StatusEffectImmunityAbAttr, StatusEffect.BURN) .ignorable(), new Ability(Abilities.STEELWORKER, 7) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 257f56d46..f66b5b2a0 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -544,6 +544,33 @@ export class AquaRingTag extends BattlerTag { } } +/** Tag used to allow moves that interact with {@link Moves.MINIMIZE} to function */ +export class MinimizeTag extends BattlerTag { + constructor() { + super(BattlerTagType.MINIMIZED, BattlerTagLapseType.TURN_END, 1, Moves.MINIMIZE, undefined); + } + + canAdd(pokemon: Pokemon): boolean { + return !pokemon.isMax(); + } + + onAdd(pokemon: Pokemon): void { + super.onAdd(pokemon); + } + + lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { + //If a pokemon dynamaxes they lose minimized status + if(pokemon.isMax()){ + return false + } + return lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType); + } + + onRemove(pokemon: Pokemon): void { + super.onRemove(pokemon); + } +} + export class DrowsyTag extends BattlerTag { constructor() { super(BattlerTagType.DROWSY, BattlerTagLapseType.TURN_END, 2, Moves.YAWN); @@ -1358,6 +1385,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc return new TypeBoostTag(tagType, sourceMove, Type.ELECTRIC, 2, true); case BattlerTagType.MAGNET_RISEN: return new MagnetRisenTag(tagType, sourceMove); + case BattlerTagType.MINIMIZED: + return new MinimizeTag(); case BattlerTagType.NONE: default: return new BattlerTag(tagType, BattlerTagLapseType.CUSTOM, turnCount, sourceMove, sourceId); diff --git a/src/data/enums/battler-tag-type.ts b/src/data/enums/battler-tag-type.ts index d18ccf1c5..9411d70a6 100644 --- a/src/data/enums/battler-tag-type.ts +++ b/src/data/enums/battler-tag-type.ts @@ -55,5 +55,6 @@ export enum BattlerTagType { CURSED = "CURSED", CHARGED = "CHARGED", GROUNDED = "GROUNDED", - MAGNET_RISEN = "MAGNET_RISEN" + MAGNET_RISEN = "MAGNET_RISEN", + MINIMIZED = "MINIMIZED" } diff --git a/src/data/move.ts b/src/data/move.ts index 5f5765c1d..46216eb75 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2480,6 +2480,30 @@ export class ThunderAccuracyAttr extends VariableAccuracyAttr { } } +/** + * Attribute used for moves which never miss + * against Pokemon with the {@link BattlerTagType.MINIMIZED} + * @see {@link apply} + * @param user N/A + * @param target Target of the move + * @param move N/A + * @param args [0] Accuracy of the move to be modified + * @returns true if the function succeeds + */ +export class MinimizeAccuracyAttr extends VariableAccuracyAttr{ + + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (target.getTag(BattlerTagType.MINIMIZED)){ + const accuracy = args[0] as Utils.NumberHolder + accuracy.value = -1; + + return true; + } + + return false; + } +} + export class ToxicAccuracyAttr extends VariableAccuracyAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if (user.isOfType(Type.POISON)) { @@ -3235,8 +3259,11 @@ export class FaintCountdownAttr extends AddBattlerTagAttr { } } +/** Attribute used when a move hits a {@link BattlerTagType} for double damage */ export class HitsTagAttr extends MoveAttr { + /** The {@link BattlerTagType} this move hits */ public tagType: BattlerTagType; + /** Should this move deal double damage against {@link HitsTagAttr.tagType}? */ public doubleDamage: boolean; constructor(tagType: BattlerTagType, doubleDamage?: boolean) { @@ -4403,6 +4430,8 @@ export function initMoves() { new AttackMove(Moves.SLAM, Type.NORMAL, MoveCategory.PHYSICAL, 80, 75, 20, -1, 0, 1), new AttackMove(Moves.VINE_WHIP, Type.GRASS, MoveCategory.PHYSICAL, 45, 100, 25, -1, 0, 1), new AttackMove(Moves.STOMP, Type.NORMAL, MoveCategory.PHYSICAL, 65, 100, 20, 30, 0, 1) + .attr(MinimizeAccuracyAttr) + .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .attr(FlinchAttr), new AttackMove(Moves.DOUBLE_KICK, Type.FIGHTING, MoveCategory.PHYSICAL, 30, 100, 30, -1, 0, 1) .attr(MultiHitAttr, MultiHitType._2), @@ -4426,6 +4455,8 @@ export function initMoves() { .attr(OneHitKOAccuracyAttr), new AttackMove(Moves.TACKLE, Type.NORMAL, MoveCategory.PHYSICAL, 40, 100, 35, -1, 0, 1), new AttackMove(Moves.BODY_SLAM, Type.NORMAL, MoveCategory.PHYSICAL, 85, 100, 15, 30, 0, 1) + .attr(MinimizeAccuracyAttr) + .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .attr(StatusEffectAttr, StatusEffect.PARALYSIS), new AttackMove(Moves.WRAP, Type.NORMAL, MoveCategory.PHYSICAL, 15, 90, 20, 100, 0, 1) .attr(TrapAttr, BattlerTagType.WRAP), @@ -4623,6 +4654,7 @@ export function initMoves() { new SelfStatusMove(Moves.HARDEN, Type.NORMAL, -1, 30, -1, 0, 1) .attr(StatChangeAttr, BattleStat.DEF, 1, true), new SelfStatusMove(Moves.MINIMIZE, Type.NORMAL, -1, 10, -1, 0, 1) + .attr(AddBattlerTagAttr, BattlerTagType.MINIMIZED, true, false) .attr(StatChangeAttr, BattleStat.EVA, 2, true), new StatusMove(Moves.SMOKESCREEN, Type.NORMAL, 100, 20, -1, 0, 1) .attr(StatChangeAttr, BattleStat.ACC, -1), @@ -5073,7 +5105,7 @@ export function initMoves() { new AttackMove(Moves.FACADE, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 20, -1, 0, 3) .attr(MovePowerMultiplierAttr, (user, target, move) => user.status && (user.status.effect === StatusEffect.BURN || user.status.effect === StatusEffect.POISON || user.status.effect === StatusEffect.TOXIC || user.status.effect === StatusEffect.PARALYSIS) ? 2 : 1) - .attr(BypassBurnDamageReductionAttr), + .attr(BypassBurnDamageReductionAttr), new AttackMove(Moves.FOCUS_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 150, 100, 20, -1, -3, 3) .punchingMove() .ignoresVirtual() @@ -5462,6 +5494,8 @@ export function initMoves() { new AttackMove(Moves.DRAGON_PULSE, Type.DRAGON, MoveCategory.SPECIAL, 85, 100, 10, -1, 0, 4) .pulseMove(), new AttackMove(Moves.DRAGON_RUSH, Type.DRAGON, MoveCategory.PHYSICAL, 100, 75, 10, 20, 0, 4) + .attr(MinimizeAccuracyAttr) + .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .attr(FlinchAttr), new AttackMove(Moves.POWER_GEM, Type.ROCK, MoveCategory.SPECIAL, 80, 100, 20, -1, 0, 4), new AttackMove(Moves.DRAIN_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 75, 100, 10, -1, 0, 4) @@ -5671,7 +5705,9 @@ export function initMoves() { .attr(StatChangeAttr, [ BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true) .danceMove(), new AttackMove(Moves.HEAVY_SLAM, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 5) + .attr(MinimizeAccuracyAttr) .attr(CompareWeightPowerAttr) + .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .condition(failOnMaxCondition), new AttackMove(Moves.SYNCHRONOISE, Type.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 5) .target(MoveTarget.ALL_NEAR_OTHERS) @@ -5802,7 +5838,9 @@ export function initMoves() { .attr(StatChangeAttr, BattleStat.DEF, -1) .slicingMove(), new AttackMove(Moves.HEAT_CRASH, Type.FIRE, MoveCategory.PHYSICAL, -1, 100, 10, -1, 0, 5) + .attr(MinimizeAccuracyAttr) .attr(CompareWeightPowerAttr) + .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .condition(failOnMaxCondition), new AttackMove(Moves.LEAF_TORNADO, Type.GRASS, MoveCategory.SPECIAL, 65, 90, 10, 50, 0, 5) .attr(StatChangeAttr, BattleStat.ACC, -1), @@ -5873,7 +5911,9 @@ export function initMoves() { .makesContact(false) .partial(), new AttackMove(Moves.FLYING_PRESS, Type.FIGHTING, MoveCategory.PHYSICAL, 100, 95, 10, -1, 0, 6) + .attr(MinimizeAccuracyAttr) .attr(FlyingTypeMultiplierAttr) + .attr(HitsTagAttr, BattlerTagType.MINIMIZED, true) .condition(failOnGravityCondition), new StatusMove(Moves.MAT_BLOCK, Type.FIGHTING, -1, 10, -1, 0, 6) .unimplemented(), diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 36d76edcf..5284773e4 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -855,14 +855,20 @@ export const trainerConfigs: TrainerConfigs = { }), [TrainerType.RIVAL_6]: new TrainerConfig(++t).setName('Finn').setHasGenders('Ivy').setHasCharSprite().setTitle('Rival').setBoss().setStaticParty().setMoneyMultiplier(3).setEncounterBgm('final').setBattleBgm('battle_rival_3').setPartyTemplates(trainerPartyTemplates.RIVAL_6) .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA, Species.RILLABOOM, Species.CINDERACE, Species.INTELEON, Species.MEOWSCARADA, Species.SKELEDIRGE, Species.QUAQUAVAL ], TrainerSlot.TRAINER, true, - p => p.setBoss(true, 3)) - ) + p => { + p.setBoss(true, 3); + p.generateAndPopulateMoveset(); + })) .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON, Species.CORVIKNIGHT, Species.KILOWATTREL ], TrainerSlot.TRAINER, true, - p => p.setBoss(true, 2))) + p => { + p.setBoss(true, 2); + p.generateAndPopulateMoveset(); + })) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540) .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.RAYQUAZA ], TrainerSlot.TRAINER, true, p => { p.setBoss(); + p.generateAndPopulateMoveset(); p.pokeball = PokeballType.MASTER_BALL; p.shiny = true; p.variant = 1; diff --git a/src/data/weather.ts b/src/data/weather.ts index 1409920a1..eb30f22f3 100644 --- a/src/data/weather.ts +++ b/src/data/weather.ts @@ -7,6 +7,7 @@ import * as Utils from "../utils"; import BattleScene from "../battle-scene"; import { SuppressWeatherEffectAbAttr } from "./ability"; import { TerrainType } from "./terrain"; +import i18next from "i18next"; export enum WeatherType { NONE, @@ -121,23 +122,23 @@ export class Weather { export function getWeatherStartMessage(weatherType: WeatherType): string { switch (weatherType) { case WeatherType.SUNNY: - return 'The sunlight got bright!'; + return i18next.t('weather:sunnyStartMessage'); case WeatherType.RAIN: - return 'A downpour started!'; + return i18next.t('weather:rainStartMessage'); case WeatherType.SANDSTORM: - return 'A sandstorm brewed!'; + return i18next.t('weather:sandstormStartMessage'); case WeatherType.HAIL: - return 'It started to hail!'; + return i18next.t('weather:hailStartMessage'); case WeatherType.SNOW: - return 'It started to snow!'; + return i18next.t('weather:snowStartMessage'); case WeatherType.FOG: - return 'A thick fog emerged!' + return i18next.t('weather:fogStartMessage'); case WeatherType.HEAVY_RAIN: - return 'A heavy downpour started!' + return i18next.t('weather:heavyRainStartMessage'); case WeatherType.HARSH_SUN: - return 'The sunlight got hot!' + return i18next.t('weather:harshSunStartMessage'); case WeatherType.STRONG_WINDS: - return 'A heavy wind began!'; + return i18next.t('weather:strongWindsStartMessage'); } return null; @@ -146,23 +147,23 @@ export function getWeatherStartMessage(weatherType: WeatherType): string { export function getWeatherLapseMessage(weatherType: WeatherType): string { switch (weatherType) { case WeatherType.SUNNY: - return 'The sunlight is strong.'; + return i18next.t('weather:sunnyLapseMessage'); case WeatherType.RAIN: - return 'The downpour continues.'; + return i18next.t('weather:rainLapseMessage'); case WeatherType.SANDSTORM: - return 'The sandstorm rages.'; + return i18next.t('weather:sandstormLapseMessage'); case WeatherType.HAIL: - return 'Hail continues to fall.'; + return i18next.t('weather:hailLapseMessage'); case WeatherType.SNOW: - return 'The snow is falling down.'; + return i18next.t('weather:snowLapseMessage'); case WeatherType.FOG: - return 'The fog continues.'; + return i18next.t('weather:fogLapseMessage'); case WeatherType.HEAVY_RAIN: - return 'The heavy downpour continues.' + return i18next.t('weather:heavyRainLapseMessage'); case WeatherType.HARSH_SUN: - return 'The sun is scorching hot.' + return i18next.t('weather:harshSunLapseMessage'); case WeatherType.STRONG_WINDS: - return 'The wind blows intensely.'; + return i18next.t('weather:strongWindsLapseMessage'); } return null; @@ -182,23 +183,23 @@ export function getWeatherDamageMessage(weatherType: WeatherType, pokemon: Pokem export function getWeatherClearMessage(weatherType: WeatherType): string { switch (weatherType) { case WeatherType.SUNNY: - return 'The sunlight faded.'; + return i18next.t('weather:sunnyClearMessage'); case WeatherType.RAIN: - return 'The rain stopped.'; + return i18next.t('weather:rainClearMessage'); case WeatherType.SANDSTORM: - return 'The sandstorm subsided.'; + return i18next.t('weather:sandstormClearMessage'); case WeatherType.HAIL: - return 'The hail stopped.'; + return i18next.t('weather:hailClearMessage'); case WeatherType.SNOW: - return 'The snow stopped.'; + return i18next.t('weather:snowClearMessage'); case WeatherType.FOG: - return 'The fog disappeared.' + return i18next.t('weather:fogClearMessage'); case WeatherType.HEAVY_RAIN: - return 'The heavy rain stopped.' + return i18next.t('weather:heavyRainClearMessage'); case WeatherType.HARSH_SUN: - return 'The harsh sunlight faded.' + return i18next.t('weather:harshSunClearMessage'); case WeatherType.STRONG_WINDS: - return 'The heavy wind stopped.'; + return i18next.t('weather:strongWindsClearMessage'); } return null; diff --git a/src/evolution-phase.ts b/src/evolution-phase.ts index fb3803a1e..7684d7797 100644 --- a/src/evolution-phase.ts +++ b/src/evolution-phase.ts @@ -9,6 +9,7 @@ import { LearnMovePhase } from "./phases"; import { cos, sin } from "./field/anims"; import { PlayerPokemon } from "./field/pokemon"; import { getTypeRgb } from "./data/type"; +import i18next from "i18next"; export class EvolutionPhase extends Phase { protected pokemon: PlayerPokemon; @@ -115,7 +116,7 @@ export class EvolutionPhase extends Phase { const evolutionHandler = this.scene.ui.getHandler() as EvolutionSceneHandler; const preName = this.pokemon.name; - this.scene.ui.showText(`What?\n${preName} is evolving!`, null, () => { + this.scene.ui.showText(i18next.t('menu:evolving', { pokemonName: preName }), null, () => { this.pokemon.cry(); this.pokemon.getPossibleEvolution(this.evolution).then(evolvedPokemon => { @@ -187,8 +188,8 @@ export class EvolutionPhase extends Phase { this.scene.unshiftPhase(new EndEvolutionPhase(this.scene)); - this.scene.ui.showText(`${preName} stopped evolving.`, null, () => { - this.scene.ui.showText(`Would you like to pause evolutions for ${preName}?\nEvolutions can be re-enabled from the party screen.`, null, () => { + this.scene.ui.showText(i18next.t('menu:stoppedEvolving', { pokemonName: preName }), null, () => { + this.scene.ui.showText(i18next.t('menu:pauseEvolutionsQuestion', { pokemonName: preName }), null, () => { const end = () => { this.scene.ui.showText(null, 0); this.scene.playBgm(); @@ -198,7 +199,7 @@ export class EvolutionPhase extends Phase { this.scene.ui.setOverlayMode(Mode.CONFIRM, () => { this.scene.ui.revertMode(); this.pokemon.pauseEvolutions = true; - this.scene.ui.showText(`Evolutions have been paused for ${preName}.`, null, end, 3000); + this.scene.ui.showText(i18next.t('menu:evolutionsPaused', { pokemonName: preName }), null, end, 3000); }, () => { this.scene.ui.revertMode(); this.scene.time.delayedCall(3000, end); @@ -249,7 +250,7 @@ export class EvolutionPhase extends Phase { this.scene.playSoundWithoutBgm('evolution_fanfare'); evolvedPokemon.destroy(); - this.scene.ui.showText(`Congratulations!\nYour ${preName} evolved into ${this.pokemon.name}!`, null, () => this.end(), null, true, Utils.fixedInt(4000)); + this.scene.ui.showText(i18next.t('menu:evolutionDone', { pokemonName: preName, evolvedPokemonName: this.pokemon.name }), null, () => this.end(), null, true, Utils.fixedInt(4000)); this.scene.time.delayedCall(Utils.fixedInt(4250), () => this.scene.playBgm()); }); }); diff --git a/src/field/arena.ts b/src/field/arena.ts index a2bde9422..75cc86fce 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -206,6 +206,7 @@ export class Arena { case Biome.TALL_GRASS: return Type.GRASS; case Biome.FOREST: + case Biome.JUNGLE: return Type.BUG; case Biome.SLUM: case Biome.SWAMP: @@ -237,8 +238,10 @@ export class Arena { case Biome.TEMPLE: return Type.GHOST; case Biome.DOJO: + case Biome.CONSTRUCTION_SITE: return Type.FIGHTING; case Biome.FACTORY: + case Biome.LABORATORY: return Type.STEEL; case Biome.RUINS: case Biome.SPACE: @@ -248,6 +251,8 @@ export class Arena { return Type.DRAGON; case Biome.ABYSS: return Type.DARK; + default: + return Type.UNKNOWN; } } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 97d94bdba..eb08af3da 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1229,14 +1229,20 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { for (let i = 0; i < 3; i++) { const moveId = speciesEggMoves[this.species.getRootSpeciesId()][i]; if (!movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)')) - movePool.push([moveId, Math.min(this.level * 0.5, 40)]); + movePool.push([moveId, 40]); } + const moveId = speciesEggMoves[this.species.getRootSpeciesId()][3]; + if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)') && !this.isBoss()) // No rare egg moves before e4 + movePool.push([moveId, 30]); if (this.fusionSpecies) { for (let i = 0; i < 3; i++) { const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][i]; if (!movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)')) - movePool.push([moveId, Math.min(this.level * 0.5, 30)]); + movePool.push([moveId, 40]); } + const moveId = speciesEggMoves[this.fusionSpecies.getRootSpeciesId()][3]; + if (this.level >= 170 && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(' (N)') && !this.isBoss()) // No rare egg moves before e4 + movePool.push([moveId, 30]); } } } @@ -1544,6 +1550,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { applyPreAttackAbAttrs(DamageBoostAbAttr, source, this, battlerMove, damage); + /** + * For each {@link HitsTagAttr} the move has, doubles the damage of the move if: + * The target has a {@link BattlerTagType} that this move interacts with + * AND + * The move doubles damage when used against that tag + * */ move.getAttrs(HitsTagAttr).map(hta => hta as HitsTagAttr).filter(hta => hta.doubleDamage).forEach(hta => { if (this.getTag(hta.tagType)) damage.value *= 2; diff --git a/src/locales/de/battle.ts b/src/locales/de/battle.ts index ca0e60bf9..e0aa20b6c 100644 --- a/src/locales/de/battle.ts +++ b/src/locales/de/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} hat\n{{moveName}} nicht erlernt.", "learnMoveForgetQuestion": "Welche Attacke soll vergessen werden?", "learnMoveForgetSuccess": "{{pokemonName}} hat\n{{moveName}} vergessen.", + "countdownPoof": "@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}schwupp!", + "learnMoveAnd": "Und…", "levelCapUp": "Das Levellimit\nhat sich zu {{levelCap}} erhöht!", "moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.", "moveNoPP": "Es sind keine AP für\ndiese Attacke mehr übrig!", @@ -43,7 +45,7 @@ export const battle: SimpleTranslationEntries = { "noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!", "noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!", "runAwaySuccess": "Du bist entkommen!", - "runAwayCannotEscape": 'Flucht unmöglich!', + "runAwayCannotEscape": 'Flucht gescheitert!', "escapeVerbSwitch": "auswechseln", "escapeVerbFlee": "flucht", "skipItemQuestion": "Bist du sicher, dass du kein Item nehmen willst?", diff --git a/src/locales/de/menu-ui-handler.ts b/src/locales/de/menu-ui-handler.ts index e330b7269..0197598cb 100644 --- a/src/locales/de/menu-ui-handler.ts +++ b/src/locales/de/menu-ui-handler.ts @@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = { "EGG_GACHA": "Eier-Gacha", "MANAGE_DATA": "Daten verwalten", "COMMUNITY": "Community", - "RETURN_TO_TITLE": "Zurück zum Titelbildschirm", + "SAVE_AND_QUIT": "Save and Quit", "LOG_OUT": "Ausloggen", "slot": "Slot {{slotNumber}}", "importSession": "Sitzung importieren", diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts index c22b940a8..7d96f9130 100644 --- a/src/locales/de/menu.ts +++ b/src/locales/de/menu.ts @@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "Bist du ein Junge oder ein Mädchen?", "boy": "Junge", "girl": "Mädchen", + "evolving": "What?\n{{pokemonName}} is evolving!", + "stoppedEvolving": "{{pokemonName}} stopped evolving.", + "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", + "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", + "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", "dailyRankings": "Tägliche Rangliste", "weeklyRankings": "Wöchentliche Rangliste", "noRankings": "Keine Rangliste", diff --git a/src/locales/de/starter-select-ui-handler.ts b/src/locales/de/starter-select-ui-handler.ts index 2e733c1a0..5f6dae32c 100644 --- a/src/locales/de/starter-select-ui-handler.ts +++ b/src/locales/de/starter-select-ui-handler.ts @@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam": "Mit diesen Pokémon losziehen?", + "gen1": "I", + "gen2": "II", + "gen3": "III", + "gen4": "IV", + "gen5": "V", + "gen6": "VI", + "gen7": "VII", + "gen8": "VIII", + "gen9": "IX", "growthRate": "Wachstum:", "ability": "Fhgkeit:", "passive": "Passiv:", @@ -32,4 +41,4 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "locked": "Gesperrt", "disabled": "Deaktiviert", "uncaught": "Uncaught" -} \ No newline at end of file +} diff --git a/src/locales/de/weather.ts b/src/locales/de/weather.ts new file mode 100644 index 000000000..999613f15 --- /dev/null +++ b/src/locales/de/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "The sunlight got bright!", + "sunnyLapseMessage": "The sunlight is strong.", + "sunnyClearMessage": "The sunlight faded.", + + "rainStartMessage": "A downpour started!", + "rainLapseMessage": "The downpour continues.", + "rainClearMessage": "The rain stopped.", + + "sandstormStartMessage": "A sandstorm brewed!", + "sandstormLapseMessage": "The sandstorm rages.", + "sandstormClearMessage": "The sandstorm subsided.", + "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!", + + "hailStartMessage": "It started to hail!", + "hailLapseMessage": "Hail continues to fall.", + "hailClearMessage": "The hail stopped.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!", + + "snowStartMessage": "It started to snow!", + "snowLapseMessage": "The snow is falling down.", + "snowClearMessage": "The snow stopped.", + + "fogStartMessage": "A thick fog emerged!", + "fogLapseMessage": "The fog continues.", + "fogClearMessage": "The fog disappeared.", + + "heavyRainStartMessage": "A heavy downpour started!", + "heavyRainLapseMessage": "The heavy downpour continues.", + "heavyRainClearMessage": "The heavy rain stopped.", + + "harshSunStartMessage": "The sunlight got hot!", + "harshSunLapseMessage": "The sun is scorching hot.", + "harshSunClearMessage": "The harsh sunlight faded.", + + "strongWindsStartMessage": "A heavy wind began!", + "strongWindsLapseMessage": "The wind blows intensely.", + "strongWindsClearMessage": "The heavy wind stopped." +} \ No newline at end of file diff --git a/src/locales/en/battle.ts b/src/locales/en/battle.ts index 7c948e6f0..0162f2922 100644 --- a/src/locales/en/battle.ts +++ b/src/locales/en/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.", "learnMoveForgetQuestion": "Which move should be forgotten?", "learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.", + "countdownPoof": "@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!", + "learnMoveAnd": "And…", "levelCapUp": "The level cap\nhas increased to {{levelCap}}!", "moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.", "moveNoPP": "There's no PP left for\nthis move!", diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index f5e8a68b0..9259aa5cb 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -13,6 +13,7 @@ import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; +import { weather } from "./weather"; export const enConfig = { @@ -30,5 +31,6 @@ export const enConfig = { starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, nature: nature, - growth: growth + growth: growth, + weather: weather } \ No newline at end of file diff --git a/src/locales/en/menu-ui-handler.ts b/src/locales/en/menu-ui-handler.ts index 5fde37ae3..eb8e474ee 100644 --- a/src/locales/en/menu-ui-handler.ts +++ b/src/locales/en/menu-ui-handler.ts @@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = { "EGG_GACHA": "Egg Gacha", "MANAGE_DATA": "Manage Data", "COMMUNITY": "Community", - "RETURN_TO_TITLE": "Return To Title", + "SAVE_AND_QUIT": "Save and Quit", "LOG_OUT": "Log Out", "slot": "Slot {{slotNumber}}", "importSession": "Import Session", diff --git a/src/locales/en/menu.ts b/src/locales/en/menu.ts index 7a5043a98..7db9ea3aa 100644 --- a/src/locales/en/menu.ts +++ b/src/locales/en/menu.ts @@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "Are you a boy or a girl?", "boy": "Boy", "girl": "Girl", + "evolving": "What?\n{{pokemonName}} is evolving!", + "stoppedEvolving": "{{pokemonName}} stopped evolving.", + "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", + "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", + "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", "dailyRankings": "Daily Rankings", "weeklyRankings": "Weekly Rankings", "noRankings": "No Rankings", diff --git a/src/locales/en/starter-select-ui-handler.ts b/src/locales/en/starter-select-ui-handler.ts index 2acceab69..19f8649dc 100644 --- a/src/locales/en/starter-select-ui-handler.ts +++ b/src/locales/en/starter-select-ui-handler.ts @@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam":'Begin with these Pokémon?', + "gen1": "I", + "gen2": "II", + "gen3": "III", + "gen4": "IV", + "gen5": "V", + "gen6": "VI", + "gen7": "VII", + "gen8": "VIII", + "gen9": "IX", "growthRate": "Growth Rate:", "ability": "Ability:", "passive": "Passive:", @@ -32,4 +41,4 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "locked": "Locked", "disabled": "Disabled", "uncaught": "Uncaught" -} \ No newline at end of file +} diff --git a/src/locales/en/weather.ts b/src/locales/en/weather.ts new file mode 100644 index 000000000..999613f15 --- /dev/null +++ b/src/locales/en/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "The sunlight got bright!", + "sunnyLapseMessage": "The sunlight is strong.", + "sunnyClearMessage": "The sunlight faded.", + + "rainStartMessage": "A downpour started!", + "rainLapseMessage": "The downpour continues.", + "rainClearMessage": "The rain stopped.", + + "sandstormStartMessage": "A sandstorm brewed!", + "sandstormLapseMessage": "The sandstorm rages.", + "sandstormClearMessage": "The sandstorm subsided.", + "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!", + + "hailStartMessage": "It started to hail!", + "hailLapseMessage": "Hail continues to fall.", + "hailClearMessage": "The hail stopped.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!", + + "snowStartMessage": "It started to snow!", + "snowLapseMessage": "The snow is falling down.", + "snowClearMessage": "The snow stopped.", + + "fogStartMessage": "A thick fog emerged!", + "fogLapseMessage": "The fog continues.", + "fogClearMessage": "The fog disappeared.", + + "heavyRainStartMessage": "A heavy downpour started!", + "heavyRainLapseMessage": "The heavy downpour continues.", + "heavyRainClearMessage": "The heavy rain stopped.", + + "harshSunStartMessage": "The sunlight got hot!", + "harshSunLapseMessage": "The sun is scorching hot.", + "harshSunClearMessage": "The harsh sunlight faded.", + + "strongWindsStartMessage": "A heavy wind began!", + "strongWindsLapseMessage": "The wind blows intensely.", + "strongWindsClearMessage": "The heavy wind stopped." +} \ No newline at end of file diff --git a/src/locales/es/battle.ts b/src/locales/es/battle.ts index 6fdcf4fbc..76a73142a 100644 --- a/src/locales/es/battle.ts +++ b/src/locales/es/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.", "learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?", "learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.", + "countdownPoof": "@d{32}1, @d{15}2, @d{15}y@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}¡Puf!", + "learnMoveAnd": "Y…", "levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!", "moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.", "moveNoPP": "There's no PP left for\nthis move!", diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index c56a8d384..f6d6f2715 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -13,6 +13,7 @@ import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; +import { weather } from "./weather"; export const esConfig = { @@ -30,5 +31,6 @@ export const esConfig = { starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, nature: nature, - growth: growth + growth: growth, + weather: weather } \ No newline at end of file diff --git a/src/locales/es/menu-ui-handler.ts b/src/locales/es/menu-ui-handler.ts index ba7ea78fd..ebb76de6f 100644 --- a/src/locales/es/menu-ui-handler.ts +++ b/src/locales/es/menu-ui-handler.ts @@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = { "EGG_GACHA": "Gacha de Huevos", "MANAGE_DATA": "Gestionar Datos", "COMMUNITY": "Comunidad", - "RETURN_TO_TITLE": "Volver al Título", + "SAVE_AND_QUIT": "Save and Quit", "LOG_OUT": "Cerrar Sesión", "slot": "Ranura {{slotNumber}}", "importSession": "Importar Sesión", diff --git a/src/locales/es/menu.ts b/src/locales/es/menu.ts index 4839630bc..6a7f2587a 100644 --- a/src/locales/es/menu.ts +++ b/src/locales/es/menu.ts @@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "¿Eres un chico o una chica?", "boy": "Chico", "girl": "Chica", + "evolving": "What?\n{{pokemonName}} is evolving!", + "stoppedEvolving": "{{pokemonName}} stopped evolving.", + "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", + "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", + "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", "dailyRankings": "Rankings Diarios", "weeklyRankings": "Rankings Semanales", "noRankings": "Sin Rankings", diff --git a/src/locales/es/starter-select-ui-handler.ts b/src/locales/es/starter-select-ui-handler.ts index 9b0372098..79bf6f947 100644 --- a/src/locales/es/starter-select-ui-handler.ts +++ b/src/locales/es/starter-select-ui-handler.ts @@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam":'¿Comenzar con estos Pokémon?', + "gen1": "I", + "gen2": "II", + "gen3": "III", + "gen4": "IV", + "gen5": "V", + "gen6": "VI", + "gen7": "VII", + "gen8": "VIII", + "gen9": "IX", "growthRate": "Crecimiento:", "ability": "Habilid:", "passive": "Pasiva:", @@ -32,4 +41,4 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "locked": "Locked", "disabled": "Disabled", "uncaught": "Uncaught" -} \ No newline at end of file +} diff --git a/src/locales/es/weather.ts b/src/locales/es/weather.ts new file mode 100644 index 000000000..999613f15 --- /dev/null +++ b/src/locales/es/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "The sunlight got bright!", + "sunnyLapseMessage": "The sunlight is strong.", + "sunnyClearMessage": "The sunlight faded.", + + "rainStartMessage": "A downpour started!", + "rainLapseMessage": "The downpour continues.", + "rainClearMessage": "The rain stopped.", + + "sandstormStartMessage": "A sandstorm brewed!", + "sandstormLapseMessage": "The sandstorm rages.", + "sandstormClearMessage": "The sandstorm subsided.", + "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!", + + "hailStartMessage": "It started to hail!", + "hailLapseMessage": "Hail continues to fall.", + "hailClearMessage": "The hail stopped.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!", + + "snowStartMessage": "It started to snow!", + "snowLapseMessage": "The snow is falling down.", + "snowClearMessage": "The snow stopped.", + + "fogStartMessage": "A thick fog emerged!", + "fogLapseMessage": "The fog continues.", + "fogClearMessage": "The fog disappeared.", + + "heavyRainStartMessage": "A heavy downpour started!", + "heavyRainLapseMessage": "The heavy downpour continues.", + "heavyRainClearMessage": "The heavy rain stopped.", + + "harshSunStartMessage": "The sunlight got hot!", + "harshSunLapseMessage": "The sun is scorching hot.", + "harshSunClearMessage": "The harsh sunlight faded.", + + "strongWindsStartMessage": "A heavy wind began!", + "strongWindsLapseMessage": "The wind blows intensely.", + "strongWindsClearMessage": "The heavy wind stopped." +} \ No newline at end of file diff --git a/src/locales/fr/battle.ts b/src/locales/fr/battle.ts index e34902b8c..a76cc9cde 100644 --- a/src/locales/fr/battle.ts +++ b/src/locales/fr/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.", "learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?", "learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.", + "countdownPoof": "@d{32}1, @d{15}2, @d{15}et@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Tadaaa !", + "learnMoveAnd": "Et…", "levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !", "moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.", "moveNoPP": "Il n’y a plus de PP pour\ncette capacité !", diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 89669aceb..4179c758f 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -13,6 +13,7 @@ import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; +import { weather } from "./weather"; export const frConfig = { @@ -30,5 +31,6 @@ export const frConfig = { starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, nature: nature, - growth: growth + growth: growth, + weather: weather } \ No newline at end of file diff --git a/src/locales/fr/menu-ui-handler.ts b/src/locales/fr/menu-ui-handler.ts index 54328a05e..20e667546 100644 --- a/src/locales/fr/menu-ui-handler.ts +++ b/src/locales/fr/menu-ui-handler.ts @@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = { "EGG_GACHA": "Gacha-Œufs", "MANAGE_DATA": "Mes données", "COMMUNITY": "Communauté", - "RETURN_TO_TITLE": "Écran titre", + "SAVE_AND_QUIT": "Sauver & quitter", "LOG_OUT": "Déconnexion", "slot": "Emplacement {{slotNumber}}", "importSession": "Importer session", diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts index 2723de587..7cf277889 100644 --- a/src/locales/fr/menu.ts +++ b/src/locales/fr/menu.ts @@ -30,6 +30,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "Es-tu un garçon ou une fille ?", "boy": "Garçon", "girl": "Fille", + "evolving": "Hein ?\n{{pokemonName}} évolue !", + "stoppedEvolving": "{{pokemonName}} a stoppé son évolution.", + "pauseEvolutionsQuestion": "Voulez-vous pauser les évolutions pour {{pokemonName}} ?\nLes évolutions peuvent être réactivées depuis l'écran d'équipe.", + "evolutionsPaused": "Les évolutions ont été mises en pause pour {{pokemonName}}.", + "evolutionDone": "Félicitations !\nVotre {{pokemonName}} a évolué en {{evolvedPokemonName}} !", "dailyRankings": "Classement du Jour", "weeklyRankings": "Classement de la Semaine", "noRankings": "Pas de Classement", diff --git a/src/locales/fr/starter-select-ui-handler.ts b/src/locales/fr/starter-select-ui-handler.ts index d26fa3314..380f4e9fd 100644 --- a/src/locales/fr/starter-select-ui-handler.ts +++ b/src/locales/fr/starter-select-ui-handler.ts @@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam":'Commencer avec ces Pokémon ?', + "gen1": "1G", + "gen2": "2G", + "gen3": "3G", + "gen4": "4G", + "gen5": "5G", + "gen6": "6G", + "gen7": "7G", + "gen8": "8G", + "gen9": "9G", "growthRate": "Croissance :", "ability": "Talent :", "passive": "Passif :", @@ -31,5 +40,5 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "disablePassive": "Désactiver Passif", "locked": "Verrouillé", "disabled": "Désactivé", - "uncaught": "Uncaught" + "uncaught": "Non-capturé" } diff --git a/src/locales/fr/weather.ts b/src/locales/fr/weather.ts new file mode 100644 index 000000000..e73e51a53 --- /dev/null +++ b/src/locales/fr/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "Les rayons du soleil brillent !", + "sunnyLapseMessage": "Les rayons du soleil brillent fort !", + "sunnyClearMessage": "Les rayons du soleil s’affaiblissent !", + + "rainStartMessage": "Il commence à pleuvoir !", + "rainLapseMessage": "La pluie continue de tomber !", + "rainClearMessage": "La pluie s’est arrêtée !", + + "sandstormStartMessage": "Une tempête de sable se prépare !", + "sandstormLapseMessage": "La tempête de sable fait rage !", + "sandstormClearMessage": "La tempête de sable se calme !", + "sandstormDamageMessage": "La tempête de sable inflige des dégâts\nà {{pokemonPrefix}}{{pokemonName}} !", + + "hailStartMessage": "Il commence à grêler !", + "hailLapseMessage": "La grêle continue de tomber !", + "hailClearMessage": "La grêle s’est arrêtée !", + "hailDamageMessage": "La grêle inflige des dégâts\nà {{pokemonPrefix}}{{pokemonName}} !", + + "snowStartMessage": "Il commence à neiger !", + "snowLapseMessage": "Il y a une tempête de neige !", + "snowClearMessage": "La neige s’est arrêtée !", + + "fogStartMessage": "Le brouillard devient épais…", + "fogLapseMessage": "Le brouillard continue !", + "fogClearMessage": "Le brouillard s’est dissipé !", + + "heavyRainStartMessage": "Une pluie battante s’abat soudainement !", + "heavyRainLapseMessage": "La pluie battante continue.", + "heavyRainClearMessage": "La pluie battante s’est arrêtée…", + + "harshSunStartMessage": "Les rayons du soleil s’intensifient !", + "harshSunLapseMessage": "Les rayons du soleil sont brulants !", + "harshSunClearMessage": "Les rayons du soleil s’affaiblissent !", + + "strongWindsStartMessage": "Un vent mystérieux se lève !", + "strongWindsLapseMessage": "Le vent mystérieux violemment !", + "strongWindsClearMessage": "Le vent mystérieux s’est dissipé…" +} diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts index a3cffaa60..702ec0708 100644 --- a/src/locales/it/battle.ts +++ b/src/locales/it/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} non ha imparato\n{{moveName}}.", "learnMoveForgetQuestion": "Quale mossa deve dimenticare?", "learnMoveForgetSuccess": "{{pokemonName}} ha dimenticato la mossa\n{{moveName}}.", + "countdownPoof": "@d{32}1, @d{15}2, @d{15}e@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Puff!", + "learnMoveAnd": "E…", "levelCapUp": "Il livello massimo\nè aumentato a {{levelCap}}!", "moveNotImplemented": "{{moveName}} non è ancora implementata e non può essere selezionata.", "moveNoPP": "Non ci sono PP rimanenti\nper questa mossa!", diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 6ba9aa3af..85e2e6291 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -13,6 +13,7 @@ import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; +import { weather } from "./weather"; export const itConfig = { @@ -30,5 +31,6 @@ export const itConfig = { starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, nature: nature, - growth: growth + growth: growth, + weather: weather } \ No newline at end of file diff --git a/src/locales/it/menu-ui-handler.ts b/src/locales/it/menu-ui-handler.ts index 9def62d8d..3e4362e76 100644 --- a/src/locales/it/menu-ui-handler.ts +++ b/src/locales/it/menu-ui-handler.ts @@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = { "EGG_GACHA": "Gacha Uova", "MANAGE_DATA": "Gestisci Dati", "COMMUNITY": "Community", - "RETURN_TO_TITLE": "Ritorna al Titolo", + "SAVE_AND_QUIT": "Save and Quit", "LOG_OUT": "Disconnettiti", "slot": "Slot {{slotNumber}}", "importSession": "Importa Sessione", diff --git a/src/locales/it/menu.ts b/src/locales/it/menu.ts index 1344b21cc..ff41b8ab9 100644 --- a/src/locales/it/menu.ts +++ b/src/locales/it/menu.ts @@ -40,6 +40,11 @@ export const menu: SimpleTranslationEntries = { "noRankings": "Nessuna Classifica", "loading": "Caricamento…", "playersOnline": "Giocatori Online", + "evolving": "What?\n{{pokemonName}} is evolving!", + "stoppedEvolving": "{{pokemonName}} stopped evolving.", + "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", + "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", + "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", "empty":"Vuoto", "yes":"Si", "no":"No", diff --git a/src/locales/it/starter-select-ui-handler.ts b/src/locales/it/starter-select-ui-handler.ts index 79c2e26c6..f2b44c372 100644 --- a/src/locales/it/starter-select-ui-handler.ts +++ b/src/locales/it/starter-select-ui-handler.ts @@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam":'Vuoi iniziare con questi Pokémon?', + "gen1": "I", + "gen2": "II", + "gen3": "III", + "gen4": "IV", + "gen5": "V", + "gen6": "VI", + "gen7": "VII", + "gen8": "VIII", + "gen9": "IX", "growthRate": "Vel. Crescita:", "ability": "Abilità:", "passive": "Passiva:", @@ -29,7 +38,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "cycleVariant": 'V: Alterna Variante', "enablePassive": "Attiva Passiva", "disablePassive": "Disattiva Passiva", - "locked": "Locked", - "disabled": "Disabled", - "uncaught": "Uncaught" + "locked": "Bloccato", + "disabled": "Disabilitato", + "uncaught": "Non Catturato" } \ No newline at end of file diff --git a/src/locales/it/weather.ts b/src/locales/it/weather.ts new file mode 100644 index 000000000..999613f15 --- /dev/null +++ b/src/locales/it/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "The sunlight got bright!", + "sunnyLapseMessage": "The sunlight is strong.", + "sunnyClearMessage": "The sunlight faded.", + + "rainStartMessage": "A downpour started!", + "rainLapseMessage": "The downpour continues.", + "rainClearMessage": "The rain stopped.", + + "sandstormStartMessage": "A sandstorm brewed!", + "sandstormLapseMessage": "The sandstorm rages.", + "sandstormClearMessage": "The sandstorm subsided.", + "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!", + + "hailStartMessage": "It started to hail!", + "hailLapseMessage": "Hail continues to fall.", + "hailClearMessage": "The hail stopped.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!", + + "snowStartMessage": "It started to snow!", + "snowLapseMessage": "The snow is falling down.", + "snowClearMessage": "The snow stopped.", + + "fogStartMessage": "A thick fog emerged!", + "fogLapseMessage": "The fog continues.", + "fogClearMessage": "The fog disappeared.", + + "heavyRainStartMessage": "A heavy downpour started!", + "heavyRainLapseMessage": "The heavy downpour continues.", + "heavyRainClearMessage": "The heavy rain stopped.", + + "harshSunStartMessage": "The sunlight got hot!", + "harshSunLapseMessage": "The sun is scorching hot.", + "harshSunClearMessage": "The harsh sunlight faded.", + + "strongWindsStartMessage": "A heavy wind began!", + "strongWindsLapseMessage": "The wind blows intensely.", + "strongWindsClearMessage": "The heavy wind stopped." +} \ No newline at end of file diff --git a/src/locales/pt_BR/battle.ts b/src/locales/pt_BR/battle.ts index ed579845c..39f889dee 100644 --- a/src/locales/pt_BR/battle.ts +++ b/src/locales/pt_BR/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} não aprendeu {{moveName}}.", "learnMoveForgetQuestion": "Qual movimento quer esquecer?", "learnMoveForgetSuccess": "{{pokemonName}} esqueceu como usar {{moveName}}.", + "countdownPoof": "@d{32}1, @d{15}2, @d{15}e@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Puf!", + "learnMoveAnd": "E…", "levelCapUp": "O nível máximo aumentou\npara {{levelCap}}!", "moveNotImplemented": "{{moveName}} ainda não foi implementado e não pode ser usado.", "moveNoPP": "Não há mais PP\npara esse movimento!", diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index fc58d45ce..83d0641c8 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -12,6 +12,7 @@ import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; +import { weather } from "./weather"; export const ptBrConfig = { @@ -28,5 +29,6 @@ export const ptBrConfig = { starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, nature: nature, - growth: growth + growth: growth, + weather: weather } \ No newline at end of file diff --git a/src/locales/pt_BR/menu-ui-handler.ts b/src/locales/pt_BR/menu-ui-handler.ts index 2e4d798cf..5a60b6143 100644 --- a/src/locales/pt_BR/menu-ui-handler.ts +++ b/src/locales/pt_BR/menu-ui-handler.ts @@ -1,23 +1,23 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const menuUiHandler: SimpleTranslationEntries = { - "GAME_SETTINGS": 'Configurações', + "GAME_SETTINGS": "Configurações", "ACHIEVEMENTS": "Conquistas", "STATS": "Estatísticas", "VOUCHERS": "Vouchers", "EGG_LIST": "Incubadora", - "EGG_GACHA": "Gacha de Ovos", - "MANAGE_DATA": "Gerenciar Dados", + "EGG_GACHA": "Gacha de ovos", + "MANAGE_DATA": "Gerenciar dados", "COMMUNITY": "Comunidade", - "RETURN_TO_TITLE": "Voltar ao Início", + "SAVE_AND_QUIT": "Salvar e sair", "LOG_OUT": "Logout", "slot": "Slot {{slotNumber}}", - "importSession": "Importar Sessão", + "importSession": "Importar sessão", "importSlotSelect": "Selecione um slot para importar.", - "exportSession": "Exportar Sessão", + "exportSession": "Exportar sessão", "exportSlotSelect": "Selecione um slot para exportar.", - "importData": "Importar Dados", - "exportData": "Exportar Dados", + "importData": "Importar dados", + "exportData": "Exportar dados", "cancel": "Cancelar", "losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?" } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/menu.ts b/src/locales/pt_BR/menu.ts index 474ac867e..10f3fa4df 100644 --- a/src/locales/pt_BR/menu.ts +++ b/src/locales/pt_BR/menu.ts @@ -8,7 +8,7 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const menu: SimpleTranslationEntries = { "cancel": "Cancelar", "continue": "Continuar", - "dailyRun": "Desafio diário (Beta)", + "dailyRun": "Desafio Diário (Beta)", "loadGame": "Carregar Jogo", "newGame": "Novo Jogo", "selectGameMode": "Escolha um modo de jogo.", @@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "Você é um menino ou uma menina?", "boy": "Menino", "girl": "Menina", + "evolving": "Que?\n{{pokemonName}} tá evoluindo!", + "stoppedEvolving": "{{pokemonName}} parou de evoluir.", + "pauseEvolutionsQuestion": "Gostaria de pausar evoluções para {{pokemonName}}?\nEvoluções podem ser religadas na tela de equipe.", + "evolutionsPaused": "Evoluções foram paradas para {{pokemonName}}.", + "evolutionDone": "Parabéns!\nSeu {{pokemonName}} evolui para {{evolvedPokemonName}}!", "dailyRankings": "Classificação Diária", "weeklyRankings": "Classificação Semanal", "noRankings": "Sem Classificação", diff --git a/src/locales/pt_BR/nature.ts b/src/locales/pt_BR/nature.ts index b78168f13..3cb33340e 100644 --- a/src/locales/pt_BR/nature.ts +++ b/src/locales/pt_BR/nature.ts @@ -8,7 +8,7 @@ export const nature: SimpleTranslationEntries = { "Naughty": "Teimosa", "Bold": "Corajosa", "Docile": "Dócil", - "Relaxed": "Descontraída", + "Relaxed": "Relaxada", "Impish": "Inquieta", "Lax": "Relaxada", "Timid": "Tímida", @@ -20,7 +20,7 @@ export const nature: SimpleTranslationEntries = { "Mild": "Mansa", "Quiet": "Quieta", "Bashful": "Atrapalhada", - "Rash": "Imprudente", + "Rash": "Rabugenta", "Calm": "Calma", "Gentle": "Gentil", "Sassy": "Atrevida", diff --git a/src/locales/pt_BR/starter-select-ui-handler.ts b/src/locales/pt_BR/starter-select-ui-handler.ts index ba180c2cf..7d77f48f2 100644 --- a/src/locales/pt_BR/starter-select-ui-handler.ts +++ b/src/locales/pt_BR/starter-select-ui-handler.ts @@ -7,10 +7,19 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam": 'Começar com esses Pokémon?', + "gen1": "I", + "gen2": "II", + "gen3": "III", + "gen4": "IV", + "gen5": "V", + "gen6": "VI", + "gen7": "VII", + "gen8": "VIII", + "gen9": "IX", "growthRate": "Crescimento:", - "ability": "Hab.:", + "ability": "Habilidade:", "passive": "Passiva:", - "nature": "Nature:", + "nature": "Natureza:", "eggMoves": "Mov. de Ovo", "start": "Iniciar", "addToParty": "Adicionar à equipe", @@ -25,11 +34,11 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "cycleForm": 'F: Mudar Forma', "cycleGender": 'G: Mudar Gênero', "cycleAbility": 'E: Mudar Habilidade', - "cycleNature": 'N: Mudar Nature', + "cycleNature": 'N: Mudar Natureza', "cycleVariant": 'V: Mudar Variante', "enablePassive": "Ativar Passiva", "disablePassive": "Desativar Passiva", - "locked": "Bloqueado", - "disabled": "Desativado", + "locked": "Bloqueada", + "disabled": "Desativada", "uncaught": "Não capturado" -} \ No newline at end of file +} diff --git a/src/locales/pt_BR/weather.ts b/src/locales/pt_BR/weather.ts new file mode 100644 index 000000000..de37cab78 --- /dev/null +++ b/src/locales/pt_BR/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "A luz do sol ficou clara!", + "sunnyLapseMessage": "A luz do sol está forte.", + "sunnyClearMessage": "A luz do sol sumiu.", + + "rainStartMessage": "Começou a chover!", + "rainLapseMessage": "A chuva continua forte.", + "rainClearMessage": "A chuva parou.", + + "sandstormStartMessage": "Uma tempestade de areia se formou!", + "sandstormLapseMessage": "A tempestade de areia é violenta.", + "sandstormClearMessage": "A tempestade de areia diminuiu.", + "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} é atingido\npela tempestade de areia!", + + "hailStartMessage": "Começou a chover granizo!", + "hailLapseMessage": "Granizo cai do céu.", + "hailClearMessage": "O granizo parou.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} é atingido\npelo granizo!", + + "snowStartMessage": "Começou a nevar!", + "snowLapseMessage": "A neve continua caindo.", + "snowClearMessage": "Parou de nevar.", + + "fogStartMessage": "Uma névoa densa se formou!", + "fogLapseMessage": "A névoa continua forte.", + "fogClearMessage": "A névoa sumiu.", + + "heavyRainStartMessage": "Um temporal começou!", + "heavyRainLapseMessage": "O temporal continua forte.", + "heavyRainClearMessage": "O temporal parou.", + + "harshSunStartMessage": "A luz do sol está escaldante!", + "harshSunLapseMessage": "A luz do sol é intensa.", + "harshSunClearMessage": "A luz do sol enfraqueceu.", + + "strongWindsStartMessage": "Ventos fortes apareceram!", + "strongWindsLapseMessage": "Os ventos fortes continuam.", + "strongWindsClearMessage": "Os ventos fortes diminuíram.", +} \ No newline at end of file diff --git a/src/locales/zh_CN/battle.ts b/src/locales/zh_CN/battle.ts index 3a92b4f9f..16efae75a 100644 --- a/src/locales/zh_CN/battle.ts +++ b/src/locales/zh_CN/battle.ts @@ -31,6 +31,8 @@ export const battle: SimpleTranslationEntries = { "learnMoveNotLearned": "{{pokemonName}} 没有学会 {{moveName}}。", "learnMoveForgetQuestion": "要忘记哪个技能?", "learnMoveForgetSuccess": "{{pokemonName}} 忘记了\n如何使用 {{moveName}}。", + "countdownPoof": "@d{32}1, @d{15}2, @d{15}和@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}噗!", + "learnMoveAnd": "和…", "levelCapUp": "等级上限提升到 {{levelCap}}!", "moveNotImplemented": "{{moveName}} 尚未实装,无法选择。", "moveNoPP": "这个技能的 PP 用完了", diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 496fd983c..9a70eafb8 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -12,6 +12,7 @@ import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; import { nature } from "./nature"; +import { weather } from "./weather"; export const zhCnConfig = { @@ -29,5 +30,6 @@ export const zhCnConfig = { starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, - nature: nature + nature: nature, + weather: weather } \ No newline at end of file diff --git a/src/locales/zh_CN/menu-ui-handler.ts b/src/locales/zh_CN/menu-ui-handler.ts index 0405b3ece..a4d343f6d 100644 --- a/src/locales/zh_CN/menu-ui-handler.ts +++ b/src/locales/zh_CN/menu-ui-handler.ts @@ -9,7 +9,7 @@ export const menuUiHandler: SimpleTranslationEntries = { "EGG_GACHA": "扭蛋机", "MANAGE_DATA": "管理数据", "COMMUNITY": "社区", - "RETURN_TO_TITLE": "返回标题画面", + "SAVE_AND_QUIT": "Save and Quit", "LOG_OUT": "登出", "slot": "存档位 {{slotNumber}}", "importSession": "导入存档", diff --git a/src/locales/zh_CN/menu.ts b/src/locales/zh_CN/menu.ts index e9e12a6b3..1cbfa9057 100644 --- a/src/locales/zh_CN/menu.ts +++ b/src/locales/zh_CN/menu.ts @@ -35,6 +35,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "你是男孩还是女孩?", "boy": "男孩", "girl": "女孩", + "evolving": "What?\n{{pokemonName}} is evolving!", + "stoppedEvolving": "{{pokemonName}} stopped evolving.", + "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", + "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", + "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", "dailyRankings": "每日排名", "weeklyRankings": "每周排名", "noRankings": "无排名", diff --git a/src/locales/zh_CN/starter-select-ui-handler.ts b/src/locales/zh_CN/starter-select-ui-handler.ts index ace02c1c2..99ecc31af 100644 --- a/src/locales/zh_CN/starter-select-ui-handler.ts +++ b/src/locales/zh_CN/starter-select-ui-handler.ts @@ -7,6 +7,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; */ export const starterSelectUiHandler: SimpleTranslationEntries = { "confirmStartTeam":'使用这些宝可梦开始游戏吗?', + "gen1": "I", + "gen2": "II", + "gen3": "III", + "gen4": "IV", + "gen5": "V", + "gen6": "VI", + "gen7": "VII", + "gen8": "VIII", + "gen9": "IX", "growthRate": "成长速度:", "ability": "特性:", "passive": "被动:", @@ -32,4 +41,4 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "locked": "Locked", "disabled": "Disabled", "uncaught": "Uncaught" -} \ No newline at end of file +} diff --git a/src/locales/zh_CN/weather.ts b/src/locales/zh_CN/weather.ts new file mode 100644 index 000000000..999613f15 --- /dev/null +++ b/src/locales/zh_CN/weather.ts @@ -0,0 +1,44 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The weather namespace holds text displayed when weather is active during a battle + */ +export const weather: SimpleTranslationEntries = { + "sunnyStartMessage": "The sunlight got bright!", + "sunnyLapseMessage": "The sunlight is strong.", + "sunnyClearMessage": "The sunlight faded.", + + "rainStartMessage": "A downpour started!", + "rainLapseMessage": "The downpour continues.", + "rainClearMessage": "The rain stopped.", + + "sandstormStartMessage": "A sandstorm brewed!", + "sandstormLapseMessage": "The sandstorm rages.", + "sandstormClearMessage": "The sandstorm subsided.", + "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is buffeted\nby the sandstorm!", + + "hailStartMessage": "It started to hail!", + "hailLapseMessage": "Hail continues to fall.", + "hailClearMessage": "The hail stopped.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} is pelted\nby the hail!", + + "snowStartMessage": "It started to snow!", + "snowLapseMessage": "The snow is falling down.", + "snowClearMessage": "The snow stopped.", + + "fogStartMessage": "A thick fog emerged!", + "fogLapseMessage": "The fog continues.", + "fogClearMessage": "The fog disappeared.", + + "heavyRainStartMessage": "A heavy downpour started!", + "heavyRainLapseMessage": "The heavy downpour continues.", + "heavyRainClearMessage": "The heavy rain stopped.", + + "harshSunStartMessage": "The sunlight got hot!", + "harshSunLapseMessage": "The sun is scorching hot.", + "harshSunClearMessage": "The harsh sunlight faded.", + + "strongWindsStartMessage": "A heavy wind began!", + "strongWindsLapseMessage": "The wind blows intensely.", + "strongWindsClearMessage": "The heavy wind stopped." +} \ No newline at end of file diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 982f8a654..541e18336 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -925,6 +925,9 @@ export const modifierTypes = { FOCUS_BAND: () => new PokemonHeldItemModifierType('Focus Band', 'Adds a 10% chance to survive with 1 HP after being damaged enough to faint', (type, args) => new Modifiers.SurviveDamageModifier(type, (args[0] as Pokemon).id)), + QUICK_CLAW: () => new PokemonHeldItemModifierType('Quick Claw', 'Adds a 10% chance to move first regardless of speed (after priority)', + (type, args) => new Modifiers.BypassSpeedChanceModifier(type, (args[0] as Pokemon).id)), + KINGS_ROCK: () => new PokemonHeldItemModifierType('King\'s Rock', 'Adds a 10% chance an attack move will cause the opponent to flinch', (type, args) => new Modifiers.FlinchChanceModifier(type, (args[0] as Pokemon).id)), @@ -1087,6 +1090,7 @@ const modifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.SOOTHE_BELL, 4), new WeightedModifierType(modifierTypes.ABILITY_CHARM, 6), new WeightedModifierType(modifierTypes.FOCUS_BAND, 5), + new WeightedModifierType(modifierTypes.QUICK_CLAW, 3), new WeightedModifierType(modifierTypes.KINGS_ROCK, 3), new WeightedModifierType(modifierTypes.LOCK_CAPSULE, 3), new WeightedModifierType(modifierTypes.SUPER_EXP_CHARM, 10), @@ -1138,6 +1142,7 @@ const trainerModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.REVIVER_SEED, 2), new WeightedModifierType(modifierTypes.FOCUS_BAND, 2), new WeightedModifierType(modifierTypes.LUCKY_EGG, 4), + new WeightedModifierType(modifierTypes.QUICK_CLAW, 1), new WeightedModifierType(modifierTypes.GRIP_CLAW, 1), new WeightedModifierType(modifierTypes.WIDE_LENS, 1), ].map(m => { m.setTier(ModifierTier.ROGUE); return m; }), @@ -1198,6 +1203,7 @@ const dailyStarterModifierPool: ModifierPool = { new WeightedModifierType(modifierTypes.GRIP_CLAW, 5), new WeightedModifierType(modifierTypes.BATON, 2), new WeightedModifierType(modifierTypes.FOCUS_BAND, 5), + new WeightedModifierType(modifierTypes.QUICK_CLAW, 3), new WeightedModifierType(modifierTypes.KINGS_ROCK, 3), ].map(m => { m.setTier(ModifierTier.ROGUE); return m; }), [ModifierTier.MASTER]: [ diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 8a5fba17d..0736831a0 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -731,6 +731,40 @@ export class SurviveDamageModifier extends PokemonHeldItemModifier { } } +export class BypassSpeedChanceModifier extends PokemonHeldItemModifier { + constructor(type: ModifierType, pokemonId: integer, stackCount?: integer) { + super(type, pokemonId, stackCount); + } + + matchType(modifier: Modifier) { + return modifier instanceof BypassSpeedChanceModifier; + } + + clone() { + return new BypassSpeedChanceModifier(this.type, this.pokemonId, this.stackCount); + } + + shouldApply(args: any[]): boolean { + return super.shouldApply(args) && args.length === 2 && args[1] instanceof Utils.BooleanHolder; + } + + apply(args: any[]): boolean { + const pokemon = args[0] as Pokemon; + const bypassSpeed = args[1] as Utils.BooleanHolder; + + if (!bypassSpeed.value && pokemon.randSeedInt(10) < this.getStackCount()) { + bypassSpeed.value = true; + return true; + } + + return false; + } + + getMaxHeldItemCount(pokemon: Pokemon): integer { + return 3; + } +} + export class FlinchChanceModifier extends PokemonHeldItemModifier { constructor(type: ModifierType, pokemonId: integer, stackCount?: integer) { super(type, pokemonId, stackCount); diff --git a/src/phases.ts b/src/phases.ts index a802582cb..e2755328c 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -6,7 +6,7 @@ import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMov import { Mode } from './ui/ui'; import { Command } from "./ui/command-ui-handler"; import { Stat } from "./data/pokemon-stat"; -import { BerryModifier, ContactHeldItemTransferChanceModifier, EnemyAttackStatusEffectChanceModifier, EnemyPersistentModifier, EnemyStatusEffectHealChanceModifier, EnemyTurnHealModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, FlinchChanceModifier, FusePokemonModifier, HealingBoosterModifier, HitHealModifier, LapsingPersistentModifier, MapModifier, Modifier, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, PokemonInstantReviveModifier, SwitchEffectTransferModifier, TempBattleStatBoosterModifier, TurnHealModifier, TurnHeldItemTransferModifier, MoneyMultiplierModifier, MoneyInterestModifier, IvScannerModifier, LapsingPokemonHeldItemModifier, PokemonMultiHitModifier, PokemonMoveAccuracyBoosterModifier, overrideModifiers, overrideHeldItems } from "./modifier/modifier"; +import { BerryModifier, ContactHeldItemTransferChanceModifier, EnemyAttackStatusEffectChanceModifier, EnemyPersistentModifier, EnemyStatusEffectHealChanceModifier, EnemyTurnHealModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, FlinchChanceModifier, FusePokemonModifier, HealingBoosterModifier, HitHealModifier, LapsingPersistentModifier, MapModifier, Modifier, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, PokemonInstantReviveModifier, SwitchEffectTransferModifier, TempBattleStatBoosterModifier, TurnHealModifier, TurnHeldItemTransferModifier, MoneyMultiplierModifier, MoneyInterestModifier, IvScannerModifier, LapsingPokemonHeldItemModifier, PokemonMultiHitModifier, PokemonMoveAccuracyBoosterModifier, overrideModifiers, overrideHeldItems, BypassSpeedChanceModifier } from "./modifier/modifier"; import PartyUiHandler, { PartyOption, PartyUiMode } from "./ui/party-ui-handler"; import { doPokeballBounceAnim, getPokeballAtlasKey, getPokeballCatchMultiplier, getPokeballTintColor, PokeballType } from "./data/pokeball"; import { CommonAnim, CommonBattleAnim, MoveAnim, initMoveAnim, loadMoveAnimAssets } from "./data/battle-anims"; @@ -1970,6 +1970,14 @@ export class TurnStartPhase extends FieldPhase { const field = this.scene.getField(); const order = this.getOrder(); + const battlerBypassSpeed = {}; + + this.scene.getField(true).filter(p => p.summonData).map(p => { + const bypassSpeed = new Utils.BooleanHolder(false); + this.scene.applyModifiers(BypassSpeedChanceModifier, p.isPlayer(), p, bypassSpeed); + battlerBypassSpeed[p.getBattlerIndex()] = bypassSpeed; + }); + const moveOrder = order.slice(0); moveOrder.sort((a, b) => { @@ -1994,6 +2002,9 @@ export class TurnStartPhase extends FieldPhase { if (aPriority.value !== bPriority.value) return aPriority.value < bPriority.value ? 1 : -1; } + + if (battlerBypassSpeed[a].value !== battlerBypassSpeed[b].value) + return battlerBypassSpeed[a].value ? -1 : 1; const aIndex = order.indexOf(a); const bIndex = order.indexOf(b); @@ -3956,9 +3967,9 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase { return; } this.scene.ui.setMode(messageMode).then(() => { - this.scene.ui.showText('@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!', null, () => { + this.scene.ui.showText(i18next.t('battle:countdownPoof'), null, () => { this.scene.ui.showText(i18next.t('battle:learnMoveForgetSuccess', { pokemonName: pokemon.name, moveName: pokemon.moveset[moveIndex].getName() }), null, () => { - this.scene.ui.showText('And…', null, () => { + this.scene.ui.showText(i18next.t('battle:learnMoveAnd'), null, () => { pokemon.setMove(moveIndex, Moves.NONE); this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId)); this.end(); diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 82a5a51ba..44712b127 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -110,6 +110,7 @@ declare module 'i18next' { starterSelectUiHandler: SimpleTranslationEntries; nature: SimpleTranslationEntries; growth: SimpleTranslationEntries; + weather: SimpleTranslationEntries; }; } } diff --git a/src/system/game-data.ts b/src/system/game-data.ts index c832d3701..15b087126 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -355,16 +355,18 @@ export class GameData { if (cachedSystemDataStr) { let cachedSystemData = this.parseSystemData(cachedSystemDataStr); - console.log(cachedSystemData.timestamp, systemData.timestamp) if (cachedSystemData.timestamp > systemData.timestamp) { console.debug('Use cached system'); systemData = cachedSystemData; + systemDataStr = cachedSystemDataStr; } else this.clearLocalData(); } console.debug(systemData); + localStorage.setItem(`data_${loggedInUser.username}`, encrypt(systemDataStr, bypassLogin)); + /*const versions = [ this.scene.game.config.gameVersion, data.gameVersion || '0.0.0' ]; if (versions[0] !== versions[1]) { @@ -879,7 +881,7 @@ export class GameData { }) as SessionSaveData; } - saveAll(scene: BattleScene, skipVerification: boolean = false, sync: boolean = false, useCachedSession: boolean = false): Promise { + saveAll(scene: BattleScene, skipVerification: boolean = false, sync: boolean = false, useCachedSession: boolean = false, useCachedSystem: boolean = false): Promise { return new Promise(resolve => { Utils.executeIf(!skipVerification, updateUserInfo).then(success => { if (success !== null && !success) @@ -889,7 +891,7 @@ export class GameData { const sessionData = useCachedSession ? this.parseSessionData(decrypt(localStorage.getItem(`sessionData${scene.sessionSlotId ? scene.sessionSlotId : ''}_${loggedInUser.username}`), bypassLogin)) : this.getSessionSaveData(scene); const maxIntAttrValue = Math.pow(2, 31); - const systemData = this.getSystemSaveData(); + const systemData = useCachedSystem ? this.parseSystemData(decrypt(localStorage.getItem(`data_${loggedInUser.username}`), bypassLogin)) : this.getSystemSaveData(); const request = { system: systemData, diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts index bf0326676..fb253d94f 100644 --- a/src/ui/menu-ui-handler.ts +++ b/src/ui/menu-ui-handler.ts @@ -20,7 +20,7 @@ export enum MenuOptions { EGG_GACHA, MANAGE_DATA, COMMUNITY, - RETURN_TO_TITLE, + SAVE_AND_QUIT, LOG_OUT } @@ -297,15 +297,18 @@ export default class MenuUiHandler extends MessageUiHandler { ui.setOverlayMode(Mode.MENU_OPTION_SELECT, this.communityConfig); success = true; break; - case MenuOptions.RETURN_TO_TITLE: + case MenuOptions.SAVE_AND_QUIT: if (this.scene.currentBattle) { success = true; - ui.showText(i18next.t("menuUiHandler:losingProgressionWarning"), null, () => { - ui.setOverlayMode(Mode.CONFIRM, () => this.scene.reset(true), () => { - ui.revertMode(); - ui.showText(null, 0); - }, false, -98); - }); + if (this.scene.currentBattle.turn > 1) { + ui.showText(i18next.t("menuUiHandler:losingProgressionWarning"), null, () => { + ui.setOverlayMode(Mode.CONFIRM, () => this.scene.gameData.saveAll(this.scene, true, true, true, true).then(() => this.scene.reset(true)), () => { + ui.revertMode(); + ui.showText(null, 0); + }, false, -98); + }); + } else + this.scene.gameData.saveAll(this.scene, true, true, true, true).then(() => this.scene.reset(true)); } else error = true; break; diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 8443ed574..a20f3a364 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -86,7 +86,17 @@ function getValueReductionCandyCounts(baseValue: integer): [integer, integer] { } } -const gens = [ 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX' ]; +const gens = [ + i18next.t("starterSelectUiHandler:gen1"), + i18next.t("starterSelectUiHandler:gen2"), + i18next.t("starterSelectUiHandler:gen3"), + i18next.t("starterSelectUiHandler:gen4"), + i18next.t("starterSelectUiHandler:gen5"), + i18next.t("starterSelectUiHandler:gen6"), + i18next.t("starterSelectUiHandler:gen7"), + i18next.t("starterSelectUiHandler:gen8"), + i18next.t("starterSelectUiHandler:gen9") +]; export default class StarterSelectUiHandler extends MessageUiHandler { private starterSelectContainer: Phaser.GameObjects.Container; @@ -245,30 +255,54 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonUncaughtText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonUncaughtText); - this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 127, i18next.t("starterSelectUiHandler:ability"), TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + let starterInfoXPosition = 31; // Only text + // The position should be set per language + const currentLanguage = i18next.language; + switch (currentLanguage) { + case 'pt_BR': + starterInfoXPosition = 32; + break; + default: + starterInfoXPosition = 31; + break + } + + let starterInfoTextSize = '56px'; // Labels and text + // The font size should be set per language + // currentLanguage is already defined + switch (currentLanguage) { + case 'pt_BR': + starterInfoTextSize = '47px'; + break; + default: + starterInfoTextSize = '56px'; + break + } + + this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 127, i18next.t("starterSelectUiHandler:ability"), TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize }); this.pokemonAbilityLabelText.setOrigin(0, 0); this.pokemonAbilityLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonAbilityLabelText); - this.pokemonAbilityText = addTextObject(this.scene, 31, 127, '', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonAbilityText = addTextObject(this.scene, starterInfoXPosition, 127, '', TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize }); this.pokemonAbilityText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonAbilityText); - this.pokemonPassiveLabelText = addTextObject(this.scene, 6, 136, i18next.t("starterSelectUiHandler:passive"), TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonPassiveLabelText = addTextObject(this.scene, 6, 136, i18next.t("starterSelectUiHandler:passive"), TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize }); this.pokemonPassiveLabelText.setOrigin(0, 0); this.pokemonPassiveLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonPassiveLabelText); - this.pokemonPassiveText = addTextObject(this.scene, 31, 136, '', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonPassiveText = addTextObject(this.scene, starterInfoXPosition, 136, '', TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize }); this.pokemonPassiveText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonPassiveText); - this.pokemonNatureLabelText = addTextObject(this.scene, 6, 145, i18next.t("starterSelectUiHandler:nature"), TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonNatureLabelText = addTextObject(this.scene, 6, 145, i18next.t("starterSelectUiHandler:nature"), TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize }); this.pokemonNatureLabelText.setOrigin(0, 0); this.pokemonNatureLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonNatureLabelText); - this.pokemonNatureText = addBBCodeTextObject(this.scene, 31, 145, '', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonNatureText = addBBCodeTextObject(this.scene, starterInfoXPosition, 145, '', TextStyle.SUMMARY_ALT, { fontSize: starterInfoTextSize }); this.pokemonNatureText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonNatureText); @@ -556,8 +590,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler { let instructionTextSize = '42px'; // The font size should be set per language - const currentLanguage = i18next.language; + // currentLanguage is already defined in the previous code block switch (currentLanguage) { + case 'de': + instructionTextSize = '35px'; + break; case 'en': instructionTextSize = '42px'; break; @@ -567,12 +604,12 @@ export default class StarterSelectUiHandler extends MessageUiHandler { case 'fr': instructionTextSize = '42px'; break; - case 'de': - instructionTextSize = '35px'; - break; case 'it': instructionTextSize = '38px'; break; + case 'pt_BR': + instructionTextSize = '38px'; + break; case 'zh_CN': instructionTextSize = '42px'; break; @@ -1260,15 +1297,17 @@ export default class StarterSelectUiHandler extends MessageUiHandler { updateGenOptions(): void { let text = ''; for (let g = this.genScrollCursor; g <= this.genScrollCursor + 2; g++) { - let optionText = gens[g]; - if (g === this.genScrollCursor && this.genScrollCursor) - optionText = '↑'; - else if (g === this.genScrollCursor + 2 && this.genScrollCursor < gens.length - 3) - optionText = '↓' - text += `${text ? '\n' : ''}${optionText}`; + let optionText = ''; + if (g === this.genScrollCursor && this.genScrollCursor) + optionText = '↑'; + else if (g === this.genScrollCursor + 2 && this.genScrollCursor < gens.length - 3) + optionText = '↓' + else + optionText = i18next.t(`starterSelectUiHandler:gen${g + 1}`); + text += `${text ? '\n' : ''}${optionText}`; } this.genOptionsText.setText(text); - } +} setGenMode(genMode: boolean): boolean { this.genCursorObj.setVisible(genMode && !this.startCursorObj.visible); @@ -1833,4 +1872,4 @@ export default class StarterSelectUiHandler extends MessageUiHandler { icon.setFrame(species.getIconId(female, formIndex, false, variant)); } } -} \ No newline at end of file +}