import { lib, game, ui, get, ai, _status } from "../noname.js"; game.import("card", function () { return { name: "yunchou", card: { diaobingqianjiang: { fullskin: true, type: "trick", enable: true, selectTarget: -1, filterTarget: function (card, player, target) { return player == target || target.countCards("h"); }, contentBefore: function () { "step 0"; game.delay(); player.draw(); "step 1"; if (get.is.versus()) { player .chooseControl("顺时针", "逆时针", function (event, player) { if (player.next.side == player.side) return "逆时针"; return "顺时针"; }) .set("prompt", "选择" + get.translation(card) + "的结算方向"); } else { event.goto(3); } "step 2"; if (result && result.control == "顺时针") { var evt = event.getParent(); evt.fixedSeat = true; evt.targets.sortBySeat(); evt.targets.reverse(); if (evt.targets[evt.targets.length - 1] == player) { evt.targets.unshift(evt.targets.pop()); } } "step 3"; ui.clear(); var cards = get.cards(Math.ceil(game.countPlayer() / 2)); var dialog = ui.create.dialog("调兵遣将", cards, true); _status.dieClose.push(dialog); dialog.videoId = lib.status.videoId++; game.addVideo("cardDialog", null, ["调兵遣将", get.cardsInfo(cards), dialog.videoId]); event.getParent().preResult = dialog.videoId; }, content: function () { "step 0"; for (var i = 0; i < ui.dialogs.length; i++) { if (ui.dialogs[i].videoId == event.preResult) { event.dialog = ui.dialogs[i]; break; } } if (!event.dialog || !target.countCards("h")) { event.finish(); return; } var minValue = 20; var hs = target.getCards("h"); for (var i = 0; i < hs.length; i++) { minValue = Math.min(minValue, get.value(hs[i], target)); } if (target.isUnderControl(true)) { event.dialog.setCaption("选择一张牌并用一张手牌替换之"); } var next = target.chooseButton(function (button) { return get.value(button.link, _status.event.player) - minValue; }); next.set("dialog", event.preResult); next.set("closeDialog", false); next.set("dialogdisplay", true); "step 1"; event.dialog.setCaption("调兵遣将"); if (result.bool) { event.button = result.buttons[0]; target.chooseCard("用一张牌牌替换" + get.translation(result.links), true).ai = function (card) { return -get.value(card); }; } else { target.popup("不换"); event.finish(); } "step 2"; if (result.bool) { target.lose(result.cards, ui.special); target.$throw(result.cards); game.log(target, "用", result.cards, "替换了", event.button.link); target.gain(event.button.link); target.$gain2(event.button.link); event.dialog.buttons.remove(event.button); event.dialog.buttons.push( ui.create.button(result.cards[0], "card", event.button.parentNode) ); event.button.remove(); } "step 3"; game.delay(2); }, contentAfter: function () { "step 0"; event.dialog = get.idDialog(event.preResult); if (!event.dialog) { event.finish(); return; } var nextSeat = _status.currentPhase.next; var att = get.attitude(player, nextSeat); if (player.isUnderControl(true) && !_status.auto) { event.dialog.setCaption("将任意张牌以任意顺序置于牌堆顶(先选择的在上)"); } var next = player.chooseButton([1, event.dialog.buttons.length], event.dialog); next.ai = function (button) { if (att > 0) { return get.value(button.link, nextSeat) - 5; } else { return 5 - get.value(button.link, nextSeat); } }; next.set("closeDialog", false); next.set("dialogdisplay", true); "step 1"; if (result && result.bool && result.links && result.links.length) { for (var i = 0; i < result.buttons.length; i++) { event.dialog.buttons.remove(result.buttons[i]); } var cards = result.links.slice(0); while (cards.length) { ui.cardPile.insertBefore(cards.pop(), ui.cardPile.firstChild); } game.log(player, "将" + get.cnNumber(result.links.length) + "张牌置于牌堆顶"); } for (var i = 0; i < event.dialog.buttons.length; i++) { event.dialog.buttons[i].link.discard(); } "step 2"; var dialog = event.dialog; dialog.close(); _status.dieClose.remove(dialog); game.addVideo("cardDialog", null, event.preResult); }, ai: { wuxie: function () { return 0; }, basic: { order: 2, useful: [3, 1], value: [5, 1], }, result: { player: 1, target: function (player, target) { if (target.countCards("h") == 0) return 0; return ( (Math.sqrt(target.countCards("h")) - get.distance(player, target, "absolute") / game.countPlayer() / 3) / 2 ); }, }, tag: { loseCard: 1, multitarget: 1, }, }, }, caochuanjiejian: { fullskin: true, type: "trick", enable: true, filterTarget: function (card, player, target) { return target.countCards("h") > 0 && target != player; }, content: function () { "step 0"; if (target.countCards("h", "sha")) { var name = get.translation(player.name); target .chooseControl() .set("prompt", get.translation("caochuanjiejian")) .set( "choiceList", [ "将手牌中的所有杀交给" + name + ",并视为对" + name + "使用一张杀", "展示手牌并令" + name + "弃置任意一张", ], function () { if (get.effect(player, { name: "sha" }, target, target) < 0) return 1; if (target.countCards("h", "sha") >= 3) return 1; return 0; } ); } else { event.directfalse = true; } "step 1"; if (event.directfalse || result.control == "选项二") { if (target.countCards("h")) { if (!player.isUnderControl(true)) { target.showHandcards(); } else { game.log(target, "展示了", target.getCards("h")); } player.discardPlayerCard(target, "h", true, "visible"); } event.finish(); } else { var hs = target.getCards("h", "sha"); player.gain(hs, target); target.$give(hs, player); } "step 2"; target.useCard({ name: "sha" }, player); }, ai: { order: 4, value: [5, 1], result: { target: function (player, target) { if (player.hasShan()) return -1; return 0; }, }, }, }, // xiaolicangdao:{ // fullskin:true, // type:'trick', // enable:true, // filterTarget:function(card,player,target){ // return target!=player; // }, // multitarget:true, // content:function(){ // 'step 0' // if(cards&&cards.length){ // target.gain(cards,player); // target.$gain2(cards); // if(cards.length==1){ // event.card1=cards[0]; // } // } // 'step 1' // event.card2=target.getCards('h').randomGet(); // if(event.card2){ // target.discard(event.card2); // } // else{ // event.finish(); // } // 'step 2' // if(event.card1&&event.card1.name==event.card2.name){ // target.damage(); // } // }, // ai:{ // order:6, // value:[3,1], // result:{ // target:function(player,target){ // return -2/Math.sqrt(1+target.countCards('h')); // }, // }, // tag:{ // damage:1, // discard:1, // loseCard:1, // } // } // }, geanguanhuo: { fullskin: true, type: "trick", filterTarget: function (card, player, target) { if (target == player) return false; return ( target.countCards("h") > 0 && game.hasPlayer(function (current) { return target.canCompare(current); }) ); //return ui.selected.targets[0].canCompare(target); }, filterAddedTarget: function (card, player, target, preTarget) { return target != player && preTarget.canCompare(target); }, enable: function () { return game.countPlayer() > 2; }, recastable: function () { return game.countPlayer() <= 2; }, multicheck: function (card, player) { return ( game.countPlayer(function (current) { return current != player && current.countCards("h"); }) > 1 ); }, multitarget: true, multiline: true, singleCard: true, complexSelect: true, content: function () { "step 0"; if (!event.addedTarget || !target.canCompare(event.addedTarget)) { event.finish(); return; } target.chooseToCompare(event.addedTarget); "step 1"; if (!result.tie) { if (result.bool) { if (event.addedTarget.countCards("he")) { target.line(event.addedTarget); target.gainPlayerCard(event.addedTarget, true); } } else { if (target.countCards("he")) { event.addedTarget.line(target); event.addedTarget.gainPlayerCard(target, true); } } event.finish(); } "step 2"; target.discardPlayerCard(player); target.line(player); }, ai: { order: 5, value: [7, 1], useful: [4, 1], result: { target: -1, }, }, }, shezhanqunru: { fullskin: true, type: "trick", enable: true, toself: true, filterTarget: function (card, player, target) { return target == player; }, selectTarget: -1, modTarget: true, content: function () { "step 0"; var list = game.filterPlayer(function (current) { return current != target && target.canCompare(current); }); if (!list.length) { target.draw(3); event.finish(); } else { list.sortBySeat(target); event.list = list; event.torespond = []; } "step 1"; if (event.list.length) { event.current = event.list.shift(); event.current .chooseBool( "是否响应" + get.translation(target) + "的舌战群儒?", function (event, player) { if (get.attitude(player, _status.event.source) >= 0) return false; var hs = player.getCards("h"); var dutag = player.hasSkillTag("nodu"); for (var i = 0; i < hs.length; i++) { var value = get.value(hs[i], player); if (hs[i].name == "du" && dutag) continue; if (value < 0) return true; if (!_status.event.hasTarget) { if (hs[i].number >= 8 && value <= 7) return true; if (value <= 3) return true; } else if (_status.event.hasTarget % 2 == 1) { if (hs[i].number >= 11 && value <= 6) return true; } } return false; } ) .set("source", target) .set("hasTarget", event.torespond.length); } else { event.goto(3); } "step 2"; if (result.bool) { event.torespond.push(event.current); event.current.line(target, "green"); event.current.popup("响应"); game.log(event.current, "响应了舌战群儒"); game.delayx(0.5); } event.goto(1); "step 3"; if (event.torespond.length == 0) { event.num = 1; } else { event.num = 0; target.chooseToCompare(event.torespond).callback = lib.card.shezhanqunru.callback; } "step 4"; if (event.num > 0) { target.draw(3); } }, callback: function () { if (event.card1.number > event.card2.number) { event.parent.parent.num++; } else { event.parent.parent.num--; } }, ai: { order: 8.5, value: [6, 1], useful: [3, 1], tag: { draw: 3, }, result: { target: function (player, target) { var hs = target.getCards("h"); for (var i = 0; i < hs.length; i++) { var value = get.value(hs[i]); if (hs[i].number >= 7 && value <= 6) return 1; if (value <= 3) return 1; } return 0; }, }, }, }, youdishenru: { fullskin: true, type: "trick", notarget: true, wuxieable: true, global: "g_youdishenru", content: function () { "step 0"; var info = event.getParent(2).youdiinfo || event.getParent(3).youdiinfo; if (!info) { event.finish(); return; } info.evt.cancel(); event.source = info.source; event.source.storage.youdishenru = player; event.source.addSkill("youdishenru"); "step 1"; var next = event.source .chooseToUse( { name: "sha" }, player, -1, "对" + get.translation(player) + "使用一张杀,或受到1点伤害" ) .set("addCount", false); next.ai2 = function () { return 1; }; "step 2"; if (result.bool) { if (event.source.storage.youdishenru) { event.goto(1); } else { event.source.removeSkill("youdishenru"); } } else { event.source.damage(player); event.source.removeSkill("youdishenru"); } }, ai: { value: [5, 1], useful: [5, 1], order: 1, wuxie: function (target, card, player, current, state) { return -state * get.attitude(player, current); }, result: { player: function (player) { if ( _status.event.parent.youdiinfo && get.attitude(player, _status.event.parent.youdiinfo.source) <= 0 ) { return 1; } return 0; }, }, }, }, wangmeizhike: { fullskin: true, type: "trick", enable: true, filterTarget: true, content() { "step 0"; if (target.isMinHp() && target.isDamaged()) { target.recover(); event.rec = true; } "step 1"; if (target.isMinHandcard()) target.draw(event.rec ? 1 : 2); }, ai: { order() { let player = _status.event.player, nan = player.hasCard((card) => { return get.name(card) === "nanman"; }, "hs"), wan = player.hasCard((card) => { return get.name(card) === "wanjian"; }, "hs"), aoe = 0, max = 0; game.countPlayer((current) => { if (get.attitude(player, current) <= 0) return false; let hp = current.isMinHp(), hc = current.isMinHandcard(); if ((nan || wan) && (hp || hc)) aoe = 1; if (hp && hc && max !== 1) max = current === player ? 1 : -1; }); if (aoe) { if (nan) aoe = Math.max(aoe, get.order("nanman")); if (wan) aoe = Math.max(aoe, get.order("wanjian")); return aoe + 0.2; } if (max) return 5.8; if (player.isDamaged() && player.isMinHp() && player.countCards("hs", "tao")) return get.order("tao") + 0.2; return 0.5; }, value: 7, result: { target(player, target) { let num = 0, current = player.next, mei = 1, draw = target.hasSkillTag("nogain") ? 0.1 : 1; if (!ui.selected.cards) mei = 0; let mine = player.countCards("h", (card) => { if (mei > 0 && ui.selected.cards.includes(card)) return false; if (!mei && get.name(card) === "phd_wmzk") { mei = -1; return false; } return true; }); if (player.hasSkillTag("noh") && player.countCards("h")) mine++; let min = mine; while (current !== player) { if (current.countCards("h") < min) min = current.countCards("h"); current = current.next; } if (target.isMinHp() && target.isDamaged() && get.recoverEffect(target) > 0) { if (target.hp === 1) num += 3; else num += 2; } if (player === target) { if (mine <= min) num += (num ? 2 : 1) * draw; } else if (target.countCards("h") <= min) num += (num ? 2 : 1) * draw; return num; }, }, tag: { draw: 1.2, recover: 0.5, }, }, }, suolianjia: { fullskin: true, type: "equip", subtype: "equip2", skills: ["suolianjia"], onEquip: function () { if (player.isLinked() == false) player.link(); }, onLose: function () { if (player.isLinked()) player.link(); }, ai: { basic: { equipValue: 5, }, }, }, chenhuodajie: { fullskin: true, type: "trick", filterTarget: true, global: "g_chenhuodajie", content: function () { if (target.countCards("he")) { player.gainPlayerCard("he", target, true); } }, ai: { order: 1, useful: 6, value: 6, result: { target: -1, }, tag: { loseCard: 1, }, }, }, fudichouxin: { fullskin: true, type: "trick", enable: true, filterTarget: function (card, player, target) { return player.canCompare(target); }, content: function () { "step 0"; player.chooseToCompare(target).set("preserve", "win").clear = false; "step 1"; if (result.bool) { player.gain([result.player, result.target]); result.player.clone.moveDelete(player); result.target.clone.moveDelete(player); game.addVideo("gain2", player, get.cardsInfo([result.player, result.target])); } else if (!result.cancelled) { result.player.clone.delete(); result.target.clone.delete(); game.addVideo("deletenode", player, get.cardsInfo([result.player, result.target])); } }, ai: { order: 4, value: [4, 1], result: { target: function (player) { if (player.countCards("h") <= 1) return 0; return -1; }, player: function (player) { if (player.countCards("h") <= 1) return 0; return 0.5; }, }, tag: { loseCard: 1, }, }, }, shuiyanqijun: { fullskin: true, type: "trick", enable: true, filterTarget: function (card, player, target) { return target.countCards("e"); }, selectTarget: -1, content: function () { if (target.countCards("e")) target.chooseToDiscard("e", true); }, reverseOrder: true, ai: { order: 9, result: { target: function (player, target) { if (target.countCards("e")) return -1; return 0; }, }, tag: { multitarget: 1, multineg: 1, }, }, }, toulianghuanzhu: { fullskin: true, type: "trick", enable: true, filterTarget: function (card, player, target) { return target.countCards("h") > 0; }, content: function () { "step 0"; if (!target.countCards("h")) { event.finish(); return; } var hs = player.getCards("h"); if (hs.length) { var minval = get.value(hs[0]); var colors = [get.color(hs[0])]; for (var i = 1; i < hs.length; i++) { var val = get.value(hs[i], player, "raw"); if (val < minval) { minval = val; colors = [get.color(hs[i])]; } else if (val == minval) { colors.add(get.color(hs[i])); } } player.chooseCardButton("偷梁换柱", target.getCards("h")).ai = function (button) { var val = get.value(button.link, player, "raw") - minval; if (val >= 0) { if (colors.includes(get.color(button.link))) { val += 3; } } return val; }; } else { player.viewHandcards(target); event.finish(); } "step 1"; if (result.bool) { event.card = result.links[[0]]; player.chooseCard("h", true, "用一张手牌替换" + get.translation(event.card)).ai = function (card) { return -get.value(card); }; } else { event.finish(); } "step 2"; if (result.bool) { player.gain(event.card, target); target.gain(result.cards, player); player.$giveAuto(result.cards, target); target.$giveAuto(event.card, player); game.log(player, "与", target, "交换了一张手牌"); if (get.color(event.card) == get.color(result.cards[0])) { player.draw(); } target.addTempSkill("toulianghuanzhu_ai1"); } else { target.addTempSkill("toulianghuanzhu_ai2"); } }, ai: { order: 8, tag: { loseCard: 1, norepeat: 1, }, result: { target: function (player, target) { if (player.countCards("h") <= 1) return 0; if (target.hasSkill("toulianghuanzhu_ai2")) return 0; if (target.hasSkill("toulianghuanzhu_ai1")) return 0.5; return -1; }, }, useful: [4, 1], value: [6, 1], }, }, huoshan: { fullskin: true, type: "delay", cardcolor: "red", cardnature: "fire", toself: true, modTarget: function (card, player, target) { return lib.filter.judge(card, player, target); }, enable: function (card, player) { return player.canAddJudge(card); }, filterTarget: function (card, player, target) { return lib.filter.judge(card, player, target) && player == target; }, selectTarget: [-1, -1], judge: function (card) { if (get.suit(card) == "heart" && get.number(card) > 1 && get.number(card) < 10) return -6; return 1; }, judge2: function (result) { if (result.bool == false) return true; return false; }, effect: function () { if (result.bool == false) { player.damage(2, "fire", "nosource"); var players = game.filterPlayer(function (current) { return get.distance(player, current) <= 1 && player != current; }); players.sort(lib.sort.seat); for (var i = 0; i < players.length; i++) { players[i].damage(1, "fire", "nosource"); } } else { player.addJudgeNext(card); } }, cancel: function () { player.addJudgeNext(card); }, ai: { basic: { useful: 0, value: 0, }, order: 1, result: { target: function (player, target) { return lib.card.shandian.ai.result.target(player, target); }, }, tag: { // damage:1, // natureDamage:1, // fireDamage:1, }, }, }, hongshui: { type: "delay", toself: true, enable: function (card, player) { return player.canAddJudge(card); }, modTarget: function (card, player, target) { return lib.filter.judge(card, player, target); }, filterTarget: function (card, player, target) { return lib.filter.judge(card, player, target) && player == target; }, selectTarget: [-1, -1], judge: function (card) { if (get.suit(card) == "club" && get.number(card) > 1 && get.number(card) < 10) return -3; return 1; }, judge2: function (result) { if (result.bool == false) return true; return false; }, fullskin: true, effect: function () { if (result.bool == false) { if (player.countCards("he") == 0) player.loseHp(); else { player.discard(player.getCards("he").randomGets(3)); } var players = get.players(); for (var i = 0; i < players.length; i++) { var dist = get.distance(player, players[i]); if (dist <= 2 && player != players[i]) { var cs = players[i].getCards("he"); if (cs.length == 0) players[i].loseHp(); else { players[i].discard(cs.randomGets(3 - Math.max(1, dist))); } } } } else { player.addJudgeNext(card); } }, cancel: function () { player.addJudgeNext(card); }, ai: { basic: { useful: 0, value: 0, }, order: 1, result: { target: function (player, target) { return lib.card.shandian.ai.result.target(player, target); }, }, }, }, }, skill: { toulianghuanzhu_ai1: {}, toulianghuanzhu_ai2: {}, suolianjia: { trigger: { player: "damageBefore" }, filter: function (event, player) { if ( event.source && event.source.hasSkillTag("unequip", false, { name: event.card ? event.card.name : null, target: player, card: event.card, }) ) return; if (event.nature) return true; }, forced: true, content: function () { trigger.cancel(); }, ai: { nofire: true, nothunder: true, effect: { target: function (card, player, target, current) { if (target.hasSkillTag("unequip2")) return; if ( player.hasSkillTag("unequip", false, { name: card ? card.name : null, target: player, card: card, }) || player.hasSkillTag("unequip_ai", false, { name: card ? card.name : null, target: target, card: card, }) ) return; if (card.name == "tiesuo" || get.tag(card, "natureDamage")) return "zeroplayertarget"; }, }, }, }, toulianghuanzhu2: {}, youdishenru: { trigger: { source: "damageEnd" }, silent: true, onremove: true, filter: function (event, player) { return ( event.card && event.card.name == "sha" && event.player == player.storage.youdishenru ); }, content: function () { delete player.storage.youdishenru; }, }, g_youdishenru: { trigger: { target: "shaBefore" }, direct: true, filter: function (event, player) { return ( !event.getParent().directHit.includes(player) && player.hasUsableCard("youdishenru") ); }, content: function () { event.youdiinfo = { source: trigger.player, evt: trigger, }; player .chooseToUse(function (card, player) { if (get.name(card) != "youdishenru") return false; return lib.filter.cardEnabled(card, player, "forceEnable"); }, "是否使用诱敌深入?") .set("source", trigger.player); }, }, g_chenhuodajie: { trigger: { global: "damageEnd" }, direct: true, filter: function (event, player) { if (event.player == player) return false; if (!event.player.countCards("he")) return false; if (!lib.filter.targetEnabled({ name: "chenhuodajie" }, player, event.player)) return false; if (event._notrigger.includes(event.player)) return false; return player.hasUsableCard("chenhuodajie"); }, content: function () { player.chooseToUse( get.prompt("chenhuodajie", trigger.player).replace(/发动/, "使用"), function (card, player) { if (card.name != "chenhuodajie") return false; return lib.filter.cardEnabled(card, player, "forceEnable"); }, trigger.player, -1 ).targetRequired = true; }, }, }, translate: { diaobingqianjiang: "调兵遣将", diaobingqianjiang_info: "出牌阶段,对你及其他有手牌的角色使用。你摸一张牌,然后亮出牌堆顶的X张牌(X为存活角色数的一半,向上取整),目标可以用一张手牌替换其中的一张牌。结算后,你可以将剩余的牌中的任意张以任意顺序置于牌堆顶。", caochuanjiejian: "草船借箭", caochuanjiejian_info: "出牌阶段对一名有手牌的其他角色使用,目标选择一项:将手牌中的所有杀(至少1张)交给你,并视为对你使用一张杀;或展示手牌并令你弃置任意张。", // xiaolicangdao:'笑里藏刀', // xiaolicangdao_info:'出牌阶段,对一名其他角色使用。你将此【笑里藏刀】交给目标,然后弃置其一张手牌,若这两张牌牌名相同,你对其造成1点伤害。', shezhanqunru: "舌战群儒", shezhanqunru_info: "出牌阶段,对你使用。你请求所有有手牌的其他角色响应,然后同时与响应的角色拼点。若有角色响应且结果中你赢的次数更多,或若没有角色响应,你摸三张牌。", youdishenru: "诱敌深入", youdishenru_info: "当以你为目标的【杀】生效前,对此【杀】使用。抵消此【杀】,然后此【杀】的使用者需对你使用【杀】(在此【杀】结算结束之后,若此【杀】未对你造成伤害,其重复此流程),否则受到你造成的1点伤害。", suolianjia: "锁链甲", suolianjia_info: "锁定技,你防止即将受到的属性伤害,当装备时进入连环状态,当卸下时解除连环状态。", suolianjia_bg: "链", geanguanhuo: "隔岸观火", geanguanhuo_info: "出牌阶段对一名其他角色使用,令目标与一名你指定的另一名角色拼点,赢的角色获得对方的一张牌;若点数相同,目标可弃置你一张牌(存活角色不超过2时可重铸)。", toulianghuanzhu: "偷梁换柱", toulianghuanzhu_info: "出牌阶段对一名其他角色使用,你观看其手牌,然后可以用一张手牌替牌其中的一张;若两张牌颜色相同,你摸一张牌。", toulianghuanzhu_bg: "柱", fudichouxin: "釜底抽薪", fudichouxin_info: "与一名角色进行拼点,若成功则获得双方拼点牌。", shuiyanqijun: "水攻", shuiyanqijun_info: "令所有有装备的角色各弃置一张装备牌。", wangmeizhike: "望梅止渴", wangmeizhike_info: "出牌阶段对一名角色使用,若没有角色体力比目标少,目标回复1点体力;若没有角色手牌比目标少,目标摸两张牌(若因此牌回复了体力则改为摸一张)。", chenhuodajie: "趁火打劫", chenhuodajie_info: "任意一名其他角色受到伤害时对其使用,获得其一张牌。", huoshan: "火山", huoshan_info: "出牌阶段,对自己使用。若判定结果为红桃2~9,则目标角色受到2点火焰伤害,距离目标1以内的其他角色受到1点火焰伤害。若判定结果不为红桃2~9,将之移动到下家的判定区里。", hongshui: "洪水", hongshui_info: "出牌阶段,对自己使用。若判定结果为梅花2~9,该角色随机弃置三张牌,距离该角色为X的角色随机弃置3-X张牌,若没有牌则失去1点体力。若判定结果不为梅花2~9,将之移动到下家的判定区里。", }, list: [ ["heart", 6, "huoshan", "fire"], ["club", 7, "hongshui"], ["diamond", 3, "guohe"], ["diamond", 4, "fudichouxin"], ["club", 6, "fudichouxin"], ["spade", 1, "fudichouxin"], ["club", 7, "shuiyanqijun"], ["club", 8, "shuiyanqijun"], ["club", 8, "guohe"], ["spade", 9, "shuiyanqijun"], ["heart", 9, "toulianghuanzhu"], ["club", 10, "toulianghuanzhu"], ["spade", 13, "guohe"], ["heart", 6, "wangmeizhike"], ["club", 1, "wangmeizhike"], ["diamond", 6, "chenhuodajie"], ["diamond", 9, "chenhuodajie"], ["club", 3, "chenhuodajie"], ["club", 13, "suolianjia"], ["club", 3, "caochuanjiejian"], ["spade", 7, "caochuanjiejian"], // ['spade',5,'xiaolicangdao'], // ['diamond',11,'xiaolicangdao'], ["heart", 1, "geanguanhuo"], ["spade", 6, "geanguanhuo"], ["heart", 4, "shezhanqunru"], ["club", 8, "shezhanqunru"], ["diamond", 1, "diaobingqianjiang"], ["spade", 2, "diaobingqianjiang"], ["heart", 12, "youdishenru"], ["club", 2, "youdishenru"], ["spade", 9, "youdishenru"], ], }; });