From f4f8dc6997da9284b941877a6b1f6270c215737e Mon Sep 17 00:00:00 2001 From: Sunumbrella <1571157272@qq.com> Date: Mon, 17 Nov 2025 22:35:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E7=AA=81=EF=BC=9A=E7=B1=B3=E7=B1=B3?= =?UTF-8?q?=20=E8=8A=AC=E5=A6=AE=20=E9=98=BF=E5=85=B0=E5=A8=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/data.js | 4 +- project/plugins.js | 102 +++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 96 insertions(+), 10 deletions(-) diff --git a/project/data.js b/project/data.js index 9da8a7a..b3b22bb 100644 --- a/project/data.js +++ b/project/data.js @@ -1208,7 +1208,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "rollcard": 0, "FFWF": 0, "Trident": 0, - "DreamlinerModel": 0 + "DreamlinerModel": 0, + "totalCost": 0, + "eventTimes": 0 }, "followers": [], "steps": 0, diff --git a/project/plugins.js b/project/plugins.js index 066c33d..4498201 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -11609,6 +11609,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = return }, PotentialTime: [], + PotentialText: "" //潜能激发文本描述 /*潜能激发效果时机: * drawCard为抽牌后 * cardAfter为出牌后 @@ -11620,7 +11621,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = * 可以存在多个时机 * 如果一个角色没有潜能激发,直接return * */ - PotentialText: "" //潜能激发文本描述 } Character.米米 = { name: "米米", @@ -11703,7 +11703,30 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } } }, - PassiveTime: ["cardAfter"] + PassiveTime: ["cardAfter"], + Potential: function () { + /* 累计 Cost,如果总 Cost 大于 triggerCost 抽取卡牌 */ + const triggerCost = 60; + if (flags.totalCost >= triggerCost) { + // 抽取筹码 + flags.totalCost -= triggerCost; + core.drawToken(); + } + return + }, + PotentialTime: ["cardAfter"], + PotentialText: "每累计打出 60 Cost 的卡牌获得一个筹码" //潜能激发文本描述 + /*潜能激发效果时机: + * drawCard为抽牌后 + * cardAfter为出牌后 + * Active为使用主动技能后 + * Event为事件卡触发后(约等于每层楼触发一次) + * afterBattle为战后 + * firstArrive为首次抵达新楼层 + * 特别提醒:战斗过程中实现的潜能激发不能写时机,需要自己去战斗脚本根据角色和潜能开关编写代码 + * 可以存在多个时机 + * 如果一个角色没有潜能激发,直接return + * */ } Character.帕露南 = { name: "帕露南", @@ -11784,7 +11807,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.setShopVisited("shop4", true) } }, - PassiveTime: [] + PassiveTime: [], + Potential: function () { + return + }, + PotentialTime: [], + PotentialText: "" //潜能激发文本描述 } Character.芬妮 = { name: "芬妮", @@ -11852,7 +11880,17 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = Passive: function () { flags.star.level++ }, - PassiveTime: ["Event"] + PassiveTime: ["Event"], + Potential: function () { + const triggerEventTimes = 10; + if (++flags.eventTimes === 10) { + flags.eventTimes = 0; + hero.ActiveCD = 0; + } + return + }, + PotentialTime: ["Event"], + PotentialText: "触发 10 次事件卡之后,重置主动技能 CD" //潜能激发文本描述 } Character.阿兰娜 = { name: "阿兰娜", @@ -11914,11 +11952,45 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = hero.ActiveCD = hero.ActiveSkillCD core.drawTip("看不见我看不见我") core.playSound("Alana.mp3") - core.afterSkill() + if (flags.Potential) { + core.plugin.Character.阿兰娜.Potential() + } else { + core.afterSkill() + } }, PassiveSkill: `战后若未受到伤害,\\i[def]+\\i[stars],若受到伤害则失去伤害值的\\i[def]\n通过此技能获得的\\i[def]最高为80倍\\i[stars],最低为0`, Passive: function () {}, - PassiveTime: [] + PassiveTime: [], + Potential: function () { + let enemys = [] + const floorId = core.status.floorId + for (let i = 0; i < 13; i++) { + for (let j = 0; j < 13; j++) { + if (core.getBlockCls(i, j) === "enemys") enemys.push([i, j]) + } + } + let todo = [] + enemys.forEach(v => { + const id = core.getBlockId(v[0], v[1]) + const z = core.material.enemys[id] + if (core.getEnemyInfo(id, void 0, v[0], v[1]).def <= hero.def + flags.CharacterDEF) { + if (flags.CharacterDEF < 80 * flags.ratio) flags.CharacterDEF = Math.min(flags.CharacterDEF + flags.ratio, 80 * flags.ratio) + let money = core.getEnemyInfo(id, void 0, v[0], v[1]).money + if (core.hasItem('BankcardU2')) money *= 2; // 银行卡-用不完 + if (core.hasItem('coin')) money *= 2; // 幸运金币 + core.status.hero.money += money; + core.push(todo, z.afterBattle); + core.push(todo, core.floors[floorId].afterBattle[v[0] + "," + v[1]]) + delete((flags.enemyOnPoint || {})[core.status.floorId] || {})[v[0] + "," + v[1]]; + core.removeBlock(v[0], v[1]); + } + }) + if (todo.length > 0) core.insertAction(todo, void 0, void 0, core.afterSkill); + else core.afterSkill() + return + }, + PotentialTime: [], + PotentialText: "主动技能新增效果:本楼层中防御小于等于角色防御的怪物将被斩杀" //潜能激发文本描述 } Character.小町 = { name: "小町", @@ -14345,7 +14417,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.unlockControl() } cardcostdown(cost) { //出牌费用计算 - if (flags.MapStatus?.Choose === "Souri") return + flags.totalCost += cost; + if (flags.MapStatus?.Choose === "Souri") { + return + } const k = flags.komachiskill ?? 0 let c = core.hasItem("AncientStaff2") ? Math.max(0, cost - 1) : cost if (k > c) flags.komachiskill = (flags.komachiskill ?? 0) - c @@ -14353,7 +14428,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = delete flags.komachiskill c -= k hero.cost -= c + } + + if (hero.name === "Z3000") { hero.ActiveCD -= c if (hero.ActiveCD < 0) hero.ActiveCD = 0 @@ -14440,7 +14518,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //角色技能处理 const Character = core.plugin.Character[hero.name] if (Character && Character.PassiveTime.includes("cardAfter")) { - Character.Passive() + Character.Passive(); + } + if (Character && Character.PotentialTime.includes("cardAfter") && flags.Potential) { + Character.Potential(); } core.updateStatusBar() core.plugin.card.close() @@ -15108,7 +15189,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = afterEvent(inAction) { const Character = core.plugin.Character[hero.name] if (Character && Character.PassiveTime.includes("Event")) { - Character.Passive() + Character.Passive(); + } + if (Character && Character.PotentialTime.includes("Event") && flags.Potential) { + Character.Potential(); } core.updateStatusBar() if (!inAction) core.closePanel()