mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-02-28 17:37:07 +08:00
feat: 苍蓝之殿南部两区
This commit is contained in:
parent
cb72e53c3d
commit
06bcb94eae
@ -285,6 +285,12 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"_docs": "苍蓝刻",
|
||||
"_data": "苍蓝刻"
|
||||
},
|
||||
"translation": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_docs": "乾坤挪移",
|
||||
"_data": "乾坤挪移"
|
||||
},
|
||||
"specialHalo": {
|
||||
"_leaf": true,
|
||||
"_type": "popCheckboxSet",
|
||||
|
@ -304,7 +304,7 @@ items.prototype.unloadEquip = function (equipType, callback) {
|
||||
if (callback) callback();
|
||||
return;
|
||||
}
|
||||
core.status.route.push(`unequip:${equipId}`);
|
||||
core.status.route.push(`unequip:${unloadEquipId}`);
|
||||
|
||||
this._realLoadEquip(equipType, null, unloadEquipId, callback);
|
||||
};
|
||||
|
@ -918,9 +918,10 @@ ui.prototype.closePanel = function () {
|
||||
this.clearUI();
|
||||
core.maps.generateGroundPattern();
|
||||
core.updateStatusBar(true);
|
||||
setTimeout(() => {
|
||||
// 这个setTimeout加了有bug,不加也有
|
||||
// setTimeout(() => {
|
||||
core.unlockControl();
|
||||
}, 0);
|
||||
// }, 0);
|
||||
core.status.event.data = null;
|
||||
core.status.event.id = null;
|
||||
core.status.event.selection = null;
|
||||
|
@ -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;
|
||||
try {
|
||||
if (
|
||||
@ -577,7 +577,7 @@ main.prototype.listen = function () {
|
||||
} catch (ee) {
|
||||
console.error(ee);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
////// 开始选择时 //////
|
||||
main.dom.body.onselectstart = function () {
|
||||
|
@ -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":"剑?这是什么东西?他们拿的只是比较锋利的骨头吧。"},
|
||||
"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":"人们总是说,战斗,需要的就是勇气。而骑士,或许就站在了这勇气之巅了吧。有什么用呢?战场上,该死的时候就是得死,哪怕是在这远古时期,即使不是战场,一场战斗也足以决定生死。"},
|
||||
"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":[]},
|
||||
"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]},
|
||||
"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":"山的高出,总会有一些恐怖的东西,就比如这只蝙蝠。"},
|
||||
@ -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":[]},
|
||||
"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},
|
||||
"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":[]},
|
||||
"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":[]},
|
||||
@ -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]},
|
||||
"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},
|
||||
"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":[]},
|
||||
"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":[]},
|
||||
@ -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},
|
||||
"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":[]},
|
||||
"E659": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||
"E666": {"name":"苍蓝之灵-视","hp":300000,"atk":10000,"def":3000,"money":0,"exp":0,"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":[]}
|
||||
"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":10,"exp":2500,"point":0,"special":[29],"n":5,"specialHalo":[5],"haloRange":5},
|
||||
"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":[]}
|
||||
}
|
@ -35,7 +35,7 @@ main.floors.MT0=
|
||||
"\r[red]注意!!!\r[]该塔新增了很多新的功能,同时对样板的ui进行了大幅度的改动,操作也有改变,由于内容过多,这里不再一一描述,具体请在道具栏查看百科全书!!百科全书是在你面前的几个道具中的其中一个",
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\nmota.ui.fixed.open('chapter', { chapter: '序章 起源' });\n}"
|
||||
"function": "function(){\nMota.require('var', 'fixedUi').open('chapter', { chapter: '序章 起源' });\n}"
|
||||
}
|
||||
],
|
||||
"parallelDo": "",
|
||||
@ -64,7 +64,7 @@ main.floors.MT0=
|
||||
"yes": [
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.swapChapter(2, flags.hard);\n}"
|
||||
"function": "function(){\nMota.require('module', 'RenderUtils').swapChapter(2, flags.hard);\n}"
|
||||
}
|
||||
],
|
||||
"no": []
|
||||
@ -86,7 +86,10 @@ main.floors.MT0=
|
||||
"这个可以查看bgm,也可以设置bgm,也可以清空设置的bgm"
|
||||
],
|
||||
"8,11": [
|
||||
"请仔细阅读这个道具内的说明"
|
||||
"请仔细阅读这个道具内的说明",
|
||||
"注意,虽然内容很多,但是大部分都是“无用”信息,例如对那些ui的说明,基本上打开ui后就能看出来不同区域的功能的,百科全书的说明基本只是对一些细节进行了说明。因此一般来说是不需要非常认真地读关于ui的信息的。",
|
||||
"而对于那些新的内容,例如怪物标记等,可能需要阅读一下。",
|
||||
"这里说一个非常重要的一点,那就是本塔中几乎所有ui都是可以滚动的,尝试用滚轮或者手指拖动进行滚动,包括状态栏!"
|
||||
],
|
||||
"7,10": [
|
||||
"里面包含了所有游戏的设置,请仔细查看设置"
|
||||
|
@ -70,7 +70,7 @@ main.floors.MT16=
|
||||
},
|
||||
{
|
||||
"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",
|
||||
|
@ -157,7 +157,7 @@ main.floors.MT21=
|
||||
"\t[低级智人]\b[up,hero]或许智慧结晶会告诉我答案吧。",
|
||||
{
|
||||
"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",
|
||||
|
@ -142,13 +142,14 @@ main.floors.MT31=
|
||||
}
|
||||
],
|
||||
"2,6": [
|
||||
"注意右方的清怪检测是检测\r[gold]勇气之路\r[]的怪物,本区域的怪物不检测,可以暂时留怪"
|
||||
"注意右方的清怪检测是检测\r[gold]勇气之路\r[]的怪物,本区域的怪物不检测,可以暂时留怪",
|
||||
"所以说右边的boss是可以暂时不打的(悲,测试的时候是按必须打测的)"
|
||||
],
|
||||
"13,7": [
|
||||
"这里是漏怪检测,会检测\r[gold]勇气之路\r[]区域是否有遗漏怪物",
|
||||
{
|
||||
"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]智慧,真的可以掌握万物。",
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "flag:door_MT31_7_6",
|
||||
"operator": "+=",
|
||||
"value": "1"
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
7,
|
||||
5
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
7,
|
||||
9
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -205,45 +214,9 @@ main.floors.MT31=
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {
|
||||
"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
|
||||
},
|
||||
"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
|
||||
}
|
||||
},
|
||||
|
@ -16,7 +16,7 @@ main.floors.MT32=
|
||||
"firstArrive": [
|
||||
{
|
||||
"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": [],
|
||||
|
@ -101,7 +101,7 @@ main.floors.MT35=
|
||||
},
|
||||
{
|
||||
"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",
|
||||
|
@ -36,7 +36,8 @@ main.floors.MT50=
|
||||
}
|
||||
],
|
||||
"5,13": [
|
||||
"欢迎来到苍蓝之殿,这是本塔第二章里面最大的一个区,也是最复杂的一个区。整个苍蓝之殿分为无个部分:左下角、右下角、左上角、右上角和中心,每个部分都有不一样的玩法,多多动脑哦。"
|
||||
"欢迎来到苍蓝之殿,这是本塔第二章里面最大的一个区,也是最复杂的一个区。整个苍蓝之殿分为无个部分:左下角、右下角、左上角、右上角和中心,每个部分都有不一样的玩法,多多动脑哦。",
|
||||
"本区域极大,建议打开小地图游玩。如果打开小地图后打怪出现卡顿,可以尝试在 设置->ui设置 里面打开小地图懒更新设置"
|
||||
],
|
||||
"9,13": [
|
||||
"在你刚进入苍蓝之殿时,你只能先前往左下角部分(本地图的左面),右下角暂时不能前往。注意往上走往左依然可以进入左下角,不要只盯着这个地图的左边不放。",
|
||||
@ -44,7 +45,8 @@ main.floors.MT50=
|
||||
],
|
||||
"9,1": [
|
||||
"建议优先点出学习技能,对于特定场景将会非常有帮助",
|
||||
"本区域可以使用跳跃技能,不要忘记了。"
|
||||
"本区域可以使用跳跃技能,不要忘记了。",
|
||||
"注意不要忘记购买装备,到了下一章之后本章的商店将不能到达,快捷商店也会消失。这些装备在下一章都会有向上合成"
|
||||
],
|
||||
"5,1": [
|
||||
"打完左下角和右下角的boss之后,开四个机关门"
|
||||
|
@ -88,18 +88,18 @@ main.floors.MT51=
|
||||
"map": [
|
||||
[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, 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,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, 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],
|
||||
[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,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, 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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -120,15 +120,15 @@ main.floors.MT52=
|
||||
[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,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, 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,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, 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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -58,17 +58,17 @@ main.floors.MT53=
|
||||
[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, 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,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],
|
||||
[ 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,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,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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -69,7 +69,7 @@ main.floors.MT54=
|
||||
"map": [
|
||||
[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, 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, 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],
|
||||
@ -80,7 +80,7 @@ main.floors.MT54=
|
||||
[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, 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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -50,7 +50,7 @@ main.floors.MT55=
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[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,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],
|
||||
@ -61,7 +61,7 @@ main.floors.MT55=
|
||||
[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,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,648,648,648,648,648,648,648,648,648,648,648,648,648,648]
|
||||
],
|
||||
|
@ -58,7 +58,7 @@ main.floors.MT56=
|
||||
"map": [
|
||||
[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,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, 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],
|
||||
@ -69,7 +69,7 @@ main.floors.MT56=
|
||||
[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, 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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -18,9 +18,13 @@ main.floors.MT57=
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"13,8": [
|
||||
"本地图不能使用跳跃。中间那个深色的开关可以开启去苍蓝之殿右下角的路。打死那两个卫兵开机关门"
|
||||
"本地图不能使用跳跃。中间那个深色的开关可以开启去苍蓝之殿右下角的路。打死那两个石头人开机关门"
|
||||
],
|
||||
"7,1": [
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "(!switch:A)",
|
||||
"true": [
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
@ -29,7 +33,35 @@ main.floors.MT57=
|
||||
],
|
||||
"floorId": "MT50"
|
||||
},
|
||||
"\t[智人]\b[down,hero]貌似有哪里的门开了,应该是苍蓝之殿右下角吧"
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
13,
|
||||
7
|
||||
],
|
||||
"floorId": "MT60"
|
||||
},
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
12,
|
||||
7
|
||||
],
|
||||
"floorId": "MT61"
|
||||
},
|
||||
{
|
||||
"type": "playSound",
|
||||
"name": "door.mp3"
|
||||
},
|
||||
"\t[智人]\b[down,hero]貌似有哪里的门开了,应该是苍蓝之殿右下角吧",
|
||||
"现在可以去苍蓝之殿的右下区域了。注意有三条可以去右边的路,机关门都已经开启"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "switch:A",
|
||||
"value": "值"
|
||||
}
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
@ -57,7 +89,7 @@ main.floors.MT57=
|
||||
},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {
|
||||
"4,2": [
|
||||
"2,2": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "flag:door_MT57_7_4",
|
||||
@ -65,7 +97,7 @@ main.floors.MT57=
|
||||
"value": "1"
|
||||
}
|
||||
],
|
||||
"10,2": [
|
||||
"12,2": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "flag:door_MT57_7_4",
|
||||
@ -103,15 +135,15 @@ main.floors.MT57=
|
||||
"map": [
|
||||
[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,376,601,482,578,648,491,468,491,648,578,482,601,378,648],
|
||||
[648, 0,648,494,648,648,240,103,240,648,648,494,648, 0,648],
|
||||
[648,376,601,482,390,648, 0,468, 0,648,396,482,601,378,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, 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],
|
||||
[ 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, 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,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],
|
||||
|
@ -65,18 +65,18 @@ main.floors.MT58=
|
||||
"map": [
|
||||
[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,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,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,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],
|
||||
[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,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,378,484,648, 0,648, 0,482, 0,648,468,648,403, 27,648],
|
||||
[648,403,376,249, 0,494, 29, 0, 29,243,484,494, 28,491,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,396,491,648],
|
||||
[648,648,648,648,648,648,648, 93,648,648,648,648,648,648,648]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -89,7 +89,8 @@ main.floors.MT59=
|
||||
"type": "setValue",
|
||||
"name": "flag:door_palaceSouth",
|
||||
"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, 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,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, 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,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, 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],
|
||||
|
@ -63,7 +63,7 @@ main.floors.MT6=
|
||||
"\t[原始人]\b[down,hero]感觉好像可以学习一些简单的东西了。",
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\nmota.ui.fixed.open('chapter', { chapter: '第一章 勇气' });\n}"
|
||||
"function": "function(){\nMota.require('var', 'fixedUi').open('chapter', { chapter: '第一章 勇气' });\n}"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
|
@ -38,6 +38,13 @@ main.floors.MT60=
|
||||
7,
|
||||
14
|
||||
]
|
||||
},
|
||||
"14,7": {
|
||||
"floorId": "MT64",
|
||||
"loc": [
|
||||
0,
|
||||
7
|
||||
]
|
||||
}
|
||||
},
|
||||
"beforeBattle": {},
|
||||
@ -261,15 +268,15 @@ main.floors.MT60=
|
||||
[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,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,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],
|
||||
[ 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,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,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,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]
|
||||
|
@ -31,6 +31,13 @@ main.floors.MT61=
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"14,7": {
|
||||
"floorId": "MT67",
|
||||
"loc": [
|
||||
0,
|
||||
7
|
||||
]
|
||||
}
|
||||
},
|
||||
"beforeBattle": {},
|
||||
@ -42,19 +49,19 @@ main.floors.MT61=
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[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, 0,648,648,648,648,648,618,648,648,648,648,648, 0,648],
|
||||
[648, 0,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648, 0,648],
|
||||
[648, 0,648, 0,482, 0, 0, 0, 0, 0,482, 0,648, 0,648],
|
||||
[648, 0,648, 0, 0,103, 0, 0, 0,103, 0, 0,648, 0,648],
|
||||
[648,494,482,482,492,484,492, 0,492,484,492,482,482,494,648],
|
||||
[648,491,648,648,648,648,648,618,648,648,648,648,648,491,648],
|
||||
[648,497,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,497,648],
|
||||
[648,487,648, 0,482, 0, 0, 0, 0, 0,482, 0,648,487,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],
|
||||
[ 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, 0,648, 0, 0,103, 0, 0, 0,103, 0, 0,648, 0,648],
|
||||
[648, 0,648, 0,482, 0, 0, 0, 0, 0,482, 0,648, 0,648],
|
||||
[648, 0,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648, 0,648],
|
||||
[648, 0,648,648,648,648,648, 0,648,648,648,648,648, 0,648],
|
||||
[648, 0, 0, 0, 0, 0,648, 0,648, 0, 0, 0, 0, 0,648],
|
||||
[648,487,648, 0, 0,103, 0, 0, 0,103, 0, 0,648,487,648],
|
||||
[648,487,648, 0,482, 0, 0, 0, 0, 0,482, 0,648,487,648],
|
||||
[648,497,648, 0, 0, 0, 0, 0, 0, 0, 0, 0,648,497,648],
|
||||
[648,491,648,648,648,648,648, 0,648,648,648,648,648,491,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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -16,7 +16,12 @@ main.floors.MT62=
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"events": {
|
||||
"2,5": [
|
||||
"注意乾坤挪移属性的怪物,它会移动光环的位置。如果光环位置移动到了不包含光环自身怪物的位置,那么怪物自身将不会受到影响。注意,杀戮光环是可以给怪物加光环属性的。",
|
||||
"以及本区域的特点就是那些光环怪,善用那些光环怪能有意想不到的效果"
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"0,7": {
|
||||
"floorId": "MT50",
|
||||
@ -24,6 +29,20 @@ main.floors.MT62=
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"14,7": {
|
||||
"floorId": "MT63",
|
||||
"loc": [
|
||||
0,
|
||||
7
|
||||
]
|
||||
},
|
||||
"7,0": {
|
||||
"floorId": "MT64",
|
||||
"loc": [
|
||||
7,
|
||||
14
|
||||
]
|
||||
}
|
||||
},
|
||||
"beforeBattle": {},
|
||||
@ -35,19 +54,19 @@ main.floors.MT62=
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0,612,564, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[ 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,648],
|
||||
[648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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,492,648,249,648,220,648,648,492,648, 21,381,494,376,648],
|
||||
[648, 28,648, 27,648, 0,381, 0, 34,648,396,484,648,491,648],
|
||||
[648, 0,482, 0,648,648,648,596,648,648,648,232,648, 29,648],
|
||||
[648,648,129,648,648,482, 0, 0, 0,648, 0, 0,578, 0,648],
|
||||
[648,482, 0,482,648, 0,648,648,648,648,601,648,648,648,648],
|
||||
[ 92, 0,381, 0,605, 0,492, 0,390,648,403, 0, 0, 0, 94],
|
||||
[648,482, 0,482,648, 0,648,381, 0,648, 0,648,648,249,648],
|
||||
[648,648,648,648,648,482,648, 0,484,659, 0,648, 28, 0,648],
|
||||
[648, 0,484, 0,648, 0,648,648,648,648,657,648, 0,482,648],
|
||||
[648,378,648,381,249, 0,601, 0,378, 0,482,492,657,648,648],
|
||||
[648,594,648,648,648,492,648,648,648,648,596,648, 0,482,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]
|
||||
],
|
||||
"bgmap": [
|
||||
|
@ -1,45 +1,77 @@
|
||||
main.floors.MT63=
|
||||
{
|
||||
"floorId": "MT63",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "63",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT63",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "63",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"1,9": [
|
||||
"注意,由于杀戮光环产生的光环也会被乾坤挪移影响,例如右下角那几个红光环,它就是由黄光环里面的怪物产生,然后被乾坤挪移影响产生的。",
|
||||
"以及,融化怪死后产生的光环也是会被乾坤挪移影响的。但是抱团怪不会影响,虽然类似于光环,但实际是不属于光环。"
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"0,7": {
|
||||
"floorId": "MT62",
|
||||
"loc": [
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"7,0": {
|
||||
"floorId": "MT65",
|
||||
"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,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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,86 @@
|
||||
main.floors.MT64=
|
||||
{
|
||||
"floorId": "MT64",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "64",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT64",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "64",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {
|
||||
"7,14": {
|
||||
"floorId": "MT62",
|
||||
"loc": [
|
||||
7,
|
||||
0
|
||||
]
|
||||
},
|
||||
"0,7": {
|
||||
"floorId": "MT60",
|
||||
"loc": [
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"14,4": {
|
||||
"floorId": "MT65",
|
||||
"loc": [
|
||||
0,
|
||||
4
|
||||
]
|
||||
},
|
||||
"7,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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,86 @@
|
||||
main.floors.MT65=
|
||||
{
|
||||
"floorId": "MT65",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "65",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT65",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "65",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {
|
||||
"0,4": {
|
||||
"floorId": "MT64",
|
||||
"loc": [
|
||||
14,
|
||||
4
|
||||
]
|
||||
},
|
||||
"7,14": {
|
||||
"floorId": "MT63",
|
||||
"loc": [
|
||||
7,
|
||||
0
|
||||
]
|
||||
},
|
||||
"14,6": {
|
||||
"floorId": "MT66",
|
||||
"loc": [
|
||||
0,
|
||||
6
|
||||
]
|
||||
},
|
||||
"7,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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,191 @@
|
||||
main.floors.MT66=
|
||||
{
|
||||
"floorId": "MT66",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "66",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT66",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "66",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"1,8": [
|
||||
"下面那个装备的作用是对魔攻拥有500点防御",
|
||||
"本塔一般不需要保存套装等操作,因此移动端不需要担心需要频繁切装备",
|
||||
"注意这个红门是有嘲讽的,打开之后会出现向右的嘲讽,源头在那个双手剑士"
|
||||
],
|
||||
"6,1": [
|
||||
"上面地狱绘图,请做好心理准备"
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"0,6": {
|
||||
"floorId": "MT65",
|
||||
"loc": [
|
||||
14,
|
||||
6
|
||||
]
|
||||
},
|
||||
"7,0": {
|
||||
"floorId": "MT69",
|
||||
"loc": [
|
||||
7,
|
||||
14
|
||||
]
|
||||
}
|
||||
},
|
||||
"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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,79 @@
|
||||
main.floors.MT67=
|
||||
{
|
||||
"floorId": "MT67",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "67",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT67",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "67",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {
|
||||
"0,7": {
|
||||
"floorId": "MT61",
|
||||
"loc": [
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"7,14": {
|
||||
"floorId": "MT64",
|
||||
"loc": [
|
||||
7,
|
||||
0
|
||||
]
|
||||
},
|
||||
"14,7": {
|
||||
"floorId": "MT68",
|
||||
"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, 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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,83 @@
|
||||
main.floors.MT68=
|
||||
{
|
||||
"floorId": "MT68",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "68",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT68",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "68",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"13,8": [
|
||||
"右边地狱绘图,请做好心理准备"
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"0,7": {
|
||||
"floorId": "MT67",
|
||||
"loc": [
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"7,14": {
|
||||
"floorId": "MT65",
|
||||
"loc": [
|
||||
7,
|
||||
0
|
||||
]
|
||||
},
|
||||
"14,7": {
|
||||
"floorId": "MT69",
|
||||
"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,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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,89 @@
|
||||
main.floors.MT69=
|
||||
{
|
||||
"floorId": "MT69",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "69",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT69",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "69",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"7,6": [
|
||||
"提示一个本地图的较优解法:从此处直接向右走,然后反过来把红骑士杀了,就基本上没光环了"
|
||||
],
|
||||
"2,7": [
|
||||
"中间的那个木牌会提示一种较优解法"
|
||||
],
|
||||
"6,13": [
|
||||
"中间的那个木牌会提示一种较优解法"
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"0,7": {
|
||||
"floorId": "MT68",
|
||||
"loc": [
|
||||
14,
|
||||
7
|
||||
]
|
||||
},
|
||||
"7,14": {
|
||||
"floorId": "MT66",
|
||||
"loc": [
|
||||
7,
|
||||
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": [
|
||||
|
||||
]
|
||||
}
|
@ -1,45 +1,65 @@
|
||||
main.floors.MT71=
|
||||
{
|
||||
"floorId": "MT71",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "71",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
"floorId": "MT71",
|
||||
"title": "苍蓝之殿-右下",
|
||||
"name": "71",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"cannotViewMap": false,
|
||||
"images": [],
|
||||
"ratio": 8,
|
||||
"defaultGround": "T650",
|
||||
"bgm": "palaceSouth.mp3",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {
|
||||
"0,7": {
|
||||
"floorId": "MT69",
|
||||
"loc": [
|
||||
14,
|
||||
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,378,484,671, 0,648, 0, 0,484, 0, 85,376,487,376,648],
|
||||
[648,484,376,648, 0,648, 0,648,648,492,648, 0,378, 0,648],
|
||||
[648,494,648,648,484,648,484,648,376, 0,648,376,476,376,648],
|
||||
[648,378,484,232, 0,648, 0,648, 0,484,648, 0,378, 0,648],
|
||||
[648,484,376,648, 0,648, 0,578,378, 0,648,648,648,648,648],
|
||||
[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": [
|
||||
|
||||
]
|
||||
}
|
@ -438,134 +438,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
||||
|
||||
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();
|
||||
Mota.require('var', 'hook').emit(
|
||||
|
@ -425,7 +425,13 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
||||
"E658": 170,
|
||||
"E659": 171,
|
||||
"E666": 172,
|
||||
"E667": 173
|
||||
"E667": 173,
|
||||
"E668": 174,
|
||||
"E669": 175,
|
||||
"E670": 176,
|
||||
"E671": 177,
|
||||
"E672": 178,
|
||||
"E673": 179
|
||||
},
|
||||
"enemy48": {
|
||||
"angel": 0,
|
||||
|
@ -1161,7 +1161,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"name": "bgm查看器",
|
||||
"canUseItemEffect": "true",
|
||||
"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": {
|
||||
"cls": "constants",
|
||||
@ -1250,12 +1250,12 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"text": "或许是苍蓝之灵的杰作,可以让使用者的恢复能力增强。生命回复增加10%"
|
||||
},
|
||||
"I663": {
|
||||
"cls": "items",
|
||||
"cls": "equips",
|
||||
"name": "地灵华",
|
||||
"canUseItemEffect": "true",
|
||||
"text": "一个用大地之力制造出的饰品,貌似对魔法攻击有抵抗作用。装备后,对魔攻怪会有50%的防御力(即防御的一半充当抵消魔攻的防御,勇士受到的伤害变为 怪物攻击 - 勇士防御 / 2)",
|
||||
"text": "一个用大地之力制造出的饰品,貌似对魔法攻击有抵抗作用。装备后,对魔攻怪会有500点防御力",
|
||||
"equip": {
|
||||
"type": "饰品",
|
||||
"type": "首饰",
|
||||
"value": {},
|
||||
"percentage": {}
|
||||
}
|
||||
|
@ -596,6 +596,12 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"665": {"cls":"items","id":"I665"},
|
||||
"666": {"cls":"enemys","id":"E666"},
|
||||
"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"]},
|
||||
"20033": {"cls":"tileset","id":"X20033","cannotOut":["up"],"cannotIn":["up"]},
|
||||
"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 |
@ -7,7 +7,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="tsx" setup>
|
||||
import { onMounted, onUnmounted, onUpdated, ref } from 'vue';
|
||||
import { onMounted, onUnmounted, onUpdated } from 'vue';
|
||||
import { addAnimate, removeAnimate } from '../plugin/animateController';
|
||||
import { has, requireUniqueSymbol } from '../plugin/utils';
|
||||
|
||||
|
@ -9,6 +9,7 @@ import { MinimapDrawer, getArea } from '../plugin/ui/fly';
|
||||
import { hook } from '@/game/game';
|
||||
import { useDrag, useWheel } from '@/plugin/use';
|
||||
import { debounce } from 'lodash-es';
|
||||
import { mainSetting } from '@/core/main/setting';
|
||||
|
||||
const props = defineProps<{
|
||||
action?: boolean;
|
||||
@ -22,6 +23,7 @@ const props = defineProps<{
|
||||
|
||||
const area = getArea();
|
||||
const id = requireUniqueSymbol().toFixed(0);
|
||||
const setting = mainSetting.getSetting('ui.mapLazy')!;
|
||||
|
||||
let canvas: HTMLCanvasElement;
|
||||
let drawer: MinimapDrawer;
|
||||
@ -106,10 +108,12 @@ function touchmove(e: TouchEvent) {
|
||||
}
|
||||
|
||||
function afterBattle() {
|
||||
if (!setting.value) {
|
||||
requestAnimationFrame(() => {
|
||||
drawer.drawedThumbnail = {};
|
||||
drawer.drawMap();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -264,6 +264,7 @@ export class UiController extends Focus<IndexedGameUi> {
|
||||
* @returns ui的唯一标识符
|
||||
*/
|
||||
open(id: string, vBind?: UiVBind, vOn?: UiVOn) {
|
||||
if (core.isReplaying() && !this.equal) return -1;
|
||||
const ui = this.get(id);
|
||||
if (!ui) {
|
||||
console.warn(`Unknown UI: '${id}'.`);
|
||||
|
@ -481,6 +481,7 @@ mainSetting
|
||||
new MotaSetting()
|
||||
.register('mapScale', '小地图缩放', 100, COM.Number, [50, 1000, 50])
|
||||
.setDisplayFunc('mapScale', value => `${value}%`)
|
||||
.register('mapLazy', '小地图懒更新', false, COM.Boolean)
|
||||
.register('toolbarScale', '工具栏缩放', 100, COM.Number, [10, 500, 10])
|
||||
.setDisplayFunc('toolbarScale', value => `${value}%`)
|
||||
.register('bookScale', '怪物手册缩放', 100, COM.Number, [10, 500, 10])
|
||||
@ -515,6 +516,7 @@ loading.once('coreInit', () => {
|
||||
'ui.mapScale',
|
||||
isMobile ? 300 : Math.floor(window.innerWidth / 600) * 50
|
||||
),
|
||||
'ui.mapLazy': storage.getValue('ui.mapLazy', false),
|
||||
'ui.toolbarScale': storage.getValue(
|
||||
'ui.toolbarScale',
|
||||
isMobile ? 50 : Math.floor((window.innerWidth / 1700) * 10) * 10
|
||||
@ -557,6 +559,7 @@ mainSetting
|
||||
.setDescription('audio.soundEnabled', `是否开启音效`)
|
||||
.setDescription('audio.soundVolume', `音效的音量`)
|
||||
.setDescription('ui.mapScale', `楼传小地图的缩放,百分比格式`)
|
||||
.setDescription('ui.mapLazy', `是否启用小地图懒更新模式,此模式下剩余怪物数量不会实时更新而变成切换地图后更新,打开小地图时出现卡顿可以尝试开启此设置`)
|
||||
.setDescription('ui.toolbarScale', `自定义工具栏的缩放比例`)
|
||||
.setDescription('ui.bookScale', `怪物手册界面中每个怪物框体的高度缩放,最小值限定为 20% 屏幕高度`)
|
||||
.setDescription('ui.danmaku', '是否显示弹幕')
|
||||
|
@ -33,7 +33,7 @@ Mota.Plugin.register('shadow_r', shadow, shadow.init);
|
||||
Mota.Plugin.register('gameShadow_r', gameShadow, gameShadow.init);
|
||||
Mota.Plugin.register('fly_r', fly);
|
||||
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('frag_r', frag, frag.init);
|
||||
Mota.Plugin.register('use_r', use);
|
||||
|
@ -37,7 +37,7 @@
|
||||
"text": [
|
||||
"第一章完成度达到100%"
|
||||
],
|
||||
"progress": "${mota.plugin.completion.getChapterCompletion(1)} / 100",
|
||||
"progress": "${Mota.Plugin.require('completion_r').getChapterCompletion(1)} / 100",
|
||||
"percent": true,
|
||||
"point": 50
|
||||
},
|
||||
@ -55,7 +55,7 @@
|
||||
"text": [
|
||||
"第二章完成度达到100%"
|
||||
],
|
||||
"progress": "${mota.plugin.completion.getChapterCompletion(2)} / 100",
|
||||
"progress": "${Mota.Plugin.require('completion_r').getChapterCompletion(2)} / 100",
|
||||
"percent": true,
|
||||
"point": 50
|
||||
},
|
||||
|
@ -266,6 +266,8 @@ function init() {
|
||||
if (core.status.event.id == null) core.continueAutomaticRoute();
|
||||
else core.clearContinueAutomaticRoute();
|
||||
|
||||
core.checkAutoEvents();
|
||||
|
||||
hook.emit('afterBattle', enemy, x, y);
|
||||
};
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ interface MapDamage {
|
||||
damage: number;
|
||||
type: Set<string>;
|
||||
mockery?: LocArr[];
|
||||
hunt?: [x: number, y: number, dir: Dir][];
|
||||
}
|
||||
|
||||
interface HaloData<T extends keyof HaloType = keyof HaloType> {
|
||||
@ -102,6 +103,9 @@ export class EnemyCollection implements RangeCollection<DamageEnemy> {
|
||||
mapDamage: Record<string, MapDamage> = {};
|
||||
haloList: HaloData[] = [];
|
||||
|
||||
/** 乾坤挪移属性 */
|
||||
translation: [number, number] = [0, 0];
|
||||
|
||||
constructor(floorId: FloorIds) {
|
||||
this.floorId = floorId;
|
||||
this.extract();
|
||||
@ -128,10 +132,10 @@ export class EnemyCollection implements RangeCollection<DamageEnemy> {
|
||||
|
||||
/**
|
||||
* 计算怪物真实属性
|
||||
* @param noCache 是否不使用缓存
|
||||
*/
|
||||
calRealAttribute() {
|
||||
this.haloList = [];
|
||||
this.translation = [0, 0];
|
||||
this.list.forEach(v => {
|
||||
v.reset();
|
||||
});
|
||||
@ -311,6 +315,17 @@ export class EnemyCollection implements RangeCollection<DamageEnemy> {
|
||||
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.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 info = this.info;
|
||||
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)) {
|
||||
@ -406,7 +432,10 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
if (has(flags[`melt_${floorId}`]) && has(this.x) && has(this.y)) {
|
||||
for (const [loc, per] of Object.entries(flags[`melt_${floorId}`])) {
|
||||
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.defBuff_ += per as number;
|
||||
}
|
||||
@ -463,6 +492,8 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
if (!has(this.x) || !has(this.y)) return;
|
||||
const special = this.getHaloSpecials();
|
||||
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) {
|
||||
switch (halo) {
|
||||
@ -472,7 +503,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
const type = 'square';
|
||||
const r = Math.floor(e.haloRange!);
|
||||
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之前
|
||||
this.providedHalo.add(29);
|
||||
@ -512,7 +543,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
);
|
||||
col.haloList.push({
|
||||
type: 'square',
|
||||
data: { x: this.x, y: this.y, d },
|
||||
data: { x: this.x + dx, y: this.y + dy, d },
|
||||
special: 29,
|
||||
from: this
|
||||
});
|
||||
@ -532,6 +563,7 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
const col = this.col ?? core.status.maps[this.floorId].enemy;
|
||||
if (!col) return;
|
||||
const special = this.getHaloSpecials();
|
||||
const [dx, dy] = col.translation;
|
||||
|
||||
const square7: HaloFn[] = [];
|
||||
const square5: HaloFn[] = [];
|
||||
@ -540,7 +572,11 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
|
||||
// 抱团
|
||||
if (special.includes(8)) {
|
||||
square5.push((e, enemy) => {
|
||||
col.applyHalo(
|
||||
'square',
|
||||
{ x: this.x, y: this.y, d: 5 },
|
||||
this,
|
||||
(e, enemy) => {
|
||||
if (
|
||||
e.special.includes(8) &&
|
||||
(e.x !== this.x || this.y !== e.y)
|
||||
@ -548,19 +584,20 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
e.atkBuff_ += enemy.together ?? 0;
|
||||
e.defBuff_ += enemy.together ?? 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
this.providedHalo.add(8);
|
||||
}
|
||||
|
||||
// 冰封光环
|
||||
if (special.includes(21)) {
|
||||
square7.push(e => {
|
||||
e.damageDecline += this.enemy.iceHalo ?? 0;
|
||||
e.damageDecline += this.info.iceHalo ?? 0;
|
||||
});
|
||||
this.providedHalo.add(21);
|
||||
col.haloList.push({
|
||||
type: 'square',
|
||||
data: { x: this.x, y: this.y, d: 7 },
|
||||
data: { x: this.x + dx, y: this.y + dy, d: 7 },
|
||||
special: 21,
|
||||
from: this
|
||||
});
|
||||
@ -569,12 +606,12 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
// 冰封之核
|
||||
if (special.includes(26)) {
|
||||
square5.push(e => {
|
||||
e.defBuff_ += this.enemy.iceCore ?? 0;
|
||||
e.defBuff_ += this.info.iceCore ?? 0;
|
||||
});
|
||||
this.providedHalo.add(26);
|
||||
col.haloList.push({
|
||||
type: 'square',
|
||||
data: { x: this.x, y: this.y, d: 5 },
|
||||
data: { x: this.x + dx, y: this.y + dy, d: 5 },
|
||||
special: 26,
|
||||
from: this
|
||||
});
|
||||
@ -583,19 +620,29 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
|
||||
// 火焰之核
|
||||
if (special.includes(27)) {
|
||||
square5.push(e => {
|
||||
e.atkBuff_ += this.enemy.fireCore ?? 0;
|
||||
e.atkBuff_ += this.info.fireCore ?? 0;
|
||||
});
|
||||
this.providedHalo.add(27);
|
||||
col.haloList.push({
|
||||
type: 'square',
|
||||
data: { x: this.x, y: this.y, d: 5 },
|
||||
data: { x: this.x + dx, y: this.y + dy, d: 5 },
|
||||
special: 27,
|
||||
from: this
|
||||
});
|
||||
}
|
||||
|
||||
col.applyHalo('square', { x: this.x, y: this.y, d: 7 }, this, square7);
|
||||
col.applyHalo('square', { x: this.x, y: this.y, d: 5 }, this, square5);
|
||||
col.applyHalo(
|
||||
'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;
|
||||
}
|
||||
|
||||
@ -927,9 +1005,6 @@ const skills: [unlock: string, condition: string][] = [
|
||||
['shieldOn', 'shield']
|
||||
];
|
||||
|
||||
const haloValue: Map<number, SelectKey<Enemy, number | undefined>[]> =
|
||||
new Map();
|
||||
|
||||
/**
|
||||
* 计算怪物伤害
|
||||
* @param info 怪物信息
|
||||
@ -939,7 +1014,13 @@ export function calDamageWith(
|
||||
info: EnemyInfo,
|
||||
hero: Partial<HeroStatus>
|
||||
): 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 { hp: monHp, atk: monAtk, def: monDef, special, enemy } = info;
|
||||
|
||||
@ -952,6 +1033,13 @@ export function calDamageWith(
|
||||
monAtk += delta;
|
||||
}
|
||||
|
||||
// 勇士学习的饥渴
|
||||
if (heroSpec.num.includes(7)) {
|
||||
const delta = Math.floor((monAtk * heroSpec.hungry!) / 100);
|
||||
atk += delta;
|
||||
monAtk -= delta;
|
||||
}
|
||||
|
||||
let heroPerDamage: number;
|
||||
|
||||
// 绝对防御
|
||||
@ -975,11 +1063,19 @@ export function calDamageWith(
|
||||
|
||||
heroPerDamage *= 1 - info.damageDecline / 100;
|
||||
|
||||
// 勇士学习勇气之刃
|
||||
if (heroSpec.num.includes(10)) {
|
||||
monHp -= (heroSpec.courage / 100 - 1) * heroPerDamage;
|
||||
}
|
||||
|
||||
let enemyPerDamage: number;
|
||||
|
||||
// 魔攻
|
||||
if (special.includes(2) || special.includes(13)) {
|
||||
enemyPerDamage = monAtk;
|
||||
if (core.hasEquip('I663')) {
|
||||
enemyPerDamage = Math.max(0, enemyPerDamage - 500);
|
||||
}
|
||||
} else {
|
||||
enemyPerDamage = monAtk - def;
|
||||
if (enemyPerDamage < 0) enemyPerDamage = 0;
|
||||
@ -995,13 +1091,49 @@ export function calDamageWith(
|
||||
if (special.includes(5)) enemyPerDamage *= 3;
|
||||
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)) {
|
||||
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);
|
||||
|
||||
// 勇士学习致命一击
|
||||
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)) {
|
||||
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;
|
||||
turn += 5;
|
||||
}
|
||||
@ -1029,7 +1161,8 @@ export function calDamageWith(
|
||||
if (flags.hard === 1) damage *= 0.9;
|
||||
|
||||
if (flags.chapter > 1 && damage < 0) {
|
||||
damage *= 0.25;
|
||||
const dm = -enemy.hp * 0.25;
|
||||
if (damage < dm) damage = dm;
|
||||
}
|
||||
|
||||
return damage;
|
||||
|
@ -233,5 +233,18 @@ export const specials: SpecialDeclaration[] = [
|
||||
);
|
||||
},
|
||||
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'
|
||||
}
|
||||
];
|
||||
|
@ -8,6 +8,7 @@ import { gameListener, hook, loading } from './game';
|
||||
import * as battle from './enemy/battle';
|
||||
import * as hero from './hero';
|
||||
import * as miscMechanism from './mechanism/misc';
|
||||
import * as study from './mechanism/study';
|
||||
|
||||
// ----- 类注册
|
||||
Mota.register('class', 'DamageEnemy', damage.DamageEnemy);
|
||||
@ -27,7 +28,8 @@ Mota.register('var', 'gameListener', gameListener);
|
||||
Mota.register('var', 'loading', loading);
|
||||
// ----- 模块注册
|
||||
Mota.register('module', 'Mechanism', {
|
||||
BluePalace: miscMechanism.BluePalace
|
||||
BluePalace: miscMechanism.BluePalace,
|
||||
Study: study
|
||||
});
|
||||
|
||||
main.loading = loading;
|
||||
|
81
src/game/mechanism/study.ts
Normal file
81
src/game/mechanism/study.ts
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
@ -136,7 +136,7 @@ interface PluginInterface {
|
||||
itemDetail_g: typeof import('../plugin/game/fx/itemDetail');
|
||||
checkBlock_g: typeof import('../plugin/game/enemy/checkblock');
|
||||
halo_g: typeof import('../plugin/game/fx/halo');
|
||||
study_g: typeof import('../plugin/game/study');
|
||||
// study_g: typeof import('../plugin/game/study');
|
||||
}
|
||||
|
||||
interface PackageInterface {
|
||||
|
@ -100,7 +100,6 @@ import { has, setCanvasSize } from '../plugin/utils';
|
||||
import { debounce } from 'lodash-es';
|
||||
import { isMobile } from '../plugin/use';
|
||||
import { createChangable } from '@/plugin/ui/common';
|
||||
|
||||
const props = defineProps<{
|
||||
fromBook?: boolean;
|
||||
}>();
|
||||
@ -111,8 +110,8 @@ const def = ref<HTMLCanvasElement>();
|
||||
const enemy = detailInfo.enemy!;
|
||||
const ceil = Math.ceil;
|
||||
|
||||
const x = ref(props.fromBook ? void 0 : flags.mouseLoc[0]);
|
||||
const y = ref(props.fromBook ? void 0 : flags.mouseLoc[1]);
|
||||
const x = ref<number>();
|
||||
const y = ref<number>();
|
||||
x.value = has(x.value)
|
||||
? Math.round(x.value + core.bigmap.offsetX / 32)
|
||||
: void 0;
|
||||
|
@ -21,16 +21,14 @@ export const achiDict: Record<number, number> = {
|
||||
1: 0
|
||||
};
|
||||
|
||||
const loading = Mota.require('var', 'loading');
|
||||
|
||||
loading.once('coreInit', () => {
|
||||
export function init() {
|
||||
Object.values(floors).forEach((v, i) => {
|
||||
const from = core.floorIds.indexOf(v[0]);
|
||||
const to = core.floorIds.indexOf(v[1]);
|
||||
const all = core.floorIds.slice(from, to + 1);
|
||||
floors[i + 1] = all;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查所有到达过的楼层,用于成就的计算
|
||||
|
@ -11,7 +11,7 @@ export function init() {
|
||||
const setting = Mota.require('var', 'mainSetting');
|
||||
|
||||
tran.ticker.add(() => {
|
||||
if (core.isPlaying() && needSmooth) {
|
||||
if (core.isPlaying() && needSmooth && !core.isReplaying()) {
|
||||
core.setViewport(tran.value.x, tran.value.y);
|
||||
}
|
||||
});
|
||||
@ -39,7 +39,12 @@ export function init() {
|
||||
tran.transition('x', ox).transition('y', oy);
|
||||
|
||||
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) {
|
||||
needSmooth = true;
|
||||
func();
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { has, ofDir } from '@/plugin/game/utils';
|
||||
import { drawHalo } from '../fx/halo';
|
||||
|
||||
export function init() {
|
||||
@ -34,6 +35,7 @@ export function init() {
|
||||
}
|
||||
}
|
||||
checkMockery(loc, forceMockery);
|
||||
checkHunt(loc);
|
||||
};
|
||||
|
||||
control.prototype._drawDamage_draw = function (
|
||||
@ -170,3 +172,47 @@ function checkMockery(loc: string, force: boolean = false) {
|
||||
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);
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ const haloColor: Record<number, string[]> = {
|
||||
25: ['purple'],
|
||||
26: ['blue'],
|
||||
27: ['red'],
|
||||
29: ['#C3D100']
|
||||
29: ['#3CFF49']
|
||||
};
|
||||
|
||||
export function drawHalo(
|
||||
@ -13,15 +13,17 @@ export function drawHalo(
|
||||
) {
|
||||
if (main.replayChecking) return;
|
||||
const setting = Mota.require('var', 'mainSetting');
|
||||
if (!setting.getValue('screen.showHalo', true)) return;
|
||||
const list = core.status.maps[floorId].enemy.haloList.concat(
|
||||
if (!setting.getValue('screen.halo', true)) return;
|
||||
const col = core.status.maps[floorId].enemy;
|
||||
const [dx, dy] = col.translation;
|
||||
const list = col.haloList.concat(
|
||||
Object.keys(flags[`melt_${floorId}`] ?? {}).map(v => {
|
||||
const [x, y] = v.split(',').map(v => parseInt(v));
|
||||
return {
|
||||
type: 'square',
|
||||
data: {
|
||||
x,
|
||||
y,
|
||||
x: x + dx,
|
||||
y: y + dy,
|
||||
d: 3
|
||||
},
|
||||
special: 25
|
||||
|
@ -37,7 +37,7 @@ export function init() {
|
||||
displayDamage
|
||||
) {
|
||||
const enemy = getEnemy(x, y);
|
||||
const dam = enemy.calDamage();
|
||||
const dam = enemy?.calDamage() ?? { damage: 0 };
|
||||
const { damage, color } = formatDamage(dam.damage);
|
||||
|
||||
damageCanvas = '__damage_' + x + '_' + y;
|
||||
@ -46,7 +46,7 @@ export function init() {
|
||||
ctx.font = '14px normal';
|
||||
core.fillBoldText(ctx, damage, 1, 31, color as string);
|
||||
if (core.flags.displayCritical) {
|
||||
const critical = enemy.calCritical(1);
|
||||
const critical = enemy?.calCritical(1) ?? [];
|
||||
const atk = core.formatBigNumber(critical[0]?.delta, true);
|
||||
const display = atk === '???' ? '?' : atk;
|
||||
core.fillBoldText(ctx, display, 1, 21, '#FFFFFF');
|
||||
|
@ -11,7 +11,6 @@ import * as removeMap from './removeMap';
|
||||
import * as shop from './shop';
|
||||
import * as skill from './skill';
|
||||
import * as skillTree from './skillTree';
|
||||
import * as study from './study';
|
||||
import * as towerBoss from './towerBoss';
|
||||
import * as utils from './utils';
|
||||
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('itemDetail_g', itemDetail, itemDetail.init);
|
||||
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('checkBlock_g', checkBlock, checkBlock.init);
|
||||
// todo: 这几个不应该放到插件
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { canStudySkill, studySkill } from '@/game/mechanism/study';
|
||||
import { upgradeSkill } from './skillTree';
|
||||
import { ensureFloorDamage } from '@/game/enemy/damage';
|
||||
|
||||
const replayableSettings = ['autoSkill'];
|
||||
|
||||
@ -44,19 +46,21 @@ export function init() {
|
||||
});
|
||||
|
||||
core.registerReplayAction('study', name => {
|
||||
// todo
|
||||
// if (!name.startsWith('study:')) return false;
|
||||
// const [num, x, y] = name
|
||||
// .slice(6)
|
||||
// .split(',')
|
||||
// .map(v => parseInt(v));
|
||||
// if (!canStudySkill(num)) return false;
|
||||
// const id = core.getBlockId(x, y);
|
||||
// const enemy = core.getEnemyInfo(id, void 0, x, y);
|
||||
// if (!enemy.special.includes(num)) return false;
|
||||
// studySkill(enemy, num);
|
||||
// core.status.route.push(name);
|
||||
// core.replay();
|
||||
if (!name.startsWith('study:')) return false;
|
||||
const [num, x, y] = name
|
||||
.slice(6)
|
||||
.split(',')
|
||||
.map(v => parseInt(v));
|
||||
if (!canStudySkill(num)) return false;
|
||||
const id = core.getBlockId(x, y);
|
||||
ensureFloorDamage(core.status.floorId);
|
||||
const col = core.status.thisMap.enemy;
|
||||
col.calRealAttribute();
|
||||
const enemy = col.list.find(v => v.x === x && v.y === y)!.info;
|
||||
if (!enemy.special.includes(num)) return false;
|
||||
studySkill(enemy, num);
|
||||
core.status.route.push(name);
|
||||
core.replay();
|
||||
return true;
|
||||
});
|
||||
|
||||
@ -117,9 +121,7 @@ export function init() {
|
||||
return true;
|
||||
});
|
||||
|
||||
core.registerReplayAction('skill', name => {
|
||||
if (!name.startsWith('skill:')) return false;
|
||||
const [type, skill] = name.split(':');
|
||||
function skillAction(skill: string) {
|
||||
if (skill === '1') {
|
||||
if (flags.autoSkill || !flags.bladeOn) return true;
|
||||
if (flags.blade) flags.blade = false;
|
||||
@ -142,6 +144,32 @@ export function init() {
|
||||
else flags.shield = true;
|
||||
}
|
||||
core.updateStatusBar();
|
||||
core.replay();
|
||||
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;
|
||||
});
|
||||
}
|
||||
|
@ -39,12 +39,14 @@ export const jumpIgnoreFloor: FloorIds[] = [
|
||||
'MT57',
|
||||
'MT59',
|
||||
'MT60',
|
||||
'MT61'
|
||||
'MT61',
|
||||
'MT71'
|
||||
];
|
||||
// 跳跃
|
||||
export function jumpSkill() {
|
||||
if (core.status.floorId.startsWith('tower'))
|
||||
return core.drawTip('当无法使用该技能');
|
||||
if (core.status.floorId.startsWith('tower')) {
|
||||
return core.drawTip('当前无法使用该技能');
|
||||
}
|
||||
if (jumpIgnoreFloor.includes(core.status.floorId) || flags.onChase) {
|
||||
return core.drawTip('当前楼层无法使用该技能');
|
||||
}
|
||||
@ -140,6 +142,7 @@ export function jumpSkill() {
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
// 检查一条线上的不可通过
|
||||
function checkNoPass(direction, x, y, startNo) {
|
||||
if (!startNo) startNo = false;
|
||||
|
@ -141,7 +141,7 @@ export const skills: Record<Chapter, Skill[]> = {
|
||||
consume: '2500 * 2 ** level + 5000',
|
||||
front: [
|
||||
[8, 10],
|
||||
[12, 5]
|
||||
[12, 10]
|
||||
],
|
||||
loc: [4, 1],
|
||||
max: 6,
|
||||
|
@ -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--;
|
||||
}
|
||||
}
|
||||
}
|
@ -66,6 +66,7 @@ export function getMapDrawData(
|
||||
noCache: boolean = false
|
||||
): MapDrawData {
|
||||
const id = `${floorId},${interval},${border}`;
|
||||
if (!floorId) return { locs: {}, line: [], width: 1, height: 1 };
|
||||
if (drawCache[id] && !noCache) return drawCache[id];
|
||||
const { link, maps } = getMapData(floorId, noCache);
|
||||
const locs: Partial<Record<FloorIds, LocArr>> = {};
|
||||
@ -161,6 +162,7 @@ export function getMapData(
|
||||
floorId: FloorIds,
|
||||
noCache: boolean = false
|
||||
): MapBFSResult {
|
||||
if (!floorId) return { maps: [], link: {} };
|
||||
if (has(bfsCache[floorId]) && !noCache) return bfsCache[floorId]!;
|
||||
|
||||
const queue = [floorId];
|
||||
@ -531,7 +533,7 @@ export class MinimapDrawer {
|
||||
ctx.lineTo(x - 0.5, y + 1);
|
||||
ctx.lineTo(x + 1.5, y - 1);
|
||||
ctx.stroke();
|
||||
} else if (enemy.length < 2) {
|
||||
} else if (enemy.length <= 2) {
|
||||
const ids = [...new Set(enemy.map(v => v.id))];
|
||||
if (ids.length === 1) {
|
||||
core.drawIcon(ctx, ids[0], x - 2, y - 2, 4, 4);
|
||||
|
6
src/source/cls.d.ts
vendored
6
src/source/cls.d.ts
vendored
@ -595,6 +595,12 @@ interface IdToCls {
|
||||
I665: 'items';
|
||||
E666: 'enemys';
|
||||
E667: 'enemys';
|
||||
E668: 'enemys';
|
||||
E669: 'enemys';
|
||||
E670: 'enemys';
|
||||
E671: 'enemys';
|
||||
E672: 'enemys';
|
||||
E673: 'enemys';
|
||||
X20032: 'tileset';
|
||||
X20033: 'tileset';
|
||||
X20034: 'tileset';
|
||||
|
2
src/source/items.d.ts
vendored
2
src/source/items.d.ts
vendored
@ -188,7 +188,7 @@ interface ItemDeclaration {
|
||||
I641: 'equips';
|
||||
I642: 'constants';
|
||||
I662: 'equips';
|
||||
I663: 'items';
|
||||
I663: 'equips';
|
||||
I664: 'items';
|
||||
I665: 'items';
|
||||
}
|
12
src/source/maps.d.ts
vendored
12
src/source/maps.d.ts
vendored
@ -595,6 +595,12 @@ interface IdToNumber {
|
||||
I665: 665;
|
||||
E666: 666;
|
||||
E667: 667;
|
||||
E668: 668;
|
||||
E669: 669;
|
||||
E670: 670;
|
||||
E671: 671;
|
||||
E672: 672;
|
||||
E673: 673;
|
||||
X20032: 20032;
|
||||
X20033: 20033;
|
||||
X20034: 20034;
|
||||
@ -1275,6 +1281,12 @@ interface NumberToId {
|
||||
665: 'I665';
|
||||
666: 'E666';
|
||||
667: 'E667';
|
||||
668: 'E668';
|
||||
669: 'E669';
|
||||
670: 'E670';
|
||||
671: 'E671';
|
||||
672: 'E672';
|
||||
673: 'E673';
|
||||
20032: 'X20032';
|
||||
20033: 'X20033';
|
||||
20034: 'X20034';
|
||||
|
1
src/types/enemy.d.ts
vendored
1
src/types/enemy.d.ts
vendored
@ -88,6 +88,7 @@ type Enemy<I extends EnemyIds = EnemyIds> = {
|
||||
afterBattle: MotaEvent;
|
||||
|
||||
specialHalo?: number[];
|
||||
translation?: [number, number];
|
||||
} & {
|
||||
[P in PartialNumbericEnemyProperty]?: number;
|
||||
} & {
|
||||
|
@ -81,7 +81,6 @@ import { useDrag } from '../plugin/use';
|
||||
import EnemySpecial from '../panel/enemySpecial.vue';
|
||||
import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue';
|
||||
import EnemyCritical from '../panel/enemyCritical.vue';
|
||||
import { sleep } from 'mutate-animate';
|
||||
import EnemyTarget from '../panel/enemyTarget.vue';
|
||||
import { detailInfo } from '../plugin/ui/book';
|
||||
import { gameKey } from '@/core/main/init/hotkey';
|
||||
@ -91,6 +90,10 @@ const props = defineProps<{
|
||||
defaultPanel?: 'special' | 'critical' | 'target';
|
||||
}>();
|
||||
|
||||
const emits = defineEmits<{
|
||||
(e: 'close'): void;
|
||||
}>();
|
||||
|
||||
const enemy = detailInfo.enemy;
|
||||
const top = ref(detailInfo.pos);
|
||||
const panel = ref<string>(props.defaultPanel ?? 'special');
|
||||
@ -98,10 +101,6 @@ const symbol = Symbol();
|
||||
|
||||
let detail: HTMLDivElement;
|
||||
|
||||
const emits = defineEmits<{
|
||||
(e: 'close'): void;
|
||||
}>();
|
||||
|
||||
function changePanel(e: MouseEvent, to: string) {
|
||||
e.stopPropagation();
|
||||
panel.value = to;
|
||||
|
@ -402,6 +402,7 @@ onMounted(async () => {
|
||||
drawer.scale = scale;
|
||||
drawer.noBorder = noBorder.value;
|
||||
drawer.showInfo = true;
|
||||
drawer.nowArea = nowArea.value;
|
||||
|
||||
const mapStyle = getComputedStyle(map);
|
||||
const thumbStyle = getComputedStyle(thumb);
|
||||
|
@ -16,7 +16,6 @@ export { default as Skill } from './skill.vue';
|
||||
export { default as SkillTree } from './skillTree.vue';
|
||||
export { default as Start } from './start.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 Toolbox } from './toolbox.vue';
|
||||
export { default as Hotkey } from './hotkey.vue';
|
||||
|
@ -123,6 +123,9 @@
|
||||
>学习</span
|
||||
>
|
||||
</div>
|
||||
<div v-if="studyOpened" class="status-item">
|
||||
<!-- 当前学习的技能 -->
|
||||
</div>
|
||||
</div>
|
||||
</Scroll>
|
||||
</Box>
|
||||
|
@ -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>
|
Loading…
Reference in New Issue
Block a user