From 6ca06a4a0fa707db10be06a3d79f3d8a4032b1d1 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 12:35:37 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E3=80=90=E8=A7=82=E6=BD=AE=E3=80=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BD=93=E5=89=8D=E9=98=B6=E6=AE=B5=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/xinghuoliaoyuan/skill.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/character/xinghuoliaoyuan/skill.js b/character/xinghuoliaoyuan/skill.js index 80021689b..854741d6f 100644 --- a/character/xinghuoliaoyuan/skill.js +++ b/character/xinghuoliaoyuan/skill.js @@ -1238,7 +1238,10 @@ const skills = { aiOrder: function (player, card, num) { if (typeof card.number != "number") return; var history = player.getHistory("useCard", function (evt) { - return evt.isPhaseUsing(); + return ( + evt.isPhaseUsing() && + evt.getParent("phaseUse") === _status.event.getParent("phaseUse") + ); }); if (history.length == 0) return num + 10 * (14 - card.number); var num = get.number(history[0].card); @@ -1253,7 +1256,10 @@ const skills = { }, filter: function (event, player) { var history = player.getHistory("useCard", function (evt) { - return evt.isPhaseUsing(); + return ( + evt.isPhaseUsing() && + evt.getParent("phaseUse") === event.getParent("phaseUse") + ); }); if (history.length < 2) return false; var num = get.number(history[0].card); @@ -1291,7 +1297,10 @@ const skills = { aiOrder: function (player, card, num) { if (typeof card.number != "number") return; var history = player.getHistory("useCard", function (evt) { - return evt.isPhaseUsing(); + return ( + evt.isPhaseUsing() && + evt.getParent("phaseUse") === _status.event.getParent("phaseUse") + ); }); if (history.length == 0) return num + 10 * card.number; var num = get.number(history[0].card); @@ -1306,7 +1315,10 @@ const skills = { }, filter: function (event, player) { var history = player.getHistory("useCard", function (evt) { - return evt.isPhaseUsing(); + return ( + evt.isPhaseUsing() && + evt.getParent("phaseUse") === event.getParent("phaseUse") + ); }); if (history.length < 2) return false; var num = get.number(history[0].card); From c0dd5f9267a8a49ca0e4df5050a8d1f5f47105c0 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 12:42:37 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E3=80=90=E5=AF=B9=E5=86=B3=E3=80=91?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=BA=E5=BD=93=E5=89=8D=E9=98=B6=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/diy/skill.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/diy/skill.js b/character/diy/skill.js index ecaef5e48..87d5432e7 100644 --- a/character/diy/skill.js +++ b/character/diy/skill.js @@ -5279,7 +5279,7 @@ const skills = { .set("logSkill", "nsduijue"); "step 1"; if (result.bool) { - player.addTempSkill("nsduijue_use"); + player.addTempSkill("nsduijue_use", "phaseUseAfter"); player.storage.nsduijue_use = get.color(result.cards[0]); } }, From 2650c3dd456afbd5d7cf7d61bbfba07971f6bba6 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 12:49:47 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E3=80=90=E8=A7=82=E7=81=AB=E3=80=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BD=93=E5=89=8D=E5=87=BA=E7=89=8C=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/jsrg/skill.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/character/jsrg/skill.js b/character/jsrg/skill.js index 36a85cd8e..8f40b0e3b 100644 --- a/character/jsrg/skill.js +++ b/character/jsrg/skill.js @@ -6654,7 +6654,12 @@ const skills = { group: "jsrgguanhuo_viewas", content: function () { "step 0"; - var count = player.getHistory("useSkill", evt => evt.skill == "jsrgguanhuo_viewas").length; + var count = player.getHistory("useSkill", evt => { + return ( + evt.skill == "jsrgguanhuo_viewas" && + evt.getParent("phaseUse") === trigger.getParent("phaseUse") + ); + }).length; if (count == 1) { player.addTempSkill("jsrgguanhuo_ex", "phaseUseAfter"); player.addMark("jsrgguanhuo_ex", 1, false); @@ -6666,8 +6671,18 @@ const skills = { ai: { effect: { player: function (card, player) { - if (_status.event.getParent().skill == "jsrgguanhuo_viewas" && player.getHistory("useSkill", evt => evt.skill == "jsrgguanhuo_viewas").length == 1) return "zeroplayertarget"; - if (_status.event.type == "phase" && _status.event.skill == "jsrgguanhuo_viewas" && player.getHistory("useSkill", evt => evt.skill == "jsrgguanhuo_viewas").length > 1 && player.countCards("h") <= 3) return [0, 0]; + if (_status.event.getParent().skill == "jsrgguanhuo_viewas" && player.getHistory("useSkill", evt => { + return ( + evt.skill == "jsrgguanhuo_viewas" && + evt.getParent("phaseUse") === _status.event.getParent("phaseUse") + ); + }).length == 1) return "zeroplayertarget"; + if (_status.event.type == "phase" && _status.event.skill == "jsrgguanhuo_viewas" && player.getHistory("useSkill", evt => { + return ( + evt.skill == "jsrgguanhuo_viewas" && + evt.getParent("phaseUse") === _status.event.getParent("phaseUse") + ); + }).length > 1 && player.countCards("h") <= 3) return [0, 0]; }, }, }, From 6bf8ca6388649a437b5bac9a9fdc97f2c900b5af Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 12:57:46 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E3=80=90=E5=85=BB=E5=90=8D=E3=80=91?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=AD=A4=E9=98=B6=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/jsrg/skill.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/character/jsrg/skill.js b/character/jsrg/skill.js index 8f40b0e3b..66454e2bf 100644 --- a/character/jsrg/skill.js +++ b/character/jsrg/skill.js @@ -3647,7 +3647,7 @@ const skills = { }, content: function () { "step 0"; - event.num = 0; + target.addTempSkill("jsrgyangming_lose", "phaseUseAfter"); "step 1"; player.chooseToCompare(target).set( "small", @@ -3667,9 +3667,11 @@ const skills = { .chooseBool("是否与其重复此拼点流程?") .set("ai", () => get.event("bool")) .set("bool", get.effect(target, "jsrgyangming", player, player) > 0); - event.num++; + game.broadcastAll((target)=>{ + target.storage.jsrgyangming_lose++; + }, target); } else { - if (event.num) target.draw(event.num); + if (target.storage.jsrgyangming_lose) target.draw(target.storage.jsrgyangming_lose); player.recover(); event.finish(); } @@ -3700,6 +3702,15 @@ const skills = { }, }, }, + subSkill: { + lose: { + init(player, skill) { + player.storage[skill] = 0; + }, + onremove: true, + charlotte: true + } + } }, //韩遂 jsrgniluan: { From fe45e83c403b88fac32aee5b4e1dee1df498d96b Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 13:03:03 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E5=BC=95?= =?UTF-8?q?=E8=A3=BE=E3=80=91=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/sp2/translate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/sp2/translate.js b/character/sp2/translate.js index 338ab387f..980525913 100644 --- a/character/sp2/translate.js +++ b/character/sp2/translate.js @@ -110,7 +110,7 @@ const translates = { xpchijie_info: "每回合每项各限一次。1.当其他角色使用的牌对你结算结束后,你可以令此牌对所有后续目标无效。2.其他角色使用的牌结算完成时,若你是此牌的目标之一且此牌未造成过伤害,则你可以获得此牌对应的所有实体牌。", xpchijie2: "持节", yinju: "引裾", - yinju_info: "限定技,出牌阶段,你可以选择一名其他角色。若如此做,当你于此阶段内使用牌指定其为目标后,你与其各摸一张牌;当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。", + yinju_info: "限定技,出牌阶段,你可以选择一名其他角色。若如此做,直到回合结束:1.当你使用牌指定其为目标后,你与其各摸一张牌;2.当你即将对其造成伤害时,防止此伤害,然后其回复等量的体力。", yinju2: "引裾", spjiedao: "截刀", From b74516cfd4d0dd14e273e9045bc2bde30e7d1769 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 13:05:00 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E9=87=8D?= =?UTF-8?q?=E6=8C=AF=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/key/skill.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/key/skill.js b/character/key/skill.js index c2fa0a8be..27248eb1b 100644 --- a/character/key/skill.js +++ b/character/key/skill.js @@ -8694,7 +8694,7 @@ const skills = { }); } } else { - player.addTempSkill("zishou2", "phaseEnd"); + player.addTempSkill("zishou2", "phaseUseAfter"); } }, ai: { expose: 0.2 }, From 387c59b0ee5349b8123aaaaa1c889f24c5781214 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 13:07:05 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E9=93=A4?= =?UTF-8?q?=E9=99=A9=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/key/skill.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/key/skill.js b/character/key/skill.js index 27248eb1b..db16495e4 100644 --- a/character/key/skill.js +++ b/character/key/skill.js @@ -7074,7 +7074,7 @@ const skills = { let num = 1 + event.cost_data; await player.draw(num).set("gaintag", ["shiorimiyuki_tingxian"]); await player.recover(); - player.addTempSkill("shiorimiyuki_tingxian2"); + player.addTempSkill("shiorimiyuki_tingxian2", "phaseUseAfter"); }, group: "shiorimiyuki_tingxian1", }, From 535284a94381946f2b36227e8d8ae6ae77403e45 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 13:11:01 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E8=BF=87?= =?UTF-8?q?=E8=BD=BD=E3=80=91=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/hearth.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/character/hearth.js b/character/hearth.js index 112dfdfe4..9b89746eb 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -6837,7 +6837,7 @@ game.import("character", function () { content() { var num = (get.is.altered("guozai") ? 3 : 4) - player.countCards("h"); player.draw(num); - player.addSkill("guozai2"); + player.addTempSkill("guozai2", "phaseUseAfter"); player.storage.guozai2 += num; game.addVideo("storage", player, ["guozai2", player.storage.guozai2]); }, @@ -6851,14 +6851,13 @@ game.import("character", function () { guozai2: { mark: true, intro: { - content: "结束阶段需弃置&张牌", + content: "当前阶段结束时需弃置&张牌", }, trigger: { player: "phaseUseEnd" }, forced: true, content() { player.chooseToDiscard("he", true, player.storage.guozai2); player.storage.guozai2 = 0; - player.removeSkill("guozai2"); }, }, guozaix: { @@ -6873,7 +6872,7 @@ game.import("character", function () { content() { var num = 4 - player.countCards("h"); player.draw(num); - player.addSkill("guozaix2"); + player.addTempSkill("guozaix2", "phaseUseAfter"); player.storage.guozaix2 += num; game.addVideo("storage", player, ["guozaix2", player.storage.guozaix2]); }, @@ -6887,14 +6886,13 @@ game.import("character", function () { guozaix2: { mark: true, intro: { - content: "结束阶段需弃置&张牌", + content: "当前阶段结束时需弃置&张牌", }, trigger: { player: "phaseUseEnd" }, forced: true, content() { player.chooseToDiscard("he", true, player.storage.guozaix2); player.storage.guozaix2 = 0; - player.removeSkill("guozaix2"); }, }, hanshuang: { From 0796ce86c7e23d7aa2a46ac5254597888dd14455 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 13:29:07 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E6=B8=90?= =?UTF-8?q?=E8=90=A5=E3=80=91=E5=90=8C=E5=9B=9E=E5=90=88=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E5=87=BA=E7=89=8C=E9=98=B6=E6=AE=B5=E4=BB=8D=E7=84=B6=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E2=80=9C=E8=BF=9E=E8=90=A5=E2=80=9D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/hearth.js | 6 ++++-- character/yijiang/skill.js | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/character/hearth.js b/character/hearth.js index 9b89746eb..5563603d3 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -6837,7 +6837,7 @@ game.import("character", function () { content() { var num = (get.is.altered("guozai") ? 3 : 4) - player.countCards("h"); player.draw(num); - player.addTempSkill("guozai2", "phaseUseAfter"); + player.addSkill("guozai2"); player.storage.guozai2 += num; game.addVideo("storage", player, ["guozai2", player.storage.guozai2]); }, @@ -6858,6 +6858,7 @@ game.import("character", function () { content() { player.chooseToDiscard("he", true, player.storage.guozai2); player.storage.guozai2 = 0; + player.removeSkill("guozai2"); }, }, guozaix: { @@ -6872,7 +6873,7 @@ game.import("character", function () { content() { var num = 4 - player.countCards("h"); player.draw(num); - player.addTempSkill("guozaix2", "phaseUseAfter"); + player.addSkill("guozaix2"); player.storage.guozaix2 += num; game.addVideo("storage", player, ["guozaix2", player.storage.guozaix2]); }, @@ -6893,6 +6894,7 @@ game.import("character", function () { content() { player.chooseToDiscard("he", true, player.storage.guozaix2); player.storage.guozaix2 = 0; + player.removeSkill("guozaix2"); }, }, hanshuang: { diff --git a/character/yijiang/skill.js b/character/yijiang/skill.js index 5ddfcc4e3..9454cef17 100644 --- a/character/yijiang/skill.js +++ b/character/yijiang/skill.js @@ -14447,7 +14447,8 @@ const skills = { aiOrder: function (player, card, num) { if (typeof card == "object" && player.isPhaseUsing()) { var evt = player.getLastUsed(); - if (evt && evt.card && ((get.suit(evt.card) && get.suit(evt.card) == get.suit(card)) || (evt.card.number && evt.card.number == get.number(card)))) { + if (!evt || !evt.card || evt.getParent("phaseUse") !== _status.event.getParent("phaseUse")) return num; + if ((get.suit(evt.card) && get.suit(evt.card) == get.suit(card)) || (evt.card.number && evt.card.number == get.number(card))) { return num + 10; } } @@ -14460,7 +14461,7 @@ const skills = { if (!evt || !evt.card) return false; if (!player.isPhaseUsing()) return false; var evt2 = evt.getParent("phaseUse"); - if (!evt2 || evt2.name != "phaseUse" || evt2.player != player) return false; + if (!evt2 || evt2.name != "phaseUse" || evt2 !== event.getParent("phaseUse")) return false; return (get.suit(evt.card) != "none" && get.suit(evt.card) == get.suit(event.card)) || (typeof get.number(evt.card, false) == "number" && get.number(evt.card, false) == get.number(event.card)); }, content: function () { From 305028b812ccaa53cf1d42903f00dddd09279726 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 13:49:25 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E5=BC=BA?= =?UTF-8?q?=E8=A2=AD=E3=80=91=E9=98=B6=E6=AE=B5=E9=99=90=E5=88=B6=E5=AE=9E?= =?UTF-8?q?=E4=B8=BA=E5=9B=9E=E5=90=88=E9=99=90=E5=88=B6=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/refresh/skill.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/refresh/skill.js b/character/refresh/skill.js index cb2901f96..0059bb7f3 100644 --- a/character/refresh/skill.js +++ b/character/refresh/skill.js @@ -11913,7 +11913,7 @@ const skills = { player.loseHp(); } "step 1"; - target.addTempSkill("reqiangxi_off"); + target.addTempSkill("reqiangxi_off", "phaseUseAfter"); target.damage("nocard"); }, check: function (card) { From 6d7e93d922623d72855b4fbb282ea4aaaf725e42 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 14:10:52 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E3=80=90=E6=89=BF=E8=B5=8F=E3=80=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=AC=E9=98=B6=E6=AE=B5=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/sp/skill.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/sp/skill.js b/character/sp/skill.js index 3915d7fba..6c1220902 100644 --- a/character/sp/skill.js +++ b/character/sp/skill.js @@ -14611,7 +14611,7 @@ const skills = { if (!phsu || phsu.player != player) return false; if ( player.getHistory("gain", function (evt) { - return evt.getParent().name == "chengshang"; + return evt.getParent().name == "chengshang" && phsu === evt.getParent("phaseUse"); }).length ) return false; From c9ad4ca585eed3d84832e0effa8ce09c599b6ca7 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 14:17:28 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E7=A7=89?= =?UTF-8?q?=E8=8A=82=E3=80=91=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/huicui/translate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/huicui/translate.js b/character/huicui/translate.js index a93a50c0c..ef2ba3a87 100644 --- a/character/huicui/translate.js +++ b/character/huicui/translate.js @@ -167,7 +167,7 @@ const translates = { weimeng_info: "出牌阶段限一次,你可以获得一名其他角色的至多X张手牌,然后交给其等量的牌(X为你的体力值)。若你给出的牌点数之和:大于得到的牌,则你摸一张牌;小于得到的牌,弃置该角色区域内的一张牌。", mamidi: "马日磾", bingjie: "秉节", - bingjie_info: "出牌阶段开始时,你可减1点体力上限,然后当你于本阶段内使用【杀】或普通锦囊牌指定其他角色为目标后,其弃置一张牌。若其弃置的牌与你使用的牌颜色相同,其无法响应此牌。", + bingjie_info: "出牌阶段开始时,你可减1点体力上限,然后当你本回合使用【杀】或普通锦囊牌指定其他角色为目标后,其弃置一张牌。若其弃置的牌与你使用的牌颜色相同,其无法响应此牌。", zhengding: "正订", zhengding_info: "锁定技。当你于回合外使用或打出牌响应其他角色使用的牌时,若这两张牌颜色相同,则你加1点体力上限并回复1点体力。", dc_jiben: "吉本", From 3a2bc61a89289ffd8c77a2c07660b48bf60b5c7f Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 14:32:52 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E3=80=90=E4=B9=B1=E6=8E=A0=E3=80=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BD=93=E5=89=8D=E9=98=B6=E6=AE=B5=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/tw/skill.js | 1 + 1 file changed, 1 insertion(+) diff --git a/character/tw/skill.js b/character/tw/skill.js index 3c1d14aac..6c0657125 100644 --- a/character/tw/skill.js +++ b/character/tw/skill.js @@ -6257,6 +6257,7 @@ const skills = { var history = current.getHistory("useCard"); if (!history.length) return false; for (var evt of history) { + if (evt.getParent("phaseUse") !== event) return false; if (evt.card && evt.card.name == "shunshou") { targets.addArray(evt.targets); } From 15b0f30fcfb89e72f8d99fc05a5b2f8039c72791 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 14:33:36 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E9=BE=99?= =?UTF-8?q?=E4=B8=B4=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/jsrg/skill.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/character/jsrg/skill.js b/character/jsrg/skill.js index 66454e2bf..cd593fcec 100644 --- a/character/jsrg/skill.js +++ b/character/jsrg/skill.js @@ -619,7 +619,7 @@ const skills = { }, async content(event, trigger, player) { player.line(trigger.player); - trigger.player.addTempSkill("jsrglonglin_forbid"); + trigger.player.addTempSkill("jsrglonglin_forbid", "phaseUseAfter"); }, }, forbid: { From ac3346ac47ea15a752d103d6bbe6aec6d2f57507 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 14:44:20 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E8=B6=8A?= =?UTF-8?q?=E8=A1=8C=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/tw/skill.js | 3 +-- character/xianjian.js | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/character/tw/skill.js b/character/tw/skill.js index 6c0657125..666efdc6d 100644 --- a/character/tw/skill.js +++ b/character/tw/skill.js @@ -6257,8 +6257,7 @@ const skills = { var history = current.getHistory("useCard"); if (!history.length) return false; for (var evt of history) { - if (evt.getParent("phaseUse") !== event) return false; - if (evt.card && evt.card.name == "shunshou") { + if (evt.card && evt.card.name == "shunshou" && evt.getParent("phaseUse") === event.getParent("phaseUse")) { targets.addArray(evt.targets); } } diff --git a/character/xianjian.js b/character/xianjian.js index 0df2f9431..8803c1eae 100644 --- a/character/xianjian.js +++ b/character/xianjian.js @@ -308,9 +308,9 @@ game.import("character", function () { }, content: function () { player.storage.yuexing2 = target; - player.addTempSkill("yuexing2"); + player.addTempSkill("yuexing2", "phaseUseAfter"); target.storage.yuexing2 = player; - target.addTempSkill("yuexing2"); + target.addTempSkill("yuexing2", "phaseUseAfter"); }, ai: { order: function () { From 4ca84722ef49148cf14a1efa1fca15f1189e7a4e Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 18:04:48 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/collab/skill.js | 2 +- character/jsrg/skill.js | 3 +++ character/sp2/skill.js | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/character/collab/skill.js b/character/collab/skill.js index d477ca7a4..cb5aba437 100644 --- a/character/collab/skill.js +++ b/character/collab/skill.js @@ -743,7 +743,7 @@ const skills = { player.addMark("dcbianzhuang", 1, false); if (player.countMark("dcbianzhuang") > 2) { player.storage.dcbianzhuang_inited = true; - player.reinitCharacter("zhutiexiong", "wu_zhutiexiong"); + player.reinitCharacter(get.character(player.name2, 3).includes("dcbianzhuang") ? player.name2 : player.name1, "wu_zhutiexiong"); } } }, diff --git a/character/jsrg/skill.js b/character/jsrg/skill.js index cd593fcec..884ef38e4 100644 --- a/character/jsrg/skill.js +++ b/character/jsrg/skill.js @@ -6025,6 +6025,9 @@ const skills = { lib.skill.sbyingmen.addVisitors(characters, player); game.delayx(); }, + ai: { + combo: "sbpingjian" + }, group: "sbyingmen_reload", subSkill: { reload: { diff --git a/character/sp2/skill.js b/character/sp2/skill.js index fd632a408..35d07fde3 100644 --- a/character/sp2/skill.js +++ b/character/sp2/skill.js @@ -3338,6 +3338,9 @@ const skills = { if (event.num > 0) event.redo(); } }, + ai: { + halfneg: true + }, }, xiongrao: { audio: 2, From bfb0cc581ed4612a7f3c6cc6ec11f1bd075aebc1 Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 18:39:15 +0800 Subject: [PATCH 17/18] =?UTF-8?q?=E5=88=86=E7=A6=BB=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=81=AF=E5=85=B5=EF=BC=8C=E8=B0=83=E6=95=B4=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=8B=A5=E5=B9=B2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/huicui/skill.js | 53 ++++++++++------------------------- character/huicui/translate.js | 3 +- mode/guozhan.js | 47 +++++++++++++++++++++++++++---- 3 files changed, 57 insertions(+), 46 deletions(-) diff --git a/character/huicui/skill.js b/character/huicui/skill.js index 840ee7514..00851c450 100644 --- a/character/huicui/skill.js +++ b/character/huicui/skill.js @@ -12422,19 +12422,14 @@ const skills = { audio: 2, trigger: { global: "useCardToPlayered" }, filter: function (event, player) { - if (player == event.player || event.targets.length != 1 || event.player.countCards("h") >= event.player.hp) return false; + if (player == event.player || event.targets.length != 1) return false; var bool = function (card) { return (card.name == "sha" || get.type(card, false) == "trick") && get.color(card, false) == "black"; }; if (!bool(event.card)) return false; var evt = event.getParent("phaseUse"); if (evt.player != event.player) return false; - return ( - get.mode() != "guozhan" || - event.player.getHistory("useCard", function (evtx) { - return bool(evtx.card) && evtx.getParent("phaseUse") == evt; - })[0] == event.getParent() - ); + return true; }, logTarget: "player", check: function (event, player) { @@ -12452,42 +12447,24 @@ const skills = { content: function () { "step 0"; var num = Math.min(5, trigger.player.hp) - trigger.player.countCards("h"); - if (num > 0) trigger.player.draw(num); - "step 1"; - trigger.player.addTempSkill("xibing2"); - player._xibing = true; - if (get.mode() != "guozhan" || player.isUnseen(2) || trigger.player.isUnseen(2)) event.finish(); - "step 2"; - var target = trigger.player; - var players1 = [player.name1, player.name2]; - var players2 = [target.name1, target.name2]; - player - .chooseButton(2, ["是否暗置自己和" + get.translation(target) + "的各一张武将牌?", '
你的武将牌
', [players1, "character"], '
' + get.translation(target) + "的武将牌
", [players2, "character"]]) - .set("players", players1) - .set("complexSelect", true) - .set("filterButton", function (button) { - return !get.is.jun(button.link) && (ui.selected.buttons.length == 0) == _status.event.players.includes(button.link); - }); - "step 3"; - if (result.bool) { - var target = trigger.player; - player.hideCharacter(player.name1 == result.links[0] ? 0 : 1); - target.hideCharacter(target.name1 == result.links[1] ? 0 : 1); - player.addTempSkill("xibing3"); - target.addTempSkill("xibing3"); + if (num > 0) { + trigger.player.draw(num); + trigger.player.addTempSkill("xibing_banned"); } }, - }, - xibing2: { - mod: { - cardEnabled2: function (card) { - if (get.position(card) == "h") return false; + subSkill:{ + banned: { + mod: { + cardEnabled(card) { + return false; + }, + cardSavable(card) { + return false; + }, + }, }, }, }, - xibing3: { - ai: { nomingzhi: true }, - }, //小虎 remeibu: { audio: "meibu", diff --git a/character/huicui/translate.js b/character/huicui/translate.js index ef2ba3a87..efc53f5a7 100644 --- a/character/huicui/translate.js +++ b/character/huicui/translate.js @@ -100,8 +100,7 @@ const translates = { spwanggui: "望归", spwanggui_info: "①当你受到伤害后,你可以摸一张牌,或和一名势力相同的其他角色各摸一张牌;②每回合限一次,当你造成伤害后,你可以对一名与你势力不同的角色造成1点伤害。", xibing: "息兵", - xibing_info: "当一名其他角色在其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸至五张)且本回合不能再使用手牌。", - xibing_info_guozhan: "当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸至五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。", + xibing_info: "每回合限一次,当其他角色于其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸至五张)。若其因此摸牌,其本回合不能再使用牌。", luyusheng: "陆郁生", zhente: "贞特", zhente2: "贞特", diff --git a/mode/guozhan.js b/mode/guozhan.js index 52a93f436..31eb42ca4 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -2501,14 +2501,37 @@ game.import("mode", function (lib, game, ui, get, ai, _status) { }, fakexibing: { audio: "xibing", - inherit: "xibing", + filter: function (event, player) { + if (player == event.player || event.targets.length != 1 || event.player.countCards("h") >= event.player.hp) return false; + var bool = function (card) { + return (card.name == "sha" || get.type(card, false) == "trick") && get.color(card, false) == "black"; + }; + if (!bool(event.card)) return false; + var evt = event.getParent("phaseUse"); + if (evt.player != event.player) return false; + return event.player.getHistory("useCard", function (evtx) { + return bool(evtx.card) && evtx.getParent("phaseUse") == evt; + })[0] == event.getParent(); + }, + logTarget: "player", + check: function (event, player) { + var target = event.player; + var att = get.attitude(player, target); + var num2 = Math.min(5, target.hp) - target.countCards("h"); + if (num2 <= 0) return att <= 0; + var num = target.countCards("h", function (card) { + return target.hasValueTarget(card, null, true); + }); + if (!num) return att > 0; + return (num - num2) * att < 0; + }, + preHidden: true, content() { "step 0"; var num = trigger.player.hp - trigger.player.countCards("h"); if (num > 0) trigger.player.draw(num); "step 1"; - trigger.player.addTempSkill("xibing2"); - player._xibing = true; + trigger.player.addTempSkill("fakexibing_banned"); if (get.mode() != "guozhan" || player.isUnseen(2) || trigger.player.isUnseen(2)) event.finish(); "step 2"; @@ -2537,10 +2560,22 @@ game.import("mode", function (lib, game, ui, get, ai, _status) { var target = trigger.player; player.hideCharacter(player.name1 == result.links[0] ? 0 : 1); target.hideCharacter(target.name1 == result.links[1] ? 0 : 1); - player.addTempSkill("xibing3"); - target.addTempSkill("xibing3"); + player.addTempSkill("fakexibing_nomingzhi"); + target.addTempSkill("fakexibing_nomingzhi"); } }, + subSkill: { + banned: { + mod: { + cardEnabled2: function (card) { + if (get.position(card) == "h") return false; + }, + }, + }, + nomingzhi: { + ai: { nomingzhi: true }, + }, + }, }, fakechengshang: { audio: "chengshang", @@ -23796,7 +23831,7 @@ game.import("mode", function (lib, game, ui, get, ai, _status) { "副将技。①此武将牌计算体力上限时减少半个阴阳鱼。②结束阶段,你可以弃置一张非基本牌并选择一名友方角色,令其选择摸两张牌或回复1点体力,然后其可以变更副将。", fakexibing: "息兵", fakexibing_info: - "当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至体力值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。", + "手牌数小于体力值的其他角色于其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至体力值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。", fakechengshang: "承赏", fakechengshang_info: "出牌阶段限一次,当你使用存在花色和点数且指定了其他势力角色为目标的牌结算完毕后,若你未因此牌造成过伤害,则你可以摸一张牌,然后本阶段你可以将一张手牌当作初始游戏牌堆中与此牌花色和点数相同的另一张基本牌或普通锦囊牌使用一次。", From 27560c8108da1aa90b876c905d5bbf909f226bcb Mon Sep 17 00:00:00 2001 From: 157 <3619242020@qq.com> Date: Mon, 6 May 2024 18:44:59 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E3=80=90=E6=AD=A2?= =?UTF-8?q?=E6=81=AF=E3=80=91=E4=B8=8D=E8=83=BD=E6=89=93=E5=87=BA=E7=89=8C?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- character/mobile/skill.js | 3 --- character/sp/skill.js | 3 --- 2 files changed, 6 deletions(-) diff --git a/character/mobile/skill.js b/character/mobile/skill.js index 087ba41fe..d0851a72a 100644 --- a/character/mobile/skill.js +++ b/character/mobile/skill.js @@ -1869,9 +1869,6 @@ const skills = { cardUsable: function (card, player) { if (player.countMark("mbzhixi") >= player.hp) return false; }, - cardRespondable: function (card, player) { - if (player.countMark("mbzhixi") >= player.hp) return false; - }, cardSavable: function (card, player) { if (player.countMark("mbzhixi") >= player.hp) return false; }, diff --git a/character/sp/skill.js b/character/sp/skill.js index 6c1220902..3d2c10dad 100644 --- a/character/sp/skill.js +++ b/character/sp/skill.js @@ -17173,9 +17173,6 @@ const skills = { cardUsable: function (card, player) { if (player.storage.new_zhixi2 || player.countMark("new_zhixi") >= player.hp) return false; }, - cardRespondable: function (card, player) { - if (player.storage.new_zhixi2 || player.countMark("new_zhixi") >= player.hp) return false; - }, cardSavable: function (card, player) { if (player.storage.new_zhixi2 || player.countMark("new_zhixi") >= player.hp) return false; },