diff --git a/.gitignore b/.gitignore index f6cabe9..892ed8f 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ tools/*.mjs *.mjs *.cjs +!mengsan/tools/check-sts2-relics.mjs +!mengsan/tools/write-sts2-relics-report.mjs # Local updater downloads and runtime logs /.update_tmp/ diff --git a/dist/manifest.json b/dist/manifest.json index 94e3016..7400b05 100644 --- a/dist/manifest.json +++ b/dist/manifest.json @@ -1,11 +1,11 @@ { - "version": "2.0.1.1-rc.1", - "generated_at": "2026-10-04T11:24:22.012885+00:00", + "version": "2.0.2.3-rc.2", + "generated_at": "2026-10-05T15:23:57.473829+00:00", "algorithm": "sha256", "update_channels": true, "file_count": 278, - "size_bytes": 55481243, - "folder_sha256": "4e8e4d9e1f1f51c4687aa26b055887479a5ea48d6bfac1a149a3ed10259e8c49", + "size_bytes": 55498582, + "folder_sha256": "b1f12f33bc8775deef47799b715ad34428abf8f0aa16232aa800c8d1db07499c", "core": [ "extension.js", "menu.js", @@ -396,20 +396,20 @@ "sha256": "d7f3da55f8b2e8bf77ace03bd4911497a4abb9e1f942555f7685337801278205" }, "extension.css": { - "size": 51738, - "sha256": "356aa9473ab72ad43850c13451fd15a25c6ce2d93678cd0dcba5568d10443b40" + "size": 55501, + "sha256": "0907c22921f33d3180378dfcec4cdea793227d325c281d5f3a3f698c83b42b85" }, "extension.js": { "size": 15464, - "sha256": "f59c38efab9c337b7f8938e1f71034a2e58ea8b5b00470f5ef2ec61e26a9b5e4" + "sha256": "11db6f84273c2928db92b42d9ab1f2def6e2f796393119f7f7a0177ad2b9d818" }, "function.js": { - "size": 33746, - "sha256": "df1aa3102a214986723af365da1029485680519d355a1ff88973eb36f8a6f909" + "size": 36025, + "sha256": "39a02025adc2459c93c4f5539c7c3a9b70c0d344284d43252af8be52e8565c33" }, "menu.js": { - "size": 25104, - "sha256": "d894ef33889ecf1233e1107395456985da4e71a9f679a2c3a493c7c2fa57f8d7" + "size": 29114, + "sha256": "bd54fda361282e08102d6d7557b21216fb74198c3db9d164405b12f74fcc7f3b" }, "pve/audio/dead/十二生肖/chenlong.mp3": { "size": 68757, @@ -816,272 +816,272 @@ "sha256": "ab0ec7394ee47c6d2b71a2a6617e854c9a6725a965af693ef18ce3b659e9fedd" }, "pve/boss/card.js": { - "size": 171, - "sha256": "3c0a2d89226ed8ea5dfb5238221d63b117a6624e027cde03ba6671dfd5548c2c" + "size": 165, + "sha256": "81618e415c8932e76e88a8552be215143dc7fb075d24df30332646c8ba8df160" }, "pve/boss/character.js": { - "size": 260, - "sha256": "3777e2a7cc00bf3b6e9842f65acf314df2786cb8596ee213254e074738782de4" + "size": 253, + "sha256": "ae70f8ee9c4aab84f6f6edac88cd6095a6213d19948d366c32d983f58c8bc2f3" }, "pve/boss/characterFilter.js": { - "size": 210, - "sha256": "e0cffda20018e8abb3c208359221633f049c77d9246bfc492f740430162c05a1" + "size": 204, + "sha256": "f9b6cbe34f75d43b2493ffbaa137baebaebe1118b36ea731e5270497c7e88dfa" }, "pve/boss/characterTitle.js": { - "size": 207, - "sha256": "f28a5994a540f50851a2a8c66733e8d326f8de59169f2f22a556243837cf0bc2" + "size": 201, + "sha256": "8be70f8fa2ada89d26697b87234ee38e60d19b51d6d6dcc754e37455030810d0" }, "pve/boss/dynamicTranslate.js": { - "size": 287, - "sha256": "924be3ff97147ac8f113eb35ef1aeadab0b3227b1eca61fe5d4d5197242ced30" + "size": 280, + "sha256": "ab9d2e77ab3df1fb6c57a0b678b4866f1ded3d3d2af9e2c309fcf7c43105a015" }, "pve/boss/index.js": { - "size": 1137, - "sha256": "578e2c7f50e42c5e92b445e9bcf0dafa68f28ff2415877c4b1ff492783152372" + "size": 1105, + "sha256": "ee95a08cec01c8dd33ad7469c33c2eaa18ab1697c0d668a930e4c943dcc24b96" }, "pve/boss/intro.js": { - "size": 207, - "sha256": "6fe542ceb77e006a80810c95145b614ae13487acad5abd59059652417dbfb3ac" + "size": 201, + "sha256": "fbfacd5ccd33ff90844ea94eba09aa9072c24a8fbdb5ac259f1ad42ffb4860eb" }, "pve/boss/merge.js": { - "size": 940, - "sha256": "47e0aa7f324b0e8d13737aa07065a18bef69049a6c4c5eafd61996024e84b387" + "size": 918, + "sha256": "482113df0ab59b0c5f1fb9c080cedee2a0c19f52613409fd0cb600213f555edf" }, "pve/boss/perfectPairs.js": { - "size": 198, - "sha256": "228d84d6013ad2b11f789363854bc05dcfe259fdfadaee84acb95421497927ca" + "size": 192, + "sha256": "bdaf0a62c1480eed16a37258fe74c7f405380e889e43d41da0ef08f5f8436c49" }, "pve/boss/pinyin.js": { - "size": 178, - "sha256": "34acc90748a2ce6de749d841e371b11a75bd169b782d6bd2672cb50a70bdb21b" + "size": 172, + "sha256": "85a0c2248d2b6c69391816a76d62e9eb6a4288f68d3647bc27a89e2a697c6fc2" }, "pve/boss/sets.js": { - "size": 502, - "sha256": "78de634dd7eebc7b6657b23bafa74ea274568e303179eb489f052bae1d19d044" + "size": 488, + "sha256": "6809745b6ed34f473e0726c87ed41c30d48bc0b95cc4b5ec4796dc169582810c" }, "pve/boss/sets/qingqingzijin/card.js": { - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "pve/boss/sets/qingqingzijin/character.js": { - "size": 2464, - "sha256": "8f7b1710cec7d7d90f62127330abb838163d91c29603fab7b8920711b1ec31e7" + "size": 2395, + "sha256": "d303c8e2b14b9b859c08368e1740dd31782385951169f59b0d82e0894d4f9592" }, "pve/boss/sets/qingqingzijin/characterFilter.js": { - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "pve/boss/sets/qingqingzijin/characterTitle.js": { - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "pve/boss/sets/qingqingzijin/dynamicTranslate.js": { - "size": 4248, - "sha256": "13ef52691ea5f23176608b21471d80e03285941e7687f69c3c93af5aeccf7e64" + "size": 4155, + "sha256": "660534f1ca8e49c531ceb3872321694d27556d031e8f97740aa2410084c8c3c4" }, "pve/boss/sets/qingqingzijin/index.js": { - "size": 1002, - "sha256": "850ce3d5771d926310a26293d40e9724c2dca292bb178d121d69a251e089ef26" + "size": 973, + "sha256": "663d9089071b4fc5886dfbfb0ad532501683bcbf54726ab707dfe86219575917" }, "pve/boss/sets/qingqingzijin/intro.js": { - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "pve/boss/sets/qingqingzijin/perfectPairs.js": { - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pve/boss/sets/qingqingzijin/pinyin.js": { - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "pve/boss/sets/qingqingzijin/skill.js": { - "size": 32647, - "sha256": "c8d59ee3938a960416cf21330d3b5561d9bc63ad2b65db790de7791058bdb437" + "size": 31461, + "sha256": "1f92669bb3148b99a297c9591e77d472e64157b98093b1445fcbedef58703aaa" }, "pve/boss/sets/qingqingzijin/sort.js": { - "size": 340, - "sha256": "c14a970e669bff9a46fa95a1fe225c6256c7b6bf5904255d86ae7193a2fbb247" + "size": 326, + "sha256": "12eab1f489c156bc4d4e76f5cad45fcea4cb207ef5bd654845c6768990abcc50" }, "pve/boss/sets/qingqingzijin/translate.js": { - "size": 4639, - "sha256": "e802c830329f35d2619cd1b0573699bf7f43cb3da7bc4bdc10344620793187aa" + "size": 4582, + "sha256": "abbee642d2172a12bde54fb4af14a2090c28b8f0e9dfa6a6f583d959e3313b99" }, "pve/boss/sets/qingqingzijin/voices.js": { - "size": 46, - "sha256": "54787af1d4efcd35f20c5eca55db2e60f0cd160d7fed728440542f118e7ae44a" + "size": 43, + "sha256": "d7f3da55f8b2e8bf77ace03bd4911497a4abb9e1f942555f7685337801278205" }, "pve/boss/sets/shiershengxiao/card.js": { - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "pve/boss/sets/shiershengxiao/character.js": { - "size": 4340, - "sha256": "90b33dfe2843a1fbef325fd4c0e56c72e603d67b6d80858d7f78fc4092f7a33b" + "size": 4205, + "sha256": "916d49cb0300f6fe4be738d45aa23cf4dc3dc65c4bedce78e993ffdad10de965" }, "pve/boss/sets/shiershengxiao/characterFilter.js": { - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "pve/boss/sets/shiershengxiao/characterTitle.js": { - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "pve/boss/sets/shiershengxiao/dynamicTranslate.js": { - "size": 68, - "sha256": "906eb5fd3a454b60015c93756f9c7c5314a226972b9361b227d498d28bae1544" + "size": 65, + "sha256": "d409295767b35e4867e5aa6fae92020f2a8943f71569af5539436648a345bd2f" }, "pve/boss/sets/shiershengxiao/index.js": { - "size": 1002, - "sha256": "7f38b79454730d249bac4b13644338e8f92e962f69e6bdb547540e7b296d5d34" + "size": 973, + "sha256": "ae301e4d28b670aaa9841a61553cb8cd2f43acf2016874469ecedc0cb04413c7" }, "pve/boss/sets/shiershengxiao/intro.js": { - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "pve/boss/sets/shiershengxiao/perfectPairs.js": { - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pve/boss/sets/shiershengxiao/pinyin.js": { - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "pve/boss/sets/shiershengxiao/skill.js": { - "size": 15413, - "sha256": "e180512e49aa6f9274253c70d56987080a61ec0388999a3cbec269024ffe8306" + "size": 14844, + "sha256": "00a93659a0eb68757291b05117f82cc19222b8cb6c7653114fb69f8a83312f83" }, "pve/boss/sets/shiershengxiao/sort.js": { - "size": 406, - "sha256": "be03f8ab9f2be5c32ea37df8f058788fd19750ede246e2038406c90dc6ce2cea" + "size": 390, + "sha256": "245b6847978bf2321137bb4b0636a5bfbab33c903310ab91c7028d7582bdf855" }, "pve/boss/sets/shiershengxiao/translate.js": { - "size": 2941, - "sha256": "c2f770ecea7c27a54fc665c621dc95655e9a827836990fd9eee65dd327ddbd31" + "size": 2890, + "sha256": "d6a6568e0484d1fcd5674a0a447aea7d6b87dd5613d91c2a3f31edb9d7bee243" }, "pve/boss/sets/shiershengxiao/voices.js": { - "size": 1507, - "sha256": "45e6a08bfe638bbc2f79edd7642e1303090c8e81be65fce9886199563bc95311" + "size": 1468, + "sha256": "31d90482253665abc46b7b013645461c6c0def19b3a0159d3aa70389be9402fb" }, "pve/boss/sets/tianshu/card.js": { - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "pve/boss/sets/tianshu/character.js": { - "size": 2509, - "sha256": "97ae40a03a777ce170d4ddef64132d071b5b379574ed87ec326f10ca52ca3e2f" + "size": 2428, + "sha256": "4b67d1a4f06f96247e7495341d80554dc535a98e5208cf242701e8a11b10a23c" }, "pve/boss/sets/tianshu/characterFilter.js": { - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "pve/boss/sets/tianshu/characterTitle.js": { - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "pve/boss/sets/tianshu/dynamicTranslate.js": { - "size": 5803, - "sha256": "15e4e97f0ab62f916f1fd42966ad93c18748bf9ef56ecd2f56d97be62b9ece70" + "size": 5676, + "sha256": "76d3a303b4b59e084b1a53328e97b189bffe0e98f29c5301b235f011a325dcf3" }, "pve/boss/sets/tianshu/index.js": { - "size": 1002, - "sha256": "cc538ae9e76177c89ca2e67edde68d68f371700a802cc9d5348e521a8e664b68" + "size": 973, + "sha256": "07fc499a405320e0bd922c8c3c8f82e998d90c56395235f76001bee21ce1623e" }, "pve/boss/sets/tianshu/intro.js": { - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "pve/boss/sets/tianshu/perfectPairs.js": { - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pve/boss/sets/tianshu/pinyin.js": { - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "pve/boss/sets/tianshu/skill.js": { - "size": 23174, - "sha256": "2768ff21576e5d9a55b1d97d9bb866060370e342cb95f9cd5be0e341470acced" + "size": 22253, + "sha256": "e61fb3da297ec046408a6cb408fff146db4967f0982a935ec988865c1cb2d9d1" }, "pve/boss/sets/tianshu/sort.js": { - "size": 400, - "sha256": "42238b8b9a1a1fcbdd4f6d2f8092a49558ef923a1443f07f57371f40bd4506c4" + "size": 384, + "sha256": "97b4b441fa0480468bfb63b475d2dfc26e8b7bc85f03a5686f7d9d7ad0d5aa7f" }, "pve/boss/sets/tianshu/translate.js": { - "size": 4799, - "sha256": "baa234a4f9b902e647f0df3a5189ac65312332fa20c998727c855d9afad0c56c" + "size": 4740, + "sha256": "021b77d6ee7ada8c9962826db17e316dcdba186496630a38794d9283e8ba16e1" }, "pve/boss/sets/tianshu/voices.js": { - "size": 609, - "sha256": "020d42f5a8ab6cfe2189de4f8b27aea2f5eb8f0c92eabeccc30a69311fc684bb" + "size": 603, + "sha256": "392188be3370d7c437641c48424c04fc732bdb13cfc91c447de5556e4ac34ba2" }, "pve/boss/sets/zhuoguiquxie/card.js": { - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "pve/boss/sets/zhuoguiquxie/character.js": { - "size": 3411, - "sha256": "c6a79c1c08f94156276fcaa45236f9bc2166a4e2e0351f286981ef5dac5c73dc" + "size": 3301, + "sha256": "f369b61f9b68accdcde3c04723f145146d8b43c45f087590193c2eecbad0e871" }, "pve/boss/sets/zhuoguiquxie/characterFilter.js": { - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "pve/boss/sets/zhuoguiquxie/characterTitle.js": { - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "pve/boss/sets/zhuoguiquxie/dynamicTranslate.js": { - "size": 7041, - "sha256": "fadb1892b7209b031674f31ecbb4932a27ede38ad649a42ec689f4db1b02bf78" + "size": 6870, + "sha256": "3e51c0d9a7ffacb8dc17a01dbd36631cbc75d94e771cdeba0e6c74c7e43a2fee" }, "pve/boss/sets/zhuoguiquxie/index.js": { - "size": 1002, - "sha256": "892502aaa8fdf6cf1874ab8e564504053ae8168d37c41e2abcb1546e9f90357d" + "size": 973, + "sha256": "6ca0fa67dd8b5fc83aaac37d22e2f2665beb2134a606c75e8c641632bf467af8" }, "pve/boss/sets/zhuoguiquxie/intro.js": { - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "pve/boss/sets/zhuoguiquxie/perfectPairs.js": { - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pve/boss/sets/zhuoguiquxie/pinyin.js": { - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "pve/boss/sets/zhuoguiquxie/skill.js": { - "size": 46766, - "sha256": "406b8bc5e8db6010650e7e4674c5a39f54e27374e4ae358d988f28a2b6e04629" + "size": 45067, + "sha256": "02dcd87c7fa51022fff1549a33a84264c9db4408c8001d542e998fafbd50ce9c" }, "pve/boss/sets/zhuoguiquxie/sort.js": { - "size": 390, - "sha256": "3855904cdc28e6301b9f9177b6c8e04d943ef44fd002a2ce83de5aab7572930c" + "size": 375, + "sha256": "d196e9c0ed205b24df471ffac455017ae5bfd98045a6cddeccc5934e6713da01" }, "pve/boss/sets/zhuoguiquxie/translate.js": { - "size": 6820, - "sha256": "9f20e9429faab842c5a2c3e94d94595cc2480e78752fff3e7f5ac54d09161c1b" + "size": 6739, + "sha256": "e77e8914eccbf69bea102324bd48902e98a144d1c8023f1df704ad7af3bf6516" }, "pve/boss/sets/zhuoguiquxie/voices.js": { - "size": 2115, - "sha256": "d93f873a87649d413d1fc7b827c8bdb01e5f61cc11d9650f64b59de9d575e9e1" + "size": 2079, + "sha256": "a7352f7b2c1cb2bea35c259d0501bac97e05c5ff775d08e09801b2dd70c9817f" }, "pve/boss/shared.js": { "size": 416, "sha256": "9c0c7b0757172078f920a91cc27569456c2d1e3134130391c88ec5ab86370f79" }, "pve/boss/skill.js": { - "size": 271, - "sha256": "dcfad38fde564a88baba111100cd9b121e156478e16c8b31a286adbb0aeffd23" + "size": 264, + "sha256": "aec438c3af87f02f714579fc048bc301d9f1bc4c2e0aa4b28c504c440dda7781" }, "pve/boss/sort.js": { - "size": 330, - "sha256": "f7ec05f54d771ded03a4c50b1b56a6b4e48cf530e4755796a879edd714278334" + "size": 323, + "sha256": "ed8ae6a07446dd489ac21a08c83656b1cf5716a7ad46d343241b3decf9aec4a9" }, "pve/boss/translate.js": { - "size": 272, - "sha256": "f58cf928b22b712fcb374f19e5fd3343d4035e2702388b0d09b11abdd1499376" + "size": 265, + "sha256": "77b8f54f51025615d4a093c885156324d21325caf03c856fd0369736b4580ff2" }, "pve/boss/voices.js": { "size": 682, @@ -1288,40 +1288,40 @@ "sha256": "0b5a1ec26d8a8881057aa1fc8d95fecaf06fa6753d23c99a4978de83f8c44ec6" }, "tianshu/config.js": { - "size": 29707, - "sha256": "9b331adca63ff4b43dc06f707c3bd728d3ce0269b1c1f4cedec5e42281f13ff0" + "size": 29040, + "sha256": "e76b17a94d713930a9349b73c3d6492881adeefcfeb646c81423f4d5d2e42b3f" }, "tianshu/extension.js": { - "size": 76830, - "sha256": "ae2585a6425cbcdf7cd2dee0f1151f5112fb8cfd4e8f6e089c6827774d6dbf9b" + "size": 75685, + "sha256": "4f8daf966a68f1402d8aee95592318167a51df8c36445fad82824984849f429d" }, "tianshu/shuYing_Skill_Xvxiang1.mp3": { "size": 15451, "sha256": "41914d7d542ddfb93c89aefffc245869d63a9fb2f52293df8e6667009832afd8" }, "update.js": { - "size": 60005, - "sha256": "f809d6e3ea5114f78a0773314c23b4120ccbd763b1f2f0f1f400753287af76f7" + "size": 74815, + "sha256": "8f9bb238f87e20f7874154a00e0e5d05c39df80a14d83e2d1a2ca34558b66455" }, "update.txt": { - "size": 3953, - "sha256": "a81636c5b7c6dcf67b2e7b88b87668f3bb9626d974249c6e5413015cd1d13a21" + "size": 4787, + "sha256": "cba4f2eb6c04eee700423c0336311a86019666232763100d0a33cca5fe09c824" }, "voices.js": { "size": 1711, "sha256": "975c58fe201cbbc0027af5038504064382a195df278085a75eca03b2ddace75a" }, "yuanshen/extension.js": { - "size": 1082, - "sha256": "a630d543c3648700cb2e3525588643382a0d72779aa8725ee5ecaa7ceaf48d0e" + "size": 1044, + "sha256": "9fc00f856d6d5e3ae90d5a05f963c96574b0fad7e824c361fab5b70d01dff715" }, "yuanshen/八重神子/1.jpg": { "size": 331322, "sha256": "e7a5f5d79278582e93c1b5277bc823f57c4e1ad2ce85ffa7d43ef1187aa5a5d7" }, "yuanshen/八重神子/character.js": { - "size": 12302, - "sha256": "2a3dbbc035f9a6595906a3bce88b192bf521f94cab0b6f12df5833da3c2f6c4e" + "size": 11986, + "sha256": "54e1bb2e200b4d43a85f8d1741b6c16f76800592629757654bfb12a409cc4813" }, "yuanshen/八重神子/shuYing_Shashengying1.mp3": { "size": 15466, @@ -1360,8 +1360,8 @@ "sha256": "7664f30a84fcdf24b7d8719db74e89de97dca904fec62e514e5a611bae21d0cd" }, "yuanshen/可莉/character.js": { - "size": 11072, - "sha256": "3ee1fc9fcf08ac0d1fa9a6f2e617a7a95a45d2cd313415f66906f64ec9299bf4" + "size": 10773, + "sha256": "424ef7516b3fa311c1abf1c0be69ca63f4d6af4b4a0490d1d451724400b9b5e1" }, "yuanshen/可莉/shuYing_Honghong1.mp3": { "size": 134764, @@ -1406,7 +1406,7 @@ }, "tree": { "type": "directory", - "name": "术樱包", + "name": "source", "children": { "LICENSE": { "type": "file", @@ -1565,23 +1565,23 @@ }, "extension.css": { "type": "file", - "size": 51738, - "sha256": "356aa9473ab72ad43850c13451fd15a25c6ce2d93678cd0dcba5568d10443b40" + "size": 55501, + "sha256": "0907c22921f33d3180378dfcec4cdea793227d325c281d5f3a3f698c83b42b85" }, "extension.js": { "type": "file", "size": 15464, - "sha256": "f59c38efab9c337b7f8938e1f71034a2e58ea8b5b00470f5ef2ec61e26a9b5e4" + "sha256": "11db6f84273c2928db92b42d9ab1f2def6e2f796393119f7f7a0177ad2b9d818" }, "function.js": { "type": "file", - "size": 33746, - "sha256": "df1aa3102a214986723af365da1029485680519d355a1ff88973eb36f8a6f909" + "size": 36025, + "sha256": "39a02025adc2459c93c4f5539c7c3a9b70c0d344284d43252af8be52e8565c33" }, "menu.js": { "type": "file", - "size": 25104, - "sha256": "d894ef33889ecf1233e1107395456985da4e71a9f679a2c3a493c7c2fa57f8d7" + "size": 29114, + "sha256": "bd54fda361282e08102d6d7557b21216fb74198c3db9d164405b12f74fcc7f3b" }, "pve": { "type": "directory", @@ -2151,58 +2151,58 @@ "children": { "card.js": { "type": "file", - "size": 171, - "sha256": "3c0a2d89226ed8ea5dfb5238221d63b117a6624e027cde03ba6671dfd5548c2c" + "size": 165, + "sha256": "81618e415c8932e76e88a8552be215143dc7fb075d24df30332646c8ba8df160" }, "character.js": { "type": "file", - "size": 260, - "sha256": "3777e2a7cc00bf3b6e9842f65acf314df2786cb8596ee213254e074738782de4" + "size": 253, + "sha256": "ae70f8ee9c4aab84f6f6edac88cd6095a6213d19948d366c32d983f58c8bc2f3" }, "characterFilter.js": { "type": "file", - "size": 210, - "sha256": "e0cffda20018e8abb3c208359221633f049c77d9246bfc492f740430162c05a1" + "size": 204, + "sha256": "f9b6cbe34f75d43b2493ffbaa137baebaebe1118b36ea731e5270497c7e88dfa" }, "characterTitle.js": { "type": "file", - "size": 207, - "sha256": "f28a5994a540f50851a2a8c66733e8d326f8de59169f2f22a556243837cf0bc2" + "size": 201, + "sha256": "8be70f8fa2ada89d26697b87234ee38e60d19b51d6d6dcc754e37455030810d0" }, "dynamicTranslate.js": { "type": "file", - "size": 287, - "sha256": "924be3ff97147ac8f113eb35ef1aeadab0b3227b1eca61fe5d4d5197242ced30" + "size": 280, + "sha256": "ab9d2e77ab3df1fb6c57a0b678b4866f1ded3d3d2af9e2c309fcf7c43105a015" }, "index.js": { "type": "file", - "size": 1137, - "sha256": "578e2c7f50e42c5e92b445e9bcf0dafa68f28ff2415877c4b1ff492783152372" + "size": 1105, + "sha256": "ee95a08cec01c8dd33ad7469c33c2eaa18ab1697c0d668a930e4c943dcc24b96" }, "intro.js": { "type": "file", - "size": 207, - "sha256": "6fe542ceb77e006a80810c95145b614ae13487acad5abd59059652417dbfb3ac" + "size": 201, + "sha256": "fbfacd5ccd33ff90844ea94eba09aa9072c24a8fbdb5ac259f1ad42ffb4860eb" }, "merge.js": { "type": "file", - "size": 940, - "sha256": "47e0aa7f324b0e8d13737aa07065a18bef69049a6c4c5eafd61996024e84b387" + "size": 918, + "sha256": "482113df0ab59b0c5f1fb9c080cedee2a0c19f52613409fd0cb600213f555edf" }, "perfectPairs.js": { "type": "file", - "size": 198, - "sha256": "228d84d6013ad2b11f789363854bc05dcfe259fdfadaee84acb95421497927ca" + "size": 192, + "sha256": "bdaf0a62c1480eed16a37258fe74c7f405380e889e43d41da0ef08f5f8436c49" }, "pinyin.js": { "type": "file", - "size": 178, - "sha256": "34acc90748a2ce6de749d841e371b11a75bd169b782d6bd2672cb50a70bdb21b" + "size": 172, + "sha256": "85a0c2248d2b6c69391816a76d62e9eb6a4288f68d3647bc27a89e2a697c6fc2" }, "sets.js": { "type": "file", - "size": 502, - "sha256": "78de634dd7eebc7b6657b23bafa74ea274568e303179eb489f052bae1d19d044" + "size": 488, + "sha256": "6809745b6ed34f473e0726c87ed41c30d48bc0b95cc4b5ec4796dc169582810c" }, "sets": { "type": "directory", @@ -2212,68 +2212,68 @@ "children": { "card.js": { "type": "file", - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "character.js": { "type": "file", - "size": 2464, - "sha256": "8f7b1710cec7d7d90f62127330abb838163d91c29603fab7b8920711b1ec31e7" + "size": 2395, + "sha256": "d303c8e2b14b9b859c08368e1740dd31782385951169f59b0d82e0894d4f9592" }, "characterFilter.js": { "type": "file", - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "characterTitle.js": { "type": "file", - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "dynamicTranslate.js": { "type": "file", - "size": 4248, - "sha256": "13ef52691ea5f23176608b21471d80e03285941e7687f69c3c93af5aeccf7e64" + "size": 4155, + "sha256": "660534f1ca8e49c531ceb3872321694d27556d031e8f97740aa2410084c8c3c4" }, "index.js": { "type": "file", - "size": 1002, - "sha256": "850ce3d5771d926310a26293d40e9724c2dca292bb178d121d69a251e089ef26" + "size": 973, + "sha256": "663d9089071b4fc5886dfbfb0ad532501683bcbf54726ab707dfe86219575917" }, "intro.js": { "type": "file", - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "perfectPairs.js": { "type": "file", - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pinyin.js": { "type": "file", - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "skill.js": { "type": "file", - "size": 32647, - "sha256": "c8d59ee3938a960416cf21330d3b5561d9bc63ad2b65db790de7791058bdb437" + "size": 31461, + "sha256": "1f92669bb3148b99a297c9591e77d472e64157b98093b1445fcbedef58703aaa" }, "sort.js": { "type": "file", - "size": 340, - "sha256": "c14a970e669bff9a46fa95a1fe225c6256c7b6bf5904255d86ae7193a2fbb247" + "size": 326, + "sha256": "12eab1f489c156bc4d4e76f5cad45fcea4cb207ef5bd654845c6768990abcc50" }, "translate.js": { "type": "file", - "size": 4639, - "sha256": "e802c830329f35d2619cd1b0573699bf7f43cb3da7bc4bdc10344620793187aa" + "size": 4582, + "sha256": "abbee642d2172a12bde54fb4af14a2090c28b8f0e9dfa6a6f583d959e3313b99" }, "voices.js": { "type": "file", - "size": 46, - "sha256": "54787af1d4efcd35f20c5eca55db2e60f0cd160d7fed728440542f118e7ae44a" + "size": 43, + "sha256": "d7f3da55f8b2e8bf77ace03bd4911497a4abb9e1f942555f7685337801278205" } } }, @@ -2282,68 +2282,68 @@ "children": { "card.js": { "type": "file", - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "character.js": { "type": "file", - "size": 4340, - "sha256": "90b33dfe2843a1fbef325fd4c0e56c72e603d67b6d80858d7f78fc4092f7a33b" + "size": 4205, + "sha256": "916d49cb0300f6fe4be738d45aa23cf4dc3dc65c4bedce78e993ffdad10de965" }, "characterFilter.js": { "type": "file", - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "characterTitle.js": { "type": "file", - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "dynamicTranslate.js": { "type": "file", - "size": 68, - "sha256": "906eb5fd3a454b60015c93756f9c7c5314a226972b9361b227d498d28bae1544" + "size": 65, + "sha256": "d409295767b35e4867e5aa6fae92020f2a8943f71569af5539436648a345bd2f" }, "index.js": { "type": "file", - "size": 1002, - "sha256": "7f38b79454730d249bac4b13644338e8f92e962f69e6bdb547540e7b296d5d34" + "size": 973, + "sha256": "ae301e4d28b670aaa9841a61553cb8cd2f43acf2016874469ecedc0cb04413c7" }, "intro.js": { "type": "file", - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "perfectPairs.js": { "type": "file", - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pinyin.js": { "type": "file", - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "skill.js": { "type": "file", - "size": 15413, - "sha256": "e180512e49aa6f9274253c70d56987080a61ec0388999a3cbec269024ffe8306" + "size": 14844, + "sha256": "00a93659a0eb68757291b05117f82cc19222b8cb6c7653114fb69f8a83312f83" }, "sort.js": { "type": "file", - "size": 406, - "sha256": "be03f8ab9f2be5c32ea37df8f058788fd19750ede246e2038406c90dc6ce2cea" + "size": 390, + "sha256": "245b6847978bf2321137bb4b0636a5bfbab33c903310ab91c7028d7582bdf855" }, "translate.js": { "type": "file", - "size": 2941, - "sha256": "c2f770ecea7c27a54fc665c621dc95655e9a827836990fd9eee65dd327ddbd31" + "size": 2890, + "sha256": "d6a6568e0484d1fcd5674a0a447aea7d6b87dd5613d91c2a3f31edb9d7bee243" }, "voices.js": { "type": "file", - "size": 1507, - "sha256": "45e6a08bfe638bbc2f79edd7642e1303090c8e81be65fce9886199563bc95311" + "size": 1468, + "sha256": "31d90482253665abc46b7b013645461c6c0def19b3a0159d3aa70389be9402fb" } } }, @@ -2352,68 +2352,68 @@ "children": { "card.js": { "type": "file", - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "character.js": { "type": "file", - "size": 2509, - "sha256": "97ae40a03a777ce170d4ddef64132d071b5b379574ed87ec326f10ca52ca3e2f" + "size": 2428, + "sha256": "4b67d1a4f06f96247e7495341d80554dc535a98e5208cf242701e8a11b10a23c" }, "characterFilter.js": { "type": "file", - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "characterTitle.js": { "type": "file", - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "dynamicTranslate.js": { "type": "file", - "size": 5803, - "sha256": "15e4e97f0ab62f916f1fd42966ad93c18748bf9ef56ecd2f56d97be62b9ece70" + "size": 5676, + "sha256": "76d3a303b4b59e084b1a53328e97b189bffe0e98f29c5301b235f011a325dcf3" }, "index.js": { "type": "file", - "size": 1002, - "sha256": "cc538ae9e76177c89ca2e67edde68d68f371700a802cc9d5348e521a8e664b68" + "size": 973, + "sha256": "07fc499a405320e0bd922c8c3c8f82e998d90c56395235f76001bee21ce1623e" }, "intro.js": { "type": "file", - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "perfectPairs.js": { "type": "file", - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pinyin.js": { "type": "file", - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "skill.js": { "type": "file", - "size": 23174, - "sha256": "2768ff21576e5d9a55b1d97d9bb866060370e342cb95f9cd5be0e341470acced" + "size": 22253, + "sha256": "e61fb3da297ec046408a6cb408fff146db4967f0982a935ec988865c1cb2d9d1" }, "sort.js": { "type": "file", - "size": 400, - "sha256": "42238b8b9a1a1fcbdd4f6d2f8092a49558ef923a1443f07f57371f40bd4506c4" + "size": 384, + "sha256": "97b4b441fa0480468bfb63b475d2dfc26e8b7bc85f03a5686f7d9d7ad0d5aa7f" }, "translate.js": { "type": "file", - "size": 4799, - "sha256": "baa234a4f9b902e647f0df3a5189ac65312332fa20c998727c855d9afad0c56c" + "size": 4740, + "sha256": "021b77d6ee7ada8c9962826db17e316dcdba186496630a38794d9283e8ba16e1" }, "voices.js": { "type": "file", - "size": 609, - "sha256": "020d42f5a8ab6cfe2189de4f8b27aea2f5eb8f0c92eabeccc30a69311fc684bb" + "size": 603, + "sha256": "392188be3370d7c437641c48424c04fc732bdb13cfc91c447de5556e4ac34ba2" } } }, @@ -2422,68 +2422,68 @@ "children": { "card.js": { "type": "file", - "size": 126, - "sha256": "5fa35745834d9494a4be460c4f1cb842ee56ec797f7eaa45b7df6122c87c92ee" + "size": 121, + "sha256": "d903002b4cc800b916e44729798bf5aa0a0f8ea0ba361620959591be723924d7" }, "character.js": { "type": "file", - "size": 3411, - "sha256": "c6a79c1c08f94156276fcaa45236f9bc2166a4e2e0351f286981ef5dac5c73dc" + "size": 3301, + "sha256": "f369b61f9b68accdcde3c04723f145146d8b43c45f087590193c2eecbad0e871" }, "characterFilter.js": { "type": "file", - "size": 66, - "sha256": "0dc51d476375435b50ea965fd540a6afb19134d974fe183bd924225dc3842062" + "size": 63, + "sha256": "92164cec19b58e3a27d92426fbe227c426dff1391b2f56b2329a676a5fc4faf7" }, "characterTitle.js": { "type": "file", - "size": 64, - "sha256": "b736420c47616f5e6493bc0e5d00a1a6803e8540e312ff99b0a5ae2d2de17b6f" + "size": 61, + "sha256": "f4be860d37d46261a6d45e30bce661d301d79d548aeef0bfc2e8ad67fe783cea" }, "dynamicTranslate.js": { "type": "file", - "size": 7041, - "sha256": "fadb1892b7209b031674f31ecbb4932a27ede38ad649a42ec689f4db1b02bf78" + "size": 6870, + "sha256": "3e51c0d9a7ffacb8dc17a01dbd36631cbc75d94e771cdeba0e6c74c7e43a2fee" }, "index.js": { "type": "file", - "size": 1002, - "sha256": "892502aaa8fdf6cf1874ab8e564504053ae8168d37c41e2abcb1546e9f90357d" + "size": 973, + "sha256": "6ca0fa67dd8b5fc83aaac37d22e2f2665beb2134a606c75e8c641632bf467af8" }, "intro.js": { "type": "file", - "size": 64, - "sha256": "17fc80689618ad9d3601cc9ccb692e38eb7b66de82e21c75c246c749f2bdf1fd" + "size": 61, + "sha256": "68187ccda36e322c0483a735e6de6e04e5d7ded9e6f6aa9a3e931f4400db2a5e" }, "perfectPairs.js": { "type": "file", - "size": 58, - "sha256": "a9b5f18910cf92cd6a727cf254ad8d6e1e2ba60a9cf35e9a458da34ce4fda49f" + "size": 55, + "sha256": "7f2bd697eaaff284d2b356321a402a3cc7c0139ff6fdf339f6cbdd8da208a05f" }, "pinyin.js": { "type": "file", - "size": 48, - "sha256": "4a8648524425c2edfb8595971476398ff3c513d27ff4850895c0839945b5c1c6" + "size": 45, + "sha256": "626d5bd4048920086440e9fbf32d2ad3eadd2ff5413591ef8d76c3a165fc758a" }, "skill.js": { "type": "file", - "size": 46766, - "sha256": "406b8bc5e8db6010650e7e4674c5a39f54e27374e4ae358d988f28a2b6e04629" + "size": 45067, + "sha256": "02dcd87c7fa51022fff1549a33a84264c9db4408c8001d542e998fafbd50ce9c" }, "sort.js": { "type": "file", - "size": 390, - "sha256": "3855904cdc28e6301b9f9177b6c8e04d943ef44fd002a2ce83de5aab7572930c" + "size": 375, + "sha256": "d196e9c0ed205b24df471ffac455017ae5bfd98045a6cddeccc5934e6713da01" }, "translate.js": { "type": "file", - "size": 6820, - "sha256": "9f20e9429faab842c5a2c3e94d94595cc2480e78752fff3e7f5ac54d09161c1b" + "size": 6739, + "sha256": "e77e8914eccbf69bea102324bd48902e98a144d1c8023f1df704ad7af3bf6516" }, "voices.js": { "type": "file", - "size": 2115, - "sha256": "d93f873a87649d413d1fc7b827c8bdb01e5f61cc11d9650f64b59de9d575e9e1" + "size": 2079, + "sha256": "a7352f7b2c1cb2bea35c259d0501bac97e05c5ff775d08e09801b2dd70c9817f" } } } @@ -2496,18 +2496,18 @@ }, "skill.js": { "type": "file", - "size": 271, - "sha256": "dcfad38fde564a88baba111100cd9b121e156478e16c8b31a286adbb0aeffd23" + "size": 264, + "sha256": "aec438c3af87f02f714579fc048bc301d9f1bc4c2e0aa4b28c504c440dda7781" }, "sort.js": { "type": "file", - "size": 330, - "sha256": "f7ec05f54d771ded03a4c50b1b56a6b4e48cf530e4755796a879edd714278334" + "size": 323, + "sha256": "ed8ae6a07446dd489ac21a08c83656b1cf5716a7ad46d343241b3decf9aec4a9" }, "translate.js": { "type": "file", - "size": 272, - "sha256": "f58cf928b22b712fcb374f19e5fd3343d4035e2702388b0d09b11abdd1499376" + "size": 265, + "sha256": "77b8f54f51025615d4a093c885156324d21325caf03c856fd0369736b4580ff2" }, "voices.js": { "type": "file", @@ -2808,13 +2808,13 @@ }, "config.js": { "type": "file", - "size": 29707, - "sha256": "9b331adca63ff4b43dc06f707c3bd728d3ce0269b1c1f4cedec5e42281f13ff0" + "size": 29040, + "sha256": "e76b17a94d713930a9349b73c3d6492881adeefcfeb646c81423f4d5d2e42b3f" }, "extension.js": { "type": "file", - "size": 76830, - "sha256": "ae2585a6425cbcdf7cd2dee0f1151f5112fb8cfd4e8f6e089c6827774d6dbf9b" + "size": 75685, + "sha256": "4f8daf966a68f1402d8aee95592318167a51df8c36445fad82824984849f429d" }, "shuYing_Skill_Xvxiang1.mp3": { "type": "file", @@ -2825,13 +2825,13 @@ }, "update.js": { "type": "file", - "size": 60005, - "sha256": "f809d6e3ea5114f78a0773314c23b4120ccbd763b1f2f0f1f400753287af76f7" + "size": 74815, + "sha256": "8f9bb238f87e20f7874154a00e0e5d05c39df80a14d83e2d1a2ca34558b66455" }, "update.txt": { "type": "file", - "size": 3953, - "sha256": "a81636c5b7c6dcf67b2e7b88b87668f3bb9626d974249c6e5413015cd1d13a21" + "size": 4787, + "sha256": "cba4f2eb6c04eee700423c0336311a86019666232763100d0a33cca5fe09c824" }, "voices.js": { "type": "file", @@ -2843,8 +2843,8 @@ "children": { "extension.js": { "type": "file", - "size": 1082, - "sha256": "a630d543c3648700cb2e3525588643382a0d72779aa8725ee5ecaa7ceaf48d0e" + "size": 1044, + "sha256": "9fc00f856d6d5e3ae90d5a05f963c96574b0fad7e824c361fab5b70d01dff715" }, "八重神子": { "type": "directory", @@ -2856,8 +2856,8 @@ }, "character.js": { "type": "file", - "size": 12302, - "sha256": "2a3dbbc035f9a6595906a3bce88b192bf521f94cab0b6f12df5833da3c2f6c4e" + "size": 11986, + "sha256": "54e1bb2e200b4d43a85f8d1741b6c16f76800592629757654bfb12a409cc4813" }, "shuYing_Shashengying1.mp3": { "type": "file", @@ -2911,8 +2911,8 @@ }, "character.js": { "type": "file", - "size": 11072, - "sha256": "3ee1fc9fcf08ac0d1fa9a6f2e617a7a95a45d2cd313415f66906f64ec9299bf4" + "size": 10773, + "sha256": "424ef7516b3fa311c1abf1c0be69ca63f4d6af4b4a0490d1d451724400b9b5e1" }, "shuYing_Honghong1.mp3": { "type": "file", @@ -2975,8 +2975,8 @@ "title": "梦三模式", "entry": "mengsan/register.js", "manifest": "dist/modules/mengsan.json", - "file_count": 457, - "size_bytes": 705652979, + "file_count": 458, + "size_bytes": 145105480, "legacy_manifest": "dist/modules/mengsan.legacy.json" } } diff --git a/dist/modules/mengsan.json b/dist/modules/mengsan.json index 32a03e4..fe03455 100644 --- a/dist/modules/mengsan.json +++ b/dist/modules/mengsan.json @@ -1,11 +1,11 @@ { - "version": "2.0.1.1-rc.1", - "generated_at": "2026-10-04T11:24:22.013474+00:00", + "version": "2.0.2.3-rc.2", + "generated_at": "2026-10-05T15:23:57.474506+00:00", "algorithm": "sha256", "update_channels": true, - "file_count": 457, - "size_bytes": 705652979, - "folder_sha256": "98ee87f766429648ae7c8f1a33c186107f1b0751b0ad4cf650c1ca308043aba9", + "file_count": 458, + "size_bytes": 145105480, + "folder_sha256": "4b95da022c047949a009458df83b931c36f2f537807b3efd2494cdc79d147204", "core": [ "mengsan/register.js" ], @@ -308,6 +308,7 @@ "mengsan/battle/battle-resources.js", "mengsan/battle/battle-session.js", "mengsan/battle/battle-settlement.js", + "mengsan/battle/camps.js", "mengsan/battle/combat-rules.js", "mengsan/battle/death-blow.js", "mengsan/battle/engine-session.js", @@ -479,444 +480,444 @@ "sha256": "ccfea8a1595a41528d93de7b90d78302e035dc42a058bd73a3d314e39c777306" }, "mengsan/assets/cards/mengsan_colorless_alchemize.png": { - "size": 3127713, - "sha256": "030695f8c986e22f1ec74496da907f050c3439f9dd58db362af08da92af20164" + "size": 264296, + "sha256": "18cd20388da0d8a58909694ee91b010dead69317943c56f5ef52040a0f1c5b94" }, "mengsan/assets/cards/mengsan_colorless_anointed.png": { - "size": 3086399, - "sha256": "3a68cb906e29c366bfb8beab3958276050e24f9dc77d854ae71debe095446838" + "size": 266619, + "sha256": "b6708433494c324440935738399300801008b34da15d582453c6adc5a84b8198" }, "mengsan/assets/cards/mengsan_colorless_automation.png": { - "size": 3162166, - "sha256": "00b0f61f95fbd9118c3ecce4c68981ad59c970805f3c5fd4e0637ccaa704f0f5" + "size": 270690, + "sha256": "ae00c882959717f5043375851c6cd9cc60f95a382a739a03a9ce6cc473997d83" }, "mengsan/assets/cards/mengsan_colorless_beacon_of_hope.png": { - "size": 3014849, - "sha256": "038bee1de6075fdcd9a2b1269ba3cd040e76727a6a3b2d36e41e1644bb631adc" + "size": 266264, + "sha256": "117f7f1d19ecb9efb8f1b861265aeb1613a216924b93c4db2426dd1df70fcf5b" }, "mengsan/assets/cards/mengsan_colorless_beat_down.png": { - "size": 3261861, - "sha256": "476af9e96f7c3531ea0251ddb4f3ff87801054960ded214aba5f8656473a0473" + "size": 283486, + "sha256": "9b82b628861d358705285f6d59ffc3d3d057cea52ccaa7552e8a340d0dfd6afb" }, "mengsan/assets/cards/mengsan_colorless_believe_in_you.png": { - "size": 3193359, - "sha256": "43519b09e365e4e91f6771fa09943969ea96ffc05300ea17a0019bdc7ab32943" + "size": 266162, + "sha256": "a45853960b13bbafca4caa1e8259b2f22043f163152f88a5b01c7df8eedfc079" }, "mengsan/assets/cards/mengsan_colorless_bolas.png": { - "size": 3203088, - "sha256": "404d32ecb50eee1570ce743c43457c589839c98c7a63b746225bd0d2fd866c8e" + "size": 280335, + "sha256": "b81e67429b71198ab52345f2a365effecbcb6fedd8b49983fa1ac3cb5e4585e5" }, "mengsan/assets/cards/mengsan_colorless_calamity.png": { - "size": 3043506, - "sha256": "2832971475e0cd42f28ce19009b4dc72ac13fdfd21c84bd94ce3ffe0ca801c25" + "size": 278226, + "sha256": "b379edcf4660d68d07c8e80b2fa7751d7bd3d2b7197ef7988ab4e367e75bb2f1" }, "mengsan/assets/cards/mengsan_colorless_catastrophe.png": { - "size": 3311872, - "sha256": "ea81434a87f2277cbff5403a46399f7e73d1c7007cf3a60a6521a277c6e9edf6" + "size": 288219, + "sha256": "5f3ca79daffb95c7fa9c7dfae716be90729b01a9c6ad68f3b4b70d87dff126da" }, "mengsan/assets/cards/mengsan_colorless_coordinate.png": { - "size": 3277184, - "sha256": "f05c1f215783e1fe97f920931afd20a8a4686036088da6f34212231a472db2a2" + "size": 284497, + "sha256": "b38b5033db495298281564747b88285f82b6b85eb5130b5ce43f1e59e656aeba" }, "mengsan/assets/cards/mengsan_colorless_dark_shackles.png": { - "size": 3036771, - "sha256": "b43aafcbe4882f3a4ff4881615f409ac193ea35156956ec9f4d2150de7f8c2bb" + "size": 280026, + "sha256": "efefaf750e9dea617ec4492d703a098ffd2e711f84600b1f8851ace57b601535" }, "mengsan/assets/cards/mengsan_colorless_discovery.png": { - "size": 3231144, - "sha256": "1d6c186eccdb7d1850c064ad25eb309cba3d8fe32238248813e92c47424945b9" + "size": 283071, + "sha256": "ac1a3709c7196ae6c6ad976e55bb8ce03b6da3e760c0a4fa5b25cd0de83dcb4e" }, "mengsan/assets/cards/mengsan_colorless_dramatic_entrance.png": { - "size": 3354223, - "sha256": "8497a4026aac2aa838251157cf53ee3cd5d7cbd420ab436927985c94332033e9" + "size": 284526, + "sha256": "937ed345a9fc31b146172e6afaec1508ba0fbe1fa41a32c6986c31adae35edd1" }, "mengsan/assets/cards/mengsan_colorless_entropy.png": { - "size": 3347868, - "sha256": "9672138ec7f8f5360efe7198378e2aa36898299c199c41727e25db0efb7a6632" + "size": 282769, + "sha256": "c1b7eaa54503226d16fc66e57ca6c681f09ec45272e2353da00f3a61db431708" }, "mengsan/assets/cards/mengsan_colorless_equilibrium.png": { - "size": 3135158, - "sha256": "109a7369ec0f3a473d8ffec5e527dc1b7c22d929c90547bbc3cc4db333bc8aa6" + "size": 278137, + "sha256": "5099e2e493ada1a851ea74cfaee8a2a0bb9aa43c1d766ca6f9b5fce709cf56fd" }, "mengsan/assets/cards/mengsan_colorless_eternal_armor.png": { - "size": 3167981, - "sha256": "3b532054c25452f093015ff92cb0bf4e15085baf367f42e56533992e6a6339cf" + "size": 282176, + "sha256": "73c6084cf6c0898a6dd35ae1c76cc286bdcd3e6e9af66bcf5cb35aa63baf48db" }, "mengsan/assets/cards/mengsan_colorless_fasten.png": { - "size": 3134484, - "sha256": "62c627389524fd5aa90c30e2e37e70365946b61fb162f5f1084cb0a677b7ad33" + "size": 276883, + "sha256": "ff939467551bf4c5d0375c0e80c7252944ed07aa80bee720531e6735433ad478" }, "mengsan/assets/cards/mengsan_colorless_finesse.png": { - "size": 3200227, - "sha256": "f0c3ce167fc36bdade027f9c89cfda0aebe2857e0e442ab8da83dac0062cb88b" + "size": 280564, + "sha256": "c89c7e36350213f9381caa79c5db2a944bf74378d947f33cbc7e3d82eed304d5" }, "mengsan/assets/cards/mengsan_colorless_fisticuffs.png": { - "size": 2986131, - "sha256": "3424c53ede2dd31def9f4b36290b403e976b00e6d4acf9d1090a1ad3bff50355" + "size": 276830, + "sha256": "86b5f441e717f767689d7561f27bdfbbf491d73cd6cedcea453a07ad6126a6ec" }, "mengsan/assets/cards/mengsan_colorless_flash_of_steel.png": { - "size": 3254260, - "sha256": "9638fbd12bdae0d856c0d7c514b88668d1925d53ff8e0b18f46cdf6363c6e41d" + "size": 273345, + "sha256": "f2fc37bef53ba85f9efd23daae366f808387f9e098c4a7e379f1b4d51c4cc5ae" }, "mengsan/assets/cards/mengsan_colorless_gang_up.png": { - "size": 3454683, - "sha256": "151638d8f635a72652e5ed9653647a5c4f24b4285032c17d9d85441f4dd1c424" + "size": 286758, + "sha256": "c1bc6db4e411bec4a5eafeaa66c699fc67bfccc14925c17ba358dd47136376c8" }, "mengsan/assets/cards/mengsan_colorless_gold_axe.png": { - "size": 3241447, - "sha256": "5a83405d841ff7b5c40d0aaf37507b3274ae2e98e75070bec1f742da11bb10e4" + "size": 277703, + "sha256": "fd329bfd9192e23b26f9f8879c7074949087f9204bf7ab1176ebf6dd78dc0392" }, "mengsan/assets/cards/mengsan_colorless_hand_of_greed.png": { - "size": 3204239, - "sha256": "e3f35625547fde12c1646385b1def672d18b6b03373898bb44c3ff535c307811" + "size": 282231, + "sha256": "7946f221be9b1701d18108b731951d167a8aff94d64ef8deb9ca06ac3b23e355" }, "mengsan/assets/cards/mengsan_colorless_hidden_gem.png": { - "size": 3250322, - "sha256": "600be77b409fef66f260c8bdc0c25c46148064977f3cb5c8cb8e023b4da679ed" + "size": 275787, + "sha256": "f01d4e19b86b3c38cb4b003f42540582ce7420b52838a3cb07ca2563b75b35f6" }, "mengsan/assets/cards/mengsan_colorless_huddle_up.png": { - "size": 3133981, - "sha256": "2783d26a011a442f1ee7ba2b8f50bb889886eab91685e5fff9d6d38cb0656da0" + "size": 281212, + "sha256": "2c8f39036c2f3441955b582c99117a721bcb409124c3916da2b5a98e8680028c" }, "mengsan/assets/cards/mengsan_colorless_impatience.png": { - "size": 3249719, - "sha256": "00f00214e278a79fe138941153a59843760b2b0f3280d192628619f75f541d79" + "size": 282657, + "sha256": "7c9e4fe43bb0ff10bc36d8b784f2c92eb0302d19316e66615298822b799d5c6d" }, "mengsan/assets/cards/mengsan_colorless_intercept.png": { - "size": 3205359, - "sha256": "d2dbb2979f3944cdd18cba6147e989ee3f78f8d6ed91665dfa1b3f7fb97e6352" + "size": 279949, + "sha256": "6c3c8ffcc4bbbf4779e8c3ebc808eaed060eddbbb5e86b8f2b6011e76b8bb208" }, "mengsan/assets/cards/mengsan_colorless_jack_of_all_trades.png": { - "size": 3402938, - "sha256": "a9b06fe1f21f3a86d5cb16a0b312c3d6788c62b5bbabf75a844de431828ecdd6" + "size": 288675, + "sha256": "f569b9a98174b5b0829c36e4801c94e5824e949136c15f1e0722f8dff9f8580f" }, "mengsan/assets/cards/mengsan_colorless_jackpot.png": { - "size": 3222698, - "sha256": "c9f9dbc67abcefd6576ff936ece05c274b4e682cc4b9e252b10feba78c4ba9f8" + "size": 274225, + "sha256": "e9ba9395411826bc85f6b90239374391cf8ef476b56e177d74627621b4c3870f" }, "mengsan/assets/cards/mengsan_colorless_knockdown.png": { - "size": 3328270, - "sha256": "402647d62ae54ea742243185bf70e4ad95f87469cffcebb3e35d1826985cfdcb" + "size": 282499, + "sha256": "ac31e82907b2c4fbb0ccf42155f871d48934c6df8823e0a525614dffc10f5d1d" }, "mengsan/assets/cards/mengsan_colorless_lift.png": { - "size": 3150681, - "sha256": "7a57e2e134a0e7579d8ea3d1b65a551b41f5814ad2b57c73a6afd1cf3751d71f" + "size": 275604, + "sha256": "53d0cc1740a6afcd4cd4a98c2cdba7db39f2cb53cc0095d86fcdfd5e7b138d11" }, "mengsan/assets/cards/mengsan_colorless_master_of_strategy.png": { - "size": 3113651, - "sha256": "441e69484c575409c7d8201cc39c21956111b9462aec4aa10405e5f6f3815d46" + "size": 261127, + "sha256": "6ab0fe519140e15152ef56b3f2dabdaeea7a20c2dd74b9f4d4cda99a1d949991" }, "mengsan/assets/cards/mengsan_colorless_mayhem.png": { - "size": 3221855, - "sha256": "a30d6f318aa0969c7867a31669df515f87296c4ec65e7d03bd9aeac1f65ca3f6" + "size": 276231, + "sha256": "a4342fdd20a002c41aab7f58c4a96d102710f51e1a75a4af40e1be91fb82d6b8" }, "mengsan/assets/cards/mengsan_colorless_mimic.png": { - "size": 3092367, - "sha256": "23e33b4d6005c9667d54d821114bad372cde5885a3dcd0b36f0373947f518aaa" + "size": 271261, + "sha256": "b8aed0a8a83ea13d182ff8b730d857e0c209341d3a18dbfe0e0f611ef071deb0" }, "mengsan/assets/cards/mengsan_colorless_mind_blast.png": { - "size": 3146553, - "sha256": "d7596195551d4c555dfd0e0841eea31666256f1a25f0e1126a242c9fb85e3999" + "size": 276143, + "sha256": "eec4ad2990cd8f5a588ce8af3786e3bd5bd31f22b32f593b06c77a1472aa0c4f" }, "mengsan/assets/cards/mengsan_colorless_nostalgia.png": { - "size": 3191912, - "sha256": "99dbe6ade64d2f09fabae292dd8b3fa3a603ad55012c4ac7ca5cf61dff4e5ee1" + "size": 273974, + "sha256": "de773309820a877440f61553f8598ed40e0c2cb05fde115aa45047b4653a0cc9" }, "mengsan/assets/cards/mengsan_colorless_omnislice.png": { - "size": 3221281, - "sha256": "d64936d9fcdbea09456eca5af79866b679532a77a03ba6f7d179d6c1225963d5" + "size": 276006, + "sha256": "64f53876bc55e2f2afa7d8265bc23f8e275cbed3b7edac4fce8cee148e927a46" }, "mengsan/assets/cards/mengsan_colorless_panache.png": { - "size": 3393936, - "sha256": "154f52ded899d099c10b42a2551526c992c5b8bb013d29d76edac935780e73da" + "size": 286507, + "sha256": "fddb148e264ab0822eb57e71f9307b24c2ad908ba19ec22984b4b325484e4745" }, "mengsan/assets/cards/mengsan_colorless_panic_button.png": { - "size": 3161638, - "sha256": "c88fdd70d1ca36b09e1038b5bb17757621c7cedde849c52e50890c63fb7e6c13" + "size": 279405, + "sha256": "5670b09757819204cc2215303715d29f5aad0bc58599f8e8451cf7e1daeeee7b" }, "mengsan/assets/cards/mengsan_colorless_prep_time.png": { - "size": 3210939, - "sha256": "235350559f4b50b207907ea6217fe5a19381d297425c97862e9cb5efec556dc8" + "size": 273972, + "sha256": "a2a5da96f7f06e9524d80494419269fb59d185ba62983ae5d86537c9f7a0f83a" }, "mengsan/assets/cards/mengsan_colorless_production.png": { - "size": 3192726, - "sha256": "1290f77a24dc3a7287e61ff7ef70f2c94033915d6996c3e22e039e9669cb8651" + "size": 270642, + "sha256": "170c5c71d61cd8a191c1d2a77ee2b677bd69be2a87a068c04d5dff3914216c99" }, "mengsan/assets/cards/mengsan_colorless_prolong.png": { - "size": 3059311, - "sha256": "316111895375c230029e76f1ef674e7cb08e9e58472a90b4267b182c28e9221e" + "size": 277753, + "sha256": "32e13fafe3f0310a7180fae140d8292908f88bd0ab586e50087d78f76157bbca" }, "mengsan/assets/cards/mengsan_colorless_prowess.png": { - "size": 3228141, - "sha256": "bb7a67bd845a376174dbb28627bac4771454cb50bbadc24cbc2a26391d9badc8" + "size": 283863, + "sha256": "2535f9e313713b0637751b1ae47a045e3108f7ff90092cf6497df2740e0d7a25" }, "mengsan/assets/cards/mengsan_colorless_purity.png": { - "size": 3190337, - "sha256": "00aad33dbf174fa6e5fe3f0231ee1e1ddcfb0e13011132e2ba34179400ee33c8" + "size": 270780, + "sha256": "a502c0cddaff9d6dab370a5d63e325f787850d53309f92589c3ad0a26b92075f" }, "mengsan/assets/cards/mengsan_colorless_rally.png": { - "size": 3267674, - "sha256": "315913dd9c6106d1a5833eabc5f0caa88ebda9dbed72440aab2fbd46bab14bb4" + "size": 278145, + "sha256": "65b2004cf30dacd29c7501b082b5fb3d0ba5d32b44155d403fc5cfe7a71f655b" }, "mengsan/assets/cards/mengsan_colorless_rend.png": { - "size": 3293457, - "sha256": "36a641178ee9c13eaf78cc96656e445e5147d09b07ca2b05c82e0a30c440ad26" + "size": 283787, + "sha256": "b9055a923b42f6e443d1b71329a03bcc9dbfe6c1a8a74a7e93dbb3609a56752e" }, "mengsan/assets/cards/mengsan_colorless_restlessness.png": { - "size": 2907076, - "sha256": "e1d87fa3e36dd61fd5b84779f6ef4b0f0341c3216cca763c83e6d9a1dc1fe737" + "size": 262597, + "sha256": "d2d61ade4282f626d20bb7a6df84e5694c02d48fe33f0930e5397a8722729e26" }, "mengsan/assets/cards/mengsan_colorless_rolling_boulder.png": { - "size": 3318250, - "sha256": "d9e7faabcde18d42c6dcc4f66ab0e822a930a8fba0e2060f42d1655991cbd253" + "size": 287181, + "sha256": "d89ee006722c93bd7212c3ac51144f1fef1b3825261c42cfeb08f4cdf34cc64f" }, "mengsan/assets/cards/mengsan_colorless_salvo.png": { - "size": 3228759, - "sha256": "00da2f4a4bc69909cd89b187b96776d104a667ddf728d330ffd12a0aec4c222e" + "size": 282695, + "sha256": "1f9c7094e7c828f230698704c6d15ce21b2f3253c15bd63633bbb79708f93a29" }, "mengsan/assets/cards/mengsan_colorless_scrawl.png": { - "size": 3092946, - "sha256": "72a71d758a258a37437f26106cab486e55c26a451fc19bb1abf885f0da7b8f44" + "size": 262420, + "sha256": "e7e698d14481c65cf27be3bf2d3a7e5ca341609b61e767e469c8f39b2215f649" }, "mengsan/assets/cards/mengsan_colorless_secret_technique.png": { - "size": 3031198, - "sha256": "20a686c1a98bc730af4ced690487ec6f0d3d140be2b5c474696325a648958f2d" + "size": 268518, + "sha256": "72a55e11ce97402a9e23e72183605d3fb9e05e0118c67bb4ad4409a9fc068e42" }, "mengsan/assets/cards/mengsan_colorless_secret_weapon.png": { - "size": 3100884, - "sha256": "05858a388df685c1dbc2b60e6a3bb6e441d8991d01a3293b0613d8eb71a22bfb" + "size": 273623, + "sha256": "f12d3fd96bf5e527f6474592d800b1137d13b6cb919e414c2f88cd1bcc7fef89" }, "mengsan/assets/cards/mengsan_colorless_seeker_strike.png": { - "size": 3226533, - "sha256": "6dac80c8ff7afe7659ad69cb4d2db02c366c0c02e6088e9bd395418e9b74148f" + "size": 271654, + "sha256": "01b61d7c17df2b2d3ea22eb5e869939002f4c6b11e94ff412da5d59f11113c7d" }, "mengsan/assets/cards/mengsan_colorless_shockwave.png": { - "size": 3123692, - "sha256": "c4b10848314eeb75e3e4ca588f4a34f886cfbcd8f585d5b68391ff8d3affb16f" + "size": 275327, + "sha256": "3b43d39b5e5647bfbe34755fd16b6aaaebc5901fd45baaa8e8d90200de4895e3" }, "mengsan/assets/cards/mengsan_colorless_splash.png": { - "size": 3008746, - "sha256": "0a8a4393dc4462de1f33bd03a1173792a3b29d4f92a235dd1b6dd0ecbc41dd6d" + "size": 267132, + "sha256": "4c1ed146f59f4941a6754c7200518d640dea110d80ce894db472d4bdd35ac3aa" }, "mengsan/assets/cards/mengsan_colorless_stratagem.png": { - "size": 3124646, - "sha256": "55375fcebdaa50dea41f55ef29d349880beca781d3e583584d9d8e377a498247" + "size": 271810, + "sha256": "e64cf224b829653d842a41e9e2b18779b7c5bcbf4567cf78c89f08becd99d6fd" }, "mengsan/assets/cards/mengsan_colorless_tag_team.png": { - "size": 3222820, - "sha256": "62f3a67a893d485c0a376ed96e7d0a97c69429d7648cd4075f72a8b074878907" + "size": 286097, + "sha256": "4613562c13e79da7242d93debea39c94f875f0d5c139dc6dfa881108e6aab49d" }, "mengsan/assets/cards/mengsan_colorless_the_ball.png": { - "size": 3304542, - "sha256": "4e3673066a4b80a7c902896fea95f42e9fb9b71a058bb4309ee085df7f0d8a2a" + "size": 283974, + "sha256": "c242e6e38bd72926da5b57c081b2ce701f80c7b6247c9a71a682c394a63d907a" }, "mengsan/assets/cards/mengsan_colorless_the_bomb.png": { - "size": 3150065, - "sha256": "b2d0d8799316933ae0bed6cd3b925bf729b448de3daf1d769918b5a41d79de78" + "size": 273486, + "sha256": "fa31d1822611d50b3790cba97dd02da2fc5c97388f11a6d9b7d7ae1ffedc9951" }, "mengsan/assets/cards/mengsan_colorless_the_gambit.png": { - "size": 3194137, - "sha256": "cd37df03c949469af917d0150f73416cf05cc087dfb67fc9879d69238fdbff74" + "size": 276239, + "sha256": "7cadc0e76adfc3d205c5a61ef72aaa576fb162590215e59c9b0ea10c7f2c1289" }, "mengsan/assets/cards/mengsan_colorless_thinking_ahead.png": { - "size": 3141303, - "sha256": "7bd6b4edb3e8bb92d8b90773df68570831c1be948a103a426433191dd5135b60" + "size": 279676, + "sha256": "e80070350482d483e22c41fc66100cc9534ac8e8dfdb4164add29393a34003bf" }, "mengsan/assets/cards/mengsan_colorless_thrumming_hatchet.png": { - "size": 3114116, - "sha256": "e7f9630a4d218eba20870c15d93a96eb2d5bea7f8697c4792832dd99e91e705b" + "size": 273242, + "sha256": "870a9d775881b1b524d7db36ce1bf46e78c8c755369bd0cd04dab3bce50234ec" }, "mengsan/assets/cards/mengsan_colorless_ultimate_defend.png": { - "size": 3310196, - "sha256": "45d4d4418254f13366deea71137d5b891177b49c981ac9c83293a000f7e8462c" + "size": 282973, + "sha256": "3fdad038b62f41a7d73f4001b0aabe09a0bba72659fdfb31a9f4b1f265b4df52" }, "mengsan/assets/cards/mengsan_colorless_ultimate_strike.png": { - "size": 3222462, - "sha256": "25652e3b55614c84b25c27ae63605bae88bb0e284d4c6181474d0e2cca9e074a" + "size": 272282, + "sha256": "6eca5b583b462751d701fee97db39054ab093e61c8896b0460857d6c7e72325b" }, "mengsan/assets/cards/mengsan_colorless_volley.png": { - "size": 3086676, - "sha256": "fdd8ca3936a72134d3085b34d69c5bd73b1e80d6f443908aa2bd48fe13b52892" + "size": 276470, + "sha256": "0718f961b9615886f12356e23d60774ede4d465728422a64ce9420fe02a59c20" }, "mengsan/assets/cards/mengsan_curse_ascenders_bane.png": { - "size": 3156093, - "sha256": "f12a36ffcd6f0dba728fcc7eddfef3323c04a33115bd4c3e53e3a4931b25587d" + "size": 275151, + "sha256": "bb9d6e1ef9eacfece52788636d663abcc575af8e1d87ff15147e6e52a9942d4e" }, "mengsan/assets/cards/mengsan_curse_bad_luck.png": { - "size": 3075399, - "sha256": "3aa36640e3a47477931176fadd7423ab0016b2d0b53e1d293b933f421aa723f4" + "size": 277750, + "sha256": "8ac4cd8aca8bc7cb50e7f4ea3c3d0568693fa01332a1cb4de199bb7318cef539" }, "mengsan/assets/cards/mengsan_curse_clumsy.png": { - "size": 3320908, - "sha256": "d4fd3da9b1dc49625f7e2d5d612234cb5f57ab75616ce1c2c5eb609e893dd628" + "size": 283974, + "sha256": "b0ba7a80b320b386ed2100c9763d6872a083b9c0a36ee1e4ee851eaa64152980" }, "mengsan/assets/cards/mengsan_curse_curse_of_the_bell.png": { - "size": 3190971, - "sha256": "d52d05e8ee1c3355ec34440694538049f6c3a9fac591d0a2d44947a9dde2ff7c" + "size": 280240, + "sha256": "81a2e85b2b37b6ba7685b8091f76570faf0755a01bf883fbab3a8b47a442325e" }, "mengsan/assets/cards/mengsan_curse_debt.png": { - "size": 3206708, - "sha256": "073aa84c0268bffae9cc017222bef8a1a8e8ba364abd6b64c3dee61a382f8c6e" + "size": 279904, + "sha256": "5fcb34d9144fb3f1c1ff7828650938076bbad45179b4df50d670e5d4962adf5b" }, "mengsan/assets/cards/mengsan_curse_decay.png": { - "size": 3159488, - "sha256": "4e4bb998c9d410bac843201e1161bf85da03797d3e7f46ebb22943e3bf2c45bc" + "size": 283528, + "sha256": "5dfb95eaa4673717187a62221824f1d7424972a5530c4c4a3713f76bf5a5ac73" }, "mengsan/assets/cards/mengsan_curse_doubt.png": { - "size": 3272171, - "sha256": "aa0e651e89cb3199f9568e5c00d72b842be96104a96698b8b484b8755862cce1" + "size": 269347, + "sha256": "4710d3e31ee5c1d55e7b1a1baefeb25e77357e8913b8b6f7df713e4fab7ae0d4" }, "mengsan/assets/cards/mengsan_curse_enthralled.png": { - "size": 3093077, - "sha256": "08df7fda97faf5bacbd9402eaccad5f03e16a69364464a6a97ada181e3fa3ac1" + "size": 276307, + "sha256": "07356451a786ec006bb8e2f987c680c3ce31565601b9ab22cfae952596877afd" }, "mengsan/assets/cards/mengsan_curse_folly.png": { - "size": 3100483, - "sha256": "02707297707414f7eca6da31881b57f70d9d9805a06498f2363ec5793a91251b" + "size": 269943, + "sha256": "193281c95c083ecd5185e80e409647049694284fdd0a166376e647fcd590c376" }, "mengsan/assets/cards/mengsan_curse_greed.png": { - "size": 3283765, - "sha256": "0ba7674f5e8a2d07360389f45330666fc793e55c5f77abfd500f513db2bf9fed" + "size": 276772, + "sha256": "d5a3c8cfec9d066da0a6e9dcd8b143b3a16b38208b3e3ed4b064c01e4f57ae1c" }, "mengsan/assets/cards/mengsan_curse_guilty.png": { - "size": 3026762, - "sha256": "69bbe906990f27813ac542428549e33c29285cb44bf521515000c1c1d0702e83" + "size": 264642, + "sha256": "b394381030f8e4a69bd5e5054380bc9a7cd26ddeb1c98e7f3ff33d522a9a8ff9" }, "mengsan/assets/cards/mengsan_curse_injury.png": { - "size": 3232271, - "sha256": "ae043cfe8f0e5fb50ed75287b82494b7b38a918a331b6bf6a017e3283f4c4226" + "size": 278371, + "sha256": "ed1ae130675c0eb1cf7f5cf1cad288d5a527d1930915d83388e541187e0e12b5" }, "mengsan/assets/cards/mengsan_curse_normality.png": { - "size": 3015776, - "sha256": "c2dd8e2fe83165c8129a2ff05ae1b86d5f4cfa258420280ccf49cd0d033f2c01" + "size": 273981, + "sha256": "bc52a95c96e47ba75db1c8edd77add90bef93441cbe92d6617b8bf4fdba9eeec" }, "mengsan/assets/cards/mengsan_curse_poor_sleep.png": { - "size": 3195332, - "sha256": "b3934757b27c91e96322227b64bae769addc87338cd9d2b18c0bdf8169165b7f" + "size": 266665, + "sha256": "87075450b54f3ec32ff5f108ed369b7ec1bbfb0c2522d8b72a86f5c6af8993ce" }, "mengsan/assets/cards/mengsan_curse_regret.png": { - "size": 3197963, - "sha256": "72f758eaa98a1fe254f025cf4096807498a8b9536a4cd085a6f8ac6cec9af2c9" + "size": 276828, + "sha256": "b7a0e2a41ae61dafb422b7dc1726147dabd56fdac49e245acc1d89543f5e42a5" }, "mengsan/assets/cards/mengsan_curse_shame.png": { - "size": 3159251, - "sha256": "e7090eb518f5ff5c022c77ced36866e3477c62319388feb99045ac0a24fcb289" + "size": 266707, + "sha256": "ff047529cf2c3a71517a5b1a8bb51291e05739b5eb4d4b265f04b9ec37331705" }, "mengsan/assets/cards/mengsan_curse_spore_mind.png": { - "size": 3210425, - "sha256": "00dca10bcf03085d3d343c14fcc3703c5f3b3170ab992e74069a2cd730117177" + "size": 288927, + "sha256": "a1e4b54c2e1019404873fe6a4975651912612572c1b3a1a830b015d733a5a554" }, "mengsan/assets/cards/mengsan_curse_writhe.png": { - "size": 3277925, - "sha256": "2dbaee5d8d3070f01d6bb0503c3235b6601fe4af7b5217fc4e17271161f7ed10" + "size": 284680, + "sha256": "600a6f8b961cabfa9d756049235550a1dd46647a8355b77f0a63f2eb50320a0e" }, "mengsan/assets/cards/mengsan_dazed_shuying.png": { - "size": 3232164, - "sha256": "422244600455c716960bcc5f1aaf028733061b7f5b01e174125b9a46cab200ad" + "size": 283230, + "sha256": "3de4c3d4c4569b27a6810bf9b8acef633a990bb8fee7143a7a829f6c7628aee3" }, "mengsan/assets/cards/mengsan_event_abundance.png": { - "size": 3175446, - "sha256": "829339ea6c9f232b2004c179782393036629709e8eec6949cd6aa0d8c1b37950" + "size": 269699, + "sha256": "5a1bba818e2a231c88839ddd98d69193bde2b494bf41d6e67ad969d09057c9a7" }, "mengsan/assets/cards/mengsan_event_apotheosis.png": { - "size": 3202650, - "sha256": "3e213766a173b3c01004a5faf3b53481233f19375f4281929196d75dff37573e" + "size": 273199, + "sha256": "e98a1d5269b18e5bf04acc9b986b109586d6a23df694a954240b814e48d2c55e" }, "mengsan/assets/cards/mengsan_event_apparition.png": { - "size": 3276116, - "sha256": "07100920c178b5bfd383e5ced6fb9d6353c8d1995c80e9fedf409c7184cb0e0d" + "size": 272007, + "sha256": "826016f8ee0ad7c5cbc94718c336d3c8289da62d1ae5eb1127519d10f7fa4516" }, "mengsan/assets/cards/mengsan_event_brightest_flame.png": { - "size": 3088445, - "sha256": "e3abc30102a32ca9f91fb9af30bf3cd2790ff550388090d117e7978e31dede15" + "size": 263639, + "sha256": "bf578528a2d1535deef8c96592ed0d41f8401ba8f2585055704808c6f4c78673" }, "mengsan/assets/cards/mengsan_event_byrd_swoop.png": { - "size": 3303389, - "sha256": "3769b6f25018f510ad489bfcdc5cb327c02c5aafd0a1b9ca780792b3c0fe13a8" + "size": 281465, + "sha256": "edd98958390d0aa1d5c08513dff384949bc26bd66931fac68afb8340399b9a57" }, "mengsan/assets/cards/mengsan_event_enlightenment.png": { - "size": 3306552, - "sha256": "5eb347d0984e569e43b792b044abd478d53d9cb9c9eecc5ba4e97773747a2699" + "size": 270347, + "sha256": "8573f419ec40d129b6283f672fb0fd838ed53400e71974642f2845f75743206e" }, "mengsan/assets/cards/mengsan_event_exterminate.png": { - "size": 3481990, - "sha256": "a0e53996ab3943760329f1aab87e1bc414964f5b88a19778415beecd61cb98be" + "size": 282715, + "sha256": "ecc46404183fe3e16072718a1c46c6606156b00996e452878784d09392b54a4c" }, "mengsan/assets/cards/mengsan_event_feeding_frenzy.png": { - "size": 2991504, - "sha256": "e7261af1c355fc358b15a8131d9b60909b6ba30db94b4d6f948802c3e3158c92" + "size": 264932, + "sha256": "c01d5e4fd9e98f091f5ab72e88e6f7bff711bc3bc4630cfe213040405e5d8877" }, "mengsan/assets/cards/mengsan_event_mad_science_chaos.png": { - "size": 3225466, - "sha256": "2aa820d8c2f380eba5108df919295c4a509c33360bc934e678c72a60fa18d902" + "size": 276192, + "sha256": "effa31a6020a3cac2d57ae0b2edb7a59738617da8b2e39f2e1b51ce82fa58527" }, "mengsan/assets/cards/mengsan_event_mad_science_choking.png": { - "size": 3144566, - "sha256": "a8e5960f8d10e1a8ad9e390d309d50525f8831b82d139b3e65fe6caa3653e31d" + "size": 276078, + "sha256": "414549fa03ffd6a8f94a38f5b980a5e0086d25ebd0da92449967a4dab07f31aa" }, "mengsan/assets/cards/mengsan_event_mad_science_curious.png": { - "size": 3128414, - "sha256": "2f42323201b656cfaba157c9f45ba8795518bb5cd5a4a65af9d6d8c5474d7a57" + "size": 265391, + "sha256": "85587295ae53b74dbee096b20b1e81fa653bc0f1696fc2a409a8e2b37686a3d1" }, "mengsan/assets/cards/mengsan_event_mad_science_energized.png": { - "size": 3208057, - "sha256": "3de4101bff5223dd7b115294b67835fc7a849ca667ed729e6b6b8576125ffbcf" + "size": 276428, + "sha256": "8dcee40efbfe3fcf1f309ed61f687e5ab10744a15840433222ecb2ee1f0008a1" }, "mengsan/assets/cards/mengsan_event_mad_science_expertise.png": { - "size": 3158770, - "sha256": "a28fbf79892ab046388381a20e435f69bf53a6ba21148a3741c284989742a4b7" + "size": 276858, + "sha256": "508ce82a4b8b168afdbbd6480dfcc291a74b8221d1ade27c75d0c1ef4fc607d0" }, "mengsan/assets/cards/mengsan_event_mad_science_improvement.png": { - "size": 3101461, - "sha256": "f85a01280f85571848917e9375a122e17e7dbe0d6750766cbeeba18ffc85927f" + "size": 271401, + "sha256": "8fd7f188c32e98484e34866b96a6c304d263f8bb3db471720975f4dbd19fcc42" }, "mengsan/assets/cards/mengsan_event_mad_science_sapping.png": { - "size": 3167779, - "sha256": "0cff4b294bbbc3c0097fc6036fd1febf49a82cb777b85b1ef4e2b7cf1aa0d344" + "size": 278026, + "sha256": "b2bafdc9e70535af7d63155e3c83c6033a0738362cb66f64d623beb44712e9e7" }, "mengsan/assets/cards/mengsan_event_mad_science_violence.png": { - "size": 3217299, - "sha256": "07eb2165f6bda2bfce8c8267c83ff7caefc617105a33b0e99dd8e3c99582a97d" + "size": 268534, + "sha256": "97a52c1f62fd31f3195effbb0e64e079656229fdf18d162d3f348b380b8ebbd3" }, "mengsan/assets/cards/mengsan_event_mad_science_wisdom.png": { - "size": 3108692, - "sha256": "ff24a151489315ad9cef2bdec1d3adaa0dfd3bc5590870ac333b8af9d019d787" + "size": 268269, + "sha256": "52bc2d0e9033700bd7304deb6a2f0f924da82a54c07c7f6dcdcf2d6b9dfcd2a6" }, "mengsan/assets/cards/mengsan_event_maul.png": { - "size": 3146092, - "sha256": "7d66cab5f938b31c6191be72693251fb28b447a6a357f4888af712296d8b6090" + "size": 284044, + "sha256": "c0a4314159170fc2010fce968df611c8b5a75c5dd44430a3154bfd92f66f677d" }, "mengsan/assets/cards/mengsan_event_metamorphosis.png": { - "size": 3255357, - "sha256": "5af1bb8458b9533114d88eef94c91730094fa7d23190406fa86910f5006a97bf" + "size": 278294, + "sha256": "e0f9de80f12db20c3b0a8986d372a63ce92f44f113969518ab6ea2b2195ade79" }, "mengsan/assets/cards/mengsan_event_neows_fury.png": { - "size": 3270494, - "sha256": "e77228e317921968bc584f015c5cb5a018093eb8e8f8e14f68655d088fbd7175" + "size": 279982, + "sha256": "6a01878172f2723ef8f8ac46850b47150ab47f47da4ec684d1b4311860f4d1e0" }, "mengsan/assets/cards/mengsan_event_peck.png": { - "size": 3245605, - "sha256": "d7fa9557a82e46219917686a77fe1341cc57f843c166f65c63e8895885f29f88" + "size": 279189, + "sha256": "19c98a11ff34b6af855974daff7997488fef32213915f950687344429f4bbc60" }, "mengsan/assets/cards/mengsan_event_relax.png": { - "size": 3151165, - "sha256": "6cb2956664d30064d741fb76bd1f8444e470acdb3b294b006f64bb4d58ef4e68" + "size": 276048, + "sha256": "574a2d3481fadd3ad47e6479d4232b3b1dc7d6ac610b62103baac7fb4387d3c4" }, "mengsan/assets/cards/mengsan_event_squash.png": { - "size": 3209656, - "sha256": "a280aa3721788e4fa71c718de80a6ae30658b6557b43a46dd06edf70b2df72a8" + "size": 280931, + "sha256": "d3d6551cea871ccb1d5ac0fb55bf1e16efa1d83432e0b53f4043faec3b105892" }, "mengsan/assets/cards/mengsan_event_toric_toughness.png": { - "size": 3097893, - "sha256": "735a500a48f344a755aeb94a2d6f40e2eb1b3692a109c60595d83ebc5635e7b2" + "size": 276230, + "sha256": "1d3a11eea2030204e99d3a3c56ffb340d6ad7367c13e407ae224566fa1395989" }, "mengsan/assets/cards/mengsan_event_whistle.png": { - "size": 3288482, - "sha256": "585c5c4a5885c930a1c9f72dbdb5c1d4617d672481bae40f91f44256335474f2" + "size": 275267, + "sha256": "bbcfa89a15e6fe123bf0beea19a5344650998a6c721a9d9ce80a1350940e2bfe" }, "mengsan/assets/cards/mengsan_event_wish.png": { - "size": 3052956, - "sha256": "ec05fe126b5b533aba8eb31294ec446a72d7cbe61808e906075ad80271996dbb" + "size": 265676, + "sha256": "271dab6a6ecfaa480f2b81286ff412fbf1b09d061ea39af60f2e227e5a5f6744" }, "mengsan/assets/cards/mengsan_fangxue.png": { "size": 300961, @@ -935,288 +936,288 @@ "sha256": "81b5c13db2980a7877506eaf9a7b0bbb028a77dda7c18cf1b4c4a402ac0db29e" }, "mengsan/assets/cards/mengsan_ic_ashen_strike.png": { - "size": 3380843, - "sha256": "62bb1d4a3cce45797e6ce257b690f127596acee491dd0b3091bf52018b839480" + "size": 286604, + "sha256": "f12fb1c4259d96e45810f9a2ea735dc4f2a47ad693b6a2cf0681c474042d27fb" }, "mengsan/assets/cards/mengsan_ic_barricade.png": { - "size": 3184834, - "sha256": "39ee5e80832d97b79c82400b6f42c03a8701288447b37b698f7f5db8d80dcba6" + "size": 274873, + "sha256": "e21f5f02f32e91e074b103e0c361d121b201bf3f66df725f9abe51bb8182699b" }, "mengsan/assets/cards/mengsan_ic_battle_ready.png": { - "size": 3106395, - "sha256": "5392a0ace902bdd1487e5ca97ea469ba73efbbabab26f237ce76ef2ae7f4526f" + "size": 281316, + "sha256": "09eab1ad1bd94e206a2df6a70114c86c2a8f029877172c2b90554ed62cdb3eed" }, "mengsan/assets/cards/mengsan_ic_battle_trance.png": { - "size": 3151914, - "sha256": "c327d3554861c1d2dc13c81d8142197bfa07359abac54c8611968168c12256d8" + "size": 280228, + "sha256": "318db72236c1d8ca244016a610f5e36c792fd942bbe672d914dbe31aaa628ddf" }, "mengsan/assets/cards/mengsan_ic_blaze.png": { - "size": 3375895, - "sha256": "75804bfb929e75b4ced9f332807fd74003127b3f83f72ccfe6d4d9f35a26bb13" + "size": 285931, + "sha256": "7855b331d2bfbbfa94547d37aeced861c52777c69fad77d136190375f9f03cdc" }, "mengsan/assets/cards/mengsan_ic_bludgeon.png": { - "size": 3389225, - "sha256": "79c71b0419b979f7f06ffa12be1761ab41244d33c721c1a679d0448d00b29337" + "size": 287941, + "sha256": "b67f775d2db7012cd1ca80252f9fd751f31494ba3c516089d6ba9a98e4c7521a" }, "mengsan/assets/cards/mengsan_ic_bodyguard.png": { - "size": 3343236, - "sha256": "50da52b4a1ee4537d6328d311bbb4842f7de74796613784f9d6d53f5f3d5f32e" + "size": 283829, + "sha256": "0b015d31c67fd9c86763f30aa718900bdbc847547b128ec3a64f4b8afe8cb184" }, "mengsan/assets/cards/mengsan_ic_boulder.png": { - "size": 3285153, - "sha256": "bff97d7a6f172b16cb3bb0434face4173bda907355516975efd0b177abdcb727" + "size": 278980, + "sha256": "c7ad606c1b336a656a1c49a9ea1f94d8c623039da1781af3277c6362b2ec745d" }, "mengsan/assets/cards/mengsan_ic_brand.png": { - "size": 3294776, - "sha256": "8f0da53ec9a4ba94742f7b08aab5c8c065ad7d7f06d0456c7b8beea9edc0156c" + "size": 277039, + "sha256": "181b20a9c40e174914d1da6e373fbf98aa8968b5bac3d6c025aba28bf026200c" }, "mengsan/assets/cards/mengsan_ic_break.png": { - "size": 3312419, - "sha256": "59e6a3748d903a508f5a2fb1fe4160848ab301b7f82b43b15c90daa88134c992" + "size": 282143, + "sha256": "a8e2b0a5a52e731e161fbe1019c56df8cf35cdf97bf49ff44f1af8e9739cbeb0" }, "mengsan/assets/cards/mengsan_ic_bully.png": { - "size": 3295672, - "sha256": "11e917a6a33573ea00f187afb8b18c313887e901f30d8ea09dfb206c6dcd5ff3" + "size": 285649, + "sha256": "4c2566155e5096dafcc57078d3224e2c0b95ad2ca96fefdf944bfbcb17b7a182" }, "mengsan/assets/cards/mengsan_ic_burning_pact.png": { - "size": 3261391, - "sha256": "e3163733cefc1f8c99f0d6549329e0fff3fb3a6c15dbb917d455173d39fa6a85" + "size": 281128, + "sha256": "b17552873bc5e7c7d7cfb3337a58d73288f8e4a5e4aedec9edeeb40efdc8a647" }, "mengsan/assets/cards/mengsan_ic_clash.png": { - "size": 3375675, - "sha256": "c61999fb8ee8d70150348630fc773d7391f2239d01289acb1cb98906ad6b29b6" + "size": 287097, + "sha256": "5b15696ffe6f419309d3d0be712e18043e3746d10adc97e29b360c95f8f394aa" }, "mengsan/assets/cards/mengsan_ic_colossus.png": { - "size": 3446064, - "sha256": "95758ea8bc56299aa7f29f48eed911ece7fa11fbbfd77d6ee865e3142002a607" + "size": 292362, + "sha256": "f3dce17e4b06d5eb9d8f67c74942bef4bde6a0e435e08fbe4d4c8984dea34a94" }, "mengsan/assets/cards/mengsan_ic_conflagration.png": { - "size": 3383784, - "sha256": "24340736d1292a3e199148b02c6a395d91e94ee541833a7d9acf472285046967" + "size": 277137, + "sha256": "31fc8317518d907157ae0102b6c4f27d25c1fbcf65cb08601b532ed439b552d9" }, "mengsan/assets/cards/mengsan_ic_corruption.png": { - "size": 3321262, - "sha256": "040e1f40a9205862b4893fefbbfd0fbde2530983694bafd1509347830b60bf26" + "size": 282239, + "sha256": "510f072f999d46ccccff9451a74e3c5b89f30bfa34d2b6768da13a289b52e0ff" }, "mengsan/assets/cards/mengsan_ic_crimson_mantle.png": { - "size": 3315436, - "sha256": "7a0b60005554b2ecff4eada7096b5be930146e51769cc6f3a5784fc8f6f84459" + "size": 280963, + "sha256": "0da2398d9ec8a3b0384fb9d2c0138c25d72761988d9d01d74f9128c31f490673" }, "mengsan/assets/cards/mengsan_ic_cruelty.png": { - "size": 3318267, - "sha256": "d538eac00eeb64bda764b32555207e79de8eb860d4b9e80377f0566534f8dc4a" + "size": 284558, + "sha256": "2b9fd288a8e862a398eaa43027abe22089fce1bb9b507481db326002e753382f" }, "mengsan/assets/cards/mengsan_ic_dark_embrace.png": { - "size": 2966840, - "sha256": "ffdd9cc3fbd16ff58c647d4e05c6e8dd78f348140de2a0651dffe40e4ec49cdd" + "size": 270814, + "sha256": "21027bb399dda93c33b002753df1a73b382352913cc2c673b4ff85ee4d2c338d" }, "mengsan/assets/cards/mengsan_ic_demon_form.png": { - "size": 3414331, - "sha256": "33b54e87e86d88c50e9995ea6849eed9e2f65dc0a2aa50a8a72b8ddc3b209165" + "size": 293315, + "sha256": "8d62cec70f7ed69030801d62279b2e1d7caf82c4c2cc32a07c6e3efcc326392b" }, "mengsan/assets/cards/mengsan_ic_demonic_shield.png": { - "size": 3363214, - "sha256": "1f2ccf30e3534948282ac9cec36aeb1eb8a76161f4970188610f4ebd564a6cf1" + "size": 284972, + "sha256": "50f3b5e9278393ec37faba009e3ea591cd1adc2ce07633240ed8490c11e7b6fa" }, "mengsan/assets/cards/mengsan_ic_dismantle.png": { - "size": 3290705, - "sha256": "1524381ee0fd906e7c287017ac2c07df01a2128837635c958456d90f8a116526" + "size": 286452, + "sha256": "bff545f4709221adf0b10c7629efb247f64be4ebd833cd71ef5c5a12f5b588c6" }, "mengsan/assets/cards/mengsan_ic_dominate.png": { - "size": 3314562, - "sha256": "1b054572525b494046efc2df72e87446a121bee8084a6ab022f526d8e9f0076f" + "size": 287224, + "sha256": "5f679ced55ad9d87da8a6fbd4a37695b152ae2a60d94da827b52acb99941dc5b" }, "mengsan/assets/cards/mengsan_ic_drum_of_battle.png": { - "size": 3155334, - "sha256": "498552963fda156c5f179fd7a3b4ceb1adaa6e8f9e4e02d864508a95a17c21ce" + "size": 276748, + "sha256": "51a69700fd6adb684ed23da50eb5b3a58c502aa5b9dc392602d08cb35a504863" }, "mengsan/assets/cards/mengsan_ic_dual_wield.png": { - "size": 3219368, - "sha256": "a22ebfe2790fe287f16e91f3bf767b1bdd2770c86559ee39060dfac2708dee2e" + "size": 284469, + "sha256": "4e26f6c875e554ac095c1c33874f3df78f21e0b5a86352055447f7b64016be46" }, "mengsan/assets/cards/mengsan_ic_eager.png": { - "size": 3155388, - "sha256": "30fc98f684f1f4d1e428245b89917b7bb68c037b5d7582a8f7eeab99685d2b5d" + "size": 271026, + "sha256": "3d6294313d96f73d9567112a8f6ae241ea267293d36bfe71b236eb31ad1dc42d" }, "mengsan/assets/cards/mengsan_ic_entrench.png": { - "size": 3500692, - "sha256": "38f8a2cb023b54a49d9c85bb523c4c7f8c6ea60d6ed30d2e02825358fba5a900" + "size": 286869, + "sha256": "3f744ff75751d60611c5261d399bb918a3836b3c91415cf8fea6a01d832da540" }, "mengsan/assets/cards/mengsan_ic_evil_eye.png": { - "size": 3403431, - "sha256": "cbf7f72b018401d6cc208b8f03440417d0943d70e1f91fc3f6ce9f3279f997f0" + "size": 283650, + "sha256": "2faa8de463e92655b64073f52d9345e538f131de868c48aaf54f59485ef8f119" }, "mengsan/assets/cards/mengsan_ic_feed.png": { - "size": 3195433, - "sha256": "e68e07bae5c148ada1a33964265fc9eb9a0d4388fee3e35f6f9b0fef0f53afc8" + "size": 275805, + "sha256": "a1c982f3d5377adcaa39b96ef19a580feef01ce431d9adecfba68a28fcc7c6e0" }, "mengsan/assets/cards/mengsan_ic_feel_no_pain.png": { - "size": 3148743, - "sha256": "216044b33d3dcab884597a5382d932b34be68b36700de401952107e96bcdb83c" + "size": 277116, + "sha256": "779915e2e1bacf218b82dce39fa4106573aae52947e84848d02bcddced92a6fa" }, "mengsan/assets/cards/mengsan_ic_ferocity.png": { - "size": 3156966, - "sha256": "7b71c93f5fe9a48c63f52c4072c021ff8bd3da26e89a478cdec9ca675ed150c2" + "size": 270349, + "sha256": "f1b310f38a32b769d50514b2aa6045ddfa7cfbef2b8f98651f51d3a3f38dcad6" }, "mengsan/assets/cards/mengsan_ic_fiend_fire.png": { - "size": 3445601, - "sha256": "8e10353d6717f4f649acf821b3e3b4af70a058d40aef7e86ceef3b70fb413d5f" + "size": 277055, + "sha256": "701ff87c2394c59e674abca313a4ed11ec754a1dd2aff47d08d65e69bc4244b1" }, "mengsan/assets/cards/mengsan_ic_fight_me.png": { - "size": 3312407, - "sha256": "3bd8d2bf23c8fa667cb40297716218bb55f3cceb12e77b841651aebf9c7f5545" + "size": 282457, + "sha256": "cebfbdd33a0fba5b5f464dacee6c780e006208e86a73e8ec3a8964ff46cff0a5" }, "mengsan/assets/cards/mengsan_ic_flame_barrier.png": { - "size": 3459567, - "sha256": "c73225d6181f96b6d5f35ef306d858c73b60d3af986cf0232e704374413a134a" + "size": 280002, + "sha256": "7ddf27c302f035ab69503b072912d55f8d82d1b1842f11c6dbacde90f1110264" }, "mengsan/assets/cards/mengsan_ic_forgotten_ritual.png": { - "size": 3345779, - "sha256": "8a2b56f31440771c5c853d1dfe9860e507675b9d330ff0a48f7d11762e51f537" + "size": 281565, + "sha256": "ad78b78f6e2df161e6adb776bfcf6bdf3bd246908d769dd5fd9b0010449ce25b" }, "mengsan/assets/cards/mengsan_ic_grapple.png": { - "size": 3215001, - "sha256": "512ddb86f8ea7489b5b292cdcd4f0d7d892ccd7c4a2bba0e218c06325f23646c" + "size": 283038, + "sha256": "91c01d8f4e752bc86f279026fe28aa59f3bb392ffc05cacad3d8246eb28b1604" }, "mengsan/assets/cards/mengsan_ic_hellraiser.png": { - "size": 3258334, - "sha256": "b0a15fd06317803c7f29537a03527d41ae430f53595a7ff92ba491cdb068b76e" + "size": 284015, + "sha256": "c4192aa411e1a856541dedd8c2fc5bd65cb19d93f78601370adbb7e0b14a3d79" }, "mengsan/assets/cards/mengsan_ic_hemokinesis.png": { - "size": 3582165, - "sha256": "e7392585c268ccca314b9be969951fc803e011beaf2cc3c72d578c0561b674d8" + "size": 285990, + "sha256": "b0e34131c20486d348bb251e72fe90daef35eb8fe1f3f039072914d92b14b094" }, "mengsan/assets/cards/mengsan_ic_howl_from_beyond.png": { - "size": 3196502, - "sha256": "801203f8103404b55c861450d104866975eb2dd379233c8d19de370a83c4ea9d" + "size": 271644, + "sha256": "d70d78d493e6ce8833d19c898a3e7f4f91d796bb25419fad43c5c2290e127ae4" }, "mengsan/assets/cards/mengsan_ic_impervious.png": { - "size": 3398556, - "sha256": "45366fc69d3c6b7b91fe15611c76f693fe2f445406e53ef582b3379447759f18" + "size": 291942, + "sha256": "c6be856ad7f613a9d1b224a6828327cc3d806bdeb30edee084b2b024c2a2eede" }, "mengsan/assets/cards/mengsan_ic_infernal_blade.png": { - "size": 3081535, - "sha256": "10cfbfdd41d76c924f4c6fa74f57dc6546c181f26602c091e602ad0234b4ee07" + "size": 272334, + "sha256": "fb3336e31b3410ea8816ec07978a38f8c8b48318c60a3c5076817f9253d1af87" }, "mengsan/assets/cards/mengsan_ic_inferno.png": { - "size": 3389310, - "sha256": "b1108d5cb2cefa40f9a4a5ea13a924a2624a57b4ca7c2ae8b7e7086ba09b090d" + "size": 284674, + "sha256": "29d668178da39d120f696cc61070724896544b956e4ea39e58829b51b096dddc" }, "mengsan/assets/cards/mengsan_ic_inflame.png": { - "size": 3236167, - "sha256": "f9ee9fd58e4d5e74669665e0cbbc9050a0b61aa3ec2a798f97da97c1a6d44e1c" + "size": 286512, + "sha256": "d0a2e4f6b74104a044c007b18c65322def8f93f9ff466032431aded78b2e35f6" }, "mengsan/assets/cards/mengsan_ic_juggernaut.png": { - "size": 3433571, - "sha256": "4faca2d750999826ca934c45ea648850233b4038207b6cf1d5f05eb6ffd34f49" + "size": 289780, + "sha256": "1a8d78383b168b8309d7259201a266297281ca0fb56ed4f9f443bfe79a13181e" }, "mengsan/assets/cards/mengsan_ic_juggle.png": { - "size": 3320003, - "sha256": "d3f8d1394131b5f7d6cbeef9b8eb89ac25b0c108d79267210d5b6f9f7adcf513" + "size": 287046, + "sha256": "7ceb0f74cbd69653a24afe5e2618c224b0e86921e54534668401cfc7efd93769" }, "mengsan/assets/cards/mengsan_ic_midnight.png": { - "size": 3163175, - "sha256": "e0f68012e73f192a2cc169235eb0b49f27b6991c37a5e8862cdb4f32d010d39b" + "size": 272404, + "sha256": "d4653cb196c2a7e23bd235be2175109ea5b1a01091eaa5fe23fe43adc3b55ced" }, "mengsan/assets/cards/mengsan_ic_not_yet.png": { - "size": 3398829, - "sha256": "dddcd2e90d84883c33653169df1591633b944932aaaf6f34f43be10724007515" + "size": 276205, + "sha256": "f4ec82032ded94ffe2cf52b8ec0f9a8e6f9b6ae7dcf1ebea768679334efdcd33" }, "mengsan/assets/cards/mengsan_ic_offering.png": { - "size": 3358902, - "sha256": "a8ac083487185734223c31e1e428f9ee78c0dad7e6e37baa201bb33a44e974b5" + "size": 286348, + "sha256": "ba4df8f33423d64efaa11a7433636d4e6a856c13695b0a0de0ad83f5177ad0cc" }, "mengsan/assets/cards/mengsan_ic_pacts_end.png": { - "size": 3444230, - "sha256": "c23a5eba95bf6d44519eb890580ac576ea5477f96345cd9c58b03183d74179bc" + "size": 290271, + "sha256": "d061728b60b3e034ab04d2157c796a8f97687b435351866982388bf3b6e35866" }, "mengsan/assets/cards/mengsan_ic_pillage.png": { - "size": 3371280, - "sha256": "f7aba0b71d6cbd43d6de528713e7b2ca015c35a99826dcfbd8cb04f9d8e4c684" + "size": 291912, + "sha256": "a424a0810cd9fc7bdced39fd6904ae5cff475115fafc725c0bf726dbce4db857" }, "mengsan/assets/cards/mengsan_ic_primal_force.png": { - "size": 3284334, - "sha256": "c3b0d479166fae86e39f60739118fb993baae2d9c2e0ff2bc0b606d95b436b84" + "size": 283856, + "sha256": "3d7edeb8c8f1eb0e8618a47fa0b69863a798bc5d43ebd2b3be36e918de5798f7" }, "mengsan/assets/cards/mengsan_ic_pyre.png": { - "size": 3272678, - "sha256": "e29710c3846fbe3571460232bbe337f502b1a5cb3928774b0796b16339030e3f" + "size": 274583, + "sha256": "e34631b6111df2949a1160693bdd3ac9f026857c53bc0929c500ae15e6eb07df" }, "mengsan/assets/cards/mengsan_ic_rage.png": { - "size": 3254815, - "sha256": "178f291ccb5760f122b335b63963432e0e547f54b6d2a94b95641c382e60b708" + "size": 286146, + "sha256": "a90e6dd8ef551cab903c75da07800d7ec203d6c055c32bc5d292d50d5a080418" }, "mengsan/assets/cards/mengsan_ic_rally.png": { - "size": 3208925, - "sha256": "5ca01c9b5ab51118da8afe5f5019ac9c8394d21c3153260d307d3c1e83de9159" + "size": 278772, + "sha256": "19e97f203eda683749b39125ca4e55b979a03a397cee6bc8c0fe516065d09d86" }, "mengsan/assets/cards/mengsan_ic_relentless_assault.png": { - "size": 3157513, - "sha256": "d5093dcfc00a559844f160f6a07a32c5633047312f04e2c84cf385850f4565c1" + "size": 277053, + "sha256": "91b3099fdd45ce4793dc6620519421af2e198782b710a4f0069f227c32a2e0c8" }, "mengsan/assets/cards/mengsan_ic_rupture.png": { - "size": 3242389, - "sha256": "a7d85597a367d43006abb2bc54fc1adade5f1fe396d80aa64b1d1fc0790c5517" + "size": 280778, + "sha256": "ff355f5f28889c0f52c79a169abfdf07d5e7f0f934d5615bb888ba82e518864d" }, "mengsan/assets/cards/mengsan_ic_second_wind.png": { - "size": 3326737, - "sha256": "c00a2886359ff2cc6e067de86ef0126040934bd079e1d65b12a58e749bbc48f8" + "size": 288240, + "sha256": "fd59f3dfc89d5f2203c2f73d37eb1b6be929e86e88a76360b2b79acf423f3a11" }, "mengsan/assets/cards/mengsan_ic_stampede.png": { - "size": 3340733, - "sha256": "3e7ecc806b9c528cdd2e2de45eaf04926e9fd0a49a71ae06602e1fb9938e6804" + "size": 286742, + "sha256": "1683abb1cd4a04876d04054a71217dcd57aa21fd9a9562332caf9a9fec36d481" }, "mengsan/assets/cards/mengsan_ic_stoke.png": { - "size": 3224630, - "sha256": "2f2947c935a95aa22e7aea17e5b684e8077d0ccfd56348d404a3dea40e428850" + "size": 274723, + "sha256": "0c87883f06657ac82988687710d999cc519cc505bef60c998494ab94fd31f549" }, "mengsan/assets/cards/mengsan_ic_stomp.png": { - "size": 3230547, - "sha256": "ed2a8f438c40c486e4efbc128c45bce568137d3d87a4d97ad2a3b69317e43342" + "size": 282210, + "sha256": "85f63f23137dce14ed09f1b5d2f04375351e259168225821770882161a6369a8" }, "mengsan/assets/cards/mengsan_ic_stone_armor.png": { - "size": 3409260, - "sha256": "f72619cfaed0d7b433dc58a6204751e292a4e69cde3089417ce346894ebe683f" + "size": 291873, + "sha256": "9891d4a8157d0f6ff1f3330ecb780260d2ed39ff72788e9753d1d5a636c4cf62" }, "mengsan/assets/cards/mengsan_ic_taunt.png": { - "size": 3260651, - "sha256": "122103d43fb1053d12d172c2a488bae9f7a6765c6d36ea2d3b13412a2de6e33d" + "size": 282698, + "sha256": "f94d828893a7c6dd327713c0b872b1d73be99793bf63ded6c6a16c490134f024" }, "mengsan/assets/cards/mengsan_ic_tear_asunder.png": { - "size": 3318965, - "sha256": "df905976f4888b4eccc1418591a38c725f9c45cd579097adbf255c5f3ba2aeae" + "size": 281800, + "sha256": "6413c5272babc2636c97d76014b6fc40d769c3704b91df99012e6511986ada9b" }, "mengsan/assets/cards/mengsan_ic_thrash.png": { - "size": 3408839, - "sha256": "8277ecb7faf2df11ad9e05de620b47ea44f20a866ff02fb9ff042ec8479bfad4" + "size": 285268, + "sha256": "b14efee9ffd36f81642a012c8221a9450eacaa5b2dd00a2c5e27685e4db38673" }, "mengsan/assets/cards/mengsan_ic_twin_strike.png": { - "size": 3465328, - "sha256": "a2e60f67dfff10789fd453f1525941238389786f3dc5e71788a30d312b751914" + "size": 294861, + "sha256": "da1f3e62917e32af6075d4be404e30d59fafe262cdf39eb8dbaa2c9807a5cbd2" }, "mengsan/assets/cards/mengsan_ic_unleash.png": { - "size": 3412724, - "sha256": "3dd9906996d07deaa06e1b56839609175a1d9d88bccdd9237465844c3e5882bc" + "size": 286537, + "sha256": "c012976e9e8d7d05156812994fe07c937c6bc30d94680ee1d656f697ae6911cc" }, "mengsan/assets/cards/mengsan_ic_unshakable.png": { - "size": 3286732, - "sha256": "a7540f94fe98fce1434928b6a204f96f2f036a3db81579e499b2a31a7d9c6184" + "size": 280071, + "sha256": "e2251ad2c80eccbc947bf709a5a509ddc259b81bab9710493ee2b085215c17f1" }, "mengsan/assets/cards/mengsan_ic_uppercut.png": { - "size": 3369967, - "sha256": "0935723010a4fd761821e827e6d456a07c63ac937beb0ca8421415d2bd67bc9d" + "size": 290682, + "sha256": "e831ba734e7872528b687d161644b5e735630bb26dc88a4623b302a4743f0a6d" }, "mengsan/assets/cards/mengsan_infection_shuying.png": { - "size": 3154682, - "sha256": "7a47a79522cf9c684efce578b43197936a37feca7e229097d86903118e5a5862" + "size": 276669, + "sha256": "b1c457adceb378b8a816f4f33531a44e8f8fb0787296f104649b9584fd378890" }, "mengsan/assets/cards/mengsan_jianbingdaji.png": { "size": 295064, "sha256": "379b700ebba9843c94f63b82ebd68536e232a0f5b4f4e093b055ae26023a83eb" }, "mengsan/assets/cards/mengsan_jianyi.png": { - "size": 308533, - "sha256": "8440f6dc36bbc3fec6bd7406f2a0623aae37f63e7cbc1a7dc7b912805f4c9f38" + "size": 246696, + "sha256": "3c79ffad964fc6c47a779250bcb2db050e973e77d9c4d85ec7facf0c2ab2b9fc" }, "mengsan/assets/cards/mengsan_pomie.png": { "size": 299414, @@ -1243,48 +1244,48 @@ "sha256": "2dde2cabca61df441a98daf41f82a66c6343aba7337b3b650d63e01dbedf56c2" }, "mengsan/assets/cards/mengsan_slimed_shuying.png": { - "size": 3173387, - "sha256": "6185d04b40409525e0eb8268eb55ff0a047ad68833169230936dca937c37b05e" + "size": 272310, + "sha256": "628e65fe0b93ca2f9f769a3d21d2d764b86e9a0f7f8d6945e7d4c0350a5f807e" }, "mengsan/assets/cards/mengsan_songjianwushi.png": { "size": 299499, "sha256": "fb9db91a0ceafd18e71b15807bc994a93797a0d438bb7d8fe4db459adfe11534" }, "mengsan/assets/cards/mengsan_status_beckon.png": { - "size": 3089872, - "sha256": "ec9aa4385fcffa00030390c2bf02ed833cf7b4200d268955831949e3deb4c22d" + "size": 275940, + "sha256": "7151d406f0f84200274ae097fe2f0713faebbb529b44a4d70e16c25d841a32d3" }, "mengsan/assets/cards/mengsan_status_burn.png": { - "size": 3202565, - "sha256": "fee1bddc02b755972e99be68fd354ec69cb9b6286a15c9c8203ed2708bb29904" + "size": 275450, + "sha256": "6ecb4e9e00a34ec107f2ab819bd5cb4d53e8a758c0636457af7b0291603ba895" }, "mengsan/assets/cards/mengsan_status_debris.png": { - "size": 3212683, - "sha256": "8f251585e1487a3d8c04111eaac50ca7860745a8386107c0497f777fdc2ac3ec" + "size": 273356, + "sha256": "df7b1a6688b3593f21156d002a3cbe341b59914df2d677d0d4d91f7c3bee59b2" }, "mengsan/assets/cards/mengsan_status_deprecated_card.png": { - "size": 3211849, - "sha256": "9dc7828e6e5559479d48a2f26144ca40ee365b5587183496d41085bc01f7464e" + "size": 281733, + "sha256": "4513f24a0d869fd7a8ce2b0f73eee82cedf728ba29c569149a954077a9b25972" }, "mengsan/assets/cards/mengsan_status_frantic_escape.png": { - "size": 3331510, - "sha256": "e5b328f4f8efae481d25ef7fc2739c4f614ff05ee65799363a4194e229406526" + "size": 284940, + "sha256": "2d0d970b649f953cf0669c1b84148bff34f6c29973cbe057eb5854ce885eb594" }, "mengsan/assets/cards/mengsan_status_soot.png": { - "size": 3164859, - "sha256": "885f2f1557cb9483c0bc0538c6eb3f1abb017809883d24a2f864732df4e48bef" + "size": 276940, + "sha256": "9552ab959116a6affd80ced87a995bfa2f5b64e78d4f30d2d61fbc9eff869b1c" }, "mengsan/assets/cards/mengsan_status_toxic.png": { - "size": 3047189, - "sha256": "d2e6f92ba539b91a21cd3eb836f2b28c21e81548fbc1fcbf1686680533bc39c6" + "size": 275844, + "sha256": "f0739dfb734f439885d835e771e1f28f637998607599bdb103196c277b456d47" }, "mengsan/assets/cards/mengsan_status_void.png": { - "size": 2969653, - "sha256": "63ad2acb439b474b93a250398cb153063c01c74ddd4ce7c82a8717f743495ef1" + "size": 272942, + "sha256": "7ded29e99a7afd2800d8abf26330e763496927a8cb85840e01ee2109311b692a" }, "mengsan/assets/cards/mengsan_status_wither.png": { - "size": 3329606, - "sha256": "265095ea049e38be62725ece19e91c15ff6abb232a4276779b93555ce0dccad1" + "size": 282926, + "sha256": "6c75a9f900f3874b2d2a75b46bcda8e7459622cfee9b6aac3ca69069df5a62bb" }, "mengsan/assets/cards/mengsan_tiezhanbo.png": { "size": 286763, @@ -1303,8 +1304,8 @@ "sha256": "2d786cf6078dbf1ea545886bd98298c867fbbf4c5f0fc1a74f28a2ac8f06cc1a" }, "mengsan/assets/cards/mengsan_wound_shuying.png": { - "size": 3102499, - "sha256": "16aa7c0485416028c1ac4990ceb6d9f850dc93d63a74bfa3514dfddd101f6c29" + "size": 263671, + "sha256": "0200dc20035003f354822e5c545fc9a8cff53469f7c0085a9931c4d67d866c1b" }, "mengsan/assets/cards/mengsan_wuzhuang.png": { "size": 297615, @@ -1639,96 +1640,100 @@ "sha256": "f4d6e551a3098ecc869c6b53e8d24be50e8ca97f399ab987b96f32a53c75a02d" }, "mengsan/battle/battle-director.js": { - "size": 13125, - "sha256": "a82a031a5d92f4e734625a40793db883ef96bd4c9b56bfef5bc56f2b982e4aea" + "size": 12944, + "sha256": "ba3adfa4793a1ef3e2da9959a39fad62789fcd6f41b84e9e342c81ff88edbbff" }, "mengsan/battle/battle-flow.js": { - "size": 5900, - "sha256": "1ae2db34176a7fc5d19e5001316e1f2aac4b1a883662bafc43af8cb95775970b" + "size": 5801, + "sha256": "9ceffe9539c1d303f75eb23e4512554c174e602f85f53e9f9a37e2fb1afe7bb1" }, "mengsan/battle/battle-loop.js": { - "size": 3652, - "sha256": "8ff23c71320c91cee2955cabfd8384190a07b80cbddd44bba50fcf9fef4daeb0" + "size": 3565, + "sha256": "0af53c3d317fe9816594c2786bf5a1bfa960babf0c135b9b4d524794730efbcf" }, "mengsan/battle/battle-resources.js": { - "size": 3095, - "sha256": "0da540600249f9addb23eecfc218930c2a376a0f357eb3a16b628d4c20817020" + "size": 3040, + "sha256": "6e29789023111c4f7b91a11d7169069cc6b9d0087a3451d526233fcf03f389a2" }, "mengsan/battle/battle-session.js": { - "size": 5561, - "sha256": "ab9880fc1934a87d1ca6640778605ec33e9812c94930567f868a84fd29e56ad7" + "size": 5455, + "sha256": "5e50205af67054761876aa37fbd02ebefc3225f8d1a90afcd708c215ae8e5518" }, "mengsan/battle/battle-settlement.js": { - "size": 12024, - "sha256": "74e6647cf5ff050962c3e171c1f48747e7a373fdcd5fc35b3ad9c170cbe8931f" + "size": 11994, + "sha256": "be8ef59f8dba0c9cd1f3032ea1de1615058476d1a591c1858b4fa180a13ee578" + }, + "mengsan/battle/camps.js": { + "size": 2386, + "sha256": "51ee6d2aa78261bd60b2ffa2662b7a37e62b516c379b8cedd46ecf0466630278" }, "mengsan/battle/combat-rules.js": { "size": 5966, "sha256": "e540dc2e2eb83ac20868252cef73373d6c807455d57f220949aafd1f762e3828" }, "mengsan/battle/death-blow.js": { - "size": 1151, - "sha256": "aa3ba0da315ae81ae8430c50a57203889838adac8d533aa5400a4bb9976becf5" + "size": 1113, + "sha256": "d0222776b90acacd2fc672559bf59d8c0376cfae68294d5a9603551ed182a0c1" }, "mengsan/battle/engine-session.js": { - "size": 3763, - "sha256": "1addfa8f6a6e1e56d2dd32b6d1249ef84aa0aaa1ca049a7e0ccb688be51261bb" + "size": 3680, + "sha256": "6aaad4dd6641caea0c0e02028239e355a7b83c3d53b64f704989b56376855750" }, "mengsan/battle/intent-damage.js": { - "size": 1298, - "sha256": "616a18728b31677b70cc14b88af027c4cc912ae90f11de41355b900ed2c29ea1" + "size": 1266, + "sha256": "c0efe2d26f5ee76f090c5ef04b8607def99ad1a3315dedd5c2b8e42aff218a7d" }, "mengsan/battle/intent-effects.js": { - "size": 2411, - "sha256": "0f3dc871427bf718b64ce057a08d6b98b100e66fad9f803662818b03cda1e3c1" + "size": 2311, + "sha256": "5fc1c57b88c996b9ba1ff27d220749001acecea028950479c5fc4bf26b854fe9" }, "mengsan/battle/skill-teardown.js": { - "size": 6849, - "sha256": "5f92d02d245aa3021ea47b245b221c58987b1e5770fe4329eef6ae733b0810ff" + "size": 6702, + "sha256": "49116eed862780a17c9d67182b103bceec3b28621355e16f7351b36520896320" }, "mengsan/battle/stun-intent.js": { - "size": 1340, - "sha256": "898f9e64b80c5a963229eed340455f810eec2c1777bb98ba599d56101ba11bf7" + "size": 1295, + "sha256": "3a73747311bbae29cd03a3327f0ff398aa085f2d2e480d4013f2f8f15d09f810" }, "mengsan/bonds/battle.js": { - "size": 1771, - "sha256": "bdb4d429b14b98d7d5434afb2d11039938b7eaea37cf5f87a3fba86fc958b254" + "size": 1729, + "sha256": "702bf42803374567630ebfc87515d14e6e7a8c3e33b49f16bdc98ac5e1954451" }, "mengsan/bonds/definitions.js": { - "size": 2505, - "sha256": "f2c02c24fa7704ce4800969c5e4183840c556386bb4fe29a51ef25070636c3df" + "size": 2464, + "sha256": "2ff3db8f5db20416f218b184ad980b9adc93d82197a6f296726e0c76a49e2abe" }, "mengsan/bonds/intents.js": { - "size": 2952, - "sha256": "935f5f1ec90ba7e0cd0539db9c51ad5ba11e9063bbbd060a56f4ef6c34bfe00d" + "size": 2888, + "sha256": "514212bec0e6b523a0eea5857212d3369da4eef84cf812866baf5e9a4f3407fc" }, "mengsan/bonds/state.js": { - "size": 4436, - "sha256": "ea5e5fd29a695a6d65fd1ad4aeb8ed97f5dfbdb3b34f8748f099140cd27341e3" + "size": 4372, + "sha256": "8117b0a9c4b9c56ffa7ce8b367ffc89dd69ddacc19f93114c8fedb894cb8f33c" }, "mengsan/cards/affixes.js": { - "size": 1124, - "sha256": "f65993cabf6fe9b01e9a41de4ff0d47aba56eb67cd9e00d4a67cd87d9ed9bce8" + "size": 1114, + "sha256": "6f5a0975192aa3b159c3c6886a0214fd101869fccd866d2de831afc56f3fcb72" }, "mengsan/cards/battle-card-copy.js": { "size": 1737, "sha256": "acffc9c0ecc7d22985f894522376e13d39067e71cf1532f2a2cd8d9466671fdf" }, "mengsan/cards/battle-card-reclaim.js": { - "size": 1551, - "sha256": "397a0c05591122d91bed20499cdd0b55f3fddcdaa6a2d6cf8d7f4434c1306feb" + "size": 1522, + "sha256": "c38d2f86719d682027be75e8a30639cabeb1cf4d7db87aef2304327181161fe8" }, "mengsan/cards/battle-energy.js": { - "size": 1502, - "sha256": "cee19be46c41d274bf706c2add12f64834980ddb32526862e78de37bda28caef" + "size": 1469, + "sha256": "dc1e4e9c215a5c3c3a93c6637c72dfd54e622688a243618a4cfafdbf77130af9" }, "mengsan/cards/block-draw.js": { - "size": 1197, - "sha256": "4770aa0a753b80d103e3c087bbe2046609e99a05dcbc5c388526ba87c554b7ce" + "size": 1178, + "sha256": "fb93243cd983e35e4aaf95fd4f4ea9012cdb62c62ca0d080703918f5364dc5fa" }, "mengsan/cards/card-data.js": { - "size": 3457, - "sha256": "0bafffc9e6e9c6bd8bae74948bc9b1742450adbda6a9dcb80206054c27bfbbe3" + "size": 3405, + "sha256": "a943104aa2e0115b21a40ff03cd46533680bfa4d088e8906f54bc1ec99c798d0" }, "mengsan/cards/card-definitions.js": { "size": 3006, @@ -1747,16 +1752,16 @@ "sha256": "a37daf0e29fb05f8248ff3b9c9777e68e2dab6e7cf86a3c53510e099a1e10d1d" }, "mengsan/cards/hand-exhaust.js": { - "size": 2673, - "sha256": "904bd21885750bcb5cabee5478d74a9f5e61651d2b9aeaff1f7b41559f1665e6" + "size": 2627, + "sha256": "36c64653a3646921f511d2721df69f7c75e6a38a11abaa5e2b09280aa0d38b98" }, "mengsan/cards/hand-upgrade.js": { "size": 4359, "sha256": "599859fc9a5283655778816847d2edff52c787b47b41f1e5e6fc6ac2160caed7" }, "mengsan/cards/havoc-play.js": { - "size": 1921, - "sha256": "dad0d45cbbd0a8f13a9aa0c238d14b3c6e7553eb3795e3291e2c53d5b69bd7d0" + "size": 1885, + "sha256": "60292a9bf9fef09c4fbb3cbc5ac4e87267f1b0a01650f4ddd2a23d4f65e33bb0" }, "mengsan/cards/infection-card.js": { "size": 3056, @@ -1791,8 +1796,8 @@ "sha256": "4a8f9d61ba438ea3ba2e857f0b81bd85bee2ffc1c9bd0bcbd18dbdeac36aec8f" }, "mengsan/cards/packs/colorless/data.js": { - "size": 32174, - "sha256": "4ba74b97668b97b99099efd19fdba2e81da02e2ab3764b332fc71cbd135b87cd" + "size": 30960, + "sha256": "6d4b62e53fcbd2a509d335670a07a75b5dce1268bc146f27a10113c68b86e0a5" }, "mengsan/cards/packs/colorless/index.js": { "size": 382, @@ -1803,16 +1808,16 @@ "sha256": "af212d7c4cd8f63c5837e8f29519cd341b775135fa332f8a0f4f82eae4ac349d" }, "mengsan/cards/packs/curse/data.js": { - "size": 6704, - "sha256": "35d43aa2ada598257fe0d0c18f5ea746d67429c0d9a3d73b145dedb363fe50df" + "size": 6436, + "sha256": "a85d48996fe637e1bb8b976d370e4fb49d1a2bb1e1dd6e9befc1ff6fa1827d9d" }, "mengsan/cards/packs/data.js": { "size": 902, "sha256": "4f04d425ba55670fe5707ef189dd3b74fa9934117fc5929c0f1b9b67c874863b" }, "mengsan/cards/packs/event/data.js": { - "size": 14820, - "sha256": "0badede4d570d625e371f3e06750d708c381f2eff3f14e54f1a803690f28c1c9" + "size": 14249, + "sha256": "b195639153c1cb6a3ac48d5af364c9a915a34e96d844ec4e4848d914e5896017" }, "mengsan/cards/packs/index.js": { "size": 1109, @@ -1855,36 +1860,36 @@ "sha256": "ca6d9887fb9f8978c34ade455f564b3a0a52eceb5b844447e863390acdb3bed9" }, "mengsan/cards/packs/liubei/traits.js": { - "size": 8277, - "sha256": "38e1b081a3789f3760c4a0889b34803667006b326dce1f8e2aa2c862d997a549" + "size": 8178, + "sha256": "bd813bd37feec90300edd14d3d23fcca301d75ff32fca096555e3bbc35bd162d" }, "mengsan/cards/packs/rewards.js": { "size": 327, "sha256": "e7f15d41aa526c6b6ba93b137dd2e31f63fbace91d1bf8c3f8dbdd0fa6ac3176" }, "mengsan/cards/packs/shared/data.js": { - "size": 405, - "sha256": "93244ab064a100fa9a93f0cb19acc1d22b6ce17036b2f5cc71fd4f1db42f8497" + "size": 399, + "sha256": "ec004403090107d462d6948751154b03ad6f88a16ac6a844d1898f79e6184386" }, "mengsan/cards/packs/shared/runtime.js": { "size": 41670, "sha256": "f1f6541bae4da3d38911e62f51fc930270c16b5a1b2c3a4348c0712925396a7d" }, "mengsan/cards/packs/status/data.js": { - "size": 4513, - "sha256": "16de512e265f4062ed9fa077d655a416147308b72d0893348c0ad8c27f5b89b3" + "size": 4334, + "sha256": "7ca46d39b6f3cf99189d86811a4d618dc759117c66e796a3e00ec70621765dc2" }, "mengsan/cards/personal-piles.js": { - "size": 24202, - "sha256": "47c23c71b36d6643953a783b3a74c85494cd2f04880d9cbfa44db69e47cfb32f" + "size": 23856, + "sha256": "c02754f949c5853dbabb7e2df42189f82f994d6cc6fb3cdab57a3df784d0f03b" }, "mengsan/cards/rampage.js": { "size": 5265, "sha256": "7563d2316cece8ab1d9b04de28b47e4562b82ad8a6dd493e1c7f64e726a6a94c" }, "mengsan/cards/random-hand-exhaust.js": { - "size": 1293, - "sha256": "486758ef934e381bd825a46b07e140f5f28e08eceadba25dd9f107ffefe80372" + "size": 1274, + "sha256": "7729cee9b27b696012e6ebf5287fa828e7fa6faf5a68a963a5529e2e9ee2fae6" }, "mengsan/cards/rarity-data.js": { "size": 440, @@ -1915,20 +1920,20 @@ "sha256": "6cef9cd617cfce569238dbc90db242140724a4da3e4963581649cd1848e15d90" }, "mengsan/cards/starting-deck.js": { - "size": 1668, - "sha256": "89367f707791d9f275b5fd5b6cf54b4d47e80fe9133b4a314a9a0bf4b9cdea3f" + "size": 1638, + "sha256": "44b221d309a96884a51f9ed402b4625200e61ab3c2af79db450102ad0813a37b" }, "mengsan/cards/status-cards.js": { "size": 746, "sha256": "a2c623938bd4d9264c605899bb94cb6599bfcd962ebb5c06a59cb084236ab325" }, "mengsan/cards/strike-counter.js": { - "size": 1534, - "sha256": "a3de2b465d19a2f14de20ad51e915b4e3459def64fb355627ed2791865a83af6" + "size": 1503, + "sha256": "a1058fe9ec2f8d3bf21eae61326cc74435bce25a49a67ba024f0c516065a4e89" }, "mengsan/cards/temporary-strength.js": { - "size": 3764, - "sha256": "5b843d1f9367108e190a4170644c644f83e113d728ada4fb7d2a997f12ea2fc7" + "size": 3689, + "sha256": "f9720c6896583b3a7d682949945414ef6b6c1d17a906cfa6c8968c3bf5e455fa" }, "mengsan/cards/upgrades.js": { "size": 1892, @@ -1947,8 +1952,8 @@ "sha256": "2ac15f4252546c183b3de546bd6134a75f8b42ea67632f0d57b8fbd35a8796ea" }, "mengsan/config.js": { - "size": 875, - "sha256": "7fa71a17b12d31b1e8ce279b396c0969ddcf8986a6d6ce9e9583aa476b4685c9" + "size": 847, + "sha256": "738e1aa69e580ea2540827248cfb551a99da7d8096184e089705a90242662031" }, "mengsan/content/acts/act1/encounters.js": { "size": 3800, @@ -1967,8 +1972,8 @@ "sha256": "82e43fbd9e9ad997cf07cf5c633ae63f1fe7564156e0ab9429e6c2c713689e23" }, "mengsan/content/acts/act1/map.js": { - "size": 1793, - "sha256": "a43b1516a93509fa4035ae6c23d4b106566248161a61eb15983b36e0c9495747" + "size": 1761, + "sha256": "cdc3ef153ccde6acac639c1ebc16383fe16e8ffd52935f915b80f27c95ecbb2d" }, "mengsan/content/acts/act1/nibbit-pair.js": { "size": 475, @@ -1979,16 +1984,16 @@ "sha256": "a18f6bc3b1074bdfda23a8ea7887e4fd581a88698045f49e2ea94a6b989ea412" }, "mengsan/content/acts/act1/rewards.js": { - "size": 797, - "sha256": "dc9c450a77abe5cd35c4ab46dc8833e49287a9d63fa773bb0da1fd64525eb77a" + "size": 772, + "sha256": "8a6f09e56748957693bfcf7a428670a3fbcfde90c746278e8fa372a51a32d3cf" }, "mengsan/content/acts/act1/stories/forest-ambush.js": { "size": 5225, "sha256": "de94b30bafc2e4251a6a70ecaf4b1ceaf300cc2750f71d30014971e1c389b240" }, "mengsan/content/acts/act1/stories/liubei-opening.js": { - "size": 5731, - "sha256": "1d61fbea5194a1960d9e6bc95d0f5b733687afae7d769a1ac9e0846be97341b4" + "size": 5658, + "sha256": "23195b5af712b591d388c9d874a27a2cb19e70bd7a966fb88228bc349353eb99" }, "mengsan/content/acts/act2/index.js": { "size": 129, @@ -2011,28 +2016,28 @@ "sha256": "5f1cf6053693df8992cdece2a818ea56cbd6ddf023a60e42e2d0e54e27426fd2" }, "mengsan/content/registry.js": { - "size": 7581, - "sha256": "71a6aa7e0048992fb38e0a3084f793f4874deefd614bbba3a84d22dea45e0a7a" + "size": 7479, + "sha256": "436dd3b3cb759045765778a3cfa1cdc93264646ed97b191197fcb2ec19e1788c" }, "mengsan/content/scenario-characters.js": { - "size": 9835, - "sha256": "608a47959212ece33171e7d12c2116701e09dac98634f97279e294192e03dfc0" + "size": 9732, + "sha256": "c2678ddedd3349829eb9b3daca1862842ea6da2e928f8edda41c62d4d72e884d" }, "mengsan/content/shared/index.js": { "size": 126, "sha256": "25625b636c2b82e58c0792c40b7f32562abca99e0fd7861b73a74cdf40c708af" }, "mengsan/content/shared/rewards.js": { - "size": 9046, - "sha256": "ed2b83da3e322cd6e1d2bf15c5011757faf380e1b8343efbebdb06c83c311736" + "size": 8893, + "sha256": "867ac35043e5ae50a20349f944f2514c5e6201b71f2f92ca9fd28a0a26fe11f0" }, "mengsan/mode.js": { - "size": 113891, - "sha256": "a4f7498ef506f894890fbcbd3058fab0c13876657d3d207b3e99be9829702577" + "size": 113283, + "sha256": "dda3ece26a917cfe447fbd55ea3ca8f6f791efa5aa352267d898814936bf854b" }, "mengsan/monsters/actions.js": { - "size": 34417, - "sha256": "97461914dd3a40e0bba6cb5e1ff41fe34208ab996dafcc64ed5a33d0d3cdebc5" + "size": 33807, + "sha256": "4d07d53c1aa85278190217194cf68180ef428411dd89dafb5cdae7568a11500b" }, "mengsan/monsters/artifact-status.js": { "size": 2385, @@ -2063,8 +2068,8 @@ "sha256": "d2c2cf715e24090df2be4e68ff15d55dfdebf862ad87fdfa592bbf7bf20f2f94" }, "mengsan/monsters/flyconid-intent.js": { - "size": 1743, - "sha256": "6ff2be31555c591a872cc0ffcc7aea99a7bc9b6bd5156993f8847156eef8637b" + "size": 1705, + "sha256": "cd65c7e8004c4810eb5bafda7b20563900ec4f264cfd352e2607f9d6050ab631" }, "mengsan/monsters/fogmog-battle.js": { "size": 3856, @@ -2087,12 +2092,12 @@ "sha256": "3321a96df24d651c2bfea7a7ccfd920be20ae75fa2cb8543abb5985cf7501835" }, "mengsan/monsters/leafmedium-intent.js": { - "size": 1462, - "sha256": "ae373c29e39891992b857afaf11befac1354f163026a797e8bf13ad8d81b71ad" + "size": 1436, + "sha256": "ef04089133b4ec6157e48788eaa62c506a424c7e4ef479219529689f4b6bfc81" }, "mengsan/monsters/leafslime-goop.js": { - "size": 1653, - "sha256": "133da2f627601e79aa51b6eb87acff777a3ca60c74d142b0d205c40ccbfef3f0" + "size": 1627, + "sha256": "a65b6a00bf246951abed47fb66a6d476849d7cb427169524a1d2ce722ab4758b" }, "mengsan/monsters/leafslime-intent.js": { "size": 1403, @@ -2103,8 +2108,8 @@ "sha256": "23bfd30298779d9a41c28a3100fb026e17ecd2d1e066f0bb842c57a9ee56b833" }, "mengsan/monsters/monster.js": { - "size": 11658, - "sha256": "1464b42fce32b9266724c8f0eaa06923c1171cff539c337c96af1cc32bd7bc8a" + "size": 11416, + "sha256": "d6b6bbbece20f50da448adbba8f775acf5f155084008e8f44a61a30d2d1b2aef" }, "mengsan/monsters/nibbit-intent.js": { "size": 2292, @@ -2119,8 +2124,8 @@ "sha256": "e058edf8b6febadcd685dc7c16c05d90e8ba56c1d9b26c132e4ef2fc0e95d9df" }, "mengsan/monsters/raider-intent.js": { - "size": 2060, - "sha256": "b15b89d53914c472c3ef4f2e54e3551bb6a80cd783c21d340676189c2e22c948" + "size": 2021, + "sha256": "70580ade399e910e817e3929a41dc2da52bfadf36fb3b494a17a86effab27ee1" }, "mengsan/monsters/shrinker-intent.js": { "size": 1491, @@ -2143,8 +2148,8 @@ "sha256": "c27f58e02f08b87ed62865fc11bb3ae43b5d2098ac199c5714946d24e0afaa87" }, "mengsan/monsters/twigslime-intent.js": { - "size": 1299, - "sha256": "dd772c38e732ebcdda6e5b0ecd4725f73b36cb880ff156f3aaa64470a53633bc" + "size": 1273, + "sha256": "26a3437ffc95bec9638911537e5b572f4b12d8a94a06d6df358d73237a181830" }, "mengsan/monsters/vantom-intent.js": { "size": 2266, @@ -2159,8 +2164,8 @@ "sha256": "e8eb1e501af16d5da2157ff357bef3193233b4fbcd62cd823a4a6114124abd7e" }, "mengsan/progression/dialogue-choice.js": { - "size": 837, - "sha256": "e00707810480b281bf3e8c25923cf09997d06cf2dc3b7eea35c5a1a47c5cd3dd" + "size": 820, + "sha256": "b85e45995226cb30a488d5742c09a407ad9557d95e29136dd72fbaf695a4005f" }, "mengsan/progression/encounter-progress.js": { "size": 1555, @@ -2171,128 +2176,128 @@ "sha256": "c0b5fa06fda99cf4d06570cb7e95fafc141b355055d20b0bd8f7ff91f1c1afa7" }, "mengsan/progression/mode-storage.js": { - "size": 3833, - "sha256": "83ce9bb6191644f547a0dd79bd46ba86be149047b3e24844a4757270f6a09fcf" + "size": 3740, + "sha256": "7e266df0de15e4f2252600f10a21a09c01949680c1aaaaf5453591b9df3573d4" }, "mengsan/progression/reward-package.js": { - "size": 1561, - "sha256": "2cee489f48e5f9d4bfbb9fd1e50dc6d41cf9f778b21432e5aea1bb6730b21364" + "size": 1527, + "sha256": "acd839d139bef9d22036e7bcb7acad8c5f25aea1c2a615d224020d97f4e7f313" }, "mengsan/progression/reward.js": { - "size": 3332, - "sha256": "77e29120ef5bc20b27865c342e5abda0357063b591e226908f8c4bc0f5320c21" + "size": 3308, + "sha256": "31cb0895cfa98696cefd7301b967ba3652aee2c4401f7770e64d6a2cf68b53f0" }, "mengsan/progression/state.js": { - "size": 14841, - "sha256": "82a9b2aef527046c9ffb4bbfc470ec2230e6ec42881467a643655a5723a79269" + "size": 14578, + "sha256": "5cb6ac5494251f2a9ac68344862d74736e7ba076dc0e1eafdd06e9eac0923724" }, "mengsan/progression/story.js": { - "size": 737, - "sha256": "4db3cf98d5a102cf5bf6d3022b0bdb4c7d70430537e2c4a6a9e541822951f016" + "size": 718, + "sha256": "0719c33cf849fd2b647e4e4ff987560c5f9ea2a015b4acecc57269fb6b562059" }, "mengsan/register.js": { "size": 791, "sha256": "95290f693f1d5bbc592e35a3cd063201f46d5deffbd0e281682f371b02ae342e" }, "mengsan/relics/battle.js": { - "size": 5015, - "sha256": "976e13531625ba00d2941d482d36d9dfd5cf22d1b8de66b519e8b3b928f8a6c9" + "size": 4893, + "sha256": "e3b9977b9a20a2c85b3cb01792c996b5255920f455ab07ab537a6f9c915eb470" }, "mengsan/relics/combat.js": { - "size": 4101, - "sha256": "1fd264d6d07be511cde006ab18f14e5ac8170ad539083a20a3259b1b70548202" + "size": 4018, + "sha256": "d5d2c53a596a3772e0f0931f56b0db423cbc69f20847318a9aa77dfb1d2c0e92" }, "mengsan/relics/definitions.js": { - "size": 4707, - "sha256": "894f66d2a98761926655124f0cbd05acd20aaa8335d61d838fd3cd6bf550d224" + "size": 4608, + "sha256": "e974f83405153b994b9135cf6ed3998a28ac8313bd42042075db9460cf9edc6f" }, "mengsan/relics/rooms.js": { - "size": 1032, - "sha256": "88af2a408d062f78f98dded9e7de4a51c98468eefe217e827d43aa34e3a7410f" + "size": 1010, + "sha256": "331664f916965f8d72ac9db50a59c5ff4f18f7a95c6beb5eeb9e44d247ffd053" }, "mengsan/ui/bonds.js": { - "size": 4499, - "sha256": "2580f60f3b9aac29206a8e1198322505a2283bf81ea379d3a6ca31251f42d5e3" + "size": 4415, + "sha256": "275713f94c9ede664537104a1eb483ac198b477ecc3e5cca52bc51208b3b274d" }, "mengsan/ui/card-library.js": { - "size": 20776, - "sha256": "7d5d1be851490b9d1ccda7b3acf621bf2dbb608f47e0284a200ce788889d7f90" + "size": 20528, + "sha256": "b58a96859599082e83da6e8c9026619392cf9a72ebe7223d86e078de3ea14d56" }, "mengsan/ui/dialogue.js": { - "size": 7842, - "sha256": "e61b22cf27f810a45404e0d05969b03e0a6603d581f8cf7a052a3c30348325f7" + "size": 7649, + "sha256": "a405f315270c24cdb2c53ba4e211a3fd5bf9bb582335d5dbf910adb5622deac6" }, "mengsan/ui/energy-display.js": { - "size": 511, - "sha256": "37bc74971d52429c7e1c3d9d0c2dcccb29a61e968ac1bf4eb0a2330801d8fd69" + "size": 498, + "sha256": "b12157ac3008c0e63fb384fe5fefe54964b86436652c73670f6a4c4faa4ad1da" }, "mengsan/ui/flow-ui.js": { - "size": 3106, - "sha256": "f19d26b3ccd5579885bd9fe9a3444f4d06125898020b165acf91ad2d1f6a37e0" + "size": 3044, + "sha256": "76032d73c27bd3ba3a54064a7cfc1741f3fea379e26636da3037000943ef6450" }, "mengsan/ui/gm-manager.js": { - "size": 4727, - "sha256": "1ffcf493ffcc4d9b16911e81ff62b15693213355c3226270e5224b03042e8868" + "size": 4636, + "sha256": "e6feac7f157824fba6436330612267f98158a95c8db64b4ee5019e65d1fb8324" }, "mengsan/ui/hand/adapter.js": { - "size": 955, - "sha256": "dbec5a22b19ba7790c2118328701331b9065cdd7877ad237fa6ba635aad0ab6b" + "size": 935, + "sha256": "91adc86b2810e27bd09d07297ac427cbbc151936f4dd8736ab1413b4eab78a0c" }, "mengsan/ui/hand/diagnostics.js": { - "size": 740, - "sha256": "9ea7729febf7cba177dcf76ff8a65ef3c0f44ff3e8cc020bbb39a4654837293b" + "size": 723, + "sha256": "f41c12348a508a7a1505fbc311b9c4b3cf85be038cc93e467a5f094bf1e5dde3" }, "mengsan/ui/hand/fan.js": { "size": 4355, "sha256": "55e1e01dda7b4231c8e1a2fadf6ccbee39b5e98c543bc55500c6493cf6cd51b1" }, "mengsan/ui/hand/index.js": { - "size": 9105, - "sha256": "a236f0ed58ad3f7953cc79b04d688efa3c7a394d2fbeb3d5ac2eef15f7242fa7" + "size": 8989, + "sha256": "c4f602e6b397b84e96f47a43858a835dcd78a4f671b0e89143b6df088c01204b" }, "mengsan/ui/hand/input.js": { "size": 12278, "sha256": "b04df574792e6e4be7cce4e0d8bd682efeb091b9b752b40a0b110575442adfbb" }, "mengsan/ui/hand/overlays.js": { - "size": 3135, - "sha256": "d89e62b5c73b64dfbd2f449e95b6362d2273ef57bc8db72f552af200d3dc2ad8" + "size": 3970, + "sha256": "9e489fc939f97a21266764f1beccdda1cc3ac9df22f72c633647d7481fa4e662" }, "mengsan/ui/hand/style.css": { - "size": 35634, - "sha256": "c31ed6dd5b7b2e9d48125f8503512d3af2c0050cb9144dcfdc9d571c351450d6" + "size": 15492, + "sha256": "12618f7fd4acd54db197f1ca82dceed87b75c4b6003f02fcaa9054862718e692" }, "mengsan/ui/intent-display.js": { - "size": 10744, - "sha256": "a920a929183f2815c6ef4226af0585be0f876196b6a061e287b02654068f7083" + "size": 10556, + "sha256": "feb7fdb208d4ee540a0fe66b329402c8587f22dcdb8de2e1eb455b7d6af9a185" }, "mengsan/ui/map/index.js": { - "size": 62, - "sha256": "6fb7e6e2547eec9d421727b9d6794e3c96d8e3a77984d7688544a67a00c4999d" + "size": 61, + "sha256": "6fc56c6c084508a39d801521a103f8c39eea90eb895f47a78924997241d9f932" }, "mengsan/ui/map/renderer.js": { - "size": 25409, - "sha256": "a9282e2e6ce30973be064a73ce01b5e13cd580179bde24f9482661e9a2b94571" + "size": 25591, + "sha256": "ffbf4b8d0b3c6ce88cdeb2817a90e70b987396f767fb9a2fb593c28b4c4a3f71" }, "mengsan/ui/navigation.js": { - "size": 5274, - "sha256": "22bf6b5ec02c4917311540aac56c1c20b43df5b761acdb867937399db2c2c7c6" + "size": 8333, + "sha256": "fff29ce0f837931f16af40e09a193468273f0eab75068f8c9f8023e9dcc805ed" }, "mengsan/ui/relics.js": { - "size": 3452, - "sha256": "98049bd5a21a314475211fdb681b4989075b8eca4d33d58e88f4fd4cec19455e" + "size": 3371, + "sha256": "bc24cd2eb4644bcf329a7acac28820feab22b0e4648a1d25ea9e1e3d8120f1a6" }, "mengsan/ui/reward-package.js": { - "size": 4316, - "sha256": "1c584d2c5bd7252eeaeeaa1da5dbfb11c3df7c364dab0c82f557ca1981afb70a" + "size": 4256, + "sha256": "0ca1458434ebe616fd29eebbbb9314c03249673fc9a9e2cbae6ee09be4cdc16e" }, "mengsan/ui/reward-ui.js": { - "size": 15399, - "sha256": "ad9e727b90aef2cfcea2a7f757b5c12e43655ea055d0729fd955173076a80ef9" + "size": 15170, + "sha256": "70a1bd26b1ec730bc7cdf04bddf160f2e3ae8daadd54c4c38c5263549aa88dee" }, "mengsan/ui/style.css": { - "size": 78961, - "sha256": "beaa52e86c3f30144c55333c110e973944180c5d2f17f275821ce75cfbdf2a37" + "size": 77648, + "sha256": "46e38bb6c818d3fae8c0b61e5e2cc7c5c29db69cb72daa244f1a2944db8ebfb8" }, "mengsan/ui/virtual-card-grid.js": { "size": 4509, @@ -2301,7 +2306,7 @@ }, "tree": { "type": "directory", - "name": "术樱包", + "name": "source", "children": { "mengsan": { "type": "directory", @@ -2329,553 +2334,553 @@ }, "mengsan_colorless_alchemize.png": { "type": "file", - "size": 3127713, - "sha256": "030695f8c986e22f1ec74496da907f050c3439f9dd58db362af08da92af20164" + "size": 264296, + "sha256": "18cd20388da0d8a58909694ee91b010dead69317943c56f5ef52040a0f1c5b94" }, "mengsan_colorless_anointed.png": { "type": "file", - "size": 3086399, - "sha256": "3a68cb906e29c366bfb8beab3958276050e24f9dc77d854ae71debe095446838" + "size": 266619, + "sha256": "b6708433494c324440935738399300801008b34da15d582453c6adc5a84b8198" }, "mengsan_colorless_automation.png": { "type": "file", - "size": 3162166, - "sha256": "00b0f61f95fbd9118c3ecce4c68981ad59c970805f3c5fd4e0637ccaa704f0f5" + "size": 270690, + "sha256": "ae00c882959717f5043375851c6cd9cc60f95a382a739a03a9ce6cc473997d83" }, "mengsan_colorless_beacon_of_hope.png": { "type": "file", - "size": 3014849, - "sha256": "038bee1de6075fdcd9a2b1269ba3cd040e76727a6a3b2d36e41e1644bb631adc" + "size": 266264, + "sha256": "117f7f1d19ecb9efb8f1b861265aeb1613a216924b93c4db2426dd1df70fcf5b" }, "mengsan_colorless_beat_down.png": { "type": "file", - "size": 3261861, - "sha256": "476af9e96f7c3531ea0251ddb4f3ff87801054960ded214aba5f8656473a0473" + "size": 283486, + "sha256": "9b82b628861d358705285f6d59ffc3d3d057cea52ccaa7552e8a340d0dfd6afb" }, "mengsan_colorless_believe_in_you.png": { "type": "file", - "size": 3193359, - "sha256": "43519b09e365e4e91f6771fa09943969ea96ffc05300ea17a0019bdc7ab32943" + "size": 266162, + "sha256": "a45853960b13bbafca4caa1e8259b2f22043f163152f88a5b01c7df8eedfc079" }, "mengsan_colorless_bolas.png": { "type": "file", - "size": 3203088, - "sha256": "404d32ecb50eee1570ce743c43457c589839c98c7a63b746225bd0d2fd866c8e" + "size": 280335, + "sha256": "b81e67429b71198ab52345f2a365effecbcb6fedd8b49983fa1ac3cb5e4585e5" }, "mengsan_colorless_calamity.png": { "type": "file", - "size": 3043506, - "sha256": "2832971475e0cd42f28ce19009b4dc72ac13fdfd21c84bd94ce3ffe0ca801c25" + "size": 278226, + "sha256": "b379edcf4660d68d07c8e80b2fa7751d7bd3d2b7197ef7988ab4e367e75bb2f1" }, "mengsan_colorless_catastrophe.png": { "type": "file", - "size": 3311872, - "sha256": "ea81434a87f2277cbff5403a46399f7e73d1c7007cf3a60a6521a277c6e9edf6" + "size": 288219, + "sha256": "5f3ca79daffb95c7fa9c7dfae716be90729b01a9c6ad68f3b4b70d87dff126da" }, "mengsan_colorless_coordinate.png": { "type": "file", - "size": 3277184, - "sha256": "f05c1f215783e1fe97f920931afd20a8a4686036088da6f34212231a472db2a2" + "size": 284497, + "sha256": "b38b5033db495298281564747b88285f82b6b85eb5130b5ce43f1e59e656aeba" }, "mengsan_colorless_dark_shackles.png": { "type": "file", - "size": 3036771, - "sha256": "b43aafcbe4882f3a4ff4881615f409ac193ea35156956ec9f4d2150de7f8c2bb" + "size": 280026, + "sha256": "efefaf750e9dea617ec4492d703a098ffd2e711f84600b1f8851ace57b601535" }, "mengsan_colorless_discovery.png": { "type": "file", - "size": 3231144, - "sha256": "1d6c186eccdb7d1850c064ad25eb309cba3d8fe32238248813e92c47424945b9" + "size": 283071, + "sha256": "ac1a3709c7196ae6c6ad976e55bb8ce03b6da3e760c0a4fa5b25cd0de83dcb4e" }, "mengsan_colorless_dramatic_entrance.png": { "type": "file", - "size": 3354223, - "sha256": "8497a4026aac2aa838251157cf53ee3cd5d7cbd420ab436927985c94332033e9" + "size": 284526, + "sha256": "937ed345a9fc31b146172e6afaec1508ba0fbe1fa41a32c6986c31adae35edd1" }, "mengsan_colorless_entropy.png": { "type": "file", - "size": 3347868, - "sha256": "9672138ec7f8f5360efe7198378e2aa36898299c199c41727e25db0efb7a6632" + "size": 282769, + "sha256": "c1b7eaa54503226d16fc66e57ca6c681f09ec45272e2353da00f3a61db431708" }, "mengsan_colorless_equilibrium.png": { "type": "file", - "size": 3135158, - "sha256": "109a7369ec0f3a473d8ffec5e527dc1b7c22d929c90547bbc3cc4db333bc8aa6" + "size": 278137, + "sha256": "5099e2e493ada1a851ea74cfaee8a2a0bb9aa43c1d766ca6f9b5fce709cf56fd" }, "mengsan_colorless_eternal_armor.png": { "type": "file", - "size": 3167981, - "sha256": "3b532054c25452f093015ff92cb0bf4e15085baf367f42e56533992e6a6339cf" + "size": 282176, + "sha256": "73c6084cf6c0898a6dd35ae1c76cc286bdcd3e6e9af66bcf5cb35aa63baf48db" }, "mengsan_colorless_fasten.png": { "type": "file", - "size": 3134484, - "sha256": "62c627389524fd5aa90c30e2e37e70365946b61fb162f5f1084cb0a677b7ad33" + "size": 276883, + "sha256": "ff939467551bf4c5d0375c0e80c7252944ed07aa80bee720531e6735433ad478" }, "mengsan_colorless_finesse.png": { "type": "file", - "size": 3200227, - "sha256": "f0c3ce167fc36bdade027f9c89cfda0aebe2857e0e442ab8da83dac0062cb88b" + "size": 280564, + "sha256": "c89c7e36350213f9381caa79c5db2a944bf74378d947f33cbc7e3d82eed304d5" }, "mengsan_colorless_fisticuffs.png": { "type": "file", - "size": 2986131, - "sha256": "3424c53ede2dd31def9f4b36290b403e976b00e6d4acf9d1090a1ad3bff50355" + "size": 276830, + "sha256": "86b5f441e717f767689d7561f27bdfbbf491d73cd6cedcea453a07ad6126a6ec" }, "mengsan_colorless_flash_of_steel.png": { "type": "file", - "size": 3254260, - "sha256": "9638fbd12bdae0d856c0d7c514b88668d1925d53ff8e0b18f46cdf6363c6e41d" + "size": 273345, + "sha256": "f2fc37bef53ba85f9efd23daae366f808387f9e098c4a7e379f1b4d51c4cc5ae" }, "mengsan_colorless_gang_up.png": { "type": "file", - "size": 3454683, - "sha256": "151638d8f635a72652e5ed9653647a5c4f24b4285032c17d9d85441f4dd1c424" + "size": 286758, + "sha256": "c1bc6db4e411bec4a5eafeaa66c699fc67bfccc14925c17ba358dd47136376c8" }, "mengsan_colorless_gold_axe.png": { "type": "file", - "size": 3241447, - "sha256": "5a83405d841ff7b5c40d0aaf37507b3274ae2e98e75070bec1f742da11bb10e4" + "size": 277703, + "sha256": "fd329bfd9192e23b26f9f8879c7074949087f9204bf7ab1176ebf6dd78dc0392" }, "mengsan_colorless_hand_of_greed.png": { "type": "file", - "size": 3204239, - "sha256": "e3f35625547fde12c1646385b1def672d18b6b03373898bb44c3ff535c307811" + "size": 282231, + "sha256": "7946f221be9b1701d18108b731951d167a8aff94d64ef8deb9ca06ac3b23e355" }, "mengsan_colorless_hidden_gem.png": { "type": "file", - "size": 3250322, - "sha256": "600be77b409fef66f260c8bdc0c25c46148064977f3cb5c8cb8e023b4da679ed" + "size": 275787, + "sha256": "f01d4e19b86b3c38cb4b003f42540582ce7420b52838a3cb07ca2563b75b35f6" }, "mengsan_colorless_huddle_up.png": { "type": "file", - "size": 3133981, - "sha256": "2783d26a011a442f1ee7ba2b8f50bb889886eab91685e5fff9d6d38cb0656da0" + "size": 281212, + "sha256": "2c8f39036c2f3441955b582c99117a721bcb409124c3916da2b5a98e8680028c" }, "mengsan_colorless_impatience.png": { "type": "file", - "size": 3249719, - "sha256": "00f00214e278a79fe138941153a59843760b2b0f3280d192628619f75f541d79" + "size": 282657, + "sha256": "7c9e4fe43bb0ff10bc36d8b784f2c92eb0302d19316e66615298822b799d5c6d" }, "mengsan_colorless_intercept.png": { "type": "file", - "size": 3205359, - "sha256": "d2dbb2979f3944cdd18cba6147e989ee3f78f8d6ed91665dfa1b3f7fb97e6352" + "size": 279949, + "sha256": "6c3c8ffcc4bbbf4779e8c3ebc808eaed060eddbbb5e86b8f2b6011e76b8bb208" }, "mengsan_colorless_jack_of_all_trades.png": { "type": "file", - "size": 3402938, - "sha256": "a9b06fe1f21f3a86d5cb16a0b312c3d6788c62b5bbabf75a844de431828ecdd6" + "size": 288675, + "sha256": "f569b9a98174b5b0829c36e4801c94e5824e949136c15f1e0722f8dff9f8580f" }, "mengsan_colorless_jackpot.png": { "type": "file", - "size": 3222698, - "sha256": "c9f9dbc67abcefd6576ff936ece05c274b4e682cc4b9e252b10feba78c4ba9f8" + "size": 274225, + "sha256": "e9ba9395411826bc85f6b90239374391cf8ef476b56e177d74627621b4c3870f" }, "mengsan_colorless_knockdown.png": { "type": "file", - "size": 3328270, - "sha256": "402647d62ae54ea742243185bf70e4ad95f87469cffcebb3e35d1826985cfdcb" + "size": 282499, + "sha256": "ac31e82907b2c4fbb0ccf42155f871d48934c6df8823e0a525614dffc10f5d1d" }, "mengsan_colorless_lift.png": { "type": "file", - "size": 3150681, - "sha256": "7a57e2e134a0e7579d8ea3d1b65a551b41f5814ad2b57c73a6afd1cf3751d71f" + "size": 275604, + "sha256": "53d0cc1740a6afcd4cd4a98c2cdba7db39f2cb53cc0095d86fcdfd5e7b138d11" }, "mengsan_colorless_master_of_strategy.png": { "type": "file", - "size": 3113651, - "sha256": "441e69484c575409c7d8201cc39c21956111b9462aec4aa10405e5f6f3815d46" + "size": 261127, + "sha256": "6ab0fe519140e15152ef56b3f2dabdaeea7a20c2dd74b9f4d4cda99a1d949991" }, "mengsan_colorless_mayhem.png": { "type": "file", - "size": 3221855, - "sha256": "a30d6f318aa0969c7867a31669df515f87296c4ec65e7d03bd9aeac1f65ca3f6" + "size": 276231, + "sha256": "a4342fdd20a002c41aab7f58c4a96d102710f51e1a75a4af40e1be91fb82d6b8" }, "mengsan_colorless_mimic.png": { "type": "file", - "size": 3092367, - "sha256": "23e33b4d6005c9667d54d821114bad372cde5885a3dcd0b36f0373947f518aaa" + "size": 271261, + "sha256": "b8aed0a8a83ea13d182ff8b730d857e0c209341d3a18dbfe0e0f611ef071deb0" }, "mengsan_colorless_mind_blast.png": { "type": "file", - "size": 3146553, - "sha256": "d7596195551d4c555dfd0e0841eea31666256f1a25f0e1126a242c9fb85e3999" + "size": 276143, + "sha256": "eec4ad2990cd8f5a588ce8af3786e3bd5bd31f22b32f593b06c77a1472aa0c4f" }, "mengsan_colorless_nostalgia.png": { "type": "file", - "size": 3191912, - "sha256": "99dbe6ade64d2f09fabae292dd8b3fa3a603ad55012c4ac7ca5cf61dff4e5ee1" + "size": 273974, + "sha256": "de773309820a877440f61553f8598ed40e0c2cb05fde115aa45047b4653a0cc9" }, "mengsan_colorless_omnislice.png": { "type": "file", - "size": 3221281, - "sha256": "d64936d9fcdbea09456eca5af79866b679532a77a03ba6f7d179d6c1225963d5" + "size": 276006, + "sha256": "64f53876bc55e2f2afa7d8265bc23f8e275cbed3b7edac4fce8cee148e927a46" }, "mengsan_colorless_panache.png": { "type": "file", - "size": 3393936, - "sha256": "154f52ded899d099c10b42a2551526c992c5b8bb013d29d76edac935780e73da" + "size": 286507, + "sha256": "fddb148e264ab0822eb57e71f9307b24c2ad908ba19ec22984b4b325484e4745" }, "mengsan_colorless_panic_button.png": { "type": "file", - "size": 3161638, - "sha256": "c88fdd70d1ca36b09e1038b5bb17757621c7cedde849c52e50890c63fb7e6c13" + "size": 279405, + "sha256": "5670b09757819204cc2215303715d29f5aad0bc58599f8e8451cf7e1daeeee7b" }, "mengsan_colorless_prep_time.png": { "type": "file", - "size": 3210939, - "sha256": "235350559f4b50b207907ea6217fe5a19381d297425c97862e9cb5efec556dc8" + "size": 273972, + "sha256": "a2a5da96f7f06e9524d80494419269fb59d185ba62983ae5d86537c9f7a0f83a" }, "mengsan_colorless_production.png": { "type": "file", - "size": 3192726, - "sha256": "1290f77a24dc3a7287e61ff7ef70f2c94033915d6996c3e22e039e9669cb8651" + "size": 270642, + "sha256": "170c5c71d61cd8a191c1d2a77ee2b677bd69be2a87a068c04d5dff3914216c99" }, "mengsan_colorless_prolong.png": { "type": "file", - "size": 3059311, - "sha256": "316111895375c230029e76f1ef674e7cb08e9e58472a90b4267b182c28e9221e" + "size": 277753, + "sha256": "32e13fafe3f0310a7180fae140d8292908f88bd0ab586e50087d78f76157bbca" }, "mengsan_colorless_prowess.png": { "type": "file", - "size": 3228141, - "sha256": "bb7a67bd845a376174dbb28627bac4771454cb50bbadc24cbc2a26391d9badc8" + "size": 283863, + "sha256": "2535f9e313713b0637751b1ae47a045e3108f7ff90092cf6497df2740e0d7a25" }, "mengsan_colorless_purity.png": { "type": "file", - "size": 3190337, - "sha256": "00aad33dbf174fa6e5fe3f0231ee1e1ddcfb0e13011132e2ba34179400ee33c8" + "size": 270780, + "sha256": "a502c0cddaff9d6dab370a5d63e325f787850d53309f92589c3ad0a26b92075f" }, "mengsan_colorless_rally.png": { "type": "file", - "size": 3267674, - "sha256": "315913dd9c6106d1a5833eabc5f0caa88ebda9dbed72440aab2fbd46bab14bb4" + "size": 278145, + "sha256": "65b2004cf30dacd29c7501b082b5fb3d0ba5d32b44155d403fc5cfe7a71f655b" }, "mengsan_colorless_rend.png": { "type": "file", - "size": 3293457, - "sha256": "36a641178ee9c13eaf78cc96656e445e5147d09b07ca2b05c82e0a30c440ad26" + "size": 283787, + "sha256": "b9055a923b42f6e443d1b71329a03bcc9dbfe6c1a8a74a7e93dbb3609a56752e" }, "mengsan_colorless_restlessness.png": { "type": "file", - "size": 2907076, - "sha256": "e1d87fa3e36dd61fd5b84779f6ef4b0f0341c3216cca763c83e6d9a1dc1fe737" + "size": 262597, + "sha256": "d2d61ade4282f626d20bb7a6df84e5694c02d48fe33f0930e5397a8722729e26" }, "mengsan_colorless_rolling_boulder.png": { "type": "file", - "size": 3318250, - "sha256": "d9e7faabcde18d42c6dcc4f66ab0e822a930a8fba0e2060f42d1655991cbd253" + "size": 287181, + "sha256": "d89ee006722c93bd7212c3ac51144f1fef1b3825261c42cfeb08f4cdf34cc64f" }, "mengsan_colorless_salvo.png": { "type": "file", - "size": 3228759, - "sha256": "00da2f4a4bc69909cd89b187b96776d104a667ddf728d330ffd12a0aec4c222e" + "size": 282695, + "sha256": "1f9c7094e7c828f230698704c6d15ce21b2f3253c15bd63633bbb79708f93a29" }, "mengsan_colorless_scrawl.png": { "type": "file", - "size": 3092946, - "sha256": "72a71d758a258a37437f26106cab486e55c26a451fc19bb1abf885f0da7b8f44" + "size": 262420, + "sha256": "e7e698d14481c65cf27be3bf2d3a7e5ca341609b61e767e469c8f39b2215f649" }, "mengsan_colorless_secret_technique.png": { "type": "file", - "size": 3031198, - "sha256": "20a686c1a98bc730af4ced690487ec6f0d3d140be2b5c474696325a648958f2d" + "size": 268518, + "sha256": "72a55e11ce97402a9e23e72183605d3fb9e05e0118c67bb4ad4409a9fc068e42" }, "mengsan_colorless_secret_weapon.png": { "type": "file", - "size": 3100884, - "sha256": "05858a388df685c1dbc2b60e6a3bb6e441d8991d01a3293b0613d8eb71a22bfb" + "size": 273623, + "sha256": "f12d3fd96bf5e527f6474592d800b1137d13b6cb919e414c2f88cd1bcc7fef89" }, "mengsan_colorless_seeker_strike.png": { "type": "file", - "size": 3226533, - "sha256": "6dac80c8ff7afe7659ad69cb4d2db02c366c0c02e6088e9bd395418e9b74148f" + "size": 271654, + "sha256": "01b61d7c17df2b2d3ea22eb5e869939002f4c6b11e94ff412da5d59f11113c7d" }, "mengsan_colorless_shockwave.png": { "type": "file", - "size": 3123692, - "sha256": "c4b10848314eeb75e3e4ca588f4a34f886cfbcd8f585d5b68391ff8d3affb16f" + "size": 275327, + "sha256": "3b43d39b5e5647bfbe34755fd16b6aaaebc5901fd45baaa8e8d90200de4895e3" }, "mengsan_colorless_splash.png": { "type": "file", - "size": 3008746, - "sha256": "0a8a4393dc4462de1f33bd03a1173792a3b29d4f92a235dd1b6dd0ecbc41dd6d" + "size": 267132, + "sha256": "4c1ed146f59f4941a6754c7200518d640dea110d80ce894db472d4bdd35ac3aa" }, "mengsan_colorless_stratagem.png": { "type": "file", - "size": 3124646, - "sha256": "55375fcebdaa50dea41f55ef29d349880beca781d3e583584d9d8e377a498247" + "size": 271810, + "sha256": "e64cf224b829653d842a41e9e2b18779b7c5bcbf4567cf78c89f08becd99d6fd" }, "mengsan_colorless_tag_team.png": { "type": "file", - "size": 3222820, - "sha256": "62f3a67a893d485c0a376ed96e7d0a97c69429d7648cd4075f72a8b074878907" + "size": 286097, + "sha256": "4613562c13e79da7242d93debea39c94f875f0d5c139dc6dfa881108e6aab49d" }, "mengsan_colorless_the_ball.png": { "type": "file", - "size": 3304542, - "sha256": "4e3673066a4b80a7c902896fea95f42e9fb9b71a058bb4309ee085df7f0d8a2a" + "size": 283974, + "sha256": "c242e6e38bd72926da5b57c081b2ce701f80c7b6247c9a71a682c394a63d907a" }, "mengsan_colorless_the_bomb.png": { "type": "file", - "size": 3150065, - "sha256": "b2d0d8799316933ae0bed6cd3b925bf729b448de3daf1d769918b5a41d79de78" + "size": 273486, + "sha256": "fa31d1822611d50b3790cba97dd02da2fc5c97388f11a6d9b7d7ae1ffedc9951" }, "mengsan_colorless_the_gambit.png": { "type": "file", - "size": 3194137, - "sha256": "cd37df03c949469af917d0150f73416cf05cc087dfb67fc9879d69238fdbff74" + "size": 276239, + "sha256": "7cadc0e76adfc3d205c5a61ef72aaa576fb162590215e59c9b0ea10c7f2c1289" }, "mengsan_colorless_thinking_ahead.png": { "type": "file", - "size": 3141303, - "sha256": "7bd6b4edb3e8bb92d8b90773df68570831c1be948a103a426433191dd5135b60" + "size": 279676, + "sha256": "e80070350482d483e22c41fc66100cc9534ac8e8dfdb4164add29393a34003bf" }, "mengsan_colorless_thrumming_hatchet.png": { "type": "file", - "size": 3114116, - "sha256": "e7f9630a4d218eba20870c15d93a96eb2d5bea7f8697c4792832dd99e91e705b" + "size": 273242, + "sha256": "870a9d775881b1b524d7db36ce1bf46e78c8c755369bd0cd04dab3bce50234ec" }, "mengsan_colorless_ultimate_defend.png": { "type": "file", - "size": 3310196, - "sha256": "45d4d4418254f13366deea71137d5b891177b49c981ac9c83293a000f7e8462c" + "size": 282973, + "sha256": "3fdad038b62f41a7d73f4001b0aabe09a0bba72659fdfb31a9f4b1f265b4df52" }, "mengsan_colorless_ultimate_strike.png": { "type": "file", - "size": 3222462, - "sha256": "25652e3b55614c84b25c27ae63605bae88bb0e284d4c6181474d0e2cca9e074a" + "size": 272282, + "sha256": "6eca5b583b462751d701fee97db39054ab093e61c8896b0460857d6c7e72325b" }, "mengsan_colorless_volley.png": { "type": "file", - "size": 3086676, - "sha256": "fdd8ca3936a72134d3085b34d69c5bd73b1e80d6f443908aa2bd48fe13b52892" + "size": 276470, + "sha256": "0718f961b9615886f12356e23d60774ede4d465728422a64ce9420fe02a59c20" }, "mengsan_curse_ascenders_bane.png": { "type": "file", - "size": 3156093, - "sha256": "f12a36ffcd6f0dba728fcc7eddfef3323c04a33115bd4c3e53e3a4931b25587d" + "size": 275151, + "sha256": "bb9d6e1ef9eacfece52788636d663abcc575af8e1d87ff15147e6e52a9942d4e" }, "mengsan_curse_bad_luck.png": { "type": "file", - "size": 3075399, - "sha256": "3aa36640e3a47477931176fadd7423ab0016b2d0b53e1d293b933f421aa723f4" + "size": 277750, + "sha256": "8ac4cd8aca8bc7cb50e7f4ea3c3d0568693fa01332a1cb4de199bb7318cef539" }, "mengsan_curse_clumsy.png": { "type": "file", - "size": 3320908, - "sha256": "d4fd3da9b1dc49625f7e2d5d612234cb5f57ab75616ce1c2c5eb609e893dd628" + "size": 283974, + "sha256": "b0ba7a80b320b386ed2100c9763d6872a083b9c0a36ee1e4ee851eaa64152980" }, "mengsan_curse_curse_of_the_bell.png": { "type": "file", - "size": 3190971, - "sha256": "d52d05e8ee1c3355ec34440694538049f6c3a9fac591d0a2d44947a9dde2ff7c" + "size": 280240, + "sha256": "81a2e85b2b37b6ba7685b8091f76570faf0755a01bf883fbab3a8b47a442325e" }, "mengsan_curse_debt.png": { "type": "file", - "size": 3206708, - "sha256": "073aa84c0268bffae9cc017222bef8a1a8e8ba364abd6b64c3dee61a382f8c6e" + "size": 279904, + "sha256": "5fcb34d9144fb3f1c1ff7828650938076bbad45179b4df50d670e5d4962adf5b" }, "mengsan_curse_decay.png": { "type": "file", - "size": 3159488, - "sha256": "4e4bb998c9d410bac843201e1161bf85da03797d3e7f46ebb22943e3bf2c45bc" + "size": 283528, + "sha256": "5dfb95eaa4673717187a62221824f1d7424972a5530c4c4a3713f76bf5a5ac73" }, "mengsan_curse_doubt.png": { "type": "file", - "size": 3272171, - "sha256": "aa0e651e89cb3199f9568e5c00d72b842be96104a96698b8b484b8755862cce1" + "size": 269347, + "sha256": "4710d3e31ee5c1d55e7b1a1baefeb25e77357e8913b8b6f7df713e4fab7ae0d4" }, "mengsan_curse_enthralled.png": { "type": "file", - "size": 3093077, - "sha256": "08df7fda97faf5bacbd9402eaccad5f03e16a69364464a6a97ada181e3fa3ac1" + "size": 276307, + "sha256": "07356451a786ec006bb8e2f987c680c3ce31565601b9ab22cfae952596877afd" }, "mengsan_curse_folly.png": { "type": "file", - "size": 3100483, - "sha256": "02707297707414f7eca6da31881b57f70d9d9805a06498f2363ec5793a91251b" + "size": 269943, + "sha256": "193281c95c083ecd5185e80e409647049694284fdd0a166376e647fcd590c376" }, "mengsan_curse_greed.png": { "type": "file", - "size": 3283765, - "sha256": "0ba7674f5e8a2d07360389f45330666fc793e55c5f77abfd500f513db2bf9fed" + "size": 276772, + "sha256": "d5a3c8cfec9d066da0a6e9dcd8b143b3a16b38208b3e3ed4b064c01e4f57ae1c" }, "mengsan_curse_guilty.png": { "type": "file", - "size": 3026762, - "sha256": "69bbe906990f27813ac542428549e33c29285cb44bf521515000c1c1d0702e83" + "size": 264642, + "sha256": "b394381030f8e4a69bd5e5054380bc9a7cd26ddeb1c98e7f3ff33d522a9a8ff9" }, "mengsan_curse_injury.png": { "type": "file", - "size": 3232271, - "sha256": "ae043cfe8f0e5fb50ed75287b82494b7b38a918a331b6bf6a017e3283f4c4226" + "size": 278371, + "sha256": "ed1ae130675c0eb1cf7f5cf1cad288d5a527d1930915d83388e541187e0e12b5" }, "mengsan_curse_normality.png": { "type": "file", - "size": 3015776, - "sha256": "c2dd8e2fe83165c8129a2ff05ae1b86d5f4cfa258420280ccf49cd0d033f2c01" + "size": 273981, + "sha256": "bc52a95c96e47ba75db1c8edd77add90bef93441cbe92d6617b8bf4fdba9eeec" }, "mengsan_curse_poor_sleep.png": { "type": "file", - "size": 3195332, - "sha256": "b3934757b27c91e96322227b64bae769addc87338cd9d2b18c0bdf8169165b7f" + "size": 266665, + "sha256": "87075450b54f3ec32ff5f108ed369b7ec1bbfb0c2522d8b72a86f5c6af8993ce" }, "mengsan_curse_regret.png": { "type": "file", - "size": 3197963, - "sha256": "72f758eaa98a1fe254f025cf4096807498a8b9536a4cd085a6f8ac6cec9af2c9" + "size": 276828, + "sha256": "b7a0e2a41ae61dafb422b7dc1726147dabd56fdac49e245acc1d89543f5e42a5" }, "mengsan_curse_shame.png": { "type": "file", - "size": 3159251, - "sha256": "e7090eb518f5ff5c022c77ced36866e3477c62319388feb99045ac0a24fcb289" + "size": 266707, + "sha256": "ff047529cf2c3a71517a5b1a8bb51291e05739b5eb4d4b265f04b9ec37331705" }, "mengsan_curse_spore_mind.png": { "type": "file", - "size": 3210425, - "sha256": "00dca10bcf03085d3d343c14fcc3703c5f3b3170ab992e74069a2cd730117177" + "size": 288927, + "sha256": "a1e4b54c2e1019404873fe6a4975651912612572c1b3a1a830b015d733a5a554" }, "mengsan_curse_writhe.png": { "type": "file", - "size": 3277925, - "sha256": "2dbaee5d8d3070f01d6bb0503c3235b6601fe4af7b5217fc4e17271161f7ed10" + "size": 284680, + "sha256": "600a6f8b961cabfa9d756049235550a1dd46647a8355b77f0a63f2eb50320a0e" }, "mengsan_dazed_shuying.png": { "type": "file", - "size": 3232164, - "sha256": "422244600455c716960bcc5f1aaf028733061b7f5b01e174125b9a46cab200ad" + "size": 283230, + "sha256": "3de4c3d4c4569b27a6810bf9b8acef633a990bb8fee7143a7a829f6c7628aee3" }, "mengsan_event_abundance.png": { "type": "file", - "size": 3175446, - "sha256": "829339ea6c9f232b2004c179782393036629709e8eec6949cd6aa0d8c1b37950" + "size": 269699, + "sha256": "5a1bba818e2a231c88839ddd98d69193bde2b494bf41d6e67ad969d09057c9a7" }, "mengsan_event_apotheosis.png": { "type": "file", - "size": 3202650, - "sha256": "3e213766a173b3c01004a5faf3b53481233f19375f4281929196d75dff37573e" + "size": 273199, + "sha256": "e98a1d5269b18e5bf04acc9b986b109586d6a23df694a954240b814e48d2c55e" }, "mengsan_event_apparition.png": { "type": "file", - "size": 3276116, - "sha256": "07100920c178b5bfd383e5ced6fb9d6353c8d1995c80e9fedf409c7184cb0e0d" + "size": 272007, + "sha256": "826016f8ee0ad7c5cbc94718c336d3c8289da62d1ae5eb1127519d10f7fa4516" }, "mengsan_event_brightest_flame.png": { "type": "file", - "size": 3088445, - "sha256": "e3abc30102a32ca9f91fb9af30bf3cd2790ff550388090d117e7978e31dede15" + "size": 263639, + "sha256": "bf578528a2d1535deef8c96592ed0d41f8401ba8f2585055704808c6f4c78673" }, "mengsan_event_byrd_swoop.png": { "type": "file", - "size": 3303389, - "sha256": "3769b6f25018f510ad489bfcdc5cb327c02c5aafd0a1b9ca780792b3c0fe13a8" + "size": 281465, + "sha256": "edd98958390d0aa1d5c08513dff384949bc26bd66931fac68afb8340399b9a57" }, "mengsan_event_enlightenment.png": { "type": "file", - "size": 3306552, - "sha256": "5eb347d0984e569e43b792b044abd478d53d9cb9c9eecc5ba4e97773747a2699" + "size": 270347, + "sha256": "8573f419ec40d129b6283f672fb0fd838ed53400e71974642f2845f75743206e" }, "mengsan_event_exterminate.png": { "type": "file", - "size": 3481990, - "sha256": "a0e53996ab3943760329f1aab87e1bc414964f5b88a19778415beecd61cb98be" + "size": 282715, + "sha256": "ecc46404183fe3e16072718a1c46c6606156b00996e452878784d09392b54a4c" }, "mengsan_event_feeding_frenzy.png": { "type": "file", - "size": 2991504, - "sha256": "e7261af1c355fc358b15a8131d9b60909b6ba30db94b4d6f948802c3e3158c92" + "size": 264932, + "sha256": "c01d5e4fd9e98f091f5ab72e88e6f7bff711bc3bc4630cfe213040405e5d8877" }, "mengsan_event_mad_science_chaos.png": { "type": "file", - "size": 3225466, - "sha256": "2aa820d8c2f380eba5108df919295c4a509c33360bc934e678c72a60fa18d902" + "size": 276192, + "sha256": "effa31a6020a3cac2d57ae0b2edb7a59738617da8b2e39f2e1b51ce82fa58527" }, "mengsan_event_mad_science_choking.png": { "type": "file", - "size": 3144566, - "sha256": "a8e5960f8d10e1a8ad9e390d309d50525f8831b82d139b3e65fe6caa3653e31d" + "size": 276078, + "sha256": "414549fa03ffd6a8f94a38f5b980a5e0086d25ebd0da92449967a4dab07f31aa" }, "mengsan_event_mad_science_curious.png": { "type": "file", - "size": 3128414, - "sha256": "2f42323201b656cfaba157c9f45ba8795518bb5cd5a4a65af9d6d8c5474d7a57" + "size": 265391, + "sha256": "85587295ae53b74dbee096b20b1e81fa653bc0f1696fc2a409a8e2b37686a3d1" }, "mengsan_event_mad_science_energized.png": { "type": "file", - "size": 3208057, - "sha256": "3de4101bff5223dd7b115294b67835fc7a849ca667ed729e6b6b8576125ffbcf" + "size": 276428, + "sha256": "8dcee40efbfe3fcf1f309ed61f687e5ab10744a15840433222ecb2ee1f0008a1" }, "mengsan_event_mad_science_expertise.png": { "type": "file", - "size": 3158770, - "sha256": "a28fbf79892ab046388381a20e435f69bf53a6ba21148a3741c284989742a4b7" + "size": 276858, + "sha256": "508ce82a4b8b168afdbbd6480dfcc291a74b8221d1ade27c75d0c1ef4fc607d0" }, "mengsan_event_mad_science_improvement.png": { "type": "file", - "size": 3101461, - "sha256": "f85a01280f85571848917e9375a122e17e7dbe0d6750766cbeeba18ffc85927f" + "size": 271401, + "sha256": "8fd7f188c32e98484e34866b96a6c304d263f8bb3db471720975f4dbd19fcc42" }, "mengsan_event_mad_science_sapping.png": { "type": "file", - "size": 3167779, - "sha256": "0cff4b294bbbc3c0097fc6036fd1febf49a82cb777b85b1ef4e2b7cf1aa0d344" + "size": 278026, + "sha256": "b2bafdc9e70535af7d63155e3c83c6033a0738362cb66f64d623beb44712e9e7" }, "mengsan_event_mad_science_violence.png": { "type": "file", - "size": 3217299, - "sha256": "07eb2165f6bda2bfce8c8267c83ff7caefc617105a33b0e99dd8e3c99582a97d" + "size": 268534, + "sha256": "97a52c1f62fd31f3195effbb0e64e079656229fdf18d162d3f348b380b8ebbd3" }, "mengsan_event_mad_science_wisdom.png": { "type": "file", - "size": 3108692, - "sha256": "ff24a151489315ad9cef2bdec1d3adaa0dfd3bc5590870ac333b8af9d019d787" + "size": 268269, + "sha256": "52bc2d0e9033700bd7304deb6a2f0f924da82a54c07c7f6dcdcf2d6b9dfcd2a6" }, "mengsan_event_maul.png": { "type": "file", - "size": 3146092, - "sha256": "7d66cab5f938b31c6191be72693251fb28b447a6a357f4888af712296d8b6090" + "size": 284044, + "sha256": "c0a4314159170fc2010fce968df611c8b5a75c5dd44430a3154bfd92f66f677d" }, "mengsan_event_metamorphosis.png": { "type": "file", - "size": 3255357, - "sha256": "5af1bb8458b9533114d88eef94c91730094fa7d23190406fa86910f5006a97bf" + "size": 278294, + "sha256": "e0f9de80f12db20c3b0a8986d372a63ce92f44f113969518ab6ea2b2195ade79" }, "mengsan_event_neows_fury.png": { "type": "file", - "size": 3270494, - "sha256": "e77228e317921968bc584f015c5cb5a018093eb8e8f8e14f68655d088fbd7175" + "size": 279982, + "sha256": "6a01878172f2723ef8f8ac46850b47150ab47f47da4ec684d1b4311860f4d1e0" }, "mengsan_event_peck.png": { "type": "file", - "size": 3245605, - "sha256": "d7fa9557a82e46219917686a77fe1341cc57f843c166f65c63e8895885f29f88" + "size": 279189, + "sha256": "19c98a11ff34b6af855974daff7997488fef32213915f950687344429f4bbc60" }, "mengsan_event_relax.png": { "type": "file", - "size": 3151165, - "sha256": "6cb2956664d30064d741fb76bd1f8444e470acdb3b294b006f64bb4d58ef4e68" + "size": 276048, + "sha256": "574a2d3481fadd3ad47e6479d4232b3b1dc7d6ac610b62103baac7fb4387d3c4" }, "mengsan_event_squash.png": { "type": "file", - "size": 3209656, - "sha256": "a280aa3721788e4fa71c718de80a6ae30658b6557b43a46dd06edf70b2df72a8" + "size": 280931, + "sha256": "d3d6551cea871ccb1d5ac0fb55bf1e16efa1d83432e0b53f4043faec3b105892" }, "mengsan_event_toric_toughness.png": { "type": "file", - "size": 3097893, - "sha256": "735a500a48f344a755aeb94a2d6f40e2eb1b3692a109c60595d83ebc5635e7b2" + "size": 276230, + "sha256": "1d3a11eea2030204e99d3a3c56ffb340d6ad7367c13e407ae224566fa1395989" }, "mengsan_event_whistle.png": { "type": "file", - "size": 3288482, - "sha256": "585c5c4a5885c930a1c9f72dbdb5c1d4617d672481bae40f91f44256335474f2" + "size": 275267, + "sha256": "bbcfa89a15e6fe123bf0beea19a5344650998a6c721a9d9ce80a1350940e2bfe" }, "mengsan_event_wish.png": { "type": "file", - "size": 3052956, - "sha256": "ec05fe126b5b533aba8eb31294ec446a72d7cbe61808e906075ad80271996dbb" + "size": 265676, + "sha256": "271dab6a6ecfaa480f2b81286ff412fbf1b09d061ea39af60f2e227e5a5f6744" }, "mengsan_fangxue.png": { "type": "file", @@ -2899,348 +2904,348 @@ }, "mengsan_ic_ashen_strike.png": { "type": "file", - "size": 3380843, - "sha256": "62bb1d4a3cce45797e6ce257b690f127596acee491dd0b3091bf52018b839480" + "size": 286604, + "sha256": "f12fb1c4259d96e45810f9a2ea735dc4f2a47ad693b6a2cf0681c474042d27fb" }, "mengsan_ic_barricade.png": { "type": "file", - "size": 3184834, - "sha256": "39ee5e80832d97b79c82400b6f42c03a8701288447b37b698f7f5db8d80dcba6" + "size": 274873, + "sha256": "e21f5f02f32e91e074b103e0c361d121b201bf3f66df725f9abe51bb8182699b" }, "mengsan_ic_battle_ready.png": { "type": "file", - "size": 3106395, - "sha256": "5392a0ace902bdd1487e5ca97ea469ba73efbbabab26f237ce76ef2ae7f4526f" + "size": 281316, + "sha256": "09eab1ad1bd94e206a2df6a70114c86c2a8f029877172c2b90554ed62cdb3eed" }, "mengsan_ic_battle_trance.png": { "type": "file", - "size": 3151914, - "sha256": "c327d3554861c1d2dc13c81d8142197bfa07359abac54c8611968168c12256d8" + "size": 280228, + "sha256": "318db72236c1d8ca244016a610f5e36c792fd942bbe672d914dbe31aaa628ddf" }, "mengsan_ic_blaze.png": { "type": "file", - "size": 3375895, - "sha256": "75804bfb929e75b4ced9f332807fd74003127b3f83f72ccfe6d4d9f35a26bb13" + "size": 285931, + "sha256": "7855b331d2bfbbfa94547d37aeced861c52777c69fad77d136190375f9f03cdc" }, "mengsan_ic_bludgeon.png": { "type": "file", - "size": 3389225, - "sha256": "79c71b0419b979f7f06ffa12be1761ab41244d33c721c1a679d0448d00b29337" + "size": 287941, + "sha256": "b67f775d2db7012cd1ca80252f9fd751f31494ba3c516089d6ba9a98e4c7521a" }, "mengsan_ic_bodyguard.png": { "type": "file", - "size": 3343236, - "sha256": "50da52b4a1ee4537d6328d311bbb4842f7de74796613784f9d6d53f5f3d5f32e" + "size": 283829, + "sha256": "0b015d31c67fd9c86763f30aa718900bdbc847547b128ec3a64f4b8afe8cb184" }, "mengsan_ic_boulder.png": { "type": "file", - "size": 3285153, - "sha256": "bff97d7a6f172b16cb3bb0434face4173bda907355516975efd0b177abdcb727" + "size": 278980, + "sha256": "c7ad606c1b336a656a1c49a9ea1f94d8c623039da1781af3277c6362b2ec745d" }, "mengsan_ic_brand.png": { "type": "file", - "size": 3294776, - "sha256": "8f0da53ec9a4ba94742f7b08aab5c8c065ad7d7f06d0456c7b8beea9edc0156c" + "size": 277039, + "sha256": "181b20a9c40e174914d1da6e373fbf98aa8968b5bac3d6c025aba28bf026200c" }, "mengsan_ic_break.png": { "type": "file", - "size": 3312419, - "sha256": "59e6a3748d903a508f5a2fb1fe4160848ab301b7f82b43b15c90daa88134c992" + "size": 282143, + "sha256": "a8e2b0a5a52e731e161fbe1019c56df8cf35cdf97bf49ff44f1af8e9739cbeb0" }, "mengsan_ic_bully.png": { "type": "file", - "size": 3295672, - "sha256": "11e917a6a33573ea00f187afb8b18c313887e901f30d8ea09dfb206c6dcd5ff3" + "size": 285649, + "sha256": "4c2566155e5096dafcc57078d3224e2c0b95ad2ca96fefdf944bfbcb17b7a182" }, "mengsan_ic_burning_pact.png": { "type": "file", - "size": 3261391, - "sha256": "e3163733cefc1f8c99f0d6549329e0fff3fb3a6c15dbb917d455173d39fa6a85" + "size": 281128, + "sha256": "b17552873bc5e7c7d7cfb3337a58d73288f8e4a5e4aedec9edeeb40efdc8a647" }, "mengsan_ic_clash.png": { "type": "file", - "size": 3375675, - "sha256": "c61999fb8ee8d70150348630fc773d7391f2239d01289acb1cb98906ad6b29b6" + "size": 287097, + "sha256": "5b15696ffe6f419309d3d0be712e18043e3746d10adc97e29b360c95f8f394aa" }, "mengsan_ic_colossus.png": { "type": "file", - "size": 3446064, - "sha256": "95758ea8bc56299aa7f29f48eed911ece7fa11fbbfd77d6ee865e3142002a607" + "size": 292362, + "sha256": "f3dce17e4b06d5eb9d8f67c74942bef4bde6a0e435e08fbe4d4c8984dea34a94" }, "mengsan_ic_conflagration.png": { "type": "file", - "size": 3383784, - "sha256": "24340736d1292a3e199148b02c6a395d91e94ee541833a7d9acf472285046967" + "size": 277137, + "sha256": "31fc8317518d907157ae0102b6c4f27d25c1fbcf65cb08601b532ed439b552d9" }, "mengsan_ic_corruption.png": { "type": "file", - "size": 3321262, - "sha256": "040e1f40a9205862b4893fefbbfd0fbde2530983694bafd1509347830b60bf26" + "size": 282239, + "sha256": "510f072f999d46ccccff9451a74e3c5b89f30bfa34d2b6768da13a289b52e0ff" }, "mengsan_ic_crimson_mantle.png": { "type": "file", - "size": 3315436, - "sha256": "7a0b60005554b2ecff4eada7096b5be930146e51769cc6f3a5784fc8f6f84459" + "size": 280963, + "sha256": "0da2398d9ec8a3b0384fb9d2c0138c25d72761988d9d01d74f9128c31f490673" }, "mengsan_ic_cruelty.png": { "type": "file", - "size": 3318267, - "sha256": "d538eac00eeb64bda764b32555207e79de8eb860d4b9e80377f0566534f8dc4a" + "size": 284558, + "sha256": "2b9fd288a8e862a398eaa43027abe22089fce1bb9b507481db326002e753382f" }, "mengsan_ic_dark_embrace.png": { "type": "file", - "size": 2966840, - "sha256": "ffdd9cc3fbd16ff58c647d4e05c6e8dd78f348140de2a0651dffe40e4ec49cdd" + "size": 270814, + "sha256": "21027bb399dda93c33b002753df1a73b382352913cc2c673b4ff85ee4d2c338d" }, "mengsan_ic_demon_form.png": { "type": "file", - "size": 3414331, - "sha256": "33b54e87e86d88c50e9995ea6849eed9e2f65dc0a2aa50a8a72b8ddc3b209165" + "size": 293315, + "sha256": "8d62cec70f7ed69030801d62279b2e1d7caf82c4c2cc32a07c6e3efcc326392b" }, "mengsan_ic_demonic_shield.png": { "type": "file", - "size": 3363214, - "sha256": "1f2ccf30e3534948282ac9cec36aeb1eb8a76161f4970188610f4ebd564a6cf1" + "size": 284972, + "sha256": "50f3b5e9278393ec37faba009e3ea591cd1adc2ce07633240ed8490c11e7b6fa" }, "mengsan_ic_dismantle.png": { "type": "file", - "size": 3290705, - "sha256": "1524381ee0fd906e7c287017ac2c07df01a2128837635c958456d90f8a116526" + "size": 286452, + "sha256": "bff545f4709221adf0b10c7629efb247f64be4ebd833cd71ef5c5a12f5b588c6" }, "mengsan_ic_dominate.png": { "type": "file", - "size": 3314562, - "sha256": "1b054572525b494046efc2df72e87446a121bee8084a6ab022f526d8e9f0076f" + "size": 287224, + "sha256": "5f679ced55ad9d87da8a6fbd4a37695b152ae2a60d94da827b52acb99941dc5b" }, "mengsan_ic_drum_of_battle.png": { "type": "file", - "size": 3155334, - "sha256": "498552963fda156c5f179fd7a3b4ceb1adaa6e8f9e4e02d864508a95a17c21ce" + "size": 276748, + "sha256": "51a69700fd6adb684ed23da50eb5b3a58c502aa5b9dc392602d08cb35a504863" }, "mengsan_ic_dual_wield.png": { "type": "file", - "size": 3219368, - "sha256": "a22ebfe2790fe287f16e91f3bf767b1bdd2770c86559ee39060dfac2708dee2e" + "size": 284469, + "sha256": "4e26f6c875e554ac095c1c33874f3df78f21e0b5a86352055447f7b64016be46" }, "mengsan_ic_eager.png": { "type": "file", - "size": 3155388, - "sha256": "30fc98f684f1f4d1e428245b89917b7bb68c037b5d7582a8f7eeab99685d2b5d" + "size": 271026, + "sha256": "3d6294313d96f73d9567112a8f6ae241ea267293d36bfe71b236eb31ad1dc42d" }, "mengsan_ic_entrench.png": { "type": "file", - "size": 3500692, - "sha256": "38f8a2cb023b54a49d9c85bb523c4c7f8c6ea60d6ed30d2e02825358fba5a900" + "size": 286869, + "sha256": "3f744ff75751d60611c5261d399bb918a3836b3c91415cf8fea6a01d832da540" }, "mengsan_ic_evil_eye.png": { "type": "file", - "size": 3403431, - "sha256": "cbf7f72b018401d6cc208b8f03440417d0943d70e1f91fc3f6ce9f3279f997f0" + "size": 283650, + "sha256": "2faa8de463e92655b64073f52d9345e538f131de868c48aaf54f59485ef8f119" }, "mengsan_ic_feed.png": { "type": "file", - "size": 3195433, - "sha256": "e68e07bae5c148ada1a33964265fc9eb9a0d4388fee3e35f6f9b0fef0f53afc8" + "size": 275805, + "sha256": "a1c982f3d5377adcaa39b96ef19a580feef01ce431d9adecfba68a28fcc7c6e0" }, "mengsan_ic_feel_no_pain.png": { "type": "file", - "size": 3148743, - "sha256": "216044b33d3dcab884597a5382d932b34be68b36700de401952107e96bcdb83c" + "size": 277116, + "sha256": "779915e2e1bacf218b82dce39fa4106573aae52947e84848d02bcddced92a6fa" }, "mengsan_ic_ferocity.png": { "type": "file", - "size": 3156966, - "sha256": "7b71c93f5fe9a48c63f52c4072c021ff8bd3da26e89a478cdec9ca675ed150c2" + "size": 270349, + "sha256": "f1b310f38a32b769d50514b2aa6045ddfa7cfbef2b8f98651f51d3a3f38dcad6" }, "mengsan_ic_fiend_fire.png": { "type": "file", - "size": 3445601, - "sha256": "8e10353d6717f4f649acf821b3e3b4af70a058d40aef7e86ceef3b70fb413d5f" + "size": 277055, + "sha256": "701ff87c2394c59e674abca313a4ed11ec754a1dd2aff47d08d65e69bc4244b1" }, "mengsan_ic_fight_me.png": { "type": "file", - "size": 3312407, - "sha256": "3bd8d2bf23c8fa667cb40297716218bb55f3cceb12e77b841651aebf9c7f5545" + "size": 282457, + "sha256": "cebfbdd33a0fba5b5f464dacee6c780e006208e86a73e8ec3a8964ff46cff0a5" }, "mengsan_ic_flame_barrier.png": { "type": "file", - "size": 3459567, - "sha256": "c73225d6181f96b6d5f35ef306d858c73b60d3af986cf0232e704374413a134a" + "size": 280002, + "sha256": "7ddf27c302f035ab69503b072912d55f8d82d1b1842f11c6dbacde90f1110264" }, "mengsan_ic_forgotten_ritual.png": { "type": "file", - "size": 3345779, - "sha256": "8a2b56f31440771c5c853d1dfe9860e507675b9d330ff0a48f7d11762e51f537" + "size": 281565, + "sha256": "ad78b78f6e2df161e6adb776bfcf6bdf3bd246908d769dd5fd9b0010449ce25b" }, "mengsan_ic_grapple.png": { "type": "file", - "size": 3215001, - "sha256": "512ddb86f8ea7489b5b292cdcd4f0d7d892ccd7c4a2bba0e218c06325f23646c" + "size": 283038, + "sha256": "91c01d8f4e752bc86f279026fe28aa59f3bb392ffc05cacad3d8246eb28b1604" }, "mengsan_ic_hellraiser.png": { "type": "file", - "size": 3258334, - "sha256": "b0a15fd06317803c7f29537a03527d41ae430f53595a7ff92ba491cdb068b76e" + "size": 284015, + "sha256": "c4192aa411e1a856541dedd8c2fc5bd65cb19d93f78601370adbb7e0b14a3d79" }, "mengsan_ic_hemokinesis.png": { "type": "file", - "size": 3582165, - "sha256": "e7392585c268ccca314b9be969951fc803e011beaf2cc3c72d578c0561b674d8" + "size": 285990, + "sha256": "b0e34131c20486d348bb251e72fe90daef35eb8fe1f3f039072914d92b14b094" }, "mengsan_ic_howl_from_beyond.png": { "type": "file", - "size": 3196502, - "sha256": "801203f8103404b55c861450d104866975eb2dd379233c8d19de370a83c4ea9d" + "size": 271644, + "sha256": "d70d78d493e6ce8833d19c898a3e7f4f91d796bb25419fad43c5c2290e127ae4" }, "mengsan_ic_impervious.png": { "type": "file", - "size": 3398556, - "sha256": "45366fc69d3c6b7b91fe15611c76f693fe2f445406e53ef582b3379447759f18" + "size": 291942, + "sha256": "c6be856ad7f613a9d1b224a6828327cc3d806bdeb30edee084b2b024c2a2eede" }, "mengsan_ic_infernal_blade.png": { "type": "file", - "size": 3081535, - "sha256": "10cfbfdd41d76c924f4c6fa74f57dc6546c181f26602c091e602ad0234b4ee07" + "size": 272334, + "sha256": "fb3336e31b3410ea8816ec07978a38f8c8b48318c60a3c5076817f9253d1af87" }, "mengsan_ic_inferno.png": { "type": "file", - "size": 3389310, - "sha256": "b1108d5cb2cefa40f9a4a5ea13a924a2624a57b4ca7c2ae8b7e7086ba09b090d" + "size": 284674, + "sha256": "29d668178da39d120f696cc61070724896544b956e4ea39e58829b51b096dddc" }, "mengsan_ic_inflame.png": { "type": "file", - "size": 3236167, - "sha256": "f9ee9fd58e4d5e74669665e0cbbc9050a0b61aa3ec2a798f97da97c1a6d44e1c" + "size": 286512, + "sha256": "d0a2e4f6b74104a044c007b18c65322def8f93f9ff466032431aded78b2e35f6" }, "mengsan_ic_juggernaut.png": { "type": "file", - "size": 3433571, - "sha256": "4faca2d750999826ca934c45ea648850233b4038207b6cf1d5f05eb6ffd34f49" + "size": 289780, + "sha256": "1a8d78383b168b8309d7259201a266297281ca0fb56ed4f9f443bfe79a13181e" }, "mengsan_ic_juggle.png": { "type": "file", - "size": 3320003, - "sha256": "d3f8d1394131b5f7d6cbeef9b8eb89ac25b0c108d79267210d5b6f9f7adcf513" + "size": 287046, + "sha256": "7ceb0f74cbd69653a24afe5e2618c224b0e86921e54534668401cfc7efd93769" }, "mengsan_ic_midnight.png": { "type": "file", - "size": 3163175, - "sha256": "e0f68012e73f192a2cc169235eb0b49f27b6991c37a5e8862cdb4f32d010d39b" + "size": 272404, + "sha256": "d4653cb196c2a7e23bd235be2175109ea5b1a01091eaa5fe23fe43adc3b55ced" }, "mengsan_ic_not_yet.png": { "type": "file", - "size": 3398829, - "sha256": "dddcd2e90d84883c33653169df1591633b944932aaaf6f34f43be10724007515" + "size": 276205, + "sha256": "f4ec82032ded94ffe2cf52b8ec0f9a8e6f9b6ae7dcf1ebea768679334efdcd33" }, "mengsan_ic_offering.png": { "type": "file", - "size": 3358902, - "sha256": "a8ac083487185734223c31e1e428f9ee78c0dad7e6e37baa201bb33a44e974b5" + "size": 286348, + "sha256": "ba4df8f33423d64efaa11a7433636d4e6a856c13695b0a0de0ad83f5177ad0cc" }, "mengsan_ic_pacts_end.png": { "type": "file", - "size": 3444230, - "sha256": "c23a5eba95bf6d44519eb890580ac576ea5477f96345cd9c58b03183d74179bc" + "size": 290271, + "sha256": "d061728b60b3e034ab04d2157c796a8f97687b435351866982388bf3b6e35866" }, "mengsan_ic_pillage.png": { "type": "file", - "size": 3371280, - "sha256": "f7aba0b71d6cbd43d6de528713e7b2ca015c35a99826dcfbd8cb04f9d8e4c684" + "size": 291912, + "sha256": "a424a0810cd9fc7bdced39fd6904ae5cff475115fafc725c0bf726dbce4db857" }, "mengsan_ic_primal_force.png": { "type": "file", - "size": 3284334, - "sha256": "c3b0d479166fae86e39f60739118fb993baae2d9c2e0ff2bc0b606d95b436b84" + "size": 283856, + "sha256": "3d7edeb8c8f1eb0e8618a47fa0b69863a798bc5d43ebd2b3be36e918de5798f7" }, "mengsan_ic_pyre.png": { "type": "file", - "size": 3272678, - "sha256": "e29710c3846fbe3571460232bbe337f502b1a5cb3928774b0796b16339030e3f" + "size": 274583, + "sha256": "e34631b6111df2949a1160693bdd3ac9f026857c53bc0929c500ae15e6eb07df" }, "mengsan_ic_rage.png": { "type": "file", - "size": 3254815, - "sha256": "178f291ccb5760f122b335b63963432e0e547f54b6d2a94b95641c382e60b708" + "size": 286146, + "sha256": "a90e6dd8ef551cab903c75da07800d7ec203d6c055c32bc5d292d50d5a080418" }, "mengsan_ic_rally.png": { "type": "file", - "size": 3208925, - "sha256": "5ca01c9b5ab51118da8afe5f5019ac9c8394d21c3153260d307d3c1e83de9159" + "size": 278772, + "sha256": "19e97f203eda683749b39125ca4e55b979a03a397cee6bc8c0fe516065d09d86" }, "mengsan_ic_relentless_assault.png": { "type": "file", - "size": 3157513, - "sha256": "d5093dcfc00a559844f160f6a07a32c5633047312f04e2c84cf385850f4565c1" + "size": 277053, + "sha256": "91b3099fdd45ce4793dc6620519421af2e198782b710a4f0069f227c32a2e0c8" }, "mengsan_ic_rupture.png": { "type": "file", - "size": 3242389, - "sha256": "a7d85597a367d43006abb2bc54fc1adade5f1fe396d80aa64b1d1fc0790c5517" + "size": 280778, + "sha256": "ff355f5f28889c0f52c79a169abfdf07d5e7f0f934d5615bb888ba82e518864d" }, "mengsan_ic_second_wind.png": { "type": "file", - "size": 3326737, - "sha256": "c00a2886359ff2cc6e067de86ef0126040934bd079e1d65b12a58e749bbc48f8" + "size": 288240, + "sha256": "fd59f3dfc89d5f2203c2f73d37eb1b6be929e86e88a76360b2b79acf423f3a11" }, "mengsan_ic_stampede.png": { "type": "file", - "size": 3340733, - "sha256": "3e7ecc806b9c528cdd2e2de45eaf04926e9fd0a49a71ae06602e1fb9938e6804" + "size": 286742, + "sha256": "1683abb1cd4a04876d04054a71217dcd57aa21fd9a9562332caf9a9fec36d481" }, "mengsan_ic_stoke.png": { "type": "file", - "size": 3224630, - "sha256": "2f2947c935a95aa22e7aea17e5b684e8077d0ccfd56348d404a3dea40e428850" + "size": 274723, + "sha256": "0c87883f06657ac82988687710d999cc519cc505bef60c998494ab94fd31f549" }, "mengsan_ic_stomp.png": { "type": "file", - "size": 3230547, - "sha256": "ed2a8f438c40c486e4efbc128c45bce568137d3d87a4d97ad2a3b69317e43342" + "size": 282210, + "sha256": "85f63f23137dce14ed09f1b5d2f04375351e259168225821770882161a6369a8" }, "mengsan_ic_stone_armor.png": { "type": "file", - "size": 3409260, - "sha256": "f72619cfaed0d7b433dc58a6204751e292a4e69cde3089417ce346894ebe683f" + "size": 291873, + "sha256": "9891d4a8157d0f6ff1f3330ecb780260d2ed39ff72788e9753d1d5a636c4cf62" }, "mengsan_ic_taunt.png": { "type": "file", - "size": 3260651, - "sha256": "122103d43fb1053d12d172c2a488bae9f7a6765c6d36ea2d3b13412a2de6e33d" + "size": 282698, + "sha256": "f94d828893a7c6dd327713c0b872b1d73be99793bf63ded6c6a16c490134f024" }, "mengsan_ic_tear_asunder.png": { "type": "file", - "size": 3318965, - "sha256": "df905976f4888b4eccc1418591a38c725f9c45cd579097adbf255c5f3ba2aeae" + "size": 281800, + "sha256": "6413c5272babc2636c97d76014b6fc40d769c3704b91df99012e6511986ada9b" }, "mengsan_ic_thrash.png": { "type": "file", - "size": 3408839, - "sha256": "8277ecb7faf2df11ad9e05de620b47ea44f20a866ff02fb9ff042ec8479bfad4" + "size": 285268, + "sha256": "b14efee9ffd36f81642a012c8221a9450eacaa5b2dd00a2c5e27685e4db38673" }, "mengsan_ic_twin_strike.png": { "type": "file", - "size": 3465328, - "sha256": "a2e60f67dfff10789fd453f1525941238389786f3dc5e71788a30d312b751914" + "size": 294861, + "sha256": "da1f3e62917e32af6075d4be404e30d59fafe262cdf39eb8dbaa2c9807a5cbd2" }, "mengsan_ic_unleash.png": { "type": "file", - "size": 3412724, - "sha256": "3dd9906996d07deaa06e1b56839609175a1d9d88bccdd9237465844c3e5882bc" + "size": 286537, + "sha256": "c012976e9e8d7d05156812994fe07c937c6bc30d94680ee1d656f697ae6911cc" }, "mengsan_ic_unshakable.png": { "type": "file", - "size": 3286732, - "sha256": "a7540f94fe98fce1434928b6a204f96f2f036a3db81579e499b2a31a7d9c6184" + "size": 280071, + "sha256": "e2251ad2c80eccbc947bf709a5a509ddc259b81bab9710493ee2b085215c17f1" }, "mengsan_ic_uppercut.png": { "type": "file", - "size": 3369967, - "sha256": "0935723010a4fd761821e827e6d456a07c63ac937beb0ca8421415d2bd67bc9d" + "size": 290682, + "sha256": "e831ba734e7872528b687d161644b5e735630bb26dc88a4623b302a4743f0a6d" }, "mengsan_infection_shuying.png": { "type": "file", - "size": 3154682, - "sha256": "7a47a79522cf9c684efce578b43197936a37feca7e229097d86903118e5a5862" + "size": 276669, + "sha256": "b1c457adceb378b8a816f4f33531a44e8f8fb0787296f104649b9584fd378890" }, "mengsan_jianbingdaji.png": { "type": "file", @@ -3249,8 +3254,8 @@ }, "mengsan_jianyi.png": { "type": "file", - "size": 308533, - "sha256": "8440f6dc36bbc3fec6bd7406f2a0623aae37f63e7cbc1a7dc7b912805f4c9f38" + "size": 246696, + "sha256": "3c79ffad964fc6c47a779250bcb2db050e973e77d9c4d85ec7facf0c2ab2b9fc" }, "mengsan_pomie.png": { "type": "file", @@ -3284,8 +3289,8 @@ }, "mengsan_slimed_shuying.png": { "type": "file", - "size": 3173387, - "sha256": "6185d04b40409525e0eb8268eb55ff0a047ad68833169230936dca937c37b05e" + "size": 272310, + "sha256": "628e65fe0b93ca2f9f769a3d21d2d764b86e9a0f7f8d6945e7d4c0350a5f807e" }, "mengsan_songjianwushi.png": { "type": "file", @@ -3294,48 +3299,48 @@ }, "mengsan_status_beckon.png": { "type": "file", - "size": 3089872, - "sha256": "ec9aa4385fcffa00030390c2bf02ed833cf7b4200d268955831949e3deb4c22d" + "size": 275940, + "sha256": "7151d406f0f84200274ae097fe2f0713faebbb529b44a4d70e16c25d841a32d3" }, "mengsan_status_burn.png": { "type": "file", - "size": 3202565, - "sha256": "fee1bddc02b755972e99be68fd354ec69cb9b6286a15c9c8203ed2708bb29904" + "size": 275450, + "sha256": "6ecb4e9e00a34ec107f2ab819bd5cb4d53e8a758c0636457af7b0291603ba895" }, "mengsan_status_debris.png": { "type": "file", - "size": 3212683, - "sha256": "8f251585e1487a3d8c04111eaac50ca7860745a8386107c0497f777fdc2ac3ec" + "size": 273356, + "sha256": "df7b1a6688b3593f21156d002a3cbe341b59914df2d677d0d4d91f7c3bee59b2" }, "mengsan_status_deprecated_card.png": { "type": "file", - "size": 3211849, - "sha256": "9dc7828e6e5559479d48a2f26144ca40ee365b5587183496d41085bc01f7464e" + "size": 281733, + "sha256": "4513f24a0d869fd7a8ce2b0f73eee82cedf728ba29c569149a954077a9b25972" }, "mengsan_status_frantic_escape.png": { "type": "file", - "size": 3331510, - "sha256": "e5b328f4f8efae481d25ef7fc2739c4f614ff05ee65799363a4194e229406526" + "size": 284940, + "sha256": "2d0d970b649f953cf0669c1b84148bff34f6c29973cbe057eb5854ce885eb594" }, "mengsan_status_soot.png": { "type": "file", - "size": 3164859, - "sha256": "885f2f1557cb9483c0bc0538c6eb3f1abb017809883d24a2f864732df4e48bef" + "size": 276940, + "sha256": "9552ab959116a6affd80ced87a995bfa2f5b64e78d4f30d2d61fbc9eff869b1c" }, "mengsan_status_toxic.png": { "type": "file", - "size": 3047189, - "sha256": "d2e6f92ba539b91a21cd3eb836f2b28c21e81548fbc1fcbf1686680533bc39c6" + "size": 275844, + "sha256": "f0739dfb734f439885d835e771e1f28f637998607599bdb103196c277b456d47" }, "mengsan_status_void.png": { "type": "file", - "size": 2969653, - "sha256": "63ad2acb439b474b93a250398cb153063c01c74ddd4ce7c82a8717f743495ef1" + "size": 272942, + "sha256": "7ded29e99a7afd2800d8abf26330e763496927a8cb85840e01ee2109311b692a" }, "mengsan_status_wither.png": { "type": "file", - "size": 3329606, - "sha256": "265095ea049e38be62725ece19e91c15ff6abb232a4276779b93555ce0dccad1" + "size": 282926, + "sha256": "6c75a9f900f3874b2d2a75b46bcda8e7459622cfee9b6aac3ca69069df5a62bb" }, "mengsan_tiezhanbo.png": { "type": "file", @@ -3359,8 +3364,8 @@ }, "mengsan_wound_shuying.png": { "type": "file", - "size": 3102499, - "sha256": "16aa7c0485416028c1ac4990ceb6d9f850dc93d63a74bfa3514dfddd101f6c29" + "size": 263671, + "sha256": "0200dc20035003f354822e5c545fc9a8cff53469f7c0085a9931c4d67d866c1b" }, "mengsan_wuzhuang.png": { "type": "file", @@ -3796,33 +3801,38 @@ "children": { "battle-director.js": { "type": "file", - "size": 13125, - "sha256": "a82a031a5d92f4e734625a40793db883ef96bd4c9b56bfef5bc56f2b982e4aea" + "size": 12944, + "sha256": "ba3adfa4793a1ef3e2da9959a39fad62789fcd6f41b84e9e342c81ff88edbbff" }, "battle-flow.js": { "type": "file", - "size": 5900, - "sha256": "1ae2db34176a7fc5d19e5001316e1f2aac4b1a883662bafc43af8cb95775970b" + "size": 5801, + "sha256": "9ceffe9539c1d303f75eb23e4512554c174e602f85f53e9f9a37e2fb1afe7bb1" }, "battle-loop.js": { "type": "file", - "size": 3652, - "sha256": "8ff23c71320c91cee2955cabfd8384190a07b80cbddd44bba50fcf9fef4daeb0" + "size": 3565, + "sha256": "0af53c3d317fe9816594c2786bf5a1bfa960babf0c135b9b4d524794730efbcf" }, "battle-resources.js": { "type": "file", - "size": 3095, - "sha256": "0da540600249f9addb23eecfc218930c2a376a0f357eb3a16b628d4c20817020" + "size": 3040, + "sha256": "6e29789023111c4f7b91a11d7169069cc6b9d0087a3451d526233fcf03f389a2" }, "battle-session.js": { "type": "file", - "size": 5561, - "sha256": "ab9880fc1934a87d1ca6640778605ec33e9812c94930567f868a84fd29e56ad7" + "size": 5455, + "sha256": "5e50205af67054761876aa37fbd02ebefc3225f8d1a90afcd708c215ae8e5518" }, "battle-settlement.js": { "type": "file", - "size": 12024, - "sha256": "74e6647cf5ff050962c3e171c1f48747e7a373fdcd5fc35b3ad9c170cbe8931f" + "size": 11994, + "sha256": "be8ef59f8dba0c9cd1f3032ea1de1615058476d1a591c1858b4fa180a13ee578" + }, + "camps.js": { + "type": "file", + "size": 2386, + "sha256": "51ee6d2aa78261bd60b2ffa2662b7a37e62b516c379b8cedd46ecf0466630278" }, "combat-rules.js": { "type": "file", @@ -3831,33 +3841,33 @@ }, "death-blow.js": { "type": "file", - "size": 1151, - "sha256": "aa3ba0da315ae81ae8430c50a57203889838adac8d533aa5400a4bb9976becf5" + "size": 1113, + "sha256": "d0222776b90acacd2fc672559bf59d8c0376cfae68294d5a9603551ed182a0c1" }, "engine-session.js": { "type": "file", - "size": 3763, - "sha256": "1addfa8f6a6e1e56d2dd32b6d1249ef84aa0aaa1ca049a7e0ccb688be51261bb" + "size": 3680, + "sha256": "6aaad4dd6641caea0c0e02028239e355a7b83c3d53b64f704989b56376855750" }, "intent-damage.js": { "type": "file", - "size": 1298, - "sha256": "616a18728b31677b70cc14b88af027c4cc912ae90f11de41355b900ed2c29ea1" + "size": 1266, + "sha256": "c0efe2d26f5ee76f090c5ef04b8607def99ad1a3315dedd5c2b8e42aff218a7d" }, "intent-effects.js": { "type": "file", - "size": 2411, - "sha256": "0f3dc871427bf718b64ce057a08d6b98b100e66fad9f803662818b03cda1e3c1" + "size": 2311, + "sha256": "5fc1c57b88c996b9ba1ff27d220749001acecea028950479c5fc4bf26b854fe9" }, "skill-teardown.js": { "type": "file", - "size": 6849, - "sha256": "5f92d02d245aa3021ea47b245b221c58987b1e5770fe4329eef6ae733b0810ff" + "size": 6702, + "sha256": "49116eed862780a17c9d67182b103bceec3b28621355e16f7351b36520896320" }, "stun-intent.js": { "type": "file", - "size": 1340, - "sha256": "898f9e64b80c5a963229eed340455f810eec2c1777bb98ba599d56101ba11bf7" + "size": 1295, + "sha256": "3a73747311bbae29cd03a3327f0ff398aa085f2d2e480d4013f2f8f15d09f810" } } }, @@ -3866,23 +3876,23 @@ "children": { "battle.js": { "type": "file", - "size": 1771, - "sha256": "bdb4d429b14b98d7d5434afb2d11039938b7eaea37cf5f87a3fba86fc958b254" + "size": 1729, + "sha256": "702bf42803374567630ebfc87515d14e6e7a8c3e33b49f16bdc98ac5e1954451" }, "definitions.js": { "type": "file", - "size": 2505, - "sha256": "f2c02c24fa7704ce4800969c5e4183840c556386bb4fe29a51ef25070636c3df" + "size": 2464, + "sha256": "2ff3db8f5db20416f218b184ad980b9adc93d82197a6f296726e0c76a49e2abe" }, "intents.js": { "type": "file", - "size": 2952, - "sha256": "935f5f1ec90ba7e0cd0539db9c51ad5ba11e9063bbbd060a56f4ef6c34bfe00d" + "size": 2888, + "sha256": "514212bec0e6b523a0eea5857212d3369da4eef84cf812866baf5e9a4f3407fc" }, "state.js": { "type": "file", - "size": 4436, - "sha256": "ea5e5fd29a695a6d65fd1ad4aeb8ed97f5dfbdb3b34f8748f099140cd27341e3" + "size": 4372, + "sha256": "8117b0a9c4b9c56ffa7ce8b367ffc89dd69ddacc19f93114c8fedb894cb8f33c" } } }, @@ -3891,8 +3901,8 @@ "children": { "affixes.js": { "type": "file", - "size": 1124, - "sha256": "f65993cabf6fe9b01e9a41de4ff0d47aba56eb67cd9e00d4a67cd87d9ed9bce8" + "size": 1114, + "sha256": "6f5a0975192aa3b159c3c6886a0214fd101869fccd866d2de831afc56f3fcb72" }, "battle-card-copy.js": { "type": "file", @@ -3901,23 +3911,23 @@ }, "battle-card-reclaim.js": { "type": "file", - "size": 1551, - "sha256": "397a0c05591122d91bed20499cdd0b55f3fddcdaa6a2d6cf8d7f4434c1306feb" + "size": 1522, + "sha256": "c38d2f86719d682027be75e8a30639cabeb1cf4d7db87aef2304327181161fe8" }, "battle-energy.js": { "type": "file", - "size": 1502, - "sha256": "cee19be46c41d274bf706c2add12f64834980ddb32526862e78de37bda28caef" + "size": 1469, + "sha256": "dc1e4e9c215a5c3c3a93c6637c72dfd54e622688a243618a4cfafdbf77130af9" }, "block-draw.js": { "type": "file", - "size": 1197, - "sha256": "4770aa0a753b80d103e3c087bbe2046609e99a05dcbc5c388526ba87c554b7ce" + "size": 1178, + "sha256": "fb93243cd983e35e4aaf95fd4f4ea9012cdb62c62ca0d080703918f5364dc5fa" }, "card-data.js": { "type": "file", - "size": 3457, - "sha256": "0bafffc9e6e9c6bd8bae74948bc9b1742450adbda6a9dcb80206054c27bfbbe3" + "size": 3405, + "sha256": "a943104aa2e0115b21a40ff03cd46533680bfa4d088e8906f54bc1ec99c798d0" }, "card-definitions.js": { "type": "file", @@ -3941,8 +3951,8 @@ }, "hand-exhaust.js": { "type": "file", - "size": 2673, - "sha256": "904bd21885750bcb5cabee5478d74a9f5e61651d2b9aeaff1f7b41559f1665e6" + "size": 2627, + "sha256": "36c64653a3646921f511d2721df69f7c75e6a38a11abaa5e2b09280aa0d38b98" }, "hand-upgrade.js": { "type": "file", @@ -3951,8 +3961,8 @@ }, "havoc-play.js": { "type": "file", - "size": 1921, - "sha256": "dad0d45cbbd0a8f13a9aa0c238d14b3c6e7553eb3795e3291e2c53d5b69bd7d0" + "size": 1885, + "sha256": "60292a9bf9fef09c4fbb3cbc5ac4e87267f1b0a01650f4ddd2a23d4f65e33bb0" }, "infection-card.js": { "type": "file", @@ -4002,8 +4012,8 @@ "children": { "data.js": { "type": "file", - "size": 32174, - "sha256": "4ba74b97668b97b99099efd19fdba2e81da02e2ab3764b332fc71cbd135b87cd" + "size": 30960, + "sha256": "6d4b62e53fcbd2a509d335670a07a75b5dce1268bc146f27a10113c68b86e0a5" }, "index.js": { "type": "file", @@ -4022,8 +4032,8 @@ "children": { "data.js": { "type": "file", - "size": 6704, - "sha256": "35d43aa2ada598257fe0d0c18f5ea746d67429c0d9a3d73b145dedb363fe50df" + "size": 6436, + "sha256": "a85d48996fe637e1bb8b976d370e4fb49d1a2bb1e1dd6e9befc1ff6fa1827d9d" } } }, @@ -4037,8 +4047,8 @@ "children": { "data.js": { "type": "file", - "size": 14820, - "sha256": "0badede4d570d625e371f3e06750d708c381f2eff3f14e54f1a803690f28c1c9" + "size": 14249, + "sha256": "b195639153c1cb6a3ac48d5af364c9a915a34e96d844ec4e4848d914e5896017" } } }, @@ -4097,8 +4107,8 @@ }, "traits.js": { "type": "file", - "size": 8277, - "sha256": "38e1b081a3789f3760c4a0889b34803667006b326dce1f8e2aa2c862d997a549" + "size": 8178, + "sha256": "bd813bd37feec90300edd14d3d23fcca301d75ff32fca096555e3bbc35bd162d" } } }, @@ -4112,8 +4122,8 @@ "children": { "data.js": { "type": "file", - "size": 405, - "sha256": "93244ab064a100fa9a93f0cb19acc1d22b6ce17036b2f5cc71fd4f1db42f8497" + "size": 399, + "sha256": "ec004403090107d462d6948751154b03ad6f88a16ac6a844d1898f79e6184386" }, "runtime.js": { "type": "file", @@ -4127,8 +4137,8 @@ "children": { "data.js": { "type": "file", - "size": 4513, - "sha256": "16de512e265f4062ed9fa077d655a416147308b72d0893348c0ad8c27f5b89b3" + "size": 4334, + "sha256": "7ca46d39b6f3cf99189d86811a4d618dc759117c66e796a3e00ec70621765dc2" } } } @@ -4136,8 +4146,8 @@ }, "personal-piles.js": { "type": "file", - "size": 24202, - "sha256": "47c23c71b36d6643953a783b3a74c85494cd2f04880d9cbfa44db69e47cfb32f" + "size": 23856, + "sha256": "c02754f949c5853dbabb7e2df42189f82f994d6cc6fb3cdab57a3df784d0f03b" }, "rampage.js": { "type": "file", @@ -4146,8 +4156,8 @@ }, "random-hand-exhaust.js": { "type": "file", - "size": 1293, - "sha256": "486758ef934e381bd825a46b07e140f5f28e08eceadba25dd9f107ffefe80372" + "size": 1274, + "sha256": "7729cee9b27b696012e6ebf5287fa828e7fa6faf5a68a963a5529e2e9ee2fae6" }, "rarity-data.js": { "type": "file", @@ -4186,8 +4196,8 @@ }, "starting-deck.js": { "type": "file", - "size": 1668, - "sha256": "89367f707791d9f275b5fd5b6cf54b4d47e80fe9133b4a314a9a0bf4b9cdea3f" + "size": 1638, + "sha256": "44b221d309a96884a51f9ed402b4625200e61ab3c2af79db450102ad0813a37b" }, "status-cards.js": { "type": "file", @@ -4196,13 +4206,13 @@ }, "strike-counter.js": { "type": "file", - "size": 1534, - "sha256": "a3de2b465d19a2f14de20ad51e915b4e3459def64fb355627ed2791865a83af6" + "size": 1503, + "sha256": "a1058fe9ec2f8d3bf21eae61326cc74435bce25a49a67ba024f0c516065a4e89" }, "temporary-strength.js": { "type": "file", - "size": 3764, - "sha256": "5b843d1f9367108e190a4170644c644f83e113d728ada4fb7d2a997f12ea2fc7" + "size": 3689, + "sha256": "f9720c6896583b3a7d682949945414ef6b6c1d17a906cfa6c8968c3bf5e455fa" }, "upgrades.js": { "type": "file", @@ -4228,8 +4238,8 @@ }, "config.js": { "type": "file", - "size": 875, - "sha256": "7fa71a17b12d31b1e8ce279b396c0969ddcf8986a6d6ce9e9583aa476b4685c9" + "size": 847, + "sha256": "738e1aa69e580ea2540827248cfb551a99da7d8096184e089705a90242662031" }, "content": { "type": "directory", @@ -4262,8 +4272,8 @@ }, "map.js": { "type": "file", - "size": 1793, - "sha256": "a43b1516a93509fa4035ae6c23d4b106566248161a61eb15983b36e0c9495747" + "size": 1761, + "sha256": "cdc3ef153ccde6acac639c1ebc16383fe16e8ffd52935f915b80f27c95ecbb2d" }, "nibbit-pair.js": { "type": "file", @@ -4277,8 +4287,8 @@ }, "rewards.js": { "type": "file", - "size": 797, - "sha256": "dc9c450a77abe5cd35c4ab46dc8833e49287a9d63fa773bb0da1fd64525eb77a" + "size": 772, + "sha256": "8a6f09e56748957693bfcf7a428670a3fbcfde90c746278e8fa372a51a32d3cf" }, "stories": { "type": "directory", @@ -4290,8 +4300,8 @@ }, "liubei-opening.js": { "type": "file", - "size": 5731, - "sha256": "1d61fbea5194a1960d9e6bc95d0f5b733687afae7d769a1ac9e0846be97341b4" + "size": 5658, + "sha256": "23195b5af712b591d388c9d874a27a2cb19e70bd7a966fb88228bc349353eb99" } } } @@ -4336,13 +4346,13 @@ }, "registry.js": { "type": "file", - "size": 7581, - "sha256": "71a6aa7e0048992fb38e0a3084f793f4874deefd614bbba3a84d22dea45e0a7a" + "size": 7479, + "sha256": "436dd3b3cb759045765778a3cfa1cdc93264646ed97b191197fcb2ec19e1788c" }, "scenario-characters.js": { "type": "file", - "size": 9835, - "sha256": "608a47959212ece33171e7d12c2116701e09dac98634f97279e294192e03dfc0" + "size": 9732, + "sha256": "c2678ddedd3349829eb9b3daca1862842ea6da2e928f8edda41c62d4d72e884d" }, "shared": { "type": "directory", @@ -4354,8 +4364,8 @@ }, "rewards.js": { "type": "file", - "size": 9046, - "sha256": "ed2b83da3e322cd6e1d2bf15c5011757faf380e1b8343efbebdb06c83c311736" + "size": 8893, + "sha256": "867ac35043e5ae50a20349f944f2514c5e6201b71f2f92ca9fd28a0a26fe11f0" } } } @@ -4363,16 +4373,16 @@ }, "mode.js": { "type": "file", - "size": 113891, - "sha256": "a4f7498ef506f894890fbcbd3058fab0c13876657d3d207b3e99be9829702577" + "size": 113283, + "sha256": "dda3ece26a917cfe447fbd55ea3ca8f6f791efa5aa352267d898814936bf854b" }, "monsters": { "type": "directory", "children": { "actions.js": { "type": "file", - "size": 34417, - "sha256": "97461914dd3a40e0bba6cb5e1ff41fe34208ab996dafcc64ed5a33d0d3cdebc5" + "size": 33807, + "sha256": "4d07d53c1aa85278190217194cf68180ef428411dd89dafb5cdae7568a11500b" }, "artifact-status.js": { "type": "file", @@ -4411,8 +4421,8 @@ }, "flyconid-intent.js": { "type": "file", - "size": 1743, - "sha256": "6ff2be31555c591a872cc0ffcc7aea99a7bc9b6bd5156993f8847156eef8637b" + "size": 1705, + "sha256": "cd65c7e8004c4810eb5bafda7b20563900ec4f264cfd352e2607f9d6050ab631" }, "fogmog-battle.js": { "type": "file", @@ -4441,13 +4451,13 @@ }, "leafmedium-intent.js": { "type": "file", - "size": 1462, - "sha256": "ae373c29e39891992b857afaf11befac1354f163026a797e8bf13ad8d81b71ad" + "size": 1436, + "sha256": "ef04089133b4ec6157e48788eaa62c506a424c7e4ef479219529689f4b6bfc81" }, "leafslime-goop.js": { "type": "file", - "size": 1653, - "sha256": "133da2f627601e79aa51b6eb87acff777a3ca60c74d142b0d205c40ccbfef3f0" + "size": 1627, + "sha256": "a65b6a00bf246951abed47fb66a6d476849d7cb427169524a1d2ce722ab4758b" }, "leafslime-intent.js": { "type": "file", @@ -4461,8 +4471,8 @@ }, "monster.js": { "type": "file", - "size": 11658, - "sha256": "1464b42fce32b9266724c8f0eaa06923c1171cff539c337c96af1cc32bd7bc8a" + "size": 11416, + "sha256": "d6b6bbbece20f50da448adbba8f775acf5f155084008e8f44a61a30d2d1b2aef" }, "nibbit-intent.js": { "type": "file", @@ -4481,8 +4491,8 @@ }, "raider-intent.js": { "type": "file", - "size": 2060, - "sha256": "b15b89d53914c472c3ef4f2e54e3551bb6a80cd783c21d340676189c2e22c948" + "size": 2021, + "sha256": "70580ade399e910e817e3929a41dc2da52bfadf36fb3b494a17a86effab27ee1" }, "shrinker-intent.js": { "type": "file", @@ -4511,8 +4521,8 @@ }, "twigslime-intent.js": { "type": "file", - "size": 1299, - "sha256": "dd772c38e732ebcdda6e5b0ecd4725f73b36cb880ff156f3aaa64470a53633bc" + "size": 1273, + "sha256": "26a3437ffc95bec9638911537e5b572f4b12d8a94a06d6df358d73237a181830" }, "vantom-intent.js": { "type": "file", @@ -4536,8 +4546,8 @@ "children": { "dialogue-choice.js": { "type": "file", - "size": 837, - "sha256": "e00707810480b281bf3e8c25923cf09997d06cf2dc3b7eea35c5a1a47c5cd3dd" + "size": 820, + "sha256": "b85e45995226cb30a488d5742c09a407ad9557d95e29136dd72fbaf695a4005f" }, "encounter-progress.js": { "type": "file", @@ -4551,28 +4561,28 @@ }, "mode-storage.js": { "type": "file", - "size": 3833, - "sha256": "83ce9bb6191644f547a0dd79bd46ba86be149047b3e24844a4757270f6a09fcf" + "size": 3740, + "sha256": "7e266df0de15e4f2252600f10a21a09c01949680c1aaaaf5453591b9df3573d4" }, "reward-package.js": { "type": "file", - "size": 1561, - "sha256": "2cee489f48e5f9d4bfbb9fd1e50dc6d41cf9f778b21432e5aea1bb6730b21364" + "size": 1527, + "sha256": "acd839d139bef9d22036e7bcb7acad8c5f25aea1c2a615d224020d97f4e7f313" }, "reward.js": { "type": "file", - "size": 3332, - "sha256": "77e29120ef5bc20b27865c342e5abda0357063b591e226908f8c4bc0f5320c21" + "size": 3308, + "sha256": "31cb0895cfa98696cefd7301b967ba3652aee2c4401f7770e64d6a2cf68b53f0" }, "state.js": { "type": "file", - "size": 14841, - "sha256": "82a9b2aef527046c9ffb4bbfc470ec2230e6ec42881467a643655a5723a79269" + "size": 14578, + "sha256": "5cb6ac5494251f2a9ac68344862d74736e7ba076dc0e1eafdd06e9eac0923724" }, "story.js": { "type": "file", - "size": 737, - "sha256": "4db3cf98d5a102cf5bf6d3022b0bdb4c7d70430537e2c4a6a9e541822951f016" + "size": 718, + "sha256": "0719c33cf849fd2b647e4e4ff987560c5f9ea2a015b4acecc57269fb6b562059" } } }, @@ -4586,23 +4596,23 @@ "children": { "battle.js": { "type": "file", - "size": 5015, - "sha256": "976e13531625ba00d2941d482d36d9dfd5cf22d1b8de66b519e8b3b928f8a6c9" + "size": 4893, + "sha256": "e3b9977b9a20a2c85b3cb01792c996b5255920f455ab07ab537a6f9c915eb470" }, "combat.js": { "type": "file", - "size": 4101, - "sha256": "1fd264d6d07be511cde006ab18f14e5ac8170ad539083a20a3259b1b70548202" + "size": 4018, + "sha256": "d5d2c53a596a3772e0f0931f56b0db423cbc69f20847318a9aa77dfb1d2c0e92" }, "definitions.js": { "type": "file", - "size": 4707, - "sha256": "894f66d2a98761926655124f0cbd05acd20aaa8335d61d838fd3cd6bf550d224" + "size": 4608, + "sha256": "e974f83405153b994b9135cf6ed3998a28ac8313bd42042075db9460cf9edc6f" }, "rooms.js": { "type": "file", - "size": 1032, - "sha256": "88af2a408d062f78f98dded9e7de4a51c98468eefe217e827d43aa34e3a7410f" + "size": 1010, + "sha256": "331664f916965f8d72ac9db50a59c5ff4f18f7a95c6beb5eeb9e44d247ffd053" } } }, @@ -4611,46 +4621,46 @@ "children": { "bonds.js": { "type": "file", - "size": 4499, - "sha256": "2580f60f3b9aac29206a8e1198322505a2283bf81ea379d3a6ca31251f42d5e3" + "size": 4415, + "sha256": "275713f94c9ede664537104a1eb483ac198b477ecc3e5cca52bc51208b3b274d" }, "card-library.js": { "type": "file", - "size": 20776, - "sha256": "7d5d1be851490b9d1ccda7b3acf621bf2dbb608f47e0284a200ce788889d7f90" + "size": 20528, + "sha256": "b58a96859599082e83da6e8c9026619392cf9a72ebe7223d86e078de3ea14d56" }, "dialogue.js": { "type": "file", - "size": 7842, - "sha256": "e61b22cf27f810a45404e0d05969b03e0a6603d581f8cf7a052a3c30348325f7" + "size": 7649, + "sha256": "a405f315270c24cdb2c53ba4e211a3fd5bf9bb582335d5dbf910adb5622deac6" }, "energy-display.js": { "type": "file", - "size": 511, - "sha256": "37bc74971d52429c7e1c3d9d0c2dcccb29a61e968ac1bf4eb0a2330801d8fd69" + "size": 498, + "sha256": "b12157ac3008c0e63fb384fe5fefe54964b86436652c73670f6a4c4faa4ad1da" }, "flow-ui.js": { "type": "file", - "size": 3106, - "sha256": "f19d26b3ccd5579885bd9fe9a3444f4d06125898020b165acf91ad2d1f6a37e0" + "size": 3044, + "sha256": "76032d73c27bd3ba3a54064a7cfc1741f3fea379e26636da3037000943ef6450" }, "gm-manager.js": { "type": "file", - "size": 4727, - "sha256": "1ffcf493ffcc4d9b16911e81ff62b15693213355c3226270e5224b03042e8868" + "size": 4636, + "sha256": "e6feac7f157824fba6436330612267f98158a95c8db64b4ee5019e65d1fb8324" }, "hand": { "type": "directory", "children": { "adapter.js": { "type": "file", - "size": 955, - "sha256": "dbec5a22b19ba7790c2118328701331b9065cdd7877ad237fa6ba635aad0ab6b" + "size": 935, + "sha256": "91adc86b2810e27bd09d07297ac427cbbc151936f4dd8736ab1413b4eab78a0c" }, "diagnostics.js": { "type": "file", - "size": 740, - "sha256": "9ea7729febf7cba177dcf76ff8a65ef3c0f44ff3e8cc020bbb39a4654837293b" + "size": 723, + "sha256": "f41c12348a508a7a1505fbc311b9c4b3cf85be038cc93e467a5f094bf1e5dde3" }, "fan.js": { "type": "file", @@ -4659,8 +4669,8 @@ }, "index.js": { "type": "file", - "size": 9105, - "sha256": "a236f0ed58ad3f7953cc79b04d688efa3c7a394d2fbeb3d5ac2eef15f7242fa7" + "size": 8989, + "sha256": "c4f602e6b397b84e96f47a43858a835dcd78a4f671b0e89143b6df088c01204b" }, "input.js": { "type": "file", @@ -4669,60 +4679,60 @@ }, "overlays.js": { "type": "file", - "size": 3135, - "sha256": "d89e62b5c73b64dfbd2f449e95b6362d2273ef57bc8db72f552af200d3dc2ad8" + "size": 3970, + "sha256": "9e489fc939f97a21266764f1beccdda1cc3ac9df22f72c633647d7481fa4e662" }, "style.css": { "type": "file", - "size": 35634, - "sha256": "c31ed6dd5b7b2e9d48125f8503512d3af2c0050cb9144dcfdc9d571c351450d6" + "size": 15492, + "sha256": "12618f7fd4acd54db197f1ca82dceed87b75c4b6003f02fcaa9054862718e692" } } }, "intent-display.js": { "type": "file", - "size": 10744, - "sha256": "a920a929183f2815c6ef4226af0585be0f876196b6a061e287b02654068f7083" + "size": 10556, + "sha256": "feb7fdb208d4ee540a0fe66b329402c8587f22dcdb8de2e1eb455b7d6af9a185" }, "map": { "type": "directory", "children": { "index.js": { "type": "file", - "size": 62, - "sha256": "6fb7e6e2547eec9d421727b9d6794e3c96d8e3a77984d7688544a67a00c4999d" + "size": 61, + "sha256": "6fc56c6c084508a39d801521a103f8c39eea90eb895f47a78924997241d9f932" }, "renderer.js": { "type": "file", - "size": 25409, - "sha256": "a9282e2e6ce30973be064a73ce01b5e13cd580179bde24f9482661e9a2b94571" + "size": 25591, + "sha256": "ffbf4b8d0b3c6ce88cdeb2817a90e70b987396f767fb9a2fb593c28b4c4a3f71" } } }, "navigation.js": { "type": "file", - "size": 5274, - "sha256": "22bf6b5ec02c4917311540aac56c1c20b43df5b761acdb867937399db2c2c7c6" + "size": 8333, + "sha256": "fff29ce0f837931f16af40e09a193468273f0eab75068f8c9f8023e9dcc805ed" }, "relics.js": { "type": "file", - "size": 3452, - "sha256": "98049bd5a21a314475211fdb681b4989075b8eca4d33d58e88f4fd4cec19455e" + "size": 3371, + "sha256": "bc24cd2eb4644bcf329a7acac28820feab22b0e4648a1d25ea9e1e3d8120f1a6" }, "reward-package.js": { "type": "file", - "size": 4316, - "sha256": "1c584d2c5bd7252eeaeeaa1da5dbfb11c3df7c364dab0c82f557ca1981afb70a" + "size": 4256, + "sha256": "0ca1458434ebe616fd29eebbbb9314c03249673fc9a9e2cbae6ee09be4cdc16e" }, "reward-ui.js": { "type": "file", - "size": 15399, - "sha256": "ad9e727b90aef2cfcea2a7f757b5c12e43655ea055d0729fd955173076a80ef9" + "size": 15170, + "sha256": "70a1bd26b1ec730bc7cdf04bddf160f2e3ae8daadd54c4c38c5263549aa88dee" }, "style.css": { "type": "file", - "size": 78961, - "sha256": "beaa52e86c3f30144c55333c110e973944180c5d2f17f275821ce75cfbdf2a37" + "size": 77648, + "sha256": "46e38bb6c818d3fae8c0b61e5e2cc7c5c29db69cb72daa244f1a2944db8ebfb8" }, "virtual-card-grid.js": { "type": "file", diff --git a/dist/modules/mengsan.legacy.json b/dist/modules/mengsan.legacy.json index 4890a77..eeb13d4 100644 --- a/dist/modules/mengsan.legacy.json +++ b/dist/modules/mengsan.legacy.json @@ -1,5 +1,5 @@ { - "version": "2.0.1.1-rc.1", + "version": "2.0.2.3-rc.2", "module_id": "mengsan", "snapshot": "legacy", "files": [ @@ -309,6 +309,7 @@ "mengsan/battle/battle-resources.js", "mengsan/battle/battle-session.js", "mengsan/battle/battle-settlement.js", + "mengsan/battle/camps.js", "mengsan/battle/combat-rules.js", "mengsan/battle/death-blow.js", "mengsan/battle/engine-session.js", diff --git a/mengsan/assets/relics/akabeko.png b/mengsan/assets/relics/akabeko.png new file mode 100644 index 0000000..8c73186 Binary files /dev/null and b/mengsan/assets/relics/akabeko.png differ diff --git a/mengsan/assets/relics/alchemical_coffer.png b/mengsan/assets/relics/alchemical_coffer.png new file mode 100644 index 0000000..14437bb Binary files /dev/null and b/mengsan/assets/relics/alchemical_coffer.png differ diff --git a/mengsan/assets/relics/amethyst_aubergine.png b/mengsan/assets/relics/amethyst_aubergine.png new file mode 100644 index 0000000..7b761b0 Binary files /dev/null and b/mengsan/assets/relics/amethyst_aubergine.png differ diff --git a/mengsan/assets/relics/anchor.png b/mengsan/assets/relics/anchor.png new file mode 100644 index 0000000..70fbee8 Binary files /dev/null and b/mengsan/assets/relics/anchor.png differ diff --git a/mengsan/assets/relics/arcane_scroll.png b/mengsan/assets/relics/arcane_scroll.png new file mode 100644 index 0000000..211c1f7 Binary files /dev/null and b/mengsan/assets/relics/arcane_scroll.png differ diff --git a/mengsan/assets/relics/archaic_tooth.png b/mengsan/assets/relics/archaic_tooth.png new file mode 100644 index 0000000..ccc52a2 Binary files /dev/null and b/mengsan/assets/relics/archaic_tooth.png differ diff --git a/mengsan/assets/relics/art_of_war.png b/mengsan/assets/relics/art_of_war.png new file mode 100644 index 0000000..dfcf46e Binary files /dev/null and b/mengsan/assets/relics/art_of_war.png differ diff --git a/mengsan/assets/relics/astrolabe.png b/mengsan/assets/relics/astrolabe.png new file mode 100644 index 0000000..f0044a6 Binary files /dev/null and b/mengsan/assets/relics/astrolabe.png differ diff --git a/mengsan/assets/relics/bag_of_marbles.png b/mengsan/assets/relics/bag_of_marbles.png new file mode 100644 index 0000000..952b21c Binary files /dev/null and b/mengsan/assets/relics/bag_of_marbles.png differ diff --git a/mengsan/assets/relics/bag_of_preparation.png b/mengsan/assets/relics/bag_of_preparation.png new file mode 100644 index 0000000..ed61ed3 Binary files /dev/null and b/mengsan/assets/relics/bag_of_preparation.png differ diff --git a/mengsan/assets/relics/beating_remnant.png b/mengsan/assets/relics/beating_remnant.png new file mode 100644 index 0000000..04f9812 Binary files /dev/null and b/mengsan/assets/relics/beating_remnant.png differ diff --git a/mengsan/assets/relics/beautiful_bracelet.png b/mengsan/assets/relics/beautiful_bracelet.png new file mode 100644 index 0000000..3061ba4 Binary files /dev/null and b/mengsan/assets/relics/beautiful_bracelet.png differ diff --git a/mengsan/assets/relics/bellows.png b/mengsan/assets/relics/bellows.png new file mode 100644 index 0000000..4889a8c Binary files /dev/null and b/mengsan/assets/relics/bellows.png differ diff --git a/mengsan/assets/relics/belt_buckle.png b/mengsan/assets/relics/belt_buckle.png new file mode 100644 index 0000000..2411b1e Binary files /dev/null and b/mengsan/assets/relics/belt_buckle.png differ diff --git a/mengsan/assets/relics/big_hat.png b/mengsan/assets/relics/big_hat.png new file mode 100644 index 0000000..db7252b Binary files /dev/null and b/mengsan/assets/relics/big_hat.png differ diff --git a/mengsan/assets/relics/big_mushroom.png b/mengsan/assets/relics/big_mushroom.png new file mode 100644 index 0000000..403037d Binary files /dev/null and b/mengsan/assets/relics/big_mushroom.png differ diff --git a/mengsan/assets/relics/biiig_hug.png b/mengsan/assets/relics/biiig_hug.png new file mode 100644 index 0000000..e5e3112 Binary files /dev/null and b/mengsan/assets/relics/biiig_hug.png differ diff --git a/mengsan/assets/relics/bing_bong.png b/mengsan/assets/relics/bing_bong.png new file mode 100644 index 0000000..b3a2e8a Binary files /dev/null and b/mengsan/assets/relics/bing_bong.png differ diff --git a/mengsan/assets/relics/black_blood.png b/mengsan/assets/relics/black_blood.png new file mode 100644 index 0000000..8b8444a Binary files /dev/null and b/mengsan/assets/relics/black_blood.png differ diff --git a/mengsan/assets/relics/black_star.png b/mengsan/assets/relics/black_star.png new file mode 100644 index 0000000..47120e4 Binary files /dev/null and b/mengsan/assets/relics/black_star.png differ diff --git a/mengsan/assets/relics/blessed_antler.png b/mengsan/assets/relics/blessed_antler.png new file mode 100644 index 0000000..6bb22a9 Binary files /dev/null and b/mengsan/assets/relics/blessed_antler.png differ diff --git a/mengsan/assets/relics/blood_soaked_rose.png b/mengsan/assets/relics/blood_soaked_rose.png new file mode 100644 index 0000000..e0bb608 Binary files /dev/null and b/mengsan/assets/relics/blood_soaked_rose.png differ diff --git a/mengsan/assets/relics/blood_vial.png b/mengsan/assets/relics/blood_vial.png new file mode 100644 index 0000000..d41595e Binary files /dev/null and b/mengsan/assets/relics/blood_vial.png differ diff --git a/mengsan/assets/relics/bone_flute.png b/mengsan/assets/relics/bone_flute.png new file mode 100644 index 0000000..4d93da3 Binary files /dev/null and b/mengsan/assets/relics/bone_flute.png differ diff --git a/mengsan/assets/relics/bone_tea.png b/mengsan/assets/relics/bone_tea.png new file mode 100644 index 0000000..fd9ce41 Binary files /dev/null and b/mengsan/assets/relics/bone_tea.png differ diff --git a/mengsan/assets/relics/book_of_five_rings.png b/mengsan/assets/relics/book_of_five_rings.png new file mode 100644 index 0000000..1f9aa9d Binary files /dev/null and b/mengsan/assets/relics/book_of_five_rings.png differ diff --git a/mengsan/assets/relics/book_repair_knife.png b/mengsan/assets/relics/book_repair_knife.png new file mode 100644 index 0000000..b7fa231 Binary files /dev/null and b/mengsan/assets/relics/book_repair_knife.png differ diff --git a/mengsan/assets/relics/bookmark.png b/mengsan/assets/relics/bookmark.png new file mode 100644 index 0000000..e00f8d7 Binary files /dev/null and b/mengsan/assets/relics/bookmark.png differ diff --git a/mengsan/assets/relics/booming_conch.png b/mengsan/assets/relics/booming_conch.png new file mode 100644 index 0000000..df0e1bf Binary files /dev/null and b/mengsan/assets/relics/booming_conch.png differ diff --git a/mengsan/assets/relics/bound_phylactery.png b/mengsan/assets/relics/bound_phylactery.png new file mode 100644 index 0000000..88e220b Binary files /dev/null and b/mengsan/assets/relics/bound_phylactery.png differ diff --git a/mengsan/assets/relics/bowler_hat.png b/mengsan/assets/relics/bowler_hat.png new file mode 100644 index 0000000..f5f87d4 Binary files /dev/null and b/mengsan/assets/relics/bowler_hat.png differ diff --git a/mengsan/assets/relics/bread.png b/mengsan/assets/relics/bread.png new file mode 100644 index 0000000..8bbbdce Binary files /dev/null and b/mengsan/assets/relics/bread.png differ diff --git a/mengsan/assets/relics/brilliant_scarf.png b/mengsan/assets/relics/brilliant_scarf.png new file mode 100644 index 0000000..cc20689 Binary files /dev/null and b/mengsan/assets/relics/brilliant_scarf.png differ diff --git a/mengsan/assets/relics/brimstone.png b/mengsan/assets/relics/brimstone.png new file mode 100644 index 0000000..86c8183 Binary files /dev/null and b/mengsan/assets/relics/brimstone.png differ diff --git a/mengsan/assets/relics/bronze_scales.png b/mengsan/assets/relics/bronze_scales.png new file mode 100644 index 0000000..17a631d Binary files /dev/null and b/mengsan/assets/relics/bronze_scales.png differ diff --git a/mengsan/assets/relics/burning_blood.png b/mengsan/assets/relics/burning_blood.png new file mode 100644 index 0000000..5e1566c Binary files /dev/null and b/mengsan/assets/relics/burning_blood.png differ diff --git a/mengsan/assets/relics/burning_sticks.png b/mengsan/assets/relics/burning_sticks.png new file mode 100644 index 0000000..fcbb8a5 Binary files /dev/null and b/mengsan/assets/relics/burning_sticks.png differ diff --git a/mengsan/assets/relics/byrdpip.png b/mengsan/assets/relics/byrdpip.png new file mode 100644 index 0000000..29c73a9 Binary files /dev/null and b/mengsan/assets/relics/byrdpip.png differ diff --git a/mengsan/assets/relics/calling_bell.png b/mengsan/assets/relics/calling_bell.png new file mode 100644 index 0000000..80426d8 Binary files /dev/null and b/mengsan/assets/relics/calling_bell.png differ diff --git a/mengsan/assets/relics/candelabra.png b/mengsan/assets/relics/candelabra.png new file mode 100644 index 0000000..cbeabf5 Binary files /dev/null and b/mengsan/assets/relics/candelabra.png differ diff --git a/mengsan/assets/relics/captains_wheel.png b/mengsan/assets/relics/captains_wheel.png new file mode 100644 index 0000000..00cd2bd Binary files /dev/null and b/mengsan/assets/relics/captains_wheel.png differ diff --git a/mengsan/assets/relics/cauldron.png b/mengsan/assets/relics/cauldron.png new file mode 100644 index 0000000..3f737c5 Binary files /dev/null and b/mengsan/assets/relics/cauldron.png differ diff --git a/mengsan/assets/relics/centennial_puzzle.png b/mengsan/assets/relics/centennial_puzzle.png new file mode 100644 index 0000000..4f0d3b3 Binary files /dev/null and b/mengsan/assets/relics/centennial_puzzle.png differ diff --git a/mengsan/assets/relics/chandelier.png b/mengsan/assets/relics/chandelier.png new file mode 100644 index 0000000..7849add Binary files /dev/null and b/mengsan/assets/relics/chandelier.png differ diff --git a/mengsan/assets/relics/charons_ashes.png b/mengsan/assets/relics/charons_ashes.png new file mode 100644 index 0000000..8c43575 Binary files /dev/null and b/mengsan/assets/relics/charons_ashes.png differ diff --git a/mengsan/assets/relics/chemical_x.png b/mengsan/assets/relics/chemical_x.png new file mode 100644 index 0000000..cdce6d4 Binary files /dev/null and b/mengsan/assets/relics/chemical_x.png differ diff --git a/mengsan/assets/relics/choices_paradox.png b/mengsan/assets/relics/choices_paradox.png new file mode 100644 index 0000000..3351361 Binary files /dev/null and b/mengsan/assets/relics/choices_paradox.png differ diff --git a/mengsan/assets/relics/chosen_cheese.png b/mengsan/assets/relics/chosen_cheese.png new file mode 100644 index 0000000..39aad2c Binary files /dev/null and b/mengsan/assets/relics/chosen_cheese.png differ diff --git a/mengsan/assets/relics/circlet.png b/mengsan/assets/relics/circlet.png new file mode 100644 index 0000000..431d793 Binary files /dev/null and b/mengsan/assets/relics/circlet.png differ diff --git a/mengsan/assets/relics/claws.png b/mengsan/assets/relics/claws.png new file mode 100644 index 0000000..bba87f8 Binary files /dev/null and b/mengsan/assets/relics/claws.png differ diff --git a/mengsan/assets/relics/cloak_clasp.png b/mengsan/assets/relics/cloak_clasp.png new file mode 100644 index 0000000..99acfe5 Binary files /dev/null and b/mengsan/assets/relics/cloak_clasp.png differ diff --git a/mengsan/assets/relics/cracked_core.png b/mengsan/assets/relics/cracked_core.png new file mode 100644 index 0000000..6bbb34e Binary files /dev/null and b/mengsan/assets/relics/cracked_core.png differ diff --git a/mengsan/assets/relics/crossbow.png b/mengsan/assets/relics/crossbow.png new file mode 100644 index 0000000..8dd79d3 Binary files /dev/null and b/mengsan/assets/relics/crossbow.png differ diff --git a/mengsan/assets/relics/cursed_pearl.png b/mengsan/assets/relics/cursed_pearl.png new file mode 100644 index 0000000..d2c91af Binary files /dev/null and b/mengsan/assets/relics/cursed_pearl.png differ diff --git a/mengsan/assets/relics/darkstone_periapt.png b/mengsan/assets/relics/darkstone_periapt.png new file mode 100644 index 0000000..2f62db2 Binary files /dev/null and b/mengsan/assets/relics/darkstone_periapt.png differ diff --git a/mengsan/assets/relics/data_disk.png b/mengsan/assets/relics/data_disk.png new file mode 100644 index 0000000..0a26a95 Binary files /dev/null and b/mengsan/assets/relics/data_disk.png differ diff --git a/mengsan/assets/relics/daughter_of_the_wind.png b/mengsan/assets/relics/daughter_of_the_wind.png new file mode 100644 index 0000000..10974cd Binary files /dev/null and b/mengsan/assets/relics/daughter_of_the_wind.png differ diff --git a/mengsan/assets/relics/delicate_frond.png b/mengsan/assets/relics/delicate_frond.png new file mode 100644 index 0000000..1b3ec64 Binary files /dev/null and b/mengsan/assets/relics/delicate_frond.png differ diff --git a/mengsan/assets/relics/demon_tongue.png b/mengsan/assets/relics/demon_tongue.png new file mode 100644 index 0000000..904fc05 Binary files /dev/null and b/mengsan/assets/relics/demon_tongue.png differ diff --git a/mengsan/assets/relics/diamond_diadem.png b/mengsan/assets/relics/diamond_diadem.png new file mode 100644 index 0000000..d4d454d Binary files /dev/null and b/mengsan/assets/relics/diamond_diadem.png differ diff --git a/mengsan/assets/relics/dingy_rug.png b/mengsan/assets/relics/dingy_rug.png new file mode 100644 index 0000000..efb3521 Binary files /dev/null and b/mengsan/assets/relics/dingy_rug.png differ diff --git a/mengsan/assets/relics/distinguished_cape.png b/mengsan/assets/relics/distinguished_cape.png new file mode 100644 index 0000000..d28d9d0 Binary files /dev/null and b/mengsan/assets/relics/distinguished_cape.png differ diff --git a/mengsan/assets/relics/divine_destiny.png b/mengsan/assets/relics/divine_destiny.png new file mode 100644 index 0000000..701d85e Binary files /dev/null and b/mengsan/assets/relics/divine_destiny.png differ diff --git a/mengsan/assets/relics/divine_right.png b/mengsan/assets/relics/divine_right.png new file mode 100644 index 0000000..9fa6533 Binary files /dev/null and b/mengsan/assets/relics/divine_right.png differ diff --git a/mengsan/assets/relics/dollys_mirror.png b/mengsan/assets/relics/dollys_mirror.png new file mode 100644 index 0000000..32d1bf0 Binary files /dev/null and b/mengsan/assets/relics/dollys_mirror.png differ diff --git a/mengsan/assets/relics/dowsing_rod.png b/mengsan/assets/relics/dowsing_rod.png new file mode 100644 index 0000000..2befb01 Binary files /dev/null and b/mengsan/assets/relics/dowsing_rod.png differ diff --git a/mengsan/assets/relics/dragon_fruit.png b/mengsan/assets/relics/dragon_fruit.png new file mode 100644 index 0000000..bb63c57 Binary files /dev/null and b/mengsan/assets/relics/dragon_fruit.png differ diff --git a/mengsan/assets/relics/dream_catcher.png b/mengsan/assets/relics/dream_catcher.png new file mode 100644 index 0000000..2d94495 Binary files /dev/null and b/mengsan/assets/relics/dream_catcher.png differ diff --git a/mengsan/assets/relics/driftwood.png b/mengsan/assets/relics/driftwood.png new file mode 100644 index 0000000..b71ad8f Binary files /dev/null and b/mengsan/assets/relics/driftwood.png differ diff --git a/mengsan/assets/relics/dusty_tome.png b/mengsan/assets/relics/dusty_tome.png new file mode 100644 index 0000000..19131a5 Binary files /dev/null and b/mengsan/assets/relics/dusty_tome.png differ diff --git a/mengsan/assets/relics/ectoplasm.png b/mengsan/assets/relics/ectoplasm.png new file mode 100644 index 0000000..ca8ccc0 Binary files /dev/null and b/mengsan/assets/relics/ectoplasm.png differ diff --git a/mengsan/assets/relics/electric_shrymp.png b/mengsan/assets/relics/electric_shrymp.png new file mode 100644 index 0000000..cd502b6 Binary files /dev/null and b/mengsan/assets/relics/electric_shrymp.png differ diff --git a/mengsan/assets/relics/ember_tea.png b/mengsan/assets/relics/ember_tea.png new file mode 100644 index 0000000..6021edd Binary files /dev/null and b/mengsan/assets/relics/ember_tea.png differ diff --git a/mengsan/assets/relics/emotion_chip.png b/mengsan/assets/relics/emotion_chip.png new file mode 100644 index 0000000..bbddb22 Binary files /dev/null and b/mengsan/assets/relics/emotion_chip.png differ diff --git a/mengsan/assets/relics/empty_cage.png b/mengsan/assets/relics/empty_cage.png new file mode 100644 index 0000000..37d5999 Binary files /dev/null and b/mengsan/assets/relics/empty_cage.png differ diff --git a/mengsan/assets/relics/eternal_feather.png b/mengsan/assets/relics/eternal_feather.png new file mode 100644 index 0000000..001eb85 Binary files /dev/null and b/mengsan/assets/relics/eternal_feather.png differ diff --git a/mengsan/assets/relics/fake_anchor.png b/mengsan/assets/relics/fake_anchor.png new file mode 100644 index 0000000..805020b Binary files /dev/null and b/mengsan/assets/relics/fake_anchor.png differ diff --git a/mengsan/assets/relics/fake_blood_vial.png b/mengsan/assets/relics/fake_blood_vial.png new file mode 100644 index 0000000..c6b1df3 Binary files /dev/null and b/mengsan/assets/relics/fake_blood_vial.png differ diff --git a/mengsan/assets/relics/fake_happy_flower.png b/mengsan/assets/relics/fake_happy_flower.png new file mode 100644 index 0000000..b746be4 Binary files /dev/null and b/mengsan/assets/relics/fake_happy_flower.png differ diff --git a/mengsan/assets/relics/fake_lees_waffle.png b/mengsan/assets/relics/fake_lees_waffle.png new file mode 100644 index 0000000..41db515 Binary files /dev/null and b/mengsan/assets/relics/fake_lees_waffle.png differ diff --git a/mengsan/assets/relics/fake_mango.png b/mengsan/assets/relics/fake_mango.png new file mode 100644 index 0000000..9283bc4 Binary files /dev/null and b/mengsan/assets/relics/fake_mango.png differ diff --git a/mengsan/assets/relics/fake_merchants_rug.png b/mengsan/assets/relics/fake_merchants_rug.png new file mode 100644 index 0000000..a3d5073 Binary files /dev/null and b/mengsan/assets/relics/fake_merchants_rug.png differ diff --git a/mengsan/assets/relics/fake_orichalcum.png b/mengsan/assets/relics/fake_orichalcum.png new file mode 100644 index 0000000..fd5df12 Binary files /dev/null and b/mengsan/assets/relics/fake_orichalcum.png differ diff --git a/mengsan/assets/relics/fake_snecko_eye.png b/mengsan/assets/relics/fake_snecko_eye.png new file mode 100644 index 0000000..43bc309 Binary files /dev/null and b/mengsan/assets/relics/fake_snecko_eye.png differ diff --git a/mengsan/assets/relics/fake_strike_dummy.png b/mengsan/assets/relics/fake_strike_dummy.png new file mode 100644 index 0000000..6f251d1 Binary files /dev/null and b/mengsan/assets/relics/fake_strike_dummy.png differ diff --git a/mengsan/assets/relics/fake_venerable_tea_set.png b/mengsan/assets/relics/fake_venerable_tea_set.png new file mode 100644 index 0000000..ca29046 Binary files /dev/null and b/mengsan/assets/relics/fake_venerable_tea_set.png differ diff --git a/mengsan/assets/relics/fencing_manual.png b/mengsan/assets/relics/fencing_manual.png new file mode 100644 index 0000000..13ca4f2 Binary files /dev/null and b/mengsan/assets/relics/fencing_manual.png differ diff --git a/mengsan/assets/relics/festive_popper.png b/mengsan/assets/relics/festive_popper.png new file mode 100644 index 0000000..b284315 Binary files /dev/null and b/mengsan/assets/relics/festive_popper.png differ diff --git a/mengsan/assets/relics/fiddle.png b/mengsan/assets/relics/fiddle.png new file mode 100644 index 0000000..0049635 Binary files /dev/null and b/mengsan/assets/relics/fiddle.png differ diff --git a/mengsan/assets/relics/fishing_rod.png b/mengsan/assets/relics/fishing_rod.png new file mode 100644 index 0000000..8f02676 Binary files /dev/null and b/mengsan/assets/relics/fishing_rod.png differ diff --git a/mengsan/assets/relics/forgotten_soul.png b/mengsan/assets/relics/forgotten_soul.png new file mode 100644 index 0000000..e4712b9 Binary files /dev/null and b/mengsan/assets/relics/forgotten_soul.png differ diff --git a/mengsan/assets/relics/fragrant_mushroom.png b/mengsan/assets/relics/fragrant_mushroom.png new file mode 100644 index 0000000..e975268 Binary files /dev/null and b/mengsan/assets/relics/fragrant_mushroom.png differ diff --git a/mengsan/assets/relics/fresnel_lens.png b/mengsan/assets/relics/fresnel_lens.png new file mode 100644 index 0000000..b2e808b Binary files /dev/null and b/mengsan/assets/relics/fresnel_lens.png differ diff --git a/mengsan/assets/relics/frozen_egg.png b/mengsan/assets/relics/frozen_egg.png new file mode 100644 index 0000000..d9fe698 Binary files /dev/null and b/mengsan/assets/relics/frozen_egg.png differ diff --git a/mengsan/assets/relics/funerary_mask.png b/mengsan/assets/relics/funerary_mask.png new file mode 100644 index 0000000..52c1461 Binary files /dev/null and b/mengsan/assets/relics/funerary_mask.png differ diff --git a/mengsan/assets/relics/fur_coat.png b/mengsan/assets/relics/fur_coat.png new file mode 100644 index 0000000..6e4ebdb Binary files /dev/null and b/mengsan/assets/relics/fur_coat.png differ diff --git a/mengsan/assets/relics/galactic_dust.png b/mengsan/assets/relics/galactic_dust.png new file mode 100644 index 0000000..ebff724 Binary files /dev/null and b/mengsan/assets/relics/galactic_dust.png differ diff --git a/mengsan/assets/relics/gambling_chip.png b/mengsan/assets/relics/gambling_chip.png new file mode 100644 index 0000000..bd5a61e Binary files /dev/null and b/mengsan/assets/relics/gambling_chip.png differ diff --git a/mengsan/assets/relics/game_piece.png b/mengsan/assets/relics/game_piece.png new file mode 100644 index 0000000..cc9a424 Binary files /dev/null and b/mengsan/assets/relics/game_piece.png differ diff --git a/mengsan/assets/relics/ghost_seed.png b/mengsan/assets/relics/ghost_seed.png new file mode 100644 index 0000000..8d3b19a Binary files /dev/null and b/mengsan/assets/relics/ghost_seed.png differ diff --git a/mengsan/assets/relics/girya.png b/mengsan/assets/relics/girya.png new file mode 100644 index 0000000..b8535e1 Binary files /dev/null and b/mengsan/assets/relics/girya.png differ diff --git a/mengsan/assets/relics/glass_eye.png b/mengsan/assets/relics/glass_eye.png new file mode 100644 index 0000000..1ba2e5c Binary files /dev/null and b/mengsan/assets/relics/glass_eye.png differ diff --git a/mengsan/assets/relics/glitter.png b/mengsan/assets/relics/glitter.png new file mode 100644 index 0000000..3d3cec1 Binary files /dev/null and b/mengsan/assets/relics/glitter.png differ diff --git a/mengsan/assets/relics/gnarled_hammer.png b/mengsan/assets/relics/gnarled_hammer.png new file mode 100644 index 0000000..bdc920d Binary files /dev/null and b/mengsan/assets/relics/gnarled_hammer.png differ diff --git a/mengsan/assets/relics/gold_plated_cables.png b/mengsan/assets/relics/gold_plated_cables.png new file mode 100644 index 0000000..545623e Binary files /dev/null and b/mengsan/assets/relics/gold_plated_cables.png differ diff --git a/mengsan/assets/relics/golden_compass.png b/mengsan/assets/relics/golden_compass.png new file mode 100644 index 0000000..faadede Binary files /dev/null and b/mengsan/assets/relics/golden_compass.png differ diff --git a/mengsan/assets/relics/golden_pearl.png b/mengsan/assets/relics/golden_pearl.png new file mode 100644 index 0000000..e0a730f Binary files /dev/null and b/mengsan/assets/relics/golden_pearl.png differ diff --git a/mengsan/assets/relics/gorget.png b/mengsan/assets/relics/gorget.png new file mode 100644 index 0000000..8cc858c Binary files /dev/null and b/mengsan/assets/relics/gorget.png differ diff --git a/mengsan/assets/relics/gremlin_horn.png b/mengsan/assets/relics/gremlin_horn.png new file mode 100644 index 0000000..f194b8c Binary files /dev/null and b/mengsan/assets/relics/gremlin_horn.png differ diff --git a/mengsan/assets/relics/hand_drill.png b/mengsan/assets/relics/hand_drill.png new file mode 100644 index 0000000..df2401c Binary files /dev/null and b/mengsan/assets/relics/hand_drill.png differ diff --git a/mengsan/assets/relics/happy_flower.png b/mengsan/assets/relics/happy_flower.png new file mode 100644 index 0000000..d91efe8 Binary files /dev/null and b/mengsan/assets/relics/happy_flower.png differ diff --git a/mengsan/assets/relics/hefty_tablet.png b/mengsan/assets/relics/hefty_tablet.png new file mode 100644 index 0000000..46dbcd7 Binary files /dev/null and b/mengsan/assets/relics/hefty_tablet.png differ diff --git a/mengsan/assets/relics/helical_dart.png b/mengsan/assets/relics/helical_dart.png new file mode 100644 index 0000000..689f359 Binary files /dev/null and b/mengsan/assets/relics/helical_dart.png differ diff --git a/mengsan/assets/relics/history_course.png b/mengsan/assets/relics/history_course.png new file mode 100644 index 0000000..550988d Binary files /dev/null and b/mengsan/assets/relics/history_course.png differ diff --git a/mengsan/assets/relics/horn_cleat.png b/mengsan/assets/relics/horn_cleat.png new file mode 100644 index 0000000..f272761 Binary files /dev/null and b/mengsan/assets/relics/horn_cleat.png differ diff --git a/mengsan/assets/relics/ice_cream.png b/mengsan/assets/relics/ice_cream.png new file mode 100644 index 0000000..913dfaa Binary files /dev/null and b/mengsan/assets/relics/ice_cream.png differ diff --git a/mengsan/assets/relics/infused_core.png b/mengsan/assets/relics/infused_core.png new file mode 100644 index 0000000..839e14f Binary files /dev/null and b/mengsan/assets/relics/infused_core.png differ diff --git a/mengsan/assets/relics/intimidating_helmet.png b/mengsan/assets/relics/intimidating_helmet.png new file mode 100644 index 0000000..3949881 Binary files /dev/null and b/mengsan/assets/relics/intimidating_helmet.png differ diff --git a/mengsan/assets/relics/iron_club.png b/mengsan/assets/relics/iron_club.png new file mode 100644 index 0000000..f277c2f Binary files /dev/null and b/mengsan/assets/relics/iron_club.png differ diff --git a/mengsan/assets/relics/ivory_tile.png b/mengsan/assets/relics/ivory_tile.png new file mode 100644 index 0000000..882396d Binary files /dev/null and b/mengsan/assets/relics/ivory_tile.png differ diff --git a/mengsan/assets/relics/jeweled_mask.png b/mengsan/assets/relics/jeweled_mask.png new file mode 100644 index 0000000..6237bf9 Binary files /dev/null and b/mengsan/assets/relics/jeweled_mask.png differ diff --git a/mengsan/assets/relics/jewelry_box.png b/mengsan/assets/relics/jewelry_box.png new file mode 100644 index 0000000..bc80fda Binary files /dev/null and b/mengsan/assets/relics/jewelry_box.png differ diff --git a/mengsan/assets/relics/joss_paper.png b/mengsan/assets/relics/joss_paper.png new file mode 100644 index 0000000..a3892e4 Binary files /dev/null and b/mengsan/assets/relics/joss_paper.png differ diff --git a/mengsan/assets/relics/juzu_bracelet.png b/mengsan/assets/relics/juzu_bracelet.png new file mode 100644 index 0000000..593456e Binary files /dev/null and b/mengsan/assets/relics/juzu_bracelet.png differ diff --git a/mengsan/assets/relics/kaleidoscope.png b/mengsan/assets/relics/kaleidoscope.png new file mode 100644 index 0000000..bf6dd3b Binary files /dev/null and b/mengsan/assets/relics/kaleidoscope.png differ diff --git a/mengsan/assets/relics/kifuda.png b/mengsan/assets/relics/kifuda.png new file mode 100644 index 0000000..37c29cf Binary files /dev/null and b/mengsan/assets/relics/kifuda.png differ diff --git a/mengsan/assets/relics/kunai.png b/mengsan/assets/relics/kunai.png new file mode 100644 index 0000000..ba27480 Binary files /dev/null and b/mengsan/assets/relics/kunai.png differ diff --git a/mengsan/assets/relics/kusarigama.png b/mengsan/assets/relics/kusarigama.png new file mode 100644 index 0000000..47f39cf Binary files /dev/null and b/mengsan/assets/relics/kusarigama.png differ diff --git a/mengsan/assets/relics/lantern.png b/mengsan/assets/relics/lantern.png new file mode 100644 index 0000000..c76b549 Binary files /dev/null and b/mengsan/assets/relics/lantern.png differ diff --git a/mengsan/assets/relics/large_capsule.png b/mengsan/assets/relics/large_capsule.png new file mode 100644 index 0000000..34f152e Binary files /dev/null and b/mengsan/assets/relics/large_capsule.png differ diff --git a/mengsan/assets/relics/lasting_candy.png b/mengsan/assets/relics/lasting_candy.png new file mode 100644 index 0000000..62ef6a6 Binary files /dev/null and b/mengsan/assets/relics/lasting_candy.png differ diff --git a/mengsan/assets/relics/lava_lamp.png b/mengsan/assets/relics/lava_lamp.png new file mode 100644 index 0000000..6f3e0b3 Binary files /dev/null and b/mengsan/assets/relics/lava_lamp.png differ diff --git a/mengsan/assets/relics/lava_rock.png b/mengsan/assets/relics/lava_rock.png new file mode 100644 index 0000000..7a98b0d Binary files /dev/null and b/mengsan/assets/relics/lava_rock.png differ diff --git a/mengsan/assets/relics/lead_paperweight.png b/mengsan/assets/relics/lead_paperweight.png new file mode 100644 index 0000000..279ed41 Binary files /dev/null and b/mengsan/assets/relics/lead_paperweight.png differ diff --git a/mengsan/assets/relics/leafy_poultice.png b/mengsan/assets/relics/leafy_poultice.png new file mode 100644 index 0000000..97ed1cc Binary files /dev/null and b/mengsan/assets/relics/leafy_poultice.png differ diff --git a/mengsan/assets/relics/lees_waffle.png b/mengsan/assets/relics/lees_waffle.png new file mode 100644 index 0000000..c8d7286 Binary files /dev/null and b/mengsan/assets/relics/lees_waffle.png differ diff --git a/mengsan/assets/relics/letter_opener.png b/mengsan/assets/relics/letter_opener.png new file mode 100644 index 0000000..1347961 Binary files /dev/null and b/mengsan/assets/relics/letter_opener.png differ diff --git a/mengsan/assets/relics/lizard_tail.png b/mengsan/assets/relics/lizard_tail.png new file mode 100644 index 0000000..0bfc426 Binary files /dev/null and b/mengsan/assets/relics/lizard_tail.png differ diff --git a/mengsan/assets/relics/looming_fruit.png b/mengsan/assets/relics/looming_fruit.png new file mode 100644 index 0000000..92ed70b Binary files /dev/null and b/mengsan/assets/relics/looming_fruit.png differ diff --git a/mengsan/assets/relics/lords_parasol.png b/mengsan/assets/relics/lords_parasol.png new file mode 100644 index 0000000..769ab1b Binary files /dev/null and b/mengsan/assets/relics/lords_parasol.png differ diff --git a/mengsan/assets/relics/lost_coffer.png b/mengsan/assets/relics/lost_coffer.png new file mode 100644 index 0000000..359030d Binary files /dev/null and b/mengsan/assets/relics/lost_coffer.png differ diff --git a/mengsan/assets/relics/lost_wisp.png b/mengsan/assets/relics/lost_wisp.png new file mode 100644 index 0000000..13f8ddc Binary files /dev/null and b/mengsan/assets/relics/lost_wisp.png differ diff --git a/mengsan/assets/relics/lucky_fysh.png b/mengsan/assets/relics/lucky_fysh.png new file mode 100644 index 0000000..e280c40 Binary files /dev/null and b/mengsan/assets/relics/lucky_fysh.png differ diff --git a/mengsan/assets/relics/lunar_pastry.png b/mengsan/assets/relics/lunar_pastry.png new file mode 100644 index 0000000..ee6ff3d Binary files /dev/null and b/mengsan/assets/relics/lunar_pastry.png differ diff --git a/mengsan/assets/relics/mango.png b/mengsan/assets/relics/mango.png new file mode 100644 index 0000000..656e733 Binary files /dev/null and b/mengsan/assets/relics/mango.png differ diff --git a/mengsan/assets/relics/manifest.json b/mengsan/assets/relics/manifest.json new file mode 100644 index 0000000..7313e11 --- /dev/null +++ b/mengsan/assets/relics/manifest.json @@ -0,0 +1,3291 @@ +{ + "snapshot_date": "2026-10-04", + "atlas_version": "v0.111.0", + "data_source": "https://sts2.huijiwiki.com/wiki/Data:Relic.tabx", + "data_revision": 28579, + "assets": [ + { + "wikiId": "burning_blood", + "source": "burning_blood.png", + "runtime": "assets/relics/burning_blood.png", + "width": 71, + "height": 81, + "bytes": 6202, + "depth": 8, + "alpha": true, + "sha256": "eb267673cacbf90e519fc646c75403ff9b82fcc8b0f01a8213103cfbaeb6af75" + }, + { + "wikiId": "ring_of_the_snake", + "source": "ring_of_the_snake.png", + "runtime": "assets/relics/ring_of_the_snake.png", + "width": 81, + "height": 81, + "bytes": 9868, + "depth": 8, + "alpha": true, + "sha256": "b2461a8881c992f063ffdce770101b61be0c91ac24fa36ffa2337524b0fa9762" + }, + { + "wikiId": "divine_right", + "source": "divine_right.png", + "runtime": "assets/relics/divine_right.png", + "width": 71, + "height": 81, + "bytes": 8739, + "depth": 8, + "alpha": true, + "sha256": "c85600185800761b3bc74176cdcb6c9ec7a2dfc82ec3f3444e4197cac70ee173" + }, + { + "wikiId": "bound_phylactery", + "source": "bound_phylactery.png", + "runtime": "assets/relics/bound_phylactery.png", + "width": 77, + "height": 82, + "bytes": 8874, + "depth": 8, + "alpha": true, + "sha256": "85a20ade6f5354209b0562a35603b0213ba02b9eb04584ec7d49591843e7a7a4" + }, + { + "wikiId": "cracked_core", + "source": "cracked_core.png", + "runtime": "assets/relics/cracked_core.png", + "width": 79, + "height": 78, + "bytes": 8536, + "depth": 8, + "alpha": true, + "sha256": "52988a84945823b2738d07e713286f2168149de6fb9112f127d763c05d5edefc" + }, + { + "wikiId": "black_blood", + "source": "black_blood.png", + "runtime": "assets/relics/black_blood.png", + "width": 66, + "height": 79, + "bytes": 6334, + "depth": 8, + "alpha": true, + "sha256": "16b2063051b6e92597e0247a3d08fc320fb7982e8c356fae8f959ace79519c51" + }, + { + "wikiId": "ring_of_the_drake", + "source": "ring_of_the_drake.png", + "runtime": "assets/relics/ring_of_the_drake.png", + "width": 78, + "height": 80, + "bytes": 7525, + "depth": 8, + "alpha": true, + "sha256": "ff619d5e28f00a35ffbeb3b598d87bdaede48f5469911aaaa9f29a5523c3a84d" + }, + { + "wikiId": "divine_destiny", + "source": "divine_destiny.png", + "runtime": "assets/relics/divine_destiny.png", + "width": 71, + "height": 81, + "bytes": 8401, + "depth": 8, + "alpha": true, + "sha256": "1608d8ad1c29320626ad1adcc729d0923027ca8ed3669d904b4aa7202dcb51f4" + }, + { + "wikiId": "phylactery_unbound", + "source": "phylactery_unbound.png", + "runtime": "assets/relics/phylactery_unbound.png", + "width": 76, + "height": 80, + "bytes": 9269, + "depth": 8, + "alpha": true, + "sha256": "513d51bdef728523cf7335ae265219c8830f7fa07db69ac56872c7fb9230992f" + }, + { + "wikiId": "infused_core", + "source": "infused_core.png", + "runtime": "assets/relics/infused_core.png", + "width": 80, + "height": 78, + "bytes": 10310, + "depth": 8, + "alpha": true, + "sha256": "daff4b092b9a5b3da5016aa50feb873bb0259cdccd85e1f17dd2bff70c3e67c1" + }, + { + "wikiId": "centennial_puzzle", + "source": "centennial_puzzle.png", + "runtime": "assets/relics/centennial_puzzle.png", + "width": 82, + "height": 78, + "bytes": 5795, + "depth": 8, + "alpha": true, + "sha256": "d089d68fd8592b45d2c55320fb4735b1d36e7f01b564d585892b95a348e21a23" + }, + { + "wikiId": "pendulum", + "source": "pendulum.png", + "runtime": "assets/relics/pendulum.png", + "width": 80, + "height": 79, + "bytes": 8656, + "depth": 8, + "alpha": true, + "sha256": "a9cb376378eb23de86a9be9df73f66528b237d7d9aae701a76c0ff0ae4ef2564" + }, + { + "wikiId": "meal_ticket", + "source": "meal_ticket.png", + "runtime": "assets/relics/meal_ticket.png", + "width": 81, + "height": 77, + "bytes": 6610, + "depth": 8, + "alpha": true, + "sha256": "bd3d8ba5a687e396c17b32c2eb616556f9c532d448f4aa529a8192fc7f785a68" + }, + { + "wikiId": "strawberry", + "source": "strawberry.png", + "runtime": "assets/relics/strawberry.png", + "width": 76, + "height": 80, + "bytes": 10517, + "depth": 8, + "alpha": true, + "sha256": "12430e97af90ab910996f47533954c6e86a96830691771dca22f7b239618d163" + }, + { + "wikiId": "strike_dummy", + "source": "strike_dummy.png", + "runtime": "assets/relics/strike_dummy.png", + "width": 81, + "height": 79, + "bytes": 9102, + "depth": 8, + "alpha": true, + "sha256": "3e565da309adbc80b1e1c1c96d4fcf08bc0eb57caca512262048f625181a5627" + }, + { + "wikiId": "bag_of_marbles", + "source": "bag_of_marbles.png", + "runtime": "assets/relics/bag_of_marbles.png", + "width": 80, + "height": 60, + "bytes": 4912, + "depth": 8, + "alpha": true, + "sha256": "4d399295206a16d5a00285ebb7297ddaca68e593031b8f4d751de6b7147ab762" + }, + { + "wikiId": "lantern", + "source": "lantern.png", + "runtime": "assets/relics/lantern.png", + "width": 64, + "height": 80, + "bytes": 7201, + "depth": 8, + "alpha": true, + "sha256": "d6235c8f914bf3814dc4536fc26b5e956778227bfc904b5c8715f29bae367dcf" + }, + { + "wikiId": "juzu_bracelet", + "source": "juzu_bracelet.png", + "runtime": "assets/relics/juzu_bracelet.png", + "width": 81, + "height": 81, + "bytes": 8301, + "depth": 8, + "alpha": true, + "sha256": "13494f8ffd72f04bf4cc6e87257e24a4c17c5c285e4d530f4f6a966403475c9c" + }, + { + "wikiId": "venerable_tea_set", + "source": "venerable_tea_set.png", + "runtime": "assets/relics/venerable_tea_set.png", + "width": 78, + "height": 80, + "bytes": 8208, + "depth": 8, + "alpha": true, + "sha256": "4c2da5de5cea18897894c6fb909b04b7cdd60952d26ac157f72139ab94f299fe" + }, + { + "wikiId": "red_mask", + "source": "red_mask.png", + "runtime": "assets/relics/red_mask.png", + "width": 73, + "height": 79, + "bytes": 6354, + "depth": 8, + "alpha": true, + "sha256": "6afb16919fc44eb9bead44cb1ed813c82bb16873e87f1a058d35ae87de8cf00e" + }, + { + "wikiId": "gorget", + "source": "gorget.png", + "runtime": "assets/relics/gorget.png", + "width": 79, + "height": 70, + "bytes": 7239, + "depth": 8, + "alpha": true, + "sha256": "dbcc4c8573b30696405673a028ebd3aa7bb9bdde79361e7ca4e87df8cb7f5792" + }, + { + "wikiId": "regal_pillow", + "source": "regal_pillow.png", + "runtime": "assets/relics/regal_pillow.png", + "width": 80, + "height": 74, + "bytes": 5706, + "depth": 8, + "alpha": true, + "sha256": "3cd134595131aa26fc2b2a79785089f481dc63c63bc128cd513e1bda4ef1689f" + }, + { + "wikiId": "festive_popper", + "source": "festive_popper.png", + "runtime": "assets/relics/festive_popper.png", + "width": 79, + "height": 80, + "bytes": 8348, + "depth": 8, + "alpha": true, + "sha256": "b59a97c3638f54899e7d3841a09051b320742cfe42e10e7799c59834779d4b09" + }, + { + "wikiId": "vajra", + "source": "vajra.png", + "runtime": "assets/relics/vajra.png", + "width": 79, + "height": 78, + "bytes": 5852, + "depth": 8, + "alpha": true, + "sha256": "ab2e88abaebcbb8f887fa5a19f3de272a09ef4d36a2580c3abe68fd5b1d327bc" + }, + { + "wikiId": "happy_flower", + "source": "happy_flower.png", + "runtime": "assets/relics/happy_flower.png", + "width": 54, + "height": 82, + "bytes": 7156, + "depth": 8, + "alpha": true, + "sha256": "0f6eff613484c13e818d0b1f963a1c96337c3e7adfef71d770e9040a87844687" + }, + { + "wikiId": "anchor", + "source": "anchor.png", + "runtime": "assets/relics/anchor.png", + "width": 74, + "height": 82, + "bytes": 7211, + "depth": 8, + "alpha": true, + "sha256": "c5ef84383d5b8a5287b7eb0579dfaa00091e8a72d73f48bfa7773e25ce5d10b0" + }, + { + "wikiId": "whetstone", + "source": "whetstone.png", + "runtime": "assets/relics/whetstone.png", + "width": 78, + "height": 67, + "bytes": 7143, + "depth": 8, + "alpha": true, + "sha256": "6d19f8f00e73363d37a989170dda8af5c0c5a5d038e781690fe02d1f014788c2" + }, + { + "wikiId": "bronze_scales", + "source": "bronze_scales.png", + "runtime": "assets/relics/bronze_scales.png", + "width": 80, + "height": 77, + "bytes": 7094, + "depth": 8, + "alpha": true, + "sha256": "2c148ecbaed13b43e2c3ca1635bf2fef32a9cf827b28d7412743555ab2d19eee" + }, + { + "wikiId": "book_of_five_rings", + "source": "book_of_five_rings.png", + "runtime": "assets/relics/book_of_five_rings.png", + "width": 81, + "height": 81, + "bytes": 8169, + "depth": 8, + "alpha": true, + "sha256": "5e2251669482e7c9191007776a75cfe56303cd88071b292e03ed2ba4fc9b8919" + }, + { + "wikiId": "blood_vial", + "source": "blood_vial.png", + "runtime": "assets/relics/blood_vial.png", + "width": 80, + "height": 80, + "bytes": 5729, + "depth": 8, + "alpha": true, + "sha256": "ce19f150946e44f32eb1e01a8c31b28fbbd92150eb831ff41c1febb1a9e671c2" + }, + { + "wikiId": "potion_belt", + "source": "potion_belt.png", + "runtime": "assets/relics/potion_belt.png", + "width": 81, + "height": 78, + "bytes": 9220, + "depth": 8, + "alpha": true, + "sha256": "b98b1369d0a1709a7e8fde9c4d28e9e582214791645435445e861128702e7b3d" + }, + { + "wikiId": "oddly_smooth_stone", + "source": "oddly_smooth_stone.png", + "runtime": "assets/relics/oddly_smooth_stone.png", + "width": 81, + "height": 66, + "bytes": 4824, + "depth": 8, + "alpha": true, + "sha256": "5e2fcf2f5b1bde89ce98bb9569283687a1e0416f03c65bf4aa4550a0f15451af" + }, + { + "wikiId": "war_paint", + "source": "war_paint.png", + "runtime": "assets/relics/war_paint.png", + "width": 80, + "height": 53, + "bytes": 7563, + "depth": 8, + "alpha": true, + "sha256": "42664bbb0152f980a8ff6189ff81936f99efc0351a9325fd34699a4fa119d89d" + }, + { + "wikiId": "bag_of_preparation", + "source": "bag_of_preparation.png", + "runtime": "assets/relics/bag_of_preparation.png", + "width": 81, + "height": 74, + "bytes": 8988, + "depth": 8, + "alpha": true, + "sha256": "3454c060c46680288a03b85237ae10caed09d1b2b6de70f43ca229c4650121c4" + }, + { + "wikiId": "amethyst_aubergine", + "source": "amethyst_aubergine.png", + "runtime": "assets/relics/amethyst_aubergine.png", + "width": 81, + "height": 77, + "bytes": 7960, + "depth": 8, + "alpha": true, + "sha256": "f16c052e5535ce2c2a1065626458956fad21ae03a49a30b09597058522e49b06" + }, + { + "wikiId": "red_skull", + "source": "red_skull.png", + "runtime": "assets/relics/red_skull.png", + "width": 76, + "height": 81, + "bytes": 8046, + "depth": 8, + "alpha": true, + "sha256": "fedb3718178d41f24dbc32e24c527b861d51b43807e270131f273dd8f442f27a" + }, + { + "wikiId": "snecko_skull", + "source": "snecko_skull.png", + "runtime": "assets/relics/snecko_skull.png", + "width": 80, + "height": 73, + "bytes": 6524, + "depth": 8, + "alpha": true, + "sha256": "03d6d8150dcea2ee9e0cf3c34dd723da9646d287980f5e7d2c2eee1149554d04" + }, + { + "wikiId": "fencing_manual", + "source": "fencing_manual.png", + "runtime": "assets/relics/fencing_manual.png", + "width": 59, + "height": 80, + "bytes": 6554, + "depth": 8, + "alpha": true, + "sha256": "c51fab3e1c8e5c17d2c77ef7cf8efc0e523935982a9ffc8434d434069d262f7b" + }, + { + "wikiId": "bone_flute", + "source": "bone_flute.png", + "runtime": "assets/relics/bone_flute.png", + "width": 81, + "height": 78, + "bytes": 5418, + "depth": 8, + "alpha": true, + "sha256": "be4b47186103b742fb19e07f81193f8cd65fc46ce3ad0a368af9a1736a6936ff" + }, + { + "wikiId": "data_disk", + "source": "data_disk.png", + "runtime": "assets/relics/data_disk.png", + "width": 80, + "height": 76, + "bytes": 7979, + "depth": 8, + "alpha": true, + "sha256": "972bfee1affe49ac0d9442744db277883325555a0d41f21ab27f616665d8e61d" + }, + { + "wikiId": "orichalcum", + "source": "orichalcum.png", + "runtime": "assets/relics/orichalcum.png", + "width": 81, + "height": 65, + "bytes": 6289, + "depth": 8, + "alpha": true, + "sha256": "e260e9e451cece860d06f77f15c7746642e48ddfd18e0d5c781713365841999c" + }, + { + "wikiId": "vambrace", + "source": "vambrace.png", + "runtime": "assets/relics/vambrace.png", + "width": 77, + "height": 79, + "bytes": 6282, + "depth": 8, + "alpha": true, + "sha256": "34e6d6269993431d779bdda9ee35fb6bda4c3dd0cf353d2117803beb78d1ecfe" + }, + { + "wikiId": "ripple_basin", + "source": "ripple_basin.png", + "runtime": "assets/relics/ripple_basin.png", + "width": 81, + "height": 56, + "bytes": 7170, + "depth": 8, + "alpha": true, + "sha256": "2d5e3a087c546e74de029535462d29941f0feff4a7c348fde4a69658da239eba" + }, + { + "wikiId": "lasting_candy", + "source": "lasting_candy.png", + "runtime": "assets/relics/lasting_candy.png", + "width": 79, + "height": 80, + "bytes": 9132, + "depth": 8, + "alpha": true, + "sha256": "c656cc9bbe48b9cbf80327b1b3cf31784dd2037c76498dc6bfe49bf41d8b7f82" + }, + { + "wikiId": "akabeko", + "source": "akabeko.png", + "runtime": "assets/relics/akabeko.png", + "width": 81, + "height": 69, + "bytes": 7370, + "depth": 8, + "alpha": true, + "sha256": "8c66d2626f785df6be565bd6ed8f698a6b241abee6e9a399e693093b3fbd89a5" + }, + { + "wikiId": "horn_cleat", + "source": "horn_cleat.png", + "runtime": "assets/relics/horn_cleat.png", + "width": 81, + "height": 51, + "bytes": 4463, + "depth": 8, + "alpha": true, + "sha256": "a8438e3cb2a028dc983e0e83d19daeef253863aa3a10d15a9a2f56594096e165" + }, + { + "wikiId": "gremlin_horn", + "source": "gremlin_horn.png", + "runtime": "assets/relics/gremlin_horn.png", + "width": 81, + "height": 79, + "bytes": 6932, + "depth": 8, + "alpha": true, + "sha256": "4d5f0e4e1d23981d5fba175fcde9ef4563c315123e98572230a48d9891cdca82" + }, + { + "wikiId": "pen_nib", + "source": "pen_nib.png", + "runtime": "assets/relics/pen_nib.png", + "width": 80, + "height": 77, + "bytes": 4903, + "depth": 8, + "alpha": true, + "sha256": "3d11cefb852f19be8cae3aa24db5dfa3d270270eb82e320cc7a9b1936d6b7d05" + }, + { + "wikiId": "planisphere", + "source": "planisphere.png", + "runtime": "assets/relics/planisphere.png", + "width": 79, + "height": 81, + "bytes": 10303, + "depth": 8, + "alpha": true, + "sha256": "fe49142f5cf79487f8b408713775917d20710e55230436dd9ad6c9d564dad45b" + }, + { + "wikiId": "joss_paper", + "source": "joss_paper.png", + "runtime": "assets/relics/joss_paper.png", + "width": 82, + "height": 81, + "bytes": 10387, + "depth": 8, + "alpha": true, + "sha256": "6fdeba44132726b088a4c8e13fc2e2e1dd41454b0bb14cf4876f13c1ddf8814b" + }, + { + "wikiId": "ornamental_fan", + "source": "ornamental_fan.png", + "runtime": "assets/relics/ornamental_fan.png", + "width": 81, + "height": 70, + "bytes": 7744, + "depth": 8, + "alpha": true, + "sha256": "478b6a4adc748105fda587d39ce8b23f90309a6c30caba78656932f04750efb0" + }, + { + "wikiId": "letter_opener", + "source": "letter_opener.png", + "runtime": "assets/relics/letter_opener.png", + "width": 80, + "height": 81, + "bytes": 5423, + "depth": 8, + "alpha": true, + "sha256": "bcf26d13d7129cd76f4e47408c595806b2f22ba50061655ab9e8bfb5065cd1e5" + }, + { + "wikiId": "pear", + "source": "pear.png", + "runtime": "assets/relics/pear.png", + "width": 62, + "height": 81, + "bytes": 5863, + "depth": 8, + "alpha": true, + "sha256": "7dcb4c0177a984dcf19a819f8cf304fe0e56be3e35fbc277018a4ccad70feb0b" + }, + { + "wikiId": "reptile_trinket", + "source": "reptile_trinket.png", + "runtime": "assets/relics/reptile_trinket.png", + "width": 77, + "height": 78, + "bytes": 6845, + "depth": 8, + "alpha": true, + "sha256": "3a94643ca2d7830c86b8a19fc12c58f46a0566c8d9e893197e17971b0a978bff" + }, + { + "wikiId": "sparkling_rouge", + "source": "sparkling_rouge.png", + "runtime": "assets/relics/sparkling_rouge.png", + "width": 77, + "height": 80, + "bytes": 6177, + "depth": 8, + "alpha": true, + "sha256": "a2d2f8b06562db10e040974bc6dce74853dc8c3a518069a12802f743f4936a02" + }, + { + "wikiId": "petrified_toad", + "source": "petrified_toad.png", + "runtime": "assets/relics/petrified_toad.png", + "width": 81, + "height": 74, + "bytes": 8135, + "depth": 8, + "alpha": true, + "sha256": "3f710ba8c745013f9f712ad55af4b9c5c351c8045ea368315cc1df0a5c0f5c7a" + }, + { + "wikiId": "nunchaku", + "source": "nunchaku.png", + "runtime": "assets/relics/nunchaku.png", + "width": 80, + "height": 81, + "bytes": 5482, + "depth": 8, + "alpha": true, + "sha256": "661f0d7276755f0e7cd667c3907edbc61ff2c10269289fcc45601fa5126469c9" + }, + { + "wikiId": "mercury_hourglass", + "source": "mercury_hourglass.png", + "runtime": "assets/relics/mercury_hourglass.png", + "width": 65, + "height": 81, + "bytes": 6038, + "depth": 8, + "alpha": true, + "sha256": "9a70f5f6add9e59db417fd42e627dc8bd997e44397c066447ae5ca709337b3f3" + }, + { + "wikiId": "stone_cracker", + "source": "stone_cracker.png", + "runtime": "assets/relics/stone_cracker.png", + "width": 74, + "height": 76, + "bytes": 6968, + "depth": 8, + "alpha": true, + "sha256": "f1f8fe4fe14ebde969b9822a2b617f2c871f2ac58a659fe0ed06011271a10cec" + }, + { + "wikiId": "pantograph", + "source": "pantograph.png", + "runtime": "assets/relics/pantograph.png", + "width": 81, + "height": 75, + "bytes": 4490, + "depth": 8, + "alpha": true, + "sha256": "4e406b47cb55b34e7572096f230839b9f1b791f1f7bf71295d887b7e016e3d44" + }, + { + "wikiId": "kusarigama", + "source": "kusarigama.png", + "runtime": "assets/relics/kusarigama.png", + "width": 81, + "height": 79, + "bytes": 6107, + "depth": 8, + "alpha": true, + "sha256": "ae1be498dc2b59fc6c493c2fe6ebfc1c726ad86c2f87f9b2b33abd37faa03b1d" + }, + { + "wikiId": "miniature_cannon", + "source": "miniature_cannon.png", + "runtime": "assets/relics/miniature_cannon.png", + "width": 80, + "height": 80, + "bytes": 8396, + "depth": 8, + "alpha": true, + "sha256": "db052b59371e475b8f6bede349aec67ce35e4c217a2cb6ab386b95b5f258fb68" + }, + { + "wikiId": "tiny_mailbox", + "source": "tiny_mailbox.png", + "runtime": "assets/relics/tiny_mailbox.png", + "width": 81, + "height": 72, + "bytes": 7945, + "depth": 8, + "alpha": true, + "sha256": "8f0552d98a3aa08e8f06d50a3fcc06781bcf4c231624cf80e70e02598e8e4c9e" + }, + { + "wikiId": "tuning_fork", + "source": "tuning_fork.png", + "runtime": "assets/relics/tuning_fork.png", + "width": 81, + "height": 76, + "bytes": 3921, + "depth": 8, + "alpha": true, + "sha256": "d498651f83436f02ecfd39eae2e281a64efad02fcecd21b83e478fb234640f3f" + }, + { + "wikiId": "permafrost", + "source": "permafrost.png", + "runtime": "assets/relics/permafrost.png", + "width": 75, + "height": 81, + "bytes": 6789, + "depth": 8, + "alpha": true, + "sha256": "25811d7ce1a2a56c7d5f98a8bea49e35dece0c1f6c38c4c1a073a0e5357c4b09" + }, + { + "wikiId": "eternal_feather", + "source": "eternal_feather.png", + "runtime": "assets/relics/eternal_feather.png", + "width": 79, + "height": 78, + "bytes": 6627, + "depth": 8, + "alpha": true, + "sha256": "eedb47dacf42b236655b3f0f803ca039f162a4e146fe3d2463bc26de9d48b676" + }, + { + "wikiId": "bowler_hat", + "source": "bowler_hat.png", + "runtime": "assets/relics/bowler_hat.png", + "width": 81, + "height": 65, + "bytes": 5589, + "depth": 8, + "alpha": true, + "sha256": "29403835d283a7a5eaf71d83029a5d67d2606390a25807e47d7489453627d6e8" + }, + { + "wikiId": "lucky_fysh", + "source": "lucky_fysh.png", + "runtime": "assets/relics/lucky_fysh.png", + "width": 81, + "height": 83, + "bytes": 9458, + "depth": 8, + "alpha": true, + "sha256": "a68215fed91a79ea23edab925737fbc23b97cc485813d7bb84a6207d6b697d50" + }, + { + "wikiId": "parrying_shield", + "source": "parrying_shield.png", + "runtime": "assets/relics/parrying_shield.png", + "width": 81, + "height": 81, + "bytes": 8633, + "depth": 8, + "alpha": true, + "sha256": "45c8cf452e2564512339a5c94ecfa1f27bd17a5a875d809c1aa259ed8a157e39" + }, + { + "wikiId": "candelabra", + "source": "candelabra.png", + "runtime": "assets/relics/candelabra.png", + "width": 81, + "height": 81, + "bytes": 5701, + "depth": 8, + "alpha": true, + "sha256": "d79f21c8870c5aa42b996c0ba051c32b6258b1a1270b999895b95f1ba8e3469c" + }, + { + "wikiId": "paper_phrog", + "source": "paper_phrog.png", + "runtime": "assets/relics/paper_phrog.png", + "width": 81, + "height": 69, + "bytes": 5557, + "depth": 8, + "alpha": true, + "sha256": "eb9a5801bf872a7b8842116163eb6ebe44e9a98abadd2e42b232fa2ef03c61d0" + }, + { + "wikiId": "self_forming_clay", + "source": "self_forming_clay.png", + "runtime": "assets/relics/self_forming_clay.png", + "width": 81, + "height": 80, + "bytes": 7786, + "depth": 8, + "alpha": true, + "sha256": "afcd15a6590618c4c8b151002c7ed0746fd22bc66fe14e398bfca4bb681a9db8" + }, + { + "wikiId": "tingsha", + "source": "tingsha.png", + "runtime": "assets/relics/tingsha.png", + "width": 77, + "height": 72, + "bytes": 6163, + "depth": 8, + "alpha": true, + "sha256": "882d24515e2ac5fab5bca8b38890f0064d28f40cebf355d827107d31e1fbbdbf" + }, + { + "wikiId": "twisted_funnel", + "source": "twisted_funnel.png", + "runtime": "assets/relics/twisted_funnel.png", + "width": 80, + "height": 71, + "bytes": 6585, + "depth": 8, + "alpha": true, + "sha256": "de7a9f6e7c263d70108a6bf1dd91c05ff06c7654f0de725462384135eacb4909" + }, + { + "wikiId": "galactic_dust", + "source": "galactic_dust.png", + "runtime": "assets/relics/galactic_dust.png", + "width": 80, + "height": 82, + "bytes": 7036, + "depth": 8, + "alpha": true, + "sha256": "c87090992f813c8e41dae6277ba6dbe48c9376906e412f3948b037fece4a7afe" + }, + { + "wikiId": "regalite", + "source": "regalite.png", + "runtime": "assets/relics/regalite.png", + "width": 78, + "height": 72, + "bytes": 9031, + "depth": 8, + "alpha": true, + "sha256": "0cfc2a36e8677e1e680d885fb05d1298374ba7545c966ad6af831ca903d5d931" + }, + { + "wikiId": "book_repair_knife", + "source": "book_repair_knife.png", + "runtime": "assets/relics/book_repair_knife.png", + "width": 79, + "height": 76, + "bytes": 5558, + "depth": 8, + "alpha": true, + "sha256": "b61382dfb7d1087127b06998f2d8aa33a4080939bd383c4813b74a3dd07c2270" + }, + { + "wikiId": "funerary_mask", + "source": "funerary_mask.png", + "runtime": "assets/relics/funerary_mask.png", + "width": 75, + "height": 70, + "bytes": 8372, + "depth": 8, + "alpha": true, + "sha256": "b7a035e06c72698519b0cc134d6443db8d89de298dd9150a0d760f20c1581656" + }, + { + "wikiId": "gold_plated_cables", + "source": "gold_plated_cables.png", + "runtime": "assets/relics/gold_plated_cables.png", + "width": 74, + "height": 73, + "bytes": 6804, + "depth": 8, + "alpha": true, + "sha256": "de3c75fd3e4a41a9dd9c845c552deec168daeed0c7189d0e7bfce46aa94bc3ef" + }, + { + "wikiId": "symbiotic_virus", + "source": "symbiotic_virus.png", + "runtime": "assets/relics/symbiotic_virus.png", + "width": 80, + "height": 79, + "bytes": 7675, + "depth": 8, + "alpha": true, + "sha256": "e09c87d40b66f5379c595ee63805605d8bba9cc16234fbcf103b6e670d0c0241" + }, + { + "wikiId": "white_beast_statue", + "source": "white_beast_statue.png", + "runtime": "assets/relics/white_beast_statue.png", + "width": 81, + "height": 76, + "bytes": 7638, + "depth": 8, + "alpha": true, + "sha256": "1db528a8dba724edfa894c358018b02a00f42eaf9ff4c8ca54099d06d6add29e" + }, + { + "wikiId": "white_star", + "source": "white_star.png", + "runtime": "assets/relics/white_star.png", + "width": 81, + "height": 79, + "bytes": 4939, + "depth": 8, + "alpha": true, + "sha256": "52a6c1afaeed4d3fa03be37647e21cb17f1a33b7785409db5ec232c0c43235ad" + }, + { + "wikiId": "ice_cream", + "source": "ice_cream.png", + "runtime": "assets/relics/ice_cream.png", + "width": 76, + "height": 82, + "bytes": 7197, + "depth": 8, + "alpha": true, + "sha256": "38de2a36162746558aab496725c7b4ec6f070c207d74382161c88f29e35e00ef" + }, + { + "wikiId": "unsettling_lamp", + "source": "unsettling_lamp.png", + "runtime": "assets/relics/unsettling_lamp.png", + "width": 80, + "height": 80, + "bytes": 7484, + "depth": 8, + "alpha": true, + "sha256": "77a0a60f0db83cac36fadde9c7c1821cf38cf7072d275016e256c638a08b1575" + }, + { + "wikiId": "unceasing_top", + "source": "unceasing_top.png", + "runtime": "assets/relics/unceasing_top.png", + "width": 75, + "height": 80, + "bytes": 9092, + "depth": 8, + "alpha": true, + "sha256": "563577e7410c6a0989ca9251bbc87a9746543f5d94fed3ab18de9b70b311651d" + }, + { + "wikiId": "rainbow_ring", + "source": "rainbow_ring.png", + "runtime": "assets/relics/rainbow_ring.png", + "width": 78, + "height": 82, + "bytes": 9381, + "depth": 8, + "alpha": true, + "sha256": "ec629f835b8d9be5e2b41ec4476cfad14d9ff2b92f495ac93e3a2678dab16645" + }, + { + "wikiId": "shovel", + "source": "shovel.png", + "runtime": "assets/relics/shovel.png", + "width": 80, + "height": 81, + "bytes": 4860, + "depth": 8, + "alpha": true, + "sha256": "70bf095834de67ce491794d7863a64557b42bfdb7876a0d3ffe0be0f1a5f8aa5" + }, + { + "wikiId": "meat_on_the_bone", + "source": "meat_on_the_bone.png", + "runtime": "assets/relics/meat_on_the_bone.png", + "width": 81, + "height": 78, + "bytes": 6570, + "depth": 8, + "alpha": true, + "sha256": "2e844815e199f9cb8afe92fd3beea1ace8e0caf1aa609bca1f7d059d89ffe5fb" + }, + { + "wikiId": "chandelier", + "source": "chandelier.png", + "runtime": "assets/relics/chandelier.png", + "width": 79, + "height": 81, + "bytes": 6424, + "depth": 8, + "alpha": true, + "sha256": "45ef85a055b6b6b684a1206f0daccea47862bbbc79b3cd6476302393dfffe9b9" + }, + { + "wikiId": "frozen_egg", + "source": "frozen_egg.png", + "runtime": "assets/relics/frozen_egg.png", + "width": 65, + "height": 80, + "bytes": 6468, + "depth": 8, + "alpha": true, + "sha256": "53b0e8bd035438a28c87dabab4c671847199911e9273e9707e860889b9a53f2a" + }, + { + "wikiId": "cloak_clasp", + "source": "cloak_clasp.png", + "runtime": "assets/relics/cloak_clasp.png", + "width": 78, + "height": 77, + "bytes": 5876, + "depth": 8, + "alpha": true, + "sha256": "25e777a9875e77eaea6cb904095adea847e71d0c534216d6f5d5520660254106" + }, + { + "wikiId": "toxic_egg", + "source": "toxic_egg.png", + "runtime": "assets/relics/toxic_egg.png", + "width": 66, + "height": 81, + "bytes": 8054, + "depth": 8, + "alpha": true, + "sha256": "4fc4a9b774435adcfed8bb4ab2a07d20d3f897ef752c2ee96bc798ec23bc382b" + }, + { + "wikiId": "gambling_chip", + "source": "gambling_chip.png", + "runtime": "assets/relics/gambling_chip.png", + "width": 81, + "height": 76, + "bytes": 8263, + "depth": 8, + "alpha": true, + "sha256": "eb0b6124d7cdf447c94b4bd2dc5d6f7757c6fe7cedac9014247e2b966031a54c" + }, + { + "wikiId": "captains_wheel", + "source": "captains_wheel.png", + "runtime": "assets/relics/captains_wheel.png", + "width": 81, + "height": 81, + "bytes": 7933, + "depth": 8, + "alpha": true, + "sha256": "8c7872210f2a38d13ef095eb5521a107840c25ccaeecb3053ae253d3c8b5369c" + }, + { + "wikiId": "vexing_puzzlebox", + "source": "vexing_puzzlebox.png", + "runtime": "assets/relics/vexing_puzzlebox.png", + "width": 79, + "height": 83, + "bytes": 10329, + "depth": 8, + "alpha": true, + "sha256": "b6f299173d9019f5d0d267756b36b9f919a4eb0cd9a33f39fcc1f35547fe347e" + }, + { + "wikiId": "bellows", + "source": "bellows.png", + "runtime": "assets/relics/bellows.png", + "width": 78, + "height": 81, + "bytes": 7584, + "depth": 8, + "alpha": true, + "sha256": "b488a47c2bda4d698e3200c7810bcd07f42c7c4375f0beb9a74067325449a73a" + }, + { + "wikiId": "mummified_hand", + "source": "mummified_hand.png", + "runtime": "assets/relics/mummified_hand.png", + "width": 75, + "height": 82, + "bytes": 7919, + "depth": 8, + "alpha": true, + "sha256": "2c88bd36ad1589e16e3ee01f985495e869df373b9ffc0db58bfa44420db72c87" + }, + { + "wikiId": "old_coin", + "source": "old_coin.png", + "runtime": "assets/relics/old_coin.png", + "width": 74, + "height": 82, + "bytes": 8264, + "depth": 8, + "alpha": true, + "sha256": "8429b06a5a2ce9c194fed4674c186f65228b289c9f57104401e5991eb8132b16" + }, + { + "wikiId": "intimidating_helmet", + "source": "intimidating_helmet.png", + "runtime": "assets/relics/intimidating_helmet.png", + "width": 78, + "height": 81, + "bytes": 8849, + "depth": 8, + "alpha": true, + "sha256": "1fdd25d525cb8b5c5023ca02fa2577989524243e122bf51aa0bd5e1d88ebdc97" + }, + { + "wikiId": "girya", + "source": "girya.png", + "runtime": "assets/relics/girya.png", + "width": 66, + "height": 80, + "bytes": 7017, + "depth": 8, + "alpha": true, + "sha256": "b979788d9008933119fa78f80639a3ec59567d8b3c05e4b50e71d9c5695b0c0e" + }, + { + "wikiId": "pocketwatch", + "source": "pocketwatch.png", + "runtime": "assets/relics/pocketwatch.png", + "width": 81, + "height": 71, + "bytes": 7534, + "depth": 8, + "alpha": true, + "sha256": "b292f3f97e935ca8071b13e4c59c6090fb3041229a9d91aa64b77c9f846674b5" + }, + { + "wikiId": "sturdy_clamp", + "source": "sturdy_clamp.png", + "runtime": "assets/relics/sturdy_clamp.png", + "width": 77, + "height": 79, + "bytes": 7020, + "depth": 8, + "alpha": true, + "sha256": "3b91fcb337fe065a60f11dfd4267a062fcef2817c98c156c4489060d53327391" + }, + { + "wikiId": "kunai", + "source": "kunai.png", + "runtime": "assets/relics/kunai.png", + "width": 81, + "height": 81, + "bytes": 4476, + "depth": 8, + "alpha": true, + "sha256": "6e444551870a51664051bf5793596317c912b9917abb350edb6a974b1a8422ce" + }, + { + "wikiId": "stone_calendar", + "source": "stone_calendar.png", + "runtime": "assets/relics/stone_calendar.png", + "width": 81, + "height": 74, + "bytes": 7869, + "depth": 8, + "alpha": true, + "sha256": "37749a178fe9596b041c350597720764b4309bfe4064a918ce906f121a746cbe" + }, + { + "wikiId": "beating_remnant", + "source": "beating_remnant.png", + "runtime": "assets/relics/beating_remnant.png", + "width": 78, + "height": 81, + "bytes": 8688, + "depth": 8, + "alpha": true, + "sha256": "6125d8bbd95708c17044251b6be4c22d5b85cc2abfbae4199d5b3e8e7c8ba75f" + }, + { + "wikiId": "mango", + "source": "mango.png", + "runtime": "assets/relics/mango.png", + "width": 80, + "height": 76, + "bytes": 9461, + "depth": 8, + "alpha": true, + "sha256": "1bd7c0298cbbc160d6f17a838b99880548559fb7db66d83f10634f8fbfe04774" + }, + { + "wikiId": "game_piece", + "source": "game_piece.png", + "runtime": "assets/relics/game_piece.png", + "width": 60, + "height": 81, + "bytes": 6525, + "depth": 8, + "alpha": true, + "sha256": "677e13b35ff1b755a3310c0979b9d9d575e232e958ccdfa9ffc767bc1463d1d3" + }, + { + "wikiId": "molten_egg", + "source": "molten_egg.png", + "runtime": "assets/relics/molten_egg.png", + "width": 65, + "height": 79, + "bytes": 8687, + "depth": 8, + "alpha": true, + "sha256": "3713acf536dc2c66eeb903377b0ef468114fc77552f550bd6bb65014c08b3725" + }, + { + "wikiId": "shuriken", + "source": "shuriken.png", + "runtime": "assets/relics/shuriken.png", + "width": 81, + "height": 82, + "bytes": 5605, + "depth": 8, + "alpha": true, + "sha256": "131a83cfe7aefaac27ae58c2b0595fb64e892826595486c39ced3d2f60b82e42" + }, + { + "wikiId": "the_courier", + "source": "the_courier.png", + "runtime": "assets/relics/the_courier.png", + "width": 80, + "height": 81, + "bytes": 8351, + "depth": 8, + "alpha": true, + "sha256": "a22c348dcc4070dcf46095bdf2dec57aeecf4b20b72843788027f9873f8b9edd" + }, + { + "wikiId": "art_of_war", + "source": "art_of_war.png", + "runtime": "assets/relics/art_of_war.png", + "width": 81, + "height": 57, + "bytes": 8052, + "depth": 8, + "alpha": true, + "sha256": "9b21c2fa48179b787f1fd36521f0aaa0f08ca333ffb6586bbdae00f5729cbdc1" + }, + { + "wikiId": "razor_tooth", + "source": "razor_tooth.png", + "runtime": "assets/relics/razor_tooth.png", + "width": 78, + "height": 81, + "bytes": 4581, + "depth": 8, + "alpha": true, + "sha256": "7f0e5bce97187c044bb7f7e233901c23c046cbdf3febff8b722018ec78f05270" + }, + { + "wikiId": "tungsten_rod", + "source": "tungsten_rod.png", + "runtime": "assets/relics/tungsten_rod.png", + "width": 80, + "height": 75, + "bytes": 5669, + "depth": 8, + "alpha": true, + "sha256": "40dc76faa4b6417856bf79eef32a03ad9e6905f6c6c57d20a2a71aa15c4561e3" + }, + { + "wikiId": "lizard_tail", + "source": "lizard_tail.png", + "runtime": "assets/relics/lizard_tail.png", + "width": 82, + "height": 81, + "bytes": 7566, + "depth": 8, + "alpha": true, + "sha256": "f35e673e7d3344048b9f5747786c2d86e9fc07b3348a58bfa4a95fadee37c518" + }, + { + "wikiId": "prayer_wheel", + "source": "prayer_wheel.png", + "runtime": "assets/relics/prayer_wheel.png", + "width": 57, + "height": 81, + "bytes": 6409, + "depth": 8, + "alpha": true, + "sha256": "e111b4b3d25ba1eafe68c01cc2c4c16b20ca70534ffb3a1bf6854700d4d5bcee" + }, + { + "wikiId": "charons_ashes", + "source": "charons_ashes.png", + "runtime": "assets/relics/charons_ashes.png", + "width": 80, + "height": 79, + "bytes": 7056, + "depth": 8, + "alpha": true, + "sha256": "83fd67c7d8145f87855b6f5405734b77afe6833525480fed6312a40552e941cc" + }, + { + "wikiId": "demon_tongue", + "source": "demon_tongue.png", + "runtime": "assets/relics/demon_tongue.png", + "width": 79, + "height": 79, + "bytes": 5413, + "depth": 8, + "alpha": true, + "sha256": "928712f8333587bdc722146a07621547c0ab921f86d46632cf53d3a059d295be" + }, + { + "wikiId": "ruined_helmet", + "source": "ruined_helmet.png", + "runtime": "assets/relics/ruined_helmet.png", + "width": 67, + "height": 78, + "bytes": 6839, + "depth": 8, + "alpha": true, + "sha256": "15d7c758a793bb988e1e97fd99a9435b8857ef17bdd07fdb54344f4f66086224" + }, + { + "wikiId": "helical_dart", + "source": "helical_dart.png", + "runtime": "assets/relics/helical_dart.png", + "width": 79, + "height": 80, + "bytes": 6241, + "depth": 8, + "alpha": true, + "sha256": "cc9089ab5758b01f9ac211e06738cd2cef23e89eb3a46fed40ac9352c0577a94" + }, + { + "wikiId": "paper_krane", + "source": "paper_krane.png", + "runtime": "assets/relics/paper_krane.png", + "width": 76, + "height": 78, + "bytes": 5861, + "depth": 8, + "alpha": true, + "sha256": "5374cf7a2721b311fc1582dcf73502f819619bf1610f4fb1b958188404526275" + }, + { + "wikiId": "tough_bandages", + "source": "tough_bandages.png", + "runtime": "assets/relics/tough_bandages.png", + "width": 80, + "height": 78, + "bytes": 7351, + "depth": 8, + "alpha": true, + "sha256": "c08ebac638023f8a2dea12354c4f6496d7d2165a5e8e00f6124675f00ba856b7" + }, + { + "wikiId": "lunar_pastry", + "source": "lunar_pastry.png", + "runtime": "assets/relics/lunar_pastry.png", + "width": 75, + "height": 81, + "bytes": 8027, + "depth": 8, + "alpha": true, + "sha256": "c2942020a364ef50318d03dd2e501a973dfebfed1069901cbdb5b7bc1399ccb9" + }, + { + "wikiId": "mini_regent", + "source": "mini_regent.png", + "runtime": "assets/relics/mini_regent.png", + "width": 66, + "height": 79, + "bytes": 6062, + "depth": 8, + "alpha": true, + "sha256": "14901f72839907f4fc2e0f90f38f96cb25060251e8958c453e48c1e54be5bc7a" + }, + { + "wikiId": "orange_dough", + "source": "orange_dough.png", + "runtime": "assets/relics/orange_dough.png", + "width": 78, + "height": 72, + "bytes": 9276, + "depth": 8, + "alpha": true, + "sha256": "08538a1bba026fa5c1ad95e2ebdf93bfb1e65375ee221c76e4a7381a59f90449" + }, + { + "wikiId": "big_hat", + "source": "big_hat.png", + "runtime": "assets/relics/big_hat.png", + "width": 80, + "height": 72, + "bytes": 6382, + "depth": 8, + "alpha": true, + "sha256": "9fa1f0c744dbf6c932867921c2a12f7045b068d391ec1d4ee4673ddfcb3ae779" + }, + { + "wikiId": "bookmark", + "source": "bookmark.png", + "runtime": "assets/relics/bookmark.png", + "width": 75, + "height": 79, + "bytes": 8190, + "depth": 8, + "alpha": true, + "sha256": "03ccd1af4abef47b0e5624b461e381673f7419ac5ec40c7a5030dc98f6a442d9" + }, + { + "wikiId": "ivory_tile", + "source": "ivory_tile.png", + "runtime": "assets/relics/ivory_tile.png", + "width": 58, + "height": 81, + "bytes": 5196, + "depth": 8, + "alpha": true, + "sha256": "0abb77b0e82dcb8d22b3c87c379ac49110886dbd98182c607d99d99f33ef22e2" + }, + { + "wikiId": "emotion_chip", + "source": "emotion_chip.png", + "runtime": "assets/relics/emotion_chip.png", + "width": 78, + "height": 65, + "bytes": 5413, + "depth": 8, + "alpha": true, + "sha256": "403efc9ad99ee45e45bb0842c7f4867e23b262f5375b4c9f411a0c7f8e60f0a9" + }, + { + "wikiId": "metronome", + "source": "metronome.png", + "runtime": "assets/relics/metronome.png", + "width": 63, + "height": 81, + "bytes": 6549, + "depth": 8, + "alpha": true, + "sha256": "128950a834ca38f56eccbee87fc5dbfbe93a7a95697ad558fbd938b67257e0b8" + }, + { + "wikiId": "power_cell", + "source": "power_cell.png", + "runtime": "assets/relics/power_cell.png", + "width": 66, + "height": 81, + "bytes": 8248, + "depth": 8, + "alpha": true, + "sha256": "287f3ff1f9334f73b9af2019c35aabb6bf2d66ea34485e163116ad8f3701c9df" + }, + { + "wikiId": "dingy_rug", + "source": "dingy_rug.png", + "runtime": "assets/relics/dingy_rug.png", + "width": 80, + "height": 81, + "bytes": 8697, + "depth": 8, + "alpha": true, + "sha256": "be09a50d401b217329f047375f03fe5ee8da258b105137b77a7fe6220007a0a9" + }, + { + "wikiId": "cauldron", + "source": "cauldron.png", + "runtime": "assets/relics/cauldron.png", + "width": 80, + "height": 72, + "bytes": 7112, + "depth": 8, + "alpha": true, + "sha256": "701fca93a9d5953eb77cfad96c7cfaecc021d404b34a91744ad8130f5e07c1b2" + }, + { + "wikiId": "dollys_mirror", + "source": "dollys_mirror.png", + "runtime": "assets/relics/dollys_mirror.png", + "width": 77, + "height": 81, + "bytes": 8280, + "depth": 8, + "alpha": true, + "sha256": "1967a29973bb3c30468531be5a78b8e5debb15d1caa40cd728e39bf52f53937f" + }, + { + "wikiId": "toolbox", + "source": "toolbox.png", + "runtime": "assets/relics/toolbox.png", + "width": 81, + "height": 70, + "bytes": 6117, + "depth": 8, + "alpha": true, + "sha256": "6232998b86233f3bf727e5fe3c227703c59f085b22fde51a1348ad0cf7436a72" + }, + { + "wikiId": "chemical_x", + "source": "chemical_x.png", + "runtime": "assets/relics/chemical_x.png", + "width": 63, + "height": 78, + "bytes": 4646, + "depth": 8, + "alpha": true, + "sha256": "a02fcaabd5ab21f9ccf90debaec37e414297a568a220a63823801b4e31c9299b" + }, + { + "wikiId": "membership_card", + "source": "membership_card.png", + "runtime": "assets/relics/membership_card.png", + "width": 81, + "height": 69, + "bytes": 7343, + "depth": 8, + "alpha": true, + "sha256": "0fae3370f1e7a09864e88a005d968f0c7c72c6582a3d54b7d95ab419d1a762c3" + }, + { + "wikiId": "dragon_fruit", + "source": "dragon_fruit.png", + "runtime": "assets/relics/dragon_fruit.png", + "width": 74, + "height": 75, + "bytes": 9003, + "depth": 8, + "alpha": true, + "sha256": "722493d462329c2e4e8f0b945cd57eb24be216911c592c21d25352f3187aa9d3" + }, + { + "wikiId": "screaming_flagon", + "source": "screaming_flagon.png", + "runtime": "assets/relics/screaming_flagon.png", + "width": 64, + "height": 79, + "bytes": 7754, + "depth": 8, + "alpha": true, + "sha256": "a0b820a01d512032ed2ec1f40a27aa73892c96053555e0d01624482c10b9a136" + }, + { + "wikiId": "lees_waffle", + "source": "lees_waffle.png", + "runtime": "assets/relics/lees_waffle.png", + "width": 81, + "height": 79, + "bytes": 8818, + "depth": 8, + "alpha": true, + "sha256": "5484235e41b281b117fcbd616daaade779329c99398bb41a4dcce1ee0f75e278" + }, + { + "wikiId": "bread", + "source": "bread.png", + "runtime": "assets/relics/bread.png", + "width": 80, + "height": 60, + "bytes": 7202, + "depth": 8, + "alpha": true, + "sha256": "bb0e824577aa58e76d91a9094ab2a0b277b777bd15ff50ba89385c0c6deba590" + }, + { + "wikiId": "kifuda", + "source": "kifuda.png", + "runtime": "assets/relics/kifuda.png", + "width": 73, + "height": 77, + "bytes": 7972, + "depth": 8, + "alpha": true, + "sha256": "1448fc249a0092979aa9b80507de289cf51ebd6da36b72f4d9af9bc4369bf692" + }, + { + "wikiId": "gnarled_hammer", + "source": "gnarled_hammer.png", + "runtime": "assets/relics/gnarled_hammer.png", + "width": 78, + "height": 58, + "bytes": 5429, + "depth": 8, + "alpha": true, + "sha256": "54196fd212f77ba2833515537a6bf0f0910d98b52011fe08f15a55e8c78008ac" + }, + { + "wikiId": "punch_dagger", + "source": "punch_dagger.png", + "runtime": "assets/relics/punch_dagger.png", + "width": 79, + "height": 80, + "bytes": 5670, + "depth": 8, + "alpha": true, + "sha256": "9e6535fae9245effc72c312fd63c2d6c566991347a5da190167507d4d3521b63" + }, + { + "wikiId": "burning_sticks", + "source": "burning_sticks.png", + "runtime": "assets/relics/burning_sticks.png", + "width": 80, + "height": 80, + "bytes": 7372, + "depth": 8, + "alpha": true, + "sha256": "935327638f20fc08ca1fee8d0933de98cc617da4d833e7d0fb6fba7b2ddadfb1" + }, + { + "wikiId": "lava_lamp", + "source": "lava_lamp.png", + "runtime": "assets/relics/lava_lamp.png", + "width": 62, + "height": 80, + "bytes": 5447, + "depth": 8, + "alpha": true, + "sha256": "b8c39d25b474322ae39178ad7b9a5f30c9fa315b26d3a49fceab0661eab85ce7" + }, + { + "wikiId": "ringing_triangle", + "source": "ringing_triangle.png", + "runtime": "assets/relics/ringing_triangle.png", + "width": 80, + "height": 81, + "bytes": 6181, + "depth": 8, + "alpha": true, + "sha256": "4194733def390949559d177ab19daa3bcd052880377321cd20623837b5187836" + }, + { + "wikiId": "mystic_lighter", + "source": "mystic_lighter.png", + "runtime": "assets/relics/mystic_lighter.png", + "width": 72, + "height": 78, + "bytes": 6646, + "depth": 8, + "alpha": true, + "sha256": "fc496c6fa2867d985f008898f8ebe929c3f52ebbcead3988ec891b2d324d44fc" + }, + { + "wikiId": "the_abacus", + "source": "the_abacus.png", + "runtime": "assets/relics/the_abacus.png", + "width": 80, + "height": 65, + "bytes": 7153, + "depth": 8, + "alpha": true, + "sha256": "bf1b372a7aca12a44b83edf76f0447d81f60377a2cd624f1a66aaf7b41ac8017" + }, + { + "wikiId": "royal_stamp", + "source": "royal_stamp.png", + "runtime": "assets/relics/royal_stamp.png", + "width": 59, + "height": 80, + "bytes": 5318, + "depth": 8, + "alpha": true, + "sha256": "ec96f594025c723782df21d347a7b8c9125a0e42471207b9d173fc30c35b342c" + }, + { + "wikiId": "miniature_tent", + "source": "miniature_tent.png", + "runtime": "assets/relics/miniature_tent.png", + "width": 81, + "height": 76, + "bytes": 6993, + "depth": 8, + "alpha": true, + "sha256": "5a90dac1adcdf7d86e88a09c84892b67524aa33ea12a2bac090c91fd670a8f4a" + }, + { + "wikiId": "orrery", + "source": "orrery.png", + "runtime": "assets/relics/orrery.png", + "width": 81, + "height": 80, + "bytes": 8419, + "depth": 8, + "alpha": true, + "sha256": "b50c2c7de0244df20057a345588e0baa52a50af2ce96987a8c4fc4c9ada33dc5" + }, + { + "wikiId": "belt_buckle", + "source": "belt_buckle.png", + "runtime": "assets/relics/belt_buckle.png", + "width": 77, + "height": 63, + "bytes": 7132, + "depth": 8, + "alpha": true, + "sha256": "8fe4a786453afb3fb9f31344189ce8de5555528a23137087dbbe1506c39de4b2" + }, + { + "wikiId": "sling_of_courage", + "source": "sling_of_courage.png", + "runtime": "assets/relics/sling_of_courage.png", + "width": 81, + "height": 77, + "bytes": 6202, + "depth": 8, + "alpha": true, + "sha256": "e4246f601fbe535973c649e8e5dcb12fa5c511dacd58c283ff35a19f58d5dd93" + }, + { + "wikiId": "ghost_seed", + "source": "ghost_seed.png", + "runtime": "assets/relics/ghost_seed.png", + "width": 71, + "height": 78, + "bytes": 7167, + "depth": 8, + "alpha": true, + "sha256": "9b3dc0d0e87cdcefdd62c3c400260d70e93516a8ebc297bb3b2d6e3f6dde652c" + }, + { + "wikiId": "wing_charm", + "source": "wing_charm.png", + "runtime": "assets/relics/wing_charm.png", + "width": 76, + "height": 76, + "bytes": 7790, + "depth": 8, + "alpha": true, + "sha256": "d9908d450ffa80c1b98839fe6125ef40dd24ac35f00848b6bfd7ae06cefe6417" + }, + { + "wikiId": "brimstone", + "source": "brimstone.png", + "runtime": "assets/relics/brimstone.png", + "width": 79, + "height": 72, + "bytes": 7533, + "depth": 8, + "alpha": true, + "sha256": "6ff582b28ed3f2ffda1b4aa14e5be6a83708dd75a16fd176fe4a95a3575324b7" + }, + { + "wikiId": "ninja_scroll", + "source": "ninja_scroll.png", + "runtime": "assets/relics/ninja_scroll.png", + "width": 78, + "height": 79, + "bytes": 8733, + "depth": 8, + "alpha": true, + "sha256": "04eeb32f6bdbb4bfeff7c3533b767051088e6ceee2df38620276a6c3fd35d1d0" + }, + { + "wikiId": "vitruvian_minion", + "source": "vitruvian_minion.png", + "runtime": "assets/relics/vitruvian_minion.png", + "width": 81, + "height": 81, + "bytes": 9816, + "depth": 8, + "alpha": true, + "sha256": "572f81d8d9b564e10c5e2b8495447204899232da29da1911fc1216c15873b587" + }, + { + "wikiId": "undying_sigil", + "source": "undying_sigil.png", + "runtime": "assets/relics/undying_sigil.png", + "width": 78, + "height": 75, + "bytes": 9913, + "depth": 8, + "alpha": true, + "sha256": "336e379d9752975c89a3ee1fe9b503ee51f827f5ffe63c8e1956af995726ed09" + }, + { + "wikiId": "runic_capacitor", + "source": "runic_capacitor.png", + "runtime": "assets/relics/runic_capacitor.png", + "width": 79, + "height": 80, + "bytes": 6900, + "depth": 8, + "alpha": true, + "sha256": "83f55c7440ad6cde425c6e0ea57482a49b1c4cb78d943d3922f26c95f8698338" + }, + { + "wikiId": "arcane_scroll", + "source": "arcane_scroll.png", + "runtime": "assets/relics/arcane_scroll.png", + "width": 80, + "height": 79, + "bytes": 6664, + "depth": 8, + "alpha": true, + "sha256": "8f17daafc63841b7cd0abc6fb44507c540ed81a7cfeda8af8615487b6d8e008a" + }, + { + "wikiId": "silver_crucible", + "source": "silver_crucible.png", + "runtime": "assets/relics/silver_crucible.png", + "width": 74, + "height": 79, + "bytes": 9964, + "depth": 8, + "alpha": true, + "sha256": "0d01378166aa08ac9b17d9f04c9d9d636256ec674989e25fedce4fa816d09214" + }, + { + "wikiId": "hefty_tablet", + "source": "hefty_tablet.png", + "runtime": "assets/relics/hefty_tablet.png", + "width": 79, + "height": 80, + "bytes": 9092, + "depth": 8, + "alpha": true, + "sha256": "dc8e804b82f383c4f50eed1e872b99a75457cce9f140411a9fcbdc503efd9b52" + }, + { + "wikiId": "pomander", + "source": "pomander.png", + "runtime": "assets/relics/pomander.png", + "width": 72, + "height": 80, + "bytes": 5863, + "depth": 8, + "alpha": true, + "sha256": "45710eb8e65a08ead43c02efdd6cd83a9d3e4235ff2afd61f9c977f35d996d06" + }, + { + "wikiId": "fishing_rod", + "source": "fishing_rod.png", + "runtime": "assets/relics/fishing_rod.png", + "width": 79, + "height": 81, + "bytes": 5623, + "depth": 8, + "alpha": true, + "sha256": "604fdd9a5ad6a5b83c88fa77c0b976d38415af2ecac0649be819f1b9ae90f0c2" + }, + { + "wikiId": "booming_conch", + "source": "booming_conch.png", + "runtime": "assets/relics/booming_conch.png", + "width": 79, + "height": 79, + "bytes": 9466, + "depth": 8, + "alpha": true, + "sha256": "3ecd75fd6e73e0b0b12d1a3254c80e066653644c71f8060492424354e1416f02" + }, + { + "wikiId": "silken_tress", + "source": "silken_tress.png", + "runtime": "assets/relics/silken_tress.png", + "width": 80, + "height": 79, + "bytes": 6040, + "depth": 8, + "alpha": true, + "sha256": "223d0fd4871ede9254f1b7b5dd49f497df7aa40e430a121c43f43323d1659884" + }, + { + "wikiId": "golden_pearl", + "source": "golden_pearl.png", + "runtime": "assets/relics/golden_pearl.png", + "width": 78, + "height": 79, + "bytes": 8246, + "depth": 8, + "alpha": true, + "sha256": "ab6123ae2c16b2361710c41496855243ace03cb61622cd7c3f06436553fc88ff" + }, + { + "wikiId": "precise_scissors", + "source": "precise_scissors.png", + "runtime": "assets/relics/precise_scissors.png", + "width": 81, + "height": 76, + "bytes": 6160, + "depth": 8, + "alpha": true, + "sha256": "604dc2cd93bd8fedd3a9064b32968ea5e9c73a5d3bf51d07028c64aa4441a409" + }, + { + "wikiId": "massive_scroll", + "source": "massive_scroll.png", + "runtime": "assets/relics/massive_scroll.png", + "width": 81, + "height": 78, + "bytes": 7672, + "depth": 8, + "alpha": true, + "sha256": "84ade0cdeffb0459b5d2aa54c45f35f8b088f21cd47ae99641b2f2a5a8213265" + }, + { + "wikiId": "large_capsule", + "source": "large_capsule.png", + "runtime": "assets/relics/large_capsule.png", + "width": 79, + "height": 79, + "bytes": 8368, + "depth": 8, + "alpha": true, + "sha256": "4cf9630ed3b00db019500593f7b421741f4a312a6094cd912a0a0da8b82bcf52" + }, + { + "wikiId": "scroll_boxes", + "source": "scroll_boxes.png", + "runtime": "assets/relics/scroll_boxes.png", + "width": 80, + "height": 80, + "bytes": 8801, + "depth": 8, + "alpha": true, + "sha256": "1c99c86c86463c339c689bf2df69beef554774015e274a3a979d91d3d4836686" + }, + { + "wikiId": "neows_talisman", + "source": "neows_talisman.png", + "runtime": "assets/relics/neows_talisman.png", + "width": 68, + "height": 79, + "bytes": 7091, + "depth": 8, + "alpha": true, + "sha256": "cc1a499fc9fba82ba676b87b996a235f462a5896bf1b50dbad56399d04be3f9b" + }, + { + "wikiId": "neows_torment", + "source": "neows_torment.png", + "runtime": "assets/relics/neows_torment.png", + "width": 80, + "height": 79, + "bytes": 10310, + "depth": 8, + "alpha": true, + "sha256": "ec5ab815f0c1ca316bb188c2828a62a32ed4a84d568988f36f10d97fdff340ab" + }, + { + "wikiId": "neows_bones", + "source": "neows_bones.png", + "runtime": "assets/relics/neows_bones.png", + "width": 80, + "height": 80, + "bytes": 7057, + "depth": 8, + "alpha": true, + "sha256": "bdac5e0c1a6a5f2c4652ec5188e53b7e062fa189f9f7e354cf0a6fdebbced224" + }, + { + "wikiId": "lead_paperweight", + "source": "lead_paperweight.png", + "runtime": "assets/relics/lead_paperweight.png", + "width": 79, + "height": 64, + "bytes": 8083, + "depth": 8, + "alpha": true, + "sha256": "c8e86d34aee2d222015ce5a145f7c415d9081003f712e55c37f395c2566f3bb0" + }, + { + "wikiId": "lava_rock", + "source": "lava_rock.png", + "runtime": "assets/relics/lava_rock.png", + "width": 79, + "height": 79, + "bytes": 9918, + "depth": 8, + "alpha": true, + "sha256": "fdd51e68eacf42adc7e082a75fd978280a300706c3447ad3a82568c012a3fd59" + }, + { + "wikiId": "lost_coffer", + "source": "lost_coffer.png", + "runtime": "assets/relics/lost_coffer.png", + "width": 79, + "height": 72, + "bytes": 8032, + "depth": 8, + "alpha": true, + "sha256": "7132d681218312f2c5725ee43c03f8e69b2133c6f0cac7fa54dac2037c65e273" + }, + { + "wikiId": "stone_humidifier", + "source": "stone_humidifier.png", + "runtime": "assets/relics/stone_humidifier.png", + "width": 79, + "height": 77, + "bytes": 9221, + "depth": 8, + "alpha": true, + "sha256": "12c28b9a7b65df277dcf39e61c47a72685fcf4bcb5fb4b765290e6e5b3ec7c47" + }, + { + "wikiId": "leafy_poultice", + "source": "leafy_poultice.png", + "runtime": "assets/relics/leafy_poultice.png", + "width": 79, + "height": 79, + "bytes": 8769, + "depth": 8, + "alpha": true, + "sha256": "89f69c4b4d7c37587fb647f8a244ad26d8c4bce3280e37bebe9011d25152caa5" + }, + { + "wikiId": "precarious_shears", + "source": "precarious_shears.png", + "runtime": "assets/relics/precarious_shears.png", + "width": 81, + "height": 81, + "bytes": 5004, + "depth": 8, + "alpha": true, + "sha256": "781b61147ac56b1ab054c8f1fb6a5384abacd140ba53d2660308c2d17c6bc426" + }, + { + "wikiId": "kaleidoscope", + "source": "kaleidoscope.png", + "runtime": "assets/relics/kaleidoscope.png", + "width": 78, + "height": 79, + "bytes": 7365, + "depth": 8, + "alpha": true, + "sha256": "3c5be7037b9b8418b6705a45f5633c2762a4a4103759f197fc58745a9c8748ea" + }, + { + "wikiId": "small_capsule", + "source": "small_capsule.png", + "runtime": "assets/relics/small_capsule.png", + "width": 66, + "height": 73, + "bytes": 7306, + "depth": 8, + "alpha": true, + "sha256": "96b79f384a82081396f36c848612fe0e592a2e5939d9d6ddec015b7a0c69b7b3" + }, + { + "wikiId": "new_leaf", + "source": "new_leaf.png", + "runtime": "assets/relics/new_leaf.png", + "width": 76, + "height": 78, + "bytes": 7802, + "depth": 8, + "alpha": true, + "sha256": "e5ad70ee6e6a18b07dab6bb26a62cdb98d30258204b2422f1dfa215be4a70242" + }, + { + "wikiId": "phial_holster", + "source": "phial_holster.png", + "runtime": "assets/relics/phial_holster.png", + "width": 77, + "height": 80, + "bytes": 7794, + "depth": 8, + "alpha": true, + "sha256": "7312e2100d32a9a0052df63c5e5e1056aa51dacdac8acb5d08127ac0fed45c07" + }, + { + "wikiId": "nutritious_oyster", + "source": "nutritious_oyster.png", + "runtime": "assets/relics/nutritious_oyster.png", + "width": 79, + "height": 78, + "bytes": 7897, + "depth": 8, + "alpha": true, + "sha256": "336b070f4418eeb6f8a9a470bd9472e8d680022737b405e471aa0abf06a78235" + }, + { + "wikiId": "winged_boots", + "source": "winged_boots.png", + "runtime": "assets/relics/winged_boots.png", + "width": 77, + "height": 80, + "bytes": 6578, + "depth": 8, + "alpha": true, + "sha256": "15cae5e9b75b4f510c09301e4cdda108f65e8522d13cf03fecbd96ba9861d343" + }, + { + "wikiId": "cursed_pearl", + "source": "cursed_pearl.png", + "runtime": "assets/relics/cursed_pearl.png", + "width": 80, + "height": 77, + "bytes": 7285, + "depth": 8, + "alpha": true, + "sha256": "7eb5851a98bee16bd3af60083c6ec8d1d86ae0238346661fd2ed9fd90595d1dd" + }, + { + "wikiId": "glass_eye", + "source": "glass_eye.png", + "runtime": "assets/relics/glass_eye.png", + "width": 71, + "height": 71, + "bytes": 6006, + "depth": 8, + "alpha": true, + "sha256": "9c8192ae8b3e8eeb57bc76511ca8253eb136cfdc272fdcfd1672d2218c127f6b" + }, + { + "wikiId": "radiant_pearl", + "source": "radiant_pearl.png", + "runtime": "assets/relics/radiant_pearl.png", + "width": 74, + "height": 77, + "bytes": 7698, + "depth": 8, + "alpha": true, + "sha256": "87ad86002d70ae312aecb5d803680d24ae2a8cf011675eaaf85feeb1722333f7" + }, + { + "wikiId": "electric_shrymp", + "source": "electric_shrymp.png", + "runtime": "assets/relics/electric_shrymp.png", + "width": 77, + "height": 77, + "bytes": 8709, + "depth": 8, + "alpha": true, + "sha256": "866939038891726bc71169b28f73ee97424785283c94a254bf609619febbe051" + }, + { + "wikiId": "driftwood", + "source": "driftwood.png", + "runtime": "assets/relics/driftwood.png", + "width": 76, + "height": 79, + "bytes": 6988, + "depth": 8, + "alpha": true, + "sha256": "e71bce47cfba5121992edd8f676692fb0e601ddc480ff7d01a83699d645987ee" + }, + { + "wikiId": "archaic_tooth", + "source": "archaic_tooth.png", + "runtime": "assets/relics/archaic_tooth.png", + "width": 81, + "height": 78, + "bytes": 7478, + "depth": 8, + "alpha": true, + "sha256": "ec4e41ec74c92d1984440d78562a6b0967d8d9dc5050f2487d208b321474e420" + }, + { + "wikiId": "sea_glass", + "source": "sea_glass.png", + "runtime": "assets/relics/sea_glass.png", + "width": 79, + "height": 67, + "bytes": 6380, + "depth": 8, + "alpha": true, + "sha256": "8897c254dc89b289e6efbda0feb504ab2ed39c7464e273bfd5e6f994743eb5a1" + }, + { + "wikiId": "prismatic_gem", + "source": "prismatic_gem.png", + "runtime": "assets/relics/prismatic_gem.png", + "width": 81, + "height": 71, + "bytes": 7194, + "depth": 8, + "alpha": true, + "sha256": "f439c5c6261f1bf158adaa0b9a01ebda0556fb29363f04606b697ea472d4359e" + }, + { + "wikiId": "alchemical_coffer", + "source": "alchemical_coffer.png", + "runtime": "assets/relics/alchemical_coffer.png", + "width": 80, + "height": 80, + "bytes": 9259, + "depth": 8, + "alpha": true, + "sha256": "2ce35f217c19f072d9cc93a9bf87a71acfac92546bc19432038371155b9da15e" + }, + { + "wikiId": "touch_of_orobas", + "source": "touch_of_orobas.png", + "runtime": "assets/relics/touch_of_orobas.png", + "width": 69, + "height": 74, + "bytes": 6276, + "depth": 8, + "alpha": true, + "sha256": "bc2d7dd2acd4db7cfbb857c3e6063b6d5ad68aa7a5dabe1d0af5ad5f02315540" + }, + { + "wikiId": "sand_castle", + "source": "sand_castle.png", + "runtime": "assets/relics/sand_castle.png", + "width": 79, + "height": 79, + "bytes": 7105, + "depth": 8, + "alpha": true, + "sha256": "1937e85219a571e04db9637a940f57edcc4adcd8987d10cf5fcfd39a772ec4b9" + }, + { + "wikiId": "paels_legion", + "source": "paels_legion.png", + "runtime": "assets/relics/paels_legion.png", + "width": 81, + "height": 71, + "bytes": 7283, + "depth": 8, + "alpha": true, + "sha256": "b9e0c47ea23cd97872bb37ee4c9c7ba7f467cdafb6aa44f85a388cc238a6c774" + }, + { + "wikiId": "paels_growth", + "source": "paels_growth.png", + "runtime": "assets/relics/paels_growth.png", + "width": 76, + "height": 81, + "bytes": 6822, + "depth": 8, + "alpha": true, + "sha256": "f4a4f3d79536268883dbc10c9ed8c9c1289b9d18c6797a6bc6a339236177fbc7" + }, + { + "wikiId": "paels_horn", + "source": "paels_horn.png", + "runtime": "assets/relics/paels_horn.png", + "width": 81, + "height": 70, + "bytes": 5595, + "depth": 8, + "alpha": true, + "sha256": "9e309e7835c4bbc0abf3c35beeed794ed2dd472e29c8ba5711457aa252a9c1e6" + }, + { + "wikiId": "paels_tears", + "source": "paels_tears.png", + "runtime": "assets/relics/paels_tears.png", + "width": 76, + "height": 79, + "bytes": 7590, + "depth": 8, + "alpha": true, + "sha256": "1ef02bf1d1493906aad671da0970bf5d2daaf57ca0c42aee37b8d7a1f574f4a1" + }, + { + "wikiId": "paels_flesh", + "source": "paels_flesh.png", + "runtime": "assets/relics/paels_flesh.png", + "width": 83, + "height": 82, + "bytes": 7830, + "depth": 8, + "alpha": true, + "sha256": "31414224ae2f5c628001b73736c46dd65c3444851d98e2545a32babd96452864" + }, + { + "wikiId": "paels_blood", + "source": "paels_blood.png", + "runtime": "assets/relics/paels_blood.png", + "width": 81, + "height": 77, + "bytes": 7744, + "depth": 8, + "alpha": true, + "sha256": "8ebd1d007b259e9cf4e3c673992a65a74804c73a0d642078c5f7e7a2546357ee" + }, + { + "wikiId": "paels_tooth", + "source": "paels_tooth.png", + "runtime": "assets/relics/paels_tooth.png", + "width": 69, + "height": 79, + "bytes": 5939, + "depth": 8, + "alpha": true, + "sha256": "47f5c5912abfec2f964ae98fdbeaac7a4b903362c9f8dde882f9d040d79ba6db" + }, + { + "wikiId": "paels_eye", + "source": "paels_eye.png", + "runtime": "assets/relics/paels_eye.png", + "width": 73, + "height": 73, + "bytes": 5024, + "depth": 8, + "alpha": true, + "sha256": "993a5037e4e1a66e0b174a127c706f2984099dd2ef91f459b5a07a626da471af" + }, + { + "wikiId": "paels_wing", + "source": "paels_wing.png", + "runtime": "assets/relics/paels_wing.png", + "width": 83, + "height": 78, + "bytes": 7217, + "depth": 8, + "alpha": true, + "sha256": "ee8145f3c9e377349f14459c42b49f1fadce6def582e604703cc8dbc762bfd36" + }, + { + "wikiId": "paels_claw", + "source": "paels_claw.png", + "runtime": "assets/relics/paels_claw.png", + "width": 75, + "height": 81, + "bytes": 4364, + "depth": 8, + "alpha": true, + "sha256": "f6b0f305402c0b4661c31ccb78d6c5563894790889f72a07a2b92f274d34c52f" + }, + { + "wikiId": "biiig_hug", + "source": "biiig_hug.png", + "runtime": "assets/relics/biiig_hug.png", + "width": 79, + "height": 79, + "bytes": 8590, + "depth": 8, + "alpha": true, + "sha256": "b2be9f4a4dff67325761d43c0c68873f60c69ec57c8302eea4b990cd831a348f" + }, + { + "wikiId": "storybook", + "source": "storybook.png", + "runtime": "assets/relics/storybook.png", + "width": 73, + "height": 77, + "bytes": 6422, + "depth": 8, + "alpha": true, + "sha256": "01b0177a9d4fd2fb28b073f8a6dc525d4b2716691180012d4d0204fdfedf6f27" + }, + { + "wikiId": "toasty_mittens", + "source": "toasty_mittens.png", + "runtime": "assets/relics/toasty_mittens.png", + "width": 81, + "height": 77, + "bytes": 7792, + "depth": 8, + "alpha": true, + "sha256": "301583435ebba4d4cb6606ac145ed3c1cd6f6ccc67fa9345e131012ecb4a10e3" + }, + { + "wikiId": "golden_compass", + "source": "golden_compass.png", + "runtime": "assets/relics/golden_compass.png", + "width": 78, + "height": 73, + "bytes": 8894, + "depth": 8, + "alpha": true, + "sha256": "a3fde88793b07d150e382f8536e313bc534282d4ae7b0fd8bdfdbbb2a8d8cb60" + }, + { + "wikiId": "seal_of_gold", + "source": "seal_of_gold.png", + "runtime": "assets/relics/seal_of_gold.png", + "width": 77, + "height": 78, + "bytes": 7204, + "depth": 8, + "alpha": true, + "sha256": "0e9a3f4a0450802b2b6fa31e4d05d756348ee2ad7150ef6f80c34ad74f0b899e" + }, + { + "wikiId": "yummy_cookie", + "source": "yummy_cookie_ironclad.png", + "runtime": "assets/relics/yummy_cookie.png", + "width": 79, + "height": 74, + "bytes": 8499, + "depth": 8, + "alpha": true, + "sha256": "0802618198a3f3f6d6c71cd52290996706d5e5a2c6119dc5c3207529fd4b9cb0" + }, + { + "wikiId": "pumpkin_candle", + "source": "pumpkin_candle.png", + "runtime": "assets/relics/pumpkin_candle.png", + "width": 81, + "height": 76, + "bytes": 7532, + "depth": 8, + "alpha": true, + "sha256": "aada5db33a7d8441fe9d5e3fe97c3e82aa4d92fbbdca315074824281dcb237c4" + }, + { + "wikiId": "very_hot_cocoa", + "source": "very_hot_cocoa.png", + "runtime": "assets/relics/very_hot_cocoa.png", + "width": 81, + "height": 80, + "bytes": 7690, + "depth": 8, + "alpha": true, + "sha256": "4287fd7f352cacc5e307bc1cd7aca857907b5fc105d0748878e5a1b0f1f06208" + }, + { + "wikiId": "toy_box", + "source": "toy_box.png", + "runtime": "assets/relics/toy_box.png", + "width": 82, + "height": 78, + "bytes": 8576, + "depth": 8, + "alpha": true, + "sha256": "2392c41c607bf122ae7f7c0ce3f1bd809d3c469a346b5ea42f8aaf2d047a20e4" + }, + { + "wikiId": "nutritious_soup", + "source": "nutritious_soup.png", + "runtime": "assets/relics/nutritious_soup.png", + "width": 80, + "height": 73, + "bytes": 8375, + "depth": 8, + "alpha": true, + "sha256": "779c863291178a267cfce8aa7228415b1c13af872a35af42a99f148de233739a" + }, + { + "wikiId": "looming_fruit", + "source": "looming_fruit_2.png", + "runtime": "assets/relics/looming_fruit.png", + "width": 80, + "height": 78, + "bytes": 8357, + "depth": 8, + "alpha": true, + "sha256": "e103042a32053bfee08119395134e8012abdde1bd6942d024253803d1d71d156" + }, + { + "wikiId": "blessed_antler", + "source": "blessed_antler.png", + "runtime": "assets/relics/blessed_antler.png", + "width": 77, + "height": 80, + "bytes": 8151, + "depth": 8, + "alpha": true, + "sha256": "9d69e5099dd2633676e2f5ee272c73a9ed25a094fc623bc8b20cbd133e24af74" + }, + { + "wikiId": "beautiful_bracelet", + "source": "beautiful_bracelet.png", + "runtime": "assets/relics/beautiful_bracelet.png", + "width": 79, + "height": 78, + "bytes": 7662, + "depth": 8, + "alpha": true, + "sha256": "c75f3bcb159ff5ce9c2ee1c6d6a4ba166f49a5343fa295ba540eb38b67e519b0" + }, + { + "wikiId": "delicate_frond", + "source": "delicate_frond.png", + "runtime": "assets/relics/delicate_frond.png", + "width": 79, + "height": 77, + "bytes": 6737, + "depth": 8, + "alpha": true, + "sha256": "47fce2993c7bad247654b9943200ecda94551c84b5647e1900296f920c52f5d0" + }, + { + "wikiId": "glitter", + "source": "glitter.png", + "runtime": "assets/relics/glitter.png", + "width": 81, + "height": 80, + "bytes": 8304, + "depth": 8, + "alpha": true, + "sha256": "9399b23ce2a115a364d4082c7ee3f0dc159fc3f55d11f24078f03ad480f801aa" + }, + { + "wikiId": "fur_coat", + "source": "fur_coat.png", + "runtime": "assets/relics/fur_coat.png", + "width": 81, + "height": 80, + "bytes": 10183, + "depth": 8, + "alpha": true, + "sha256": "f679624de0d1120ad27406b5cc9f82254116df7a906a508d899f01fb78f37fa1" + }, + { + "wikiId": "signet_ring", + "source": "signet_ring.png", + "runtime": "assets/relics/signet_ring.png", + "width": 63, + "height": 80, + "bytes": 6190, + "depth": 8, + "alpha": true, + "sha256": "bff8910dd585f12edf8ba6c783561a8ebc38d501c067a0eb481879a00f720bf9" + }, + { + "wikiId": "brilliant_scarf", + "source": "brilliant_scarf.png", + "runtime": "assets/relics/brilliant_scarf.png", + "width": 79, + "height": 79, + "bytes": 7458, + "depth": 8, + "alpha": true, + "sha256": "08ed5ba0254fa7c2787ab4d081d0f48f259948e2dfe42b406644fed3f8bbcb44" + }, + { + "wikiId": "jewelry_box", + "source": "jewelry_box.png", + "runtime": "assets/relics/jewelry_box.png", + "width": 79, + "height": 68, + "bytes": 7348, + "depth": 8, + "alpha": true, + "sha256": "50d088f9fc04da89156d02d88752fe5d81688e8b04ba69dea9994a09def6a97a" + }, + { + "wikiId": "diamond_diadem", + "source": "diamond_diadem.png", + "runtime": "assets/relics/diamond_diadem.png", + "width": 77, + "height": 63, + "bytes": 6007, + "depth": 8, + "alpha": true, + "sha256": "852039d98f8511dfb005764319ec8daf0fd91fd4617495096ccd942400adaf6b" + }, + { + "wikiId": "sai", + "source": "sai.png", + "runtime": "assets/relics/sai.png", + "width": 78, + "height": 81, + "bytes": 5600, + "depth": 8, + "alpha": true, + "sha256": "af7463a24aedd51cfa3213d3f7ce59fb28742d83df47025173f04d80142c37be" + }, + { + "wikiId": "spiked_gauntlets", + "source": "spiked_gauntlets.png", + "runtime": "assets/relics/spiked_gauntlets.png", + "width": 75, + "height": 80, + "bytes": 8148, + "depth": 8, + "alpha": true, + "sha256": "8d0c9f2da2068bc92c4d5f4be1ba40013121ee03aeac0da92716d052dc199e16" + }, + { + "wikiId": "claws", + "source": "claws.png", + "runtime": "assets/relics/claws.png", + "width": 75, + "height": 80, + "bytes": 5630, + "depth": 8, + "alpha": true, + "sha256": "2e10948264d05bdc479aef17fdd920ffac539817205765fe931f7b06757cf3bc" + }, + { + "wikiId": "meat_cleaver", + "source": "meat_cleaver.png", + "runtime": "assets/relics/meat_cleaver.png", + "width": 82, + "height": 80, + "bytes": 4243, + "depth": 8, + "alpha": true, + "sha256": "56ae46bb753af86fc1948755bb027da473d1e03a83f1e0ee0a578854b83fbdf6" + }, + { + "wikiId": "tri_boomerang", + "source": "tri_boomerang.png", + "runtime": "assets/relics/tri_boomerang.png", + "width": 78, + "height": 81, + "bytes": 5666, + "depth": 8, + "alpha": true, + "sha256": "97a815de7a64e476b2ce21d6158ae336e1f186883898ff54463cea40d8721da9" + }, + { + "wikiId": "crossbow", + "source": "crossbow.png", + "runtime": "assets/relics/crossbow.png", + "width": 81, + "height": 62, + "bytes": 7310, + "depth": 8, + "alpha": true, + "sha256": "6187a77f4c6a4971a759b4a1d6ef7deaf768f889020d40b9d4bbb1beff6509d0" + }, + { + "wikiId": "tanxs_whistle", + "source": "tanxs_whistle.png", + "runtime": "assets/relics/tanxs_whistle.png", + "width": 80, + "height": 81, + "bytes": 6009, + "depth": 8, + "alpha": true, + "sha256": "9f2ff889ec077848956d9908abd6103d7ef520b7d63b1dd9cf29d2c754a2339c" + }, + { + "wikiId": "iron_club", + "source": "iron_club.png", + "runtime": "assets/relics/iron_club.png", + "width": 76, + "height": 82, + "bytes": 5576, + "depth": 8, + "alpha": true, + "sha256": "5df582548df6ddbdd8df05bbb98bda67ee487baef2fc9eb85fe5f561ab52cbb9" + }, + { + "wikiId": "throwing_axe", + "source": "throwing_axe.png", + "runtime": "assets/relics/throwing_axe.png", + "width": 80, + "height": 79, + "bytes": 5003, + "depth": 8, + "alpha": true, + "sha256": "2cb0edd32ef0eebd475762b25c6bdbe74ad825514c58e2fe3e52a86bd188b891" + }, + { + "wikiId": "war_hammer", + "source": "war_hammer.png", + "runtime": "assets/relics/war_hammer.png", + "width": 80, + "height": 78, + "bytes": 5349, + "depth": 8, + "alpha": true, + "sha256": "e3208cc788cb12c6df02c57f40da9c1b5d77c4b35c8e1e2a1a28c8676d57822f" + }, + { + "wikiId": "jeweled_mask", + "source": "jeweled_mask.png", + "runtime": "assets/relics/jeweled_mask.png", + "width": 80, + "height": 73, + "bytes": 7835, + "depth": 8, + "alpha": true, + "sha256": "666add62fd8551e5bb48e5c472b68bf323decfd1523af682ccb769bad1756e19" + }, + { + "wikiId": "whispering_earring", + "source": "whispering_earring.png", + "runtime": "assets/relics/whispering_earring.png", + "width": 81, + "height": 81, + "bytes": 7993, + "depth": 8, + "alpha": true, + "sha256": "ad8f180c8cb5aa50f7d63aae1078516d37db39b2a8b611e1034bfde81c99e17c" + }, + { + "wikiId": "lords_parasol", + "source": "lords_parasol.png", + "runtime": "assets/relics/lords_parasol.png", + "width": 81, + "height": 81, + "bytes": 7980, + "depth": 8, + "alpha": true, + "sha256": "6e9201cc512fb516f9c87eb6b894c8c5eff24af5ac2379b0ed782508514c2ed2" + }, + { + "wikiId": "fiddle", + "source": "fiddle.png", + "runtime": "assets/relics/fiddle.png", + "width": 80, + "height": 81, + "bytes": 5494, + "depth": 8, + "alpha": true, + "sha256": "15d88439ce1921e06e0d440d27bd1b9e34839ff60b485cfd96d6d24c23b6920e" + }, + { + "wikiId": "choices_paradox", + "source": "choices_paradox.png", + "runtime": "assets/relics/choices_paradox.png", + "width": 84, + "height": 81, + "bytes": 9191, + "depth": 8, + "alpha": true, + "sha256": "37a8ab0b7227ec4ed88116a79890296fe2ad5736e6189c2e3cc58f3e5ab12839" + }, + { + "wikiId": "blood_soaked_rose", + "source": "blood_soaked_rose.png", + "runtime": "assets/relics/blood_soaked_rose.png", + "width": 73, + "height": 80, + "bytes": 5546, + "depth": 8, + "alpha": true, + "sha256": "e1178b0a4fd60b0a36c48cdac66646c1c7ff48e99cb629fd4dc724b4e371334f" + }, + { + "wikiId": "preserved_fog", + "source": "preserved_fog.png", + "runtime": "assets/relics/preserved_fog.png", + "width": 69, + "height": 81, + "bytes": 8061, + "depth": 8, + "alpha": true, + "sha256": "950ed9f7fc1b04960acebe60715513f67a8150f49991f00ab6e37c858d85d844" + }, + { + "wikiId": "music_box", + "source": "music_box.png", + "runtime": "assets/relics/music_box.png", + "width": 81, + "height": 81, + "bytes": 7966, + "depth": 8, + "alpha": true, + "sha256": "a8e36a0f6502b4cbcef7880bc26600169839e597c7f59c1db673b36324808066" + }, + { + "wikiId": "sere_talon", + "source": "sere_talon.png", + "runtime": "assets/relics/sere_talon.png", + "width": 81, + "height": 79, + "bytes": 7978, + "depth": 8, + "alpha": true, + "sha256": "121889753fee3c16691a167d8d4c0ce4f54d8d9fcb5f0222e4279e9390e69ca7" + }, + { + "wikiId": "distinguished_cape", + "source": "distinguished_cape.png", + "runtime": "assets/relics/distinguished_cape.png", + "width": 80, + "height": 80, + "bytes": 5828, + "depth": 8, + "alpha": true, + "sha256": "76e0bccf5ba78f43cb471c225afabfd1c2b9f00660dd9665428bde4aabcfd17d" + }, + { + "wikiId": "dusty_tome", + "source": "dusty_tome.png", + "runtime": "assets/relics/dusty_tome.png", + "width": 80, + "height": 76, + "bytes": 7793, + "depth": 8, + "alpha": true, + "sha256": "15f9d3c887c26123919f91159b9fc872eadb8979cd216433b565c0aec3e44f0f" + }, + { + "wikiId": "runic_pyramid", + "source": "runic_pyramid.png", + "runtime": "assets/relics/runic_pyramid.png", + "width": 81, + "height": 72, + "bytes": 6485, + "depth": 8, + "alpha": true, + "sha256": "c0abe039260e62c4a7f1f488cf99f8dd3df9caae179dd04b3eb362573ec59c9a" + }, + { + "wikiId": "black_star", + "source": "black_star.png", + "runtime": "assets/relics/black_star.png", + "width": 81, + "height": 82, + "bytes": 5619, + "depth": 8, + "alpha": true, + "sha256": "8b04ea4e4c8a24535de25346fb782f3eaf77d5eba230dfb097d5f5b8edb85c67" + }, + { + "wikiId": "empty_cage", + "source": "empty_cage.png", + "runtime": "assets/relics/empty_cage.png", + "width": 62, + "height": 79, + "bytes": 6599, + "depth": 8, + "alpha": true, + "sha256": "04cb56f647559f75b28d897a93a25ad12d409201432613134fe6f1903fd00f8a" + }, + { + "wikiId": "ectoplasm", + "source": "ectoplasm.png", + "runtime": "assets/relics/ectoplasm.png", + "width": 77, + "height": 63, + "bytes": 6117, + "depth": 8, + "alpha": true, + "sha256": "020d92067bb95f0f8d7bb889795a1c357d4bde56715ae07127d4cb2b8f9afeb1" + }, + { + "wikiId": "pandoras_box", + "source": "pandoras_box.png", + "runtime": "assets/relics/pandoras_box.png", + "width": 79, + "height": 79, + "bytes": 8118, + "depth": 8, + "alpha": true, + "sha256": "4656f0a580461dce22031a1994d59b032bdfe0d3f43e2d24ad53f1537987409a" + }, + { + "wikiId": "velvet_choker", + "source": "velvet_choker.png", + "runtime": "assets/relics/velvet_choker.png", + "width": 75, + "height": 74, + "bytes": 5199, + "depth": 8, + "alpha": true, + "sha256": "554328275385d693c2ee7caad0a99738b80df33f1762317d949f15165e5aab76" + }, + { + "wikiId": "sozu", + "source": "sozu.png", + "runtime": "assets/relics/sozu.png", + "width": 76, + "height": 79, + "bytes": 5601, + "depth": 8, + "alpha": true, + "sha256": "142532dfe95b523c77a9ec9089527737a24bf624b3f965cee88374b5c0f2853e" + }, + { + "wikiId": "philosophers_stone", + "source": "philosophers_stone.png", + "runtime": "assets/relics/philosophers_stone.png", + "width": 78, + "height": 74, + "bytes": 6650, + "depth": 8, + "alpha": true, + "sha256": "0c251db0bf80d64d7f3b9099ec39d449ed5d8708397be442b1283f0ebe244416" + }, + { + "wikiId": "astrolabe", + "source": "astrolabe.png", + "runtime": "assets/relics/astrolabe.png", + "width": 78, + "height": 78, + "bytes": 6548, + "depth": 8, + "alpha": true, + "sha256": "aeba41731d1f24e24989234e1ab122d0f5ef0dccc46f9f3d7543440ba8075d05" + }, + { + "wikiId": "snecko_eye", + "source": "snecko_eye.png", + "runtime": "assets/relics/snecko_eye.png", + "width": 81, + "height": 80, + "bytes": 5651, + "depth": 8, + "alpha": true, + "sha256": "700848be9e2cf6d8781f65db21392d242374bd531fd777932bcf0312c45d535b" + }, + { + "wikiId": "calling_bell", + "source": "calling_bell.png", + "runtime": "assets/relics/calling_bell.png", + "width": 78, + "height": 80, + "bytes": 8215, + "depth": 8, + "alpha": true, + "sha256": "e9525274612afb288945f70eed7787967e656f20bbdcec4d35414dd9966c8852" + }, + { + "wikiId": "fake_orichalcum", + "source": "fake_orichalcum.png", + "runtime": "assets/relics/fake_orichalcum.png", + "width": 82, + "height": 65, + "bytes": 6671, + "depth": 8, + "alpha": true, + "sha256": "17a4813fa77fe1143cda0563a5cfcb018e04ac7688369d6704972b01bcb42a32" + }, + { + "wikiId": "mr_struggles", + "source": "mr_struggles.png", + "runtime": "assets/relics/mr_struggles.png", + "width": 78, + "height": 81, + "bytes": 7422, + "depth": 8, + "alpha": true, + "sha256": "02c5ea06b237309683bf7567392166b075e59699109ea1172d594198ba14d77e" + }, + { + "wikiId": "bing_bong", + "source": "bing_bong.png", + "runtime": "assets/relics/bing_bong.png", + "width": 77, + "height": 78, + "bytes": 8671, + "depth": 8, + "alpha": true, + "sha256": "7ec0e8aa790e2f408eaed979443a8955b28bf6e5adb63d7cd8ddff8a8805898d" + }, + { + "wikiId": "dream_catcher", + "source": "dream_catcher.png", + "runtime": "assets/relics/dream_catcher.png", + "width": 79, + "height": 82, + "bytes": 8486, + "depth": 8, + "alpha": true, + "sha256": "436ab41c68b63f6b9b9fc6e0320a1a9c3721bcf64a0ac5ad1028c09fb6e8f519" + }, + { + "wikiId": "fake_strike_dummy", + "source": "fake_strike_dummy.png", + "runtime": "assets/relics/fake_strike_dummy.png", + "width": 81, + "height": 80, + "bytes": 10755, + "depth": 8, + "alpha": true, + "sha256": "2de722a772b8f0cd9ac6089d7ce8806294a420dd5b7a966522c04e1278ffa20c" + }, + { + "wikiId": "big_mushroom", + "source": "big_mushroom.png", + "runtime": "assets/relics/big_mushroom.png", + "width": 82, + "height": 78, + "bytes": 7337, + "depth": 8, + "alpha": true, + "sha256": "d25610bf6edb0951e55d1c7908d69c0cfc3505e6513479b8b376bd0995ba82af" + }, + { + "wikiId": "the_boot", + "source": "the_boot.png", + "runtime": "assets/relics/the_boot.png", + "width": 81, + "height": 67, + "bytes": 7400, + "depth": 8, + "alpha": true, + "sha256": "5d62f1b57bb13482cbce1c105eb06261ab2b10cf896dc23b895188a287cc304c" + }, + { + "wikiId": "fragrant_mushroom", + "source": "fragrant_mushroom.png", + "runtime": "assets/relics/fragrant_mushroom.png", + "width": 74, + "height": 83, + "bytes": 6051, + "depth": 8, + "alpha": true, + "sha256": "f068807c85b79bcd6f2234b8b39c9017a08419c865db17b0f7d6cdee05fed82e" + }, + { + "wikiId": "fresnel_lens", + "source": "fresnel_lens.png", + "runtime": "assets/relics/fresnel_lens.png", + "width": 63, + "height": 82, + "bytes": 10589, + "depth": 8, + "alpha": true, + "sha256": "7519a026cd671be5e3e6a9eae66bc27c4d64cef75b9cbe53afa3f681a419fc4d" + }, + { + "wikiId": "daughter_of_the_wind", + "source": "daughter_of_the_wind.png", + "runtime": "assets/relics/daughter_of_the_wind.png", + "width": 75, + "height": 81, + "bytes": 9006, + "depth": 8, + "alpha": true, + "sha256": "b94b3e19b2b1936c3e8683cbd8bd27b2d6b9ae40d1d1c483c32b4e343e0e2db1" + }, + { + "wikiId": "fake_venerable_tea_set", + "source": "fake_venerable_tea_set.png", + "runtime": "assets/relics/fake_venerable_tea_set.png", + "width": 81, + "height": 79, + "bytes": 10067, + "depth": 8, + "alpha": true, + "sha256": "689ce56a8421bb8ec25852cbd83b816984c781cebf9effe99fbf233012191a2f" + }, + { + "wikiId": "bone_tea", + "source": "bone_tea.png", + "runtime": "assets/relics/bone_tea.png", + "width": 77, + "height": 56, + "bytes": 6791, + "depth": 8, + "alpha": true, + "sha256": "59ec4683c2da48edc13d5b3398a63e63d8005b6cf4c3d07724b278bdd1e7d45a" + }, + { + "wikiId": "darkstone_periapt", + "source": "darkstone_periapt.png", + "runtime": "assets/relics/darkstone_periapt.png", + "width": 78, + "height": 81, + "bytes": 8875, + "depth": 8, + "alpha": true, + "sha256": "356fe89393f165732b1a4bc7776ac1075084b10edb4084b3fdcc84abdc87892f" + }, + { + "wikiId": "pollinous_core", + "source": "pollinous_core.png", + "runtime": "assets/relics/pollinous_core.png", + "width": 78, + "height": 78, + "bytes": 8880, + "depth": 8, + "alpha": true, + "sha256": "435fc8143f157f0c51d4af81212e73d5032803a91bcca6b42ff17d350205980f" + }, + { + "wikiId": "maw_bank", + "source": "maw_bank.png", + "runtime": "assets/relics/maw_bank.png", + "width": 83, + "height": 64, + "bytes": 5490, + "depth": 8, + "alpha": true, + "sha256": "1443b2b655331ec1e6840a5367e8d84f08ba4a10383e6cc86582ea07a55fe659" + }, + { + "wikiId": "fake_happy_flower", + "source": "fake_happy_flower.png", + "runtime": "assets/relics/fake_happy_flower.png", + "width": 54, + "height": 81, + "bytes": 7346, + "depth": 8, + "alpha": true, + "sha256": "a1ca960f31f5b0932e0860fa2caafd3f7507e36eed1a84a63667ac8cb2e6c0d3" + }, + { + "wikiId": "fake_lees_waffle", + "source": "fake_lees_waffle.png", + "runtime": "assets/relics/fake_lees_waffle.png", + "width": 75, + "height": 82, + "bytes": 10442, + "depth": 8, + "alpha": true, + "sha256": "54e9eaeb9aad06201ef767ecb3ece1a9b6f6f98a780303141f2207cb9f5add44" + }, + { + "wikiId": "history_course", + "source": "history_course.png", + "runtime": "assets/relics/history_course.png", + "width": 81, + "height": 66, + "bytes": 6997, + "depth": 8, + "alpha": true, + "sha256": "2c4c07af26e8a3356e575a8ded8087bea93aac57f87df14c1a2cda1bb8b60c38" + }, + { + "wikiId": "fake_mango", + "source": "fake_mango.png", + "runtime": "assets/relics/fake_mango.png", + "width": 81, + "height": 77, + "bytes": 10329, + "depth": 8, + "alpha": true, + "sha256": "91a8a2a2eaa4dd4182fa8f3a46372493cfaa708a520c8a8939c34f0b09a2106e" + }, + { + "wikiId": "fake_anchor", + "source": "fake_anchor.png", + "runtime": "assets/relics/fake_anchor.png", + "width": 74, + "height": 81, + "bytes": 8325, + "depth": 8, + "alpha": true, + "sha256": "b5177fb872f16a47ee51a080038c6bad73ff733779454ae4d1ee1a8f51beac9c" + }, + { + "wikiId": "lost_wisp", + "source": "lost_wisp.png", + "runtime": "assets/relics/lost_wisp.png", + "width": 55, + "height": 79, + "bytes": 7568, + "depth": 8, + "alpha": true, + "sha256": "2bf76657ff3f099cc9340df94d0278ecb38b279ee1d5e2da970f29707e5987c8" + }, + { + "wikiId": "fake_merchants_rug", + "source": "fake_merchants_rug.png", + "runtime": "assets/relics/fake_merchants_rug.png", + "width": 81, + "height": 78, + "bytes": 7462, + "depth": 8, + "alpha": true, + "sha256": "5ffd297d07a96f8d69766f1359b074ce7fd9665a5b380fa2592da0ad38a31ab7" + }, + { + "wikiId": "sword_of_stone", + "source": "sword_of_stone.png", + "runtime": "assets/relics/sword_of_stone.png", + "width": 72, + "height": 80, + "bytes": 6107, + "depth": 8, + "alpha": true, + "sha256": "1e7d914b756161c323d2e6fec4641c7004b05d09f3ac60d626e5263debb09d4e" + }, + { + "wikiId": "hand_drill", + "source": "hand_drill.png", + "runtime": "assets/relics/hand_drill.png", + "width": 81, + "height": 80, + "bytes": 6727, + "depth": 8, + "alpha": true, + "sha256": "4074fb1993bcdf826998e4c8e8b75c62bf75451872c70a9b8cd895ca68c78734" + }, + { + "wikiId": "chosen_cheese", + "source": "chosen_cheese.png", + "runtime": "assets/relics/chosen_cheese.png", + "width": 81, + "height": 73, + "bytes": 6214, + "depth": 8, + "alpha": true, + "sha256": "26b9b6ad3e2b7dc75b3875beaac0846cd559f1bd914564a4353658c7b816c787" + }, + { + "wikiId": "royal_poison", + "source": "royal_poison.png", + "runtime": "assets/relics/royal_poison.png", + "width": 81, + "height": 74, + "bytes": 9043, + "depth": 8, + "alpha": true, + "sha256": "74ce61226a6c807d743af17b5a09489c09635a88d79ee2dd399462623d8bd122" + }, + { + "wikiId": "wongo_customer_appreciation_badge", + "source": "wongo_customer_appreciation_badge.png", + "runtime": "assets/relics/wongo_customer_appreciation_badge.png", + "width": 81, + "height": 72, + "bytes": 6031, + "depth": 8, + "alpha": true, + "sha256": "a64191f055a1b8ca08834420298e48d00202cacb1e84f3822d7f2ed0c41961fb" + }, + { + "wikiId": "wongos_mystery_ticket", + "source": "wongos_mystery_ticket.png", + "runtime": "assets/relics/wongos_mystery_ticket.png", + "width": 81, + "height": 80, + "bytes": 5807, + "depth": 8, + "alpha": true, + "sha256": "c57c94f6124b6c3b770d470f0ffa796f2fc43d532d19020c65527242e69200eb" + }, + { + "wikiId": "tea_of_discourtesy", + "source": "tea_of_discourtesy.png", + "runtime": "assets/relics/tea_of_discourtesy.png", + "width": 77, + "height": 56, + "bytes": 6749, + "depth": 8, + "alpha": true, + "sha256": "a7621412f650b2ec044d15f087a3cb8c3f68366815b69461d34fad5d36224c49" + }, + { + "wikiId": "fake_blood_vial", + "source": "fake_blood_vial.png", + "runtime": "assets/relics/fake_blood_vial.png", + "width": 80, + "height": 81, + "bytes": 7906, + "depth": 8, + "alpha": true, + "sha256": "03663890031196657a57c47a3f7f94119957e8b832a5c362bad3451a639637c3" + }, + { + "wikiId": "forgotten_soul", + "source": "lost_soul.png", + "runtime": "assets/relics/forgotten_soul.png", + "width": 75, + "height": 80, + "bytes": 7405, + "depth": 8, + "alpha": true, + "sha256": "11ca6eccc1526a3e842a00cf799aef2706bf5210269ad24c8f4c6dd305e46eec" + }, + { + "wikiId": "byrdpip", + "source": "byrdpip.png", + "runtime": "assets/relics/byrdpip.png", + "width": 81, + "height": 72, + "bytes": 7173, + "depth": 8, + "alpha": true, + "sha256": "25ba16ec451ca698a80727805e6775456e023519de9e2f63bf44271df0e52642" + }, + { + "wikiId": "fake_snecko_eye", + "source": "fake_snecko_eye.png", + "runtime": "assets/relics/fake_snecko_eye.png", + "width": 80, + "height": 81, + "bytes": 10878, + "depth": 8, + "alpha": true, + "sha256": "5513ee9db0faaec2e5548c9d4c561869874aad1ffe8b1541dce37a77ada0b859" + }, + { + "wikiId": "ember_tea", + "source": "ember_tea.png", + "runtime": "assets/relics/ember_tea.png", + "width": 77, + "height": 71, + "bytes": 6484, + "depth": 8, + "alpha": true, + "sha256": "cb7e6260e4f6b6155b8ce26b3b207205a2a737f1907ab142494e54bf01d6c67f" + }, + { + "wikiId": "sword_of_jade", + "source": "sword_of_jade.png", + "runtime": "assets/relics/sword_of_jade.png", + "width": 72, + "height": 80, + "bytes": 6455, + "depth": 8, + "alpha": true, + "sha256": "b4a437a54bdb424a629cefd3a436a86443d134205339fc563a32db8e40d8fc1c" + }, + { + "wikiId": "circlet", + "source": "circlet.png", + "runtime": "assets/relics/circlet.png", + "width": 82, + "height": 53, + "bytes": 4357, + "depth": 8, + "alpha": true, + "sha256": "19362699cfe501c24597cdbe03bb6827f3c114d6b162221e7d70ed567e97600c" + }, + { + "wikiId": "dowsing_rod", + "source": "dowsing_rod.png", + "runtime": "assets/relics/dowsing_rod.png", + "width": 79, + "height": 79, + "bytes": 5041, + "depth": 8, + "alpha": true, + "sha256": "081ba6552b04c75a8f480a700c423c4ac15d95a3414783cc4d4c15e7162d7dc9" + }, + { + "wikiId": "neows_sacrifice", + "source": "neows_sacrifice.png", + "runtime": "assets/relics/neows_sacrifice.png", + "width": 81, + "height": 80, + "bytes": 11221, + "depth": 8, + "alpha": true, + "sha256": "b5e0ae19d81e4b8c5356abdc6cdbecf8911a8dfcba242379535a892ac97bf3ce" + } + ], + "notes": [ + "美味饼干使用铁甲战士版本;四个其他角色版本仍保留在来源图集中。", + "遗忘之魂映射 lost_soul.png;布质果实映射 looming_fruit_2.png。", + "图标是用户提供的原游戏拆包图片,逐字节复制,未重绘。" + ] +} \ No newline at end of file diff --git a/mengsan/assets/relics/massive_scroll.png b/mengsan/assets/relics/massive_scroll.png new file mode 100644 index 0000000..ff96a13 Binary files /dev/null and b/mengsan/assets/relics/massive_scroll.png differ diff --git a/mengsan/assets/relics/maw_bank.png b/mengsan/assets/relics/maw_bank.png new file mode 100644 index 0000000..5ff55e2 Binary files /dev/null and b/mengsan/assets/relics/maw_bank.png differ diff --git a/mengsan/assets/relics/meal_ticket.png b/mengsan/assets/relics/meal_ticket.png new file mode 100644 index 0000000..b075bef Binary files /dev/null and b/mengsan/assets/relics/meal_ticket.png differ diff --git a/mengsan/assets/relics/meat_cleaver.png b/mengsan/assets/relics/meat_cleaver.png new file mode 100644 index 0000000..e5995c3 Binary files /dev/null and b/mengsan/assets/relics/meat_cleaver.png differ diff --git a/mengsan/assets/relics/meat_on_the_bone.png b/mengsan/assets/relics/meat_on_the_bone.png new file mode 100644 index 0000000..a172222 Binary files /dev/null and b/mengsan/assets/relics/meat_on_the_bone.png differ diff --git a/mengsan/assets/relics/membership_card.png b/mengsan/assets/relics/membership_card.png new file mode 100644 index 0000000..ebfb95e Binary files /dev/null and b/mengsan/assets/relics/membership_card.png differ diff --git a/mengsan/assets/relics/mercury_hourglass.png b/mengsan/assets/relics/mercury_hourglass.png new file mode 100644 index 0000000..55bac68 Binary files /dev/null and b/mengsan/assets/relics/mercury_hourglass.png differ diff --git a/mengsan/assets/relics/metronome.png b/mengsan/assets/relics/metronome.png new file mode 100644 index 0000000..b51fa4e Binary files /dev/null and b/mengsan/assets/relics/metronome.png differ diff --git a/mengsan/assets/relics/mini_regent.png b/mengsan/assets/relics/mini_regent.png new file mode 100644 index 0000000..f028f91 Binary files /dev/null and b/mengsan/assets/relics/mini_regent.png differ diff --git a/mengsan/assets/relics/miniature_cannon.png b/mengsan/assets/relics/miniature_cannon.png new file mode 100644 index 0000000..179439b Binary files /dev/null and b/mengsan/assets/relics/miniature_cannon.png differ diff --git a/mengsan/assets/relics/miniature_tent.png b/mengsan/assets/relics/miniature_tent.png new file mode 100644 index 0000000..3ed7c43 Binary files /dev/null and b/mengsan/assets/relics/miniature_tent.png differ diff --git a/mengsan/assets/relics/molten_egg.png b/mengsan/assets/relics/molten_egg.png new file mode 100644 index 0000000..9f60380 Binary files /dev/null and b/mengsan/assets/relics/molten_egg.png differ diff --git a/mengsan/assets/relics/mr_struggles.png b/mengsan/assets/relics/mr_struggles.png new file mode 100644 index 0000000..dbc221c Binary files /dev/null and b/mengsan/assets/relics/mr_struggles.png differ diff --git a/mengsan/assets/relics/mummified_hand.png b/mengsan/assets/relics/mummified_hand.png new file mode 100644 index 0000000..2c3d572 Binary files /dev/null and b/mengsan/assets/relics/mummified_hand.png differ diff --git a/mengsan/assets/relics/music_box.png b/mengsan/assets/relics/music_box.png new file mode 100644 index 0000000..eba7233 Binary files /dev/null and b/mengsan/assets/relics/music_box.png differ diff --git a/mengsan/assets/relics/mystic_lighter.png b/mengsan/assets/relics/mystic_lighter.png new file mode 100644 index 0000000..bbf3bed Binary files /dev/null and b/mengsan/assets/relics/mystic_lighter.png differ diff --git a/mengsan/assets/relics/neows_bones.png b/mengsan/assets/relics/neows_bones.png new file mode 100644 index 0000000..8a41a01 Binary files /dev/null and b/mengsan/assets/relics/neows_bones.png differ diff --git a/mengsan/assets/relics/neows_sacrifice.png b/mengsan/assets/relics/neows_sacrifice.png new file mode 100644 index 0000000..40b7142 Binary files /dev/null and b/mengsan/assets/relics/neows_sacrifice.png differ diff --git a/mengsan/assets/relics/neows_talisman.png b/mengsan/assets/relics/neows_talisman.png new file mode 100644 index 0000000..45ad2f6 Binary files /dev/null and b/mengsan/assets/relics/neows_talisman.png differ diff --git a/mengsan/assets/relics/neows_torment.png b/mengsan/assets/relics/neows_torment.png new file mode 100644 index 0000000..8fbc7a9 Binary files /dev/null and b/mengsan/assets/relics/neows_torment.png differ diff --git a/mengsan/assets/relics/new_leaf.png b/mengsan/assets/relics/new_leaf.png new file mode 100644 index 0000000..15685d9 Binary files /dev/null and b/mengsan/assets/relics/new_leaf.png differ diff --git a/mengsan/assets/relics/ninja_scroll.png b/mengsan/assets/relics/ninja_scroll.png new file mode 100644 index 0000000..1e13611 Binary files /dev/null and b/mengsan/assets/relics/ninja_scroll.png differ diff --git a/mengsan/assets/relics/nunchaku.png b/mengsan/assets/relics/nunchaku.png new file mode 100644 index 0000000..1a45ed2 Binary files /dev/null and b/mengsan/assets/relics/nunchaku.png differ diff --git a/mengsan/assets/relics/nutritious_oyster.png b/mengsan/assets/relics/nutritious_oyster.png new file mode 100644 index 0000000..2c31a19 Binary files /dev/null and b/mengsan/assets/relics/nutritious_oyster.png differ diff --git a/mengsan/assets/relics/nutritious_soup.png b/mengsan/assets/relics/nutritious_soup.png new file mode 100644 index 0000000..b802581 Binary files /dev/null and b/mengsan/assets/relics/nutritious_soup.png differ diff --git a/mengsan/assets/relics/oddly_smooth_stone.png b/mengsan/assets/relics/oddly_smooth_stone.png new file mode 100644 index 0000000..2c31e78 Binary files /dev/null and b/mengsan/assets/relics/oddly_smooth_stone.png differ diff --git a/mengsan/assets/relics/old_coin.png b/mengsan/assets/relics/old_coin.png new file mode 100644 index 0000000..e894d97 Binary files /dev/null and b/mengsan/assets/relics/old_coin.png differ diff --git a/mengsan/assets/relics/orange_dough.png b/mengsan/assets/relics/orange_dough.png new file mode 100644 index 0000000..5cdc37b Binary files /dev/null and b/mengsan/assets/relics/orange_dough.png differ diff --git a/mengsan/assets/relics/orichalcum.png b/mengsan/assets/relics/orichalcum.png new file mode 100644 index 0000000..1416fe3 Binary files /dev/null and b/mengsan/assets/relics/orichalcum.png differ diff --git a/mengsan/assets/relics/ornamental_fan.png b/mengsan/assets/relics/ornamental_fan.png new file mode 100644 index 0000000..623ebc2 Binary files /dev/null and b/mengsan/assets/relics/ornamental_fan.png differ diff --git a/mengsan/assets/relics/orrery.png b/mengsan/assets/relics/orrery.png new file mode 100644 index 0000000..2a5b8a3 Binary files /dev/null and b/mengsan/assets/relics/orrery.png differ diff --git a/mengsan/assets/relics/paels_blood.png b/mengsan/assets/relics/paels_blood.png new file mode 100644 index 0000000..85fc978 Binary files /dev/null and b/mengsan/assets/relics/paels_blood.png differ diff --git a/mengsan/assets/relics/paels_claw.png b/mengsan/assets/relics/paels_claw.png new file mode 100644 index 0000000..09378c7 Binary files /dev/null and b/mengsan/assets/relics/paels_claw.png differ diff --git a/mengsan/assets/relics/paels_eye.png b/mengsan/assets/relics/paels_eye.png new file mode 100644 index 0000000..a76e83a Binary files /dev/null and b/mengsan/assets/relics/paels_eye.png differ diff --git a/mengsan/assets/relics/paels_flesh.png b/mengsan/assets/relics/paels_flesh.png new file mode 100644 index 0000000..5851c47 Binary files /dev/null and b/mengsan/assets/relics/paels_flesh.png differ diff --git a/mengsan/assets/relics/paels_growth.png b/mengsan/assets/relics/paels_growth.png new file mode 100644 index 0000000..1cb08d2 Binary files /dev/null and b/mengsan/assets/relics/paels_growth.png differ diff --git a/mengsan/assets/relics/paels_horn.png b/mengsan/assets/relics/paels_horn.png new file mode 100644 index 0000000..2cbaf97 Binary files /dev/null and b/mengsan/assets/relics/paels_horn.png differ diff --git a/mengsan/assets/relics/paels_legion.png b/mengsan/assets/relics/paels_legion.png new file mode 100644 index 0000000..585687c Binary files /dev/null and b/mengsan/assets/relics/paels_legion.png differ diff --git a/mengsan/assets/relics/paels_tears.png b/mengsan/assets/relics/paels_tears.png new file mode 100644 index 0000000..1d7a18c Binary files /dev/null and b/mengsan/assets/relics/paels_tears.png differ diff --git a/mengsan/assets/relics/paels_tooth.png b/mengsan/assets/relics/paels_tooth.png new file mode 100644 index 0000000..45662c8 Binary files /dev/null and b/mengsan/assets/relics/paels_tooth.png differ diff --git a/mengsan/assets/relics/paels_wing.png b/mengsan/assets/relics/paels_wing.png new file mode 100644 index 0000000..15df51e Binary files /dev/null and b/mengsan/assets/relics/paels_wing.png differ diff --git a/mengsan/assets/relics/pandoras_box.png b/mengsan/assets/relics/pandoras_box.png new file mode 100644 index 0000000..d796bb9 Binary files /dev/null and b/mengsan/assets/relics/pandoras_box.png differ diff --git a/mengsan/assets/relics/pantograph.png b/mengsan/assets/relics/pantograph.png new file mode 100644 index 0000000..e3927f9 Binary files /dev/null and b/mengsan/assets/relics/pantograph.png differ diff --git a/mengsan/assets/relics/paper_krane.png b/mengsan/assets/relics/paper_krane.png new file mode 100644 index 0000000..808ecb4 Binary files /dev/null and b/mengsan/assets/relics/paper_krane.png differ diff --git a/mengsan/assets/relics/paper_phrog.png b/mengsan/assets/relics/paper_phrog.png new file mode 100644 index 0000000..b94911a Binary files /dev/null and b/mengsan/assets/relics/paper_phrog.png differ diff --git a/mengsan/assets/relics/parrying_shield.png b/mengsan/assets/relics/parrying_shield.png new file mode 100644 index 0000000..1959d0e Binary files /dev/null and b/mengsan/assets/relics/parrying_shield.png differ diff --git a/mengsan/assets/relics/pear.png b/mengsan/assets/relics/pear.png new file mode 100644 index 0000000..d3c41c7 Binary files /dev/null and b/mengsan/assets/relics/pear.png differ diff --git a/mengsan/assets/relics/pen_nib.png b/mengsan/assets/relics/pen_nib.png new file mode 100644 index 0000000..dfc17d3 Binary files /dev/null and b/mengsan/assets/relics/pen_nib.png differ diff --git a/mengsan/assets/relics/pendulum.png b/mengsan/assets/relics/pendulum.png new file mode 100644 index 0000000..e9c4eff Binary files /dev/null and b/mengsan/assets/relics/pendulum.png differ diff --git a/mengsan/assets/relics/permafrost.png b/mengsan/assets/relics/permafrost.png new file mode 100644 index 0000000..6aa994c Binary files /dev/null and b/mengsan/assets/relics/permafrost.png differ diff --git a/mengsan/assets/relics/petrified_toad.png b/mengsan/assets/relics/petrified_toad.png new file mode 100644 index 0000000..8849668 Binary files /dev/null and b/mengsan/assets/relics/petrified_toad.png differ diff --git a/mengsan/assets/relics/phial_holster.png b/mengsan/assets/relics/phial_holster.png new file mode 100644 index 0000000..2ae7b15 Binary files /dev/null and b/mengsan/assets/relics/phial_holster.png differ diff --git a/mengsan/assets/relics/philosophers_stone.png b/mengsan/assets/relics/philosophers_stone.png new file mode 100644 index 0000000..7420671 Binary files /dev/null and b/mengsan/assets/relics/philosophers_stone.png differ diff --git a/mengsan/assets/relics/phylactery_unbound.png b/mengsan/assets/relics/phylactery_unbound.png new file mode 100644 index 0000000..a9281f5 Binary files /dev/null and b/mengsan/assets/relics/phylactery_unbound.png differ diff --git a/mengsan/assets/relics/planisphere.png b/mengsan/assets/relics/planisphere.png new file mode 100644 index 0000000..7fb284f Binary files /dev/null and b/mengsan/assets/relics/planisphere.png differ diff --git a/mengsan/assets/relics/pocketwatch.png b/mengsan/assets/relics/pocketwatch.png new file mode 100644 index 0000000..7654b4a Binary files /dev/null and b/mengsan/assets/relics/pocketwatch.png differ diff --git a/mengsan/assets/relics/pollinous_core.png b/mengsan/assets/relics/pollinous_core.png new file mode 100644 index 0000000..82cc923 Binary files /dev/null and b/mengsan/assets/relics/pollinous_core.png differ diff --git a/mengsan/assets/relics/pomander.png b/mengsan/assets/relics/pomander.png new file mode 100644 index 0000000..ad86221 Binary files /dev/null and b/mengsan/assets/relics/pomander.png differ diff --git a/mengsan/assets/relics/potion_belt.png b/mengsan/assets/relics/potion_belt.png new file mode 100644 index 0000000..c1566b4 Binary files /dev/null and b/mengsan/assets/relics/potion_belt.png differ diff --git a/mengsan/assets/relics/power_cell.png b/mengsan/assets/relics/power_cell.png new file mode 100644 index 0000000..f8d2450 Binary files /dev/null and b/mengsan/assets/relics/power_cell.png differ diff --git a/mengsan/assets/relics/prayer_wheel.png b/mengsan/assets/relics/prayer_wheel.png new file mode 100644 index 0000000..fe32670 Binary files /dev/null and b/mengsan/assets/relics/prayer_wheel.png differ diff --git a/mengsan/assets/relics/precarious_shears.png b/mengsan/assets/relics/precarious_shears.png new file mode 100644 index 0000000..0b0b9bc Binary files /dev/null and b/mengsan/assets/relics/precarious_shears.png differ diff --git a/mengsan/assets/relics/precise_scissors.png b/mengsan/assets/relics/precise_scissors.png new file mode 100644 index 0000000..164ec7d Binary files /dev/null and b/mengsan/assets/relics/precise_scissors.png differ diff --git a/mengsan/assets/relics/preserved_fog.png b/mengsan/assets/relics/preserved_fog.png new file mode 100644 index 0000000..1d1bd48 Binary files /dev/null and b/mengsan/assets/relics/preserved_fog.png differ diff --git a/mengsan/assets/relics/prismatic_gem.png b/mengsan/assets/relics/prismatic_gem.png new file mode 100644 index 0000000..23c8ee7 Binary files /dev/null and b/mengsan/assets/relics/prismatic_gem.png differ diff --git a/mengsan/assets/relics/pumpkin_candle.png b/mengsan/assets/relics/pumpkin_candle.png new file mode 100644 index 0000000..fa46c8c Binary files /dev/null and b/mengsan/assets/relics/pumpkin_candle.png differ diff --git a/mengsan/assets/relics/punch_dagger.png b/mengsan/assets/relics/punch_dagger.png new file mode 100644 index 0000000..60718b5 Binary files /dev/null and b/mengsan/assets/relics/punch_dagger.png differ diff --git a/mengsan/assets/relics/radiant_pearl.png b/mengsan/assets/relics/radiant_pearl.png new file mode 100644 index 0000000..47c083c Binary files /dev/null and b/mengsan/assets/relics/radiant_pearl.png differ diff --git a/mengsan/assets/relics/rainbow_ring.png b/mengsan/assets/relics/rainbow_ring.png new file mode 100644 index 0000000..e118e35 Binary files /dev/null and b/mengsan/assets/relics/rainbow_ring.png differ diff --git a/mengsan/assets/relics/razor_tooth.png b/mengsan/assets/relics/razor_tooth.png new file mode 100644 index 0000000..601fba7 Binary files /dev/null and b/mengsan/assets/relics/razor_tooth.png differ diff --git a/mengsan/assets/relics/red_mask.png b/mengsan/assets/relics/red_mask.png new file mode 100644 index 0000000..28258ba Binary files /dev/null and b/mengsan/assets/relics/red_mask.png differ diff --git a/mengsan/assets/relics/red_skull.png b/mengsan/assets/relics/red_skull.png new file mode 100644 index 0000000..4341840 Binary files /dev/null and b/mengsan/assets/relics/red_skull.png differ diff --git a/mengsan/assets/relics/regal_pillow.png b/mengsan/assets/relics/regal_pillow.png new file mode 100644 index 0000000..f5c6063 Binary files /dev/null and b/mengsan/assets/relics/regal_pillow.png differ diff --git a/mengsan/assets/relics/regalite.png b/mengsan/assets/relics/regalite.png new file mode 100644 index 0000000..22003da Binary files /dev/null and b/mengsan/assets/relics/regalite.png differ diff --git a/mengsan/assets/relics/reptile_trinket.png b/mengsan/assets/relics/reptile_trinket.png new file mode 100644 index 0000000..e7ef3e3 Binary files /dev/null and b/mengsan/assets/relics/reptile_trinket.png differ diff --git a/mengsan/assets/relics/ring_of_the_drake.png b/mengsan/assets/relics/ring_of_the_drake.png new file mode 100644 index 0000000..4da6ba1 Binary files /dev/null and b/mengsan/assets/relics/ring_of_the_drake.png differ diff --git a/mengsan/assets/relics/ring_of_the_snake.png b/mengsan/assets/relics/ring_of_the_snake.png new file mode 100644 index 0000000..3083fd6 Binary files /dev/null and b/mengsan/assets/relics/ring_of_the_snake.png differ diff --git a/mengsan/assets/relics/ringing_triangle.png b/mengsan/assets/relics/ringing_triangle.png new file mode 100644 index 0000000..351fb7a Binary files /dev/null and b/mengsan/assets/relics/ringing_triangle.png differ diff --git a/mengsan/assets/relics/ripple_basin.png b/mengsan/assets/relics/ripple_basin.png new file mode 100644 index 0000000..bd985a1 Binary files /dev/null and b/mengsan/assets/relics/ripple_basin.png differ diff --git a/mengsan/assets/relics/royal_poison.png b/mengsan/assets/relics/royal_poison.png new file mode 100644 index 0000000..388dd1a Binary files /dev/null and b/mengsan/assets/relics/royal_poison.png differ diff --git a/mengsan/assets/relics/royal_stamp.png b/mengsan/assets/relics/royal_stamp.png new file mode 100644 index 0000000..fbf11ba Binary files /dev/null and b/mengsan/assets/relics/royal_stamp.png differ diff --git a/mengsan/assets/relics/ruined_helmet.png b/mengsan/assets/relics/ruined_helmet.png new file mode 100644 index 0000000..c8913ad Binary files /dev/null and b/mengsan/assets/relics/ruined_helmet.png differ diff --git a/mengsan/assets/relics/runic_capacitor.png b/mengsan/assets/relics/runic_capacitor.png new file mode 100644 index 0000000..25cf843 Binary files /dev/null and b/mengsan/assets/relics/runic_capacitor.png differ diff --git a/mengsan/assets/relics/runic_pyramid.png b/mengsan/assets/relics/runic_pyramid.png new file mode 100644 index 0000000..a6e5863 Binary files /dev/null and b/mengsan/assets/relics/runic_pyramid.png differ diff --git a/mengsan/assets/relics/sai.png b/mengsan/assets/relics/sai.png new file mode 100644 index 0000000..512ff8c Binary files /dev/null and b/mengsan/assets/relics/sai.png differ diff --git a/mengsan/assets/relics/sand_castle.png b/mengsan/assets/relics/sand_castle.png new file mode 100644 index 0000000..f176014 Binary files /dev/null and b/mengsan/assets/relics/sand_castle.png differ diff --git a/mengsan/assets/relics/screaming_flagon.png b/mengsan/assets/relics/screaming_flagon.png new file mode 100644 index 0000000..2e54777 Binary files /dev/null and b/mengsan/assets/relics/screaming_flagon.png differ diff --git a/mengsan/assets/relics/scroll_boxes.png b/mengsan/assets/relics/scroll_boxes.png new file mode 100644 index 0000000..3070b72 Binary files /dev/null and b/mengsan/assets/relics/scroll_boxes.png differ diff --git a/mengsan/assets/relics/sea_glass.png b/mengsan/assets/relics/sea_glass.png new file mode 100644 index 0000000..09b2a70 Binary files /dev/null and b/mengsan/assets/relics/sea_glass.png differ diff --git a/mengsan/assets/relics/seal_of_gold.png b/mengsan/assets/relics/seal_of_gold.png new file mode 100644 index 0000000..6e4df80 Binary files /dev/null and b/mengsan/assets/relics/seal_of_gold.png differ diff --git a/mengsan/assets/relics/self_forming_clay.png b/mengsan/assets/relics/self_forming_clay.png new file mode 100644 index 0000000..d947b2a Binary files /dev/null and b/mengsan/assets/relics/self_forming_clay.png differ diff --git a/mengsan/assets/relics/sere_talon.png b/mengsan/assets/relics/sere_talon.png new file mode 100644 index 0000000..4c9abd4 Binary files /dev/null and b/mengsan/assets/relics/sere_talon.png differ diff --git a/mengsan/assets/relics/shovel.png b/mengsan/assets/relics/shovel.png new file mode 100644 index 0000000..e652a73 Binary files /dev/null and b/mengsan/assets/relics/shovel.png differ diff --git a/mengsan/assets/relics/shuriken.png b/mengsan/assets/relics/shuriken.png new file mode 100644 index 0000000..1261c0e Binary files /dev/null and b/mengsan/assets/relics/shuriken.png differ diff --git a/mengsan/assets/relics/signet_ring.png b/mengsan/assets/relics/signet_ring.png new file mode 100644 index 0000000..cd96c33 Binary files /dev/null and b/mengsan/assets/relics/signet_ring.png differ diff --git a/mengsan/assets/relics/silken_tress.png b/mengsan/assets/relics/silken_tress.png new file mode 100644 index 0000000..b4a6153 Binary files /dev/null and b/mengsan/assets/relics/silken_tress.png differ diff --git a/mengsan/assets/relics/silver_crucible.png b/mengsan/assets/relics/silver_crucible.png new file mode 100644 index 0000000..034fd00 Binary files /dev/null and b/mengsan/assets/relics/silver_crucible.png differ diff --git a/mengsan/assets/relics/sling_of_courage.png b/mengsan/assets/relics/sling_of_courage.png new file mode 100644 index 0000000..50c5ab6 Binary files /dev/null and b/mengsan/assets/relics/sling_of_courage.png differ diff --git a/mengsan/assets/relics/small_capsule.png b/mengsan/assets/relics/small_capsule.png new file mode 100644 index 0000000..5427cf4 Binary files /dev/null and b/mengsan/assets/relics/small_capsule.png differ diff --git a/mengsan/assets/relics/snecko_eye.png b/mengsan/assets/relics/snecko_eye.png new file mode 100644 index 0000000..ce680dc Binary files /dev/null and b/mengsan/assets/relics/snecko_eye.png differ diff --git a/mengsan/assets/relics/snecko_skull.png b/mengsan/assets/relics/snecko_skull.png new file mode 100644 index 0000000..8215469 Binary files /dev/null and b/mengsan/assets/relics/snecko_skull.png differ diff --git a/mengsan/assets/relics/sozu.png b/mengsan/assets/relics/sozu.png new file mode 100644 index 0000000..dbfbef6 Binary files /dev/null and b/mengsan/assets/relics/sozu.png differ diff --git a/mengsan/assets/relics/sparkling_rouge.png b/mengsan/assets/relics/sparkling_rouge.png new file mode 100644 index 0000000..6a481e0 Binary files /dev/null and b/mengsan/assets/relics/sparkling_rouge.png differ diff --git a/mengsan/assets/relics/spiked_gauntlets.png b/mengsan/assets/relics/spiked_gauntlets.png new file mode 100644 index 0000000..3b259a7 Binary files /dev/null and b/mengsan/assets/relics/spiked_gauntlets.png differ diff --git a/mengsan/assets/relics/stone_calendar.png b/mengsan/assets/relics/stone_calendar.png new file mode 100644 index 0000000..1ff3695 Binary files /dev/null and b/mengsan/assets/relics/stone_calendar.png differ diff --git a/mengsan/assets/relics/stone_cracker.png b/mengsan/assets/relics/stone_cracker.png new file mode 100644 index 0000000..adc2997 Binary files /dev/null and b/mengsan/assets/relics/stone_cracker.png differ diff --git a/mengsan/assets/relics/stone_humidifier.png b/mengsan/assets/relics/stone_humidifier.png new file mode 100644 index 0000000..43536ae Binary files /dev/null and b/mengsan/assets/relics/stone_humidifier.png differ diff --git a/mengsan/assets/relics/storybook.png b/mengsan/assets/relics/storybook.png new file mode 100644 index 0000000..11e6b87 Binary files /dev/null and b/mengsan/assets/relics/storybook.png differ diff --git a/mengsan/assets/relics/strawberry.png b/mengsan/assets/relics/strawberry.png new file mode 100644 index 0000000..f5cd86b Binary files /dev/null and b/mengsan/assets/relics/strawberry.png differ diff --git a/mengsan/assets/relics/strike_dummy.png b/mengsan/assets/relics/strike_dummy.png new file mode 100644 index 0000000..0d0b37b Binary files /dev/null and b/mengsan/assets/relics/strike_dummy.png differ diff --git a/mengsan/assets/relics/sturdy_clamp.png b/mengsan/assets/relics/sturdy_clamp.png new file mode 100644 index 0000000..12cee41 Binary files /dev/null and b/mengsan/assets/relics/sturdy_clamp.png differ diff --git a/mengsan/assets/relics/sword_of_jade.png b/mengsan/assets/relics/sword_of_jade.png new file mode 100644 index 0000000..8891f3a Binary files /dev/null and b/mengsan/assets/relics/sword_of_jade.png differ diff --git a/mengsan/assets/relics/sword_of_stone.png b/mengsan/assets/relics/sword_of_stone.png new file mode 100644 index 0000000..b221102 Binary files /dev/null and b/mengsan/assets/relics/sword_of_stone.png differ diff --git a/mengsan/assets/relics/symbiotic_virus.png b/mengsan/assets/relics/symbiotic_virus.png new file mode 100644 index 0000000..969e887 Binary files /dev/null and b/mengsan/assets/relics/symbiotic_virus.png differ diff --git a/mengsan/assets/relics/tanxs_whistle.png b/mengsan/assets/relics/tanxs_whistle.png new file mode 100644 index 0000000..3a9f9d0 Binary files /dev/null and b/mengsan/assets/relics/tanxs_whistle.png differ diff --git a/mengsan/assets/relics/tea_of_discourtesy.png b/mengsan/assets/relics/tea_of_discourtesy.png new file mode 100644 index 0000000..20bb14b Binary files /dev/null and b/mengsan/assets/relics/tea_of_discourtesy.png differ diff --git a/mengsan/assets/relics/the_abacus.png b/mengsan/assets/relics/the_abacus.png new file mode 100644 index 0000000..6751457 Binary files /dev/null and b/mengsan/assets/relics/the_abacus.png differ diff --git a/mengsan/assets/relics/the_boot.png b/mengsan/assets/relics/the_boot.png new file mode 100644 index 0000000..b588c51 Binary files /dev/null and b/mengsan/assets/relics/the_boot.png differ diff --git a/mengsan/assets/relics/the_courier.png b/mengsan/assets/relics/the_courier.png new file mode 100644 index 0000000..d073171 Binary files /dev/null and b/mengsan/assets/relics/the_courier.png differ diff --git a/mengsan/assets/relics/throwing_axe.png b/mengsan/assets/relics/throwing_axe.png new file mode 100644 index 0000000..b84a53e Binary files /dev/null and b/mengsan/assets/relics/throwing_axe.png differ diff --git a/mengsan/assets/relics/tingsha.png b/mengsan/assets/relics/tingsha.png new file mode 100644 index 0000000..90f5bae Binary files /dev/null and b/mengsan/assets/relics/tingsha.png differ diff --git a/mengsan/assets/relics/tiny_mailbox.png b/mengsan/assets/relics/tiny_mailbox.png new file mode 100644 index 0000000..43e8e90 Binary files /dev/null and b/mengsan/assets/relics/tiny_mailbox.png differ diff --git a/mengsan/assets/relics/toasty_mittens.png b/mengsan/assets/relics/toasty_mittens.png new file mode 100644 index 0000000..33a60cb Binary files /dev/null and b/mengsan/assets/relics/toasty_mittens.png differ diff --git a/mengsan/assets/relics/toolbox.png b/mengsan/assets/relics/toolbox.png new file mode 100644 index 0000000..884ab69 Binary files /dev/null and b/mengsan/assets/relics/toolbox.png differ diff --git a/mengsan/assets/relics/touch_of_orobas.png b/mengsan/assets/relics/touch_of_orobas.png new file mode 100644 index 0000000..c148f5f Binary files /dev/null and b/mengsan/assets/relics/touch_of_orobas.png differ diff --git a/mengsan/assets/relics/tough_bandages.png b/mengsan/assets/relics/tough_bandages.png new file mode 100644 index 0000000..e966815 Binary files /dev/null and b/mengsan/assets/relics/tough_bandages.png differ diff --git a/mengsan/assets/relics/toxic_egg.png b/mengsan/assets/relics/toxic_egg.png new file mode 100644 index 0000000..42bd1ce Binary files /dev/null and b/mengsan/assets/relics/toxic_egg.png differ diff --git a/mengsan/assets/relics/toy_box.png b/mengsan/assets/relics/toy_box.png new file mode 100644 index 0000000..5602551 Binary files /dev/null and b/mengsan/assets/relics/toy_box.png differ diff --git a/mengsan/assets/relics/tri_boomerang.png b/mengsan/assets/relics/tri_boomerang.png new file mode 100644 index 0000000..284521e Binary files /dev/null and b/mengsan/assets/relics/tri_boomerang.png differ diff --git a/mengsan/assets/relics/tungsten_rod.png b/mengsan/assets/relics/tungsten_rod.png new file mode 100644 index 0000000..dd5b30c Binary files /dev/null and b/mengsan/assets/relics/tungsten_rod.png differ diff --git a/mengsan/assets/relics/tuning_fork.png b/mengsan/assets/relics/tuning_fork.png new file mode 100644 index 0000000..47400b8 Binary files /dev/null and b/mengsan/assets/relics/tuning_fork.png differ diff --git a/mengsan/assets/relics/twisted_funnel.png b/mengsan/assets/relics/twisted_funnel.png new file mode 100644 index 0000000..76f3b44 Binary files /dev/null and b/mengsan/assets/relics/twisted_funnel.png differ diff --git a/mengsan/assets/relics/unceasing_top.png b/mengsan/assets/relics/unceasing_top.png new file mode 100644 index 0000000..9562693 Binary files /dev/null and b/mengsan/assets/relics/unceasing_top.png differ diff --git a/mengsan/assets/relics/undying_sigil.png b/mengsan/assets/relics/undying_sigil.png new file mode 100644 index 0000000..cfbba1c Binary files /dev/null and b/mengsan/assets/relics/undying_sigil.png differ diff --git a/mengsan/assets/relics/unsettling_lamp.png b/mengsan/assets/relics/unsettling_lamp.png new file mode 100644 index 0000000..70a18fd Binary files /dev/null and b/mengsan/assets/relics/unsettling_lamp.png differ diff --git a/mengsan/assets/relics/vajra.png b/mengsan/assets/relics/vajra.png new file mode 100644 index 0000000..4f86b81 Binary files /dev/null and b/mengsan/assets/relics/vajra.png differ diff --git a/mengsan/assets/relics/vambrace.png b/mengsan/assets/relics/vambrace.png new file mode 100644 index 0000000..aa3375e Binary files /dev/null and b/mengsan/assets/relics/vambrace.png differ diff --git a/mengsan/assets/relics/velvet_choker.png b/mengsan/assets/relics/velvet_choker.png new file mode 100644 index 0000000..acd657a Binary files /dev/null and b/mengsan/assets/relics/velvet_choker.png differ diff --git a/mengsan/assets/relics/venerable_tea_set.png b/mengsan/assets/relics/venerable_tea_set.png new file mode 100644 index 0000000..b5201cd Binary files /dev/null and b/mengsan/assets/relics/venerable_tea_set.png differ diff --git a/mengsan/assets/relics/very_hot_cocoa.png b/mengsan/assets/relics/very_hot_cocoa.png new file mode 100644 index 0000000..a0b0ab4 Binary files /dev/null and b/mengsan/assets/relics/very_hot_cocoa.png differ diff --git a/mengsan/assets/relics/vexing_puzzlebox.png b/mengsan/assets/relics/vexing_puzzlebox.png new file mode 100644 index 0000000..4ed9a72 Binary files /dev/null and b/mengsan/assets/relics/vexing_puzzlebox.png differ diff --git a/mengsan/assets/relics/vitruvian_minion.png b/mengsan/assets/relics/vitruvian_minion.png new file mode 100644 index 0000000..b8cc7c6 Binary files /dev/null and b/mengsan/assets/relics/vitruvian_minion.png differ diff --git a/mengsan/assets/relics/war_hammer.png b/mengsan/assets/relics/war_hammer.png new file mode 100644 index 0000000..f493ddd Binary files /dev/null and b/mengsan/assets/relics/war_hammer.png differ diff --git a/mengsan/assets/relics/war_paint.png b/mengsan/assets/relics/war_paint.png new file mode 100644 index 0000000..f1c3c25 Binary files /dev/null and b/mengsan/assets/relics/war_paint.png differ diff --git a/mengsan/assets/relics/whetstone.png b/mengsan/assets/relics/whetstone.png new file mode 100644 index 0000000..b90d0d4 Binary files /dev/null and b/mengsan/assets/relics/whetstone.png differ diff --git a/mengsan/assets/relics/whispering_earring.png b/mengsan/assets/relics/whispering_earring.png new file mode 100644 index 0000000..0b671f2 Binary files /dev/null and b/mengsan/assets/relics/whispering_earring.png differ diff --git a/mengsan/assets/relics/white_beast_statue.png b/mengsan/assets/relics/white_beast_statue.png new file mode 100644 index 0000000..e5bc72a Binary files /dev/null and b/mengsan/assets/relics/white_beast_statue.png differ diff --git a/mengsan/assets/relics/white_star.png b/mengsan/assets/relics/white_star.png new file mode 100644 index 0000000..0187f5e Binary files /dev/null and b/mengsan/assets/relics/white_star.png differ diff --git a/mengsan/assets/relics/wing_charm.png b/mengsan/assets/relics/wing_charm.png new file mode 100644 index 0000000..f96c10e Binary files /dev/null and b/mengsan/assets/relics/wing_charm.png differ diff --git a/mengsan/assets/relics/winged_boots.png b/mengsan/assets/relics/winged_boots.png new file mode 100644 index 0000000..f7de44c Binary files /dev/null and b/mengsan/assets/relics/winged_boots.png differ diff --git a/mengsan/assets/relics/wongo_customer_appreciation_badge.png b/mengsan/assets/relics/wongo_customer_appreciation_badge.png new file mode 100644 index 0000000..c878210 Binary files /dev/null and b/mengsan/assets/relics/wongo_customer_appreciation_badge.png differ diff --git a/mengsan/assets/relics/wongos_mystery_ticket.png b/mengsan/assets/relics/wongos_mystery_ticket.png new file mode 100644 index 0000000..232a491 Binary files /dev/null and b/mengsan/assets/relics/wongos_mystery_ticket.png differ diff --git a/mengsan/assets/relics/yummy_cookie.png b/mengsan/assets/relics/yummy_cookie.png new file mode 100644 index 0000000..6a72519 Binary files /dev/null and b/mengsan/assets/relics/yummy_cookie.png differ diff --git a/mengsan/battle/battle-settlement.js b/mengsan/battle/battle-settlement.js index 77ff6ce..24114c5 100644 --- a/mengsan/battle/battle-settlement.js +++ b/mengsan/battle/battle-settlement.js @@ -4,6 +4,8 @@ import { applySharedBattleEndCards } from "../cards/shared-battle-end.js"; import { settleBondBattle } from "../bonds/state.js"; import { recordNormalBattleVictory } from "../progression/encounter-progress.js"; import { stripBattleProgress } from "../progression/map-checkpoint.js"; +import { grantGold } from "../relics/progression.js"; +import { heldRelics } from "../relics/definitions.js"; import { prepareRewardPackage, applyRewardPackage } from "../progression/reward-package.js"; @@ -11,9 +13,9 @@ const copy = value => JSON.parse(JSON.stringify(value)); const idFor = (run, node) => JSON.stringify([run.runId, run.actIndex, node.id]); export function createBattleSettlement({ store, config, getRandomRewardChoices, applyReward, completeNode, - enterNextAct, createRun, now = Date.now, logRewardPackage = () => {}, + enterNextAct, createRun, now = Date.now, logRewardPackage = () => {}, resolveRelicChoices = async () => {}, }) { - let item = null, committed = null, commitPromise = null; + let item = null, committed = null, commitPromise = null, choicePromise = null, choiceSignature = null; const readRun = () => store.read()[config.saveKey]; function current(storage, runId) { const run = storage[config.saveKey]; @@ -30,7 +32,7 @@ export function createBattleSettlement({ throw new Error("Stale node or revision"); } } - return Object.freeze({ + const api = { readRun, // 创建内存候选不调用存档写入;阵亡弹窗等待多久都不改上次地图存档。 async prepare({run: snapshot, node, encounter, hp, outcome = "victory"}) { @@ -53,7 +55,7 @@ export function createBattleSettlement({ base.statistics.defeatedEnemies += encounter.defeatedEnemies ?? 1; } const relicRecovery = hp > 0 - ? applyBattleEndRelics(base, outcome) : 0; + ? applyBattleEndRelics(base, outcome, {node,encounter}) : 0; const elite = !encounter.boss && encounter.tier === "elite"; const rewardPool = encounter.boss ? "shared.pool.boss.premium" : elite ? "shared.pool.battle.elite" : encounter.rewardPool; @@ -62,10 +64,11 @@ export function createBattleSettlement({ }).filter(c => c.name) : []; const fixedRewards = [...(encounter.fixedRewards || [])]; // 同一内存候选固定这件遗物;选择或跳过卡牌均领取,不在 UI 抽取。 - if (outcome === "victory" && elite) { - const [relic] = getRandomRewardChoices(base, - encounter.guaranteedRelicPool || "shared.pool.elite.relics", 1); - if (relic) fixedRewards.push(relic.id); + if (outcome === "victory") { + const extra=heldRelics(base).reduce((n,r)=>n+(elite ? r.rule.eliteRelics || 0 : 0)+(encounter.boss && base.actIndex===0 ? r.rule.actOneBossRelics || 0 : 0),0); + const count=(elite ? 1 : 0)+extra; + const relics=count>0 ? getRandomRewardChoices(base,encounter.guaranteedRelicPool || "shared.pool.elite.relics",count) : []; + for(const relic of relics)fixedRewards.push(relic.id); } // 金币随最终结果一次性提交。 const choices = outcome === "victory" && !encounter.rewardPackage @@ -133,8 +136,7 @@ export function createBattleSettlement({ // 结果只计算一次;保存失败后的重试不再次发放金币。 for (const gold of item.choices.filter(c => c.kind === "gold")) { if (!Number.isSafeInteger(gold.amount) || gold.amount < 0) throw new Error("Invalid pending gold reward"); - result.player.gold += gold.amount; - result.statistics.goldEarned += gold.amount; + grantGold(result,gold.amount); } if (reward) { applyReward(result, reward.effectId || reward.id); @@ -143,6 +145,7 @@ export function createBattleSettlement({ } else { for (const rewardId of item.fixedRewards || []) applyReward(result, rewardId); } + await resolveRelicChoices(result); if (!completeNode(result, item.nodeId)) throw new Error("Node completion failed"); route = item.boss && !enterNextAct(result) ? "victory" : "map"; } else result.status = "failed"; @@ -194,5 +197,17 @@ export function createBattleSettlement({ }).finally(() => { commitPromise = null; }); return commitPromise; }, - }); + }; + const chooseOnce=api.choose; + api.choose=(runId,id,choiceId)=>{ + const signature=JSON.stringify([runId,id,choiceId]); + if(choicePromise){ + if(signature!==choiceSignature)return Promise.reject(new Error("Another reward choice is pending")); + return choicePromise; + } + choiceSignature=signature; + choicePromise=chooseOnce(runId,id,choiceId).finally(()=>{choicePromise=null;choiceSignature=null;}); + return choicePromise; + }; + return Object.freeze(api); } diff --git a/mengsan/battle/combat-rules.js b/mengsan/battle/combat-rules.js index 7f3a9e9..92db710 100644 --- a/mengsan/battle/combat-rules.js +++ b/mengsan/battle/combat-rules.js @@ -5,6 +5,7 @@ import { cardUpgradeLevel, cardUpgradeRule } from "../cards/upgrades.js"; import { cardPackCosts } from "../cards/packs/data.js"; import { ironcladCardOwner, ironcladCost, ironcladCardIsFree } from "../cards/ironclad-hooks.js"; import { sharedCardCost, sharedCardIsFree } from "../cards/shared-hooks.js"; +import { relicCardCost, relicFreeCard, relicXBonus } from "../relics/hooks.js"; export const PLAYER_ENERGY = 3; export const PLAYER_HAND_LIMIT = 3; export const SHA_DAMAGE = 6; @@ -20,12 +21,12 @@ const validXEnergy = player => Number.isSafeInteger(xEnergy(player)) && xEnergy( const xTax = player => player?.storage?.mengsanTangled_shuying > 0 ? 1 : 0; export const cardCost = (card, player = null) => { player ||= ironcladCardOwner(card); - if (ironcladCardIsFree(player,card) || sharedCardIsFree(player,card)) return 0; + if (ironcladCardIsFree(player,card) || sharedCardIsFree(player,card) || relicFreeCard(player,card)) return 0; // 数值接口用于支付;X 的展示标签由牌定义/图鉴和空文本手牌叠层提供。 if (isXCostCard(card)) return validXEnergy(player) ? xEnergy(player) : 0; const rule = cardUpgradeLevel(card) ? cardUpgradeRule(card.name) : null; const base = rule?.cost ?? cardPackCosts[card?.name] ?? COSTS[card?.name] ?? 1; - return sharedCardCost(player,card,ironcladCost(player,card,base)) + + return relicCardCost(player,card,sharedCardCost(player,card,ironcladCost(player,card,base))) + (player?.storage?.mengsanTangled_shuying > 0 && isAttackCard(card) ? 1 : 0); }; @@ -70,7 +71,7 @@ function isFreeCardUse(player, card, event) { export const canPayCard = (player, card, event = _status.event) => { if (isXCostCard(card)) return validXEnergy(player) && - (isFreeCardUse(player, card, event) || ironcladCardIsFree(player,card) || sharedCardIsFree(player,card) || xEnergy(player) >= xTax(player)); + (isFreeCardUse(player, card, event) || ironcladCardIsFree(player,card) || sharedCardIsFree(player,card) || relicFreeCard(player,card) || xEnergy(player) >= xTax(player)); return isFreeCardUse(player, card, event) || (player?.storage?.mengsanEnergy_shuying ?? Infinity) >= cardCost(card, player); }; @@ -82,8 +83,8 @@ export const payCard = (player, card, event = _status.event, battle = null) => { const existing = xUses.get(event); if (existing) return existing.player === player && existing.name === card.name; if (!canPayCard(player, card, event)) return false; - const free = isFreeCardUse(player, card, event) || ironcladCardIsFree(player,card) || sharedCardIsFree(player,card); - const count = xEnergy(player) - (free ? 0 : xTax(player)); + const free = isFreeCardUse(player, card, event) || ironcladCardIsFree(player,card) || sharedCardIsFree(player,card) || relicFreeCard(player,card); + const count = xEnergy(player) - (free ? 0 : xTax(player)) + relicXBonus(player); xUses.set(event, { player, name: card.name, count, battle, session: battle?.session, taken: false }); if (!free) player.storage.mengsanEnergy_shuying = 0; diff --git a/mengsan/cards/card-data.js b/mengsan/cards/card-data.js index 948c8c6..ecf642c 100644 --- a/mengsan/cards/card-data.js +++ b/mengsan/cards/card-data.js @@ -1,6 +1,7 @@ import { cardDefinitions, canAcquireCard } from "./card-definitions.js"; import { cardUpgradeRule } from "./upgrades.js"; import { WITHER_CARD, MAX_WITHER_LEVEL } from "./wither-card.js"; +import { afterRelicDeckAdd } from "../relics/hooks.js"; const suits = ["spade", "heart", "club", "diamond"]; @@ -51,5 +52,6 @@ export function addCardToDeck(run, spec) { if (!Array.isArray(run?.player?.deck)) throw new Error("梦三牌组无效"); if (run.player.deck.some(existing => existing.id === card.id)) throw new Error(`梦三牌 ID 重复:${card.id}`); run.player.deck.push(card); + afterRelicDeckAdd(run, card); return card; } diff --git a/mengsan/cards/ironclad-hooks.js b/mengsan/cards/ironclad-hooks.js index 03484fe..99b1b5f 100644 --- a/mengsan/cards/ironclad-hooks.js +++ b/mengsan/cards/ironclad-hooks.js @@ -1,5 +1,6 @@ // 轻量桥接模块:不导入牌注册表或引擎,避免费用/牌堆/运行时循环依赖。 import { sharedStrengthPenalty } from "./shared-hooks.js"; +import { flushRelicExhaust } from "../relics/hooks.js"; const bindings = new WeakMap(), owners = new Map(); export function bindIroncladHooks(player, session, hooks) { const entry = {player,session,hooks}; @@ -26,7 +27,7 @@ export const ironcladCost = (player,card,cost) => ironcladHooks(player)?.cost(ca export const ironcladCardIsFree = (player,card) => Boolean(ironcladHooks(player)?.isFree(card)); export const ironcladStrengthPenalty = player => (ironcladHooks(player)?.strengthPenalty() || 0) + sharedStrengthPenalty(player); export const queueIroncladExhaust = (player,card) => ironcladHooks(player)?.queueExhaust(card); -export const flushIroncladExhaust = async player => { await ironcladHooks(player)?.flushExhaust(); }; +export const flushIroncladExhaust = async player => { await ironcladHooks(player)?.flushExhaust(); await flushRelicExhaust(player); }; export const afterIroncladDraw = async (player,cards) => { await ironcladHooks(player)?.afterDraw(cards); }; export const afterIroncladVulnerable = (source,target) => ironcladHooks(source)?.queueVulnerable(target); export const beforeIroncladBlock = (player,num,event) => ironcladHooks(player)?.blockAmount(num,event) ?? num; diff --git a/mengsan/cards/packs/shared/runtime.js b/mengsan/cards/packs/shared/runtime.js index 970fd48..6889913 100644 --- a/mengsan/cards/packs/shared/runtime.js +++ b/mengsan/cards/packs/shared/runtime.js @@ -12,6 +12,7 @@ import { isAttackCard } from "../../../monsters/vine-tangled.js"; import { applyMengsanDebuff, consumeArtifact } from "../../../monsters/artifact-status.js"; import { isStunned } from "../../../battle/stun-intent.js"; import { canPayCard, isActiveCardUse, authorizeFreeCardUse, takeXCardUse, cardCost } from "../../../battle/combat-rules.js"; +import { grantGold } from "../../../relics/progression.js"; const BRIDGE="mengsan_shared_bridge_shuying", RULES="mengsan_shared_rules_shuying", END="mengsan_shared_end_shuying", LIMIT="mengsan_shared_limit_shuying", AFTER="mengsan_shared_after_shuying"; const safe=n=>Number.isSafeInteger(n) && n>=0; @@ -586,7 +587,8 @@ export function createSharedCardRuntime({game,get,lib,status,getBattle,battleEne seen.add(e);const entry=kills.get(e);if(!entry||entry.claimed||entry.target!==event.player)continue; entry.claimed=true;const {s,gold}=entry; if(valid(s.player,s.token)&&s.player===game.me&&entry.target.isDead()){ - const run=s.token.run;add(run.player,"gold",gold);add(run.statistics,"goldEarned",gold); + const run=s.token.run,before=run.player.maxHp;grantGold(run,gold); + if(run.player.maxHp>before)await s.player.gainMaxHp(run.player.maxHp-before); }break; } }, diff --git a/mengsan/cards/personal-piles.js b/mengsan/cards/personal-piles.js index 7544831..df39cf1 100644 --- a/mengsan/cards/personal-piles.js +++ b/mengsan/cards/personal-piles.js @@ -6,6 +6,7 @@ import { cardDefinitions } from "./card-definitions.js"; import { hasCardAffix } from "./intrinsic-affixes.js"; import { sharedHooks } from "./shared-hooks.js"; import { queueIroncladExhaust, flushIroncladExhaust, ironcladSkillExhausts, ironcladHooks } from "./ironclad-hooks.js"; +import { queueRelicExhaust, queueRelicShuffle } from "../relics/hooks.js"; export function installPersonalPiles(session, owner, battle, run, resources, env) { @@ -25,7 +26,7 @@ export function installPersonalPiles(session, owner, battle, run, resources, env if (card.storage?.mengsanExhausted_shuying) return false; card.storage.mengsanExhausted_shuying = true; battle.exhaustPile.push(snapshot(card)); exhaustTotal++; - queueIroncladExhaust(owner, card); refresh(); return true; + queueIroncladExhaust(owner, card); queueRelicExhaust(owner, card); refresh(); return true; } const personal = () => { if (released || forcedPublic) return false; @@ -125,6 +126,7 @@ export function installPersonalPiles(session, owner, battle, run, resources, env const cards = [...draw.childNodes, ...discard.childNodes]; if (!cards.length) return false; shuffle(run, cards); + queueRelicShuffle(owner); for (const card of cards) { card.fix?.(); draw.appendChild(card); } refresh(); return true; diff --git a/mengsan/content/registry.js b/mengsan/content/registry.js index b667dd6..3a69f8f 100644 --- a/mengsan/content/registry.js +++ b/mengsan/content/registry.js @@ -68,7 +68,10 @@ acts.forEach(act => { }); }); Object.entries(rewardPools).forEach(([poolId, rewardIds]) => { - if (!Array.isArray(rewardIds) || rewardIds.length < 3) throw new Error(`梦三奖励池至少需要三项:${poolId}`); + // Dedicated relic catalogs can legitimately contain fewer than three + // implemented rewards. Existing gameplay pools retain their three-item gate. + const minimum = /^shared\.pool\.relic\.(?:shop|event|initial|ancient\.[a-z]+)$/.test(poolId) ? 1 : 3; + if (!Array.isArray(rewardIds) || rewardIds.length < minimum) throw new Error(`梦三奖励池至少需要${minimum}项:${poolId}`); if (new Set(rewardIds).size != rewardIds.length) throw new Error(`梦三奖励池存在重复项:${poolId}`); rewardIds.forEach(rewardId => { if (!rewards[rewardId]) throw new Error(`梦三奖励不存在:${poolId} -> ${rewardId}`); diff --git a/mengsan/content/shared/rewards.js b/mengsan/content/shared/rewards.js index 4c46c01..c687be0 100644 --- a/mengsan/content/shared/rewards.js +++ b/mengsan/content/shared/rewards.js @@ -1,4 +1,4 @@ -import { relicRewards, relicRewardIds } from "../../relics/definitions.js"; +import { relicRewards, relicRewardIds, relicRewardPools } from "../../relics/definitions.js"; import { cardPackRewards, cardPackRewardIds } from "../../cards/packs/rewards.js"; import { cardDefinitions } from "../../cards/card-definitions.js"; @@ -157,6 +157,7 @@ const battleCardRewardIds = [ ]; export const rewardPools = { + ...relicRewardPools, "shared.pool.battle.normal": [...battleCardRewardIds], "shared.pool.battle.elite": [...battleCardRewardIds], "shared.pool.elite.relics": [...relicRewardIds], diff --git a/mengsan/mode.js b/mengsan/mode.js index 6d8f122..4495ed7 100644 --- a/mengsan/mode.js +++ b/mengsan/mode.js @@ -1,6 +1,6 @@ import { createScenarioCharacters, scenarioTranslations } from "./content/scenario-characters.js"; import { createMengsanCards } from "./cards/mode-cards.js"; -import { createStrikeCounter } from "./cards/strike-counter.js"; +import { createStrikeCounter, isStrikeCard } from "./cards/strike-counter.js"; import { resolveRetiredCardReward } from "./cards/retired-cards.js"; import { createBlockDrawer } from "./cards/block-draw.js"; import { createHandUpgrader } from "./cards/hand-upgrade.js"; @@ -21,12 +21,14 @@ import { createBattleCardCopier } from "./cards/battle-card-copy.js"; import { createBattleCardReclaimer } from "./cards/battle-card-reclaim.js"; import { createTemporaryStrength, temporaryStrengthAmount, temporaryStrengthExpires, expireTemporaryStrength, clearTemporaryStrength, forgetTemporaryStrength } from "./cards/temporary-strength.js"; import { createRelicBattle, createRelicSkills } from "./relics/battle.js"; -import { grantRelic, getRelic, initializeRelicMaxHp } +import { grantRelic, getRelic, initializeRelicMaxHp, heldRelics, relicShopRewardIds, canAcquireRelic } from "./relics/definitions.js"; import { mountRelics } from "./ui/relics.js"; import { createOpeningEffects, createRelicCombatSkills } from "./relics/combat.js"; -import { applyRoomRelics, restRecovery } from "./relics/rooms.js"; +import { applyRoomRelics, restRecovery, relicRestChoices, relicShopPrice, recordRelicShopPurchase, applyRelicNodeEnter } from "./relics/rooms.js"; +import { grantGold, resolveRelicChoices, relicState } from "./relics/progression.js"; +import { bindRelicHooks, relicBlockAmount, relicBlocksDraw, flushRelicExhaust } from "./relics/hooks.js"; import { buildBattlePlan, consumeSupports, createBattleDirector, grantSupport } from "./battle/battle-director.js"; import { installPersonalPiles } from "./cards/personal-piles.js"; import { createMonster } from "./monsters/monster.js"; @@ -230,9 +232,13 @@ const chooseReward = async (run, rewardConfig = {}) => { const rewardId = await chooseButtons(title, choices, rewardConfig.description); const reward = choices.find(choice => choice.id == rewardId); if (reward) applyReward(run, reward.effectId || reward.id); + await finishRelicChoices(run); }; +const finishRelicChoices = run => resolveRelicChoices(run,chooseButtons,{cardName:name=>get.translation(name) || name}); + const finishStoryNode = async (run, node) => { + applyRelicNodeEnter(run,node); const content = config.nodeContents?.[node.contentId]; if (!content || content.kind != "dialogue") { await setupBattle(run, node); @@ -266,8 +272,12 @@ const finishStoryNode = async (run, node) => { }; const finishUtilityNode = async (run, node) => { + applyRelicNodeEnter(run,node); + applyRoomRelics(run,node,"enter"); if (node.type == "rest") { - const choice = await chooseButtons("休息节点", [ + const used=new Set(),tent=heldRelics(run).some(r=>r.rule.allRestOptions); + while(true){ + const choices=[ { id: "heal", name: "休息", description: `回复 ${restRecovery(run)} 点生命` }, { id: "upgrade", name: "磨砺", @@ -275,12 +285,16 @@ const finishUtilityNode = async (run, node) => { ? "随机强化一张尚未满级的可强化牌" : "没有可强化卡牌", disabled: !hasUpgradeableCard(run.player.deck) }, - ]); - if (choice === "heal") { - const result = applyRoomRelics(run, node, choice); - if (result) game.log(`休息回复${result.recovered}点生命`, - ...result.relics.map(relic => relic.name)); - } else applyReward(run, choice); + ...relicRestChoices(run)].filter(choice=>!used.has(choice.id)); + if(tent)choices.push({id:"done",name:"离开休息处"}); + if(!choices.some(choice=>!choice.disabled))break; + const choice=await chooseButtons("休息节点",choices); + if(choice==="done")break; + const result=applyRoomRelics(run,node,choice); used.add(choice); + if(result?.recovered)game.log(`回复${result.recovered}点生命`); + await finishRelicChoices(run); + if(!tent)break; + } } else if (node.type == "chest") { await chooseReward(run, { @@ -290,21 +304,39 @@ const finishUtilityNode = async (run, node) => { }); } else if (node.type == "shop") { - const result = applyRoomRelics(run, node, "enter"); - if (result) { - game.log(`遗物【餐券】进入商店回复${result.recovered}点生命`); - await saveRun(run); + const stockKey=`${run.actIndex}:${node.id}`,state=relicState(run); + const sampleRelic=(exclude=[])=>{ + const eligible=relicShopRewardIds.filter(id=>!exclude.includes(id) && canAcquireRelic(run,config.rewards[id]?.relic)); + return eligible.length ? eligible[Math.floor(nextRandom(run)*eligible.length)] : null; + }; + state.shopStock ||= {}; + if(!state.shopStock[stockKey]){ + const stock=[];for(let i=0;i<3;i++)stock.push(sampleRelic(stock));state.shopStock[stockKey]=stock; } - const price = 20; - const choice = await chooseButtons("商店 Demo", [ + const purchased=new Set(); + await saveRun(run); + while(true){ + const price = relicShopPrice(run,20),relicPrice=relicShopPrice(run,120); + const stock=relicState(run).shopStock[stockKey]; + const choices=[ { id: "card_sha", name: `购买【杀】(${price}金币)`, description: "加入个人牌组", disabled: run.player.gold < price || !canAcquireCard(run.player.character, "sha") }, { id: "heal", name: `恢复生命(${price}金币)`, description: "回复 8 点生命", disabled: run.player.gold < price }, - { id: "leave", name: "离开", description: "暂不购买" }, - ]); + ].filter(choice=>!purchased.has(choice.id)); + stock.forEach((id,index)=>{const reward=config.rewards[id];if(reward && canAcquireRelic(run,reward.relic))choices.push({id:`relic:${index}`,name:`${reward.name}(${relicPrice}金币)`,description:reward.description,image:reward.image,disabled:run.player.golditem.id===choice); + if(!selected || selected.disabled)throw new Error("梦三商店购买资格无效"); + const relicIndex=choice.startsWith("relic:") ? Number(choice.slice(6)) : null; + const cost=relicIndex!==null ? relicPrice : price; + if(run.player.goldr.wikiId==="the_courier") ? sampleRelic(relicState(run).shopStock[stockKey]) : null; + else if(!heldRelics(run).some(r=>r.wikiId==="the_courier"))purchased.add(choice); + } else break; } } else { @@ -320,8 +352,7 @@ const finishUtilityNode = async (run, node) => { const choice = await chooseButtons("随机事件", choices); if (choice == "branch") insertStoryNode(run, node.id); else if (choice == "gold") { - run.player.gold += 15; - run.statistics.goldEarned += 15; + grantGold(run,15); } } completeNode(run, node.id); @@ -614,15 +645,19 @@ const prepareBattle = async (run, node, encounter, session, resources) => { me.hp = Math.max(1, Math.min(run.player.hp, me.maxHp)); me.update(); currentBattle.relics = createRelicBattle(run, { - active: () => session.active && me.hp > 0, + active: () => session.active, + owner: me, node, encounter, + piles:currentBattle.personalPiles, + isStrike: card => isStrikeCard(card,lib), draw: number => game.mengsanDraw_shuying(me, number), effect: createOpeningEffects(game, me, - () => currentBattle.energyUI.get(me)?.()), + () => currentBattle.energyUI.get(me)?.(), () => nextRandom(run)), log: (relic, effect) => { game.log(me, `遗物【${relic.name}】发动:${effect}`); currentBattle.relicUI?.refresh(); }, }); + bindRelicHooks(me,session,currentBattle.relics); run.player.permanentSkills.forEach(skill => { if (lib.skill[skill] && !me.hasSkill(skill)) me.addSkill(skill); }); @@ -648,6 +683,7 @@ const prepareBattle = async (run, node, encounter, session, resources) => { "mengsan_stun_clear_shuying", "mengsan_relics_shuying", "mengsan_relic_attack_shuying", + "mengsan_relic_boot_shuying", ]) { if (!lib.skill.global.includes(skill)) { game.addGlobalSkill(skill); @@ -664,7 +700,7 @@ const prepareBattle = async (run, node, encounter, session, resources) => { for (const participant of participants) currentBattle.monsterPiles.get(participant)?.drawInnate(); if (!session.active) return; activeBattle.personalPiles.resetOpeningHand(); - await game.mengsanDraw_shuying(me, 4); + await game.mengsanDraw_shuying(me, Math.max(0,4+currentBattle.relics.drawAdjustment)); if (!session.active) return; activeBattle.personalPiles.drawInnate(); await currentBattle.relics.start(); @@ -684,10 +720,12 @@ const prepareBattle = async (run, node, encounter, session, resources) => { currentBattle.personalPiles.trimOpeningHand( 4 + currentBattle.relics.openingHandBonus); } - if (currentBattle.players.has(player) && player.hujia > 0 && !ironcladPreservesBlock(player)) - await player.changeHujia(-player.hujia); + if (currentBattle.players.has(player) && player.hujia > 0 && !ironcladPreservesBlock(player)) { + const keep=player===me ? currentBattle.relics.retainedBlock(player.hujia) : 0; + if(player.hujia>keep)await player.changeHujia(keep-player.hujia); + } if (player.storage.mengsanMaxEnergy_shuying != null) { - player.storage.mengsanEnergy_shuying = player.storage.mengsanMaxEnergy_shuying; + player.storage.mengsanEnergy_shuying = player===me ? currentBattle.relics.resetEnergy(player.storage.mengsanMaxEnergy_shuying,player.storage.mengsanEnergy_shuying) : player.storage.mengsanMaxEnergy_shuying; currentBattle.energyUI.get(player)?.(); } if (player === me) currentBattle.fogmog.beforeRound(); @@ -727,12 +765,13 @@ const makeFlow = (releaseSkills = async () => {}) => createBattleFlow({ growth.gain}%,当前${growth.level}级(${growth.progress}%)`); } if (pending.relicRecovery > 0) { - game.log(`遗物【燃烧之血】战后回复${pending.relicRecovery}点生命`); + game.log(`遗物战后回复${pending.relicRecovery}点生命`); } return playDialogue(pending.victoryDialogue, { run: pending.base, title: "战后剧情" }); }, settlement:createBattleSettlement({store:modeStorage, config, + resolveRelicChoices:finishRelicChoices, getRandomRewardChoices, applyReward, completeNode, enterNextAct, createRun, logRewardPackage: (pack, selection) => { const card = pack.upgradeChoices.find(card => @@ -835,6 +874,7 @@ const playBattle = async (run, node, encounter) => { return result; }; const setupBattle = async (run, node, encounter = getNodeEncounter(run, node)) => { + applyRelicNodeEnter(run,node); const result = await playBattle(run, node, encounter); if (!result) return; if (result.route === "map") await routeRun(result.run, result.nextNode, true); @@ -932,6 +972,7 @@ const createMode = () => { async dieAfter() { // 原生死亡已成立;在战斗结算关闭会话前落实斩杀的永久收益。 if(this.isDead())await cardPacks.onDeath(_status.event); + if(this.isDead())await activeBattle?.relics?.enemyDeath(this); clearKinOwnerIntents(game, activeBattle, this); clearConstrictSource(activeBattle, this); clearShrinkSource(activeBattle, this); @@ -945,10 +986,14 @@ const createMode = () => { changeHp(num, popup) { const next = nativeChangeHp.call(this, num, popup); if (activeBattle?.session.active) capInkletHpLoss(this, next); + if(this===game.me && activeBattle?.session.active && next.num<0){ + const parent=next.getParent(),armor=parent?.name==="damage" && !parent.nohujia && !this.hasSkillTag("nohujia") ? this.hujia || 0 : 0; + next.num=activeBattle.relics?.beforeHpLoss(next.num,armor) ?? next.num; + } return next; }, changeHujia(num, type) { - if(activeBattle?.session.active && type!=="damage")num=beforeIroncladBlock(this,beforeSharedBlock(this,num??1,_status.event),_status.event); + if(activeBattle?.session.active && type!=="damage")num=relicBlockAmount(this,beforeIroncladBlock(this,beforeSharedBlock(this,num??1,_status.event),_status.event),_status.event); // 脆弱只削减正向获得的护甲,不改变受伤时消耗护甲的数值。 if (this.storage?.mengsanFrail_shuying > 0 && (num == null || num > 0) && type !== "damage") { num = Math.floor((num ?? 1) * 0.75); @@ -1197,7 +1242,7 @@ const createMode = () => { }, async mengsanDraw_shuying(player, number = 1) { if (!player?.storage?.mengsanPlayer_shuying || number <= 0) return []; - if(ironcladBlocksDraw(player))return []; + if(ironcladBlocksDraw(player) || relicBlocksDraw(player))return []; const battle = _status.mengsanBattle_shuying; const run = _status.mengsanRun_shuying; if (!battle || battle.drawPile.length + battle.discardPile.length < number) { @@ -1211,6 +1256,7 @@ const createMode = () => { game.log(player, "从个人牌堆摸了", get.cnNumber(result.length), "张牌"); await afterSharedDraw(player,result); await afterIroncladDraw(player,result); + await flushRelicExhaust(player); return result; }, mengsanFinishBattle_shuying() { @@ -1701,7 +1747,7 @@ const createMode = () => { }, async content(event, trigger, player) { if (event.triggername === "damageBegin1") { - trigger.num = Math.ceil(trigger.num * (1.5 + cardPacks.vulnerableBonus(trigger.source, player))); + trigger.num = Math.ceil(trigger.num * ((trigger.source===game.me && activeBattle?.relics?.has("paper_phrog") ? 1.75 : 1.5) + cardPacks.vulnerableBonus(trigger.source, player))); return; } const remaining = Math.max(0, (player.storage.mengsanVulnerable_shuying || 0) - 1); diff --git a/mengsan/progression/reward-package.js b/mengsan/progression/reward-package.js index d64e11a..eef6b19 100644 --- a/mengsan/progression/reward-package.js +++ b/mengsan/progression/reward-package.js @@ -1,5 +1,6 @@ import { canUpgradeCard } from "../cards/upgrades.js"; import { canAcquireRelic } from "../relics/definitions.js"; +import { grantGold } from "../relics/progression.js"; export function prepareRewardPackage(run, spec, randomChoices) { if (!Number.isSafeInteger(spec.gold) || spec.gold < 0) { @@ -32,8 +33,7 @@ export function applyRewardPackage(run, pack, selection, applyReward) { throw new Error("遗物选择无效"); } } - run.player.gold += pack.gold; - run.statistics.goldEarned += pack.gold; + grantGold(run,pack.gold); if (selection.cardId !== null) card.upgrade = (card.upgrade || 0) + 1; if (relic) applyReward(run, relic.id); } diff --git a/mengsan/progression/state.js b/mengsan/progression/state.js index fa6c127..1ced204 100644 --- a/mengsan/progression/state.js +++ b/mengsan/progression/state.js @@ -9,6 +9,7 @@ import { createInkletBattlePlan } from "../content/acts/act1/inklet-group.js"; import { NIBBIT_PAIR_ENCOUNTER, createNibbitPairBattlePlan } from "../content/acts/act1/nibbit-pair.js"; import { chooseEncounterEntry, createEncounterPlan } from "../content/encounters.js"; import { normalBattleCount, protectEarlyBattleNodes, WEAK_BATTLE_COUNT } from "./encounter-progress.js"; +import { grantRelic } from "../relics/definitions.js"; const hashText = text => { let value = 2166136261; @@ -191,6 +192,9 @@ export const createRun = character => { storyFlags: {}, }; initializeInnateBonds(run); + // Only the currently mapped STS2 character gets its actual starting relic. + // Existing saves are not retroactively awarded items. + if(character==="mengsan_liubei_shuying")grantRelic(run,"burning_blood"); run.map = generateActMap(run, 0); return run; }; diff --git a/mengsan/relics/ASSETS.md b/mengsan/relics/ASSETS.md index c1c0d46..52e920b 100644 --- a/mengsan/relics/ASSETS.md +++ b/mengsan/relics/ASSETS.md @@ -1,25 +1,20 @@ -# 遗物资源待补清单 +# 遗物原图资源 -当前所有遗物的 `image` 均为 `null`,使用文字名称和效果说明, -不会加载不存在的图片。后续图片统一放入 `mengsan/assets/relics/`, -补齐时更新 `definitions.js` 并接入展示;本次不生成占位图片。 +298 件 Wiki 遗物已从用户提供的 v0.111.0 图集匹配,并逐字节复制至 +`mengsan/assets/relics/.png`。没有重绘或生成占位图片。 -| 遗物 | 稳定 ID | 建议图片文件名 | 状态 | -| --- | --- | --- | --- | -| 燃烧之血 | `mengsan_burning_blood_shuying` | `burning_blood.png` | 待提供 | -| 蛇之戒指 | `mengsan_snake_ring_shuying` | `snake_ring.png` | 待提供 | -| 长蛇戒指 | `mengsan_long_snake_ring_shuying` | `long_snake_ring.png` | 待提供 | -| 千年积木 | `mengsan_millennium_puzzle_shuying` | `millennium_puzzle.png` | 待提供 | -| 摆动球 | `mengsan_pendulum_shuying` | `pendulum.png` | 待提供 | -| 束带(既有道具) | `mengsan_hand_charm_shuying` | `hand_charm.png` | 待提供 | -| 餐券 | `mengsan_meal_ticket_shuying` | `meal_ticket.png` | 待提供 | -| 草莓 | `mengsan_strawberry_shuying` | `strawberry.png` | 待提供 | -| 弹珠袋 | `mengsan_bag_of_marbles_shuying` | `bag_of_marbles.png` | 待提供 | -| 灯笼 | `mengsan_lantern_shuying` | `lantern.png` | 待提供 | -| 红面具 | `mengsan_red_mask_shuying` | `red_mask.png` | 待提供 | -| 皇家枕头 | `mengsan_regal_pillow_shuying` | `regal_pillow.png` | 待提供 | -| 节日拉炮 | `mengsan_festive_poppers_shuying` | `festive_poppers.png` | 待提供 | -| 金刚杵 | `mengsan_vajra_shuying` | `vajra.png` | 待提供 | +每张原文件名、运行时路径、尺寸、字节数、透明通道与 SHA-256 见 +[manifest.json](../assets/relics/manifest.json),逐件映射也列入 +[实现记录](IMPLEMENTATION-20261006.md)。所有图片在480×672、300 KiB以内。 -建议使用统一尺寸的透明背景 PNG,实际尺寸和视觉风格在资源制作时确定。 -图片仅负责外观,不承载名称、效果或触发计数。 +| 特殊条目 | 图集源文件 | 运行时文件 | +| --- | --- | --- | +| 美味饼干 | yummy_cookie_ironclad.png | yummy_cookie.png | +| 遗忘之魂 | lost_soul.png | forgotten_soul.png | +| 布质果实 | looming_fruit_2.png | looming_fruit.png | + +美味饼干的另外四种角色图仍保留在源图集;当前梦三默认只映射刘备/铁甲战士。 +束带是既有梦三道具,不属于Wiki的298件遗物,无对应图集图片,继续文字展示。 + +战斗遗物栏、背包、选遗物、商店、战利品清单使用这些图片;加载错误保留名称和描述。 +资源检查仅证明文件完整与对应,实际游戏内显示仍待验收。 diff --git a/mengsan/relics/IMPLEMENTATION-20261006.md b/mengsan/relics/IMPLEMENTATION-20261006.md new file mode 100644 index 0000000..2d0c17e --- /dev/null +++ b/mengsan/relics/IMPLEMENTATION-20261006.md @@ -0,0 +1,411 @@ +# STS2 遗物接入记录(2026-10-06) + +已登记全部 **298** 件 Wiki 遗物,匹配 **298** 张原图。**181** 件效果已接入,其中 **13** 件有明确梦三适配;**117** 件保留资料、图片及缺口记录,获取资格拒绝这些条目。另保留原梦三束带,不计入 Wiki 298 件。 + +本次直接修改实际梦三模块,未制作修复副本;没有生成或重绘三国杀风格图片。原有三个 dist 发布清单的既存改动未触碰。本记录中的“已接入”仅表示源码有对应执行接口,**不是实机验收结论**。 + +## 来源与完整性 + +- 使用本次对话此前抓取的 **2026-10-04** 网页快照;本次没有把旧快照宣称为 10 月 6 日 Wiki 的新修订。 +- [遗物查找页](https://sts2.huijiwiki.com/wiki/模板:查找/遗物);[结构化数据页](https://sts2.huijiwiki.com/wiki/Data:Relic.tabx),快照修订号 `28579`。 +- `relics/catalog.js` 保存池、原始稀有度、先古归属、图鉴顺序、中文名、可读描述、原始描述/原始 Wiki 标记、风味文字、前代及来源链接。 +- 298 个唯一 Wiki ID;图鉴顺序完整覆盖 1—298。头环原始稀有度仍为“遗物”;先古归属与稀有度分别保存。 +- 遗物池:铁甲战士 9;静默猎手 9;储君 9;亡灵契约师 9;故障机器人 9;通用 253。 +- 稀有度:初始 10;普通 30;罕见 40;稀有 50;商店 30;先古之民 102;事件 35;遗物 1。 +- 先古归属:无 196;涅奥 30;欧洛巴斯 10;佩尔 10;特兹卡塔拉 10;诺奴佩普 10;坦克斯 10;瓦库 10;达弗 12。 + +## 图片资源 + +来源为用户提供的 `assets/sts2/Godot_Atlas_Sprites_v0.111.0/images/atlases/relic_atlas.sprites/` 拆分 PNG 目录。运行时使用 `assets/relics/.png`,逐字节复制,不拉伸、不重新绘图。所有图片都在 480×672、300 KiB 以内。 +298 张图片合计 **2,173,564 字节**。每张的源文件名、尺寸、透明通道、体积、SHA-256 见 [资源清单](../assets/relics/manifest.json)。 + +特殊映射:美味饼干使用 `yummy_cookie_ironclad.png`;遗忘之魂使用 `lost_soul.png`;布质果实使用 `looming_fruit_2.png`。美味饼干的其他角色图仍在原图集,当前仅接入铁甲战士图。原梦三束带没有对应 STS2 原图,继续显示文字。 +战斗遗物栏、地图背包、遗物选择、商店和战利品清单已经接入图片;池/稀有度/先古归属可从遗物栏与背包查看。 + +## 效果与获取接线 + +- 拾取:最大生命、回血、金币、牌组强化、复制、移除、变化、变化并强化、加入卡牌、随机遗物、多组卡牌选择、临时移出永久牌组。 +- 战斗:开场与指定回合效果、额外摸牌、费用、格挡、敏捷、力量、活力、易伤/虚弱倍率、攻击/技能/能力计数、伤害增幅、荆棘、覆甲、生命损失减免、尾巴复活、消耗及洗牌触发。 +- 战斗生成牌和手牌/抽牌堆强化使用本场实体牌,强化不会写回永久牌组。艳丽围巾的第五张牌免费与天鹅绒项圈限制接入现有支付/禁用接口;化学物X接入 X 次数。 +- 笔尖、双节棍、音叉、铁棒、香纸的累计计数保存在征程状态;新获得的遗物以获得时的累计值为起点。每回合三连击计数独立重置。 +- 房间:餐券、活动星图、永恒羽毛、茶具、皇家枕头、捕梦网、铲子、壶铃、南瓜蜡烛添火、帐篷、烹饪与折扣。每个房间/动作有独立记录,重复进入不会重复回血。 +- 战后:回血、敌人额外金币、最大生命、普通战斗/精英战强化、黑星、熔岩石、佩尔之齿逐张强化返还、石之剑变化、旺购神秘券。 +- 金币统一经过 `grantGold`;圆顶礼帽/灵体外质/火龙果同时覆盖战斗、奖励包、事件、遗物拾取、添加牌和现有劫掠牌击杀收益。存钱罐在商店消费后失效。 +- 商店保留【杀】与回复生命,新增3个遗物货位、折扣与信使补货。遗物基价暂设120金币;不是 Wiki 公布的商品价格。购买后完成所有遗物选牌,再提交房间结果。 +- 普通/罕见/稀有遗物池登记 **81** 项;可售遗物池登记 **91** 项,均在实际获取时继续过滤重复与角色池。 +- 原有精英固定遗物奖励、第一章宝箱和初次剧情遗物选择自动使用扩展后的可用池。Boss 极品卡牌池保留原有专属稀有卡约定。 +- 新建刘备征程自动持有燃烧之血,符合铁甲战士初始池;既有存档不追补、不重复发放初始遗物。其他武将暂不指定初始遗物。 +- 先古/事件/初始遗物已提供独立奖励池;**尚未创建对应先古会面和事件剧情**,不会把这些条目混入普通掉落。后续节点可以引用下表池名或调用已有 `grantRelic`。 +- 拾取操作在可序列化副本上计算,成功后替换运行状态;尚未实现的遗物/重复获取不会改金币、随机数或牌组。战后效果在现有结算候选里只计算一次,存档失败重试不重新发奖。 + +| 专用奖励池 | 当前可用数 | +| --- | --- | +| `shared.pool.relic.shop` | 91 | +| `shared.pool.relic.event` | 27 | +| `shared.pool.relic.initial` | 4 | +| `shared.pool.relic.ancient.neow` | 20 | +| `shared.pool.relic.ancient.orobas` | 2 | +| `shared.pool.relic.ancient.pael` | 5 | +| `shared.pool.relic.ancient.tezcatara` | 5 | +| `shared.pool.relic.ancient.nonupep` | 5 | +| `shared.pool.relic.ancient.tanx` | 7 | +| `shared.pool.relic.ancient.vakuu` | 4 | +| `shared.pool.relic.ancient.darv` | 10 | + +## 需要用户补充或确认 + +1. **烹饪数值与流程**:网页只说明能够烹饪,目前采用最大生命+5。确定原作具体数值后可替换适配值。 +2. **非战斗生命归零流程**:危险剪刀/芬芳蘑菇当前扣血保留至少1生命。需要明确是否允许地图中直接死亡,以及对应失败弹窗/存档规则。 +3. **先古会面及事件入口**:请确定梦三在哪些章节、节点或剧情中接入各先古和事件遗物。已有数据分类、效果、专用奖励池,但尚无原作的完整会面事件。 +4. **角色池映射**:当前只把刘备映射为铁甲战士,其他四个 STS2 角色未绑定梦三武将;不擅自指定。 +5. **原作机制**:辉星、充能球、集中、奥斯提、灾厄、仆从、铸造、可使用药水,以及 Wiki 指定附魔,需要对应玩法接口;完整逐件缺口见下表。现有词缀不会冒充原作附魔。 +6. **先古牌与击杀口径**:尘封魔典当前抽取现有先古事件牌;石之剑按精英战胜利次数计数,需要完整原作候选表及精英单位身份口径。 +7. **实机验收**:需要用户回来在实际梦三运行以下场景;此次不在正在进行的征程上自动操纵或替换存档。 + +## 已知梦三口径与限制 + +- 基础开场4张牌、每回合原有摸牌数、费用3和手牌上限3保持现有梦三规则。大蘑菇先减2张,再叠加正向开场额外摸牌。 +- 增加最大生命本身不额外治疗当前生命,沿用既有草莓约定;李家华夫饼另外回满生命。降低最大生命会将当前生命限制到新上限。 +- 休息基础回复8;皇家枕头额外15。多个折扣乘算后向下取整,最低1金币。 +- 克制、防御、保留、能力牌、虚无等牌的现有规则优先保留;符文金字塔/三角铃鼓避免手牌上限弃牌,不阻止虚无牌消耗。 +- 回合伤害上限在所有参与者的回合开始重置。钨合金棍和跳动残渣在预计护甲抵扣后限制实际生命损失,纯护甲损失不触发百年积木。伤害事件统计仍遵循引擎原有口径。 +- 独立牌堆不足时,梦三现有规则会结束挑战;额外摸牌遗物同样遵循该规则,未擅自改成原作的不足时少抽。 +- 尾巴仅本次征程触发一次;数值进位/舍入遵循梦三现有攻击、虚弱、易伤与护甲规则。 +- 没有持有来源正确的图集之外的素材缺失;主要缺口属于玩法/入口,仍全部登记。 + +## 验证与待实机场景 + +已运行 `node mengsan/tools/check-sts2-relics.mjs`:完整目录/图片哈希及源字节、逐件可获得遗物拾取与基本战斗、禁用遗物不变更状态、角色池/重复资格、随机遗物/选牌、永恒限制、累计计数、格挡后的减伤、复活一次、临时强化不污染牌组、商店房间记录、战后提交只写一次等隔离回归。检查数量以本次运行输出为准。 +已检查修改模块语法、内容注册表加载及本次改动差异。**尚未做实际游戏内的战斗、图片渲染或安装更新验收**;上述检查不能替代实机运行。 + +用户回来后建议覆盖: + +- 持有锚开战并进入第一回合;比较格挡是否保留。 +- 护甲完全抵挡/部分抵挡攻击时,测试钨合金棍、跳动残渣、百年积木。 +- 同一多段攻击与第10张攻击,跨战斗测试笔尖、活力、双节棍。 +- 能力牌首次/再次/下个回合测试永冻冰、木乃伊之手;X=0/大于0测试化学物X。 +- 第5张免费、第6张后不能主动出牌;进入敌方回合后检查响应仍可用。 +- 濒死测试蜥蜴尾巴,确保第二次不复活;荆棘/覆甲在实际攻击事件中测试。 +- 休息点多选、选牌遗物、永久牌移除/变化、佩尔之齿逐场返还、商店折扣与补货。 +- 保存失败后重试,确认不重复金币、遗物、牌组强化和房间效果;退出未完成战斗后继续旧地图检查点。 + +## 明确适配详情 + +- **送货员**:梦三商店出售【杀】、回复生命及三件随机遗物;购买后补货,折扣适用现有商品。药水尚无接口。遗物基价120金币,为梦三配置值。 +- **微型帐篷**:每个休息选项可各选择一次,直至选择离开;不允许无限重复同一选项。 +- **切肉刀**:网页没有烹饪细则;暂定每次烹饪最大生命+5,待用户确认。 +- **大蘑菇**:沿用梦三初始手牌4张,扣减2张;未改成STS2的基础手牌数量。 +- **长蛇戒指**:刘备仅映射铁甲战士池;其他角色池需配置player.relicPool才可获取。效果按前三个自身回合各摸2张接入。 +- **符文金字塔**:梦三原本按手牌上限弃牌;这里让全部手牌不计入弃牌上限。虚无牌照常消耗。 +- **松动羊毛剪**:选牌后扣除16点生命;当前地图流程保留至少1点生命,待补充非战斗死亡结算。 +- **芳香蘑菇**:随机强化2张并扣除15点生命;当前地图流程保留至少1点生命,待补充非战斗死亡结算。 +- **尘封魔典**:从已登记的先古事件牌池随机获得一张;网页未列出完整候选排除规则。 +- **石之剑**:按5次精英战胜利计数,变化为玉之剑;尚无精英单位的独立击杀标签。 +- **纸蛙**:依梦三易伤口径向上取整;作用于玩家发起的攻击,保留既有卡牌的额外易伤增幅。 +- **纸鹤**:依梦三虚弱口径向下取整,敌人攻击倍率0.6。 +- **巨口储蓄罐**:将进入一个新的梦三节点视为攀爬一层,先发12金币,再进行商店购买或战斗;原作楼层与额外剧情节点未单独区分。 + +## 逐件清单 + +图片路径统一为 `assets/relics/.png`。表中“执行/缺口”列给出接线属性或阻塞原因,原文效果原样保留可读表达;池、稀有度和先古归属没有合并。 + +| 序号 | 遗物 / Wiki ID | 池 | 稀有度 | 先古归属 | 原文效果 | 状态 | 执行 / 缺口 | 来源图片 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 1 | [燃烧之血](https://sts2.huijiwiki.com/wiki/%E7%87%83%E7%83%A7%E4%B9%8B%E8%A1%80)
`burning_blood` | 铁甲战士 | 初始 | — | 在战斗结束时,回复6点生命。 | 已接入,待实机 | battleHeal=6 | `burning_blood.png`
71×81;6202 B | +| 2 | [蛇之戒指](https://sts2.huijiwiki.com/wiki/%E8%9B%87%E4%B9%8B%E6%88%92%E6%8C%87)
`ring_of_the_snake` | 静默猎手 | 初始 | — | 在每场战斗开始时,额外抽2张牌。 | 已接入,待实机 | openingDraw=2 | `ring_of_the_snake.png`
81×81;9868 B | +| 3 | [天赋君权](https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E8%B5%8B%E5%90%9B%E6%9D%83)
`divine_right` | 储君 | 初始 | — | 在每场战斗开始时,获得[辉星][辉星][辉星]。 | 待补充,禁入奖励 | 辉星系统 | `divine_right.png`
71×81;8739 B | +| 4 | [缚魂命匣](https://sts2.huijiwiki.com/wiki/%E7%BC%9A%E9%AD%82%E5%91%BD%E5%8C%A3)
`bound_phylactery` | 亡灵契约师 | 初始 | — | 在你的回合开始时,召唤1 | 待补充,禁入奖励 | 奥斯提召唤系统 | `bound_phylactery.png`
77×82;8874 B | +| 5 | [破损核心](https://sts2.huijiwiki.com/wiki/%E7%A0%B4%E6%8D%9F%E6%A0%B8%E5%BF%83)
`cracked_core` | 故障机器人 | 初始 | — | 在每场战斗开始时,生成1个闪电充能球。 | 待补充,禁入奖励 | 充能球系统 | `cracked_core.png`
79×78;8536 B | +| 6 | [黑暗之血](https://sts2.huijiwiki.com/wiki/%E9%BB%91%E6%9A%97%E4%B9%8B%E8%A1%80)
`black_blood` | 铁甲战士 | 初始 | — | 在战斗结束时,回复12点生命。 | 已接入,待实机 | battleHeal=12;replaces="burning_blood" | `black_blood.png`
66×79;6334 B | +| 7 | [长蛇戒指](https://sts2.huijiwiki.com/wiki/%E9%95%BF%E8%9B%87%E6%88%92%E6%8C%87)
`ring_of_the_drake` | 静默猎手 | 初始 | — | 在战斗开始时的前3个回合,你额外抽2张牌。 | 梦三适配,待实机 | 刘备仅映射铁甲战士池;其他角色池需配置player.relicPool才可获取。效果按前三个自身回合各摸2张接入。 | `ring_of_the_drake.png`
78×80;7525 B | +| 8 | [天命所归](https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E5%91%BD%E6%89%80%E5%BD%92)
`divine_destiny` | 储君 | 初始 | — | 在每场战斗开始时,获得[辉星][辉星][辉星][辉星][辉星][辉星]。 | 待补充,禁入奖励 | 辉星系统 | `divine_destiny.png`
71×81;8401 B | +| 9 | [无界命匣](https://sts2.huijiwiki.com/wiki/%E6%97%A0%E7%95%8C%E5%91%BD%E5%8C%A3)
`phylactery_unbound` | 亡灵契约师 | 初始 | — | 在每场战斗开始时,召唤5。在你的回合开始时,召唤2。 | 待补充,禁入奖励 | 奥斯提召唤系统 | `phylactery_unbound.png`
76×80;9269 B | +| 10 | [注能核心](https://sts2.huijiwiki.com/wiki/%E6%B3%A8%E8%83%BD%E6%A0%B8%E5%BF%83)
`infused_core` | 故障机器人 | 初始 | — | 在每场战斗开始时,生成3个闪电充能球。闪电充能球额外造成1点伤害。 | 待补充,禁入奖励 | 充能球系统 | `infused_core.png`
80×78;10310 B | +| 11 | [百年积木](https://sts2.huijiwiki.com/wiki/%E7%99%BE%E5%B9%B4%E7%A7%AF%E6%9C%A8)
`centennial_puzzle` | 通用 | 普通 | — | 你在每场战斗中第一次损失生命值时,抽3张牌。 | 已接入,待实机 | firstHpLossDraw=3 | `centennial_puzzle.png`
82×78;5795 B | +| 12 | [摆动球](https://sts2.huijiwiki.com/wiki/%E6%91%86%E5%8A%A8%E7%90%83)
`pendulum` | 通用 | 普通 | — | 每3个回合,抽1张牌 | 已接入,待实机 | turnDraw=1;turnEvery=3 | `pendulum.png`
80×79;8656 B | +| 13 | [餐券](https://sts2.huijiwiki.com/wiki/%E9%A4%90%E5%88%B8)
`meal_ticket` | 通用 | 普通 | — | 每当你进入商店房间时,回复15点生命。 | 已接入,待实机 | shopHeal=15 | `meal_ticket.png`
81×77;6610 B | +| 14 | [草莓](https://sts2.huijiwiki.com/wiki/%E8%8D%89%E8%8E%93)
`strawberry` | 通用 | 普通 | — | 拾起时,将你的最大生命值提升7。 | 已接入,待实机 | maxHp=7 | `strawberry.png`
76×80;10517 B | +| 15 | [打击木偶](https://sts2.huijiwiki.com/wiki/%E6%89%93%E5%87%BB%E6%9C%A8%E5%81%B6)
`strike_dummy` | 通用 | 普通 | — | 名字中有“打击”的卡牌造成3点额外伤害。 | 已接入,待实机 | strikeDamage=3 | `strike_dummy.png`
81×79;9102 B | +| 16 | [弹珠袋](https://sts2.huijiwiki.com/wiki/%E5%BC%B9%E7%8F%A0%E8%A2%8B)
`bag_of_marbles` | 通用 | 普通 | — | 在每场战斗开始时,给予所有敌人1层易伤。 | 已接入,待实机 | openingVulnerable=1 | `bag_of_marbles.png`
80×60;4912 B | +| 17 | [灯笼](https://sts2.huijiwiki.com/wiki/%E7%81%AF%E7%AC%BC)
`lantern` | 通用 | 普通 | — | 在每场战斗的第一回合获得[能量]。 | 已接入,待实机 | firstTurnEnergy=1 | `lantern.png`
64×80;7201 B | +| 18 | [佛珠手链](https://sts2.huijiwiki.com/wiki/%E4%BD%9B%E7%8F%A0%E6%89%8B%E9%93%BE)
`juzu_bracelet` | 通用 | 普通 | — | 你在?房间中不会再遭遇常规战斗。 | 待补充,禁入奖励 | 当前问号事件没有随机常规战斗入口,暂无作用 | `juzu_bracelet.png`
81×81;8301 B | +| 19 | [古茶具套装](https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E8%8C%B6%E5%85%B7%E5%A5%97%E8%A3%85)
`venerable_tea_set` | 通用 | 普通 | — | 到达休息处后的下一场战斗开始时额外获得[能量][能量]。 | 已接入,待实机 | afterRestEnergy=2 | `venerable_tea_set.png`
78×80;8208 B | +| 20 | [红面具](https://sts2.huijiwiki.com/wiki/%E7%BA%A2%E9%9D%A2%E5%85%B7)
`red_mask` | 通用 | 普通 | — | 在每场战斗开始时,给于所有敌人1层虚弱。 | 已接入,待实机 | openingWeak=1 | `red_mask.png`
73×79;6354 B | +| 21 | [护喉甲](https://sts2.huijiwiki.com/wiki/%E6%8A%A4%E5%96%89%E7%94%B2)
`gorget` | 通用 | 普通 | — | 在每场战斗开始时,获得4层覆甲。 | 已接入,待实机 | plating=4 | `gorget.png`
79×70;7239 B | +| 22 | [皇家枕头](https://sts2.huijiwiki.com/wiki/%E7%9A%87%E5%AE%B6%E6%9E%95%E5%A4%B4)
`regal_pillow` | 通用 | 普通 | — | 在休息时,额外回复15点生命。 | 已接入,待实机 | restHeal=15 | `regal_pillow.png`
80×74;5706 B | +| 23 | [节日拉炮](https://sts2.huijiwiki.com/wiki/%E8%8A%82%E6%97%A5%E6%8B%89%E7%82%AE)
`festive_popper` | 通用 | 普通 | — | 在每场战斗开始时,对所有敌人造成9点伤害。 | 已接入,待实机 | openingDamage=9 | `festive_popper.png`
79×80;8348 B | +| 24 | [金刚杵](https://sts2.huijiwiki.com/wiki/%E9%87%91%E5%88%9A%E6%9D%B5)
`vajra` | 通用 | 普通 | — | 在每场战斗开始时,获得1点力量。 | 已接入,待实机 | openingStrength=1 | `vajra.png`
79×78;5852 B | +| 25 | [开心小花](https://sts2.huijiwiki.com/wiki/%E5%BC%80%E5%BF%83%E5%B0%8F%E8%8A%B1)
`happy_flower` | 通用 | 普通 | — | 每3个回合,获得[能量]。 | 待补充,禁入奖励 | 尚未接入此效果 | `happy_flower.png`
54×82;7156 B | +| 26 | [锚](https://sts2.huijiwiki.com/wiki/%E9%94%9A)
`anchor` | 通用 | 普通 | — | 每场战斗开始时获得10点格挡。 | 已接入,待实机 | openingBlock=10 | `anchor.png`
74×82;7211 B | +| 27 | [磨刀石](https://sts2.huijiwiki.com/wiki/%E7%A3%A8%E5%88%80%E7%9F%B3)
`whetstone` | 通用 | 普通 | — | 拾起时,随机升级2张攻击牌。 | 已接入,待实机 | gainUpgrade=2;upgradeType="attack" | `whetstone.png`
78×67;7143 B | +| 28 | [铜质鳞片](https://sts2.huijiwiki.com/wiki/%E9%93%9C%E8%B4%A8%E9%B3%9E%E7%89%87)
`bronze_scales` | 通用 | 普通 | — | 在每场战斗开始时,获得3点荆棘。 | 已接入,待实机 | thorns=3 | `bronze_scales.png`
80×77;7094 B | +| 29 | [五轮书](https://sts2.huijiwiki.com/wiki/%E4%BA%94%E8%BD%AE%E4%B9%A6)
`book_of_five_rings` | 通用 | 普通 | — | 你每将5张牌加入你的牌组时,回复20点生命。 | 已接入,待实机 | deckAddHealEvery=5;deckAddHeal=20 | `book_of_five_rings.png`
81×81;8169 B | +| 30 | [小血瓶](https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E8%A1%80%E7%93%B6)
`blood_vial` | 通用 | 普通 | — | 在每场战斗开始时,回复2点生命。 | 已接入,待实机 | openingHeal=2 | `blood_vial.png`
80×80;5729 B | +| 31 | [药水腰带](https://sts2.huijiwiki.com/wiki/%E8%8D%AF%E6%B0%B4%E8%85%B0%E5%B8%A6)
`potion_belt` | 通用 | 普通 | — | 拾起时,获得2个药水栏位。 | 待补充,禁入奖励 | 可使用的药水及栏位系统 | `potion_belt.png`
81×78;9220 B | +| 32 | [意外光滑的石头](https://sts2.huijiwiki.com/wiki/%E6%84%8F%E5%A4%96%E5%85%89%E6%BB%91%E7%9A%84%E7%9F%B3%E5%A4%B4)
`oddly_smooth_stone` | 通用 | 普通 | — | 在每场战斗开始时,获得1点敏捷。 | 已接入,待实机 | openingDexterity=1 | `oddly_smooth_stone.png`
81×66;4824 B | +| 33 | [战纹涂料](https://sts2.huijiwiki.com/wiki/%E6%88%98%E7%BA%B9%E6%B6%82%E6%96%99)
`war_paint` | 通用 | 普通 | — | 拾起时,随机升级2张技能牌。 | 已接入,待实机 | gainUpgrade=2;upgradeType="skill" | `war_paint.png`
80×53;7563 B | +| 34 | [准备背包](https://sts2.huijiwiki.com/wiki/%E5%87%86%E5%A4%87%E8%83%8C%E5%8C%85)
`bag_of_preparation` | 通用 | 普通 | — | 在每场战斗开始时,额外抽2张牌。 | 已接入,待实机 | openingDraw=2 | `bag_of_preparation.png`
81×74;8988 B | +| 35 | [紫水晶茄子](https://sts2.huijiwiki.com/wiki/%E7%B4%AB%E6%B0%B4%E6%99%B6%E8%8C%84%E5%AD%90)
`amethyst_aubergine` | 通用 | 普通 | — | 敌人额外掉落15金币。 | 已接入,待实机 | battleGold=15 | `amethyst_aubergine.png`
81×77;7960 B | +| 36 | [红头骨](https://sts2.huijiwiki.com/wiki/%E7%BA%A2%E5%A4%B4%E9%AA%A8)
`red_skull` | 铁甲战士 | 普通 | — | 当你的生命值低于或等于50%时,你额外获得3点力量 | 已接入,待实机 | lowHpStrength=3 | `red_skull.png`
76×81;8046 B | +| 37 | [异蛇头骨](https://sts2.huijiwiki.com/wiki/%E5%BC%82%E8%9B%87%E5%A4%B4%E9%AA%A8)
`snecko_skull` | 静默猎手 | 普通 | — | 每当你给予敌人中毒时,所给予的中毒层数增加1层。 | 待补充,禁入奖励 | 玩家中毒牌与中毒系统 | `snecko_skull.png`
80×73;6524 B | +| 38 | [击剑指南](https://sts2.huijiwiki.com/wiki/%E5%87%BB%E5%89%91%E6%8C%87%E5%8D%97)
`fencing_manual` | 储君 | 普通 | — | 在每场战斗开始时,铸造10。 | 待补充,禁入奖励 | 铸造系统 | `fencing_manual.png`
59×80;6554 B | +| 39 | [骨笛](https://sts2.huijiwiki.com/wiki/%E9%AA%A8%E7%AC%9B)
`bone_flute` | 亡灵契约师 | 普通 | — | 每当奥斯提攻击时,获得2点格挡。 | 待补充,禁入奖励 | 奥斯提攻击系统 | `bone_flute.png`
81×78;5418 B | +| 40 | [数据磁盘](https://sts2.huijiwiki.com/wiki/%E6%95%B0%E6%8D%AE%E7%A3%81%E7%9B%98)
`data_disk` | 故障机器人 | 普通 | — | 在每场战斗开始时,获得1点集中。 | 待补充,禁入奖励 | 集中与充能球系统 | `data_disk.png`
80×76;7979 B | +| 41 | [奥利哈钢](https://sts2.huijiwiki.com/wiki/%E5%A5%A5%E5%88%A9%E5%93%88%E9%92%A2)
`orichalcum` | 通用 | 罕见 | — | 如果你在回合结束时没有任何格挡,获得6点格挡。 | 已接入,待实机 | emptyBlock=6 | `orichalcum.png`
81×65;6289 B | +| 42 | [臂甲](https://sts2.huijiwiki.com/wiki/%E8%87%82%E7%94%B2)
`vambrace` | 通用 | 罕见 | — | 每场战斗中,你第一次从卡牌中获得的格挡值翻倍。 | 已接入,待实机 | firstCardBlockDouble=true | `vambrace.png`
77×79;6282 B | +| 43 | [波纹水盆](https://sts2.huijiwiki.com/wiki/%E6%B3%A2%E7%BA%B9%E6%B0%B4%E7%9B%86)
`ripple_basin` | 通用 | 罕见 | — | 如果你在本回合中没有打出过攻击牌,则获得4点格挡。 | 已接入,待实机 | noAttackBlock=4 | `ripple_basin.png`
81×56;7170 B | +| 44 | [吃不完的糖](https://sts2.huijiwiki.com/wiki/%E5%90%83%E4%B8%8D%E5%AE%8C%E7%9A%84%E7%B3%96)
`lasting_candy` | 通用 | 罕见 | — | 每两场战斗,你的卡牌奖励就会额外包含一张能力牌。 | 待补充,禁入奖励 | 独立的额外能力牌奖励组 | `lasting_candy.png`
79×80;9132 B | +| 45 | [赤牛](https://sts2.huijiwiki.com/wiki/%E8%B5%A4%E7%89%9B)
`akabeko` | 通用 | 罕见 | — | 在每场战斗开始时,获得8点活力。 | 已接入,待实机 | vigor=8 | `akabeko.png`
81×69;7370 B | +| 46 | [船夹板](https://sts2.huijiwiki.com/wiki/%E8%88%B9%E5%A4%B9%E6%9D%BF)
`horn_cleat` | 通用 | 罕见 | — | 在你的第二回合开始时,获得14点格挡。 | 已接入,待实机 | nthTurn=2;nthTurnBlock=14 | `horn_cleat.png`
81×51;4463 B | +| 47 | [地精之角](https://sts2.huijiwiki.com/wiki/%E5%9C%B0%E7%B2%BE%E4%B9%8B%E8%A7%92)
`gremlin_horn` | 通用 | 罕见 | — | 每当有一名敌人死亡时,获得[能量]并抽1张牌。 | 已接入,待实机 | killDraw=1;killEnergy=1 | `gremlin_horn.png`
81×79;6932 B | +| 48 | [钢笔尖](https://sts2.huijiwiki.com/wiki/%E9%92%A2%E7%AC%94%E5%B0%96)
`pen_nib` | 通用 | 罕见 | — | 你每打出的第10张攻击牌将会造成双倍伤害。 | 已接入,待实机 | nthAttackDouble=10 | `pen_nib.png`
80×77;4903 B | +| 49 | [活动星图](https://sts2.huijiwiki.com/wiki/%E6%B4%BB%E5%8A%A8%E6%98%9F%E5%9B%BE)
`planisphere` | 通用 | 罕见 | — | 每当你进入?房间的时候,回复5点生命。 | 已接入,待实机 | eventHeal=5 | `planisphere.png`
79×81;10303 B | +| 50 | [金纸](https://sts2.huijiwiki.com/wiki/%E9%87%91%E7%BA%B8)
`joss_paper` | 通用 | 罕见 | — | 你每消耗5张牌,就抽1张牌。 | 已接入,待实机 | exhaustDrawEvery=5 | `joss_paper.png`
82×81;10387 B | +| 51 | [精致折扇](https://sts2.huijiwiki.com/wiki/%E7%B2%BE%E8%87%B4%E6%8A%98%E6%89%87)
`ornamental_fan` | 通用 | 罕见 | — | 你每在同一回合内打出3张攻击牌,就获得4点格挡。 | 已接入,待实机 | tripleAttackBlock=4 | `ornamental_fan.png`
81×70;7744 B | +| 52 | [开信刀](https://sts2.huijiwiki.com/wiki/%E5%BC%80%E4%BF%A1%E5%88%80)
`letter_opener` | 通用 | 罕见 | — | 你每在同一回合内打出3张技能牌,就对所有敌人造成5点伤害。 | 已接入,待实机 | tripleSkillDamage=5 | `letter_opener.png`
80×81;5423 B | +| 53 | [梨子](https://sts2.huijiwiki.com/wiki/%E6%A2%A8%E5%AD%90)
`pear` | 通用 | 罕见 | — | 拾起时,将你的最大生命值提升10。 | 已接入,待实机 | maxHp=10 | `pear.png`
62×81;5863 B | +| 54 | [爬行动物饰品](https://sts2.huijiwiki.com/wiki/%E7%88%AC%E8%A1%8C%E5%8A%A8%E7%89%A9%E9%A5%B0%E5%93%81)
`reptile_trinket` | 通用 | 罕见 | — | 当你使用药水时,在本回合获得3力量。 | 待补充,禁入奖励 | 可使用的药水系统 | `reptile_trinket.png`
77×78;6845 B | +| 55 | [闪亮口红](https://sts2.huijiwiki.com/wiki/%E9%97%AA%E4%BA%AE%E5%8F%A3%E7%BA%A2)
`sparkling_rouge` | 通用 | 罕见 | — | 在你的第3回合开始时,获得1点力量和1点敏捷。 | 已接入,待实机 | nthTurn=3;nthTurnStrength=1;nthTurnDexterity=1 | `sparkling_rouge.png`
77×80;6177 B | +| 56 | [石化蟾蜍](https://sts2.huijiwiki.com/wiki/%E7%9F%B3%E5%8C%96%E8%9F%BE%E8%9C%8D)
`petrified_toad` | 通用 | 罕见 | — | 在每场战斗开始时,获得一瓶药水形状的石头 | 待补充,禁入奖励 | 药水形状的石头 | `petrified_toad.png`
81×74;8135 B | +| 57 | [双截棍](https://sts2.huijiwiki.com/wiki/%E5%8F%8C%E6%88%AA%E6%A3%8D)
`nunchaku` | 通用 | 罕见 | — | 你每打出10张攻击牌,获得[能量]。 | 已接入,待实机 | attackEnergyEvery=10 | `nunchaku.png`
80×81;5482 B | +| 58 | [水银沙漏](https://sts2.huijiwiki.com/wiki/%E6%B0%B4%E9%93%B6%E6%B2%99%E6%BC%8F)
`mercury_hourglass` | 通用 | 罕见 | — | 在你的回合开始时,对所有敌人造成3点伤害。 | 已接入,待实机 | turnDamage=3 | `mercury_hourglass.png`
65×81;6038 B | +| 59 | [碎石钻](https://sts2.huijiwiki.com/wiki/%E7%A2%8E%E7%9F%B3%E9%92%BB)
`stone_cracker` | 通用 | 罕见 | — | 在每场战斗开始时,在本场战斗中随机升级你抽牌堆中的2张牌。 | 已接入,待实机 | openingUpgradeDraw=2 | `stone_cracker.png`
74×76;6968 B | +| 60 | [缩放仪](https://sts2.huijiwiki.com/wiki/%E7%BC%A9%E6%94%BE%E4%BB%AA)
`pantograph` | 通用 | 罕见 | — | 在Boss战开始时,回复25点生命值。 | 已接入,待实机 | bossOpeningHeal=25 | `pantograph.png`
81×75;4490 B | +| 61 | [锁镰](https://sts2.huijiwiki.com/wiki/%E9%94%81%E9%95%B0)
`kusarigama` | 通用 | 罕见 | — | 你每在同一回合内打出3张攻击牌,就随机对一名敌人造成6点伤害。 | 已接入,待实机 | tripleAttackDamage=6 | `kusarigama.png`
81×79;6107 B | +| 62 | [微型大炮](https://sts2.huijiwiki.com/wiki/%E5%BE%AE%E5%9E%8B%E5%A4%A7%E7%82%AE)
`miniature_cannon` | 通用 | 罕见 | — | 升级的攻击牌额外造成3点伤害。 | 已接入,待实机 | upgradedAttackDamage=3 | `miniature_cannon.png`
80×80;8396 B | +| 63 | [小邮箱](https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E9%82%AE%E7%AE%B1)
`tiny_mailbox` | 通用 | 罕见 | — | 每当你休息时,获得2瓶随机药水。 | 待补充,禁入奖励 | 可使用的药水系统 | `tiny_mailbox.png`
81×72;7945 B | +| 64 | [音叉](https://sts2.huijiwiki.com/wiki/%E9%9F%B3%E5%8F%89)
`tuning_fork` | 通用 | 罕见 | — | 你每打出10张技能牌,获得7点格挡。 | 已接入,待实机 | skillBlockEvery=10;skillBlock=7 | `tuning_fork.png`
81×76;3921 B | +| 65 | [永冻冰晶](https://sts2.huijiwiki.com/wiki/%E6%B0%B8%E5%86%BB%E5%86%B0%E6%99%B6)
`permafrost` | 通用 | 罕见 | — | 当你在战斗中第一次打出能力牌时,获得7点格挡。 | 已接入,待实机 | firstPowerBlock=7 | `permafrost.png`
75×81;6789 B | +| 66 | [永恒羽毛](https://sts2.huijiwiki.com/wiki/%E6%B0%B8%E6%81%92%E7%BE%BD%E6%AF%9B)
`eternal_feather` | 通用 | 罕见 | — | 你的牌组中每有5张牌,当你进入休息处时就会回复3点生命。 | 已接入,待实机 | restEntryHealPerFive=3 | `eternal_feather.png`
79×78;6627 B | +| 67 | [圆顶礼帽](https://sts2.huijiwiki.com/wiki/%E5%9C%86%E9%A1%B6%E7%A4%BC%E5%B8%BD)
`bowler_hat` | 通用 | 罕见 | — | 额外获得25%的金币。 | 已接入,待实机 | goldMultiplier=1.25 | `bowler_hat.png`
81×65;5589 B | +| 68 | [招财异鱼](https://sts2.huijiwiki.com/wiki/%E6%8B%9B%E8%B4%A2%E5%BC%82%E9%B1%BC)
`lucky_fysh` | 通用 | 罕见 | — | 每当你将一张卡牌加入你的牌组时,获得15金币。 | 已接入,待实机 | deckAddGold=15 | `lucky_fysh.png`
81×83;9458 B | +| 69 | [招架盾](https://sts2.huijiwiki.com/wiki/%E6%8B%9B%E6%9E%B6%E7%9B%BE)
`parrying_shield` | 通用 | 罕见 | — | 如果你在回合结束时拥有至少10点格挡,则对随机敌人造成6点伤害。 | 已接入,待实机 | endBlockThreshold=10;endBlockDamage=6 | `parrying_shield.png`
81×81;8633 B | +| 70 | [烛台](https://sts2.huijiwiki.com/wiki/%E7%83%9B%E5%8F%B0)
`candelabra` | 通用 | 罕见 | — | 在你的第2回合开始时,获得[能量][能量]。 | 已接入,待实机 | nthTurn=2;nthTurnEnergy=2 | `candelabra.png`
81×81;5701 B | +| 71 | [纸蛙](https://sts2.huijiwiki.com/wiki/%E7%BA%B8%E8%9B%99)
`paper_phrog` | 铁甲战士 | 罕见 | — | 有易伤状态的敌人受到的伤害增加75%而非50%。 | 梦三适配,待实机 | 依梦三易伤口径向上取整;作用于玩家发起的攻击,保留既有卡牌的额外易伤增幅。 | `paper_phrog.png`
81×69;5557 B | +| 72 | [自成型黏土](https://sts2.huijiwiki.com/wiki/%E8%87%AA%E6%88%90%E5%9E%8B%E9%BB%8F%E5%9C%9F)
`self_forming_clay` | 铁甲战士 | 罕见 | — | 每当你在战斗中失去生命,就在下回合获得3点格挡。 | 已接入,待实机 | hpLossNextBlock=3 | `self_forming_clay.png`
81×80;7786 B | +| 73 | [铜钹](https://sts2.huijiwiki.com/wiki/%E9%93%9C%E9%92%B9)
`tingsha` | 静默猎手 | 罕见 | — | 你每在你的回合丢弃一张牌,就对一名随机敌人造成3点伤害。 | 待补充,禁入奖励 | 尚缺效果接口:discardDamage | `tingsha.png`
77×72;6163 B | +| 74 | [扭曲漏斗](https://sts2.huijiwiki.com/wiki/%E6%89%AD%E6%9B%B2%E6%BC%8F%E6%96%97)
`twisted_funnel` | 静默猎手 | 罕见 | — | 在每场战斗开始时,给予所有敌人4层中毒。 | 待补充,禁入奖励 | 中毒系统 | `twisted_funnel.png`
80×71;6585 B | +| 75 | [星系尘埃](https://sts2.huijiwiki.com/wiki/%E6%98%9F%E7%B3%BB%E5%B0%98%E5%9F%83)
`galactic_dust` | 储君 | 罕见 | — | 每消耗10点[辉星],就获得10格挡。 | 待补充,禁入奖励 | 辉星消费系统 | `galactic_dust.png`
80×82;7036 B | +| 76 | [君王矿石](https://sts2.huijiwiki.com/wiki/%E5%90%9B%E7%8E%8B%E7%9F%BF%E7%9F%B3)
`regalite` | 储君 | 罕见 | — | 每当你生成一张牌时,获得2点格挡。 | 待补充,禁入奖励 | 所有来源的生成牌事件(当前只有部分接口) | `regalite.png`
78×72;9031 B | +| 77 | [修书小刀](https://sts2.huijiwiki.com/wiki/%E4%BF%AE%E4%B9%A6%E5%B0%8F%E5%88%80)
`book_repair_knife` | 亡灵契约师 | 罕见 | — | 每当有一名不是“爪牙”的敌人死于灾厄时,回复3点生命。 | 待补充,禁入奖励 | 灾厄与爪牙系统 | `book_repair_knife.png`
79×76;5558 B | +| 78 | [葬礼面具](https://sts2.huijiwiki.com/wiki/%E8%91%AC%E7%A4%BC%E9%9D%A2%E5%85%B7)
`funerary_mask` | 亡灵契约师 | 罕见 | — | 在每场战斗开始时,将3张灵魂加入你的抽牌堆。 | 待补充,禁入奖励 | 灵魂牌与奥斯提系统 | `funerary_mask.png`
75×70;8372 B | +| 79 | [镀金缆线](https://sts2.huijiwiki.com/wiki/%E9%95%80%E9%87%91%E7%BC%86%E7%BA%BF)
`gold_plated_cables` | 故障机器人 | 罕见 | — | 你最右侧的充能球会额外触发一次被动效果。 | 待补充,禁入奖励 | 充能球系统 | `gold_plated_cables.png`
74×73;6804 B | +| 80 | [共生病毒](https://sts2.huijiwiki.com/wiki/%E5%85%B1%E7%94%9F%E7%97%85%E6%AF%92)
`symbiotic_virus` | 故障机器人 | 罕见 | — | 在每场战斗开始时,生成1个黑暗充能球。 | 待补充,禁入奖励 | 充能球系统 | `symbiotic_virus.png`
80×79;7675 B | +| 81 | [白兽雕像](https://sts2.huijiwiki.com/wiki/%E7%99%BD%E5%85%BD%E9%9B%95%E5%83%8F)
`white_beast_statue` | 通用 | 稀有 | — | 战斗结束后必定掉落药水。 | 待补充,禁入奖励 | 药水掉落系统 | `white_beast_statue.png`
81×76;7638 B | +| 82 | [白星](https://sts2.huijiwiki.com/wiki/%E7%99%BD%E6%98%9F)
`white_star` | 通用 | 稀有 | — | 精英敌人额外掉落一次稀有卡牌奖励。 | 待补充,禁入奖励 | 独立的额外稀有卡奖励组 | `white_star.png`
81×79;4939 B | +| 83 | [冰淇淋](https://sts2.huijiwiki.com/wiki/%E5%86%B0%E6%B7%87%E6%B7%8B)
`ice_cream` | 通用 | 稀有 | — | 多余的能量可以留到下一回合。 | 已接入,待实机 | keepEnergy=true | `ice_cream.png`
76×82;7197 B | +| 84 | [不安油灯](https://sts2.huijiwiki.com/wiki/%E4%B8%8D%E5%AE%89%E6%B2%B9%E7%81%AF)
`unsettling_lamp` | 通用 | 稀有 | — | 你在每场战斗中第一次打出能给予敌人负面状态的牌时,将其效果翻倍。 | 待补充,禁入奖励 | 所有负面状态牌效果的单次翻倍接口 | `unsettling_lamp.png`
80×80;7484 B | +| 85 | [不休陀螺](https://sts2.huijiwiki.com/wiki/%E4%B8%8D%E4%BC%91%E9%99%80%E8%9E%BA)
`unceasing_top` | 通用 | 稀有 | — | 在你的回合,当你没有手牌时,抽一张牌。 | 待补充,禁入奖励 | 尚缺效果接口:emptyHandDraw | `unceasing_top.png`
75×80;9092 B | +| 86 | [彩虹戒指](https://sts2.huijiwiki.com/wiki/%E5%BD%A9%E8%99%B9%E6%88%92%E6%8C%87)
`rainbow_ring` | 通用 | 稀有 | — | 每回合,你第一次打出攻击牌、技能牌和能力牌各一张时,获得1点力量和1点敏捷。 | 待补充,禁入奖励 | 尚缺效果接口:rainbow | `rainbow_ring.png`
78×82;9381 B | +| 87 | [铲子](https://sts2.huijiwiki.com/wiki/%E9%93%B2%E5%AD%90)
`shovel` | 通用 | 稀有 | — | 现在你可以在休息处挖掘遗物。 | 已接入,待实机 | restAction="dig" | `shovel.png`
80×81;4860 B | +| 88 | [带骨肉](https://sts2.huijiwiki.com/wiki/%E5%B8%A6%E9%AA%A8%E8%82%89)
`meat_on_the_bone` | 通用 | 稀有 | — | 如果你在战斗结束时生命值等于或低于50%,回复12点生命。 | 已接入,待实机 | lowHpBattleHeal=12 | `meat_on_the_bone.png`
81×78;6570 B | +| 89 | [吊灯](https://sts2.huijiwiki.com/wiki/%E5%90%8A%E7%81%AF)
`chandelier` | 通用 | 稀有 | — | 在你的第三回合开始时,获得[能量][能量][能量]。 | 已接入,待实机 | nthTurn=3;nthTurnEnergy=3 | `chandelier.png`
79×81;6424 B | +| 90 | [冻结之蛋](https://sts2.huijiwiki.com/wiki/%E5%86%BB%E7%BB%93%E4%B9%8B%E8%9B%8B)
`frozen_egg` | 通用 | 稀有 | — | 每当你获得能力牌时,将其升级。 | 已接入,待实机 | upgradeAddedType="power" | `frozen_egg.png`
65×80;6468 B | +| 91 | [斗篷扣](https://sts2.huijiwiki.com/wiki/%E6%96%97%E7%AF%B7%E6%89%A3)
`cloak_clasp` | 通用 | 稀有 | — | 在你的回合结束时,每有一张手牌,就获得1点格挡 | 已接入,待实机 | endHandBlock=1 | `cloak_clasp.png`
78×77;5876 B | +| 92 | [毒素之蛋](https://sts2.huijiwiki.com/wiki/%E6%AF%92%E7%B4%A0%E4%B9%8B%E8%9B%8B)
`toxic_egg` | 通用 | 稀有 | — | 每当你获得技能牌时,将其升级。 | 已接入,待实机 | upgradeAddedType="skill" | `toxic_egg.png`
66×81;8054 B | +| 93 | [赌博筹码](https://sts2.huijiwiki.com/wiki/%E8%B5%8C%E5%8D%9A%E7%AD%B9%E7%A0%81)
`gambling_chip` | 通用 | 稀有 | — | 在每场战斗开始时,丢弃任意张牌,然后抽相同数量张牌。 | 待补充,禁入奖励 | 尚缺效果接口:openingDiscardDraw | `gambling_chip.png`
81×76;8263 B | +| 94 | [舵盘](https://sts2.huijiwiki.com/wiki/%E8%88%B5%E7%9B%98)
`captains_wheel` | 通用 | 稀有 | — | 在你的第三回合开始时,获得18点格挡。 | 已接入,待实机 | nthTurn=3;nthTurnBlock=18 | `captains_wheel.png`
81×81;7933 B | +| 95 | [烦人机关盒](https://sts2.huijiwiki.com/wiki/%E7%83%A6%E4%BA%BA%E6%9C%BA%E5%85%B3%E7%9B%92)
`vexing_puzzlebox` | 通用 | 稀有 | — | 在每场战斗开始时,将一张随机卡牌加入你的手牌。这张牌在本回合可以免费打出。 | 已接入,待实机 | openingRandom=1;openingRandomFree=true | `vexing_puzzlebox.png`
79×83;10329 B | +| 96 | [风箱](https://sts2.huijiwiki.com/wiki/%E9%A3%8E%E7%AE%B1)
`bellows` | 通用 | 稀有 | — | 你在每场战斗开始时的手牌,将被升级。 | 已接入,待实机 | openingUpgradeHand=true | `bellows.png`
78×81;7584 B | +| 97 | [干瘪之手](https://sts2.huijiwiki.com/wiki/%E5%B9%B2%E7%98%AA%E4%B9%8B%E6%89%8B)
`mummified_hand` | 通用 | 稀有 | — | 你每打出一张能力牌,手牌中就有一张随机牌在这个回合可以免费打出。 | 已接入,待实机 | powerFreeRandom=true | `mummified_hand.png`
75×82;7919 B | +| 98 | [古钱币](https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E9%92%B1%E5%B8%81)
`old_coin` | 通用 | 稀有 | — | 拾起时,获得300金币。 | 已接入,待实机 | gainGold=300 | `old_coin.png`
74×82;8264 B | +| 99 | [骇人头盔](https://sts2.huijiwiki.com/wiki/%E9%AA%87%E4%BA%BA%E5%A4%B4%E7%9B%94)
`intimidating_helmet` | 通用 | 稀有 | — | 每当你打出一张耗能大于等于[能量][能量]的牌,获得4点格挡。 | 待补充,禁入奖励 | 尚缺效果接口:costlyBlock、costlyThreshold | `intimidating_helmet.png`
78×81;8849 B | +| 100 | [壶铃](https://sts2.huijiwiki.com/wiki/%E5%A3%B6%E9%93%83)
`girya` | 通用 | 稀有 | — | 你现在能在休息处获得力量。(最多3次) | 已接入,待实机 | restAction="lift" | `girya.png`
66×80;7017 B | +| 101 | [怀表](https://sts2.huijiwiki.com/wiki/%E6%80%80%E8%A1%A8)
`pocketwatch` | 通用 | 稀有 | — | 当你在本回合打出的牌少于等于3张时,则在你的下个回合开始时额外抽3张牌。 | 已接入,待实机 | fewCardsDraw=3;fewCardsLimit=3 | `pocketwatch.png`
81×71;7534 B | +| 102 | [坚固钳子](https://sts2.huijiwiki.com/wiki/%E5%9D%9A%E5%9B%BA%E9%92%B3%E5%AD%90)
`sturdy_clamp` | 通用 | 稀有 | — | 可以跨回合保留最多10点格挡。 | 已接入,待实机 | keepBlock=10 | `sturdy_clamp.png`
77×79;7020 B | +| 103 | [苦无](https://sts2.huijiwiki.com/wiki/%E8%8B%A6%E6%97%A0)
`kunai` | 通用 | 稀有 | — | 你每在同一回合内打出3张攻击牌,就获得1点敏捷。 | 已接入,待实机 | tripleAttackDexterity=1 | `kunai.png`
81×81;4476 B | +| 104 | [历石](https://sts2.huijiwiki.com/wiki/%E5%8E%86%E7%9F%B3)
`stone_calendar` | 通用 | 稀有 | — | 在第7回合结束时,对所有敌人造成52点伤害。 | 已接入,待实机 | endTurn=7;endTurnDamage=52 | `stone_calendar.png`
81×74;7869 B | +| 105 | [律动残余](https://sts2.huijiwiki.com/wiki/%E5%BE%8B%E5%8A%A8%E6%AE%8B%E4%BD%99)
`beating_remnant` | 通用 | 稀有 | — | 你在一回合内失去的生命值不会超过20点。 | 已接入,待实机 | turnHpLossCap=20 | `beating_remnant.png`
78×81;8688 B | +| 106 | [芒果](https://sts2.huijiwiki.com/wiki/%E8%8A%92%E6%9E%9C)
`mango` | 通用 | 稀有 | — | 拾起时,将你的最大生命值提升14。 | 已接入,待实机 | maxHp=14 | `mango.png`
80×76;9461 B | +| 107 | [棋子](https://sts2.huijiwiki.com/wiki/%E6%A3%8B%E5%AD%90)
`game_piece` | 通用 | 稀有 | — | 每当你打出能力牌时,抽1张牌。 | 已接入,待实机 | powerDraw=1 | `game_piece.png`
60×81;6525 B | +| 108 | [熔火之蛋](https://sts2.huijiwiki.com/wiki/%E7%86%94%E7%81%AB%E4%B9%8B%E8%9B%8B)
`molten_egg` | 通用 | 稀有 | — | 每当你获得攻击牌时,将其升级。 | 已接入,待实机 | upgradeAddedType="attack" | `molten_egg.png`
65×79;8687 B | +| 109 | [手里剑](https://sts2.huijiwiki.com/wiki/%E6%89%8B%E9%87%8C%E5%89%91)
`shuriken` | 通用 | 稀有 | — | 你每在同一回合内打出3张攻击牌,获得1点力量。 | 已接入,待实机 | tripleAttackStrength=1 | `shuriken.png`
81×82;5605 B | +| 110 | [送货员](https://sts2.huijiwiki.com/wiki/%E9%80%81%E8%B4%A7%E5%91%98)
`the_courier` | 通用 | 稀有 | — | 商人的卡牌、遗物和药水不再会卖光,并且所有商品打折20%。 | 梦三适配,待实机 | 梦三商店出售【杀】、回复生命及三件随机遗物;购买后补货,折扣适用现有商品。药水尚无接口。遗物基价120金币,为梦三配置值。 | `the_courier.png`
80×81;8351 B | +| 111 | [孙子兵法](https://sts2.huijiwiki.com/wiki/%E5%AD%99%E5%AD%90%E5%85%B5%E6%B3%95)
`art_of_war` | 通用 | 稀有 | — | 如果你在本回合中没有打出过攻击牌,则在下一回合额外获得1点[能量]。 | 已接入,待实机 | noAttackNextEnergy=1 | `art_of_war.png`
81×57;8052 B | +| 112 | [剃刀牙](https://sts2.huijiwiki.com/wiki/%E5%89%83%E5%88%80%E7%89%99)
`razor_tooth` | 通用 | 稀有 | — | 你打出攻击牌和技能牌时,将其在本场战斗内升级。 | 待补充,禁入奖励 | 尚缺效果接口:upgradePlayed | `razor_tooth.png`
78×81;4581 B | +| 113 | [钨合金棍](https://sts2.huijiwiki.com/wiki/%E9%92%A8%E5%90%88%E9%87%91%E6%A3%8D)
`tungsten_rod` | 通用 | 稀有 | — | 你每次失去生命时,减少失去的生命值1点。 | 已接入,待实机 | reduceHpLoss=1 | `tungsten_rod.png`
80×75;5669 B | +| 114 | [蜥蜴尾巴](https://sts2.huijiwiki.com/wiki/%E8%9C%A5%E8%9C%B4%E5%B0%BE%E5%B7%B4)
`lizard_tail` | 通用 | 稀有 | — | 当你的生命值将要降低至0或以下时,回复到最大生命值的50%(仅能起效一次)。 | 已接入,待实机 | deathHealFraction=0.5 | `lizard_tail.png`
82×81;7566 B | +| 115 | [转经轮](https://sts2.huijiwiki.com/wiki/%E8%BD%AC%E7%BB%8F%E8%BD%AE)
`prayer_wheel` | 通用 | 稀有 | — | 普通敌人额外掉落一次卡牌奖励。 | 待补充,禁入奖励 | 独立的额外卡牌奖励组 | `prayer_wheel.png`
57×81;6409 B | +| 116 | [卡戎之灰](https://sts2.huijiwiki.com/wiki/%E5%8D%A1%E6%88%8E%E4%B9%8B%E7%81%B0)
`charons_ashes` | 铁甲战士 | 稀有 | — | 每当你消耗一张牌,对所有敌人造成3点伤害。 | 已接入,待实机 | exhaustDamage=3 | `charons_ashes.png`
80×79;7056 B | +| 117 | [恶魔之舌](https://sts2.huijiwiki.com/wiki/%E6%81%B6%E9%AD%94%E4%B9%8B%E8%88%8C)
`demon_tongue` | 铁甲战士 | 稀有 | — | 每回合第一次在回合内失去生命值时,回复等量的生命值。 | 待补充,禁入奖励 | 尚缺效果接口:firstTurnLossHeal | `demon_tongue.png`
79×79;5413 B | +| 118 | [损毁头盔](https://sts2.huijiwiki.com/wiki/%E6%8D%9F%E6%AF%81%E5%A4%B4%E7%9B%94)
`ruined_helmet` | 铁甲战士 | 稀有 | — | 你在每场战斗中第一次获得的力量值翻倍。 | 待补充,禁入奖励 | 尚缺效果接口:firstStrengthDouble | `ruined_helmet.png`
67×78;6839 B | +| 119 | [螺线飞镖](https://sts2.huijiwiki.com/wiki/%E8%9E%BA%E7%BA%BF%E9%A3%9E%E9%95%96)
`helical_dart` | 静默猎手 | 稀有 | — | 你每打出一张小刀,就在本回合获得1点敏捷。 | 待补充,禁入奖励 | 小刀牌与静默猎手牌组 | `helical_dart.png`
79×80;6241 B | +| 120 | [纸鹤](https://sts2.huijiwiki.com/wiki/%E7%BA%B8%E9%B9%A4)
`paper_krane` | 静默猎手 | 稀有 | — | 有虚弱状态的敌人造成的伤害降低40%而非25%。 | 梦三适配,待实机 | 依梦三虚弱口径向下取整,敌人攻击倍率0.6。 | `paper_krane.png`
76×78;5861 B | +| 121 | [结实绷带](https://sts2.huijiwiki.com/wiki/%E7%BB%93%E5%AE%9E%E7%BB%B7%E5%B8%A6)
`tough_bandages` | 静默猎手 | 稀有 | — | 你每在你的回合丢弃一张牌,就获得3点格挡。 | 待补充,禁入奖励 | 尚缺效果接口:discardBlock | `tough_bandages.png`
80×78;7351 B | +| 122 | [月亮糕点](https://sts2.huijiwiki.com/wiki/%E6%9C%88%E4%BA%AE%E7%B3%95%E7%82%B9)
`lunar_pastry` | 储君 | 稀有 | — | 在你的回合结束时,获得[辉星]。 | 待补充,禁入奖励 | 辉星系统 | `lunar_pastry.png`
75×81;8027 B | +| 123 | [迷你储君](https://sts2.huijiwiki.com/wiki/%E8%BF%B7%E4%BD%A0%E5%82%A8%E5%90%9B)
`mini_regent` | 储君 | 稀有 | — | 每回合你第一次花费[辉星]时,获得1点力量。 | 待补充,禁入奖励 | 辉星系统 | `mini_regent.png`
66×79;6062 B | +| 124 | [橙色团块](https://sts2.huijiwiki.com/wiki/%E6%A9%99%E8%89%B2%E5%9B%A2%E5%9D%97)
`orange_dough` | 储君 | 稀有 | — | 在每场战斗开始时,将2张随机无色牌加入你的手牌。 | 已接入,待实机 | openingRandom=2;openingRandomPack="colorless" | `orange_dough.png`
78×72;9276 B | +| 125 | [大帽子](https://sts2.huijiwiki.com/wiki/%E5%A4%A7%E5%B8%BD%E5%AD%90)
`big_hat` | 亡灵契约师 | 稀有 | — | 在每场战斗开始时,将2张随机虚无牌加入你的手牌。 | 已接入,待实机 | openingRandom=2;openingRandomEthereal=true | `big_hat.png`
80×72;6382 B | +| 126 | [书签](https://sts2.huijiwiki.com/wiki/%E4%B9%A6%E7%AD%BE)
`bookmark` | 亡灵契约师 | 稀有 | — | 每回合结束时,随机一张被保留的牌在被打出前的耗能减少1。 | 待补充,禁入奖励 | 跨回合保留牌的独立费用下降 | `bookmark.png`
75×79;8190 B | +| 127 | [象牙麻将牌](https://sts2.huijiwiki.com/wiki/%E8%B1%A1%E7%89%99%E9%BA%BB%E5%B0%86%E7%89%8C)
`ivory_tile` | 亡灵契约师 | 稀有 | — | 每当你打出一张耗能大于等于[能量][能量][能量]的牌时,获得[能量]。 | 待补充,禁入奖励 | 尚缺效果接口:costlyEnergy、costlyThreshold | `ivory_tile.png`
58×81;5196 B | +| 128 | [情感芯片](https://sts2.huijiwiki.com/wiki/%E6%83%85%E6%84%9F%E8%8A%AF%E7%89%87)
`emotion_chip` | 故障机器人 | 稀有 | — | 在每回合开始时,如果你在之前回合受到过伤害,则触发所有充能球的被动效果。 | 待补充,禁入奖励 | 充能球系统 | `emotion_chip.png`
78×65;5413 B | +| 129 | [节拍器](https://sts2.huijiwiki.com/wiki/%E8%8A%82%E6%8B%8D%E5%99%A8)
`metronome` | 故障机器人 | 稀有 | — | 每场战斗中你首次生成7个充能球时,对所有敌人造成30点伤害。 | 待补充,禁入奖励 | 充能球系统 | `metronome.png`
63×81;6549 B | +| 130 | [能量电池](https://sts2.huijiwiki.com/wiki/%E8%83%BD%E9%87%8F%E7%94%B5%E6%B1%A0)
`power_cell` | 故障机器人 | 稀有 | — | 在每场战斗开始时,将2张耗能为0的卡牌从你的抽牌堆放入你的手牌。 | 待补充,禁入奖励 | 尚缺效果接口:openingFetchZero | `power_cell.png`
66×81;8248 B | +| 131 | [肮脏地毯](https://sts2.huijiwiki.com/wiki/%E8%82%AE%E8%84%8F%E5%9C%B0%E6%AF%AF)
`dingy_rug` | 通用 | 商店 | — | 卡牌奖励现在会包括无色牌。 | 待补充,禁入奖励 | 尚缺效果接口:allowColorlessRewards | `dingy_rug.png`
80×81;8697 B | +| 132 | [大锅](https://sts2.huijiwiki.com/wiki/%E5%A4%A7%E9%94%85)
`cauldron` | 通用 | 商店 | — | 拾起时,制作5瓶随机药水。 | 待补充,禁入奖励 | 可使用的药水系统 | `cauldron.png`
80×72;7112 B | +| 133 | [多利之镜](https://sts2.huijiwiki.com/wiki/%E5%A4%9A%E5%88%A9%E4%B9%8B%E9%95%9C)
`dollys_mirror` | 通用 | 商店 | — | 拾起时,从你的牌组中选择一张牌进行复制。 | 已接入,待实机 | choice="duplicate";choiceCount=1 | `dollys_mirror.png`
77×81;8280 B | +| 134 | [工具箱](https://sts2.huijiwiki.com/wiki/%E5%B7%A5%E5%85%B7%E7%AE%B1)
`toolbox` | 通用 | 商店 | — | 在每场战斗开始时,从3张随机无色牌中选择1张加入你的手牌。 | 待补充,禁入奖励 | 尚缺效果接口:openingChooseColorless | `toolbox.png`
81×70;6117 B | +| 135 | [化学物X](https://sts2.huijiwiki.com/wiki/%E5%8C%96%E5%AD%A6%E7%89%A9X)
`chemical_x` | 通用 | 商店 | — | 耗能为X的牌的效果数值增加2点。 | 已接入,待实机 | xBonus=2 | `chemical_x.png`
63×78;4646 B | +| 136 | [会员卡](https://sts2.huijiwiki.com/wiki/%E4%BC%9A%E5%91%98%E5%8D%A1)
`membership_card` | 通用 | 商店 | — | 所有商品打折50%! | 已接入,待实机 | shopDiscount=0.5 | `membership_card.png`
81×69;7343 B | +| 137 | [火龙果](https://sts2.huijiwiki.com/wiki/%E7%81%AB%E9%BE%99%E6%9E%9C)
`dragon_fruit` | 通用 | 商店 | — | 每当你获得金币时,提升1点你的最大生命值。 | 已接入,待实机 | goldGainMaxHp=1 | `dragon_fruit.png`
74×75;9003 B | +| 138 | [尖叫酒壶](https://sts2.huijiwiki.com/wiki/%E5%B0%96%E5%8F%AB%E9%85%92%E5%A3%B6)
`screaming_flagon` | 通用 | 商店 | — | 如果你在回合结束时没有任何手牌,则对所有敌人造成20点伤害。 | 待补充,禁入奖励 | 尚缺效果接口:emptyHandDamage | `screaming_flagon.png`
64×79;7754 B | +| 139 | [李家华夫饼](https://sts2.huijiwiki.com/wiki/%E6%9D%8E%E5%AE%B6%E5%8D%8E%E5%A4%AB%E9%A5%BC)
`lees_waffle` | 通用 | 商店 | — | 拾起时,将你的最大生命值提升7点,并回复所有生命。 | 已接入,待实机 | maxHp=7;fullHeal=true | `lees_waffle.png`
81×79;8818 B | +| 140 | [面包](https://sts2.huijiwiki.com/wiki/%E9%9D%A2%E5%8C%85)
`bread` | 通用 | 商店 | — | 在你的第一个回合开始时,失去[能量][能量]。在其余的回合开始时,获得[能量]。 | 待补充,禁入奖励 | 尚缺效果接口:laterTurnEnergy | `bread.png`
80×60;7202 B | +| 141 | [木札](https://sts2.huijiwiki.com/wiki/%E6%9C%A8%E6%9C%AD)
`kifuda` | 通用 | 商店 | — | 拾起时,从你的牌组中选择至多3张牌,附魔:伶俐。 | 待补充,禁入奖励 | 伶俐附魔 | `kifuda.png`
73×77;7972 B | +| 142 | [扭曲锤子](https://sts2.huijiwiki.com/wiki/%E6%89%AD%E6%9B%B2%E9%94%A4%E5%AD%90)
`gnarled_hammer` | 通用 | 商店 | — | 拾起时,从你的牌组中选择至多3张攻击牌,附魔:锋利3。 | 待补充,禁入奖励 | 锋利附魔 | `gnarled_hammer.png`
78×58;5429 B | +| 143 | [拳刃](https://sts2.huijiwiki.com/wiki/%E6%8B%B3%E5%88%83)
`punch_dagger` | 通用 | 商店 | — | 拾起时,选择一张攻击牌为它附魔:动量5。 | 待补充,禁入奖励 | 动量附魔 | `punch_dagger.png`
79×80;5670 B | +| 144 | [燃烧木棍](https://sts2.huijiwiki.com/wiki/%E7%87%83%E7%83%A7%E6%9C%A8%E6%A3%8D)
`burning_sticks` | 通用 | 商店 | — | 每场战斗中你第一次消耗技能牌时,将那张牌的复制品加入你的手牌 | 待补充,禁入奖励 | 尚缺效果接口:firstSkillExhaustCopy | `burning_sticks.png`
80×80;7372 B | +| 145 | [熔岩灯](https://sts2.huijiwiki.com/wiki/%E7%86%94%E5%B2%A9%E7%81%AF)
`lava_lamp` | 通用 | 商店 | — | 在战斗结束时,如果你没有受到伤害,则升级你的所有卡牌奖励。 | 待补充,禁入奖励 | 奖励候选逐张升级与无伤结算记录 | `lava_lamp.png`
62×80;5447 B | +| 146 | [三角铃鼓](https://sts2.huijiwiki.com/wiki/%E4%B8%89%E8%A7%92%E9%93%83%E9%BC%93)
`ringing_triangle` | 通用 | 商店 | — | 在每场战斗的第一回合保留你的手牌。 | 已接入,待实机 | firstTurnRetain=true | `ringing_triangle.png`
80×81;6181 B | +| 147 | [神秘打火机](https://sts2.huijiwiki.com/wiki/%E7%A5%9E%E7%A7%98%E6%89%93%E7%81%AB%E6%9C%BA)
`mystic_lighter` | 通用 | 商店 | — | 有附魔的攻击牌额外造成9点伤害。 | 待补充,禁入奖励 | STS2 附魔系统(现有词缀不是网页附魔) | `mystic_lighter.png`
72×78;6646 B | +| 148 | [算盘](https://sts2.huijiwiki.com/wiki/%E7%AE%97%E7%9B%98)
`the_abacus` | 通用 | 商店 | — | 你每次将抽牌堆洗牌时,获得6点格挡。 | 已接入,待实机 | shuffleBlock=6 | `the_abacus.png`
80×65;7153 B | +| 149 | [王室印章](https://sts2.huijiwiki.com/wiki/%E7%8E%8B%E5%AE%A4%E5%8D%B0%E7%AB%A0)
`royal_stamp` | 通用 | 商店 | — | 拾起时,从牌组中选择一张攻击牌或技能牌,为它附魔:王室认证。 | 待补充,禁入奖励 | 王室认证附魔 | `royal_stamp.png`
59×80;5318 B | +| 150 | [微型帐篷](https://sts2.huijiwiki.com/wiki/%E5%BE%AE%E5%9E%8B%E5%B8%90%E7%AF%B7)
`miniature_tent` | 通用 | 商店 | — | 你可以在休息处选择任意数量的选项。 | 梦三适配,待实机 | 每个休息选项可各选择一次,直至选择离开;不允许无限重复同一选项。 | `miniature_tent.png`
81×76;6993 B | +| 151 | [星系仪](https://sts2.huijiwiki.com/wiki/%E6%98%9F%E7%B3%BB%E4%BB%AA)
`orrery` | 通用 | 商店 | — | 拾起时,获得5次卡牌奖励 | 已接入,待实机 | cardChoices=5 | `orrery.png`
81×80;8419 B | +| 152 | [腰带扣](https://sts2.huijiwiki.com/wiki/%E8%85%B0%E5%B8%A6%E6%89%A3)
`belt_buckle` | 通用 | 商店 | — | 当你没有药水时,你额外拥有2点敏捷。 | 待补充,禁入奖励 | 可使用的药水系统 | `belt_buckle.png`
77×63;7132 B | +| 153 | [勇气投石索](https://sts2.huijiwiki.com/wiki/%E5%8B%87%E6%B0%94%E6%8A%95%E7%9F%B3%E7%B4%A2)
`sling_of_courage` | 通用 | 商店 | — | 在与精英敌人战斗时,获得2点力量。 | 已接入,待实机 | eliteOpeningStrength=2 | `sling_of_courage.png`
81×77;6202 B | +| 154 | [幽灵种子](https://sts2.huijiwiki.com/wiki/%E5%B9%BD%E7%81%B5%E7%A7%8D%E5%AD%90)
`ghost_seed` | 通用 | 商店 | — | 打击和防御获得虚无。 | 待补充,禁入奖励 | 尚缺效果接口:starterVoid | `ghost_seed.png`
71×78;7167 B | +| 155 | [羽翼护符](https://sts2.huijiwiki.com/wiki/%E7%BE%BD%E7%BF%BC%E6%8A%A4%E7%AC%A6)
`wing_charm` | 通用 | 商店 | — | 每次卡牌奖励中,都会有随机一张牌被附魔:迅捷1。 | 待补充,禁入奖励 | 迅捷附魔 | `wing_charm.png`
76×76;7790 B | +| 156 | [硫磺](https://sts2.huijiwiki.com/wiki/%E7%A1%AB%E7%A3%BA)
`brimstone` | 铁甲战士 | 商店 | — | 在你的每个回合开始时,你获得2点力量,所有敌人获得1点力量。 | 待补充,禁入奖励 | 尚缺效果接口:turnStrength、enemyTurnStrength | `brimstone.png`
79×72;7533 B | +| 157 | [忍术卷轴](https://sts2.huijiwiki.com/wiki/%E5%BF%8D%E6%9C%AF%E5%8D%B7%E8%BD%B4)
`ninja_scroll` | 静默猎手 | 商店 | — | 每场战斗开始时,将3张小刀加入你的手牌。 | 待补充,禁入奖励 | 小刀牌与静默猎手牌组 | `ninja_scroll.png`
78×79;8733 B | +| 158 | [维特鲁威仆从](https://sts2.huijiwiki.com/wiki/%E7%BB%B4%E7%89%B9%E9%B2%81%E5%A8%81%E4%BB%86%E4%BB%8E)
`vitruvian_minion` | 储君 | 商店 | — | 名字中有“仆从”的卡牌造成双倍的伤害与格挡。 | 待补充,禁入奖励 | 仆从牌与储君牌组 | `vitruvian_minion.png`
81×81;9816 B | +| 159 | [不死符文](https://sts2.huijiwiki.com/wiki/%E4%B8%8D%E6%AD%BB%E7%AC%A6%E6%96%87)
`undying_sigil` | 亡灵契约师 | 商店 | — | 当敌人的灾厄层数大于等于其生命值时,它造成的伤害降低50%。 | 待补充,禁入奖励 | 灾厄系统 | `undying_sigil.png`
78×75;9913 B | +| 160 | [符文电容器](https://sts2.huijiwiki.com/wiki/%E7%AC%A6%E6%96%87%E7%94%B5%E5%AE%B9%E5%99%A8)
`runic_capacitor` | 故障机器人 | 商店 | — | 每场战斗开始时,获得3个额外充能球栏位。 | 待补充,禁入奖励 | 充能球系统 | `runic_capacitor.png`
79×80;6900 B | +| 161 | [奥术卷轴](https://sts2.huijiwiki.com/wiki/%E5%A5%A5%E6%9C%AF%E5%8D%B7%E8%BD%B4)
`arcane_scroll` | 通用 | 先古之民 | 涅奥 | 拾起时,将一张随机稀有牌加入你的牌组。 | 已接入,待实机 | gainRandomRarity="rare" | `arcane_scroll.png`
80×79;6664 B | +| 162 | [白银熔炉](https://sts2.huijiwiki.com/wiki/%E7%99%BD%E9%93%B6%E7%86%94%E7%82%89)
`silver_crucible` | 通用 | 先古之民 | 涅奥 | 你遇到的前3次卡牌奖励将是被升级过的。你打开的第一个宝箱将是空的 | 待补充,禁入奖励 | 前三次卡牌奖励升级和空宝箱流程 | `silver_crucible.png`
74×79;9964 B | +| 163 | [沉重石板](https://sts2.huijiwiki.com/wiki/%E6%B2%89%E9%87%8D%E7%9F%B3%E6%9D%BF)
`hefty_tablet` | 通用 | 先古之民 | 涅奥 | 拾起时,从3张稀有牌中选择1张加入你的牌组,同时将1张受伤加入你的牌组。 | 已接入,待实机 | cardChoices=1;cardChoiceRarity="rare";addCards=["mengsan_wound_shuying"] | `hefty_tablet.png`
79×80;9092 B | +| 164 | [橙型香盒](https://sts2.huijiwiki.com/wiki/%E6%A9%99%E5%9E%8B%E9%A6%99%E7%9B%92)
`pomander` | 通用 | 先古之民 | 涅奥 | 拾起时,升级一张牌。 | 已接入,待实机 | choice="upgrade";choiceCount=1 | `pomander.png`
72×80;5863 B | +| 165 | [钓鱼竿](https://sts2.huijiwiki.com/wiki/%E9%92%93%E9%B1%BC%E7%AB%BF)
`fishing_rod` | 通用 | 先古之民 | 涅奥 | 每3场普通战斗,随机升级你牌组中的一张牌。 | 已接入,待实机 | normalBattleUpgradeEvery=3 | `fishing_rod.png`
79×81;5623 B | +| 166 | [轰鸣海螺](https://sts2.huijiwiki.com/wiki/%E8%BD%B0%E9%B8%A3%E6%B5%B7%E8%9E%BA)
`booming_conch` | 通用 | 先古之民 | 涅奥 | 在精英战的战斗开始时,额外抽2张牌并获得[能量]。 | 已接入,待实机 | eliteOpeningDraw=2;eliteFirstTurnEnergy=1 | `booming_conch.png`
79×79;9466 B | +| 167 | [华美发束](https://sts2.huijiwiki.com/wiki/%E5%8D%8E%E7%BE%8E%E5%8F%91%E6%9D%9F)
`silken_tress` | 通用 | 先古之民 | 涅奥 | 拾起时,失去所有金币。为第一次卡牌奖励中的所有牌附魔:华彩。 | 待补充,禁入奖励 | 华彩附魔 | `silken_tress.png`
80×79;6040 B | +| 168 | [金色珍珠](https://sts2.huijiwiki.com/wiki/%E9%87%91%E8%89%B2%E7%8F%8D%E7%8F%A0)
`golden_pearl` | 通用 | 先古之民 | 涅奥 | 拾起时,获得150金币。 | 已接入,待实机 | gainGold=150 | `golden_pearl.png`
78×79;8246 B | +| 169 | [精准剪刀](https://sts2.huijiwiki.com/wiki/%E7%B2%BE%E5%87%86%E5%89%AA%E5%88%80)
`precise_scissors` | 通用 | 先古之民 | 涅奥 | 拾起时,从你的牌组中移除1张牌。 | 已接入,待实机 | choice="remove";choiceCount=1 | `precise_scissors.png`
81×76;6160 B | +| 170 | [巨大卷轴](https://sts2.huijiwiki.com/wiki/%E5%B7%A8%E5%A4%A7%E5%8D%B7%E8%BD%B4)
`massive_scroll` | 通用 | 先古之民 | 涅奥 | 拾起时,从3张多人游戏牌中选择1张加入你的牌组。 | 待补充,禁入奖励 | 多人游戏牌池 | `massive_scroll.png`
81×78;7672 B | +| 171 | [巨大扭蛋](https://sts2.huijiwiki.com/wiki/%E5%B7%A8%E5%A4%A7%E6%89%AD%E8%9B%8B)
`large_capsule` | 通用 | 先古之民 | 涅奥 | 拾起时,获得2件随机遗物。额外将一对打击和防御,加入你的牌组。 | 已接入,待实机 | randomRelics=2;addStarters=true | `large_capsule.png`
79×79;8368 B | +| 172 | [卷轴箱](https://sts2.huijiwiki.com/wiki/%E5%8D%B7%E8%BD%B4%E7%AE%B1)
`scroll_boxes` | 通用 | 先古之民 | 涅奥 | 拾起时,从2个卡牌包中选择1包加入你的牌组。 | 待补充,禁入奖励 | 网页指定卡牌包 | `scroll_boxes.png`
80×80;8801 B | +| 173 | [涅奥的护符](https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E7%9A%84%E6%8A%A4%E7%AC%A6)
`neows_talisman` | 通用 | 先古之民 | 涅奥 | 拾起时,升级你的1张打击和1张防御。 | 已接入,待实机 | upgradeStarters=true | `neows_talisman.png`
68×79;7091 B | +| 174 | [涅奥的苦痛](https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E7%9A%84%E8%8B%A6%E7%97%9B)
`neows_torment` | 通用 | 先古之民 | 涅奥 | 拾起时,将1张涅奥之怒加入你的牌组。 | 已接入,待实机 | addCards=["mengsan_event_neows_fury"] | `neows_torment.png`
80×79;10310 B | +| 175 | [涅奥骨骰](https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E9%AA%A8%E9%AA%B0)
`neows_bones` | 通用 | 先古之民 | 涅奥 | 拾起时,获得2件随机涅奥遗物。将1张随机诅咒加入你的牌组。 | 已接入,待实机 | randomRelics=2;randomRelicAncient="涅奥";randomCurse=1 | `neows_bones.png`
80×80;7057 B | +| 176 | [铅制镇纸](https://sts2.huijiwiki.com/wiki/%E9%93%85%E5%88%B6%E9%95%87%E7%BA%B8)
`lead_paperweight` | 通用 | 先古之民 | 涅奥 | 拾起时,从2张无色牌中选择1张加入你的牌组。 | 已接入,待实机 | cardChoices=1;cardChoicePack="colorless";choiceOfferCount=2 | `lead_paperweight.png`
79×64;8083 B | +| 177 | [熔岩石](https://sts2.huijiwiki.com/wiki/%E7%86%94%E5%B2%A9%E7%9F%B3)
`lava_rock` | 通用 | 先古之民 | 涅奥 | 第一阶段的Boss敌人额外掉落2件遗物。 | 已接入,待实机 | actOneBossRelics=2 | `lava_rock.png`
79×79;9918 B | +| 178 | [失物盒](https://sts2.huijiwiki.com/wiki/%E5%A4%B1%E7%89%A9%E7%9B%92)
`lost_coffer` | 通用 | 先古之民 | 涅奥 | 拾起时,获得1次卡牌奖励和1瓶随机药水。 | 待补充,禁入奖励 | 药水奖励系统 | `lost_coffer.png`
79×72;8032 B | +| 179 | [石炉加湿器](https://sts2.huijiwiki.com/wiki/%E7%9F%B3%E7%82%89%E5%8A%A0%E6%B9%BF%E5%99%A8)
`stone_humidifier` | 通用 | 先古之民 | 涅奥 | 每当你在休息处休息时,将你的最大生命值提升5点。 | 已接入,待实机 | restMaxHp=5 | `stone_humidifier.png`
79×77;9221 B | +| 180 | [树叶药膏](https://sts2.huijiwiki.com/wiki/%E6%A0%91%E5%8F%B6%E8%8D%AF%E8%86%8F)
`leafy_poultice` | 通用 | 先古之民 | 涅奥 | 拾起时,变化你的1张打击和1张防御,然后失去12点最大生命。 | 已接入,待实机 | transformStarters=true;maxHp=-12 | `leafy_poultice.png`
79×79;8769 B | +| 181 | [松动羊毛剪](https://sts2.huijiwiki.com/wiki/%E6%9D%BE%E5%8A%A8%E7%BE%8A%E6%AF%9B%E5%89%AA)
`precarious_shears` | 通用 | 先古之民 | 涅奥 | 拾起时,从你的牌组中移除2张牌并失去16点生命。 | 梦三适配,待实机 | 选牌后扣除16点生命;当前地图流程保留至少1点生命,待补充非战斗死亡结算。 | `precarious_shears.png`
81×81;5004 B | +| 182 | [万花筒](https://sts2.huijiwiki.com/wiki/%E4%B8%87%E8%8A%B1%E7%AD%92)
`kaleidoscope` | 通用 | 先古之民 | 涅奥 | 拾起时,获得2次来自其他角色的卡牌奖励。 | 待补充,禁入奖励 | 其他四角色牌组 | `kaleidoscope.png`
78×79;7365 B | +| 183 | [小型扭蛋](https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E5%9E%8B%E6%89%AD%E8%9B%8B)
`small_capsule` | 通用 | 先古之民 | 涅奥 | 拾起时,获得一件随机遗物。 | 已接入,待实机 | randomRelics=1 | `small_capsule.png`
66×73;7306 B | +| 184 | [新叶](https://sts2.huijiwiki.com/wiki/%E6%96%B0%E5%8F%B6)
`new_leaf` | 通用 | 先古之民 | 涅奥 | 拾起时,变化1张牌。 | 已接入,待实机 | choice="transform";choiceCount=1 | `new_leaf.png`
76×78;7802 B | +| 185 | [药瓶皮套](https://sts2.huijiwiki.com/wiki/%E8%8D%AF%E7%93%B6%E7%9A%AE%E5%A5%97)
`phial_holster` | 通用 | 先古之民 | 涅奥 | 拾起时,获得1个药水栏位并获得2瓶随机药水。 | 待补充,禁入奖励 | 药水系统 | `phial_holster.png`
77×80;7794 B | +| 186 | [营养牡蛎](https://sts2.huijiwiki.com/wiki/%E8%90%A5%E5%85%BB%E7%89%A1%E8%9B%8E)
`nutritious_oyster` | 通用 | 先古之民 | 涅奥 | 拾起时,将你的最大生命值提升11。 | 已接入,待实机 | maxHp=11 | `nutritious_oyster.png`
79×78;7897 B | +| 187 | [羽翼之靴](https://sts2.huijiwiki.com/wiki/%E7%BE%BD%E7%BF%BC%E4%B9%8B%E9%9D%B4)
`winged_boots` | 通用 | 先古之民 | 涅奥 | 你在选择下一层的房间时有3次机会可以无视当前的路线。 | 待补充,禁入奖励 | 路线越界选择和次数确认 | `winged_boots.png`
77×80;6578 B | +| 188 | [诅咒珍珠](https://sts2.huijiwiki.com/wiki/%E8%AF%85%E5%92%92%E7%8F%8D%E7%8F%A0)
`cursed_pearl` | 通用 | 先古之民 | 涅奥 | 拾起时,获得一张贪婪,获得333金币。 | 已接入,待实机 | addCards=["mengsan_curse_greed"];gainGold=333 | `cursed_pearl.png`
80×77;7285 B | +| 189 | [玻璃眼珠](https://sts2.huijiwiki.com/wiki/%E7%8E%BB%E7%92%83%E7%9C%BC%E7%8F%A0)
`glass_eye` | 通用 | 先古之民 | 欧洛巴斯 | 拾起时,获得2组普通、2组罕见、和1组稀有卡牌奖励。 | 已接入,待实机 | cardChoiceRarities=["common","common","uncommon","uncommon","rare"] | `glass_eye.png`
71×71;6006 B | +| 190 | [发光珍珠](https://sts2.huijiwiki.com/wiki/%E5%8F%91%E5%85%89%E7%8F%8D%E7%8F%A0)
`radiant_pearl` | 通用 | 先古之民 | 欧洛巴斯 | 在每场战斗开始时,将1张冷光加入你的手牌。 | 待补充,禁入奖励 | 尚缺网页对应卡牌:mengsan_event_glow | `radiant_pearl.png`
74×77;7698 B | +| 191 | [放电异虾](https://sts2.huijiwiki.com/wiki/%E6%94%BE%E7%94%B5%E5%BC%82%E8%99%BE)
`electric_shrymp` | 通用 | 先古之民 | 欧洛巴斯 | 拾起时,选择一张技能牌为它附魔:注能。 | 待补充,禁入奖励 | 注能附魔 | `electric_shrymp.png`
77×77;8709 B | +| 192 | [浮木](https://sts2.huijiwiki.com/wiki/%E6%B5%AE%E6%9C%A8)
`driftwood` | 通用 | 先古之民 | 欧洛巴斯 | 你可以在每一个卡牌奖励中重掷一次。 | 待补充,禁入奖励 | 独立奖励重掷流程 | `driftwood.png`
76×79;6988 B | +| 193 | [古老牙齿](https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E8%80%81%E7%89%99%E9%BD%BF)
`archaic_tooth` | 通用 | 先古之民 | 欧洛巴斯 | 拾起时,将一张初始卡牌变化为先古版本。 | 待补充,禁入奖励 | 先古版本初始牌对应表 | `archaic_tooth.png`
81×78;7478 B | +| 194 | [海玻璃](https://sts2.huijiwiki.com/wiki/%E6%B5%B7%E7%8E%BB%E7%92%83)
`sea_glass` | 通用 | 先古之民 | 欧洛巴斯 | 查看15张来自其他角色的牌。从中选择任意数量的卡牌加入你的牌组。 | 待补充,禁入奖励 | 其他四角色牌组 | `sea_glass.png`
79×67;6380 B | +| 195 | [棱彩宝石](https://sts2.huijiwiki.com/wiki/%E6%A3%B1%E5%BD%A9%E5%AE%9D%E7%9F%B3)
`prismatic_gem` | 通用 | 先古之民 | 欧洛巴斯 | 在每个回合开始时获得[能量]。卡牌奖励现在会包含其他颜色的卡牌。 | 待补充,禁入奖励 | 其他四角色牌组 | `prismatic_gem.png`
81×71;7194 B | +| 196 | [炼金箱](https://sts2.huijiwiki.com/wiki/%E7%82%BC%E9%87%91%E7%AE%B1)
`alchemical_coffer` | 通用 | 先古之民 | 欧洛巴斯 | 拾起时,获得4个放有随机药水的药水栏位。 | 待补充,禁入奖励 | 可使用的药水系统 | `alchemical_coffer.png`
80×80;9259 B | +| 197 | [欧洛巴斯之触](https://sts2.huijiwiki.com/wiki/%E6%AC%A7%E6%B4%9B%E5%B7%B4%E6%96%AF%E4%B9%8B%E8%A7%A6)
`touch_of_orobas` | 通用 | 先古之民 | 欧洛巴斯 | 拾起时,将你的初始遗物替换为先古版本。 | 待补充,禁入奖励 | 初始遗物配置与替换选择 | `touch_of_orobas.png`
69×74;6276 B | +| 198 | [沙堡](https://sts2.huijiwiki.com/wiki/%E6%B2%99%E5%A0%A1)
`sand_castle` | 通用 | 先古之民 | 欧洛巴斯 | 拾起时,随机升级6张牌。 | 已接入,待实机 | gainUpgrade=6 | `sand_castle.png`
79×79;7105 B | +| 199 | [佩尔的士兵](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E7%9A%84%E5%A3%AB%E5%85%B5)
`paels_legion` | 通用 | 先古之民 | 佩尔 | 将你从一张卡牌中获得的格挡翻倍,然后此遗物会休眠2回合。 | 待补充,禁入奖励 | 尚缺效果接口:cardBlockDoubleCooldown | `paels_legion.png`
81×71;7283 B | +| 200 | [佩尔的增生组织](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E7%9A%84%E5%A2%9E%E7%94%9F%E7%BB%84%E7%BB%87)
`paels_growth` | 通用 | 先古之民 | 佩尔 | 拾起时,从牌组中选择一张牌,为其附魔:克隆。 | 待补充,禁入奖励 | 克隆附魔 | `paels_growth.png`
76×81;6822 B | +| 201 | [佩尔之角](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E8%A7%92)
`paels_horn` | 通用 | 先古之民 | 佩尔 | 拾起时,将2张放松加入你的牌组。 | 已接入,待实机 | addCards=["mengsan_event_relax","mengsan_event_relax"] | `paels_horn.png`
81×70;5595 B | +| 202 | [佩尔之泪](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E6%B3%AA)
`paels_tears` | 通用 | 先古之民 | 佩尔 | 如果你在拥有未花费的[能量]情况下结束回合,则下个回合额外获得[能量][能量]。 | 已接入,待实机 | unspentNextEnergy=2 | `paels_tears.png`
76×79;7590 B | +| 203 | [佩尔之肉](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E8%82%89)
`paels_flesh` | 通用 | 先古之民 | 佩尔 | 从你的第3回合开始,在回合开始时额外获得[能量]。 | 已接入,待实机 | fromTurn=3;turnEnergy=1 | `paels_flesh.png`
83×82;7830 B | +| 204 | [佩尔之血](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E8%A1%80)
`paels_blood` | 通用 | 先古之民 | 佩尔 | 在你的回合开始时,额外抽1张牌 | 已接入,待实机 | turnDraw=1 | `paels_blood.png`
81×77;7744 B | +| 205 | [佩尔之牙](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%89%99)
`paels_tooth` | 通用 | 先古之民 | 佩尔 | 拾起时,从你的牌组中选择5张牌移除。在每场战斗结束时,将其中随机1张牌升级然后返还。 | 已接入,待实机 | choice="store";choiceCount=5;returnStored=true | `paels_tooth.png`
69×79;5939 B | +| 206 | [佩尔之眼](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%9C%BC)
`paels_eye` | 通用 | 先古之民 | 佩尔 | 你在每场战斗中第一次没有打出任何牌就结束回合时,消耗所有手牌然后进行一个额外回合。 | 待补充,禁入奖励 | 尚缺效果接口:noCardsExtraTurn | `paels_eye.png`
73×73;5024 B | +| 207 | [佩尔之翼](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%BF%BC)
`paels_wing` | 通用 | 先古之民 | 佩尔 | 你可以将你的卡牌奖励献祭给佩尔。每献祭2次,就能获得一件遗物。 | 待补充,禁入奖励 | 奖励献祭流程 | `paels_wing.png`
83×78;7217 B | +| 208 | [佩尔之爪](https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%88%AA)
`paels_claw` | 通用 | 先古之民 | 佩尔 | 拾起时,为所有的“防御”附魔:黏糊。 | 待补充,禁入奖励 | 黏糊附魔 | `paels_claw.png`
75×81;4364 B | +| 209 | [大~抱抱](https://sts2.huijiwiki.com/wiki/%E5%A4%A7%EF%BD%9E%E6%8A%B1%E6%8A%B1)
`biiig_hug` | 通用 | 先古之民 | 特兹卡塔拉 | 拾起时,从你的牌组中移除4张牌。每当你的抽牌堆打乱洗牌时,将一张煤灰加入你的抽牌堆。 | 待补充,禁入奖励 | 尚缺效果接口:shuffleCard | `biiig_hug.png`
79×79;8590 B | +| 210 | [故事书](https://sts2.huijiwiki.com/wiki/%E6%95%85%E4%BA%8B%E4%B9%A6)
`storybook` | 通用 | 先古之民 | 特兹卡塔拉 | 拾起时,将1张至亮之焰添加到你的牌组中。 | 已接入,待实机 | addCards=["mengsan_event_brightest_flame"] | `storybook.png`
73×77;6422 B | +| 211 | [烘焙手套](https://sts2.huijiwiki.com/wiki/%E7%83%98%E7%84%99%E6%89%8B%E5%A5%97)
`toasty_mittens` | 通用 | 先古之民 | 特兹卡塔拉 | 在你的回合开始时,消耗你抽牌堆顶部的牌并获得1点力量。 | 待补充,禁入奖励 | 尚缺效果接口:exhaustTopStrength | `toasty_mittens.png`
81×77;7792 B | +| 212 | [黄金罗盘](https://sts2.huijiwiki.com/wiki/%E9%BB%84%E9%87%91%E7%BD%97%E7%9B%98)
`golden_compass` | 通用 | 先古之民 | 特兹卡塔拉 | 拾起时,将第2阶段的地图替换为一条特殊的直道。 | 待补充,禁入奖励 | 第二章特殊直道地图数据 | `golden_compass.png`
78×73;8894 B | +| 213 | [黄金印](https://sts2.huijiwiki.com/wiki/%E9%BB%84%E9%87%91%E5%8D%B0)
`seal_of_gold` | 通用 | 先古之民 | 特兹卡塔拉 | 在你的回合开始时,花费5金币来获得[能量]。 | 已接入,待实机 | paidTurnEnergy=1;paidTurnGold=5 | `seal_of_gold.png`
77×78;7204 B | +| 214 | [美味饼干](https://sts2.huijiwiki.com/wiki/%E7%BE%8E%E5%91%B3%E9%A5%BC%E5%B9%B2)
`yummy_cookie` | 通用 | 先古之民 | 特兹卡塔拉 | 拾起时,升级4张牌。 | 已接入,待实机 | gainUpgrade=4 | `yummy_cookie_ironclad.png`
79×74;8499 B | +| 215 | [南瓜蜡烛](https://sts2.huijiwiki.com/wiki/%E5%8D%97%E7%93%9C%E8%9C%A1%E7%83%9B)
`pumpkin_candle` | 通用 | 先古之民 | 特兹卡塔拉 | 在每个回合开始时获得[能量]。这件遗物会在5场战斗后熄灭。可以在休息处为其添火。 | 已接入,待实机 | candleEnergy=1;candleBattles=5;restAction="rekindle" | `pumpkin_candle.png`
81×76;7532 B | +| 216 | [烫嘴可可](https://sts2.huijiwiki.com/wiki/%E7%83%AB%E5%98%B4%E5%8F%AF%E5%8F%AF)
`very_hot_cocoa` | 通用 | 先古之民 | 特兹卡塔拉 | 在每场战斗的第一回合额外获得[能量][能量][能量][能量]。 | 已接入,待实机 | firstTurnEnergy=4 | `very_hot_cocoa.png`
81×80;7690 B | +| 217 | [玩具盒](https://sts2.huijiwiki.com/wiki/%E7%8E%A9%E5%85%B7%E7%9B%92)
`toy_box` | 通用 | 先古之民 | 特兹卡塔拉 | 拾起时,获得4件蜡制遗物。每经过3场战斗,你最左侧的蜡制遗物将会融化。 | 待补充,禁入奖励 | 蜡制遗物名单与融化规则 | `toy_box.png`
82×78;8576 B | +| 218 | [营养汤](https://sts2.huijiwiki.com/wiki/%E8%90%A5%E5%85%BB%E6%B1%A4)
`nutritious_soup` | 通用 | 先古之民 | 特兹卡塔拉 | 拾起时,为你牌组中的所有“打击”附魔:特兹卡塔拉的余烬 | 待补充,禁入奖励 | 特兹卡塔拉的余烬附魔 | `nutritious_soup.png`
80×73;8375 B | +| 219 | [布质果实](https://sts2.huijiwiki.com/wiki/%E5%B8%83%E8%B4%A8%E6%9E%9C%E5%AE%9E)
`looming_fruit` | 通用 | 先古之民 | 诺奴佩普 | 拾起时,将你的最大生命值提升31。 | 已接入,待实机 | maxHp=31 | `looming_fruit_2.png`
80×78;8357 B | +| 220 | [赐福鹿角](https://sts2.huijiwiki.com/wiki/%E8%B5%90%E7%A6%8F%E9%B9%BF%E8%A7%92)
`blessed_antler` | 通用 | 先古之民 | 诺奴佩普 | 在每回合开始时获得[能量]。在战斗开始时,将3张晕眩放入你的抽牌堆。 | 已接入,待实机 | turnEnergy=1;openingDrawCards=["mengsan_dazed_shuying","mengsan_dazed_shuying","mengsan_dazed_shuying"] | `blessed_antler.png`
77×80;8151 B | +| 221 | [华美手镯](https://sts2.huijiwiki.com/wiki/%E5%8D%8E%E7%BE%8E%E6%89%8B%E9%95%AF)
`beautiful_bracelet` | 通用 | 先古之民 | 诺奴佩普 | 拾起时,从你的牌组中选择3张牌,附魔:迅捷3。 | 待补充,禁入奖励 | 迅捷附魔 | `beautiful_bracelet.png`
79×78;7662 B | +| 222 | [娇嫩蕨草](https://sts2.huijiwiki.com/wiki/%E5%A8%87%E5%AB%A9%E8%95%A8%E8%8D%89)
`delicate_frond` | 通用 | 先古之民 | 诺奴佩普 | 在每场战斗开始时,用随机药水将你的空药水栏位填满。 | 待补充,禁入奖励 | 药水系统 | `delicate_frond.png`
79×77;6737 B | +| 223 | [亮片](https://sts2.huijiwiki.com/wiki/%E4%BA%AE%E7%89%87)
`glitter` | 通用 | 先古之民 | 诺奴佩普 | 为之后的所有卡牌奖励附魔:华彩。 | 待补充,禁入奖励 | 华彩附魔 | `glitter.png`
81×80;8304 B | +| 224 | [皮草大衣](https://sts2.huijiwiki.com/wiki/%E7%9A%AE%E8%8D%89%E5%A4%A7%E8%A1%A3)
`fur_coat` | 通用 | 先古之民 | 诺奴佩普 | 拾起时,随机标记7处战斗。这些战斗中的敌人将只有1点生命。 | 待补充,禁入奖励 | 尚缺效果接口:markBattles | `fur_coat.png`
81×80;10183 B | +| 225 | [图章戒指](https://sts2.huijiwiki.com/wiki/%E5%9B%BE%E7%AB%A0%E6%88%92%E6%8C%87)
`signet_ring` | 通用 | 先古之民 | 诺奴佩普 | 拾起时,获得999金币。 | 已接入,待实机 | gainGold=999 | `signet_ring.png`
63×80;6190 B | +| 226 | [艳丽围巾](https://sts2.huijiwiki.com/wiki/%E8%89%B3%E4%B8%BD%E5%9B%B4%E5%B7%BE)
`brilliant_scarf` | 通用 | 先古之民 | 诺奴佩普 | 你每回合从你的手牌打出的第5张牌可以被免费打出。 | 已接入,待实机 | fifthCardFree=true | `brilliant_scarf.png`
79×79;7458 B | +| 227 | [珠宝盒](https://sts2.huijiwiki.com/wiki/%E7%8F%A0%E5%AE%9D%E7%9B%92)
`jewelry_box` | 通用 | 先古之民 | 诺奴佩普 | 拾起时,将1张神化加入你的牌组。 | 已接入,待实机 | addCards=["mengsan_event_apotheosis"] | `jewelry_box.png`
79×68;7348 B | +| 228 | [钻石头冠](https://sts2.huijiwiki.com/wiki/%E9%92%BB%E7%9F%B3%E5%A4%B4%E5%86%A0)
`diamond_diadem` | 通用 | 先古之民 | 诺奴佩普 | 如果你在本回合打出的牌少于等于2张,则受到敌人的伤害减半。 | 待补充,禁入奖励 | 尚缺效果接口:fewCardsHalfDamage | `diamond_diadem.png`
77×63;6007 B | +| 229 | [钗](https://sts2.huijiwiki.com/wiki/%E9%92%97)
`sai` | 通用 | 先古之民 | 坦克斯 | 在你的回合开始时,获得7点格挡。 | 已接入,待实机 | turnBlock=7 | `sai.png`
78×81;5600 B | +| 230 | [带刺手甲](https://sts2.huijiwiki.com/wiki/%E5%B8%A6%E5%88%BA%E6%89%8B%E7%94%B2)
`spiked_gauntlets` | 通用 | 先古之民 | 坦克斯 | 在每回合开始时获得[能量]。能力牌的耗能增加1[能量]。 | 已接入,待实机 | turnEnergy=1;powerTax=1 | `spiked_gauntlets.png`
75×80;8148 B | +| 231 | [利爪](https://sts2.huijiwiki.com/wiki/%E5%88%A9%E7%88%AA)
`claws` | 通用 | 先古之民 | 坦克斯 | 拾起时,将至多6张牌变化为撕咬。 | 已接入,待实机 | choice="bite";choiceCount=6;optionalChoices=true | `claws.png`
75×80;5630 B | +| 232 | [切肉刀](https://sts2.huijiwiki.com/wiki/%E5%88%87%E8%82%89%E5%88%80)
`meat_cleaver` | 通用 | 先古之民 | 坦克斯 | 你可以在休息处进行烹饪。 | 梦三适配,待实机 | 网页没有烹饪细则;暂定每次烹饪最大生命+5,待用户确认。 | `meat_cleaver.png`
82×80;4243 B | +| 233 | [三刃回旋镖](https://sts2.huijiwiki.com/wiki/%E4%B8%89%E5%88%83%E5%9B%9E%E6%97%8B%E9%95%96)
`tri_boomerang` | 通用 | 先古之民 | 坦克斯 | 从你的牌组中选择3张攻击牌。为这些牌附魔:本能。 | 待补充,禁入奖励 | 本能附魔(不可替换成现有固有词缀) | `tri_boomerang.png`
78×81;5666 B | +| 234 | [十字弓](https://sts2.huijiwiki.com/wiki/%E5%8D%81%E5%AD%97%E5%BC%93)
`crossbow` | 通用 | 先古之民 | 坦克斯 | 在你的回合开始时,将一张随机攻击牌加入你的手牌。这张牌在本回合可以免费打出。 | 待补充,禁入奖励 | 尚缺效果接口:turnRandomAttack | `crossbow.png`
81×62;7310 B | +| 235 | [坦克斯的哨子](https://sts2.huijiwiki.com/wiki/%E5%9D%A6%E5%85%8B%E6%96%AF%E7%9A%84%E5%93%A8%E5%AD%90)
`tanxs_whistle` | 通用 | 先古之民 | 坦克斯 | 拾起时,将1张吹哨加入你的牌组。 | 已接入,待实机 | addCards=["mengsan_event_whistle"] | `tanxs_whistle.png`
80×81;6009 B | +| 236 | [铁棒](https://sts2.huijiwiki.com/wiki/%E9%93%81%E6%A3%92)
`iron_club` | 通用 | 先古之民 | 坦克斯 | 你每打出4张牌,就抽1张牌。 | 已接入,待实机 | cardDrawEvery=4 | `iron_club.png`
76×82;5576 B | +| 237 | [投斧](https://sts2.huijiwiki.com/wiki/%E6%8A%95%E6%96%A7)
`throwing_axe` | 通用 | 先古之民 | 坦克斯 | 你在每场战斗中打出的第一张牌会多打出一次。 | 待补充,禁入奖励 | 尚缺效果接口:firstCardEcho | `throwing_axe.png`
80×79;5003 B | +| 238 | [战锤](https://sts2.huijiwiki.com/wiki/%E6%88%98%E9%94%A4)
`war_hammer` | 通用 | 先古之民 | 坦克斯 | 每当你击败一名精英敌人的时候,随机升级4张牌。 | 已接入,待实机 | eliteUpgrade=4 | `war_hammer.png`
80×78;5349 B | +| 239 | [宝石面具](https://sts2.huijiwiki.com/wiki/%E5%AE%9D%E7%9F%B3%E9%9D%A2%E5%85%B7)
`jeweled_mask` | 通用 | 先古之民 | 瓦库 | 在每场战斗开始时,将一张随机能力牌从你的抽牌堆放入你的手牌,这张牌在本场战斗可以免费打出。 | 待补充,禁入奖励 | 尚缺效果接口:openingFetchPower | `jeweled_mask.png`
80×73;7835 B | +| 240 | [低语耳环](https://sts2.huijiwiki.com/wiki/%E4%BD%8E%E8%AF%AD%E8%80%B3%E7%8E%AF)
`whispering_earring` | 通用 | 先古之民 | 瓦库 | 在每个回合开始时,获得[能量]。瓦库将接管你的第一回合。 | 待补充,禁入奖励 | 瓦库接管第一回合的行动规则 | `whispering_earring.png`
81×81;7993 B | +| 241 | [领主阳伞](https://sts2.huijiwiki.com/wiki/%E9%A2%86%E4%B8%BB%E9%98%B3%E4%BC%9E)
`lords_parasol` | 通用 | 先古之民 | 瓦库 | 当你遇见商人时,立刻获得他所出售的所有物品。 | 待补充,禁入奖励 | 尚未接入此效果 | `lords_parasol.png`
81×81;7980 B | +| 242 | [小提琴](https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E6%8F%90%E7%90%B4)
`fiddle` | 通用 | 先古之民 | 瓦库 | 在每个回合开始时,额外抽2张牌。你在回合进行中不再能抽任何牌。 | 待补充,禁入奖励 | 尚缺效果接口:noMidturnDraw | `fiddle.png`
80×81;5494 B | +| 243 | [选择悖论](https://sts2.huijiwiki.com/wiki/%E9%80%89%E6%8B%A9%E6%82%96%E8%AE%BA)
`choices_paradox` | 通用 | 先古之民 | 瓦库 | 在每场战斗开始时,从5张随机牌中选择1张放入你的手牌。被选中的牌获得保留。 | 待补充,禁入奖励 | 尚缺效果接口:openingChooseRandom、chosenRetain | `choices_paradox.png`
84×81;9191 B | +| 244 | [血染玫瑰](https://sts2.huijiwiki.com/wiki/%E8%A1%80%E6%9F%93%E7%8E%AB%E7%91%B0)
`blood_soaked_rose` | 通用 | 先古之民 | 瓦库 | 拾起时,将1张执迷加入你的牌组。在回合开始时获得[能量]。 | 已接入,待实机 | turnEnergy=1;addCards=["mengsan_curse_enthralled"] | `blood_soaked_rose.png`
73×80;5546 B | +| 245 | [腌制活雾](https://sts2.huijiwiki.com/wiki/%E8%85%8C%E5%88%B6%E6%B4%BB%E9%9B%BE)
`preserved_fog` | 通用 | 先古之民 | 瓦库 | 拾起时,从你的牌组中移除3张牌。将一张愚行加入你的牌组。 | 已接入,待实机 | choice="remove";choiceCount=3;addCards=["mengsan_curse_folly"] | `preserved_fog.png`
69×81;8061 B | +| 246 | [音乐盒](https://sts2.huijiwiki.com/wiki/%E9%9F%B3%E4%B9%90%E7%9B%92)
`music_box` | 通用 | 先古之民 | 瓦库 | 将你每回合打出的第一张攻击牌的一张虚无复制品加入你的手牌。 | 待补充,禁入奖励 | 尚缺效果接口:firstAttackVoidCopy | `music_box.png`
81×81;7966 B | +| 247 | [原初之爪](https://sts2.huijiwiki.com/wiki/%E5%8E%9F%E5%88%9D%E4%B9%8B%E7%88%AA)
`sere_talon` | 通用 | 先古之民 | 瓦库 | 拾起时,将2张随机诅咒牌和3张许愿加入你的牌组。 | 已接入,待实机 | randomCurse=2;addCards=["mengsan_event_wish","mengsan_event_wish","mengsan_event_wish"] | `sere_talon.png`
81×79;7978 B | +| 248 | [卓越斗篷](https://sts2.huijiwiki.com/wiki/%E5%8D%93%E8%B6%8A%E6%96%97%E7%AF%B7)
`distinguished_cape` | 通用 | 先古之民 | 瓦库 | 拾起时,失去9点最大生命值。将3张灵体加入你的牌组。 | 已接入,待实机 | maxHp=-9;addCards=["mengsan_event_apparition","mengsan_event_apparition","mengsan_event_apparition"] | `distinguished_cape.png`
80×80;5828 B | +| 249 | [尘封魔典](https://sts2.huijiwiki.com/wiki/%E5%B0%98%E5%B0%81%E9%AD%94%E5%85%B8)
`dusty_tome` | 通用 | 先古之民 | 达弗 | 拾起时,获得一张先古牌。 | 梦三适配,待实机 | 从已登记的先古事件牌池随机获得一张;网页未列出完整候选排除规则。 | `dusty_tome.png`
80×76;7793 B | +| 250 | [符文金字塔](https://sts2.huijiwiki.com/wiki/%E7%AC%A6%E6%96%87%E9%87%91%E5%AD%97%E5%A1%94)
`runic_pyramid` | 通用 | 先古之民 | 达弗 | 你在回合结束时不再自动丢弃所有手牌。 | 梦三适配,待实机 | 梦三原本按手牌上限弃牌;这里让全部手牌不计入弃牌上限。虚无牌照常消耗。 | `runic_pyramid.png`
81×72;6485 B | +| 251 | [黑星](https://sts2.huijiwiki.com/wiki/%E9%BB%91%E6%98%9F)
`black_star` | 通用 | 先古之民 | 达弗 | 精英敌人在被打败时多掉落一件遗物。 | 已接入,待实机 | eliteRelics=1 | `black_star.png`
81×82;5619 B | +| 252 | [空鸟笼](https://sts2.huijiwiki.com/wiki/%E7%A9%BA%E9%B8%9F%E7%AC%BC)
`empty_cage` | 通用 | 先古之民 | 达弗 | 拾起时,选择移除牌组中的2张牌。 | 已接入,待实机 | choice="remove";choiceCount=2 | `empty_cage.png`
62×79;6599 B | +| 253 | [灵体外质](https://sts2.huijiwiki.com/wiki/%E7%81%B5%E4%BD%93%E5%A4%96%E8%B4%A8)
`ectoplasm` | 通用 | 先古之民 | 达弗 | 你不能再获得任何金币。在回合开始时获得[能量] | 已接入,待实机 | blockGold=true;turnEnergy=1 | `ectoplasm.png`
77×63;6117 B | +| 254 | [潘多拉魔盒](https://sts2.huijiwiki.com/wiki/%E6%BD%98%E5%A4%9A%E6%8B%89%E9%AD%94%E7%9B%92)
`pandoras_box` | 通用 | 先古之民 | 达弗 | 变化所有“打击”和“防御”。 | 已接入,待实机 | transformAllStarters=true | `pandoras_box.png`
79×79;8118 B | +| 255 | [天鹅绒颈圈](https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E9%B9%85%E7%BB%92%E9%A2%88%E5%9C%88)
`velvet_choker` | 通用 | 先古之民 | 达弗 | 在每回合开始时获得[能量]。你每回合不能打出超过6张牌。 | 已接入,待实机 | turnEnergy=1;turnCardLimit=6 | `velvet_choker.png`
75×74;5199 B | +| 256 | [添水](https://sts2.huijiwiki.com/wiki/%E6%B7%BB%E6%B0%B4)
`sozu` | 通用 | 先古之民 | 达弗 | 你无法再获得药水。在每回合开始时获得[能量]。 | 待补充,禁入奖励 | 可使用的药水系统 | `sozu.png`
76×79;5601 B | +| 257 | [贤者之石](https://sts2.huijiwiki.com/wiki/%E8%B4%A4%E8%80%85%E4%B9%8B%E7%9F%B3)
`philosophers_stone` | 通用 | 先古之民 | 达弗 | 在每回合开始时获得[能量]。所有敌人初始获得1点力量。 | 已接入,待实机 | turnEnergy=1;openingEnemyStrength=1 | `philosophers_stone.png`
78×74;6650 B | +| 258 | [星盘](https://sts2.huijiwiki.com/wiki/%E6%98%9F%E7%9B%98)
`astrolabe` | 通用 | 先古之民 | 达弗 | 拾起时,选择3张牌进行变化,然后将这些牌升级。 | 已接入,待实机 | choice="transformUpgrade";choiceCount=3 | `astrolabe.png`
78×78;6548 B | +| 259 | [异蛇之眼](https://sts2.huijiwiki.com/wiki/%E5%BC%82%E8%9B%87%E4%B9%8B%E7%9C%BC)
`snecko_eye` | 通用 | 先古之民 | 达弗 | 每回合多抽2张牌。每场战斗开始时获得混乱效果。 | 待补充,禁入奖励 | 尚缺效果接口:confusion | `snecko_eye.png`
81×80;5651 B | +| 260 | [召唤铃铛](https://sts2.huijiwiki.com/wiki/%E5%8F%AC%E5%94%A4%E9%93%83%E9%93%9B)
`calling_bell` | 通用 | 先古之民 | 达弗 | 拾起时,获得一个独特的诅咒和3件遗物。 | 已接入,待实机 | randomRelics=3;addCards=["mengsan_curse_curse_of_the_bell"] | `calling_bell.png`
78×80;8215 B | +| 261 | [奥利哈钢???](https://sts2.huijiwiki.com/wiki/%E5%A5%A5%E5%88%A9%E5%93%88%E9%92%A2%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_orichalcum` | 通用 | 事件 | — | 如果你在回合结束时没有任何格挡,获得3点格挡。 | 已接入,待实机 | emptyBlock=3 | `fake_orichalcum.png`
82×65;6671 B | +| 262 | [抱抱先生](https://sts2.huijiwiki.com/wiki/%E6%8A%B1%E6%8A%B1%E5%85%88%E7%94%9F)
`mr_struggles` | 通用 | 事件 | — | 在你的回合开始时,对所有敌人造成等量于当前回合数的伤害。 | 已接入,待实机 | turnNumberDamage=true | `mr_struggles.png`
78×81;7422 B | +| 263 | [宾邦](https://sts2.huijiwiki.com/wiki/%E5%AE%BE%E9%82%A6)
`bing_bong` | 通用 | 事件 | — | 每当你往牌组中增添卡牌时,都将额外添加一张相同的牌。 | 已接入,待实机 | duplicateAdded=true | `bing_bong.png`
77×78;8671 B | +| 264 | [捕梦网](https://sts2.huijiwiki.com/wiki/%E6%8D%95%E6%A2%A6%E7%BD%91)
`dream_catcher` | 通用 | 事件 | — | 每当你休息时,可以添加一张牌到你的牌组。 | 已接入,待实机 | restCardChoice=true | `dream_catcher.png`
79×82;8486 B | +| 265 | [打击木偶???](https://sts2.huijiwiki.com/wiki/%E6%89%93%E5%87%BB%E6%9C%A8%E5%81%B6%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_strike_dummy` | 通用 | 事件 | — | 名字中有“打击”的卡牌造成1点额外伤害。 | 已接入,待实机 | strikeDamage=1 | `fake_strike_dummy.png`
81×80;10755 B | +| 266 | [大蘑菇](https://sts2.huijiwiki.com/wiki/%E5%A4%A7%E8%98%91%E8%8F%87)
`big_mushroom` | 通用 | 事件 | — | 拾起时,将你的最大生命值提升20。在每场战斗开始时,少抽2张牌。 | 梦三适配,待实机 | 沿用梦三初始手牌4张,扣减2张;未改成STS2的基础手牌数量。 | `big_mushroom.png`
82×78;7337 B | +| 267 | [发条靴](https://sts2.huijiwiki.com/wiki/%E5%8F%91%E6%9D%A1%E9%9D%B4)
`the_boot` | 通用 | 事件 | — | 每当你造成小于等于4点未被格挡的攻击伤害时,将伤害提升为5。 | 已接入,待实机 | minimumAttackDamage=5 | `the_boot.png`
81×67;7400 B | +| 268 | [芳香蘑菇](https://sts2.huijiwiki.com/wiki/%E8%8A%B3%E9%A6%99%E8%98%91%E8%8F%87)
`fragrant_mushroom` | 通用 | 事件 | — | 拾起时,失去15点生命,然后随机升级2张牌。 | 梦三适配,待实机 | 随机强化2张并扣除15点生命;当前地图流程保留至少1点生命,待补充非战斗死亡结算。 | `fragrant_mushroom.png`
74×83;6051 B | +| 269 | [菲涅耳透镜](https://sts2.huijiwiki.com/wiki/%E8%8F%B2%E6%B6%85%E8%80%B3%E9%80%8F%E9%95%9C)
`fresnel_lens` | 通用 | 事件 | — | 每当你将一张带有格挡的牌加入你的牌组时,为那张牌附魔:灵巧2 | 待补充,禁入奖励 | 灵巧附魔 | `fresnel_lens.png`
63×82;10589 B | +| 270 | [风的女儿](https://sts2.huijiwiki.com/wiki/%E9%A3%8E%E7%9A%84%E5%A5%B3%E5%84%BF)
`daughter_of_the_wind` | 通用 | 事件 | — | 每当你打出一张攻击牌时,获得1点格挡。 | 已接入,待实机 | attackBlock=1 | `daughter_of_the_wind.png`
75×81;9006 B | +| 271 | [古茶具套装???](https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E8%8C%B6%E5%85%B7%E5%A5%97%E8%A3%85%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_venerable_tea_set` | 通用 | 事件 | — | 到达休息处后的下一场战斗开始时额外获得[能量]。 | 已接入,待实机 | afterRestEnergy=1 | `fake_venerable_tea_set.png`
81×79;10067 B | +| 272 | [骨茶](https://sts2.huijiwiki.com/wiki/%E9%AA%A8%E8%8C%B6)
`bone_tea` | 通用 | 事件 | — | 在你接下来的1场战斗开始时,升级你的初始手牌。 | 待补充,禁入奖励 | 尚缺效果接口:oneBattleUpgradeHand | `bone_tea.png`
77×56;6791 B | +| 273 | [黑石护符](https://sts2.huijiwiki.com/wiki/%E9%BB%91%E7%9F%B3%E6%8A%A4%E7%AC%A6)
`darkstone_periapt` | 通用 | 事件 | — | 每当你获得一张诅咒,就将你的最大生命值提升6。 | 已接入,待实机 | addedCurseMaxHp=6 | `darkstone_periapt.png`
78×81;8875 B | +| 274 | [花粉核心](https://sts2.huijiwiki.com/wiki/%E8%8A%B1%E7%B2%89%E6%A0%B8%E5%BF%83)
`pollinous_core` | 通用 | 事件 | — | 每4个回合,额外抽2张牌。 | 已接入,待实机 | turnDraw=2;turnEvery=4 | `pollinous_core.png`
78×78;8880 B | +| 275 | [巨口储蓄罐](https://sts2.huijiwiki.com/wiki/%E5%B7%A8%E5%8F%A3%E5%82%A8%E8%93%84%E7%BD%90)
`maw_bank` | 通用 | 事件 | — | 每攀爬一层楼层,就获得12金币。一旦在商店中花费金币就会使其失效。 | 梦三适配,待实机 | 将进入一个新的梦三节点视为攀爬一层,先发12金币,再进行商店购买或战斗;原作楼层与额外剧情节点未单独区分。 | `maw_bank.png`
83×64;5490 B | +| 276 | [开心小花???](https://sts2.huijiwiki.com/wiki/%E5%BC%80%E5%BF%83%E5%B0%8F%E8%8A%B1%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_happy_flower` | 通用 | 事件 | — | 每5个回合,获得[能量]。 | 待补充,禁入奖励 | 尚未接入此效果 | `fake_happy_flower.png`
54×81;7346 B | +| 277 | [李家华夫饼???](https://sts2.huijiwiki.com/wiki/%E6%9D%8E%E5%AE%B6%E5%8D%8E%E5%A4%AB%E9%A5%BC%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_lees_waffle` | 通用 | 事件 | — | 拾起时,回复你10%的生命值。 | 已接入,待实机 | gainHealFraction=0.1 | `fake_lees_waffle.png`
75×82;10442 B | +| 278 | [历史课](https://sts2.huijiwiki.com/wiki/%E5%8E%86%E5%8F%B2%E8%AF%BE)
`history_course` | 通用 | 事件 | — | 在你的回合开始时,打出一张你上一回合最后打出的攻击牌或技能牌的复制品。 | 待补充,禁入奖励 | 尚缺效果接口:replayLastAttackSkill | `history_course.png`
81×66;6997 B | +| 279 | [芒果???](https://sts2.huijiwiki.com/wiki/%E8%8A%92%E6%9E%9C%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_mango` | 通用 | 事件 | — | 拾起时,将你的最大生命值提升3。 | 已接入,待实机 | maxHp=3 | `fake_mango.png`
81×77;10329 B | +| 280 | [锚???](https://sts2.huijiwiki.com/wiki/%E9%94%9A%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_anchor` | 通用 | 事件 | — | 在每场战斗开始时,获得4点格挡。 | 已接入,待实机 | openingBlock=4 | `fake_anchor.png`
74×81;8325 B | +| 281 | [迷失鬼火](https://sts2.huijiwiki.com/wiki/%E8%BF%B7%E5%A4%B1%E9%AC%BC%E7%81%AB(%E9%81%97%E7%89%A9))
`lost_wisp` | 通用 | 事件 | — | 你每打出一张能力牌,就对所有敌人造成8点伤害。 | 已接入,待实机 | powerDamage=8 | `lost_wisp.png`
55×79;7568 B | +| 282 | [商人的地毯???](https://sts2.huijiwiki.com/wiki/%E5%95%86%E4%BA%BA%E7%9A%84%E5%9C%B0%E6%AF%AF%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_merchants_rug` | 通用 | 事件 | — | 低劣的仿制品。没有任何作用。 | 已接入,待实机 | noEffect=true | `fake_merchants_rug.png`
81×78;7462 B | +| 283 | [石之剑](https://sts2.huijiwiki.com/wiki/%E7%9F%B3%E4%B9%8B%E5%89%91)
`sword_of_stone` | 通用 | 事件 | — | 在击败5名精英敌人之后将变化为一件强力遗物。 | 梦三适配,待实机 | 按5次精英战胜利计数,变化为玉之剑;尚无精英单位的独立击杀标签。 | `sword_of_stone.png`
72×80;6107 B | +| 284 | [手钻](https://sts2.huijiwiki.com/wiki/%E6%89%8B%E9%92%BB)
`hand_drill` | 通用 | 事件 | — | 每当你突破敌人的格挡时,给予其2层易伤。 | 待补充,禁入奖励 | 尚缺效果接口:breakBlockVulnerable | `hand_drill.png`
81×80;6727 B | +| 285 | [天选芝士](https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E9%80%89%E8%8A%9D%E5%A3%AB)
`chosen_cheese` | 通用 | 事件 | — | 在战斗结束时,获得1点最大生命值。 | 已接入,待实机 | battleMaxHp=1 | `chosen_cheese.png`
81×73;6214 B | +| 286 | [王室猛毒](https://sts2.huijiwiki.com/wiki/%E7%8E%8B%E5%AE%A4%E7%8C%9B%E6%AF%92)
`royal_poison` | 通用 | 事件 | — | 在每场战斗开始时,失去4点生命。 | 已接入,待实机 | openingLoseHp=4 | `royal_poison.png`
81×74;9043 B | +| 287 | [旺购客户感恩徽章](https://sts2.huijiwiki.com/wiki/%E6%97%BA%E8%B4%AD%E5%AE%A2%E6%88%B7%E6%84%9F%E6%81%A9%E5%BE%BD%E7%AB%A0)
`wongo_customer_appreciation_badge` | 通用 | 事件 | — | 没有任何作用。 | 已接入,待实机 | noEffect=true | `wongo_customer_appreciation_badge.png`
81×72;6031 B | +| 288 | [旺购神秘券](https://sts2.huijiwiki.com/wiki/%E6%97%BA%E8%B4%AD%E7%A5%9E%E7%A7%98%E5%88%B8)
`wongos_mystery_ticket` | 通用 | 事件 | — | 在5场战斗后,获得随机3件遗物。 | 已接入,待实机 | afterBattles=5;randomRelicsAfter=3 | `wongos_mystery_ticket.png`
81×80;5807 B | +| 289 | [无礼之茶](https://sts2.huijiwiki.com/wiki/%E6%97%A0%E7%A4%BC%E4%B9%8B%E8%8C%B6)
`tea_of_discourtesy` | 通用 | 事件 | — | 在下一场战斗开始时,将2张晕眩放入你的抽牌堆。 | 已接入,待实机 | oneBattleDrawCards=["mengsan_dazed_shuying","mengsan_dazed_shuying"] | `tea_of_discourtesy.png`
77×56;6749 B | +| 290 | [小血瓶???](https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E8%A1%80%E7%93%B6%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_blood_vial` | 通用 | 事件 | — | 在每场战斗开始时,回复1点生命。 | 已接入,待实机 | openingHeal=1 | `fake_blood_vial.png`
80×81;7906 B | +| 291 | [遗忘之魂](https://sts2.huijiwiki.com/wiki/%E9%81%97%E5%BF%98%E4%B9%8B%E9%AD%82)
`forgotten_soul` | 通用 | 事件 | — | 每当你消耗一张牌,随机对一名敌人造成1点伤害。 | 待补充,禁入奖励 | 尚缺效果接口:exhaustRandomDamage | `lost_soul.png`
75×80;7405 B | +| 292 | [异鸟宝宝](https://sts2.huijiwiki.com/wiki/%E5%BC%82%E9%B8%9F%E5%AE%9D%E5%AE%9D)
`byrdpip` | 通用 | 事件 | — | 拾起时,获得一张异鸟扑击。一只幼年异鸟会在战斗中陪伴你。 | 待补充,禁入奖励 | 幼年异鸟陪伴单位与行为 | `byrdpip.png`
81×72;7173 B | +| 293 | [异蛇之眼???](https://sts2.huijiwiki.com/wiki/%E5%BC%82%E8%9B%87%E4%B9%8B%E7%9C%BC%EF%BC%9F%EF%BC%9F%EF%BC%9F)
`fake_snecko_eye` | 通用 | 事件 | — | 每场战斗开始时获得混乱效果。 | 待补充,禁入奖励 | 尚缺效果接口:confusion | `fake_snecko_eye.png`
80×81;10878 B | +| 294 | [余烬茶](https://sts2.huijiwiki.com/wiki/%E4%BD%99%E7%83%AC%E8%8C%B6)
`ember_tea` | 通用 | 事件 | — | 在接下来的5场战斗开始时,获得2点力量。 | 已接入,待实机 | limitedOpeningStrength=2;limitedBattles=5 | `ember_tea.png`
77×71;6484 B | +| 295 | [玉之剑](https://sts2.huijiwiki.com/wiki/%E7%8E%89%E4%B9%8B%E5%89%91)
`sword_of_jade` | 通用 | 事件 | — | 在每场战斗开始时,获得3点力量。 | 已接入,待实机 | openingStrength=3 | `sword_of_jade.png`
72×80;6455 B | +| 296 | [头环](https://sts2.huijiwiki.com/wiki/%E5%A4%B4%E7%8E%AF)
`circlet` | 通用 | 遗物 | — | 这是一个头环。 | 已接入,待实机 | noEffect=true | `circlet.png`
82×53;4357 B | +| 297 | [寻龙尺](https://sts2.huijiwiki.com/wiki/%E5%AF%BB%E9%BE%99%E5%B0%BA)
`dowsing_rod` | 通用 | 先古之民 | 涅奥 | 拾起时,将1张探寻加入你的牌组。 | 待补充,禁入奖励 | 尚缺网页对应卡牌:mengsan_event_seek | `dowsing_rod.png`
79×79;5041 B | +| 298 | [涅奥的牺牲](https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E7%9A%84%E7%89%BA%E7%89%B2)
`neows_sacrifice` | 通用 | 先古之民 | 涅奥 | 拾起时,获得1瓶龙涎香,并将1张愧疚加入你的牌组。 | 待补充,禁入奖励 | 可使用的龙涎香药水 | `neows_sacrifice.png`
81×80;11221 B | diff --git a/mengsan/relics/README.md b/mengsan/relics/README.md index 07cbc15..cbb222f 100644 --- a/mengsan/relics/README.md +++ b/mengsan/relics/README.md @@ -1,105 +1,30 @@ -# 梦三遗物(道具) +# 梦三遗物 -本目录负责遗物定义、持有规则与战斗效果管理。 -已实现十三件新遗物,并接入既有“束带”。图片暂缺,清单见 [ASSETS.md](ASSETS.md)。 +本目录已登记灰机 Wiki 快照的 298 件 STS2 遗物,并保留原梦三束带。 +完整效果、资源映射、实现状态、适配与待补充事项见 +[2026-10-06 实现记录](IMPLEMENTATION-20261006.md)。 -## 已实现的遗物 +- `catalog.js`:原始分类、中文说明、原始描述及来源;图鉴顺序1—298。 +- `rules.js`:效果参数、缺失机制与已接入接口白名单。 +- `definitions.js`:稳定ID/旧ID兼容、角色池、获取资格和奖励池。 +- `progression.js`:拾取、金币、永久牌组、选择及状态保存。 +- `battle.js`:战斗计数、开场/回合/伤害/消耗与战后效果。 +- `combat.js`:对实际引擎的格挡、状态、伤害与回复调用。 +- `rooms.js`:商店、休息、事件与节点效果。 +- `hooks.js`:会话绑定、费用、牌堆与添加牌桥接;销毁会话后释放。 -| 遗物 | 效果 | -| --- | --- | -| 燃烧之血 | 胜利结算后回复 6 点生命,不超过上限;失败不回血 | -| 蛇之戒指 | 每场战斗开始额外摸 2 张,开场手牌整理不会移除这两张 | -| 长蛇戒指 | 每场战斗第 1~3 个自身回合开始,各额外摸 2 张 | -| 千年积木 | 每场战斗首次实际生命减少且仍存活时摸 3 张;纯护甲损失不触发 | -| 摆动球 | 每场战斗第 3、6、9……个自身回合开始额外摸 1 张 | -| 束带 | 原有手牌上限 +1,重复获得不叠加 | -| 餐券 | 进入商店时回复 15 点生命,每个商店节点一次 | -| 草莓 | 获得时生命上限 +7,当前生命不变,重复获得不叠加 | -| 弹珠袋 | 开战时给予当时所有存活敌人 1 层易伤 | -| 灯笼 | 首个自身回合可用费用 +1,费用上限不变,下回合恢复正常 | -| 红面具 | 开战时给予当时所有存活敌人 1 层虚弱 | -| 皇家枕头 | 选择休息回血时额外恢复 15;现有基础 8,总计 23 | -| 节日拉炮 | 开战时对当时所有存活敌人造成 9 点伤害 | -| 金刚杵 | 开战时获得 1 点力量,只在当前战斗有效 | +未实现的遗物可以查询资料,但 `canAcquireRelic` 与 `grantRelic` 默认拒绝; +只有所有效果属性都有执行接口且不缺配套卡牌的条目,才能进入对应奖励池。 +专用先古/事件池已经登记,具体会面剧情仍待补充。 -虚弱使攻击伤害减少 25%(向下取整),自身回合结束减少 1 层; -力量使玩家攻击牌伤害增加对应点数,意图攻击沿用原有力量/虚弱计算。 -节日拉炮是非卡牌伤害,正常消耗目标护甲,不享受力量、易伤、虚弱的攻击修正。 -开场效果先摸牌和施加状态,再结算节日拉炮;仅影响开战时的敌人,不影响后续援军。 -餐券在打开商店前保存回血和节点记录,读档不会重复触发; -皇家枕头不影响磨砺、商店治疗或其他回复效果。所有回复均不超过生命上限。 -草莓若在角色生命尚未初始化时获得,会保存待应用加成,初始化后只应用一次。 +保留蛇之戒指、长蛇戒指、百年积木、节日拉炮等既有内部ID;支持 Wiki ID 查询。 +全部原图见 [资源记录](ASSETS.md)。图片和隔离检查通过不代表实机验收。 -遗物互相独立:同时持有两种戒指时,开场和前三回合效果分别触发。 -所有回合计数按玩家自身实际开始的回合计算,不计敌方和支援回合, -不使用界面显示的全局轮数。每场战斗重置计数及“首次损失生命”标记。 -额外摸牌沿用个人牌堆规则;牌堆与弃牌堆不足时仍按原规则挑战失败。 +从术樱包目录运行检查: -### 获得、保存和查看 +```powershell +node mengsan/tools/check-sts2-relics.mjs +node mengsan/tools/write-sts2-relics-report.mjs +``` -- 新遗物通过自动生成的遗物奖励列表加入共享 Boss 和第一章宝箱奖励池; - 后续章节使用共享 Boss 奖励池的宝箱也可出现它们。 -- 角色默认不携带新遗物;未新增商店价格或精英掉落规则。 -- 持有记录沿用 `run.player.items`,已持有遗物会从随机奖励中排除。 -- `definitions.js` 提供注册、资格检查和去重获得;旧“束带”ID 与效果保留。 -- `battle.js` 管理战斗计数、摸牌效果及战后回血;战斗运行状态不写入征程。 -- 战后回血写入结算候选快照,之后才领取奖励,重试、重复提交和读档 - 复用快照,不再次回血;刚从本场奖励获得的燃烧之血从下一场生效。 -- 战斗中的“遗物”按钮显示名称、效果与触发状态;地图行囊显示持有详情。 -- 获得和效果触发使用游戏日志反馈;没有图片时只显示文字。 - -## 参考来源 - -- [杀戮尖塔 2 中文百科:遗物](https://sts2.huijiwiki.com/wiki/%E9%81%97%E7%89%A9) -- 查阅日期:2026-09-30。 -- 页面直连返回 403;以下概述依据搜索索引返回的该页正文整理。 - 本文概述机制,不复制完整遗物列表、具体效果或图片。 - -## 网页中的遗物概念 - -遗物是单局游戏中获得并持续持有的物品,会影响牌组构筑、 -手牌管理和其他玩法。这里的“永久”指当前这一局, -不代表跨新征程永久保留。 - -- 每个角色拥有自己的初始遗物,此外也有通用和角色专属遗物。 -- 获得途径包括击败精英或 Boss、宝箱、商店、部分事件和先古之民。 -- 已经持有的遗物不会再次出现。 -- 通常不能主动移除;部分事件可以交换或移除遗物。 -- 部分特殊遗物可以失效,但失效后仍保留在持有列表中。 -- 页面按稀有度或获取类别区分初始、普通、罕见、稀有、 - 商店、先古之民、事件及其他遗物。 - -## 接入前的项目背景 - -接入前,项目已有以下零散道具逻辑: - -| 位置 | 现有职责 | -| --- | --- | -| `../progression/state.js` | 新征程创建 `player.items` 和手牌上限加成数据 | -| `../mode.js` | 获得“束带”时记录道具 ID,手牌上限加成增加 1,重复获得不叠加 | -| `../content/shared/rewards.js` | 配置“束带”和“斥候援令”等奖励 | -| `../battle/battle-director.js` | 管理援令带来的支援单位与重复来源处理 | -| `../ui/map/renderer.js` | 行囊展示永久道具,数量读取 `player.items` | - -“斥候援令”走支援管理流程,不能仅凭奖励名中的“道具” -认定它已经进入 `player.items` 或统一遗物系统。 - -## 设计约定与后续扩展 - -1. 将“遗物”作为本征程持续持有道具的统一概念, - 与手牌、装备牌、消耗品及临时战斗状态分别管理。 -2. 每个遗物定义稳定 ID、名称、说明、图标、角色限制、 - 获取类别及效果规则;具体三国题材名称与数值另行配置。 -3. 根据效果需要提供获得时、战斗开始、回合开始、出牌后、 - 战斗结束等触发时机;不能假定所有遗物只提供固定属性加成。 -4. 获得前统一检查角色资格和是否已持有, - 默认不重复获取;失效、交换和移除规则由具体遗物明确声明。 -5. 将持有记录和需要跨战斗保存的计数写入征程存档, - 战斗内计数由战斗会话管理,读档不重复执行“获得时”效果。 -6. 先以“束带”作为接入现有机制的候选,保留它当前的效果与去重行为; - “斥候援令”需要明确与支援系统的关系,再决定如何接入。 -7. 获得提示、持有列表、说明与触发反馈放在 `../ui/`, - 图片建议放在 `../assets/relics/`;本目录负责遗物自身规则。 - -资源、稀有度、精英掉落、商店价格、角色初始遗物以及特殊交换或移除 -规则仍待后续配置;本次保留原道具与存档字段,不引入独立遗物存档副本。 +本次不修改三个既有 dist 发布清单,也没有执行版本发布/实际游戏安装测试。 diff --git a/mengsan/relics/battle.js b/mengsan/relics/battle.js index 6cace08..13fedaa 100644 --- a/mengsan/relics/battle.js +++ b/mengsan/relics/battle.js @@ -1,122 +1,250 @@ -import { heldRelics } from "./definitions.js"; +import { heldRelics, grantRelic, getRelic, relicDefinitions, canAcquireRelic } from "./definitions.js"; +import { cardType, starterKind, relicState, healRun, grantGold, changeMaxHp, upgradeCards, newRelicCard, relicCardPool } from "./progression.js"; +import { cardUpgradeLevel, canUpgradeCard } from "../cards/upgrades.js"; +import { relicRandomGet, relicRandom } from "./random.js"; +import { sharedByName } from "../cards/packs/shared/data.js"; +import { ironcladByName } from "../cards/packs/liubei/data.js"; -export function createRelicBattle(run, { active, draw, log, effect }) { - const relics = heldRelics(run); - let started = false, turns = 0, firstLoss = false; - let openingHandBonus = 0, pendingHpDraw = null; - const seenTurns = new WeakSet(); - const usable = () => started && active(); - const drawEffect = async relic => { - if (!usable()) return; - if (turns === 0) openingHandBonus += relic.amount; - log(relic, `额外摸${relic.amount}张牌`); - await draw(relic.amount); +export function nearestRelicUse(event) { + const seen = new Set(); + for (let current=event;current && !seen.has(current);current=current.parent) { seen.add(current); if(current.name==="useCard")return current; } + return null; +} +export function createRelicBattle(run,{active,draw,log,effect,owner,node={},encounter={},piles,isStrike=card=>starterKind(card)==="strike"}) { + const relics=heldRelics(run).filter(r=>r.implementation!=="pending"), rules=relics.map(r=>r.rule); + const has=id=>relics.some(r=>r.wikiId===id), sum=key=>rules.reduce((s,r)=>s+(r[key] || 0),0); + const saved=relicState(run), uses=new WeakMap(), seenTurns=new WeakSet(), seenLosses=new WeakSet(); + saved.counterStarts ||= {}; + const attackCount = relic => (saved.attackCount || 0)-(saved.counterStarts[relic.wikiId]?.attack || 0); + const skillCount = relic => (saved.skillCount || 0)-(saved.counterStarts[relic.wikiId]?.skill || 0); + let started=false, turns=0, firstLoss=false, openingHandBonus=0, inRelicEffect=0, ownTurn=false; + let attacks=0, skills=0, powers=0, cards=0, previousCards=null, turnAttacks=0, turnSkills=0, nextEnergy=0, nextBlock=0, hpLost=0; + let firstPower=false, usedDeath=false, firstCardBlock=false, freeCards=new WeakSet(), dexterity=0, plating=sum("plating"), exhaustQueue=[], shuffles=0, flushing=false; + const physical=card=>card?.cards?.length===1 ? card.cards[0] : card; + const upgradePhysical=card=>{const data=physical(card)?.storage?.mengsanCard_shuying;if(data && canUpgradeCard(data))data.upgrade++;}; + saved.relicEnemyKills=0; + const usable=()=>started && active() && owner.hp>0; + const fire=async (relic,key,amount)=>{ + if(!active() || !amount || !(owner.hp>0) && key!=="healAbsolute")return; + const label={openingHeal:"回复生命",healAbsolute:"回复生命",openingBlock:"获得格挡",nextBlock:"获得格挡",plating:"覆甲提供格挡",energy:"获得费用",nextEnergy:"获得费用",openingStrength:"获得力量",openingEnemyStrength:"敌人获得力量",openingVulnerable:"给予敌人易伤",openingWeak:"给予敌人虚弱",openingDamage:"对全体敌人造成伤害",randomDamage:"对随机敌人造成伤害",targetDamage:"反击伤害",openingLoseHp:"失去生命"}[key] || key; + log(relic,`${label} ${amount}`); inRelicEffect++; + try { await effect({...relic,effect:key,amount}); } finally { inRelicEffect--; } }; - return { - get openingHandBonus() { return openingHandBonus; }, - get openingDraw() { - return relics.filter(relic => relic.effect === "openingDraw") - .reduce((sum, relic) => sum + relic.amount, 0); - }, - async start() { - if (started || !active()) return; - started = true; - for (const relic of relics) { - if (relic.effect === "openingDraw") await drawEffect(relic); - } - for (const relic of relics.filter(item => - ["openingVulnerable", "openingWeak", "openingStrength", - "openingDamage"].includes(item.effect)) - .sort((a, b) => Number(a.effect === "openingDamage") - - Number(b.effect === "openingDamage"))) { - if (!usable()) break; - log(relic, relic.description); - await effect(relic); - } - if (pendingHpDraw) { - const relic = pendingHpDraw; - pendingHpDraw = null; - await drawEffect(relic); - } - }, - async turnStart(event) { - if (!usable() || seenTurns.has(event)) return; - seenTurns.add(event); - turns++; - for (const relic of relics) { - if (relic.effect === "firstTurnEnergy" && turns === 1 && - usable()) { - log(relic, `获得${relic.amount}点临时费用`); - await effect(relic); + const give=async (key,amount)=>{ if(!amount)return; const relic=relics.find(r=>r.rule[key]) || relics[0]; if(relic)await fire(relic,key,amount); }; + const drawMore=async (relic,amount)=>{ if(!usable() || !(amount>0))return; if(!turns)openingHandBonus+=amount; log(relic,`摸${amount}张牌`); await draw(amount); }; + const controller={ + has, + retainsHand(){return has("runic_pyramid") || has("ringing_triangle") && turns===1;}, + get openingHandBonus(){return openingHandBonus;}, + get turns(){return turns;}, + get drawAdjustment(){return !turns ? rules.reduce((n,r)=>n+Math.min(0,r.openingDraw || 0),0) : 0;}, + async start(){ + if(started || !active())return; started=true; + openingHandBonus=controller.drawAdjustment; + for(const relic of relics){ + const r=relic.rule; + if(r.openingDraw>0)await drawMore(relic,r.openingDraw); + for(const key of ["openingHeal","openingBlock","openingStrength","openingVulnerable","openingWeak","openingEnemyStrength","openingDamage","openingLoseHp"])if(r[key])await fire(relic,key,r[key]); + if(r.bossOpeningHeal && encounter.boss)await fire(relic,"openingHeal",r.bossOpeningHeal); + if(r.eliteOpeningStrength && encounter.tier==="elite")await fire(relic,"openingStrength",r.eliteOpeningStrength); + if(r.eliteOpeningDraw && encounter.tier==="elite")await drawMore(relic,r.eliteOpeningDraw); + if(r.limitedOpeningStrength && saved.emberRemaining>0)await fire(relic,"openingStrength",r.limitedOpeningStrength); + if(r.restAction==="lift" && saved.giryaLevels)await fire(relic,"openingStrength",saved.giryaLevels); + if(r.openingUpgradeHand)for(const card of owner.getCards("h"))upgradePhysical(card); + if(r.openingUpgradeDraw){const eligible=piles.drawCards().filter(canUpgradeCard);for(let i=0;i(sharedByName[name] || ironcladByName[name])?.base.ethereal); + const name=relicRandomGet(run,pool);if(name){const card=await piles.addToHand(newRelicCard(run,name));if(card){openingHandBonus++;if(r.openingRandomFree)freeCards.add(card);}} } - if ((relic.effect === "earlyTurnDraw" && - turns <= relic.turns) || - (relic.effect === "periodicTurnDraw" && - turns % relic.turns === 0)) await drawEffect(relic); } + if(firstLoss)for(const relic of relics)if(relic.rule.firstHpLossDraw)await drawMore(relic,relic.rule.firstHpLossDraw); }, - async loseHp(event) { - if (!active() || firstLoss || !(event.num < 0)) return; - const relic = relics.find(item => - item.effect === "firstHpLossDraw"); - if (!relic) return; - firstLoss = true; - if (!started) { - pendingHpDraw = relic; - return; + globalTurnStart(player){hpLost=0;ownTurn=player===owner;}, + resetEnergy(base,current){return base+(has("ice_cream") && turns ? Math.max(0,current || 0) : 0);}, + retainedBlock(block){return !turns ? block : Math.min(block,sum("keepBlock"));}, + async turnStart(event){ + if(!usable() || seenTurns.has(event))return; seenTurns.add(event); turns++; + previousCards=turns>1 ? cards : null; cards=0; turnAttacks=0; turnSkills=0; + if(turns>1)freeCards=new WeakSet(); + await give("nextEnergy",nextEnergy); nextEnergy=0; + await give("nextBlock",nextBlock); nextBlock=0; + for(const relic of relics){ + const r=relic.rule; + let energy=(r.turnEnergy && (!r.fromTurn || turns>=r.fromTurn) ? r.turnEnergy : 0)+(turns===1 ? r.firstTurnEnergy || 0 : r.laterTurnEnergy || 0); + if(turns===1 && r.afterRestEnergy && saved.afterRest)energy+=r.afterRestEnergy; + if(turns===1 && r.eliteFirstTurnEnergy && encounter.tier==="elite")energy+=r.eliteFirstTurnEnergy; + if(r.nthTurn===turns){energy+=r.nthTurnEnergy || 0;dexterity+=r.nthTurnDexterity || 0;await fire(relic,"openingBlock",r.nthTurnBlock);await fire(relic,"openingStrength",r.nthTurnStrength);} + if(r.candleEnergy && saved.candleRemaining>0)energy+=r.candleEnergy; + if(r.paidTurnEnergy && run.player.gold>=r.paidTurnGold){run.player.gold-=r.paidTurnGold;energy+=r.paidTurnEnergy;} + await fire(relic,"energy",energy); + await fire(relic,"openingBlock",r.turnBlock); + let amount=r.turnDraw && (!r.turnEvery || turns%r.turnEvery===0) ? r.turnDraw : 0; + if(r.earlyTurnDraw && turns<=r.earlyTurns)amount+=r.earlyTurnDraw; + if(r.fewCardsDraw && previousCards!==null && previousCards<=r.fewCardsLimit)amount+=r.fewCardsDraw; + await drawMore(relic,amount); + await fire(relic,"openingDamage",r.turnDamage || (r.turnNumberDamage ? turns : 0)); + await fire(relic,"openingStrength",r.turnStrength); + await fire(relic,"openingEnemyStrength",r.enemyTurnStrength); } - await drawEffect(relic); + if(turns===1)delete saved.afterRest; }, - status(relic) { - if (relic.effect === "firstHpLossDraw") { - return firstLoss ? "本场已触发" : "本场尚未触发"; - } - if (relic.effect === "earlyTurnDraw") { - return `本场已开始${turns}个自身回合`; - } - if (relic.effect === "periodicTurnDraw") { - return `回合计数:${turns % relic.turns}/${relic.turns}`; - } - if (relic.effect.startsWith("opening")) { - return started ? "本场已触发" : "等待战斗开始"; - } - if (relic.effect === "firstTurnEnergy") { - return turns ? "本场已触发" : "等待首个自身回合"; - } - return "持续持有"; + async beforeDiscard(){ + if(!usable())return; + for(const relic of relics)if(relic.rule.endHandBlock)await fire(relic,"openingBlock",owner.getCards("h").length*relic.rule.endHandBlock); }, + async turnEnd(){ + if(!usable())return; + for(const relic of relics){const r=relic.rule; + if(r.noAttackBlock && !turnAttacks)await fire(relic,"openingBlock",r.noAttackBlock); + if(r.noAttackNextEnergy && !turnAttacks)nextEnergy+=r.noAttackNextEnergy; + if(r.unspentNextEnergy && owner.storage.mengsanEnergy_shuying>0)nextEnergy+=r.unspentNextEnergy; + if(r.emptyBlock && !owner.hujia)await fire(relic,"openingBlock",r.emptyBlock); + if(r.endBlockThreshold && owner.hujia>=r.endBlockThreshold)await fire(relic,"randomDamage",r.endBlockDamage); + if(r.endTurn===turns)await fire(relic,"openingDamage",r.endTurnDamage); + } + if(plating)await give("plating",plating); + }, + beforeHpLoss(amount,armor=0){ + if(!(amount<0) || !started)return amount; + const absorbed=Math.min(-amount,Math.max(0,armor)); + let loss=Math.max(0,-amount-absorbed-sum("reduceHpLoss")); + if(sum("turnHpLossCap"))loss=Math.min(loss,Math.max(0,sum("turnHpLossCap")-hpLost)); + return -(absorbed+loss); + }, + async loseHp(event){ + if(!active() || seenLosses.has(event) || !(event.num<0))return; seenLosses.add(event); hpLost-=event.num; + if(event.parent?.name==="damage")event.parent.mengsanHpDamage_shuying=-event.num; + for(const r of rules)if(r.hpLossNextBlock)nextBlock+=r.hpLossNextBlock; + if(!firstLoss){firstLoss=true; if(started)for(const relic of relics)if(relic.rule.firstHpLossDraw)await drawMore(relic,relic.rule.firstHpLossDraw);} + }, + async dying(){ + if(!active() && !(owner.hp<=0))return; + if(!has("lizard_tail") || usedDeath || saved.lizardTailUsed || owner.hp>0)return; + usedDeath=true;saved.lizardTailUsed=true; + await give("healAbsolute",Math.ceil(owner.maxHp*0.5)-owner.hp); + }, + async onUse(use){ + if(!usable() || uses.has(use) || use.player!==owner || !use.card || use.mengsanIcEcho_shuying || use.mengsanSharedEcho_shuying)return; + const type=cardType(use.card); const record={type,index:++cards,attackIndex:attacks,vigor:0};uses.set(use,record); + saved.totalCardCount=(saved.totalCardCount || 0)+1; + if(type==="attack"){ + attacks++;turnAttacks++;saved.attackCount=(saved.attackCount || 0)+1;record.attackIndex=saved.attackCount; if(attacks===1)record.vigor=sum("vigor"); + for(const relic of relics){const r=relic.rule; + if(r.attackEnergyEvery && attackCount(relic)%r.attackEnergyEvery===0)await fire(relic,"energy",1); + if(r.attackBlock)await fire(relic,"openingBlock",r.attackBlock); + if(turnAttacks%3===0){dexterity+=r.tripleAttackDexterity || 0;await fire(relic,"openingBlock",r.tripleAttackBlock);await fire(relic,"randomDamage",r.tripleAttackDamage);await fire(relic,"openingStrength",r.tripleAttackStrength);} + } + } else if(type==="skill"){ + skills++;turnSkills++;saved.skillCount=(saved.skillCount || 0)+1; + for(const relic of relics){const r=relic.rule;if(r.skillBlockEvery && skillCount(relic)%r.skillBlockEvery===0)await fire(relic,"openingBlock",r.skillBlock);if(turnSkills%3===0)await fire(relic,"openingDamage",r.tripleSkillDamage);} + } else if(type==="power"){ + powers++; + for(const relic of relics){const r=relic.rule;if(!firstPower)await fire(relic,"openingBlock",r.firstPowerBlock);await drawMore(relic,r.powerDraw);await fire(relic,"openingDamage",r.powerDamage);if(r.powerFreeRandom){const card=relicRandomGet(run,owner.getCards("h").filter(card=>card!==physical(use.card)));if(card)freeCards.add(card);}} + firstPower=true; + } + for(const relic of relics){const r=relic.rule;if(r.cardDrawEvery && (saved.totalCardCount-(saved.counterStarts[relic.wikiId]?.card || 0))%r.cardDrawEvery===0)await drawMore(relic,1);} + }, + limited(){return ownTurn && rules.some(r=>r.turnCardLimit && cards>=r.turnCardLimit);}, + isFree(card){return freeCards.has(physical(card)) || ownTurn && has("brilliant_scarf") && cards===4;}, + cost(card,base){return Math.max(0,base+(cardType(card)==="power" ? sum("powerTax") : 0));}, + blocksDraw(){return false;}, + blockAmount(amount,event){ + if(!(amount>0) || inRelicEffect)return amount; + const use=nearestRelicUse(event); + if(use?.player!==owner || !use.card)return amount; + const value=Math.max(0,amount+sum("openingDexterity")+dexterity); + if(!firstCardBlock && has("vambrace")){firstCardBlock=true;return value*2;} + return value; + }, + outgoingDamage(event){ + if(event.source!==owner || !(event.card || event.mengsanAttack_shuying))return event.num; + const use=nearestRelicUse(event),record=uses.get(use),attack=record?.type==="attack" || cardType(event.card)==="attack" || event.mengsanAttack_shuying; + if(!attack)return event.num; + let amount=event.num+(record?.vigor || 0); + if(isStrike(event.card))amount+=sum("strikeDamage"); + if(cardUpgradeLevel(event.card)>0)amount+=sum("upgradedAttackDamage"); + if(owner.hp<=owner.maxHp/2)amount+=sum("lowHpStrength"); + if(record && relics.some(relic=>relic.rule.nthAttackDouble && (record.attackIndex-(saved.counterStarts[relic.wikiId]?.attack || 0))%relic.rule.nthAttackDouble===0))amount*=2; + return amount; + }, + lateOutgoingDamage(event){const unblocked=event.num-(event.player?.hujia || 0);return has("the_boot") && event.source===owner && cardType(event.card)==="attack" && unblocked>0 && unblocked<5 ? event.num+5-unblocked : event.num;}, + async afterDamage(event){ + if(event.player!==owner || !(event.num>0))return; + const attack=cardType(event.card)==="attack" || event.mengsanAttack_shuying; + if(attack && plating && event.mengsanHpDamage_shuying>0)plating--; + if(attack && event.source?.isAlive?.())for(const relic of relics)if(relic.rule.thorns)await fire({...relic,target:event.source},"targetDamage",relic.rule.thorns); + }, + async enemyDeath(target){if(!usable() || target.storage?.mengsanCamp_shuying!=="enemy")return;saved.relicEnemyKills++;for(const relic of relics){await fire(relic,"energy",relic.rule.killEnergy);await drawMore(relic,relic.rule.killDraw);}}, + queueExhaust(card){exhaustQueue.push(card);}, + queueShuffle(){shuffles++;}, + async flushExhaust(){ + if(flushing || !usable())return;flushing=true; + try{ + while(shuffles && usable()){shuffles--;for(const relic of relics)await fire(relic,"openingBlock",relic.rule.shuffleBlock);} + while(exhaustQueue.length && usable()){ + exhaustQueue.shift();saved.exhaustCount=(saved.exhaustCount || 0)+1; + for(const relic of relics){const r=relic.rule;await fire(relic,"openingDamage",r.exhaustDamage);if(r.exhaustDrawEvery && (saved.exhaustCount-(saved.counterStarts[relic.wikiId]?.exhaust || 0))%r.exhaustDrawEvery===0)await drawMore(relic,1);} + } + }finally{flushing=false;} + }, + status(relic){return relic.implementation==="pending" ? relic.implementationNote : `本场第${turns}回合 · 已出${cards}张牌${relic.rule.firstHpLossDraw ? firstLoss ? " · 受伤摸牌已触发" : " · 等待首次受伤" : ""}`;}, }; + return controller; } -export function applyBattleEndRelics(run, outcome) { - if (outcome !== "victory" || !(run.player.hp > 0)) return 0; - const amount = heldRelics(run).filter(relic => - relic.effect === "battleHeal").reduce((sum, relic) => - sum + relic.amount, 0); - const before = run.player.hp; - run.player.hp = Math.min(run.player.maxHp ?? before, - before + amount); - return run.player.hp - before; +export function applyBattleEndRelics(run,outcome,{node={},encounter={}}={}) { + if(outcome!=="victory" || !(run.player.hp>0))return 0; + const before=run.player.hp, relics=heldRelics(run); + const low=run.player.hp<=run.player.maxHp/2; + for(const relic of relics){const r=relic.rule,state=relicState(run); + healRun(run,(r.battleHeal || 0)+(low ? r.lowHpBattleHeal || 0 : 0)); + if(r.battleGold)grantGold(run,r.battleGold*(state.relicEnemyKills || encounter.defeatedEnemies || 1)); + if(r.battleMaxHp)changeMaxHp(run,r.battleMaxHp); + if(r.eliteUpgrade && encounter.tier==="elite")upgradeCards(run,r.eliteUpgrade); + if(r.normalBattleUpgradeEvery && node.type==="battle" && !encounter.boss && encounter.tier!=="elite"){ + state.fishingBattles=(state.fishingBattles || 0)+1;if(state.fishingBattles%r.normalBattleUpgradeEvery===0)upgradeCards(run,1); + } + if(r.candleBattles)state.candleRemaining=Math.max(0,(state.candleRemaining || 0)-1); + if(r.limitedBattles)state.emberRemaining=Math.max(0,(state.emberRemaining || 0)-1); + if(r.returnStored && state.storedCards?.length){const card=relicRandomGet(run,state.storedCards);upgradeCards({ ...run, player:{...run.player,deck:[card]} },1);state.storedCards.splice(state.storedCards.indexOf(card),1);run.player.deck.push(card);} + if(r.eliteTransformAfter && encounter.tier==="elite"){ + const counters=relicState(run).eliteTransform ||= {};counters[relic.wikiId]=(counters[relic.wikiId] || 0)+1; + if(counters[relic.wikiId]>=r.eliteTransformAfter){run.player.items=run.player.items.filter(id=>getRelic(id)?.id!==relic.id);grantRelic(run,r.transformRelic);} + } + if(r.afterBattles){ + const counters=relicState(run).battleCounters ||= {};counters[relic.wikiId]=(counters[relic.wikiId] || 0)+1; + if(counters[relic.wikiId]===r.afterBattles)for(let i=0;i<(r.randomRelicsAfter || 0);i++){ + const target=relicRandomGet(run,Object.values(relicDefinitions).filter(r=>["普通","罕见","稀有"].includes(r.tier) && canAcquireRelic(run,r.id)));if(target)grantRelic(run,target.id); + } + } + } + return run.player.hp-before; } - -export function createRelicSkills(getBattle, getOwner) { - return { - mengsan_relics_shuying: { - trigger: { global: ["phaseBegin", "changeHp"] }, - forced: true, silent: true, popup: false, priority: 100, - filter(event) { - const battle = getBattle(), owner = getOwner(); - return Boolean(battle?.session.active && battle.relics && - owner?.hp > 0 && event.player === owner && - (event.name === "phase" || event.num < 0)); - }, - async content(event, trigger) { - const battle = getBattle(); - if (!battle?.session.active) return; - if (event.triggername === "phaseBegin") { - await battle.relics.turnStart(trigger); - } else await battle.relics.loseHp(trigger); - }, +export function createRelicSkills(getBattle,getOwner){ + return {mengsan_relics_shuying:{ + group:["mengsan_relics_limit_shuying"], + trigger:{global:["phaseBefore","phaseBegin","changeHp","useCard1","phaseDiscardBegin","phaseJieshuBegin","damage","dying"]}, + forced:true,silent:true,popup:false,priority:400, + filter(event){return Boolean(getBattle()?.session.active && getBattle()?.relics && (event.player===getOwner() || event.name==="phase"));}, + async content(event,trigger){ + const r=getBattle()?.relics;if(!r)return; + if(event.triggername==="phaseBefore")r.globalTurnStart(trigger.player); + if(trigger.player!==getOwner())return; + if(event.triggername==="phaseBegin")await r.turnStart(trigger); + else if(event.triggername==="changeHp")await r.loseHp(trigger); + else if(event.triggername==="useCard1")await r.onUse(trigger); + else if(event.triggername==="phaseDiscardBegin")await r.beforeDiscard(); + else if(event.triggername==="phaseJieshuBegin")await r.turnEnd(); + else if(event.triggername==="damage")await r.afterDamage(trigger); + else if(event.triggername==="dying")await r.dying(); }, - }; + },mengsan_relics_limit_shuying:{trigger:{global:"useCard0"},forced:true,silent:true,popup:false,firstDo:true,priority:13000, + filter(event){return Boolean(getBattle()?.session.active && event.player===getOwner() && getBattle().relics?.limited());}, + async content(event,trigger){trigger.cancel();}, + mod:{cardEnabled(card,player){if(player===getOwner() && getBattle()?.session.active && getBattle().relics?.limited())return false;}, + ignoredHandcard(card,player){if(player===getOwner() && getBattle()?.session.active && getBattle().relics?.retainsHand())return true;}}, + }}; } diff --git a/mengsan/relics/catalog.js b/mengsan/relics/catalog.js new file mode 100644 index 0000000..36ecf05 --- /dev/null +++ b/mengsan/relics/catalog.js @@ -0,0 +1,5069 @@ +// Generated from the reviewed 2026-10-04 Wiki snapshot; use tools/import-sts2-relics.py. +export const relicCatalog = Object.freeze([ + { + "id": "mengsan_burning_blood_shuying", + "wikiId": "burning_blood", + "name": "燃烧之血", + "description": "在战斗结束时,回复6点生命。", + "pool": "铁甲战士", + "tier": "初始", + "ancient": null, + "order": 1, + "image": "extension/术樱包/mengsan/assets/relics/burning_blood.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%87%83%E7%83%A7%E4%B9%8B%E8%A1%80", + "descriptionRaw": "在战斗结束时,回复6点生命。", + "descriptionSource": "在战斗结束时,回复{{颜色|green|6}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "燃烧之血", + "category": "relic" + }, + { + "id": "mengsan_snake_ring_shuying", + "wikiId": "ring_of_the_snake", + "name": "蛇之戒指", + "description": "在每场战斗开始时,额外抽2张牌。", + "pool": "静默猎手", + "tier": "初始", + "ancient": null, + "order": 2, + "image": "extension/术樱包/mengsan/assets/relics/ring_of_the_snake.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%9B%87%E4%B9%8B%E6%88%92%E6%8C%87", + "descriptionRaw": "在每场战斗开始时,额外抽2张牌。", + "descriptionSource": "在每场战斗开始时,额外抽{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "蛇之戒指", + "category": "relic" + }, + { + "id": "mengsan_divine_right_shuying", + "wikiId": "divine_right", + "name": "天赋君权", + "description": "在每场战斗开始时,获得[辉星][辉星][辉星]。", + "pool": "储君", + "tier": "初始", + "ancient": null, + "order": 3, + "image": "extension/术樱包/mengsan/assets/relics/divine_right.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E8%B5%8B%E5%90%9B%E6%9D%83", + "descriptionRaw": "在每场战斗开始时,获得辉星辉星辉星。", + "descriptionSource": "在每场战斗开始时,获得[[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_bound_phylactery_shuying", + "wikiId": "bound_phylactery", + "name": "缚魂命匣", + "description": "在你的回合开始时,召唤1", + "pool": "亡灵契约师", + "tier": "初始", + "ancient": null, + "order": 4, + "image": "extension/术樱包/mengsan/assets/relics/bound_phylactery.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BC%9A%E9%AD%82%E5%91%BD%E5%8C%A3", + "descriptionRaw": "在你的回合开始时,召唤1", + "descriptionSource": "在你的回合开始时,{{颜色|gold|召唤}}{{颜色|blue|1}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_cracked_core_shuying", + "wikiId": "cracked_core", + "name": "破损核心", + "description": "在每场战斗开始时,生成1个闪电充能球。", + "pool": "故障机器人", + "tier": "初始", + "ancient": null, + "order": 5, + "image": "extension/术樱包/mengsan/assets/relics/cracked_core.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%A0%B4%E6%8D%9F%E6%A0%B8%E5%BF%83", + "descriptionRaw": "在每场战斗开始时,生成1个闪电充能球。", + "descriptionSource": "在每场战斗开始时,{{颜色|gold|生成}}{{颜色|blue|1}}个{{颜色|gold|闪电}}充能球。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "破损核心", + "category": "relic" + }, + { + "id": "mengsan_black_blood_shuying", + "wikiId": "black_blood", + "name": "黑暗之血", + "description": "在战斗结束时,回复12点生命。", + "pool": "铁甲战士", + "tier": "初始", + "ancient": null, + "order": 6, + "image": "extension/术樱包/mengsan/assets/relics/black_blood.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%BB%91%E6%9A%97%E4%B9%8B%E8%A1%80", + "descriptionRaw": "在战斗结束时,回复12点生命。", + "descriptionSource": "在战斗结束时,回复{{颜色|green|12}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "黑暗之血", + "category": "relic" + }, + { + "id": "mengsan_long_snake_ring_shuying", + "wikiId": "ring_of_the_drake", + "name": "长蛇戒指", + "description": "在战斗开始时的前3个回合,你额外抽2张牌。", + "pool": "静默猎手", + "tier": "初始", + "ancient": null, + "order": 7, + "image": "extension/术樱包/mengsan/assets/relics/ring_of_the_drake.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%95%BF%E8%9B%87%E6%88%92%E6%8C%87", + "descriptionRaw": "在战斗开始时的前3个回合,你额外抽2张牌。", + "descriptionSource": "在战斗开始时的前{{颜色|blue|3}}个回合,你额外抽{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "长蛇戒指", + "category": "relic" + }, + { + "id": "mengsan_divine_destiny_shuying", + "wikiId": "divine_destiny", + "name": "天命所归", + "description": "在每场战斗开始时,获得[辉星][辉星][辉星][辉星][辉星][辉星]。", + "pool": "储君", + "tier": "初始", + "ancient": null, + "order": 8, + "image": "extension/术樱包/mengsan/assets/relics/divine_destiny.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E5%91%BD%E6%89%80%E5%BD%92", + "descriptionRaw": "在每场战斗开始时,获得辉星辉星辉星辉星辉星辉星。", + "descriptionSource": "在每场战斗开始时,获得[[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]][[File:star_icon.png|16px|link=辉星]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_phylactery_unbound_shuying", + "wikiId": "phylactery_unbound", + "name": "无界命匣", + "description": "在每场战斗开始时,召唤5。在你的回合开始时,召唤2。", + "pool": "亡灵契约师", + "tier": "初始", + "ancient": null, + "order": 9, + "image": "extension/术樱包/mengsan/assets/relics/phylactery_unbound.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%97%A0%E7%95%8C%E5%91%BD%E5%8C%A3", + "descriptionRaw": "在每场战斗开始时,召唤5。在你的回合开始时,召唤2。", + "descriptionSource": "在每场战斗开始时,{{颜色|gold|召唤}}{{颜色|blue|5}}。在你的回合开始时,{{颜色|gold|召唤}}{{颜色|blue|2}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_infused_core_shuying", + "wikiId": "infused_core", + "name": "注能核心", + "description": "在每场战斗开始时,生成3个闪电充能球。闪电充能球额外造成1点伤害。", + "pool": "故障机器人", + "tier": "初始", + "ancient": null, + "order": 10, + "image": "extension/术樱包/mengsan/assets/relics/infused_core.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B3%A8%E8%83%BD%E6%A0%B8%E5%BF%83", + "descriptionRaw": "在每场战斗开始时,生成3个闪电充能球。闪电充能球额外造成1点伤害。", + "descriptionSource": "在每场战斗开始时,{{颜色|gold|生成}}{{颜色|blue|3}}个{{颜色|gold|闪电}}充能球。{{颜色|gold|闪电}}充能球额外造成{{颜色|blue|1}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_millennium_puzzle_shuying", + "wikiId": "centennial_puzzle", + "name": "百年积木", + "description": "你在每场战斗中第一次损失生命值时,抽3张牌。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 11, + "image": "extension/术樱包/mengsan/assets/relics/centennial_puzzle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%99%BE%E5%B9%B4%E7%A7%AF%E6%9C%A8", + "descriptionRaw": "你在每场战斗中第一次损失生命值时,抽3张牌。", + "descriptionSource": "你在每场战斗中第一次损失生命值时,抽{{颜色|blue|3}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "百年积木", + "category": "relic" + }, + { + "id": "mengsan_pendulum_shuying", + "wikiId": "pendulum", + "name": "摆动球", + "description": "每3个回合,抽1张牌", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 12, + "image": "extension/术樱包/mengsan/assets/relics/pendulum.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%91%86%E5%8A%A8%E7%90%83", + "descriptionRaw": "每3个回合,抽1张牌", + "descriptionSource": "每{{颜色|blue|3}}个回合,抽{{颜色|blue|1}}张牌", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_meal_ticket_shuying", + "wikiId": "meal_ticket", + "name": "餐券", + "description": "每当你进入商店房间时,回复15点生命。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 13, + "image": "extension/术樱包/mengsan/assets/relics/meal_ticket.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%A4%90%E5%88%B8", + "descriptionRaw": "每当你进入商店房间时,回复15点生命。", + "descriptionSource": "每当你进入商店房间时,回复{{颜色|green|15}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "餐券", + "category": "relic" + }, + { + "id": "mengsan_strawberry_shuying", + "wikiId": "strawberry", + "name": "草莓", + "description": "拾起时,将你的最大生命值提升7。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 14, + "image": "extension/术樱包/mengsan/assets/relics/strawberry.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8D%89%E8%8E%93", + "descriptionRaw": "拾起时,将你的最大生命值提升7。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|7}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "草莓", + "category": "relic" + }, + { + "id": "mengsan_strike_dummy_shuying", + "wikiId": "strike_dummy", + "name": "打击木偶", + "description": "名字中有“打击”的卡牌造成3点额外伤害。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 15, + "image": "extension/术樱包/mengsan/assets/relics/strike_dummy.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%89%93%E5%87%BB%E6%9C%A8%E5%81%B6", + "descriptionRaw": "名字中有“打击”的卡牌造成3点额外伤害。", + "descriptionSource": "名字中有“打击”的卡牌造成{{颜色|blue|3}}点额外伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "打击木偶", + "category": "relic" + }, + { + "id": "mengsan_bag_of_marbles_shuying", + "wikiId": "bag_of_marbles", + "name": "弹珠袋", + "description": "在每场战斗开始时,给予所有敌人1层易伤。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 16, + "image": "extension/术樱包/mengsan/assets/relics/bag_of_marbles.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%B9%E7%8F%A0%E8%A2%8B", + "descriptionRaw": "在每场战斗开始时,给予所有敌人1层易伤。", + "descriptionSource": "在每场战斗开始时,给予所有敌人{{颜色|blue|1}}层{{颜色|gold|易伤}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "弹珠袋", + "category": "relic" + }, + { + "id": "mengsan_lantern_shuying", + "wikiId": "lantern", + "name": "灯笼", + "description": "在每场战斗的第一回合获得[能量]。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 17, + "image": "extension/术樱包/mengsan/assets/relics/lantern.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%81%AF%E7%AC%BC", + "descriptionRaw": "在每场战斗的第一回合获得能量。", + "descriptionSource": "在每场战斗的第一回合获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "灯笼", + "category": "relic" + }, + { + "id": "mengsan_juzu_bracelet_shuying", + "wikiId": "juzu_bracelet", + "name": "佛珠手链", + "description": "你在?房间中不会再遭遇常规战斗。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 18, + "image": "extension/术樱包/mengsan/assets/relics/juzu_bracelet.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%9B%E7%8F%A0%E6%89%8B%E9%93%BE", + "descriptionRaw": "你在?房间中不会再遭遇常规战斗。", + "descriptionSource": "你在{{颜色|gold|?}}房间中不会再遭遇常规战斗。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "佛珠手链", + "category": "relic" + }, + { + "id": "mengsan_venerable_tea_set_shuying", + "wikiId": "venerable_tea_set", + "name": "古茶具套装", + "description": "到达休息处后的下一场战斗开始时额外获得[能量][能量]。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 19, + "image": "extension/术樱包/mengsan/assets/relics/venerable_tea_set.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E8%8C%B6%E5%85%B7%E5%A5%97%E8%A3%85", + "descriptionRaw": "到达休息处后的下一场战斗开始时额外获得能量能量。", + "descriptionSource": "到达{{颜色|gold|休息处}}后的下一场战斗开始时额外获得[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "古茶具套装", + "category": "relic" + }, + { + "id": "mengsan_red_mask_shuying", + "wikiId": "red_mask", + "name": "红面具", + "description": "在每场战斗开始时,给于所有敌人1层虚弱。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 20, + "image": "extension/术樱包/mengsan/assets/relics/red_mask.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BA%A2%E9%9D%A2%E5%85%B7", + "descriptionRaw": "在每场战斗开始时,给于所有敌人1层虚弱。", + "descriptionSource": "在每场战斗开始时,给于所有敌人{{颜色|blue|1}}层{{颜色|gold|虚弱}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "红面具", + "category": "relic" + }, + { + "id": "mengsan_gorget_shuying", + "wikiId": "gorget", + "name": "护喉甲", + "description": "在每场战斗开始时,获得4层覆甲。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 21, + "image": "extension/术樱包/mengsan/assets/relics/gorget.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8A%A4%E5%96%89%E7%94%B2", + "descriptionRaw": "在每场战斗开始时,获得4层覆甲。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|4}}层{{颜色|gold|覆甲}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_regal_pillow_shuying", + "wikiId": "regal_pillow", + "name": "皇家枕头", + "description": "在休息时,额外回复15点生命。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 22, + "image": "extension/术樱包/mengsan/assets/relics/regal_pillow.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%9A%87%E5%AE%B6%E6%9E%95%E5%A4%B4", + "descriptionRaw": "在休息时,额外回复15点生命。", + "descriptionSource": "在{{颜色|gold|休息}}时,额外回复{{颜色|blue|15}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "皇家枕头", + "category": "relic" + }, + { + "id": "mengsan_festive_poppers_shuying", + "wikiId": "festive_popper", + "name": "节日拉炮", + "description": "在每场战斗开始时,对所有敌人造成9点伤害。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 23, + "image": "extension/术樱包/mengsan/assets/relics/festive_popper.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8A%82%E6%97%A5%E6%8B%89%E7%82%AE", + "descriptionRaw": "在每场战斗开始时,对所有敌人造成9点伤害。", + "descriptionSource": "在每场战斗开始时,对所有敌人造成{{颜色|blue|9}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_vajra_shuying", + "wikiId": "vajra", + "name": "金刚杵", + "description": "在每场战斗开始时,获得1点力量。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 24, + "image": "extension/术樱包/mengsan/assets/relics/vajra.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%87%91%E5%88%9A%E6%9D%B5", + "descriptionRaw": "在每场战斗开始时,获得1点力量。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|1}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "金刚杵", + "category": "relic" + }, + { + "id": "mengsan_happy_flower_shuying", + "wikiId": "happy_flower", + "name": "开心小花", + "description": "每3个回合,获得[能量]。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 25, + "image": "extension/术樱包/mengsan/assets/relics/happy_flower.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%80%E5%BF%83%E5%B0%8F%E8%8A%B1", + "descriptionRaw": "每3个回合,获得能量。", + "descriptionSource": "每{{颜色|blue|3}}个回合,获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "开心小花", + "category": "relic" + }, + { + "id": "mengsan_anchor_shuying", + "wikiId": "anchor", + "name": "锚", + "description": "每场战斗开始时获得10点格挡。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 26, + "image": "extension/术樱包/mengsan/assets/relics/anchor.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%94%9A", + "descriptionRaw": "每场战斗开始时获得10点格挡。", + "descriptionSource": "每场战斗开始时获得{{颜色|blue|10}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "锚", + "category": "relic" + }, + { + "id": "mengsan_whetstone_shuying", + "wikiId": "whetstone", + "name": "磨刀石", + "description": "拾起时,随机升级2张攻击牌。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 27, + "image": "extension/术樱包/mengsan/assets/relics/whetstone.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%A3%A8%E5%88%80%E7%9F%B3", + "descriptionRaw": "拾起时,随机升级2张攻击牌。", + "descriptionSource": "拾起时,随机{{颜色|gold|升级}}{{颜色|blue|2}}张攻击牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "磨刀石", + "category": "relic" + }, + { + "id": "mengsan_bronze_scales_shuying", + "wikiId": "bronze_scales", + "name": "铜质鳞片", + "description": "在每场战斗开始时,获得3点荆棘。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 28, + "image": "extension/术樱包/mengsan/assets/relics/bronze_scales.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%93%9C%E8%B4%A8%E9%B3%9E%E7%89%87", + "descriptionRaw": "在每场战斗开始时,获得3点荆棘。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|3}}点{{颜色|gold|荆棘}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "铜制鳞片", + "category": "relic" + }, + { + "id": "mengsan_book_of_five_rings_shuying", + "wikiId": "book_of_five_rings", + "name": "五轮书", + "description": "你每将5张牌加入你的牌组时,回复20点生命。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 29, + "image": "extension/术樱包/mengsan/assets/relics/book_of_five_rings.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BA%94%E8%BD%AE%E4%B9%A6", + "descriptionRaw": "你每将5张牌加入你的牌组时,回复20点生命。", + "descriptionSource": "你每将{{颜色|blue|5}}张牌加入你的{{颜色|gold|牌组}}时,回复{{颜色|green|20}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_blood_vial_shuying", + "wikiId": "blood_vial", + "name": "小血瓶", + "description": "在每场战斗开始时,回复2点生命。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 30, + "image": "extension/术樱包/mengsan/assets/relics/blood_vial.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E8%A1%80%E7%93%B6", + "descriptionRaw": "在每场战斗开始时,回复2点生命。", + "descriptionSource": "在每场战斗开始时,回复{{颜色|green|2}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "小血瓶", + "category": "relic" + }, + { + "id": "mengsan_potion_belt_shuying", + "wikiId": "potion_belt", + "name": "药水腰带", + "description": "拾起时,获得2个药水栏位。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 31, + "image": "extension/术樱包/mengsan/assets/relics/potion_belt.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8D%AF%E6%B0%B4%E8%85%B0%E5%B8%A6", + "descriptionRaw": "拾起时,获得2个药水栏位。", + "descriptionSource": "拾起时,获得{{颜色|blue|2}}个药水栏位。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "药水腰带", + "category": "relic" + }, + { + "id": "mengsan_oddly_smooth_stone_shuying", + "wikiId": "oddly_smooth_stone", + "name": "意外光滑的石头", + "description": "在每场战斗开始时,获得1点敏捷。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 32, + "image": "extension/术樱包/mengsan/assets/relics/oddly_smooth_stone.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%84%8F%E5%A4%96%E5%85%89%E6%BB%91%E7%9A%84%E7%9F%B3%E5%A4%B4", + "descriptionRaw": "在每场战斗开始时,获得1点敏捷。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|1}}点{{颜色|gold|敏捷}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "意外光滑的石头", + "category": "relic" + }, + { + "id": "mengsan_war_paint_shuying", + "wikiId": "war_paint", + "name": "战纹涂料", + "description": "拾起时,随机升级2张技能牌。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 33, + "image": "extension/术樱包/mengsan/assets/relics/war_paint.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%88%98%E7%BA%B9%E6%B6%82%E6%96%99", + "descriptionRaw": "拾起时,随机升级2张技能牌。", + "descriptionSource": "拾起时,随机{{颜色|gold|升级}}{{颜色|blue|2}}张技能牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "战纹涂料", + "category": "relic" + }, + { + "id": "mengsan_bag_of_preparation_shuying", + "wikiId": "bag_of_preparation", + "name": "准备背包", + "description": "在每场战斗开始时,额外抽2张牌。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 34, + "image": "extension/术樱包/mengsan/assets/relics/bag_of_preparation.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%87%86%E5%A4%87%E8%83%8C%E5%8C%85", + "descriptionRaw": "在每场战斗开始时,额外抽2张牌。", + "descriptionSource": "在每场战斗开始时,额外抽{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "准备背包", + "category": "relic" + }, + { + "id": "mengsan_amethyst_aubergine_shuying", + "wikiId": "amethyst_aubergine", + "name": "紫水晶茄子", + "description": "敌人额外掉落15金币。", + "pool": "通用", + "tier": "普通", + "ancient": null, + "order": 35, + "image": "extension/术樱包/mengsan/assets/relics/amethyst_aubergine.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%B4%AB%E6%B0%B4%E6%99%B6%E8%8C%84%E5%AD%90", + "descriptionRaw": "敌人额外掉落15金币。", + "descriptionSource": "敌人额外掉落{{颜色|blue|15}}{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_red_skull_shuying", + "wikiId": "red_skull", + "name": "红头骨", + "description": "当你的生命值低于或等于50%时,你额外获得3点力量", + "pool": "铁甲战士", + "tier": "普通", + "ancient": null, + "order": 36, + "image": "extension/术樱包/mengsan/assets/relics/red_skull.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BA%A2%E5%A4%B4%E9%AA%A8", + "descriptionRaw": "当你的生命值低于或等于50%时,你额外获得3点力量", + "descriptionSource": "当你的生命值低于或等于{{颜色|blue|50%}}时,你额外获得{{颜色|blue|3}}点{{颜色|gold|力量}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "红头骨", + "category": "relic" + }, + { + "id": "mengsan_snecko_skull_shuying", + "wikiId": "snecko_skull", + "name": "异蛇头骨", + "description": "每当你给予敌人中毒时,所给予的中毒层数增加1层。", + "pool": "静默猎手", + "tier": "普通", + "ancient": null, + "order": 37, + "image": "extension/术樱包/mengsan/assets/relics/snecko_skull.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%82%E8%9B%87%E5%A4%B4%E9%AA%A8", + "descriptionRaw": "每当你给予敌人中毒时,所给予的中毒层数增加1层。", + "descriptionSource": "每当你给予敌人{{颜色|gold|中毒}}时,所给予的{{颜色|gold|中毒}}层数增加{{颜色|blue|1}}层。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "异蛇头骨", + "category": "relic" + }, + { + "id": "mengsan_fencing_manual_shuying", + "wikiId": "fencing_manual", + "name": "击剑指南", + "description": "在每场战斗开始时,铸造10。", + "pool": "储君", + "tier": "普通", + "ancient": null, + "order": 38, + "image": "extension/术樱包/mengsan/assets/relics/fencing_manual.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%87%BB%E5%89%91%E6%8C%87%E5%8D%97", + "descriptionRaw": "在每场战斗开始时,铸造10。", + "descriptionSource": "在每场战斗开始时,{{颜色|gold|铸造}}{{颜色|blue|10}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_bone_flute_shuying", + "wikiId": "bone_flute", + "name": "骨笛", + "description": "每当奥斯提攻击时,获得2点格挡。", + "pool": "亡灵契约师", + "tier": "普通", + "ancient": null, + "order": 39, + "image": "extension/术樱包/mengsan/assets/relics/bone_flute.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%AA%A8%E7%AC%9B", + "descriptionRaw": "每当奥斯提攻击时,获得2点格挡。", + "descriptionSource": "每当{{颜色|gold|奥斯提}}攻击时,获得{{颜色|blue|2}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_data_disk_shuying", + "wikiId": "data_disk", + "name": "数据磁盘", + "description": "在每场战斗开始时,获得1点集中。", + "pool": "故障机器人", + "tier": "普通", + "ancient": null, + "order": 40, + "image": "extension/术樱包/mengsan/assets/relics/data_disk.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%95%B0%E6%8D%AE%E7%A3%81%E7%9B%98", + "descriptionRaw": "在每场战斗开始时,获得1点集中。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|1}}点{{颜色|gold|集中}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "数据磁盘", + "category": "relic" + }, + { + "id": "mengsan_orichalcum_shuying", + "wikiId": "orichalcum", + "name": "奥利哈钢", + "description": "如果你在回合结束时没有任何格挡,获得6点格挡。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 41, + "image": "extension/术樱包/mengsan/assets/relics/orichalcum.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A5%A5%E5%88%A9%E5%93%88%E9%92%A2", + "descriptionRaw": "如果你在回合结束时没有任何格挡,获得6点格挡。", + "descriptionSource": "如果你在回合结束时没有任何{{颜色|gold|格挡}},获得{{颜色|blue|6}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "奥利哈钢", + "category": "relic" + }, + { + "id": "mengsan_vambrace_shuying", + "wikiId": "vambrace", + "name": "臂甲", + "description": "每场战斗中,你第一次从卡牌中获得的格挡值翻倍。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 42, + "image": "extension/术樱包/mengsan/assets/relics/vambrace.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%87%82%E7%94%B2", + "descriptionRaw": "每场战斗中,你第一次从卡牌中获得的格挡值翻倍。", + "descriptionSource": "每场战斗中,你第一次从卡牌中获得的{{颜色|gold|格挡}}值翻倍。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ripple_basin_shuying", + "wikiId": "ripple_basin", + "name": "波纹水盆", + "description": "如果你在本回合中没有打出过攻击牌,则获得4点格挡。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 43, + "image": "extension/术樱包/mengsan/assets/relics/ripple_basin.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B3%A2%E7%BA%B9%E6%B0%B4%E7%9B%86", + "descriptionRaw": "如果你在本回合中没有打出过攻击牌,则获得4点格挡。", + "descriptionSource": "如果你在本回合中没有打出过攻击牌,则获得{{颜色|blue|4}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lasting_candy_shuying", + "wikiId": "lasting_candy", + "name": "吃不完的糖", + "description": "每两场战斗,你的卡牌奖励就会额外包含一张能力牌。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 44, + "image": "extension/术樱包/mengsan/assets/relics/lasting_candy.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%90%83%E4%B8%8D%E5%AE%8C%E7%9A%84%E7%B3%96", + "descriptionRaw": "每两场战斗,你的卡牌奖励就会额外包含一张能力牌。", + "descriptionSource": "每两场战斗,你的卡牌奖励就会额外包含一张能力牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_akabeko_shuying", + "wikiId": "akabeko", + "name": "赤牛", + "description": "在每场战斗开始时,获得8点活力。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 45, + "image": "extension/术樱包/mengsan/assets/relics/akabeko.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%B5%A4%E7%89%9B", + "descriptionRaw": "在每场战斗开始时,获得8点活力。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|8}}点{{颜色|gold|活力}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "赤牛", + "category": "relic" + }, + { + "id": "mengsan_horn_cleat_shuying", + "wikiId": "horn_cleat", + "name": "船夹板", + "description": "在你的第二回合开始时,获得14点格挡。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 46, + "image": "extension/术樱包/mengsan/assets/relics/horn_cleat.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%88%B9%E5%A4%B9%E6%9D%BF", + "descriptionRaw": "在你的第二回合开始时,获得14点格挡。", + "descriptionSource": "在你的{{颜色|blue|第二}}回合开始时,获得{{颜色|blue|14}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "船夹板", + "category": "relic" + }, + { + "id": "mengsan_gremlin_horn_shuying", + "wikiId": "gremlin_horn", + "name": "地精之角", + "description": "每当有一名敌人死亡时,获得[能量]并抽1张牌。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 47, + "image": "extension/术樱包/mengsan/assets/relics/gremlin_horn.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%9C%B0%E7%B2%BE%E4%B9%8B%E8%A7%92", + "descriptionRaw": "每当有一名敌人死亡时,获得能量并抽1张牌。", + "descriptionSource": "每当有一名敌人死亡时,获得[[File:colorless_energy_icon.png|16px|link=能量]]并抽{{颜色|blue|1}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "地精之角", + "category": "relic" + }, + { + "id": "mengsan_pen_nib_shuying", + "wikiId": "pen_nib", + "name": "钢笔尖", + "description": "你每打出的第10张攻击牌将会造成双倍伤害。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 48, + "image": "extension/术樱包/mengsan/assets/relics/pen_nib.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%92%A2%E7%AC%94%E5%B0%96", + "descriptionRaw": "你每打出的第10张攻击牌将会造成双倍伤害。", + "descriptionSource": "你每打出的第{{颜色|blue|10}}张攻击牌将会造成双倍伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "钢笔尖", + "category": "relic" + }, + { + "id": "mengsan_planisphere_shuying", + "wikiId": "planisphere", + "name": "活动星图", + "description": "每当你进入?房间的时候,回复5点生命。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 49, + "image": "extension/术樱包/mengsan/assets/relics/planisphere.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B4%BB%E5%8A%A8%E6%98%9F%E5%9B%BE", + "descriptionRaw": "每当你进入?房间的时候,回复5点生命。", + "descriptionSource": "每当你进入{{颜色|gold|?}}房间的时候,回复{{颜色|green|5}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_joss_paper_shuying", + "wikiId": "joss_paper", + "name": "金纸", + "description": "你每消耗5张牌,就抽1张牌。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 50, + "image": "extension/术樱包/mengsan/assets/relics/joss_paper.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%87%91%E7%BA%B8", + "descriptionRaw": "你每消耗5张牌,就抽1张牌。", + "descriptionSource": "你每{{颜色|gold|消耗}}{{颜色|blue|5}}张牌,就抽{{颜色|blue|1}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ornamental_fan_shuying", + "wikiId": "ornamental_fan", + "name": "精致折扇", + "description": "你每在同一回合内打出3张攻击牌,就获得4点格挡。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 51, + "image": "extension/术樱包/mengsan/assets/relics/ornamental_fan.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%B2%BE%E8%87%B4%E6%8A%98%E6%89%87", + "descriptionRaw": "你每在同一回合内打出3张攻击牌,就获得4点格挡。", + "descriptionSource": "你每在同一回合内打出{{颜色|blue|3}}张攻击牌,就获得{{颜色|blue|4}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "精致折扇", + "category": "relic" + }, + { + "id": "mengsan_letter_opener_shuying", + "wikiId": "letter_opener", + "name": "开信刀", + "description": "你每在同一回合内打出3张技能牌,就对所有敌人造成5点伤害。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 52, + "image": "extension/术樱包/mengsan/assets/relics/letter_opener.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%80%E4%BF%A1%E5%88%80", + "descriptionRaw": "你每在同一回合内打出3张技能牌,就对所有敌人造成5点伤害。", + "descriptionSource": "你每在同一回合内打出{{颜色|blue|3}}张技能牌,就对所有敌人造成{{颜色|blue|5}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "开信刀", + "category": "relic" + }, + { + "id": "mengsan_pear_shuying", + "wikiId": "pear", + "name": "梨子", + "description": "拾起时,将你的最大生命值提升10。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 53, + "image": "extension/术樱包/mengsan/assets/relics/pear.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%A2%A8%E5%AD%90", + "descriptionRaw": "拾起时,将你的最大生命值提升10。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|10}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "梨子", + "category": "relic" + }, + { + "id": "mengsan_reptile_trinket_shuying", + "wikiId": "reptile_trinket", + "name": "爬行动物饰品", + "description": "当你使用药水时,在本回合获得3力量。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 54, + "image": "extension/术樱包/mengsan/assets/relics/reptile_trinket.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%88%AC%E8%A1%8C%E5%8A%A8%E7%89%A9%E9%A5%B0%E5%93%81", + "descriptionRaw": "当你使用药水时,在本回合获得3力量。", + "descriptionSource": "当你使用药水时,在本回合获得{{颜色|blue|3}}{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sparkling_rouge_shuying", + "wikiId": "sparkling_rouge", + "name": "闪亮口红", + "description": "在你的第3回合开始时,获得1点力量和1点敏捷。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 55, + "image": "extension/术樱包/mengsan/assets/relics/sparkling_rouge.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%97%AA%E4%BA%AE%E5%8F%A3%E7%BA%A2", + "descriptionRaw": "在你的第3回合开始时,获得1点力量和1点敏捷。", + "descriptionSource": "在你的第{{颜色|blue|3}}回合开始时,获得{{颜色|blue|1}}点{{颜色|gold|力量}}和{{颜色|blue|1}}点{{颜色|gold|敏捷}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_petrified_toad_shuying", + "wikiId": "petrified_toad", + "name": "石化蟾蜍", + "description": "在每场战斗开始时,获得一瓶药水形状的石头", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 56, + "image": "extension/术樱包/mengsan/assets/relics/petrified_toad.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%9F%B3%E5%8C%96%E8%9F%BE%E8%9C%8D", + "descriptionRaw": "在每场战斗开始时,获得一瓶药水形状的石头", + "descriptionSource": "在每场战斗开始时,获得一瓶{{颜色|gold|药水形状的石头}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_nunchaku_shuying", + "wikiId": "nunchaku", + "name": "双截棍", + "description": "你每打出10张攻击牌,获得[能量]。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 57, + "image": "extension/术樱包/mengsan/assets/relics/nunchaku.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%8C%E6%88%AA%E6%A3%8D", + "descriptionRaw": "你每打出10张攻击牌,获得能量。", + "descriptionSource": "你每打出{{颜色|blue|10}}张攻击牌,获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "双节棍", + "category": "relic" + }, + { + "id": "mengsan_mercury_hourglass_shuying", + "wikiId": "mercury_hourglass", + "name": "水银沙漏", + "description": "在你的回合开始时,对所有敌人造成3点伤害。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 58, + "image": "extension/术樱包/mengsan/assets/relics/mercury_hourglass.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B0%B4%E9%93%B6%E6%B2%99%E6%BC%8F", + "descriptionRaw": "在你的回合开始时,对所有敌人造成3点伤害。", + "descriptionSource": "在你的回合开始时,对所有敌人造成{{颜色|blue|3}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "水银沙漏", + "category": "relic" + }, + { + "id": "mengsan_stone_cracker_shuying", + "wikiId": "stone_cracker", + "name": "碎石钻", + "description": "在每场战斗开始时,在本场战斗中随机升级你抽牌堆中的2张牌。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 59, + "image": "extension/术樱包/mengsan/assets/relics/stone_cracker.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%A2%8E%E7%9F%B3%E9%92%BB", + "descriptionRaw": "在每场战斗开始时,在本场战斗中随机升级你抽牌堆中的2张牌。", + "descriptionSource": "在每场战斗开始时,在本场战斗中随机{{颜色|gold|升级}}你{{颜色|gold|抽牌堆}}中的{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_pantograph_shuying", + "wikiId": "pantograph", + "name": "缩放仪", + "description": "在Boss战开始时,回复25点生命值。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 60, + "image": "extension/术樱包/mengsan/assets/relics/pantograph.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BC%A9%E6%94%BE%E4%BB%AA", + "descriptionRaw": "在Boss战开始时,回复25点生命值。", + "descriptionSource": "在{{颜色|gold|Boss}}战开始时,回复{{颜色|green|25}}点生命值。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "缩放仪", + "category": "relic" + }, + { + "id": "mengsan_kusarigama_shuying", + "wikiId": "kusarigama", + "name": "锁镰", + "description": "你每在同一回合内打出3张攻击牌,就随机对一名敌人造成6点伤害。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 61, + "image": "extension/术樱包/mengsan/assets/relics/kusarigama.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%94%81%E9%95%B0", + "descriptionRaw": "你每在同一回合内打出3张攻击牌,就随机对一名敌人造成6点伤害。", + "descriptionSource": "你每在同一回合内打出{{颜色|blue|3}}张攻击牌,就随机对一名敌人造成{{颜色|blue|6}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_miniature_cannon_shuying", + "wikiId": "miniature_cannon", + "name": "微型大炮", + "description": "升级的攻击牌额外造成3点伤害。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 62, + "image": "extension/术樱包/mengsan/assets/relics/miniature_cannon.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BE%AE%E5%9E%8B%E5%A4%A7%E7%82%AE", + "descriptionRaw": "升级的攻击牌额外造成3点伤害。", + "descriptionSource": "{{颜色|gold|升级}}的攻击牌额外造成{{颜色|blue|3}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_tiny_mailbox_shuying", + "wikiId": "tiny_mailbox", + "name": "小邮箱", + "description": "每当你休息时,获得2瓶随机药水。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 63, + "image": "extension/术樱包/mengsan/assets/relics/tiny_mailbox.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E9%82%AE%E7%AE%B1", + "descriptionRaw": "每当你休息时,获得2瓶随机药水。", + "descriptionSource": "每当你{{颜色|gold|休息}}时,获得{{颜色|blue|2}}瓶随机药水。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_tuning_fork_shuying", + "wikiId": "tuning_fork", + "name": "音叉", + "description": "你每打出10张技能牌,获得7点格挡。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 64, + "image": "extension/术樱包/mengsan/assets/relics/tuning_fork.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%9F%B3%E5%8F%89", + "descriptionRaw": "你每打出10张技能牌,获得7点格挡。", + "descriptionSource": "你每打出{{颜色|blue|10}}张技能牌,获得{{颜色|blue|7}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_permafrost_shuying", + "wikiId": "permafrost", + "name": "永冻冰晶", + "description": "当你在战斗中第一次打出能力牌时,获得7点格挡。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 65, + "image": "extension/术樱包/mengsan/assets/relics/permafrost.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B0%B8%E5%86%BB%E5%86%B0%E6%99%B6", + "descriptionRaw": "当你在战斗中第一次打出能力牌时,获得7点格挡。", + "descriptionSource": "当你在战斗中第一次打出能力牌时,获得{{颜色|blue|7}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_eternal_feather_shuying", + "wikiId": "eternal_feather", + "name": "永恒羽毛", + "description": "你的牌组中每有5张牌,当你进入休息处时就会回复3点生命。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 66, + "image": "extension/术樱包/mengsan/assets/relics/eternal_feather.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B0%B8%E6%81%92%E7%BE%BD%E6%AF%9B", + "descriptionRaw": "你的牌组中每有5张牌,当你进入休息处时就会回复3点生命。", + "descriptionSource": "你的{{颜色|gold|牌组}}中每有{{颜色|blue|5}}张牌,当你进入{{颜色|gold|休息处}}时就会回复{{颜色|green|3}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "永恒羽毛", + "category": "relic" + }, + { + "id": "mengsan_bowler_hat_shuying", + "wikiId": "bowler_hat", + "name": "圆顶礼帽", + "description": "额外获得25%的金币。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 67, + "image": "extension/术樱包/mengsan/assets/relics/bowler_hat.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%9C%86%E9%A1%B6%E7%A4%BC%E5%B8%BD", + "descriptionRaw": "额外获得25%的金币。", + "descriptionSource": "额外获得{{颜色|blue|25%}}的{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lucky_fysh_shuying", + "wikiId": "lucky_fysh", + "name": "招财异鱼", + "description": "每当你将一张卡牌加入你的牌组时,获得15金币。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 68, + "image": "extension/术樱包/mengsan/assets/relics/lucky_fysh.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8B%9B%E8%B4%A2%E5%BC%82%E9%B1%BC", + "descriptionRaw": "每当你将一张卡牌加入你的牌组时,获得15金币。", + "descriptionSource": "每当你将一张卡牌加入你的{{颜色|gold|牌组}}时,获得{{颜色|blue|15}}{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_parrying_shield_shuying", + "wikiId": "parrying_shield", + "name": "招架盾", + "description": "如果你在回合结束时拥有至少10点格挡,则对随机敌人造成6点伤害。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 69, + "image": "extension/术樱包/mengsan/assets/relics/parrying_shield.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8B%9B%E6%9E%B6%E7%9B%BE", + "descriptionRaw": "如果你在回合结束时拥有至少10点格挡,则对随机敌人造成6点伤害。", + "descriptionSource": "如果你在回合结束时拥有至少{{颜色|blue|10}}点{{颜色|gold|格挡}},则对随机敌人造成{{颜色|blue|6}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_candelabra_shuying", + "wikiId": "candelabra", + "name": "烛台", + "description": "在你的第2回合开始时,获得[能量][能量]。", + "pool": "通用", + "tier": "罕见", + "ancient": null, + "order": 70, + "image": "extension/术樱包/mengsan/assets/relics/candelabra.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%83%9B%E5%8F%B0", + "descriptionRaw": "在你的第2回合开始时,获得能量能量。", + "descriptionSource": "在你的{{颜色|blue|第2}}回合开始时,获得[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paper_phrog_shuying", + "wikiId": "paper_phrog", + "name": "纸蛙", + "description": "有易伤状态的敌人受到的伤害增加75%而非50%。", + "pool": "铁甲战士", + "tier": "罕见", + "ancient": null, + "order": 71, + "image": "extension/术樱包/mengsan/assets/relics/paper_phrog.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BA%B8%E8%9B%99", + "descriptionRaw": "有易伤状态的敌人受到的伤害增加75%而非50%。", + "descriptionSource": "有{{颜色|gold|易伤}}状态的敌人受到的伤害增加{{颜色|blue|75%}}而非{{颜色|blue|50%}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "纸蛙", + "category": "relic" + }, + { + "id": "mengsan_self_forming_clay_shuying", + "wikiId": "self_forming_clay", + "name": "自成型黏土", + "description": "每当你在战斗中失去生命,就在下回合获得3点格挡。", + "pool": "铁甲战士", + "tier": "罕见", + "ancient": null, + "order": 72, + "image": "extension/术樱包/mengsan/assets/relics/self_forming_clay.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%87%AA%E6%88%90%E5%9E%8B%E9%BB%8F%E5%9C%9F", + "descriptionRaw": "每当你在战斗中失去生命,就在下回合获得3点格挡。", + "descriptionSource": "每当你在战斗中失去生命,就在下回合获得{{颜色|blue|3}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "自成型黏土", + "category": "relic" + }, + { + "id": "mengsan_tingsha_shuying", + "wikiId": "tingsha", + "name": "铜钹", + "description": "你每在你的回合丢弃一张牌,就对一名随机敌人造成3点伤害。", + "pool": "静默猎手", + "tier": "罕见", + "ancient": null, + "order": 73, + "image": "extension/术樱包/mengsan/assets/relics/tingsha.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%93%9C%E9%92%B9", + "descriptionRaw": "你每在你的回合丢弃一张牌,就对一名随机敌人造成3点伤害。", + "descriptionSource": "你每在你的回合丢弃一张牌,就对一名随机敌人造成{{颜色|blue|3}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "铜钹", + "category": "relic" + }, + { + "id": "mengsan_twisted_funnel_shuying", + "wikiId": "twisted_funnel", + "name": "扭曲漏斗", + "description": "在每场战斗开始时,给予所有敌人4层中毒。", + "pool": "静默猎手", + "tier": "罕见", + "ancient": null, + "order": 74, + "image": "extension/术樱包/mengsan/assets/relics/twisted_funnel.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%89%AD%E6%9B%B2%E6%BC%8F%E6%96%97", + "descriptionRaw": "在每场战斗开始时,给予所有敌人4层中毒。", + "descriptionSource": "在每场战斗开始时,给予所有敌人{{颜色|blue|4}}层{{颜色|gold|中毒}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "扭曲漏斗", + "category": "relic" + }, + { + "id": "mengsan_galactic_dust_shuying", + "wikiId": "galactic_dust", + "name": "星系尘埃", + "description": "每消耗10点[辉星],就获得10格挡。", + "pool": "储君", + "tier": "罕见", + "ancient": null, + "order": 75, + "image": "extension/术樱包/mengsan/assets/relics/galactic_dust.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%98%9F%E7%B3%BB%E5%B0%98%E5%9F%83", + "descriptionRaw": "每消耗10点辉星,就获得10格挡。", + "descriptionSource": "每消耗{{颜色|blue|10}}点[[File:star_icon.png|16px|link=辉星]],就获得{{颜色|blue|10}}{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_regalite_shuying", + "wikiId": "regalite", + "name": "君王矿石", + "description": "每当你生成一张牌时,获得2点格挡。", + "pool": "储君", + "tier": "罕见", + "ancient": null, + "order": 76, + "image": "extension/术樱包/mengsan/assets/relics/regalite.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%90%9B%E7%8E%8B%E7%9F%BF%E7%9F%B3", + "descriptionRaw": "每当你生成一张牌时,获得2点格挡。", + "descriptionSource": "每当你生成一张牌时,获得{{颜色|blue|2}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_book_repair_knife_shuying", + "wikiId": "book_repair_knife", + "name": "修书小刀", + "description": "每当有一名不是“爪牙”的敌人死于灾厄时,回复3点生命。", + "pool": "亡灵契约师", + "tier": "罕见", + "ancient": null, + "order": 77, + "image": "extension/术樱包/mengsan/assets/relics/book_repair_knife.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BF%AE%E4%B9%A6%E5%B0%8F%E5%88%80", + "descriptionRaw": "每当有一名不是“爪牙”的敌人死于灾厄时,回复3点生命。", + "descriptionSource": "每当有一名不是“爪牙”的敌人死于{{颜色|gold|灾厄}}时,回复{{颜色|green|3}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_funerary_mask_shuying", + "wikiId": "funerary_mask", + "name": "葬礼面具", + "description": "在每场战斗开始时,将3张灵魂加入你的抽牌堆。", + "pool": "亡灵契约师", + "tier": "罕见", + "ancient": null, + "order": 78, + "image": "extension/术樱包/mengsan/assets/relics/funerary_mask.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%91%AC%E7%A4%BC%E9%9D%A2%E5%85%B7", + "descriptionRaw": "在每场战斗开始时,将3张灵魂加入你的抽牌堆。", + "descriptionSource": "在每场战斗开始时,将{{颜色|blue|3}}张{{颜色|gold|灵魂}}加入你的{{颜色|gold|抽牌堆}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_gold_plated_cables_shuying", + "wikiId": "gold_plated_cables", + "name": "镀金缆线", + "description": "你最右侧的充能球会额外触发一次被动效果。", + "pool": "故障机器人", + "tier": "罕见", + "ancient": null, + "order": 79, + "image": "extension/术樱包/mengsan/assets/relics/gold_plated_cables.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%95%80%E9%87%91%E7%BC%86%E7%BA%BF", + "descriptionRaw": "你最右侧的充能球会额外触发一次被动效果。", + "descriptionSource": "你最右侧的充能球会额外触发一次被动效果。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "镀金缆线", + "category": "relic" + }, + { + "id": "mengsan_symbiotic_virus_shuying", + "wikiId": "symbiotic_virus", + "name": "共生病毒", + "description": "在每场战斗开始时,生成1个黑暗充能球。", + "pool": "故障机器人", + "tier": "罕见", + "ancient": null, + "order": 80, + "image": "extension/术樱包/mengsan/assets/relics/symbiotic_virus.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%85%B1%E7%94%9F%E7%97%85%E6%AF%92", + "descriptionRaw": "在每场战斗开始时,生成1个黑暗充能球。", + "descriptionSource": "在每场战斗开始时,{{颜色|gold|生成}}{{颜色|blue|1}}个{{颜色|gold|黑暗}}充能球。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "共生病毒", + "category": "relic" + }, + { + "id": "mengsan_white_beast_statue_shuying", + "wikiId": "white_beast_statue", + "name": "白兽雕像", + "description": "战斗结束后必定掉落药水。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 81, + "image": "extension/术樱包/mengsan/assets/relics/white_beast_statue.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%99%BD%E5%85%BD%E9%9B%95%E5%83%8F", + "descriptionRaw": "战斗结束后必定掉落药水。", + "descriptionSource": "战斗结束后必定掉落药水。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "白兽雕像", + "category": "relic" + }, + { + "id": "mengsan_white_star_shuying", + "wikiId": "white_star", + "name": "白星", + "description": "精英敌人额外掉落一次稀有卡牌奖励。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 82, + "image": "extension/术樱包/mengsan/assets/relics/white_star.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%99%BD%E6%98%9F", + "descriptionRaw": "精英敌人额外掉落一次稀有卡牌奖励。", + "descriptionSource": "{{颜色|gold|精英}}敌人额外掉落一次{{颜色|gold|稀有}}卡牌奖励。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ice_cream_shuying", + "wikiId": "ice_cream", + "name": "冰淇淋", + "description": "多余的能量可以留到下一回合。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 83, + "image": "extension/术樱包/mengsan/assets/relics/ice_cream.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%86%B0%E6%B7%87%E6%B7%8B", + "descriptionRaw": "多余的能量可以留到下一回合。", + "descriptionSource": "多余的能量可以留到下一回合。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "冰淇淋", + "category": "relic" + }, + { + "id": "mengsan_unsettling_lamp_shuying", + "wikiId": "unsettling_lamp", + "name": "不安油灯", + "description": "你在每场战斗中第一次打出能给予敌人负面状态的牌时,将其效果翻倍。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 84, + "image": "extension/术樱包/mengsan/assets/relics/unsettling_lamp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B8%8D%E5%AE%89%E6%B2%B9%E7%81%AF", + "descriptionRaw": "你在每场战斗中第一次打出能给予敌人负面状态的牌时,将其效果翻倍。", + "descriptionSource": "你在每场战斗中第一次打出能给予敌人{{颜色|gold|负面状态}}的牌时,将其效果翻倍。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_unceasing_top_shuying", + "wikiId": "unceasing_top", + "name": "不休陀螺", + "description": "在你的回合,当你没有手牌时,抽一张牌。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 85, + "image": "extension/术樱包/mengsan/assets/relics/unceasing_top.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B8%8D%E4%BC%91%E9%99%80%E8%9E%BA", + "descriptionRaw": "在你的回合,当你没有手牌时,抽一张牌。", + "descriptionSource": "在你的回合,当你没有{{颜色|gold|手牌}}时,抽一张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "不休陀螺", + "category": "relic" + }, + { + "id": "mengsan_rainbow_ring_shuying", + "wikiId": "rainbow_ring", + "name": "彩虹戒指", + "description": "每回合,你第一次打出攻击牌、技能牌和能力牌各一张时,获得1点力量和1点敏捷。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 86, + "image": "extension/术樱包/mengsan/assets/relics/rainbow_ring.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BD%A9%E8%99%B9%E6%88%92%E6%8C%87", + "descriptionRaw": "每回合,你第一次打出攻击牌、技能牌和能力牌各一张时,获得1点力量和1点敏捷。", + "descriptionSource": "每回合,你第一次打出攻击牌、技能牌和能力牌各一张时,获得{{颜色|blue|1}}点{{颜色|gold|力量}}和{{颜色|blue|1}}点{{颜色|gold|敏捷}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_shovel_shuying", + "wikiId": "shovel", + "name": "铲子", + "description": "现在你可以在休息处挖掘遗物。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 87, + "image": "extension/术樱包/mengsan/assets/relics/shovel.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%93%B2%E5%AD%90", + "descriptionRaw": "现在你可以在休息处挖掘遗物。", + "descriptionSource": "现在你可以在{{颜色|gold|休息处}}挖掘{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "铲子", + "category": "relic" + }, + { + "id": "mengsan_meat_on_the_bone_shuying", + "wikiId": "meat_on_the_bone", + "name": "带骨肉", + "description": "如果你在战斗结束时生命值等于或低于50%,回复12点生命。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 88, + "image": "extension/术樱包/mengsan/assets/relics/meat_on_the_bone.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B8%A6%E9%AA%A8%E8%82%89", + "descriptionRaw": "如果你在战斗结束时生命值等于或低于50%,回复12点生命。", + "descriptionSource": "如果你在战斗结束时生命值等于或低于{{颜色|blue|50%}},回复{{颜色|green|12}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "带骨肉", + "category": "relic" + }, + { + "id": "mengsan_chandelier_shuying", + "wikiId": "chandelier", + "name": "吊灯", + "description": "在你的第三回合开始时,获得[能量][能量][能量]。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 89, + "image": "extension/术樱包/mengsan/assets/relics/chandelier.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%90%8A%E7%81%AF", + "descriptionRaw": "在你的第三回合开始时,获得能量能量能量。", + "descriptionSource": "在你的{{颜色|blue|第三}}回合开始时,获得[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_frozen_egg_shuying", + "wikiId": "frozen_egg", + "name": "冻结之蛋", + "description": "每当你获得能力牌时,将其升级。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 90, + "image": "extension/术樱包/mengsan/assets/relics/frozen_egg.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%86%BB%E7%BB%93%E4%B9%8B%E8%9B%8B", + "descriptionRaw": "每当你获得能力牌时,将其升级。", + "descriptionSource": "每当你获得能力牌时,将其{{颜色|gold|升级}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "冻结之蛋", + "category": "relic" + }, + { + "id": "mengsan_cloak_clasp_shuying", + "wikiId": "cloak_clasp", + "name": "斗篷扣", + "description": "在你的回合结束时,每有一张手牌,就获得1点格挡", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 91, + "image": "extension/术樱包/mengsan/assets/relics/cloak_clasp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%96%97%E7%AF%B7%E6%89%A3", + "descriptionRaw": "在你的回合结束时,每有一张手牌,就获得1点格挡", + "descriptionSource": "在你的回合结束时,每有一张{{颜色|gold|手牌}},就获得{{颜色|blue|1}}点{{颜色|gold|格挡}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "斗篷扣", + "category": "relic" + }, + { + "id": "mengsan_toxic_egg_shuying", + "wikiId": "toxic_egg", + "name": "毒素之蛋", + "description": "每当你获得技能牌时,将其升级。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 92, + "image": "extension/术樱包/mengsan/assets/relics/toxic_egg.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%AF%92%E7%B4%A0%E4%B9%8B%E8%9B%8B", + "descriptionRaw": "每当你获得技能牌时,将其升级。", + "descriptionSource": "每当你获得{{颜色|gold|技能牌}}时,将其{{颜色|gold|升级}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "毒素之蛋", + "category": "relic" + }, + { + "id": "mengsan_gambling_chip_shuying", + "wikiId": "gambling_chip", + "name": "赌博筹码", + "description": "在每场战斗开始时,丢弃任意张牌,然后抽相同数量张牌。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 93, + "image": "extension/术樱包/mengsan/assets/relics/gambling_chip.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%B5%8C%E5%8D%9A%E7%AD%B9%E7%A0%81", + "descriptionRaw": "在每场战斗开始时,丢弃任意张牌,然后抽相同数量张牌。", + "descriptionSource": "在每场战斗开始时,丢弃任意张牌,然后抽相同数量张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "赌博筹码", + "category": "relic" + }, + { + "id": "mengsan_captains_wheel_shuying", + "wikiId": "captains_wheel", + "name": "舵盘", + "description": "在你的第三回合开始时,获得18点格挡。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 94, + "image": "extension/术樱包/mengsan/assets/relics/captains_wheel.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%88%B5%E7%9B%98", + "descriptionRaw": "在你的第三回合开始时,获得18点格挡。", + "descriptionSource": "在你的{{颜色|blue|第三}}回合开始时,获得{{颜色|blue|18}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "舵盘", + "category": "relic" + }, + { + "id": "mengsan_vexing_puzzlebox_shuying", + "wikiId": "vexing_puzzlebox", + "name": "烦人机关盒", + "description": "在每场战斗开始时,将一张随机卡牌加入你的手牌。这张牌在本回合可以免费打出。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 95, + "image": "extension/术樱包/mengsan/assets/relics/vexing_puzzlebox.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%83%A6%E4%BA%BA%E6%9C%BA%E5%85%B3%E7%9B%92", + "descriptionRaw": "在每场战斗开始时,将一张随机卡牌加入你的手牌。这张牌在本回合可以免费打出。", + "descriptionSource": "在每场战斗开始时,将一张随机卡牌加入你的{{颜色|gold|手牌}}。这张牌在本回合可以免费打出。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_bellows_shuying", + "wikiId": "bellows", + "name": "风箱", + "description": "你在每场战斗开始时的手牌,将被升级。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 96, + "image": "extension/术樱包/mengsan/assets/relics/bellows.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%A3%8E%E7%AE%B1", + "descriptionRaw": "你在每场战斗开始时的手牌,将被升级。", + "descriptionSource": "你在每场战斗开始时的{{颜色|gold|手牌}},将被{{颜色|gold|升级}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_mummified_hand_shuying", + "wikiId": "mummified_hand", + "name": "干瘪之手", + "description": "你每打出一张能力牌,手牌中就有一张随机牌在这个回合可以免费打出。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 97, + "image": "extension/术樱包/mengsan/assets/relics/mummified_hand.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B9%B2%E7%98%AA%E4%B9%8B%E6%89%8B", + "descriptionRaw": "你每打出一张能力牌,手牌中就有一张随机牌在这个回合可以免费打出。", + "descriptionSource": "你每打出一张能力牌,{{颜色|gold|手牌}}中就有一张随机牌在这个回合可以免费打出。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "干瘪之手", + "category": "relic" + }, + { + "id": "mengsan_old_coin_shuying", + "wikiId": "old_coin", + "name": "古钱币", + "description": "拾起时,获得300金币。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 98, + "image": "extension/术樱包/mengsan/assets/relics/old_coin.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E9%92%B1%E5%B8%81", + "descriptionRaw": "拾起时,获得300金币。", + "descriptionSource": "拾起时,获得{{颜色|blue|300}}{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "古钱币", + "category": "relic" + }, + { + "id": "mengsan_intimidating_helmet_shuying", + "wikiId": "intimidating_helmet", + "name": "骇人头盔", + "description": "每当你打出一张耗能大于等于[能量][能量]的牌,获得4点格挡。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 99, + "image": "extension/术樱包/mengsan/assets/relics/intimidating_helmet.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%AA%87%E4%BA%BA%E5%A4%B4%E7%9B%94", + "descriptionRaw": "每当你打出一张耗能大于等于能量能量的牌,获得4点格挡。", + "descriptionSource": "每当你打出一张耗能大于等于[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]的牌,获得{{颜色|blue|4}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_girya_shuying", + "wikiId": "girya", + "name": "壶铃", + "description": "你现在能在休息处获得力量。(最多3次)", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 100, + "image": "extension/术樱包/mengsan/assets/relics/girya.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A3%B6%E9%93%83", + "descriptionRaw": "你现在能在休息处获得力量。(最多3次)", + "descriptionSource": "你现在能在{{颜色|gold|休息处}}获得{{颜色|gold|力量}}。(最多{{颜色|blue|3}}次)", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "壶铃", + "category": "relic" + }, + { + "id": "mengsan_pocketwatch_shuying", + "wikiId": "pocketwatch", + "name": "怀表", + "description": "当你在本回合打出的牌少于等于3张时,则在你的下个回合开始时额外抽3张牌。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 101, + "image": "extension/术樱包/mengsan/assets/relics/pocketwatch.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%80%80%E8%A1%A8", + "descriptionRaw": "当你在本回合打出的牌少于等于3张时,则在你的下个回合开始时额外抽3张牌。", + "descriptionSource": "当你在本回合打出的牌少于等于{{颜色|blue|3}}张时,则在你的下个回合开始时额外抽{{颜色|blue|3}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "怀表", + "category": "relic" + }, + { + "id": "mengsan_sturdy_clamp_shuying", + "wikiId": "sturdy_clamp", + "name": "坚固钳子", + "description": "可以跨回合保留最多10点格挡。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 102, + "image": "extension/术樱包/mengsan/assets/relics/sturdy_clamp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%9D%9A%E5%9B%BA%E9%92%B3%E5%AD%90", + "descriptionRaw": "可以跨回合保留最多10点格挡。", + "descriptionSource": "可以跨回合保留最多{{颜色|blue|10}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_kunai_shuying", + "wikiId": "kunai", + "name": "苦无", + "description": "你每在同一回合内打出3张攻击牌,就获得1点敏捷。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 103, + "image": "extension/术樱包/mengsan/assets/relics/kunai.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8B%A6%E6%97%A0", + "descriptionRaw": "你每在同一回合内打出3张攻击牌,就获得1点敏捷。", + "descriptionSource": "你每在同一回合内打出{{颜色|blue|3}}张攻击牌,就获得{{颜色|blue|1}}点{{颜色|gold|敏捷}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "苦无", + "category": "relic" + }, + { + "id": "mengsan_stone_calendar_shuying", + "wikiId": "stone_calendar", + "name": "历石", + "description": "在第7回合结束时,对所有敌人造成52点伤害。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 104, + "image": "extension/术樱包/mengsan/assets/relics/stone_calendar.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8E%86%E7%9F%B3", + "descriptionRaw": "在第7回合结束时,对所有敌人造成52点伤害。", + "descriptionSource": "在第{{颜色|blue|7}}回合结束时,对所有敌人造成{{颜色|blue|52}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "历石", + "category": "relic" + }, + { + "id": "mengsan_beating_remnant_shuying", + "wikiId": "beating_remnant", + "name": "律动残余", + "description": "你在一回合内失去的生命值不会超过20点。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 105, + "image": "extension/术樱包/mengsan/assets/relics/beating_remnant.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BE%8B%E5%8A%A8%E6%AE%8B%E4%BD%99", + "descriptionRaw": "你在一回合内失去的生命值不会超过20点。", + "descriptionSource": "你在一回合内失去的生命值不会超过{{颜色|blue|20}}点。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_mango_shuying", + "wikiId": "mango", + "name": "芒果", + "description": "拾起时,将你的最大生命值提升14。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 106, + "image": "extension/术樱包/mengsan/assets/relics/mango.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8A%92%E6%9E%9C", + "descriptionRaw": "拾起时,将你的最大生命值提升14。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|14}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "芒果", + "category": "relic" + }, + { + "id": "mengsan_game_piece_shuying", + "wikiId": "game_piece", + "name": "棋子", + "description": "每当你打出能力牌时,抽1张牌。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 107, + "image": "extension/术樱包/mengsan/assets/relics/game_piece.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%A3%8B%E5%AD%90", + "descriptionRaw": "每当你打出能力牌时,抽1张牌。", + "descriptionSource": "每当你打出能力牌时,抽{{颜色|blue|1}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_molten_egg_shuying", + "wikiId": "molten_egg", + "name": "熔火之蛋", + "description": "每当你获得攻击牌时,将其升级。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 108, + "image": "extension/术樱包/mengsan/assets/relics/molten_egg.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%86%94%E7%81%AB%E4%B9%8B%E8%9B%8B", + "descriptionRaw": "每当你获得攻击牌时,将其升级。", + "descriptionSource": "每当你获得{{颜色|gold|攻击牌}}时,将其{{颜色|gold|升级}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "熔火之蛋", + "category": "relic" + }, + { + "id": "mengsan_shuriken_shuying", + "wikiId": "shuriken", + "name": "手里剑", + "description": "你每在同一回合内打出3张攻击牌,获得1点力量。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 109, + "image": "extension/术樱包/mengsan/assets/relics/shuriken.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%89%8B%E9%87%8C%E5%89%91", + "descriptionRaw": "你每在同一回合内打出3张攻击牌,获得1点力量。", + "descriptionSource": "你每在同一回合内打出{{颜色|blue|3}}张攻击牌,获得{{颜色|blue|1}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "手里剑", + "category": "relic" + }, + { + "id": "mengsan_the_courier_shuying", + "wikiId": "the_courier", + "name": "送货员", + "description": "商人的卡牌、遗物和药水不再会卖光,并且所有商品打折20%。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 110, + "image": "extension/术樱包/mengsan/assets/relics/the_courier.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%80%81%E8%B4%A7%E5%91%98", + "descriptionRaw": "商人的卡牌、遗物和药水不再会卖光,并且所有商品打折20%。", + "descriptionSource": "商人的卡牌、遗物和药水不再会卖光,并且所有商品打折{{颜色|blue|20%}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "送货员", + "category": "relic" + }, + { + "id": "mengsan_art_of_war_shuying", + "wikiId": "art_of_war", + "name": "孙子兵法", + "description": "如果你在本回合中没有打出过攻击牌,则在下一回合额外获得1点[能量]。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 111, + "image": "extension/术樱包/mengsan/assets/relics/art_of_war.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%AD%99%E5%AD%90%E5%85%B5%E6%B3%95", + "descriptionRaw": "如果你在本回合中没有打出过攻击牌,则在下一回合额外获得1点能量。", + "descriptionSource": "如果你在本回合中没有打出过攻击牌,则在下一回合额外获得1点[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "孙子兵法", + "category": "relic" + }, + { + "id": "mengsan_razor_tooth_shuying", + "wikiId": "razor_tooth", + "name": "剃刀牙", + "description": "你打出攻击牌和技能牌时,将其在本场战斗内升级。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 112, + "image": "extension/术樱包/mengsan/assets/relics/razor_tooth.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%89%83%E5%88%80%E7%89%99", + "descriptionRaw": "你打出攻击牌和技能牌时,将其在本场战斗内升级。", + "descriptionSource": "你打出攻击牌和技能牌时,将其在本场战斗内{{颜色|gold|升级}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_tungsten_rod_shuying", + "wikiId": "tungsten_rod", + "name": "钨合金棍", + "description": "你每次失去生命时,减少失去的生命值1点。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 113, + "image": "extension/术樱包/mengsan/assets/relics/tungsten_rod.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%92%A8%E5%90%88%E9%87%91%E6%A3%8D", + "descriptionRaw": "你每次失去生命时,减少失去的生命值1点。", + "descriptionSource": "你每次失去生命时,减少失去的生命值{{颜色|blue|1}}点。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "钨合金棍", + "category": "relic" + }, + { + "id": "mengsan_lizard_tail_shuying", + "wikiId": "lizard_tail", + "name": "蜥蜴尾巴", + "description": "当你的生命值将要降低至0或以下时,回复到最大生命值的50%(仅能起效一次)。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 114, + "image": "extension/术樱包/mengsan/assets/relics/lizard_tail.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%9C%A5%E8%9C%B4%E5%B0%BE%E5%B7%B4", + "descriptionRaw": "当你的生命值将要降低至0或以下时,回复到最大生命值的50%(仅能起效一次)。", + "descriptionSource": "当你的生命值将要降低至{{颜色|blue|0}}或以下时,回复到最大生命值的{{颜色|green|50%}}(仅能起效一次)。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "蜥蜴尾巴", + "category": "relic" + }, + { + "id": "mengsan_prayer_wheel_shuying", + "wikiId": "prayer_wheel", + "name": "转经轮", + "description": "普通敌人额外掉落一次卡牌奖励。", + "pool": "通用", + "tier": "稀有", + "ancient": null, + "order": 115, + "image": "extension/术樱包/mengsan/assets/relics/prayer_wheel.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%BD%AC%E7%BB%8F%E8%BD%AE", + "descriptionRaw": "普通敌人额外掉落一次卡牌奖励。", + "descriptionSource": "普通敌人额外掉落一次卡牌奖励。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "转经轮", + "category": "relic" + }, + { + "id": "mengsan_charons_ashes_shuying", + "wikiId": "charons_ashes", + "name": "卡戎之灰", + "description": "每当你消耗一张牌,对所有敌人造成3点伤害。", + "pool": "铁甲战士", + "tier": "稀有", + "ancient": null, + "order": 116, + "image": "extension/术樱包/mengsan/assets/relics/charons_ashes.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%A1%E6%88%8E%E4%B9%8B%E7%81%B0", + "descriptionRaw": "每当你消耗一张牌,对所有敌人造成3点伤害。", + "descriptionSource": "每当你{{颜色|gold|消耗}}一张牌,对所有敌人造成{{颜色|blue|3}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "卡戎之灰", + "category": "relic" + }, + { + "id": "mengsan_demon_tongue_shuying", + "wikiId": "demon_tongue", + "name": "恶魔之舌", + "description": "每回合第一次在回合内失去生命值时,回复等量的生命值。", + "pool": "铁甲战士", + "tier": "稀有", + "ancient": null, + "order": 117, + "image": "extension/术樱包/mengsan/assets/relics/demon_tongue.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%81%B6%E9%AD%94%E4%B9%8B%E8%88%8C", + "descriptionRaw": "每回合第一次在回合内失去生命值时,回复等量的生命值。", + "descriptionSource": "每回合第一次在回合内失去生命值时,回复等量的生命值。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ruined_helmet_shuying", + "wikiId": "ruined_helmet", + "name": "损毁头盔", + "description": "你在每场战斗中第一次获得的力量值翻倍。", + "pool": "铁甲战士", + "tier": "稀有", + "ancient": null, + "order": 118, + "image": "extension/术樱包/mengsan/assets/relics/ruined_helmet.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8D%9F%E6%AF%81%E5%A4%B4%E7%9B%94", + "descriptionRaw": "你在每场战斗中第一次获得的力量值翻倍。", + "descriptionSource": "你在每场战斗中第一次获得的{{颜色|gold|力量}}值翻倍。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_helical_dart_shuying", + "wikiId": "helical_dart", + "name": "螺线飞镖", + "description": "你每打出一张小刀,就在本回合获得1点敏捷。", + "pool": "静默猎手", + "tier": "稀有", + "ancient": null, + "order": 119, + "image": "extension/术樱包/mengsan/assets/relics/helical_dart.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%9E%BA%E7%BA%BF%E9%A3%9E%E9%95%96", + "descriptionRaw": "你每打出一张小刀,就在本回合获得1点敏捷。", + "descriptionSource": "你每打出一张{{颜色|gold|小刀}},就在本回合获得{{颜色|blue|1}}点{{颜色|gold|敏捷}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paper_krane_shuying", + "wikiId": "paper_krane", + "name": "纸鹤", + "description": "有虚弱状态的敌人造成的伤害降低40%而非25%。", + "pool": "静默猎手", + "tier": "稀有", + "ancient": null, + "order": 120, + "image": "extension/术樱包/mengsan/assets/relics/paper_krane.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BA%B8%E9%B9%A4", + "descriptionRaw": "有虚弱状态的敌人造成的伤害降低40%而非25%。", + "descriptionSource": "有{{颜色|gold|虚弱}}状态的敌人造成的伤害降低{{颜色|blue|40%}}而非{{颜色|blue|25%}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "纸鹤", + "category": "relic" + }, + { + "id": "mengsan_tough_bandages_shuying", + "wikiId": "tough_bandages", + "name": "结实绷带", + "description": "你每在你的回合丢弃一张牌,就获得3点格挡。", + "pool": "静默猎手", + "tier": "稀有", + "ancient": null, + "order": 121, + "image": "extension/术樱包/mengsan/assets/relics/tough_bandages.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BB%93%E5%AE%9E%E7%BB%B7%E5%B8%A6", + "descriptionRaw": "你每在你的回合丢弃一张牌,就获得3点格挡。", + "descriptionSource": "你每在你的回合丢弃一张牌,就获得{{颜色|blue|3}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "结实绷带", + "category": "relic" + }, + { + "id": "mengsan_lunar_pastry_shuying", + "wikiId": "lunar_pastry", + "name": "月亮糕点", + "description": "在你的回合结束时,获得[辉星]。", + "pool": "储君", + "tier": "稀有", + "ancient": null, + "order": 122, + "image": "extension/术樱包/mengsan/assets/relics/lunar_pastry.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%9C%88%E4%BA%AE%E7%B3%95%E7%82%B9", + "descriptionRaw": "在你的回合结束时,获得辉星。", + "descriptionSource": "在你的回合结束时,获得[[File:star_icon.png|16px|link=辉星]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_mini_regent_shuying", + "wikiId": "mini_regent", + "name": "迷你储君", + "description": "每回合你第一次花费[辉星]时,获得1点力量。", + "pool": "储君", + "tier": "稀有", + "ancient": null, + "order": 123, + "image": "extension/术樱包/mengsan/assets/relics/mini_regent.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%BF%B7%E4%BD%A0%E5%82%A8%E5%90%9B", + "descriptionRaw": "每回合你第一次花费辉星时,获得1点力量。", + "descriptionSource": "每回合你第一次花费[[File:star_icon.png|16px|link=辉星]]时,获得{{颜色|blue|1}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_orange_dough_shuying", + "wikiId": "orange_dough", + "name": "橙色团块", + "description": "在每场战斗开始时,将2张随机无色牌加入你的手牌。", + "pool": "储君", + "tier": "稀有", + "ancient": null, + "order": 124, + "image": "extension/术樱包/mengsan/assets/relics/orange_dough.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%A9%99%E8%89%B2%E5%9B%A2%E5%9D%97", + "descriptionRaw": "在每场战斗开始时,将2张随机无色牌加入你的手牌。", + "descriptionSource": "在每场战斗开始时,将{{颜色|blue|2}}张随机无色牌加入你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_big_hat_shuying", + "wikiId": "big_hat", + "name": "大帽子", + "description": "在每场战斗开始时,将2张随机虚无牌加入你的手牌。", + "pool": "亡灵契约师", + "tier": "稀有", + "ancient": null, + "order": 125, + "image": "extension/术樱包/mengsan/assets/relics/big_hat.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A7%E5%B8%BD%E5%AD%90", + "descriptionRaw": "在每场战斗开始时,将2张随机虚无牌加入你的手牌。", + "descriptionSource": "在每场战斗开始时,将{{颜色|blue|2}}张随机{{颜色|gold|虚无}}牌加入你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_bookmark_shuying", + "wikiId": "bookmark", + "name": "书签", + "description": "每回合结束时,随机一张被保留的牌在被打出前的耗能减少1。", + "pool": "亡灵契约师", + "tier": "稀有", + "ancient": null, + "order": 126, + "image": "extension/术樱包/mengsan/assets/relics/bookmark.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B9%A6%E7%AD%BE", + "descriptionRaw": "每回合结束时,随机一张被保留的牌在被打出前的耗能减少1。", + "descriptionSource": "每回合结束时,随机一张被{{颜色|gold|保留}}的牌在被打出前的耗能减少{{颜色|blue|1}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ivory_tile_shuying", + "wikiId": "ivory_tile", + "name": "象牙麻将牌", + "description": "每当你打出一张耗能大于等于[能量][能量][能量]的牌时,获得[能量]。", + "pool": "亡灵契约师", + "tier": "稀有", + "ancient": null, + "order": 127, + "image": "extension/术樱包/mengsan/assets/relics/ivory_tile.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%B1%A1%E7%89%99%E9%BA%BB%E5%B0%86%E7%89%8C", + "descriptionRaw": "每当你打出一张耗能大于等于能量能量能量的牌时,获得能量。", + "descriptionSource": "每当你打出一张耗能大于等于[[File:necrobinder_energy_icon.png|16px|link=能量]][[File:necrobinder_energy_icon.png|16px|link=能量]][[File:necrobinder_energy_icon.png|16px|link=能量]]的牌时,获得[[File:necrobinder_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_emotion_chip_shuying", + "wikiId": "emotion_chip", + "name": "情感芯片", + "description": "在每回合开始时,如果你在之前回合受到过伤害,则触发所有充能球的被动效果。", + "pool": "故障机器人", + "tier": "稀有", + "ancient": null, + "order": 128, + "image": "extension/术樱包/mengsan/assets/relics/emotion_chip.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%83%85%E6%84%9F%E8%8A%AF%E7%89%87", + "descriptionRaw": "在每回合开始时,如果你在之前回合受到过伤害,则触发所有充能球的被动效果。", + "descriptionSource": "在每回合开始时,如果你在之前回合受到过伤害,则触发所有充能球的被动效果。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "情感芯片", + "category": "relic" + }, + { + "id": "mengsan_metronome_shuying", + "wikiId": "metronome", + "name": "节拍器", + "description": "每场战斗中你首次生成7个充能球时,对所有敌人造成30点伤害。", + "pool": "故障机器人", + "tier": "稀有", + "ancient": null, + "order": 129, + "image": "extension/术樱包/mengsan/assets/relics/metronome.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8A%82%E6%8B%8D%E5%99%A8", + "descriptionRaw": "每场战斗中你首次生成7个充能球时,对所有敌人造成30点伤害。", + "descriptionSource": "每场战斗中你首次{{颜色|gold|生成}}{{颜色|blue|7}}个{{颜色|gold|充能球}}时,对所有敌人造成{{颜色|blue|30}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_power_cell_shuying", + "wikiId": "power_cell", + "name": "能量电池", + "description": "在每场战斗开始时,将2张耗能为0的卡牌从你的抽牌堆放入你的手牌。", + "pool": "故障机器人", + "tier": "稀有", + "ancient": null, + "order": 130, + "image": "extension/术樱包/mengsan/assets/relics/power_cell.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%83%BD%E9%87%8F%E7%94%B5%E6%B1%A0", + "descriptionRaw": "在每场战斗开始时,将2张耗能为0的卡牌从你的抽牌堆放入你的手牌。", + "descriptionSource": "在每场战斗开始时,将{{颜色|blue|2}}张耗能为0的卡牌从你的{{颜色|gold|抽牌堆}}放入你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_dingy_rug_shuying", + "wikiId": "dingy_rug", + "name": "肮脏地毯", + "description": "卡牌奖励现在会包括无色牌。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 131, + "image": "extension/术樱包/mengsan/assets/relics/dingy_rug.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%82%AE%E8%84%8F%E5%9C%B0%E6%AF%AF", + "descriptionRaw": "卡牌奖励现在会包括无色牌。", + "descriptionSource": "卡牌奖励现在会包括无色牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_cauldron_shuying", + "wikiId": "cauldron", + "name": "大锅", + "description": "拾起时,制作5瓶随机药水。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 132, + "image": "extension/术樱包/mengsan/assets/relics/cauldron.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A7%E9%94%85", + "descriptionRaw": "拾起时,制作5瓶随机药水。", + "descriptionSource": "拾起时,制作{{颜色|blue|5}}瓶随机药水。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "大锅", + "category": "relic" + }, + { + "id": "mengsan_dollys_mirror_shuying", + "wikiId": "dollys_mirror", + "name": "多利之镜", + "description": "拾起时,从你的牌组中选择一张牌进行复制。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 133, + "image": "extension/术樱包/mengsan/assets/relics/dollys_mirror.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%9A%E5%88%A9%E4%B9%8B%E9%95%9C", + "descriptionRaw": "拾起时,从你的牌组中选择一张牌进行复制。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中选择一张牌进行复制。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "多利之镜", + "category": "relic" + }, + { + "id": "mengsan_toolbox_shuying", + "wikiId": "toolbox", + "name": "工具箱", + "description": "在每场战斗开始时,从3张随机无色牌中选择1张加入你的手牌。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 134, + "image": "extension/术樱包/mengsan/assets/relics/toolbox.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B7%A5%E5%85%B7%E7%AE%B1", + "descriptionRaw": "在每场战斗开始时,从3张随机无色牌中选择1张加入你的手牌。", + "descriptionSource": "在每场战斗开始时,从{{颜色|blue|3}}张随机无色牌中选择{{颜色|blue|1}}张加入你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "工具箱", + "category": "relic" + }, + { + "id": "mengsan_chemical_x_shuying", + "wikiId": "chemical_x", + "name": "化学物X", + "description": "耗能为X的牌的效果数值增加2点。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 135, + "image": "extension/术樱包/mengsan/assets/relics/chemical_x.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8C%96%E5%AD%A6%E7%89%A9X", + "descriptionRaw": "耗能为X的牌的效果数值增加2点。", + "descriptionSource": "耗能为{{颜色|blue|X}}的牌的效果数值增加{{颜色|blue|2}}点。", + "flavor": "警告:严禁与糖、香料还有一切美好的味道混合在一起。", + "predecessor": "化学物X", + "category": "relic" + }, + { + "id": "mengsan_membership_card_shuying", + "wikiId": "membership_card", + "name": "会员卡", + "description": "所有商品打折50%!", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 136, + "image": "extension/术樱包/mengsan/assets/relics/membership_card.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BC%9A%E5%91%98%E5%8D%A1", + "descriptionRaw": "所有商品打折50%!", + "descriptionSource": "所有商品打折{{颜色|blue|50%}}!", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "会员卡", + "category": "relic" + }, + { + "id": "mengsan_dragon_fruit_shuying", + "wikiId": "dragon_fruit", + "name": "火龙果", + "description": "每当你获得金币时,提升1点你的最大生命值。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 137, + "image": "extension/术樱包/mengsan/assets/relics/dragon_fruit.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%81%AB%E9%BE%99%E6%9E%9C", + "descriptionRaw": "每当你获得金币时,提升1点你的最大生命值。", + "descriptionSource": "每当你获得{{颜色|gold|金币}}时,提升{{颜色|blue|1}}点你的最大生命值。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_screaming_flagon_shuying", + "wikiId": "screaming_flagon", + "name": "尖叫酒壶", + "description": "如果你在回合结束时没有任何手牌,则对所有敌人造成20点伤害。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 138, + "image": "extension/术樱包/mengsan/assets/relics/screaming_flagon.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%96%E5%8F%AB%E9%85%92%E5%A3%B6", + "descriptionRaw": "如果你在回合结束时没有任何手牌,则对所有敌人造成20点伤害。", + "descriptionSource": "如果你在回合结束时没有任何{{颜色|gold|手牌}},则对所有敌人造成{{颜色|blue|20}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lees_waffle_shuying", + "wikiId": "lees_waffle", + "name": "李家华夫饼", + "description": "拾起时,将你的最大生命值提升7点,并回复所有生命。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 139, + "image": "extension/术樱包/mengsan/assets/relics/lees_waffle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%9D%8E%E5%AE%B6%E5%8D%8E%E5%A4%AB%E9%A5%BC", + "descriptionRaw": "拾起时,将你的最大生命值提升7点,并回复所有生命。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|7}}点,并回复所有生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "李家华夫饼", + "category": "relic" + }, + { + "id": "mengsan_bread_shuying", + "wikiId": "bread", + "name": "面包", + "description": "在你的第一个回合开始时,失去[能量][能量]。在其余的回合开始时,获得[能量]。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 140, + "image": "extension/术樱包/mengsan/assets/relics/bread.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%9D%A2%E5%8C%85", + "descriptionRaw": "在你的第一个回合开始时,失去能量能量。在其余的回合开始时,获得能量。", + "descriptionSource": "在你的第一个回合开始时,失去[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]。在其余的回合开始时,获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_kifuda_shuying", + "wikiId": "kifuda", + "name": "木札", + "description": "拾起时,从你的牌组中选择至多3张牌,附魔:伶俐。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 141, + "image": "extension/术樱包/mengsan/assets/relics/kifuda.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%9C%A8%E6%9C%AD", + "descriptionRaw": "拾起时,从你的牌组中选择至多3张牌,附魔:伶俐。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中选择至多{{颜色|blue|3}}张牌,{{颜色|gold|附魔}}:{{颜色|purple|伶俐}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_gnarled_hammer_shuying", + "wikiId": "gnarled_hammer", + "name": "扭曲锤子", + "description": "拾起时,从你的牌组中选择至多3张攻击牌,附魔:锋利3。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 142, + "image": "extension/术樱包/mengsan/assets/relics/gnarled_hammer.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%89%AD%E6%9B%B2%E9%94%A4%E5%AD%90", + "descriptionRaw": "拾起时,从你的牌组中选择至多3张攻击牌,附魔:锋利3。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中选择至多{{颜色|blue|3}}张攻击牌,{{颜色|gold|附魔}}:{{颜色|purple|锋利}}{{颜色|blue|3}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_punch_dagger_shuying", + "wikiId": "punch_dagger", + "name": "拳刃", + "description": "拾起时,选择一张攻击牌为它附魔:动量5。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 143, + "image": "extension/术樱包/mengsan/assets/relics/punch_dagger.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8B%B3%E5%88%83", + "descriptionRaw": "拾起时,选择一张攻击牌为它附魔:动量5。", + "descriptionSource": "拾起时,选择一张攻击牌为它{{颜色|gold|附魔}}:{{颜色|purple|动量}}{{颜色|blue|5}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_burning_sticks_shuying", + "wikiId": "burning_sticks", + "name": "燃烧木棍", + "description": "每场战斗中你第一次消耗技能牌时,将那张牌的复制品加入你的手牌", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 144, + "image": "extension/术樱包/mengsan/assets/relics/burning_sticks.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%87%83%E7%83%A7%E6%9C%A8%E6%A3%8D", + "descriptionRaw": "每场战斗中你第一次消耗技能牌时,将那张牌的复制品加入你的手牌", + "descriptionSource": "每场战斗中你第一次{{颜色|gold|消耗}}技能牌时,将那张牌的复制品加入你的{{颜色|gold|手牌}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lava_lamp_shuying", + "wikiId": "lava_lamp", + "name": "熔岩灯", + "description": "在战斗结束时,如果你没有受到伤害,则升级你的所有卡牌奖励。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 145, + "image": "extension/术樱包/mengsan/assets/relics/lava_lamp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%86%94%E5%B2%A9%E7%81%AF", + "descriptionRaw": "在战斗结束时,如果你没有受到伤害,则升级你的所有卡牌奖励。", + "descriptionSource": "在战斗结束时,如果你没有受到伤害,则{{颜色|gold|升级}}你的所有卡牌奖励。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ringing_triangle_shuying", + "wikiId": "ringing_triangle", + "name": "三角铃鼓", + "description": "在每场战斗的第一回合保留你的手牌。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 146, + "image": "extension/术樱包/mengsan/assets/relics/ringing_triangle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B8%89%E8%A7%92%E9%93%83%E9%BC%93", + "descriptionRaw": "在每场战斗的第一回合保留你的手牌。", + "descriptionSource": "在每场战斗的第一回合{{颜色|gold|保留}}你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_mystic_lighter_shuying", + "wikiId": "mystic_lighter", + "name": "神秘打火机", + "description": "有附魔的攻击牌额外造成9点伤害。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 147, + "image": "extension/术樱包/mengsan/assets/relics/mystic_lighter.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%A5%9E%E7%A7%98%E6%89%93%E7%81%AB%E6%9C%BA", + "descriptionRaw": "有附魔的攻击牌额外造成9点伤害。", + "descriptionSource": "有{{颜色|gold|附魔}}的攻击牌额外造成{{颜色|blue|9}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_the_abacus_shuying", + "wikiId": "the_abacus", + "name": "算盘", + "description": "你每次将抽牌堆洗牌时,获得6点格挡。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 148, + "image": "extension/术樱包/mengsan/assets/relics/the_abacus.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%AE%97%E7%9B%98", + "descriptionRaw": "你每次将抽牌堆洗牌时,获得6点格挡。", + "descriptionSource": "你每次将{{颜色|gold|抽牌堆}}洗牌时,获得{{颜色|blue|6}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "算盘", + "category": "relic" + }, + { + "id": "mengsan_royal_stamp_shuying", + "wikiId": "royal_stamp", + "name": "王室印章", + "description": "拾起时,从牌组中选择一张攻击牌或技能牌,为它附魔:王室认证。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 149, + "image": "extension/术樱包/mengsan/assets/relics/royal_stamp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%8E%8B%E5%AE%A4%E5%8D%B0%E7%AB%A0", + "descriptionRaw": "拾起时,从牌组中选择一张攻击牌或技能牌,为它附魔:王室认证。", + "descriptionSource": "拾起时,从{{颜色|gold|牌组}}中选择一张攻击牌或技能牌,为它{{颜色|gold|附魔}}:{{颜色|purple|王室认证}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_miniature_tent_shuying", + "wikiId": "miniature_tent", + "name": "微型帐篷", + "description": "你可以在休息处选择任意数量的选项。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 150, + "image": "extension/术樱包/mengsan/assets/relics/miniature_tent.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BE%AE%E5%9E%8B%E5%B8%90%E7%AF%B7", + "descriptionRaw": "你可以在休息处选择任意数量的选项。", + "descriptionSource": "你可以在{{颜色|gold|休息处}}选择任意数量的选项。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_orrery_shuying", + "wikiId": "orrery", + "name": "星系仪", + "description": "拾起时,获得5次卡牌奖励", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 151, + "image": "extension/术樱包/mengsan/assets/relics/orrery.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%98%9F%E7%B3%BB%E4%BB%AA", + "descriptionRaw": "拾起时,获得5次卡牌奖励", + "descriptionSource": "拾起时,获得{{颜色|blue|5}}次卡牌奖励", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "星系仪", + "category": "relic" + }, + { + "id": "mengsan_belt_buckle_shuying", + "wikiId": "belt_buckle", + "name": "腰带扣", + "description": "当你没有药水时,你额外拥有2点敏捷。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 152, + "image": "extension/术樱包/mengsan/assets/relics/belt_buckle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%85%B0%E5%B8%A6%E6%89%A3", + "descriptionRaw": "当你没有药水时,你额外拥有2点敏捷。", + "descriptionSource": "当你没有药水时,你额外拥有{{颜色|blue|2}}点{{颜色|gold|敏捷}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sling_of_courage_shuying", + "wikiId": "sling_of_courage", + "name": "勇气投石索", + "description": "在与精英敌人战斗时,获得2点力量。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 153, + "image": "extension/术樱包/mengsan/assets/relics/sling_of_courage.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8B%87%E6%B0%94%E6%8A%95%E7%9F%B3%E7%B4%A2", + "descriptionRaw": "在与精英敌人战斗时,获得2点力量。", + "descriptionSource": "在与{{颜色|gold|精英}}敌人战斗时,获得{{颜色|blue|2}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "勇气投石索", + "category": "relic" + }, + { + "id": "mengsan_ghost_seed_shuying", + "wikiId": "ghost_seed", + "name": "幽灵种子", + "description": "打击和防御获得虚无。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 154, + "image": "extension/术樱包/mengsan/assets/relics/ghost_seed.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B9%BD%E7%81%B5%E7%A7%8D%E5%AD%90", + "descriptionRaw": "打击和防御获得虚无。", + "descriptionSource": "{{颜色|gold|打击}}和{{颜色|gold|防御}}获得{{颜色|gold|虚无}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_wing_charm_shuying", + "wikiId": "wing_charm", + "name": "羽翼护符", + "description": "每次卡牌奖励中,都会有随机一张牌被附魔:迅捷1。", + "pool": "通用", + "tier": "商店", + "ancient": null, + "order": 155, + "image": "extension/术樱包/mengsan/assets/relics/wing_charm.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BE%BD%E7%BF%BC%E6%8A%A4%E7%AC%A6", + "descriptionRaw": "每次卡牌奖励中,都会有随机一张牌被附魔:迅捷1。", + "descriptionSource": "每次卡牌奖励中,都会有随机一张牌被{{颜色|gold|附魔}}:{{颜色|purple|迅捷}}{{颜色|blue|1}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_brimstone_shuying", + "wikiId": "brimstone", + "name": "硫磺", + "description": "在你的每个回合开始时,你获得2点力量,所有敌人获得1点力量。", + "pool": "铁甲战士", + "tier": "商店", + "ancient": null, + "order": 156, + "image": "extension/术樱包/mengsan/assets/relics/brimstone.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%A1%AB%E7%A3%BA", + "descriptionRaw": "在你的每个回合开始时,你获得2点力量,所有敌人获得1点力量。", + "descriptionSource": "在你的每个回合开始时,你获得{{颜色|blue|2}}点{{颜色|gold|力量}},所有敌人获得{{颜色|blue|1}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "硫磺", + "category": "relic" + }, + { + "id": "mengsan_ninja_scroll_shuying", + "wikiId": "ninja_scroll", + "name": "忍术卷轴", + "description": "每场战斗开始时,将3张小刀加入你的手牌。", + "pool": "静默猎手", + "tier": "商店", + "ancient": null, + "order": 157, + "image": "extension/术樱包/mengsan/assets/relics/ninja_scroll.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BF%8D%E6%9C%AF%E5%8D%B7%E8%BD%B4", + "descriptionRaw": "每场战斗开始时,将3张小刀加入你的手牌。", + "descriptionSource": "每场战斗开始时,将{{颜色|blue|3}}张{{颜色|gold|小刀}}加入你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "忍术卷轴", + "category": "relic" + }, + { + "id": "mengsan_vitruvian_minion_shuying", + "wikiId": "vitruvian_minion", + "name": "维特鲁威仆从", + "description": "名字中有“仆从”的卡牌造成双倍的伤害与格挡。", + "pool": "储君", + "tier": "商店", + "ancient": null, + "order": 158, + "image": "extension/术樱包/mengsan/assets/relics/vitruvian_minion.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BB%B4%E7%89%B9%E9%B2%81%E5%A8%81%E4%BB%86%E4%BB%8E", + "descriptionRaw": "名字中有“仆从”的卡牌造成双倍的伤害与格挡。", + "descriptionSource": "名字中有“仆从”的卡牌造成双倍的伤害与{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_undying_sigil_shuying", + "wikiId": "undying_sigil", + "name": "不死符文", + "description": "当敌人的灾厄层数大于等于其生命值时,它造成的伤害降低50%。", + "pool": "亡灵契约师", + "tier": "商店", + "ancient": null, + "order": 159, + "image": "extension/术樱包/mengsan/assets/relics/undying_sigil.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B8%8D%E6%AD%BB%E7%AC%A6%E6%96%87", + "descriptionRaw": "当敌人的灾厄层数大于等于其生命值时,它造成的伤害降低50%。", + "descriptionSource": "当敌人的{{颜色|gold|灾厄}}层数大于等于其生命值时,它造成的伤害降低{{颜色|blue|50%}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_runic_capacitor_shuying", + "wikiId": "runic_capacitor", + "name": "符文电容器", + "description": "每场战斗开始时,获得3个额外充能球栏位。", + "pool": "故障机器人", + "tier": "商店", + "ancient": null, + "order": 160, + "image": "extension/术樱包/mengsan/assets/relics/runic_capacitor.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%AC%A6%E6%96%87%E7%94%B5%E5%AE%B9%E5%99%A8", + "descriptionRaw": "每场战斗开始时,获得3个额外充能球栏位。", + "descriptionSource": "每场战斗开始时,获得{{颜色|blue|3}}个额外{{颜色|gold|充能球栏位}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "符文电容器", + "category": "relic" + }, + { + "id": "mengsan_arcane_scroll_shuying", + "wikiId": "arcane_scroll", + "name": "奥术卷轴", + "description": "拾起时,将一张随机稀有牌加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 161, + "image": "extension/术樱包/mengsan/assets/relics/arcane_scroll.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A5%A5%E6%9C%AF%E5%8D%B7%E8%BD%B4", + "descriptionRaw": "拾起时,将一张随机稀有牌加入你的牌组。", + "descriptionSource": "拾起时,将一张随机{{颜色|gold|稀有牌}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_silver_crucible_shuying", + "wikiId": "silver_crucible", + "name": "白银熔炉", + "description": "你遇到的前3次卡牌奖励将是被升级过的。你打开的第一个宝箱将是空的", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 162, + "image": "extension/术樱包/mengsan/assets/relics/silver_crucible.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%99%BD%E9%93%B6%E7%86%94%E7%82%89", + "descriptionRaw": "你遇到的前3次卡牌奖励将是被升级过的。你打开的第一个宝箱将是空的", + "descriptionSource": "你遇到的前{{颜色|blue|3}}次卡牌奖励将是被{{颜色|gold|升级}}过的。你打开的第一个宝箱将是{{颜色|red|空的}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_hefty_tablet_shuying", + "wikiId": "hefty_tablet", + "name": "沉重石板", + "description": "拾起时,从3张稀有牌中选择1张加入你的牌组,同时将1张受伤加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 163, + "image": "extension/术樱包/mengsan/assets/relics/hefty_tablet.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B2%89%E9%87%8D%E7%9F%B3%E6%9D%BF", + "descriptionRaw": "拾起时,从3张稀有牌中选择1张加入你的牌组,同时将1张受伤加入你的牌组。", + "descriptionSource": "拾起时,从{{颜色|blue|3}}张稀有牌中选择{{颜色|blue|1}}张加入你的{{颜色|gold|牌组}},同时将{{颜色|blue|1}}张{{颜色|red|受伤}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_pomander_shuying", + "wikiId": "pomander", + "name": "橙型香盒", + "description": "拾起时,升级一张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 164, + "image": "extension/术樱包/mengsan/assets/relics/pomander.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%A9%99%E5%9E%8B%E9%A6%99%E7%9B%92", + "descriptionRaw": "拾起时,升级一张牌。", + "descriptionSource": "拾起时,{{颜色|gold|升级}}一张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fishing_rod_shuying", + "wikiId": "fishing_rod", + "name": "钓鱼竿", + "description": "每3场普通战斗,随机升级你牌组中的一张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 165, + "image": "extension/术樱包/mengsan/assets/relics/fishing_rod.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%92%93%E9%B1%BC%E7%AB%BF", + "descriptionRaw": "每3场普通战斗,随机升级你牌组中的一张牌。", + "descriptionSource": "每{{颜色|blue|3}}场普通战斗,随机{{颜色|gold|升级}}你{{颜色|gold|牌组}}中的一张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_booming_conch_shuying", + "wikiId": "booming_conch", + "name": "轰鸣海螺", + "description": "在精英战的战斗开始时,额外抽2张牌并获得[能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 166, + "image": "extension/术樱包/mengsan/assets/relics/booming_conch.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%BD%B0%E9%B8%A3%E6%B5%B7%E8%9E%BA", + "descriptionRaw": "在精英战的战斗开始时,额外抽2张牌并获得能量。", + "descriptionSource": "在{{颜色|gold|精英}}战的战斗开始时,额外抽{{颜色|blue|2}}张牌并获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_silken_tress_shuying", + "wikiId": "silken_tress", + "name": "华美发束", + "description": "拾起时,失去所有金币。为第一次卡牌奖励中的所有牌附魔:华彩。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 167, + "image": "extension/术樱包/mengsan/assets/relics/silken_tress.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%8E%E7%BE%8E%E5%8F%91%E6%9D%9F", + "descriptionRaw": "拾起时,失去所有金币。为第一次卡牌奖励中的所有牌附魔:华彩。", + "descriptionSource": "拾起时,失去所有{{颜色|gold|金币}}。为第一次卡牌奖励中的所有牌{{颜色|gold|附魔}}:{{颜色|purple|华彩}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_golden_pearl_shuying", + "wikiId": "golden_pearl", + "name": "金色珍珠", + "description": "拾起时,获得150金币。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 168, + "image": "extension/术樱包/mengsan/assets/relics/golden_pearl.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%87%91%E8%89%B2%E7%8F%8D%E7%8F%A0", + "descriptionRaw": "拾起时,获得150金币。", + "descriptionSource": "拾起时,获得{{颜色|blue|150}}{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_precise_scissors_shuying", + "wikiId": "precise_scissors", + "name": "精准剪刀", + "description": "拾起时,从你的牌组中移除1张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 169, + "image": "extension/术樱包/mengsan/assets/relics/precise_scissors.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%B2%BE%E5%87%86%E5%89%AA%E5%88%80", + "descriptionRaw": "拾起时,从你的牌组中移除1张牌。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中移除{{颜色|blue|1}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_massive_scroll_shuying", + "wikiId": "massive_scroll", + "name": "巨大卷轴", + "description": "拾起时,从3张多人游戏牌中选择1张加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 170, + "image": "extension/术樱包/mengsan/assets/relics/massive_scroll.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B7%A8%E5%A4%A7%E5%8D%B7%E8%BD%B4", + "descriptionRaw": "拾起时,从3张多人游戏牌中选择1张加入你的牌组。", + "descriptionSource": "拾起时,从{{颜色|blue|3}}张{{颜色|gold|多人游戏牌}}中选择{{颜色|blue|1}}张加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_large_capsule_shuying", + "wikiId": "large_capsule", + "name": "巨大扭蛋", + "description": "拾起时,获得2件随机遗物。额外将一对打击和防御,加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 171, + "image": "extension/术樱包/mengsan/assets/relics/large_capsule.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B7%A8%E5%A4%A7%E6%89%AD%E8%9B%8B", + "descriptionRaw": "拾起时,获得2件随机遗物。额外将一对打击和防御,加入你的牌组。", + "descriptionSource": "拾起时,获得{{颜色|blue|2}}件随机{{颜色|gold|遗物}}。额外将一对{{颜色|gold|打击}}和{{颜色|gold|防御}},加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_scroll_boxes_shuying", + "wikiId": "scroll_boxes", + "name": "卷轴箱", + "description": "拾起时,从2个卡牌包中选择1包加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 172, + "image": "extension/术樱包/mengsan/assets/relics/scroll_boxes.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%B7%E8%BD%B4%E7%AE%B1", + "descriptionRaw": "拾起时,从2个卡牌包中选择1包加入你的牌组。", + "descriptionSource": "拾起时,从{{颜色|blue|2}}个卡牌包中选择{{颜色|blue|1}}包加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_neows_talisman_shuying", + "wikiId": "neows_talisman", + "name": "涅奥的护符", + "description": "拾起时,升级你的1张打击和1张防御。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 173, + "image": "extension/术樱包/mengsan/assets/relics/neows_talisman.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E7%9A%84%E6%8A%A4%E7%AC%A6", + "descriptionRaw": "拾起时,升级你的1张打击和1张防御。", + "descriptionSource": "拾起时,{{颜色|gold|升级}}你的{{颜色|blue|1}}张{{颜色|gold|打击}}和{{颜色|blue|1}}张{{颜色|gold|防御}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_neows_torment_shuying", + "wikiId": "neows_torment", + "name": "涅奥的苦痛", + "description": "拾起时,将1张涅奥之怒加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 174, + "image": "extension/术樱包/mengsan/assets/relics/neows_torment.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E7%9A%84%E8%8B%A6%E7%97%9B", + "descriptionRaw": "拾起时,将1张涅奥之怒加入你的牌组。", + "descriptionSource": "拾起时,将{{颜色|blue|1}}张{{颜色|gold|涅奥之怒}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_neows_bones_shuying", + "wikiId": "neows_bones", + "name": "涅奥骨骰", + "description": "拾起时,获得2件随机涅奥遗物。将1张随机诅咒加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 175, + "image": "extension/术樱包/mengsan/assets/relics/neows_bones.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E9%AA%A8%E9%AA%B0", + "descriptionRaw": "拾起时,获得2件随机涅奥遗物。将1张随机诅咒加入你的牌组。", + "descriptionSource": "拾起时,获得{{颜色|blue|2}}件随机{{颜色|gold|涅奥遗物}}。将{{颜色|blue|1}}张随机{{颜色|red|诅咒}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lead_paperweight_shuying", + "wikiId": "lead_paperweight", + "name": "铅制镇纸", + "description": "拾起时,从2张无色牌中选择1张加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 176, + "image": "extension/术樱包/mengsan/assets/relics/lead_paperweight.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%93%85%E5%88%B6%E9%95%87%E7%BA%B8", + "descriptionRaw": "拾起时,从2张无色牌中选择1张加入你的牌组。", + "descriptionSource": "拾起时,从{{颜色|blue|2}}张无色牌中选择{{颜色|blue|1张}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lava_rock_shuying", + "wikiId": "lava_rock", + "name": "熔岩石", + "description": "第一阶段的Boss敌人额外掉落2件遗物。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 177, + "image": "extension/术樱包/mengsan/assets/relics/lava_rock.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%86%94%E5%B2%A9%E7%9F%B3", + "descriptionRaw": "第一阶段的Boss敌人额外掉落2件遗物。", + "descriptionSource": "第一阶段的Boss敌人额外掉落{{颜色|blue|2}}件{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lost_coffer_shuying", + "wikiId": "lost_coffer", + "name": "失物盒", + "description": "拾起时,获得1次卡牌奖励和1瓶随机药水。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 178, + "image": "extension/术樱包/mengsan/assets/relics/lost_coffer.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%B1%E7%89%A9%E7%9B%92", + "descriptionRaw": "拾起时,获得1次卡牌奖励和1瓶随机药水。", + "descriptionSource": "拾起时,获得{{颜色|blue|1}}次卡牌奖励和{{颜色|blue|1}}瓶随机药水。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_stone_humidifier_shuying", + "wikiId": "stone_humidifier", + "name": "石炉加湿器", + "description": "每当你在休息处休息时,将你的最大生命值提升5点。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 179, + "image": "extension/术樱包/mengsan/assets/relics/stone_humidifier.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%9F%B3%E7%82%89%E5%8A%A0%E6%B9%BF%E5%99%A8", + "descriptionRaw": "每当你在休息处休息时,将你的最大生命值提升5点。", + "descriptionSource": "每当你在{{颜色|gold|休息处}}{{颜色|gold|休息}}时,将你的最大生命值提升{{颜色|blue|5}}点。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_leafy_poultice_shuying", + "wikiId": "leafy_poultice", + "name": "树叶药膏", + "description": "拾起时,变化你的1张打击和1张防御,然后失去12点最大生命。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 180, + "image": "extension/术樱包/mengsan/assets/relics/leafy_poultice.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%A0%91%E5%8F%B6%E8%8D%AF%E8%86%8F", + "descriptionRaw": "拾起时,变化你的1张打击和1张防御,然后失去12点最大生命。", + "descriptionSource": "拾起时,{{颜色|gold|变化}}你的{{颜色|blue|1}}张{{颜色|gold|打击}}和{{颜色|blue|1}}张{{颜色|gold|防御}},然后失去{{颜色|blue|12}}点最大生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_precarious_shears_shuying", + "wikiId": "precarious_shears", + "name": "松动羊毛剪", + "description": "拾起时,从你的牌组中移除2张牌并失去16点生命。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 181, + "image": "extension/术樱包/mengsan/assets/relics/precarious_shears.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%9D%BE%E5%8A%A8%E7%BE%8A%E6%AF%9B%E5%89%AA", + "descriptionRaw": "拾起时,从你的牌组中移除2张牌并失去16点生命。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中移除{{颜色|blue|2}}张牌并失去{{颜色|blue|16}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_kaleidoscope_shuying", + "wikiId": "kaleidoscope", + "name": "万花筒", + "description": "拾起时,获得2次来自其他角色的卡牌奖励。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 182, + "image": "extension/术樱包/mengsan/assets/relics/kaleidoscope.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B8%87%E8%8A%B1%E7%AD%92", + "descriptionRaw": "拾起时,获得2次来自其他角色的卡牌奖励。", + "descriptionSource": "拾起时,获得{{颜色|blue|2}}次来自其他角色的卡牌奖励。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_small_capsule_shuying", + "wikiId": "small_capsule", + "name": "小型扭蛋", + "description": "拾起时,获得一件随机遗物。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 183, + "image": "extension/术樱包/mengsan/assets/relics/small_capsule.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E5%9E%8B%E6%89%AD%E8%9B%8B", + "descriptionRaw": "拾起时,获得一件随机遗物。", + "descriptionSource": "拾起时,获得一件随机{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_new_leaf_shuying", + "wikiId": "new_leaf", + "name": "新叶", + "description": "拾起时,变化1张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 184, + "image": "extension/术樱包/mengsan/assets/relics/new_leaf.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%96%B0%E5%8F%B6", + "descriptionRaw": "拾起时,变化1张牌。", + "descriptionSource": "拾起时,{{颜色|gold|变化}}{{颜色|blue|1}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_phial_holster_shuying", + "wikiId": "phial_holster", + "name": "药瓶皮套", + "description": "拾起时,获得1个药水栏位并获得2瓶随机药水。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 185, + "image": "extension/术樱包/mengsan/assets/relics/phial_holster.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8D%AF%E7%93%B6%E7%9A%AE%E5%A5%97", + "descriptionRaw": "拾起时,获得1个药水栏位并获得2瓶随机药水。", + "descriptionSource": "拾起时,获得{{颜色|blue|1}}个药水栏位并获得{{颜色|blue|2}}瓶随机药水。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_nutritious_oyster_shuying", + "wikiId": "nutritious_oyster", + "name": "营养牡蛎", + "description": "拾起时,将你的最大生命值提升11。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 186, + "image": "extension/术樱包/mengsan/assets/relics/nutritious_oyster.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%90%A5%E5%85%BB%E7%89%A1%E8%9B%8E", + "descriptionRaw": "拾起时,将你的最大生命值提升11。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|11}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_winged_boots_shuying", + "wikiId": "winged_boots", + "name": "羽翼之靴", + "description": "你在选择下一层的房间时有3次机会可以无视当前的路线。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 187, + "image": "extension/术樱包/mengsan/assets/relics/winged_boots.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BE%BD%E7%BF%BC%E4%B9%8B%E9%9D%B4", + "descriptionRaw": "你在选择下一层的房间时有3次机会可以无视当前的路线。", + "descriptionSource": "你在选择下一层的房间时有{{颜色|blue|3}}次机会可以无视当前的路线。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "羽翼之靴", + "category": "relic" + }, + { + "id": "mengsan_cursed_pearl_shuying", + "wikiId": "cursed_pearl", + "name": "诅咒珍珠", + "description": "拾起时,获得一张贪婪,获得333金币。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 188, + "image": "extension/术樱包/mengsan/assets/relics/cursed_pearl.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%AF%85%E5%92%92%E7%8F%8D%E7%8F%A0", + "descriptionRaw": "拾起时,获得一张贪婪,获得333金币。", + "descriptionSource": "拾起时,获得一张{{颜色|red|贪婪}},获得{{颜色|blue|333}}{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_glass_eye_shuying", + "wikiId": "glass_eye", + "name": "玻璃眼珠", + "description": "拾起时,获得2组普通、2组罕见、和1组稀有卡牌奖励。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 189, + "image": "extension/术樱包/mengsan/assets/relics/glass_eye.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%8E%BB%E7%92%83%E7%9C%BC%E7%8F%A0", + "descriptionRaw": "拾起时,获得2组普通、2组罕见、和1组稀有卡牌奖励。", + "descriptionSource": "拾起时,获得{{颜色|blue|2}}组{{颜色|gold|普通}}、{{颜色|blue|2}}组{{颜色|gold|罕见}}、和{{颜色|blue|1}}组{{颜色|gold|稀有}}卡牌奖励。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_radiant_pearl_shuying", + "wikiId": "radiant_pearl", + "name": "发光珍珠", + "description": "在每场战斗开始时,将1张冷光加入你的手牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 190, + "image": "extension/术樱包/mengsan/assets/relics/radiant_pearl.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%91%E5%85%89%E7%8F%8D%E7%8F%A0", + "descriptionRaw": "在每场战斗开始时,将1张冷光加入你的手牌。", + "descriptionSource": "在每场战斗开始时,将{{颜色|blue|1}}张{{颜色|gold|冷光}}加入你的{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_electric_shrymp_shuying", + "wikiId": "electric_shrymp", + "name": "放电异虾", + "description": "拾起时,选择一张技能牌为它附魔:注能。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 191, + "image": "extension/术樱包/mengsan/assets/relics/electric_shrymp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%94%BE%E7%94%B5%E5%BC%82%E8%99%BE", + "descriptionRaw": "拾起时,选择一张技能牌为它附魔:注能。", + "descriptionSource": "拾起时,选择一张技能牌为它{{颜色|gold|附魔}}:{{颜色|purple|注能}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_driftwood_shuying", + "wikiId": "driftwood", + "name": "浮木", + "description": "你可以在每一个卡牌奖励中重掷一次。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 192, + "image": "extension/术樱包/mengsan/assets/relics/driftwood.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B5%AE%E6%9C%A8", + "descriptionRaw": "你可以在每一个卡牌奖励中重掷一次。", + "descriptionSource": "你可以在每一个卡牌奖励中重掷一次。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_archaic_tooth_shuying", + "wikiId": "archaic_tooth", + "name": "古老牙齿", + "description": "拾起时,将一张初始卡牌变化为先古版本。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 193, + "image": "extension/术樱包/mengsan/assets/relics/archaic_tooth.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E8%80%81%E7%89%99%E9%BD%BF", + "descriptionRaw": "拾起时,将一张初始卡牌变化为先古版本。", + "descriptionSource": "拾起时,将一张初始卡牌{{颜色|gold|变化}}为先古版本。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sea_glass_shuying", + "wikiId": "sea_glass", + "name": "海玻璃", + "description": "查看15张来自其他角色的牌。从中选择任意数量的卡牌加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 194, + "image": "extension/术樱包/mengsan/assets/relics/sea_glass.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B5%B7%E7%8E%BB%E7%92%83", + "descriptionRaw": "查看15张来自其他角色的牌。从中选择任意数量的卡牌加入你的牌组。", + "descriptionSource": "查看{{颜色|blue|15}}张来自其他角色的牌。从中选择任意数量的卡牌加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_prismatic_gem_shuying", + "wikiId": "prismatic_gem", + "name": "棱彩宝石", + "description": "在每个回合开始时获得[能量]。卡牌奖励现在会包含其他颜色的卡牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 195, + "image": "extension/术樱包/mengsan/assets/relics/prismatic_gem.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%A3%B1%E5%BD%A9%E5%AE%9D%E7%9F%B3", + "descriptionRaw": "在每个回合开始时获得能量。卡牌奖励现在会包含其他颜色的卡牌。", + "descriptionSource": "在每个回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。卡牌奖励现在会包含其他颜色的卡牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_alchemical_coffer_shuying", + "wikiId": "alchemical_coffer", + "name": "炼金箱", + "description": "拾起时,获得4个放有随机药水的药水栏位。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 196, + "image": "extension/术樱包/mengsan/assets/relics/alchemical_coffer.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%82%BC%E9%87%91%E7%AE%B1", + "descriptionRaw": "拾起时,获得4个放有随机药水的药水栏位。", + "descriptionSource": "拾起时,获得{{颜色|blue|4}}个放有随机药水的药水栏位。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_touch_of_orobas_shuying", + "wikiId": "touch_of_orobas", + "name": "欧洛巴斯之触", + "description": "拾起时,将你的初始遗物替换为先古版本。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 197, + "image": "extension/术樱包/mengsan/assets/relics/touch_of_orobas.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%AC%A7%E6%B4%9B%E5%B7%B4%E6%96%AF%E4%B9%8B%E8%A7%A6", + "descriptionRaw": "拾起时,将你的初始遗物替换为先古版本。", + "descriptionSource": "拾起时,将你的初始{{颜色|gold|遗物}}替换为{{颜色|gold|先古}}版本。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sand_castle_shuying", + "wikiId": "sand_castle", + "name": "沙堡", + "description": "拾起时,随机升级6张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "欧洛巴斯", + "order": 198, + "image": "extension/术樱包/mengsan/assets/relics/sand_castle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B2%99%E5%A0%A1", + "descriptionRaw": "拾起时,随机升级6张牌。", + "descriptionSource": "拾起时,随机{{颜色|gold|升级}}{{颜色|blue|6}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_legion_shuying", + "wikiId": "paels_legion", + "name": "佩尔的士兵", + "description": "将你从一张卡牌中获得的格挡翻倍,然后此遗物会休眠2回合。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 199, + "image": "extension/术樱包/mengsan/assets/relics/paels_legion.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E7%9A%84%E5%A3%AB%E5%85%B5", + "descriptionRaw": "将你从一张卡牌中获得的格挡翻倍,然后此遗物会休眠2回合。", + "descriptionSource": "将你从一张卡牌中获得的{{颜色|gold|格挡}}翻倍,然后此遗物会休眠{{颜色|blue|2}}回合。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_growth_shuying", + "wikiId": "paels_growth", + "name": "佩尔的增生组织", + "description": "拾起时,从牌组中选择一张牌,为其附魔:克隆。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 200, + "image": "extension/术樱包/mengsan/assets/relics/paels_growth.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E7%9A%84%E5%A2%9E%E7%94%9F%E7%BB%84%E7%BB%87", + "descriptionRaw": "拾起时,从牌组中选择一张牌,为其附魔:克隆。", + "descriptionSource": "拾起时,从{{颜色|gold|牌组}}中选择一张牌,为其{{颜色|gold|附魔}}:{{颜色|purple|克隆}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_horn_shuying", + "wikiId": "paels_horn", + "name": "佩尔之角", + "description": "拾起时,将2张放松加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 201, + "image": "extension/术樱包/mengsan/assets/relics/paels_horn.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E8%A7%92", + "descriptionRaw": "拾起时,将2张放松加入你的牌组。", + "descriptionSource": "拾起时,将{{颜色|blue|2}}张{{颜色|gold|放松}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_tears_shuying", + "wikiId": "paels_tears", + "name": "佩尔之泪", + "description": "如果你在拥有未花费的[能量]情况下结束回合,则下个回合额外获得[能量][能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 202, + "image": "extension/术樱包/mengsan/assets/relics/paels_tears.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E6%B3%AA", + "descriptionRaw": "如果你在拥有未花费的能量情况下结束回合,则下个回合额外获得能量能量。", + "descriptionSource": "如果你在拥有未花费的[[File:colorless_energy_icon.png|16px|link=能量]]情况下结束回合,则下个回合额外获得[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_flesh_shuying", + "wikiId": "paels_flesh", + "name": "佩尔之肉", + "description": "从你的第3回合开始,在回合开始时额外获得[能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 203, + "image": "extension/术樱包/mengsan/assets/relics/paels_flesh.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E8%82%89", + "descriptionRaw": "从你的第3回合开始,在回合开始时额外获得能量。", + "descriptionSource": "从你的第{{颜色|blue|3}}回合开始,在回合开始时额外获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_blood_shuying", + "wikiId": "paels_blood", + "name": "佩尔之血", + "description": "在你的回合开始时,额外抽1张牌", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 204, + "image": "extension/术樱包/mengsan/assets/relics/paels_blood.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E8%A1%80", + "descriptionRaw": "在你的回合开始时,额外抽1张牌", + "descriptionSource": "在你的回合开始时,额外抽{{颜色|blue|1}}张牌", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_tooth_shuying", + "wikiId": "paels_tooth", + "name": "佩尔之牙", + "description": "拾起时,从你的牌组中选择5张牌移除。在每场战斗结束时,将其中随机1张牌升级然后返还。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 205, + "image": "extension/术樱包/mengsan/assets/relics/paels_tooth.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%89%99", + "descriptionRaw": "拾起时,从你的牌组中选择5张牌移除。在每场战斗结束时,将其中随机1张牌升级然后返还。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中选择{{颜色|blue|5}}张牌移除。在每场战斗结束时,将其中随机{{颜色|blue|1}}张牌{{颜色|gold|升级}}然后返还。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_eye_shuying", + "wikiId": "paels_eye", + "name": "佩尔之眼", + "description": "你在每场战斗中第一次没有打出任何牌就结束回合时,消耗所有手牌然后进行一个额外回合。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 206, + "image": "extension/术樱包/mengsan/assets/relics/paels_eye.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%9C%BC", + "descriptionRaw": "你在每场战斗中第一次没有打出任何牌就结束回合时,消耗所有手牌然后进行一个额外回合。", + "descriptionSource": "你在每场战斗中第一次没有打出任何牌就结束回合时,{{颜色|gold|消耗}}所有{{颜色|gold|手牌}}然后进行一个额外回合。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_wing_shuying", + "wikiId": "paels_wing", + "name": "佩尔之翼", + "description": "你可以将你的卡牌奖励献祭给佩尔。每献祭2次,就能获得一件遗物。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 207, + "image": "extension/术樱包/mengsan/assets/relics/paels_wing.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%BF%BC", + "descriptionRaw": "你可以将你的卡牌奖励献祭给佩尔。每献祭2次,就能获得一件遗物。", + "descriptionSource": "你可以将你的卡牌奖励献祭给佩尔。每献祭{{颜色|blue|2}}次,就能获得一件{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_paels_claw_shuying", + "wikiId": "paels_claw", + "name": "佩尔之爪", + "description": "拾起时,为所有的“防御”附魔:黏糊。", + "pool": "通用", + "tier": "先古之民", + "ancient": "佩尔", + "order": 208, + "image": "extension/术樱包/mengsan/assets/relics/paels_claw.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%A9%E5%B0%94%E4%B9%8B%E7%88%AA", + "descriptionRaw": "拾起时,为所有的“防御”附魔:黏糊。", + "descriptionSource": "拾起时,为所有的“{{颜色|gold|防御}}”{{颜色|gold|附魔}}:{{颜色|purple|黏糊}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_biiig_hug_shuying", + "wikiId": "biiig_hug", + "name": "大~抱抱", + "description": "拾起时,从你的牌组中移除4张牌。每当你的抽牌堆打乱洗牌时,将一张煤灰加入你的抽牌堆。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 209, + "image": "extension/术樱包/mengsan/assets/relics/biiig_hug.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A7%EF%BD%9E%E6%8A%B1%E6%8A%B1", + "descriptionRaw": "拾起时,从你的牌组中移除4张牌。每当你的抽牌堆打乱洗牌时,将一张煤灰加入你的抽牌堆。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中移除{{颜色|blue|4}}张牌。每当你的{{颜色|gold|抽牌堆}}打乱洗牌时,将一张{{颜色|gold|煤灰}}加入你的{{颜色|gold|抽牌堆}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_storybook_shuying", + "wikiId": "storybook", + "name": "故事书", + "description": "拾起时,将1张至亮之焰添加到你的牌组中。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 210, + "image": "extension/术樱包/mengsan/assets/relics/storybook.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%95%85%E4%BA%8B%E4%B9%A6", + "descriptionRaw": "拾起时,将1张至亮之焰添加到你的牌组中。", + "descriptionSource": "拾起时,将{{颜色|blue|1}}张{{颜色|gold|至亮之焰}}添加到你的{{颜色|gold|牌组}}中。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_toasty_mittens_shuying", + "wikiId": "toasty_mittens", + "name": "烘焙手套", + "description": "在你的回合开始时,消耗你抽牌堆顶部的牌并获得1点力量。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 211, + "image": "extension/术樱包/mengsan/assets/relics/toasty_mittens.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%83%98%E7%84%99%E6%89%8B%E5%A5%97", + "descriptionRaw": "在你的回合开始时,消耗你抽牌堆顶部的牌并获得1点力量。", + "descriptionSource": "在你的回合开始时,{{颜色|gold|消耗}}你{{颜色|gold|抽牌堆}}顶部的牌并获得{{颜色|blue|1}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_golden_compass_shuying", + "wikiId": "golden_compass", + "name": "黄金罗盘", + "description": "拾起时,将第2阶段的地图替换为一条特殊的直道。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 212, + "image": "extension/术樱包/mengsan/assets/relics/golden_compass.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%BB%84%E9%87%91%E7%BD%97%E7%9B%98", + "descriptionRaw": "拾起时,将第2阶段的地图替换为一条特殊的直道。", + "descriptionSource": "拾起时,将第{{颜色|blue|2}}{{颜色|gold|阶段}}的地图替换为一条特殊的直道。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_seal_of_gold_shuying", + "wikiId": "seal_of_gold", + "name": "黄金印", + "description": "在你的回合开始时,花费5金币来获得[能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 213, + "image": "extension/术樱包/mengsan/assets/relics/seal_of_gold.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%BB%84%E9%87%91%E5%8D%B0", + "descriptionRaw": "在你的回合开始时,花费5金币来获得能量。", + "descriptionSource": "在你的回合开始时,花费{{颜色|blue|5}}{{颜色|gold|金币}}来获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_yummy_cookie_shuying", + "wikiId": "yummy_cookie", + "name": "美味饼干", + "description": "拾起时,升级4张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 214, + "image": "extension/术樱包/mengsan/assets/relics/yummy_cookie.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%BE%8E%E5%91%B3%E9%A5%BC%E5%B9%B2", + "descriptionRaw": "拾起时,升级4张牌。", + "descriptionSource": "拾起时,{{颜色|gold|升级}}{{颜色|blue|4}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_pumpkin_candle_shuying", + "wikiId": "pumpkin_candle", + "name": "南瓜蜡烛", + "description": "在每个回合开始时获得[能量]。这件遗物会在5场战斗后熄灭。可以在休息处为其添火。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 215, + "image": "extension/术樱包/mengsan/assets/relics/pumpkin_candle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%97%E7%93%9C%E8%9C%A1%E7%83%9B", + "descriptionRaw": "在每个回合开始时获得能量。这件遗物会在5场战斗后熄灭。可以在休息处为其添火。", + "descriptionSource": "在每个回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。这件遗物会在{{颜色|blue|5}}场战斗后熄灭。可以在{{颜色|gold|休息处}}为其{{颜色|gold|添火}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_very_hot_cocoa_shuying", + "wikiId": "very_hot_cocoa", + "name": "烫嘴可可", + "description": "在每场战斗的第一回合额外获得[能量][能量][能量][能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 216, + "image": "extension/术樱包/mengsan/assets/relics/very_hot_cocoa.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%83%AB%E5%98%B4%E5%8F%AF%E5%8F%AF", + "descriptionRaw": "在每场战斗的第一回合额外获得能量能量能量能量。", + "descriptionSource": "在每场战斗的第一回合额外获得{{颜色|blue|[[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]][[File:colorless_energy_icon.png|16px|link=能量]]}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_toy_box_shuying", + "wikiId": "toy_box", + "name": "玩具盒", + "description": "拾起时,获得4件蜡制遗物。每经过3场战斗,你最左侧的蜡制遗物将会融化。", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 217, + "image": "extension/术樱包/mengsan/assets/relics/toy_box.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%8E%A9%E5%85%B7%E7%9B%92", + "descriptionRaw": "拾起时,获得4件蜡制遗物。每经过3场战斗,你最左侧的蜡制遗物将会融化。", + "descriptionSource": "拾起时,获得{{颜色|blue|4}}件{{颜色|gold|蜡制遗物}}。每经过{{颜色|blue|3}}场战斗,你最左侧的{{颜色|gold|蜡制遗物}}将会融化。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_nutritious_soup_shuying", + "wikiId": "nutritious_soup", + "name": "营养汤", + "description": "拾起时,为你牌组中的所有“打击”附魔:特兹卡塔拉的余烬", + "pool": "通用", + "tier": "先古之民", + "ancient": "特兹卡塔拉", + "order": 218, + "image": "extension/术樱包/mengsan/assets/relics/nutritious_soup.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%90%A5%E5%85%BB%E6%B1%A4", + "descriptionRaw": "拾起时,为你牌组中的所有“打击”附魔:特兹卡塔拉的余烬", + "descriptionSource": "拾起时,为你{{颜色|gold|牌组}}中的所有“{{颜色|gold|打击}}”{{颜色|gold|附魔}}:{{颜色|purple|特兹卡塔拉的余烬}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_looming_fruit_shuying", + "wikiId": "looming_fruit", + "name": "布质果实", + "description": "拾起时,将你的最大生命值提升31。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 219, + "image": "extension/术樱包/mengsan/assets/relics/looming_fruit.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B8%83%E8%B4%A8%E6%9E%9C%E5%AE%9E", + "descriptionRaw": "拾起时,将你的最大生命值提升31。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|31}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_blessed_antler_shuying", + "wikiId": "blessed_antler", + "name": "赐福鹿角", + "description": "在每回合开始时获得[能量]。在战斗开始时,将3张晕眩放入你的抽牌堆。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 220, + "image": "extension/术樱包/mengsan/assets/relics/blessed_antler.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%B5%90%E7%A6%8F%E9%B9%BF%E8%A7%92", + "descriptionRaw": "在每回合开始时获得能量。在战斗开始时,将3张晕眩放入你的抽牌堆。", + "descriptionSource": "在每回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。在战斗开始时,将{{颜色|blue|3}}张{{颜色|gold|晕眩}}放入你的{{颜色|gold|抽牌堆}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_beautiful_bracelet_shuying", + "wikiId": "beautiful_bracelet", + "name": "华美手镯", + "description": "拾起时,从你的牌组中选择3张牌,附魔:迅捷3。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 221, + "image": "extension/术樱包/mengsan/assets/relics/beautiful_bracelet.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%8E%E7%BE%8E%E6%89%8B%E9%95%AF", + "descriptionRaw": "拾起时,从你的牌组中选择3张牌,附魔:迅捷3。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中选择{{颜色|blue|3}}张牌,{{颜色|gold|附魔}}:{{颜色|purple|迅捷}}{{颜色|blue|3}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_delicate_frond_shuying", + "wikiId": "delicate_frond", + "name": "娇嫩蕨草", + "description": "在每场战斗开始时,用随机药水将你的空药水栏位填满。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 222, + "image": "extension/术樱包/mengsan/assets/relics/delicate_frond.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A8%87%E5%AB%A9%E8%95%A8%E8%8D%89", + "descriptionRaw": "在每场战斗开始时,用随机药水将你的空药水栏位填满。", + "descriptionSource": "在每场战斗开始时,用随机药水将你的空药水栏位填满。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_glitter_shuying", + "wikiId": "glitter", + "name": "亮片", + "description": "为之后的所有卡牌奖励附魔:华彩。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 223, + "image": "extension/术樱包/mengsan/assets/relics/glitter.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BA%AE%E7%89%87", + "descriptionRaw": "为之后的所有卡牌奖励附魔:华彩。", + "descriptionSource": "为之后的所有卡牌奖励{{颜色|gold|附魔}}:{{颜色|purple|华彩}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fur_coat_shuying", + "wikiId": "fur_coat", + "name": "皮草大衣", + "description": "拾起时,随机标记7处战斗。这些战斗中的敌人将只有1点生命。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 224, + "image": "extension/术樱包/mengsan/assets/relics/fur_coat.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%9A%AE%E8%8D%89%E5%A4%A7%E8%A1%A3", + "descriptionRaw": "拾起时,随机标记7处战斗。这些战斗中的敌人将只有1点生命。", + "descriptionSource": "拾起时,随机标记{{颜色|blue|7}}处战斗。这些战斗中的敌人将只有{{颜色|blue|1}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_signet_ring_shuying", + "wikiId": "signet_ring", + "name": "图章戒指", + "description": "拾起时,获得999金币。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 225, + "image": "extension/术樱包/mengsan/assets/relics/signet_ring.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%9B%BE%E7%AB%A0%E6%88%92%E6%8C%87", + "descriptionRaw": "拾起时,获得999金币。", + "descriptionSource": "拾起时,获得{{颜色|blue|999}}{{颜色|gold|金币}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_brilliant_scarf_shuying", + "wikiId": "brilliant_scarf", + "name": "艳丽围巾", + "description": "你每回合从你的手牌打出的第5张牌可以被免费打出。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 226, + "image": "extension/术樱包/mengsan/assets/relics/brilliant_scarf.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%89%B3%E4%B8%BD%E5%9B%B4%E5%B7%BE", + "descriptionRaw": "你每回合从你的手牌打出的第5张牌可以被免费打出。", + "descriptionSource": "你每回合从你的手牌打出的第{{颜色|blue|5}}张牌可以被免费打出。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_jewelry_box_shuying", + "wikiId": "jewelry_box", + "name": "珠宝盒", + "description": "拾起时,将1张神化加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 227, + "image": "extension/术樱包/mengsan/assets/relics/jewelry_box.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%8F%A0%E5%AE%9D%E7%9B%92", + "descriptionRaw": "拾起时,将1张神化加入你的牌组。", + "descriptionSource": "拾起时,将{{颜色|blue|1}}张{{颜色|gold|神化}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_diamond_diadem_shuying", + "wikiId": "diamond_diadem", + "name": "钻石头冠", + "description": "如果你在本回合打出的牌少于等于2张,则受到敌人的伤害减半。", + "pool": "通用", + "tier": "先古之民", + "ancient": "诺奴佩普", + "order": 228, + "image": "extension/术樱包/mengsan/assets/relics/diamond_diadem.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%92%BB%E7%9F%B3%E5%A4%B4%E5%86%A0", + "descriptionRaw": "如果你在本回合打出的牌少于等于2张,则受到敌人的伤害减半。", + "descriptionSource": "如果你在本回合打出的牌少于等于{{颜色|blue|2}}张,则受到敌人的伤害减半。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sai_shuying", + "wikiId": "sai", + "name": "钗", + "description": "在你的回合开始时,获得7点格挡。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 229, + "image": "extension/术樱包/mengsan/assets/relics/sai.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%92%97", + "descriptionRaw": "在你的回合开始时,获得7点格挡。", + "descriptionSource": "在你的回合开始时,获得{{颜色|blue|7}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_spiked_gauntlets_shuying", + "wikiId": "spiked_gauntlets", + "name": "带刺手甲", + "description": "在每回合开始时获得[能量]。能力牌的耗能增加1[能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 230, + "image": "extension/术樱包/mengsan/assets/relics/spiked_gauntlets.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B8%A6%E5%88%BA%E6%89%8B%E7%94%B2", + "descriptionRaw": "在每回合开始时获得能量。能力牌的耗能增加1能量。", + "descriptionSource": "在每回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。能力牌的耗能增加{{颜色|blue|1}}[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_claws_shuying", + "wikiId": "claws", + "name": "利爪", + "description": "拾起时,将至多6张牌变化为撕咬。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 231, + "image": "extension/术樱包/mengsan/assets/relics/claws.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%88%A9%E7%88%AA", + "descriptionRaw": "拾起时,将至多6张牌变化为撕咬。", + "descriptionSource": "拾起时,将至多{{颜色|blue|6}}张牌{{颜色|gold|变化}}为{{颜色|gold|撕咬}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_meat_cleaver_shuying", + "wikiId": "meat_cleaver", + "name": "切肉刀", + "description": "你可以在休息处进行烹饪。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 232, + "image": "extension/术樱包/mengsan/assets/relics/meat_cleaver.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%88%87%E8%82%89%E5%88%80", + "descriptionRaw": "你可以在休息处进行烹饪。", + "descriptionSource": "你可以在休息处进行{{颜色|gold|烹饪}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_tri_boomerang_shuying", + "wikiId": "tri_boomerang", + "name": "三刃回旋镖", + "description": "从你的牌组中选择3张攻击牌。为这些牌附魔:本能。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 233, + "image": "extension/术樱包/mengsan/assets/relics/tri_boomerang.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%B8%89%E5%88%83%E5%9B%9E%E6%97%8B%E9%95%96", + "descriptionRaw": "从你的牌组中选择3张攻击牌。为这些牌附魔:本能。", + "descriptionSource": "从你的{{颜色|gold|牌组}}中选择{{颜色|blue|3}}张攻击牌。为这些牌{{颜色|gold|附魔}}:{{颜色|purple|本能}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_crossbow_shuying", + "wikiId": "crossbow", + "name": "十字弓", + "description": "在你的回合开始时,将一张随机攻击牌加入你的手牌。这张牌在本回合可以免费打出。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 234, + "image": "extension/术樱包/mengsan/assets/relics/crossbow.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%81%E5%AD%97%E5%BC%93", + "descriptionRaw": "在你的回合开始时,将一张随机攻击牌加入你的手牌。这张牌在本回合可以免费打出。", + "descriptionSource": "在你的回合开始时,将一张随机{{颜色|gold|攻击牌}}加入你的{{颜色|gold|手牌}}。这张牌在本回合可以免费打出。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_tanxs_whistle_shuying", + "wikiId": "tanxs_whistle", + "name": "坦克斯的哨子", + "description": "拾起时,将1张吹哨加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 235, + "image": "extension/术樱包/mengsan/assets/relics/tanxs_whistle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%9D%A6%E5%85%8B%E6%96%AF%E7%9A%84%E5%93%A8%E5%AD%90", + "descriptionRaw": "拾起时,将1张吹哨加入你的牌组。", + "descriptionSource": "拾起时,将{{颜色|blue|1}}张{{颜色|gold|吹哨}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_iron_club_shuying", + "wikiId": "iron_club", + "name": "铁棒", + "description": "你每打出4张牌,就抽1张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 236, + "image": "extension/术樱包/mengsan/assets/relics/iron_club.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%93%81%E6%A3%92", + "descriptionRaw": "你每打出4张牌,就抽1张牌。", + "descriptionSource": "你每打出{{颜色|blue|4}}张牌,就抽{{颜色|blue|1}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_throwing_axe_shuying", + "wikiId": "throwing_axe", + "name": "投斧", + "description": "你在每场战斗中打出的第一张牌会多打出一次。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 237, + "image": "extension/术樱包/mengsan/assets/relics/throwing_axe.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8A%95%E6%96%A7", + "descriptionRaw": "你在每场战斗中打出的第一张牌会多打出一次。", + "descriptionSource": "你在每场战斗中打出的第一张牌会多打出一次。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_war_hammer_shuying", + "wikiId": "war_hammer", + "name": "战锤", + "description": "每当你击败一名精英敌人的时候,随机升级4张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "坦克斯", + "order": 238, + "image": "extension/术樱包/mengsan/assets/relics/war_hammer.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%88%98%E9%94%A4", + "descriptionRaw": "每当你击败一名精英敌人的时候,随机升级4张牌。", + "descriptionSource": "每当你击败一名{{颜色|gold|精英}}敌人的时候,随机{{颜色|gold|升级}}{{颜色|blue|4}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_jeweled_mask_shuying", + "wikiId": "jeweled_mask", + "name": "宝石面具", + "description": "在每场战斗开始时,将一张随机能力牌从你的抽牌堆放入你的手牌,这张牌在本场战斗可以免费打出。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 239, + "image": "extension/术樱包/mengsan/assets/relics/jeweled_mask.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%AE%9D%E7%9F%B3%E9%9D%A2%E5%85%B7", + "descriptionRaw": "在每场战斗开始时,将一张随机能力牌从你的抽牌堆放入你的手牌,这张牌在本场战斗可以免费打出。", + "descriptionSource": "在每场战斗开始时,将一张随机能力牌从你的{{颜色|gold|抽牌堆}}放入你的{{颜色|gold|手牌}},这张牌在本场战斗可以免费打出。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_whispering_earring_shuying", + "wikiId": "whispering_earring", + "name": "低语耳环", + "description": "在每个回合开始时,获得[能量]。瓦库将接管你的第一回合。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 240, + "image": "extension/术樱包/mengsan/assets/relics/whispering_earring.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%8E%E8%AF%AD%E8%80%B3%E7%8E%AF", + "descriptionRaw": "在每个回合开始时,获得能量。瓦库将接管你的第一回合。", + "descriptionSource": "在每个回合开始时,获得[[File:colorless_energy_icon.png|16px|link=能量]]。{{颜色|red|瓦库将接管你的第一回合。}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lords_parasol_shuying", + "wikiId": "lords_parasol", + "name": "领主阳伞", + "description": "当你遇见商人时,立刻获得他所出售的所有物品。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 241, + "image": "extension/术樱包/mengsan/assets/relics/lords_parasol.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%A2%86%E4%B8%BB%E9%98%B3%E4%BC%9E", + "descriptionRaw": "当你遇见商人时,立刻获得他所出售的所有物品。", + "descriptionSource": "当你遇见{{颜色|gold|商人}}时,立刻获得他所出售的{{颜色|red|所有}}物品。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fiddle_shuying", + "wikiId": "fiddle", + "name": "小提琴", + "description": "在每个回合开始时,额外抽2张牌。你在回合进行中不再能抽任何牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 242, + "image": "extension/术樱包/mengsan/assets/relics/fiddle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E6%8F%90%E7%90%B4", + "descriptionRaw": "在每个回合开始时,额外抽2张牌。你在回合进行中不再能抽任何牌。", + "descriptionSource": "在每个回合开始时,额外抽{{颜色|blue|2}}张牌。你在回合进行中不再能抽任何牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_choices_paradox_shuying", + "wikiId": "choices_paradox", + "name": "选择悖论", + "description": "在每场战斗开始时,从5张随机牌中选择1张放入你的手牌。被选中的牌获得保留。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 243, + "image": "extension/术樱包/mengsan/assets/relics/choices_paradox.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%80%89%E6%8B%A9%E6%82%96%E8%AE%BA", + "descriptionRaw": "在每场战斗开始时,从5张随机牌中选择1张放入你的手牌。被选中的牌获得保留。", + "descriptionSource": "在每场战斗开始时,从{{颜色|blue|5}}张随机牌中选择{{颜色|blue|1}}张放入你的{{颜色|gold|手牌}}。被选中的牌获得{{颜色|gold|保留}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_blood_soaked_rose_shuying", + "wikiId": "blood_soaked_rose", + "name": "血染玫瑰", + "description": "拾起时,将1张执迷加入你的牌组。在回合开始时获得[能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 244, + "image": "extension/术樱包/mengsan/assets/relics/blood_soaked_rose.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%A1%80%E6%9F%93%E7%8E%AB%E7%91%B0", + "descriptionRaw": "拾起时,将1张执迷加入你的牌组。在回合开始时获得能量。", + "descriptionSource": "拾起时,将{{颜色|blue|1}}张{{颜色|red|执迷}}加入你的{{颜色|gold|牌组}}。在回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_preserved_fog_shuying", + "wikiId": "preserved_fog", + "name": "腌制活雾", + "description": "拾起时,从你的牌组中移除3张牌。将一张愚行加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 245, + "image": "extension/术樱包/mengsan/assets/relics/preserved_fog.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%85%8C%E5%88%B6%E6%B4%BB%E9%9B%BE", + "descriptionRaw": "拾起时,从你的牌组中移除3张牌。将一张愚行加入你的牌组。", + "descriptionSource": "拾起时,从你的{{颜色|gold|牌组}}中移除{{颜色|blue|3}}张牌。将一张{{颜色|red|愚行}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_music_box_shuying", + "wikiId": "music_box", + "name": "音乐盒", + "description": "将你每回合打出的第一张攻击牌的一张虚无复制品加入你的手牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 246, + "image": "extension/术樱包/mengsan/assets/relics/music_box.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%9F%B3%E4%B9%90%E7%9B%92", + "descriptionRaw": "将你每回合打出的第一张攻击牌的一张虚无复制品加入你的手牌。", + "descriptionSource": "将你每回合打出的第一张攻击牌的一张{{颜色|gold|虚无}}复制品加入你的手牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sere_talon_shuying", + "wikiId": "sere_talon", + "name": "原初之爪", + "description": "拾起时,将2张随机诅咒牌和3张许愿加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 247, + "image": "extension/术樱包/mengsan/assets/relics/sere_talon.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8E%9F%E5%88%9D%E4%B9%8B%E7%88%AA", + "descriptionRaw": "拾起时,将2张随机诅咒牌和3张许愿加入你的牌组。", + "descriptionSource": "拾起时,将{{颜色|blue|2}}张随机{{颜色|red|诅咒}}牌和{{颜色|blue|3}}张{{颜色|purple|许愿}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_distinguished_cape_shuying", + "wikiId": "distinguished_cape", + "name": "卓越斗篷", + "description": "拾起时,失去9点最大生命值。将3张灵体加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "瓦库", + "order": 248, + "image": "extension/术樱包/mengsan/assets/relics/distinguished_cape.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8D%93%E8%B6%8A%E6%96%97%E7%AF%B7", + "descriptionRaw": "拾起时,失去9点最大生命值。将3张灵体加入你的牌组。", + "descriptionSource": "拾起时,失去{{颜色|red|9}}点最大生命值。将{{颜色|blue|3}}张{{颜色|gold|灵体}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_dusty_tome_shuying", + "wikiId": "dusty_tome", + "name": "尘封魔典", + "description": "拾起时,获得一张先古牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 249, + "image": "extension/术樱包/mengsan/assets/relics/dusty_tome.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%98%E5%B0%81%E9%AD%94%E5%85%B8", + "descriptionRaw": "拾起时,获得一张先古牌。", + "descriptionSource": "拾起时,获得一张{{颜色|gold|先古牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_runic_pyramid_shuying", + "wikiId": "runic_pyramid", + "name": "符文金字塔", + "description": "你在回合结束时不再自动丢弃所有手牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 250, + "image": "extension/术樱包/mengsan/assets/relics/runic_pyramid.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%AC%A6%E6%96%87%E9%87%91%E5%AD%97%E5%A1%94", + "descriptionRaw": "你在回合结束时不再自动丢弃所有手牌。", + "descriptionSource": "你在回合结束时不再自动丢弃所有{{颜色|gold|手牌}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "符文金字塔", + "category": "relic" + }, + { + "id": "mengsan_black_star_shuying", + "wikiId": "black_star", + "name": "黑星", + "description": "精英敌人在被打败时多掉落一件遗物。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 251, + "image": "extension/术樱包/mengsan/assets/relics/black_star.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%BB%91%E6%98%9F", + "descriptionRaw": "精英敌人在被打败时多掉落一件遗物。", + "descriptionSource": "{{颜色|gold|精英}}敌人在被打败时多掉落一件遗物。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "黑星", + "category": "relic" + }, + { + "id": "mengsan_empty_cage_shuying", + "wikiId": "empty_cage", + "name": "空鸟笼", + "description": "拾起时,选择移除牌组中的2张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 252, + "image": "extension/术樱包/mengsan/assets/relics/empty_cage.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%A9%BA%E9%B8%9F%E7%AC%BC", + "descriptionRaw": "拾起时,选择移除牌组中的2张牌。", + "descriptionSource": "拾起时,选择移除{{颜色|gold|牌组}}中的{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "空鸟笼", + "category": "relic" + }, + { + "id": "mengsan_ectoplasm_shuying", + "wikiId": "ectoplasm", + "name": "灵体外质", + "description": "你不能再获得任何金币。在回合开始时获得[能量]", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 253, + "image": "extension/术樱包/mengsan/assets/relics/ectoplasm.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%81%B5%E4%BD%93%E5%A4%96%E8%B4%A8", + "descriptionRaw": "你不能再获得任何金币。在回合开始时获得能量", + "descriptionSource": "你不能再获得任何{{颜色|gold|金币}}。在回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "灵体外质", + "category": "relic" + }, + { + "id": "mengsan_pandoras_box_shuying", + "wikiId": "pandoras_box", + "name": "潘多拉魔盒", + "description": "变化所有“打击”和“防御”。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 254, + "image": "extension/术樱包/mengsan/assets/relics/pandoras_box.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%BD%98%E5%A4%9A%E6%8B%89%E9%AD%94%E7%9B%92", + "descriptionRaw": "变化所有“打击”和“防御”。", + "descriptionSource": "{{颜色|gold|变化}}所有“{{颜色|gold|打击}}”和“{{颜色|gold|防御}}”。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "潘多拉魔盒", + "category": "relic" + }, + { + "id": "mengsan_velvet_choker_shuying", + "wikiId": "velvet_choker", + "name": "天鹅绒颈圈", + "description": "在每回合开始时获得[能量]。你每回合不能打出超过6张牌。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 255, + "image": "extension/术樱包/mengsan/assets/relics/velvet_choker.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E9%B9%85%E7%BB%92%E9%A2%88%E5%9C%88", + "descriptionRaw": "在每回合开始时获得能量。你每回合不能打出超过6张牌。", + "descriptionSource": "在每回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。你每回合不能打出超过{{颜色|blue|6}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "天鹅绒颈圈", + "category": "relic" + }, + { + "id": "mengsan_sozu_shuying", + "wikiId": "sozu", + "name": "添水", + "description": "你无法再获得药水。在每回合开始时获得[能量]。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 256, + "image": "extension/术樱包/mengsan/assets/relics/sozu.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B7%BB%E6%B0%B4", + "descriptionRaw": "你无法再获得药水。在每回合开始时获得能量。", + "descriptionSource": "你无法再获得药水。在每回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "添水", + "category": "relic" + }, + { + "id": "mengsan_philosophers_stone_shuying", + "wikiId": "philosophers_stone", + "name": "贤者之石", + "description": "在每回合开始时获得[能量]。所有敌人初始获得1点力量。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 257, + "image": "extension/术樱包/mengsan/assets/relics/philosophers_stone.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%B4%A4%E8%80%85%E4%B9%8B%E7%9F%B3", + "descriptionRaw": "在每回合开始时获得能量。所有敌人初始获得1点力量。", + "descriptionSource": "在每回合开始时获得[[File:colorless_energy_icon.png|16px|link=能量]]。所有敌人初始获得{{颜色|blue|1}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "贤者之石", + "category": "relic" + }, + { + "id": "mengsan_astrolabe_shuying", + "wikiId": "astrolabe", + "name": "星盘", + "description": "拾起时,选择3张牌进行变化,然后将这些牌升级。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 258, + "image": "extension/术樱包/mengsan/assets/relics/astrolabe.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%98%9F%E7%9B%98", + "descriptionRaw": "拾起时,选择3张牌进行变化,然后将这些牌升级。", + "descriptionSource": "拾起时,选择{{颜色|blue|3}}张牌进行{{颜色|gold|变化}},然后将这些牌{{颜色|gold|升级}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "星盘", + "category": "relic" + }, + { + "id": "mengsan_snecko_eye_shuying", + "wikiId": "snecko_eye", + "name": "异蛇之眼", + "description": "每回合多抽2张牌。每场战斗开始时获得混乱效果。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 259, + "image": "extension/术樱包/mengsan/assets/relics/snecko_eye.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%82%E8%9B%87%E4%B9%8B%E7%9C%BC", + "descriptionRaw": "每回合多抽2张牌。每场战斗开始时获得混乱效果。", + "descriptionSource": "每回合多抽{{颜色|blue|2}}张牌。每场战斗开始时获得{{颜色|red|混乱}}效果。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "异蛇之眼", + "category": "relic" + }, + { + "id": "mengsan_calling_bell_shuying", + "wikiId": "calling_bell", + "name": "召唤铃铛", + "description": "拾起时,获得一个独特的诅咒和3件遗物。", + "pool": "通用", + "tier": "先古之民", + "ancient": "达弗", + "order": 260, + "image": "extension/术樱包/mengsan/assets/relics/calling_bell.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%AC%E5%94%A4%E9%93%83%E9%93%9B", + "descriptionRaw": "拾起时,获得一个独特的诅咒和3件遗物。", + "descriptionSource": "拾起时,获得一个独特的{{颜色|red|诅咒}}和{{颜色|blue|3}}件{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "召唤铃铛", + "category": "relic" + }, + { + "id": "mengsan_fake_orichalcum_shuying", + "wikiId": "fake_orichalcum", + "name": "奥利哈钢???", + "description": "如果你在回合结束时没有任何格挡,获得3点格挡。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 261, + "image": "extension/术樱包/mengsan/assets/relics/fake_orichalcum.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A5%A5%E5%88%A9%E5%93%88%E9%92%A2%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "如果你在回合结束时没有任何格挡,获得3点格挡。", + "descriptionSource": "如果你在回合结束时没有任何{{颜色|gold|格挡}},获得{{颜色|blue|3}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_mr_struggles_shuying", + "wikiId": "mr_struggles", + "name": "抱抱先生", + "description": "在你的回合开始时,对所有敌人造成等量于当前回合数的伤害。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 262, + "image": "extension/术樱包/mengsan/assets/relics/mr_struggles.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8A%B1%E6%8A%B1%E5%85%88%E7%94%9F", + "descriptionRaw": "在你的回合开始时,对所有敌人造成等量于当前回合数的伤害。", + "descriptionSource": "在你的回合开始时,对所有敌人造成等量于当前回合数的伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_bing_bong_shuying", + "wikiId": "bing_bong", + "name": "宾邦", + "description": "每当你往牌组中增添卡牌时,都将额外添加一张相同的牌。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 263, + "image": "extension/术樱包/mengsan/assets/relics/bing_bong.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%AE%BE%E9%82%A6", + "descriptionRaw": "每当你往牌组中增添卡牌时,都将额外添加一张相同的牌。", + "descriptionSource": "每当你往{{颜色|gold|牌组}}中增添卡牌时,都将额外添加一张相同的牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_dream_catcher_shuying", + "wikiId": "dream_catcher", + "name": "捕梦网", + "description": "每当你休息时,可以添加一张牌到你的牌组。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 264, + "image": "extension/术樱包/mengsan/assets/relics/dream_catcher.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%8D%95%E6%A2%A6%E7%BD%91", + "descriptionRaw": "每当你休息时,可以添加一张牌到你的牌组。", + "descriptionSource": "每当你{{颜色|gold|休息}}时,可以添加一张牌到你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "捕梦网", + "category": "relic" + }, + { + "id": "mengsan_fake_strike_dummy_shuying", + "wikiId": "fake_strike_dummy", + "name": "打击木偶???", + "description": "名字中有“打击”的卡牌造成1点额外伤害。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 265, + "image": "extension/术樱包/mengsan/assets/relics/fake_strike_dummy.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%89%93%E5%87%BB%E6%9C%A8%E5%81%B6%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "名字中有“打击”的卡牌造成1点额外伤害。", + "descriptionSource": "名字中有“打击”的卡牌造成{{颜色|blue|1}}点额外伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_big_mushroom_shuying", + "wikiId": "big_mushroom", + "name": "大蘑菇", + "description": "拾起时,将你的最大生命值提升20。在每场战斗开始时,少抽2张牌。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 266, + "image": "extension/术樱包/mengsan/assets/relics/big_mushroom.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A7%E8%98%91%E8%8F%87", + "descriptionRaw": "拾起时,将你的最大生命值提升20。在每场战斗开始时,少抽2张牌。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|20}}。在每场战斗开始时,少抽{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_the_boot_shuying", + "wikiId": "the_boot", + "name": "发条靴", + "description": "每当你造成小于等于4点未被格挡的攻击伤害时,将伤害提升为5。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 267, + "image": "extension/术樱包/mengsan/assets/relics/the_boot.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%91%E6%9D%A1%E9%9D%B4", + "descriptionRaw": "每当你造成小于等于4点未被格挡的攻击伤害时,将伤害提升为5。", + "descriptionSource": "每当你造成小于等于{{颜色|blue|4}}点未被格挡的攻击伤害时,将伤害提升为{{颜色|blue|5}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "发条靴", + "category": "relic" + }, + { + "id": "mengsan_fragrant_mushroom_shuying", + "wikiId": "fragrant_mushroom", + "name": "芳香蘑菇", + "description": "拾起时,失去15点生命,然后随机升级2张牌。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 268, + "image": "extension/术樱包/mengsan/assets/relics/fragrant_mushroom.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8A%B3%E9%A6%99%E8%98%91%E8%8F%87", + "descriptionRaw": "拾起时,失去15点生命,然后随机升级2张牌。", + "descriptionSource": "拾起时,失去{{颜色|blue|15}}点生命,然后随机{{颜色|gold|升级}}{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fresnel_lens_shuying", + "wikiId": "fresnel_lens", + "name": "菲涅耳透镜", + "description": "每当你将一张带有格挡的牌加入你的牌组时,为那张牌附魔:灵巧2", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 269, + "image": "extension/术樱包/mengsan/assets/relics/fresnel_lens.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8F%B2%E6%B6%85%E8%80%B3%E9%80%8F%E9%95%9C", + "descriptionRaw": "每当你将一张带有格挡的牌加入你的牌组时,为那张牌附魔:灵巧2", + "descriptionSource": "每当你将一张带有{{颜色|gold|格挡}}的牌加入你的{{颜色|gold|牌组}}时,为那张牌{{颜色|gold|附魔}}:{{颜色|purple|灵巧}}{{颜色|blue|2}}", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_daughter_of_the_wind_shuying", + "wikiId": "daughter_of_the_wind", + "name": "风的女儿", + "description": "每当你打出一张攻击牌时,获得1点格挡。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 270, + "image": "extension/术樱包/mengsan/assets/relics/daughter_of_the_wind.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%A3%8E%E7%9A%84%E5%A5%B3%E5%84%BF", + "descriptionRaw": "每当你打出一张攻击牌时,获得1点格挡。", + "descriptionSource": "每当你打出一张攻击牌时,获得{{颜色|blue|1}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_venerable_tea_set_shuying", + "wikiId": "fake_venerable_tea_set", + "name": "古茶具套装???", + "description": "到达休息处后的下一场战斗开始时额外获得[能量]。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 271, + "image": "extension/术樱包/mengsan/assets/relics/fake_venerable_tea_set.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8F%A4%E8%8C%B6%E5%85%B7%E5%A5%97%E8%A3%85%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "到达休息处后的下一场战斗开始时额外获得能量。", + "descriptionSource": "到达{{颜色|gold|休息处}}后的下一场战斗开始时额外获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_bone_tea_shuying", + "wikiId": "bone_tea", + "name": "骨茶", + "description": "在你接下来的1场战斗开始时,升级你的初始手牌。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 272, + "image": "extension/术樱包/mengsan/assets/relics/bone_tea.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%AA%A8%E8%8C%B6", + "descriptionRaw": "在你接下来的1场战斗开始时,升级你的初始手牌。", + "descriptionSource": "在你接下来的{{颜色|blue|1}}场战斗开始时,{{颜色|gold|升级}}你的初始手牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_darkstone_periapt_shuying", + "wikiId": "darkstone_periapt", + "name": "黑石护符", + "description": "每当你获得一张诅咒,就将你的最大生命值提升6。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 273, + "image": "extension/术樱包/mengsan/assets/relics/darkstone_periapt.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%BB%91%E7%9F%B3%E6%8A%A4%E7%AC%A6", + "descriptionRaw": "每当你获得一张诅咒,就将你的最大生命值提升6。", + "descriptionSource": "每当你获得一张{{颜色|red|诅咒}},就将你的最大生命值提升{{颜色|blue|6}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "黑石护符", + "category": "relic" + }, + { + "id": "mengsan_pollinous_core_shuying", + "wikiId": "pollinous_core", + "name": "花粉核心", + "description": "每4个回合,额外抽2张牌。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 274, + "image": "extension/术樱包/mengsan/assets/relics/pollinous_core.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8A%B1%E7%B2%89%E6%A0%B8%E5%BF%83", + "descriptionRaw": "每4个回合,额外抽2张牌。", + "descriptionSource": "每{{颜色|blue|4}}个回合,额外抽{{颜色|blue|2}}张牌。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_maw_bank_shuying", + "wikiId": "maw_bank", + "name": "巨口储蓄罐", + "description": "每攀爬一层楼层,就获得12金币。一旦在商店中花费金币就会使其失效。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 275, + "image": "extension/术樱包/mengsan/assets/relics/maw_bank.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B7%A8%E5%8F%A3%E5%82%A8%E8%93%84%E7%BD%90", + "descriptionRaw": "每攀爬一层楼层,就获得12金币。一旦在商店中花费金币就会使其失效。", + "descriptionSource": "每攀爬一层楼层,就获得{{颜色|blue|12}}{{颜色|gold|金币}}。一旦在商店中花费{{颜色|gold|金币}}就会使其失效。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "巨口储蓄罐", + "category": "relic" + }, + { + "id": "mengsan_fake_happy_flower_shuying", + "wikiId": "fake_happy_flower", + "name": "开心小花???", + "description": "每5个回合,获得[能量]。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 276, + "image": "extension/术樱包/mengsan/assets/relics/fake_happy_flower.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%80%E5%BF%83%E5%B0%8F%E8%8A%B1%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "每5个回合,获得能量。", + "descriptionSource": "每{{颜色|blue|5}}个回合,获得[[File:colorless_energy_icon.png|16px|link=能量]]。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_lees_waffle_shuying", + "wikiId": "fake_lees_waffle", + "name": "李家华夫饼???", + "description": "拾起时,回复你10%的生命值。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 277, + "image": "extension/术樱包/mengsan/assets/relics/fake_lees_waffle.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%9D%8E%E5%AE%B6%E5%8D%8E%E5%A4%AB%E9%A5%BC%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "拾起时,回复你10%的生命值。", + "descriptionSource": "拾起时,回复你{{颜色|green|10%}}的生命值。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_history_course_shuying", + "wikiId": "history_course", + "name": "历史课", + "description": "在你的回合开始时,打出一张你上一回合最后打出的攻击牌或技能牌的复制品。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 278, + "image": "extension/术樱包/mengsan/assets/relics/history_course.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%8E%86%E5%8F%B2%E8%AF%BE", + "descriptionRaw": "在你的回合开始时,打出一张你上一回合最后打出的攻击牌或技能牌的复制品。", + "descriptionSource": "在你的回合开始时,打出一张你上一回合最后打出的攻击牌或技能牌的复制品。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_mango_shuying", + "wikiId": "fake_mango", + "name": "芒果???", + "description": "拾起时,将你的最大生命值提升3。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 279, + "image": "extension/术樱包/mengsan/assets/relics/fake_mango.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%8A%92%E6%9E%9C%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "拾起时,将你的最大生命值提升3。", + "descriptionSource": "拾起时,将你的最大生命值提升{{颜色|blue|3}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_anchor_shuying", + "wikiId": "fake_anchor", + "name": "锚???", + "description": "在每场战斗开始时,获得4点格挡。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 280, + "image": "extension/术樱包/mengsan/assets/relics/fake_anchor.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%94%9A%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "在每场战斗开始时,获得4点格挡。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|4}}点{{颜色|gold|格挡}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_lost_wisp_shuying", + "wikiId": "lost_wisp", + "name": "迷失鬼火", + "description": "你每打出一张能力牌,就对所有敌人造成8点伤害。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 281, + "image": "extension/术樱包/mengsan/assets/relics/lost_wisp.png", + "source": "https://sts2.huijiwiki.com/wiki/%E8%BF%B7%E5%A4%B1%E9%AC%BC%E7%81%AB(%E9%81%97%E7%89%A9)", + "descriptionRaw": "你每打出一张能力牌,就对所有敌人造成8点伤害。", + "descriptionSource": "你每打出一张能力牌,就对所有敌人造成{{颜色|blue|8}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_merchants_rug_shuying", + "wikiId": "fake_merchants_rug", + "name": "商人的地毯???", + "description": "低劣的仿制品。没有任何作用。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 282, + "image": "extension/术樱包/mengsan/assets/relics/fake_merchants_rug.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%95%86%E4%BA%BA%E7%9A%84%E5%9C%B0%E6%AF%AF%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "低劣的仿制品。没有任何作用。", + "descriptionSource": "低劣的仿制品。没有任何作用。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sword_of_stone_shuying", + "wikiId": "sword_of_stone", + "name": "石之剑", + "description": "在击败5名精英敌人之后将变化为一件强力遗物。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 283, + "image": "extension/术樱包/mengsan/assets/relics/sword_of_stone.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%9F%B3%E4%B9%8B%E5%89%91", + "descriptionRaw": "在击败5名精英敌人之后将变化为一件强力遗物。", + "descriptionSource": "在击败{{颜色|blue|5}}名{{颜色|gold|精英}}敌人之后将变化为一件强力{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_hand_drill_shuying", + "wikiId": "hand_drill", + "name": "手钻", + "description": "每当你突破敌人的格挡时,给予其2层易伤。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 284, + "image": "extension/术樱包/mengsan/assets/relics/hand_drill.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%89%8B%E9%92%BB", + "descriptionRaw": "每当你突破敌人的格挡时,给予其2层易伤。", + "descriptionSource": "每当你突破敌人的{{颜色|gold|格挡}}时,给予其{{颜色|blue|2}}层{{颜色|gold|易伤}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "手钻", + "category": "relic" + }, + { + "id": "mengsan_chosen_cheese_shuying", + "wikiId": "chosen_cheese", + "name": "天选芝士", + "description": "在战斗结束时,获得1点最大生命值。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 285, + "image": "extension/术樱包/mengsan/assets/relics/chosen_cheese.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%A9%E9%80%89%E8%8A%9D%E5%A3%AB", + "descriptionRaw": "在战斗结束时,获得1点最大生命值。", + "descriptionSource": "在战斗结束时,获得{{颜色|blue|1}}点最大生命值。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_royal_poison_shuying", + "wikiId": "royal_poison", + "name": "王室猛毒", + "description": "在每场战斗开始时,失去4点生命。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 286, + "image": "extension/术樱包/mengsan/assets/relics/royal_poison.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%8E%8B%E5%AE%A4%E7%8C%9B%E6%AF%92", + "descriptionRaw": "在每场战斗开始时,失去4点生命。", + "descriptionSource": "在每场战斗开始时,失去{{颜色|blue|4}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_wongo_customer_appreciation_badge_shuying", + "wikiId": "wongo_customer_appreciation_badge", + "name": "旺购客户感恩徽章", + "description": "没有任何作用。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 287, + "image": "extension/术樱包/mengsan/assets/relics/wongo_customer_appreciation_badge.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%97%BA%E8%B4%AD%E5%AE%A2%E6%88%B7%E6%84%9F%E6%81%A9%E5%BE%BD%E7%AB%A0", + "descriptionRaw": "没有任何作用。", + "descriptionSource": "没有任何作用。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_wongos_mystery_ticket_shuying", + "wikiId": "wongos_mystery_ticket", + "name": "旺购神秘券", + "description": "在5场战斗后,获得随机3件遗物。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 288, + "image": "extension/术樱包/mengsan/assets/relics/wongos_mystery_ticket.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%97%BA%E8%B4%AD%E7%A5%9E%E7%A7%98%E5%88%B8", + "descriptionRaw": "在5场战斗后,获得随机3件遗物。", + "descriptionSource": "在{{颜色|blue|5}}场战斗后,获得随机{{颜色|blue|3}}件{{颜色|gold|遗物}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_tea_of_discourtesy_shuying", + "wikiId": "tea_of_discourtesy", + "name": "无礼之茶", + "description": "在下一场战斗开始时,将2张晕眩放入你的抽牌堆。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 289, + "image": "extension/术樱包/mengsan/assets/relics/tea_of_discourtesy.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%97%A0%E7%A4%BC%E4%B9%8B%E8%8C%B6", + "descriptionRaw": "在下一场战斗开始时,将2张晕眩放入你的抽牌堆。", + "descriptionSource": "在下一场战斗开始时,将{{颜色|blue|2}}张{{颜色|gold|晕眩}}放入你的{{颜色|gold|抽牌堆}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_blood_vial_shuying", + "wikiId": "fake_blood_vial", + "name": "小血瓶???", + "description": "在每场战斗开始时,回复1点生命。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 290, + "image": "extension/术樱包/mengsan/assets/relics/fake_blood_vial.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%B0%8F%E8%A1%80%E7%93%B6%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "在每场战斗开始时,回复1点生命。", + "descriptionSource": "在每场战斗开始时,回复{{颜色|green|1}}点生命。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_forgotten_soul_shuying", + "wikiId": "forgotten_soul", + "name": "遗忘之魂", + "description": "每当你消耗一张牌,随机对一名敌人造成1点伤害。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 291, + "image": "extension/术樱包/mengsan/assets/relics/forgotten_soul.png", + "source": "https://sts2.huijiwiki.com/wiki/%E9%81%97%E5%BF%98%E4%B9%8B%E9%AD%82", + "descriptionRaw": "每当你消耗一张牌,随机对一名敌人造成1点伤害。", + "descriptionSource": "每当你{{颜色|gold|消耗}}一张牌,随机对一名敌人造成{{颜色|blue|1}}点伤害。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_byrdpip_shuying", + "wikiId": "byrdpip", + "name": "异鸟宝宝", + "description": "拾起时,获得一张异鸟扑击。一只幼年异鸟会在战斗中陪伴你。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 292, + "image": "extension/术樱包/mengsan/assets/relics/byrdpip.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%82%E9%B8%9F%E5%AE%9D%E5%AE%9D", + "descriptionRaw": "拾起时,获得一张异鸟扑击。一只幼年异鸟会在战斗中陪伴你。", + "descriptionSource": "拾起时,获得一张{{颜色|gold|异鸟扑击}}。一只{{颜色|gold|幼年异鸟}}会在战斗中陪伴你。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_fake_snecko_eye_shuying", + "wikiId": "fake_snecko_eye", + "name": "异蛇之眼???", + "description": "每场战斗开始时获得混乱效果。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 293, + "image": "extension/术樱包/mengsan/assets/relics/fake_snecko_eye.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%BC%82%E8%9B%87%E4%B9%8B%E7%9C%BC%EF%BC%9F%EF%BC%9F%EF%BC%9F", + "descriptionRaw": "每场战斗开始时获得混乱效果。", + "descriptionSource": "每场战斗开始时获得{{颜色|red|混乱}}效果。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_ember_tea_shuying", + "wikiId": "ember_tea", + "name": "余烬茶", + "description": "在接下来的5场战斗开始时,获得2点力量。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 294, + "image": "extension/术樱包/mengsan/assets/relics/ember_tea.png", + "source": "https://sts2.huijiwiki.com/wiki/%E4%BD%99%E7%83%AC%E8%8C%B6", + "descriptionRaw": "在接下来的5场战斗开始时,获得2点力量。", + "descriptionSource": "在接下来的{{颜色|blue|5}}场战斗开始时,获得{{颜色|blue|2}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_sword_of_jade_shuying", + "wikiId": "sword_of_jade", + "name": "玉之剑", + "description": "在每场战斗开始时,获得3点力量。", + "pool": "通用", + "tier": "事件", + "ancient": null, + "order": 295, + "image": "extension/术樱包/mengsan/assets/relics/sword_of_jade.png", + "source": "https://sts2.huijiwiki.com/wiki/%E7%8E%89%E4%B9%8B%E5%89%91", + "descriptionRaw": "在每场战斗开始时,获得3点力量。", + "descriptionSource": "在每场战斗开始时,获得{{颜色|blue|3}}点{{颜色|gold|力量}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_circlet_shuying", + "wikiId": "circlet", + "name": "头环", + "description": "这是一个头环。", + "pool": "通用", + "tier": "遗物", + "ancient": null, + "order": 296, + "image": "extension/术樱包/mengsan/assets/relics/circlet.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%A4%B4%E7%8E%AF", + "descriptionRaw": "这是一个头环。", + "descriptionSource": "这是一个头环。", + "flavor": "一件有趣的遗物,只有当{{颜色|gold|高塔}}中出现问题,或没有更多遗物可被发现时才会出现。", + "predecessor": "头环", + "category": "relic" + }, + { + "id": "mengsan_dowsing_rod_shuying", + "wikiId": "dowsing_rod", + "name": "寻龙尺", + "description": "拾起时,将1张探寻加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 297, + "image": "extension/术樱包/mengsan/assets/relics/dowsing_rod.png", + "source": "https://sts2.huijiwiki.com/wiki/%E5%AF%BB%E9%BE%99%E5%B0%BA", + "descriptionRaw": "拾起时,将1张探寻加入你的牌组。", + "descriptionSource": "拾起时,将{{颜色|blue|1}}张{{颜色|gold|探寻}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + }, + { + "id": "mengsan_neows_sacrifice_shuying", + "wikiId": "neows_sacrifice", + "name": "涅奥的牺牲", + "description": "拾起时,获得1瓶龙涎香,并将1张愧疚加入你的牌组。", + "pool": "通用", + "tier": "先古之民", + "ancient": "涅奥", + "order": 298, + "image": "extension/术樱包/mengsan/assets/relics/neows_sacrifice.png", + "source": "https://sts2.huijiwiki.com/wiki/%E6%B6%85%E5%A5%A5%E7%9A%84%E7%89%BA%E7%89%B2", + "descriptionRaw": "拾起时,获得1瓶龙涎香,并将1张愧疚加入你的牌组。", + "descriptionSource": "拾起时,获得{{颜色|blue|1}}瓶{{颜色|gold|龙涎香}},并将{{颜色|blue|1}}张{{颜色|red|愧疚}}加入你的{{颜色|gold|牌组}}。", + "flavor": "{{颜色|red|这个遗物的细节将在未来揭晓……}}", + "predecessor": "", + "category": "relic" + } +]); diff --git a/mengsan/relics/combat.js b/mengsan/relics/combat.js index 23ed660..74d755e 100644 --- a/mengsan/relics/combat.js +++ b/mengsan/relics/combat.js @@ -1,7 +1,8 @@ import { applyMengsanDebuff } from "../monsters/artifact-status.js"; import { ironcladBlocksEnergy, ironcladStrengthPenalty } from "../cards/ironclad-hooks.js"; +import { isAttackCard } from "../monsters/vine-tangled.js"; -export function createOpeningEffects(game, owner, refreshEnergy) { +export function createOpeningEffects(game, owner, refreshEnergy, random = Math.random) { const enemies = () => game.players.filter(player => player !== owner && player.isAlive() && player.storage?.mengsanCamp_shuying === "enemy"); @@ -16,6 +17,22 @@ export function createOpeningEffects(game, owner, refreshEnergy) { if (relic.effect === "firstTurnEnergy") { if (!ironcladBlocksEnergy(owner)) owner.storage.mengsanEnergy_shuying += relic.amount; refreshEnergy(); + } else if (relic.effect === "energy" || relic.effect === "nextEnergy") { + if (!ironcladBlocksEnergy(owner)) owner.storage.mengsanEnergy_shuying = Math.max(0,(owner.storage.mengsanEnergy_shuying || 0)+relic.amount); + refreshEnergy(); + } else if (["openingBlock","nextBlock","plating"].includes(relic.effect)) { + await owner.changeHujia(relic.amount); + } else if (relic.effect === "openingHeal" || relic.effect === "healAbsolute") { + await owner.recover(relic.amount); + } else if (relic.effect === "openingLoseHp") { + await owner.loseHp(relic.amount); + } else if (relic.effect === "targetDamage") { + if (relic.target?.isAlive()) { + const damage=relic.target.damage(relic.amount,owner,"nocard"); damage.mengsanScriptedSkill_shuying=true; await damage; + } + } else if (relic.effect === "randomDamage") { + const targets=enemies(),target=targets[Math.floor(random()*targets.length)]; + if(target){const damage=target.damage(relic.amount,owner,"nocard");damage.mengsanScriptedSkill_shuying=true;await damage;} } else if (relic.effect === "openingStrength") { addStatus(owner, "mengsanStrength_shuying", "mengsan_raider_strength_shuying", relic.amount); @@ -29,6 +46,8 @@ export function createOpeningEffects(game, owner, refreshEnergy) { } else if (relic.effect === "openingWeak") { addStatus(target, "mengsanWeak_shuying", "mengsan_weak_shuying", relic.amount); + } else if (relic.effect === "openingEnemyStrength") { + addStatus(target,"mengsanStrength_shuying","mengsan_raider_strength_shuying",relic.amount); } else if (relic.effect === "openingDamage") { const damage = target.damage(relic.amount, owner, "nocard"); damage.mengsanScriptedSkill_shuying = true; @@ -46,22 +65,27 @@ export function createRelicCombatSkills(getBattle, getOwner) { forced: true, silent: true, popup: false, priority: 80, filter(event) { const source = event.source; - return Boolean(getBattle()?.session.active && event.card && + return Boolean(getBattle()?.session.active && (isAttackCard(event.card) || event.mengsanAttack_shuying) && !event.mengsanScriptedSkill_shuying && - ((source === getOwner() && - (source?.storage?.mengsanStrength_shuying > 0 || ironcladStrengthPenalty(source) > 0)) || + (source === getOwner() || source?.storage?.mengsanWeak_shuying > 0)); }, async content(event, trigger) { const source = trigger.source; if (source === getOwner()) { trigger.num = Math.max(0, trigger.num + (source.storage.mengsanStrength_shuying || 0) - ironcladStrengthPenalty(source)); + trigger.num = getBattle().relics?.outgoingDamage(trigger) ?? trigger.num; } if (source.storage.mengsanWeak_shuying > 0) { - trigger.num = Math.floor(trigger.num * 0.75); + trigger.num = Math.floor(trigger.num * (source !== getOwner() && getBattle().relics?.has("paper_krane") ? 0.6 : 0.75)); } }, }, + mengsan_relic_boot_shuying: { + trigger:{global:"damageBegin2"},forced:true,silent:true,popup:false,priority:-1000, + filter(event){return Boolean(getBattle()?.session.active && event.source===getOwner() && (isAttackCard(event.card) || event.mengsanAttack_shuying) && !event.mengsanScriptedSkill_shuying);}, + async content(event,trigger){trigger.num=getBattle().relics?.lateOutgoingDamage(trigger) ?? trigger.num;}, + }, mengsan_weak_shuying: { mark: true, marktext: "弱", onremove(player) { delete player.storage.mengsanWeak_shuying; }, diff --git a/mengsan/relics/definitions.js b/mengsan/relics/definitions.js index c4af7b5..a4323dd 100644 --- a/mengsan/relics/definitions.js +++ b/mengsan/relics/definitions.js @@ -1,99 +1,73 @@ -const entries = [ - { id: "mengsan_burning_blood_shuying", name: "燃烧之血", - description: "战斗结束后回复6点生命,不能超过生命上限。", - effect: "battleHeal", amount: 6 }, - { id: "mengsan_snake_ring_shuying", name: "蛇之戒指", - description: "每场战斗开始时,额外摸2张牌。", - effect: "openingDraw", amount: 2 }, - { id: "mengsan_long_snake_ring_shuying", name: "长蛇戒指", - description: "每场战斗的前3个自身回合开始时,额外摸2张牌。", - effect: "earlyTurnDraw", amount: 2, turns: 3 }, - { id: "mengsan_millennium_puzzle_shuying", name: "千年积木", - description: "每场战斗首次实际损失生命且仍存活时,摸3张牌。", - effect: "firstHpLossDraw", amount: 3 }, - { id: "mengsan_pendulum_shuying", name: "摆动球", - description: "每场战斗每到第3个自身回合开始时,额外摸1张牌。", - effect: "periodicTurnDraw", amount: 1, turns: 3 }, - { id: "mengsan_hand_charm_shuying", name: "束带", - description: "基础手牌上限额外+1;重复获得不叠加。", - effect: "handLimit", amount: 1 }, - { id: "mengsan_meal_ticket_shuying", name: "餐券", - description: "进入商店房间时回复15点生命。", - effect: "shopHeal", amount: 15 }, - { id: "mengsan_strawberry_shuying", name: "草莓", - description: "获得时最大生命值提升7;不额外回复生命。", - effect: "gainMaxHp", amount: 7 }, - { id: "mengsan_bag_of_marbles_shuying", name: "弹珠袋", - description: "每场战斗开始时给予所有敌人1层易伤。", - effect: "openingVulnerable", amount: 1 }, - { id: "mengsan_lantern_shuying", name: "灯笼", - description: "每场战斗首个自身回合额外获得1点临时费用。", - effect: "firstTurnEnergy", amount: 1 }, - { id: "mengsan_red_mask_shuying", name: "红面具", - description: "每场战斗开始时给予所有敌人1层虚弱。", - effect: "openingWeak", amount: 1 }, - { id: "mengsan_regal_pillow_shuying", name: "皇家枕头", - description: "选择休息回血时额外回复15点生命。", - effect: "restHeal", amount: 15 }, - { id: "mengsan_festive_poppers_shuying", name: "节日拉炮", - description: "每场战斗开始时对所有敌人造成9点伤害。", - effect: "openingDamage", amount: 9 }, - { id: "mengsan_vajra_shuying", name: "金刚杵", - description: "每场战斗开始时获得1点力量。", - effect: "openingStrength", amount: 1 }, -]; +import { relicCatalog } from "./catalog.js"; +import { relicRules, missingMechanisms, unhandledRelicRule } from "./rules.js"; +import { applyRelicPickup, relicCardRequirements } from "./progression.js"; -export const relicDefinitions = Object.freeze(Object.fromEntries( - entries.map(entry => [entry.id, Object.freeze({ ...entry, - owner: null, image: null })]))); - -export const getRelic = id => Object.hasOwn(relicDefinitions, id) - ? relicDefinitions[id] : null; - -export const heldRelics = run => [...new Set(run?.player?.items || [])] - .map(getRelic).filter(Boolean); - -export function canAcquireRelic(run, id) { +export const relicAdaptations = Object.freeze({ + the_courier:"梦三商店出售【杀】、回复生命及三件随机遗物;购买后补货,折扣适用现有商品。药水尚无接口。遗物基价120金币,为梦三配置值。", + miniature_tent:"每个休息选项可各选择一次,直至选择离开;不允许无限重复同一选项。", + meat_cleaver:"网页没有烹饪细则;暂定每次烹饪最大生命+5,待用户确认。", + big_mushroom:"沿用梦三初始手牌4张,扣减2张;未改成STS2的基础手牌数量。", + ring_of_the_drake:"刘备仅映射铁甲战士池;其他角色池需配置player.relicPool才可获取。效果按前三个自身回合各摸2张接入。", + runic_pyramid:"梦三原本按手牌上限弃牌;这里让全部手牌不计入弃牌上限。虚无牌照常消耗。", + precarious_shears:"选牌后扣除16点生命;当前地图流程保留至少1点生命,待补充非战斗死亡结算。", + fragrant_mushroom:"随机强化2张并扣除15点生命;当前地图流程保留至少1点生命,待补充非战斗死亡结算。", + dusty_tome:"从已登记的先古事件牌池随机获得一张;网页未列出完整候选排除规则。", + sword_of_stone:"按5次精英战胜利计数,变化为玉之剑;尚无精英单位的独立击杀标签。", + paper_phrog:"依梦三易伤口径向上取整;作用于玩家发起的攻击,保留既有卡牌的额外易伤增幅。", + paper_krane:"依梦三虚弱口径向下取整,敌人攻击倍率0.6。", + maw_bank:"将进入一个新的梦三节点视为攀爬一层,先发12金币,再进行商店购买或战斗;原作楼层与额外剧情节点未单独区分。", +}); +const entries = relicCatalog.map(item => { + const rule = relicRules[item.wikiId]; + const missingCards = rule ? relicCardRequirements(rule) : []; + const unhandled = rule ? unhandledRelicRule(rule) : []; + const reason = missingMechanisms[item.wikiId] || (missingCards.length ? `尚缺网页对应卡牌:${missingCards.join("、")}` : !rule ? "尚未接入此效果" : unhandled.length ? `尚缺效果接口:${unhandled.join("、")}` : null); + return Object.freeze({ ...item, owner: null, rule: rule || Object.freeze({}), + implementation: reason ? "pending" : relicAdaptations[item.wikiId] ? "adapted" : "implemented", + implementationNote: reason || relicAdaptations[item.wikiId] || "效果已接入,实机验收待完成。", effect: "sts2" }); +}); +entries.push(Object.freeze({ id: "mengsan_hand_charm_shuying", wikiId: "legacy_hand_charm", + name: "束带", description: "基础手牌上限额外+1;重复获得不叠加。", pool: "通用", tier: "梦三道具", + ancient: null, owner: null, image: null, effect: "handLimit", amount: 1, + rule: Object.freeze({ handLimit: 1 }), implementation: "implemented", implementationNote: "保留原梦三道具。" })); +export const relicDefinitions = Object.freeze(Object.fromEntries(entries.map(entry => [entry.id, entry]))); +const aliases = Object.freeze(Object.fromEntries(entries.flatMap(entry => [[entry.id, entry.id], [entry.wikiId, entry.id], [`mengsan_${entry.wikiId}_shuying`, entry.id]]))); +export const getRelic = id => Object.hasOwn(aliases, id) ? relicDefinitions[aliases[id]] : null; +export const heldRelics = run => [...new Set((run?.player?.items || []).map(id => getRelic(id)?.id).filter(Boolean))].map(getRelic); +export const relicPoolFor = run => run?.player?.relicPool || (run?.player?.character === "mengsan_liubei_shuying" ? "铁甲战士" : null); +export function canAcquireRelic(run, id, { allowPending = false } = {}) { const relic = getRelic(id); - return Boolean(run?.player && relic && - (relic.owner === null || relic.owner === run.player.character) && - !run.player.items?.includes(id)); + if (!run?.player || !relic || !allowPending && relic.implementation === "pending") return false; + if (relic.pool !== "通用" && relic.pool !== relicPoolFor(run)) return false; + return !heldRelics(run).some(item => item.id === relic.id || item.rule.replaces === relic.wikiId); } - export function grantRelic(run, id) { - if (!getRelic(id)) throw new Error(`梦三遗物未注册:${id}`); - if (!canAcquireRelic(run, id)) return false; const relic = getRelic(id); - run.player.items ||= []; - run.player.items.push(id); - if (relic.effect === "handLimit") { - run.player.handLimitBonus = (run.player.handLimitBonus || 0) + - relic.amount; - } - if (relic.effect === "gainMaxHp") { - if (Number.isFinite(run.player.maxHp)) { - run.player.maxHp += relic.amount; - } else { - run.player.pendingRelicMaxHp = - (run.player.pendingRelicMaxHp || 0) + relic.amount; - } - } + if (!relic) throw new Error(`梦三遗物未注册:${id}`); + if (!canAcquireRelic(run, id)) return false; + const draft = JSON.parse(JSON.stringify(run)); + draft.player.items ||= []; + if (relic.rule.replaces) draft.player.items = draft.player.items.filter(value => getRelic(value)?.wikiId !== relic.rule.replaces); + draft.player.items.push(relic.id); + applyRelicPickup(draft, relic, { entries, canAcquire: canAcquireRelic, grant: grantRelic }); + Object.assign(run, draft); return true; } - export function initializeRelicMaxHp(run) { const amount = run.player.pendingRelicMaxHp || 0; - if (!amount || !Number.isFinite(run.player.maxHp)) return; - run.player.maxHp += amount; + if (!Number.isFinite(run.player.maxHp)) return; + run.player.maxHp = Math.max(1, run.player.maxHp + amount); delete run.player.pendingRelicMaxHp; + run.player.hp = Math.min(run.player.hp, run.player.maxHp); + if (run.player.pendingRelicFullHeal) { run.player.hp = run.player.maxHp; delete run.player.pendingRelicFullHeal; } } - -export const relicRewardIds = entries.filter(entry => - entry.effect !== "handLimit").map(entry => `shared.reward.relic.${entry.id}`); - -export const relicRewards = Object.fromEntries(relicRewardIds.map(id => { - const relicId = id.slice("shared.reward.relic.".length); - const relic = getRelic(relicId); - return [id, { relic: relicId, name: `遗物·${relic.name}`, - description: relic.description }]; -})); +export const relicRewardIds = entries.filter(entry => entry.implementation !== "pending" && ["普通", "罕见", "稀有"].includes(entry.tier)).map(entry => `shared.reward.relic.${entry.id}`); +export const relicShopRewardIds = entries.filter(entry => entry.implementation !== "pending" && ["普通", "罕见", "稀有", "商店"].includes(entry.tier)).map(entry => `shared.reward.relic.${entry.id}`); +export const relicRewards = Object.fromEntries(entries.map(relic => [`shared.reward.relic.${relic.id}`, { relic: relic.id, name: `遗物·${relic.name}`, description: relic.description, image: relic.image }])); +const ancientKeys={"涅奥":"neow","欧洛巴斯":"orobas","佩尔":"pael","特兹卡塔拉":"tezcatara","诺奴佩普":"nonupep","坦克斯":"tanx","瓦库":"vakuu","达弗":"darv"}; +export const relicRewardPools={ + "shared.pool.relic.shop":[...relicShopRewardIds], + "shared.pool.relic.event":entries.filter(r=>r.implementation!=="pending" && r.tier==="事件").map(r=>`shared.reward.relic.${r.id}`), + "shared.pool.relic.initial":entries.filter(r=>r.implementation!=="pending" && r.tier==="初始").map(r=>`shared.reward.relic.${r.id}`), + ...Object.fromEntries(Object.entries(ancientKeys).map(([ancient,key])=>[`shared.pool.relic.ancient.${key}`,entries.filter(r=>r.implementation!=="pending" && r.ancient===ancient).map(r=>`shared.reward.relic.${r.id}`)])), +}; diff --git a/mengsan/relics/hooks.js b/mengsan/relics/hooks.js new file mode 100644 index 0000000..3aa5454 --- /dev/null +++ b/mengsan/relics/hooks.js @@ -0,0 +1,26 @@ +// Lightweight bridge; no engine/catalog imports, so card/pile hooks cannot form cycles. +const bindings = new WeakMap(); +export function bindRelicHooks(owner, session, controller) { + const entry = { session, controller }; + bindings.set(owner, entry); + session.ownResource(entry, () => { + if (bindings.get(owner) === entry) bindings.delete(owner); + }); +} +export const relicHooks = owner => { + const entry = bindings.get(owner); + return entry?.session.active ? entry.controller : null; +}; +export const relicBlocksDraw = owner => relicHooks(owner)?.blocksDraw() || false; +export const relicFreeCard = (owner, card) => relicHooks(owner)?.isFree(card) || false; +export const relicCardCost = (owner, card, cost) => relicHooks(owner)?.cost(card, cost) ?? cost; +export const relicBlockAmount = (owner, amount, event) => relicHooks(owner)?.blockAmount(amount, event) ?? amount; +export const relicXBonus = owner => relicHooks(owner)?.has("chemical_x") ? 2 : 0; +export const queueRelicExhaust = (owner, card) => relicHooks(owner)?.queueExhaust(card); +export const flushRelicExhaust = async owner => relicHooks(owner)?.flushExhaust(); +export const queueRelicShuffle = owner => relicHooks(owner)?.queueShuffle(); + +// Permanent deck additions are synchronous and must not depend on a live battle. +let onDeckAdd = () => {}; +export function installRelicDeckHook(callback) { onDeckAdd = callback; } +export const afterRelicDeckAdd = (run, card) => onDeckAdd(run, card); diff --git a/mengsan/relics/progression.js b/mengsan/relics/progression.js new file mode 100644 index 0000000..573b535 --- /dev/null +++ b/mengsan/relics/progression.js @@ -0,0 +1,136 @@ +import { relicCatalog } from "./catalog.js"; +import { relicRules } from "./rules.js"; +import { relicRandom, relicRandomGet } from "./random.js"; +import { installRelicDeckHook } from "./hooks.js"; +import { cardDefinitions, canAcquireCard } from "../cards/card-definitions.js"; +import { createCardData } from "../cards/card-data.js"; +import { canUpgradeCard, upgradeRandomCard } from "../cards/upgrades.js"; + +const ids = new Map(relicCatalog.flatMap(r => [[r.id,r.wikiId],[r.wikiId,r.wikiId],[`mengsan_${r.wikiId}_shuying`,r.wikiId]])); +export const hasRelic = (run, id) => (run?.player?.items || []).some(value => ids.get(value) === id); +export const relicState = run => run.player.relicState ||= {}; +export const cardType = card => cardDefinitions[card?.name]?.cardType; +export const starterKind = card => card?.name === "sha" ? "strike" : card?.name === "mengsan_fangyu" ? "defend" : null; +export function relicCardRequirements(rule) { + return [...(rule.addCards || []), ...(rule.openingCards || []), ...(rule.openingDrawCards || []), ...(rule.oneBattleDrawCards || []), ...(rule.shuffleCard ? [rule.shuffleCard] : []), ...(rule.choice === "bite" ? ["mengsan_event_maul"] : [])].filter(name => !Object.hasOwn(cardDefinitions,name)); +} +export function healRun(run, amount) { + const before = run.player.hp; + if (!Number.isFinite(before) || !(before > 0)) return 0; + run.player.hp = Math.min(run.player.maxHp ?? before, before + Math.max(0,amount)); + return run.player.hp - before; +} +export function changeMaxHp(run, amount) { + if (!Number.isFinite(run.player.maxHp)) { run.player.pendingRelicMaxHp = (run.player.pendingRelicMaxHp || 0) + amount; return; } + run.player.maxHp = Math.max(1,run.player.maxHp + amount); + run.player.hp = Math.min(run.player.hp,run.player.maxHp); +} +export function grantGold(run, amount) { + if (!Number.isSafeInteger(amount) || amount < 0) throw new Error("梦三金币增量无效"); + if (!amount || hasRelic(run,"ectoplasm")) return 0; + const actual = Math.floor(amount * (hasRelic(run,"bowler_hat") ? 1.25 : 1)); + if (!Number.isSafeInteger((run.player.gold || 0) + actual)) throw new Error("梦三金币超出范围"); + run.player.gold = (run.player.gold || 0) + actual; + run.statistics ||= {}; run.statistics.goldEarned = (run.statistics.goldEarned || 0) + actual; + if (hasRelic(run,"dragon_fruit")) changeMaxHp(run,1); + return actual; +} +export function newRelicCard(run, name, spec = {}) { + const state = relicState(run), suits = ["spade","heart","club","diamond"]; + let id; + do { id = `${run.runId || "run"}_relic_card_${state.cardSerial = (state.cardSerial || 0) + 1}`; } + while (run.player.deck.some(card => card.id === id)); + return createCardData({name,suit:spec.suit ?? relicRandomGet(run,suits),number:spec.number ?? 1+Math.floor(relicRandom(run)*13),upgrade:0,affixes:[],...spec,id}, {character:run.player.character,enemy:true}); +} +export function relicCardPool(run, {rarity,pack,type} = {}) { + return Object.values(cardDefinitions).filter(card => canAcquireCard(run.player.character,card.name) && + (!pack ? card.owner === run.player.character : card.deck === pack) && + (!rarity || card.rarity === rarity) && (!type || card.cardType === type)).map(card => card.name); +} +export function upgradeCards(run, count, type) { + const result = []; + for (let i=0;i!type || cardType(card)===type),()=>relicRandom(run)); if (!card) break; result.push(card); } + return result; +} +export function afterDeckAdd(run,card,{duplicate=true}={}) { + for (const id of new Set((run.player.items || []).map(id=>ids.get(id)))) { + const rule = relicRules[id] || {}; + if (rule.upgradeAddedType === cardType(card) && canUpgradeCard(card)) card.upgrade++; + if (rule.deckAddHealEvery) { const state=relicState(run); state.deckAdds=(state.deckAdds || 0)+1; if (state.deckAdds%rule.deckAddHealEvery===0) healRun(run,rule.deckAddHeal); } + if (rule.deckAddGold) grantGold(run,rule.deckAddGold); + if (rule.addedCurseMaxHp && cardType(card)==="curse") changeMaxHp(run,rule.addedCurseMaxHp); + if (rule.duplicateAdded && duplicate) { + const copy=newRelicCard(run,card.name,{...card,affixes:[...card.affixes]}); + run.player.deck.push(copy); afterDeckAdd(run,copy,{duplicate:false}); + } + } +} +installRelicDeckHook(afterDeckAdd); +export function addPermanentRelicCard(run,name,spec) { + const card=newRelicCard(run,name,spec); run.player.deck.push(card); afterDeckAdd(run,card); return card; +} +const queue = (run,relic,spec) => (relicState(run).choices ||= []).push({relic:relic.name,...spec}); +const transform = (run,card,upgrade=false) => { + const name=relicRandomGet(run,relicCardPool(run)); if (!name) return false; + const next=newRelicCard(run,name); next.id=card.id; if (upgrade && canUpgradeCard(next)) next.upgrade++; + Object.keys(card).forEach(key=>delete card[key]); Object.assign(card,next); return true; +}; +export function applyRelicPickup(run,relic,{entries,canAcquire,grant}) { + const r=relic.rule; + const state=relicState(run); + (state.counterStarts ||= {})[relic.wikiId]={attack:state.attackCount || 0,skill:state.skillCount || 0,card:state.totalCardCount || 0,exhaust:state.exhaustCount || 0}; + if (r.handLimit) run.player.handLimitBonus=(run.player.handLimitBonus || 0)+r.handLimit; + if (r.maxHp) changeMaxHp(run,r.maxHp); + if (r.fullHeal) { if (Number.isFinite(run.player.maxHp)) run.player.hp=run.player.maxHp; else run.player.pendingRelicFullHeal=true; } + if (r.gainHealFraction) healRun(run,Math.floor(run.player.maxHp*r.gainHealFraction)); + if (r.gainGold) grantGold(run,r.gainGold); + if (r.gainUpgrade) upgradeCards(run,r.gainUpgrade,r.upgradeType); + for (const name of r.addCards || []) addPermanentRelicCard(run,name); + for (let i=0;i<(r.randomCurse || 0);i++) { const name=relicRandomGet(run,relicCardPool(run,{pack:"curse"})); if (name) addPermanentRelicCard(run,name); } + if (r.upgradeStarters) for (const kind of ["strike","defend"]) { const card=run.player.deck.find(card=>starterKind(card)===kind && canUpgradeCard(card)); if (card) card.upgrade++; } + if (r.transformAllStarters) for (const card of run.player.deck) if (starterKind(card) && !card.affixes.includes("eternal")) transform(run,card); + if (r.transformStarters) for (const kind of ["strike","defend"]) { const card=run.player.deck.find(card=>starterKind(card)===kind && !card.affixes.includes("eternal")); if (card) transform(run,card); } + if (r.addStarters) { addPermanentRelicCard(run,"sha"); addPermanentRelicCard(run,"mengsan_fangyu"); } + if (r.gainRandomRarity) { const name=relicRandomGet(run,relicCardPool(run,{rarity:r.gainRandomRarity})); if (name) addPermanentRelicCard(run,name); } + if (r.gainAncientCard) { const name=relicRandomGet(run,relicCardPool(run,{rarity:"ancient",pack:"event"})); if (name) addPermanentRelicCard(run,name); } + if (r.choice) queue(run,relic,{kind:r.choice,count:r.choiceCount || 1,optional:!!r.optionalChoices}); + for (const rarity of r.cardChoiceRarities || Array(r.cardChoices || 0).fill(r.cardChoiceRarity)) queue(run,relic,{kind:"cardReward",count:1,rarity,pack:r.cardChoicePack,offerCount:r.choiceOfferCount || 3}); + if (r.gainLoseHp) queue(run,relic,{kind:"loseHp",amount:r.gainLoseHp}); + for (let i=0;i<(r.randomRelics || 0);i++) { + const candidates=entries.filter(item=>item.id!==relic.id && canAcquire(run,item.id) && (r.randomRelicAncient ? item.ancient===r.randomRelicAncient : ["普通","罕见","稀有"].includes(item.tier))); + const target=relicRandomGet(run,candidates); if (target) grant(run,target.id); + } + if (r.candleBattles) relicState(run).candleRemaining=r.candleBattles; + if (r.limitedBattles) relicState(run).emberRemaining=r.limitedBattles; +} +export async function resolveRelicChoices(run,choose,{cardName=name=>name}={}) { + while (relicState(run).choices?.length) { + const task=relicState(run).choices[0]; + if (task.kind==="loseHp") { run.player.hp=Math.max(1,(run.player.hp || 1)-task.amount); relicState(run).choices.shift(); continue; } + for (let i=0;i({id:name,name:cardName(name),description:"加入永久牌组"})); + } else choices=run.player.deck.filter(card=>!(task.selected || []).includes(card.id) && + (task.kind==="upgrade" ? canUpgradeCard(card) : task.kind==="duplicate" || !card.affixes.includes("eternal"))) + .map(card=>({id:card.id,name:`${cardName(card.name)}${card.upgrade ? "+" : ""}`,description:`${card.suit} ${card.number}`})); + if (!choices.length) break; + if (task.optional || task.kind==="cardReward") choices.push({id:"skip",name:"跳过"}); + const selected=await choose(`遗物·${task.relic}(${i+1}/${task.count})`,choices,task.kind==="cardReward" ? "选择一张卡牌" : ({remove:"选择移除的卡牌",duplicate:"选择复制的卡牌",upgrade:"选择强化的卡牌",transform:"选择变化的卡牌",transformUpgrade:"选择变化并强化的卡牌",store:"选择暂存的卡牌"}[task.kind] || task.kind)); + if (selected==="skip") break; + if (!choices.some(choice=>choice.id===selected)) throw new Error("遗物卡牌选择无效"); + if (task.kind==="cardReward") { addPermanentRelicCard(run,selected); continue; } + const index=run.player.deck.findIndex(card=>card.id===selected),card=run.player.deck[index]; + (task.selected ||= []).push(card.id); + if (task.kind==="upgrade") card.upgrade++; + else if (task.kind==="duplicate") addPermanentRelicCard(run,card.name,{...card,affixes:[...card.affixes]}); + else if (task.kind==="remove") run.player.deck.splice(index,1); + else if (task.kind==="transform" || task.kind==="transformUpgrade") transform(run,card,task.kind==="transformUpgrade"); + else if (task.kind==="bite") { const next=newRelicCard(run,"mengsan_event_maul");next.id=card.id;Object.keys(card).forEach(key=>delete card[key]);Object.assign(card,next); } + else if (task.kind==="store") (relicState(run).storedCards ||= []).push(...run.player.deck.splice(index,1)); + } + relicState(run).choices.shift(); + } +} diff --git a/mengsan/relics/random.js b/mengsan/relics/random.js new file mode 100644 index 0000000..dd53d92 --- /dev/null +++ b/mengsan/relics/random.js @@ -0,0 +1,10 @@ +// Same saved Mulberry32 stream as progression/state.js; avoids the config import cycle. +export function relicRandom(run) { + let value = Number(run.randomState || run.seed || Date.now()) >>> 0; + value += 0x6d2b79f5; + run.randomState = value >>> 0; + let result = Math.imul(value ^ value >>> 15, value | 1); + result ^= result + Math.imul(result ^ result >>> 7, result | 61); + return ((result ^ result >>> 14) >>> 0) / 4294967296; +} +export const relicRandomGet = (run, list) => list.length ? list[Math.floor(relicRandom(run) * list.length)] : null; diff --git a/mengsan/relics/rooms.js b/mengsan/relics/rooms.js index 0b58978..7ee7939 100644 --- a/mengsan/relics/rooms.js +++ b/mengsan/relics/rooms.js @@ -1,22 +1,56 @@ -import { heldRelics } from "./definitions.js"; +import { heldRelics, relicDefinitions, canAcquireRelic, grantRelic } from "./definitions.js"; +import { relicState, healRun, changeMaxHp, grantGold, upgradeCards } from "./progression.js"; +import { relicRandomGet } from "./random.js"; -export const restRecovery = run => 8 + heldRelics(run) - .filter(relic => relic.effect === "restHeal") - .reduce((sum, relic) => sum + relic.amount, 0); - -export function applyRoomRelics(run, node, action) { - const resting = node.type === "rest" && action === "heal"; - if (node.type !== "shop" && !resting) return null; - const receipt = `${node.type}:${node.id}`; - const receipts = run.player.relicRoomReceipts || []; - if (receipts.includes(receipt)) return null; - const effect = resting ? "restHeal" : "shopHeal"; - const relics = heldRelics(run).filter(relic => relic.effect === effect); - const amount = (resting ? 8 : 0) + relics.reduce((sum, relic) => - sum + relic.amount, 0); - if (!amount) return null; - const before = run.player.hp; - run.player.hp = Math.min(run.player.maxHp, before + amount); - run.player.relicRoomReceipts = [...receipts, receipt]; - return { recovered: run.player.hp - before, relics }; +export const restRecovery = run => 8+heldRelics(run).reduce((n,r)=>n+(r.rule.restHeal || 0),0); +export const relicShopPrice = (run,base) => Math.max(1,Math.floor(heldRelics(run).reduce((n,r)=>n*(r.rule.shopDiscount || 1),base))); +export function recordRelicShopPurchase(run){relicState(run).mawBankBroken=true;} +export function relicRestChoices(run) { + const state=relicState(run),choices=[]; + for(const relic of heldRelics(run)){ + const action=relic.rule.restAction; + if(action==="dig")choices.push({id:"dig",name:"挖掘",description:"获得一件可实现的随机普通、罕见或稀有遗物"}); + if(action==="lift")choices.push({id:"lift",name:"举重",description:`以后每场战斗获得额外力量(${state.giryaLevels || 0}/3)`,disabled:(state.giryaLevels || 0)>=3}); + if(action==="rekindle")choices.push({id:"rekindle",name:"添火",description:"让南瓜蜡烛再次燃烧5场战斗",disabled:(state.candleRemaining || 0)>=5}); + if(action==="cook")choices.push({id:"cook",name:"烹饪",description:"最大生命+5;梦三适配值"}); + } + return choices; +} +export function applyRoomRelics(run,node,action) { + const receipt=`${run.actIndex}:${node.type}:${node.id}:${action}`,state=relicState(run); + const receipts=run.player.relicRoomReceipts ||= []; + if(receipts.includes(receipt))return null; + const relics=heldRelics(run),before=run.player.hp; + if(action==="enter"){ + if(node.type==="shop")for(const relic of relics)healRun(run,relic.rule.shopHeal || 0); + if(node.type==="rest"){ + state.afterRest=true; + for(const relic of relics)healRun(run,Math.floor(run.player.deck.length/5)*(relic.rule.restEntryHealPerFive || 0)); + } + if(node.type==="event")for(const relic of relics)healRun(run,relic.rule.eventHeal || 0); + } else if(node.type==="rest"){ + if(action==="heal"){ + healRun(run,restRecovery(run)); + for(const relic of relics){const r=relic.rule;if(r.restMaxHp)changeMaxHp(run,r.restMaxHp);if(r.restCardChoice)(state.choices ||= []).push({relic:relic.name,kind:"cardReward",count:1,offerCount:3});} + } else if(action==="upgrade")upgradeCards(run,1); + else if(action==="lift" && relics.some(r=>r.rule.restAction==="lift") && (state.giryaLevels || 0)<3)state.giryaLevels=(state.giryaLevels || 0)+1; + else if(action==="rekindle" && relics.some(r=>r.rule.restAction==="rekindle"))state.candleRemaining=5; + else if(action==="cook" && relics.some(r=>r.rule.restAction==="cook"))changeMaxHp(run,5); + else if(action==="dig" && relics.some(r=>r.rule.restAction==="dig")){ + const candidates=Object.values(relicDefinitions).filter(r=>["普通","罕见","稀有"].includes(r.tier) && canAcquireRelic(run,r.id)); + const relic=relicRandomGet(run,candidates);if(relic)grantRelic(run,relic.id); + } else return null; + } else return null; + run.player.relicRoomReceipts.push(receipt); return {recovered:run.player.hp-before,relics}; +} +// Arrival precedes purchases and combat; retries on the same in-memory node +// cannot pay again. Battle rollback retains the existing checkpoint semantics. +export function applyRelicNodeEnter(run,node) { + if(!node || node.completed)return; + const state=relicState(run); + const key=`${run.actIndex}:${node.id}`; + const receipts=state.nodeReceipts ||= []; + if(receipts.includes(key))return; + receipts.push(key); + for(const relic of heldRelics(run))if(relic.rule.nodeGold && !state.mawBankBroken)grantGold(run,relic.rule.nodeGold); } diff --git a/mengsan/relics/rules.js b/mengsan/relics/rules.js new file mode 100644 index 0000000..2ee07f0 --- /dev/null +++ b/mengsan/relics/rules.js @@ -0,0 +1,255 @@ +// Every implemented property is consumed by progression.js, battle.js or rooms.js. +// Missing mechanisms remain catalogued with an explicit reason; never fake their reward. +const rules = Object.create(null); +const set = (ids, rule) => ids.split(" ").forEach(id => { rules[id] = { ...rule }; }); +set("burning_blood", { battleHeal: 6 }); +set("black_blood", { battleHeal: 12, replaces: "burning_blood" }); +set("ring_of_the_snake bag_of_preparation", { openingDraw: 2 }); +set("ring_of_the_drake", { earlyTurnDraw: 2, earlyTurns: 3, replaces: "ring_of_the_snake" }); +set("centennial_puzzle", { firstHpLossDraw: 3 }); +set("pendulum", { turnDraw: 1, turnEvery: 3 }); +set("pollinous_core", { turnDraw: 2, turnEvery: 4 }); +set("meal_ticket", { shopHeal: 15 }); +set("strawberry lees_waffle", { maxHp: 7 }); +rules.lees_waffle.fullHeal = true; +set("pear", { maxHp: 10 }); set("mango", { maxHp: 14 }); +set("fake_mango", { maxHp: 3 }); set("nutritious_oyster", { maxHp: 11 }); +set("looming_fruit", { maxHp: 31 }); +set("strike_dummy", { strikeDamage: 3 }); set("fake_strike_dummy", { strikeDamage: 1 }); +set("bag_of_marbles", { openingVulnerable: 1 }); +set("red_mask", { openingWeak: 1 }); +set("lantern", { firstTurnEnergy: 1 }); +set("venerable_tea_set", { afterRestEnergy: 2 }); +set("fake_venerable_tea_set", { afterRestEnergy: 1 }); +set("gorget", { plating: 4 }); +set("regal_pillow", { restHeal: 15 }); +set("festive_popper", { openingDamage: 9 }); +set("vajra", { openingStrength: 1 }); set("sword_of_jade", { openingStrength: 3 }); +set("anchor", { openingBlock: 10 }); set("fake_anchor", { openingBlock: 4 }); +set("whetstone", { gainUpgrade: 2, upgradeType: "attack" }); +set("war_paint", { gainUpgrade: 2, upgradeType: "skill" }); +set("sand_castle", { gainUpgrade: 6 }); set("yummy_cookie", { gainUpgrade: 4 }); +set("bronze_scales", { thorns: 3 }); +set("book_of_five_rings", { deckAddHealEvery: 5, deckAddHeal: 20 }); +set("blood_vial", { openingHeal: 2 }); set("fake_blood_vial", { openingHeal: 1 }); +set("oddly_smooth_stone", { openingDexterity: 1 }); +set("amethyst_aubergine", { battleGold: 15 }); +set("red_skull", { lowHpStrength: 3 }); +set("orichalcum", { emptyBlock: 6 }); set("fake_orichalcum", { emptyBlock: 3 }); +set("vambrace", { firstCardBlockDouble: true }); +set("ripple_basin", { noAttackBlock: 4 }); +set("akabeko", { vigor: 8 }); +set("horn_cleat", { nthTurn: 2, nthTurnBlock: 14 }); +set("gremlin_horn", { killDraw: 1, killEnergy: 1 }); +set("pen_nib", { nthAttackDouble: 10 }); +set("planisphere", { eventHeal: 5 }); +set("joss_paper", { exhaustDrawEvery: 5 }); +set("ornamental_fan", { tripleAttackBlock: 4 }); +set("letter_opener", { tripleSkillDamage: 5 }); +set("sparkling_rouge", { nthTurn: 3, nthTurnStrength: 1, nthTurnDexterity: 1 }); +set("nunchaku", { attackEnergyEvery: 10 }); +set("mercury_hourglass", { turnDamage: 3 }); +set("stone_cracker", { openingUpgradeDraw: 2 }); +set("pantograph", { bossOpeningHeal: 25 }); +set("kusarigama", { tripleAttackDamage: 6 }); +set("miniature_cannon", { upgradedAttackDamage: 3 }); +set("tuning_fork", { skillBlockEvery: 10, skillBlock: 7 }); +set("permafrost", { firstPowerBlock: 7 }); +set("eternal_feather", { restEntryHealPerFive: 3 }); +set("bowler_hat", { goldMultiplier: 1.25 }); +set("lucky_fysh", { deckAddGold: 15 }); +set("parrying_shield", { endBlockThreshold: 10, endBlockDamage: 6 }); +set("candelabra", { nthTurn: 2, nthTurnEnergy: 2 }); +set("paper_phrog", { vulnerableMultiplier: 1.75 }); +set("self_forming_clay", { hpLossNextBlock: 3 }); +set("tingsha", { discardDamage: 3 }); set("tough_bandages", { discardBlock: 3 }); +set("ice_cream", { keepEnergy: true }); +set("unceasing_top", { emptyHandDraw: true }); +set("rainbow_ring", { rainbow: true }); +set("shovel", { restAction: "dig" }); +set("meat_on_the_bone", { lowHpBattleHeal: 12 }); +set("chandelier", { nthTurn: 3, nthTurnEnergy: 3 }); +set("frozen_egg", { upgradeAddedType: "power" }); +set("toxic_egg", { upgradeAddedType: "skill" }); +set("molten_egg", { upgradeAddedType: "attack" }); +set("cloak_clasp", { endHandBlock: 1 }); +set("gambling_chip", { openingDiscardDraw: true }); +set("captains_wheel", { nthTurn: 3, nthTurnBlock: 18 }); +set("vexing_puzzlebox", { openingRandom: 1, openingRandomFree: true }); +set("bellows", { openingUpgradeHand: true }); +set("mummified_hand", { powerFreeRandom: true }); +set("old_coin", { gainGold: 300 }); set("golden_pearl", { gainGold: 150 }); +set("signet_ring", { gainGold: 999 }); +set("intimidating_helmet", { costlyBlock: 4, costlyThreshold: 2 }); +set("girya", { restAction: "lift" }); +set("pocketwatch", { fewCardsDraw: 3, fewCardsLimit: 3 }); +set("sturdy_clamp", { keepBlock: 10 }); +set("kunai", { tripleAttackDexterity: 1 }); +set("stone_calendar", { endTurn: 7, endTurnDamage: 52 }); +set("beating_remnant", { turnHpLossCap: 20 }); +set("game_piece", { powerDraw: 1 }); +set("shuriken", { tripleAttackStrength: 1 }); +set("the_courier", { shopDiscount: 0.8 }); +set("membership_card", { shopDiscount: 0.5 }); +set("art_of_war", { noAttackNextEnergy: 1 }); +set("razor_tooth", { upgradePlayed: true }); +set("tungsten_rod", { reduceHpLoss: 1 }); +set("lizard_tail", { deathHealFraction: 0.5 }); +set("charons_ashes", { exhaustDamage: 3 }); +set("demon_tongue", { firstTurnLossHeal: true }); +set("ruined_helmet", { firstStrengthDouble: true }); +set("paper_krane", { weakMultiplier: 0.6 }); +set("orange_dough", { openingRandom: 2, openingRandomPack: "colorless" }); +set("big_hat", { openingRandom: 2, openingRandomEthereal: true }); +set("ivory_tile", { costlyEnergy: 1, costlyThreshold: 3 }); +set("power_cell", { openingFetchZero: 2 }); +set("dingy_rug", { allowColorlessRewards: true }); +set("dollys_mirror", { choice: "duplicate", choiceCount: 1 }); +set("toolbox", { openingChooseColorless: 3 }); +set("chemical_x", { xBonus: 2 }); +set("dragon_fruit", { goldGainMaxHp: 1 }); +set("screaming_flagon", { emptyHandDamage: 20 }); +set("bread", { firstTurnEnergy: -2, laterTurnEnergy: 1 }); +set("burning_sticks", { firstSkillExhaustCopy: true }); +set("ringing_triangle", { firstTurnRetain: true }); +set("the_abacus", { shuffleBlock: 6 }); +set("miniature_tent", { allRestOptions: true }); +set("orrery", { cardChoices: 5 }); +set("sling_of_courage", { eliteOpeningStrength: 2 }); +set("ghost_seed", { starterVoid: true }); +set("brimstone", { turnStrength: 2, enemyTurnStrength: 1 }); +set("arcane_scroll", { gainRandomRarity: "rare" }); +set("hefty_tablet", { cardChoices: 1, cardChoiceRarity: "rare", addCards: ["mengsan_wound_shuying"] }); +set("pomander", { choice: "upgrade", choiceCount: 1 }); +set("fishing_rod", { normalBattleUpgradeEvery: 3 }); +set("booming_conch", { eliteOpeningDraw: 2, eliteFirstTurnEnergy: 1 }); +set("precise_scissors", { choice: "remove", choiceCount: 1 }); +set("precarious_shears", { choice: "remove", choiceCount: 2, gainLoseHp: 16 }); +set("lead_paperweight", { cardChoices: 1, cardChoicePack: "colorless", choiceOfferCount: 2 }); +set("lava_rock", { actOneBossRelics: 2 }); +set("stone_humidifier", { restMaxHp: 5 }); +set("new_leaf", { choice: "transform", choiceCount: 1 }); +set("small_capsule", { randomRelics: 1 }); +set("large_capsule", { randomRelics: 2, addStarters: true }); +set("neows_talisman", { upgradeStarters: true }); +set("neows_torment", { addCards: ["mengsan_event_neows_fury"] }); +set("neows_bones", { randomRelics: 2, randomRelicAncient: "涅奥", randomCurse: 1 }); +set("leafy_poultice", { transformStarters: true, maxHp: -12 }); +set("cursed_pearl", { addCards: ["mengsan_curse_greed"], gainGold: 333 }); +set("glass_eye", { cardChoiceRarities: ["common", "common", "uncommon", "uncommon", "rare"] }); +set("radiant_pearl", { openingCards: ["mengsan_event_glow"] }); +set("sand_castle", { gainUpgrade: 6 }); +set("paels_legion", { cardBlockDoubleCooldown: 2 }); +set("paels_horn", { addCards: ["mengsan_event_relax", "mengsan_event_relax"] }); +set("paels_tears", { unspentNextEnergy: 2 }); +set("paels_flesh", { fromTurn: 3, turnEnergy: 1 }); +set("paels_blood", { turnDraw: 1 }); +set("paels_tooth", { choice: "store", choiceCount: 5, returnStored: true }); +set("paels_eye", { noCardsExtraTurn: true }); +set("biiig_hug", { choice: "remove", choiceCount: 4, shuffleCard: "mengsan_status_soot" }); +set("storybook", { addCards: ["mengsan_event_brightest_flame"] }); +set("toasty_mittens", { exhaustTopStrength: 1 }); +set("seal_of_gold", { paidTurnEnergy: 1, paidTurnGold: 5 }); +set("pumpkin_candle", { candleEnergy: 1, candleBattles: 5, restAction: "rekindle" }); +set("very_hot_cocoa", { firstTurnEnergy: 4 }); +set("blessed_antler", { turnEnergy: 1, openingDrawCards: ["mengsan_dazed_shuying", "mengsan_dazed_shuying", "mengsan_dazed_shuying"] }); +set("fur_coat", { markBattles: 7 }); +set("brilliant_scarf", { fifthCardFree: true }); +set("jewelry_box", { addCards: ["mengsan_event_apotheosis"] }); +set("diamond_diadem", { fewCardsHalfDamage: 2 }); +set("sai", { turnBlock: 7 }); +set("spiked_gauntlets", { turnEnergy: 1, powerTax: 1 }); +set("claws", { choice: "bite", choiceCount: 6, optionalChoices: true }); +set("meat_cleaver", { restAction: "cook" }); +set("crossbow", { turnRandomAttack: true }); +set("tanxs_whistle", { addCards: ["mengsan_event_whistle"] }); +set("iron_club", { cardDrawEvery: 4 }); +set("throwing_axe", { firstCardEcho: true }); +set("war_hammer", { eliteUpgrade: 4 }); +set("jeweled_mask", { openingFetchPower: true }); +set("fiddle", { turnDraw: 2, noMidturnDraw: true }); +set("choices_paradox", { openingChooseRandom: 5, chosenRetain: true }); +set("blood_soaked_rose", { turnEnergy: 1, addCards: ["mengsan_curse_enthralled"] }); +set("preserved_fog", { choice: "remove", choiceCount: 3, addCards: ["mengsan_curse_folly"] }); +set("music_box", { firstAttackVoidCopy: true }); +set("sere_talon", { randomCurse: 2, addCards: ["mengsan_event_wish", "mengsan_event_wish", "mengsan_event_wish"] }); +set("distinguished_cape", { maxHp: -9, addCards: ["mengsan_event_apparition", "mengsan_event_apparition", "mengsan_event_apparition"] }); +set("dusty_tome", { gainAncientCard: true }); +set("runic_pyramid", { retainHand: true }); +set("black_star", { eliteRelics: 1 }); +set("empty_cage", { choice: "remove", choiceCount: 2 }); +set("ectoplasm", { blockGold: true, turnEnergy: 1 }); +set("pandoras_box", { transformAllStarters: true }); +set("velvet_choker", { turnEnergy: 1, turnCardLimit: 6 }); +set("philosophers_stone", { turnEnergy: 1, openingEnemyStrength: 1 }); +set("astrolabe", { choice: "transformUpgrade", choiceCount: 3 }); +set("snecko_eye", { turnDraw: 2, confusion: true }); +set("fake_snecko_eye", { confusion: true }); +set("calling_bell", { randomRelics: 3, addCards: ["mengsan_curse_curse_of_the_bell"] }); +set("mr_struggles", { turnNumberDamage: true }); +set("bing_bong", { duplicateAdded: true }); +set("dream_catcher", { restCardChoice: true }); +set("big_mushroom", { maxHp: 20, openingDraw: -2 }); +set("the_boot", { minimumAttackDamage: 5 }); +set("fragrant_mushroom", { gainLoseHp: 15, gainUpgrade: 2 }); +set("daughter_of_the_wind", { attackBlock: 1 }); +set("bone_tea", { oneBattleUpgradeHand: true }); +set("darkstone_periapt", { addedCurseMaxHp: 6 }); +set("maw_bank", { nodeGold: 12, breaksOnPurchase: true }); +set("fake_lees_waffle", { gainHealFraction: 0.1 }); +set("history_course", { replayLastAttackSkill: true }); +set("lost_wisp", { powerDamage: 8 }); +set("fake_merchants_rug wongo_customer_appreciation_badge circlet", { noEffect: true }); +set("sword_of_stone", { eliteTransformAfter: 5, transformRelic: "sword_of_jade" }); +set("hand_drill", { breakBlockVulnerable: 2 }); +set("chosen_cheese", { battleMaxHp: 1 }); +set("royal_poison", { openingLoseHp: 4 }); +set("wongos_mystery_ticket", { afterBattles: 5, randomRelicsAfter: 3 }); +set("tea_of_discourtesy", { oneBattleDrawCards: ["mengsan_dazed_shuying", "mengsan_dazed_shuying"] }); +set("forgotten_soul", { exhaustRandomDamage: 1 }); +set("ember_tea", { limitedOpeningStrength: 2, limitedBattles: 5 }); +set("dowsing_rod", { addCards: ["mengsan_event_seek"] }); + +// These require unavailable gameplay or source-specific enchantments, not just fields. +export const missingMechanisms = Object.freeze({ + divine_right: "辉星系统", divine_destiny: "辉星系统", + bound_phylactery: "奥斯提召唤系统", phylactery_unbound: "奥斯提召唤系统", + cracked_core: "充能球系统", infused_core: "充能球系统", + potion_belt: "可使用的药水及栏位系统", snecko_skull: "玩家中毒牌与中毒系统", + fencing_manual: "铸造系统", bone_flute: "奥斯提攻击系统", data_disk: "集中与充能球系统", + twisted_funnel: "中毒系统", reptile_trinket: "可使用的药水系统", petrified_toad: "药水形状的石头", + tiny_mailbox: "可使用的药水系统", white_beast_statue: "药水掉落系统", + galactic_dust: "辉星消费系统", regalite: "所有来源的生成牌事件(当前只有部分接口)", + book_repair_knife: "灾厄与爪牙系统", funerary_mask: "灵魂牌与奥斯提系统", + gold_plated_cables: "充能球系统", symbiotic_virus: "充能球系统", + helical_dart: "小刀牌与静默猎手牌组", lunar_pastry: "辉星系统", mini_regent: "辉星系统", + bookmark: "跨回合保留牌的独立费用下降", emotion_chip: "充能球系统", metronome: "充能球系统", + cauldron: "可使用的药水系统", kifuda: "伶俐附魔", gnarled_hammer: "锋利附魔", punch_dagger: "动量附魔", + mystic_lighter: "STS2 附魔系统(现有词缀不是网页附魔)", royal_stamp: "王室认证附魔", + wing_charm: "迅捷附魔", belt_buckle: "可使用的药水系统", ninja_scroll: "小刀牌与静默猎手牌组", + vitruvian_minion: "仆从牌与储君牌组", undying_sigil: "灾厄系统", runic_capacitor: "充能球系统", + silken_tress: "华彩附魔", massive_scroll: "多人游戏牌池", scroll_boxes: "网页指定卡牌包", + lost_coffer: "药水奖励系统", kaleidoscope: "其他四角色牌组", phial_holster: "药水系统", + winged_boots: "路线越界选择和次数确认", electric_shrymp: "注能附魔", driftwood: "独立奖励重掷流程", + archaic_tooth: "先古版本初始牌对应表", sea_glass: "其他四角色牌组", prismatic_gem: "其他四角色牌组", + alchemical_coffer: "可使用的药水系统", touch_of_orobas: "初始遗物配置与替换选择", + paels_growth: "克隆附魔", paels_wing: "奖励献祭流程", paels_claw: "黏糊附魔", + golden_compass: "第二章特殊直道地图数据", toy_box: "蜡制遗物名单与融化规则", nutritious_soup: "特兹卡塔拉的余烬附魔", + beautiful_bracelet: "迅捷附魔", delicate_frond: "药水系统", glitter: "华彩附魔", + tri_boomerang: "本能附魔(不可替换成现有固有词缀)", whispering_earring: "瓦库接管第一回合的行动规则", + sozu: "可使用的药水系统", fresnel_lens: "灵巧附魔", byrdpip: "幼年异鸟陪伴单位与行为", + neows_sacrifice: "可使用的龙涎香药水", + juzu_bracelet: "当前问号事件没有随机常规战斗入口,暂无作用", + lasting_candy: "独立的额外能力牌奖励组", white_star: "独立的额外稀有卡奖励组", + prayer_wheel: "独立的额外卡牌奖励组", lava_lamp: "奖励候选逐张升级与无伤结算记录", + unsettling_lamp: "所有负面状态牌效果的单次翻倍接口", silver_crucible: "前三次卡牌奖励升级和空宝箱流程", +}); +export const relicRules = Object.freeze(Object.fromEntries(Object.entries(rules).map(([id, rule]) => [id, Object.freeze(rule)]))); + +// Acquisition is enabled only when EVERY property has a real consumer. Adding a +// catalog entry or rule alone must never silently publish an unfinished reward. +export const supportedRuleKeys = new Set(`battleHeal replaces openingDraw earlyTurnDraw earlyTurns firstHpLossDraw turnDraw turnEvery shopHeal maxHp fullHeal strikeDamage openingVulnerable openingWeak firstTurnEnergy afterRestEnergy plating restHeal openingDamage openingStrength openingBlock gainUpgrade upgradeType thorns deckAddHealEvery deckAddHeal openingHeal openingDexterity battleGold lowHpStrength emptyBlock noAttackBlock vigor nthTurn nthTurnBlock killDraw killEnergy nthAttackDouble eventHeal exhaustDrawEvery tripleAttackBlock tripleSkillDamage nthTurnStrength nthTurnDexterity attackEnergyEvery turnDamage bossOpeningHeal tripleAttackDamage upgradedAttackDamage skillBlockEvery skillBlock firstPowerBlock restEntryHealPerFive goldMultiplier deckAddGold endBlockThreshold endBlockDamage nthTurnEnergy vulnerableMultiplier hpLossNextBlock keepEnergy lowHpBattleHeal upgradeAddedType endHandBlock gainGold restAction fewCardsDraw fewCardsLimit keepBlock tripleAttackDexterity endTurn endTurnDamage turnHpLossCap powerDraw tripleAttackStrength shopDiscount noAttackNextEnergy reduceHpLoss deathHealFraction weakMultiplier choice choiceCount optionalChoices xBonus goldGainMaxHp allRestOptions cardChoices eliteOpeningStrength gainRandomRarity cardChoiceRarity addCards normalBattleUpgradeEvery eliteOpeningDraw eliteFirstTurnEnergy gainLoseHp cardChoicePack choiceOfferCount restMaxHp randomRelics addStarters upgradeStarters randomRelicAncient randomCurse transformStarters cardChoiceRarities unspentNextEnergy fromTurn turnEnergy returnStored paidTurnEnergy paidTurnGold candleEnergy candleBattles fifthCardFree turnBlock powerTax cardDrawEvery eliteUpgrade blockGold transformAllStarters turnCardLimit openingEnemyStrength turnNumberDamage duplicateAdded restCardChoice minimumAttackDamage attackBlock addedCurseMaxHp nodeGold breaksOnPurchase gainHealFraction powerDamage noEffect battleMaxHp openingLoseHp limitedOpeningStrength limitedBattles`.split(" ")); +for(const key of "retainHand firstTurnRetain eliteRelics eliteTransformAfter transformRelic afterBattles randomRelicsAfter actOneBossRelics".split(" "))supportedRuleKeys.add(key); +for(const key of "openingDrawCards oneBattleDrawCards openingRandom openingRandomFree openingRandomPack openingRandomEthereal openingUpgradeDraw openingUpgradeHand powerFreeRandom firstCardBlockDouble gainAncientCard".split(" "))supportedRuleKeys.add(key); +supportedRuleKeys.add("shuffleBlock");supportedRuleKeys.add("exhaustDamage"); +export const unhandledRelicRule = rule => Object.keys(rule).filter(key=>!supportedRuleKeys.has(key)); diff --git a/mengsan/tools/check-sts2-relics.mjs b/mengsan/tools/check-sts2-relics.mjs new file mode 100644 index 0000000..a53d885 --- /dev/null +++ b/mengsan/tools/check-sts2-relics.mjs @@ -0,0 +1,180 @@ +// Isolated behavior checks. This is NOT a live-game acceptance test. +import assert from "node:assert/strict"; +import { readFile } from "node:fs/promises"; +import { createHash } from "node:crypto"; +import { relicCatalog } from "../relics/catalog.js"; +import { relicDefinitions, getRelic, heldRelics, canAcquireRelic, grantRelic, relicRewardIds, relicRewardPools } from "../relics/definitions.js"; +import { relicState, grantGold, newRelicCard, resolveRelicChoices, relicCardPool } from "../relics/progression.js"; +import { createRelicBattle, applyBattleEndRelics } from "../relics/battle.js"; +import { applyRoomRelics, applyRelicNodeEnter, relicShopPrice } from "../relics/rooms.js"; +import { addCardToDeck } from "../cards/card-data.js"; +import { createBattleSettlement } from "../battle/battle-settlement.js"; +import { getRandomRewardChoices } from "../progression/reward.js"; +import config from "../config.js"; +import { createRun } from "../progression/state.js"; +import { createRelicCombatSkills } from "../relics/combat.js"; + +let checks=0; +const check=(condition,message)=>{assert.ok(condition,message);checks++;}; +const eq=(actual,expected,message)=>{assert.deepEqual(actual,expected,message);checks++;}; +const copy=value=>JSON.parse(JSON.stringify(value)); +const makeRun=()=>({runId:"relic-test",actIndex:0,revision:0,status:"running",randomState:20261006, + player:{character:"mengsan_liubei_shuying",items:[],deck:[],hp:30,maxHp:80,gold:0,permanentSkills:[],handLimitBonus:0}, + statistics:{goldEarned:0,completedNodes:0,defeatedEnemies:0}, + map:{nodes:[{id:"battle-1",type:"battle",completed:false}],completedNodeIds:[]}}); +function starter(run){for(let i=0;i<6;i++)run.player.deck.push(newRelicCard(run,i<3 ? "sha" : "mengsan_fangyu"));} +function add(run,id){assert.ok(grantRelic(run,id),`grant ${id}`);checks++;} +function fixture(run,{encounter={}}={}){ + let hand=[],drawn=0,alive=true;const drawPile=run.player.deck.map(data=>({name:data.name,storage:{mengsanCard_shuying:copy(data)}})); + const owner={hp:run.player.hp,maxHp:run.player.maxHp,hujia:0,storage:{mengsanEnergy_shuying:3},getCards:()=>hand,isAlive:()=>alive}; + const piles={drawCards:()=>drawPile,addToDraw(data,index){const card={name:data.name,storage:{mengsanCard_shuying:copy(data)}};drawPile.splice(index,0,card);return card;},async addToHand(data){const card={name:data.name,storage:{mengsanCard_shuying:copy(data)}};hand.push(card);return card;}}; + const effects=[]; + const controller=createRelicBattle(run,{active:()=>alive,owner,piles,encounter,draw:async n=>{drawn+=n;return [];},log:()=>{}, + effect:async relic=>{effects.push([relic.effect,relic.amount]);if(["openingBlock","nextBlock","plating"].includes(relic.effect))owner.hujia+=relic.amount;if(["energy","nextEnergy"].includes(relic.effect))owner.storage.mengsanEnergy_shuying=Math.max(0,owner.storage.mengsanEnergy_shuying+relic.amount);if(["openingHeal","healAbsolute"].includes(relic.effect))owner.hp=Math.min(owner.maxHp,owner.hp+relic.amount);},}); + return {owner,piles,controller,effects,get drawn(){return drawn;},setHand(cards){hand=cards;},stop(){alive=false;}, + async turn(){controller.globalTurnStart(owner);await controller.turnStart({name:"phase",player:owner});}, + async use(name="sha"){const use={name:"useCard",player:owner,card:{name},parent:null};await controller.onUse(use);return use;}}; +} + +eq(relicCatalog.length,298,"complete catalog");eq(new Set(relicCatalog.map(r=>r.wikiId)).size,298); +eq(relicCatalog.map(r=>r.order),Array.from({length:298},(_,i)=>i+1)); +const manifest=JSON.parse(await readFile(new URL("../assets/relics/manifest.json",import.meta.url),"utf8")); +for(const asset of manifest.assets){ + const bytes=await readFile(new URL(`../${asset.runtime}`,import.meta.url)); + const source=await readFile(new URL(`../assets/sts2/Godot_Atlas_Sprites_v0.111.0/images/atlases/relic_atlas.sprites/${asset.source}`,import.meta.url)); + eq(createHash("sha256").update(bytes).digest("hex"),asset.sha256,asset.wikiId); + eq(bytes,source,`original image ${asset.wikiId}`); + eq([bytes.readUInt32BE(16),bytes.readUInt32BE(20)],[asset.width,asset.height]); + check(asset.width<=480 && asset.height<=672 && asset.bytes<=300*1024,`icon budget ${asset.wikiId}`); +} +eq(manifest.assets.length,298); +check(heldRelics(createRun('mengsan_liubei_shuying')).some(r=>r.wikiId==='burning_blood'),'mapped new journey starts with Burning Blood'); +for(const relic of Object.values(relicDefinitions)){ + const run=makeRun();starter(run);run.player.relicPool=relic.pool; + if(relic.implementation==="pending"){ + const before=copy(run);check(!canAcquireRelic(run,relic.id));check(!grantRelic(run,relic.id));eq(run,before,"pending does not mutate");continue; + } + add(run,relic.id);check(!canAcquireRelic(run,relic.id),`unique ${relic.id}`); + await resolveRelicChoices(run,async (title,choices)=>choices.find(c=>c.id!=="skip").id); + eq(new Set(run.player.deck.map(c=>c.id)).size,run.player.deck.length,`unique cards ${relic.id}`); + check(run.player.hp>0 && run.player.hp<=run.player.maxHp,`safe pickup ${relic.id}`); + const f=fixture(run);await f.controller.start();await f.turn();await f.use();await f.controller.turnEnd(); + eq(f.controller.beforeHpLoss(0),0); +} +for(const id of relicRewardIds)check(getRelic(id.slice("shared.reward.relic.".length)).implementation!=="pending"); +for(const [key,ids] of Object.entries(relicRewardPools)){ + check(ids.every(id=>config.rewards[id]),key); + if(key.includes("ancient"))check(ids.length>0,`${key} populated`); +} +{ + const run=makeRun();add(run,"strawberry");eq(run.player.maxHp,87);eq(run.player.hp,30);check(!grantRelic(run,"strawberry")); + add(run,"burning_blood");add(run,"black_blood");check(!heldRelics(run).some(r=>r.wikiId==="burning_blood"));check(!grantRelic(run,"burning_blood")); + eq(applyBattleEndRelics(run,"defeat"),0);eq(applyBattleEndRelics(run,"victory"),12); +} +{ + const run=makeRun();add(run,"bowler_hat");add(run,"dragon_fruit");eq(grantGold(run,20),25);eq(run.player.gold,25);eq(run.player.maxHp,81);eq(run.player.hp,30); + add(run,"ectoplasm");eq(grantGold(run,200),0);eq(run.player.gold,25);eq(run.player.maxHp,81); +} +{ + const run=makeRun();add(run,"molten_egg");add(run,"bing_bong");add(run,"lucky_fysh"); + addCardToDeck(run,newRelicCard(run,"sha"));eq(run.player.deck.length,2);eq(run.player.deck.map(c=>c.upgrade),[1,1]);eq(run.player.gold,30); + add(run,"darkstone_periapt");addCardToDeck(run,newRelicCard(run,"mengsan_curse_greed"));eq(run.player.maxHp,92); +} +{ + const run=makeRun();starter(run);add(run,"neows_talisman");eq(run.player.deck.filter(c=>c.upgrade).length,2); + const oldIds=run.player.deck.map(c=>c.id);add(run,"pandoras_box");eq(run.player.deck.map(c=>c.id),oldIds);check(run.player.deck.every(c=>!['sha','mengsan_fangyu'].includes(c.name))); +} +{ + const run=makeRun();starter(run);run.player.deck[0].affixes=['eternal'];add(run,"empty_cage"); + await resolveRelicChoices(run,async(title,choices)=>choices[0].id);eq(run.player.deck.length,4);check(run.player.deck.some(c=>c.affixes.includes('eternal'))); + add(run,"claws");await resolveRelicChoices(run,async(title,choices)=>choices.find(c=>c.id!=='skip').id);eq(run.player.deck.filter(c=>c.name==='mengsan_event_maul').length,3); +} +{ + const run=makeRun();starter(run);add(run,"paels_tooth");await resolveRelicChoices(run,async(title,choices)=>choices[0].id); + eq(run.player.deck.length,1);eq(relicState(run).storedCards.length,5);applyBattleEndRelics(run,"victory");eq(run.player.deck.length,2);eq(relicState(run).storedCards.length,4);check(run.player.deck.some(c=>c.upgrade===1)); +} +{ + const run=makeRun();add(run,"meal_ticket");const shop={id:'shop',type:'shop'}; + eq(applyRoomRelics(run,shop,'enter').recovered,15);eq(applyRoomRelics(run,shop,'enter'),null); + add(run,"membership_card");add(run,"the_courier");eq(relicShopPrice(run,120),48); + add(run,"regal_pillow");const rest={id:'rest',type:'rest'};applyRoomRelics(run,rest,'enter');eq(applyRoomRelics(run,rest,'heal').recovered,23);eq(applyRoomRelics(run,rest,'heal'),null); + add(run,"maw_bank");applyRelicNodeEnter(run,{id:'1'});eq(run.player.gold,12);applyRelicNodeEnter(run,{id:'1'});eq(run.player.gold,12);relicState(run).mawBankBroken=true;applyRelicNodeEnter(run,{id:'2'});eq(run.player.gold,12); +} +{ + const run=makeRun();add(run,"anchor");add(run,"bag_of_preparation");add(run,"lantern");add(run,"centennial_puzzle");add(run,"venerable_tea_set");relicState(run).afterRest=true; + const f=fixture(run);await f.controller.start();eq(f.owner.hujia,10);eq(f.controller.retainedBlock(10),10);eq(f.drawn,2);eq(f.controller.openingHandBonus,2); + await f.turn();eq(f.owner.storage.mengsanEnergy_shuying,6);eq(f.controller.retainedBlock(10),0); + const event={num:-1};await f.controller.loseHp(event);await f.controller.loseHp(event);eq(f.drawn,5);await f.controller.loseHp({num:-1});eq(f.drawn,5); + const second=fixture(run);await second.controller.start();await second.turn();eq(second.owner.storage.mengsanEnergy_shuying,4,"tea receipt spent"); +} +{ + const run=makeRun();add(run,"tungsten_rod");add(run,"beating_remnant");const f=fixture(run);await f.controller.start();await f.turn(); + eq(f.controller.beforeHpLoss(-10,10),-10,"full block must be consumed normally");eq(f.controller.beforeHpLoss(-10,5),-9,"reduce HP loss after armor"); + await f.controller.loseHp({num:-19});eq(f.controller.beforeHpLoss(-8,5),-6,"turn cap after armor"); + f.controller.globalTurnStart({});eq(f.controller.beforeHpLoss(-50),-20,"all turns reset cap"); +} +{ + const run=makeRun();add(run,'big_mushroom');add(run,'bag_of_preparation');const f=fixture(run); + eq(f.controller.drawAdjustment,-2,"opening penalties apply before positive bonus draws");await f.controller.start();eq(f.controller.openingHandBonus,0);eq(f.drawn,2); +} +{ + const run=makeRun();add(run,"lizard_tail");const f=fixture(run);await f.controller.start();f.owner.hp=-4;await f.controller.dying();eq(f.owner.hp,40);f.owner.hp=-1;await f.controller.dying();eq(f.owner.hp,-1); + const second=fixture(run);await second.controller.start();second.owner.hp=0;await second.controller.dying();eq(second.owner.hp,0,"tail once per journey"); +} +{ + const run=makeRun();add(run,"pen_nib");add(run,"akabeko");add(run,"strike_dummy");add(run,"nunchaku");const f=fixture(run);await f.controller.start();await f.turn(); + let use=await f.use();eq(f.controller.outgoingDamage({source:f.owner,card:{name:'sha'},num:6,parent:use}),17); + for(let i=1;i<9;i++)await f.use();const next=fixture(run);await next.controller.start();await next.turn();use=await next.use(); + eq(next.controller.outgoingDamage({source:next.owner,card:{name:'sha'},num:6,parent:use}),34,"pen nib persists + fresh battle vigor");eq(next.owner.storage.mengsanEnergy_shuying,4); +} +{ + const run=makeRun();add(run,"permafrost");const f=fixture(run);await f.controller.start();await f.turn();const power='mengsan_ic_demon_form'; + check(relicCardPool(run,{type:'power'}).includes(power));await f.use(power);eq(f.owner.hujia,7);await f.turn();await f.use(power);eq(f.owner.hujia,7,"permafrost once per combat"); +} +{ + const run=makeRun();add(run,"vambrace");add(run,"oddly_smooth_stone");const f=fixture(run);await f.controller.start();await f.turn();const use=await f.use('mengsan_fangyu'); + eq(f.controller.blockAmount(5,{parent:use}),12);eq(f.controller.blockAmount(5,{parent:use}),6);eq(f.controller.blockAmount(5,{}),5,"noncard block gets no dexterity"); +} +{ + const run=makeRun();add(run,'velvet_choker');add(run,'brilliant_scarf');const f=fixture(run);await f.controller.start();await f.turn(); + for(let i=0;i<4;i++)await f.use();check(f.controller.isFree({name:'sha'}));await f.use();check(!f.controller.isFree({name:'sha'}));await f.use();check(f.controller.limited());f.controller.globalTurnStart({});check(!f.controller.limited(),'responses outside own turn remain enabled'); +} +{ + const run=makeRun();run.player.relicPool='静默猎手';add(run,'paper_krane');const f=fixture(run);await f.controller.start(); + const skills=createRelicCombatSkills(()=>({session:{active:true},relics:f.controller}),()=>f.owner); + const enemy={storage:{mengsanWeak_shuying:1}},event={source:enemy,card:null,mengsanAttack_shuying:true,num:10}; + check(skills.mengsan_relic_attack_shuying.filter(event),'explicit scripted attack marker supports Weak'); + await skills.mengsan_relic_attack_shuying.content({},event);eq(event.num,6); + check(!skills.mengsan_relic_attack_shuying.filter({...event,mengsanScriptedSkill_shuying:true}),'relic damage is not an attack'); + check(!skills.mengsan_relic_attack_shuying.filter({source:f.owner,card:{name:'tao'},num:1}),'non-attack cards do not receive Strength'); +} +{ + const run=makeRun();add(run,'joss_paper');add(run,'the_abacus');add(run,'charons_ashes');const f=fixture(run);await f.controller.start(); + for(let i=0;i<5;i++)f.controller.queueExhaust({});f.controller.queueShuffle();await f.controller.flushExhaust();eq(f.drawn,1);eq(f.owner.hujia,6);eq(f.effects.filter(([key])=>key==='openingDamage').length,5);await f.controller.flushExhaust();eq(f.drawn,1); +} +{ + const run=makeRun();starter(run);add(run,'blessed_antler');add(run,'tea_of_discourtesy');add(run,'bellows');add(run,'stone_cracker');add(run,'vexing_puzzlebox'); + const f=fixture(run);f.setHand([{name:'sha',storage:{mengsanCard_shuying:copy(run.player.deck[0])}}]);await f.controller.start();eq(f.piles.drawCards().length,11);eq(run.player.deck.filter(c=>c.upgrade).length,0,"battle upgrades do not leak into permanent deck"); + const second=fixture(run);await second.controller.start();eq(second.piles.drawCards().length,9,"one battle dazed consumed once"); +} +{ + const run=makeRun();add(run,'black_star');let data={[config.saveKey]:copy(run)},writes=0; + const store={read:()=>copy(data),async update(fn){writes++;return fn(data);}}; + const settlement=createBattleSettlement({store,config,getRandomRewardChoices,applyReward:(r,id)=>{const relic=config.rewards[id]?.relic;if(relic)grantRelic(r,relic);},completeNode:(r,id)=>{r.map.nodes[0].completed=true;return true;},enterNextAct:()=>false,resolveRelicChoices:async r=>resolveRelicChoices(r,async(t,c)=>c[0].id)}); + const pending=await settlement.prepare({run:copy(data[config.saveKey]),node:run.map.nodes[0],encounter:{tier:'elite',gold:20,skipRandomReward:true},hp:25});eq(pending.fixedRewards.length,2); + await settlement.choose(run.runId,pending.id,null);const one=await settlement.commit(run.runId,pending.id);const two=await settlement.commit(run.runId,pending.id);eq(writes,1);eq(one.run.player.gold,20);check(two.duplicate);eq(one.run.player.items.length,3); +} +{ + const run=makeRun();let data={[config.saveKey]:copy(run)},attempts=0,resolutions=0,release; + const barrier=new Promise(resolve=>{release=resolve;}); + const store={read:()=>copy(data),async update(fn){if(++attempts===1)throw new Error('injected write failure');return fn(data);}}; + const settlement=createBattleSettlement({store,config,getRandomRewardChoices,applyReward:()=>{},completeNode:r=>{r.map.nodes[0].completed=true;return true;},enterNextAct:()=>false, + resolveRelicChoices:async()=>{resolutions++;await barrier;}}); + const pending=await settlement.prepare({run:copy(run),node:run.map.nodes[0],encounter:{tier:'normal',gold:20,skipRandomReward:true},hp:20}); + const first=settlement.choose(run.runId,pending.id,null),second=settlement.choose(run.runId,pending.id,null); + eq(first,second,'concurrent same reward shares one operation');await assert.rejects(settlement.choose(run.runId,pending.id,'other'));checks++; + release();await first;eq(resolutions,1);await assert.rejects(settlement.commit(run.runId,pending.id));checks++; + eq(data[config.saveKey].player.gold,0,'failed write keeps prior checkpoint');const saved=await settlement.commit(run.runId,pending.id);eq(saved.run.player.gold,20);eq(attempts,2);eq(resolutions,1); +} +console.log(JSON.stringify({checks,images:manifest.assets.length,wikiRelics:relicCatalog.length, + states:relicCatalog.reduce((counts,r)=>{const status=getRelic(r.id).implementation;counts[status]=(counts[status] || 0)+1;return counts;},{}),acceptance:"isolated behavior / resource checks only; live game pending"},null,2)); diff --git a/mengsan/tools/import-sts2-relics.py b/mengsan/tools/import-sts2-relics.py new file mode 100644 index 0000000..b894afc --- /dev/null +++ b/mengsan/tools/import-sts2-relics.py @@ -0,0 +1,74 @@ +"""Import the reviewed Wiki snapshot and supplied split atlas without fetching the web.""" +import argparse +import hashlib +import json +import struct +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +ALIASES = { + "ring_of_the_snake": "mengsan_snake_ring_shuying", + "ring_of_the_drake": "mengsan_long_snake_ring_shuying", + "centennial_puzzle": "mengsan_millennium_puzzle_shuying", + "festive_popper": "mengsan_festive_poppers_shuying", +} +IMAGE_ALIASES = { + "yummy_cookie": "yummy_cookie_ironclad.png", + "forgotten_soul": "lost_soul.png", + "looming_fruit": "looming_fruit_2.png", +} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("snapshot", type=Path) + args = parser.parse_args() + source = json.loads(args.snapshot.read_text(encoding="utf-8")) + rows = source["relics"] + if len(rows) != 298 or len({row["id"] for row in rows}) != 298: + raise ValueError("Expected reviewed 298 unique relics") + atlas = ROOT / "assets/sts2/Godot_Atlas_Sprites_v0.111.0/images/atlases/relic_atlas.sprites" + target = ROOT / "assets/relics" + target.mkdir(exist_ok=True) + entries, assets = [], [] + for row in rows: + wiki_id = row["id"] + filename = IMAGE_ALIASES.get(wiki_id, row["image"]) + data = (atlas / filename).read_bytes() + if data[:8] != b"\x89PNG\r\n\x1a\n": + raise ValueError(f"Invalid PNG: {filename}") + width, height, depth, color = struct.unpack(">IIBB", data[16:26]) + # Icons are copied byte-for-byte; no enlargement, redraw or loss of alpha. + (target / f"{wiki_id}.png").write_bytes(data) + entries.append({ + "id": ALIASES.get(wiki_id, f"mengsan_{wiki_id}_shuying"), + "wikiId": wiki_id, "name": row["name"], + "description": row["rendered_description"], "pool": row["pool"], + "tier": row["tier"], "ancient": row["ancient"] or None, + "order": int(row["compendium_order"]), + "image": f"extension/术樱包/mengsan/assets/relics/{wiki_id}.png", + "source": row["source_page_url"], + "descriptionRaw": row["description_raw"], "descriptionSource": row["description"], + "flavor": row["flavor"], "predecessor": row["predecessor"], "category": row["category"], + }) + assets.append({"wikiId": wiki_id, "source": filename, + "runtime": f"assets/relics/{wiki_id}.png", "width": width, + "height": height, "bytes": len(data), "depth": depth, + "alpha": color in (4, 6), "sha256": hashlib.sha256(data).hexdigest()}) + (ROOT / "relics/catalog.js").write_text( + "// Generated from the reviewed 2026-10-04 Wiki snapshot; use tools/import-sts2-relics.py.\n" + "export const relicCatalog = Object.freeze(" + json.dumps(entries, ensure_ascii=False, indent=2) + ");\n", + encoding="utf-8") + (target / "manifest.json").write_text(json.dumps({ + "snapshot_date": "2026-10-04", "atlas_version": "v0.111.0", + "data_source": source["data_source_url"], "data_revision": source["source_revision"], + "assets": assets, + "notes": ["美味饼干使用铁甲战士版本;四个其他角色版本仍保留在来源图集中。", + "遗忘之魂映射 lost_soul.png;布质果实映射 looming_fruit_2.png。", + "图标是用户提供的原游戏拆包图片,逐字节复制,未重绘。"] + }, ensure_ascii=False, indent=2), encoding="utf-8") + print(f"Imported {len(entries)} relics, {sum(a['bytes'] for a in assets)} PNG bytes") + + +if __name__ == "__main__": + main() diff --git a/mengsan/tools/write-sts2-relics-report.mjs b/mengsan/tools/write-sts2-relics-report.mjs new file mode 100644 index 0000000..7b69dce --- /dev/null +++ b/mengsan/tools/write-sts2-relics-report.mjs @@ -0,0 +1,82 @@ +import { writeFile, readFile } from "node:fs/promises"; +import { relicCatalog } from "../relics/catalog.js"; +import { getRelic, relicRewardIds, relicShopRewardIds, relicRewardPools, relicAdaptations } from "../relics/definitions.js"; + +const manifest=JSON.parse(await readFile(new URL("../assets/relics/manifest.json",import.meta.url),"utf8")); +const assets=new Map(manifest.assets.map(asset=>[asset.wikiId,asset])); +const counts=relicCatalog.reduce((n,r)=>{const s=getRelic(r.id).implementation;n[s]=(n[s] || 0)+1;return n;},{}); +const labels={implemented:"已接入,待实机",adapted:"梦三适配,待实机",pending:"待补充,禁入奖励"}; +const escape=value=>String(value??"—").replaceAll("|","\\|").replaceAll("\n","
"); +const categoryCounts=key=>Object.entries(relicCatalog.reduce((result,r)=>{const value=r[key] || "无";result[value]=(result[value] || 0)+1;return result;},{})).map(([name,count])=>`${name} ${count}`).join(";"); +const lines=[ +"# STS2 遗物接入记录(2026-10-06)","", +`已登记全部 **298** 件 Wiki 遗物,匹配 **298** 张原图。**${counts.implemented+counts.adapted}** 件效果已接入,其中 **${counts.adapted}** 件有明确梦三适配;**${counts.pending}** 件保留资料、图片及缺口记录,获取资格拒绝这些条目。另保留原梦三束带,不计入 Wiki 298 件。`,"", +"本次直接修改实际梦三模块,未制作修复副本;没有生成或重绘三国杀风格图片。原有三个 dist 发布清单的既存改动未触碰。本记录中的“已接入”仅表示源码有对应执行接口,**不是实机验收结论**。","", +"## 来源与完整性","", +"- 使用本次对话此前抓取的 **2026-10-04** 网页快照;本次没有把旧快照宣称为 10 月 6 日 Wiki 的新修订。", +"- [遗物查找页](https://sts2.huijiwiki.com/wiki/模板:查找/遗物);[结构化数据页](https://sts2.huijiwiki.com/wiki/Data:Relic.tabx),快照修订号 `28579`。", +"- `relics/catalog.js` 保存池、原始稀有度、先古归属、图鉴顺序、中文名、可读描述、原始描述/原始 Wiki 标记、风味文字、前代及来源链接。", +"- 298 个唯一 Wiki ID;图鉴顺序完整覆盖 1—298。头环原始稀有度仍为“遗物”;先古归属与稀有度分别保存。", +`- 遗物池:${categoryCounts("pool")}。`, +`- 稀有度:${categoryCounts("tier")}。`, +`- 先古归属:${categoryCounts("ancient")}。`,"", +"## 图片资源","", +"来源为用户提供的 `assets/sts2/Godot_Atlas_Sprites_v0.111.0/images/atlases/relic_atlas.sprites/` 拆分 PNG 目录。运行时使用 `assets/relics/.png`,逐字节复制,不拉伸、不重新绘图。所有图片都在 480×672、300 KiB 以内。", +`298 张图片合计 **${manifest.assets.reduce((n,r)=>n+r.bytes,0).toLocaleString("en-US")} 字节**。每张的源文件名、尺寸、透明通道、体积、SHA-256 见 [资源清单](../assets/relics/manifest.json)。`,"", +"特殊映射:美味饼干使用 `yummy_cookie_ironclad.png`;遗忘之魂使用 `lost_soul.png`;布质果实使用 `looming_fruit_2.png`。美味饼干的其他角色图仍在原图集,当前仅接入铁甲战士图。原梦三束带没有对应 STS2 原图,继续显示文字。", +"战斗遗物栏、地图背包、遗物选择、商店和战利品清单已经接入图片;池/稀有度/先古归属可从遗物栏与背包查看。","", +"## 效果与获取接线","", +"- 拾取:最大生命、回血、金币、牌组强化、复制、移除、变化、变化并强化、加入卡牌、随机遗物、多组卡牌选择、临时移出永久牌组。", +"- 战斗:开场与指定回合效果、额外摸牌、费用、格挡、敏捷、力量、活力、易伤/虚弱倍率、攻击/技能/能力计数、伤害增幅、荆棘、覆甲、生命损失减免、尾巴复活、消耗及洗牌触发。", +"- 战斗生成牌和手牌/抽牌堆强化使用本场实体牌,强化不会写回永久牌组。艳丽围巾的第五张牌免费与天鹅绒项圈限制接入现有支付/禁用接口;化学物X接入 X 次数。", +"- 笔尖、双节棍、音叉、铁棒、香纸的累计计数保存在征程状态;新获得的遗物以获得时的累计值为起点。每回合三连击计数独立重置。", +"- 房间:餐券、活动星图、永恒羽毛、茶具、皇家枕头、捕梦网、铲子、壶铃、南瓜蜡烛添火、帐篷、烹饪与折扣。每个房间/动作有独立记录,重复进入不会重复回血。", +"- 战后:回血、敌人额外金币、最大生命、普通战斗/精英战强化、黑星、熔岩石、佩尔之齿逐张强化返还、石之剑变化、旺购神秘券。", +"- 金币统一经过 `grantGold`;圆顶礼帽/灵体外质/火龙果同时覆盖战斗、奖励包、事件、遗物拾取、添加牌和现有劫掠牌击杀收益。存钱罐在商店消费后失效。", +"- 商店保留【杀】与回复生命,新增3个遗物货位、折扣与信使补货。遗物基价暂设120金币;不是 Wiki 公布的商品价格。购买后完成所有遗物选牌,再提交房间结果。", +`- 普通/罕见/稀有遗物池登记 **${relicRewardIds.length}** 项;可售遗物池登记 **${relicShopRewardIds.length}** 项,均在实际获取时继续过滤重复与角色池。`, +"- 原有精英固定遗物奖励、第一章宝箱和初次剧情遗物选择自动使用扩展后的可用池。Boss 极品卡牌池保留原有专属稀有卡约定。", +"- 新建刘备征程自动持有燃烧之血,符合铁甲战士初始池;既有存档不追补、不重复发放初始遗物。其他武将暂不指定初始遗物。", +"- 先古/事件/初始遗物已提供独立奖励池;**尚未创建对应先古会面和事件剧情**,不会把这些条目混入普通掉落。后续节点可以引用下表池名或调用已有 `grantRelic`。", +"- 拾取操作在可序列化副本上计算,成功后替换运行状态;尚未实现的遗物/重复获取不会改金币、随机数或牌组。战后效果在现有结算候选里只计算一次,存档失败重试不重新发奖。", "", +"| 专用奖励池 | 当前可用数 |","| --- | --- |", +...Object.entries(relicRewardPools).map(([id,values])=>`| \`${id}\` | ${values.length} |`),"", +"## 需要用户补充或确认","", +"1. **烹饪数值与流程**:网页只说明能够烹饪,目前采用最大生命+5。确定原作具体数值后可替换适配值。", +"2. **非战斗生命归零流程**:危险剪刀/芬芳蘑菇当前扣血保留至少1生命。需要明确是否允许地图中直接死亡,以及对应失败弹窗/存档规则。", +"3. **先古会面及事件入口**:请确定梦三在哪些章节、节点或剧情中接入各先古和事件遗物。已有数据分类、效果、专用奖励池,但尚无原作的完整会面事件。", +"4. **角色池映射**:当前只把刘备映射为铁甲战士,其他四个 STS2 角色未绑定梦三武将;不擅自指定。", +"5. **原作机制**:辉星、充能球、集中、奥斯提、灾厄、仆从、铸造、可使用药水,以及 Wiki 指定附魔,需要对应玩法接口;完整逐件缺口见下表。现有词缀不会冒充原作附魔。", +"6. **先古牌与击杀口径**:尘封魔典当前抽取现有先古事件牌;石之剑按精英战胜利次数计数,需要完整原作候选表及精英单位身份口径。", +"7. **实机验收**:需要用户回来在实际梦三运行以下场景;此次不在正在进行的征程上自动操纵或替换存档。", "", +"## 已知梦三口径与限制","", +"- 基础开场4张牌、每回合原有摸牌数、费用3和手牌上限3保持现有梦三规则。大蘑菇先减2张,再叠加正向开场额外摸牌。", +"- 增加最大生命本身不额外治疗当前生命,沿用既有草莓约定;李家华夫饼另外回满生命。降低最大生命会将当前生命限制到新上限。", +"- 休息基础回复8;皇家枕头额外15。多个折扣乘算后向下取整,最低1金币。", +"- 克制、防御、保留、能力牌、虚无等牌的现有规则优先保留;符文金字塔/三角铃鼓避免手牌上限弃牌,不阻止虚无牌消耗。", +"- 回合伤害上限在所有参与者的回合开始重置。钨合金棍和跳动残渣在预计护甲抵扣后限制实际生命损失,纯护甲损失不触发百年积木。伤害事件统计仍遵循引擎原有口径。", +"- 独立牌堆不足时,梦三现有规则会结束挑战;额外摸牌遗物同样遵循该规则,未擅自改成原作的不足时少抽。", +"- 尾巴仅本次征程触发一次;数值进位/舍入遵循梦三现有攻击、虚弱、易伤与护甲规则。", +"- 没有持有来源正确的图集之外的素材缺失;主要缺口属于玩法/入口,仍全部登记。", "", +"## 验证与待实机场景","", +"已运行 `node mengsan/tools/check-sts2-relics.mjs`:完整目录/图片哈希及源字节、逐件可获得遗物拾取与基本战斗、禁用遗物不变更状态、角色池/重复资格、随机遗物/选牌、永恒限制、累计计数、格挡后的减伤、复活一次、临时强化不污染牌组、商店房间记录、战后提交只写一次等隔离回归。检查数量以本次运行输出为准。", +"已检查修改模块语法、内容注册表加载及本次改动差异。**尚未做实际游戏内的战斗、图片渲染或安装更新验收**;上述检查不能替代实机运行。", "", +"用户回来后建议覆盖:", "", +"- 持有锚开战并进入第一回合;比较格挡是否保留。", +"- 护甲完全抵挡/部分抵挡攻击时,测试钨合金棍、跳动残渣、百年积木。", +"- 同一多段攻击与第10张攻击,跨战斗测试笔尖、活力、双节棍。", +"- 能力牌首次/再次/下个回合测试永冻冰、木乃伊之手;X=0/大于0测试化学物X。", +"- 第5张免费、第6张后不能主动出牌;进入敌方回合后检查响应仍可用。", +"- 濒死测试蜥蜴尾巴,确保第二次不复活;荆棘/覆甲在实际攻击事件中测试。", +"- 休息点多选、选牌遗物、永久牌移除/变化、佩尔之齿逐场返还、商店折扣与补货。", +"- 保存失败后重试,确认不重复金币、遗物、牌组强化和房间效果;退出未完成战斗后继续旧地图检查点。", "", +"## 明确适配详情","", +...Object.entries(relicAdaptations).filter(([id])=>getRelic(id)?.implementation==="adapted").map(([id,note])=>`- **${getRelic(id).name}**:${note}`),"", +"## 逐件清单","", +"图片路径统一为 `assets/relics/.png`。表中“执行/缺口”列给出接线属性或阻塞原因,原文效果原样保留可读表达;池、稀有度和先古归属没有合并。", "", +"| 序号 | 遗物 / Wiki ID | 池 | 稀有度 | 先古归属 | 原文效果 | 状态 | 执行 / 缺口 | 来源图片 |", +"| --- | --- | --- | --- | --- | --- | --- | --- | --- |", +...relicCatalog.map(item=>{const r=getRelic(item.id),a=assets.get(item.wikiId);return `| ${item.order} | [${escape(item.name)}](${item.source})
\`${item.wikiId}\` | ${escape(item.pool)} | ${escape(item.tier)} | ${escape(item.ancient)} | ${escape(item.description)} | ${labels[r.implementation]} | ${escape(r.implementation==="pending" ? r.implementationNote : r.implementation==="adapted" ? r.implementationNote : Object.entries(r.rule).map(([key,value])=>`${key}=${JSON.stringify(value)}`).join(";"))} | \`${a.source}\`
${a.width}×${a.height};${a.bytes} B |`;}) +]; +await writeFile(new URL("../relics/IMPLEMENTATION-20261006.md",import.meta.url),lines.join("\n")+"\n","utf8"); +console.log(JSON.stringify({wikiRelics:relicCatalog.length,states:counts,report:"relics/IMPLEMENTATION-20261006.md"})); diff --git a/mengsan/ui/flow-ui.js b/mengsan/ui/flow-ui.js index dbb0116..99bb1a6 100644 --- a/mengsan/ui/flow-ui.js +++ b/mengsan/ui/flow-ui.js @@ -1,5 +1,6 @@ import { ui } from "../../../../noname.js"; import { mountMenu } from "./navigation.js"; +import { createRelicIcon } from "./relic-icon.js"; export const chooseButtons = (title, choices, description = "", options = {}) => new Promise(resolve => { const previousFocus = document.activeElement; @@ -33,6 +34,7 @@ export const chooseButtons = (title, choices, description = "", options = {}) => button.type = "button"; button.className = "mengsan-choice-shuying"; button.dataset.choice = choice.id; + const icon=createRelicIcon(choice.image);if(icon){button.classList.add("has-relic-image");button.appendChild(icon);} if (choice.danger) button.classList.add("danger"); const name = document.createElement("span"); name.className = "mengsan-choice-name-shuying"; diff --git a/mengsan/ui/map/renderer.js b/mengsan/ui/map/renderer.js index a7ae0b9..bd4aa54 100644 --- a/mengsan/ui/map/renderer.js +++ b/mengsan/ui/map/renderer.js @@ -3,6 +3,7 @@ import { askMenu, openModeSelection, openNonameMenu } from "../navigation.js"; import { ui, get } from "../../../../../noname.js"; import config from "../../config.js"; import { getRelic } from "../../relics/definitions.js"; +import { createRelicIcon } from "../relic-icon.js"; import { renderBonds } from "../bonds.js"; import { getSelectableNodes } from "../../progression/state.js"; @@ -269,8 +270,9 @@ export const showMap = (run, { saveRun } = {}) => new Promise(resolve => { values.forEach(value => { const row = ui.create.div(".mengsan-map-inventory-row-shuying", list); const relic = getRelic(value); + const icon=createRelicIcon(relic?.image);if(icon)row.appendChild(icon); createText("", relic?.name || get.translation(value) || value, row); - createText("", relic?.description || "已获得", row); + createText("", relic ? `${relic.pool} · ${relic.tier}${relic.ancient ? ` · ${relic.ancient}` : ""}:${relic.description}${relic.implementation==="pending" ? `(${relic.implementationNote})` : ""}` : "已获得", row); }); }; const supports = run.player.supports || []; diff --git a/mengsan/ui/relic-icon.js b/mengsan/ui/relic-icon.js new file mode 100644 index 0000000..d77c6fd --- /dev/null +++ b/mengsan/ui/relic-icon.js @@ -0,0 +1,11 @@ +import { lib } from "../../../../noname.js"; +export function relicImageURL(image) { + return typeof image==="string" && /^extension\/术樱包\/mengsan\/assets\/relics\/[a-z0-9_]+\.png$/.test(image) ? (lib.assetURL || "")+image : null; +} +export function createRelicIcon(image) { + const src=relicImageURL(image);if(!src)return null; + const icon=document.createElement("img"); + icon.className="mengsan-relic-icon-shuying";icon.src=src;icon.alt=""; + icon.setAttribute("aria-hidden","true");icon.width=48;icon.height=48;icon.loading="lazy"; + icon.addEventListener("error",()=>icon.remove(),{once:true});return icon; +} diff --git a/mengsan/ui/relics.js b/mengsan/ui/relics.js index d0117bb..d5ff84c 100644 --- a/mengsan/ui/relics.js +++ b/mengsan/ui/relics.js @@ -1,5 +1,6 @@ import { ui } from "../../../../noname.js"; import { heldRelics } from "../relics/definitions.js"; +import { createRelicIcon } from "./relic-icon.js"; export function mountRelics(session, run, battleRelics) { let dialog = null, list = null, previousFocus = null, disposed = false; @@ -29,12 +30,13 @@ export function mountRelics(session, run, battleRelics) { } for (const relic of relics) { const row = document.createElement("section"); + const icon=createRelicIcon(relic.image);if(icon)row.appendChild(icon); const name = document.createElement("h3"); name.textContent = relic.name; const description = document.createElement("p"); description.textContent = relic.description; const status = document.createElement("small"); - status.textContent = battleRelics.status(relic); + status.textContent = `${relic.pool} · ${relic.tier}${relic.ancient ? ` · ${relic.ancient}` : ""} · ${battleRelics.status(relic)}`; row.append(name, description, status); list.appendChild(row); } diff --git a/mengsan/ui/reward-ui.js b/mengsan/ui/reward-ui.js index a04116a..1aaf12f 100644 --- a/mengsan/ui/reward-ui.js +++ b/mengsan/ui/reward-ui.js @@ -2,6 +2,7 @@ import { lib, get } from "../../../../noname.js"; import { cardCost } from "../battle/combat-rules.js"; import { cardUpgradeRule } from "../cards/upgrades.js"; import { getRelic } from "../relics/definitions.js"; +import { relicImageURL, createRelicIcon } from "./relic-icon.js"; import { getCardRarity, applyCardRarity } from "../cards/rarity.js"; import { cleanCardDescription } from "../cards/description.js"; @@ -69,7 +70,7 @@ export function chooseRelicDialog(choices, options = {}) { ...options, }, choice => { const relic = getRelic(choice.relic); - return { name: relic.name, type: "遗物", image: null, cost: null, + return { name: relic.name, type: `${relic.tier} · ${relic.pool}${relic.ancient ? ` · ${relic.ancient}` : ""}`, image: relicImageURL(relic.image), cost: null, description: relic.description }; }); } @@ -85,7 +86,7 @@ function chooseRewardDialog(choices) { if (isCardReward(choice)) return viewCard(choice); const relic = getRelic(choice.relic); return { name: relic?.name || choice.name, type: relic ? "遗物" : "奖励", - image: null, cost: null, + image: relicImageURL(relic?.image), cost: null, description: plainText(relic?.description || choice.description) }; }); } @@ -119,6 +120,7 @@ function chooseTilesDialog(choices, { const view = viewChoice(choice); if (describeChoice) view.description = describeChoice(choice); const card = element("button", "mengsan-card-choice-tile-shuying", null, cards); + if(getRelic(choice.relic))card.classList.add("mengsan-relic-choice-tile-shuying"); card.type = "button"; if (view.rarity) applyCardRarity(card, cardNameOf(choice)); card.setAttribute("aria-label", `${view.name},${view.type}${view.rarity ? `,稀有度:${view.rarity.label}` : ""},${view.description}。${actionLabel}`); @@ -177,6 +179,7 @@ export function chooseVictoryOptions(options, { // Read-only loot list: inspecting a reward must not select or award it. for (const reward of rewardItems) { const item = element("p", "mengsan-victory-option-copy-shuying", null, board); + const icon=createRelicIcon(getRelic(reward.relic)?.image);if(icon)item.appendChild(icon); element("strong", "", reward.name || reward.id, item); if (reward.description) element("small", "", plainText(reward.description), item); } diff --git a/mengsan/ui/style.css b/mengsan/ui/style.css index c59ca66..685666d 100644 --- a/mengsan/ui/style.css +++ b/mengsan/ui/style.css @@ -1385,6 +1385,13 @@ body.mengsan-battle-ui-shuying :is( .mengsan-relic-list-shuying h3 { margin: 0 0 8px; color: #ffe0a1; } .mengsan-relic-list-shuying p { margin: 0 0 6px; line-height: 1.7; } .mengsan-relic-list-shuying small { color: #d1bd9c; } +.mengsan-relic-icon-shuying { position: relative !important; width: 48px; height: 48px; flex: none; object-fit: contain; } +.mengsan-relic-list-shuying section > .mengsan-relic-icon-shuying { float: left; margin: 0 14px 8px 0; } +.mengsan-choice-shuying.has-relic-image { position: relative; padding-left: 76px; } +.mengsan-choice-shuying.has-relic-image > .mengsan-relic-icon-shuying { position: absolute !important; left: 14px; top: 50%; transform: translateY(-50%); } +.mengsan-map-inventory-row-shuying > .mengsan-relic-icon-shuying { width: 40px; height: 40px; } +.mengsan-relic-choice-tile-shuying .mengsan-card-choice-art-shuying img { padding: 14px; box-sizing: border-box; background: transparent; } +.mengsan-relic-choice-tile-shuying .mengsan-card-choice-art-shuying:has(img) .mengsan-card-choice-glyph-shuying { display: none; } @media (max-height: 500px) { .mengsan-battle-relics-button-shuying { top: 122px; } }