diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index 8b24cb2e..1a8e33c4 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -491,6 +491,15 @@ editor_blockly = function () { }).sort(); } + // 提供 hero.xxx 补全 + index = content.lastIndexOf("hero."); + if (index >= 0) { + var token = content.substring(index+6); + return Object.keys(core.status.hero).filter(function (one) { + return one != token && one.startsWith(token); + }).sort(); + } + var namesObj={}; namesObj.allIds = ["this"].concat(core.getAllIconIds()); diff --git a/_server/editor_datapanel.js b/_server/editor_datapanel.js index 336cecfb..ec94b6e0 100644 --- a/_server/editor_datapanel.js +++ b/_server/editor_datapanel.js @@ -441,9 +441,12 @@ editor_datapanel_wrapper = function (editor) { }) } } else if (cls == 'items') { - if (confirm("你确定要批量清空【全塔道具】的全部属性么?这是个不可逆操作!")) { - for (var id in items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a) - _clearItem(id); + if (confirm("你确定要批量清空【全塔所有自动注册且未修改ID的道具】的全部属性么?这是个不可逆操作!")) { + for (var id in items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a) { + if (/^I\d+$/.test(id)) { + _clearItem(id); + } + } editor.file.saveSetting('items', [], function (err) { if (err) printe(err); else printf("全塔全部道具属性清空成功!"); diff --git a/libs/ui.js b/libs/ui.js index 257e1513..f2d67825 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -2921,6 +2921,8 @@ ui.prototype._drawStatistics_items = function (floorId, floor, id, obj) { def = core.status.hero.def - temp.def; mdef = core.status.hero.mdef - temp.mdef; core.status.hero = temp; + window.hero = core.status.hero; + window.flags = core.status.hero.flags; } else if (obj.cls[id]=='equips') { var values = core.material.items[id].equip || {}; diff --git a/project/enemys.js b/project/enemys.js index 04b8c47b..01985277 100644 --- a/project/enemys.js +++ b/project/enemys.js @@ -51,12 +51,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "yellowGateKeeper": {"name":"初级卫兵","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":0}, "blueGateKeeper": {"name":"中级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "redGateKeeper": {"name":"高级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, - "blackMS": {"name":"黑衣魔王","hp":1000,"atk":500,"def":0,"money":1000,"exp":1000,"point":0,"special":0,"notBomb":true}, - "yellowMS": {"name":"黄衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, - "greenMS": {"name":"青衣武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "magicMaster": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"exp":0,"point":0,"special":11,"value":0.3333333333333333,"add":true,"notBomb":true}, - "blueMS": {"name":"白衣武士","hp":100,"atk":120,"def":0,"money":17,"exp":0,"point":0,"special":16}, - "redMS": {"name":"红衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, @@ -73,12 +68,17 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "bowman": {"name":"弓兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "liteBowman": {"name":"精锐弓兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, - "crismonZombie": {"name":"红兽人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, + "crimsonZombie": {"name":"红兽人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "watcherSlime": {"name":"邪眼怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "mutantSlimeman": {"name":"变异战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "devilKnight": {"name":"恶灵骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "grayPriest": {"name":"混沌法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "greenGateKeeper": {"name":"卫兵队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, "ghostSoldier": {"name":"冥队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, - "frostBat": {"name":"寒蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0} + "frostBat": {"name":"寒蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, + "blackKing": {"name":"黑衣魔王","hp":1000,"atk":500,"def":0,"money":1000,"exp":1000,"point":0,"special":0,"notBomb":true}, + "yellowKing": {"name":"黄衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, + "greenKing": {"name":"青衣武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, + "redKing": {"name":"红衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0}, + "blueKing": {"name":"白衣武士","hp":100,"atk":120,"def":0,"money":17,"exp":0,"point":0,"special":16} } \ No newline at end of file diff --git a/project/floors/sample1.js b/project/floors/sample1.js index ae4695cb..8f3eafaa 100644 --- a/project/floors/sample1.js +++ b/project/floors/sample1.js @@ -52,7 +52,7 @@ main.floors.sample1= "1,7": [ { "type": "setBlock", - "number": "redMS", + "number": "redKing", "loc": [ [ 1, @@ -65,10 +65,10 @@ main.floors.sample1= "type": "sleep", "time": 500 }, - "\t[redMS]\b[this,1,5]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下,我就与你一对一的决斗。\n现在你必须接受我的安排。", + "\t[redKing]\b[this,1,5]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下,我就与你一对一的决斗。\n现在你必须接受我的安排。", { "type": "setBlock", - "number": "blueMS", + "number": "blueKing", "loc": [ [ 1, @@ -252,9 +252,9 @@ main.floors.sample1= } ], "10,4": [ - "\t[blackMS]\b[this]你终于还是来了。", + "\t[blackKing]\b[this]你终于还是来了。", "\t[hero]\b[hero]放开我们的公主!", - "\t[blackMS]\b[this]如果我不愿意呢?", + "\t[blackKing]\b[this]如果我不愿意呢?", "\t[hero]\b[hero]无需多说,拔剑吧!", { "type": "battle", @@ -270,7 +270,7 @@ main.floors.sample1= 7 ] }, - "\t[blackMS]没想到你已经变得这么强大了... 算你厉害。\n公主就交给你了,请好好对她。", + "\t[blackKing]没想到你已经变得这么强大了... 算你厉害。\n公主就交给你了,请好好对她。", { "type": "hide" } diff --git a/project/functions.js b/project/functions.js index b9cf9b75..da60d2fd 100644 --- a/project/functions.js +++ b/project/functions.js @@ -15,6 +15,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = core.status.played = true; // 初始化人物,图标,统计信息 core.status.hero = core.clone(hero); + window.hero = core.status.hero; window.flags = core.status.hero.flags; core.events.setHeroIcon(core.status.hero.image, true); core.control._initStatistics(core.animateFrame.totalTime); @@ -510,7 +511,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 光环和支援检查 if (!core.status.checkBlock) core.status.checkBlock = {}; - if (core.status.checkBlock.needCache) { + if (core.status.checkBlock.needCache || floorId != core.status.floorId) { // 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。 var hp_buff = 0, atk_buff = 0, diff --git a/project/icons.js b/project/icons.js index 685c3f49..d99197ee 100644 --- a/project/icons.js +++ b/project/icons.js @@ -186,12 +186,7 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "yellowGateKeeper": 20, "blueGateKeeper": 21, "redGateKeeper": 22, - "blackMS": 28, - "yellowMS": 29, - "greenMS": 30, "magicMaster": 46, - "blueMS": 45, - "redMS": 44, "devilWarrior": 41, "fairyEnemy": 58, "dragon": 56, @@ -208,7 +203,7 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "greenKnight": 65, "bowman": 66, "liteBowman": 67, - "crismonZombie": 68, + "crimsonZombie": 68, "watcherSlime": 70, "mutantSlimeman": 71, "frostBat": 72, @@ -216,7 +211,12 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "grayPriest": 74, "greenGateKeeper": 75, "ghostSoldier": 11, - "evilHero": 40 + "evilHero": 40, + "blackKing": 28, + "yellowKing": 29, + "greenKing": 30, + "redKing": 44, + "blueKing": 45 }, "enemy48": { "angel": 0, diff --git a/project/items.js b/project/items.js index 46706167..6ed8ea67 100644 --- a/project/items.js +++ b/project/items.js @@ -296,7 +296,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "圣水", "itemEffect": "core.status.hero.hp *= 2", - "itemEffectTip": ",生命值翻倍" + "itemEffectTip": ",生命值翻倍", + "useItemEffect": "core.status.hero.hp *= 2;", + "canUseItemEffect": "true", + "text": "生命值翻倍" }, "silverCoin": { "cls": "items", diff --git a/project/maps.js b/project/maps.js index 9acc1449..9e7b2037 100644 --- a/project/maps.js +++ b/project/maps.js @@ -168,9 +168,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "226": {"cls":"enemys","id":"yellowKnight"}, "227": {"cls":"enemys","id":"redKnight"}, "228": {"cls":"enemys","id":"darkKnight"}, - "229": {"cls":"enemys","id":"blackMS"}, - "230": {"cls":"enemys","id":"yellowMS"}, - "231": {"cls":"enemys","id":"greenMS"}, + "229": {"cls":"enemys","id":"blackKing"}, + "230": {"cls":"enemys","id":"yellowKing"}, + "231": {"cls":"enemys","id":"greenKing"}, "232": {"cls":"enemys","id":"blueKnight"}, "233": {"cls":"enemys","id":"goldSlime"}, "234": {"cls":"enemys","id":"poisonSkeleton"}, @@ -184,8 +184,8 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "242": {"cls":"enemys","id":"devilWarrior"}, "243": {"cls":"enemys","id":"demonPriest"}, "244": {"cls":"enemys","id":"goldHornSlime"}, - "245": {"cls":"enemys","id":"redMS"}, - "246": {"cls":"enemys","id":"blueMS"}, + "245": {"cls":"enemys","id":"redKing"}, + "246": {"cls":"enemys","id":"blueKing"}, "247": {"cls":"enemys","id":"magicMaster"}, "248": {"cls":"enemys","id":"silverSlime"}, "249": {"cls":"enemys","id":"blademaster"}, @@ -212,7 +212,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "270": {"cls":"enemys","id":"greenKnight"}, "271": {"cls":"enemys","id":"bowman"}, "272": {"cls":"enemys","id":"liteBowman"}, - "273": {"cls":"enemys","id":"crismonZombie"}, + "273": {"cls":"enemys","id":"crimsonZombie"}, "274": {"cls":"enemys","id":"frozenSkeleton"}, "275": {"cls":"enemys","id":"watcherSlime"}, "276": {"cls":"enemys","id":"mutantSlimeman"}, diff --git a/project/materials/enemys.png b/project/materials/enemys.png index 344f3788..c5f0ca5e 100644 Binary files a/project/materials/enemys.png and b/project/materials/enemys.png differ