diff --git a/repo/js/OcrMonsterNum/assets/info.json b/repo/js/OcrMonsterNum/assets/info.json new file mode 100644 index 000000000..0f4cfda86 --- /dev/null +++ b/repo/js/OcrMonsterNum/assets/info.json @@ -0,0 +1,1950 @@ +[ + { + "name": "火史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大型火史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "水史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [ + "水免" + ] + }, + { + "name": "大型水史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [ + "水免" + ] + }, + { + "name": "风史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大型风史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "雷史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大型雷史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "变异雷史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "草史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大型草史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "冰史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大型冰史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "岩史莱姆", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大型岩史莱姆", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "狂风之核", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "无相之火", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "无相之水", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "无相之风", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "无相之雷", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "无相之草", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "无相之冰", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "无相之岩", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "纯水精灵", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "雷音权现", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "火飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "水飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "风飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "雷飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "草飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冰飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "岩飘浮灵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "浊水粉碎幻灵", + "moraRate": 1, + "type": "精英", + "tags": [ + "水免" + ] + }, + { + "name": "浊水喷吐幻灵", + "moraRate": 1, + "type": "精英", + "tags": [ + "水免" + ] + }, + { + "name": "水形幻人", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "灼烜·霜夜灵嗣", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "辉电·霜夜灵嗣", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "蔓结·霜夜灵嗣", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "凌晶·霜夜灵嗣", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "打手丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冲锋丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "木盾丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冰盾丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "岩盾丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "射手丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "火箭丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "雷箭丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冰箭丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "爆弹丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "雷弹丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冰弹丘丘人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "奇怪的丘丘人", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "木盾丘丘暴徒", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "岩盾丘丘暴徒", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "冰盾丘丘暴徒", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "火斧丘丘暴徒", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "雷斧丘丘暴徒", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "丘丘雷兜王", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "丘丘霜铠王", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "丘丘岩盔王", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "水丘丘萨满", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "风丘丘萨满", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "雷丘丘萨满", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "草丘丘萨满", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冰丘丘萨满", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "岩丘丘萨满", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "丘丘水行游侠", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "丘丘风行游侠", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "火深渊法师", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "水深渊法师", + "moraRate": 1, + "type": "精英", + "tags": [ + "水免" + ] + }, + { + "name": "雷深渊法师", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "冰深渊法师", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "深渊使徒·激流", + "moraRate": 3, + "type": "精英", + "tags": [ + "水免" + ] + }, + { + "name": "深渊使徒·霜落", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "深渊咏者·渊火", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "深渊咏者·紫电", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "深罪浸礼者", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "嗜岩·兽境幼兽", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "嗜雷·兽境幼兽", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "嗜岩·兽境猎犬", + "moraRate": 2, + "type": "精英", + "tags": [] + }, + { + "name": "嗜雷·兽境猎犬", + "moraRate": 2, + "type": "精英", + "tags": [] + }, + { + "name": "黄金王兽", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "黯色空壳·旗令", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "黯色空壳·破阵", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "黯色空壳·近卫", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "黑蛇骑士·斩风之剑", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "黑蛇骑士·摧岩之钺", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "大型碎石隙境原体", + "moraRate": 2, + "type": "精英", + "tags": [] + }, + { + "name": "碎石隙境原体", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "大型狂蔓隙境原体", + "moraRate": 2, + "type": "精英", + "tags": [] + }, + { + "name": "狂蔓隙境原体", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "深邃拟覆叶", + "moraRate": 3, + "type": "精英", + "tags": ["次数盾"] + }, + { + "name": "深邃摹结株", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "荒野幽徒", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "荒野狂狩士", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众先遣队·火统游击兵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众先遣队·水铳重卫士", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众先遣队·风拳前锋军", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众先遣队·雷锤前锋军", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众先遣队·冰铳重卫士", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众先遣队·岩使游击兵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众·火之债务处理人", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "愚人众·雷莹术士", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "愚人众·冰萤术士", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "愚人众·藏镜仕女", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "愚人众·风役人", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "愚人众·霜役人", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "愚人众特辖队·线列军", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·支援兵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·榴铳手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·先锋士", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·疗愈师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·掷弹兵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·火刃突击队", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·冰雹重炮手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "愚人众特辖队·雷霰近卫军", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·近战攻坚型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·近战斥候型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·强侦攻坚型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·强侦斥候型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·强侦地效型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·尖端全能攻坚型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·尖端全能斥候型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "巡陆艇·尖端火力地效型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "遗迹守卫", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹猎者", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹重机", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹巨蛇", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "遗迹巡弋者", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹歼击者", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹防卫者", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹侦察者", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "恒常机关阵列", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "遗迹龙兽·地巡", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "遗迹龙兽·空巡", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "兆载永劫龙兽", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "元能构装体·力场发生器", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "元能构装体·重塑仪", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "元能构装体·勘探机", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "半永恒统辖矩阵", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "机关·侦察记录型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·算力增幅器", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·水下勘测型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·地质勘探型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·水下巡游型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·深海攻击型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·灵活采集型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "机关·区域警戒型", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "攻坚特化型机关", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "压制特化型机关", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "歼灭特化型机关", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "建造特化型机关", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "冰风组曲", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "实验性场力发生装置", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "魔偶剑鬼", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "秘源机兵·寻捕械", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "秘源机兵·构型械", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "秘源机兵·统御械", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "重拳出击鸭", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "盗宝团·斥候", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·火之药剂师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·水之药剂师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·雷之药剂师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·冰之药剂师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·杂工", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·神射手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·掘墓者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·海上男儿", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·拳术家", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "盗宝团·粉碎者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "野伏·阵刀番", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "野伏·火伏番", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "野伏·机巧番", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "海乱鬼·炎威", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "海乱鬼·雷腾", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·阵前斧手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·机弩兵", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·鸦喙戟手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·破阵者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·刀舞者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·沙中净水", + "moraRate": 1.5, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·炽阳凝冰", + "moraRate": 1.5, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·白日鸣雷", + "moraRate": 1.5, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·灵风猎手", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·魔岩役使", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·炽沙叙事人", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "镀金旅团·叶轮舞者", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "铸砂勇士·叩问人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "铸砂勇士·碎盾者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "铸砂勇士·投矛手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "疾讯勇士·引索客", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "疾讯勇士·荡风斥候", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "疾讯勇士·重刃讯使", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "流刃勇士·游击人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "流刃勇士·锯脂者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "流刃勇士·掷叉猎手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "结羽勇士·腾空士", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "结羽勇士·削羽人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "结羽勇士·驭空客", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "灵觉勇士·执意师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "灵觉勇士·控念师", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "灵觉勇士·冥思者", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "横蛮勇士·冲撞手", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "横蛮勇士·摔跤客", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "横蛮勇士·抓扑人", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "嵴锋龙武士·碎晶打者", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "嵴锋龙武士·破岩锐刃", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "匿叶龙武士·旋锯飞叶", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "匿叶龙武士·流火鸣空", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "鳍游龙武士·穿浪之梭", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "鳍游龙武士·裂礁之涛", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "绒翼龙武士·膛星之锤", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "绒翼龙武士·长空明焰", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "暝视龙武士·寒涌持者", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "暝视龙武士·冰晶炮手", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "突角龙武士·破空轰动", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "突角龙武士·追缉灵光", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "灵觉隐修的迷者", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "炽热骗骗花", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "电气骗骗花", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "冰霜骗骗花", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "爆炎树", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "掣电树", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "急冻树", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "幼岩龙蜥", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "岩龙蜥", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "古岩龙蜥", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "深海龙蜥·原种", + "moraRate": 3, + "type": "精英", + "tags": [] + }, + { + "name": "深海龙蜥·啮冰", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "深海龙蜥·吞雷", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "水萤", + "moraRate": 3, + "type": "普通", + "tags": [] + }, + { + "name": "雷萤", + "moraRate": 3, + "type": "普通", + "tags": [] + }, + { + "name": "冰萤", + "moraRate": 3, + "type": "普通", + "tags": [] + }, + { + "name": "浮游水蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "浮游风蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "浮游草蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "旋转火蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "旋转雷蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "旋转冰蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "伸缩火蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "伸缩风蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "伸缩雷蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "伸缩岩蕈兽", + "moraRate": 1, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "陆行水本真蕈", + "moraRate": 2, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "有翼草本真蕈", + "moraRate": 2, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "有翼冰本真蕈", + "moraRate": 2, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "陆行岩本真蕈", + "moraRate": 2, + "type": "普通", + "tags": [ + "蕈兽" + ] + }, + { + "name": "翠翎恐蕈", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "圣骸角鳄", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "圣骸牙兽", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "圣骸赤鹫", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "圣骸毒蝎", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "圣骸飞蛇", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "风蚀沙虫", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "膨膨兽", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "猎刀鳐·绿", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "猎刀鳐·蓝", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "重甲蟹·红", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "重甲蟹·绿", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "坚盾重甲蟹", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "铁甲熔火帝皇", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "帽子水母·黄", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "帽子水母·蓝", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "泡泡海马·紫", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "泡泡海马·蓝", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "泡泡海马·褐", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "泡泡雄海马", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "千年珍珠骏麟", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "球球章鱼·红", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "球球章鱼·褐", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "天使海兔·蓝", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "天使海兔·红", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "大天使海兔", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "玄文兽", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "隐山猊兽", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "魔像禁卫", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "魔像督军", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "幼嵴锋龙", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "嵴锋龙", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "幼鳍游龙", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "鳍游龙", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "幼匿叶龙", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "匿叶龙", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "贪食匿叶龙山王", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "幼绒翼龙", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "绒翼龙", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "金焰绒翼龙暴君", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "幼暝视龙", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "暝视龙", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "幼突角龙", + "moraRate": 1, + "type": "普通", + "tags": [] + }, + { + "name": "突角龙", + "moraRate": 2, + "type": "普通", + "tags": [] + }, + { + "name": "熔岩游像·蚀土者", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "熔岩游像·流燃体", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "熔岩辉龙像", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "窟岩·大灵显化身", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "溯流·大灵显化身", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "疾叶·大灵显化身", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "凛冽·大灵显化身", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "焚燃·大灵显化身", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "雳震·大灵显化身", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "炉壳山鼬", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "蕴光奇羊", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "蕴光刃犀", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "蕴光璇蛸", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "蕴光月幻蝶", + "moraRate": 1, + "type": "精英", + "tags": [] + }, + { + "name": "裂空的魔龙", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "北风的王狼,奔狼的领主", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "「公子」", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "若陀龙王", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "「女士」", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "祸津御建鸣神命", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "「正机之神」", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "阿佩普的绿洲守望者", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "吞星之鲸", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "「仆人」", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "蚀灭的源焰之主", + "moraRate": 1, + "type": "首领", + "tags": [] + }, + { + "name": "门扉前的弈局", + "moraRate": 1, + "type": "首领", + "tags": [] + } +] \ No newline at end of file diff --git a/repo/js/OcrMonsterNum/assets/monster/丘丘人.png b/repo/js/OcrMonsterNum/assets/monster/丘丘人.png index 395eedcd8..9c1f7672e 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/丘丘人.png and b/repo/js/OcrMonsterNum/assets/monster/丘丘人.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/冰盾丘丘人.png b/repo/js/OcrMonsterNum/assets/monster/冰盾丘丘人.png index 41a7fedf8..36d44af3a 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/冰盾丘丘人.png and b/repo/js/OcrMonsterNum/assets/monster/冰盾丘丘人.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/冲锋丘丘人.png b/repo/js/OcrMonsterNum/assets/monster/冲锋丘丘人.png index c4b3c404e..c09059f96 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/冲锋丘丘人.png and b/repo/js/OcrMonsterNum/assets/monster/冲锋丘丘人.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/凌晶·霜夜灵嗣.png b/repo/js/OcrMonsterNum/assets/monster/凌晶·霜夜灵嗣.png new file mode 100644 index 000000000..cc6da6cc9 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/凌晶·霜夜灵嗣.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/大型冷史莱姆.png b/repo/js/OcrMonsterNum/assets/monster/大型雷史莱姆.png similarity index 100% rename from repo/js/OcrMonsterNum/assets/monster/大型冷史莱姆.png rename to repo/js/OcrMonsterNum/assets/monster/大型雷史莱姆.png diff --git a/repo/js/OcrMonsterNum/assets/monster/实验性场力发生装置.png b/repo/js/OcrMonsterNum/assets/monster/实验性场力发生装置.png index 62a2c45c7..cd0606c18 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/实验性场力发生装置.png and b/repo/js/OcrMonsterNum/assets/monster/实验性场力发生装置.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端全能攻坚型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端全能攻坚型.png new file mode 100644 index 000000000..281326478 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端全能攻坚型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端全能斥候型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端全能斥候型.png new file mode 100644 index 000000000..ff4c485d3 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端全能斥候型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端火力地效型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端火力地效型.png new file mode 100644 index 000000000..5bf58fbe7 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·尖端火力地效型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦地效型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦地效型.png new file mode 100644 index 000000000..0dd120727 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦地效型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦攻坚型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦攻坚型.png new file mode 100644 index 000000000..5e4e61922 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦攻坚型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦斥候型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦斥候型.png new file mode 100644 index 000000000..66233cd60 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·强侦斥候型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·近战攻坚型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·近战攻坚型.png new file mode 100644 index 000000000..4af3b31e1 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·近战攻坚型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/巡陆艇·近战斥候型.png b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·近战斥候型.png new file mode 100644 index 000000000..c88dd152b Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/巡陆艇·近战斥候型.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·冰铳重卫士.png b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·冰铳重卫士.png index f423bf563..11fea7305 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·冰铳重卫士.png and b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·冰铳重卫士.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·水铳重卫士.png b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·水铳重卫士.png index 7ba49da48..5400c3e1c 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·水铳重卫士.png and b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·水铳重卫士.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·雷锤前锋军.png b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·雷锤前锋军.png index f1bc5c538..7c897b295 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·雷锤前锋军.png and b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·雷锤前锋军.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·风拳前锋军.png b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·风拳前锋军.png index c6b232536..06d49fd8e 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·风拳前锋军.png and b/repo/js/OcrMonsterNum/assets/monster/愚人众先遣队·风拳前锋军.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·先锋士.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·先锋士.png new file mode 100644 index 000000000..e4cacdfd8 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·先锋士.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·冰雹重炮手.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·冰雹重炮手.png new file mode 100644 index 000000000..861651e14 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·冰雹重炮手.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·掷弹兵.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·掷弹兵.png new file mode 100644 index 000000000..93897fceb Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·掷弹兵.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·支援兵.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·支援兵.png new file mode 100644 index 000000000..150fb326e Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·支援兵.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·榴铳手.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·榴铳手.png new file mode 100644 index 000000000..2f94c68c0 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·榴铳手.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·火刃突击队.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·火刃突击队.png new file mode 100644 index 000000000..15ac53d30 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·火刃突击队.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·疗愈师.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·疗愈师.png new file mode 100644 index 000000000..1f09b14a1 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·疗愈师.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·线列军.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·线列军.png new file mode 100644 index 000000000..60db5dbfd Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·线列军.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·雷霰近卫军.png b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·雷霰近卫军.png new file mode 100644 index 000000000..899a98f82 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/愚人众特辖队·雷霰近卫军.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/打手丘丘人.png b/repo/js/OcrMonsterNum/assets/monster/打手丘丘人.png index 83f77d54f..d8d78e11b 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/打手丘丘人.png and b/repo/js/OcrMonsterNum/assets/monster/打手丘丘人.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/木盾丘丘人.png b/repo/js/OcrMonsterNum/assets/monster/木盾丘丘人.png index ef2a2d79d..40c065734 100644 Binary files a/repo/js/OcrMonsterNum/assets/monster/木盾丘丘人.png and b/repo/js/OcrMonsterNum/assets/monster/木盾丘丘人.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/深海龙溪·原种.png b/repo/js/OcrMonsterNum/assets/monster/深海龙蜥·原种.png similarity index 100% rename from repo/js/OcrMonsterNum/assets/monster/深海龙溪·原种.png rename to repo/js/OcrMonsterNum/assets/monster/深海龙蜥·原种.png diff --git a/repo/js/OcrMonsterNum/assets/monster/深海龙溪·吞雷.png b/repo/js/OcrMonsterNum/assets/monster/深海龙蜥·吞雷.png similarity index 100% rename from repo/js/OcrMonsterNum/assets/monster/深海龙溪·吞雷.png rename to repo/js/OcrMonsterNum/assets/monster/深海龙蜥·吞雷.png diff --git a/repo/js/OcrMonsterNum/assets/monster/深海龙溪·啮冰.png b/repo/js/OcrMonsterNum/assets/monster/深海龙蜥·啮冰.png similarity index 100% rename from repo/js/OcrMonsterNum/assets/monster/深海龙溪·啮冰.png rename to repo/js/OcrMonsterNum/assets/monster/深海龙蜥·啮冰.png diff --git a/repo/js/OcrMonsterNum/assets/monster/灼烜·霜夜灵嗣.png b/repo/js/OcrMonsterNum/assets/monster/灼烜·霜夜灵嗣.png new file mode 100644 index 000000000..48001942a Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/灼烜·霜夜灵嗣.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/荒野幽徒.png b/repo/js/OcrMonsterNum/assets/monster/荒野幽徒.png new file mode 100644 index 000000000..6ea593012 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/荒野幽徒.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/荒野狂狩士.png b/repo/js/OcrMonsterNum/assets/monster/荒野狂狩士.png new file mode 100644 index 000000000..9fcda3062 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/荒野狂狩士.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/蔓结·霜夜灵嗣.png b/repo/js/OcrMonsterNum/assets/monster/蔓结·霜夜灵嗣.png new file mode 100644 index 000000000..8ece042c3 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/蔓结·霜夜灵嗣.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/蕴光刃犀.png b/repo/js/OcrMonsterNum/assets/monster/蕴光刃犀.png new file mode 100644 index 000000000..0ad2a7c13 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/蕴光刃犀.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/蕴光奇羊.png b/repo/js/OcrMonsterNum/assets/monster/蕴光奇羊.png new file mode 100644 index 000000000..1d08b3d5d Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/蕴光奇羊.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/蕴光月幻蝶.png b/repo/js/OcrMonsterNum/assets/monster/蕴光月幻蝶.png new file mode 100644 index 000000000..25a90d507 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/蕴光月幻蝶.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/蕴光璇蛸.png b/repo/js/OcrMonsterNum/assets/monster/蕴光璇蛸.png new file mode 100644 index 000000000..42970e419 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/蕴光璇蛸.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/辉电·霜夜灵嗣.png b/repo/js/OcrMonsterNum/assets/monster/辉电·霜夜灵嗣.png new file mode 100644 index 000000000..3a91ebcb6 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/辉电·霜夜灵嗣.png differ diff --git a/repo/js/OcrMonsterNum/assets/monster/重拳出击鸭.png b/repo/js/OcrMonsterNum/assets/monster/重拳出击鸭.png new file mode 100644 index 000000000..1fb7a9fd0 Binary files /dev/null and b/repo/js/OcrMonsterNum/assets/monster/重拳出击鸭.png differ diff --git a/repo/js/OcrMonsterNum/main.js b/repo/js/OcrMonsterNum/main.js index f543066b0..1f753cc10 100644 --- a/repo/js/OcrMonsterNum/main.js +++ b/repo/js/OcrMonsterNum/main.js @@ -1,130 +1,193 @@ -(async function () { - // 1. 初始化(分辨率由游戏环境自动提供) - // 输出当前系统时间到 monster_count.txt 文件 - const now = new Date(); - const formattedTime = now.toLocaleString('zh-CN', { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }).replace(/\//g, '.'); - const storagePath = "monster_count.txt"; // 结果存储文件 - const timeContent = `\n${formattedTime}\n`; - file.writeTextSync(storagePath, timeContent, true); // 追加模式 +async function getMonsterCounts() { + /* 0. 读取怪物列表 */ + const raw = file.readTextSync('assets/info.json'); + const monsterList = JSON.parse(raw).map(it => it.name); + const monsterCounts = {}; - await genshin.returnMainUi(); // 返回主界面 - keyPress("VK_ESCAPE"); // 打开派蒙菜单 - await sleep(1500); // 等待1.5秒 + /* 1. 外层循环:最多 3 次进入生物志 */ + let attempt = 0; + while (attempt < 3) { + attempt++; + log.info(`第 ${attempt} 次尝试进入生物志`); + await genshin.returnMainUi(); + keyPress('VK_ESCAPE'); + await sleep(1500); - // 2. 识别并点击【图鉴】 - const archiveTemplate = RecognitionObject.TemplateMatch( - file.readImageMatSync("assets/RecognitionObject/图鉴.png"), - 0, 0, 1920, 1080 - ); - const archiveRegion = captureGameRegion().find(archiveTemplate); - if (!archiveRegion.isEmpty()) { - archiveRegion.click(); + const archiveTpl = RecognitionObject.TemplateMatch( + file.readImageMatSync('assets/RecognitionObject/图鉴.png'), 0, 0, 1920, 1080); + if (!(await findAndClick(archiveTpl))) continue; + + const faunaTpl = RecognitionObject.TemplateMatch( + file.readImageMatSync('assets/RecognitionObject/生物志.png'), 0, 0, 1920, 1080); + if (!(await findAndClick(faunaTpl))) continue; + + click(1355, 532); + await sleep(2000); + break; } - await sleep(3000); // 等待3秒 - - // 3. 识别并点击【生物志】 - const faunaTemplate = RecognitionObject.TemplateMatch( - file.readImageMatSync("assets/RecognitionObject/生物志.png"), - 0, 0, 1920, 1080 - ); - const faunaRegion = captureGameRegion().find(faunaTemplate); - if (!faunaRegion.isEmpty()) { - faunaRegion.click(); + if (attempt >= 3) { + log.error('连续 3 次无法进入生物志,脚本终止'); + await genshin.returnMainUi(); + return {}; } - await sleep(400); - click(1355, 532); - await sleep(2000); // 等待2秒 - // 4. 循环处理怪物识别 - // 读取 name.txt 文件中的怪物名称列表 - const monsterList = file.readTextSync("name.txt").split('\n').filter(name => name.trim()!== ''); - let monsterNum = 1; - - for (const monsterId of monsterList) { - let pageTurns = 0; - let monsterRegion = null; - - while (pageTurns < 70) { - // 4a. 识别怪物图片 - const monsterTemplate = RecognitionObject.TemplateMatch( - file.readImageMatSync(`assets/monster/${monsterId.trim()}.png`), - 0, 0, 1920, 1080 - ); - monsterRegion = captureGameRegion().find(monsterTemplate); - - if (!monsterRegion.isEmpty()) { - break; // 识别到怪物,跳出翻页循环 + /* ===== 工具函数 ===== */ + async function findAndClick(target, maxAttempts = 20) { + for (let attempts = 0; attempts < maxAttempts; attempts++) { + const gameRegion = captureGameRegion(); + try { + const result = gameRegion.find(target); + if (result.isExist()) { + result.click(); + return true; // 成功立刻返回 + } + } catch (err) { + } finally { + gameRegion.dispose(); } + if (attempts < maxAttempts - 1) { // 最后一次不再 sleep + await sleep(50); + } + } + //log.error("已达到重试次数上限,仍未找到目标"); + return false; + } - // 未识别到则翻页 - await scrollPage(300); // 调用翻页函数 - pageTurns++; + async function scrollPage(totalDistance, stepDistance = 10, delayMs = 5) { + moveMouseTo(400, 750); // 移动到屏幕水平中心,垂直750坐标 + await sleep(50); + leftButtonDown(); + + // 计算滚动方向和总步数 + const isDownward = totalDistance < 0; // 如果totalDistance为负数,则向下滑动 + const steps = Math.ceil(Math.abs(totalDistance) / stepDistance); // 使用绝对值计算步数 + + for (let j = 0; j < steps; j++) { + const remainingDistance = Math.abs(totalDistance) - j * stepDistance; + const moveDistance = remainingDistance < stepDistance ? remainingDistance : stepDistance; + + // 根据滚动方向调整移动方向 + const direction = isDownward ? 1 : -1; // 向下滑动为正方向,向上滑动为负方向 + moveMouseBy(0, 1.2 * direction * moveDistance); // 根据方向调整滚动方向 + await sleep(delayMs); } - if (!monsterRegion || monsterRegion.isEmpty()) { - log.info(`Monster ID: ${monsterId.trim()}, not found after 70 page turns.`); - continue; // 达到翻页上限仍未找到,处理下一个怪物 - } + await sleep(200); + leftButtonUp(); + await sleep(500); + } - monsterRegion.click(); // 点击怪物图标 - await sleep(10); // 等待界面加载 + async function readKillCount(maxTry = 5) { + const ocrObj = RecognitionObject.Ocr(865, 980, 150, 50); + for (let t = 0; t < maxTry; t++) { + const region = captureGameRegion(); + const results = region.findMulti(ocrObj); + region.dispose(); - // 4b. 识别数量区域(870,1000,100,30) - const countRegion = new ImageRegion( - captureGameRegion().SrcMat, - 830, 980, - null, // owner 参数设置为 null - null, // converter 参数设置为 null - null // drawContent 参数设置为 null - ); - // 创建OCR识别对象 - const ocrObject = RecognitionObject.Ocr(830, 980, 140, 70); - const countResults = countRegion.findMulti(ocrObject); - let monsterCount = "-1"; - - if (countResults.count > 0) { - for (let i = 0; i < countResults.count; i++) { - const text = countResults[i].text; - const numbers = text.match(/\d+/); - if (numbers) { - monsterCount = numbers[0]; - break; + for (let i = 0; i < results.count; i++) { + const str = results[i].text.trim(); + // 必须是纯数字 + if (/^\d+$/.test(str)) { + return { success: true, count: parseInt(str, 10) }; } } + if (t < maxTry - 1) await sleep(200); // 最后一次不重试 + } + return { success: false, count: -1 }; + } + + async function readKillCountStable(prevCount, sameTolerance = 5) { + let lastCount = -1; + for (let r = 0; r < sameTolerance; r++) { + await sleep(50 * r); + //log.info(`执行第${r}次ocr`) + const ocrRet = await readKillCount(5); + if (!ocrRet.success) break; // 真的读不到数字就放弃 + lastCount = ocrRet.count; + + if (lastCount !== prevCount) return { success: true, count: lastCount }; // 变了→成功 + } + // 3 次仍相同→返回最后一次相同值 + return { success: true, count: lastCount }; + } + + + async function findMonsterIcon(monsterId, iconRetry = 3) { + const tpl = RecognitionObject.TemplateMatch( + file.readImageMatSync(`assets/monster/${monsterId.trim()}.png`), 130, 80, 670, 970); + let pageTurnsUp = 0; + while (pageTurnsUp < 1) { + let pageTurns = 0; + while (pageTurns < 2) { + //log.info("执行一次模板识别"); + if (await findAndClick(tpl, iconRetry)) return true; + await scrollPage(300); + pageTurns++; + } + for (let j = 0; j < 2; j++) { + await scrollPage(-300); + } + pageTurnsUp++; + } + return false; + } + + /* ===== 主循环 ===== */ + let prevCount = -1; // 上一轮 OCR 结果 + let retryMask = 0; // 位掩码:第 i 位为 1 表示已回退过 + let prevFinalCount = -1; // 上一只怪物的最终击杀数 + + for (let i = 0; i < monsterList.length; i++) { + const monsterId = monsterList[i]; + let time0 = new Date(); + /* 1. 找怪 + OCR */ + if (!(await findMonsterIcon(monsterId, 3))) { + log.info(`怪物: ${monsterId.trim()}, 未找到图标`); + monsterCounts[monsterId.trim()] = -1; + prevCount = -1; // 重置 + continue; + } + let time1 = new Date(); + //log.info(`寻找图标用时${time1 - time0}`); + /* 2. OCR:与上一只结果比较,原地重试 3 次 */ + const ocr = await readKillCountStable(prevFinalCount, 3); + const count = ocr.success ? ocr.count : -1; + let time2 = new Date(); + //log.info(`ocr用时${time2 - time1}`); + /* 2. 结果相同且本行还没回退过 → 回退一次 */ + if (count === prevCount && !(retryMask & (1 << i))) { + retryMask |= (1 << i); // 标记已回退 + i--; // 回退同一 i 一次 + continue; } - // 4c. 输出日志 - log.info(`NO.${monsterNum} 怪物名称: ${monsterId.trim()}, 数量: ${monsterCount}`); - monsterNum++; + /* 3. 正常记录 */ + monsterCounts[monsterId.trim()] = count; + log.info(`怪物: ${monsterId.trim()}, 数量: ${count}`); + prevCount = count; + prevFinalCount = count; // 记录本次最终值,供下一只比对 + } + return monsterCounts; +} - // 4d. 存储结果到文件 - const writeContent = `${monsterId.trim()},${monsterCount}\n`; - file.writeTextSync(storagePath, writeContent, true); // 追加模式 + +(async function () { + const monsterCounts = await getMonsterCounts(); + + /* 1. 控制台打印 */ + log.info("怪物数量统计结果:"); + for (const [monsterName, count] of Object.entries(monsterCounts)) { + log.info(`${monsterName}: ${count}`); + } + + /* 2. 写入 record.txt(JSON)*/ + try { + const filePath = 'record.txt'; + const json = JSON.stringify(monsterCounts, null, 2); + await file.writeText(filePath, json, false); + log.info(`结果已写入 ${filePath}`); + } catch (error) { + log.error(`写入 record.txt 时出错: ${error.message}`); } })(); -// 翻页函数(优化坐标为屏幕中心) -async function scrollPage(totalDistance, stepDistance = 10, delayMs = 5) { - moveMouseTo(400, 750); // 移动到屏幕水平中心,垂直750坐标 - await sleep(50); - leftButtonDown(); - - const steps = Math.ceil(totalDistance / stepDistance); - for (let j = 0; j < steps; j++) { - const remainingDistance = totalDistance - j * stepDistance; - const moveDistance = remainingDistance < stepDistance ? remainingDistance : stepDistance; - moveMouseBy(0, 1.2*(-moveDistance)); // 向上滚动 - await sleep(delayMs); - } - - await sleep(200); - leftButtonUp(); - await sleep(100); -} \ No newline at end of file diff --git a/repo/js/OcrMonsterNum/manifest.json b/repo/js/OcrMonsterNum/manifest.json index a61a51c9f..fc134ea3e 100644 --- a/repo/js/OcrMonsterNum/manifest.json +++ b/repo/js/OcrMonsterNum/manifest.json @@ -5,6 +5,10 @@ "bgi_version": "0.45.1", "description": "", "authors": [ + { + "name": "mno", + "links": "https://github.com/Bedrockx" + }, { "name": "Tool_tingsu", "links": "https://github.com/Tooltingsu" diff --git a/repo/js/OcrMonsterNum/monster_count.txt b/repo/js/OcrMonsterNum/monster_count.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/repo/js/OcrMonsterNum/name.txt b/repo/js/OcrMonsterNum/name.txt deleted file mode 100644 index 012a8bf5a..000000000 --- a/repo/js/OcrMonsterNum/name.txt +++ /dev/null @@ -1,290 +0,0 @@ -火史莱姆 -大型火史莱姆 -水史莱姆 -大型水史莱姆 -风史莱姆 -大型风史莱姆 -雷史莱姆 -大型冷史莱姆 -变异雷史莱姆 -草史莱姆 -大型草史莱姆 -冰史莱姆 -大型冰史莱姆 -岩史莱姆 -大型岩史莱姆 -狂风之核 -无相之火 -无相之水 -无相之风 -无相之雷 -无相之草 -无相之冰 -无相之岩 -纯水精灵 -雷音权现 -火飘浮灵 -水飘浮灵 -风飘浮灵 -雷飘浮灵 -草飘浮灵 -冰飘浮灵 -岩飘浮灵 -浊水粉碎幻灵 -浊水喷吐幻灵 -水形幻人 -丘丘人 -打手丘丘人 -冲锋丘丘人 -木盾丘丘人 -冰盾丘丘人 -岩盾丘丘人 -射手丘丘人 -火箭丘丘人 -雷箭丘丘人 -冰箭丘丘人 -爆弹丘丘人 -雷弹丘丘人 -冰弹丘丘人 -奇怪的丘丘人 -木盾丘丘暴徒 -岩盾丘丘暴徒 -冰盾丘丘暴徒 -火斧丘丘暴徒 -雷斧丘丘暴徒 -丘丘雷兜王 -丘丘霜铠王 -丘丘岩盔王 -水丘丘萨满 -风丘丘萨满 -雷丘丘萨满 -草丘丘萨满 -冰丘丘萨满 -岩丘丘萨满 -丘丘水行游侠 -丘丘风行游侠 -火深渊法师 -水深渊法师 -雷深渊法师 -冰深渊法师 -深渊使徒·激流 -深渊使徒·霜落 -深渊咏者·渊火 -深渊咏者·紫电 -深罪浸礼者 -嗜岩·兽境幼兽 -嗜雷·兽境幼兽 -嗜岩·兽境猎犬 -嗜雷·兽境猎犬 -黄金王兽 -黯色空壳·旗令 -黯色空壳·破阵 -黯色空壳·近卫 -黑蛇骑士·斩风之剑 -黑蛇骑士·摧岩之钺 -大型碎石隙境原体 -碎石隙境原体 -大型狂蔓隙境原体 -狂蔓隙境原体 -深邃拟覆叶 -深邃摹结株 -愚人众先遣队·火统游击兵 -愚人众先遣队·水铳重卫士 -愚人众先遣队·风拳前锋军 -愚人众先遣队·雷锤前锋军 -愚人众先遣队·冰铳重卫士 -愚人众先遣队·岩使游击兵 -愚人众·火之债务处理人 -愚人众·雷莹术士 -愚人众·冰萤术士 -愚人众·藏镜仕女 -愚人众·风役人 -愚人众·霜役人 -遗迹守卫 -遗迹猎者 -遗迹重机 -遗迹巨蛇 -遗迹巡弋者 -遗迹歼击者 -遗迹防卫者 -遗迹侦察者 -恒常机关阵列 -遗迹龙兽·地巡 -遗迹龙兽·空巡 -兆载永劫龙兽 -元能构装体·力场发生器 -元能构装体·重塑仪 -元能构装体·勘探机 -半永恒统辖矩阵 -机关·侦察记录型 -机关·算力增幅器 -机关·水下勘测型 -机关·地质勘探型 -机关·水下巡游型 -机关·深海攻击型 -机关·灵活采集型 -机关·区域警戒型 -攻坚特化型机关 -压制特化型机关 -歼灭特化型机关 -建造特化型机关 -冰风组曲 -实验性场力发生装置 -魔偶剑鬼 -秘源机兵·寻捕械 -秘源机兵·构型械 -秘源机兵·统御械 -盗宝团·斥候 -盗宝团·火之药剂师 -盗宝团·水之药剂师 -盗宝团·雷之药剂师 -盗宝团·冰之药剂师 -盗宝团·杂工 -盗宝团·神射手 -盗宝团·掘墓者 -盗宝团·海上男儿 -盗宝团·拳术家 -盗宝团·粉碎者 -野伏·阵刀番 -野伏·火伏番 -野伏·机巧番 -海乱鬼·炎威 -海乱鬼·雷腾 -镀金旅团·阵前斧手 -镀金旅团·机弩兵 -镀金旅团·鸦喙戟手 -镀金旅团·破阵者 -镀金旅团·刀舞者 -镀金旅团·沙中净水 -镀金旅团·炽阳凝冰 -镀金旅团·白日鸣雷 -镀金旅团·灵风猎手 -镀金旅团·魔岩役使 -镀金旅团·炽沙叙事人 -镀金旅团·叶轮舞者 -铸砂勇士·叩问人 -铸砂勇士·碎盾者 -铸砂勇士·投矛手 -疾讯勇士·引索客 -疾讯勇士·荡风斥候 -疾讯勇士·重刃讯使 -流刃勇士·游击人 -流刃勇士·锯脂者 -流刃勇士·掷叉猎手 -结羽勇士·腾空士 -结羽勇士·削羽人 -结羽勇士·驭空客 -灵觉勇士·执意师 -灵觉勇士·控念师 -灵觉勇士·冥思者 -横蛮勇士·冲撞手 -横蛮勇士·摔跤客 -横蛮勇士·抓扑人 -嵴锋龙武士·碎晶打者 -嵴锋龙武士·破岩锐刃 -匿叶龙武士·旋锯飞叶 -匿叶龙武士·流火鸣空 -鳍游龙武士·穿浪之梭 -鳍游龙武士·裂礁之涛 -绒翼龙武士·膛星之锤 -绒翼龙武士·长空明焰 -暝视龙武士·寒涌持者 -暝视龙武士·冰晶炮手 -突角龙武士·破空轰动 -突角龙武士·追缉灵光 -灵觉隐修的迷者 -炽热骗骗花 -电气骗骗花 -冰霜骗骗花 -爆炎树 -掣电树 -急冻树 -幼岩龙蜥 -岩龙蜥 -古岩龙蜥 -深海龙溪·原种 -深海龙溪·啮冰 -深海龙溪·吞雷 -水萤 -雷萤 -冰萤 -浮游水蕈兽 -浮游风蕈兽 -浮游草蕈兽 -旋转火蕈兽 -旋转雷蕈兽 -旋转冰蕈兽 -伸缩火蕈兽 -伸缩风蕈兽 -伸缩雷蕈兽 -伸缩岩蕈兽 -陆行水本真蕈 -有翼草本真蕈 -有翼冰本真蕈 -陆行岩本真蕈 -翠翎恐蕈 -圣骸角鳄 -圣骸牙兽 -圣骸赤鹫 -圣骸毒蝎 -圣骸飞蛇 -风蚀沙虫 -膨膨兽 -猎刀鳐·绿 -猎刀鳐·蓝 -重甲蟹·红 -重甲蟹·绿 -坚盾重甲蟹 -铁甲熔火帝皇 -帽子水母·黄 -帽子水母·蓝 -泡泡海马·紫 -泡泡海马·蓝 -泡泡海马·褐 -泡泡雄海马 -千年珍珠骏麟 -球球章鱼·红 -球球章鱼·褐 -天使海兔·蓝 -天使海兔·红 -大天使海兔 -玄文兽 -隐山猊兽 -魔像禁卫 -魔像督军 -幼嵴锋龙 -嵴锋龙 -幼鳍游龙 -鳍游龙 -幼匿叶龙 -匿叶龙 -贪食匿叶龙山王 -幼绒翼龙 -绒翼龙 -金焰绒翼龙暴君 -幼暝视龙 -暝视龙 -幼突角龙 -突角龙 -熔岩游像·蚀土者 -熔岩游像·流燃体 -熔岩辉龙像 -窟岩·大灵显化身 -溯流·大灵显化身 -疾叶·大灵显化身 -凛冽·大灵显化身 -焚燃·大灵显化身 -雳震·大灵显化身 -炉壳山鼬 -裂空的魔龙 -北风的王狼,奔狼的领主 -「公子」 -若陀龙王 -「女士」 -祸津御建鸣神命 -「正机之神」 -阿佩普的绿洲守望者 -吞星之鲸 -「仆人」 -蚀灭的源焰之主 -门扉前的弈局 \ No newline at end of file