From 7eaba69a5b893fe210cb4d404250f0577ad3d732 Mon Sep 17 00:00:00 2001 From: bdf1 Date: Fri, 6 Sep 2024 15:02:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=A0=8F=E7=9A=84=E4=BA=B2?= =?UTF-8?q?=E5=AF=86=E5=BA=A6=E3=80=81=E7=A5=9E=E4=B9=8B=E8=A1=80=E5=92=8C?= =?UTF-8?q?=E9=BB=91=E7=99=BD=E9=92=A5=E5=8C=99=E5=8F=AA=E6=9C=89=E5=BD=93?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E6=97=B6=E6=89=8D=E4=BC=9A=E8=A7=A3=E9=94=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/data.js | 2 +- project/events.js | 36 ++++++++++++++++++++ project/floors/BH1.js | 11 +++++++ project/floors/SN10.js | 4 +++ project/floors/SR15.js | 7 +++- project/floors/XW1.js | 3 +- project/functions.js | 9 +++-- project/plugins.js | 74 +++++++++++++++++++++++++++--------------- 8 files changed, 114 insertions(+), 32 deletions(-) diff --git a/project/data.js b/project/data.js index 170485c..6ae8da2 100644 --- a/project/data.js +++ b/project/data.js @@ -1072,7 +1072,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "startText": [ { "type": "function", - "function": "function(){\nflags._statusgry_ = 0;\nflags._statusbrg_ = 0.6;\ncore.createSpr0();\ncore.createSprBack();\nflags.version = 2;\n}" + "function": "function(){\nflags._statusgry_ = 0;\nflags._statusbrg_ = 0.6;\ncore.createSpr0();\ncore.createSprBack();\nflags.version = 3;\n}" }, { "type": "comment", diff --git a/project/events.js b/project/events.js index bec67d1..4d12d68 100644 --- a/project/events.js +++ b/project/events.js @@ -50,6 +50,42 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = "type": "function", "function": "function(){\nif (core.hasEquip('I409')) { core.status.hero.mana += 1 }\nif (core.hasEquip('I410')) { core.status.hero.mana += 3 }\nif (core.hasEquip('I411')) { core.status.hero.mana += 5 }\nif (core.hasEquip('I412')) { core.status.hero.mana += 7 }\nif (core.hasEquip('I413')) { core.status.hero.mana += 9 }\nif (core.hasEquip('I595')) { core.status.hero.mana += 100 }\nif (core.hasEquip('I1115')) { core.status.hero.mana += 10 }\nif (core.hasEquip('I1116')) { core.status.hero.mana += 10 }\nif (core.hasItem('I722')) { core.status.hero.mana += Math.min(50, Math.sqrt((core.getEnemyInfo('', null, x, y).hp || 0) / 500)) }\nif (core.hasEquip('I723')) { core.status.hero.hp += core.status.hero.hpmax / 200 }\nif (core.hasItem('I421')) { core.status.hero.mana += Math.min(10000, (core.getEnemyInfo('', null, x, y).hp || 0) / 5000) }\nif (core.hasItem('I421')) { core.status.hero.hp += core.status.hero.hpmax / 100 }\n\nif (core.hasItem('coin')) core.status.hero.money += 12;\nflags.lhjnb = (flags.lhjnb || 0) + (core.getEnemyInfo('', null, x, y).money || 0)\n}" } + ], + "亲密度解锁": [ + { + "type": "if", + "condition": "!flag:qmd", + "true": [ + { + "type": "setValue", + "name": "flag:qmd", + "value": "true" + }, + { + "type": "function", + "function": "function(){\ncore.AllSprites()\n}" + }, + "现在亲密度已经被解锁了。状态栏将增加显示亲密度,从左到右将显示圣骑士、光明准圣子、光明圣女的亲密度。" + ] + } + ], + "神之血解锁": [ + { + "type": "if", + "condition": "(!flag:szx)", + "true": [ + { + "type": "setValue", + "name": "flag:szx", + "value": "true" + }, + { + "type": "function", + "function": "function(){\ncore.AllSprites()\n}" + }, + "现在神之血已经被解锁了。\n神之血和琼浆玉露都是按照最大生命值的一定比例回血。\n状态栏将增加显示神之血,和琼浆玉露。" + ] + } ] } } \ No newline at end of file diff --git a/project/floors/BH1.js b/project/floors/BH1.js index b97c2a5..f5987dd 100644 --- a/project/floors/BH1.js +++ b/project/floors/BH1.js @@ -148,6 +148,17 @@ main.floors.BH1= "operator": "-=", "value": "1" }, + { + "type": "if", + "condition": "!flag:qmd", + "true": [ + "圣骑士亲密度减少了1。", + { + "type": "insert", + "name": "亲密度解锁" + } + ] + }, { "type": "setBlock", "number": "N467", diff --git a/project/floors/SN10.js b/project/floors/SN10.js index 9494b6b..55a1ffe 100644 --- a/project/floors/SN10.js +++ b/project/floors/SN10.js @@ -111,6 +111,10 @@ main.floors.SN10= } ] }, + { + "type": "insert", + "name": "亲密度解锁" + }, "\t[莫析辉,hero]\b[hero]好。多谢圣女姐姐。", "\t[罗涛,N582]\b[this,7,8]圣子殿下,教皇陛下说,要你有空去骑士团看看,了解了解光明神殿的架构。", "\t[莫析辉,hero]\b[hero]嗯,我知道了,那就去看看吧!", diff --git a/project/floors/SR15.js b/project/floors/SR15.js index a81524d..509b77d 100644 --- a/project/floors/SR15.js +++ b/project/floors/SR15.js @@ -63,7 +63,12 @@ main.floors.SR15= "type": "openShop", "id": "shop4", "open": true - } + }, + { + "type": "function", + "function": "function(){\ncore.AllSprites()\n}" + }, + "解锁了黑白钥匙,状态栏将增加显示白钥匙和黑钥匙。" ] }, "changeFloor": { diff --git a/project/floors/XW1.js b/project/floors/XW1.js index 5be7dd4..610e31c 100644 --- a/project/floors/XW1.js +++ b/project/floors/XW1.js @@ -502,7 +502,8 @@ main.floors.XW1= ] ], "floorId": "SR10" - } + }, + "本层开始会有部分怪会有“黑暗”标记,黑暗标记表示这个怪和黑暗圣子融合后可以直接变成宝石,不再战斗。" ], "eachArrive": [], "parallelDo": "", diff --git a/project/functions.js b/project/functions.js index 8292860..3342233 100644 --- a/project/functions.js +++ b/project/functions.js @@ -508,6 +508,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = core.playSound('宝石') else core.playSound('获得道具'); + if (['I710', 'I711', 'I712', 'I713', 'I714'].includes(itemId) && !flags.szx) core.insertCommonEvent('神之血解锁'); if (core.material.items[itemId].cls == 'equips' || itemId == 'I715' || itemId == 'I421') core.plugin.calcEquip(); var todo = []; // 检查该点的获得道具后事件。 @@ -1259,11 +1260,13 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = core.setFlag('__fromLoad__', true); // TODO:增加自己的一些读档处理 - if (flags.version != 2) { + if (flags.version != 3) { flags._statusbrg_ = 0.6 - flags.version = 2 + flags.version = 3 core.createSpr0() - if (flags.hard == 1) core.addBuff('atk', 0.1), core.addBuff('def', 0.1), core.addBuff('mdef', 0.1) + if (flags.hard == 1) core.addBuff('atk', 0.1), core.addBuff('def', 0.1), core.addBuff('mdef', 0.1), core.getItem('coin') + if (flags.shengqishi || flags.heianshengzi || flags.guangmingshengnv || flags.zhunshengzi) core.insertCommonEvent('亲密度解锁') + core.insertCommonEvent('神之血解锁') } // 切换到对应的楼层 core.changeFloor(data.floorId, null, data.hero.loc, 0, function () { diff --git a/project/plugins.js b/project/plugins.js index 28fa977..f0043b9 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -3032,7 +3032,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.drawImage(ctx, 'backg.png', 0, 0, 448, 448, 172, 64, 448, 448); } - + else + core.drawImage(ctx, 'backw.png', 180, 160, 752, 448, 0, 0, 752, 448); + //按钮 core.drawImage(ctx, 'box1.png', 0, 0, 144, 96, 38, 384, 144, 96); @@ -3124,7 +3126,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //状态 var heroStatus = ['atk', 'mdef', 'key1'] var Scol = [140, 280, 180] - var heroStatus2 = ['def', 'mana', 'key2'] + var heroStatus2 = ['def', 'mana', core.isShopVisited('shop4') ? 'key2' : null] var Scol2 = [0, 20, 180, 0] if (core.domStyle.isVertical) { for (var i in heroStatus2) @@ -3142,6 +3144,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } //魔力 if (core.domStyle.isVertical) { + if (flags.qmd) core.mystatusbox(ctx, 'mana', null, 48 + 128, 16, 20 + (flags.heianshengzi ? 120 : 0)); core.setAlpha(ctx, 0.4) core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * hero.mana / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * hero.mana / hero.manamax, 32) @@ -3149,11 +3152,14 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32) core.drawImage(ctx, 'manaL.png', 0, 0, 128, 32, 60 - 16 + 4 + 152 + 422, 142, 128, 32) //钥匙/金币 + if (flags.szx) core.mystatusbox(ctx, 'potion', null, 48 + 256, 16, 180); + if (flags.szx) core.mystatusbox(ctx, 'potion', null, 48 + 22 + 256, 16 + 22, 300); core.mystatusbox(ctx, 'money', null, 48 + 22 + 128, 16 + 22, 180); } else { + if (flags.qmd) core.mystatusbox(ctx, 'mana', null, 80 + 152 + 422, 122, 20 + (flags.heianshengzi ? 120 : 0)); core.setAlpha(ctx, 0.4) core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * hero.mana / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * hero.mana / hero.manamax, 32) @@ -3161,9 +3167,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32) core.drawImage(ctx, 'manaL.png', 0, 0, 128, 32, 60 - 16 + 4 + 152 + 422, 142, 128, 32) //钥匙/金币 + if (flags.szx) core.mystatusbox(ctx, 'potion', null, 80 + 152 + 422, 60 * 4, 180); + if (flags.szx) core.mystatusbox(ctx, 'potion', null, 80 + 22 + 152 + 422, 22 + 60 * 4, 300); core.mystatusbox(ctx, 'money', null, 80 + 152 + 422, 60 * 5, 180); + // 难度 + core.drawTextContent(ctx, core.status.hard || "", { left: 45 + 152 + 422, top: 60 * 5.5, fontSize: 30, bold: true, color: "white" }); } core.setFilter(ctx, 'hue-rotate(' + (0) + 'deg)') @@ -3304,7 +3314,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //状态 var heroStatus = ['atk', 'mdef', 'key1'] var Scol = [140, 280, 180] - var heroStatus2 = ['def', 'mana', 'key2'] + var heroStatus2 = ['def', 'mana', core.isShopVisited('shop4') ? 'key2' : null] var Scol2 = [0, 20, 180, 0] if (core.domStyle.isVertical) { for (var i in heroStatus2) @@ -3322,30 +3332,38 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } //魔力 if (core.domStyle.isVertical) { - core.mystatusNumber(ctx, 'shengqishi', null, 48 + 128, 16, 120); - core.mystatusNumber(ctx, 'zhunshengzi', null, 48 + 128 + 20, 16, 0); - core.mystatusNumber(ctx, 'guangmingshengnv', null, 48 + 128 + 50, 16, 300); + if (flags.qmd) { + core.mystatusNumber(ctx, 'shengqishi', null, 48 + 128, 16, 120); + core.mystatusNumber(ctx, 'zhunshengzi', null, 48 + 128 + 20, 16, 0); + core.mystatusNumber(ctx, 'guangmingshengnv', null, 48 + 128 + 50, 16, 300); + } core.setAlpha(ctx, 0.4) core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * hero.mana / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * hero.mana / hero.manamax, 32) core.setAlpha(ctx, 1) core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32) core.drawImage(ctx, 'manaL.png', 0, 0, 128, 32, 60 - 16 + 4 + 152 + 422, 142, 128, 32) //钥匙/金币 + if (flags.szx) core.mystatusNumber(ctx, 'potion1', null, 48 + 256, 16, 180); + if (flags.szx) core.mystatusNumber(ctx, 'potion2', null, 48 + 256 + 22, 16 + 22, 300); core.mystatusNumber(ctx, 'money', null, 48 + 128 + 22, 16 + 22, 180); } else { - core.mystatusNumber(ctx, 'shengqishi', null, 80 + 152 + 422, 122, 120); - core.mystatusNumber(ctx, 'zhunshengzi', null, 80 + 152 + 422 + 20, 122, 0); - core.mystatusNumber(ctx, 'guangmingshengnv', null, 80 + 152 + 422 + 50, 122, 300); + if (flags.qmd) { + core.mystatusNumber(ctx, 'shengqishi', null, 80 + 152 + 422, 122, 120); + core.mystatusNumber(ctx, 'zhunshengzi', null, 80 + 152 + 422 + 20, 122, 0); + core.mystatusNumber(ctx, 'guangmingshengnv', null, 80 + 152 + 422 + 50, 122, 300); + } core.setAlpha(ctx, 0.4) core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * hero.mana / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * hero.mana / hero.manamax, 32) core.setAlpha(ctx, 1) core.drawImage(ctx, 'manaLt.png', 0, 0, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32, 60 - 16 + 4 + 152 + 422, 142, 128 * (hero.mana - (flags.skillmana || 0)) / hero.manamax, 32) core.drawImage(ctx, 'manaL.png', 0, 0, 128, 32, 60 - 16 + 4 + 152 + 422, 142, 128, 32) //钥匙/金币 + if (flags.szx) core.mystatusNumber(ctx, 'potion1', null, 80 + 152 + 422, 60 * 4, 180); + if (flags.szx) core.mystatusNumber(ctx, 'potion2', null, 80 + 22 + 152 + 422, 22 + 60 * 4, 300); core.mystatusNumber(ctx, 'money', null, 80 + 152 + 422, 60 * 5, 180); } @@ -3863,36 +3881,40 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = }; this.nextCriticals = function (enemy, number, x, y, floorId) { if (typeof enemy == 'string') enemy = core.material.enemys[enemy]; - if (core.lhjnb[enemy]) return core.lhjnb[enemy]; + if (core.lhjnb[enemy.id]) return core.lhjnb[enemy.id]; number = number || 1; - + var specialCriticals = core.enemys._nextCriticals_special(enemy, number, x, y, floorId); - if (specialCriticals != null) return core.lhjnb[enemy] = specialCriticals; + if (specialCriticals != null) return core.lhjnb[enemy.id] = specialCriticals; var info = core.enemys.getDamageInfo(enemy, null, x, y, floorId); if (info == null) { // 如果未破防... var overAtk = core.enemys._nextCriticals_overAtk(enemy, x, y, floorId); - if (overAtk == null) return core.lhjnb[enemy] = []; - if (typeof overAtk[1] == 'number') return core.lhjnb[enemy] = [[overAtk[0], -overAtk[1]]]; + if (overAtk == null) return core.lhjnb[enemy.id] = []; + if (typeof overAtk[1] == 'number') return core.lhjnb[enemy.id] = [ + [overAtk[0], -overAtk[1]] + ]; info = overAtk[1]; info.__over__ = true; info.__overAtk__ = overAtk[0]; } - - if (typeof info == 'number') return core.lhjnb[enemy] = [[0, 0]]; + + if (typeof info == 'number') return core.lhjnb[enemy.id] = [ + [0, 0] + ]; if (info.damage <= 0 && !core.flags.enableNegativeDamage) { - return core.lhjnb[enemy] = [[info.__overAtk__ || 0, 0]]; + return core.lhjnb[enemy.id] = [ + [info.__overAtk__ || 0, 0] + ]; } - + if (core.flags.useLoop) { if (core.status.hero.atk <= (main.criticalUseLoop || 1)) { - return core.lhjnb[enemy] = core.enemys._nextCriticals_useLoop(enemy, info, number, x, y, floorId); + return core.lhjnb[enemy.id] = core.enemys._nextCriticals_useLoop(enemy, info, number, x, y, floorId); + } else { + return core.lhjnb[enemy.id] = core.enemys._nextCriticals_useBinarySearch(enemy, info, number, x, y, floorId); } - else { - return core.lhjnb[enemy] = core.enemys._nextCriticals_useBinarySearch(enemy, info, number, x, y, floorId); - } - } - else { - return core.lhjnb[enemy] = core.enemys._nextCriticals_useTurn(enemy, info, number, x, y, floorId); + } else { + return core.lhjnb[enemy.id] = core.enemys._nextCriticals_useTurn(enemy, info, number, x, y, floorId); } } core.control._updateDamage_damage = function (floorId, onMap) { @@ -3912,7 +3934,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = return; } } - + if (!block.disable && block.event.cls.indexOf('enemy') == 0 && block.event.displayDamage !== false) { if (core.flags.displayCritical) {