diff --git a/public/project/floors/MT14.js b/public/project/floors/MT14.js index e065899..6272456 100644 --- a/public/project/floors/MT14.js +++ b/public/project/floors/MT14.js @@ -105,7 +105,7 @@ main.floors.MT14= "true": [ { "type": "function", - "function": "function(){\ndelete flags.__bgm__;\n}" + "function": "function(){\ndelete flags.__bgm__;\ndelete flags.MT14Jump;\ndelete flags['MT14@24@7@A'];\ndelete flags.finishChase1;\ndelete flags.cave;\n}" }, { "type": "confirm", @@ -359,6 +359,11 @@ main.floors.MT14= } ] } + }, + "7,1": { + "0": null, + "1": null, + "2": null } }, "cannotMove": {}, diff --git a/public/project/floors/MT21.js b/public/project/floors/MT21.js index 6cef70f..68e1872 100644 --- a/public/project/floors/MT21.js +++ b/public/project/floors/MT21.js @@ -136,7 +136,7 @@ main.floors.MT21= "\t[初级智人]\b[up,hero]或许智慧结晶会告诉我答案吧。", { "type": "function", - "function": "function(){\ncore.showChapter('第二章 智慧');\ncore.removeMaps('tower1', 'tower7', true);\n}" + "function": "function(){\ncore.showChapter('第二章 智慧');\ncore.removeMaps('tower1', 'tower7', true);\ndelete flags.tower1;\ndelete flags.wordsTimeOut;\ndelete flags.boom;\ndelete flags.booming;\n}" }, { "type": "setValue", diff --git a/public/project/floors/MT22.js b/public/project/floors/MT22.js index b25c2d5..2374893 100644 --- a/public/project/floors/MT22.js +++ b/public/project/floors/MT22.js @@ -40,7 +40,7 @@ main.floors.MT22= "第二章的加点已开启,可以在技能树的前置技能下方选择", "注意学习是一个非常重要的技能,需要尽快点开", "如果你玩过上个版本,直接跳到了本章,记得查看背包里面的各种道具,尤其是百科全书,同时注意左边是你来的方向,那里还有些怪物", - "从现在开始,跳跃技能不再消耗生命值" + "从现在开始,跳跃技能不再消耗生命值,别忘了你还有跳跃技能" ], "7,9": [ "百科全书中已解锁第二章需要特别说明的怪物属性,你可以在百科全书中查看" diff --git a/public/project/floors/MT32.js b/public/project/floors/MT32.js index 8819ce0..c285a6d 100644 --- a/public/project/floors/MT32.js +++ b/public/project/floors/MT32.js @@ -24,11 +24,20 @@ main.floors.MT32= "events": { "0,7": [ { - "type": "changeFloor", - "floorId": "MT31", - "loc": [ - 14, - 7 + "type": "if", + "condition": "(flag:inWinter2===true)", + "true": [ + "\t[初级智人]\b[up,hero]没必要回去了" + ], + "false": [ + { + "type": "changeFloor", + "floorId": "MT31", + "loc": [ + 14, + 7 + ] + } ] } ], diff --git a/public/project/floors/MT33.js b/public/project/floors/MT33.js index 3996c06..296445e 100644 --- a/public/project/floors/MT33.js +++ b/public/project/floors/MT33.js @@ -24,6 +24,20 @@ main.floors.MT33= 14, 6 ] + }, + "14,3": { + "floorId": "MT34", + "loc": [ + 0, + 3 + ] + }, + "9,0": { + "floorId": "MT35", + "loc": [ + 7, + 14 + ] } }, "beforeBattle": {}, diff --git a/public/project/floors/MT34.js b/public/project/floors/MT34.js index d03ccf5..4858ec0 100644 --- a/public/project/floors/MT34.js +++ b/public/project/floors/MT34.js @@ -1,45 +1,147 @@ main.floors.MT34= { -"floorId": "MT34", -"title": "冰封雪原", -"name": "冰封雪原", -"width": 15, -"height": 15, -"canFlyTo": true, -"canFlyFrom": true, -"canUseQuickShop": true, -"cannotViewMap": false, -"images": [], -"ratio": 8, -"defaultGround": "T580", -"bgm": "winter.mp3", -"firstArrive": [], -"eachArrive": [], -"parallelDo": "", -"events": {}, -"changeFloor": {}, -"beforeBattle": {}, -"afterBattle": {}, -"afterGetItem": {}, -"afterOpenDoor": {}, -"autoEvent": {}, -"cannotMove": {}, -"cannotMoveIn": {}, -"map": [ - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "floorId": "MT34", + "title": "冰封雪原", + "name": "冰封雪原", + "width": 15, + "height": 15, + "canFlyTo": true, + "canFlyFrom": true, + "canUseQuickShop": true, + "cannotViewMap": false, + "images": [], + "ratio": 8, + "defaultGround": "T580", + "bgm": "winter.mp3", + "firstArrive": [], + "eachArrive": [], + "parallelDo": "", + "events": {}, + "changeFloor": { + "0,3": { + "floorId": "MT33", + "loc": [ + 14, + 3 + ] + } + }, + "beforeBattle": {}, + "afterBattle": { + "6,2": [ + { + "type": "setValue", + "name": "flag:door_MT34_9_3", + "operator": "+=", + "value": "1" + } + ], + "8,2": [ + { + "type": "setValue", + "name": "flag:door_MT34_9_3", + "operator": "+=", + "value": "1" + } + ], + "8,4": [ + { + "type": "setValue", + "name": "flag:door_MT34_9_3", + "operator": "+=", + "value": "1" + } + ], + "6,4": [ + { + "type": "setValue", + "name": "flag:door_MT34_9_3", + "operator": "+=", + "value": "1" + } + ] + }, + "afterGetItem": {}, + "afterOpenDoor": {}, + "autoEvent": { + "9,3": { + "0": { + "condition": "flag:door_MT34_9_3==4", + "currentFloor": true, + "priority": 0, + "delayExecute": false, + "multiExecute": false, + "data": [ + { + "type": "openDoor" + }, + { + "type": "setValue", + "name": "flag:door_MT34_9_3", + "operator": "=", + "value": "null" + } + ] + } + } + }, + "cannotMove": {}, + "cannotMoveIn": {}, + "map": [ + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147, 0, 0, 0, 0, 0,514, 0,514,147,420, 21,147,147,147], + [ 92, 0,376,484,378, 0, 0, 0, 0, 85,487,441,147,147,147], + [147, 0, 0, 0, 0, 0,514, 0,514,147,430, 21,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147], + [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147] +], + "bgmap": [ + +], + "fgmap": [ + [584,584,584,584,584,584,584,584,584,584,584,584,584,584, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,584, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,584, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,584, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,584, 0], + [584,584,584,584,584,584,584,584,584,584,584,584,584,584, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0,582,582,582, 0, 0,586, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0,582,582,582, 0, 0, 0,586,586,586, 0,146,146, 0], + [ 0,587,587,587,587,587,587, 0, 0, 0, 0, 0,146,146,146], + [ 0, 0, 0, 0, 0, 0,587,587, 0, 0, 0, 0,146,146,146], + [ 0, 0, 0, 0, 0, 0, 0,587,587, 0, 0,146,146,146,146], + [ 0, 0,581,581,581, 0, 0, 0, 0, 0, 0,146,146,146, 0], + [ 0, 0, 0, 0,581,581, 0, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ], + "bg2map": [ + +], + "fg2map": [ + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,70182,70183, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,70190,70191, 0], + [ 0, 0,70136,70137,70138,70139, 0, 0, 0, 0, 0, 0,70198,70199, 0], + [ 0, 0,70144,70145,70146,70147, 0, 0, 0, 0, 0, 0,70206,70207, 0], + [ 0, 0,70152,70153,70154,70155, 0, 0, 0, 0, 0, 0,70214,70215, 0], + [ 0, 0,70160,70161,70162,70163, 0, 0, 0,70140,70141,70142,70143, 0, 0], + [ 0, 0,70168,70169,70170,70171, 0, 0, 0,70148,70149,70150,70151, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0,70156,70157,70158,70159, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0,70164,70165,70166,70167, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0,70172,70173,70174,70175, 0, 0] +] } \ No newline at end of file diff --git a/public/project/floors/MT35.js b/public/project/floors/MT35.js index 9ac6357..5c675a3 100644 --- a/public/project/floors/MT35.js +++ b/public/project/floors/MT35.js @@ -1,39 +1,219 @@ main.floors.MT35= { -"floorId": "MT35", -"title": "冰封雪原", -"name": "冰封雪原", -"width": 15, -"height": 15, -"canFlyTo": true, -"canFlyFrom": true, -"canUseQuickShop": true, -"cannotViewMap": false, -"images": [], -"ratio": 8, -"defaultGround": "T580", -"bgm": "winter.mp3", -"firstArrive": [], -"eachArrive": [], -"parallelDo": "", -"events": {}, -"changeFloor": {}, -"beforeBattle": {}, -"afterBattle": {}, -"afterGetItem": {}, -"afterOpenDoor": {}, -"autoEvent": {}, -"cannotMove": {}, -"cannotMoveIn": {}, -"map": [ - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "floorId": "MT35", + "title": "冰封雪原", + "name": "冰封雪原", + "width": 15, + "height": 15, + "canFlyTo": true, + "canFlyFrom": true, + "canUseQuickShop": true, + "cannotViewMap": false, + "images": [], + "ratio": 8, + "defaultGround": "T580", + "bgm": "winter.mp3", + "firstArrive": [], + "eachArrive": [], + "parallelDo": "", + "events": { + "10,1": { + "trigger": "action", + "enable": true, + "noPass": null, + "displayDamage": true, + "opacity": 1, + "filter": { + "blur": 0, + "hue": 0, + "grayscale": 0, + "invert": false, + "shadow": 0 + }, + "data": [ + "你来这干什么", + { + "type": "if", + "condition": "core.getBlock(10,1)", + "true": [ + "把怪踢到这了,想打?", + "没门!", + "你别想过漏怪检测了,啊哈哈哈哈!" + ] + } + ] + }, + "4,1": { + "trigger": "action", + "enable": true, + "noPass": null, + "displayDamage": true, + "opacity": 1, + "filter": { + "blur": 0, + "hue": 0, + "grayscale": 0, + "invert": false, + "shadow": 0 + }, + "data": [ + "你来这干什么", + { + "type": "if", + "condition": "core.getBlock(4,1)", + "true": [ + "把怪踢到这了,想打?", + "没门!", + "你别想过漏怪检测了,啊哈哈哈哈!" + ] + } + ] + }, + "6,13": [ + "前方漏怪检测会检测智慧小径的怪物是否清完,之后不可返回智慧小径" + ], + "7,1": [ + "这里是漏怪检测,会检测\r[gold]智慧小径\r[]区域是否有遗漏怪物", + { + "type": "function", + "function": "function(){\nconst enemy = core.getRemainEnemyString(core.floorIds.slice(30, 40));\nif (enemy.length === 0) {\n\tcore.insertAction(['当前无剩余怪物!', { \"type\": \"hide\", \"remove\": true }, ]);\n} else {\n\tcore.insertAction(enemy);\n}\n}" + } + ], + "7,0": [ + { + "type": "if", + "condition": "flag:inWinter2===true", + "true": [ + { + "type": "changeFloor", + "floorId": "MT36", + "loc": [ + 7, + 14 + ] + } + ], + "false": [ + { + "type": "setValue", + "name": "flag:inWinter2", + "value": "true" + }, + { + "type": "function", + "function": "function(){\ncore.removeMaps('MT22', 'MT31', true);\n}" + }, + { + "type": "changeFloor", + "floorId": "MT36", + "loc": [ + 7, + 14 + ] + } + ] + } + ] + }, + "changeFloor": { + "7,14": { + "floorId": "MT33", + "loc": [ + 9, + 0 + ] + } + }, + "beforeBattle": {}, + "afterBattle": { + "7,9": [ + { + "type": "setValue", + "name": "flag:door_MT35_3_9", + "operator": "+=", + "value": "1" + }, + { + "type": "setValue", + "name": "flag:door_MT35_11_9", + "operator": "+=", + "value": "1" + } + ] + }, + "afterGetItem": {}, + "afterOpenDoor": {}, + "autoEvent": { + "3,9": { + "0": { + "condition": "flag:door_MT35_3_9==1", + "currentFloor": true, + "priority": 0, + "delayExecute": false, + "multiExecute": false, + "data": [ + { + "type": "openDoor" + }, + { + "type": "setValue", + "name": "flag:door_MT35_3_9", + "operator": "=", + "value": "null" + } + ] + }, + "1": null + }, + "11,9": { + "0": { + "condition": "flag:door_MT35_11_9==1", + "currentFloor": true, + "priority": 0, + "delayExecute": false, + "multiExecute": false, + "data": [ + { + "type": "openDoor" + }, + { + "type": "setValue", + "name": "flag:door_MT35_11_9", + "value": "null" + } + ] + }, + "1": null + } + }, + "cannotMove": {}, + "cannotMoveIn": {}, + "map": [ + [585,585,585,585,585,585,585, 91,585,585,585,585,585,585,585], + [ 0, 0, 0, 0, 0, 0,585,516,585, 0, 0, 0, 0, 0, 0], + [70064,70065,70065,70065,70065,70065,585,497,585,70065,70065,70065,70065,70065,70066], + [70072,70073,70073,70073,70073,70073, 0, 0, 0,70073,70073,70073,70073,70073,70074], + [70072,70073,70073,70073,70073,70073, 0, 0, 0,70073,70073,70073,70073,70073,70074], + [70072,70073,70073,70073,70073,70073, 0, 0, 0,70073,70073,70073,70073,70073,70074], + [70072,70073,70073,70073,70073,70073, 0, 0, 0,70073,70073,70073,70073,70073,70074], + [70080,70081,70081,70081,70081,70081, 0, 0, 0,70081,70081,70081,70081,70081,70082], + [147,147,147,147,147,147, 0, 0, 0,147,147,147,147,147,147], + [147,381, 33, 85,592,147,147,595,147,147,592, 85, 33,381,147], + [147, 34,376, 0,494, 34,492, 0,492, 34,494, 0,378, 34,147], + [147,274,147,147,147,147,147, 0,147,147,147,147,147,274,147], + [147, 33,147, 28,595, 34,603, 0,602, 34,590, 27,147, 33,147], + [147, 28,603, 34,147, 28,129, 0,147, 27,147, 34,602, 27,147], + [147,147,147,147,147,147,147, 93,147,147,147,147,147,147,147] +], + "bgmap": [ + [70056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,70058], + [70056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,70058], + [70064,70054,70054,70054,70054,70054,70112,70113,70114,70054,70054,70054,70054,70054,70066], + [ 0, 0, 0, 0, 0, 0,70073,70073,70073, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70073,70073,70073, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70073,70073,70073, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70073,70073,70073, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70081,70081,70081, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], @@ -42,4 +222,27 @@ main.floors.MT35= [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ], + "fgmap": [ + +], + "bg2map": [ + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70120,70121,70122, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70120,70121,70122, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70120,70121,70122, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70120,70121,70122, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70120,70121,70122, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0,70128,70129,70130, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +], + "fg2map": [ + +] } \ No newline at end of file diff --git a/public/project/floors/empty.js b/public/project/floors/empty.js index 2d05fec..6390299 100644 --- a/public/project/floors/empty.js +++ b/public/project/floors/empty.js @@ -5,10 +5,10 @@ main.floors.empty= "name": "13", "width": 15, "height": 15, - "canFlyTo": true, - "canFlyFrom": true, - "canUseQuickShop": true, - "cannotViewMap": false, + "canFlyTo": false, + "canFlyFrom": false, + "canUseQuickShop": false, + "cannotViewMap": true, "images": [], "ratio": 1, "defaultGround": "grass", @@ -57,5 +57,6 @@ main.floors.empty= ], "fg2map": [ -] +], + "cannotMoveDirectly": false } \ No newline at end of file diff --git a/public/project/functions.js b/public/project/functions.js index f5ae988..8e7d143 100644 --- a/public/project/functions.js +++ b/public/project/functions.js @@ -232,7 +232,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { core.visitFloor(floorId); } } - if (floorId.startsWith('tower')) flags.layer = 0; }, flyTo: function (toId, callback) { // 楼层传送器的使用,从当前楼层飞往toId @@ -403,8 +402,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { var money = guards.reduce(function (curr, g) { return curr + core.material.enemys[g[2]].money; }, enemy.money); - if (core.hasItem('coin')) money *= 2; // 幸运金币:双倍 - if (core.hasFlag('curse')) money = 0; // 诅咒效果 core.status.hero.money += money; core.status.hero.statistics.money += money; @@ -412,7 +409,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { var exp = guards.reduce(function (curr, g) { return curr + core.material.enemys[g[2]].exp; }, enemy.exp); - if (core.hasFlag('curse')) exp = 0; core.status.hero.exp += exp; core.status.hero.statistics.exp += exp; @@ -433,17 +429,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { // 事件的处理 var todo = []; - // 加点事件 - var point = - guards.reduce(function (curr, g) { - return curr + core.material.enemys[g[2]].point; - }, enemy.point) || 0; - if (core.flags.enableAddPoint && point > 0) { - core.push(todo, [ - { type: 'insert', name: '加点事件', args: [point] } - ]); - } - // 战后事件 if (core.status.floorId != null) { core.push( @@ -453,26 +438,12 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { } core.push(todo, enemy.afterBattle); - // 在这里增加其他的自定义事件需求 - /* - if (enemyId=='xxx') { - core.push(todo, [ - {"type": "...", ...}, - ]); - } - */ - // 如果事件不为空,将其插入 if (todo.length > 0) core.insertAction(todo, x, y); // 因为removeBlock和hideBlock都会刷新状态栏,因此将删除部分移动到这里并保证刷新只执行一次,以提升效率 if (core.getBlock(x, y) != null) { - // 检查是否是重生怪物;如果是则仅隐藏不删除 - if (core.hasSpecial(enemy.special, 23)) { - core.hideBlock(x, y); - } else { - core.removeBlock(x, y); - } + core.removeBlock(x, y); } else { core.updateStatusBar(); } @@ -817,8 +788,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { if (typeof enemy === 'string') enemy = core.material.enemys[enemy]; // 饥渴 - if (core.hasSpecial(mon_special, 7)) + if (core.hasSpecial(mon_special, 7)) { mon_atk += (hero_atk * (enemy.hungry || 0)) / 100; + } // 智慧之源 if (core.hasSpecial(mon_special, 14) && flags.hard == 2) { diff --git a/public/project/maps.js b/public/project/maps.js index 1b52db8..75ed89f 100644 --- a/public/project/maps.js +++ b/public/project/maps.js @@ -561,5 +561,12 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "30113": {"cls":"tileset","id":"X30113","canPass":true}, "30121": {"cls":"tileset","id":"X30121","canPass":true}, "30196": {"cls":"tileset","id":"X30196","canPass":true}, - "30204": {"cls":"tileset","id":"X30204","canPass":true} + "30204": {"cls":"tileset","id":"X30204","canPass":true}, + "70065": {"cls":"tileset","id":"X70065","cannotIn":["down"],"cannotOut":["down"]}, + "70112": {"cls":"tileset","id":"X70112","cannotIn":["down"],"cannotOut":["down"]}, + "70114": {"cls":"tileset","id":"X70114","cannotIn":["down"],"cannotOut":["down"]}, + "70120": {"cls":"tileset","id":"X70120","cannotIn":["up","down","left","right"]}, + "70122": {"cls":"tileset","id":"X70122","cannotIn":["up","down","left","right"]}, + "70128": {"cls":"tileset","id":"X70128","cannotIn":["up","down","left","right"]}, + "70130": {"cls":"tileset","id":"X70130","cannotIn":["up","down","left","right"]} } \ No newline at end of file diff --git a/public/project/plugins.js b/public/project/plugins.js index d71cc9c..150b4c1 100644 --- a/public/project/plugins.js +++ b/public/project/plugins.js @@ -563,6 +563,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = { core.status.maps[floorId].forceDelete = true; flags.__forceDelete__[floorId] = true; } + deleteFlags(floorId); deleted = true; } if (deleted && !main.replayChecking) { @@ -570,6 +571,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = { } }; + function deleteFlags(floorId) { + delete flags[`jump_${floorId}`]; + delete flags[`inte_${floorId}`]; + delete flags[`loop_${floorId}`]; + } + // 恢复楼层 // core.resumeMaps("MT1", "MT300") 恢复MT1~MT300之间的全部层 // core.resumeMaps("MT10") 只恢复MT10层 @@ -4306,6 +4313,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = { */ this.slide = function (arr, delta) { if (delta === 0) return arr; + delta %= arr.length; if (delta > 0) { arr.unshift(...arr.splice(arr.length - delta, delta)); return arr; @@ -4596,7 +4604,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = { if (!core.getLocalStorage('showHalo', true)) return; const halo = core.status.checkBlock.halo; ctx.save(); - ctx.globalAlpha = 0.1; for (const [loc, range] of Object.entries(halo)) { const [x, y] = loc.split(',').map(v => parseInt(v)); for (const r of range) { @@ -4626,10 +4633,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = { ctx.fillStyle = color; ctx.strokeStyle = border ?? color; ctx.lineWidth = 1; + ctx.globalAlpha = 0.1; ctx.fillRect(left * 32, top * 32, n * 32, n * 32); ctx.globalAlpha = 0.6; ctx.strokeRect(left * 32, top * 32, n * 32, n * 32); - ctx.globalAlpha = 0.1; } } } diff --git a/src/data/desc.json b/src/data/desc.json index cb3034e..4515b83 100644 --- a/src/data/desc.json +++ b/src/data/desc.json @@ -7,7 +7,7 @@ "
", "
", "1. ", - "本百科全书字数很多,可以选择性地阅读。", + "本百科全书字数很多,可以选择性地阅读。不过本条目最好可以全部阅读一遍。", "
", "
", "2. 本百科全书的内容会随着游戏的推进而增加新内容,", @@ -34,7 +34,10 @@ "
", "
", "6. 本塔中几乎所有 ui 在打开时都会有一个0.6s的动画,如果不想要,可以在开头捡的系统设置里面关闭(默认关闭)。", - "同时,几乎所有 ui 的退出按钮都在左上角。" + "同时,几乎所有 ui 的退出按钮都在左上角。", + "
", + "
", + "7. 地图上显示的怪物临界有可能不准,当其与折线图有差异时,请以折线图为准。" ] }, "about": { diff --git a/src/panel/enemyCritical.vue b/src/panel/enemyCritical.vue index 2fe3773..eb300be 100644 --- a/src/panel/enemyCritical.vue +++ b/src/panel/enemyCritical.vue @@ -122,7 +122,7 @@ const allDef = ref(originDef); const addAtk = ref(0); const addDef = ref(0); -const originDamage = core.getDamageInfo(enemy, void 0, x.value, y.value); +const originDamage = core.getDamageInfo(enemy.id, void 0, x.value, y.value); // 转发core上的内容至当前作用域 const format = core.formatBigNumber; @@ -130,7 +130,7 @@ const ratio = core.status.thisMap.ratio; const nowDamage = computed(() => { const dam = core.getDamageInfo( - enemy, + enemy.id, { atk: core.getStatus('atk') + addAtk.value * ratio, def: core.getStatus('def') + addDef.value * ratio diff --git a/src/plugin/chase/chase.ts b/src/plugin/chase/chase.ts index 45fff52..17837d2 100644 --- a/src/plugin/chase/chase.ts +++ b/src/plugin/chase/chase.ts @@ -210,6 +210,9 @@ export class Chase { this.ani.ticker.destroy(); delete flags.onChase; delete flags.chase; + delete flags.chaseTime; + delete flags.chaseHard; + delete flags.chaseIndex; flags.__lockViewport__ = false; core.deleteCanvas('chasePath'); } diff --git a/src/plugin/ui/fixed.ts b/src/plugin/ui/fixed.ts index e7cb0fc..85be6c5 100644 --- a/src/plugin/ui/fixed.ts +++ b/src/plugin/ui/fixed.ts @@ -6,12 +6,15 @@ export const showFixed = ref(false); let lastId: EnemyIds; -const show = debounce((ev: MouseEvent, mx: number, my: number, e: AllIds) => { +const show = debounce((ev: MouseEvent) => { if (!window.flags) return; if (!flags.mouseLoc) return; flags.clientLoc = [ev.clientX, ev.clientY]; + const [mx, my] = getLocFromMouseLoc(...flags.mouseLoc); + const e = core.getBlockId(mx, my); if (e !== lastId) showFixed.value = false; if (!e || !core.getClsFromId(e)?.startsWith('enemy')) return; + lastId = e as EnemyIds; const enemy = core.material.enemys[e as EnemyIds]; const detail = getDetailedEnemy(enemy, mx, my); @@ -22,14 +25,12 @@ const show = debounce((ev: MouseEvent, mx: number, my: number, e: AllIds) => { export default function init() { const data = core.canvas.data.canvas; data.addEventListener('mousemove', ev => { - if (!core.isPlaying()) return; - const [x, y] = flags.mouseLoc; - const mx = Math.round(x + core.bigmap.offsetX / 32); - const my = Math.round(y + core.bigmap.offsetY / 32); + if (!core.isPlaying() || core.status.lockControl) return; + const [mx, my] = getLocFromMouseLoc(...flags.mouseLoc); const e = core.getBlockId(mx, my); if (e !== lastId) showFixed.value = false; if (!e) return; - show(ev, mx, my, e); + show(ev); }); return { @@ -37,6 +38,12 @@ export default function init() { }; } +export function getLocFromMouseLoc(x: number, y: number): LocArr { + const mx = Math.round(x + core.bigmap.offsetX / 32); + const my = Math.round(y + core.bigmap.offsetY / 32); + return [mx, my]; +} + export function getDetailedEnemy( enemy: Enemy, x: number, @@ -45,12 +52,13 @@ export function getDetailedEnemy( ): DetailedEnemy { const ratio = core.status.maps[floorId].ratio; const enemyInfo = Object.assign( - core.getEnemyInfo(enemy, void 0, x, y), - core.getDamageInfo(enemy, void 0, x, y) ?? {}, - enemy + {}, + enemy, + core.getEnemyInfo(enemy, void 0, x, y, floorId), + core.getDamageInfo(enemy, void 0, x, y, floorId) ?? {} ); - const critical = core.nextCriticals(enemy, 1, x, y); - const defDamage = core.getDefDamage(enemy, ratio, x, y); + const critical = core.nextCriticals(enemy, 1, x, y, floorId); + const defDamage = core.getDefDamage(enemy, ratio, x, y, floorId); const specialText = core.getSpecialText(enemyInfo); let toShowSpecial = cloneDeep(specialText); if (toShowSpecial.length > 2) { diff --git a/src/source/cls.d.ts b/src/source/cls.d.ts index e90a8da..4624b31 100644 --- a/src/source/cls.d.ts +++ b/src/source/cls.d.ts @@ -561,4 +561,11 @@ interface IdToCls { X30121: 'tileset'; X30196: 'tileset'; X30204: 'tileset'; + X70065: 'tileset'; + X70112: 'tileset'; + X70114: 'tileset'; + X70120: 'tileset'; + X70122: 'tileset'; + X70128: 'tileset'; + X70130: 'tileset'; } \ No newline at end of file diff --git a/src/source/maps.d.ts b/src/source/maps.d.ts index bac1280..f2a4699 100644 --- a/src/source/maps.d.ts +++ b/src/source/maps.d.ts @@ -561,6 +561,13 @@ interface IdToNumber { X30121: 30121; X30196: 30196; X30204: 30204; + X70065: 70065; + X70112: 70112; + X70114: 70114; + X70120: 70120; + X70122: 70122; + X70128: 70128; + X70130: 70130; } interface NumberToId { 1: 'yellowWall'; @@ -1125,4 +1132,11 @@ interface NumberToId { 30121: 'X30121'; 30196: 'X30196'; 30204: 'X30204'; + 70065: 'X70065'; + 70112: 'X70112'; + 70114: 'X70114'; + 70120: 'X70120'; + 70122: 'X70122'; + 70128: 'X70128'; + 70130: 'X70130'; } \ No newline at end of file diff --git a/src/types/util.d.ts b/src/types/util.d.ts index f98ae3d..35fbc14 100644 --- a/src/types/util.d.ts +++ b/src/types/util.d.ts @@ -249,6 +249,7 @@ interface Utils { * @param onMap 显示的字符数 * @returns 格式化结果 */ + formatBigNumber(x: T, onMap?: number): T; formatBigNumber(x: number | string, onMap?: number): string; /** diff --git a/src/ui/fly.vue b/src/ui/fly.vue index 54ed161..8ed384e 100644 --- a/src/ui/fly.vue +++ b/src/ui/fly.vue @@ -364,6 +364,7 @@ function drawRight() { */ function draw() { drawedThumbnail = {}; + thumbnailLoc = {}; drawMap(); drawRight(); }