feat: 苍蓝之殿南部两区

This commit is contained in:
unanmed 2024-05-03 12:52:23 +08:00
parent cb72e53c3d
commit 06bcb94eae
72 changed files with 1352 additions and 2288 deletions

View File

@ -285,6 +285,12 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_docs": "苍蓝刻", "_docs": "苍蓝刻",
"_data": "苍蓝刻" "_data": "苍蓝刻"
}, },
"translation": {
"_leaf": true,
"_type": "textarea",
"_docs": "乾坤挪移",
"_data": "乾坤挪移"
},
"specialHalo": { "specialHalo": {
"_leaf": true, "_leaf": true,
"_type": "popCheckboxSet", "_type": "popCheckboxSet",

View File

@ -304,7 +304,7 @@ items.prototype.unloadEquip = function (equipType, callback) {
if (callback) callback(); if (callback) callback();
return; return;
} }
core.status.route.push(`unequip:${equipId}`); core.status.route.push(`unequip:${unloadEquipId}`);
this._realLoadEquip(equipType, null, unloadEquipId, callback); this._realLoadEquip(equipType, null, unloadEquipId, callback);
}; };

View File

@ -918,9 +918,10 @@ ui.prototype.closePanel = function () {
this.clearUI(); this.clearUI();
core.maps.generateGroundPattern(); core.maps.generateGroundPattern();
core.updateStatusBar(true); core.updateStatusBar(true);
setTimeout(() => { // 这个setTimeout加了有bug不加也有
core.unlockControl(); // setTimeout(() => {
}, 0); core.unlockControl();
// }, 0);
core.status.event.data = null; core.status.event.data = null;
core.status.event.id = null; core.status.event.id = null;
core.status.event.selection = null; core.status.event.selection = null;

View File

@ -527,7 +527,7 @@ main.prototype.listen = function () {
}; };
////// 在界面上放开某按键时 ////// ////// 在界面上放开某按键时 //////
main.dom.body.onkeyup = function (e) { main.dom.body.addEventListener('keyup', function (e) {
if (main.editorOpened) return; if (main.editorOpened) return;
try { try {
if ( if (
@ -577,7 +577,7 @@ main.prototype.listen = function () {
} catch (ee) { } catch (ee) {
console.error(ee); console.error(ee);
} }
}; });
////// 开始选择时 ////// ////// 开始选择时 //////
main.dom.body.onselectstart = function () { main.dom.body.onselectstart = function () {

View File

@ -20,9 +20,9 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"swordsman": {"name":"野蛮剑士","hp":250,"atk":55,"def":27,"money":0,"exp":9,"point":0,"special":[15],"value":75,"description":"剑?这是什么东西?他们拿的只是比较锋利的骨头吧。"}, "swordsman": {"name":"野蛮剑士","hp":250,"atk":55,"def":27,"money":0,"exp":9,"point":0,"special":[15],"value":75,"description":"剑?这是什么东西?他们拿的只是比较锋利的骨头吧。"},
"soldier": {"name":"冥战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "soldier": {"name":"冥战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"yellowKnight": {"name":"勇气骑士","hp":2000,"atk":500,"def":250,"money":1,"exp":30,"point":0,"special":[11],"charge":500,"description":"人们总是说,战斗,需要的就是勇气。而骑士,或许就站在了这勇气之巅了吧。有什么用呢?战场上,该死的时候就是得死,哪怕是在这远古时期,即使不是战场,一场战斗也足以决定生死。"}, "yellowKnight": {"name":"勇气骑士","hp":2000,"atk":500,"def":250,"money":1,"exp":30,"point":0,"special":[11],"charge":500,"description":"人们总是说,战斗,需要的就是勇气。而骑士,或许就站在了这勇气之巅了吧。有什么用呢?战场上,该死的时候就是得死,哪怕是在这远古时期,即使不是战场,一场战斗也足以决定生死。"},
"redKnight": {"name":"红骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "redKnight": {"name":"红骑士","hp":30000,"atk":9000,"def":3000,"money":5,"exp":600,"point":0,"special":[29],"specialHalo":[27],"iceCore":15,"haloRange":3,"fireCore":15},
"darkKnight": {"name":"黑骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "darkKnight": {"name":"黑骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"blueKnight": {"name":"蓝骑士","hp":100,"atk":120,"def":0,"money":9,"exp":0,"point":0,"special":[8]}, "blueKnight": {"name":"蓝骑士","hp":40000,"atk":9000,"def":4000,"money":6,"exp":600,"point":0,"special":[4]},
"goldSlime": {"name":"黄头怪","hp":1000,"atk":50,"def":50,"money":0,"exp":18,"point":0,"special":[2]}, "goldSlime": {"name":"黄头怪","hp":1000,"atk":50,"def":50,"money":0,"exp":18,"point":0,"special":[2]},
"poisonSkeleton": {"name":"紫骷髅","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "poisonSkeleton": {"name":"紫骷髅","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"poisonBat": {"name":"山间蝙蝠","hp":800,"atk":170,"def":50,"money":1,"exp":24,"point":0,"special":[5],"description":"山的高出,总会有一些恐怖的东西,就比如这只蝙蝠。"}, "poisonBat": {"name":"山间蝙蝠","hp":800,"atk":170,"def":50,"money":1,"exp":24,"point":0,"special":[5],"description":"山的高出,总会有一些恐怖的东西,就比如这只蝙蝠。"},
@ -145,7 +145,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"E593": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E593": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E594": {"name":"苍蓝骑士","hp":20000,"atk":5000,"def":2500,"money":4,"exp":300,"point":0,"special":[29],"charge":500,"specialHalo":[11],"haloRange":3}, "E594": {"name":"苍蓝骑士","hp":20000,"atk":5000,"def":2500,"money":4,"exp":300,"point":0,"special":[29],"charge":500,"specialHalo":[11],"haloRange":3},
"E595": {"name":"寒冰兽人","hp":12500,"atk":1800,"def":800,"money":2,"exp":100,"point":0,"special":[7],"hungry":25}, "E595": {"name":"寒冰兽人","hp":12500,"atk":1800,"def":800,"money":2,"exp":100,"point":0,"special":[7],"hungry":25},
"E596": {"name":"苍蓝兽人","hp":20000,"atk":5000,"def":3000,"money":4,"exp":400,"point":0,"special":[1,28],"paleShield":30,"specialHalo":[],"iceHalo":20,"haloRange":2,"value":1000,"melt":50,"together":20,"fireCore":20,"crit":500}, "E596": {"name":"苍蓝兽人","hp":22000,"atk":6000,"def":2000,"money":4,"exp":400,"point":0,"special":[1,28],"paleShield":30,"specialHalo":[],"iceHalo":20,"haloRange":2,"value":1000,"melt":50,"together":20,"fireCore":20,"crit":500},
"E597": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E597": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E598": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E598": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E599": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E599": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
@ -153,7 +153,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"E601": {"name":"苍蓝巨石","hp":5000,"atk":6000,"def":0,"money":5,"exp":400,"point":0,"special":[3]}, "E601": {"name":"苍蓝巨石","hp":5000,"atk":6000,"def":0,"money":5,"exp":400,"point":0,"special":[3]},
"E602": {"name":"永夜蝙","hp":6000,"atk":2000,"def":800,"money":1,"exp":65,"point":0,"special":[22],"night":100}, "E602": {"name":"永夜蝙","hp":6000,"atk":2000,"def":800,"money":1,"exp":65,"point":0,"special":[22],"night":100},
"E603": {"name":"极昼蝠","hp":8000,"atk":1750,"def":1000,"money":1,"exp":65,"point":0,"special":[23],"day":100}, "E603": {"name":"极昼蝠","hp":8000,"atk":1750,"def":1000,"money":1,"exp":65,"point":0,"special":[23],"day":100},
"E605": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E605": {"name":"乾坤之卫","hp":30000,"atk":7500,"def":2000,"money":4,"exp":300,"point":0,"special":[30],"translation":[2,2]},
"E606": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E606": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E607": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E607": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E608": {"name":"寒冰护卫","hp":20000,"atk":2750,"def":2000,"money":3,"exp":225,"point":0,"special":[]}, "E608": {"name":"寒冰护卫","hp":20000,"atk":2750,"def":2000,"money":3,"exp":225,"point":0,"special":[]},
@ -175,7 +175,13 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"E656": {"name":"触手史莱姆","hp":12500,"atk":4500,"def":2500,"money":4,"exp":200,"point":0,"special":[8],"together":25}, "E656": {"name":"触手史莱姆","hp":12500,"atk":4500,"def":2500,"money":4,"exp":200,"point":0,"special":[8],"together":25},
"E657": {"name":"触手法师","hp":50000,"atk":2000,"def":3000,"money":5,"exp":300,"point":0,"special":[8,13],"crit":null,"together":25}, "E657": {"name":"触手法师","hp":50000,"atk":2000,"def":3000,"money":5,"exp":300,"point":0,"special":[8,13],"crit":null,"together":25},
"E658": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E658": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E659": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "E659": {"name":"圣殿莱姆","hp":50000,"atk":8000,"def":3000,"money":5,"exp":600,"point":0,"special":[8,30],"translation":[-2,-1],"together":20},
"E666": {"name":"苍蓝之灵-视","hp":300000,"atk":10000,"def":3000,"money":0,"exp":0,"point":0,"special":[29],"n":5,"specialHalo":[5],"haloRange":5}, "E666": {"name":"苍蓝之灵-视","hp":300000,"atk":10000,"def":3000,"money":10,"exp":2500,"point":0,"special":[29],"n":5,"specialHalo":[5],"haloRange":5},
"E667": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]} "E667": {"name":"苍之蓝","hp":50000,"atk":6000,"def":2000,"money":5,"exp":500,"point":0,"special":[29],"together":25,"specialHalo":[8],"haloRange":3},
"E668": {"name":"冰封护卫","hp":30000,"atk":7000,"def":2500,"money":5,"exp":550,"point":0,"special":[29],"specialHalo":[26],"iceCore":15,"haloRange":3},
"E669": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E670": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E671": {"name":"圣殿骑士","hp":60000,"atk":12000,"def":4000,"money":7,"exp":750,"point":0,"special":[1],"crit":300},
"E672": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"E673": {"name":"苍蓝之灵-域","hp":250000,"atk":12000,"def":3000,"money":10,"exp":2500,"point":0,"special":[]}
} }

View File

@ -35,7 +35,7 @@ main.floors.MT0=
"\r[red]注意!!!\r[]该塔新增了很多新的功能同时对样板的ui进行了大幅度的改动操作也有改变由于内容过多这里不再一一描述具体请在道具栏查看百科全书百科全书是在你面前的几个道具中的其中一个", "\r[red]注意!!!\r[]该塔新增了很多新的功能同时对样板的ui进行了大幅度的改动操作也有改变由于内容过多这里不再一一描述具体请在道具栏查看百科全书百科全书是在你面前的几个道具中的其中一个",
{ {
"type": "function", "type": "function",
"function": "function(){\nmota.ui.fixed.open('chapter', { chapter: '序章 起源' });\n}" "function": "function(){\nMota.require('var', 'fixedUi').open('chapter', { chapter: '序章 起源' });\n}"
} }
], ],
"parallelDo": "", "parallelDo": "",
@ -64,7 +64,7 @@ main.floors.MT0=
"yes": [ "yes": [
{ {
"type": "function", "type": "function",
"function": "function(){\ncore.swapChapter(2, flags.hard);\n}" "function": "function(){\nMota.require('module', 'RenderUtils').swapChapter(2, flags.hard);\n}"
} }
], ],
"no": [] "no": []
@ -86,7 +86,10 @@ main.floors.MT0=
"这个可以查看bgm也可以设置bgm也可以清空设置的bgm" "这个可以查看bgm也可以设置bgm也可以清空设置的bgm"
], ],
"8,11": [ "8,11": [
"请仔细阅读这个道具内的说明" "请仔细阅读这个道具内的说明",
"注意虽然内容很多但是大部分都是“无用”信息例如对那些ui的说明基本上打开ui后就能看出来不同区域的功能的百科全书的说明基本只是对一些细节进行了说明。因此一般来说是不需要非常认真地读关于ui的信息的。",
"而对于那些新的内容,例如怪物标记等,可能需要阅读一下。",
"这里说一个非常重要的一点那就是本塔中几乎所有ui都是可以滚动的尝试用滚轮或者手指拖动进行滚动包括状态栏"
], ],
"7,10": [ "7,10": [
"里面包含了所有游戏的设置,请仔细查看设置" "里面包含了所有游戏的设置,请仔细查看设置"

View File

@ -70,7 +70,7 @@ main.floors.MT16=
}, },
{ {
"type": "function", "type": "function",
"function": "function(){\ncore.status.maps.MT14.canFlyFrom = false;\ncore.plugin.chase.chaseInit1();\n}" "function": "function(){\ncore.status.maps.MT14.canFlyFrom = false;\nMota.Plugin.require('chase_g').chaseInit1();\n}"
}, },
{ {
"type": "show", "type": "show",

View File

@ -157,7 +157,7 @@ main.floors.MT21=
"\t[低级智人]\b[up,hero]或许智慧结晶会告诉我答案吧。", "\t[低级智人]\b[up,hero]或许智慧结晶会告诉我答案吧。",
{ {
"type": "function", "type": "function",
"function": "function(){\nmota.ui.fixed.open('chapter', { chapter: '第二章 智慧' });\ncore.plugin.removeMap.removeMaps('tower1', 'tower7', true);\ndelete flags.tower1;\ndelete flags.wordsTimeOut;\ndelete flags.boom;\ndelete flags.booming;\n}" "function": "function(){\nMota.require('var', 'fixedUi').open('chapter', { chapter: '第二章 智慧' });\nMota.Plugin.require('removeMap_g').removeMaps('tower1', 'tower7', true);\ndelete flags.tower1;\ndelete flags.wordsTimeOut;\ndelete flags.boom;\ndelete flags.booming;\n}"
}, },
{ {
"type": "setValue", "type": "setValue",

View File

@ -142,13 +142,14 @@ main.floors.MT31=
} }
], ],
"2,6": [ "2,6": [
"注意右方的清怪检测是检测\r[gold]勇气之路\r[]的怪物,本区域的怪物不检测,可以暂时留怪" "注意右方的清怪检测是检测\r[gold]勇气之路\r[]的怪物,本区域的怪物不检测,可以暂时留怪",
"所以说右边的boss是可以暂时不打的测试的时候是按必须打测的"
], ],
"13,7": [ "13,7": [
"这里是漏怪检测,会检测\r[gold]勇气之路\r[]区域是否有遗漏怪物", "这里是漏怪检测,会检测\r[gold]勇气之路\r[]区域是否有遗漏怪物",
{ {
"type": "function", "type": "function",
"function": "function(){\nconst enemy = Mota.Plugin.require('remainEnemy_g').getRemainEnemyString(core.floorIds.slice(17, 22));\nif (enemy.length === 0) {\n\tcore.insertAction(['当前无剩余怪物!', { \"type\": \"hide\", \"remove\": true }, ]);\n} else {\n\tcore.insertAction(enemy);\n}\n}" "function": "function(){\nconst enemy = Mota.Plugin.require('remainEnemy_g').getRemainEnemyString(core.floorIds.slice(17, 23));\nif (enemy.length === 0) {\n\tcore.insertAction(['当前无剩余怪物!', { \"type\": \"hide\", \"remove\": true }, ]);\n} else {\n\tcore.insertAction(enemy);\n}\n}"
} }
] ]
}, },
@ -194,10 +195,18 @@ main.floors.MT31=
"\t[低级智人]\b[up,hero]我明白了,我全都明白了。", "\t[低级智人]\b[up,hero]我明白了,我全都明白了。",
"\t[低级智人]\b[up,hero]智慧,真的可以掌握万物。", "\t[低级智人]\b[up,hero]智慧,真的可以掌握万物。",
{ {
"type": "setValue", "type": "openDoor",
"name": "flag:door_MT31_7_6", "loc": [
"operator": "+=", 7,
"value": "1" 5
]
},
{
"type": "openDoor",
"loc": [
7,
9
]
} }
] ]
}, },
@ -205,45 +214,9 @@ main.floors.MT31=
"afterOpenDoor": {}, "afterOpenDoor": {},
"autoEvent": { "autoEvent": {
"7,5": { "7,5": {
"0": {
"condition": "flag:door_MT31_7_6==1",
"currentFloor": true,
"priority": 0,
"delayExecute": false,
"multiExecute": false,
"data": [
{
"type": "openDoor"
},
{
"type": "setValue",
"name": "flag:door_MT31_7_6",
"operator": "=",
"value": "null"
}
]
},
"1": null "1": null
}, },
"7,9": { "7,9": {
"0": {
"condition": "flag:door_MT31_7_6==1",
"currentFloor": true,
"priority": 0,
"delayExecute": false,
"multiExecute": false,
"data": [
{
"type": "openDoor"
},
{
"type": "setValue",
"name": "flag:door_MT31_7_6",
"operator": "=",
"value": "null"
}
]
},
"1": null "1": null
} }
}, },

View File

@ -16,7 +16,7 @@ main.floors.MT32=
"firstArrive": [ "firstArrive": [
{ {
"type": "function", "type": "function",
"function": "function(){\ncore.plugin.removeMap.removeMaps('MT17', 'MT21', true)\n}" "function": "function(){\nMota.Plugin.require('removeMap_g').removeMaps('MT17', 'MT21', true)\n}"
} }
], ],
"eachArrive": [], "eachArrive": [],

View File

@ -101,7 +101,7 @@ main.floors.MT35=
}, },
{ {
"type": "function", "type": "function",
"function": "function(){\ncore.plugin.removeMap.removeMaps('MT22', 'MT31', true);\n}" "function": "function(){\nMota.Plugin.require('removeMap_g').removeMaps('MT22', 'MT31', true);\n}"
}, },
{ {
"type": "changeFloor", "type": "changeFloor",

View File

@ -36,7 +36,8 @@ main.floors.MT50=
} }
], ],
"5,13": [ "5,13": [
"欢迎来到苍蓝之殿,这是本塔第二章里面最大的一个区,也是最复杂的一个区。整个苍蓝之殿分为无个部分:左下角、右下角、左上角、右上角和中心,每个部分都有不一样的玩法,多多动脑哦。" "欢迎来到苍蓝之殿,这是本塔第二章里面最大的一个区,也是最复杂的一个区。整个苍蓝之殿分为无个部分:左下角、右下角、左上角、右上角和中心,每个部分都有不一样的玩法,多多动脑哦。",
"本区域极大,建议打开小地图游玩。如果打开小地图后打怪出现卡顿,可以尝试在 设置->ui设置 里面打开小地图懒更新设置"
], ],
"9,13": [ "9,13": [
"在你刚进入苍蓝之殿时,你只能先前往左下角部分(本地图的左面),右下角暂时不能前往。注意往上走往左依然可以进入左下角,不要只盯着这个地图的左边不放。", "在你刚进入苍蓝之殿时,你只能先前往左下角部分(本地图的左面),右下角暂时不能前往。注意往上走往左依然可以进入左下角,不要只盯着这个地图的左边不放。",
@ -44,7 +45,8 @@ main.floors.MT50=
], ],
"9,1": [ "9,1": [
"建议优先点出学习技能,对于特定场景将会非常有帮助", "建议优先点出学习技能,对于特定场景将会非常有帮助",
"本区域可以使用跳跃技能,不要忘记了。" "本区域可以使用跳跃技能,不要忘记了。",
"注意不要忘记购买装备,到了下一章之后本章的商店将不能到达,快捷商店也会消失。这些装备在下一章都会有向上合成"
], ],
"5,1": [ "5,1": [
"打完左下角和右下角的boss之后开四个机关门" "打完左下角和右下角的boss之后开四个机关门"

View File

@ -88,18 +88,18 @@ main.floors.MT51=
"map": [ "map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648, 0, 21, 0,596, 32, 0, 32,648, 27,648, 29, 0, 29,648], [648, 0, 21, 0,596, 32, 0, 32,648, 27,648, 29, 0, 29,648],
[648, 27, 33, 28,648, 0,381, 0,648, 0,596, 0,378, 0,648], [648,376, 33, 28,648, 0,381, 0,648, 0,596, 0,378, 0,648],
[648,648,648,648,648, 0,648,648,648, 33,648,648,648,578,648], [648,648,648,648,648, 0,648,648,648, 33,648,648,648,578,648],
[648,594, 33,381,648,539, 34,492, 0,243,648,376,403,378,648], [648,594, 33,381,648,539, 34,492, 0,243,648,376,403,378,648],
[648, 33,648,492,648, 0,648,648,648, 0,648, 33, 21, 33,648], [648, 33,648,492,648, 0,648,648,648, 0,648, 33, 21, 33,648],
[648, 27,648, 0, 34, 0,219, 0,103, 0,648,648,494,648,648], [648, 27,648, 0, 34, 0,219, 0,103, 0,648,648,494,648,648],
[648,243,648,656,648,648, 0,648, 0,648,648, 27, 0, 0, 94], [648,243,648,656,648,648, 0,648,484,648,648, 27, 0, 0, 94],
[ 92, 0, 34, 0, 27,492, 34,648, 0, 0,539, 0,381, 0,648], [ 92, 0, 34, 0, 27,492, 34,648, 0, 0,539, 0,381, 0,648],
[648,648,648,648,648,648, 0,648,656,648,648,648,648,648,648], [648,648,648,648,648,648, 0,648,656,648,648,648,648,648,648],
[648, 0, 33, 0, 29, 0,219,648, 33, 0,648, 33,662, 33,648], [648, 0, 33, 0, 29, 0,219,648, 33, 0,648, 33,662, 33,648],
[648,648,601,648,492,648, 0,648,648,492,648,648, 85,648,648], [648,648,601,648,492,648, 0,648,648,492,648,648, 85,648,648],
[648, 33, 0,648,482,648, 0,648,381, 0,648,596, 0,596,648], [648, 33, 0,648,482,648, 0,648,381, 0,648,596, 0,596,648],
[648, 0,378,648,482,648, 0,220, 0, 28,492, 0, 33, 0,648], [648, 0,378,648,482,648, 0,220, 0,378,492, 0, 33, 0,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648] [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -120,15 +120,15 @@ main.floors.MT52=
[648, 0,482,648,243,497, 22,403, 85,403,491, 85, 0,484,648], [648, 0,482,648,243,497, 22,403, 85,403,491, 85, 0,484,648],
[648, 28, 0,220, 0,648,378,491,648,249,378,648,578, 0,648], [648, 28, 0,220, 0,648,378,491,648,249,378,648,578, 0,648],
[648,648,648,648, 0,648,648,648,648,648,648,648,648, 0,648], [648,648,648,648, 0,648,648,648,648,648,648,648,648, 0,648],
[648, 33, 0,648,482,648, 29, 0,648,381, 0,648, 28, 0,648], [648, 33, 0,648,482,648, 29, 0,648,381, 0,648,378, 0,648],
[648, 0,381,492, 0,648, 0, 27,539, 0, 34,596, 0,103,648], [648, 0,381,492, 0,648, 0, 27,539, 0, 34,596, 0,103,648],
[648, 33, 0,648, 0,648,648,219,648,648,648,648,648,648,648], [648, 33, 0,648, 0,648,648,219,648,648,648,648,648,648,648],
[648,596,648,648,656, 0, 0, 0, 0,482, 0, 0, 0, 0, 94], [648,596,648,648,656, 0, 0, 0, 0,482, 0, 0, 0, 0, 94],
[648,376, 0,648,648,648,648,494,648,648,648,648,497,648,648], [648,376, 0,648,648,648,648,494,648,648,648,648,497,648,648],
[648, 33,381,492,482,539, 33, 0, 28,494,376,381, 22,378,648], [648, 33,381,492,482,539, 33, 0, 28,494,376,381, 22,396,648],
[648,601,648,648,648,648,648,243,648,648,648,240,648,648,648], [648,601,648,648,648,648,648,243,648,648,648,240,648,648,648],
[648, 34, 0,648, 34, 0,648, 0, 29, 27,648,484,396,484,648], [648, 34, 0,648, 34, 0,648, 0, 29, 27,648,484,396,484,648],
[648,103, 27,596, 0, 33,220, 0, 33, 28,249,403, 21,390,648], [648,103,376,596, 0, 33,220, 0, 33, 28,249,403, 21,390,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648] [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -58,17 +58,17 @@ main.floors.MT53=
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648,656, 34,219,648, 0,482, 0,243, 29, 33,492,482,482,648], [648,656, 34,219,648, 0,482, 0,243, 29, 33,492,482,482,648],
[648, 0,648,381,648,648,648,578,648,648,656,648,648,648,648], [648, 0,648,381,648,648,648,578,648,648,656,648,648,648,648],
[648, 0,648,482,648, 27,484, 28,648,381, 0,648,376,403,648], [648, 0,648,482,648,376,484,378,648,381, 0,648,376,403,648],
[648, 0,648,563,492, 0,381, 0,648, 0, 34,240,484,378,648], [648, 0,648,563,492, 0,381, 0,648, 0, 34,240,484,378,648],
[648,484,648,648,648,648,494,648,648,219,648,648,648,648,648], [648,484,648,648,648,648,494,648,648,219,648,648,648,648,648],
[648, 0,578, 0,648,403, 0,484,648, 0, 33,648, 33, 0,648], [648, 0,578, 0,648,403, 0,484,648, 0, 33,648, 33, 0,648],
[ 92, 0,648,482,648, 0, 21, 0,648,103, 0,220, 0, 0, 94], [ 92, 0,648,482,648, 0, 21, 0,648,103, 0,220, 0, 0, 94],
[648,492,648, 0,648,376, 0,378,648, 0, 33,648, 33, 0,648], [648,492,648, 0,648,390, 0,396,648, 0, 33,648, 33, 0,648],
[648,381,648,381,648,648,249,648,648,219,648,648,648,492,648], [648,381,648,381,648,648,249,648,648,219,648,648,648,492,648],
[648,482,648, 0, 0,596, 33, 0,492, 0, 0,539, 27, 0,648], [648,482,648, 0, 0,596, 33, 0,492, 0, 0,539, 27, 0,648],
[648, 0,243,378, 0,648, 0,103,648, 33, 0,648, 0, 28,648], [648, 0,243,378, 0,648, 0,103,648, 33, 0,648, 0, 28,648],
[648,601,648,492,648,648,243,648,648,648,539,648, 29, 0,648], [648,601,648,492,648,648,243,648,648,648,539,648, 29, 0,648],
[648, 28, 0, 0, 27,648, 0, 0, 34, 0, 0,656, 0,482,648], [648,378, 0, 0,376,648, 0, 0, 34, 0, 0,656, 0,482,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648] [648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -69,7 +69,7 @@ main.floors.MT54=
"map": [ "map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648, 28, 33,648, 0, 27,648, 0, 0,656, 0,482, 0, 0,648], [648, 28, 33,648, 0, 27,648, 0, 0,656, 0,482, 0, 0,648],
[648, 33, 27,601, 29, 0,563, 0, 0,648,648,648,648,539,648], [648, 33,376,601, 29, 0,563, 0, 0,648,648,648,648,539,648],
[648,648,492,648,648,220,648,648,648,648,487,441,492, 0,648], [648,648,492,648,648,220,648,648,648,648,487,441,492, 0,648],
[648, 0,482, 0,219, 0,103,656, 0,648,594,648,648,578,648], [648, 0,482, 0,219, 0,103,656, 0,648,594,648,648,578,648],
[648, 29, 0, 29,648,378, 0,648,381,494,376,240,378,491,648], [648, 29, 0, 29,648,378, 0,648,381,494,376,240,378,491,648],
@ -80,7 +80,7 @@ main.floors.MT54=
[648,648,648,648,103, 21,648,648,648,648,539,648,648,648,648], [648,648,648,648,103, 21,648,648,648,648,539,648,648,648,648],
[648, 28,648, 0, 28,482,648, 0, 27, 0, 33, 0, 28, 0,648], [648, 28,648, 0, 28,482,648, 0, 27, 0, 33, 0, 28, 0,648],
[648, 33,648,596,648,648,648,596,648,648,494,648,648,249,648], [648, 33,648,596,648,648,648,596,648,648,494,648,648,249,648],
[648, 27,243, 0, 0,381, 0,482, 0,129,376,378,381,491,648], [648, 27,243, 0, 0,381, 0,482, 0,129,376,396,381,491,648],
[648,648,648,648, 93,648,648,648,648,648,648,648,648,648,648] [648,648,648,648, 93,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -50,7 +50,7 @@ main.floors.MT55=
"cannotMoveIn": {}, "cannotMoveIn": {},
"map": [ "map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648, 28,482,648, 28, 0,648, 0,578,376,482,648, 28, 33,648], [648,378,482,648, 28, 0,648, 0,578,376,482,648, 28, 33,648],
[648, 0,381,492,482, 27,219, 0,648,482,403,494, 33, 29,648], [648, 0,381,492,482, 27,219, 0,648,482,403,494, 33, 29,648],
[648,601,648,648,648,648,648,563,648,648,648,648,657,648,648], [648,601,648,648,648,648,648,563,648,648,648,648,657,648,648],
[648,103,482,594, 21, 0,492, 0, 29, 0,482,648, 33, 27,648], [648,103,482,594, 21, 0,492, 0, 29, 0,482,648, 33, 27,648],
@ -61,7 +61,7 @@ main.floors.MT55=
[648, 27, 29,596, 0, 28,648,494,648,648,657,648,648,648,648], [648, 27, 29,596, 0, 28,648,494,648,648,657,648,648,648,648],
[648,482, 28,648, 27, 0,492, 0,381,482, 0,492, 29, 28,648], [648,482, 28,648, 27, 0,492, 0,381,482, 0,492, 29, 28,648],
[648,240,648,648,648,492,648,243,648,648,648,648, 27, 33,648], [648,240,648,648,648,492,648,243,648,648,648,648, 27, 33,648],
[648,484,378,648,376,491,648, 0,648, 0, 28,648,648,220,648], [648,484,378,648,390,491,648, 0,648, 0, 28,648,648,220,648],
[648,376,381,249,403,378,648, 33,657, 0, 27, 0,482, 0,648], [648,376,381,249,403,378,648, 33,657, 0, 27, 0,482, 0,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648] [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],

View File

@ -58,7 +58,7 @@ main.floors.MT56=
"map": [ "map": [
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648], [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[648, 0,482,648,390, 21,396,492,482,482,492,482,403,482,648], [648, 0,482,648,390, 21,396,492,482,482,492,482,403,482,648],
[648,381, 0,249, 0,484, 0,648,648,648,648,378, 22,376,648], [648,381, 0,249, 0,484, 0,648,648,648,648,396, 22,376,648],
[648,657,648,648,648,648,648,648, 27, 0,648,648,648,249,648], [648,657,648,648,648,648,648,648, 27, 0,648,648,648,249,648],
[648, 0, 33, 27, 0,563, 0,657,484, 28,648,378, 0,482,648], [648, 0, 33, 27, 0,563, 0,657,484, 28,648,378, 0,482,648],
[648,648,648,648,220,648,494,648,648,648,648,596,648,648,648], [648,648,648,648,220,648,494,648,648,648,648,596,648,648,648],
@ -69,7 +69,7 @@ main.floors.MT56=
[648, 0,381,482, 28, 0,492,482,648, 33,648, 0,648,381,648], [648, 0,381,482, 28, 0,492,482,648, 33,648, 0,648,381,648],
[648,648,494,648,648, 0,648,482,648, 0,219, 34,648, 0,648], [648,648,494,648,648, 0,648,482,648, 0,219, 34,648, 0,648],
[648, 0,381, 0,648,243,648,648,648,648,648,648,648,482,648], [648, 0,381, 0,648,243,648,648,648,648,648,648,648,482,648],
[648, 28,484, 27,601, 0, 0, 0,482, 0, 0, 0,220, 0,648], [648, 28,484,376,601, 0, 0, 0,482, 0, 0, 0,220, 0,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648] [648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -18,18 +18,50 @@ main.floors.MT57=
"parallelDo": "", "parallelDo": "",
"events": { "events": {
"13,8": [ "13,8": [
"本地图不能使用跳跃。中间那个深色的开关可以开启去苍蓝之殿右下角的路。打死那两个卫兵开机关门" "本地图不能使用跳跃。中间那个深色的开关可以开启去苍蓝之殿右下角的路。打死那两个石头人开机关门"
], ],
"7,1": [ "7,1": [
{ {
"type": "openDoor", "type": "if",
"loc": [ "condition": "(!switch:A)",
12, "true": [
7 {
], "type": "openDoor",
"floorId": "MT50" "loc": [
12,
7
],
"floorId": "MT50"
},
{
"type": "openDoor",
"loc": [
13,
7
],
"floorId": "MT60"
},
{
"type": "openDoor",
"loc": [
12,
7
],
"floorId": "MT61"
},
{
"type": "playSound",
"name": "door.mp3"
},
"\t[智人]\b[down,hero]貌似有哪里的门开了,应该是苍蓝之殿右下角吧",
"现在可以去苍蓝之殿的右下区域了。注意有三条可以去右边的路,机关门都已经开启"
]
}, },
"\t[智人]\b[down,hero]貌似有哪里的门开了,应该是苍蓝之殿右下角吧" {
"type": "setValue",
"name": "switch:A",
"value": "值"
}
] ]
}, },
"changeFloor": { "changeFloor": {
@ -57,7 +89,7 @@ main.floors.MT57=
}, },
"beforeBattle": {}, "beforeBattle": {},
"afterBattle": { "afterBattle": {
"4,2": [ "2,2": [
{ {
"type": "setValue", "type": "setValue",
"name": "flag:door_MT57_7_4", "name": "flag:door_MT57_7_4",
@ -65,7 +97,7 @@ main.floors.MT57=
"value": "1" "value": "1"
} }
], ],
"10,2": [ "12,2": [
{ {
"type": "setValue", "type": "setValue",
"name": "flag:door_MT57_7_4", "name": "flag:door_MT57_7_4",
@ -103,15 +135,15 @@ main.floors.MT57=
"map": [ "map": [
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648], [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[648, 0,648,378,403,648,396,661,390,648,403,376,648, 0,648], [648, 0,648,378,403,648,396,661,390,648,403,376,648, 0,648],
[648,376,601,482,578,648,491,468,491,648,578,482,601,378,648], [648,376,601,482,390,648, 0,468, 0,648,396,482,601,378,648],
[648, 0,648,494,648,648,240,103,240,648,648,494,648, 0,648], [648, 0,648,494,648,648,491,103,491,648,648,494,648, 0,648],
[648,482,648, 0,381,648,648, 85,648,648,381, 0,648,482,648], [648,482,648, 0,381,648,648, 85,648,648,381, 0,648,482,648],
[648, 0,596, 33, 0,656, 0,491, 0,656, 0, 33,596, 0,648], [648, 0,596, 33, 0,656, 0,491, 0,656, 0, 33,596, 0,648],
[648,648,648,648,648,648,648,497,648,648,648,648,648,648,648], [648,648,648,648,648,648,648,497,648,648,648,648,648,648,648],
[ 92, 0, 0,484, 0, 0, 0, 22, 0, 0, 0,484, 0, 0, 94], [ 92, 0, 0,484, 0, 0, 0, 22, 0, 0, 0,484, 0, 0, 94],
[648,648,243,648,249,648,648,648,648,648,249,648,243,129,648], [648,648,243,648,249,648,648,648,648,648,249,648,243,129,648],
[648, 27, 0,648, 0,403, 0,648, 0,403, 0,648, 0, 28,648], [648, 27, 0,648, 0,403, 0,648, 0,403, 0,648, 0, 28,648],
[648, 0,482,648,376,491,378,494,378,491,376,648,482, 0,648], [648, 0,482,648,390,491,396,494,396,491,390,648,482, 0,648],
[648,601,648,648,648,648,648,648,648,648,648,648,648,601,648], [648,601,648,648,648,648,648,648,648,648,648,648,648,601,648],
[648,482,378,657,484,648, 0, 33, 0,648,484,657,376,482,648], [648,482,378,657,484,648, 0, 33, 0,648,484,657,376,482,648],
[648,381, 0,648, 0,656, 29, 0, 29,656, 0,648, 0,381,648], [648,381, 0,648, 0,656, 29, 0, 29,656, 0,648, 0,381,648],

View File

@ -65,18 +65,18 @@ main.floors.MT58=
"map": [ "map": [
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648], [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[648, 0,381, 0,482, 0,660,494,468, 0,578, 0, 0,594,648], [648, 0,381, 0,482, 0,660,494,468, 0,578, 0, 0,594,648],
[648,596,648,648,648,648,648,648, 0,484,648,648,648, 0,648], [648,596,648,648,648,648,648,648,376,484,648,648,648, 0,648],
[648, 21, 0, 33, 0,656, 0,648,648,492,648,660,648, 28,648], [648, 21, 0, 33, 0,656, 0,648,648,492,648,660,648, 28,648],
[648,648,648,648,648,648, 0,656, 33, 0,657, 0, 27,484,648], [648,648,648,648,648,648, 0,656, 33, 0,657, 0, 27,484,648],
[648, 0,648,381, 33,492, 21,648,648,494,648,648,648,648,648], [648, 0,648,381, 33,492, 21,648,648,494,648,648,648,648,648],
[648, 0,594, 33, 27,648, 0,648,376, 0,657, 0, 0, 0,648], [648, 0,594, 33,376,648, 0,648,376, 0,657, 0, 0, 0,648],
[ 92, 0,648,648,648,648,220,648, 0,648, 0,648, 0, 0, 94], [ 92, 0,648,648,648,648,220,648, 0,648, 0,648, 0, 0, 94],
[648,484,648, 0, 0,219, 0,648,601, 0,378,648,648,596,648], [648,484,648, 0, 0,219, 0,648,601, 0,378,648,648,596,648],
[648, 0,648,482,648,648, 0,648,648,648,219,648,381, 0,648], [648, 0,648,482,648,648, 0,648,648,648,219,648,381, 0,648],
[648, 0,596, 0, 0,648, 33, 0, 28, 0, 0,492, 0,484,648], [648, 0,596, 0, 0,648, 33, 0, 28, 0, 0,492, 0,484,648],
[648,492,648,648,381,648,648,492,648,648,240,648,578,648,648], [648,492,648,648,381,648,648,492,648,648,240,648,578,648,648],
[648,378,484,648, 0,648, 0,482, 0,648,468,648,403, 27,648], [648,378,484,648, 0,648, 0,482, 0,648,468,648,403,376,648],
[648,403,376,249, 0,494, 29, 0, 29,243,484,494, 28,491,648], [648,403,376,249, 0,494, 29, 0, 29,243,484,494,396,491,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648] [648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -89,7 +89,8 @@ main.floors.MT59=
"type": "setValue", "type": "setValue",
"name": "flag:door_palaceSouth", "name": "flag:door_palaceSouth",
"value": "null" "value": "null"
} },
"入口处的机关门已开启"
] ]
} }
] ]
@ -112,11 +113,11 @@ main.floors.MT59=
[648, 0, 28, 0,648, 0,648, 0,648,648,648,648, 0, 29,648], [648, 0, 28, 0,648, 0,648, 0,648,648,648,648, 0, 29,648],
[648, 27,468, 27,648,484,648, 21,648, 27, 0,648, 27, 0,648], [648, 27,468, 27,648,484,648, 21,648, 27, 0,648, 27, 0,648],
[648, 0, 28, 0, 85, 0,648,482,648, 0, 29,657, 0, 28,648], [648, 0, 28, 0, 85, 0,648,482,648, 0, 29,657, 0, 28,648],
[648,648,648,648,648,390,648,376,648, 33,648,648,648,648,648], [648,648,648,648,648,390,648,390,648, 33,648,648,648,648,648],
[648,482, 0,482,648, 0,249, 0,648,539,648,482, 0,482,648], [648,482, 0,482,648, 0,249, 0,648,539,648,482, 0,482,648],
[648, 0,666, 0,492,403,648,648,648, 0,492, 0,381, 0, 94], [648, 0,666, 0,492,403,648,648,648, 0,492, 0,381, 0, 94],
[648,482, 0,482,648, 0,249, 0,648,539,648,482, 0,482,648], [648,482, 0,482,648, 0,249, 0,648,539,648,482, 0,482,648],
[648,648,648,648,648,396,648,378,648, 33,648,648,648,648,648], [648,648,648,648,648,396,648,396,648, 33,648,648,648,648,648],
[648, 0, 27, 0, 85, 0,648,482,648, 0, 29,657, 0, 27,648], [648, 0, 27, 0, 85, 0,648,482,648, 0, 29,657, 0, 27,648],
[648, 28,468, 28,648,484,648, 21,648, 28, 0,648, 28, 0,648], [648, 28,468, 28,648,484,648, 21,648, 28, 0,648, 28, 0,648],
[648, 0, 27, 0,648, 0,648, 0,648,648,648,648, 0, 29,648], [648, 0, 27, 0,648, 0,648, 0,648,648,648,648, 0, 29,648],

View File

@ -63,7 +63,7 @@ main.floors.MT6=
"\t[原始人]\b[down,hero]感觉好像可以学习一些简单的东西了。", "\t[原始人]\b[down,hero]感觉好像可以学习一些简单的东西了。",
{ {
"type": "function", "type": "function",
"function": "function(){\nmota.ui.fixed.open('chapter', { chapter: '第一章 勇气' });\n}" "function": "function(){\nMota.require('var', 'fixedUi').open('chapter', { chapter: '第一章 勇气' });\n}"
}, },
{ {
"type": "setValue", "type": "setValue",

View File

@ -38,6 +38,13 @@ main.floors.MT60=
7, 7,
14 14
] ]
},
"14,7": {
"floorId": "MT64",
"loc": [
0,
7
]
} }
}, },
"beforeBattle": {}, "beforeBattle": {},
@ -261,15 +268,15 @@ main.floors.MT60=
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648,390,441,396,648, 0, 0, 0, 0, 0,648,396,441,390,648], [648,390,441,396,648, 0, 0, 0, 0, 0,648,396,441,390,648],
[648,648, 85,648,648, 0, 0, 0, 0, 0,648,648, 85,648,648], [648,648, 85,648,648, 0, 0, 0, 0, 0,648,648, 85,648,648],
[648,249, 0,249,648, 0, 0, 0, 0, 0,648,249, 0,249,648], [648,249, 0,249,648, 0, 0, 0, 0, 0,648,232, 0,232,648],
[648, 0,491, 0,648, 0, 0, 0, 0, 0,648, 0,491, 0,648], [648, 0,491, 0,648, 0, 0, 0, 0, 0,648, 0,491, 0,648],
[648,249, 0,249,648,103, 0, 0, 0,103,648,249, 0,249,648], [648,249, 0,249,648,103, 0, 0, 0,103,648,232, 0,232,648],
[648,648,492,648,648, 0, 0, 0, 0, 0,648,648,492,648,648], [648,648,492,648,648, 0, 0, 0, 0, 0,648,648,492,648,648],
[ 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94], [ 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 94],
[648,648,492,648,648, 0, 0, 0, 0, 0,648,648,492,648,648], [648,648,492,648,648, 0, 0, 0, 0, 0,648,648,492,648,648],
[648,578, 0,578,648,103, 0, 0, 0,103,648,578, 0,578,648], [648,578, 0,578,648,103, 0, 0, 0,103,648,671, 0,671,648],
[648, 0,491, 0,648, 0, 0, 0, 0, 0,648, 0,491, 0,648], [648, 0,491, 0,648, 0, 0, 0, 0, 0,648, 0,491, 0,648],
[648,578, 0,578,648, 0, 0, 0, 0, 0,648,578, 0,578,648], [648,578, 0,578,648, 0, 0, 0, 0, 0,648,671, 0,671,648],
[648,648, 85,648,648, 0, 0, 0, 0, 0,648,648, 85,648,648], [648,648, 85,648,648, 0, 0, 0, 0, 0,648,648, 85,648,648],
[648,390,441,396,648, 0, 0, 0, 0, 0,648,396,441,390,648], [648,390,441,396,648, 0, 0, 0, 0, 0,648,396,441,390,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648] [648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]

View File

@ -31,6 +31,13 @@ main.floors.MT61=
14, 14,
7 7
] ]
},
"14,7": {
"floorId": "MT67",
"loc": [
0,
7
]
} }
}, },
"beforeBattle": {}, "beforeBattle": {},
@ -42,19 +49,19 @@ main.floors.MT61=
"cannotMoveIn": {}, "cannotMoveIn": {},
"map": [ "map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648, 0, 0, 0, 0, 0,648, 0,648, 0, 0, 0, 0, 0,648], [648,494,482,482,492,484,492, 0,492,484,492,482,482,494,648],
[648, 0,648,648,648,648,648,618,648,648,648,648,648, 0,648], [648,491,648,648,648,648,648,618,648,648,648,648,648,491,648],
[648, 0,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648, 0,648], [648,497,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,497,648],
[648, 0,648, 0,482, 0, 0, 0, 0, 0,482, 0,648, 0,648], [648,487,648, 0,482, 0, 0, 0, 0, 0,482, 0,648,487,648],
[648, 0,648, 0, 0,103, 0, 0, 0,103, 0, 0,648, 0,648], [648,487,648, 0, 0,103, 0, 0, 0,103, 0, 0,648,487,648],
[648,648,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,648,648], [648,648,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,648,648],
[ 92, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 94], [ 92, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 85, 0, 94],
[648,648,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,648,648], [648,648,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,648,648],
[648, 0,648, 0, 0,103, 0, 0, 0,103, 0, 0,648, 0,648], [648,487,648, 0, 0,103, 0, 0, 0,103, 0, 0,648,487,648],
[648, 0,648, 0,482, 0, 0, 0, 0, 0,482, 0,648, 0,648], [648,487,648, 0,482, 0, 0, 0, 0, 0,482, 0,648,487,648],
[648, 0,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648, 0,648], [648,497,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,497,648],
[648, 0,648,648,648,648,648, 0,648,648,648,648,648, 0,648], [648,491,648,648,648,648,648, 0,648,648,648,648,648,491,648],
[648, 0, 0, 0, 0, 0,648, 0,648, 0, 0, 0, 0, 0,648], [648,494,482,482,492,484,492, 0,492,484,492,482,482,494,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648] [648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -16,7 +16,12 @@ main.floors.MT62=
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {
"2,5": [
"注意乾坤挪移属性的怪物,它会移动光环的位置。如果光环位置移动到了不包含光环自身怪物的位置,那么怪物自身将不会受到影响。注意,杀戮光环是可以给怪物加光环属性的。",
"以及本区域的特点就是那些光环怪,善用那些光环怪能有意想不到的效果"
]
},
"changeFloor": { "changeFloor": {
"0,7": { "0,7": {
"floorId": "MT50", "floorId": "MT50",
@ -24,6 +29,20 @@ main.floors.MT62=
14, 14,
7 7
] ]
},
"14,7": {
"floorId": "MT63",
"loc": [
0,
7
]
},
"7,0": {
"floorId": "MT64",
"loc": [
7,
14
]
} }
}, },
"beforeBattle": {}, "beforeBattle": {},
@ -35,19 +54,19 @@ main.floors.MT62=
"cannotMoveIn": {}, "cannotMoveIn": {},
"map": [ "map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648], [648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,403, 0, 33,657, 0, 28, 0, 0,648,376,484,648, 0,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,492,648,249,648,220,648,648,492,648, 21,381,494,376,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648, 28,648, 27,648, 0,381, 0, 34,648,396,484,648,491,648],
[648, 0, 0, 0, 0,612,564, 0, 0, 0, 0, 0, 0, 0,648], [648, 0,482, 0,648,648,648,596,648,648,648,232,648, 29,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,648,129,648,648,482, 0, 0, 0,648, 0, 0,578, 0,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,482, 0,482,648, 0,648,648,648,648,601,648,648,648,648],
[ 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94], [ 92, 0,381, 0,605, 0,492, 0,390,648,403, 0, 0, 0, 94],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,482, 0,482,648, 0,648,381, 0,648, 0,648,648,249,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,648,648,648,648,482,648, 0,484,659, 0,648, 28, 0,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648, 0,484, 0,648, 0,648,648,648,648,657,648, 0,482,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,378,648,381,249, 0,601, 0,378, 0,482,492,657,648,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648,594,648,648,648,492,648,648,648,648,596,648, 0,482,648],
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648], [648, 0,482, 0,648,484,648, 28, 0,482, 0,648,376, 0,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648] [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [ "bgmap": [

View File

@ -1,45 +1,77 @@
main.floors.MT63= main.floors.MT63=
{ {
"floorId": "MT63", "floorId": "MT63",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "63", "name": "63",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {
"changeFloor": {}, "1,9": [
"beforeBattle": {}, "注意,由于杀戮光环产生的光环也会被乾坤挪移影响,例如右下角那几个红光环,它就是由黄光环里面的怪物产生,然后被乾坤挪移影响产生的。",
"afterBattle": {}, "以及,融化怪死后产生的光环也是会被乾坤挪移影响的。但是抱团怪不会影响,虽然类似于光环,但实际是不属于光环。"
"afterGetItem": {}, ]
"afterOpenDoor": {}, },
"autoEvent": {}, "changeFloor": {
"cannotMove": {}, "0,7": {
"cannotMoveIn": {}, "floorId": "MT62",
"map": [ "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 14,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "7,0": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT65",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 14
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], }
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "beforeBattle": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "afterBattle": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] "afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648,491,494,484,648,378,482, 0,220, 0, 27, 0, 28, 0,648],
[648,491,648, 0,578, 0,403,648,648,605,648,648,648,494,648],
[648,648,648,220,648,648,648,648,376, 0, 29,648,482,390,648],
[648,376,484,403, 0,227,441,492, 0,103, 0,648,396, 22,648],
[648,601,648,648,492,648,648,648, 28, 0,484,648,482,403,648],
[648, 0, 0,648, 27, 0, 33,648,648,492,648,648,232,648,648],
[ 92, 0,482,648,596,648,648,648,381, 0,482,648, 28, 0,648],
[648, 0, 0,657,103, 0,403,578, 0,376, 0,249, 0, 0,648],
[648,129,648,648,648,648, 0,648,648,648,648,648,648, 29,648],
[648, 0,376, 0,657, 0,482,492, 0,601,381,482,648, 0,648],
[648,648,492,648, 0,648,648,648,376,648, 0,378,648,482,648],
[648, 28, 33,648,484,648,484,648, 0,648,492,648,648, 0,648],
[648, 33, 29,605, 0,220, 0,657, 33,648,378,482,381,578,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,86 @@
main.floors.MT64= main.floors.MT64=
{ {
"floorId": "MT64", "floorId": "MT64",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "64", "name": "64",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {},
"changeFloor": {}, "changeFloor": {
"beforeBattle": {}, "7,14": {
"afterBattle": {}, "floorId": "MT62",
"afterGetItem": {}, "loc": [
"afterOpenDoor": {}, 7,
"autoEvent": {}, 0
"cannotMove": {}, ]
"cannotMoveIn": {}, },
"map": [ "0,7": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT60",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 14,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "14,4": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT65",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 4
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "7,0": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] "floorId": "MT67",
"loc": [
7,
14
]
}
},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648,403,396, 22,390,648,376, 0,378,492, 0,484, 0,484,648],
[648,648,648,648, 0,648, 0,103, 0,648,220,648,648,648,648],
[648, 0,482,648,482,648,482, 0,482,659, 0,648,376, 0,648],
[648,378, 0,648,232,648,657,648,648,648, 0,648, 0,403, 94],
[648, 0,381,659, 0, 0, 0,648, 0,403, 0,578,378, 0,648],
[648,648,648,648,648,648,657,648, 0,648,648,648,648,648,648],
[ 92, 0,492, 33,482,648, 0,648,482,240, 27,482, 0, 28,648],
[648,657,648,648, 33,648, 0,492, 0,648,492,648,648,578,648],
[648, 0,381,648,492,648,103,648,648,648, 28, 0,482, 27,648],
[648, 27,482,657, 0,482,596,482, 0,648,249,648,648,671,648],
[648,648,648,648,648,648,648, 0, 28,648, 0,648,390,484,648],
[648,376, 0,648,482, 27,648,220,648,648, 0,494, 21,441,648],
[648,482,403,601, 0, 29,605, 0, 0, 0,484,648,396,484,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,86 @@
main.floors.MT65= main.floors.MT65=
{ {
"floorId": "MT65", "floorId": "MT65",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "65", "name": "65",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {},
"changeFloor": {}, "changeFloor": {
"beforeBattle": {}, "0,4": {
"afterBattle": {}, "floorId": "MT64",
"afterGetItem": {}, "loc": [
"afterOpenDoor": {}, 14,
"autoEvent": {}, 4
"cannotMove": {}, ]
"cannotMoveIn": {}, },
"map": [ "7,14": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT63",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "14,6": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT66",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 6
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "7,0": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] "floorId": "MT68",
"loc": [
7,
14
]
}
},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648,491,390,232, 0,484,648, 0, 0, 0,482, 0, 0,578,648],
[648,378,403,648, 29, 0,648,605,648,648,648,492,648,378,648],
[648,648,494,648, 0,378,648, 0, 27, 21,482, 0,648,484,648],
[ 92, 0,482,648, 27, 0,648,220,648,648,648,596,648,376,648],
[648, 0, 0,648,648,564,648, 0,648, 0,381, 0, 0,240,648],
[648,482, 0,657, 0,403, 0,482,249,103,648,492,648, 0, 94],
[648,648,648,648,492,648,648,648,648,484,605,381,648, 0,648],
[648,482,648,376,484,648, 27,482,492, 0,648, 0,648, 0,648],
[648, 0,605, 21,403,648, 29, 28,648, 0,648,378,484,249,648],
[648, 29,648,648,220,648,596,648,648,220,648,648,648,648,648],
[648, 0,492,491, 0,578, 0,491,648,381, 0, 33, 0,381,648],
[648,249,648,648,648,648,657,648,648,648,492,648,648,659,648],
[648,482, 27, 28,381,492, 0, 0,484,648,376,484, 0,403,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,191 @@
main.floors.MT66= main.floors.MT66=
{ {
"floorId": "MT66", "floorId": "MT66",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "66", "name": "66",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {
"changeFloor": {}, "1,8": [
"beforeBattle": {}, "下面那个装备的作用是对魔攻拥有500点防御",
"afterBattle": {}, "本塔一般不需要保存套装等操作,因此移动端不需要担心需要频繁切装备",
"afterGetItem": {}, "注意这个红门是有嘲讽的,打开之后会出现向右的嘲讽,源头在那个双手剑士"
"afterOpenDoor": {}, ],
"autoEvent": {}, "6,1": [
"cannotMove": {}, "上面地狱绘图,请做好心理准备"
"cannotMoveIn": {}, ]
"map": [ },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "changeFloor": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "0,6": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT65",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 14,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 6
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "7,0": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT69",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 14
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }
},
"beforeBattle": {},
"afterBattle": {
"4,11": [
{
"type": "setValue",
"name": "flag:door_MT66_3_12",
"operator": "+=",
"value": "1"
}
],
"4,13": [
{
"type": "setValue",
"name": "flag:door_MT66_3_12",
"operator": "+=",
"value": "1"
}
],
"7,11": [
{
"type": "setValue",
"name": "flag:door_MT66_6_12",
"operator": "+=",
"value": "1"
}
],
"7,13": [
{
"type": "setValue",
"name": "flag:door_MT66_6_12",
"operator": "+=",
"value": "1"
}
],
"10,11": [
{
"type": "setValue",
"name": "flag:door_MT66_9_12",
"operator": "+=",
"value": "1"
}
],
"10,13": [
{
"type": "setValue",
"name": "flag:door_MT66_9_12",
"operator": "+=",
"value": "1"
}
]
},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {
"3,12": {
"0": {
"condition": "flag:door_MT66_3_12==2",
"currentFloor": true,
"priority": 0,
"delayExecute": false,
"multiExecute": false,
"data": [
{
"type": "openDoor"
},
{
"type": "setValue",
"name": "flag:door_MT66_3_12",
"operator": "=",
"value": "null"
}
]
}
},
"6,12": {
"0": {
"condition": "flag:door_MT66_6_12==2",
"currentFloor": true,
"priority": 0,
"delayExecute": false,
"multiExecute": false,
"data": [
{
"type": "openDoor"
},
{
"type": "setValue",
"name": "flag:door_MT66_6_12",
"operator": "=",
"value": "null"
}
]
}
},
"9,12": {
"0": {
"condition": "flag:door_MT66_9_12==2",
"currentFloor": true,
"priority": 0,
"delayExecute": false,
"multiExecute": false,
"data": [
{
"type": "openDoor"
},
{
"type": "setValue",
"name": "flag:door_MT66_9_12",
"operator": "=",
"value": "null"
}
]
}
}
},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648, 91,648,648,648,648,648,648,648],
[648, 0,578, 0, 29, 0,129, 0, 21, 0,578, 0,657, 0,648],
[648, 28,648,376,484,378,648,484, 0,403,648,484,648,484,648],
[648, 0,648,648,492,648,648,492,648,648,648,659,648,492,648],
[648,482,249, 0, 27,648, 27,482,648,376,484, 28,648,482,648],
[648,648,648,648, 0,648, 0, 29,648, 0,403, 0,648,482,648],
[ 92, 0,484,648,601,648,220,648,648,232,648,648,648,648,648],
[648, 0, 0,657, 0, 0,484, 0, 0, 0,601, 29, 0,376,648],
[648,129,648,648,648,605,648,605,648,648,648, 0,103, 0,648],
[648, 27, 0,482, 0,381,648, 28, 0,482,648,378, 0,484,648],
[648,648,497,648,648,648,648,648,494,648,648,648,648,563,648],
[648,484,390,648,232,376,648,240,376,648,671,482, 0,482,648],
[648,663,403, 85,403,484, 85,381,484, 85, 0, 0,103, 0,648],
[648,484,396,648,232,378,648,240,378,648,671,482, 0,482,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,79 @@
main.floors.MT67= main.floors.MT67=
{ {
"floorId": "MT67", "floorId": "MT67",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "67", "name": "67",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {},
"changeFloor": {}, "changeFloor": {
"beforeBattle": {}, "0,7": {
"afterBattle": {}, "floorId": "MT61",
"afterGetItem": {}, "loc": [
"afterOpenDoor": {}, 14,
"autoEvent": {}, 7
"cannotMove": {}, ]
"cannotMoveIn": {}, },
"map": [ "7,14": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT64",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "14,7": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT68",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], }
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] "beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[648, 0,601, 0,491,648,484, 0,484,648,484,648, 28,482,648],
[648,484,648,378, 0,249, 0, 21, 0,539, 0,605, 0, 27,648],
[648, 0,648,648,648,648,667,648,492,648,656,648,648,492,648],
[648,390,492, 0,482,648, 28, 0, 27,648, 0,648,482,482,648],
[648,648,648,648, 0,648, 0,103, 0,648,656,648,648,648,648],
[648, 0, 0,220, 0,648,403, 0,484,492, 0, 0,484, 0,648],
[ 92, 0,648,648,596,648,578,648,648,648,648,648, 0, 0, 94],
[648,484, 0,648,381, 0,484,492,376,482, 29,648,657,648,648],
[648, 0, 0,648,648,648,240,648,648,648,243,648,376,482,648],
[648,103, 0,657, 0, 28, 0,482, 0,381, 0,648,381, 28,648],
[648,648,648,648,492,648,648,648,648,648,578,648,671,648,648],
[648,376, 0,605, 0,378,648, 0, 0,492,376,648,396,403,648],
[648, 0,491,648,381, 21,578, 0, 0,648,403,494,482,376,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,83 @@
main.floors.MT68= main.floors.MT68=
{ {
"floorId": "MT68", "floorId": "MT68",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "68", "name": "68",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {
"changeFloor": {}, "13,8": [
"beforeBattle": {}, "右边地狱绘图,请做好心理准备"
"afterBattle": {}, ]
"afterGetItem": {}, },
"afterOpenDoor": {}, "changeFloor": {
"autoEvent": {}, "0,7": {
"cannotMove": {}, "floorId": "MT67",
"cannotMoveIn": {}, "loc": [
"map": [ 14,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "7,14": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT65",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "14,7": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT69",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 7
]
}
},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[648,403, 0,396, 0,390, 0,671, 0,492,378, 0,605, 0,648],
[648,648,648,648,648,648,648,648,381,648, 0,484,648,482,648],
[648, 0,605, 0, 27, 0,484,648, 0,648,648,648,648, 0,648],
[648,491,648,648,492,648, 0, 0,657, 0,484, 0, 0,249,648],
[648, 0,648,482,482,648,648,249,648,648,657,648,492,648,648],
[648,220,648,648,492,648, 0,381, 0,648, 0,648, 0, 0,648],
[ 92, 0,578,484,403,668,376,103,378,220,482,578,482,376, 94],
[648,648,648,648,648,648, 0,491, 0,648, 0,648,648,129,648],
[648,390,482,232,396,648,648,494,648,648, 0,249, 28, 0,648],
[648,482,468,648, 0,648,376,482,378,492,381,648, 0,484,648],
[648,494,648,648,482,659, 0, 21, 0,648, 0,648,648,494,648],
[648,482,482,648,648,648,648,648,657,648,648,648,376,403,648],
[648,482,482,648,482,482,492, 0, 0, 0, 0,671,487,378,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,89 @@
main.floors.MT69= main.floors.MT69=
{ {
"floorId": "MT69", "floorId": "MT69",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "69", "name": "69",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {
"changeFloor": {}, "7,6": [
"beforeBattle": {}, "提示一个本地图的较优解法:从此处直接向右走,然后反过来把红骑士杀了,就基本上没光环了"
"afterBattle": {}, ],
"afterGetItem": {}, "2,7": [
"afterOpenDoor": {}, "中间的那个木牌会提示一种较优解法"
"autoEvent": {}, ],
"cannotMove": {}, "6,13": [
"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], "changeFloor": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "0,7": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT68",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 14,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ]
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "7,14": {
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "floorId": "MT66",
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "loc": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 7,
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 0
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ]
},
"14,7": {
"floorId": "MT71",
"loc": [
0,
7
]
}
},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[648, 28,482,605, 0,648, 0,390, 0,648, 0,659,484,376,648],
[648, 29, 27,648, 0,494,396, 22,403,494, 0,648,378,381,648],
[648,648,648,648,482,648, 0,491, 0,648,482,648,648,648,648],
[648, 0,491,596, 0,648,648,671,648,648, 0,249,491, 0,648],
[648,243,648,648, 0, 27, 0, 0, 0, 28, 0,648,648,601,648],
[648, 0,482,648,594,648,648,129,648,648,227,648,484, 0,648],
[ 92, 0,129,648, 28,381, 28,648, 0,484, 0,648, 0, 0, 94],
[648, 0,482,648, 0,484, 0,648,376,381,376,648,484, 0,648],
[648,492,648,648,648,648,648,648,648,648,648,648,648,578,648],
[648,378, 0,381,667, 0,657, 0,657, 0,564,381, 0,376,648],
[648,648,578,648, 0,648,648,403,648,648, 0,648,232,648,648],
[648,482,376,648,484,648,482, 0,482,648,484,648,396,484,648],
[648,378,482,648, 0,648,129, 0, 0,648, 0,648,484,390,648],
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -1,45 +1,65 @@
main.floors.MT71= main.floors.MT71=
{ {
"floorId": "MT71", "floorId": "MT71",
"title": "苍蓝之殿-右下", "title": "苍蓝之殿-右下",
"name": "71", "name": "71",
"width": 15, "width": 15,
"height": 15, "height": 15,
"canFlyTo": true, "canFlyTo": true,
"canFlyFrom": true, "canFlyFrom": true,
"canUseQuickShop": true, "canUseQuickShop": true,
"cannotViewMap": false, "cannotViewMap": false,
"images": [], "images": [],
"ratio": 8, "ratio": 8,
"defaultGround": "T650", "defaultGround": "T650",
"bgm": "palaceSouth.mp3", "bgm": "palaceSouth.mp3",
"firstArrive": [], "firstArrive": [],
"eachArrive": [], "eachArrive": [],
"parallelDo": "", "parallelDo": "",
"events": {}, "events": {},
"changeFloor": {}, "changeFloor": {
"beforeBattle": {}, "0,7": {
"afterBattle": {}, "floorId": "MT69",
"afterGetItem": {}, "loc": [
"afterOpenDoor": {}, 14,
"autoEvent": {}, 7
"cannotMove": {}, ]
"cannotMoveIn": {}, }
"map": [ },
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "beforeBattle": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "afterBattle": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "afterGetItem": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "afterOpenDoor": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "autoEvent": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "cannotMove": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "cannotMoveIn": {},
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "map": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [648,648,648,648,648,648,648,648,648,648,648,648,648,648,648],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [648,378,484,671, 0,648, 0, 0,484, 0, 85,376,487,376,648],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [648,484,376,648, 0,648, 0,648,648,492,648, 0,378, 0,648],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [648,494,648,648,484,648,484,648,376, 0,648,376,476,376,648],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [648,378,484,232, 0,648, 0,648, 0,484,648, 0,378, 0,648],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [648,484,376,648, 0,648, 0,578,378, 0,648,648,648,648,648],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [648,648,648,648,657,648,657,648,648,648,648,484, 0,484,648],
[ 92, 0, 0, 0, 0,491, 0, 21, 0, 0,492, 0,673, 0,648],
[648,648,648,648,657,648,657,648,648,648,648,484, 0,484,648],
[648,484,376,648, 0,648, 0,578,378, 0,648,648,648,648,648],
[648,378,484,232, 0,648, 0,648, 0,484,648, 0,376, 0,648],
[648,494,648,648,484,648,484,648,376, 0,648,378,476,378,648],
[648,484,376,648, 0,648, 0,648,648,492,648, 0,376, 0,648],
[648,378,484,671, 0,648, 0, 0,484, 0, 85,378,487,378,648],
[648,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
], ],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
} }

View File

@ -438,134 +438,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
checkLoopMap(); checkLoopMap();
// 追猎
// todo: 重写
if (
core.status.checkBlock.haveHunt &&
!core
.getBlockId(core.status.hero.loc.x, core.status.hero.loc.y)
?.endsWith('Portal')
) {
var x = core.status.hero.loc.x,
y = core.status.hero.loc.y;
core.status.maps[core.status.floorId].blocks.forEach(function (
block
) {
if (block.x != x && block.y != y) return;
var id = block.event.id,
enemy = core.material.enemys[id];
if (enemy && core.hasSpecial(enemy.special, 12)) {
var nx = block.x,
ny = block.y;
var dx = Math.abs(x - nx),
dy = Math.abs(y - ny);
if (x == block.x) {
if (
y > block.y &&
!core.noPass(block.x, block.y + 1) &&
core.getBlockCls(block.x, block.y + 1) !=
'items'
) {
dy--;
ny++;
core.insertAction([
{
type: 'move',
loc: [block.x, block.y],
time: 200,
keep: true,
steps: ['down:1']
},
{
type: 'if',
condition: dy + '<=1',
true: [
{ type: 'battle', loc: [nx, ny] }
]
}
]);
}
if (
y < block.y &&
!core.noPass(block.x, block.y - 1) &&
core.getBlockCls(block.x, block.y - 1) !=
'items'
) {
dy--;
ny--;
core.insertAction([
{
type: 'move',
loc: [block.x, block.y],
time: 200,
keep: true,
steps: ['up:1']
},
{
type: 'if',
condition: dy + '<=1',
true: [
{ type: 'battle', loc: [nx, ny] }
]
}
]);
}
} else {
if (
x > block.x &&
!core.noPass(block.x + 1, block.y) &&
core.getBlockCls(block.x + 1, block.y) !=
'items'
) {
dx--;
nx++;
core.insertAction([
{
type: 'move',
loc: [block.x, block.y],
time: 200,
keep: true,
steps: ['right:1']
},
{
type: 'if',
condition: dx + '<=1',
true: [
{ type: 'battle', loc: [nx, ny] }
]
}
]);
}
if (
x < block.x &&
!core.noPass(block.x - 1, block.y) &&
core.getBlockCls(block.x - 1, block.y) !=
'items'
) {
dx--;
nx--;
core.insertAction([
{
type: 'move',
loc: [block.x, block.y],
time: 200,
keep: true,
steps: ['left:1']
},
{
type: 'if',
condition: dx + '<=1',
true: [
{ type: 'battle', loc: [nx, ny] }
]
}
]);
}
}
}
});
}
// 如需强行终止行走可以在这里条件判定: // 如需强行终止行走可以在这里条件判定:
// core.stopAutomaticRoute(); // core.stopAutomaticRoute();
Mota.require('var', 'hook').emit( Mota.require('var', 'hook').emit(

View File

@ -425,7 +425,13 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"E658": 170, "E658": 170,
"E659": 171, "E659": 171,
"E666": 172, "E666": 172,
"E667": 173 "E667": 173,
"E668": 174,
"E669": 175,
"E670": 176,
"E671": 177,
"E672": 178,
"E673": 179
}, },
"enemy48": { "enemy48": {
"angel": 0, "angel": 0,

View File

@ -1161,7 +1161,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"name": "bgm查看器", "name": "bgm查看器",
"canUseItemEffect": "true", "canUseItemEffect": "true",
"text": "可以查看游戏内你已经听过的bgm歌曲名格式歌手——歌曲名。未完工。", "text": "可以查看游戏内你已经听过的bgm歌曲名格式歌手——歌曲名。未完工。",
"useItemEffect": "mota.plugin.utils.tip('warn', '当前道具还未制作完成!');\n// mota.ui.main.open('bgm');" "useItemEffect": "//mota.plugin.utils.tip('warn', '当前道具还未制作完成!');\n// mota.ui.main.open('bgm');"
}, },
"I559": { "I559": {
"cls": "constants", "cls": "constants",
@ -1250,12 +1250,12 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"text": "或许是苍蓝之灵的杰作可以让使用者的恢复能力增强。生命回复增加10%" "text": "或许是苍蓝之灵的杰作可以让使用者的恢复能力增强。生命回复增加10%"
}, },
"I663": { "I663": {
"cls": "items", "cls": "equips",
"name": "地灵华", "name": "地灵华",
"canUseItemEffect": "true", "canUseItemEffect": "true",
"text": "一个用大地之力制造出的饰品貌似对魔法攻击有抵抗作用。装备后对魔攻怪会有50%的防御力(即防御的一半充当抵消魔攻的防御,勇士受到的伤害变为 怪物攻击 - 勇士防御 / 2", "text": "一个用大地之力制造出的饰品貌似对魔法攻击有抵抗作用。装备后对魔攻怪会有500点防御力",
"equip": { "equip": {
"type": "", "type": "饰",
"value": {}, "value": {},
"percentage": {} "percentage": {}
} }

View File

@ -596,6 +596,12 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"665": {"cls":"items","id":"I665"}, "665": {"cls":"items","id":"I665"},
"666": {"cls":"enemys","id":"E666"}, "666": {"cls":"enemys","id":"E666"},
"667": {"cls":"enemys","id":"E667"}, "667": {"cls":"enemys","id":"E667"},
"668": {"cls":"enemys","id":"E668"},
"669": {"cls":"enemys","id":"E669"},
"670": {"cls":"enemys","id":"E670"},
"671": {"cls":"enemys","id":"E671"},
"672": {"cls":"enemys","id":"E672"},
"673": {"cls":"enemys","id":"E673"},
"20032": {"cls":"tileset","id":"X20032","cannotOut":["up","left"],"cannotIn":["up","left"]}, "20032": {"cls":"tileset","id":"X20032","cannotOut":["up","left"],"cannotIn":["up","left"]},
"20033": {"cls":"tileset","id":"X20033","cannotOut":["up"],"cannotIn":["up"]}, "20033": {"cls":"tileset","id":"X20033","cannotOut":["up"],"cannotIn":["up"]},
"20034": {"cls":"tileset","id":"X20034","cannotOut":["up","right"],"cannotIn":["up","right"]}, "20034": {"cls":"tileset","id":"X20034","cannotOut":["up","right"],"cannotIn":["up","right"]},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 182 KiB

View File

@ -7,7 +7,7 @@
</template> </template>
<script lang="tsx" setup> <script lang="tsx" setup>
import { onMounted, onUnmounted, onUpdated, ref } from 'vue'; import { onMounted, onUnmounted, onUpdated } from 'vue';
import { addAnimate, removeAnimate } from '../plugin/animateController'; import { addAnimate, removeAnimate } from '../plugin/animateController';
import { has, requireUniqueSymbol } from '../plugin/utils'; import { has, requireUniqueSymbol } from '../plugin/utils';

View File

@ -9,6 +9,7 @@ import { MinimapDrawer, getArea } from '../plugin/ui/fly';
import { hook } from '@/game/game'; import { hook } from '@/game/game';
import { useDrag, useWheel } from '@/plugin/use'; import { useDrag, useWheel } from '@/plugin/use';
import { debounce } from 'lodash-es'; import { debounce } from 'lodash-es';
import { mainSetting } from '@/core/main/setting';
const props = defineProps<{ const props = defineProps<{
action?: boolean; action?: boolean;
@ -22,6 +23,7 @@ const props = defineProps<{
const area = getArea(); const area = getArea();
const id = requireUniqueSymbol().toFixed(0); const id = requireUniqueSymbol().toFixed(0);
const setting = mainSetting.getSetting('ui.mapLazy')!;
let canvas: HTMLCanvasElement; let canvas: HTMLCanvasElement;
let drawer: MinimapDrawer; let drawer: MinimapDrawer;
@ -106,10 +108,12 @@ function touchmove(e: TouchEvent) {
} }
function afterBattle() { function afterBattle() {
requestAnimationFrame(() => { if (!setting.value) {
drawer.drawedThumbnail = {}; requestAnimationFrame(() => {
drawer.drawMap(); drawer.drawedThumbnail = {};
}); drawer.drawMap();
});
}
} }
onMounted(() => { onMounted(() => {

File diff suppressed because it is too large Load Diff

View File

@ -264,6 +264,7 @@ export class UiController extends Focus<IndexedGameUi> {
* @returns ui的唯一标识符 * @returns ui的唯一标识符
*/ */
open(id: string, vBind?: UiVBind, vOn?: UiVOn) { open(id: string, vBind?: UiVBind, vOn?: UiVOn) {
if (core.isReplaying() && !this.equal) return -1;
const ui = this.get(id); const ui = this.get(id);
if (!ui) { if (!ui) {
console.warn(`Unknown UI: '${id}'.`); console.warn(`Unknown UI: '${id}'.`);

View File

@ -481,6 +481,7 @@ mainSetting
new MotaSetting() new MotaSetting()
.register('mapScale', '小地图缩放', 100, COM.Number, [50, 1000, 50]) .register('mapScale', '小地图缩放', 100, COM.Number, [50, 1000, 50])
.setDisplayFunc('mapScale', value => `${value}%`) .setDisplayFunc('mapScale', value => `${value}%`)
.register('mapLazy', '小地图懒更新', false, COM.Boolean)
.register('toolbarScale', '工具栏缩放', 100, COM.Number, [10, 500, 10]) .register('toolbarScale', '工具栏缩放', 100, COM.Number, [10, 500, 10])
.setDisplayFunc('toolbarScale', value => `${value}%`) .setDisplayFunc('toolbarScale', value => `${value}%`)
.register('bookScale', '怪物手册缩放', 100, COM.Number, [10, 500, 10]) .register('bookScale', '怪物手册缩放', 100, COM.Number, [10, 500, 10])
@ -515,6 +516,7 @@ loading.once('coreInit', () => {
'ui.mapScale', 'ui.mapScale',
isMobile ? 300 : Math.floor(window.innerWidth / 600) * 50 isMobile ? 300 : Math.floor(window.innerWidth / 600) * 50
), ),
'ui.mapLazy': storage.getValue('ui.mapLazy', false),
'ui.toolbarScale': storage.getValue( 'ui.toolbarScale': storage.getValue(
'ui.toolbarScale', 'ui.toolbarScale',
isMobile ? 50 : Math.floor((window.innerWidth / 1700) * 10) * 10 isMobile ? 50 : Math.floor((window.innerWidth / 1700) * 10) * 10
@ -557,6 +559,7 @@ mainSetting
.setDescription('audio.soundEnabled', `是否开启音效`) .setDescription('audio.soundEnabled', `是否开启音效`)
.setDescription('audio.soundVolume', `音效的音量`) .setDescription('audio.soundVolume', `音效的音量`)
.setDescription('ui.mapScale', `楼传小地图的缩放,百分比格式`) .setDescription('ui.mapScale', `楼传小地图的缩放,百分比格式`)
.setDescription('ui.mapLazy', `是否启用小地图懒更新模式,此模式下剩余怪物数量不会实时更新而变成切换地图后更新,打开小地图时出现卡顿可以尝试开启此设置`)
.setDescription('ui.toolbarScale', `自定义工具栏的缩放比例`) .setDescription('ui.toolbarScale', `自定义工具栏的缩放比例`)
.setDescription('ui.bookScale', `怪物手册界面中每个怪物框体的高度缩放,最小值限定为 20% 屏幕高度`) .setDescription('ui.bookScale', `怪物手册界面中每个怪物框体的高度缩放,最小值限定为 20% 屏幕高度`)
.setDescription('ui.danmaku', '是否显示弹幕') .setDescription('ui.danmaku', '是否显示弹幕')

View File

@ -33,7 +33,7 @@ Mota.Plugin.register('shadow_r', shadow, shadow.init);
Mota.Plugin.register('gameShadow_r', gameShadow, gameShadow.init); Mota.Plugin.register('gameShadow_r', gameShadow, gameShadow.init);
Mota.Plugin.register('fly_r', fly); Mota.Plugin.register('fly_r', fly);
Mota.Plugin.register('chase_r', chase); Mota.Plugin.register('chase_r', chase);
Mota.Plugin.register('completion_r', completion); Mota.Plugin.register('completion_r', completion, completion.init);
Mota.Plugin.register('pop_r', pop, pop.init); Mota.Plugin.register('pop_r', pop, pop.init);
Mota.Plugin.register('frag_r', frag, frag.init); Mota.Plugin.register('frag_r', frag, frag.init);
Mota.Plugin.register('use_r', use); Mota.Plugin.register('use_r', use);

View File

@ -37,7 +37,7 @@
"text": [ "text": [
"第一章完成度达到100%" "第一章完成度达到100%"
], ],
"progress": "${mota.plugin.completion.getChapterCompletion(1)} / 100", "progress": "${Mota.Plugin.require('completion_r').getChapterCompletion(1)} / 100",
"percent": true, "percent": true,
"point": 50 "point": 50
}, },
@ -55,7 +55,7 @@
"text": [ "text": [
"第二章完成度达到100%" "第二章完成度达到100%"
], ],
"progress": "${mota.plugin.completion.getChapterCompletion(2)} / 100", "progress": "${Mota.Plugin.require('completion_r').getChapterCompletion(2)} / 100",
"percent": true, "percent": true,
"point": 50 "point": 50
}, },

View File

@ -266,6 +266,8 @@ function init() {
if (core.status.event.id == null) core.continueAutomaticRoute(); if (core.status.event.id == null) core.continueAutomaticRoute();
else core.clearContinueAutomaticRoute(); else core.clearContinueAutomaticRoute();
core.checkAutoEvents();
hook.emit('afterBattle', enemy, x, y); hook.emit('afterBattle', enemy, x, y);
}; };
} }

View File

@ -48,6 +48,7 @@ interface MapDamage {
damage: number; damage: number;
type: Set<string>; type: Set<string>;
mockery?: LocArr[]; mockery?: LocArr[];
hunt?: [x: number, y: number, dir: Dir][];
} }
interface HaloData<T extends keyof HaloType = keyof HaloType> { interface HaloData<T extends keyof HaloType = keyof HaloType> {
@ -102,6 +103,9 @@ export class EnemyCollection implements RangeCollection<DamageEnemy> {
mapDamage: Record<string, MapDamage> = {}; mapDamage: Record<string, MapDamage> = {};
haloList: HaloData[] = []; haloList: HaloData[] = [];
/** 乾坤挪移属性 */
translation: [number, number] = [0, 0];
constructor(floorId: FloorIds) { constructor(floorId: FloorIds) {
this.floorId = floorId; this.floorId = floorId;
this.extract(); this.extract();
@ -128,10 +132,10 @@ export class EnemyCollection implements RangeCollection<DamageEnemy> {
/** /**
* *
* @param noCache 使
*/ */
calRealAttribute() { calRealAttribute() {
this.haloList = []; this.haloList = [];
this.translation = [0, 0];
this.list.forEach(v => { this.list.forEach(v => {
v.reset(); v.reset();
}); });
@ -311,6 +315,17 @@ export class EnemyCollection implements RangeCollection<DamageEnemy> {
alpha: 1 alpha: 1
}); });
} }
// 追猎
if (dam.hunt) {
core.status.damage.extraData.push({
text: '猎',
px: 32 * x + 16,
py: 32 * (y + 1) - 14,
color: '#fd4',
alpha: 1
});
}
} }
} }
} }
@ -381,6 +396,12 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
} }
this.progress = 0; this.progress = 0;
this.providedHalo.clear(); this.providedHalo.clear();
// 在这里计算乾坤挪移
if (this.col && enemy.special.includes(30)) {
this.col.translation[0] += enemy.translation![0];
this.col.translation[1] += enemy.translation![1];
}
} }
/** /**
@ -392,6 +413,11 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
const special = this.info.special; const special = this.info.special;
const info = this.info; const info = this.info;
const floorId = this.floorId ?? core.status.floorId; const floorId = this.floorId ?? core.status.floorId;
let [dx, dy] = [0, 0];
const col = this.col ?? core.status.maps[this.floorId!]?.enemy;
if (col) {
[dx, dy] = col.translation;
}
// 智慧之源 // 智慧之源
if (flags.hard === 2 && special.includes(14)) { if (flags.hard === 2 && special.includes(14)) {
@ -406,7 +432,10 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
if (has(flags[`melt_${floorId}`]) && has(this.x) && has(this.y)) { if (has(flags[`melt_${floorId}`]) && has(this.x) && has(this.y)) {
for (const [loc, per] of Object.entries(flags[`melt_${floorId}`])) { for (const [loc, per] of Object.entries(flags[`melt_${floorId}`])) {
const [mx, my] = loc.split(',').map(v => parseInt(v)); const [mx, my] = loc.split(',').map(v => parseInt(v));
if (Math.abs(mx - this.x) <= 1 && Math.abs(my - this.y) <= 1) { if (
Math.abs(mx + dx - this.x) <= 1 &&
Math.abs(my + dy - this.y) <= 1
) {
info.atkBuff_ += per as number; info.atkBuff_ += per as number;
info.defBuff_ += per as number; info.defBuff_ += per as number;
} }
@ -463,6 +492,8 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
if (!has(this.x) || !has(this.y)) return; if (!has(this.x) || !has(this.y)) return;
const special = this.getHaloSpecials(); const special = this.getHaloSpecials();
const col = this.col ?? core.status.maps[this.floorId!].enemy; const col = this.col ?? core.status.maps[this.floorId!].enemy;
let [dx, dy] = [0, 0];
if (col) [dx, dy] = col.translation;
for (const halo of special) { for (const halo of special) {
switch (halo) { switch (halo) {
@ -472,7 +503,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
const type = 'square'; const type = 'square';
const r = Math.floor(e.haloRange!); const r = Math.floor(e.haloRange!);
const d = r * 2 + 1; const d = r * 2 + 1;
const range = { x: this.x, y: this.y, d }; const range = { x: this.x + dx, y: this.y + dy, d };
// 这一句必须放到applyHalo之前 // 这一句必须放到applyHalo之前
this.providedHalo.add(29); this.providedHalo.add(29);
@ -512,7 +543,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
); );
col.haloList.push({ col.haloList.push({
type: 'square', type: 'square',
data: { x: this.x, y: this.y, d }, data: { x: this.x + dx, y: this.y + dy, d },
special: 29, special: 29,
from: this from: this
}); });
@ -532,6 +563,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
const col = this.col ?? core.status.maps[this.floorId].enemy; const col = this.col ?? core.status.maps[this.floorId].enemy;
if (!col) return; if (!col) return;
const special = this.getHaloSpecials(); const special = this.getHaloSpecials();
const [dx, dy] = col.translation;
const square7: HaloFn[] = []; const square7: HaloFn[] = [];
const square5: HaloFn[] = []; const square5: HaloFn[] = [];
@ -540,27 +572,32 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
// 抱团 // 抱团
if (special.includes(8)) { if (special.includes(8)) {
square5.push((e, enemy) => { col.applyHalo(
if ( 'square',
e.special.includes(8) && { x: this.x, y: this.y, d: 5 },
(e.x !== this.x || this.y !== e.y) this,
) { (e, enemy) => {
e.atkBuff_ += enemy.together ?? 0; if (
e.defBuff_ += enemy.together ?? 0; e.special.includes(8) &&
(e.x !== this.x || this.y !== e.y)
) {
e.atkBuff_ += enemy.together ?? 0;
e.defBuff_ += enemy.together ?? 0;
}
} }
}); );
this.providedHalo.add(8); this.providedHalo.add(8);
} }
// 冰封光环 // 冰封光环
if (special.includes(21)) { if (special.includes(21)) {
square7.push(e => { square7.push(e => {
e.damageDecline += this.enemy.iceHalo ?? 0; e.damageDecline += this.info.iceHalo ?? 0;
}); });
this.providedHalo.add(21); this.providedHalo.add(21);
col.haloList.push({ col.haloList.push({
type: 'square', type: 'square',
data: { x: this.x, y: this.y, d: 7 }, data: { x: this.x + dx, y: this.y + dy, d: 7 },
special: 21, special: 21,
from: this from: this
}); });
@ -569,12 +606,12 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
// 冰封之核 // 冰封之核
if (special.includes(26)) { if (special.includes(26)) {
square5.push(e => { square5.push(e => {
e.defBuff_ += this.enemy.iceCore ?? 0; e.defBuff_ += this.info.iceCore ?? 0;
}); });
this.providedHalo.add(26); this.providedHalo.add(26);
col.haloList.push({ col.haloList.push({
type: 'square', type: 'square',
data: { x: this.x, y: this.y, d: 5 }, data: { x: this.x + dx, y: this.y + dy, d: 5 },
special: 26, special: 26,
from: this from: this
}); });
@ -583,19 +620,29 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
// 火焰之核 // 火焰之核
if (special.includes(27)) { if (special.includes(27)) {
square5.push(e => { square5.push(e => {
e.atkBuff_ += this.enemy.fireCore ?? 0; e.atkBuff_ += this.info.fireCore ?? 0;
}); });
this.providedHalo.add(27); this.providedHalo.add(27);
col.haloList.push({ col.haloList.push({
type: 'square', type: 'square',
data: { x: this.x, y: this.y, d: 5 }, data: { x: this.x + dx, y: this.y + dy, d: 5 },
special: 27, special: 27,
from: this from: this
}); });
} }
col.applyHalo('square', { x: this.x, y: this.y, d: 7 }, this, square7); col.applyHalo(
col.applyHalo('square', { x: this.x, y: this.y, d: 5 }, this, square5); 'square',
{ x: this.x + dx, y: this.y + dy, d: 7 },
this,
square7
);
col.applyHalo(
'square',
{ x: this.x + dx, y: this.y + dy, d: 5 },
this,
square5
);
} }
/** /**
@ -703,6 +750,37 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
} }
} }
// 追猎
if (this.info.special.includes(12)) {
const objs = core.getMapBlocksObj(this.floorId);
for (let nx = 0; nx < w; nx++) {
const loc = `${nx},${this.y}` as LocString;
const block = objs[loc];
if (!block?.event.noPass) {
damage[loc] ??= { damage: 0, type: new Set() };
damage[loc].hunt ??= [];
damage[loc].hunt!.push([
this.x,
this.y,
nx < this.x ? 'left' : 'right'
]);
}
}
for (let ny = 0; ny < h; ny++) {
const loc = `${this.x},${ny}` as LocString;
const block = objs[loc];
if (!block?.event.noPass) {
damage[loc] ??= { damage: 0, type: new Set() };
damage[loc].hunt ??= [];
damage[loc].hunt!.push([
this.x,
this.y,
ny < this.y ? 'up' : 'down'
]);
}
}
}
return damage; return damage;
} }
@ -927,9 +1005,6 @@ const skills: [unlock: string, condition: string][] = [
['shieldOn', 'shield'] ['shieldOn', 'shield']
]; ];
const haloValue: Map<number, SelectKey<Enemy, number | undefined>[]> =
new Map();
/** /**
* *
* @param info * @param info
@ -939,7 +1014,13 @@ export function calDamageWith(
info: EnemyInfo, info: EnemyInfo,
hero: Partial<HeroStatus> hero: Partial<HeroStatus>
): number | null { ): number | null {
const { hp, hpmax, mana, mdef } = core.status.hero; const {
hp,
hpmax,
mana,
mdef,
special: heroSpec = { num: [], last: [] }
} = core.status.hero;
let { atk, def } = hero as HeroStatus; let { atk, def } = hero as HeroStatus;
let { hp: monHp, atk: monAtk, def: monDef, special, enemy } = info; let { hp: monHp, atk: monAtk, def: monDef, special, enemy } = info;
@ -952,6 +1033,13 @@ export function calDamageWith(
monAtk += delta; monAtk += delta;
} }
// 勇士学习的饥渴
if (heroSpec.num.includes(7)) {
const delta = Math.floor((monAtk * heroSpec.hungry!) / 100);
atk += delta;
monAtk -= delta;
}
let heroPerDamage: number; let heroPerDamage: number;
// 绝对防御 // 绝对防御
@ -975,11 +1063,19 @@ export function calDamageWith(
heroPerDamage *= 1 - info.damageDecline / 100; heroPerDamage *= 1 - info.damageDecline / 100;
// 勇士学习勇气之刃
if (heroSpec.num.includes(10)) {
monHp -= (heroSpec.courage / 100 - 1) * heroPerDamage;
}
let enemyPerDamage: number; let enemyPerDamage: number;
// 魔攻 // 魔攻
if (special.includes(2) || special.includes(13)) { if (special.includes(2) || special.includes(13)) {
enemyPerDamage = monAtk; enemyPerDamage = monAtk;
if (core.hasEquip('I663')) {
enemyPerDamage = Math.max(0, enemyPerDamage - 500);
}
} else { } else {
enemyPerDamage = monAtk - def; enemyPerDamage = monAtk - def;
if (enemyPerDamage < 0) enemyPerDamage = 0; if (enemyPerDamage < 0) enemyPerDamage = 0;
@ -995,13 +1091,49 @@ export function calDamageWith(
if (special.includes(5)) enemyPerDamage *= 3; if (special.includes(5)) enemyPerDamage *= 3;
if (special.includes(6)) enemyPerDamage *= enemy.n!; if (special.includes(6)) enemyPerDamage *= enemy.n!;
// 勇士学习霜冻
if (heroSpec.num.includes(20)) {
enemyPerDamage *= 1 - heroSpec.ice / 100;
}
// 勇士学习苍蓝刻
if (heroSpec.num.includes(28)) {
enemyPerDamage *= 1 - heroSpec.paleShield / 100;
}
// 苍蓝刻 // 苍蓝刻
if (special.includes(28)) { if (special.includes(28)) {
heroPerDamage *= 1 - info.paleShield! / 100; heroPerDamage *= 1 - info.paleShield! / 100;
} }
// 勇士学习的连击
if (heroSpec.num.includes(4)) heroPerDamage *= 2;
if (heroSpec.num.includes(5)) heroPerDamage *= 3;
if (heroSpec.num.includes(6)) heroPerDamage *= heroSpec.n;
// 勇士学习勇气冲锋
const hasCharge = heroSpec.num.includes(11);
if (hasCharge) {
monHp -= (heroSpec.charge / 100) * heroPerDamage;
}
let turn = Math.ceil(monHp / heroPerDamage); let turn = Math.ceil(monHp / heroPerDamage);
// 勇士学习致命一击
if (heroSpec.num.includes(1)) {
const five =
4 * heroPerDamage + (heroPerDamage * (info.crit! - 100)) / 100;
const fTurn = Math.floor(monHp / five);
const last = monHp - fTurn * five;
const lastTurn = Math.min(last / heroPerDamage, 5);
turn = fTurn * 5 + lastTurn;
}
if (hasCharge) {
turn -= 5;
if (turn < 0) turn = 0;
}
// 致命一击 // 致命一击
if (special.includes(1)) { if (special.includes(1)) {
const times = Math.floor(turn / 5); const times = Math.floor(turn / 5);
@ -1014,7 +1146,7 @@ export function calDamageWith(
} }
// 勇气冲锋 // 勇气冲锋
if (special.includes(11)) { if (special.includes(11) && !hasCharge) {
damage += (info.charge! / 100) * enemyPerDamage; damage += (info.charge! / 100) * enemyPerDamage;
turn += 5; turn += 5;
} }
@ -1029,7 +1161,8 @@ export function calDamageWith(
if (flags.hard === 1) damage *= 0.9; if (flags.hard === 1) damage *= 0.9;
if (flags.chapter > 1 && damage < 0) { if (flags.chapter > 1 && damage < 0) {
damage *= 0.25; const dm = -enemy.hp * 0.25;
if (damage < dm) damage = dm;
} }
return damage; return damage;

View File

@ -233,5 +233,18 @@ export const specials: SpecialDeclaration[] = [
); );
}, },
color: '#F721F7' color: '#F721F7'
},
{
code: 30,
name: '乾坤挪移',
desc: enemy => {
const [dx, dy] = enemy.translation!;
return `此怪物在场时,所有光环向${
dx < 0 ? '左' : '右'
}${Math.abs(dx)}${dy < 0 ? '上' : '下'}${Math.abs(
dy
)}`;
},
color: '#FDCD0B'
} }
]; ];

View File

@ -8,6 +8,7 @@ import { gameListener, hook, loading } from './game';
import * as battle from './enemy/battle'; import * as battle from './enemy/battle';
import * as hero from './hero'; import * as hero from './hero';
import * as miscMechanism from './mechanism/misc'; import * as miscMechanism from './mechanism/misc';
import * as study from './mechanism/study';
// ----- 类注册 // ----- 类注册
Mota.register('class', 'DamageEnemy', damage.DamageEnemy); Mota.register('class', 'DamageEnemy', damage.DamageEnemy);
@ -27,7 +28,8 @@ Mota.register('var', 'gameListener', gameListener);
Mota.register('var', 'loading', loading); Mota.register('var', 'loading', loading);
// ----- 模块注册 // ----- 模块注册
Mota.register('module', 'Mechanism', { Mota.register('module', 'Mechanism', {
BluePalace: miscMechanism.BluePalace BluePalace: miscMechanism.BluePalace,
Study: study
}); });
main.loading = loading; main.loading = loading;

View File

@ -0,0 +1,81 @@
import { has } from '@/plugin/game/utils';
import { EnemyInfo } from '../enemy/damage';
import { getSkillLevel } from '@/plugin/game/skillTree';
import { hook } from '../game';
// 负责勇士技能:学习
const canStudy: Set<number> = new Set([1, 4, 5, 6, 7, 10, 11, 20, 28, 30]);
const numberProp: Record<number, (keyof Enemy)[]> = {
1: ['crit'],
6: ['n'],
7: ['hungry'],
10: ['courage'],
11: ['charge'],
20: ['ice'],
28: ['paleShield']
};
hook.on('afterBattle', () => {
declineStudiedSkill();
});
/**
*
* @param number
*/
export function canStudySkill(number: number) {
const s = (core.status.hero.special ??= { num: [], last: [] });
if (Mota.Plugin.require('skillTree_g').getSkillLevel(11) === 0)
return false;
if (s.num.length >= 1) return false;
if (s.num.includes(number)) return false;
return canStudy.has(number);
}
/**
*
* @param enemy
* @param number
*/
export function studySkill(enemy: EnemyInfo, number: number) {
core.status.hero.special ??= { num: [], last: [] };
const s = core.status.hero.special;
if (!canStudySkill(number)) return false;
s.num.push(number);
s.last.push(getSkillLevel(11) * 3 + 2);
const value = numberProp[number] ?? [];
for (const key of value) {
s[key] = enemy[key];
}
return true;
}
/**
*
* @param num
* @param i
*/
export function forgetStudiedSkill(num: number, i: number) {
const s = core.status.hero.special;
const index = has(i) ? i : s.num.indexOf(num);
if (index === -1) return;
s.num.splice(index, 1);
s.last.splice(index, 1);
const value = numberProp[num] ?? [];
for (const key of value) {
delete s[key];
}
}
/**
*
*/
export function declineStudiedSkill() {
const s = (core.status.hero.special ??= { num: [], last: [] });
for (let i = 0; i < s.last.length; i++) {
s.last[i]--;
if (s.last[i] === 0) {
forgetStudiedSkill(s.num[i], i);
}
}
}

View File

@ -136,7 +136,7 @@ interface PluginInterface {
itemDetail_g: typeof import('../plugin/game/fx/itemDetail'); itemDetail_g: typeof import('../plugin/game/fx/itemDetail');
checkBlock_g: typeof import('../plugin/game/enemy/checkblock'); checkBlock_g: typeof import('../plugin/game/enemy/checkblock');
halo_g: typeof import('../plugin/game/fx/halo'); halo_g: typeof import('../plugin/game/fx/halo');
study_g: typeof import('../plugin/game/study'); // study_g: typeof import('../plugin/game/study');
} }
interface PackageInterface { interface PackageInterface {

View File

@ -100,7 +100,6 @@ import { has, setCanvasSize } from '../plugin/utils';
import { debounce } from 'lodash-es'; import { debounce } from 'lodash-es';
import { isMobile } from '../plugin/use'; import { isMobile } from '../plugin/use';
import { createChangable } from '@/plugin/ui/common'; import { createChangable } from '@/plugin/ui/common';
const props = defineProps<{ const props = defineProps<{
fromBook?: boolean; fromBook?: boolean;
}>(); }>();
@ -111,8 +110,8 @@ const def = ref<HTMLCanvasElement>();
const enemy = detailInfo.enemy!; const enemy = detailInfo.enemy!;
const ceil = Math.ceil; const ceil = Math.ceil;
const x = ref(props.fromBook ? void 0 : flags.mouseLoc[0]); const x = ref<number>();
const y = ref(props.fromBook ? void 0 : flags.mouseLoc[1]); const y = ref<number>();
x.value = has(x.value) x.value = has(x.value)
? Math.round(x.value + core.bigmap.offsetX / 32) ? Math.round(x.value + core.bigmap.offsetX / 32)
: void 0; : void 0;

View File

@ -21,16 +21,14 @@ export const achiDict: Record<number, number> = {
1: 0 1: 0
}; };
const loading = Mota.require('var', 'loading'); export function init() {
loading.once('coreInit', () => {
Object.values(floors).forEach((v, i) => { Object.values(floors).forEach((v, i) => {
const from = core.floorIds.indexOf(v[0]); const from = core.floorIds.indexOf(v[0]);
const to = core.floorIds.indexOf(v[1]); const to = core.floorIds.indexOf(v[1]);
const all = core.floorIds.slice(from, to + 1); const all = core.floorIds.slice(from, to + 1);
floors[i + 1] = all; floors[i + 1] = all;
}); });
}); }
/** /**
* *

View File

@ -11,7 +11,7 @@ export function init() {
const setting = Mota.require('var', 'mainSetting'); const setting = Mota.require('var', 'mainSetting');
tran.ticker.add(() => { tran.ticker.add(() => {
if (core.isPlaying() && needSmooth) { if (core.isPlaying() && needSmooth && !core.isReplaying()) {
core.setViewport(tran.value.x, tran.value.y); core.setViewport(tran.value.x, tran.value.y);
} }
}); });
@ -39,7 +39,12 @@ export function init() {
tran.transition('x', ox).transition('y', oy); tran.transition('x', ox).transition('y', oy);
const t = setting.getValue('screen.smoothView', false); const t = setting.getValue('screen.smoothView', false);
if (!t) return; if (!t || core.isReplaying()) {
core.bigmap.offsetX = ox;
core.bigmap.offsetY = oy;
core.control.updateViewport();
return;
}
if (tran.easeTime > 0) { if (tran.easeTime > 0) {
needSmooth = true; needSmooth = true;
func(); func();

View File

@ -1,3 +1,4 @@
import { has, ofDir } from '@/plugin/game/utils';
import { drawHalo } from '../fx/halo'; import { drawHalo } from '../fx/halo';
export function init() { export function init() {
@ -34,6 +35,7 @@ export function init() {
} }
} }
checkMockery(loc, forceMockery); checkMockery(loc, forceMockery);
checkHunt(loc);
}; };
control.prototype._drawDamage_draw = function ( control.prototype._drawDamage_draw = function (
@ -170,3 +172,47 @@ function checkMockery(loc: string, force: boolean = false) {
core.insertAction(action); core.insertAction(action);
} }
} }
function checkHunt(loc: string) {
const hunt = core.status.thisMap.enemy.mapDamage[loc]?.hunt;
if (!hunt) return;
const { x: hx, y: hy } = core.status.hero.loc;
const action: any = [];
for (const [x, y, dir] of hunt) {
action.push(
{
type: 'move',
loc: [x, y],
time: 100,
keep: true,
steps: [`${dir}:1`]
},
{
type: 'update'
}
);
const [tx, ty] = ofDir(x, y, dir);
if (core.noPass(tx, ty)) return;
if (has(hy) && x === hx) {
if (Math.abs(y - hy) <= 2) {
action.push({
type: 'battle',
loc: [tx, ty]
});
}
}
if (has(hx) && y === hy) {
if (Math.abs(x - hx) <= 2) {
action.push({
type: 'battle',
loc: [tx, ty]
});
}
}
}
core.insertAction(action);
}

View File

@ -3,7 +3,7 @@ const haloColor: Record<number, string[]> = {
25: ['purple'], 25: ['purple'],
26: ['blue'], 26: ['blue'],
27: ['red'], 27: ['red'],
29: ['#C3D100'] 29: ['#3CFF49']
}; };
export function drawHalo( export function drawHalo(
@ -13,15 +13,17 @@ export function drawHalo(
) { ) {
if (main.replayChecking) return; if (main.replayChecking) return;
const setting = Mota.require('var', 'mainSetting'); const setting = Mota.require('var', 'mainSetting');
if (!setting.getValue('screen.showHalo', true)) return; if (!setting.getValue('screen.halo', true)) return;
const list = core.status.maps[floorId].enemy.haloList.concat( const col = core.status.maps[floorId].enemy;
const [dx, dy] = col.translation;
const list = col.haloList.concat(
Object.keys(flags[`melt_${floorId}`] ?? {}).map(v => { Object.keys(flags[`melt_${floorId}`] ?? {}).map(v => {
const [x, y] = v.split(',').map(v => parseInt(v)); const [x, y] = v.split(',').map(v => parseInt(v));
return { return {
type: 'square', type: 'square',
data: { data: {
x, x: x + dx,
y, y: y + dy,
d: 3 d: 3
}, },
special: 25 special: 25

View File

@ -37,7 +37,7 @@ export function init() {
displayDamage displayDamage
) { ) {
const enemy = getEnemy(x, y); const enemy = getEnemy(x, y);
const dam = enemy.calDamage(); const dam = enemy?.calDamage() ?? { damage: 0 };
const { damage, color } = formatDamage(dam.damage); const { damage, color } = formatDamage(dam.damage);
damageCanvas = '__damage_' + x + '_' + y; damageCanvas = '__damage_' + x + '_' + y;
@ -46,7 +46,7 @@ export function init() {
ctx.font = '14px normal'; ctx.font = '14px normal';
core.fillBoldText(ctx, damage, 1, 31, color as string); core.fillBoldText(ctx, damage, 1, 31, color as string);
if (core.flags.displayCritical) { if (core.flags.displayCritical) {
const critical = enemy.calCritical(1); const critical = enemy?.calCritical(1) ?? [];
const atk = core.formatBigNumber(critical[0]?.delta, true); const atk = core.formatBigNumber(critical[0]?.delta, true);
const display = atk === '???' ? '?' : atk; const display = atk === '???' ? '?' : atk;
core.fillBoldText(ctx, display, 1, 21, '#FFFFFF'); core.fillBoldText(ctx, display, 1, 21, '#FFFFFF');

View File

@ -11,7 +11,6 @@ import * as removeMap from './removeMap';
import * as shop from './shop'; import * as shop from './shop';
import * as skill from './skill'; import * as skill from './skill';
import * as skillTree from './skillTree'; import * as skillTree from './skillTree';
import * as study from './study';
import * as towerBoss from './towerBoss'; import * as towerBoss from './towerBoss';
import * as utils from './utils'; import * as utils from './utils';
import * as chase from './chase'; import * as chase from './chase';
@ -33,7 +32,7 @@ Mota.Plugin.register('heroFourFrames_g', heroFourFrames, heroFourFrames.init);
Mota.Plugin.register('rewrite_g', rewrite, rewrite.init); Mota.Plugin.register('rewrite_g', rewrite, rewrite.init);
Mota.Plugin.register('itemDetail_g', itemDetail, itemDetail.init); Mota.Plugin.register('itemDetail_g', itemDetail, itemDetail.init);
Mota.Plugin.register('halo_g', halo); Mota.Plugin.register('halo_g', halo);
Mota.Plugin.register('study_g', study); // Mota.Plugin.register('study_g', study);
Mota.Plugin.register('remainEnemy_g', remainEnemy); Mota.Plugin.register('remainEnemy_g', remainEnemy);
Mota.Plugin.register('checkBlock_g', checkBlock, checkBlock.init); Mota.Plugin.register('checkBlock_g', checkBlock, checkBlock.init);
// todo: 这几个不应该放到插件 // todo: 这几个不应该放到插件

View File

@ -1,4 +1,6 @@
import { canStudySkill, studySkill } from '@/game/mechanism/study';
import { upgradeSkill } from './skillTree'; import { upgradeSkill } from './skillTree';
import { ensureFloorDamage } from '@/game/enemy/damage';
const replayableSettings = ['autoSkill']; const replayableSettings = ['autoSkill'];
@ -44,19 +46,21 @@ export function init() {
}); });
core.registerReplayAction('study', name => { core.registerReplayAction('study', name => {
// todo if (!name.startsWith('study:')) return false;
// if (!name.startsWith('study:')) return false; const [num, x, y] = name
// const [num, x, y] = name .slice(6)
// .slice(6) .split(',')
// .split(',') .map(v => parseInt(v));
// .map(v => parseInt(v)); if (!canStudySkill(num)) return false;
// if (!canStudySkill(num)) return false; const id = core.getBlockId(x, y);
// const id = core.getBlockId(x, y); ensureFloorDamage(core.status.floorId);
// const enemy = core.getEnemyInfo(id, void 0, x, y); const col = core.status.thisMap.enemy;
// if (!enemy.special.includes(num)) return false; col.calRealAttribute();
// studySkill(enemy, num); const enemy = col.list.find(v => v.x === x && v.y === y)!.info;
// core.status.route.push(name); if (!enemy.special.includes(num)) return false;
// core.replay(); studySkill(enemy, num);
core.status.route.push(name);
core.replay();
return true; return true;
}); });
@ -117,9 +121,7 @@ export function init() {
return true; return true;
}); });
core.registerReplayAction('skill', name => { function skillAction(skill: string) {
if (!name.startsWith('skill:')) return false;
const [type, skill] = name.split(':');
if (skill === '1') { if (skill === '1') {
if (flags.autoSkill || !flags.bladeOn) return true; if (flags.autoSkill || !flags.bladeOn) return true;
if (flags.blade) flags.blade = false; if (flags.blade) flags.blade = false;
@ -142,6 +144,32 @@ export function init() {
else flags.shield = true; else flags.shield = true;
} }
core.updateStatusBar(); core.updateStatusBar();
core.replay();
return true; return true;
}
core.registerReplayAction('skill', name => {
if (!name.startsWith('skill:')) return false;
const [type, skill] = name.split(':');
return skillAction(skill);
});
// 兼容旧版
core.registerReplayAction('key', name => {
if (!name.startsWith('key:')) return false;
const key = parseInt(name.slice(4));
if (key === 49) {
core.status.route.push(`skill:1`);
return skillAction('1');
} else if (key === 50) {
core.status.route.push(`skill:2`);
return skillAction('2');
} else if (key === 51) {
core.status.route.push(`skill:3`);
return skillAction('3');
}
return false;
}); });
} }

View File

@ -39,12 +39,14 @@ export const jumpIgnoreFloor: FloorIds[] = [
'MT57', 'MT57',
'MT59', 'MT59',
'MT60', 'MT60',
'MT61' 'MT61',
'MT71'
]; ];
// 跳跃 // 跳跃
export function jumpSkill() { export function jumpSkill() {
if (core.status.floorId.startsWith('tower')) if (core.status.floorId.startsWith('tower')) {
return core.drawTip('当无法使用该技能'); return core.drawTip('当前无法使用该技能');
}
if (jumpIgnoreFloor.includes(core.status.floorId) || flags.onChase) { if (jumpIgnoreFloor.includes(core.status.floorId) || flags.onChase) {
return core.drawTip('当前楼层无法使用该技能'); return core.drawTip('当前楼层无法使用该技能');
} }
@ -140,6 +142,7 @@ export function jumpSkill() {
} }
]); ]);
} }
// 检查一条线上的不可通过 // 检查一条线上的不可通过
function checkNoPass(direction, x, y, startNo) { function checkNoPass(direction, x, y, startNo) {
if (!startNo) startNo = false; if (!startNo) startNo = false;

View File

@ -141,7 +141,7 @@ export const skills: Record<Chapter, Skill[]> = {
consume: '2500 * 2 ** level + 5000', consume: '2500 * 2 ** level + 5000',
front: [ front: [
[8, 10], [8, 10],
[12, 5] [12, 10]
], ],
loc: [4, 1], loc: [4, 1],
max: 6, max: 6,

View File

@ -1,53 +0,0 @@
// 负责勇士技能:学习
const values: Record<number, string[]> = {
1: ['crit'],
6: ['n'],
7: ['hungry'],
8: ['together'],
10: ['courage'],
11: ['charge']
};
const cannotStudy = [9, 12, 14, 15, 24];
export function canStudySkill(number: number) {
const s = (core.status.hero.special ??= { num: [], last: [] });
if (Mota.Plugin.require('skillTree_g').getSkillLevel(11) === 0)
return false;
if (s.num.length >= 1) return false;
if (s.num.includes(number)) return false;
if (cannotStudy.includes(number)) return false;
return true;
}
export function studySkill(enemy: any, number: number) {
core.status.hero.special ??= { num: [], last: [] };
const s = core.status.hero.special;
}
export function forgetStudiedSkill(num: number, i: number) {
const s = core.status.hero.special;
const index = i !== void 0 && i !== null ? i : s.num.indexOf(num);
if (index === -1) return;
s.num.splice(index, 1);
s.last.splice(index, 1);
const value = values[num] ?? [];
for (const key of value) {
delete s[key];
}
}
export function declineStudiedSkill() {
const s = (core.status.hero.special ??= { num: [], last: [] });
s.last = s.last.map(v => v - 1);
}
export function checkStudiedSkill() {
const s = core.status.hero.special;
for (let i = 0; i < s.last.length; i++) {
if (s.last[i] <= 0) {
forgetStudiedSkill(1, i);
i--;
}
}
}

View File

@ -66,6 +66,7 @@ export function getMapDrawData(
noCache: boolean = false noCache: boolean = false
): MapDrawData { ): MapDrawData {
const id = `${floorId},${interval},${border}`; const id = `${floorId},${interval},${border}`;
if (!floorId) return { locs: {}, line: [], width: 1, height: 1 };
if (drawCache[id] && !noCache) return drawCache[id]; if (drawCache[id] && !noCache) return drawCache[id];
const { link, maps } = getMapData(floorId, noCache); const { link, maps } = getMapData(floorId, noCache);
const locs: Partial<Record<FloorIds, LocArr>> = {}; const locs: Partial<Record<FloorIds, LocArr>> = {};
@ -161,6 +162,7 @@ export function getMapData(
floorId: FloorIds, floorId: FloorIds,
noCache: boolean = false noCache: boolean = false
): MapBFSResult { ): MapBFSResult {
if (!floorId) return { maps: [], link: {} };
if (has(bfsCache[floorId]) && !noCache) return bfsCache[floorId]!; if (has(bfsCache[floorId]) && !noCache) return bfsCache[floorId]!;
const queue = [floorId]; const queue = [floorId];
@ -531,7 +533,7 @@ export class MinimapDrawer {
ctx.lineTo(x - 0.5, y + 1); ctx.lineTo(x - 0.5, y + 1);
ctx.lineTo(x + 1.5, y - 1); ctx.lineTo(x + 1.5, y - 1);
ctx.stroke(); ctx.stroke();
} else if (enemy.length < 2) { } else if (enemy.length <= 2) {
const ids = [...new Set(enemy.map(v => v.id))]; const ids = [...new Set(enemy.map(v => v.id))];
if (ids.length === 1) { if (ids.length === 1) {
core.drawIcon(ctx, ids[0], x - 2, y - 2, 4, 4); core.drawIcon(ctx, ids[0], x - 2, y - 2, 4, 4);

6
src/source/cls.d.ts vendored
View File

@ -595,6 +595,12 @@ interface IdToCls {
I665: 'items'; I665: 'items';
E666: 'enemys'; E666: 'enemys';
E667: 'enemys'; E667: 'enemys';
E668: 'enemys';
E669: 'enemys';
E670: 'enemys';
E671: 'enemys';
E672: 'enemys';
E673: 'enemys';
X20032: 'tileset'; X20032: 'tileset';
X20033: 'tileset'; X20033: 'tileset';
X20034: 'tileset'; X20034: 'tileset';

View File

@ -188,7 +188,7 @@ interface ItemDeclaration {
I641: 'equips'; I641: 'equips';
I642: 'constants'; I642: 'constants';
I662: 'equips'; I662: 'equips';
I663: 'items'; I663: 'equips';
I664: 'items'; I664: 'items';
I665: 'items'; I665: 'items';
} }

12
src/source/maps.d.ts vendored
View File

@ -595,6 +595,12 @@ interface IdToNumber {
I665: 665; I665: 665;
E666: 666; E666: 666;
E667: 667; E667: 667;
E668: 668;
E669: 669;
E670: 670;
E671: 671;
E672: 672;
E673: 673;
X20032: 20032; X20032: 20032;
X20033: 20033; X20033: 20033;
X20034: 20034; X20034: 20034;
@ -1275,6 +1281,12 @@ interface NumberToId {
665: 'I665'; 665: 'I665';
666: 'E666'; 666: 'E666';
667: 'E667'; 667: 'E667';
668: 'E668';
669: 'E669';
670: 'E670';
671: 'E671';
672: 'E672';
673: 'E673';
20032: 'X20032'; 20032: 'X20032';
20033: 'X20033'; 20033: 'X20033';
20034: 'X20034'; 20034: 'X20034';

View File

@ -88,6 +88,7 @@ type Enemy<I extends EnemyIds = EnemyIds> = {
afterBattle: MotaEvent; afterBattle: MotaEvent;
specialHalo?: number[]; specialHalo?: number[];
translation?: [number, number];
} & { } & {
[P in PartialNumbericEnemyProperty]?: number; [P in PartialNumbericEnemyProperty]?: number;
} & { } & {

View File

@ -81,7 +81,6 @@ import { useDrag } from '../plugin/use';
import EnemySpecial from '../panel/enemySpecial.vue'; import EnemySpecial from '../panel/enemySpecial.vue';
import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue'; import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue';
import EnemyCritical from '../panel/enemyCritical.vue'; import EnemyCritical from '../panel/enemyCritical.vue';
import { sleep } from 'mutate-animate';
import EnemyTarget from '../panel/enemyTarget.vue'; import EnemyTarget from '../panel/enemyTarget.vue';
import { detailInfo } from '../plugin/ui/book'; import { detailInfo } from '../plugin/ui/book';
import { gameKey } from '@/core/main/init/hotkey'; import { gameKey } from '@/core/main/init/hotkey';
@ -91,6 +90,10 @@ const props = defineProps<{
defaultPanel?: 'special' | 'critical' | 'target'; defaultPanel?: 'special' | 'critical' | 'target';
}>(); }>();
const emits = defineEmits<{
(e: 'close'): void;
}>();
const enemy = detailInfo.enemy; const enemy = detailInfo.enemy;
const top = ref(detailInfo.pos); const top = ref(detailInfo.pos);
const panel = ref<string>(props.defaultPanel ?? 'special'); const panel = ref<string>(props.defaultPanel ?? 'special');
@ -98,10 +101,6 @@ const symbol = Symbol();
let detail: HTMLDivElement; let detail: HTMLDivElement;
const emits = defineEmits<{
(e: 'close'): void;
}>();
function changePanel(e: MouseEvent, to: string) { function changePanel(e: MouseEvent, to: string) {
e.stopPropagation(); e.stopPropagation();
panel.value = to; panel.value = to;

View File

@ -402,6 +402,7 @@ onMounted(async () => {
drawer.scale = scale; drawer.scale = scale;
drawer.noBorder = noBorder.value; drawer.noBorder = noBorder.value;
drawer.showInfo = true; drawer.showInfo = true;
drawer.nowArea = nowArea.value;
const mapStyle = getComputedStyle(map); const mapStyle = getComputedStyle(map);
const thumbStyle = getComputedStyle(thumb); const thumbStyle = getComputedStyle(thumb);

View File

@ -16,7 +16,6 @@ export { default as Skill } from './skill.vue';
export { default as SkillTree } from './skillTree.vue'; export { default as SkillTree } from './skillTree.vue';
export { default as Start } from './start.vue'; export { default as Start } from './start.vue';
export { default as StatusBar } from './statusBar.vue'; export { default as StatusBar } from './statusBar.vue';
export { default as Studied } from './studied.vue';
export { default as Study } from './study.vue'; export { default as Study } from './study.vue';
export { default as Toolbox } from './toolbox.vue'; export { default as Toolbox } from './toolbox.vue';
export { default as Hotkey } from './hotkey.vue'; export { default as Hotkey } from './hotkey.vue';

View File

@ -123,6 +123,9 @@
>学习</span >学习</span
> >
</div> </div>
<div v-if="studyOpened" class="status-item">
<!-- 当前学习的技能 -->
</div>
</div> </div>
</Scroll> </Scroll>
</Box> </Box>

View File

@ -1,82 +0,0 @@
<template>
<div id="studied">
<Box
:resizable="true"
:dragable="true"
v-model:width="width"
v-model:height="height"
v-model:left="left"
v-model:top="top"
>
<Scroll :no-scroll="true" style="height: 100%">
<div id="studied-main">
<div
v-for="(num, i) of studied"
:key="i"
></div></div></Scroll
></Box>
</div>
</template>
<script lang="ts" setup>
import { computed, onMounted, onUpdated, reactive, ref, watch } from 'vue';
import Box from '../components/box.vue';
import { status } from '../plugin/ui/statusBar';
import { RightOutlined } from '@ant-design/icons-vue';
import Scroll from '../components/scroll.vue';
watch(status, n => {});
let main: HTMLDivElement;
const width = ref(200);
const height = ref(0);
const left = ref(window.innerWidth - 300);
const top = ref(window.innerHeight - 300);
const folded = reactive<boolean[]>([]);
const studied = computed(() => {
status.value;
return core.status.hero.special?.num ?? [];
});
const last = computed(() => {
status.value;
return core.status.hero.special?.last ?? [];
});
async function calHeight() {
await new Promise<void>(resolve => {
requestAnimationFrame(() => {
const style = getComputedStyle(main);
height.value = parseFloat(style.height);
resolve();
});
});
}
onUpdated(() => {
calHeight();
});
onMounted(() => {
main = document.getElementById('studied-main') as HTMLDivElement;
calHeight();
});
</script>
<style lang="less" scoped>
#studied {
font-family: 'normal';
font-size: 1vw;
}
#studied-fold {
transition: transform 0.2s ease-out;
}
#studied-fold.folded {
transform: rotate(90deg);
}
</style>