From cbbb8e972beffef06197f66588af673357c28b80 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Sun, 12 Nov 2023 00:31:40 -0500 Subject: [PATCH] Add achievement system and UI Add achievement system and UI; fix counting invalid inputs in UI handlers for input delay --- package-lock.json | 231 +- public/audio/se/achv.wav | Bin 0 -> 98282 bytes public/images/items.json | 7371 ++++++++++---------- public/images/items.png | Bin 57870 -> 27165 bytes public/images/items/big_nugget.png | Bin 0 -> 275 bytes public/images/items/configuration.tps | 207 + public/images/items/items.bat | 1 + public/images/items/lucky_punch_great.png | Bin 0 -> 468 bytes public/images/items/lucky_punch_master.png | Bin 0 -> 469 bytes public/images/items/lucky_punch_ultra.png | Bin 0 -> 466 bytes public/images/items/nugget.png | Bin 0 -> 220 bytes public/images/items/relic_crown.png | Bin 0 -> 340 bytes public/images/items/relic_gold.png | Bin 0 -> 178 bytes public/images/items/strange_ball.png | Bin 0 -> 885 bytes public/images/items/unknown.png | Bin 0 -> 159 bytes public/images/ui/achv_bar.png | Bin 0 -> 399 bytes public/images/ui/achv_bar_2.png | Bin 0 -> 437 bytes public/images/ui/achv_bar_3.png | Bin 0 -> 433 bytes public/images/ui/achv_bar_4.png | Bin 0 -> 433 bytes src/battle-phases.ts | 23 +- src/battle-scene.ts | 60 +- src/data/move.ts | 20 +- src/debug.js | 7 + src/modifier/modifier-type.ts | 2 +- src/modifier/modifier.ts | 3 + src/pokemon.ts | 5 + src/system/achv.ts | 126 + src/system/game-data.ts | 20 +- src/ui/achv-bar.ts | 96 + src/ui/achvs-ui-handler.ts | 210 + src/ui/ball-ui-handler.ts | 4 +- src/ui/battle-message-ui-handler.ts | 3 +- src/ui/biome-select-ui-handler.ts | 4 +- src/ui/command-ui-handler.ts | 4 +- src/ui/evolution-scene-handler.ts | 4 +- src/ui/fight-ui-handler.ts | 4 +- src/ui/game-mode-select-ui-handler.ts | 4 +- src/ui/menu-ui-handler.ts | 124 + src/ui/modifier-select-ui-handler.ts | 6 +- src/ui/option-select-ui-handler.ts | 4 +- src/ui/party-ui-handler.ts | 39 +- src/ui/settings-ui-handler.ts | 8 +- src/ui/starter-select-ui-handler.ts | 13 +- src/ui/summary-ui-handler.ts | 13 +- src/ui/target-select-ui-handler.ts | 4 +- src/ui/text.ts | 2 +- src/ui/ui.ts | 54 +- src/ui/uiHandler.ts | 2 +- src/utils.ts | 6 +- 49 files changed, 4920 insertions(+), 3764 deletions(-) create mode 100644 public/audio/se/achv.wav create mode 100644 public/images/items/big_nugget.png create mode 100644 public/images/items/configuration.tps create mode 100644 public/images/items/items.bat create mode 100644 public/images/items/lucky_punch_great.png create mode 100644 public/images/items/lucky_punch_master.png create mode 100644 public/images/items/lucky_punch_ultra.png create mode 100644 public/images/items/nugget.png create mode 100644 public/images/items/relic_crown.png create mode 100644 public/images/items/relic_gold.png create mode 100644 public/images/items/strange_ball.png create mode 100644 public/images/items/unknown.png create mode 100644 public/images/ui/achv_bar.png create mode 100644 public/images/ui/achv_bar_2.png create mode 100644 public/images/ui/achv_bar_3.png create mode 100644 public/images/ui/achv_bar_4.png create mode 100644 src/system/achv.ts create mode 100644 src/ui/achv-bar.ts create mode 100644 src/ui/achvs-ui-handler.ts create mode 100644 src/ui/menu-ui-handler.ts diff --git a/package-lock.json b/package-lock.json index 57c1c8951..d7513e16d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "pokemon-rogue-battle", "version": "0.0.1", "dependencies": { - "phaser": "^3.61.0-beta.2", + "phaser": "^3.70.0", "phaser3-rex-plugins": "^1.1.84" }, "devDependencies": { @@ -29,9 +29,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -407,9 +407,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -439,21 +439,21 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -475,9 +475,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@koa/cors": { @@ -527,6 +527,12 @@ "node": ">= 8" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -541,9 +547,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.1.tgz", + "integrity": "sha512-IJTNCJMRHfRfb8un89z1QtS0x890C2QUrUxFMK8zy+RizcId6mfnqOf68Bu9YkDgpLYuvCm6aYbwDatXVZPjMQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -645,13 +651,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -769,11 +776,11 @@ "dev": true }, "node_modules/cross-fetch": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz", - "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dependencies": { - "node-fetch": "^2.6.11" + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { @@ -819,6 +826,20 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -927,18 +948,19 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1128,12 +1150,12 @@ } }, "node_modules/flat-cache": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", - "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", "dev": true, "dependencies": { - "flatted": "^3.2.7", + "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, @@ -1177,21 +1199,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1242,9 +1267,9 @@ } }, "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1256,6 +1281,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -1282,18 +1319,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1303,6 +1328,18 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", @@ -1342,6 +1379,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/http-assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", @@ -1403,11 +1452,11 @@ } }, "node_modules/i18next-http-backend": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.2.2.tgz", - "integrity": "sha512-mJu4ZqzDtBiU3O4GV9AbK5ekEqoDMdMnCl3pkdXmb5b8yoIH//u8FsmIe6C5qXb3teZu+j6VMi20tjUgzeABiw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.3.0.tgz", + "integrity": "sha512-9m34IcWdS3r43cgq/7O5IsDxTvSQ7pePwk2eQIH5q6Em6OjDCsSjboRWg2jqVdeIoCtHwzTN/byDHPStMsKsPQ==", "dependencies": { - "cross-fetch": "3.1.6" + "cross-fetch": "4.0.0" } }, "node_modules/iconv-lite": { @@ -1457,9 +1506,9 @@ } }, "node_modules/inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -1583,9 +1632,9 @@ } }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" @@ -1662,6 +1711,7 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/koa-router/-/koa-router-10.1.1.tgz", "integrity": "sha512-z/OzxVjf5NyuNO3t9nJpx7e1oR3FSBAauiwXtMQu4ppcnuNZzTaQ4p21P8A6r2Es8uJJM339oc4oVW+qX7SqnQ==", + "deprecated": "**IMPORTANT 10x+ PERFORMANCE UPGRADE**: Please upgrade to v12.0.1+ as we have fixed an issue with debuglog causing 10x slower router benchmark performance, see https://github.com/koajs/router/pull/173", "dev": true, "dependencies": { "debug": "^4.1.1", @@ -1839,9 +1889,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1981,11 +2031,11 @@ "dev": true }, "node_modules/phaser": { - "version": "3.61.0-beta.2", - "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.61.0-beta.2.tgz", - "integrity": "sha512-nXEGqIORZe1ygijKi8iqqA2OHT5l4DVkVxc1HWhApg0lhXzH/p0ErHecS1j9UGB75G3beF+qd9AzBkgwNJ9QsQ==", + "version": "3.70.0", + "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.70.0.tgz", + "integrity": "sha512-2g+gh+Jp9f/Ho9FOXOYbIJMGf3UZXyMbW2iLScFaLQw11e/LqVyxj/YmaBauWbHabeTnZjiWkPklDnxhesMH0g==", "dependencies": { - "eventemitter3": "^5.0.0" + "eventemitter3": "^5.0.1" } }, "node_modules/phaser3-rex-plugins": { @@ -2239,6 +2289,21 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -2516,9 +2581,9 @@ } }, "node_modules/vite-plugin-fs": { - "version": "1.0.0-beta.6", - "resolved": "https://registry.npmjs.org/vite-plugin-fs/-/vite-plugin-fs-1.0.0-beta.6.tgz", - "integrity": "sha512-WKvlZ7S+5wdJp0Mut5C15rH89iJxL4xUHkjBvKfhPPKWKBIQBPvFA1jM9Y64Ns2kF/92TI9i8+DRAgHklKgPBw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-fs/-/vite-plugin-fs-1.0.0.tgz", + "integrity": "sha512-iVWZaPNDyAXxRgLg2dM0M3j3eQT0vFPpvjeCoVdWa+S9Kx1DFmOkeBBnTSez7D335IfwrlKbThxx9Gwh5cF3YA==", "dev": true, "dependencies": { "@koa/cors": "^3.4.3", diff --git a/public/audio/se/achv.wav b/public/audio/se/achv.wav new file mode 100644 index 0000000000000000000000000000000000000000..a818f5eaccb94ada677b5f3fd3411a864703fcdc GIT binary patch literal 98282 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 G;Qs*GsVkxY literal 0 HcmV?d00001 diff --git a/public/images/items.json b/public/images/items.json index bafd20496..4f72ae6ec 100644 --- a/public/images/items.json +++ b/public/images/items.json @@ -4,1693 +4,13 @@ "image": "items.png", "format": "RGBA8888", "size": { - "w": 289, - "h": 289 + "w": 296, + "h": 296 }, "scale": 1, "frames": [ { - "filename": "ability_capsule", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 9, - "w": 24, - "h": 14 - }, - "frame": { - "x": 0, - "y": 0, - "w": 24, - "h": 14 - } - }, - { - "filename": "prism_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 8, - "w": 15, - "h": 15 - }, - "frame": { - "x": 24, - "y": 0, - "w": 15, - "h": 15 - } - }, - { - "filename": "silver_powder", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 11, - "w": 24, - "h": 15 - }, - "frame": { - "x": 39, - "y": 0, - "w": 24, - "h": 15 - } - }, - { - "filename": "black_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 63, - "y": 0, - "w": 23, - "h": 17 - } - }, - { - "filename": "everstone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 17 - }, - "frame": { - "x": 86, - "y": 0, - "w": 20, - "h": 17 - } - }, - { - "filename": "revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 10, - "y": 8, - "w": 12, - "h": 17 - }, - "frame": { - "x": 106, - "y": 0, - "w": 12, - "h": 17 - } - }, - { - "filename": "wise_glasses", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 23, - "h": 17 - }, - "frame": { - "x": 118, - "y": 0, - "w": 23, - "h": 17 - } - }, - { - "filename": "choice_specs", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 8, - "w": 24, - "h": 18 - }, - "frame": { - "x": 141, - "y": 0, - "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": 165, - "y": 0, - "w": 24, - "h": 18 - } - }, - { - "filename": "wl_ability_urge", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 189, - "y": 0, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_antidote", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 209, - "y": 0, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_awakening", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 229, - "y": 0, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_burn_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 249, - "y": 0, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_custom_confusion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 269, - "y": 0, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_custom_ohko", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 0, - "y": 14, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_custom_super_effective", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 20, - "y": 15, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 40, - "y": 15, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 60, - "y": 17, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_full_restore", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 80, - "y": 17, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_guard_spec", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 100, - "y": 17, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_hyper_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 120, - "y": 17, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_ice_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 140, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_item_drop", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 160, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_item_urge", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 180, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_max_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 200, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_max_revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 220, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_paralyze_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 240, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 260, - "y": 18, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_reset_urge", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 0, - "y": 32, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 20, - "y": 33, - "w": 20, - "h": 18 - } - }, - { - "filename": "wl_super_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 8, - "w": 20, - "h": 18 - }, - "frame": { - "x": 40, - "y": 33, - "w": 20, - "h": 18 - } - }, - { - "filename": "big_mushroom", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 19 - }, - "frame": { - "x": 60, - "y": 35, - "w": 19, - "h": 19 - } - }, - { - "filename": "dubious_disc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 79, - "y": 35, - "w": 22, - "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": 101, - "y": 35, - "w": 20, - "h": 19 - } - }, - { - "filename": "miracle_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 19, - "h": 19 - }, - "frame": { - "x": 121, - "y": 35, - "w": 19, - "h": 19 - } - }, - { - "filename": "oval_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 7, - "w": 18, - "h": 19 - }, - "frame": { - "x": 140, - "y": 36, - "w": 18, - "h": 19 - } - }, - { - "filename": "razor_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 7, - "w": 20, - "h": 19 - }, - "frame": { - "x": 158, - "y": 36, - "w": 20, - "h": 19 - } - }, - { - "filename": "upgrade", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 22, - "h": 19 - }, - "frame": { - "x": 178, - "y": 36, - "w": 22, - "h": 19 - } - }, - { - "filename": "apicot_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 200, - "y": 36, - "w": 19, - "h": 20 - } - }, - { - "filename": "binding_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 23, - "h": 20 - }, - "frame": { - "x": 219, - "y": 36, - "w": 23, - "h": 20 - } - }, - { - "filename": "candy_jar", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 19, - "h": 20 - }, - "frame": { - "x": 242, - "y": 36, - "w": 19, - "h": 20 - } - }, - { - "filename": "deep_sea_scale", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 20 - }, - "frame": { - "x": 261, - "y": 36, - "w": 22, - "h": 20 - } - }, - { - "filename": "gb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 0, - "y": 50, - "w": 20, - "h": 20 - } - }, - { - "filename": "golden_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 20, - "y": 51, - "w": 17, - "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": 37, - "y": 51, - "w": 19, - "h": 20 - } - }, - { - "filename": "lucky_egg", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 6, - "w": 17, - "h": 20 - }, - "frame": { - "x": 56, - "y": 54, - "w": 17, - "h": 20 - } - }, - { - "filename": "magnet", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 73, - "y": 54, - "w": 20, - "h": 20 - } - }, - { - "filename": "mb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 93, - "y": 54, - "w": 20, - "h": 20 - } - }, - { - "filename": "pb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 113, - "y": 54, - "w": 20, - "h": 20 - } - }, - { - "filename": "pb_gold", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 133, - "y": 55, - "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": 153, - "y": 55, - "w": 18, - "h": 20 - } - }, - { - "filename": "reviver_seed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 8, - "w": 23, - "h": 20 - }, - "frame": { - "x": 171, - "y": 55, - "w": 23, - "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": 194, - "y": 56, - "w": 24, - "h": 20 - } - }, - { - "filename": "shell_bell", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 7, - "w": 23, - "h": 20 - }, - "frame": { - "x": 218, - "y": 56, - "w": 23, - "h": 20 - } - }, - { - "filename": "soft_sand", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 7, - "w": 24, - "h": 20 - }, - "frame": { - "x": 241, - "y": 56, - "w": 24, - "h": 20 - } - }, - { - "filename": "ub", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 20 - }, - "frame": { - "x": 265, - "y": 56, - "w": 20, - "h": 20 - } - }, - { - "filename": "dawn_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 20, - "h": 21 - }, - "frame": { - "x": 0, - "y": 70, - "w": 20, - "h": 21 - } - }, - { - "filename": "amulet_coin", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 23, - "h": 21 - }, - "frame": { - "x": 20, - "y": 71, - "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": 43, - "y": 74, - "w": 22, - "h": 21 - } - }, - { - "filename": "dusk_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 65, - "y": 74, - "w": 21, - "h": 21 - } - }, - { - "filename": "liechi_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 22, - "h": 21 - }, - "frame": { - "x": 86, - "y": 74, - "w": 22, - "h": 21 - } - }, - { - "filename": "moon_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 6, - "w": 23, - "h": 21 - }, - "frame": { - "x": 108, - "y": 74, - "w": 23, - "h": 21 - } - }, - { - "filename": "poison_barb", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 131, - "y": 75, - "w": 21, - "h": 21 - } - }, - { - "filename": "shiny_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 152, - "y": 75, - "w": 21, - "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": 173, - "y": 75, - "w": 19, - "h": 21 - } - }, - { - "filename": "zoom_lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 6, - "w": 21, - "h": 21 - }, - "frame": { - "x": 192, - "y": 76, - "w": 21, - "h": 21 - } - }, - { - "filename": "charcoal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 213, - "y": 76, - "w": 22, - "h": 22 - } - }, - { - "filename": "dire_hit", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 235, - "y": 76, - "w": 22, - "h": 22 - } - }, - { - "filename": "dna_splicers", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 257, - "y": 76, - "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": 0, - "y": 91, - "w": 15, - "h": 22 - } - }, - { - "filename": "electirizer", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 15, - "y": 92, - "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": 37, - "y": 95, - "w": 22, - "h": 22 - } - }, - { - "filename": "exp_balance", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 59, - "y": 95, - "w": 24, - "h": 22 - } - }, - { - "filename": "exp_share", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 22 - }, - "frame": { - "x": 83, - "y": 95, - "w": 24, - "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": 107, - "y": 95, - "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": 129, - "y": 96, - "w": 22, - "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": 151, - "y": 96, - "w": 23, - "h": 22 - } - }, - { - "filename": "metronome", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 5, - "w": 17, - "h": 22 - }, - "frame": { - "x": 174, - "y": 96, - "w": 17, - "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": 191, - "y": 97, - "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": 213, - "y": 98, - "w": 22, - "h": 22 - } - }, - { - "filename": "map", + "filename": "linking_cord", "rotated": false, "trimmed": true, "sourceSize": { @@ -1699,1905 +19,15 @@ }, "spriteSourceSize": { "x": 3, - "y": 5, + "y": 3, "w": 27, - "h": 22 + "h": 26 }, "frame": { - "x": 235, - "y": 98, + "x": 0, + "y": 0, "w": 27, - "h": 22 - } - }, - { - "filename": "metal_coat", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 19, - "h": 22 - }, - "frame": { - "x": 262, - "y": 98, - "w": 19, - "h": 22 - } - }, - { - "filename": "full_heal", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 9, - "y": 4, - "w": 15, - "h": 23 - }, - "frame": { - "x": 0, - "y": 113, - "w": 15, - "h": 23 - } - }, - { - "filename": "mini_black_hole", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 15, - "y": 114, - "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": 37, - "y": 117, - "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": 59, - "y": 117, - "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": 81, - "y": 117, - "w": 20, - "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": 101, - "y": 117, - "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": 123, - "y": 118, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_bug", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 145, - "y": 118, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_dark", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 167, - "y": 118, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_dragon", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 189, - "y": 119, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_electric", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 211, - "y": 120, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_fairy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 233, - "y": 120, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_fighting", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 255, - "y": 120, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_fire", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 0, - "y": 136, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_flying", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 22, - "y": 139, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_ghost", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 44, - "y": 139, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_grass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 66, - "y": 139, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_ground", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 88, - "y": 139, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 110, - "y": 140, - "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": 132, - "y": 140, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_poison", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 154, - "y": 140, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_psychic", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 176, - "y": 141, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 198, - "y": 142, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_steel", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 220, - "y": 142, - "w": 22, - "h": 22 - } - }, - { - "filename": "tm_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 242, - "y": 142, - "w": 22, - "h": 22 - } - }, - { - "filename": "water_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 264, - "y": 142, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_accuracy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 0, - "y": 158, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_attack", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 22, - "y": 161, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_defense", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 44, - "y": 161, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_sp_atk", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 66, - "y": 161, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_sp_def", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 88, - "y": 161, - "w": 22, - "h": 22 - } - }, - { - "filename": "x_speed", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 22 - }, - "frame": { - "x": 110, - "y": 162, - "w": 22, - "h": 22 - } - }, - { - "filename": "berry_pouch", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 132, - "y": 162, - "w": 23, - "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": 155, - "y": 162, - "w": 21, - "h": 23 - } - }, - { - "filename": "black_belt", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 176, - "y": 163, - "w": 22, - "h": 23 - } - }, - { - "filename": "clefairy_doll", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 198, - "y": 164, - "w": 24, - "h": 23 - } - }, - { - "filename": "coin_case", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 222, - "y": 164, - "w": 24, - "h": 23 - } - }, - { - "filename": "expert_belt", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 23 - }, - "frame": { - "x": 246, - "y": 164, - "w": 24, - "h": 23 - } - }, - { - "filename": "hyper_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 270, - "y": 164, - "w": 17, - "h": 23 - } - }, - { - "filename": "fire_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 0, - "y": 180, - "w": 22, - "h": 23 - } - }, - { - "filename": "focus_sash", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 23 - }, - "frame": { - "x": 22, - "y": 183, - "w": 22, - "h": 23 - } - }, - { - "filename": "lansat_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 23 - }, - "frame": { - "x": 44, - "y": 183, - "w": 21, - "h": 23 - } - }, - { - "filename": "leaf_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 21, - "h": 23 - }, - "frame": { - "x": 65, - "y": 183, - "w": 21, - "h": 23 - } - }, - { - "filename": "mystic_water", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 5, - "w": 20, - "h": 23 - }, - "frame": { - "x": 86, - "y": 183, - "w": 20, - "h": 23 - } - }, - { - "filename": "never_melt_ice", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 106, - "y": 184, - "w": 22, - "h": 23 - } - }, - { - "filename": "petaya_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 5, - "w": 22, - "h": 23 - }, - "frame": { - "x": 128, - "y": 185, - "w": 22, - "h": 23 - } - }, - { - "filename": "potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 5, - "w": 17, - "h": 23 - }, - "frame": { - "x": 150, - "y": 185, - "w": 17, - "h": 23 - } - }, - { - "filename": "rare_candy", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 167, - "y": 186, - "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": 190, - "y": 187, - "w": 23, - "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": 213, - "y": 187, - "w": 22, - "h": 23 - } - }, - { - "filename": "scope-lens", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 235, - "y": 187, - "w": 24, - "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": 259, - "y": 187, - "w": 21, - "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": 0, - "y": 203, - "w": 17, - "h": 23 - } - }, - { - "filename": "stick", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 23, - "h": 23 - }, - "frame": { - "x": 17, - "y": 206, - "w": 23, - "h": 23 - } - }, - { - "filename": "twisted_spoon", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 5, - "w": 24, - "h": 23 - }, - "frame": { - "x": 40, - "y": 206, - "w": 24, - "h": 23 - } - }, - { - "filename": "big_root", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 64, - "y": 206, - "w": 23, - "h": 24 - } - }, - { - "filename": "calcium", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 87, - "y": 206, - "w": 16, - "h": 24 - } - }, - { - "filename": "carbos", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 103, - "y": 207, - "w": 16, - "h": 24 - } - }, - { - "filename": "catching_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 119, - "y": 208, - "w": 21, - "h": 24 - } - }, - { - "filename": "choice_scarf", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 140, - "y": 208, - "w": 24, - "h": 24 - } - }, - { - "filename": "elixir", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 164, - "y": 209, - "w": 18, - "h": 24 - } - }, - { - "filename": "ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 182, - "y": 210, - "w": 18, - "h": 24 - } - }, - { - "filename": "focus_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 200, - "y": 210, - "w": 24, - "h": 24 - } - }, - { - "filename": "full_restore", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 224, - "y": 210, - "w": 18, - "h": 24 - } - }, - { - "filename": "golden_punch", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 242, - "y": 210, - "w": 24, - "h": 24 - } - }, - { - "filename": "hp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 266, - "y": 210, - "w": 16, - "h": 24 - } - }, - { - "filename": "iron", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 0, - "y": 226, - "w": 16, - "h": 24 - } - }, - { - "filename": "grip_claw", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 16, - "y": 229, - "w": 24, - "h": 24 - } - }, - { - "filename": "kings_rock", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 40, - "y": 229, - "w": 23, - "h": 24 - } - }, - { - "filename": "lucky_punch", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 63, - "y": 230, - "w": 24, - "h": 24 - } - }, - { - "filename": "pp_max", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 87, - "y": 230, - "w": 16, - "h": 24 - } - }, - { - "filename": "pp_up", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 103, - "y": 231, - "w": 16, - "h": 24 - } - }, - { - "filename": "lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 119, - "y": 232, - "w": 17, - "h": 24 - } - }, - { - "filename": "max_elixir", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 136, - "y": 232, - "w": 18, - "h": 24 - } - }, - { - "filename": "max_ether", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 154, - "y": 233, - "w": 18, - "h": 24 - } - }, - { - "filename": "max_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 172, - "y": 234, - "w": 17, - "h": 24 - } - }, - { - "filename": "max_potion", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 7, - "y": 4, - "w": 18, - "h": 24 - }, - "frame": { - "x": 189, - "y": 234, - "w": 18, - "h": 24 - } - }, - { - "filename": "max_revive", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 5, - "y": 4, - "w": 22, - "h": 24 - }, - "frame": { - "x": 207, - "y": 234, - "w": 22, - "h": 24 - } - }, - { - "filename": "muscle_band", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 229, - "y": 234, - "w": 24, - "h": 24 - } - }, - { - "filename": "oval_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 253, - "y": 234, - "w": 21, - "h": 24 - } - }, - { - "filename": "protein", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 0, - "y": 250, - "w": 16, - "h": 24 - } - }, - { - "filename": "reveal_glass", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 23, - "h": 24 - }, - "frame": { - "x": 16, - "y": 253, - "w": 23, - "h": 24 - } - }, - { - "filename": "salac_berry", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 39, - "y": 253, - "w": 24, - "h": 24 - } - }, - { - "filename": "scanner", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 63, - "y": 254, - "w": 24, - "h": 24 - } - }, - { - "filename": "zinc", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 16, - "h": 24 - }, - "frame": { - "x": 87, - "y": 254, - "w": 16, - "h": 24 - } - }, - { - "filename": "shiny_charm", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 6, - "y": 4, - "w": 21, - "h": 24 - }, - "frame": { - "x": 103, - "y": 256, - "w": 21, - "h": 24 - } - }, - { - "filename": "silk_scarf", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 124, - "y": 256, - "w": 24, - "h": 24 - } - }, - { - "filename": "sun_stone", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 4, - "y": 4, - "w": 24, - "h": 24 - }, - "frame": { - "x": 148, - "y": 257, - "w": 24, - "h": 24 - } - }, - { - "filename": "super_lure", - "rotated": false, - "trimmed": true, - "sourceSize": { - "w": 32, - "h": 32 - }, - "spriteSourceSize": { - "x": 8, - "y": 4, - "w": 17, - "h": 24 - }, - "frame": { - "x": 172, - "y": 258, - "w": 17, - "h": 24 + "h": 26 } }, { @@ -3615,14 +45,14 @@ "h": 26 }, "frame": { - "x": 189, - "y": 258, + "x": 0, + "y": 26, "w": 23, "h": 26 } }, { - "filename": "linking_cord", + "filename": "map", "rotated": false, "trimmed": true, "sourceSize": { @@ -3631,15 +61,15 @@ }, "spriteSourceSize": { "x": 3, - "y": 3, + "y": 5, "w": 27, - "h": 26 + "h": 22 }, "frame": { - "x": 212, - "y": 258, + "x": 27, + "y": 0, "w": 27, - "h": 26 + "h": 22 } }, { @@ -3657,8 +87,8 @@ "h": 31 }, "frame": { - "x": 239, - "y": 258, + "x": 0, + "y": 52, "w": 17, "h": 31 } @@ -3678,11 +108,3770 @@ "h": 31 }, "frame": { - "x": 256, - "y": 258, + "x": 0, + "y": 83, "w": 17, "h": 31 } + }, + { + "filename": "choice_scarf", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 54, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "focus_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 78, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "golden_punch", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 102, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "grip_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 126, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "lucky_punch", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 150, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "lucky_punch_great", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 174, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "lucky_punch_master", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 198, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "lucky_punch_ultra", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 222, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "muscle_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 246, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "salac_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 270, + "y": 0, + "w": 24, + "h": 24 + } + }, + { + "filename": "big_root", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 0, + "y": 114, + "w": 23, + "h": 24 + } + }, + { + "filename": "kings_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 0, + "y": 138, + "w": 23, + "h": 24 + } + }, + { + "filename": "reveal_glass", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 23, + "h": 24 + }, + "frame": { + "x": 0, + "y": 162, + "w": 23, + "h": 24 + } + }, + { + "filename": "scanner", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 0, + "y": 186, + "w": 24, + "h": 24 + } + }, + { + "filename": "silk_scarf", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 0, + "y": 210, + "w": 24, + "h": 24 + } + }, + { + "filename": "sun_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 24 + }, + "frame": { + "x": 0, + "y": 234, + "w": 24, + "h": 24 + } + }, + { + "filename": "clefairy_doll", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 0, + "y": 258, + "w": 24, + "h": 23 + } + }, + { + "filename": "silver_powder", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 11, + "w": 24, + "h": 15 + }, + "frame": { + "x": 0, + "y": 281, + "w": 24, + "h": 15 + } + }, + { + "filename": "calcium", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 17, + "y": 52, + "w": 16, + "h": 24 + } + }, + { + "filename": "carbos", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 17, + "y": 76, + "w": 16, + "h": 24 + } + }, + { + "filename": "ability_capsule", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 9, + "w": 24, + "h": 14 + }, + "frame": { + "x": 17, + "y": 100, + "w": 24, + "h": 14 + } + }, + { + "filename": "catching_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 23, + "y": 114, + "w": 21, + "h": 24 + } + }, + { + "filename": "max_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 24 + }, + "frame": { + "x": 23, + "y": 138, + "w": 22, + "h": 24 + } + }, + { + "filename": "oval_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 23, + "y": 162, + "w": 21, + "h": 24 + } + }, + { + "filename": "shiny_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 4, + "w": 21, + "h": 24 + }, + "frame": { + "x": 24, + "y": 186, + "w": 21, + "h": 24 + } + }, + { + "filename": "berry_pouch", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 24, + "y": 210, + "w": 23, + "h": 23 + } + }, + { + "filename": "coin_case", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 24, + "y": 233, + "w": 24, + "h": 23 + } + }, + { + "filename": "expert_belt", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 4, + "w": 24, + "h": 23 + }, + "frame": { + "x": 24, + "y": 256, + "w": 24, + "h": 23 + } + }, + { + "filename": "black_glasses", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 24, + "y": 279, + "w": 23, + "h": 17 + } + }, + { + "filename": "wise_glasses", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 23, + "h": 17 + }, + "frame": { + "x": 47, + "y": 279, + "w": 23, + "h": 17 + } + }, + { + "filename": "choice_specs", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 8, + "w": 24, + "h": 18 + }, + "frame": { + "x": 27, + "y": 22, + "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": 51, + "y": 24, + "w": 24, + "h": 18 + } + }, + { + "filename": "exp_balance", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 22 + }, + "frame": { + "x": 75, + "y": 24, + "w": 24, + "h": 22 + } + }, + { + "filename": "exp_share", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 22 + }, + "frame": { + "x": 99, + "y": 24, + "w": 24, + "h": 22 + } + }, + { + "filename": "scope-lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 123, + "y": 24, + "w": 24, + "h": 23 + } + }, + { + "filename": "twisted_spoon", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 24, + "h": 23 + }, + "frame": { + "x": 147, + "y": 24, + "w": 24, + "h": 23 + } + }, + { + "filename": "rare_candy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 171, + "y": 24, + "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": 194, + "y": 24, + "w": 23, + "h": 23 + } + }, + { + "filename": "stick", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 5, + "w": 23, + "h": 23 + }, + "frame": { + "x": 217, + "y": 24, + "w": 23, + "h": 23 + } + }, + { + "filename": "black_belt", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 240, + "y": 24, + "w": 22, + "h": 23 + } + }, + { + "filename": "fire_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 262, + "y": 24, + "w": 22, + "h": 23 + } + }, + { + "filename": "revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 10, + "y": 8, + "w": 12, + "h": 17 + }, + "frame": { + "x": 284, + "y": 24, + "w": 12, + "h": 17 + } + }, + { + "filename": "elixir", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 33, + "y": 40, + "w": 18, + "h": 24 + } + }, + { + "filename": "sacred_ash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 51, + "y": 42, + "w": 24, + "h": 20 + } + }, + { + "filename": "ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 33, + "y": 64, + "w": 18, + "h": 24 + } + }, + { + "filename": "focus_sash", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 22, + "h": 23 + }, + "frame": { + "x": 51, + "y": 62, + "w": 22, + "h": 23 + } + }, + { + "filename": "soft_sand", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 24, + "h": 20 + }, + "frame": { + "x": 75, + "y": 46, + "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": 99, + "y": 46, + "w": 23, + "h": 21 + } + }, + { + "filename": "binding_band", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 23, + "h": 20 + }, + "frame": { + "x": 122, + "y": 47, + "w": 23, + "h": 20 + } + }, + { + "filename": "healing_charm", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 23, + "h": 22 + }, + "frame": { + "x": 145, + "y": 47, + "w": 23, + "h": 22 + } + }, + { + "filename": "charcoal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 168, + "y": 47, + "w": 22, + "h": 22 + } + }, + { + "filename": "dire_hit", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 190, + "y": 47, + "w": 22, + "h": 22 + } + }, + { + "filename": "dna_splicers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 212, + "y": 47, + "w": 22, + "h": 22 + } + }, + { + "filename": "electirizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 234, + "y": 47, + "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": 256, + "y": 47, + "w": 22, + "h": 22 + } + }, + { + "filename": "full_restore", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 278, + "y": 47, + "w": 18, + "h": 24 + } + }, + { + "filename": "moon_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 6, + "w": 23, + "h": 21 + }, + "frame": { + "x": 73, + "y": 66, + "w": 23, + "h": 21 + } + }, + { + "filename": "reviver_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 8, + "w": 23, + "h": 20 + }, + "frame": { + "x": 96, + "y": 67, + "w": 23, + "h": 20 + } + }, + { + "filename": "shell_bell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 23, + "h": 20 + }, + "frame": { + "x": 119, + "y": 67, + "w": 23, + "h": 20 + } + }, + { + "filename": "relic_crown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 23, + "h": 18 + }, + "frame": { + "x": 142, + "y": 69, + "w": 23, + "h": 18 + } + }, + { + "filename": "deep_sea_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 20 + }, + "frame": { + "x": 165, + "y": 69, + "w": 22, + "h": 20 + } + }, + { + "filename": "deep_sea_tooth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 187, + "y": 69, + "w": 22, + "h": 21 + } + }, + { + "filename": "ganlon_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 209, + "y": 69, + "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": 231, + "y": 69, + "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": 253, + "y": 69, + "w": 22, + "h": 22 + } + }, + { + "filename": "dragon_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 275, + "y": 71, + "w": 21, + "h": 23 + } + }, + { + "filename": "dubious_disc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 51, + "y": 85, + "w": 22, + "h": 19 + } + }, + { + "filename": "liechi_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 22, + "h": 21 + }, + "frame": { + "x": 73, + "y": 87, + "w": 22, + "h": 21 + } + }, + { + "filename": "magmarizer", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 95, + "y": 87, + "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": 117, + "y": 87, + "w": 22, + "h": 22 + } + }, + { + "filename": "never_melt_ice", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 139, + "y": 87, + "w": 22, + "h": 23 + } + }, + { + "filename": "petaya_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 161, + "y": 89, + "w": 22, + "h": 23 + } + }, + { + "filename": "protector", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 183, + "y": 90, + "w": 22, + "h": 22 + } + }, + { + "filename": "reaper_cloth", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 23 + }, + "frame": { + "x": 205, + "y": 91, + "w": 22, + "h": 23 + } + }, + { + "filename": "lansat_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 4, + "w": 21, + "h": 23 + }, + "frame": { + "x": 227, + "y": 91, + "w": 21, + "h": 23 + } + }, + { + "filename": "leaf_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 248, + "y": 91, + "w": 21, + "h": 23 + } + }, + { + "filename": "shed_shell", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 269, + "y": 94, + "w": 22, + "h": 22 + } + }, + { + "filename": "sharp_beak", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 21, + "h": 23 + }, + "frame": { + "x": 44, + "y": 104, + "w": 21, + "h": 23 + } + }, + { + "filename": "starf_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 65, + "y": 108, + "w": 22, + "h": 22 + } + }, + { + "filename": "mystic_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 23 + }, + "frame": { + "x": 45, + "y": 127, + "w": 20, + "h": 23 + } + }, + { + "filename": "thunder_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 65, + "y": 130, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_bug", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 87, + "y": 109, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_dark", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 109, + "y": 109, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_dragon", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 87, + "y": 131, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_electric", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 109, + "y": 131, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_fairy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 131, + "y": 110, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_fighting", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 131, + "y": 132, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_fire", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 153, + "y": 112, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_flying", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 175, + "y": 112, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_ghost", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 153, + "y": 134, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_grass", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 175, + "y": 134, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_ground", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 197, + "y": 114, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_ice", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 219, + "y": 114, + "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": 241, + "y": 114, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_poison", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 197, + "y": 136, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_psychic", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 219, + "y": 136, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_rock", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 241, + "y": 136, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_steel", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 263, + "y": 116, + "w": 22, + "h": 22 + } + }, + { + "filename": "tm_water", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 263, + "y": 138, + "w": 22, + "h": 22 + } + }, + { + "filename": "big_nugget", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 45, + "y": 150, + "w": 20, + "h": 20 + } + }, + { + "filename": "upgrade", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 7, + "w": 22, + "h": 19 + }, + "frame": { + "x": 65, + "y": 152, + "w": 22, + "h": 19 + } + }, + { + "filename": "water_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 87, + "y": 153, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_accuracy", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 109, + "y": 153, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_attack", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 131, + "y": 154, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_defense", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 153, + "y": 156, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_atk", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 175, + "y": 156, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_sp_def", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 197, + "y": 158, + "w": 22, + "h": 22 + } + }, + { + "filename": "x_speed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 5, + "w": 22, + "h": 22 + }, + "frame": { + "x": 219, + "y": 158, + "w": 22, + "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": 241, + "y": 158, + "w": 21, + "h": 21 + } + }, + { + "filename": "poison_barb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 262, + "y": 160, + "w": 21, + "h": 21 + } + }, + { + "filename": "nugget", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 8, + "w": 16, + "h": 16 + }, + "frame": { + "x": 44, + "y": 170, + "w": 16, + "h": 16 + } + }, + { + "filename": "hp_up", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 45, + "y": 186, + "w": 16, + "h": 24 + } + }, + { + "filename": "full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 4, + "w": 15, + "h": 23 + }, + "frame": { + "x": 47, + "y": 210, + "w": 15, + "h": 23 + } + }, + { + "filename": "iron", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 48, + "y": 233, + "w": 16, + "h": 24 + } + }, + { + "filename": "sitrus_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 20, + "h": 22 + }, + "frame": { + "x": 48, + "y": 257, + "w": 20, + "h": 22 + } + }, + { + "filename": "prism_scale", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 8, + "w": 15, + "h": 15 + }, + "frame": { + "x": 60, + "y": 171, + "w": 15, + "h": 15 + } + }, + { + "filename": "lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 61, + "y": 186, + "w": 17, + "h": 24 + } + }, + { + "filename": "hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 62, + "y": 210, + "w": 17, + "h": 23 + } + }, + { + "filename": "max_elixir", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 64, + "y": 233, + "w": 18, + "h": 24 + } + }, + { + "filename": "leftovers", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 15, + "h": 22 + }, + "frame": { + "x": 68, + "y": 257, + "w": 15, + "h": 22 + } + }, + { + "filename": "everstone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 17 + }, + "frame": { + "x": 70, + "y": 279, + "w": 20, + "h": 17 + } + }, + { + "filename": "relic_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 9, + "y": 11, + "w": 15, + "h": 11 + }, + "frame": { + "x": 33, + "y": 88, + "w": 15, + "h": 11 + } + }, + { + "filename": "shiny_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 241, + "y": 179, + "w": 21, + "h": 21 + } + }, + { + "filename": "zoom_lens", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 5, + "y": 6, + "w": 21, + "h": 21 + }, + "frame": { + "x": 262, + "y": 181, + "w": 21, + "h": 21 + } + }, + { + "filename": "max_ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 78, + "y": 175, + "w": 18, + "h": 24 + } + }, + { + "filename": "max_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 4, + "w": 18, + "h": 24 + }, + "frame": { + "x": 96, + "y": 175, + "w": 18, + "h": 24 + } + }, + { + "filename": "max_lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 114, + "y": 175, + "w": 17, + "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": 131, + "y": 176, + "w": 20, + "h": 21 + } + }, + { + "filename": "gb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 151, + "y": 178, + "w": 20, + "h": 20 + } + }, + { + "filename": "magnet", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 171, + "y": 178, + "w": 20, + "h": 20 + } + }, + { + "filename": "lum_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 191, + "y": 180, + "w": 20, + "h": 19 + } + }, + { + "filename": "mb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 211, + "y": 180, + "w": 20, + "h": 20 + } + }, + { + "filename": "metal_coat", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 5, + "w": 19, + "h": 22 + }, + "frame": { + "x": 79, + "y": 199, + "w": 19, + "h": 22 + } + }, + { + "filename": "pb", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 98, + "y": 199, + "w": 20, + "h": 20 + } + }, + { + "filename": "apicot_berry", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 118, + "y": 199, + "w": 19, + "h": 20 + } + }, + { + "filename": "pp_max", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 82, + "y": 221, + "w": 16, + "h": 24 + } + }, + { + "filename": "super_lure", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 17, + "h": 24 + }, + "frame": { + "x": 98, + "y": 219, + "w": 17, + "h": 24 + } + }, + { + "filename": "pb_gold", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 115, + "y": 219, + "w": 20, + "h": 20 + } + }, + { + "filename": "pp_up", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 83, + "y": 245, + "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": 99, + "y": 243, + "w": 16, + "h": 24 + } + }, + { + "filename": "potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 115, + "y": 239, + "w": 17, + "h": 23 + } + }, + { + "filename": "super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 5, + "w": 17, + "h": 23 + }, + "frame": { + "x": 132, + "y": 239, + "w": 17, + "h": 23 + } + }, + { + "filename": "candy_jar", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 135, + "y": 219, + "w": 19, + "h": 20 + } + }, + { + "filename": "spell_tag", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 19, + "h": 21 + }, + "frame": { + "x": 137, + "y": 198, + "w": 19, + "h": 21 + } + }, + { + "filename": "strange_ball", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 156, + "y": 198, + "w": 20, + "h": 20 + } + }, + { + "filename": "unknown", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 149, + "y": 239, + "w": 16, + "h": 24 + } + }, + { + "filename": "golden_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 154, + "y": 219, + "w": 17, + "h": 20 + } + }, + { + "filename": "zinc", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 8, + "y": 4, + "w": 16, + "h": 24 + }, + "frame": { + "x": 165, + "y": 239, + "w": 16, + "h": 24 + } + }, + { + "filename": "razor_claw", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 20, + "h": 19 + }, + "frame": { + "x": 115, + "y": 262, + "w": 20, + "h": 19 + } + }, + { + "filename": "hard_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 20 + }, + "frame": { + "x": 171, + "y": 218, + "w": 19, + "h": 20 + } + }, + { + "filename": "big_mushroom", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 19, + "h": 19 + }, + "frame": { + "x": 176, + "y": 199, + "w": 19, + "h": 19 + } + }, + { + "filename": "metronome", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 17, + "h": 22 + }, + "frame": { + "x": 181, + "y": 238, + "w": 17, + "h": 22 + } + }, + { + "filename": "lucky_egg", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 17, + "h": 20 + }, + "frame": { + "x": 190, + "y": 218, + "w": 17, + "h": 20 + } + }, + { + "filename": "wl_ability_urge", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 195, + "y": 200, + "w": 20, + "h": 18 + } + }, + { + "filename": "miracle_seed", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 7, + "w": 19, + "h": 19 + }, + "frame": { + "x": 215, + "y": 200, + "w": 19, + "h": 19 + } + }, + { + "filename": "ub", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 6, + "w": 20, + "h": 20 + }, + "frame": { + "x": 234, + "y": 200, + "w": 20, + "h": 20 + } + }, + { + "filename": "wl_antidote", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 207, + "y": 219, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_awakening", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 254, + "y": 202, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_burn_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 227, + "y": 220, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_custom_confusion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 247, + "y": 220, + "w": 20, + "h": 18 + } + }, + { + "filename": "razor_fang", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 6, + "w": 18, + "h": 20 + }, + "frame": { + "x": 198, + "y": 238, + "w": 18, + "h": 20 + } + }, + { + "filename": "oval_stone", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 7, + "y": 7, + "w": 18, + "h": 19 + }, + "frame": { + "x": 274, + "y": 202, + "w": 18, + "h": 19 + } + }, + { + "filename": "wl_custom_ohko", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 267, + "y": 221, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_custom_super_effective", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 216, + "y": 238, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_ether", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 236, + "y": 238, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_full_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 256, + "y": 239, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_full_restore", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 276, + "y": 239, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_guard_spec", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 135, + "y": 263, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_hyper_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 155, + "y": 263, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_ice_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 175, + "y": 263, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_item_drop", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 216, + "y": 256, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_item_urge", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 236, + "y": 256, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_max_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 256, + "y": 257, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_max_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 276, + "y": 257, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_paralyze_heal", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 195, + "y": 260, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 195, + "y": 278, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_reset_urge", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 215, + "y": 274, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_revive", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 235, + "y": 274, + "w": 20, + "h": 18 + } + }, + { + "filename": "wl_super_potion", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 6, + "y": 8, + "w": 20, + "h": 18 + }, + "frame": { + "x": 255, + "y": 275, + "w": 20, + "h": 18 + } } ] } @@ -3690,6 +3879,6 @@ "meta": { "app": "https://www.codeandweb.com/texturepacker", "version": "3.0", - "smartupdate": "$TexturePacker:SmartUpdate:9b49f7f217739f557bf29543672e9a10:c521b38070beafb0306fc2e95f5c2bd9:110e074689c9edd2c54833ce2e4d9270$" + "smartupdate": "$TexturePacker:SmartUpdate:d0338141f871fe71806b7f7b2c02804b:ad4003cd9788ebc50f50c9adc54dcbd3:110e074689c9edd2c54833ce2e4d9270$" } } diff --git a/public/images/items.png b/public/images/items.png index 6261f380dc0035c8dccbdca679ef9aaeeab70bad..09326c4ed9474614835554851ab5cb822f24ce27 100644 GIT binary patch literal 27165 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%0Ati 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 Z& + + + fileFormatVersion + 6 + texturePackerVersion + 7.1.0 + autoSDSettings + + + scale + 1 + extension + + spriteFilter + + acceptFractionalValues + + maxTextureSize + + width + -1 + height + -1 + + + + allowRotation + + shapeDebug + + dpi + 72 + dataFormat + phaser + textureFileName + + flipPVR + + pvrQualityLevel + 3 + astcQualityLevel + 2 + basisUniversalQualityLevel + 2 + etc1QualityLevel + 70 + etc2QualityLevel + 70 + dxtCompressionMode + DXT_PERCEPTUAL + ditherType + PngQuantLow + backgroundColor + 0 + libGdx + + filtering + + x + Linear + y + Linear + + + shapePadding + 0 + jpgQuality + 80 + pngOptimizationLevel + 1 + webpQualityLevel + 101 + textureSubPath + + textureFormat + png8 + borderPadding + 0 + maxTextureSize + + width + 2048 + height + 2048 + + fixedTextureSize + + width + -1 + height + -1 + + algorithmSettings + + algorithm + MaxRects + freeSizeMode + Best + sizeConstraints + AnySize + forceSquared + + maxRects + + heuristic + Best + + basic + + sortBy + Best + order + Ascending + + polygon + + alignToGrid + 1 + + + dataFileNames + + json + + name + ../items.json + + + multiPackMode + MultiPackOff + forceIdenticalLayout + + outputFormat + RGBA8888 + alphaHandling + ClearTransparentPixels + contentProtection + + key + + + autoAliasEnabled + + trimSpriteNames + + prependSmartFolderName + + autodetectAnimations + + globalSpriteSettings + + scale + 1 + scaleMode + Smooth + extrude + 0 + trimThreshold + 1 + trimMargin + 1 + trimMode + Trim + tracerTolerance + 200 + heuristicMask + + defaultPivotPoint + 0.5,0.5 + writePivotPoints + + + individualSpriteSettings + + fileLists + + default + + files + + + + ignoreFileList + + replaceList + + ignoredWarnings + + commonDivisorX + 1 + commonDivisorY + 1 + packNormalMaps + + autodetectNormalMaps + + normalMapFilter + + normalMapSuffix + + normalMapSheetFileName + + exporterProperties + + + diff --git a/public/images/items/items.bat b/public/images/items/items.bat new file mode 100644 index 000000000..fca223e3b --- /dev/null +++ b/public/images/items/items.bat @@ -0,0 +1 @@ +cmd /c TexturePacker ./ ./configuration.tps --sheet ../items.png --data ../items.json --replace .png= \ No newline at end of file diff --git a/public/images/items/lucky_punch_great.png b/public/images/items/lucky_punch_great.png new file mode 100644 index 0000000000000000000000000000000000000000..c66df778210849d3123b0c1148a96c8d4c408d06 GIT binary patch literal 468 zcmV;_0W1EAP)F{F{<&2`xiO9;e|vfW0MvVv-%_Errxts@ra$~%a zh)4m(80+rxi~~Q7A(s*W0BVEuJaE&SM5aGH2?a{2pqO0+e0%~IrNT<|_1k8ETqy;u zH9XJ5Xf#Skz)u;_9Zr{S2Y{oO-pXw7JP(fJpwsEVbzLZ>5_d$b35_up`W24q0D;yT zj^hN@08p(~;kquT@nS|!%Jb$c6A>>K3nn5aB4%bLB5t?afo~=gOh|=D$o*?(UJA@~ zoUY46oQPE30%MFN<_mjbukc4J(fc#9HxUOT4;ysb7cxhVz2X~~z9=Jd>eD3v0000< KMNUMnLSTZxlf<_G literal 0 HcmV?d00001 diff --git a/public/images/items/lucky_punch_master.png b/public/images/items/lucky_punch_master.png new file mode 100644 index 0000000000000000000000000000000000000000..d48fdf04bae7811056442f81a0beb2ca0c776d6d GIT binary patch literal 469 zcmV;`0V@89P)}Lj*0>nY zL9b~`r3G4a=v$hv{hIgg?%f@bBgY@ZNP3ZoIQ&j)ZDcM$h+j@0gFluEnDr)T6kA&f zG2+OD*eDeO-`*Y;-&t_yTZt&fkqfa9rj0_9ORLDKa)|y%JJKT?3-CvuRpe`B;NJ?+ z?%XrsZ>_qq38nVcMGd3!Ad>w4^$7qlZ4SLsRZ-)0I-;25QdoqLU!7lg^FT1F4Av46 zDL`v&9Nipy>5LZU=z7{pY3GVB0oK(?qx1g=JY#N+s@ymDSQ(8x3l4R0jwg z$AM{@finQq>vdR`#c6EJ$VoXmxMd<@*L9hQn24B}nTWX4=>(pcOfVr8A|dymnb{MV z={Swc#3~V~>;kQ|A?6EvVyEy&E7AKivNI8XMjkfkrW-Oxj-BEQ%Ge|nj#*{C00000 LNkvXXu0mjf;Dge7 literal 0 HcmV?d00001 diff --git a/public/images/items/lucky_punch_ultra.png b/public/images/items/lucky_punch_ultra.png new file mode 100644 index 0000000000000000000000000000000000000000..aee27600f5c6db6d60f3594a844039ba6220c403 GIT binary patch literal 466 zcmV;@0WJQCP)FZT=!>wXA?xP_; zcM{^PBe%qEHL|z-dI10^J>N-0Wi9zHu_4SGZk9u7}FoX3rsI4R$Qb0#8QEEY^eOhnAgOhnx2bRy3}CYT{LM20-PW@am}&~dsh z6KNuHxeK(`jxk@{6MIECS`&RZBYP8ZF!H!Tx4j`tl-MhN0BnsYOx!$hI{*Lx07*qo IM6N<$f~sE7(f|Me literal 0 HcmV?d00001 diff --git a/public/images/items/nugget.png b/public/images/items/nugget.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d39912349932ef323726a6745bc72fab44ae90 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ#hxyXArXh)PQA$4V8Fv_-K1PH zukRt(y2l*rE}6zCPfGIY5v`xpF`+r&W&8UT{j-7uSPsUYv}Bh5o^T_*A!Y8^20a2IF$aM<@*B#4yIhb9eWC1 UGKSc20G-R=>FVdQ&MBb@0JZa2m;e9( literal 0 HcmV?d00001 diff --git a/public/images/items/relic_crown.png b/public/images/items/relic_crown.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c4552ea3cfaa78c3c46d7776b6020efc6760a5 GIT binary patch literal 340 zcmV-a0jvIrP) zu?>ST6ht!$E2K=BmNF$JB`dH-N=9IXl*~nRNDrO93=y`{`Ae29`~SQ97cjZqYSgGv z<3cn|vzD9}5o+Cy<9bA*{YT%gv8IT8Sw1`9FM=pg^E}UMwg?A++yxv7B&SFK;O}YL z0NS?QfYqVabgLY?PUWaRO9bj&!2Q*21ezV396xsf?$RXzDpogGDqw~Spu>2M8wku6 zfW?vA9dH-Op*C9p#V&$@wKxC?!^zKH-BSUw@Hq^-mHu-84ml(-m-_5C0T3QAt-V7D zaEBmNzSddYM*#vsgbRT{vs{1}@}lljEUK*J^9-<`x;2YM_;u^9AjGfV mSo62favb%~N{t#da^nlb0r?``hUvQi00003NZkch*{2@AQ5orNCvIQ6w z+CqCvt0b_0shZgJKOuIhoqVJWv43WK9Ye@3cZ_)$NlXDx zboyk7_d*@g)cS%Q@()yoJ2`s0mk+%II3_}f>~*M%5>bHhfg8`gmjV2%Q)~-$O4BZ# z%CLy7=d4DL{ zLrt`sJ;S5yb-SrnT-47@V@PFplo`qi{WFPa-ofSAFb96OaWK+F?d;VgYG!*lGVR8C zZ-825jC#M1+A%-hsw$g{Ut4>Cav31-IEZi6N1F_BDK^B#1&7WBi8(%mMUJ({uW@Ci zpQ`I_YJEOxdJtP*GHt!XMbMk?};F{<&F(S3Laur$<)6B7YN?wXlf!HwE*e zlSbDx)!s2o!70v9s5*5n50TaTXltxFz&jf&5Xa6ESh~$)V$yUOap)AH?mI-|DfzrY zL%>gydY$v*D#jZj{I}wGZ!R#ibeF8tt-P(RvF64naw%2(6d$NY9B-DKq35EPfB#C* zJrYD5tVf++MwyFA76|{bB!itK`(z76a!!eytF4jJPS{jnApe?^;;tSUpoyoC62z9` zJiU`3tKkHB$BmL!ot(yID(rSjZ8q{8PPDnHH=?3EzL)K_`R-4M!zTIV6S}#zH-I=} zq_EpYVVCs(+|j9Ua8D(kE-+D5CxtqN#^2=j@o@Gqp{XVUQVk>~6faIjPMfOGBUw3t7aJZd*(74Yfg zFKlso*y{4?Y;k(|I2dGemLZMD@qc6x*}PR!o`g0gGRi2US5eOZ{Y{!Pvo_yh00000 LNkvXXu0mjfer~Lk literal 0 HcmV?d00001 diff --git a/public/images/items/unknown.png b/public/images/items/unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..4e01608daedd56415fccb2fe653ae0bb061d22d4 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UX`U{QAs)xyUh(E*5a3}wAb0ey zex!Eig?eX>T~|5f7C5YXz^v2|yOUAp2ESb5t(A_#N*Bx?us&mJOlVB}l-AI3j`ha1 z6gDQ!f<`Baj+j)_dUl1a>)E#)-}A@aYyE=;=RNkV<_%m9=H?q-ZDJ7x+Q{JP>gTe~ HDWM4fF7Y;? literal 0 HcmV?d00001 diff --git a/public/images/ui/achv_bar.png b/public/images/ui/achv_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..442b43343cc8906f2ad853959c44b4c309fa94d2 GIT binary patch literal 399 zcmV;A0dW3_P)Zq}7>41`5eH!Xw~p~Oe1s0&Gk2^yAtpqYC_@LX!4Z57XYA&c8?*y4GPFyZVhH`- zF>wSuu>c9IFsXQ{KAdx4x2Ls6eJ)k}nVLd-@6plwPs%kQA|rSeu&uS|+;|ZCeevYY zHDHWEeJ)iNzU&;Jjf{T4Zc9WU0yyj8r1w-|c838#KVXq_Ui61=DerqvV+^wC>~_}U z@!6oPUz6@sRh-Z^c9ZBLGR*Q_d_@hV#$IZhDeqQ7JDzFNMsR`?oDrPhjNt1mySMvT zg3sLX__PV=wz2C64>S8=zvnre5uD(R-~=Z)BRIhs!3oX?PH=)Vf)kt(oZ#$7;8k%- zz9UO)bBVq@V$(*@Hg9ZOKsIelVX~tVxX9sCTSMtmmm=P2q-{J;kr+Os91tSkTgxEQA3f5rm1RD zQ8hIM0&cku42)ja^8Dr2rMKTM-IDdyu+zoe(_8%d0=9qd$tmX3ktRQ;?Lrq>jCGz+ z>kl$a2VKi8!D|BhIeNf4Pf7=|-zRTg!*nq4#+Xk>nl7GP=Lziou=E19UtP;Z*K(0A z!>y+#cDFbH0Mcbx%L3&OyiFBZ3;-B-W9YlPJ6(qGE^lyueWr9#li31M;I|T8-sK(n z8&#wlyRLJp{Iw$L@Jg#Tf)kwJjNk-k1V7C5ru~j3c*O;`#{f2shmL{oZyV$1ZM;%I3qa03C;*ka7J)~vmb#^W((yDspFh=^yM!$yFWw}_&5rD z<%?WLIiw}0xL|$+cJHL8_VLAXlCm=XXRc-Rz)OM(f fGd7@C2OXP5(ptfCvof4L6Ab1f>3dg(huO`io4L>+wpfH-ZzK;Edn|X9RC&=Dz)oC3wx9UfgtqI&MF>+}Uow&ucg% zIKdgg2~KcEaDp>}6Pyv8-~?v`CpaTG!P$?%SIfEfg*0)_Ci?Oh+i2(_2xA1{f%e68 z^>*cN!POh^|HB*CnOLvO;GSb46-8@DP1FVNV|TY#@Ei-k=L7_Ysp?Igo7xUlai*u< b7@C0mv(P8pKm(nTD)6%^_uSfNn5=~%k@9sB}WgM&jCK?I?84s^)oATC`b z$&fuuW?j5;i7r}mY2x!A+mu{?J<>w+YAAJocJu!7_6oLrhx-SZET@|Mm{x|4vIKFS zQtJJ2ejPBmRT8RsbmR=@B9wq34i!!>OL zX}Iy!#O@Xc06>t2wJcEnz}r-mB>;d?ZwS4-yMr{u)$t7H50^?8wHVLgt^8J^%e%ZI zf1`?2W7l;~mA_U*9bReGMsR`?oDrPhjNrSO-n8Gb1h2S@yOVZEA2k46>};po}6Pyv8;Os}>i}76fLh3kY9ew$WZD94`t$cWUzVgMi z^>*cN!Q~t9|HB(sS-f5s!5zawlqEYmY9cSViCv%G!Z9oWpA!%qrm8l1ZfY}B#hIRJ b6O(Ko9+rbtUwk(500000NkvXXu0mjfWv;=( literal 0 HcmV?d00001 diff --git a/src/battle-phases.ts b/src/battle-phases.ts index a4e683871..ff1eb727c 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -31,6 +31,7 @@ import { getBiomeKey } from "./arena"; import { BattleType, BattlerIndex, TurnCommand } from "./battle"; import { GameMode } from "./game-mode"; import { Species } from "./data/species"; +import { HealAchv, LevelAchv, MoneyAchv, achvs } from "./system/achv"; export class CheckLoadPhase extends BattlePhase { private loaded: boolean; @@ -329,6 +330,8 @@ export class EncounterPhase extends BattlePhase { enemyPokemon.untint(100, 'Sine.easeOut'); enemyPokemon.cry(); enemyPokemon.showInfo(); + if (enemyPokemon.isShiny()) + this.scene.validateAchv(achvs.SEE_SHINY); }); let text = enemyField.length === 1 ? `A wild ${enemyField[0].name} appeared!` @@ -2259,6 +2262,8 @@ export class MoneyRewardPhase extends BattlePhase { this.scene.money += moneyAmount.value; this.scene.updateMoneyText(); + this.scene.validateAchvs(MoneyAchv); + this.scene.ui.showText(`You got ₽${moneyAmount.value.toLocaleString('en-US')}\nfor winning!`, null, () => this.end(), null, true); } } @@ -2299,6 +2304,8 @@ export class GameOverPhase extends BattlePhase { this.scene.gameData.clearSession(); this.scene.time.delayedCall(1000, () => { + if (this.victory) + this.scene.validateAchv(achvs.CLASSIC_VICTORY); const fadeDuration = this.victory ? 10000 : 5000; this.scene.fadeOutBgm(fadeDuration, true); this.scene.ui.fadeOut(fadeDuration).then(() => { @@ -2464,6 +2471,8 @@ export class LevelUpPhase extends PlayerPartyMemberPokemonPhase { start() { super.start(); + this.scene.validateAchvs(LevelAchv, new Utils.IntegerHolder(this.level)); + const pokemon = this.getPokemon(); const prevStats = pokemon.stats.slice(0); pokemon.calculateStats(); @@ -2633,7 +2642,9 @@ export class PokemonHealPhase extends CommonAnimPhase { const hpRestoreMultiplier = new Utils.IntegerHolder(1); if (!this.revive) this.scene.applyModifiers(HealingBoosterModifier, this.player, hpRestoreMultiplier); - pokemon.heal(this.hpHealed * hpRestoreMultiplier.value); + const healAmount = new Utils.NumberHolder(this.hpHealed * hpRestoreMultiplier.value); + pokemon.heal(healAmount.value); + this.scene.validateAchvs(HealAchv, healAmount) pokemon.updateInfo().then(() => super.end()); } else if (this.showFullHpMessage) this.message = getPokemonMessage(pokemon, `'s\nHP is full!`); @@ -2783,6 +2794,16 @@ export class AttemptCapturePhase extends PokemonPhase { catch() { const pokemon = this.getPokemon() as EnemyPokemon; this.scene.unshiftPhase(new VictoryPhase(this.scene, this.battlerIndex)); + + if (pokemon.getAbility().id === (!pokemon.fusionSpecies ? pokemon.getSpeciesForm() : pokemon.getFusionSpeciesForm()).abilityHidden) + this.scene.validateAchv(achvs.HIDDEN_ABILITY); + + if (pokemon.species.pseudoLegendary || pokemon.species.legendary) + this.scene.validateAchv(achvs.CATCH_LEGENDARY); + + if (pokemon.species.mythical) + this.scene.validateAchv(achvs.CATCH_MYTHICAL); + this.scene.ui.showText(`${pokemon.name} was caught!`, null, () => { const end = () => { this.removePb(); diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 65e4cf92d..d63b37c77 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -16,7 +16,7 @@ import { GameData } from './system/game-data'; import StarterSelectUiHandler from './ui/starter-select-ui-handler'; import { TextStyle, addTextObject } from './ui/text'; import { Moves, initMoves } from './data/move'; -import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave, getModifierType, modifierTypes } from './modifier/modifier-type'; +import { ModifierPoolType, getDefaultModifierTypeForTier, getEnemyModifierTypesForWave } from './modifier/modifier-type'; import AbilityBar from './ui/ability-bar'; import { BlockItemTheftAbAttr, DoubleBattleChanceAbAttr, applyAbAttrs, initAbilities } from './data/ability'; import Battle, { BattleType, FixedBattleConfig, fixedBattles } from './battle'; @@ -34,6 +34,7 @@ import SettingsUiHandler from './ui/settings-ui-handler'; import MessageUiHandler from './ui/message-ui-handler'; import { Species } from './data/species'; import InvertPostFX from './pipelines/invert'; +import { Achv, achvs } from './system/achv'; const enableAuto = true; const quickStart = false; @@ -199,6 +200,10 @@ export default class BattleScene extends Phaser.Scene { this.loadImage('icon_owned', 'ui'); this.loadImage('ability_bar', 'ui'); this.loadImage('party_exp_bar', 'ui'); + this.loadImage('achv_bar', 'ui'); + this.loadImage('achv_bar_2', 'ui'); + this.loadImage('achv_bar_3', 'ui'); + this.loadImage('achv_bar_4', 'ui'); this.loadImage('shiny_star', 'ui', 'shiny.png'); this.loadImage('icon_spliced', 'ui'); @@ -306,6 +311,7 @@ export default class BattleScene extends Phaser.Scene { this.loadSe('beam'); this.loadSe('upgrade'); this.loadSe('buy'); + this.loadSe('achv'); this.loadSe('error'); this.loadSe('pb_rel'); @@ -838,6 +844,7 @@ export default class BattleScene extends Phaser.Scene { this.waveCountText.setY(-(this.game.canvas.height / 6) + (this.enemyModifiers.filter(m => m.isIconVisible(this)).length ? 15 : 0)); this.moneyText.setY(this.waveCountText.y + 10); this.partyExpBar.setY(this.moneyText.y + 15); + this.ui?.achvBar.setY((this.game.canvas.height / 6 + this.moneyText.y + 15)); } getMaxExpLevel(ignoreLevelCap?: boolean): integer { @@ -867,18 +874,19 @@ export default class BattleScene extends Phaser.Scene { checkInput(): boolean { if (this.blockInput) return; + let inputSuccess = false; if (this.isButtonPressed(Button.UP)) - this.ui.processInput(Button.UP); + inputSuccess = this.ui.processInput(Button.UP); else if (this.isButtonPressed(Button.DOWN)) - this.ui.processInput(Button.DOWN); + inputSuccess = this.ui.processInput(Button.DOWN); else if (this.isButtonPressed(Button.LEFT)) - this.ui.processInput(Button.LEFT); + inputSuccess = this.ui.processInput(Button.LEFT); else if (this.isButtonPressed(Button.RIGHT)) - this.ui.processInput(Button.RIGHT); + inputSuccess = this.ui.processInput(Button.RIGHT); else if (this.isButtonPressed(Button.ACTION)) - this.ui.processInput(Button.ACTION); + inputSuccess = this.ui.processInput(Button.ACTION); else if (this.isButtonPressed(Button.CANCEL)) - this.ui.processInput(Button.CANCEL); + inputSuccess = this.ui.processInput(Button.CANCEL); else if (this.isButtonPressed(Button.MENU)) { switch (this.ui.getMode()) { case Mode.MESSAGE: @@ -894,8 +902,7 @@ export default class BattleScene extends Phaser.Scene { case Mode.STARTER_SELECT: case Mode.CONFIRM: case Mode.GAME_MODE_SELECT: - this.ui.setModeWithoutClear(Mode.SETTINGS); - this.playSound('menu_open'); + this.ui.setOverlayMode(Mode.MENU); break; case Mode.SETTINGS: this.ui.revertMode(); @@ -904,16 +911,15 @@ export default class BattleScene extends Phaser.Scene { default: return; } - } - else if (this.ui?.getHandler() instanceof StarterSelectUiHandler) { + } else if (this.ui?.getHandler() instanceof StarterSelectUiHandler) { if (this.isButtonPressed(Button.CYCLE_SHINY)) - this.ui.processInput(Button.CYCLE_SHINY); + inputSuccess = this.ui.processInput(Button.CYCLE_SHINY); else if (this.isButtonPressed(Button.CYCLE_FORM)) - this.ui.processInput(Button.CYCLE_FORM); + inputSuccess = this.ui.processInput(Button.CYCLE_FORM); else if (this.isButtonPressed(Button.CYCLE_GENDER)) - this.ui.processInput(Button.CYCLE_GENDER); + inputSuccess = this.ui.processInput(Button.CYCLE_GENDER); else if (this.isButtonPressed(Button.CYCLE_ABILITY)) - this.ui.processInput(Button.CYCLE_ABILITY); + inputSuccess = this.ui.processInput(Button.CYCLE_ABILITY); else return; } @@ -1413,4 +1419,28 @@ export default class BattleScene extends Phaser.Scene { return null; } + + validateAchvs(achvType: { new(...args: any[]): Achv }, ...args: any[]): void { + const filteredAchvs = Object.values(achvs).filter(a => a instanceof achvType); + let newAchv = false; + for (let achv of filteredAchvs) { + if (this.validateAchv(achv, args, false)) + newAchv = true; + } + + if (newAchv) + this.gameData.saveSystem(); + } + + validateAchv(achv: Achv, args?: any[], save: boolean = true): boolean { + if (!this.gameData.achvUnlocks.hasOwnProperty(achv.id) && achv.validate(this, args)) { + this.gameData.achvUnlocks[achv.id] = new Date().getTime(); + this.ui.achvBar.showAchv(achv); + if (save) + this.gameData.saveSystem(); + return true; + } + + return false; + } } \ No newline at end of file diff --git a/src/data/move.ts b/src/data/move.ts index 5ad9466bf..8060f681a 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -101,7 +101,7 @@ export default class Move { return this.attrs.filter(a => a instanceof attrType); } - attr MoveAttr>(AttrType: T, ...args: ConstructorParameters): Move { + attr MoveAttr>(AttrType: T, ...args: ConstructorParameters): this { const attr = new AttrType(...args); this.attrs.push(attr); const attrCondition = attr.getCondition(); @@ -111,7 +111,7 @@ export default class Move { return this; } - addAttr(attr: MoveAttr): Move { + addAttr(attr: MoveAttr): this { this.attrs.push(attr); const attrCondition = attr.getCondition(); if (attrCondition) @@ -120,7 +120,7 @@ export default class Move { return this; } - target(moveTarget: MoveTarget): Move { + target(moveTarget: MoveTarget): this { this.moveTarget = moveTarget; return this; } @@ -129,7 +129,7 @@ export default class Move { return !!(this.flags & flag); } - condition(condition: MoveCondition): Move { + condition(condition: MoveCondition): this { this.conditions.push(condition); return this; @@ -142,32 +142,32 @@ export default class Move { this.flags ^= flag; } - makesContact(makesContact?: boolean): Move { + makesContact(makesContact?: boolean): this { this.setFlag(MoveFlags.MAKES_CONTACT, makesContact); return this; } - ignoresProtect(ignoresProtect?: boolean): Move { + ignoresProtect(ignoresProtect?: boolean): this { this.setFlag(MoveFlags.IGNORE_PROTECT, ignoresProtect); return this; } - ignoresVirtual(ignoresVirtual?: boolean): Move { + ignoresVirtual(ignoresVirtual?: boolean): this { this.setFlag(MoveFlags.IGNORE_VIRTUAL, ignoresVirtual); return this; } - soundBased(soundBased?: boolean): Move { + soundBased(soundBased?: boolean): this { this.setFlag(MoveFlags.SOUND_BASED, soundBased); return this; } - hidesUser(hidesUser?: boolean): Move { + hidesUser(hidesUser?: boolean): this { this.setFlag(MoveFlags.HIDE_USER, hidesUser); return this; } - hidesTarget(hidesTarget?: boolean): Move { + hidesTarget(hidesTarget?: boolean): this { this.setFlag(MoveFlags.HIDE_TARGET, hidesTarget); return this; } diff --git a/src/debug.js b/src/debug.js index dadc09f20..d409d7284 100644 --- a/src/debug.js +++ b/src/debug.js @@ -1,3 +1,10 @@ +function getData() { + const dataStr = localStorage.getItem('data'); + if (!dataStr) + return null; + return JSON.parse(atob(dataStr)); +} + function getSession() { const sessionStr = localStorage.getItem('sessionData'); if (!sessionStr) diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index dea4495db..394dea54b 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -6,7 +6,7 @@ import { EvolutionItem, pokemonEvolutions } from '../data/pokemon-evolutions'; import { Stat, getStatName } from '../data/pokemon-stat'; import { tmPoolTiers, tmSpecies } from '../data/tms'; import { Type } from '../data/type'; -import PartyUiHandler, { PokemonMoveSelectFilter, PokemonRememberMoveSelectFilter, PokemonSelectFilter } from '../ui/party-ui-handler'; +import PartyUiHandler, { PokemonMoveSelectFilter, PokemonSelectFilter } from '../ui/party-ui-handler'; import * as Utils from '../utils'; import { TempBattleStat, getTempBattleStatBoosterItemName, getTempBattleStatName } from '../data/temp-battle-stat'; import { BerryType, getBerryEffectDescription, getBerryName } from '../data/berry'; diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 5e73eb829..c60fd2eae 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -15,6 +15,7 @@ import { TempBattleStat } from '../data/temp-battle-stat'; import { BerryType, getBerryEffectFunc, getBerryPredicate } from '../data/berry'; import { Species } from '../data/species'; import { StatusEffect, getStatusEffectDescriptor } from '../data/status-effect'; +import { MoneyAchv } from '../system/achv'; type ModifierType = ModifierTypes.ModifierType; export type ModifierPredicate = (modifier: Modifier) => boolean; @@ -1171,6 +1172,7 @@ export class DamageMoneyRewardModifier extends PokemonHeldItemModifier { scene.applyModifiers(MoneyMultiplierModifier, true, moneyAmount); scene.money += moneyAmount.value; scene.updateMoneyText(); + scene.validateAchvs(MoneyAchv); return true; } @@ -1194,6 +1196,7 @@ export class MoneyInterestModifier extends PersistentModifier { const interestAmount = Math.floor(scene.money * 0.2 * this.getStackCount()); scene.money += interestAmount; scene.updateMoneyText(); + scene.validateAchvs(MoneyAchv); scene.queueMessage(`You received interest of ₽${interestAmount.toLocaleString('en-US')}\nfrom the ${this.type.name}!`, null, true); diff --git a/src/pokemon.ts b/src/pokemon.ts index 1ddb23311..fe8910826 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -30,6 +30,7 @@ import PartyUiHandler, { PartyOption, PartyUiMode } from './ui/party-ui-handler' import SoundFade from 'phaser3-rex-plugins/plugins/soundfade'; import { GameMode } from './game-mode'; import { LevelMoves } from './data/pokemon-level-moves'; +import { DamageAchv, achvs } from './system/achv'; export enum FieldPosition { CENTER, @@ -867,6 +868,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.scene.setPhaseQueueSplice(); damage.value = Math.min(damage.value, this.hp); this.damage(damage.value); + if (source.isPlayer()) + this.scene.validateAchvs(DamageAchv, damage); source.turnData.damageDealt += damage.value; this.turnData.attacksReceived.unshift({ move: move.id, result: result as DamageResult, damage: damage.value, critical: isCritical, sourceId: source.id }); if (source.isPlayer() && !this.isPlayer()) @@ -1013,6 +1016,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.summonData.battleStats[stat] = source.summonData.battleStats[stat]; for (let tag of source.summonData.tags) this.summonData.tags.push(tag); + if (battleStats.filter(bs => bs === 6).length) + this.scene.validateAchv(achvs.TRANSFER_MAX_BATTLE_STAT); } getMoveHistory(): TurnMove[] { diff --git a/src/system/achv.ts b/src/system/achv.ts new file mode 100644 index 000000000..0a5f791c3 --- /dev/null +++ b/src/system/achv.ts @@ -0,0 +1,126 @@ +import BattleScene from "../battle-scene"; +import * as Utils from "../utils"; + +export enum AchvTier { + COMMON, + GREAT, + ULTRA, + MASTER +} + +export class Achv { + public id: string; + public name: string; + public description: string; + public iconImage: string; + public score: integer; + + public secret: boolean; + public hasParent: boolean; + public parentId: string; + + private conditionFunc: (scene: BattleScene, args: any[]) => boolean; + + constructor(name: string, description: string, iconImage: string, score: integer, conditionFunc?: (scene: BattleScene, args: any[]) => boolean) { + this.name = name; + this.description = description; + this.iconImage = iconImage; + this.score = score; + this.conditionFunc = conditionFunc; + } + + setSecret(hasParent?: boolean): this { + this.secret = true; + this.hasParent = !!hasParent; + return this; + } + + validate(scene: BattleScene, args: any[]): boolean { + return !this.conditionFunc || this.conditionFunc(scene, args); + } + + getTier(): AchvTier { + if (this.score >= 250) + return AchvTier.MASTER; + if (this.score >= 100) + return AchvTier.ULTRA; + if (this.score >= 25) + return AchvTier.GREAT; + return AchvTier.COMMON; + } +} + +export class MoneyAchv extends Achv { + private moneyAmount: integer; + + constructor(name: string, moneyAmount: integer, iconImage: string, score: integer) { + super(name, `Accumulate a total of ₽${moneyAmount.toLocaleString('en-US')}`, iconImage, score, (scene: BattleScene, _args: any[]) => scene.money >= this.moneyAmount); + + this.moneyAmount = moneyAmount; + } +} + +export class DamageAchv extends Achv { + private damageAmount: integer; + + constructor(name: string, damageAmount: integer, iconImage: string, score: integer) { + super(name, `Inflict ${damageAmount.toLocaleString('en-US')} damage in one hit`, iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.damageAmount); + + this.damageAmount = damageAmount; + } +} + +export class HealAchv extends Achv { + private healAmount: integer; + + constructor(name: string, healAmount: integer, iconImage: string, score: integer) { + super(name, `Heal ${healAmount.toLocaleString('en-US')} HP at once with a move, ability, or held item`, iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount); + + this.healAmount = healAmount; + } +} + +export class LevelAchv extends Achv { + private level: integer; + + constructor(name: string, level: integer, iconImage: string, score: integer) { + super(name, `Level up a Pokémon to Lv${level}`, iconImage, score, (scene: BattleScene, args: any[]) => (args[0] as Utils.IntegerHolder).value >= this.level); + + this.level = level; + } +} + +export const achvs = { + _10K_MONEY: new MoneyAchv('Money Haver', 10000, 'nugget', 10), + _100K_MONEY: new MoneyAchv('Rich', 100000, 'big_nugget', 25).setSecret(true), + _1M_MONEY: new MoneyAchv('Millionaire', 1000000, 'relic_gold', 100).setSecret(true), + _10M_MONEY: new MoneyAchv('One Percenter', 10000000, 'coin_case', 250).setSecret(true), + _250_DMG: new DamageAchv('Hard Hitter', 1000, 'lucky_punch', 10), + _1000_DMG: new DamageAchv('Harder Hitter', 1000, 'lucky_punch_great', 25).setSecret(true), + _2500_DMG: new DamageAchv('That\'s a Lotta Damage!', 2500, 'lucky_punch_ultra', 100).setSecret(true), + _10000_DMG: new DamageAchv('One Punch Man', 10000, 'lucky_punch_master', 250).setSecret(true), + _250_HEAL: new HealAchv('Novice Healer', 250, 'potion', 10), + _1000_HEAL: new HealAchv('Big Healer', 1000, 'super_potion', 25).setSecret(true), + _2500_HEAL: new HealAchv('Cleric', 2500, 'hyper_potion', 100).setSecret(true), + _10000_HEAL: new HealAchv('Recovery Master', 10000, 'max_potion', 250).setSecret(true), + LV_100: new LevelAchv('But Wait, There\'s More!', 50, 'rare_candy', 50).setSecret(), + LV_250: new LevelAchv('Elite', 250, 'rarer_candy', 150).setSecret(true), + LV_1000: new LevelAchv('To Go Even Further Beyond', 250, 'candy_jar', 400).setSecret(true), + TRANSFER_MAX_BATTLE_STAT: new Achv('Teamwork', 'Baton pass to another party member with at least one stat maxed out', 'stick', 25), + CATCH_LEGENDARY: new Achv('Legendary', 'Catch a legendary Pokémon', 'mb', 100).setSecret(), + CATCH_MYTHICAL: new Achv('Mythical', 'Catch a mythical Pokémon', 'strange_ball', 100).setSecret(), + SEE_SHINY: new Achv('Shiny', 'Find a shiny Pokémon in the wild', 'pb_gold', 150).setSecret(), + HIDDEN_ABILITY: new Achv('Hidden Potential', 'Catch a Pokémon with a hidden ability', 'ability_charm', 150).setSecret(), + CLASSIC_VICTORY: new Achv('Undefeated', 'Beat the game in classic mode', 'relic_crown', 250) +}; + +{ + (function() { + const achvKeys = Object.keys(achvs); + achvKeys.forEach((a: string, i: integer) => { + achvs[a].id = a; + if (achvs[a].hasParent) + achvs[a].parentId = achvKeys[i - 1]; + }); + })(); +} \ No newline at end of file diff --git a/src/system/game-data.ts b/src/system/game-data.ts index efda3cc74..8cb5e18b9 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -7,7 +7,6 @@ import { Species } from "../data/species"; import * as Utils from "../utils"; import PokemonData from "./pokemon-data"; import PersistentModifierData from "./modifier-data"; -import { PokemonHeldItemModifier } from "../modifier/modifier"; import ArenaData from "./arena-data"; import { Unlockables } from "./unlockables"; import { GameMode } from "../game-mode"; @@ -15,12 +14,14 @@ import { BattleType } from "../battle"; import TrainerData from "./trainer-data"; import { trainerConfigs } from "../data/trainer-type"; import { Setting, setSetting, settingDefaults } from "./settings"; +import { achvs } from "./achv"; interface SystemSaveData { trainerId: integer; secretId: integer; dexData: DexData; unlocks: Unlocks; + achvUnlocks: AchvUnlocks; timestamp: integer; } @@ -45,6 +46,10 @@ interface Unlocks { [key: integer]: boolean; } +interface AchvUnlocks { + [key: string]: integer +} + export interface DexData { [key: integer]: DexData | DexEntry } @@ -81,6 +86,8 @@ export class GameData { public unlocks: Unlocks; + public achvUnlocks: AchvUnlocks; + constructor(scene: BattleScene) { this.scene = scene; this.loadSettings(); @@ -91,6 +98,7 @@ export class GameData { [Unlockables.MINI_BLACK_HOLE]: false, [Unlockables.SPLICED_ENDLESS_MODE]: false }; + this.achvUnlocks = {}; this.initDexData(); this.loadSystem(); } @@ -98,12 +106,15 @@ export class GameData { public saveSystem(): boolean { if (this.scene.quickStart) return false; + + console.log(this.achvUnlocks, "wah") const data: SystemSaveData = { trainerId: this.trainerId, secretId: this.secretId, dexData: this.dexData, unlocks: this.unlocks, + achvUnlocks: this.achvUnlocks, timestamp: new Date().getTime() }; @@ -129,6 +140,13 @@ export class GameData { } } + if (data.achvUnlocks) { + for (let a of Object.keys(data.achvUnlocks)) { + if (achvs.hasOwnProperty(a)) + this.achvUnlocks[a] = data.achvUnlocks[a]; + } + } + if (data.timestamp === undefined) this.convertDexData(data.dexData); diff --git a/src/ui/achv-bar.ts b/src/ui/achv-bar.ts new file mode 100644 index 000000000..f06b9affe --- /dev/null +++ b/src/ui/achv-bar.ts @@ -0,0 +1,96 @@ +import BattleScene from "../battle-scene"; +import { Achv } from "../system/achv"; +import { TextStyle, addTextObject } from "./text"; + +export default class AchvBar extends Phaser.GameObjects.Container { + private bg: Phaser.GameObjects.NineSlice; + private icon: Phaser.GameObjects.Sprite; + private titleText: Phaser.GameObjects.Text; + private scoreText: Phaser.GameObjects.Text; + private descriptionText: Phaser.GameObjects.Text; + + private queue: Achv[] = []; + + public shown: boolean; + + constructor(scene: BattleScene) { + super(scene, scene.game.canvas.width / 6, 0); + } + + setup(): void { + this.bg = this.scene.add.nineslice(0, 0, 'achv_bar', null, 160, 40, 41, 6, 16, 4); + this.bg.setOrigin(0, 0); + + this.add(this.bg); + + this.icon = this.scene.add.sprite(4, 4, 'items'); + this.icon.setOrigin(0, 0); + this.add(this.icon); + + this.titleText = addTextObject(this.scene, 40, 3, '', TextStyle.MESSAGE, { fontSize: '72px' }); + this.titleText.setOrigin(0, 0); + this.add(this.titleText); + + this.scoreText = addTextObject(this.scene, 150, 3, '', TextStyle.MESSAGE, { fontSize: '72px' }); + this.scoreText.setOrigin(1, 0); + this.add(this.scoreText); + + this.descriptionText = addTextObject(this.scene, 43, 16, '', TextStyle.WINDOW, { fontSize: '72px' }); + this.descriptionText.setOrigin(0, 0); + this.add(this.descriptionText); + + this.descriptionText.setWordWrapWidth(664); + this.descriptionText.setLineSpacing(-5); + + this.setScale(0.5); + + this.shown = false; + } + + showAchv(achv: Achv): void { + if (this.shown) { + this.queue.push(achv); + return; + } + + const tier = achv.getTier(); + + this.bg.setTexture(`achv_bar${tier ? `_${tier + 1}` : ''}`); + this.icon.setFrame(achv.iconImage); + this.titleText.setText(achv.name); + this.descriptionText.setText(achv.description); + this.scoreText.setText(`+${achv.score}pt`); + + (this.scene as BattleScene).playSound('achv'); + + this.scene.tweens.add({ + targets: this, + x: (this.scene.game.canvas.width / 6) - 76, + duration: 500, + ease: 'Sine.easeOut' + }); + + this.scene.time.delayedCall(10000, () => this.hide()); + + this.setVisible(true); + this.shown = true; + } + + protected hide(): void { + if (!this.shown) + return; + + this.scene.tweens.add({ + targets: this, + x: (this.scene.game.canvas.width / 6), + duration: 500, + ease: 'Sine.easeIn', + onComplete: () => { + this.shown = false; + this.setVisible(false); + if (this.queue.length) + this.showAchv(this.queue.shift()); + } + }); + } +} \ No newline at end of file diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts new file mode 100644 index 000000000..e693e6f75 --- /dev/null +++ b/src/ui/achvs-ui-handler.ts @@ -0,0 +1,210 @@ +import BattleScene, { Button } from "../battle-scene"; +import { Achv, achvs } from "../system/achv"; +import MessageUiHandler from "./message-ui-handler"; +import { TextStyle, addTextObject } from "./text"; +import { Mode } from "./ui"; + +export default class AchvsUiHandler extends MessageUiHandler { + private achvsContainer: Phaser.GameObjects.Container; + private achvIconsContainer: Phaser.GameObjects.Container; + + private achvIconsBg: Phaser.GameObjects.NineSlice; + private achvIcons: Phaser.GameObjects.Sprite[]; + private titleText: Phaser.GameObjects.Text; + private scoreText: Phaser.GameObjects.Text; + private unlockText: Phaser.GameObjects.Text; + + private cursorObj: Phaser.GameObjects.NineSlice; + + constructor(scene: BattleScene, mode?: Mode) { + super(scene, mode); + } + + setup() { + const ui = this.getUi(); + + this.achvsContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); + + this.achvsContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); + + const headerBg = this.scene.add.nineslice(0, 0, 'window', null, (this.scene.game.canvas.width / 6) - 2, 24, 6, 6, 6, 6); + headerBg.setOrigin(0, 0); + + const headerText = addTextObject(this.scene, 0, 0, 'Achievements', TextStyle.SETTINGS_LABEL); + headerText.setOrigin(0, 0); + headerText.setPositionRelative(headerBg, 8, 4); + + this.achvIconsBg = this.scene.add.nineslice(0, headerBg.height, 'window', null, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - headerBg.height - 68, 6, 6, 6, 6); + this.achvIconsBg.setOrigin(0, 0); + + this.achvIconsContainer = this.scene.add.container(6, headerBg.height + 6); + + this.achvIcons = []; + + for (let a = 0; a < Object.keys(achvs).length; a++) { + const x = (a % 17) * 18; + const y = Math.floor(a / 17) * 18; + + const icon = this.scene.add.sprite(x, y, 'items', 'unknown'); + icon.setOrigin(0, 0); + icon.setScale(0.5); + + this.achvIcons.push(icon); + this.achvIconsContainer.add(icon); + } + + const titleBg = this.scene.add.nineslice(0, headerBg.height + this.achvIconsBg.height, 'window', null, 174, 24, 6, 6, 6, 6); + titleBg.setOrigin(0, 0); + + this.titleText = addTextObject(this.scene, 0, 0, '', TextStyle.WINDOW); + this.titleText.setOrigin(0, 0); + this.titleText.setPositionRelative(titleBg, 8, 4); + + const scoreBg = this.scene.add.nineslice(titleBg.x + titleBg.width, titleBg.y, 'window', null, 46, 24, 6, 6, 6, 6); + scoreBg.setOrigin(0, 0); + + this.scoreText = addTextObject(this.scene, 0, 0, '', TextStyle.WINDOW); + this.scoreText.setOrigin(0, 0); + this.scoreText.setPositionRelative(scoreBg, 8, 4); + + const unlockBg = this.scene.add.nineslice(scoreBg.x + scoreBg.width, scoreBg.y, 'window', null, 98, 24, 6, 6, 6, 6); + unlockBg.setOrigin(0, 0); + + this.unlockText = addTextObject(this.scene, 0, 0, '', TextStyle.WINDOW); + this.unlockText.setOrigin(0, 0); + this.unlockText.setPositionRelative(unlockBg, 8, 4); + + const descriptionBg = this.scene.add.nineslice(0, titleBg.y + titleBg.height, 'window', null, (this.scene.game.canvas.width / 6) - 2, 42, 6, 6, 6, 6); + descriptionBg.setOrigin(0, 0); + + const descriptionText = addTextObject(this.scene, 0, 0, '', TextStyle.WINDOW, { maxLines: 2 }); + descriptionText.setWordWrapWidth(1870); + descriptionText.setOrigin(0, 0); + descriptionText.setPositionRelative(descriptionBg, 8, 4); + + this.message = descriptionText; + + this.achvsContainer.add(headerBg); + this.achvsContainer.add(headerText); + this.achvsContainer.add(this.achvIconsBg); + this.achvsContainer.add(this.achvIconsContainer); + this.achvsContainer.add(titleBg); + this.achvsContainer.add(this.titleText); + this.achvsContainer.add(scoreBg); + this.achvsContainer.add(this.scoreText); + this.achvsContainer.add(unlockBg); + this.achvsContainer.add(this.unlockText); + this.achvsContainer.add(descriptionBg); + this.achvsContainer.add(descriptionText); + + ui.add(this.achvsContainer); + + this.setCursor(0); + + this.achvsContainer.setVisible(false); + } + + show(args: any[]) { + super.show(args); + + const achvUnlocks = this.scene.gameData.achvUnlocks; + + Object.values(achvs).forEach((achv: Achv, i: integer) => { + const icon = this.achvIcons[i]; + const unlocked = achvUnlocks.hasOwnProperty(achv.id); + const hidden = achv.secret && (!achv.parentId || !achvUnlocks.hasOwnProperty(achv.parentId)); + const tinted = !hidden && !unlocked; + + icon.setFrame(!hidden ? achv.iconImage : 'unknown'); + if (tinted) + icon.setTintFill(0); + else + icon.clearTint(); + }); + + this.achvsContainer.setVisible(true); + this.setCursor(0); + + this.getUi().moveTo(this.achvsContainer, this.getUi().length - 1); + + this.getUi().hideTooltip(); + } + + protected showAchv(achv: Achv) { + const achvUnlocks = this.scene.gameData.achvUnlocks; + const unlocked = achvUnlocks.hasOwnProperty(achv.id); + const hidden = achv.secret && (!achv.parentId || !achvUnlocks.hasOwnProperty(achv.parentId)); + + this.titleText.setText(unlocked ? achv.name : '???'); + this.showText(!hidden ? achv.description : ''); + this.scoreText.setText(`${achv.score}pt`); + this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : 'Locked'); + } + + processInput(button: Button): boolean { + const ui = this.getUi(); + + let success = false; + + if (button === Button.CANCEL) { + success = true; + this.scene.ui.revertMode(); + } else { + switch (button) { + case Button.UP: + if (this.cursor >= 17) + success = this.setCursor(this.cursor - 17); + break; + case Button.DOWN: + if (this.cursor + 17 < Object.keys(achvs).length) + success = this.setCursor(this.cursor + 17); + break; + case Button.LEFT: + if (this.cursor % 17) + success = this.setCursor(this.cursor - 1); + break; + case Button.RIGHT: + if (this.cursor % 17 < 16 && this.cursor < Object.keys(achvs).length - 1) + success = this.setCursor(this.cursor + 1); + break; + } + } + + if (success) + ui.playSelect(); + + return success; + } + + setCursor(cursor: integer): boolean { + let ret = super.setCursor(cursor); + + let updateAchv = ret; + + if (!this.cursorObj) { + this.cursorObj = this.scene.add.nineslice(0, 0, 'starter_select_cursor_highlight', null, 16, 16, 1, 1, 1, 1); + this.cursorObj.setOrigin(0, 0); + this.achvIconsContainer.add(this.cursorObj); + updateAchv = true; + } + + this.cursorObj.setPositionRelative(this.achvIcons[this.cursor], 0, 0); + + if (updateAchv) + this.showAchv(achvs[Object.keys(achvs)[cursor]]); + + return ret; + } + + clear() { + super.clear(); + this.achvsContainer.setVisible(false); + this.eraseCursor(); + } + + eraseCursor() { + if (this.cursorObj) + this.cursorObj.destroy(); + this.cursorObj = null; + } +} \ No newline at end of file diff --git a/src/ui/ball-ui-handler.ts b/src/ui/ball-ui-handler.ts index cab771664..0cf5a3cbc 100644 --- a/src/ui/ball-ui-handler.ts +++ b/src/ui/ball-ui-handler.ts @@ -55,7 +55,7 @@ export default class BallUiHandler extends UiHandler { this.setCursor(this.cursor); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -91,6 +91,8 @@ export default class BallUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } updateCounts() { diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index 9425dd464..3dd03b2ca 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -102,7 +102,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { this.message.setWordWrapWidth(1780); } - processInput(button: Button): void { + processInput(button: Button): boolean { const ui = this.getUi(); if (this.awaitingActionInput) { if (button === Button.CANCEL || button === Button.ACTION) { @@ -111,6 +111,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { const originalOnActionInput = this.onActionInput; this.onActionInput = null; originalOnActionInput(); + return true; } } } diff --git a/src/ui/biome-select-ui-handler.ts b/src/ui/biome-select-ui-handler.ts index efac57536..012c62cee 100644 --- a/src/ui/biome-select-ui-handler.ts +++ b/src/ui/biome-select-ui-handler.ts @@ -52,7 +52,7 @@ export default class BiomeSelectUiHandler extends UiHandler { } } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -78,6 +78,8 @@ export default class BiomeSelectUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } setCursor(cursor: integer): boolean { diff --git a/src/ui/command-ui-handler.ts b/src/ui/command-ui-handler.ts index 0c1bddf64..5cdc6aec6 100644 --- a/src/ui/command-ui-handler.ts +++ b/src/ui/command-ui-handler.ts @@ -51,7 +51,7 @@ export default class CommandUiHandler extends UiHandler { this.setCursor(this.getCursor()); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -104,6 +104,8 @@ export default class CommandUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } getCursor(): integer { diff --git a/src/ui/evolution-scene-handler.ts b/src/ui/evolution-scene-handler.ts index 1abd817c3..b2ab5641a 100644 --- a/src/ui/evolution-scene-handler.ts +++ b/src/ui/evolution-scene-handler.ts @@ -20,8 +20,8 @@ export default class EvolutionSceneHandler extends UiHandler { this.scene.fieldUI.bringToTop(this.evolutionContainer); } - processInput(button: Button) { - this.scene.ui.getMessageHandler().processInput(button); + processInput(button: Button): boolean { + return this.scene.ui.getMessageHandler().processInput(button); } setCursor(_cursor: integer): boolean { diff --git a/src/ui/fight-ui-handler.ts b/src/ui/fight-ui-handler.ts index e8d838c75..fed53fb2b 100644 --- a/src/ui/fight-ui-handler.ts +++ b/src/ui/fight-ui-handler.ts @@ -47,7 +47,7 @@ export default class FightUiHandler extends UiHandler { this.displayMoves(); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -87,6 +87,8 @@ export default class FightUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } getCursor(): integer { diff --git a/src/ui/game-mode-select-ui-handler.ts b/src/ui/game-mode-select-ui-handler.ts index 3efd0cb51..de7eb901a 100644 --- a/src/ui/game-mode-select-ui-handler.ts +++ b/src/ui/game-mode-select-ui-handler.ts @@ -42,7 +42,7 @@ export default class GameModeSelectUiHandler extends OptionSelectUiHandler { } } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); const options = this.getOptions(); @@ -59,5 +59,7 @@ export default class GameModeSelectUiHandler extends OptionSelectUiHandler { ui.playSelect(); } else return super.processInput(button); + + return true; } } \ No newline at end of file diff --git a/src/ui/menu-ui-handler.ts b/src/ui/menu-ui-handler.ts new file mode 100644 index 000000000..4adb1f9a8 --- /dev/null +++ b/src/ui/menu-ui-handler.ts @@ -0,0 +1,124 @@ +import BattleScene, { Button } from "../battle-scene"; +import { TextStyle, addTextObject } from "./text"; +import { Mode } from "./ui"; +import UiHandler from "./uiHandler"; +import * as Utils from "../utils"; + +export enum MenuOptions { + SETTINGS, + ACHIEVEMENTS +} + +export default class MenuUiHandler extends UiHandler { + private menuContainer: Phaser.GameObjects.Container; + + private menuBg: Phaser.GameObjects.NineSlice; + protected optionSelectText: Phaser.GameObjects.Text; + + private cursorObj: Phaser.GameObjects.Image; + + constructor(scene: BattleScene, mode?: Mode) { + super(scene, mode); + } + + setup() { + const ui = this.getUi(); + + this.menuContainer = this.scene.add.container(1, -(this.scene.game.canvas.height / 6) + 1); + + this.menuContainer.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6), Phaser.Geom.Rectangle.Contains); + + this.menuBg = this.scene.add.nineslice((this.scene.game.canvas.width / 6) - 92, 0, 'window', null, 90, (this.scene.game.canvas.height / 6) - 2, 6, 6, 6, 6); + this.menuBg.setOrigin(0, 0); + + this.menuContainer.add(this.menuBg); + + this.optionSelectText = addTextObject(this.scene, 0, 0, Utils.getEnumKeys(MenuOptions).map(o => Utils.toReadableString(o)).join('\n'), TextStyle.WINDOW, { maxLines: Utils.getEnumKeys(MenuOptions).length }); + this.optionSelectText.setPositionRelative(this.menuBg, 14, 6); + this.optionSelectText.setLineSpacing(12); + this.menuContainer.add(this.optionSelectText); + + ui.add(this.menuContainer); + + this.setCursor(0); + + this.menuContainer.setVisible(false); + } + + show(args: any[]) { + super.show(args); + + this.menuContainer.setVisible(true); + this.setCursor(0); + + this.getUi().moveTo(this.menuContainer, this.getUi().length - 1); + + this.getUi().hideTooltip(); + + this.scene.playSound('menu_open'); + } + + processInput(button: Button): boolean { + const ui = this.getUi(); + + let success = false; + + if (button === Button.ACTION) { + switch (this.cursor as MenuOptions) { + case MenuOptions.SETTINGS: + this.scene.ui.setOverlayMode(Mode.SETTINGS); + success = true; + break; + case MenuOptions.ACHIEVEMENTS: + this.scene.ui.setOverlayMode(Mode.ACHIEVEMENTS); + success = true; + break; + } + } else if (button === Button.CANCEL) { + success = true; + this.scene.ui.revertMode(); + } else { + switch (button) { + case Button.UP: + if (this.cursor) + success = this.setCursor(this.cursor - 1); + break; + case Button.DOWN: + if (this.cursor < Utils.getEnumKeys(MenuOptions).length) + success = this.setCursor(this.cursor + 1); + break; + } + } + + if (success) + ui.playSelect(); + + return true; + } + + setCursor(cursor: integer): boolean { + const ret = super.setCursor(cursor); + + if (!this.cursorObj) { + this.cursorObj = this.scene.add.image(0, 0, 'cursor'); + this.cursorObj.setOrigin(0, 0); + this.menuContainer.add(this.cursorObj); + } + + this.cursorObj.setPositionRelative(this.menuBg, 7, 9 + this.cursor * 16); + + return ret; + } + + clear() { + super.clear(); + this.menuContainer.setVisible(false); + this.eraseCursor(); + } + + eraseCursor() { + if (this.cursorObj) + this.cursorObj.destroy(); + this.cursorObj = null; + } +} \ No newline at end of file diff --git a/src/ui/modifier-select-ui-handler.ts b/src/ui/modifier-select-ui-handler.ts index e8ed74602..8c50fbef9 100644 --- a/src/ui/modifier-select-ui-handler.ts +++ b/src/ui/modifier-select-ui-handler.ts @@ -137,11 +137,11 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { }); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); if (!this.awaitingActionInput) - return; + return false; let success = false; @@ -193,6 +193,8 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler { if (success) ui.playSelect(); + + return success; } setCursor(cursor: integer): boolean { diff --git a/src/ui/option-select-ui-handler.ts b/src/ui/option-select-ui-handler.ts index 86ba48505..b1a7079ee 100644 --- a/src/ui/option-select-ui-handler.ts +++ b/src/ui/option-select-ui-handler.ts @@ -65,7 +65,7 @@ export default abstract class OptionSelectUiHandler extends UiHandler { } } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -94,6 +94,8 @@ export default abstract class OptionSelectUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } setCursor(cursor: integer): boolean { diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 0303759d0..3a8873c43 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -177,23 +177,22 @@ export default class PartyUiHandler extends MessageUiHandler { this.setCursor(this.cursor < 6 ? this.cursor : 0); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); if (this.pendingPrompt) - return; + return false; if (this.awaitingActionInput) { - if (button === Button.ACTION || button === Button.CANCEL) { - if (this.onActionInput) { - ui.playSelect(); - const originalOnActionInput = this.onActionInput; - this.onActionInput = null; - originalOnActionInput(); - this.awaitingActionInput = false; - } + if ((button === Button.ACTION || button === Button.CANCEL) && this.onActionInput) { + ui.playSelect(); + const originalOnActionInput = this.onActionInput; + this.onActionInput = null; + originalOnActionInput(); + this.awaitingActionInput = false; + return true; } - return; + return false; } let success = false; @@ -206,6 +205,7 @@ export default class PartyUiHandler extends MessageUiHandler { this.startTransfer(); this.clearOptions(); ui.playSelect(); + return true; } else if (this.partyUiMode === PartyUiMode.REMEMBER_MOVE_MODIFIER && option !== PartyOption.CANCEL) { let filterResult = (this.selectFilter as PokemonSelectFilter)(pokemon); if (filterResult === null) { @@ -216,6 +216,7 @@ export default class PartyUiHandler extends MessageUiHandler { this.showText(filterResult as string, null, () => this.showText(null, 0), null, true); } ui.playSelect(); + return true; } else if ((option !== PartyOption.SUMMARY && option !== PartyOption.RELEASE && option !== PartyOption.CANCEL) || (option === PartyOption.RELEASE && this.partyUiMode === PartyUiMode.RELEASE)) { let filterResult: string; @@ -254,7 +255,7 @@ export default class PartyUiHandler extends MessageUiHandler { (this.scene.getCurrentPhase() as CommandPhase).handleCommand(Command.POKEMON, this.cursor, option === PartyOption.PASS_BATON); if (this.partyUiMode !== PartyUiMode.MODIFIER && this.partyUiMode !== PartyUiMode.TM_MODIFIER && this.partyUiMode !== PartyUiMode.MOVE_MODIFIER) ui.playSelect(); - return; + return true; } else { this.clearOptions(); this.showText(filterResult as string, null, () => this.showText(null, 0), null, true); @@ -262,6 +263,7 @@ export default class PartyUiHandler extends MessageUiHandler { } else if (option === PartyOption.SUMMARY) { ui.playSelect(); ui.setModeWithoutClear(Mode.SUMMARY, pokemon).then(() => this.clearOptions()); + return true; } else if (option === PartyOption.RELEASE) { this.clearOptions(); ui.playSelect(); @@ -277,11 +279,13 @@ export default class PartyUiHandler extends MessageUiHandler { }); } else this.showText('You can\'t release a Pokémon that\'s in battle!', null, () => this.showText(null, 0), null, true); + return true; } else if (option === PartyOption.CANCEL) - this.processInput(Button.CANCEL); + return this.processInput(Button.CANCEL); } else if (button === Button.CANCEL) { this.clearOptions(); ui.playSelect(); + return true; } else { switch (button) { case Button.UP: @@ -300,8 +304,8 @@ export default class PartyUiHandler extends MessageUiHandler { } else if (this.partyUiMode === PartyUiMode.FAINT_SWITCH) ui.playError(); else - this.processInput(Button.CANCEL); - return; + return this.processInput(Button.CANCEL); + return true; } else if (button === Button.CANCEL) { if ((this.partyUiMode === PartyUiMode.MODIFIER_TRANSFER || this.partyUiMode === PartyUiMode.SPLICE) && this.transferMode) { this.clearTransfer(); @@ -317,7 +321,8 @@ export default class PartyUiHandler extends MessageUiHandler { ui.playSelect(); } } - return; + + return true; } const slotCount = this.partySlots.length; @@ -343,6 +348,8 @@ export default class PartyUiHandler extends MessageUiHandler { if (success) ui.playSelect(); + + return success; } populatePartySlots() { diff --git a/src/ui/settings-ui-handler.ts b/src/ui/settings-ui-handler.ts index 5cfd08aa4..a2d608fe8 100644 --- a/src/ui/settings-ui-handler.ts +++ b/src/ui/settings-ui-handler.ts @@ -91,9 +91,7 @@ export default class SettingsUiHandler extends UiHandler { const settings: object = localStorage.hasOwnProperty('settings') ? JSON.parse(localStorage.getItem('settings')) : {}; - Object.keys(settingDefaults).forEach((setting, s) => { - this.setOptionCursor(s, settings.hasOwnProperty(setting) ? settings[setting] : settingDefaults[setting]); - }); + Object.keys(settingDefaults).forEach((setting, s) => this.setOptionCursor(s, settings.hasOwnProperty(setting) ? settings[setting] : settingDefaults[setting])); this.settingsContainer.setVisible(true); this.setCursor(0); @@ -103,7 +101,7 @@ export default class SettingsUiHandler extends UiHandler { this.getUi().hideTooltip(); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -134,6 +132,8 @@ export default class SettingsUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } setCursor(cursor: integer): boolean { diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 9a0a3a734..7fe60d8ad 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -301,10 +301,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.starterSelectMessageBoxContainer.setVisible(true); } - processInput(button: Button): void { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; + let error = false; if (this.genMode) { switch (button) { @@ -323,7 +324,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } else { if (button === Button.ACTION) { if (!this.speciesStarterDexEntry) - ui.playError(); + error = true; else if (this.starterCursors.length < 3) { let isDupe = false; for (let s = 0; s < this.starterCursors.length; s++) { @@ -380,7 +381,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { success = true; this.updateInstructions(); } else - ui.playError(); + error = true; } } else if (button === Button.CANCEL) { if (this.starterCursors.length) { @@ -388,7 +389,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { success = true; this.updateInstructions(); } else - ui.playError(); + error = true; } else { const genStarters = this.starterSelectGenIconContainers[this.genCursor].getAll().length; const rows = Math.ceil(genStarters / 9); @@ -446,6 +447,10 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (success) ui.playSelect(); + else if (error) + ui.playError(); + + return success || error; } updateInstructions(): void { diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index fd906570d..7d238b5b7 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -241,13 +241,14 @@ export default class SummaryUiHandler extends UiHandler { this.hideStatus(!fromSummary); } - processInput(button: Button) { + processInput(button: Button): boolean { if (this.transitioning) - return; + return false; const ui = this.getUi(); let success = false; + let error = false; if (this.moveSelect) { if (button === Button.ACTION) { @@ -283,9 +284,9 @@ export default class SummaryUiHandler extends UiHandler { } success = true; } else if (this.moveCursor === 4) - this.processInput(Button.CANCEL); + return this.processInput(Button.CANCEL); else - ui.playError(); + error = true; } else if (button === Button.CANCEL) { this.hideMoveSelect(); success = true; @@ -336,6 +337,10 @@ export default class SummaryUiHandler extends UiHandler { if (success) ui.playSelect(); + else if (error) + ui.playError(); + + return success || error; } setCursor(cursor: integer): boolean { diff --git a/src/ui/target-select-ui-handler.ts b/src/ui/target-select-ui-handler.ts index 3b94ccabf..9ae6c0139 100644 --- a/src/ui/target-select-ui-handler.ts +++ b/src/ui/target-select-ui-handler.ts @@ -41,7 +41,7 @@ export default class TargetSelectUiHandler extends UiHandler { this.setCursor(this.targets.indexOf(this.cursor) > -1 ? this.cursor : this.targets[0]); } - processInput(button: Button) { + processInput(button: Button): boolean { const ui = this.getUi(); let success = false; @@ -72,6 +72,8 @@ export default class TargetSelectUiHandler extends UiHandler { if (success) ui.playSelect(); + + return success; } setCursor(cursor: integer): boolean { diff --git a/src/ui/text.ts b/src/ui/text.ts index 420132820..5b71fa7d2 100644 --- a/src/ui/text.ts +++ b/src/ui/text.ts @@ -107,7 +107,7 @@ export function getModifierTierTextTint(tier: integer): integer { case 1: // ModifierTier.GREAT: return 0x3890f8; case 2: // ModifierTier.ULTRA: - return 0xf8d038 + return 0xf8d038; case 3: // ModifierTier.MASTER: return 0xe020c0; case 4: // ModifierTier.LUXURY: diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 29e77d7fd..b465354f7 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -15,8 +15,10 @@ import BiomeSelectUiHandler from './biome-select-ui-handler'; import TargetSelectUiHandler from './target-select-ui-handler'; import GameModeSelectUiHandler from './game-mode-select-ui-handler'; import SettingsUiHandler from './settings-ui-handler'; -import { TextStyle, addTextObject, getTextColor } from './text'; -import { getPokeballTintColor } from '../data/pokeball'; +import { TextStyle, addTextObject } from './text'; +import AchvBar from './achv-bar'; +import MenuUiHandler from './menu-ui-handler'; +import AchvsUiHandler from './achvs-ui-handler'; export enum Mode { MESSAGE, @@ -32,7 +34,9 @@ export enum Mode { EVOLUTION_SCENE, CONFIRM, GAME_MODE_SELECT, - SETTINGS + MENU, + SETTINGS, + ACHIEVEMENTS }; const transitionModes = [ @@ -45,14 +49,21 @@ const transitionModes = [ const noTransitionModes = [ Mode.CONFIRM, Mode.GAME_MODE_SELECT, + Mode.MENU, + Mode.SETTINGS +]; + +const menuModes = [ + Mode.MENU, Mode.SETTINGS ]; export default class UI extends Phaser.GameObjects.Container { private mode: Mode; - private lastMode: Mode; + private modeChain: Mode[]; private handlers: UiHandler[]; private overlay: Phaser.GameObjects.Rectangle; + public achvBar: AchvBar; private tooltipContainer: Phaser.GameObjects.Container; private tooltipBg: Phaser.GameObjects.NineSlice; @@ -65,6 +76,7 @@ export default class UI extends Phaser.GameObjects.Container { super(scene, 0, scene.game.canvas.height / 6); this.mode = Mode.MESSAGE; + this.modeChain = []; this.handlers = [ new BattleMessageUiHandler(scene), new CommandUiHandler(scene), @@ -79,7 +91,9 @@ export default class UI extends Phaser.GameObjects.Container { new EvolutionSceneHandler(scene), new ConfirmUiHandler(scene), new GameModeSelectUiHandler(scene), - new SettingsUiHandler(scene) + new MenuUiHandler(scene), + new SettingsUiHandler(scene), + new AchvsUiHandler(scene) ]; } @@ -91,6 +105,10 @@ export default class UI extends Phaser.GameObjects.Container { (this.scene as BattleScene).uiContainer.add(this.overlay); this.overlay.setVisible(false); this.setupTooltip(); + + this.achvBar = new AchvBar(this.scene as BattleScene); + this.achvBar.setup(); + (this.scene as BattleScene).uiContainer.add(this.achvBar); } private setupTooltip() { @@ -121,11 +139,11 @@ export default class UI extends Phaser.GameObjects.Container { return this.handlers[Mode.MESSAGE] as BattleMessageUiHandler; } - processInput(button: Button): void { + processInput(button: Button): boolean { if (this.overlayActive) - return; + return false; - this.getHandler().processInput(button); + return this.getHandler().processInput(button); } showText(text: string, delay?: integer, callback?: Function, callbackDelay?: integer, prompt?: boolean, promptDelay?: integer): void { @@ -229,7 +247,7 @@ export default class UI extends Phaser.GameObjects.Container { }); } - private setModeInternal(mode: Mode, clear: boolean, forceTransition: boolean, args: any[]): Promise { + private setModeInternal(mode: Mode, clear: boolean, forceTransition: boolean, chainMode: boolean, args: any[]): Promise { return new Promise(resolve => { if (this.mode === mode && !forceTransition) { resolve(); @@ -239,7 +257,8 @@ export default class UI extends Phaser.GameObjects.Container { if (this.mode !== mode) { if (clear) this.getHandler().clear(); - this.lastMode = this.mode && !clear ? this.mode : undefined; + if (chainMode && this.mode && !clear) + this.modeChain.push(this.mode); this.mode = mode; this.getHandler().show(args); } @@ -263,23 +282,26 @@ export default class UI extends Phaser.GameObjects.Container { } setMode(mode: Mode, ...args: any[]): Promise { - return this.setModeInternal(mode, true, false, args); + return this.setModeInternal(mode, true, false, false, args); } setModeForceTransition(mode: Mode, ...args: any[]): Promise { - return this.setModeInternal(mode, true, true, args); + return this.setModeInternal(mode, true, true, false, args); } setModeWithoutClear(mode: Mode, ...args: any[]): Promise { - return this.setModeInternal(mode, false, false, args); + return this.setModeInternal(mode, false, false, false, args); + } + + setOverlayMode(mode: Mode, ...args: any[]): Promise { + return this.setModeInternal(mode, false, false, true, args); } revertMode(): void { - if (!this.lastMode) + if (!this.modeChain.length) return; this.getHandler().clear(); - this.mode = this.lastMode; - this.lastMode = undefined; + this.mode = this.modeChain.pop(); } } \ No newline at end of file diff --git a/src/ui/uiHandler.ts b/src/ui/uiHandler.ts index 81c5ba92c..5c66b69f3 100644 --- a/src/ui/uiHandler.ts +++ b/src/ui/uiHandler.ts @@ -18,7 +18,7 @@ export default abstract class UiHandler { this.active = true; } - abstract processInput(button: Button): void; + abstract processInput(button: Button): boolean; getUi() { return this.scene.ui; diff --git a/src/utils.ts b/src/utils.ts index 2888a7cfd..a97f8c397 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -134,11 +134,9 @@ export class NumberHolder { } } -export class IntegerHolder { - public value: integer; - +export class IntegerHolder extends NumberHolder { constructor(value: integer) { - this.value = value; + super(value); } }