diff --git a/character/extra.js b/character/extra.js index d38d9034e..6746813d8 100755 --- a/character/extra.js +++ b/character/extra.js @@ -673,7 +673,7 @@ game.import("character", function () { return game.hasPlayer((current) => { if (current == player) return false; const total = current.countCards("ej"); - return total > 0 && num > total; + return total > 0 && num >= total; }); }, filterCard: true, @@ -682,7 +682,7 @@ game.import("character", function () { 1, Math.max( ...game.filterPlayer((i) => i != get.player()).map((i) => i.countCards("ej")) - ) + 1, + ), ]; }, check(card) { @@ -691,10 +691,10 @@ game.import("character", function () { filterTarget(card, player, target) { const num = target.countCards("ej"); if (!num) return false; - return ui.selected.cards.length == num + 1 && player != target; + return ui.selected.cards.length == num && player != target; }, filterOk() { - return ui.selected.cards.length == ui.selected.targets[0].countCards("ej") + 1; + return ui.selected.cards.length == ui.selected.targets[0].countCards("ej"); }, position: "he", lose: false, @@ -746,8 +746,9 @@ game.import("character", function () { filter(event, player) { return ( (event.name != "phase" || game.phaseNumber == 0) && - game.countPlayer((current) => { - return !current.isZhu2(); + game.countPlayer(current => { + if (get.mode() != "doudizhu") return !current.isZhu2(); + return current.getSeatNum() != 3; }) > 1 ); }, @@ -756,15 +757,13 @@ game.import("character", function () { derivation: "tamo_faq", async content(event, trigger, player) { const toSortPlayers = game.filterPlayer((current) => { - return ( - !current.isZhu2() || - get.mode() == "doudizhu" && current.getSeatNum() == 3 - ); + if (get.mode() != "doudizhu") return !current.isZhu2(); + return current.getSeatNum() != 3; }); toSortPlayers.sortBySeat(game.findPlayer2((current) => current.getSeatNum() == 1, true)); const next = player.chooseToMove("榻谟:是否分配" + - (game.countPlayer() > toSortPlayers.length ? - "除主公" + (get.mode() == "doudizhu" ? "和三号位外" : "外") : "") + + (get.mode() != "doudizhu" ? + (game.hasPlayer(cur => cur.isZhu2()) ? "除主公外" : "") : "除三号位外") + "所有角色的座次?" ); next.set("list", [ @@ -1422,8 +1421,7 @@ game.import("character", function () { group: "jxlianpo_show", *content(event, map) { var source = map.trigger.source; - source.draw(2); - source.recover(); + source.chooseDrawRecover(2, true); }, mark: true, intro: { @@ -10817,7 +10815,7 @@ game.import("character", function () { le_shen_jiaxu_prefix: "神", jxlianpo: "炼魄", jxlianpo_info: - "锁定技。①若场上最大阵营为:反贼,其他角色的手牌上限-1,所有角色使用【杀】的次数上限和攻击范围+1;主忠,其他角色不能对其以外的角色使用【桃】。其他角色死亡后,若有多个最大阵营,来源摸两张牌并回复1点体力。②一轮游戏开始时,你展示一张未加入游戏或已死亡角色的身份牌,本轮视为该身份对应阵营的角色数+1。", + "锁定技。①若场上最大阵营为:反贼,其他角色的手牌上限-1,所有角色使用【杀】的次数上限和攻击范围+1;主忠,其他角色不能对其以外的角色使用【桃】。若有多个最大阵营,其他角色死亡后,来源摸两张牌或回复1点体力。②一轮游戏开始时,你展示一张未加入游戏或已死亡角色的身份牌,本轮视为该身份对应阵营的角色数+1。", jxzhaoluan: "兆乱", jxzhaoluan_info: "限定技。一名角色死亡前,若其此次进入过濒死状态,你可以取消之,令其加3点体力上限并失去所有非锁定技,回复体力至3点,摸四张牌。然后你获得如下效果:出牌阶段,你可以令一名成为过你〖兆乱〗目标的角色减1点体力上限,然后对一名此阶段未以此法选择过的角色造成1点伤害。", @@ -10841,18 +10839,20 @@ game.import("character", function () { shen_lusu_prefix: "神", dingzhou: "定州", dingzhou_info: - "出牌阶段限一次。你可以将X张牌交给一名场上有牌的角色,然后你获得其场上的所有牌(X为其场上的牌数+1)。", + "出牌阶段限一次。你可以将X张牌交给一名场上有牌的角色,然后你获得其场上的所有牌(X为其场上的牌数)。", tamo: "榻谟", tamo_info: "游戏开始时,你可以重新分配除主公外所有角色的座次。", tamo_info_doudizhu: - "游戏开始时,你可以重新分配除主公和三号位外所有角色的座次。", + "游戏开始时,你可以重新分配除三号位外所有角色的座次。", tamo_faq: "FAQ", tamo_faq_info: "
  • Q:在一号位不为主公的情况下,〖榻谟〗如何结算?
  • A:该角色可以正常进行座次交换。若受此技能影响导致一号位角色发生了变化,则以排列后的一号位角色为起始角色开始本局游戏。
  • ", zhimeng: "智盟", - zhimeng_info_identity: '回合结束后,你可以选择一名其他角色。若如此做,你与其将各自所有手牌置于处理区,然后你随机获得这些牌中的一半(向上取整),其获得剩余的牌。', - zhimeng_info: '回合结束后,你可以选择一名手牌数不大于Y的其他角色(Y为你的手牌数+1)。若如此做,你与其将各自所有手牌置于处理区,然后你随机获得这些牌中的一半(向上取整),其获得剩余的牌。', + zhimeng_info: + "回合结束后,你可以选择一名手牌数不大于Y的其他角色(Y为你的手牌数+1)。若如此做,你与其将各自所有手牌置于处理区,然后你随机获得这些牌中的一半(向上取整),其获得剩余的牌。", + zhimeng_info_identity: + "回合结束后,你可以选择一名其他角色。若如此做,你与其将各自所有手牌置于处理区,然后你随机获得这些牌中的一半(向上取整),其获得剩余的牌。", shen_xuzhu: "神许褚", shen_xuzhu_prefix: "神", zhengqing: "争擎", diff --git a/character/huicui.js b/character/huicui.js index d1bc8a563..380fa70f4 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -9905,7 +9905,7 @@ game.import("character", function () { var delta = player.countCards("h") - player.hp; if (delta > 0) player.chooseToDiscard("h", 4, true); else if (delta == 0) { - player.chooseToDiscard("h", true); + player.chooseToDiscard("he", true); player.recover(); } else { player.damage("fire", "nosource"); @@ -14163,18 +14163,18 @@ game.import("character", function () { check: function (event, player) { var target = event.player; var att = get.attitude(player, target); - var num2 = Math.min(5, target.hp - target.countCards("h")); + 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; + return (num - num2) * att < 0; }, preHidden: true, content: function () { "step 0"; - var num = Math.min(5, trigger.player.hp - trigger.player.countCards("h")); + 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"); @@ -15731,9 +15731,9 @@ game.import("character", function () { "①当你受到伤害后,你可以摸一张牌,或和一名势力相同的其他角色各摸一张牌;②每回合限一次,当你造成伤害后,你可以对一名与你势力不同的角色造成1点伤害。", xibing: "息兵", xibing_info: - "当一名其他角色在其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。", + "当一名其他角色在其出牌阶段内使用黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸至五张)且本回合不能再使用手牌。", xibing_info_guozhan: - "当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。", + "当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸至五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。", luyusheng: "陆郁生", zhente: "贞特", zhente2: "贞特", @@ -15868,7 +15868,7 @@ game.import("character", function () { lianzhou_info: "锁定技。准备阶段,你横置你的武将牌。然后你可横置任意名体力值等于你的角色。", jinglan: "惊澜", jinglan_info: - "锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置四张手牌;等于体力值,你弃置一张手牌并回复1点体力;小于体力值,你受到1点无来源火焰伤害并摸五张牌。", + "锁定技。当你造成伤害后,若你的手牌数:大于体力值,你弃置四张手牌;等于体力值,你弃置一张牌并回复1点体力;小于体力值,你受到1点无来源火焰伤害并摸五张牌。", dc_yanghu: "羊祜", dcdeshao: "德劭", dcdeshao_info: diff --git a/character/mobile.js b/character/mobile.js index eb8d7e132..dc1010d2a 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -2442,9 +2442,9 @@ game.import("character", function () { mbyilie3: { audio: "mbyilie", trigger: { player: "phaseEnd" }, - //filter:function(event,player){ - // return player.countMark('mbyilie'); - //}, + filter: function (event, player) { + return player.hasMark('mbyilie'); + }, forced: true, content: function () { "step 0"; @@ -20080,8 +20080,8 @@ game.import("character", function () { mbzuoyou(player) { const mbzuoyou = player.storage.mbzuoyou; if (mbzuoyou) - return '转换技。出牌阶段限一次,阴:你可以令一名角色摸三张牌,然后其弃置两张牌;阳:你可以令一名角色弃置一张手牌,然后其获得1点护甲。'; - return '转换技。出牌阶段限一次,阴:你可以令一名角色摸三张牌,然后其弃置两张牌;阳:你可以令一名角色弃置一张手牌,然后其获得1点护甲。'; + return '转换技。出牌阶段限一次,阴:你可以令一名角色摸两张牌,然后其弃置一张牌;阳:你可以令一名手牌数不少于二的角色弃置两张手牌,然后其获得1点护甲。'; + return '转换技。出牌阶段限一次,阴:你可以令一名角色摸两张牌,然后其弃置一张牌;阳:你可以令一名手牌数不少于二的角色弃置两张手牌,然后其获得1点护甲。'; }, }, perfectPair: { @@ -21154,7 +21154,7 @@ game.import("character", function () { mbyilie2: "义烈", mbyilie3: "义烈", mbyilie_info: - "锁定技。①游戏开始时,你选择一名其他角色,然后你获得以下效果:其受到伤害时,若你没有“烈”,则你获得等同于伤害值的“烈”标记,然后防止此伤害;其对其他角色造成伤害后,你回复1点体力。②结束阶段,你摸一张牌并失去X点体力,然后移去所有“烈”(X为你拥有的“烈”标记数)。", + "锁定技。①游戏开始时,你选择一名其他角色,然后你获得以下效果:其受到伤害时,若你没有“烈”,则你获得等同于伤害值的“烈”标记,然后防止此伤害;其对其他角色造成伤害后,你回复1点体力。②结束阶段,若你拥有“烈”标记,你摸一张牌并失去X点体力,然后移去所有“烈”(X为你拥有的“烈”标记数)。", muludawang: "木鹿大王", shoufa: "兽法", shoufa_info: diff --git a/character/offline.js b/character/offline.js index 662a28be9..1c9ad4f72 100644 --- a/character/offline.js +++ b/character/offline.js @@ -703,7 +703,10 @@ game.import("character", function () { dragjuwu: { trigger: { target: "shaBefore" }, filter(event, player) { - return game.countPlayer((target) => event.player.inRange(target)) >= 3; + return ( + !game.hasNature(event.card) && + game.countPlayer((target) => event.player.inRange(target)) >= 3 + ); }, forced: true, content() { @@ -714,6 +717,7 @@ game.import("character", function () { target(card, player, target) { if ( card.name == "sha" && + !game.hasNature(card) && game.countPlayer((targetx) => player.inRange(targetx)) >= 3 ) return "zerotarget"; diff --git a/character/refresh.js b/character/refresh.js index 295c285b7..cbcb65b29 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -8241,7 +8241,7 @@ game.import("character", function () { cardUsable: function (card, player) { if (card.name == "sha") { const suit = get.suit(card); - return suit === "unsure" || player.storage.xingongji2.includes(suit); + if (suit === "unsure" || player.storage.xingongji2.includes(suit)) return Infinity; } }, aiOrder: function (player, card, num) { @@ -18102,9 +18102,9 @@ game.import("character", function () { reluoyi_info: "你可以跳过摸牌阶段,然后亮出牌堆顶的三张牌,获得其中的基本牌、武器牌和【决斗】,若如此做,直到你的下回合开始,你为伤害来源的【杀】或【决斗】造成的伤害+1。", reganglie_info: - "当你受到1点伤害后,你可进行判定,若结果为:红色,你对伤害来源造成1点伤害,;黑色,你弃置伤害来源一张牌。", + "当你受到1点伤害后,你可进行判定,若结果为:红色,你对伤害来源造成1点伤害;黑色,你弃置伤害来源一张牌。", reganglie_info_guozhan: - "当你受到伤害后,你可进行判定,若结果为:红色,你对伤害来源造成1点伤害,;黑色,你弃置伤害来源一张牌。", + "当你受到伤害后,你可进行判定,若结果为:红色,你对伤害来源造成1点伤害;黑色,你弃置伤害来源一张牌。", botu: "博图", botu_info: "回合结束时,若你本回合出牌阶段内使用的牌包含四种花色,则你可以进行一个额外回合。", rebotu: "博图",