更改描述:将“基本牌”改为“基本牌或普通锦囊牌”';
}
player
.chooseControl(list, function () {
@@ -7274,10 +6807,7 @@ game.import("character", function () {
},
content: function () {
"step 0";
- target.chooseToUse(
- { name: "sha" },
- "止戈:使用一张杀,或将其装备区里的一张牌交给" + get.translation(player)
- );
+ target.chooseToUse({ name: "sha" }, "止戈:使用一张杀,或将其装备区里的一张牌交给" + get.translation(player));
"step 1";
if (!result.bool && target.countCards("e")) {
target.chooseCard("e", true, "将其装备区里的一张牌交给" + get.translation(player));
@@ -7313,19 +6843,12 @@ game.import("character", function () {
},
content: function () {
"step 0";
- target
- .chooseCard(
- "he",
- [1, 3],
- "匡弼:将至多三张牌置于" + get.translation(player) + "的武将牌上",
- true
- )
- .set("ai", function (card) {
- if (get.attitude(_status.event.player, _status.event.getParent().player) > 0) {
- return 7 - get.value(card);
- }
- return -get.value(card);
- });
+ target.chooseCard("he", [1, 3], "匡弼:将至多三张牌置于" + get.translation(player) + "的武将牌上", true).set("ai", function (card) {
+ if (get.attitude(_status.event.player, _status.event.getParent().player) > 0) {
+ return 7 - get.value(card);
+ }
+ return -get.value(card);
+ });
"step 1";
if (result.bool) {
player.addToExpansion(result.cards, target, "give").gaintag.add("kuangbi");
@@ -7452,10 +6975,7 @@ game.import("character", function () {
return Math.random() < 0.5 ? "选项一" : "选项二";
})
.set("prompt", "督粮")
- .set("choiceList", [
- "令" + name + "观看牌堆顶的两张牌,然后获得其中的基本牌",
- "令" + name + "于下个摸牌阶段额外摸一张牌",
- ]);
+ .set("choiceList", ["令" + name + "观看牌堆顶的两张牌,然后获得其中的基本牌", "令" + name + "于下个摸牌阶段额外摸一张牌"]);
"step 2";
if (result.control == "选项一") {
var cards = get.cards(2);
@@ -7544,11 +7064,7 @@ game.import("character", function () {
event.target = target;
var res = get.damageEffect(target, player, target, "fire");
target
- .chooseToDiscard(
- "he",
- "弃置至少" + get.cnNumber(event.num) + "张牌或受到2点火焰伤害",
- [num, Infinity]
- )
+ .chooseToDiscard("he", "弃置至少" + get.cnNumber(event.num) + "张牌或受到2点火焰伤害", [num, Infinity])
.set("ai", function (card) {
if (ui.selected.cards.length >= _status.event.getParent().num) return -1;
if (_status.event.player.hasSkillTag("nofire")) return -1;
@@ -7628,13 +7144,9 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("xinjuece"),
- "对一名没有手牌的角色造成1点伤害",
- function (card, player, target) {
- return target.countCards("h") == 0;
- }
- )
+ .chooseTarget(get.prompt("xinjuece"), "对一名没有手牌的角色造成1点伤害", function (card, player, target) {
+ return target.countCards("h") == 0;
+ })
.set("ai", function (target) {
var player = _status.event.player;
return get.damageEffect(target, player, player);
@@ -7671,17 +7183,10 @@ game.import("character", function () {
"step 0";
player.showCards(cards);
"step 1";
- target
- .chooseToDiscard("he", true)
- .set("prompt", "请弃置一张锦囊牌,或依次弃置两张非锦囊牌。");
+ target.chooseToDiscard("he", true).set("prompt", "请弃置一张锦囊牌,或依次弃置两张非锦囊牌。");
"step 2";
if (
- (!result.cards ||
- get.type(
- result.cards[0],
- "trick",
- result.cards[0].original == "h" ? target : false
- ) != "trick") &&
+ (!result.cards || get.type(result.cards[0], "trick", result.cards[0].original == "h" ? target : false) != "trick") &&
target.countCards("he", function (card) {
return get.type(card, "trick") != "trick";
})
@@ -7735,30 +7240,21 @@ game.import("character", function () {
if (trigger.target.countCards("h") < num) {
event.directfalse = true;
} else {
- trigger.target
- .chooseToDiscard(
- num,
- "弃置" +
- get.cnNumber(num) +
- "张手牌,或令" +
- get.translation(trigger.card) +
- "的伤害+1"
- )
- .set("ai", function (card) {
- var player = _status.event.player;
- if (player.hp == 1) {
- if (get.type(card) == "basic") {
- return 8 - get.value(card);
- } else {
- return 10 - get.value(card);
- }
- } else {
- if (num > 2) {
- return 0;
- }
+ trigger.target.chooseToDiscard(num, "弃置" + get.cnNumber(num) + "张手牌,或令" + get.translation(trigger.card) + "的伤害+1").set("ai", function (card) {
+ var player = _status.event.player;
+ if (player.hp == 1) {
+ if (get.type(card) == "basic") {
return 8 - get.value(card);
+ } else {
+ return 10 - get.value(card);
}
- });
+ } else {
+ if (num > 2) {
+ return 0;
+ }
+ return 8 - get.value(card);
+ }
+ });
}
"step 1";
if (!event.directfalse && result.bool) {
@@ -7813,11 +7309,7 @@ game.import("character", function () {
},
charlotte: true,
filter: function (event, player) {
- return (
- player.storage.reqingxi2 &&
- event.card &&
- player.storage.reqingxi2.includes(event.card)
- );
+ return player.storage.reqingxi2 && event.card && player.storage.reqingxi2.includes(event.card);
},
silent: true,
forced: true,
@@ -7843,23 +7335,21 @@ game.import("character", function () {
if (trigger.player.countCards("h") < num) {
event.directfalse = true;
} else {
- trigger.player
- .chooseToDiscard(num, "弃置" + get.cnNumber(num) + "张手牌,或令杀的伤害+1")
- .set("ai", function (card) {
- var player = _status.event.player;
- if (player.hp == 1) {
- if (get.type(card) == "basic") {
- return 8 - get.value(card);
- } else {
- return 10 - get.value(card);
- }
- } else {
- if (num > 2) {
- return 0;
- }
+ trigger.player.chooseToDiscard(num, "弃置" + get.cnNumber(num) + "张手牌,或令杀的伤害+1").set("ai", function (card) {
+ var player = _status.event.player;
+ if (player.hp == 1) {
+ if (get.type(card) == "basic") {
return 8 - get.value(card);
+ } else {
+ return 10 - get.value(card);
}
- });
+ } else {
+ if (num > 2) {
+ return 0;
+ }
+ return 8 - get.value(card);
+ }
+ });
}
"step 1";
if (!event.directfalse && result.bool) {
@@ -7897,26 +7387,21 @@ game.import("character", function () {
player.discard(result.cards);
var target = result.targets[0];
event.target = target;
- target
- .chooseCard(
- "将一张牌置于" + get.translation(player) + "的武将牌上,或令其弃置你的一张牌",
- "he"
- )
- .set("ai", function (card) {
- if (card.name == "du") return 20;
- var player = _status.event.player;
- if (get.attitude(player, _status.event.getParent().player) > 0) {
- return 8 - get.value(card);
- }
- var nh = player.countCards("h");
- if (nh <= 2) {
- return 6 - get.value(card);
- }
- if (nh <= 3) {
- return 2 - get.value(card);
- }
- return 0;
- });
+ target.chooseCard("将一张牌置于" + get.translation(player) + "的武将牌上,或令其弃置你的一张牌", "he").set("ai", function (card) {
+ if (card.name == "du") return 20;
+ var player = _status.event.player;
+ if (get.attitude(player, _status.event.getParent().player) > 0) {
+ return 8 - get.value(card);
+ }
+ var nh = player.countCards("h");
+ if (nh <= 2) {
+ return 6 - get.value(card);
+ }
+ if (nh <= 3) {
+ return 2 - get.value(card);
+ }
+ return 0;
+ });
} else {
event.finish();
}
@@ -7946,10 +7431,7 @@ game.import("character", function () {
return get.color(card) == "black";
},
viewAsFilter: function (player) {
- return (
- player.getExpansions("jieyue").length &&
- player.countCards("hs", { color: "black" }) > 0
- );
+ return player.getExpansions("jieyue").length && player.countCards("hs", { color: "black" }) > 0;
},
position: "hs",
viewAs: { name: "wuxie" },
@@ -7967,21 +7449,14 @@ game.import("character", function () {
position: "hs",
viewAs: { name: "shan" },
viewAsFilter: function (player) {
- return (
- player.getExpansions("jieyue").length &&
- player.countCards("hs", { color: "red" }) > 0
- );
+ return player.getExpansions("jieyue").length && player.countCards("hs", { color: "red" }) > 0;
},
prompt: "将一张红色手牌当闪使用或打出",
check: () => 1,
ai: {
respondShan: true,
skillTagFilter: function (player) {
- if (
- !player.getExpansions("jieyue").length ||
- !player.countCards("hs", { color: "red" })
- )
- return false;
+ if (!player.getExpansions("jieyue").length || !player.countCards("hs", { color: "red" })) return false;
},
effect: {
target: function (card, player, target, current) {
@@ -8021,12 +7496,7 @@ game.import("character", function () {
firstDo: true,
forced: true,
filter: function (event, player) {
- return (
- event.card.name == "sha" &&
- !event.skill &&
- event.cards.length == 1 &&
- event.cards[0].name == "jiu"
- );
+ return event.card.name == "sha" && !event.skill && event.cards.length == 1 && event.cards[0].name == "jiu";
},
content: function () {},
},
@@ -8055,10 +7525,7 @@ game.import("character", function () {
effect: {
player: function (card, player, target, current, isLink) {
if (isLink || !player.storage.xinxianzhen) return;
- if (
- target != player.storage.xinxianzhen &&
- ["sha", "guohe", "shunshou", "huogong", "juedou"].includes(card.name)
- ) {
+ if (target != player.storage.xinxianzhen && ["sha", "guohe", "shunshou", "huogong", "juedou"].includes(card.name)) {
if (get.effect(player.storage.xinxianzhen, card, player, player) > 0) {
return [1, 2];
}
@@ -8068,14 +7535,7 @@ game.import("character", function () {
},
trigger: { player: "useCard2" },
filter: function (event, player) {
- return (
- player.storage.xinxianzhen &&
- player.storage.xinxianzhen.isIn() &&
- (event.card.name == "sha" || get.type(event.card) == "trick") &&
- event.targets &&
- event.targets.length == 1 &&
- !event.targets.includes(player.storage.xinxianzhen)
- );
+ return player.storage.xinxianzhen && player.storage.xinxianzhen.isIn() && (event.card.name == "sha" || get.type(event.card) == "trick") && event.targets && event.targets.length == 1 && !event.targets.includes(player.storage.xinxianzhen);
},
check: function (event, player) {
return get.effect(player.storage.xinxianzhen, event.card, player, player) > 0;
@@ -8083,12 +7543,7 @@ game.import("character", function () {
logTarget: function (event, player) {
return player.storage.xinxianzhen;
},
- prompt2: (event, player) =>
- "令" +
- get.translation(player.storage.decadexianzhen2) +
- "也成为" +
- get.translation(event.card) +
- "的目标",
+ prompt2: (event, player) => "令" + get.translation(player.storage.decadexianzhen2) + "也成为" + get.translation(event.card) + "的目标",
content: function () {
var target = player.storage.xinxianzhen;
trigger.targets.push(target);
@@ -8141,11 +7596,7 @@ game.import("character", function () {
return 1;
}
for (var i = 0; i < cards.length; i++) {
- if (
- cards[i].name != "sha" &&
- get.number(cards[i]) > 11 &&
- get.value(cards[i]) < 7
- ) {
+ if (cards[i].name != "sha" && get.number(cards[i]) > 11 && get.value(cards[i]) < 7) {
return 9;
}
}
@@ -8239,16 +7690,9 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("lihuo"),
- "为" + get.translation(trigger.card) + "增加一个目标",
- function (card, player, target) {
- return (
- !_status.event.sourcex.includes(target) &&
- player.canUse(_status.event.card, target)
- );
- }
- )
+ .chooseTarget(get.prompt("lihuo"), "为" + get.translation(trigger.card) + "增加一个目标", function (card, player, target) {
+ return !_status.event.sourcex.includes(target) && player.canUse(_status.event.card, target);
+ })
.set("sourcex", trigger.targets)
.set("card", trigger.card)
.set("ai", function (target) {
@@ -8286,11 +7730,7 @@ game.import("character", function () {
audio: 2,
audioname: ["xin_chengpu"],
filter: function (event, player) {
- return (
- player.countCards("h") > 0 &&
- (_status.connectMode || player.countCards("h", "sha") > 0) &&
- !player.getExpansions("chunlao").length
- );
+ return player.countCards("h") > 0 && (_status.connectMode || player.countCards("h", "sha") > 0) && !player.getExpansions("chunlao").length;
},
intro: {
content: "expansion",
@@ -8315,12 +7755,7 @@ game.import("character", function () {
effect: {
player: function (card, player, target) {
if (_status.currentPhase != player) return;
- if (
- card.name == "sha" &&
- !player.needsToDiscard() &&
- !player.getExpansions("chunlao").length &&
- target.hp > 1
- ) {
+ if (card.name == "sha" && !player.needsToDiscard() && !player.getExpansions("chunlao").length && target.hp > 1) {
return "zeroplayertarget";
}
},
@@ -8332,12 +7767,7 @@ game.import("character", function () {
chunlao2: {
enable: "chooseToUse",
filter: function (event, player) {
- return (
- event.type == "dying" &&
- event.dying &&
- event.dying.hp <= 0 &&
- player.getExpansions("chunlao").length > 0
- );
+ return event.type == "dying" && event.dying && event.dying.hp <= 0 && player.getExpansions("chunlao").length > 0;
},
filterTarget: function (card, player, target) {
return target == _status.event.dying;
@@ -8348,11 +7778,7 @@ game.import("character", function () {
selectTarget: -1,
content: function () {
"step 0";
- player.chooseCardButton(
- get.translation("chunlao"),
- player.getExpansions("chunlao"),
- true
- );
+ player.chooseCardButton(get.translation("chunlao"), player.getExpansions("chunlao"), true);
"step 1";
if (result.bool) {
player.logSkill("chunlao", target);
@@ -8418,15 +7844,7 @@ game.import("character", function () {
if (event.type != "discard" || event.getlx === false) return;
var evt = event.getl(player);
for (var i = 0; i < evt.cards2.length; i++) {
- if (
- get.color(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) ==
- "black" &&
- get.type(evt.cards2[i]) == "basic" &&
- get.position(
- evt.cards2[i],
- evt.hs.includes(evt.cards2[i]) ? evt.player : false
- ) == "d"
- ) {
+ if (get.color(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) == "black" && get.type(evt.cards2[i]) == "basic" && get.position(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) == "d") {
return true;
}
}
@@ -8439,13 +7857,7 @@ game.import("character", function () {
var cards = [];
var evt = trigger.getl(player);
for (var i = 0; i < evt.cards2.length; i++) {
- if (
- get.color(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) ==
- "black" &&
- get.type(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) ==
- "basic" &&
- get.position(evt.cards2[i]) == "d"
- ) {
+ if (get.color(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) == "black" && get.type(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false) == "basic" && get.position(evt.cards2[i]) == "d") {
cards.push(evt.cards2[i]);
}
}
@@ -8457,27 +7869,13 @@ game.import("character", function () {
"step 1";
if (event.cards.length) {
player
- .chooseTarget(
- get.prompt("shenduan"),
- "将" +
- get.translation(event.cards) +
- (event.cards.length > 1 ? "中的一张牌" : "") +
- "当做【兵粮寸断】对一名其他角色使用",
- function (card, player, target) {
- var cs = _status.event.cards;
- for (var i = 0; i < cs.length; i++) {
- if (
- player.canUse(
- { name: "bingliang", cards: [cs[i]] },
- target,
- false
- )
- )
- return true;
- }
- return false;
+ .chooseTarget(get.prompt("shenduan"), "将" + get.translation(event.cards) + (event.cards.length > 1 ? "中的一张牌" : "") + "当做【兵粮寸断】对一名其他角色使用", function (card, player, target) {
+ var cs = _status.event.cards;
+ for (var i = 0; i < cs.length; i++) {
+ if (player.canUse({ name: "bingliang", cards: [cs[i]] }, target, false)) return true;
}
- )
+ return false;
+ })
.set("ai", function (target) {
var player = _status.event.player;
return get.effect(target, { name: "bingliang" }, player, player);
@@ -8496,11 +7894,7 @@ game.import("character", function () {
player
.chooseCardButton("选择一张牌当作兵断寸断使用", event.cards, true)
.set("filterButton", function (button) {
- return player.canUse(
- { name: "bingliang", cards: [button.link] },
- _status.event.target,
- false
- );
+ return player.canUse({ name: "bingliang", cards: [button.link] }, _status.event.target, false);
})
.set("target", event.current);
}
@@ -8517,12 +7911,7 @@ game.import("character", function () {
if (card) {
event.cards.remove(card);
player.line(event.current);
- player.useCard(
- { name: "bingliang" },
- event.current,
- [card],
- "shenduan"
- ).animate = false;
+ player.useCard({ name: "bingliang" }, event.current, [card], "shenduan").animate = false;
event.goto(1);
}
},
@@ -8537,13 +7926,7 @@ game.import("character", function () {
if (event.type != "discard" || event.getlx === false) return;
var evt = event.getl(player);
for (var i = 0; i < evt.cards2.length; i++) {
- if (
- get.color(evt.cards2[i], player) == "black" &&
- ["basic", "equip"].includes(
- get.type(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false)
- ) &&
- get.position(evt.cards2[i]) == "d"
- ) {
+ if (get.color(evt.cards2[i], player) == "black" && ["basic", "equip"].includes(get.type(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false)) && get.position(evt.cards2[i]) == "d") {
return true;
}
}
@@ -8555,13 +7938,7 @@ game.import("character", function () {
var cards = [];
var evt = trigger.getl(player);
for (var i = 0; i < evt.cards2.length; i++) {
- if (
- get.color(evt.cards2[i], player) == "black" &&
- ["basic", "equip"].includes(
- get.type(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false)
- ) &&
- get.position(evt.cards2[i]) == "d"
- ) {
+ if (get.color(evt.cards2[i], player) == "black" && ["basic", "equip"].includes(get.type(evt.cards2[i], evt.hs.includes(evt.cards2[i]) ? evt.player : false)) && get.position(evt.cards2[i]) == "d") {
cards.push(evt.cards2[i]);
}
}
@@ -8573,27 +7950,13 @@ game.import("character", function () {
"step 1";
if (event.cards.length) {
player
- .chooseTarget(
- get.prompt("shenduan"),
- "将" +
- get.translation(event.cards) +
- (event.cards.length > 1 ? "中的一张牌" : "") +
- "当做【兵粮寸断】对一名其他角色使用",
- function (card, player, target) {
- var cs = _status.event.cards;
- for (var i = 0; i < cs.length; i++) {
- if (
- player.canUse(
- { name: "bingliang", cards: [cs[i]] },
- target,
- false
- )
- )
- return true;
- }
- return false;
+ .chooseTarget(get.prompt("shenduan"), "将" + get.translation(event.cards) + (event.cards.length > 1 ? "中的一张牌" : "") + "当做【兵粮寸断】对一名其他角色使用", function (card, player, target) {
+ var cs = _status.event.cards;
+ for (var i = 0; i < cs.length; i++) {
+ if (player.canUse({ name: "bingliang", cards: [cs[i]] }, target, false)) return true;
}
- )
+ return false;
+ })
.set("ai", function (target) {
var player = _status.event.player;
return get.effect(target, { name: "bingliang" }, player, player);
@@ -8612,11 +7975,7 @@ game.import("character", function () {
player
.chooseCardButton("选择一张牌当作兵断寸断使用", event.cards, true)
.set("filterButton", function (button) {
- return player.canUse(
- { name: "bingliang", cards: [button.link] },
- _status.event.target,
- false
- );
+ return player.canUse({ name: "bingliang", cards: [button.link] }, _status.event.target, false);
})
.set("target", event.current);
}
@@ -8633,12 +7992,7 @@ game.import("character", function () {
if (card) {
event.cards.remove(card);
player.line(event.current);
- player.useCard(
- { name: "bingliang" },
- event.current,
- [card],
- "reshenduan"
- ).animate = false;
+ player.useCard({ name: "bingliang" }, event.current, [card], "reshenduan").animate = false;
event.goto(1);
}
},
@@ -8655,11 +8009,7 @@ game.import("character", function () {
var att = get.attitude(player, trigger.player);
var nh = trigger.player.countCards("h");
var eff = get.effect(trigger.player, { name: "sha", isCard: true }, player, player);
- if (
- player.inRange(trigger.player) ||
- !player.canUse({ name: "sha", isCard: true }, trigger.player, false)
- )
- eff = 0;
+ if (player.inRange(trigger.player) || !player.canUse({ name: "sha", isCard: true }, trigger.player, false)) eff = 0;
player
.discardPlayerCard(get.prompt("yonglve", trigger.player), trigger.player, "j")
.set("ai", function (button) {
@@ -8690,10 +8040,7 @@ game.import("character", function () {
.set("logSkill", ["reyonglve", trigger.player]);
"step 1";
if (result.bool) {
- if (
- !player.inRange(trigger.player) &&
- player.canUse({ name: "sha", isCard: true }, trigger.player, false)
- ) {
+ if (!player.inRange(trigger.player) && player.canUse({ name: "sha", isCard: true }, trigger.player, false)) {
player.useCard({ name: "sha", isCard: true }, trigger.player);
} else player.draw();
}
@@ -8704,11 +8051,7 @@ game.import("character", function () {
direct: true,
audio: 2,
filter: function (event, player) {
- return (
- event.player != player &&
- event.player.countCards("j") > 0 &&
- player.inRange(event.player)
- );
+ return event.player != player && event.player.countCards("j") > 0 && player.inRange(event.player);
},
content: function () {
"step 0";
@@ -8855,8 +8198,7 @@ game.import("character", function () {
if (event.player.hasSkill("paoxiao")) return false;
var players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (event.player.canUse("sha", players[i]) && get.attitude(player, players[i]) > 0)
- break;
+ if (event.player.canUse("sha", players[i]) && get.attitude(player, players[i]) > 0) break;
}
if (i == players.length) return false;
var nh = event.player.countCards("h");
@@ -8920,12 +8262,9 @@ game.import("character", function () {
var cards = trigger.responded.cards;
event.cards = cards;
player
- .chooseTarget(
- "忠勇:将" + get.translation(trigger.responded.cards) + "交给一名角色",
- function (card, player, target) {
- return target != _status.event.source;
- }
- )
+ .chooseTarget("忠勇:将" + get.translation(trigger.responded.cards) + "交给一名角色", function (card, player, target) {
+ return target != _status.event.source;
+ })
.set("ai", function (target) {
var att = get.attitude(_status.event.player, target);
if (target.countCards("h", "shan") && target.countCards("h") >= 2) {
@@ -8945,14 +8284,7 @@ game.import("character", function () {
event.finish();
}
"step 2";
- player
- .chooseToUse(
- "是否对" + get.translation(trigger.target) + "再使用一张杀?",
- { name: "sha" },
- trigger.target,
- -1
- )
- .set("addCount", false);
+ player.chooseToUse("是否对" + get.translation(trigger.target) + "再使用一张杀?", { name: "sha" }, trigger.target, -1).set("addCount", false);
},
},
xinzhongyong: {
@@ -8968,8 +8300,7 @@ game.import("character", function () {
event.shan = [];
game.countPlayer2(function (current) {
current.getHistory("useCard", function (evt) {
- if (evt.card.name == "shan" && evt.getParent(3) == trigger)
- event.shan.addArray(evt.cards);
+ if (evt.card.name == "shan" && evt.getParent(3) == trigger) event.shan.addArray(evt.cards);
});
});
event.shan.filterInD("d");
@@ -8990,10 +8321,7 @@ game.import("character", function () {
if (event.sha.length && event.shan.length) {
player
.chooseControl()
- .set("choiceList", [
- "将" + get.translation(event.sha) + "交给" + get.translation(target),
- "将" + get.translation(event.shan) + "交给" + get.translation(target),
- ])
+ .set("choiceList", ["将" + get.translation(event.sha) + "交给" + get.translation(target), "将" + get.translation(event.shan) + "交给" + get.translation(target)])
.set("ai", function () {
return _status.event.choice;
})
@@ -9023,11 +8351,7 @@ game.import("character", function () {
event.target
.chooseToUse("是否使用一张杀?", { name: "sha" })
.set("filterTarget", function (card, player, target) {
- return (
- target != _status.event.sourcex &&
- _status.event.sourcex.inRange(target) &&
- lib.filter.targetEnabled.apply(this, arguments)
- );
+ return target != _status.event.sourcex && _status.event.sourcex.inRange(target) && lib.filter.targetEnabled.apply(this, arguments);
})
.set("sourcex", player)
.set("addCount", false);
@@ -9046,19 +8370,16 @@ game.import("character", function () {
longyin: {
audio: 2,
shaRelated: true,
- init: (player) => {
+ init: player => {
game.addGlobalSkill("longyin_order");
},
- onremove: (player) => {
- if (!game.hasPlayer((current) => current.hasSkill("longyin"), true))
- game.removeGlobalSkill("longyin_order");
+ onremove: player => {
+ if (!game.hasPlayer(current => current.hasSkill("longyin"), true)) game.removeGlobalSkill("longyin_order");
},
trigger: { global: "useCard" },
direct: true,
filter: function (event, player) {
- return (
- event.card.name == "sha" && player.countCards("he") > 0 && event.player.isPhaseUsing()
- );
+ return event.card.name == "sha" && player.countCards("he") > 0 && event.player.isPhaseUsing();
},
content: function () {
"step 0";
@@ -9067,13 +8388,7 @@ game.import("character", function () {
if (get.color(trigger.card) == "red") {
go = true;
} else if (trigger.addCount === false || !trigger.player.isPhaseUsing()) go = false;
- else if (
- !trigger.player.hasSkill("paoxiao") &&
- !trigger.player.hasSkill("tanlin3") &&
- !trigger.player.hasSkill("zhaxiang2") &&
- !trigger.player.hasSkill("fengnu") &&
- !trigger.player.getEquip("zhuge")
- ) {
+ else if (!trigger.player.hasSkill("paoxiao") && !trigger.player.hasSkill("tanlin3") && !trigger.player.hasSkill("zhaxiang2") && !trigger.player.hasSkill("fengnu") && !trigger.player.getEquip("zhuge")) {
var nh = trigger.player.countCards("h");
if (player == trigger.player) {
go = player.countCards("h", "sha") > 0;
@@ -9100,22 +8415,12 @@ game.import("character", function () {
!event.isMine() &&
!event.isOnline() &&
player.hasCard(function (card) {
- return (
- get.value(card) < 6 && lib.filter.cardDiscardable(card, player, event.name)
- );
+ return get.value(card) < 6 && lib.filter.cardDiscardable(card, player, event.name);
}, "he")
) {
game.delayx();
}
- var next = player.chooseToDiscard(
- get.prompt("longyin"),
- "弃置一张牌" +
- (get.color(trigger.card) == "red" ? "并摸一张牌" : "") +
- ",令" +
- get.translation(trigger.player) +
- "本次使用的【杀】不计入使用次数",
- "he"
- );
+ var next = player.chooseToDiscard(get.prompt("longyin"), "弃置一张牌" + (get.color(trigger.card) == "red" ? "并摸一张牌" : "") + ",令" + get.translation(trigger.player) + "本次使用的【杀】不计入使用次数", "he");
next.logSkill = ["longyin", trigger.player];
next.set("ai", function (card) {
if (_status.event.go) {
@@ -9144,10 +8449,8 @@ game.import("character", function () {
mod: {
aiOrder: (player, card, num) => {
if (num && card.name === "sha" && get.color(card) === "red") {
- let gp = game.findPlayer((current) => {
- return (
- current.hasSkill("longyin") && current.hasCard((i) => true, "he")
- );
+ let gp = game.findPlayer(current => {
+ return current.hasSkill("longyin") && current.hasCard(i => true, "he");
});
if (gp) return num + 0.15 * Math.sign(get.attitude(player, gp));
}
@@ -9155,7 +8458,7 @@ game.import("character", function () {
},
trigger: { player: "dieAfter" },
filter: (event, player) => {
- return !game.hasPlayer((current) => current.hasSkill("longyin"), true);
+ return !game.hasPlayer(current => current.hasSkill("longyin"), true);
},
silent: true,
forceDie: true,
@@ -9198,11 +8501,7 @@ game.import("character", function () {
filter: function (event, player) {
if (!_status.currentPhase || event.shifei) return false;
if (!event.filterCard({ name: "shan", isCard: true }, player, event)) return false;
- if (
- event.name != "chooseToUse" &&
- !lib.filter.cardRespondable({ name: "shan", isCard: true }, player, event)
- )
- return false;
+ if (event.name != "chooseToUse" && !lib.filter.cardRespondable({ name: "shan", isCard: true }, player, event)) return false;
return true;
},
delay: false,
@@ -9212,8 +8511,7 @@ game.import("character", function () {
var players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
if (players[i].countCards("h") >= nh) {
- if (!player.countCards("h", "shan") || get.attitude(player, players[i]) <= 0)
- return true;
+ if (!player.countCards("h", "shan") || get.attitude(player, players[i]) <= 0) return true;
}
}
return false;
@@ -9292,9 +8590,7 @@ game.import("character", function () {
usable: 1,
delay: false,
filter: function (event, player) {
- return (
- player.countCards("h", { color: "red" }) && player.countCards("h", { color: "black" })
- );
+ return player.countCards("h", { color: "red" }) && player.countCards("h", { color: "black" });
},
content: function () {
"step 0";
@@ -9302,11 +8598,7 @@ game.import("character", function () {
"step 1";
player.chooseControl("红色", "黑色").set("ai", function () {
var player = _status.event.player;
- if (
- player.countCards("h", { color: "red" }) == 1 &&
- player.countCards("h", { color: "black" }) > 1
- )
- return "红色";
+ if (player.countCards("h", { color: "red" }) == 1 && player.countCards("h", { color: "black" }) > 1) return "红色";
return "黑色";
});
"step 2";
@@ -9321,15 +8613,9 @@ game.import("character", function () {
event.num = cards.length;
"step 3";
player
- .chooseTarget(
- "请选择至多" +
- get.cnNumber(event.num) +
- "名有牌的其他角色,获得这些角色的各一张牌。",
- [1, event.num],
- function (card, player, target) {
- return target != player && target.countCards("he") > 0;
- }
- )
+ .chooseTarget("请选择至多" + get.cnNumber(event.num) + "名有牌的其他角色,获得这些角色的各一张牌。", [1, event.num], function (card, player, target) {
+ return target != player && target.countCards("he") > 0;
+ })
.set("ai", function (target) {
return -get.attitude(_status.event.player, target) + 0.5;
});
@@ -9461,9 +8747,7 @@ game.import("character", function () {
filterTarget: lib.filter.notMe,
derivation: ["reyanzhu_rewrite", "rexingxue_rewrite"],
prompt: function () {
- return lib.translate[
- (_status.event.player.storage.reyanzhu ? "reyanzhu_rewrite" : "reyanzhu") + "_info"
- ];
+ return lib.translate[(_status.event.player.storage.reyanzhu ? "reyanzhu_rewrite" : "reyanzhu") + "_info"];
},
content: function () {
"step 0";
@@ -9472,10 +8756,7 @@ game.import("character", function () {
target
.chooseControl()
.set("prompt", get.translation(player) + "发动了【宴诛】,请选择一项")
- .set("choiceList", [
- "将装备区内的所有牌交给" + get.translation(player) + "并令其修改技能",
- "弃置一张牌,并令下次受到的伤害+1直到下回合开始",
- ])
+ .set("choiceList", ["将装备区内的所有牌交给" + get.translation(player) + "并令其修改技能", "弃置一张牌,并令下次受到的伤害+1直到下回合开始"])
.set("ai", function () {
if (_status.event.player.countCards("e") >= 3) return 1;
return 0;
@@ -9487,8 +8768,7 @@ game.import("character", function () {
} else {
target.addTempSkill("reyanzhu2", { player: "phaseBegin" });
target.addMark("reyanzhu2", 1, false);
- if (!player.storage.reyanzhu && target.countCards("he") > 0)
- target.chooseToDiscard("he", true);
+ if (!player.storage.reyanzhu && target.countCards("he") > 0) target.chooseToDiscard("he", true);
}
},
ai: {
@@ -9526,17 +8806,11 @@ game.import("character", function () {
},
content: function () {
"step 0";
- player
- .chooseTarget(
- [1, player.storage.reyanzhu ? player.maxHp : player.hp],
- get.prompt("rexingxue"),
- "令所有目标角色依次摸一张牌,然后所有手牌数大于体力值的目标角色依次将一张牌置于牌堆顶"
- )
- .set("ai", function (target) {
- var att = get.attitude(player, target);
- if (target.countCards("h") == target.hp - 1) att *= 2;
- return att;
- });
+ player.chooseTarget([1, player.storage.reyanzhu ? player.maxHp : player.hp], get.prompt("rexingxue"), "令所有目标角色依次摸一张牌,然后所有手牌数大于体力值的目标角色依次将一张牌置于牌堆顶").set("ai", function (target) {
+ var att = get.attitude(player, target);
+ if (target.countCards("h") == target.hp - 1) att *= 2;
+ return att;
+ });
"step 1";
if (result.bool) {
event.targets = result.targets.sortBySeat();
@@ -9551,19 +8825,13 @@ game.import("character", function () {
if (event.target.isDead()) event.redo();
} else event.finish();
"step 4";
- if (target.isIn() && target.countCards("h") && target.countCards("h") > target.hp)
- target.chooseCard("he", true, "将一张牌置于牌堆顶");
+ if (target.isIn() && target.countCards("h") && target.countCards("h") > target.hp) target.chooseCard("he", true, "将一张牌置于牌堆顶");
else event.goto(3);
"step 5";
if (result && result.cards) {
event.card = result.cards[0];
target.lose(result.cards, ui.cardPile, "insert");
- game.log(
- target,
- "将",
- get.position(event.card) == "h" ? "一张牌" : event.card,
- "置于牌堆顶"
- );
+ game.log(target, "将", get.position(event.card) == "h" ? "一张牌" : event.card, "置于牌堆顶");
game.broadcastAll(function (player) {
var cardx = ui.create.card();
cardx.classList.add("infohidden");
@@ -9585,11 +8853,7 @@ game.import("character", function () {
if (from.group != "wu") return;
var players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- from != players[i] &&
- to != players[i] &&
- players[i].hasZhuSkill("rezhaofu", from)
- ) {
+ if (from != players[i] && to != players[i] && players[i].hasZhuSkill("rezhaofu", from)) {
if (players[i].inRange(to)) return true;
}
}
@@ -9608,11 +8872,7 @@ game.import("character", function () {
if (from.group != "wu") return;
var players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- from != players[i] &&
- to != players[i] &&
- players[i].hasZhuSkill("zhaofu", from)
- ) {
+ if (from != players[i] && to != players[i] && players[i].hasZhuSkill("zhaofu", from)) {
if (get.distance(players[i], to) <= 1) return true;
}
}
@@ -9630,13 +8890,11 @@ game.import("character", function () {
}
const {
result: { targets, bool },
- } = await player
- .chooseTarget([1, num], get.prompt2("xingxue"))
- .set("ai", function (target) {
- var att = get.attitude(_status.event.player, target);
- if (target.countCards("he")) return att;
- return att / 10;
- });
+ } = await player.chooseTarget([1, num], get.prompt2("xingxue")).set("ai", function (target) {
+ var att = get.attitude(_status.event.player, target);
+ if (target.countCards("he")) return att;
+ return att / 10;
+ });
if (bool) {
player.logSkill("xingxue", targets);
const chooseToPutCard = async function (target) {
@@ -9673,12 +8931,10 @@ game.import("character", function () {
content: function () {
"step 0";
if (target.countCards("e")) {
- target
- .chooseBool("是否将装备区内的所有牌交给" + get.translation(player) + "?")
- .set("ai", function () {
- if (_status.event.player.countCards("e") >= 3) return false;
- return true;
- });
+ target.chooseBool("是否将装备区内的所有牌交给" + get.translation(player) + "?").set("ai", function () {
+ if (_status.event.player.countCards("e") >= 3) return false;
+ return true;
+ });
} else {
target.chooseToDiscard(true, "he");
event.finish();
@@ -9716,7 +8972,7 @@ game.import("character", function () {
if (player.hp != 1) return false;
},
respondSha: true,
- halfneg: true
+ halfneg: true,
},
audio: 2,
audioname: ["xin_zhangyi"],
@@ -9724,12 +8980,7 @@ game.import("character", function () {
firstDo: true,
forced: true,
filter: function (event, player) {
- return (
- event.card.name == "sha" &&
- !event.skill &&
- event.cards.length == 1 &&
- event.cards[0].name == "shan"
- );
+ return event.card.name == "sha" && !event.skill && event.cards.length == 1 && event.cards[0].name == "shan";
},
content: function () {},
},
@@ -9906,8 +9157,7 @@ game.import("character", function () {
selectCard: -1,
position: "h",
filter: function (event, player) {
- if (player.getStat().skill.zhanjue_draw && player.getStat().skill.zhanjue_draw >= 2)
- return false;
+ if (player.getStat().skill.zhanjue_draw && player.getStat().skill.zhanjue_draw >= 2) return false;
var hs = player.getCards("h");
if (!hs.length) return false;
for (var i = 0; i < hs.length; i++) {
@@ -9936,8 +9186,7 @@ game.import("character", function () {
)
)
return;
- if (player.countCards("h") >= 3 || target.countCards("h") >= 3)
- return "zeroplayertarget";
+ if (player.countCards("h") >= 3 || target.countCards("h") >= 3) return "zeroplayertarget";
if (player.countCards("h", "tao")) return "zeroplayertarget";
if (target.countCards("h", "sha") > 1) return "zeroplayertarget";
}
@@ -9945,13 +9194,7 @@ game.import("character", function () {
},
nokeep: true,
skillTagFilter: function (player, tag, arg) {
- if (tag === "nokeep")
- return (
- (!arg || (arg.card && get.name(arg.card) === "tao")) &&
- player.isPhaseUsing() &&
- player.countSkill("zhanjue_draw") < 2 &&
- player.hasCard((card) => get.name(card) != "tao", "h")
- );
+ if (tag === "nokeep") return (!arg || (arg.card && get.name(arg.card) === "tao")) && player.isPhaseUsing() && player.countSkill("zhanjue_draw") < 2 && player.hasCard(card => get.name(card) != "tao", "h");
},
},
},
@@ -10043,13 +9286,7 @@ game.import("character", function () {
if (player.hasSkill("qinwang_ai")) return false;
for (var i = 0; i < players.length; i++) {
var nh = players[i].countCards("h");
- if (
- players[i] != player &&
- players[i].group == "shu" &&
- get.attitude(players[i], player) > 2 &&
- nh >= 3 &&
- players[i].countCards("h", "sha")
- ) {
+ if (players[i] != player && players[i].group == "shu" && get.attitude(players[i], player) > 2 && nh >= 3 && players[i].countCards("h", "sha")) {
return 5 - get.value(card);
}
}
@@ -10096,10 +9333,7 @@ game.import("character", function () {
trigger.cancel();
trigger.getParent().goto(0);
} else if (event.current.group == "shu") {
- var next = event.current.chooseToRespond(
- "是否替" + get.translation(player) + "打出一张杀?",
- { name: "sha" }
- );
+ var next = event.current.chooseToRespond("是否替" + get.translation(player) + "打出一张杀?", { name: "sha" });
next.set("ai", function () {
var event = _status.event;
return get.attitude(event.player, event.source) - 2;
@@ -10152,13 +9386,9 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("zuoding"),
- "令一名目标角色摸一张牌",
- function (card, player, target) {
- return _status.event.targets.includes(target);
- }
- )
+ .chooseTarget(get.prompt("zuoding"), "令一名目标角色摸一张牌", function (card, player, target) {
+ return _status.event.targets.includes(target);
+ })
.set("ai", function (target) {
return get.attitude(_status.event.player, target);
})
@@ -10239,8 +9469,7 @@ game.import("character", function () {
if (name == "sha") {
for (var nature of lib.inpile_nature) {
card.nature = nature;
- if (event.filterCard(card, player, event))
- vcards.push(["基本", "", name, nature]);
+ if (event.filterCard(card, player, event)) vcards.push(["基本", "", name, nature]);
}
}
}
@@ -10251,10 +9480,7 @@ game.import("character", function () {
var card = { name: button.link[2], nature: button.link[3] };
if (
game.hasPlayer(function (current) {
- return (
- player.canUse(card, current) &&
- get.effect(current, card, player, player) > 0
- );
+ return player.canUse(card, current) && get.effect(current, card, player, player) > 0;
})
) {
switch (button.link[2]) {
@@ -10304,11 +9530,7 @@ game.import("character", function () {
};
},
prompt: function (links, player) {
- return (
- "将一张黑色非基本牌置于牌堆顶并视为使用一张" +
- get.translation(links[0][3] || "") +
- get.translation(links[0][2])
- );
+ return "将一张黑色非基本牌置于牌堆顶并视为使用一张" + get.translation(links[0][3] || "") + get.translation(links[0][2]);
},
},
ai: {
@@ -10316,11 +9538,7 @@ game.import("character", function () {
var player = _status.event.player;
var event = _status.event;
var list = lib.skill.huomo.getUsed(player);
- if (
- !list.includes("jiu") &&
- event.filterCard({ name: "jiu" }, player, event) &&
- get.effect(player, { name: "jiu" }) > 0
- ) {
+ if (!list.includes("jiu") && event.filterCard({ name: "jiu" }, player, event) && get.effect(player, { name: "jiu" }) > 0) {
return 3.1;
}
return 2.9;
@@ -10448,18 +9666,11 @@ game.import("character", function () {
check: function (event, player) {
if (get.attitude(player, event.target) >= 0) return false;
var cards = event.target.getCards("h");
- if (cards.filter((card) => player.hasUseTarget(card)).length >= cards.length / 2)
- return true;
+ if (cards.filter(card => player.hasUseTarget(card)).length >= cards.length / 2) return true;
return false;
},
filter: function (event, player) {
- return (
- player.isPhaseUsing() &&
- event.targets.length == 1 &&
- event.target.countCards("h") > 0 &&
- player != event.target &&
- !player.hasSkill("taoxi_used")
- );
+ return player.isPhaseUsing() && event.targets.length == 1 && event.target.countCards("h") > 0 && player != event.target && !player.hasSkill("taoxi_used");
},
logTarget: "target",
content: function () {
@@ -10468,15 +9679,9 @@ game.import("character", function () {
"step 1";
if (result.bool) {
var card = result.links[0];
- player.showCards(
- card,
- get.translation(player) +
- "对" +
- get.translation(trigger.target) +
- "发动了【讨袭】"
- );
+ player.showCards(card, get.translation(player) + "对" + get.translation(trigger.target) + "发动了【讨袭】");
if (!player.storage.taoxi_list) player.storage.taoxi_list = [[], []];
- if (!player.storage.taoxi_list[1].some((i) => i._cardid == card.cardid)) {
+ if (!player.storage.taoxi_list[1].some(i => i._cardid == card.cardid)) {
var cardx = ui.create.card();
cardx.init(get.cardInfo(card));
cardx._cardid = card.cardid;
@@ -10504,7 +9709,7 @@ game.import("character", function () {
var list = player.storage.taoxi_list[1];
return (
event.cards &&
- event.cards.some((card) => {
+ event.cards.some(card => {
return list.includes(card);
})
);
@@ -10517,10 +9722,7 @@ game.import("character", function () {
for (var i = 0; i < list[0].length; i++) {
if (list[1][i] == card) {
var cardid = card._cardid;
- var cardx = list[0][i].getCards(
- "h",
- (cardxx) => cardxx.cardid == cardid
- )[0];
+ var cardx = list[0][i].getCards("h", cardxx => cardxx.cardid == cardid)[0];
if (cardx && get.position(cardx) == "h") {
cards.push(cardx);
list[0][i].$throw(cardx);
@@ -10542,12 +9744,7 @@ game.import("character", function () {
if (list[1].includes(card)) return num + 0.5;
},
cardEnabled2: function (card) {
- if (
- get.itemtype(card) == "card" &&
- card.hasGaintag("taoxi") &&
- _status.event.name == "chooseToRespond"
- )
- return false;
+ if (get.itemtype(card) == "card" && card.hasGaintag("taoxi") && _status.event.name == "chooseToRespond") return false;
},
},
ai: {
@@ -10562,14 +9759,7 @@ game.import("character", function () {
},
lose: {
trigger: {
- global: [
- "loseEnd",
- "equipEnd",
- "addJudgeEnd",
- "gainEnd",
- "loseAsyncEnd",
- "addToExpansionEnd",
- ],
+ global: ["loseEnd", "equipEnd", "addJudgeEnd", "gainEnd", "loseAsyncEnd", "addToExpansionEnd"],
},
charlotte: true,
forced: true,
@@ -10584,8 +9774,8 @@ game.import("character", function () {
if (
evt &&
evt.hs &&
- evt.hs.some((card) => {
- return list[1].some((i) => i._cardid == card.cardid);
+ evt.hs.some(card => {
+ return list[1].some(i => i._cardid == card.cardid);
})
)
return true;
@@ -10600,8 +9790,8 @@ game.import("character", function () {
if (
evt &&
evt.hs &&
- evt.hs.some((card) => {
- return list[1].some((i) => i._cardid == card.cardid);
+ evt.hs.some(card => {
+ return list[1].some(i => i._cardid == card.cardid);
})
)
return true;
@@ -10610,7 +9800,7 @@ game.import("character", function () {
for (var target of targets) {
var hs = trigger.getl(target).hs;
for (var i = 0; i < list[0].length; i++) {
- if (hs.some((j) => j.cardid == list[1][i]._cardid)) {
+ if (hs.some(j => j.cardid == list[1][i]._cardid)) {
if (player.isOnline2()) {
player.send(
function (list, i) {
@@ -10638,7 +9828,7 @@ game.import("character", function () {
forced: true,
onremove: function (player) {
game.broadcastAll(function (player) {
- player.storage.taoxi_list[1].forEach((i) => i.delete());
+ player.storage.taoxi_list[1].forEach(i => i.delete());
delete player.storage.taoxi_list;
}, player);
},
@@ -10750,15 +9940,11 @@ game.import("character", function () {
player.hp <= 2 &&
player.countCards("h", "shan") &&
!game.hasPlayer(function (current) {
- return (
- get.attitude(current, player) > 3 &&
- current.countCards("h", "tao") > 0
- );
+ return get.attitude(current, player) > 3 && current.countCards("h", "tao") > 0;
})
)
return 0;
- if (target.countCards("h") + player.countCards("h") > target.hp + 2)
- return basis * 0.8;
+ if (target.countCards("h") + player.countCards("h") > target.hp + 2) return basis * 0.8;
return basis;
}
return 0;
@@ -10846,11 +10032,7 @@ game.import("character", function () {
"step 0";
var forced = event.forced === undefined ? false : event.forced;
var info = get.skillInfoTranslation("huituo", player);
- var str = `###${
- forced ? "恢拓:请选择一名角色" : get.prompt("huituo")
- }###令一名角色判定。若结果为红色,其回复1点体力;若结果为黑色,其摸${get.cnNumber(
- trigger.num
- )}张牌`;
+ var str = `###${forced ? "恢拓:请选择一名角色" : get.prompt("huituo")}###令一名角色判定。若结果为红色,其回复1点体力;若结果为黑色,其摸${get.cnNumber(trigger.num)}张牌`;
player.chooseTarget(str, event.forced).set("ai", function (target) {
var player = _status.event.player;
if (get.attitude(player, target) > 0) {
@@ -10890,9 +10072,7 @@ game.import("character", function () {
duodao: {
trigger: { player: "damageEnd" },
filter: function (event, player) {
- return (
- player.countCards("he") > 0 && event.source && event.card && event.card.name == "sha"
- );
+ return player.countCards("he") > 0 && event.source && event.card && event.card.name == "sha";
},
direct: true,
//priority:5,
@@ -10900,12 +10080,7 @@ game.import("character", function () {
content: function () {
"step 0";
var prompt = "弃置一张牌";
- if (trigger.source.getEquips(1).length)
- prompt +=
- ",然后获得" +
- get.translation(trigger.source) +
- "装备区中的" +
- get.translation(trigger.source.getEquips(1));
+ if (trigger.source.getEquips(1).length) prompt += ",然后获得" + get.translation(trigger.source) + "装备区中的" + get.translation(trigger.source.getEquips(1));
var next = player.chooseToDiscard("he", get.prompt("duodao", trigger.source), prompt);
next.logSkill = ["duodao", trigger.source];
next.set("ai", function (card) {
@@ -10946,8 +10121,7 @@ game.import("character", function () {
ai: {
unequip_ai: true,
skillTagFilter: function (player, tag, arg) {
- if (arg && arg.name == "sha" && arg.target && !arg.target.inRange(player))
- return true;
+ if (arg && arg.name == "sha" && arg.target && !arg.target.inRange(player)) return true;
return false;
},
},
@@ -10965,11 +10139,7 @@ game.import("character", function () {
},
charlotte: true,
filter: function (event, player) {
- return (
- player.storage.reanjian2 &&
- event.card &&
- player.storage.reanjian2.includes(event.card)
- );
+ return player.storage.reanjian2 && event.card && player.storage.reanjian2.includes(event.card);
},
silent: true,
forced: true,
@@ -11002,41 +10172,26 @@ game.import("character", function () {
reduodao: {
trigger: { target: "useCardToTargeted" },
filter: function (event, player) {
- return (
- event.card.name == "sha" &&
- (get.color(event.card) == "red"
- ? event.player.getEquips(1).length > 0
- : player.countCards("he") > 0)
- );
+ return event.card.name == "sha" && (get.color(event.card) == "red" ? event.player.getEquips(1).length > 0 : player.countCards("he") > 0);
},
direct: true,
audio: 2,
content: function () {
"step 0";
var prompt = "弃置一张牌";
- if (trigger.player.getEquips(1).length)
- prompt +=
- ",然后获得" +
- get.translation(trigger.player) +
- "装备区中的" +
- get.translation(trigger.player.getEquips(1));
+ if (trigger.player.getEquips(1).length) prompt += ",然后获得" + get.translation(trigger.player) + "装备区中的" + get.translation(trigger.player.getEquips(1));
var next = player.chooseToDiscard("he", get.prompt("reduodao", trigger.player), prompt);
next.logSkill = ["reduodao", trigger.player];
next.set("ai", function (card) {
if (!_status.event.getTrigger().player.getEquips(1).length) return 0;
- if (
- get.attitude(_status.event.player, _status.event.getTrigger().player) *
- get.value(_status.event.getTrigger().player.getEquips(1)) <=
- 0
- ) {
+ if (get.attitude(_status.event.player, _status.event.getTrigger().player) * get.value(_status.event.getTrigger().player.getEquips(1)) <= 0) {
return 6 - get.value(card);
}
return 0;
});
"step 1";
if (result.bool && trigger.player.getEquips(1).length) {
- if (!result.cards || !result.cards.length)
- player.logSkill("reduodao", trigger.player);
+ if (!result.cards || !result.cards.length) player.logSkill("reduodao", trigger.player);
player.gain(trigger.player.getEquips(1), trigger.player, "give", "bySelf");
}
},
@@ -11060,24 +10215,12 @@ game.import("character", function () {
trigger: { player: "useCardToPlayered" },
direct: true,
filter: function (event, player) {
- return (
- event.card.name == "sha" &&
- player.isPhaseUsing() &&
- event.target.hp > 0 &&
- event.target.countCards("he") > 0
- );
+ return event.card.name == "sha" && player.isPhaseUsing() && event.target.hp > 0 && event.target.countCards("he") > 0;
},
audio: 2,
content: function () {
"step 0";
- player
- .choosePlayerCard(
- trigger.target,
- "he",
- [1, Math.min(trigger.target.countCards("he"), trigger.target.hp)],
- get.prompt("xinpojun", trigger.target)
- )
- .set("forceAuto", true);
+ player.choosePlayerCard(trigger.target, "he", [1, Math.min(trigger.target.countCards("he"), trigger.target.hp)], get.prompt("xinpojun", trigger.target)).set("forceAuto", true);
"step 1";
if (result.bool && result.links.length) {
var target = trigger.target;
@@ -11091,8 +10234,7 @@ game.import("character", function () {
directHit_ai: true,
skillTagFilter: function (player, tag, arg) {
if (get.attitude(player, arg.target) > 0 || !player.isPhaseUsing()) return false;
- if (tag == "directHit_ai")
- return arg.target.hp >= Math.max(1, arg.target.countCards("h") - 1);
+ if (tag == "directHit_ai") return arg.target.hp >= Math.max(1, arg.target.countCards("h") - 1);
if (arg && arg.name == "sha" && arg.target.getEquip(2)) return true;
return false;
},
@@ -11127,11 +10269,7 @@ game.import("character", function () {
audio: 2,
trigger: { global: "phaseJieshuBegin" },
filter: function (event, player) {
- return (
- event.player != player &&
- event.player.countCards("h") == player.countCards("h") &&
- event.player.isIn()
- );
+ return event.player != player && event.player.countCards("h") == player.countCards("h") && event.player.isIn();
},
check: function (event, player) {
return get.attitude(player, event.player) >= 0;
@@ -11145,7 +10283,7 @@ game.import("character", function () {
audio: 2,
enable: "phaseUse",
filter: function (event, player) {
- return player.hasCard((card) => lib.skill.yanyu.filterCard(card, player), "h");
+ return player.hasCard(card => lib.skill.yanyu.filterCard(card, player), "h");
},
filterCard: (card, player) => get.name(card) == "sha" && player.canRecast(card),
discard: false,
@@ -11177,13 +10315,9 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("yanyu"),
- "令一名男性角色摸两张牌",
- function (card, player, target) {
- return target.hasSex("male") && target != player;
- }
- )
+ .chooseTarget(get.prompt("yanyu"), "令一名男性角色摸两张牌", function (card, player, target) {
+ return target.hasSex("male") && target != player;
+ })
.set("ai", function (target) {
return get.attitude(_status.event.player, target);
});
@@ -11276,12 +10410,7 @@ game.import("character", function () {
trigger: { source: "damageSource" },
forced: true,
filter: function (event, player) {
- if (
- ["new_rewusheng", "olpaoxiao"].every((skill) =>
- player.hasSkill(skill, null, false, false)
- )
- )
- return false;
+ if (["new_rewusheng", "olpaoxiao"].every(skill => player.hasSkill(skill, null, false, false))) return false;
return event.getParent().skill == "fuhun";
},
content: function () {
@@ -11340,10 +10469,7 @@ game.import("character", function () {
var num = 0,
players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- player != players[i] &&
- get.damageEffect(players[i], player, players[i], "fire") < 0
- ) {
+ if (player != players[i] && get.damageEffect(players[i], player, players[i], "fire") < 0) {
var att = get.attitude(player, players[i]);
if (att > 0) {
num -= Math.max(1, players[i].countCards("e"));
@@ -11379,11 +10505,7 @@ game.import("character", function () {
if (event.targets && !info.multitarget) {
if (
game.hasPlayer(function (current) {
- return (
- !event.targets.includes(current) &&
- lib.filter.targetEnabled2(event.card, player, current) &&
- lib.filter.targetInRange(event.card, player, current)
- );
+ return !event.targets.includes(current) && lib.filter.targetEnabled2(event.card, player, current) && lib.filter.targetInRange(event.card, player, current);
})
) {
return true;
@@ -11395,18 +10517,11 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("mieji"),
- "为" + get.translation(trigger.card) + "增加一个额外目标",
- function (card, player, target) {
- var player = _status.event.player;
- if (_status.event.targets.includes(target)) return false;
- return (
- lib.filter.targetEnabled2(_status.event.card, player, target) &&
- lib.filter.targetInRange(_status.event.card, player, target)
- );
- }
- )
+ .chooseTarget(get.prompt("mieji"), "为" + get.translation(trigger.card) + "增加一个额外目标", function (card, player, target) {
+ var player = _status.event.player;
+ if (_status.event.targets.includes(target)) return false;
+ return lib.filter.targetEnabled2(_status.event.card, player, target) && lib.filter.targetInRange(_status.event.card, player, target);
+ })
.set("autodelay", true)
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
@@ -11455,11 +10570,7 @@ game.import("character", function () {
return 8 - get.value(card);
})
.set("types", types)
- .set("dialog", [
- "弃置一张与" + get.translation(player) + "弃置的牌类别均不同的牌,或将武将牌翻面",
- "hidden",
- cards,
- ]);
+ .set("dialog", ["弃置一张与" + get.translation(player) + "弃置的牌类别均不同的牌,或将武将牌翻面", "hidden", cards]);
"step 1";
if (!result.bool) {
target.turnOver();
@@ -11482,19 +10593,12 @@ game.import("character", function () {
juece: {
audio: 2,
trigger: {
- global: [
- "loseAfter",
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["loseAfter", "equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
direct: true,
filter: function (event, player) {
if (_status.currentPhase != player) return false;
- return game.hasPlayer((current) => {
+ return game.hasPlayer(current => {
if (current == player || current.countCards("h")) return false;
var evt = event.getl(current);
return evt && evt.hs && evt.hs.length;
@@ -11505,7 +10609,7 @@ game.import("character", function () {
},
content: function () {
"step 0";
- var targets = game.filterPlayer((current) => {
+ var targets = game.filterPlayer(current => {
if (current == player || current.countCards("h")) return false;
var evt = trigger.getl(current);
return evt && evt.hs && evt.hs.length;
@@ -11515,13 +10619,7 @@ game.import("character", function () {
var target = event.targets.shift();
event.target = target;
player.chooseBool(get.prompt2("juece", target)).set("ai", () => {
- return (
- get.damageEffect(
- _status.event.getParent().target,
- _status.event.player,
- _status.event.player
- ) >= 0
- );
+ return get.damageEffect(_status.event.getParent().target, _status.event.player, _status.event.player) >= 0;
});
"step 2";
if (result.bool) {
@@ -11569,14 +10667,9 @@ game.import("character", function () {
player.line(event.current, "green");
if (event.current.countCards("he") && target.isIn()) {
event.current
- .chooseToDiscard(
- { subtype: "equip1" },
- "he",
- "弃置一张武器牌或让" + get.translation(target) + "摸一张牌"
- )
+ .chooseToDiscard({ subtype: "equip1" }, "he", "弃置一张武器牌或让" + get.translation(target) + "摸一张牌")
.set("ai", function (card) {
- if (get.attitude(_status.event.player, _status.event.target) < 0)
- return 7 - get.value(card);
+ if (get.attitude(_status.event.player, _status.event.target) < 0) return 7 - get.value(card);
return -1;
})
.set("target", target);
@@ -11666,10 +10759,7 @@ game.import("character", function () {
event.finish();
return;
}
- event.color = get.color(
- result.cards[0],
- result.cards[0].original == "h" ? player : false
- );
+ event.color = get.color(result.cards[0], result.cards[0].original == "h" ? player : false);
player
.chooseTarget(function (card, player, target) {
return player != target && get.distance(player, target) <= 1;
@@ -11727,8 +10817,7 @@ game.import("character", function () {
},
mod: {
cardEnabled2: function (card, player) {
- if (get.color(card) == player.storage.qianxi2 && get.position(card) == "h")
- return false;
+ if (get.color(card) == player.storage.qianxi2 && get.position(card) == "h") return false;
},
},
intro: {
@@ -11803,10 +10892,7 @@ game.import("character", function () {
enable: "phaseUse",
audio: "sanyao",
filter: function (event, player) {
- return (
- player.countCards("he") > 0 &&
- (!player.hasSkill("olsanyao0") || !player.hasSkill("olsanyao1"))
- );
+ return player.countCards("he") > 0 && (!player.hasSkill("olsanyao0") || !player.hasSkill("olsanyao1"));
},
chooseButton: {
dialog: function (event, player) {
@@ -12126,10 +11212,7 @@ game.import("character", function () {
if (trigger.targets && !info.multitarget) {
var players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- lib.filter.targetEnabled2(trigger.card, player, players[i]) &&
- !trigger.targets.includes(players[i])
- ) {
+ if (lib.filter.targetEnabled2(trigger.card, player, players[i]) && !trigger.targets.includes(players[i])) {
goon = true;
break;
}
@@ -12137,18 +11220,11 @@ game.import("character", function () {
}
if (goon) {
player
- .chooseTarget(
- "巧说:是否额外指定一名" + get.translation(trigger.card) + "的目标?",
- function (card, player, target) {
- var trigger = _status.event;
- if (trigger.targets.includes(target)) return false;
- return lib.filter.targetEnabled2(
- trigger.card,
- _status.event.player,
- target
- );
- }
- )
+ .chooseTarget("巧说:是否额外指定一名" + get.translation(trigger.card) + "的目标?", function (card, player, target) {
+ var trigger = _status.event;
+ if (trigger.targets.includes(target)) return false;
+ return lib.filter.targetEnabled2(trigger.card, _status.event.player, target);
+ })
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
var player = _status.event.player;
@@ -12176,12 +11252,9 @@ game.import("character", function () {
event.finish();
"step 3";
player
- .chooseTarget(
- "巧说:是否减少一名" + get.translation(trigger.card) + "的目标?",
- function (card, player, target) {
- return _status.event.targets.includes(target);
- }
- )
+ .chooseTarget("巧说:是否减少一名" + get.translation(trigger.card) + "的目标?", function (card, player, target) {
+ return _status.event.targets.includes(target);
+ })
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
return -get.effect(target, trigger.card, trigger.player, _status.event.player);
@@ -12245,11 +11318,7 @@ game.import("character", function () {
prompt: "弃置两张牌并摸一张牌",
check: function (card) {
var player = _status.event.player;
- if (
- !player.hasSkill("olbingyi") ||
- player.hasSkill("olbingyi_blocker", null, null, false)
- )
- return 4 - get.value(card);
+ if (!player.hasSkill("olbingyi") || player.hasSkill("olbingyi_blocker", null, null, false)) return 4 - get.value(card);
var red = 0,
black = 0,
hs = player.getCards("h");
@@ -12262,8 +11331,7 @@ game.import("character", function () {
if (red > 2 && black > 2) return 4 - get.value(card);
if (red == 0 || black == 0) return 8 - get.value(card);
var color = get.color(card);
- if (black <= red)
- return (color == "black" && get.position(card) == "h" ? 8 : 4) - get.value(card);
+ if (black <= red) return (color == "black" && get.position(card) == "h" ? 8 : 4) - get.value(card);
return (color == "red" && get.position(card) == "h" ? 8 : 4) - get.value(card);
},
content: function () {
@@ -12274,11 +11342,7 @@ game.import("character", function () {
result: {
player: function (player, target) {
if (!ui.selected.cards.length) return 1;
- if (
- !player.hasSkill("olbingyi") ||
- player.hasSkill("olbingyi_blocker", null, null, false)
- )
- return 1;
+ if (!player.hasSkill("olbingyi") || player.hasSkill("olbingyi_blocker", null, null, false)) return 1;
var red = 0,
black = 0,
hs = player.getCards("h");
@@ -12296,11 +11360,7 @@ game.import("character", function () {
Math.min(
red + black,
game.countPlayer(function (current) {
- return (
- current != player &&
- get.attitude(player, current) > 0 &&
- !current.hasSkillTag("nogain")
- );
+ return current != player && get.attitude(player, current) > 0 && !current.hasSkillTag("nogain");
})
) + 1;
if (num * 7 > val) return 1;
@@ -12332,16 +11392,9 @@ game.import("character", function () {
"step 0";
if (lib.skill.bingyi.filterx(trigger, player)) {
player
- .chooseTarget(
- get.prompt("bingyi"),
- "展示所有手牌,并令至多" +
- get.cnNumber(player.countCards("h")) +
- "名角色各摸一张牌",
- [1, player.countCards("h")],
- function (card, player, target) {
- return true;
- }
- )
+ .chooseTarget(get.prompt("bingyi"), "展示所有手牌,并令至多" + get.cnNumber(player.countCards("h")) + "名角色各摸一张牌", [1, player.countCards("h")], function (card, player, target) {
+ return true;
+ })
.set("ai", function (target) {
return get.attitude(_status.event.player, target);
});
@@ -12392,14 +11445,12 @@ game.import("character", function () {
if (get.mode() !== "identity" || player.identity !== "nei") player.addExpose(0.2);
player.draw(2);
"step 1";
- player
- .chooseCard(2, "he", true, "交给" + get.translation(trigger.player) + "两张牌")
- .set("ai", function (card) {
- if (ui.selected.cards.length && card.name == ui.selected.cards[0].name) return -1;
- if (get.tag(card, "damage")) return 1;
- if (get.type(card) == "equip") return 1;
- return 0;
- });
+ player.chooseCard(2, "he", true, "交给" + get.translation(trigger.player) + "两张牌").set("ai", function (card) {
+ if (ui.selected.cards.length && card.name == ui.selected.cards[0].name) return -1;
+ if (get.tag(card, "damage")) return 1;
+ if (get.type(card) == "equip") return 1;
+ return 0;
+ });
"step 2";
player.give(result.cards, trigger.player);
trigger.player.addSkill("xiantu4");
@@ -12591,22 +11642,14 @@ game.import("character", function () {
audio: 2,
trigger: { player: "damageBegin3" },
filter: function (event, player) {
- return (
- player.countCards("he", { type: "equip" }) &&
- event.source &&
- event.source.hasSex("male")
- );
+ return player.countCards("he", { type: "equip" }) && event.source && event.source.hasSex("male");
},
direct: true,
content: function () {
"step 0";
- var next = player.chooseToDiscard(
- "he",
- "骄矜:是否弃置一张装备牌令伤害-1?",
- function (card, player) {
- return get.type(card) == "equip";
- }
- );
+ var next = player.chooseToDiscard("he", "骄矜:是否弃置一张装备牌令伤害-1?", function (card, player) {
+ return get.type(card) == "equip";
+ });
next.set("ai", function (card) {
var player = _status.event.player;
if (player.hp == 1 || _status.event.getTrigger().num > 1) {
@@ -12644,11 +11687,7 @@ game.import("character", function () {
.chooseTarget(get.prompt2("chanhui"), function (card, player, target) {
if (player == target) return false;
var evt = _status.event.getTrigger();
- return (
- !evt.targets.includes(target) &&
- lib.filter.targetEnabled2(evt.card, player, target) &&
- lib.filter.targetInRange(evt.card, player, target)
- );
+ return !evt.targets.includes(target) && lib.filter.targetEnabled2(evt.card, player, target) && lib.filter.targetInRange(evt.card, player, target);
})
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
@@ -12664,17 +11703,9 @@ game.import("character", function () {
"step 2";
player.addTempSkill("chanhui2");
player.logSkill("chanhui", event.target);
- event.target
- .chooseCard(
- "交给" +
- get.translation(player) +
- "一张手牌,或成为" +
- get.translation(trigger.card) +
- "的额外目标"
- )
- .set("ai", function (card) {
- return 5 - get.value(card);
- });
+ event.target.chooseCard("交给" + get.translation(player) + "一张手牌,或成为" + get.translation(trigger.card) + "的额外目标").set("ai", function (card) {
+ return 5 - get.value(card);
+ });
"step 3";
if (result.bool) {
target.give(result.cards, player);
@@ -12704,10 +11735,7 @@ game.import("character", function () {
.chooseTarget(get.prompt2("rechanhui"), function (card, player, target) {
if (player == target) return false;
var trigger = _status.event;
- return (
- player.canUse(trigger.card, target, false) &&
- trigger.targets.includes(target) == false
- );
+ return player.canUse(trigger.card, target, false) && trigger.targets.includes(target) == false;
})
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
@@ -12725,18 +11753,9 @@ game.import("character", function () {
}
"step 2";
player.logSkill("rechanhui", event.target);
- event.target
- .chooseCard(
- "交给" +
- get.translation(player) +
- "一张牌,或成为" +
- get.translation(trigger.card) +
- "的额外目标",
- "he"
- )
- .set("ai", function (card) {
- return 5 - get.value(card);
- });
+ event.target.chooseCard("交给" + get.translation(player) + "一张牌,或成为" + get.translation(trigger.card) + "的额外目标", "he").set("ai", function (card) {
+ return 5 - get.value(card);
+ });
"step 3";
if (result.bool) {
target.give(result.cards, player);
@@ -12768,13 +11787,9 @@ game.import("character", function () {
direct: true,
content: function () {
"step 0";
- var next = player.chooseToDiscard(
- "he",
- "骄矜:是否弃置一张装备牌令" + get.translation(trigger.card) + "对你无效?",
- function (card, player) {
- return get.type(card) == "equip";
- }
- );
+ var next = player.chooseToDiscard("he", "骄矜:是否弃置一张装备牌令" + get.translation(trigger.card) + "对你无效?", function (card, player) {
+ return get.type(card) == "equip";
+ });
next.set("ai", function (card) {
if (_status.event.goon2) {
return 3 + _status.event.val - get.value(card);
@@ -12820,11 +11835,7 @@ game.import("character", function () {
player.addToExpansion(result.cards, player, "giveAuto").gaintag.add("quanji");
}
"step 4";
- if (
- event.count > 0 &&
- player.hasSkill(event.name) &&
- !get.is.blocked(event.name, player)
- ) {
+ if (event.count > 0 && player.hasSkill(event.name) && !get.is.blocked(event.name, player)) {
player.chooseBool(get.prompt2("quanji")).set("frequentSkill", event.name);
} else event.finish();
"step 5";
@@ -12856,8 +11867,7 @@ game.import("character", function () {
if (player.hasSkillTag("jueqing", false, target)) return [1, -2];
if (!target.hasFriend()) return;
if (target.hp >= 4) return [0.5, get.tag(card, "damage") * 2];
- if (!target.hasSkill("paiyi") && target.hp > 1)
- return [0.5, get.tag(card, "damage") * 1.5];
+ if (!target.hasSkill("paiyi") && target.hp > 1) return [0.5, get.tag(card, "damage") * 1.5];
if (target.hp == 3) return [0.5, get.tag(card, "damage") * 1.5];
if (target.hp == 2) return [1, get.tag(card, "damage") * 0.5];
}
@@ -12922,12 +11932,7 @@ game.import("character", function () {
result: {
target: function (player, target) {
if (player != target) return 0;
- if (
- player.hasSkill("requanji") ||
- player.countCards("h") + 2 <=
- player.hp + player.getExpansions("quanji").length
- )
- return 1;
+ if (player.hasSkill("requanji") || player.countCards("h") + 2 <= player.hp + player.getExpansions("quanji").length) return 1;
return 0;
},
},
@@ -12982,19 +11987,9 @@ game.import("character", function () {
game.delay();
"step 1";
target
- .chooseTarget(
- [1, event.num],
- "令" +
- get.translation(player) +
- "回复" +
- event.num +
- "点体力,或对攻击范围内的" +
- event.num +
- "名角色造成1点伤害",
- function (card, player, target2) {
- return _status.event.player.inRange(target2);
- }
- )
+ .chooseTarget([1, event.num], "令" + get.translation(player) + "回复" + event.num + "点体力,或对攻击范围内的" + event.num + "名角色造成1点伤害", function (card, player, target2) {
+ return _status.event.player.inRange(target2);
+ })
.set("ai", function (target2) {
var target = _status.event.player;
var player = _status.event.getParent().player;
@@ -13030,11 +12025,7 @@ game.import("character", function () {
var bool = true,
players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- players[i] != player &&
- get.attitude(player, players[i]) > 2 &&
- get.attitude(players[i], player) > 2
- ) {
+ if (players[i] != player && get.attitude(player, players[i]) > 2 && get.attitude(players[i], player) > 2) {
bool = false;
break;
}
@@ -13083,10 +12074,7 @@ game.import("character", function () {
if (
att <= 0 &&
source.countCards("e", function (card) {
- return (
- get.value(card, source) > 0 &&
- get.effect(player, card, player, player) > 0
- );
+ return get.value(card, source) > 0 && get.effect(player, card, player, player) > 0;
})
) {
return "移动装备";
@@ -13182,12 +12170,7 @@ game.import("character", function () {
return (
event.card.name == "sha" &&
game.hasPlayer(function (current) {
- return (
- current != player &&
- !event.targets.includes(current) &&
- current.countCards("h") > 0 &&
- lib.filter.targetEnabled(event.card, event.player, current)
- );
+ return current != player && !event.targets.includes(current) && current.countCards("h") > 0 && lib.filter.targetEnabled(event.card, event.player, current);
})
);
},
@@ -13196,12 +12179,7 @@ game.import("character", function () {
player
.chooseTarget(get.prompt2("oldqiuyuan"), function (card, player, target) {
var evt = _status.event.getTrigger();
- return (
- target != player &&
- !evt.targets.includes(target) &&
- lib.filter.targetEnabled(evt.card, evt.player, target) &&
- target.countCards("h") > 0
- );
+ return target != player && !evt.targets.includes(target) && lib.filter.targetEnabled(evt.card, evt.player, target) && target.countCards("h") > 0;
})
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
@@ -13216,12 +12194,7 @@ game.import("character", function () {
player.logSkill("oldqiuyuan", target);
event.target = target;
target
- .chooseCard(
- "交给" +
- get.translation(player) +
- "一张牌,若此牌不为【闪】,则也成为此杀的额外目标",
- true
- )
+ .chooseCard("交给" + get.translation(player) + "一张牌,若此牌不为【闪】,则也成为此杀的额外目标", true)
.set("ai", function (card) {
return -get.value(card, player, "raw");
})
@@ -13250,11 +12223,7 @@ game.import("character", function () {
return (
event.card.name == "sha" &&
game.hasPlayer(function (current) {
- return (
- current != player &&
- !event.targets.includes(current) &&
- lib.filter.targetEnabled(event.card, event.player, current)
- );
+ return current != player && !event.targets.includes(current) && lib.filter.targetEnabled(event.card, event.player, current);
})
);
},
@@ -13263,11 +12232,7 @@ game.import("character", function () {
player
.chooseTarget(get.prompt2("qiuyuan"), function (card, player, target) {
var evt = _status.event.getTrigger();
- return (
- target != player &&
- !evt.targets.includes(target) &&
- lib.filter.targetEnabled(evt.card, evt.player, target)
- );
+ return target != player && !evt.targets.includes(target) && lib.filter.targetEnabled(evt.card, evt.player, target);
})
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
@@ -13282,10 +12247,7 @@ game.import("character", function () {
player.logSkill("qiuyuan", target);
event.target = target;
target
- .chooseCard(
- { name: "shan" },
- "交给" + get.translation(player) + "一张闪,或成为此杀的额外目标"
- )
+ .chooseCard({ name: "shan" }, "交给" + get.translation(player) + "一张闪,或成为此杀的额外目标")
.set("ai", function (card) {
return get.attitude(target, _status.event.sourcex) >= 0 ? 1 : -1;
})
@@ -13313,23 +12275,7 @@ game.import("character", function () {
if (get.attitude(player, target) <= 0) {
for (var i = 0; i < players.length; i++) {
var target2 = players[i];
- if (
- player != target2 &&
- target != target2 &&
- player.canUse(card, target2, false) &&
- get.effect(
- target2,
- { name: "shacopy", nature: card.nature, suit: card.suit },
- player,
- target
- ) > 0 &&
- get.effect(
- target2,
- { name: "shacopy", nature: card.nature, suit: card.suit },
- player,
- player
- ) < 0
- ) {
+ if (player != target2 && target != target2 && player.canUse(card, target2, false) && get.effect(target2, { name: "shacopy", nature: card.nature, suit: card.suit }, player, target) > 0 && get.effect(target2, { name: "shacopy", nature: card.nature, suit: card.suit }, player, player) < 0) {
if (target.hp == target.maxHp) return 0.3;
return 0.6;
}
@@ -13337,17 +12283,7 @@ game.import("character", function () {
} else {
for (var i = 0; i < players.length; i++) {
var target2 = players[i];
- if (
- player != target2 &&
- target != target2 &&
- player.canUse(card, target2, false) &&
- get.effect(
- target2,
- { name: "shacopy", nature: card.nature, suit: card.suit },
- player,
- player
- ) > 0
- ) {
+ if (player != target2 && target != target2 && player.canUse(card, target2, false) && get.effect(target2, { name: "shacopy", nature: card.nature, suit: card.suit }, player, player) > 0) {
if (player.canUse(card, target2)) return;
if (target.hp == target.maxHp) return [0, 1];
return [0, 0];
@@ -13594,9 +12530,7 @@ game.import("character", function () {
return get.name(card) == "sha" || get.type(card) == "equip";
},
filter: function (event, player) {
- return (
- player.countCards("h", "sha") > 0 || player.countCards("he", { type: "equip" }) > 0
- );
+ return player.countCards("h", "sha") > 0 || player.countCards("he", { type: "equip" }) > 0;
},
check: function (card) {
return 8 - get.value(card);
@@ -13618,8 +12552,7 @@ game.import("character", function () {
"step 0";
player.give(cards, targets[0], "visible");
"step 1";
- if (!lib.filter.filterTarget({ name: "sha", isCard: true }, targets[0], targets[1]))
- event._result = { control: "draw_card" };
+ if (!lib.filter.filterTarget({ name: "sha", isCard: true }, targets[0], targets[1])) event._result = { control: "draw_card" };
else
targets[0]
.chooseControl("draw_card", "出杀", function () {
@@ -13644,11 +12577,7 @@ game.import("character", function () {
player: function (player) {
var players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- players[i] != player &&
- get.attitude(player, players[i]) > 1 &&
- get.attitude(players[i], player) > 1
- ) {
+ if (players[i] != player && get.attitude(player, players[i]) > 1 && get.attitude(players[i], player) > 1) {
return 1;
}
}
@@ -13707,39 +12636,20 @@ game.import("character", function () {
return _status.event.target.canUse("sha", target);
})
.set("ai", function (target) {
- return get.effect(
- target,
- { name: "sha" },
- _status.event.target,
- _status.event.player
- );
+ return get.effect(target, { name: "sha" }, _status.event.target, _status.event.player);
})
.set("target", event.target);
"step 3";
if (result.bool && result.targets.length) {
game.log(player, "指定的出杀目标为", result.targets);
event.target.line(result.targets);
- event.target.chooseToUse(
- "对" +
- get.translation(result.targets) +
- "使用一张杀,或令" +
- get.translation(player) +
- "获得你的两张牌",
- { name: "sha" },
- result.targets[0],
- -1
- );
+ event.target.chooseToUse("对" + get.translation(result.targets) + "使用一张杀,或令" + get.translation(player) + "获得你的两张牌", { name: "sha" }, result.targets[0], -1);
} else {
event.bool = true;
}
"step 4";
if (event.bool || result.bool == false) {
- player.gainPlayerCard(
- "he",
- event.target,
- Math.min(2, event.target.countCards("he")),
- true
- );
+ player.gainPlayerCard("he", event.target, Math.min(2, event.target.countCards("he")), true);
}
},
ai: {
@@ -13808,10 +12718,7 @@ game.import("character", function () {
return false;
var evt = trigger.getl(player);
for (var i = 0; i < evt.cards2.length; i++) {
- if (
- get.position(evt.cards2[i], true) == "d" &&
- get.type(evt.cards2[i], false) == "equip"
- ) {
+ if (get.position(evt.cards2[i], true) == "d" && get.type(evt.cards2[i], false) == "equip") {
return true;
}
}
@@ -13846,8 +12753,7 @@ game.import("character", function () {
if (result.bool) {
var cards = result.moved[1];
game.log(player, "将", cards, "置于了牌堆顶");
- while (cards.length)
- ui.cardPile.insertBefore(cards.pop().fix(), ui.cardPile.firstChild);
+ while (cards.length) ui.cardPile.insertBefore(cards.pop().fix(), ui.cardPile.firstChild);
}
},
},
@@ -13858,14 +12764,9 @@ game.import("character", function () {
direct: true,
content: function () {
"step 0";
- player
- .chooseTarget(
- get.prompt("zhiyan"),
- "令一名角色摸一张牌并展示之。若为装备牌,则其回复1点体力"
- )
- .set("ai", function (target) {
- return get.attitude(_status.event.player, target);
- });
+ player.chooseTarget(get.prompt("zhiyan"), "令一名角色摸一张牌并展示之。若为装备牌,则其回复1点体力").set("ai", function (target) {
+ return get.attitude(_status.event.player, target);
+ });
"step 1";
if (result.bool) {
event.target = result.targets[0];
@@ -13898,12 +12799,7 @@ game.import("character", function () {
locked: false,
mod: {
aiOrder: function (player, card, num) {
- if (
- num > 0 &&
- _status.event &&
- _status.event.type === "phase" &&
- get.tag(card, "recover")
- ) {
+ if (num > 0 && _status.event && _status.event.type === "phase" && get.tag(card, "recover")) {
if (player.needsToDiscard()) return num / 3;
return 0;
}
@@ -13929,13 +12825,13 @@ game.import("character", function () {
cards: [],
},
cards = player.getCards("he"),
- tars = game.filterPlayer((i) => player !== i);
- cards.forEach((i) => {
+ tars = game.filterPlayer(i => player !== i);
+ cards.forEach(i => {
let o = get.value(i, player),
max = o,
temp,
t;
- tars.forEach((tar) => {
+ tars.forEach(tar => {
temp = get.value(i, tar);
if (temp > max) {
max = temp;
@@ -14003,8 +12899,7 @@ game.import("character", function () {
for (var i in event.given_map) {
var source = (_status.connectMode ? lib.playerOL : game.playerMap)[i];
player.line(source, "green");
- if (player !== source && (get.mode() !== "identity" || player.identity !== "nei"))
- player.addExpose(0.18);
+ if (player !== source && (get.mode() !== "identity" || player.identity !== "nei")) player.addExpose(0.18);
map.push([source, event.given_map[i]]);
cards.addArray(event.given_map[i]);
}
@@ -14046,52 +12941,31 @@ game.import("character", function () {
audio: 2,
audioname: ["re_wangyi"],
filter: function (event, player) {
- return (
- event.player != player &&
- event.card &&
- (event.card.name == "sha" || get.type(event.card) == "trick")
- );
+ return event.player != player && event.card && (event.card.name == "sha" || get.type(event.card) == "trick");
},
logTarget: "player",
check: function (event, player) {
if (event.getParent().excluded.includes(player)) return false;
- if (
- get.attitude(player, event.player) > 0 ||
- (player.hp < 2 && !get.tag(event.card, "damage"))
- )
- return false;
+ if (get.attitude(player, event.player) > 0 || (player.hp < 2 && !get.tag(event.card, "damage"))) return false;
let evt = event.getParent(),
- directHit =
- (evt.nowuxie && get.type(event.card, "trick") === "trick") ||
- (evt.directHit && evt.directHit.includes(player)) ||
- (evt.customArgs && evt.customArgs.default && evt.customArgs.default.directHit2);
+ directHit = (evt.nowuxie && get.type(event.card, "trick") === "trick") || (evt.directHit && evt.directHit.includes(player)) || (evt.customArgs && evt.customArgs.default && evt.customArgs.default.directHit2);
if (get.tag(event.card, "respondSha")) {
if (directHit || player.countCards("h", { name: "sha" }) === 0) return true;
} else if (get.tag(event.card, "respondShan")) {
if (directHit || player.countCards("h", { name: "shan" }) === 0) return true;
} else if (get.tag(event.card, "damage")) {
- if (event.card.name === "huogong")
- return event.player.countCards("h") > 4 - player.hp - player.hujia;
+ if (event.card.name === "huogong") return event.player.countCards("h") > 4 - player.hp - player.hujia;
if (event.card.name === "shuiyanqijunx") return player.countCards("e") === 0;
return true;
} else if (player.hp > 2) {
- if (
- event.card.name === "shunshou" ||
- (event.card.name === "zhujinqiyuan" &&
- (event.card.yingbian || get.distance(event.player, player) < 0))
- )
- return true;
+ if (event.card.name === "shunshou" || (event.card.name === "zhujinqiyuan" && (event.card.yingbian || get.distance(event.player, player) < 0))) return true;
}
return false;
},
trigger: { target: "useCardToTargeted" },
content: function () {
"step 0";
- if (
- get.attitude(player, trigger.player) < 0 &&
- trigger.player.countDiscardableCards(player, "he")
- )
- player.addTempSkill("zhenlie_lose");
+ if (get.attitude(player, trigger.player) < 0 && trigger.player.countDiscardableCards(player, "he")) player.addTempSkill("zhenlie_lose");
player.loseHp();
"step 1";
player.removeSkill("zhenlie_lose");
@@ -14114,8 +12988,7 @@ game.import("character", function () {
},
effect: {
target: (card, player, target) => {
- if (target.hp <= 0 && target.hasSkill("zhenlie_lose") && get.tag(card, "recover"))
- return [1, 1.2];
+ if (target.hp <= 0 && target.hasSkill("zhenlie_lose") && get.tag(card, "recover")) return [1, 1.2];
},
},
},
@@ -14290,10 +13163,7 @@ game.import("character", function () {
content: function () {
target.draw(cards.length);
if (cards.length == 3) {
- if (
- get.type(cards[0], "trick") == get.type(cards[1], "trick") &&
- get.type(cards[0], "trick") == get.type(cards[2], "trick")
- ) {
+ if (get.type(cards[0], "trick") == get.type(cards[1], "trick") && get.type(cards[0], "trick") == get.type(cards[2], "trick")) {
player.recover();
}
}
@@ -14349,13 +13219,7 @@ game.import("character", function () {
audio: 2,
trigger: {
player: ["loseAfter", "changeHp", "gainMaxHpAfter", "loseMaxHpAfter"],
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
frequent: true,
filter: function (event, player) {
@@ -14389,11 +13253,7 @@ game.import("character", function () {
var evt = event.getl(player);
if (evt && evt.cards) cards.removeArray(evt.cards);
for (var i = 0; i < cards.length; i++) {
- if (
- cards[i].original != "j" &&
- get.suit(cards[i], event.player) == "club" &&
- get.position(cards[i], true) == "d"
- ) {
+ if (cards[i].original != "j" && get.suit(cards[i], event.player) == "club" && get.position(cards[i], true) == "d") {
return true;
}
}
@@ -14409,20 +13269,14 @@ game.import("character", function () {
evt = trigger.getl(player);
if (evt && evt.cards) cards2.removeArray(evt.cards);
for (var i = 0; i < cards2.length; i++) {
- if (
- cards2[i].original != "j" &&
- get.suit(cards2[i], trigger.player) == "club" &&
- get.position(cards2[i], true) == "d"
- ) {
+ if (cards2[i].original != "j" && get.suit(cards2[i], trigger.player) == "club" && get.position(cards2[i], true) == "d") {
cards.push(cards2[i]);
}
}
if (cards.length) {
- player
- .chooseButton(["落英:选择要获得的牌", cards], [1, cards.length])
- .set("ai", function (button) {
- return get.value(button.link, _status.event.player, "raw");
- });
+ player.chooseButton(["落英:选择要获得的牌", cards], [1, cards.length]).set("ai", function (button) {
+ return get.value(button.link, _status.event.player, "raw");
+ });
}
"step 2";
if (result.bool) {
@@ -14445,14 +13299,9 @@ game.import("character", function () {
},
content: function () {
"step 0";
- player
- .chooseButton(
- ["落英:选择要获得的牌", trigger.cards],
- [1, trigger.cards.length]
- )
- .set("ai", function (button) {
- return get.value(button.link, _status.event.player, "raw");
- });
+ player.chooseButton(["落英:选择要获得的牌", trigger.cards], [1, trigger.cards.length]).set("ai", function (button) {
+ return get.value(button.link, _status.event.player, "raw");
+ });
"step 1";
if (result.bool) {
player.logSkill(event.name);
@@ -14520,11 +13369,7 @@ game.import("character", function () {
var e2 = target.getEquip(2);
if (e2) {
if (e2.name == "tengjia") {
- if (
- !player.countCards("h", { name: "sha", nature: "fire" }) &&
- !player.getEquip("zhuque")
- )
- return 0;
+ if (!player.countCards("h", { name: "sha", nature: "fire" }) && !player.getEquip("zhuque")) return 0;
}
if (e2.name == "renwang") {
if (!player.countCards("h", { name: "sha", color: "red" })) return 0;
@@ -14593,11 +13438,7 @@ game.import("character", function () {
audioname: ["re_liubiao"],
trigger: { player: "phaseDrawBegin2" },
check: function (event, player) {
- return (
- player.countCards("h") <=
- (player.hasSkill("zongshi") ? player.maxHp : player.hp - 2) ||
- player.skipList.includes("phaseUse")
- );
+ return player.countCards("h") <= (player.hasSkill("zongshi") ? player.maxHp : player.hp - 2) || player.skipList.includes("phaseUse");
},
filter: function (event, player) {
return !event.numFixed;
@@ -14727,13 +13568,13 @@ game.import("character", function () {
const hs = player.getCards("h");
if (!hs.length) return false;
if (
- hs.some((card) => {
+ hs.some(card => {
const mod2 = game.checkMod(card, player, "unchanged", "cardEnabled2", player);
return mod2 === false;
})
)
return false;
- return lib.inpile.some((name) => {
+ return lib.inpile.some(name => {
if (get.type(name) != "trick") return false;
const card = get.autoViewAs({ name }, hs);
return event.filterCard(card, player, event);
@@ -14764,11 +13605,7 @@ game.import("character", function () {
lose = 1,
players = game.filterPlayer();
for (var i = 0; i < players.length; i++) {
- if (
- players[i].hp == 1 &&
- get.damageEffect(players[i], player, player) > 0 &&
- !players[i].hasSha()
- ) {
+ if (players[i].hp == 1 && get.damageEffect(players[i], player, player) > 0 && !players[i].hasSha()) {
return button.link[2] == "juedou" ? 2 : -1;
}
if (!players[i].isOut()) {
@@ -14833,13 +13670,7 @@ game.import("character", function () {
},
nokeep: true,
skillTagFilter: function (player, tag, arg) {
- if (tag === "nokeep")
- return (
- (!arg || (arg.card && get.name(arg.card) === "tao")) &&
- player.isPhaseUsing() &&
- !player.getStat("skill").qice &&
- player.hasCard((card) => get.name(card) != "tao", "h")
- );
+ if (tag === "nokeep") return (!arg || (arg.card && get.name(arg.card) === "tao")) && player.isPhaseUsing() && !player.getStat("skill").qice && player.hasCard(card => get.name(card) != "tao", "h");
},
threaten: 1.6,
},
@@ -14873,26 +13704,14 @@ game.import("character", function () {
audioname: ["boss_lvbu3", "re_heqi"],
trigger: {
player: ["loseAfter", "phaseDiscardEnd"],
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
direct: true,
filter: function (event, player) {
if (event.name == "phaseDiscard") {
var cards = [];
player.getHistory("lose", function (evt) {
- if (
- evt &&
- evt.type == "discard" &&
- evt.getParent("phaseDiscard") == event &&
- evt.hs
- )
- cards.addArray(evt.hs);
+ if (evt && evt.type == "discard" && evt.getParent("phaseDiscard") == event && evt.hs) cards.addArray(evt.hs);
});
return cards.length > 1;
} else {
@@ -14906,14 +13725,10 @@ game.import("character", function () {
event.logged = false;
"step 1";
player
- .chooseTarget(
- get.prompt("xuanfeng"),
- "弃置一名其他角色的一张牌",
- function (card, player, target) {
- if (player == target) return false;
- return target.countDiscardableCards(player, "he");
- }
- )
+ .chooseTarget(get.prompt("xuanfeng"), "弃置一名其他角色的一张牌", function (card, player, target) {
+ if (player == target) return false;
+ return target.countDiscardableCards(player, "he");
+ })
.set("ai", function (target) {
return -get.attitude(_status.event.player, target);
});
@@ -15001,11 +13816,9 @@ game.import("character", function () {
"step 0";
var cards = get.cards(3);
event.cards = cards;
- var next = player
- .chooseCardButton(cards, "选择获得的红桃牌", [1, Infinity])
- .set("filterButton", function (button) {
- return get.suit(button.link) == "heart";
- });
+ var next = player.chooseCardButton(cards, "选择获得的红桃牌", [1, Infinity]).set("filterButton", function (button) {
+ return get.suit(button.link) == "heart";
+ });
"step 1";
if (result.bool) {
player.gain(result.links, "draw");
@@ -15049,12 +13862,7 @@ game.import("character", function () {
audio: true,
trigger: { player: "gainEnd" },
filter: function (event, player) {
- return (
- event.source &&
- event.source.isIn() &&
- event.source != player &&
- event.cards.length >= 2
- );
+ return event.source && event.source.isIn() && event.source != player && event.cards.length >= 2;
},
logTarget: "source",
check: function (event, player) {
@@ -15089,27 +13897,20 @@ game.import("character", function () {
"step 0";
event.num = trigger.num;
"step 1";
- trigger.source
- .chooseCard("选择一张手牌交给" + get.translation(player) + ",或点“取消”失去1点体力")
- .set("ai", function (card) {
- var player = _status.event.getParent().player,
- source = _status.event.player;
- if (get.effect(source, { name: "losehp" }, source, source) >= 0) return 0;
- if (get.attitude(player, source) > 0) return 11 - get.value(card);
- return 7 - get.value(card);
- });
+ trigger.source.chooseCard("选择一张手牌交给" + get.translation(player) + ",或点“取消”失去1点体力").set("ai", function (card) {
+ var player = _status.event.getParent().player,
+ source = _status.event.player;
+ if (get.effect(source, { name: "losehp" }, source, source) >= 0) return 0;
+ if (get.attitude(player, source) > 0) return 11 - get.value(card);
+ return 7 - get.value(card);
+ });
"step 2";
if (result.bool) {
trigger.source.give(result.cards, player);
} else {
trigger.source.loseHp();
}
- if (
- event.num > 1 &&
- player.hasSkill("xinenyuan") &&
- trigger.source &&
- trigger.source.isIn()
- ) {
+ if (event.num > 1 && player.hasSkill("xinenyuan") && trigger.source && trigger.source.isIn()) {
player.logSkill("xinenyuan", trigger.source);
event.num--;
event.goto(1);
@@ -15142,12 +13943,9 @@ game.import("character", function () {
content: function () {
"step 0";
trigger.source
- .chooseCard(
- "选择一张红桃牌交给" + get.translation(player) + ",或点“取消”失去1点体力",
- function (card) {
- return get.suit(card) == "heart";
- }
- )
+ .chooseCard("选择一张红桃牌交给" + get.translation(player) + ",或点“取消”失去1点体力", function (card) {
+ return get.suit(card) == "heart";
+ })
.set("ai", function (card) {
var player = _status.event.getParent().player,
source = _status.event.player;
@@ -15230,12 +14028,9 @@ game.import("character", function () {
event.card = result.links[0];
if (player.getCards("h").includes(event.card))
player
- .chooseTarget(
- "将" + get.translation(event.card) + "交给另一名其他角色",
- function (card, player, target) {
- return target != _status.event.sourcex && target != player;
- }
- )
+ .chooseTarget("将" + get.translation(event.card) + "交给另一名其他角色", function (card, player, target) {
+ return target != _status.event.sourcex && target != player;
+ })
.set("ai", function (target) {
return get.attitude(_status.event.player, target);
})
@@ -15264,12 +14059,8 @@ game.import("character", function () {
filterTarget: function (card, player, target) {
if (target.isMin()) return false;
if (ui.selected.targets.length == 0) return true;
- if (ui.selected.targets[0].countCards("e") == 0 && target.countCards("e") == 0)
- return false;
- return (
- Math.abs(ui.selected.targets[0].countCards("e") - target.countCards("e")) <=
- player.maxHp - player.hp
- );
+ if (ui.selected.targets[0].countCards("e") == 0 && target.countCards("e") == 0) return false;
+ return Math.abs(ui.selected.targets[0].countCards("e") - target.countCards("e")) <= player.maxHp - player.hp;
},
multitarget: true,
content: function () {
@@ -15471,13 +14262,7 @@ game.import("character", function () {
if (name === "tao") return val + 2 * Math.min(3, 1 + player.getDamagedHp());
if (name === "jiu" && player.hp < 3) return val + 2 * (2.8 - player.hp);
if (name === "wuxie" && player.countCards("j") && !player.hasWuxie()) return val + 5;
- if (
- player.hp > 1 &&
- player.hasSkill("renxin") &&
- player.hasFriend() &&
- get.type(button.link) === "equip"
- )
- return val + 4;
+ if (player.hp > 1 && player.hasSkill("renxin") && player.hasFriend() && get.type(button.link) === "equip") return val + 4;
return val;
});
"step 2";
@@ -15544,23 +14329,12 @@ game.import("character", function () {
audioname: ["re_caochong"],
//priority:6,
filter: function (event, player) {
- return (
- event.player != player &&
- event.player.hp == 1 &&
- player.countCards("he", { type: "equip" }) > 0
- );
+ return event.player != player && event.player.hp == 1 && player.countCards("he", { type: "equip" }) > 0;
},
direct: true,
content: function () {
"step 0";
- var next = player.chooseToDiscard(
- get.prompt("renxin", trigger.player),
- "弃置一张装备牌并将武将牌翻面,然后防止" +
- get.translation(trigger.player) +
- "受到的伤害",
- { type: "equip" },
- "he"
- );
+ var next = player.chooseToDiscard(get.prompt("renxin", trigger.player), "弃置一张装备牌并将武将牌翻面,然后防止" + get.translation(trigger.player) + "受到的伤害", { type: "equip" }, "he");
next.logSkill = ["renxin", trigger.player];
next.set("ai", function (card) {
var player = _status.event.player;
@@ -15604,24 +14378,11 @@ game.import("character", function () {
var type = get.type(result.cards[0], "trick");
if (trigger.source) {
trigger.source
- .chooseToDiscard(
- "弃置一张不为" +
- get.translation(type) +
- "牌的牌或令" +
- get.translation(player) +
- "回复1点体力",
- function (card) {
- return get.type(card, "trick") != _status.event.type;
- }
- )
+ .chooseToDiscard("弃置一张不为" + get.translation(type) + "牌的牌或令" + get.translation(player) + "回复1点体力", function (card) {
+ return get.type(card, "trick") != _status.event.type;
+ })
.set("ai", function (card) {
- if (
- get.recoverEffect(
- _status.event.getParent().player,
- _status.event.player,
- _status.event.player
- ) < 0
- ) {
+ if (get.recoverEffect(_status.event.getParent().player, _status.event.player, _status.event.player) < 0) {
return 7 - get.value(card);
}
return 0;
@@ -15713,23 +14474,17 @@ game.import("character", function () {
viewAs: { name: "sha", isCard: true },
filter: function (event, player) {
return game.hasPlayer(function (current) {
- return (
- current.hasSkill("xiansix") &&
- current.getExpansions("xiansi").length > 1 &&
- event.filterTarget({ name: "sha" }, player, current)
- );
+ return current.hasSkill("xiansix") && current.getExpansions("xiansi").length > 1 && event.filterTarget({ name: "sha" }, player, current);
});
},
filterTarget: function (card, player, target) {
var bool = false;
var players = ui.selected.targets.slice(0);
for (var i = 0; i < players.length; i++) {
- if (players[i].hasSkill("xiansix") && players[i].getExpansions("xiansi").length > 1)
- bool = true;
+ if (players[i].hasSkill("xiansix") && players[i].getExpansions("xiansi").length > 1) bool = true;
break;
}
- if (!bool && (!target.hasSkill("xiansix") || target.getExpansions("xiansi").length <= 1))
- return false;
+ if (!bool && (!target.hasSkill("xiansix") || target.getExpansions("xiansi").length <= 1)) return false;
return _status.event._backup.filterTarget.apply(this, arguments);
},
complexSelect: true,
@@ -15773,12 +14528,7 @@ game.import("character", function () {
if (event.target.getExpansions("xiansi").length == 2) {
event.directresult = event.target.getExpansions("xiansi").slice(0);
} else {
- player.chooseCardButton(
- "移去两张“逆”",
- 2,
- event.target.getExpansions("xiansi"),
- true
- );
+ player.chooseCardButton("移去两张“逆”", 2, event.target.getExpansions("xiansi"), true);
}
} else {
event.finish();
@@ -15826,11 +14576,7 @@ game.import("character", function () {
if (target.hujia) return;
if (player._shibei_tmp) return;
if (target.hasSkill("shibei_ai")) return;
- if (
- _status.event.getParent("useCard", true) ||
- _status.event.getParent("_wuxie", true)
- )
- return;
+ if (_status.event.getParent("useCard", true) || _status.event.getParent("_wuxie", true)) return;
if (get.tag(card, "damage")) {
if (target.getHistory("damage").length > 0) {
return [1, -2];
@@ -15838,10 +14584,7 @@ game.import("character", function () {
if (get.attitude(player, target) > 0 && target.hp > 1) {
return 0;
}
- if (
- get.attitude(player, target) < 0 &&
- !player.hasSkillTag("damageBonus")
- ) {
+ if (get.attitude(player, target) < 0 && !player.hasSkillTag("damageBonus")) {
if (card.name == "sha") return;
var sha = false;
player._shibei_tmp = true;
@@ -15853,11 +14596,7 @@ game.import("character", function () {
sha = true;
}
}
- return (
- get.tag(card, "damage") &&
- player.canUse(card, target) &&
- get.effect(target, card, player, player) > 0
- );
+ return get.tag(card, "damage") && player.canUse(card, target) && get.effect(target, card, player, player) > 0;
});
delete player._shibei_tmp;
if (player.hasSkillTag("damage")) {
@@ -15865,11 +14604,7 @@ game.import("character", function () {
}
if (num < 2) {
var enemies = player.getEnemies();
- if (
- enemies.length == 1 &&
- enemies[0] == target &&
- player.needsToDiscard()
- ) {
+ if (enemies.length == 1 && enemies[0] == target && player.needsToDiscard()) {
return;
}
return 0;
@@ -15914,12 +14649,7 @@ game.import("character", function () {
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 && ((get.suit(evt.card) && get.suit(evt.card) == get.suit(card)) || (evt.card.number && evt.card.number == get.number(card)))) {
return num + 10;
}
}
@@ -15933,11 +14663,7 @@ game.import("character", function () {
if (!player.isPhaseUsing()) return false;
var evt2 = evt.getParent("phaseUse");
if (!evt2 || evt2.name != "phaseUse" || evt2.player != player) 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))
- );
+ 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 () {
player.draw();
@@ -15951,18 +14677,12 @@ game.import("character", function () {
});
if (history.length) {
var trigger = history[history.length - 1];
- if (
- get.suit(trigger.card, player) == "none" ||
- typeof get.number(trigger.card, player) != "number"
- )
- return;
+ if (get.suit(trigger.card, player) == "none" || typeof get.number(trigger.card, player) != "number") return;
player.storage.jianying_mark = trigger.card;
player.markSkill("jianying_mark");
game.broadcastAll(
function (player, suit) {
- if (player.marks.jianying_mark)
- player.marks.jianying_mark.firstChild.innerHTML =
- get.translation(suit);
+ if (player.marks.jianying_mark) player.marks.jianying_mark.firstChild.innerHTML = get.translation(suit);
},
player,
get.suit(trigger.card, player)
@@ -15989,19 +14709,13 @@ game.import("character", function () {
popup: false,
firstDo: true,
content: function () {
- if (
- get.suit(trigger.card, player) == "none" ||
- typeof get.number(trigger.card, player) != "number"
- )
- player.unmarkSkill("jianying_mark");
+ if (get.suit(trigger.card, player) == "none" || typeof get.number(trigger.card, player) != "number") player.unmarkSkill("jianying_mark");
else {
player.storage.jianying_mark = trigger.card;
player.markSkill("jianying_mark");
game.broadcastAll(
function (player, suit) {
- if (player.marks.jianying_mark)
- player.marks.jianying_mark.firstChild.innerHTML =
- get.translation(suit);
+ if (player.marks.jianying_mark) player.marks.jianying_mark.firstChild.innerHTML = get.translation(suit);
},
player,
get.suit(trigger.card, player)
@@ -16025,8 +14739,7 @@ game.import("character", function () {
var str = "
上一张牌的花色:" + get.translation(suit);
str += "
上一张牌的点数:";
var list = [1, 11, 12, 13];
- if (list.includes(num))
- str += ["A(1)", "J(11)", "Q(12)", "K(13)"][list.indexOf(num)];
+ if (list.includes(num)) str += ["A(1)", "J(11)", "Q(12)", "K(13)"][list.indexOf(num)];
else str += parseFloat(num);
return str;
},
@@ -16043,9 +14756,7 @@ game.import("character", function () {
content: function () {
"step 0";
var att = get.attitude(player, trigger.source);
- player.gainPlayerCard("e", get.prompt("zzhenggong"), trigger.source).ai = function (
- button
- ) {
+ player.gainPlayerCard("e", get.prompt("zzhenggong"), trigger.source).ai = function (button) {
if (att <= 0) {
return get.equipValue(button.link);
}
@@ -16075,12 +14786,7 @@ game.import("character", function () {
var nh2 = player.countCards("h");
return nh1 <= 2 && nh2 > nh1 + 1;
}
- if (
- att > 0 &&
- event.player.hasJudge("lebu") &&
- event.player.countCards("h") > event.player.hp + 1
- )
- return true;
+ if (att > 0 && event.player.hasJudge("lebu") && event.player.countCards("h") > event.player.hp + 1) return true;
return false;
},
logTarget: "player",
@@ -16148,12 +14854,7 @@ game.import("character", function () {
"step 0";
player.addToExpansion(cards, "give", player).gaintag.add("zyexin");
"step 1";
- player.chooseCardButton(
- player.getExpansions("zyexin"),
- "选择" + get.cnNumber(cards.length) + "张牌作为手牌",
- cards.length,
- true
- ).ai = function (button) {
+ player.chooseCardButton(player.getExpansions("zyexin"), "选择" + get.cnNumber(cards.length) + "张牌作为手牌", cards.length, true).ai = function (button) {
return get.value(button.link);
};
"step 2";
@@ -16265,61 +14966,41 @@ game.import("character", function () {
return "当你对其他角色造成伤害时,你可以令此伤害值+X。若如此做,你失去X点体力,并于此伤害结算完成后修改〖绝情〗(X为伤害值)。";
},
reyanzhu: function (player) {
- if (!player.storage.reyanzhu)
- return "出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。";
+ if (!player.storage.reyanzhu) return "出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。";
return "出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。";
},
rexingxue: function (player) {
- if (player.storage.reyanzhu)
- return "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。";
+ if (player.storage.reyanzhu) return "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。";
return "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。";
},
jiaozhao: function (player) {
var num = player.countMark("xindanxin");
- if (num > 2)
- return "出牌阶段限两次,你可以将一张手牌当做任意基本牌或普通锦囊牌使用(你不能对自己使用此牌)。";
- if (num > 1)
- return "出牌阶段限一次,你可以将一张手牌当做任意基本牌或普通锦囊牌使用(你不能对自己使用此牌)。";
- if (num > 0)
- return "出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌,且此牌不可被【无懈可击】响应)。";
+ if (num > 2) return "出牌阶段限两次,你可以将一张手牌当做任意基本牌或普通锦囊牌使用(你不能对自己使用此牌)。";
+ if (num > 1) return "出牌阶段限一次,你可以将一张手牌当做任意基本牌或普通锦囊牌使用(你不能对自己使用此牌)。";
+ if (num > 0) return "出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌,且此牌不可被【无懈可击】响应)。";
return "出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌,且此牌不可被【无懈可击】响应)。";
},
funan: function (player) {
- if (player.hasSkill("funan_jiexun"))
- return "其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。";
+ if (player.hasSkill("funan_jiexun")) return "其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。";
return "其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。";
},
lkbushi: function (player) {
- var list = lib.skill.lkbushi.getBushi(player).map((i) => get.translation(i));
- return (
- "①你使用" +
- list[0] +
- "牌无次数限制。②当你使用或打出" +
- list[1] +
- "牌后,你摸一张牌。③当你成为" +
- list[2] +
- "牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张" +
- list[3] +
- "牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。"
- );
+ var list = lib.skill.lkbushi.getBushi(player).map(i => get.translation(i));
+ return "①你使用" + list[0] + "牌无次数限制。②当你使用或打出" + list[1] + "牌后,你摸一张牌。③当你成为" + list[2] + "牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张" + list[3] + "牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。";
},
diezhang: function (player) {
var str = "";
str += player.storage.duanwan ? "" : "①出牌阶段,你使用杀的次数上限+1。②";
str += "转换技" + (player.storage.duanwan ? ",每回合限一次" : "") + "。";
var cnNum = get.cnNumber(player.storage.duanwan ? 2 : 1);
- var yinStr =
- "阴:当你使用牌被其他角色抵消后,你可以弃置一张牌,视为对其使用" + cnNum + "张【杀】";
- var yangStr =
- "阳:当其他角色使用牌被你抵消后,你可以摸" + cnNum + "张牌,视为对其使用一张【杀】";
+ var yinStr = "阴:当你使用牌被其他角色抵消后,你可以弃置一张牌,视为对其使用" + cnNum + "张【杀】";
+ var yangStr = "阳:当其他角色使用牌被你抵消后,你可以摸" + cnNum + "张牌,视为对其使用一张【杀】";
if (player.storage.diezhang) {
- if (player.storage.duanwan)
- yinStr = '' + yinStr + "";
+ if (player.storage.duanwan) yinStr = '' + yinStr + "";
yangStr = '' + yangStr + "";
} else {
yinStr = '' + yinStr + "";
- if (player.storage.duanwan)
- yangStr = '' + yangStr + "";
+ if (player.storage.duanwan) yangStr = '' + yangStr + "";
}
return str + yinStr + ";" + yangStr + "。";
},
@@ -16394,6 +15075,8 @@ game.import("character", function () {
zhongyao: ["zhongyao", "re_zhongyao"],
liwan: ["ol_liwan", "liwan"],
wuxian: ["wuxian", "clan_wuxian"],
+ simafu: ["simafu", "yj_simafu"],
+ xuangongzhu: ["yj_xuangongzhu", "xuangongzhu"],
},
translate: {
old_huaxiong: "将华雄",
@@ -16477,47 +15160,35 @@ game.import("character", function () {
caiyong: "蔡邕",
new_qingxian: "清弦",
- new_qingxian_info:
- "出牌阶段限一次,你可以弃置至多X张牌并选择等量的其他角色。这些角色中,装备区内牌数少于你的回复1点体力,等于你的摸一张牌,多于你的失去1点体力。若你以此法指定的角色数等于X,则你摸一张牌。(X为你的体力值)",
+ new_qingxian_info: "出牌阶段限一次,你可以弃置至多X张牌并选择等量的其他角色。这些角色中,装备区内牌数少于你的回复1点体力,等于你的摸一张牌,多于你的失去1点体力。若你以此法指定的角色数等于X,则你摸一张牌。(X为你的体力值)",
new_juexiang: "绝响",
- new_juexiang_info:
- "锁定技,当你死亡后,杀死你的角色弃置装备区内的所有牌并失去1点体力。然后,你可以令一名其他角色获得技能〖残韵〗。若该角色区域内有梅花牌,则其可以弃置其中的一张,然后其获得技能〖绝响〗。",
+ new_juexiang_info: "锁定技,当你死亡后,杀死你的角色弃置装备区内的所有牌并失去1点体力。然后,你可以令一名其他角色获得技能〖残韵〗。若该角色区域内有梅花牌,则其可以弃置其中的一张,然后其获得技能〖绝响〗。",
new_canyun: "残韵",
- new_canyun_info:
- "出牌阶段限一次,你可以弃置至多X张牌并选择等量的其他角色(不能选择已经成为过〖残韵〗目标的角色)。这些角色中,装备区内牌数少于你的回复1点体力,等于你的摸一张牌,多于你的失去1点体力。若你以此法指定的角色数等于X,则你摸一张牌。(X为你的体力值)",
+ new_canyun_info: "出牌阶段限一次,你可以弃置至多X张牌并选择等量的其他角色(不能选择已经成为过〖残韵〗目标的角色)。这些角色中,装备区内牌数少于你的回复1点体力,等于你的摸一张牌,多于你的失去1点体力。若你以此法指定的角色数等于X,则你摸一张牌。(X为你的体力值)",
qingxian_draw: "清弦",
qingxian_draw_info: "",
zhenjun: "镇军",
- zhenjun_info:
- "准备阶段,你可以弃置一名手牌数多于体力值的角色的X张牌(X为其手牌数和体力值之差),然后选择一项:1.你弃置等同于其中非装备牌数量的牌;2.其摸等量的牌。",
+ zhenjun_info: "准备阶段,你可以弃置一名手牌数多于体力值的角色的X张牌(X为其手牌数和体力值之差),然后选择一项:1.你弃置等同于其中非装备牌数量的牌;2.其摸等量的牌。",
rezhenjun: "镇军",
- rezhenjun_info:
- "准备阶段,你可以弃置一名角色的X张牌(X为其手牌数和体力值之差且至少为1),然后选择一项:1.你弃置X张牌;2.其摸X张牌。(X为其弃置的牌中非装备牌的数量)",
+ rezhenjun_info: "准备阶段,你可以弃置一名角色的X张牌(X为其手牌数和体力值之差且至少为1),然后选择一项:1.你弃置X张牌;2.其摸X张牌。(X为其弃置的牌中非装备牌的数量)",
fenli: "奋励",
- fenli_info:
- "若你的手牌数为全场最多,你可以跳过摸牌阶段;若你的体力值为全场最多,你可以跳过出牌阶段;若你的装备区里有牌且数量为全场最多,你可以跳过弃牌阶段。",
+ fenli_info: "若你的手牌数为全场最多,你可以跳过摸牌阶段;若你的体力值为全场最多,你可以跳过出牌阶段;若你的装备区里有牌且数量为全场最多,你可以跳过弃牌阶段。",
pingkou: "平寇",
pingkou_info: "回合结束时,你可以对至多X名其他角色各造成1点伤害(X为你本回合跳过的阶段数)。",
xinanguo: "安国",
- xinanguo_info:
- "出牌阶段限一次,你可以选择一名其他角色,若其手牌数为全场最少,其摸一张牌;体力值为全场最低,回复1点体力;装备区内牌数为全场最少,随机使用一张装备牌。然后若该角色有未执行的效果且你满足条件,你执行之。",
+ xinanguo_info: "出牌阶段限一次,你可以选择一名其他角色,若其手牌数为全场最少,其摸一张牌;体力值为全场最低,回复1点体力;装备区内牌数为全场最少,随机使用一张装备牌。然后若该角色有未执行的效果且你满足条件,你执行之。",
pindi: "品第",
- pindi_info:
- "出牌阶段,你可以弃置一张牌并选择一名其他角色(不能弃置相同类型牌且不能指定相同的角色),然后令其执行一项:摸X张牌;弃置X张牌(X为本回合此技能发动次数)。若其已受伤,你横置。",
+ pindi_info: "出牌阶段,你可以弃置一张牌并选择一名其他角色(不能弃置相同类型牌且不能指定相同的角色),然后令其执行一项:摸X张牌;弃置X张牌(X为本回合此技能发动次数)。若其已受伤,你横置。",
funan_jiexun: "诫训",
bizhuan: "辟撰",
bizhuan_bg: "书",
- bizhuan_info:
- "当你使用黑桃牌后,或你成为其他角色使用黑桃牌的目标后,你可以将牌堆顶的一张牌置于武将牌上,称为“书”;你至多拥有四张“书”,你每有一张“书” ,手牌上限+1。",
+ bizhuan_info: "当你使用黑桃牌后,或你成为其他角色使用黑桃牌的目标后,你可以将牌堆顶的一张牌置于武将牌上,称为“书”;你至多拥有四张“书”,你每有一张“书” ,手牌上限+1。",
tongbo: "通博",
- tongbo_info:
- "摸牌阶段摸牌后,你可以用任意张牌替换等量的“书”,然后若你的“书”包含四种花色,你将所有“书”交给任意名其他角色。",
+ tongbo_info: "摸牌阶段摸牌后,你可以用任意张牌替换等量的“书”,然后若你的“书”包含四种花色,你将所有“书”交给任意名其他角色。",
qingxian: "清弦",
- qingxian_info:
- "当你受到伤害/回复体力后,你可以令伤害来源/一名其他角色执行一项:失去1点体力,随机使用一张装备牌;回复1点体力,弃置一张装备牌。若其以此法使用或弃置的牌为梅花,你摸一张牌。",
+ qingxian_info: "当你受到伤害/回复体力后,你可以令伤害来源/一名其他角色执行一项:失去1点体力,随机使用一张装备牌;回复1点体力,弃置一张装备牌。若其以此法使用或弃置的牌为梅花,你摸一张牌。",
juexiang: "绝响",
- juexiang_info:
- "当你死亡后,你可以令一名角色随机获得“清弦残谱”其中一个技能,然后直到其下回合开始,其不能被选择为其他角色使用梅花牌的目标。",
+ juexiang_info: "当你死亡后,你可以令一名角色随机获得“清弦残谱”其中一个技能,然后直到其下回合开始,其不能被选择为其他角色使用梅花牌的目标。",
juexiang_ji: "激弦",
juexiang_ji_info: "当你受到伤害后,你可以令伤害来源失去1点体力,随机使用一张装备。",
juexiang_lie: "烈弦",
@@ -16530,388 +15201,284 @@ game.import("character", function () {
juexiang_club_bg: "响",
juexiang_club_info: "直到下回合开始,不能被选择为其他角色使用梅花牌的目标。",
jianzheng: "谏征",
- jianzheng_info:
- "当一名其他角色使用【杀】指定目标时,若你在其攻击范围内且你不是目标,则你可以将一张手牌置于牌堆顶,取消所有目标,然后若此【杀】不为黑色,你成为目标。",
+ jianzheng_info: "当一名其他角色使用【杀】指定目标时,若你在其攻击范围内且你不是目标,则你可以将一张手牌置于牌堆顶,取消所有目标,然后若此【杀】不为黑色,你成为目标。",
zhuandui: "专对",
- zhuandui_info:
- "当你使用【杀】指定目标/成为【杀】的目标后,你可以与目标角色/此【杀】使用者拼点,若你赢,此杀不能被【闪】响应/对你无效。",
- zhuandui_use_info:
- "当你使用【杀】指定目标后,你可以与目标角色拼点,若你赢,此杀不能被【闪】响应。",
- zhuandui_respond_info:
- "当你成为【杀】的目标后,你可以与此【杀】使用者拼点,若你赢,此杀对你无效。",
+ zhuandui_info: "当你使用【杀】指定目标/成为【杀】的目标后,你可以与目标角色/此【杀】使用者拼点,若你赢,此杀不能被【闪】响应/对你无效。",
+ zhuandui_use_info: "当你使用【杀】指定目标后,你可以与目标角色拼点,若你赢,此杀不能被【闪】响应。",
+ zhuandui_respond_info: "当你成为【杀】的目标后,你可以与此【杀】使用者拼点,若你赢,此杀对你无效。",
tianbian: "天辩",
- tianbian_info:
- "你拼点时,可以改为用牌堆顶的一张牌进行拼点;当你拼点的牌亮出后,若此牌花色为红桃,则此牌的点数视为K。",
+ tianbian_info: "你拼点时,可以改为用牌堆顶的一张牌进行拼点;当你拼点的牌亮出后,若此牌花色为红桃,则此牌的点数视为K。",
funan: "复难",
- funan_info:
- "其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。",
+ funan_info: "其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。",
jiexun: "诫训",
- jiexun_info:
- "结束阶段,你可令一名其他角色摸等同于场上方块牌数的牌,然后弃置X张牌(X为此前该技能发动过的次数)。若有角色因此法弃置了所有牌,则你失去〖诫训〗,然后你发动〖复难〗时,无须令对方获得你使用的牌。",
+ jiexun_info: "结束阶段,你可令一名其他角色摸等同于场上方块牌数的牌,然后弃置X张牌(X为此前该技能发动过的次数)。若有角色因此法弃置了所有牌,则你失去〖诫训〗,然后你发动〖复难〗时,无须令对方获得你使用的牌。",
xinjiexun: "诫训",
- xinjiexun_info:
- "结束阶段,你可令一名其他角色摸等同于场上方块牌数的牌,然后弃置X张牌(X为此前该技能发动过的次数)。若有角色因此法弃置了所有牌,则你将X归零,然后你发动〖复难〗时,无须令对方获得你使用的牌。",
+ xinjiexun_info: "结束阶段,你可令一名其他角色摸等同于场上方块牌数的牌,然后弃置X张牌(X为此前该技能发动过的次数)。若有角色因此法弃置了所有牌,则你将X归零,然后你发动〖复难〗时,无须令对方获得你使用的牌。",
shouxi: "守玺",
- shouxi_info:
- "当你成为【杀】的目标后,你可声明一种未以此法声明过的基本牌或锦囊牌的牌名。若使用者弃置一张你声明的牌,其获得你的一张牌;若否,则此【杀】对你无效。",
+ shouxi_info: "当你成为【杀】的目标后,你可声明一种未以此法声明过的基本牌或锦囊牌的牌名。若使用者弃置一张你声明的牌,其获得你的一张牌;若否,则此【杀】对你无效。",
huimin: "惠民",
- huimin_info:
- "结束阶段,你可以摸X张牌并展示等量手牌(X为手牌数小于其体力值的角色数),然后从你指定的一名角色开始这些角色依次选择并获得其中一张。",
+ huimin_info: "结束阶段,你可以摸X张牌并展示等量手牌(X为手牌数小于其体力值的角色数),然后从你指定的一名角色开始这些角色依次选择并获得其中一张。",
wengua: "问卦",
wengua2: "问卦",
- wengua_info:
- "其他角色/你的出牌阶段限一次,其可以交给你一张牌,(若当前回合角色为你,则跳过此步骤),你可以将此牌/一张牌置于牌堆顶或牌堆底,然后你与其/你从另一端摸一张牌。",
+ wengua_info: "其他角色/你的出牌阶段限一次,其可以交给你一张牌,(若当前回合角色为你,则跳过此步骤),你可以将此牌/一张牌置于牌堆顶或牌堆底,然后你与其/你从另一端摸一张牌。",
fuzhu: "伏诛",
- fuzhu_info:
- "一名男性角色的结束阶段,若牌堆剩余牌数不大于你体力值的十倍,则你可以依次对其使用牌堆中所有的【杀】(不能超过游戏人数),然后洗牌。",
+ fuzhu_info: "一名男性角色的结束阶段,若牌堆剩余牌数不大于你体力值的十倍,则你可以依次对其使用牌堆中所有的【杀】(不能超过游戏人数),然后洗牌。",
fumian: "福绵",
- fumian_info:
- "准备阶段,你可以选择一项:1.摸牌阶段多摸一张牌;2.使用红色牌可以多选择一个目标(限一次)。若与你上回合选择的选项不同,则该选项数值+1并复原此技能。",
+ fumian_info: "准备阶段,你可以选择一项:1.摸牌阶段多摸一张牌;2.使用红色牌可以多选择一个目标(限一次)。若与你上回合选择的选项不同,则该选项数值+1并复原此技能。",
daiyan: "怠宴",
- daiyan_info:
- "结束阶段,你可以令一名其他角色从牌堆中获得一张红桃基本牌,然后若其于上回合成为过该技能目标,则其失去1点体力。",
+ daiyan_info: "结束阶段,你可以令一名其他角色从牌堆中获得一张红桃基本牌,然后若其于上回合成为过该技能目标,则其失去1点体力。",
xinzhongjian: "忠鉴",
- xinzhongjian_info:
- "出牌阶段限一次,你可以展示自己的一张手牌,然后展示一名其他角色的至多三张手牌。其展示的牌中:每有一张花色相同,你摸一张牌;点数相同,你对其造成1点伤害;均不同,你弃置一张手牌。",
+ xinzhongjian_info: "出牌阶段限一次,你可以展示自己的一张手牌,然后展示一名其他角色的至多三张手牌。其展示的牌中:每有一张花色相同,你摸一张牌;点数相同,你对其造成1点伤害;均不同,你弃置一张手牌。",
zhongjian: "忠鉴",
zhongjian_bg: "鉴",
zhongjian3: "忠鉴",
zhongjian3_bg: "鉴",
- zhongjian_info:
- "出牌阶段限一次,你可以展示一张手牌,然后展示一名其他角色的X张手牌(X为其体力值)。若以此法展示的牌与你展示的牌:有颜色相同的,你选择:①摸一张牌。②弃置一名其他角色的一张牌;有点数相同的,本回合此技能改为“出牌阶段限两次”;均不同,你的手牌上限-1。",
+ zhongjian_info: "出牌阶段限一次,你可以展示一张手牌,然后展示一名其他角色的X张手牌(X为其体力值)。若以此法展示的牌与你展示的牌:有颜色相同的,你选择:①摸一张牌。②弃置一名其他角色的一张牌;有点数相同的,本回合此技能改为“出牌阶段限两次”;均不同,你的手牌上限-1。",
caishi: "才识",
caishix: "才识/忠鉴",
- caishi_info:
- "摸牌阶段开始时,你可以选择一项:1.令手牌上限+1;2.回复1点体力,本回合内不能对自己使用牌。",
+ caishi_info: "摸牌阶段开始时,你可以选择一项:1.令手牌上限+1;2.回复1点体力,本回合内不能对自己使用牌。",
xincaishi: "才识",
- xincaishi_info:
- "摸牌阶段,你可以选择一项:1.少摸一张牌,然后本回合发动〖忠鉴〗时可以多展示自己的一张牌;2.本回合手牌上限-1,然后本回合发动〖忠鉴〗时可以多展示对方的一张牌;3.多摸两张牌,本回合不能发动〖忠鉴〗。",
+ xincaishi_info: "摸牌阶段,你可以选择一项:1.少摸一张牌,然后本回合发动〖忠鉴〗时可以多展示自己的一张牌;2.本回合手牌上限-1,然后本回合发动〖忠鉴〗时可以多展示对方的一张牌;3.多摸两张牌,本回合不能发动〖忠鉴〗。",
guizao: "瑰藻",
- guizao_info:
- "弃牌阶段结束时,若你于此阶段弃置牌的数量不小于2且它们的花色各不相同,你可以回复1点体力或摸一张牌。",
+ guizao_info: "弃牌阶段结束时,若你于此阶段弃置牌的数量不小于2且它们的花色各不相同,你可以回复1点体力或摸一张牌。",
jiyu: "讥谀",
- jiyu_info:
- "出牌阶段限一次,你可以令一名角色弃置一张手牌。若如此做,你不能使用与之相同花色的牌,直到回合结束。若其以此法弃置的牌为黑桃,你翻面并令其失去1点体力。若你有未被〖讥谀〗限制的手牌,则你可以继续发动此技能,但不能选择本回合已经选择过的目标。",
+ jiyu_info: "出牌阶段限一次,你可以令一名角色弃置一张手牌。若如此做,你不能使用与之相同花色的牌,直到回合结束。若其以此法弃置的牌为黑桃,你翻面并令其失去1点体力。若你有未被〖讥谀〗限制的手牌,则你可以继续发动此技能,但不能选择本回合已经选择过的目标。",
qinqing: "寝情",
- qinqing_info:
- "结束阶段,你可以选择任意名攻击范围内含有主公的角色,然后弃置这些角色各一张牌并令其摸一张牌(无牌则不弃),若如此做,你摸X张牌(X为其中手牌比主公多的角色数)。",
- qinqing_info_doudizhu:
- "结束阶段,你可以选择任意名攻击范围内含有地主的角色,然后弃置这些角色各一张牌并令其摸一张牌(无牌则不弃),若如此做,你摸X张牌(X为其中手牌比地主多的角色数)。",
+ qinqing_info: "结束阶段,你可以选择任意名攻击范围内含有主公的角色,然后弃置这些角色各一张牌并令其摸一张牌(无牌则不弃),若如此做,你摸X张牌(X为其中手牌比主公多的角色数)。",
+ qinqing_info_doudizhu: "结束阶段,你可以选择任意名攻击范围内含有地主的角色,然后弃置这些角色各一张牌并令其摸一张牌(无牌则不弃),若如此做,你摸X张牌(X为其中手牌比地主多的角色数)。",
huisheng: "贿生",
- huisheng_info:
- "当你受到其他角色对你造成的伤害时,你可以令其观看你任意数量的牌并令其选择一项:1.获得这些牌中的一张,防止此伤害,然后你不能再对其发动〖贿生〗;2.弃置等量的牌。",
+ huisheng_info: "当你受到其他角色对你造成的伤害时,你可以令其观看你任意数量的牌并令其选择一项:1.获得这些牌中的一张,防止此伤害,然后你不能再对其发动〖贿生〗;2.弃置等量的牌。",
jishe: "极奢",
jishe2: "极奢",
- jishe_info:
- "①出牌阶段限20次,若你的手牌上限大于0,你可以摸一张牌,然后你本回合的手牌上限-1。②结束阶段开始时,若你没有手牌,则你可以横置至多X名角色的武将牌(X为你的体力值)。",
+ jishe_info: "①出牌阶段限20次,若你的手牌上限大于0,你可以摸一张牌,然后你本回合的手牌上限-1。②结束阶段开始时,若你没有手牌,则你可以横置至多X名角色的武将牌(X为你的体力值)。",
lianhuo: "链祸",
- lianhuo_info:
- "锁定技,当你受到火焰伤害时,若你的武将牌处于横置状态且此伤害不为连环伤害,则此伤害+1。",
+ lianhuo_info: "锁定技,当你受到火焰伤害时,若你的武将牌处于横置状态且此伤害不为连环伤害,则此伤害+1。",
taoluan: "滔乱",
taoluan_backup: "滔乱",
- taoluan_info:
- "你可以将一张牌当做任意一张基本牌或普通锦囊牌使用(此牌不得是本局游戏你以此法使用过的牌),然后你令一名其他角色选择一项:1.交给你一张与你以此法使用的牌类别不同的牌;2.你失去1点体力且〖滔乱〗无效直到回合结束。",
+ taoluan_info: "你可以将一张牌当做任意一张基本牌或普通锦囊牌使用(此牌不得是本局游戏你以此法使用过的牌),然后你令一名其他角色选择一项:1.交给你一张与你以此法使用的牌类别不同的牌;2.你失去1点体力且〖滔乱〗无效直到回合结束。",
xintaoluan: "滔乱",
xintaoluan_backup: "滔乱",
- xintaoluan_info:
- "若场上没有濒死的角色,则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用(此牌不得是本回合内你以此法使用过的牌),然后你令一名其他角色选择一项:1.交给你X张与你以此法使用的牌类别不同的牌;2.你失去X点体力且滔乱无效直到回合结束(X为你本回合内发动过〖滔乱〗的次数且至多为3)。",
+ xintaoluan_info: "若场上没有濒死的角色,则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用(此牌不得是本回合内你以此法使用过的牌),然后你令一名其他角色选择一项:1.交给你X张与你以此法使用的牌类别不同的牌;2.你失去X点体力且滔乱无效直到回合结束(X为你本回合内发动过〖滔乱〗的次数且至多为3)。",
jiaozhao: "矫诏",
jiaozhao3: "矫诏",
jiaozhao3_backup: "矫诏",
jiaozhao2: "矫诏",
- jiaozhao_info:
- "出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌)。",
+ jiaozhao_info: "出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用(你不能对自己使用此牌)。",
danxin: "殚心",
- danxin_info:
- "当你受到伤害后,你可以摸一张牌,或对“矫诏”的描述依次执行下列一项修改:1.将“基本牌”改为“基本牌或普通锦囊牌”;2.将“选择距离最近的一名其他角色,该角色”改为“你”。",
+ danxin_info: "当你受到伤害后,你可以摸一张牌,或对“矫诏”的描述依次执行下列一项修改:1.将“基本牌”改为“基本牌或普通锦囊牌”;2.将“选择距离最近的一名其他角色,该角色”改为“你”。",
xindanxin: "殚心",
- xindanxin_info:
- "当你受到伤害后,你可以摸一张牌,并对“矫诏”的描述依次执行下列一项修改:1.将“基本牌”改为“基本牌或普通锦囊牌”;2.将“选择距离最近的一名其他角色,该角色”改为“你”。3.将“出牌阶段限一次”改为“出牌阶段限两次”。",
+ xindanxin_info: "当你受到伤害后,你可以摸一张牌,并对“矫诏”的描述依次执行下列一项修改:1.将“基本牌”改为“基本牌或普通锦囊牌”;2.将“选择距离最近的一名其他角色,该角色”改为“你”。3.将“出牌阶段限一次”改为“出牌阶段限两次”。",
duliang: "督粮",
duliang2: "督粮",
- duliang_info:
- "出牌阶段限一次,你可以获得一名其他角色的一张手牌,然后选择一项:1.令其观看牌堆顶的两张牌,然后获得其中的基本牌;2.令其于下个摸牌阶段额外摸一张牌。",
+ duliang_info: "出牌阶段限一次,你可以获得一名其他角色的一张手牌,然后选择一项:1.令其观看牌堆顶的两张牌,然后获得其中的基本牌;2.令其于下个摸牌阶段额外摸一张牌。",
fulin: "腹鳞",
fulin_info: "锁定技,你于回合内得到的牌不计入你本回合的手牌上限。",
kuangbi: "匡弼",
- kuangbi_info:
- "出牌阶段限一次,你可以选择一名有牌的其他角色,该角色将其的一至三张牌置于你的武将牌上。若如此做,你的下个准备阶段,你获得武将牌上的所有牌,然后其摸等量的牌。",
+ kuangbi_info: "出牌阶段限一次,你可以选择一名有牌的其他角色,该角色将其的一至三张牌置于你的武将牌上。若如此做,你的下个准备阶段,你获得武将牌上的所有牌,然后其摸等量的牌。",
xinzhige: "止戈",
- xinzhige_info:
- "出牌阶段限一次,你可以令一名攻击范围内含有你的其他角色交给你一张【杀】或武器牌,否则其视为对你指定的另一名其攻击范围内的角色使用了一张【杀】。",
+ xinzhige_info: "出牌阶段限一次,你可以令一名攻击范围内含有你的其他角色交给你一张【杀】或武器牌,否则其视为对你指定的另一名其攻击范围内的角色使用了一张【杀】。",
zhige: "止戈",
- zhige_info:
- "出牌阶段限一次,若你的手牌数大于你的体力值,你可以选择攻击范围内含有你的一名其他角色,其选择一项:1.使用一张【杀】;2.将装备区里的一张牌交给你。",
+ zhige_info: "出牌阶段限一次,若你的手牌数大于你的体力值,你可以选择攻击范围内含有你的一名其他角色,其选择一项:1.使用一张【杀】;2.将装备区里的一张牌交给你。",
xinzongzuo: "宗祚",
- xinzongzuo_info:
- "锁定技,游戏的第一个回合开始前,你加X点体力上限并回复X点体力(X为全场势力数);当一名角色死亡后,若没有与其势力相同的角色,你减1点体力上限并摸两张牌。",
+ xinzongzuo_info: "锁定技,游戏的第一个回合开始前,你加X点体力上限并回复X点体力(X为全场势力数);当一名角色死亡后,若没有与其势力相同的角色,你减1点体力上限并摸两张牌。",
zongzuo: "宗祚",
- zongzuo_info:
- "锁定技,游戏的第一个回合开始前,你加X点体力上限并回复X点体力(X为全场势力数);当一名角色死亡后,若没有与其势力相同的角色,你减1点体力上限。",
+ zongzuo_info: "锁定技,游戏的第一个回合开始前,你加X点体力上限并回复X点体力(X为全场势力数);当一名角色死亡后,若没有与其势力相同的角色,你减1点体力上限。",
xinjuece: "绝策",
xinjuece_info: "结束阶段,你可以对一名没有手牌的角色造成1点伤害。",
xinmieji: "灭计",
- xinmieji_info:
- "出牌阶段限一次,你可以展示一张黑色锦囊牌并将之置于牌堆顶,然后令有手牌的一名其他角色选择一项:弃置一张锦囊牌;或依次弃置两张非锦囊牌。",
+ xinmieji_info: "出牌阶段限一次,你可以展示一张黑色锦囊牌并将之置于牌堆顶,然后令有手牌的一名其他角色选择一项:弃置一张锦囊牌;或依次弃置两张非锦囊牌。",
xinfencheng: "焚城",
- xinfencheng_info:
- "限定技。出牌阶段,你可以令所有其他角色各选择一项:弃置至少X张牌(X为该角色的上家以此法弃置牌的数量+1);或受到你对其造成的2点火焰伤害。",
+ xinfencheng_info: "限定技。出牌阶段,你可以令所有其他角色各选择一项:弃置至少X张牌(X为该角色的上家以此法弃置牌的数量+1);或受到你对其造成的2点火焰伤害。",
qianju: "千驹",
qianju_info: "锁定技,若你已受伤,你计算与其他角色的距离时-X(X为你已损失的体力值)。",
qingxi: "倾袭",
- qingxi_info:
- "当你使用【杀】对目标角色造成伤害时,若你的装备区里有武器牌,你可以令其选择一项:1、弃置X张手牌(X为此武器牌的攻击范围),若如此做,其弃置你的此武器牌;2、令伤害值+1。",
+ qingxi_info: "当你使用【杀】对目标角色造成伤害时,若你的装备区里有武器牌,你可以令其选择一项:1、弃置X张手牌(X为此武器牌的攻击范围),若如此做,其弃置你的此武器牌;2、令伤害值+1。",
reqianju: "千驹",
reqianju_info: "锁定技,若你已受伤,你计算与其他角色的距离时-X(X为你已损失的体力值且至少为1)。",
reqingxi: "倾袭",
- reqingxi_info:
- "当你使用【杀】或【决斗】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2),若如此做,其弃置你的此武器牌;2、令此牌的伤害值+1且你进行判定,若结果为红色,则其不能响应此牌。",
+ reqingxi_info: "当你使用【杀】或【决斗】指定目标后,你可以令其选择一项:1、弃置X张手牌(X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2),若如此做,其弃置你的此武器牌;2、令此牌的伤害值+1且你进行判定,若结果为红色,则其不能响应此牌。",
jieyue: "节钺",
- jieyue_info:
- "①结束阶段,你可以弃置一张手牌,然后令一名其他角色选择一项:1.将一张牌置于你的武将牌上,称之为“节”;2.令你弃置其一张牌。②若你有“节”,你可以将红色/黑色手牌当作【闪】/【无懈可击】使用或打出。③准备阶段,若你有“节”,则你获得之。",
+ jieyue_info: "①结束阶段,你可以弃置一张手牌,然后令一名其他角色选择一项:1.将一张牌置于你的武将牌上,称之为“节”;2.令你弃置其一张牌。②若你有“节”,你可以将红色/黑色手牌当作【闪】/【无懈可击】使用或打出。③准备阶段,若你有“节”,则你获得之。",
xianzhen: "陷阵",
- xianzhen_info:
- "出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视与该角色的距离;无视该角色的防具且对其使用【杀】没有次数限制。若你没赢,你不能使用【杀】直到回合结束。",
+ xianzhen_info: "出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视与该角色的距离;无视该角色的防具且对其使用【杀】没有次数限制。若你没赢,你不能使用【杀】直到回合结束。",
xinxianzhen: "陷阵",
- xinxianzhen_info:
- "出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视该角色的防具且对其使用牌没有次数和距离限制,且当你使用【杀】或普通锦囊牌指定其他角色为唯一目标时可以令该角色也成为此牌的目标。若你没赢,你不能使用【杀】且你的【杀】不计入手牌上限直到回合结束。",
+ xinxianzhen_info: "出牌阶段限一次,你可以与一名角色拼点。若你赢,你获得以下效果直到回合结束:无视该角色的防具且对其使用牌没有次数和距离限制,且当你使用【杀】或普通锦囊牌指定其他角色为唯一目标时可以令该角色也成为此牌的目标。若你没赢,你不能使用【杀】且你的【杀】不计入手牌上限直到回合结束。",
xinxianzhen2: "陷阵",
jinjiu: "禁酒",
jinjiu_info: "锁定技,你的【酒】均视为【杀】。",
chunlao: "醇醪",
chunlao2: "醇醪",
- chunlao_info:
- "结束阶段开始时,若你没有“醇”,你可以将至少一张【杀】置于你的武将牌上,称为“醇”。当一名角色处于濒死状态时,你可以移去一张“醇”,视为该角色使用一张【酒】。",
+ chunlao_info: "结束阶段开始时,若你没有“醇”,你可以将至少一张【杀】置于你的武将牌上,称为“醇”。当一名角色处于濒死状态时,你可以移去一张“醇”,视为该角色使用一张【酒】。",
lihuo: "疠火",
- lihuo_info:
- "当你声明使用普通【杀】后,你可以将此【杀】改为火【杀】。若以此法使用的【杀】造成了伤害,则此【杀】结算后你失去1点体力;你使用火【杀】选择目标后,可以额外指定一个目标。",
+ lihuo_info: "当你声明使用普通【杀】后,你可以将此【杀】改为火【杀】。若以此法使用的【杀】造成了伤害,则此【杀】结算后你失去1点体力;你使用火【杀】选择目标后,可以额外指定一个目标。",
shenduan: "慎断",
- shenduan_info:
- "当你的黑色基本牌因弃置而进入弃牌堆后,你可以将其当做【兵粮寸断】使用(无距离限制)。",
+ shenduan_info: "当你的黑色基本牌因弃置而进入弃牌堆后,你可以将其当做【兵粮寸断】使用(无距离限制)。",
yonglve: "勇略",
- yonglve_info:
- "一名其他角色的判定阶段开始时,若其在你攻击范围内,则你可以弃置其判定区里的一张牌,视为对该角色使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。",
+ yonglve_info: "一名其他角色的判定阶段开始时,若其在你攻击范围内,则你可以弃置其判定区里的一张牌,视为对该角色使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。",
reshenduan: "慎断",
- reshenduan_info:
- "当你的黑色基本牌或装备牌因弃置而进入弃牌堆后,你可以将其当做【兵粮寸断】使用(无距离限制)。",
+ reshenduan_info: "当你的黑色基本牌或装备牌因弃置而进入弃牌堆后,你可以将其当做【兵粮寸断】使用(无距离限制)。",
reyonglve: "勇略",
- reyonglve_info:
- "其他角色的判定阶段开始时,你可以弃置其判定区里的一张牌。然后若该角色在你攻击范围内,你摸一张牌。若其在你攻击范围外,视为你对其使用一张【杀】。",
+ reyonglve_info: "其他角色的判定阶段开始时,你可以弃置其判定区里的一张牌。然后若该角色在你攻击范围内,你摸一张牌。若其在你攻击范围外,视为你对其使用一张【杀】。",
benxi: "奔袭",
- benxi_info:
- "锁定技,你的回合内,你每使用一次牌后,你的进攻距离+1直到回合结束;你的回合内,若你与所有角色的距离均为1,你无视其他角色的防具,且你使用的【杀】可额外指定一个目标。",
+ benxi_info: "锁定技,你的回合内,你每使用一次牌后,你的进攻距离+1直到回合结束;你的回合内,若你与所有角色的距离均为1,你无视其他角色的防具,且你使用的【杀】可额外指定一个目标。",
xinbenxi: "奔袭",
- xinbenxi_info:
- "锁定技,当你于回合内使用牌时,你本回合计算与其他角色的距离-1。你的回合内,若你至场上所有其他角色的距离均不大于1,则当你使用【杀】或普通锦囊牌选择唯一目标后,你选择至多两项:1.为此牌多指定一个目标;2.令此牌无视防具;3.令此牌不可被抵消;4.此牌造成伤害时摸一张牌。",
+ xinbenxi_info: "锁定技,当你于回合内使用牌时,你本回合计算与其他角色的距离-1。你的回合内,若你至场上所有其他角色的距离均不大于1,则当你使用【杀】或普通锦囊牌选择唯一目标后,你选择至多两项:1.为此牌多指定一个目标;2.令此牌无视防具;3.令此牌不可被抵消;4.此牌造成伤害时摸一张牌。",
sidi: "司敌",
sidi2: "司敌",
sidi3: "司敌",
- sidi_info:
- "①当你使用或其他角色在你的回合内使用【闪】时,你可以将牌堆顶的牌置于你的武将牌上,称为“司敌”牌。②其他角色的出牌阶段开始时,你可以移去一张“司敌”牌,令其本阶段使用【杀】的次数上限-1。",
+ sidi_info: "①当你使用或其他角色在你的回合内使用【闪】时,你可以将牌堆顶的牌置于你的武将牌上,称为“司敌”牌。②其他角色的出牌阶段开始时,你可以移去一张“司敌”牌,令其本阶段使用【杀】的次数上限-1。",
xinsidi: "司敌",
xinsidi2: "司敌",
- xinsidi_info:
- "其他角色出牌阶段开始时,你可以弃置一张与你装备区里的牌颜色相同的非基本牌,然后该角色于此阶段内不能使用和打出与此牌颜色相同的牌。此阶段结束时,若其此阶段没有使用【杀】,视为你对其使用了【杀】。",
+ xinsidi_info: "其他角色出牌阶段开始时,你可以弃置一张与你装备区里的牌颜色相同的非基本牌,然后该角色于此阶段内不能使用和打出与此牌颜色相同的牌。此阶段结束时,若其此阶段没有使用【杀】,视为你对其使用了【杀】。",
dangxian: "当先",
dangxian_info: "锁定技,回合开始时,你执行一个额外的出牌阶段。",
xindangxian: "当先",
- xindangxian_info:
- "锁定技,回合开始时,你执行一个额外的出牌阶段。此阶段开始时,你失去1点体力并从牌堆/弃牌堆中获得一张【杀】(若你已发动过〖伏枥〗,则可以不发动此效果)。",
+ xindangxian_info: "锁定技,回合开始时,你执行一个额外的出牌阶段。此阶段开始时,你失去1点体力并从牌堆/弃牌堆中获得一张【杀】(若你已发动过〖伏枥〗,则可以不发动此效果)。",
longyin: "龙吟",
- longyin_info:
- "当一名角色于其出牌阶段内使用【杀】时,你可弃置一张牌令此【杀】不计入出牌阶段使用次数,若此【杀】为红色,你摸一张牌。",
+ longyin_info: "当一名角色于其出牌阶段内使用【杀】时,你可弃置一张牌令此【杀】不计入出牌阶段使用次数,若此【杀】为红色,你摸一张牌。",
zhongyong: "忠勇",
- zhongyong_info:
- "当你于出牌阶段内使用的【杀】被目标角色使用的【闪】抵消时,你可以将此【闪】交给除该角色外的一名角色。若获得此【闪】的角色不是你,你可以对相同的目标再使用一张【杀】。",
+ zhongyong_info: "当你于出牌阶段内使用的【杀】被目标角色使用的【闪】抵消时,你可以将此【闪】交给除该角色外的一名角色。若获得此【闪】的角色不是你,你可以对相同的目标再使用一张【杀】。",
xinzhongyong: "忠勇",
- xinzhongyong_info:
- "当你使用的【杀】结算完毕后,你可以将此【杀】或目标角色使用的【闪】交给一名该角色以外的其他角色,以此法得到红色牌的角色可以对你攻击范围内的角色使用一张【杀】。",
+ xinzhongyong_info: "当你使用的【杀】结算完毕后,你可以将此【杀】或目标角色使用的【闪】交给一名该角色以外的其他角色,以此法得到红色牌的角色可以对你攻击范围内的角色使用一张【杀】。",
jigong: "急攻",
- jigong_info:
- "出牌阶段开始时,你可以摸两张牌。若如此做,你本回合的手牌上限改为X(X为你此阶段造成的伤害点数之和)。",
+ jigong_info: "出牌阶段开始时,你可以摸两张牌。若如此做,你本回合的手牌上限改为X(X为你此阶段造成的伤害点数之和)。",
shifei: "饰非",
- shifei_info:
- "当你需要使用或打出【闪】时,你可以令当前回合角色摸一张牌。然后若其手牌数不为全场唯一最多,则你弃置全场手牌数最多(或之一)角色的一张牌,视为你使用或打出了一张【闪】。",
+ shifei_info: "当你需要使用或打出【闪】时,你可以令当前回合角色摸一张牌。然后若其手牌数不为全场唯一最多,则你弃置全场手牌数最多(或之一)角色的一张牌,视为你使用或打出了一张【闪】。",
huaiyi: "怀异",
- huaiyi_info:
- "出牌阶段限一次,你可以展示所有手牌,若这些牌的颜色不全部相同,则你选择一种颜色并弃置该颜色的所有手牌,然后你可以获得至多X名角色的各一张牌(X为你以此法弃置的手牌数)。若你以此法得到的牌不少于两张,则你失去1点体力。",
+ huaiyi_info: "出牌阶段限一次,你可以展示所有手牌,若这些牌的颜色不全部相同,则你选择一种颜色并弃置该颜色的所有手牌,然后你可以获得至多X名角色的各一张牌(X为你以此法弃置的手牌数)。若你以此法得到的牌不少于两张,则你失去1点体力。",
yaoming: "邀名",
- yaoming_info:
- "每回合限一次,当你造成或受到伤害后,你可以选择一项:1. 弃置手牌数大于你的一名角色的一张手牌;2. 令手牌数小于你的一名角色摸一张牌。",
+ yaoming_info: "每回合限一次,当你造成或受到伤害后,你可以选择一项:1. 弃置手牌数大于你的一名角色的一张手牌;2. 令手牌数小于你的一名角色摸一张牌。",
xinyaoming: "邀名",
- xinyaoming_info:
- "每回合每个选项限一次,当你造成或受到伤害后,你可以选择一项:1. 弃置一名其他角色的一张手牌;2. 令一名其他角色摸一张牌;3.令一名角色弃置至多两张牌,然后摸等量的牌。",
+ xinyaoming_info: "每回合每个选项限一次,当你造成或受到伤害后,你可以选择一项:1. 弃置一名其他角色的一张手牌;2. 令一名其他角色摸一张牌;3.令一名角色弃置至多两张牌,然后摸等量的牌。",
anguo: "安国",
- anguo_info:
- "出牌阶段限一次,你可以选择一名其他角色装备区里的一张牌,令其获得此牌。然后若该角色攻击范围内的角色数因此减少,则你摸一张牌。",
+ anguo_info: "出牌阶段限一次,你可以选择一名其他角色装备区里的一张牌,令其获得此牌。然后若该角色攻击范围内的角色数因此减少,则你摸一张牌。",
yanzhu: "宴诛",
- yanzhu_info:
- "出牌阶段限一次,你可以令一名有牌的其他角色选择一项:令你获得其装备区里所有的牌,然后你失去技能〖宴诛〗;或弃置一张牌。",
+ yanzhu_info: "出牌阶段限一次,你可以令一名有牌的其他角色选择一项:令你获得其装备区里所有的牌,然后你失去技能〖宴诛〗;或弃置一张牌。",
xingxue: "兴学",
- xingxue_info:
- "结束阶段开始时,你可以令至多X名角色依次摸一张牌并将一张牌置于牌堆顶(X为你的体力值,若你已失去技能〖宴诛〗,则将X改为你的体力上限)。",
+ xingxue_info: "结束阶段开始时,你可以令至多X名角色依次摸一张牌并将一张牌置于牌堆顶(X为你的体力值,若你已失去技能〖宴诛〗,则将X改为你的体力上限)。",
zhaofu: "诏缚",
zhaofu_info: "主公技,锁定技,你距离为1的角色视为在其他吴势力角色的攻击范围内。",
reyanzhu: "宴诛",
reyanzhu2: "宴诛",
- reyanzhu_info:
- "出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。",
+ reyanzhu_info: "出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。",
reyanzhu_rewrite: "宴诛·改",
- reyanzhu_rewrite_info:
- "出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。",
+ reyanzhu_rewrite_info: "出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。",
rexingxue: "兴学",
- rexingxue_info:
- "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。",
+ rexingxue_info: "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。",
rexingxue_rewrite: "兴学·改",
- rexingxue_rewrite_info:
- "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。",
+ rexingxue_rewrite_info: "结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数大于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。",
rezhaofu: "诏缚",
rezhaofu_info: "主公技,锁定技,你攻击范围内的角色视为在其他吴势力角色的攻击范围内。",
wurong: "怃戎",
- wurong_info:
- "出牌阶段限一次,你可以令一名其他角色与你同时展示一张手牌:若你展示的是【杀】且该角色展示的不是【闪】,则你弃置此【杀】并对其造成1点伤害;若你展示的不是【杀】且该角色展示的是【闪】,则你弃置你展示的牌并获得其一张牌。",
+ wurong_info: "出牌阶段限一次,你可以令一名其他角色与你同时展示一张手牌:若你展示的是【杀】且该角色展示的不是【闪】,则你弃置此【杀】并对其造成1点伤害;若你展示的不是【杀】且该角色展示的是【闪】,则你弃置你展示的牌并获得其一张牌。",
shizhi: "矢志",
shizhi_info: "锁定技,当你的体力值为1时,你的【闪】均视为【杀】。",
zhanjue: "战绝",
- zhanjue_info:
- "出牌阶段,你可以将所有手牌当作【决斗】使用。此【决斗】结算后,你与以此法受到伤害的角色各摸一张牌。若你在同一阶段内以此法摸了两张或更多的牌,则此技能失效直到回合结束。",
+ zhanjue_info: "出牌阶段,你可以将所有手牌当作【决斗】使用。此【决斗】结算后,你与以此法受到伤害的角色各摸一张牌。若你在同一阶段内以此法摸了两张或更多的牌,则此技能失效直到回合结束。",
qinwang: "勤王",
qinwang1: "勤王",
qinwang2: "勤王",
- qinwang_info:
- "主公技,当你需要使用或打出一张【杀】时,你可以弃置一张牌,然后视为你发动了〖激将①〗。若有角色响应,则该角色打出【杀】时摸一张牌。",
+ qinwang_info: "主公技,当你需要使用或打出一张【杀】时,你可以弃置一张牌,然后视为你发动了〖激将①〗。若有角色响应,则该角色打出【杀】时摸一张牌。",
huomo: "活墨",
- huomo_info:
- "当你需要使用一张本回合内未使用过的基本牌时,你可以将一张黑色非基本牌置于牌堆顶,视为使用此基本牌。",
+ huomo_info: "当你需要使用一张本回合内未使用过的基本牌时,你可以将一张黑色非基本牌置于牌堆顶,视为使用此基本牌。",
zuoding: "佐定",
- zuoding_info:
- "当其他角色于其回合内使用♠牌指定目标后,若本回合内没有角色受到过伤害,则你可以令其中一名目标角色摸一张牌。",
+ zuoding_info: "当其他角色于其回合内使用♠牌指定目标后,若本回合内没有角色受到过伤害,则你可以令其中一名目标角色摸一张牌。",
taoxi: "讨袭",
taoxi2: "讨袭",
taoxi3: "讨袭",
- taoxi_info:
- "出牌阶段限一次。当你使用牌指定一名其他角色为唯一目标后,你可以亮出其一张手牌直到回合结束,并且你于此回合内可以将此牌如手牌般使用。回合结束时,若此牌仍在该角色手牌区里,你失去1点体力。",
+ taoxi_info: "出牌阶段限一次。当你使用牌指定一名其他角色为唯一目标后,你可以亮出其一张手牌直到回合结束,并且你于此回合内可以将此牌如手牌般使用。回合结束时,若此牌仍在该角色手牌区里,你失去1点体力。",
huituo: "恢拓",
- huituo_info:
- "当你受到伤害后,你可以令一名角色进行一次判定,若结果为红色,该角色回复1点体力;若结果为黑色,该角色摸X张牌(X为此次伤害的伤害点数)。",
+ huituo_info: "当你受到伤害后,你可以令一名角色进行一次判定,若结果为红色,该角色回复1点体力;若结果为黑色,该角色摸X张牌(X为此次伤害的伤害点数)。",
mingjian: "明鉴",
mingjian2: "明鉴",
- mingjian_info:
- "出牌阶段限一次。你可以将所有手牌交给一名其他角色,然后该角色于其下个回合的手牌上限+1,且使用【杀】的次数上限+1。",
+ mingjian_info: "出牌阶段限一次。你可以将所有手牌交给一名其他角色,然后该角色于其下个回合的手牌上限+1,且使用【杀】的次数上限+1。",
xingshuai: "兴衰",
- xingshuai_info:
- "主公技,限定技,当你进入濒死状态时,其他魏势力角色可依次令你回复1点体力,然后这些角色依次受到1点伤害。",
+ xingshuai_info: "主公技,限定技,当你进入濒死状态时,其他魏势力角色可依次令你回复1点体力,然后这些角色依次受到1点伤害。",
reduodao: "夺刀",
- reduodao_info:
- "当你成为【杀】的目标后,你可以弃置一张牌。然后你获得此【杀】使用者装备区里的武器牌。",
+ reduodao_info: "当你成为【杀】的目标后,你可以弃置一张牌。然后你获得此【杀】使用者装备区里的武器牌。",
reanjian: "暗箭",
- reanjian_info:
- "锁定技,当你使用【杀】指定目标后,若你不在其攻击范围内,则此杀伤害+1且无视其防具。若其因执行此【杀】的效果受到伤害而进入濒死状态,则其不能使用【桃】直到此濒死事件结算结束。",
+ reanjian_info: "锁定技,当你使用【杀】指定目标后,若你不在其攻击范围内,则此杀伤害+1且无视其防具。若其因执行此【杀】的效果受到伤害而进入濒死状态,则其不能使用【桃】直到此濒死事件结算结束。",
duodao: "夺刀",
duodao_info: "当你受到【杀】造成的伤害后,你可以弃置一张牌,然后获得伤害来源装备区里的武器牌。",
anjian: "暗箭",
anjian_info: "锁定技,当你使用【杀】对目标角色造成伤害时,若你不在其攻击范围内,则此杀伤害+1。",
xinpojun: "破军",
xinpojun2: "破军",
- xinpojun_info:
- "当你于出牌阶段内使用【杀】指定一个目标后,你可以将其至多X张牌扣置于该角色的武将牌旁(X为其体力值)。若如此做,当前回合结束后,该角色获得其武将牌旁的所有牌。",
+ xinpojun_info: "当你于出牌阶段内使用【杀】指定一个目标后,你可以将其至多X张牌扣置于该角色的武将牌旁(X为其体力值)。若如此做,当前回合结束后,该角色获得其武将牌旁的所有牌。",
qiaoshi: "樵拾",
qiaoshi_info: "其他角色的结束阶段开始时,若你的手牌数与其相等,则你可以与其各摸一张牌。",
yanyu: "燕语",
yanyu2: "燕语",
- yanyu_info:
- "出牌阶段,你可以重铸【杀】。出牌阶段结束时,若你于此阶段以此法重铸了至少两张【杀】,则你可以令一名男性角色摸两张牌。",
+ yanyu_info: "出牌阶段,你可以重铸【杀】。出牌阶段结束时,若你于此阶段以此法重铸了至少两张【杀】,则你可以令一名男性角色摸两张牌。",
zzhenggong: "争功",
zzhenggong_info: "当你受到伤害后,你可以获得伤害来源装备区里的一张牌并置入你的装备区。",
zquanji: "权计",
zquanji_info: "其他角色的回合开始时,你可以与该角色拼点。若你赢,该角色跳过准备阶段和判定阶段。",
zbaijiang: "拜将",
- zbaijiang_info:
- "觉醒技。准备阶段,若你装备区里的牌数不少于两张,你加1点体力上限,失去〖权计〗和〖争功〗,获得〖野心〗和〖自立〗。",
+ zbaijiang_info: "觉醒技。准备阶段,若你装备区里的牌数不少于两张,你加1点体力上限,失去〖权计〗和〖争功〗,获得〖野心〗和〖自立〗。",
zyexin: "野心",
zyexin2: "野心",
- zyexin_info:
- "①当你造成或受到伤害后,你可以将牌堆顶的一张牌置于你的武将牌上,称为“权”。②出牌阶段限一次。你可以用任意数量的手牌与等量的“权”交换。",
+ zyexin_info: "①当你造成或受到伤害后,你可以将牌堆顶的一张牌置于你的武将牌上,称为“权”。②出牌阶段限一次。你可以用任意数量的手牌与等量的“权”交换。",
zzili: "自立",
zzili_info: "觉醒技。准备阶段,若你的“权”数不小于4,你减1点体力上限并获得〖排异〗。",
zpaiyi: "排异",
- zpaiyi_info:
- "结束阶段,你可以选择一张“权”,若此牌为:装备牌,你将此牌置入一名角色的装备区;延时类锦囊牌,你将此牌置入一名角色的判定区;基本牌或普通锦囊牌,你将此牌交给一名角色。然后若此牌的目标区域对应的角色不为你,你可以摸一张牌。",
+ zpaiyi_info: "结束阶段,你可以选择一张“权”,若此牌为:装备牌,你将此牌置入一名角色的装备区;延时类锦囊牌,你将此牌置入一名角色的判定区;基本牌或普通锦囊牌,你将此牌交给一名角色。然后若此牌的目标区域对应的角色不为你,你可以摸一张牌。",
shibei: "矢北",
- shibei_info:
- "锁定技,当你受到伤害后:若此伤害是你本回合第一次受到的伤害,则你回复1点体力;否则你失去1点体力。",
+ shibei_info: "锁定技,当你受到伤害后:若此伤害是你本回合第一次受到的伤害,则你回复1点体力;否则你失去1点体力。",
jianying: "渐营",
- jianying_info:
- "当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。",
+ jianying_info: "当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。",
xinenyuan: "恩怨",
xinenyuan1: "恩怨",
xinenyuan2: "恩怨",
- xinenyuan_info:
- "当你获得一名其他角色两张或更多的牌后,你可以令其摸一张牌;当你受到1点伤害后,你可以令伤害来源选择一项:1、将一张手牌交给你;2、失去1点体力。",
+ xinenyuan_info: "当你获得一名其他角色两张或更多的牌后,你可以令其摸一张牌;当你受到1点伤害后,你可以令伤害来源选择一项:1、将一张手牌交给你;2、失去1点体力。",
xinxuanhuo: "眩惑",
- xinxuanhuo_info:
- "摸牌阶段开始时,你可以改为令一名其他角色摸两张牌,然后该角色需对其攻击范围内你选择的另一名角色使用一张【杀】,否则你获得其两张牌。",
+ xinxuanhuo_info: "摸牌阶段开始时,你可以改为令一名其他角色摸两张牌,然后该角色需对其攻击范围内你选择的另一名角色使用一张【杀】,否则你获得其两张牌。",
fuhun: "父魂",
fuhun2: "父魂",
- fuhun_info:
- "你可以将两张手牌当做【杀】使用或打出;当你于出牌阶段以此法使用的【杀】造成伤害后,你获得〖武圣〗和〖咆哮〗直到回合结束。",
+ fuhun_info: "你可以将两张手牌当做【杀】使用或打出;当你于出牌阶段以此法使用的【杀】造成伤害后,你获得〖武圣〗和〖咆哮〗直到回合结束。",
yuce: "御策",
- yuce_info:
- "当你受到伤害后,你可以展示一张手牌,并令伤害来源选择一项:弃置一张与此牌类型不同的手牌,或令你回复1点体力。",
+ yuce_info: "当你受到伤害后,你可以展示一张手牌,并令伤害来源选择一项:弃置一张与此牌类型不同的手牌,或令你回复1点体力。",
xiansi: "陷嗣",
xiansix: "陷嗣",
xiansi_bg: "逆",
xiansi2: "陷嗣",
- xiansi_info:
- "准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”;当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用了一张【杀】。",
+ xiansi_info: "准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”;当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用了一张【杀】。",
chanhui: "谮毁",
- chanhui_info:
- "出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。",
+ chanhui_info: "出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。",
rechanhui: "谮毁",
- rechanhui_info:
- "当你使用【杀】或普通锦囊牌指定唯一目标时,你可令可以成为此牌目标(无距离限制)的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且你本回合内不能再次发动〖谮毁〗。",
+ rechanhui_info: "当你使用【杀】或普通锦囊牌指定唯一目标时,你可令可以成为此牌目标(无距离限制)的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且你本回合内不能再次发动〖谮毁〗。",
jiaojin: "骄矜",
jiaojin_info: "当你受到男性角色造成的伤害时,你可以弃置一张装备牌,令此伤害-1。",
rejiaojin: "骄矜",
- rejiaojin_info:
- "当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以弃置一张装备牌,令此牌对你无效并获得此牌对应的所有实体牌。若此牌的使用者为女性角色,则你令〖骄矜〗失效直到回合结束。",
+ rejiaojin_info: "当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以弃置一张装备牌,令此牌对你无效并获得此牌对应的所有实体牌。若此牌的使用者为女性角色,则你令〖骄矜〗失效直到回合结束。",
shenxing: "慎行",
shenxing_info: "出牌阶段,你可以弃置两张牌,然后摸一张牌。",
bingyi: "秉壹",
- bingyi_info:
- "结束阶段开始时,你可以展示所有手牌,若这些牌颜色均相同,则你令至多X名角色各摸一张牌(X为你的手牌数)。",
+ bingyi_info: "结束阶段开始时,你可以展示所有手牌,若这些牌颜色均相同,则你令至多X名角色各摸一张牌(X为你的手牌数)。",
qiangzhi: "强识",
qiangzhi_draw: "强识",
- qiangzhi_info:
- "出牌阶段开始时,你可以展示一名其他角色的一张手牌。若如此做,当你于此阶段内使用与此牌类别相同的牌时,你可以摸一张牌。",
+ qiangzhi_info: "出牌阶段开始时,你可以展示一名其他角色的一张手牌。若如此做,当你于此阶段内使用与此牌类别相同的牌时,你可以摸一张牌。",
xiantu: "献图",
xiantu2: "献图",
xiantu3: "献图",
- xiantu_info:
- "一名其他角色的出牌阶段开始时,你可以摸两张牌,然后交给其两张牌。若如此做,此阶段结束时,若该角色未于此阶段内杀死过角色,则你失去1点体力。",
+ xiantu_info: "一名其他角色的出牌阶段开始时,你可以摸两张牌,然后交给其两张牌。若如此做,此阶段结束时,若该角色未于此阶段内杀死过角色,则你失去1点体力。",
dingpin: "定品",
- dingpin_info:
- "出牌阶段,你可以弃置一张手牌,然后令一名已受伤的角色判定,若结果为黑色,该角色摸X张牌(X为该角色已损失的体力值),然后你本回合不能再对其发动〖定品〗;若结果为红色,你翻面(你不能弃置本回合已弃置或使用过的类型的牌)。",
+ dingpin_info: "出牌阶段,你可以弃置一张手牌,然后令一名已受伤的角色判定,若结果为黑色,该角色摸X张牌(X为该角色已损失的体力值),然后你本回合不能再对其发动〖定品〗;若结果为红色,你翻面(你不能弃置本回合已弃置或使用过的类型的牌)。",
faen: "法恩",
faen_info: "当一名角色翻至正面或横置后,你可以令其摸一张牌。",
jyzongshi: "纵适",
- jyzongshi_info:
- "当你拼点赢时,你可以获得对方此次拼点的牌;当你拼点没赢时,你可以收回你此次拼点的牌。",
+ jyzongshi_info: "当你拼点赢时,你可以获得对方此次拼点的牌;当你拼点没赢时,你可以收回你此次拼点的牌。",
qiaoshui: "巧说",
qiaoshui3: "巧说",
- qiaoshui_info:
- "出牌阶段开始时,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,你不能使用锦囊牌直到回合结束。",
+ qiaoshui_info: "出牌阶段开始时,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,你不能使用锦囊牌直到回合结束。",
reqiaoshui: "巧说",
- reqiaoshui_info:
- "出牌阶段,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,你结束出牌阶段且本回合内锦囊牌不计入手牌上限。",
+ reqiaoshui_info: "出牌阶段,你可与一名其他角色拼点。若你赢,你使用的下一张基本牌或普通锦囊牌可以额外指定任意一名其他角色为目标或减少指定一个目标;若你没赢,你结束出牌阶段且本回合内锦囊牌不计入手牌上限。",
junxing: "峻刑",
- junxing_info:
- "出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面再摸X张牌(X为你以此法弃置的手牌数量)。",
+ junxing_info: "出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面再摸X张牌(X为你以此法弃置的手牌数量)。",
xinjunxing: "峻刑",
- xinjunxing_info:
- "出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面,然后将手牌摸至四张。",
+ xinjunxing_info: "出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面,然后将手牌摸至四张。",
xswuyan: "无言",
xinwuyan: "无言",
@@ -16995,153 +15562,101 @@ game.import("character", function () {
mieji: "灭计",
fencheng: "焚城",
youdi: "诱敌",
- youdi_info:
- "结束阶段开始时,你可以令一名其他角色弃置你的一张牌,若此牌不为【杀】,你获得该角色的一张牌。",
- fencheng_info:
- "限定技。出牌阶段,你可令所有其他角色依次选择一项:弃置X张牌;或受到1点火焰伤害。(X为该角色装备区里牌的数量且至少为1)",
+ youdi_info: "结束阶段开始时,你可以令一名其他角色弃置你的一张牌,若此牌不为【杀】,你获得该角色的一张牌。",
+ fencheng_info: "限定技。出牌阶段,你可令所有其他角色依次选择一项:弃置X张牌;或受到1点火焰伤害。(X为该角色装备区里牌的数量且至少为1)",
mieji_info: "当你使用黑色普通锦囊牌选择目标后,若目标数为1,则你可以额外指定一个目标。",
juece_info: "当其他角色在你回合内失去最后的手牌后,你可以对其造成1点伤害。",
- jiefan_info:
- "限定技,出牌阶段,你可以选择一名角色,令攻击范围内含有该角色的所有角色依次选择一项:1.弃置一张武器牌;2.令其摸一张牌。",
+ jiefan_info: "限定技,出牌阶段,你可以选择一名角色,令攻击范围内含有该角色的所有角色依次选择一项:1.弃置一张武器牌;2.令其摸一张牌。",
fuli_info: "限定技,当你处于濒死状态时,你可以将体力回复至与场上势力数相同,然后翻面。",
- xinfuli_info:
- "限定技,当你处于濒死状态时,可以将体力回复至X点并将手牌摸至X张(X为场上势力数)。若X大于2,你翻面。",
- qianxi_info:
- "准备阶段,你可以摸一张牌,并弃置一张牌,然后令一名距离为1的角色不能使用或打出与你弃置的牌颜色相同的手牌直到回合结束。",
+ xinfuli_info: "限定技,当你处于濒死状态时,可以将体力回复至X点并将手牌摸至X张(X为场上势力数)。若X大于2,你翻面。",
+ qianxi_info: "准备阶段,你可以摸一张牌,并弃置一张牌,然后令一名距离为1的角色不能使用或打出与你弃置的牌颜色相同的手牌直到回合结束。",
zhiman_info: "当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其装备区或判定区的一张牌。",
- sanyao_info:
- "出牌阶段限一次,你可以弃置一张牌并指定一名体力值最多(或之一)的角色,你对其造成1点伤害。",
- olsanyao_info:
- "出牌阶段每项各限一次,你可以弃置一张牌并指定一名体力值或手牌数最多(或之一)的角色,并对其造成1点伤害。",
+ sanyao_info: "出牌阶段限一次,你可以弃置一张牌并指定一名体力值最多(或之一)的角色,你对其造成1点伤害。",
+ olsanyao_info: "出牌阶段每项各限一次,你可以弃置一张牌并指定一名体力值或手牌数最多(或之一)的角色,并对其造成1点伤害。",
rezhiman_info: "当你对一名其他角色造成伤害时,你可以防止此伤害,然后获得其区域内的一张牌。",
- resanyao_info:
- "出牌阶段限一次,你可以弃置任意张牌并指定等量除你外体力值最多(或之一)的其他角色。你对这些角色依次造成1点伤害。",
- paiyi_info:
- "出牌阶段限一次,你可以移去一张“权”并选择一名角色,令其摸两张牌,然后若其手牌数大于你,你对其造成1点伤害。",
- zili_info:
- "觉醒技,准备阶段开始时,若“权”的数量不小于3,你减1点体力上限,然后选择一项:1、回复1点体力;2、摸两张牌。然后你获得技能“排异”。",
- quanji_info:
- "当你受到1点伤害后,你可以摸一张牌,然后将一张手牌置于武将牌上,称为“权”;你的手牌上限+X(X为“权”的数量)。",
- xianzhou_info:
- "限定技。出牌阶段,你可以将装备区内的所有牌交给一名其他角色,然后该角色选择一项:令你回复X点体力;或对其攻击范围内的X名角色各造成1点伤害(X为你以此法交给该角色的牌的数量)。",
- qieting_info:
- "其他角色的回合结束时,若其未于此回合内使用过指定其他角色为目标的牌,你可以选择一项:将其装备区里的一张牌移动至你装备区里的相应位置;或摸一张牌。",
- zhuikong_info:
- "其他角色的准备阶段,若你已受伤,你可以与该角色拼点。若你赢,该角色本回合使用的牌不能指定除该角色外的角色为目标。若你没赢,其本回合至你的距离视为1。",
- oldzhuikong_info:
- "其他角色的准备阶段,若你已受伤,你可以与该角色拼点。若你赢,该角色跳过本回合的出牌阶段。若你没赢,其本回合至你的距离视为1。",
- qiuyuan_info:
- "当你成为【杀】的目标时,你可以令一名其他角色选择一项:①、交给你一张【闪】;②、成为此【杀】的额外目标。",
- oldqiuyuan_info:
- "当你成为【杀】的目标时,你可以令一名有手牌的其他角色正面朝上交给你一张牌。若此牌不为【闪】,则该角色也成为此【杀】的额外目标。",
- gongji_info:
- "出牌阶段限一次,你可以弃置一张牌,然后你的攻击范围视为无限直到回合结束。若你以此法弃置的牌为装备牌,则你可以弃置一名其他角色的一张牌。",
+ resanyao_info: "出牌阶段限一次,你可以弃置任意张牌并指定等量除你外体力值最多(或之一)的其他角色。你对这些角色依次造成1点伤害。",
+ paiyi_info: "出牌阶段限一次,你可以移去一张“权”并选择一名角色,令其摸两张牌,然后若其手牌数大于你,你对其造成1点伤害。",
+ zili_info: "觉醒技,准备阶段开始时,若“权”的数量不小于3,你减1点体力上限,然后选择一项:1、回复1点体力;2、摸两张牌。然后你获得技能“排异”。",
+ quanji_info: "当你受到1点伤害后,你可以摸一张牌,然后将一张手牌置于武将牌上,称为“权”;你的手牌上限+X(X为“权”的数量)。",
+ xianzhou_info: "限定技。出牌阶段,你可以将装备区内的所有牌交给一名其他角色,然后该角色选择一项:令你回复X点体力;或对其攻击范围内的X名角色各造成1点伤害(X为你以此法交给该角色的牌的数量)。",
+ qieting_info: "其他角色的回合结束时,若其未于此回合内使用过指定其他角色为目标的牌,你可以选择一项:将其装备区里的一张牌移动至你装备区里的相应位置;或摸一张牌。",
+ zhuikong_info: "其他角色的准备阶段,若你已受伤,你可以与该角色拼点。若你赢,该角色本回合使用的牌不能指定除该角色外的角色为目标。若你没赢,其本回合至你的距离视为1。",
+ oldzhuikong_info: "其他角色的准备阶段,若你已受伤,你可以与该角色拼点。若你赢,该角色跳过本回合的出牌阶段。若你没赢,其本回合至你的距离视为1。",
+ qiuyuan_info: "当你成为【杀】的目标时,你可以令一名其他角色选择一项:①、交给你一张【闪】;②、成为此【杀】的额外目标。",
+ oldqiuyuan_info: "当你成为【杀】的目标时,你可以令一名有手牌的其他角色正面朝上交给你一张牌。若此牌不为【闪】,则该角色也成为此【杀】的额外目标。",
+ gongji_info: "出牌阶段限一次,你可以弃置一张牌,然后你的攻击范围视为无限直到回合结束。若你以此法弃置的牌为装备牌,则你可以弃置一名其他角色的一张牌。",
zhuiyi_info: "当你死亡时,你可以令一名其他角色(杀死你的角色除外)摸三张牌,然后其回复1点体力。",
- anxu_info:
- "出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌多的角色将一张手牌交给手牌少的角色,然后若这两名角色手牌数相等,你摸一张牌或回复1点体力。",
- old_anxu_info:
- "出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌少的角色获得手牌多的角色的一张手牌并展示之。然后若此牌不为黑桃,则你摸一张牌。",
+ anxu_info: "出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌多的角色将一张手牌交给手牌少的角色,然后若这两名角色手牌数相等,你摸一张牌或回复1点体力。",
+ old_anxu_info: "出牌阶段限一次,你可以选择两名手牌数不同的其他角色,令其中手牌少的角色获得手牌多的角色的一张手牌并展示之。然后若此牌不为黑桃,则你摸一张牌。",
zongxuan_info: "当你的牌因弃置而进入弃牌堆后,你可以将其按任意顺序置于牌堆顶。",
zhiyan_info: "结束阶段,你可以令一名角色摸一张牌并展示之,若为装备牌,其使用此牌并回复1点体力。",
- miji_info:
- "结束阶段,若你已受伤,则可以摸X张牌,然后可以将等量的牌交给其他角色(X为你已损失的体力值)。",
- zhenlie_info:
- "当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去1点体力并令此牌对你无效,然后弃置对方一张牌。",
- chengxiang_info:
- "当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌。",
- oldchengxiang_info:
- "当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌。",
- renxin_info:
- "当体力值为1的一名其他角色受到伤害时,你可以将武将牌翻面并弃置一张装备牌,然后防止此伤害。",
- oldrenxin_info:
- "其他角色进入濒死状态时,你可以将所有手牌交给该角色并翻面,然后该角色回复1点体力。",
+ miji_info: "结束阶段,若你已受伤,则可以摸X张牌,然后可以将等量的牌交给其他角色(X为你已损失的体力值)。",
+ zhenlie_info: "当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去1点体力并令此牌对你无效,然后弃置对方一张牌。",
+ chengxiang_info: "当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌。",
+ oldchengxiang_info: "当你受到伤害后,你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌。",
+ renxin_info: "当体力值为1的一名其他角色受到伤害时,你可以将武将牌翻面并弃置一张装备牌,然后防止此伤害。",
+ oldrenxin_info: "其他角色进入濒死状态时,你可以将所有手牌交给该角色并翻面,然后该角色回复1点体力。",
jingce_info: "出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。",
xinjingce_info: "结束阶段,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。",
xswuyan_info: "锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。",
- xinwuyan_info:
- "锁定技,当你使用锦囊牌造成伤害时,你防止此伤害;锁定技,当你受到锦囊牌对你造成的伤害时,你防止此伤害。",
- jujian_info:
- "出牌阶段限一次,你可以弃至多三张牌,然后令一名其他角色摸等量的牌。若你以此法弃牌不少于三张且均为同一类别,你回复1点体力。",
- xinjujian_info:
- "结束阶段开始时,你可以弃置一张非基本牌并选择一名其他角色,令其选择一项:1.摸两张牌;2.回复1点体力;3.将其武将牌翻转至正面朝上并重置之。",
+ xinwuyan_info: "锁定技,当你使用锦囊牌造成伤害时,你防止此伤害;锁定技,当你受到锦囊牌对你造成的伤害时,你防止此伤害。",
+ jujian_info: "出牌阶段限一次,你可以弃至多三张牌,然后令一名其他角色摸等量的牌。若你以此法弃牌不少于三张且均为同一类别,你回复1点体力。",
+ xinjujian_info: "结束阶段开始时,你可以弃置一张非基本牌并选择一名其他角色,令其选择一项:1.摸两张牌;2.回复1点体力;3.将其武将牌翻转至正面朝上并重置之。",
luoying_info: "当其他角色的梅花牌因弃置或判定而进入弃牌堆后,你可以获得之。",
- jiushi_info:
- "当你需要使用一张【酒】时,若你的武将牌正面朝上,则你可以将武将牌翻面并视为使用了一张【酒】;当你受到伤害时,若你的武将牌背面朝上,则你可在此伤害结算后将武将牌翻回正面。",
+ jiushi_info: "当你需要使用一张【酒】时,若你的武将牌正面朝上,则你可以将武将牌翻面并视为使用了一张【酒】;当你受到伤害时,若你的武将牌背面朝上,则你可在此伤害结算后将武将牌翻回正面。",
jueqing_info: "锁定技,你即将造成的伤害均视为失去体力。",
shangshi_info: "当你的手牌数小于X时,你可以将手牌摸至X张(X为你已损失的体力值)。",
- xuanfeng_info:
- "当你失去装备区内的牌时,或于弃牌阶段弃置了两张或更多的手牌后,你可以依次弃置一至两名其他角色的共计两张牌。",
- zhiyu_info:
- "当你受到伤害后,你可以摸一张牌,然后展示所有手牌。若颜色均相同,你令伤害来源弃置一张手牌。",
+ xuanfeng_info: "当你失去装备区内的牌时,或于弃牌阶段弃置了两张或更多的手牌后,你可以依次弃置一至两名其他角色的共计两张牌。",
+ zhiyu_info: "当你受到伤害后,你可以摸一张牌,然后展示所有手牌。若颜色均相同,你令伤害来源弃置一张手牌。",
qice_info: "出牌阶段限一次,你可以将所有的手牌(至少一张)当做任意一张普通锦囊牌使用。",
- jiangchi_info:
- "摸牌阶段摸牌时,你可以选择一项:1、额外摸一张牌,若如此做,你不能使用或打出【杀】直到回合结束。 2、少摸一张牌,若如此做,你使用【杀】无距离限制且可以多使用一张【杀】直到回合结束。",
- zishou_info:
- "摸牌阶段,你可以额外摸X张牌(X为场上势力数)。然后你于本回合的出牌阶段内使用的牌不能指定其他角色为目标。",
+ jiangchi_info: "摸牌阶段摸牌时,你可以选择一项:1、额外摸一张牌,若如此做,你不能使用或打出【杀】直到回合结束。 2、少摸一张牌,若如此做,你使用【杀】无距离限制且可以多使用一张【杀】直到回合结束。",
+ zishou_info: "摸牌阶段,你可以额外摸X张牌(X为场上势力数)。然后你于本回合的出牌阶段内使用的牌不能指定其他角色为目标。",
zongshi_info: "锁定技,你的手牌上限+X(X为场上现存势力数)。",
- danshou_info:
- "出牌阶段,你可以选择你攻击范围内的一名其他角色,然后弃置X张牌(X为此前你于此阶段你发动“胆守”的次数+1)。若X:为1,你弃置该角色的一张牌;为2,令该角色交给你一张牌;为3,你对该角色造成1点伤害;不小于4,你与该角色各摸两张牌。",
+ danshou_info: "出牌阶段,你可以选择你攻击范围内的一名其他角色,然后弃置X张牌(X为此前你于此阶段你发动“胆守”的次数+1)。若X:为1,你弃置该角色的一张牌;为2,令该角色交给你一张牌;为3,你对该角色造成1点伤害;不小于4,你与该角色各摸两张牌。",
olddanshou_info: "当你造成伤害后,你可以摸一张牌。若如此做,终止一切结算,当前回合结束。",
- xindanshou_info:
- "①每回合限一次,当你成为基本牌或锦囊牌的目标后,你可以摸X张牌(X为你本回合内成为过基本牌或锦囊牌的目标的次数)。②一名其他角色的结束阶段,若你本回合内没有发动过〖胆守①〗,则你可以弃置X张牌并对其造成1点伤害(X为其手牌数,无牌则不弃)。",
+ xindanshou_info: "①每回合限一次,当你成为基本牌或锦囊牌的目标后,你可以摸X张牌(X为你本回合内成为过基本牌或锦囊牌的目标的次数)。②一名其他角色的结束阶段,若你本回合内没有发动过〖胆守①〗,则你可以弃置X张牌并对其造成1点伤害(X为其手牌数,无牌则不弃)。",
yizhong_info: "锁定技,当你的防具栏为空时,黑色的【杀】对你无效。",
- xinzhan_info:
- "出牌阶段限一次,若你的手牌数大于你的体力上限,你可以观看牌堆顶的三张牌,然后展示其中任意红桃牌并获得之。",
+ xinzhan_info: "出牌阶段限一次,若你的手牌数大于你的体力上限,你可以观看牌堆顶的三张牌,然后展示其中任意红桃牌并获得之。",
huilei_info: "锁定技,当你死亡时,杀死你的角色弃置所有的牌。",
- enyuan_info:
- "锁定技。①当其他角色令你回复1点体力后,该角色摸一张牌。②当其他角色对你造成伤害后,其须交给你一张♥手牌,否则失去1点体力。",
- xuanhuo_info:
- "出牌阶段限一次,你可以将一张红桃手牌交给一名其他角色,获得该角色的一张牌,然后交给除该角色外的一名其他角色。",
- ganlu_info:
- "出牌阶段限一次,你可以选择两名装备区内装备数之差不大于X的角色,令其交换装备区内的牌(X为你已损失的体力值)。",
- buyi_info:
- "当有角色进入濒死状态时,你可以展示该角色的一张手牌:若此牌不为基本牌,则该角色弃置此牌并回复1点体力。",
- mingce_info:
- "出牌阶段,你可以交给一名其他角色一张装备牌或【杀】,然后令该角色选择一项:1. 视为对其攻击范围内的另一名由你指定的角色使用一张【杀】。2. 摸一张牌。每回合限一次。",
+ enyuan_info: "锁定技。①当其他角色令你回复1点体力后,该角色摸一张牌。②当其他角色对你造成伤害后,其须交给你一张♥手牌,否则失去1点体力。",
+ xuanhuo_info: "出牌阶段限一次,你可以将一张红桃手牌交给一名其他角色,获得该角色的一张牌,然后交给除该角色外的一名其他角色。",
+ ganlu_info: "出牌阶段限一次,你可以选择两名装备区内装备数之差不大于X的角色,令其交换装备区内的牌(X为你已损失的体力值)。",
+ buyi_info: "当有角色进入濒死状态时,你可以展示该角色的一张手牌:若此牌不为基本牌,则该角色弃置此牌并回复1点体力。",
+ mingce_info: "出牌阶段,你可以交给一名其他角色一张装备牌或【杀】,然后令该角色选择一项:1. 视为对其攻击范围内的另一名由你指定的角色使用一张【杀】。2. 摸一张牌。每回合限一次。",
zhichi_info: "锁定技,当你于回合外受到伤害后,所有【杀】或普通锦囊牌对你无效直到回合结束。",
zhichi2_info: "智迟已发动",
- pojun_info:
- "当你使用【杀】造成伤害后,你可以令受伤角色摸X张牌,然后其翻面(X为该角色的体力值且至多为5)。",
+ pojun_info: "当你使用【杀】造成伤害后,你可以令受伤角色摸X张牌,然后其翻面(X为该角色的体力值且至多为5)。",
shiyong: "恃勇",
shiyong_info: "锁定技,当你受到一次红色【杀】或【酒】【杀】造成的伤害后,须减1点体力上限。",
old_guanzhang: "旧关兴张苞",
old_guanzhang_prefix: "旧",
wangyi: "王异",
oldqianxi: "潜袭",
- oldqianxi_info:
- "当你使用【杀】对距离为1的目标角色造成伤害时,你可以进行一次判定,若判定结果不为红桃,你防止此伤害,令其减1点体力上限。",
+ oldqianxi_info: "当你使用【杀】对距离为1的目标角色造成伤害时,你可以进行一次判定,若判定结果不为红桃,你防止此伤害,令其减1点体力上限。",
oldzhenlie: "贞烈",
oldzhenlie_info: "在你的判定牌生效前,你可以亮出牌堆顶的一张牌代替之。",
oldmiji: "秘计",
- oldmiji_info:
- "准备/结束阶段开始时,若你已受伤,你可以判定,若判定结果为黑色,你观看牌堆顶的X张牌(X为你已损失的体力值),然后将这些牌交给一名角色。",
+ oldmiji_info: "准备/结束阶段开始时,若你已受伤,你可以判定,若判定结果为黑色,你观看牌堆顶的X张牌(X为你已损失的体力值),然后将这些牌交给一名角色。",
old_fuhun: "父魂",
- old_fuhun_info:
- "摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得〖武圣〗和〖咆哮〗直到回合结束。",
+ old_fuhun_info: "摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得〖武圣〗和〖咆哮〗直到回合结束。",
rejueqing: "绝情",
- rejueqing_info:
- "当你对其他角色造成伤害时,你可以令此伤害值+X。若如此做,你失去X点体力并修改〖绝情〗(X为伤害值)。",
+ rejueqing_info: "当你对其他角色造成伤害时,你可以令此伤害值+X。若如此做,你失去X点体力并修改〖绝情〗(X为伤害值)。",
rejueqing_1st: "绝情",
rejueqing_rewrite: "绝情·改",
rejueqing_rewrite_info: "锁定技,你即将造成的伤害均视为失去体力。",
reshangshi: "伤逝",
reshangshi_2nd: "伤逝",
- reshangshi_info:
- "当你受到伤害时,你可以弃置一张牌。当你的手牌数小于X时,你可以将手牌摸至X张。(X为你已损失的体力值)",
+ reshangshi_info: "当你受到伤害时,你可以弃置一张牌。当你的手牌数小于X时,你可以将手牌摸至X张。(X为你已损失的体力值)",
rejingce: "精策",
rejingce2: "精策",
rejingce_add: "精策",
- rejingce_info:
- "当你于一回合内首次使用某种花色的手牌时,你的手牌上限+1。出牌阶段结束时,你可以摸X张牌(X为你本阶段内使用过的牌的类型数)。",
+ rejingce_info: "当你于一回合内首次使用某种花色的手牌时,你的手牌上限+1。出牌阶段结束时,你可以摸X张牌(X为你本阶段内使用过的牌的类型数)。",
xinkuangbi: "匡弼",
- xinkuangbi_info:
- "出牌阶段限一次。你可以令一名其他角色交给你至多三张牌(不计入你本回合的手牌上限)。然后其于其的下回合开始时摸等量的牌。",
+ xinkuangbi_info: "出牌阶段限一次。你可以令一名其他角色交给你至多三张牌(不计入你本回合的手牌上限)。然后其于其的下回合开始时摸等量的牌。",
xinzhaofu: "诏缚",
- xinzhaofu_info:
- "主公技,限定技。出牌阶段,你可选择至多两名其他角色。这两名角色视为在所有其他吴势力角色的攻击范围内。",
+ xinzhaofu_info: "主公技,限定技。出牌阶段,你可选择至多两名其他角色。这两名角色视为在所有其他吴势力角色的攻击范围内。",
olbingyi: "秉壹",
- olbingyi_info:
- "每阶段限一次。当你因弃置而失去牌后,你可以展示所有手牌。若这些牌的颜色均相同,则你可以与至多X名其他角色各摸一张牌(X为你的手牌数)。",
+ olbingyi_info: "每阶段限一次。当你因弃置而失去牌后,你可以展示所有手牌。若这些牌的颜色均相同,则你可以与至多X名其他角色各摸一张牌(X为你的手牌数)。",
lukai: "陆凯",
lukai_spade: "♠",
lukai_spade_bg: "♠️",
@@ -17152,76 +15667,73 @@ game.import("character", function () {
lukai_diamond: "♦",
lukai_diamond_bg: "♦️️",
lkbushi: "卜筮",
- lkbushi_info:
- "①你使用♠牌无次数限制。②当你使用或打出♥牌后,你摸一张牌。③当你成为♣牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张♦牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。",
+ lkbushi_info: "①你使用♠牌无次数限制。②当你使用或打出♥牌后,你摸一张牌。③当你成为♣牌的目标后,你可以弃置一张牌,令此牌对你无效。④结束阶段开始时,你从牌堆或弃牌堆获得一张♦牌。⑤准备阶段开始时,你可调整此技能中四种花色的对应顺序。",
lkzhongzhuang: "忠壮",
- lkzhongzhuang_info:
- "锁定技。①当你因执行【杀】的效果而造成伤害时,若你的攻击范围大于3,则此伤害+1。②当一名角色受到你因执行【杀】的效果而造成的伤害时,若你的攻击范围小于3,则此伤害改为1。",
+ lkzhongzhuang_info: "锁定技。①当你因执行【杀】的效果而造成伤害时,若你的攻击范围大于3,则此伤害+1。②当一名角色受到你因执行【杀】的效果而造成的伤害时,若你的攻击范围小于3,则此伤害改为1。",
kebineng: "轲比能",
kousheng: "寇旌",
- kousheng_info:
- "①出牌阶段开始时,你可以选择任意张手牌,这些牌称为“寇旌”直到回合结束。②你的“寇旌”均视为【杀】且无次数限制。③当你因执行对应实体牌包含“寇旌”的【杀】的效果而造成伤害后,你展示所有“寇旌”牌,然后目标角色可以用所有手牌交换这些牌。",
+ kousheng_info: "①出牌阶段开始时,你可以选择任意张手牌,这些牌称为“寇旌”直到回合结束。②你的“寇旌”均视为【杀】且无次数限制。③当你因执行对应实体牌包含“寇旌”的【杀】的效果而造成伤害后,你展示所有“寇旌”牌,然后目标角色可以用所有手牌交换这些牌。",
zhugeshang: "诸葛尚",
sangu: "三顾",
- sangu_info:
- "结束阶段,你可以选择至多三个{【杀】或不为notarget或singleCard的普通锦囊牌}中的牌名,然后令一名其他角色记录这些牌名。该角色的下个出牌阶段开始时,其的手牌于其需要使用牌时均视为其记录中的第一张牌直到此阶段结束,且当其使用或打出有对应实体牌的牌时,移除这些牌中的第一张牌。若你以此法选择过的牌名均为你本回合内使用过的牌名,则防止你因其以此法使用牌造成的伤害。",
+ sangu_info: "结束阶段,你可以选择至多三个{【杀】或不为notarget或singleCard的普通锦囊牌}中的牌名,然后令一名其他角色记录这些牌名。该角色的下个出牌阶段开始时,其的手牌于其需要使用牌时均视为其记录中的第一张牌直到此阶段结束,且当其使用或打出有对应实体牌的牌时,移除这些牌中的第一张牌。若你以此法选择过的牌名均为你本回合内使用过的牌名,则防止你因其以此法使用牌造成的伤害。",
yizu: "轶祖",
- yizu_info:
- "锁定技。每回合限一次,当你成为【杀】或【决斗】的目标后,若你的体力值不大于使用者的体力值,则你回复1点体力。",
+ yizu_info: "锁定技。每回合限一次,当你成为【杀】或【决斗】的目标后,若你的体力值不大于使用者的体力值,则你回复1点体力。",
liwan: "李婉",
liandui: "联对",
- liandui_info:
- "①当你使用牌时,若本局游戏内上一张被使用的牌的使用者不为你,你可以令其摸两张牌。②其他角色使用牌时,若本局游戏内上一张被使用的牌的使用者为你,其可以令你摸两张牌。",
+ liandui_info: "①当你使用牌时,若本局游戏内上一张被使用的牌的使用者不为你,你可以令其摸两张牌。②其他角色使用牌时,若本局游戏内上一张被使用的牌的使用者为你,其可以令你摸两张牌。",
biejun: "别君",
- biejun_info:
- "①其他角色的出牌阶段限一次。其可以将一张手牌交给你。②每回合限一次。当你受到伤害时,若你手牌中没有本回合因〖别君①〗得到的牌,你可以翻面并防止此伤害。",
+ biejun_info: "①其他角色的出牌阶段限一次。其可以将一张手牌交给你。②每回合限一次。当你受到伤害时,若你手牌中没有本回合因〖别君①〗得到的牌,你可以翻面并防止此伤害。",
yj_sufei: "苏飞",
shuojian: "数谏",
- shuojian_info:
- "出牌阶段限三次。你可以交给一名其他角色一张牌,其选择一项:1.令你摸X张牌并弃置X-1张牌;2.视为使用X张【过河拆桥】,然后此技能本回合失效(X为此技能本阶段剩余发动次数+1)。",
+ shuojian_info: "出牌阶段限三次。你可以交给一名其他角色一张牌,其选择一项:1.令你摸X张牌并弃置X-1张牌;2.视为使用X张【过河拆桥】,然后此技能本回合失效(X为此技能本阶段剩余发动次数+1)。",
yj_qiaozhou: "谯周",
shiming: "识命",
- shiming_info:
- "每轮限一次。一名角色的摸牌阶段,你可以观看牌堆顶的三张牌,并可以将其中一张置于牌堆底。然后该角色可以改为对自己造成1点伤害,然后从牌堆底摸三张牌。",
+ shiming_info: "每轮限一次。一名角色的摸牌阶段,你可以观看牌堆顶的三张牌,并可以将其中一张置于牌堆底。然后该角色可以改为对自己造成1点伤害,然后从牌堆底摸三张牌。",
jiangxi: "将息",
- jiangxi_info:
- "一名角色的回合结束时,若一号位于此回合内进入过濒死状态或未受到过伤害,你可以重置〖识命〗并摸一张牌;若所有角色均未受到过伤害,你可以与当前回合角色各摸一张牌。",
+ jiangxi_info: "一名角色的回合结束时,若一号位于此回合内进入过濒死状态或未受到过伤害,你可以重置〖识命〗并摸一张牌;若所有角色均未受到过伤害,你可以与当前回合角色各摸一张牌。",
hanlong: "韩龙",
duwang: "独往",
- duwang_info:
- "锁定技。①游戏开始时,你从牌堆顶将五张不为【杀】的牌置于武将牌上,称为“刺”。②若你有牌名不为【杀】“刺”,你至其他角色或其他角色至你的距离+1。",
+ duwang_info: "锁定技。①游戏开始时,你从牌堆顶将五张不为【杀】的牌置于武将牌上,称为“刺”。②若你有牌名不为【杀】“刺”,你至其他角色或其他角色至你的距离+1。",
cibei: "刺北",
- cibei_info:
- "①当一名角色使用【杀】造成伤害且此牌对应的实体牌进入弃牌堆后,你可以将一张不为【杀】的“刺”置入弃牌堆,并将这些牌置入“刺”,然后弃置一名角色区域里的一张牌。②一名角色的回合结束时,若你的“刺”均为【杀】,你获得所有“刺”,且这些牌不能被弃置,不计入手牌上限,且当你使用对应实体牌包含这些牌的牌时无次数和距离限制。",
+ cibei_info: "①当一名角色使用【杀】造成伤害且此牌对应的实体牌进入弃牌堆后,你可以将一张不为【杀】的“刺”置入弃牌堆,并将这些牌置入“刺”,然后弃置一名角色区域里的一张牌。②一名角色的回合结束时,若你的“刺”均为【杀】,你获得所有“刺”,且这些牌不能被弃置,不计入手牌上限,且当你使用对应实体牌包含这些牌的牌时无次数和距离限制。",
wuanguo: "武安国",
diezhang: "叠嶂",
- diezhang_info:
- "转换技。①出牌阶段,你使用杀的次数上限+1。②阴:当你使用牌被其他角色抵消后,你可以弃置一张牌,视为对其使用X张【杀】;阳:当其他角色使用牌被你抵消后,你可以摸X张牌,视为对其使用一张【杀】(X为1)。",
+ diezhang_info: "转换技。①出牌阶段,你使用杀的次数上限+1。②阴:当你使用牌被其他角色抵消后,你可以弃置一张牌,视为对其使用X张【杀】;阳:当其他角色使用牌被你抵消后,你可以摸X张牌,视为对其使用一张【杀】(X为1)。",
duanwan: "断腕",
- duanwan_info:
- "限定技。当你处于濒死状态时,你可以将体力回复至2点,然后删除〖叠嶂①〗和当前转换技状态的〖叠嶂②〗分支,并将〖叠嶂〗修改为“每回合限一次”且将X修改为2。",
+ duanwan_info: "限定技。当你处于濒死状态时,你可以将体力回复至2点,然后删除〖叠嶂①〗和当前转换技状态的〖叠嶂②〗分支,并将〖叠嶂〗修改为“每回合限一次”且将X修改为2。",
dcduliang: "督粮",
dcduliang2: "督粮",
- dcduliang_info:
- "出牌阶段限一次。你可以获得一名其他角色的一张牌,然后选择一项:1.你观看牌堆顶的两张牌,然后令其获得其中的一或两张基本牌;2.令其于下回合的摸牌阶段额外摸一张牌。",
+ dcduliang_info: "出牌阶段限一次。你可以获得一名其他角色的一张牌,然后选择一项:1.你观看牌堆顶的两张牌,然后令其获得其中的一或两张基本牌;2.令其于下回合的摸牌阶段额外摸一张牌。",
sunli: "孙礼",
kangli: "伉厉",
kangli_info: "当你造成或受到伤害后,你摸两张牌。然后你下次造成伤害时弃置这些牌。",
xiahoumao: "夏侯楙",
tongwei: "统围",
- tongwei_info:
- "出牌阶段限一次。你可以重铸两张牌并指定一名其他角色,当其使用的下一张牌结算结束后,若此牌点数在你上次以此法重铸的牌的点数之间,你视为对其使用一张【杀】或【过河拆桥】。",
+ tongwei_info: "出牌阶段限一次。你可以重铸两张牌并指定一名其他角色,当其使用的下一张牌结算结束后,若此牌点数在你上次以此法重铸的牌的点数之间,你视为对其使用一张【杀】或【过河拆桥】。",
cuguo: "蹙国",
- cuguo_info:
- "锁定技。当你于一回合使用牌首次被抵消后,你弃置一张牌,视为对此牌的目标角色使用一张该被抵消的牌。此牌结算结束后,若此牌被抵消,你失去1点体力。",
+ cuguo_info: "锁定技。当你于一回合使用牌首次被抵消后,你弃置一张牌,视为对此牌的目标角色使用一张该被抵消的牌。此牌结算结束后,若此牌被抵消,你失去1点体力。",
chenshi: "陈式",
qingbei: "擎北",
- qingbei_info:
- "一轮游戏开始时,你可以选择任意种花色,你不能于本轮内使用这些花色的牌。然后当你于本轮使用一张有花色的牌结算结束后,你摸等同于你上一次〖擎北〗选择过的花色数的牌。",
+ qingbei_info: "一轮游戏开始时,你可以选择任意种花色,你不能于本轮内使用这些花色的牌。然后当你于本轮使用一张有花色的牌结算结束后,你摸等同于你上一次〖擎北〗选择过的花色数的牌。",
feiyao: "费曜",
zhenfeng: "镇锋",
- zhenfeng_info:
- "每回合限一次。当其他角色于其回合内使用牌时,若其手牌数不大于其体力值,你可以猜测其手牌中与此牌类别相同的牌数。若你猜对,你摸X张牌并视为对其使用一张【杀】(X为你连续猜对的次数且至多为5);若你猜错且差值大于1,其视为对你使用一张【杀】。",
+ zhenfeng_info: "每回合限一次。当其他角色于其回合内使用牌时,若其手牌数不大于其体力值,你可以猜测其手牌中与此牌类别相同的牌数。若你猜对,你摸X张牌并视为对其使用一张【杀】(X为你连续猜对的次数且至多为5);若你猜错且差值大于1,其视为对你使用一张【杀】。",
+ linghuyu: "令狐愚",
+ yj_simafu: "司马孚",
+ yj_xuangongzhu: "宣公主",
+ xukun: "徐琨",
+ xvzhi: "蓄志",
+ xvzhi_info: "出牌阶段限一次,你可令两名角色各选择任意张手牌并交换这些牌,然后获得牌数较少的角色视为使用无视距离的【杀】;若获得牌数相等,你摸两张牌且可以对此阶段未以此法选择过的角色再发动一次〖蓄志〗。",
+ beiyu: "备预",
+ beiyu_info: "出牌阶段限一次,你可将手牌摸至体力上限,然后你将一种花色的所有手牌置于牌堆底。",
+ duchi: "督持",
+ duchi_info: "每回合限一次,当你成为其他角色使用牌的目标后,你可从牌堆底摸一张牌并展示所有手牌,若颜色均相同,则此牌对你无效。",
+ yjqimei: "齐眉",
+ yjqimei_info: "出牌阶段限一次,你可以选择一名其他角色,你与其各摸两张牌并弃置两张牌,然后你根据你与其弃置牌的花色总数执行以下效果:1、你依次使用这些弃置的牌中可以使用的牌;2、你与其复原武将牌;3、你与其横置武将牌;4、你与其各摸一张牌,然后你修改〖齐眉〗为“出牌阶段限两次”直到回合结束。",
+ yjzhuiji: "追姬",
+ yjzhuiji_info: "当你死亡时,你可以令一名角色从牌堆和弃牌堆中的随机使用任意装备牌直至其没有空置的装备栏。若如此做,当其失去以此法使用的装备牌后,其废除对应的装备栏。",
+ fazhu: "筏铸",
+ fazhu_info: "准备阶段,你可以重铸你的区域内的所有非伤害牌,然后将以此法获得的牌交给至多等量名角色各一张,这些角色可以依次使用一张无距离限制的【杀】。",
yijiang_2011: "一将成名2011",
yijiang_2012: "一将成名2012",
@@ -17232,6 +15744,7 @@ game.import("character", function () {
yijiang_2017: "原创设计2017",
yijiang_2022: "原创设计2022",
yijiang_2023: "一将成名2023",
+ yijiang_2024: "一将成名2024",
},
};
});
diff --git a/character/yingbian.js b/character/yingbian.js
index cfb76baec..92617b8cd 100644
--- a/character/yingbian.js
+++ b/character/yingbian.js
@@ -20,50 +20,18 @@ game.import("character", function () {
jin_yanghuiyu: ["female", "jin", 3, ["huirong", "ciwei", "caiyuan"], ["hiddenSkill"]],
shibao: ["male", "jin", 4, ["zhuosheng"]],
jin_zhangchunhua: ["female", "jin", 3, ["huishi", "qingleng", "xuanmu"], ["hiddenSkill"]],
- jin_simayi: [
- "male",
- "jin",
- 3,
- ["buchen", "smyyingshi", "xiongzhi", "xinquanbian"],
- ["hiddenSkill"],
- ],
+ jin_simayi: ["male", "jin", 3, ["buchen", "smyyingshi", "xiongzhi", "xinquanbian"], ["hiddenSkill"]],
jin_wangyuanji: ["female", "jin", 3, ["shiren", "yanxi"], ["hiddenSkill"]],
- jin_simazhao: [
- "male",
- "jin",
- 3,
- ["tuishi", "xinchoufa", "zhaoran", "chengwu"],
- ["zhu", "hiddenSkill"],
- ],
+ jin_simazhao: ["male", "jin", 3, ["tuishi", "xinchoufa", "zhaoran", "chengwu"], ["zhu", "hiddenSkill"]],
jin_xiahouhui: ["female", "jin", 3, ["baoqie", "jyishi", "shiduo"], ["hiddenSkill"]],
- jin_simashi: [
- "male",
- "jin",
- "3/4",
- ["taoyin", "yimie", "ruilve", "tairan"],
- ["hiddenSkill", "zhu"],
- ],
+ jin_simashi: ["male", "jin", "3/4", ["taoyin", "yimie", "ruilve", "tairan"], ["hiddenSkill", "zhu"]],
zhanghuyuechen: ["male", "jin", 4, ["xijue"]],
duyu: ["male", "jin", 4, ["sanchen", "zhaotao"]],
},
characterSort: {
yingbian: {
- yingbian_pack1: [
- "jin_simayi",
- "jin_zhangchunhua",
- "ol_lisu",
- "simazhou",
- "cheliji",
- "ol_huaxin",
- ],
- yingbian_pack2: [
- "jin_simashi",
- "jin_xiahouhui",
- "zhanghuyuechen",
- "shibao",
- "jin_yanghuiyu",
- "chengjichengcui",
- ],
+ yingbian_pack1: ["jin_simayi", "jin_zhangchunhua", "ol_lisu", "simazhou", "cheliji", "ol_huaxin"],
+ yingbian_pack2: ["jin_simashi", "jin_xiahouhui", "zhanghuyuechen", "shibao", "jin_yanghuiyu", "chengjichengcui"],
yingbian_pack3: ["jin_simazhao", "jin_wangyuanji", "duyu", "weiguan", "xuangongzhu"],
yingbian_pack4: ["zhongyan", "xinchang", "jin_jiachong", "wangxiang"],
yingbian_pack5: ["yangyan", "yangzhi"],
@@ -88,12 +56,7 @@ game.import("character", function () {
position: "he",
check: function (card) {
const player = get.player();
- return (
- 4.5 +
- (player.hasSkill("olchuming") ? 1 : 0) -
- 1.5 * ui.selected.cards.length -
- get.value(card)
- );
+ return 4.5 + (player.hasSkill("olchuming") ? 1 : 0) - 1.5 * ui.selected.cards.length - get.value(card);
},
popname: true,
ignoreMod: true,
@@ -105,7 +68,7 @@ game.import("character", function () {
delete event.result.skill;
var cards = event.result.cards;
player.loseToDiscardpile(cards, ui.cardPile, false, "blank").log = false;
- var shownCards = cards.filter((i) => get.position(i) == "e"),
+ var shownCards = cards.filter(i => get.position(i) == "e"),
handcardsLength = cards.length - shownCards.length;
if (shownCards.length) {
player.$throw(shownCards, null);
@@ -174,8 +137,7 @@ game.import("character", function () {
effect: {
player: function (card, player, target) {
if (!get.tag(card, "damage")) return;
- if (!lib.card[card.name] || !card.cards || !card.cards.length)
- return [1, 0, 1, -1];
+ if (!lib.card[card.name] || !card.cards || !card.cards.length) return [1, 0, 1, -1];
return [1, -1];
},
},
@@ -189,10 +151,8 @@ game.import("character", function () {
content: function* (event, map) {
var player = map.player;
var mapx = {};
- var history = player
- .getHistory("damage")
- .concat(player.getHistory("sourceDamage"));
- history.forEach((evt) => {
+ var history = player.getHistory("damage").concat(player.getHistory("sourceDamage"));
+ history.forEach(evt => {
if (!evt._olchuming) return;
var target = evt[evt.source == player ? "player" : "source"];
if (!target.isIn()) return;
@@ -201,11 +161,8 @@ game.import("character", function () {
if (!mapx[target.playerid]) mapx[target.playerid] = [];
mapx[target.playerid].addArray(cards);
});
- var entries = Object.entries(mapx).map((entry) => {
- return [
- (_status.connectMode ? lib.playerOL : game.playerMap)[entry[0]],
- entry[1],
- ];
+ var entries = Object.entries(mapx).map(entry => {
+ return [(_status.connectMode ? lib.playerOL : game.playerMap)[entry[0]], entry[1]];
});
if (!entries.length) {
event.finish();
@@ -213,45 +170,27 @@ game.import("character", function () {
}
player.logSkill(
"olchuming_effect",
- entries.map((i) => i[0])
+ entries.map(i => i[0])
);
entries.sort((a, b) => lib.sort.seat(a[0], b[0]));
for (var entry of entries) {
var current = entry[0],
cards = entry[1];
- var list = ["jiedao", "guohe"].filter((i) =>
- player.canUse(
- new lib.element.VCard({ name: i, cards: cards }),
- current,
- false
- )
- );
+ var list = ["jiedao", "guohe"].filter(i => player.canUse(new lib.element.VCard({ name: i, cards: cards }), current, false));
if (!list.length) return;
var result = {};
if (list.length == 1) result = { bool: true, links: [["", "", list[0]]] };
else
result = yield player
- .chooseButton(
- [
- `畜鸣:请选择要对${get.translation(current)}使用的牌`,
- [list, "vcard"],
- ],
- true
- )
- .set("ai", (button) => {
+ .chooseButton([`畜鸣:请选择要对${get.translation(current)}使用的牌`, [list, "vcard"]], true)
+ .set("ai", button => {
var player = get.player();
- return get.effect(
- get.event("currentTarget"),
- { name: button.link[2] },
- player,
- player
- );
+ return get.effect(get.event("currentTarget"), { name: button.link[2] }, player, player);
})
.set("currentTarget", current);
if (result.bool) {
var card = get.autoViewAs({ name: result.links[0][2] }, cards);
- if (player.canUse(card, current, false))
- player.useCard(card, cards, current, false);
+ if (player.canUse(card, current, false)) player.useCard(card, cards, current, false);
}
}
},
@@ -262,12 +201,7 @@ game.import("character", function () {
audio: 2,
enable: "chooseToUse",
hiddenCard: function (player, name) {
- if (
- get.type(name) == "basic" &&
- lib.inpile.includes(name) &&
- !player.getStorage("bingxin_count").includes(name)
- )
- return true;
+ if (get.type(name) == "basic" && lib.inpile.includes(name) && !player.getStorage("bingxin_count").includes(name)) return true;
},
filter: function (event, player) {
if (event.type == "wuxie") return false;
@@ -388,20 +322,12 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("zhefu"),
- "令一名有手牌的其他角色弃置一张【" +
- get.translation(trigger.card.name) +
- "】,否则受到你造成的1点伤害。",
- function (card, player, target) {
- return target != player && target.countCards("h") > 0;
- }
- )
+ .chooseTarget(get.prompt("zhefu"), "令一名有手牌的其他角色弃置一张【" + get.translation(trigger.card.name) + "】,否则受到你造成的1点伤害。", function (card, player, target) {
+ return target != player && target.countCards("h") > 0;
+ })
.set("ai", function (target) {
var player = _status.event.player;
- return (
- get.damageEffect(target, player, player) / Math.sqrt(target.countCards("h"))
- );
+ return get.damageEffect(target, player, player) / Math.sqrt(target.countCards("h"));
});
"step 1";
if (result.bool) {
@@ -410,18 +336,10 @@ game.import("character", function () {
player.logSkill("zhefu", target);
var name = trigger.card.name;
target
- .chooseToDiscard(
- "he",
- { name: name },
- "弃置一张【" + get.translation(name) + "】或受到1点伤害"
- )
+ .chooseToDiscard("he", { name: name }, "弃置一张【" + get.translation(name) + "】或受到1点伤害")
.set("ai", function (card) {
var player = _status.event.player;
- if (
- _status.event.take ||
- (get.name(card) == "tao" && !player.hasJudge("lebu"))
- )
- return 0;
+ if (_status.event.take || (get.name(card) == "tao" && !player.hasJudge("lebu"))) return 0;
return 8 - get.value(card);
})
.set("take", get.damageEffect(target, player, target) >= 0);
@@ -435,10 +353,8 @@ game.import("character", function () {
trigger: { player: "useCardAfter" },
filter: function (event, player) {
return (
- (event.card.name == "sha" ||
- (get.type(event.card, null, false) == "trick" &&
- get.tag(event.card, "damage") > 0)) &&
- event.targets.some((target) => {
+ (event.card.name == "sha" || (get.type(event.card, null, false) == "trick" && get.tag(event.card, "damage") > 0)) &&
+ event.targets.some(target => {
return (
target.countCards("h") > 0 &&
!target.hasHistory("damage", function (evt) {
@@ -457,7 +373,7 @@ game.import("character", function () {
})
.set(
"targets",
- trigger.targets.filter((target) => {
+ trigger.targets.filter(target => {
return (
target.countCards("h") > 0 &&
!target.hasHistory("damage", function (evt) {
@@ -466,7 +382,7 @@ game.import("character", function () {
);
})
)
- .set("ai", (target) => {
+ .set("ai", target => {
if (target.hasSkillTag("noh")) return 0;
return -get.attitude(player, target);
});
@@ -476,13 +392,7 @@ game.import("character", function () {
event.target = target;
player.logSkill("yidu", target);
player
- .choosePlayerCard(
- target,
- "遗毒:展示" + get.translation(target) + "的至多三张手牌",
- true,
- "h",
- [1, Math.min(3, target.countCards("h"))]
- )
+ .choosePlayerCard(target, "遗毒:展示" + get.translation(target) + "的至多三张手牌", true, "h", [1, Math.min(3, target.countCards("h"))])
.set("forceAuto", true)
.set("ai", function (button) {
if (ui.selected.buttons.length) return 0;
@@ -491,10 +401,7 @@ game.import("character", function () {
} else event.finish();
"step 2";
var cards = result.cards;
- player.showCards(
- cards,
- get.translation(player) + "对" + get.translation(target) + "发动了【遗毒】"
- );
+ player.showCards(cards, get.translation(player) + "对" + get.translation(target) + "发动了【遗毒】");
var color = get.color(cards[0], target);
var bool = true;
for (var i = 1; i < cards.length; i++) {
@@ -510,12 +417,7 @@ game.import("character", function () {
audio: "wanyi",
trigger: { player: "useCardToTargeted" },
filter: function (event, player) {
- return (
- player != event.target &&
- event.targets.length == 1 &&
- (event.card.name == "sha" || get.type(event.card, false) == "trick") &&
- event.target.countCards("he") > 0
- );
+ return player != event.target && event.targets.length == 1 && (event.card.name == "sha" || get.type(event.card, false) == "trick") && event.target.countCards("he") > 0;
},
locked: false,
logTarget: "target",
@@ -596,11 +498,9 @@ game.import("character", function () {
},
content: function () {
"step 0";
- player
- .chooseTarget(true, "婉嫕:令一名角色获得一张“嫕”")
- .set("ai", function (target) {
- return get.attitude(_status.event.player, target);
- });
+ player.chooseTarget(true, "婉嫕:令一名角色获得一张“嫕”").set("ai", function (target) {
+ return get.attitude(_status.event.player, target);
+ });
"step 1";
if (result.bool) {
var target = result.targets[0];
@@ -608,11 +508,7 @@ game.import("character", function () {
player.line(target, "green");
var cards = player.getExpansions("xinwanyi");
if (cards.length == 1) event._result = { bool: true, links: cards };
- else
- player.chooseButton(
- ["令" + get.translation(target) + "获得一张“嫕”", cards],
- true
- );
+ else player.chooseButton(["令" + get.translation(target) + "获得一张“嫕”", cards], true);
} else event.finish();
"step 2";
if (result.bool) {
@@ -627,9 +523,7 @@ game.import("character", function () {
enable: "phaseUse",
usable: 1,
filter: function (event, player) {
- return game.hasPlayer((current) =>
- lib.skill.xinxuanbei.filterTarget(null, player, current)
- );
+ return game.hasPlayer(current => lib.skill.xinxuanbei.filterTarget(null, player, current));
},
filterTarget: function (card, player, target) {
return target != player && target.countCards("hej") > 0;
@@ -641,12 +535,7 @@ game.import("character", function () {
if (result.bool) {
var card = result.cards[0];
var cardx = get.autoViewAs({ name: "sha" }, [card]);
- if (
- (get.position(card) != "j" &&
- !game.checkMod(card, target, "unchanged", "cardEnabled2", target)) ||
- !target.canUse(cardx, player, false)
- )
- event.finish();
+ if ((get.position(card) != "j" && !game.checkMod(card, target, "unchanged", "cardEnabled2", target)) || !target.canUse(cardx, player, false)) event.finish();
else {
var next = target.useCard(cardx, [card], player, false);
event.card = next.card;
@@ -666,10 +555,7 @@ game.import("character", function () {
order: 7,
result: {
player: function (player, target) {
- return (
- get.effect(target, { name: "guohe_copy" }, player, player) +
- get.effect(player, { name: "sha" }, target, player)
- );
+ return get.effect(target, { name: "guohe_copy" }, player, player) + get.effect(player, { name: "sha" }, target, player);
},
},
},
@@ -679,11 +565,7 @@ game.import("character", function () {
trigger: { global: "phaseUseBegin" },
direct: true,
filter: function (event, player) {
- return (
- player != event.player &&
- event.player.countCards("h") > 0 &&
- player.countCards("he") >= player.countMark("xiongshu_count")
- );
+ return player != event.player && event.player.countCards("h") > 0 && player.countCards("he") >= player.countMark("xiongshu_count");
},
content: function () {
"step 0";
@@ -691,12 +573,7 @@ game.import("character", function () {
var num = player.countMark("xiongshu_count");
if (num > 0)
player
- .chooseToDiscard(
- "he",
- num,
- get.prompt("xiongshu", trigger.player),
- "弃置" + get.cnNumber(num) + "张牌并展示其一张手牌"
- )
+ .chooseToDiscard("he", num, get.prompt("xiongshu", trigger.player), "弃置" + get.cnNumber(num) + "张牌并展示其一张手牌")
.set("goon", get.attitude(player, event.target) < 0)
.set("ai", function (card) {
if (!_status.event.goon) return 0;
@@ -804,12 +681,7 @@ game.import("character", function () {
trigger: { player: "damageEnd" },
forced: true,
filter: function (event, player) {
- return (
- event.source &&
- event.source.isIn() &&
- event.source == lib.skill.jianhui.getLastPlayer(event, player) &&
- event.source.countCards("he") > 0
- );
+ return event.source && event.source.isIn() && event.source == lib.skill.jianhui.getLastPlayer(event, player) && event.source.countCards("he") > 0;
},
content: function () {
trigger.source.chooseToDiscard("he", true);
@@ -833,13 +705,7 @@ game.import("character", function () {
audio: 2,
trigger: {
player: "loseAfter",
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
filter: function (event, player) {
var evt = event.getl(player);
@@ -878,24 +744,14 @@ game.import("character", function () {
event.count = num;
"step 1";
event.count--;
- player
- .chooseTarget(
- true,
- "请选择【怀远】的目标",
- "令一名角色执行一项:⒈其的手牌上限+1。⒉其的攻击范围+1。⒊其摸一张牌。"
- )
- .set("ai", function (target) {
- var player = _status.event.player,
- att = get.attitude(player, target);
- if (att <= 0) return 0;
- if (
- target.hasValueTarget({ name: "sha" }, false) &&
- !target.hasValueTarget({ name: "sha" })
- )
- att *= 2.2;
- if (target.needsToDiscard()) att *= 1.3;
- return att * Math.sqrt(Math.max(1, 4 - target.countCards("h")));
- });
+ player.chooseTarget(true, "请选择【怀远】的目标", "令一名角色执行一项:⒈其的手牌上限+1。⒉其的攻击范围+1。⒊其摸一张牌。").set("ai", function (target) {
+ var player = _status.event.player,
+ att = get.attitude(player, target);
+ if (att <= 0) return 0;
+ if (target.hasValueTarget({ name: "sha" }, false) && !target.hasValueTarget({ name: "sha" })) att *= 2.2;
+ if (target.needsToDiscard()) att *= 1.3;
+ return att * Math.sqrt(Math.max(1, 4 - target.countCards("h")));
+ });
"step 2";
if (result.bool) {
var target = result.targets[0];
@@ -904,19 +760,11 @@ game.import("character", function () {
var str = get.translation(target);
player
.chooseControl()
- .set("choiceList", [
- "令" + str + "的手牌上限+1",
- "令" + str + "的攻击范围+1",
- "令" + str + "摸一张牌",
- ])
+ .set("choiceList", ["令" + str + "的手牌上限+1", "令" + str + "的攻击范围+1", "令" + str + "摸一张牌"])
.set("ai", function () {
var player = _status.event.player,
target = _status.event.getParent().target;
- if (
- target.hasValueTarget({ name: "sha" }, false) &&
- !target.hasValueTarget({ name: "sha" })
- )
- return 1;
+ if (target.hasValueTarget({ name: "sha" }, false) && !target.hasValueTarget({ name: "sha" })) return 1;
if (target.needsToDiscard()) return 0;
return 2;
});
@@ -942,9 +790,7 @@ game.import("character", function () {
forced: true,
locked: false,
filter: function (event, player) {
- return (
- (event.name != "phase" || game.phaseNumber == 0) && player.countCards("h") > 0
- );
+ return (event.name != "phase" || game.phaseNumber == 0) && player.countCards("h") > 0;
},
content: function () {
var hs = player.getCards("h");
@@ -1090,22 +936,13 @@ game.import("character", function () {
trigger: { player: "gainAfter" },
forced: true,
filter: function (event, player) {
- return (
- event.getParent().name == "draw" &&
- event.getParent(2).name != "weishu" &&
- event.getParent("phaseDraw").player != player
- );
+ return event.getParent().name == "draw" && event.getParent(2).name != "weishu" && event.getParent("phaseDraw").player != player;
},
content: function () {
"step 0";
- player
- .chooseTarget(true, "请选择【卫戍】的目标", "令一名角色摸一张牌")
- .set("ai", function (target) {
- return (
- get.attitude(_status.event.player, target) *
- Math.sqrt(Math.max(1, 4 - target.countCards("h")))
- );
- });
+ player.chooseTarget(true, "请选择【卫戍】的目标", "令一名角色摸一张牌").set("ai", function (target) {
+ return get.attitude(_status.event.player, target) * Math.sqrt(Math.max(1, 4 - target.countCards("h")));
+ });
"step 1";
if (result.bool) {
var target = result.targets[0];
@@ -1122,30 +959,14 @@ game.import("character", function () {
},
forced: true,
filter: function (event, player) {
- return (
- event.type == "discard" &&
- event.getParent(3).name != "weishu_discard" &&
- event.getParent("phaseDiscard").player != player &&
- event.getl(player).cards2.length > 0 &&
- game.hasPlayer(
- (target) =>
- target != player && target.countDiscardableCards(player, "he") > 0
- )
- );
+ return event.type == "discard" && event.getParent(3).name != "weishu_discard" && event.getParent("phaseDiscard").player != player && event.getl(player).cards2.length > 0 && game.hasPlayer(target => target != player && target.countDiscardableCards(player, "he") > 0);
},
content: function () {
"step 0";
player
- .chooseTarget(
- true,
- "请选择【卫戍】的目标",
- "弃置一名其他角色的一张牌",
- function (card, player, target) {
- return (
- target != player && target.countDiscardableCards(player, "he") > 0
- );
- }
- )
+ .chooseTarget(true, "请选择【卫戍】的目标", "弃置一名其他角色的一张牌", function (card, player, target) {
+ return target != player && target.countDiscardableCards(player, "he") > 0;
+ })
.set("ai", function (target) {
var player = _status.event.player;
return get.effect(target, { name: "guohe_copy2" }, player, player);
@@ -1177,13 +998,9 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("gaoling"),
- "令一名角色回复1点体力",
- function (card, player, target) {
- return target.isDamaged();
- }
- )
+ .chooseTarget(get.prompt("gaoling"), "令一名角色回复1点体力", function (card, player, target) {
+ return target.isDamaged();
+ })
.set("ai", function (target) {
var player = _status.event.player;
return get.recoverEffect(target, player, player);
@@ -1204,17 +1021,10 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- get.prompt("qimei"),
- "选择一名其他角色并获得“齐眉”效果",
- lib.filter.notMe
- )
+ .chooseTarget(get.prompt("qimei"), "选择一名其他角色并获得“齐眉”效果", lib.filter.notMe)
.set("ai", function (target) {
var player = _status.event.player;
- return (
- get.attitude(player, target) /
- (Math.abs(player.countCards("h") + 2 - target.countCards("h")) + 1)
- );
+ return get.attitude(player, target) / (Math.abs(player.countCards("h") + 2 - target.countCards("h")) + 1);
})
.setHiddenSkill("qimei");
"step 1";
@@ -1233,14 +1043,7 @@ game.import("character", function () {
forced: true,
popup: false,
trigger: {
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "loseAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "loseAfter", "addToExpansionAfter"],
},
usable: 1,
filter: function (event, player) {
@@ -1320,8 +1123,7 @@ game.import("character", function () {
.set("prompt", get.prompt("ybzhuiji"))
.set("ai", function () {
var player = _status.event.player;
- if (player.isDamaged() && player.countCards("h", "tao") < player.getDamagedHp())
- return 1;
+ if (player.isDamaged() && player.countCards("h", "tao") < player.getDamagedHp()) return 1;
return "cancel2";
})
.setHiddenSkill("ybzhuiji");
@@ -1357,21 +1159,13 @@ game.import("character", function () {
trigger: { global: "useCardToPlayer" },
direct: true,
filter: function (event, player) {
- if (
- !event.player.isMaxHandcard(true) ||
- !event.isFirstTarget ||
- get.type(event.card, null, false) != "trick"
- )
- return false;
+ if (!event.player.isMaxHandcard(true) || !event.isFirstTarget || get.type(event.card, null, false) != "trick") return false;
var info = get.info(event.card);
if (info.allowMultiple == false) return false;
if (event.targets && !info.multitarget) {
if (
game.hasPlayer(function (current) {
- return (
- !event.targets.includes(current) &&
- lib.filter.targetEnabled2(event.card, event.player, current)
- ); //&&lib.filter.targetInRange(event.card,event.player,current);
+ return !event.targets.includes(current) && lib.filter.targetEnabled2(event.card, event.player, current); //&&lib.filter.targetInRange(event.card,event.player,current);
})
) {
return true;
@@ -1386,10 +1180,7 @@ game.import("character", function () {
player
.chooseTarget(get.prompt("canmou"), function (card, player, target) {
var player = _status.event.source;
- return (
- !_status.event.targets.includes(target) &&
- lib.filter.targetEnabled2(_status.event.card, player, target)
- ); //&&lib.filter.targetInRange(_status.event.card,player,target);
+ return !_status.event.targets.includes(target) && lib.filter.targetEnabled2(_status.event.card, player, target); //&&lib.filter.targetInRange(_status.event.card,player,target);
})
.set("prompt2", prompt2)
.set("ai", function (target) {
@@ -1421,13 +1212,7 @@ game.import("character", function () {
trigger: { global: "useCardToTarget" },
logTarget: "target",
filter: function (event, player) {
- return (
- event.target != player &&
- event.targets.length == 1 &&
- get.type(event.card, null, false) == "trick" &&
- event.target.isMaxHp(true) &&
- lib.filter.targetEnabled2(event.card, event.player, player)
- );
+ return event.target != player && event.targets.length == 1 && get.type(event.card, null, false) == "trick" && event.target.isMaxHp(true) && lib.filter.targetEnabled2(event.card, event.player, player);
},
check: function (event, player) {
return get.effect(player, event.card, event.player, player) > 0;
@@ -1468,11 +1253,7 @@ game.import("character", function () {
return ui.create.dialog("婉嫕", [list, "vcard"], "hidden");
},
filter: function (button, player) {
- return lib.filter.filterCard(
- { name: button.link[2] },
- player,
- _status.event.getParent()
- );
+ return lib.filter.filterCard({ name: button.link[2] }, player, _status.event.getParent());
},
check: function (button) {
return _status.event.player.getUseValue({ name: button.link[2] });
@@ -1511,15 +1292,7 @@ game.import("character", function () {
trigger: { target: "useCardToTargeted" },
logTarget: "player",
filter: function (event, player) {
- return (
- event.card.name == "sha" &&
- event.card.isCard &&
- event.getParent(2).name != "maihuo_effect" &&
- event.cards.filterInD().length > 0 &&
- event.targets.length == 1 &&
- event.player.isIn() &&
- !event.player.getExpansions("maihuo_effect").length
- );
+ return event.card.name == "sha" && event.card.isCard && event.getParent(2).name != "maihuo_effect" && event.cards.filterInD().length > 0 && event.targets.length == 1 && event.player.isIn() && !event.player.getExpansions("maihuo_effect").length;
},
prompt2: function (event) {
return "令" + get.translation(event.card) + "暂时对你无效";
@@ -1579,10 +1352,7 @@ game.import("character", function () {
forced: true,
locked: false,
filter: function (event, player) {
- return (
- event.player.hasSkill("maihuo_effect") &&
- event.player.getExpansions("maihuo_effect").length > 0
- );
+ return event.player.hasSkill("maihuo_effect") && event.player.getExpansions("maihuo_effect").length > 0;
},
content: function () {
trigger.player.removeSkill("maihuo_effect");
@@ -1618,28 +1388,19 @@ game.import("character", function () {
trigger: { player: "useCardAfter" },
usable: 1,
filter: function (event, player) {
- return (
- (event.card.yingbian || get.is.yingbian(event.card)) &&
- event.cards.filterInD().length > 0
- );
+ return (event.card.yingbian || get.is.yingbian(event.card)) && event.cards.filterInD().length > 0;
},
direct: true,
content: function () {
"step 0";
event.cards = trigger.cards.filterInD();
- player
- .chooseTarget(
- get.prompt("xuanbei"),
- "令一名其他角色获得" + get.translation(event.cards),
- lib.filter.notMe
- )
- .set("ai", function (target) {
- var att = get.attitude(_status.event.player, target);
- if (att < 3) return 0;
- if (target.hasJudge("lebu")) att /= 2;
- if (target.hasSkillTag("nogain")) att /= 10;
- return att / (1 + get.distance(player, target, "absolute"));
- });
+ player.chooseTarget(get.prompt("xuanbei"), "令一名其他角色获得" + get.translation(event.cards), lib.filter.notMe).set("ai", function (target) {
+ var att = get.attitude(_status.event.player, target);
+ if (att < 3) return 0;
+ if (target.hasJudge("lebu")) att /= 2;
+ if (target.hasSkillTag("nogain")) att /= 10;
+ return att / (1 + get.distance(player, target, "absolute"));
+ });
"step 1";
if (result.bool) {
var target = result.targets[0];
@@ -1706,16 +1467,14 @@ game.import("character", function () {
enable: ["chooseToUse", "chooseToRespond"],
viewAsFilter: function (player) {
var js = player.getCards("h");
- return (
- js.length == 1 && game.checkMod(js[0], player, "unchanged", "cardEnabled2", player)
- );
+ return js.length == 1 && game.checkMod(js[0], player, "unchanged", "cardEnabled2", player);
},
selectCard: -1,
filterCard: true,
position: "h",
prompt: "将全部手牌当做【闪】使用",
viewAs: { name: "shan" },
- check: (card) => 10 - get.value(card),
+ check: card => 10 - get.value(card),
ai: {
order: 1,
respondShan: true,
@@ -1729,13 +1488,11 @@ game.import("character", function () {
enable: ["chooseToUse", "chooseToRespond"],
viewAsFilter: function (player) {
var js = player.getCards("e");
- return (
- js.length == 1 && game.checkMod(js[0], player, "unchanged", "cardEnabled2", player)
- );
+ return js.length == 1 && game.checkMod(js[0], player, "unchanged", "cardEnabled2", player);
},
selectCard: -1,
filterCard: true,
- check: (card) => 9 - get.value(card),
+ check: card => 9 - get.value(card),
position: "e",
prompt: "将装备区的牌当做【无懈可击】使用",
viewAs: { name: "wuxie" },
@@ -1748,16 +1505,14 @@ game.import("character", function () {
enable: ["chooseToUse", "chooseToRespond"],
viewAsFilter: function (player) {
var js = player.getCards("j");
- return (
- js.length == 1 && game.checkMod(js[0], player, "unchanged", "cardEnabled2", player)
- );
+ return js.length == 1 && game.checkMod(js[0], player, "unchanged", "cardEnabled2", player);
},
selectCard: -1,
filterCard: true,
position: "j",
prompt: "将判定区的牌当做【杀】使用",
viewAs: { name: "sha" },
- check: (card) => 1,
+ check: card => 1,
locked: false,
ai: {
order: 10,
@@ -1767,15 +1522,7 @@ game.import("character", function () {
},
effect: {
target: function (card, player, target, current) {
- if (
- card &&
- (card.name == "shandian" || card.name == "fulei") &&
- player == target &&
- !target.countCards("j") &&
- target.isPhaseUsing() &&
- target.hasValueTarget({ name: "sha" }, null, true)
- )
- return [1, 2];
+ if (card && (card.name == "shandian" || card.name == "fulei") && player == target && !target.countCards("j") && target.isPhaseUsing() && target.hasValueTarget({ name: "sha" }, null, true)) return [1, 2];
},
},
},
@@ -1816,11 +1563,7 @@ game.import("character", function () {
return ui.create.dialog("草诏", [vcards, "vcard"]);
},
check: function (button) {
- return _status.event.player.getUseValue(
- { name: button.link[2], isCard: true },
- null,
- true
- );
+ return _status.event.player.getUseValue({ name: button.link[2], isCard: true }, null, true);
},
backup: function (links, player) {
return {
@@ -1829,10 +1572,7 @@ game.import("character", function () {
filterCard: true,
position: "h",
check: function (card) {
- return (
- player.getUseValue({ name: lib.skill.caozhao_backup.cardname }) -
- (player.getUseValue(card, null, true) + 0.1) / (get.value(card) / 6)
- );
+ return player.getUseValue({ name: lib.skill.caozhao_backup.cardname }) - (player.getUseValue(card, null, true) + 0.1) / (get.value(card) / 6);
},
filterTarget: function (card, player, target) {
return target != player && target.hp <= player.hp;
@@ -1841,31 +1581,17 @@ game.import("character", function () {
lose: false,
content: function () {
"step 0";
- player.showCards(
- cards,
- get.translation(player) +
- "发动【草诏】,声明" +
- get.translation(lib.skill.caozhao_backup.cardname)
- );
+ player.showCards(cards, get.translation(player) + "发动【草诏】,声明" + get.translation(lib.skill.caozhao_backup.cardname));
if (!player.storage.caozhao) player.storage.caozhao = [];
player.storage.caozhao.push(lib.skill.caozhao_backup.cardname);
"step 1";
target
.chooseControl()
- .set("choiceList", [
- "令" +
- get.translation(player) +
- "将" +
- get.translation(cards[0]) +
- "的牌名改为" +
- get.translation(lib.skill.caozhao_backup.cardname),
- "失去1点体力",
- ])
+ .set("choiceList", ["令" + get.translation(player) + "将" + get.translation(cards[0]) + "的牌名改为" + get.translation(lib.skill.caozhao_backup.cardname), "失去1点体力"])
.set("ai", function (event, player) {
var target = _status.event.getParent().player;
if (get.attitude(player, target) > 0) return 0;
- if (player.hp > 3 || (player.hp > 1 && player.hasSkill("zhaxiang")))
- return 1;
+ if (player.hp > 3 || (player.hp > 1 && player.hasSkill("zhaxiang"))) return 1;
if (player.hp > 2) return Math.random() > 0.5 ? 0 : 1;
return 0;
});
@@ -1875,30 +1601,19 @@ game.import("character", function () {
target.loseHp();
event.finish();
} else {
- player
- .chooseTarget(
- "是否将" +
- get.translation(lib.skill.caozhao_backup.cardname) +
- "(" +
- get.translation(cards[0]) +
- ")交给一名其他角色?",
- lib.filter.notMe
- )
- .set("ai", () => -1);
+ player.chooseTarget("是否将" + get.translation(lib.skill.caozhao_backup.cardname) + "(" + get.translation(cards[0]) + ")交给一名其他角色?", lib.filter.notMe).set("ai", () => -1);
}
"step 3";
if (result.bool) {
var target = result.targets[0];
player.line(target, "green");
if (!target.storage.caozhao_info) target.storage.caozhao_info = {};
- target.storage.caozhao_info[cards[0].cardid] =
- lib.skill.caozhao_backup.cardname;
+ target.storage.caozhao_info[cards[0].cardid] = lib.skill.caozhao_backup.cardname;
target.addSkill("caozhao_info");
player.give(cards, target, "give").gaintag.add("caozhao");
} else {
if (!player.storage.caozhao_info) player.storage.caozhao_info = {};
- player.storage.caozhao_info[cards[0].cardid] =
- lib.skill.caozhao_backup.cardname;
+ player.storage.caozhao_info[cards[0].cardid] = lib.skill.caozhao_backup.cardname;
player.addGaintag(cards, "caozhao");
player.addSkill("caozhao_info");
}
@@ -1927,23 +1642,11 @@ game.import("character", function () {
mod: {
cardname: function (card, player) {
var map = player.storage.caozhao_info;
- if (
- map &&
- map[card.cardid] &&
- get.itemtype(card) == "card" &&
- card.hasGaintag("caozhao")
- )
- return map[card.cardid];
+ if (map && map[card.cardid] && get.itemtype(card) == "card" && card.hasGaintag("caozhao")) return map[card.cardid];
},
cardnature: function (card, player) {
var map = player.storage.caozhao_info;
- if (
- map &&
- map[card.cardid] &&
- get.itemtype(card) == "card" &&
- card.hasGaintag("caozhao")
- )
- return false;
+ if (map && map[card.cardid] && get.itemtype(card) == "card" && card.hasGaintag("caozhao")) return false;
},
},
},
@@ -1951,14 +1654,7 @@ game.import("character", function () {
audio: 2,
trigger: { player: "damageEnd" },
filter: function (event, player) {
- return (
- event.player &&
- event.source &&
- event.player != event.source &&
- event.player.isAlive() &&
- event.source.isAlive() &&
- (event.player.countCards("he") > 0 || event.source.countCards("he") > 0)
- );
+ return event.player && event.source && event.player != event.source && event.player.isAlive() && event.source.isAlive() && (event.player.countCards("he") > 0 || event.source.countCards("he") > 0);
},
direct: true,
content: function () {
@@ -1966,16 +1662,10 @@ game.import("character", function () {
var target = trigger.source;
event.target = target;
player
- .chooseTarget(
- get.prompt("olxibing"),
- "弃置自己或" +
- get.translation(target) +
- "的两张牌,然后手牌数较少的角色摸两张牌且不能对你使用牌直到回合结束",
- function (card, player, target) {
- if (target != player && target != _status.event.target) return false;
- return target.countCards("he") > 0;
- }
- )
+ .chooseTarget(get.prompt("olxibing"), "弃置自己或" + get.translation(target) + "的两张牌,然后手牌数较少的角色摸两张牌且不能对你使用牌直到回合结束", function (card, player, target) {
+ if (target != player && target != _status.event.target) return false;
+ return target.countCards("he") > 0;
+ })
.set("target", target)
.set("ai", function (targetx) {
var player = _status.event.player,
@@ -2081,21 +1771,8 @@ game.import("character", function () {
for (var j of lib.character[i][3]) {
if (j == "bolan") continue;
var skill = lib.skill[j];
- if (
- !skill ||
- skill.juexingji ||
- skill.hiddenSkill ||
- skill.zhuSkill ||
- skill.dutySkill ||
- skill.chargeSkill ||
- lib.skill.bolan.banned.includes(j)
- )
- continue;
- if (
- skill.init ||
- (skill.ai && (skill.ai.combo || skill.ai.notemp || skill.ai.neg))
- )
- continue;
+ if (!skill || skill.juexingji || skill.hiddenSkill || skill.zhuSkill || skill.dutySkill || skill.chargeSkill || lib.skill.bolan.banned.includes(j)) continue;
+ if (skill.init || (skill.ai && (skill.ai.combo || skill.ai.notemp || skill.ai.neg))) continue;
var info = lib.translate[j + "_info"];
if (info && info.indexOf("出牌阶段限一次") != -1) skills.add(j);
}
@@ -2122,15 +1799,7 @@ game.import("character", function () {
.set(
"choiceList",
list.map(function (i) {
- return (
- '【' +
- get.translation(
- lib.translate[i + "_ab"] || get.translation(i).slice(0, 2)
- ) +
- "】
" +
- get.skillInfoTranslation(i, player) +
- "
"
- );
+ return '【' + get.translation(lib.translate[i + "_ab"] || get.translation(i).slice(0, 2)) + "】
" + get.skillInfoTranslation(i, player) + "
";
})
)
.set("displayIndex", false)
@@ -2165,12 +1834,8 @@ game.import("character", function () {
},
selectTarget: function () {
if (
- game.countPlayer((current) => {
- return lib.skill.bolan_g.filterTarget(
- null,
- _status.event.player,
- current
- );
+ game.countPlayer(current => {
+ return lib.skill.bolan_g.filterTarget(null, _status.event.player, current);
}) == 1
)
return -1;
@@ -2192,15 +1857,7 @@ game.import("character", function () {
.set(
"choiceList",
list.map(function (i) {
- return (
- '【' +
- get.translation(
- lib.translate[i + "_ab"] || get.translation(i).slice(0, 2)
- ) +
- "】
" +
- get.skillInfoTranslation(i, player) +
- "
"
- );
+ return '【' + get.translation(lib.translate[i + "_ab"] || get.translation(i).slice(0, 2)) + "】
" + get.skillInfoTranslation(i, player) + "
";
})
)
.set("displayIndex", false)
@@ -2208,13 +1865,7 @@ game.import("character", function () {
.set("ai", () => {
var list = _status.event.controls.slice();
return list.sort((a, b) => {
- return (
- (get.skillRank(b, "in") - get.skillRank(a, "in")) *
- get.attitude(
- _status.event.player,
- _status.event.getParent().player
- )
- );
+ return (get.skillRank(b, "in") - get.skillRank(a, "in")) * get.attitude(_status.event.player, _status.event.getParent().player);
})[0];
});
} else event.finish();
@@ -2226,9 +1877,7 @@ game.import("character", function () {
ai: {
order: function (item, player) {
if (player.hp >= 5 || player.countCards("h") >= 10) return 10;
- var list = game.filterPlayer((current) =>
- lib.skill.bolan_g.filterTarget(null, player, current)
- );
+ var list = game.filterPlayer(current => lib.skill.bolan_g.filterTarget(null, player, current));
for (var target of list) {
if (get.attitude(target, player) > 0) return 10;
}
@@ -2236,8 +1885,7 @@ game.import("character", function () {
},
result: {
player: function (player, target) {
- if (player.hasUnknown())
- return player.hp + player.countCards("h") / 4 - 5 > 0 ? 1 : 0;
+ if (player.hasUnknown()) return player.hp + player.countCards("h") / 4 - 5 > 0 ? 1 : 0;
var tao = player.countCards("h", "tao");
if (player.hp + tao > 4) return 4 + get.attitude(player, target);
if (player.hp + tao > 3) return get.attitude(player, target) - 2;
@@ -2254,11 +1902,7 @@ game.import("character", function () {
forced: true,
logTarget: "player",
filter: function (event, player) {
- return (
- player != event.player &&
- (event.card.name == "sha" ||
- (get.color(event.card) == "black" && get.type(event.card) == "trick"))
- );
+ return player != event.player && (event.card.name == "sha" || (get.color(event.card) == "black" && get.type(event.card) == "trick"));
},
content: function () {
var target = trigger.player;
@@ -2283,19 +1927,12 @@ game.import("character", function () {
hiddenSkill: true,
filter: function (event, player) {
var target = _status.currentPhase;
- return (
- event.toShow.includes("jin_simayi") &&
- target &&
- target != player &&
- target.countGainableCards(player, "he") > 0
- );
+ return event.toShow.includes("jin_simayi") && target && target != player && target.countGainableCards(player, "he") > 0;
},
direct: true,
content: function () {
var target = _status.currentPhase;
- player
- .gainPlayerCard(target, "he", get.prompt("buchen", target))
- .set("logSkill", ["buchen", target]);
+ player.gainPlayerCard(target, "he", get.prompt("buchen", target)).set("logSkill", ["buchen", target]);
},
},
smyyingshi: {
@@ -2394,20 +2031,10 @@ game.import("character", function () {
if (!lib.suit.includes(suit) || !lib.skill.quanbian.hasHand(event)) return false;
return (
player.getHistory("useCard", function (evt) {
- return (
- evt != event &&
- get.suit(evt.card) == suit &&
- lib.skill.quanbian.hasHand(evt) &&
- evt.getParent("phaseUse") == phase
- );
+ return evt != event && get.suit(evt.card) == suit && lib.skill.quanbian.hasHand(evt) && evt.getParent("phaseUse") == phase;
}).length +
player.getHistory("respond", function (evt) {
- return (
- evt != event &&
- get.suit(evt.card) == suit &&
- lib.skill.quanbian.hasHand(evt) &&
- evt.getParent("phaseUse") == phase
- );
+ return evt != event && get.suit(evt.card) == suit && lib.skill.quanbian.hasHand(evt) && evt.getParent("phaseUse") == phase;
}).length ==
0
);
@@ -2418,10 +2045,7 @@ game.import("character", function () {
player
.chooseControl("cancel2")
.set("prompt", get.prompt("quanbian"))
- .set("choiceList", [
- "摸一张牌",
- "观看牌堆顶的" + get.cnNumber(player.maxHp) + "张牌并将其中一张置于牌堆底",
- ])
+ .set("choiceList", ["摸一张牌", "观看牌堆顶的" + get.cnNumber(player.maxHp) + "张牌并将其中一张置于牌堆底"])
.set("ai", function () {
var player = _status.event.player;
var suit = get.suit(_status.event.getTrigger().card);
@@ -2465,8 +2089,7 @@ game.import("character", function () {
onremove: true,
mod: {
cardEnabled2: function (card, player) {
- if (get.position(card) == "h" && player.storage.quanbian2.includes(get.suit(card)))
- return false;
+ if (get.position(card) == "h" && player.storage.quanbian2.includes(get.suit(card))) return false;
},
},
intro: {
@@ -2494,19 +2117,12 @@ game.import("character", function () {
var filterTarget = function (card, player, target) {
return player.inRange(target);
};
- if (game.hasPlayer((current) => filterTarget("L∞pers", player, current))) {
+ if (game.hasPlayer(current => filterTarget("L∞pers", player, current))) {
var bool = player.isHealthy();
- player
- .chooseTarget(
- "忠允:对攻击范围内的一名角色造成1点伤害" +
- (bool ? "" : ",或点取消回复1点体力"),
- filterTarget,
- bool
- )
- .set("ai", function (target) {
- var player = _status.event.player;
- return get.damageEffect(target, player, player);
- });
+ player.chooseTarget("忠允:对攻击范围内的一名角色造成1点伤害" + (bool ? "" : ",或点取消回复1点体力"), filterTarget, bool).set("ai", function (target) {
+ var player = _status.event.player;
+ return get.damageEffect(target, player, player);
+ });
} else event._result = { bool: false };
"step 1";
if (result.bool) {
@@ -2521,13 +2137,7 @@ game.import("character", function () {
audio: "zhongyun",
trigger: {
player: ["loseAfter"],
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
forced: true,
filter: function (event, player) {
@@ -2543,22 +2153,19 @@ game.import("character", function () {
var filterTarget = function (card, player, target) {
return target != player && target.countDiscardableCards(player, "he") > 0;
};
- if (!game.hasPlayer((current) => filterTarget("L∞pers", player, current)))
- event._result = { bool: false };
+ if (!game.hasPlayer(current => filterTarget("L∞pers", player, current))) event._result = { bool: false };
else
- player
- .chooseTarget(filterTarget, "忠允:弃置一名其他角色的一张牌,或点取消摸一张牌")
- .set("ai", function (target) {
- var att = get.attitude(player, target);
- if (att >= 0) return 0;
- if (
- target.countCards("he", function (card) {
- return get.value(card) > 5;
- })
- )
- return -att;
- return 0;
- });
+ player.chooseTarget(filterTarget, "忠允:弃置一名其他角色的一张牌,或点取消摸一张牌").set("ai", function (target) {
+ var att = get.attitude(player, target);
+ if (att >= 0) return 0;
+ if (
+ target.countCards("he", function (card) {
+ return get.value(card) > 5;
+ })
+ )
+ return -att;
+ return 0;
+ });
"step 1";
if (!result.bool) player.draw();
else {
@@ -2586,25 +2193,15 @@ game.import("character", function () {
"step 0";
var color = get.color(trigger.player.judging[0], trigger.player);
player
- .chooseCard(
- get.translation(trigger.player) +
- "的" +
- (trigger.judgestr || "") +
- "判定为" +
- get.translation(trigger.player.judging[0]) +
- "," +
- get.prompt("shenpin"),
- "hes",
- function (card) {
- if (get.color(card) == _status.event.color) return false;
- var player = _status.event.player;
- var mod2 = game.checkMod(card, player, "unchanged", "cardEnabled2", player);
- if (mod2 != "unchanged") return mod2;
- var mod = game.checkMod(card, player, "unchanged", "cardRespondable", player);
- if (mod != "unchanged") return mod;
- return true;
- }
- )
+ .chooseCard(get.translation(trigger.player) + "的" + (trigger.judgestr || "") + "判定为" + get.translation(trigger.player.judging[0]) + "," + get.prompt("shenpin"), "hes", function (card) {
+ if (get.color(card) == _status.event.color) return false;
+ var player = _status.event.player;
+ var mod2 = game.checkMod(card, player, "unchanged", "cardEnabled2", player);
+ if (mod2 != "unchanged") return mod2;
+ var mod = game.checkMod(card, player, "unchanged", "cardRespondable", player);
+ if (mod != "unchanged") return mod;
+ return true;
+ })
.set("ai", function (card) {
var trigger = _status.event.getTrigger();
var player = _status.event.player;
@@ -2636,11 +2233,7 @@ game.import("character", function () {
card.clone.classList.remove("thrownhighlight");
}
}, trigger.player.judging[0]);
- game.addVideo(
- "deletenode",
- player,
- get.cardsInfo([trigger.player.judging[0].clone])
- );
+ game.addVideo("deletenode", player, get.cardsInfo([trigger.player.judging[0].clone]));
}
game.cardsDiscard(trigger.player.judging[0]);
trigger.player.judging[0] = result.cards[0];
@@ -2685,11 +2278,7 @@ game.import("character", function () {
true
)
.set("ai", function (button) {
- if (
- button.link[2] == "cheliji_sichengliangyu" &&
- player.countCards("h") < player.hp
- )
- return 1;
+ if (button.link[2] == "cheliji_sichengliangyu" && player.countCards("h") < player.hp) return 1;
return Math.random();
});
"step 1";
@@ -2712,13 +2301,7 @@ game.import("character", function () {
audio: "chexuan",
trigger: {
player: "loseAfter",
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
frequent: true,
filter: function (event, player) {
@@ -2774,12 +2357,7 @@ game.import("character", function () {
equipSkill: true,
cardcolor: "club",
filter: function (event, player) {
- return (
- player != event.player &&
- !event.player.getHistory("sourceDamage").length &&
- event.player.countCards("he") > 0 &&
- player.getEquip("cheliji_tiejixuanyu")
- );
+ return player != event.player && !event.player.getHistory("sourceDamage").length && event.player.countCards("he") > 0 && player.getEquip("cheliji_tiejixuanyu");
},
logTarget: "player",
check: function (event, player) {
@@ -2827,31 +2405,18 @@ game.import("character", function () {
trigger: { global: ["useCard", "respond"] },
preHidden: true,
filter: function (event, player) {
- if (
- !Array.isArray(event.respondTo) ||
- event.respondTo[0] == event.player ||
- ![event.respondTo[0], event.player].includes(player)
- )
- return false;
+ if (!Array.isArray(event.respondTo) || event.respondTo[0] == event.player || ![event.respondTo[0], event.player].includes(player)) return false;
var color = get.color(event.card);
if (color == "none" || get.color(event.respondTo[1]) != color) return false;
var target = lib.skill.caiwang.logTarget(event, player);
- return (
- target[
- player.getStorage("naxiang2").includes(target)
- ? "countGainableCards"
- : "countDiscardableCards"
- ](player, "he") > 0
- );
+ return target[player.getStorage("naxiang2").includes(target) ? "countGainableCards" : "countDiscardableCards"](player, "he") > 0;
},
logTarget: function (event, player) {
return player == event.respondTo[0] ? event.player : event.respondTo[0];
},
prompt2: function (event, player) {
var target = lib.skill.caiwang.logTarget(event, player);
- return (
- (player.getStorage("naxiang2").includes(target) ? "获得" : "弃置") + "该角色的一张牌"
- );
+ return (player.getStorage("naxiang2").includes(target) ? "获得" : "弃置") + "该角色的一张牌";
},
check: function (event, player) {
return get.attitude(player, lib.skill.caiwang.logTarget(event, player)) <= 0;
@@ -2863,11 +2428,7 @@ game.import("character", function () {
"step 1";
var target = lib.skill.caiwang.logTarget(trigger, player);
player.logSkill(event.name, target);
- player[
- player.getStorage("naxiang2").includes(target)
- ? "gainPlayerCard"
- : "discardPlayerCard"
- ](target, "he", true);
+ player[player.getStorage("naxiang2").includes(target) ? "gainPlayerCard" : "discardPlayerCard"](target, "he", true);
},
},
naxiang: {
@@ -2957,29 +2518,16 @@ game.import("character", function () {
async cost(event, trigger, player) {
event.cards = player.getExpansions("qiaoyan");
event.result = await player
- .chooseTarget(
- true,
- "请选择【献珠】的目标",
- "将" +
- get.translation(event.cards) +
- "交给一名角色。若该角色不为你自己,则你令其视为对其攻击范围内的另一名角色使用【杀】"
- )
+ .chooseTarget(true, "请选择【献珠】的目标", "将" + get.translation(event.cards) + "交给一名角色。若该角色不为你自己,则你令其视为对其攻击范围内的另一名角色使用【杀】")
.set("ai", function (target) {
var player = _status.event.player;
- var eff =
- get.sgn(get.attitude(player, target)) *
- get.value(_status.event.getParent().cards[0], target);
+ var eff = get.sgn(get.attitude(player, target)) * get.value(_status.event.getParent().cards[0], target);
if (player != target)
eff += Math.max.apply(
null,
game
.filterPlayer(function (current) {
- if (
- current != target &&
- player.inRange(current) &&
- target.canUse("sha", current, false)
- )
- return true;
+ if (current != target && player.inRange(current) && target.canUse("sha", current, false)) return true;
})
.map(function (current) {
return get.effect(current, { name: "sha" }, target, player);
@@ -3001,23 +2549,15 @@ game.import("character", function () {
target.isIn() &&
player.isIn() &&
game.hasPlayer(function (current) {
- return (
- current != target &&
- player.inRange(current) &&
- target.canUse("sha", current, false)
- );
+ return current != target && player.inRange(current) && target.canUse("sha", current, false);
})
) {
var str = get.translation(target);
player
- .chooseTarget(
- true,
- "选择攻击范围内的一名角色,视为" + str + "对其使用【杀】",
- function (card, player, target) {
- var source = _status.event.target;
- return player.inRange(target) && source.canUse("sha", target, false);
- }
- )
+ .chooseTarget(true, "选择攻击范围内的一名角色,视为" + str + "对其使用【杀】", function (card, player, target) {
+ var source = _status.event.target;
+ return player.inRange(target) && source.canUse("sha", target, false);
+ })
.set("target", target)
.set("ai", function (target) {
var evt = _status.event;
@@ -3046,15 +2586,10 @@ game.import("character", function () {
content: function () {
"step 0";
player
- .chooseTarget(
- "请选择【慧容】的目标",
- "令一名角色将手牌数摸至/弃置至与其体力值相同(至多摸至五张)",
- true,
- function (card, player, target) {
- var num = target.countCards("h");
- return num > target.hp || num < Math.min(5, target.hp);
- }
- )
+ .chooseTarget("请选择【慧容】的目标", "令一名角色将手牌数摸至/弃置至与其体力值相同(至多摸至五张)", true, function (card, player, target) {
+ var num = target.countCards("h");
+ return num > target.hp || num < Math.min(5, target.hp);
+ })
.set("ai", function (target) {
var att = get.attitude(_status.event.player, target);
var num = target.countCards("h");
@@ -3075,33 +2610,20 @@ game.import("character", function () {
game.addGlobalSkill("ciwei_ai");
},
onremove: () => {
- if (!game.hasPlayer((i) => i.hasSkill("ciwei"), true)) game.removeGlobalSkill("ciwei_ai");
+ if (!game.hasPlayer(i => i.hasSkill("ciwei"), true)) game.removeGlobalSkill("ciwei_ai");
},
trigger: { global: "useCard" },
direct: true,
preHidden: true,
filter: function (event, player) {
- if (
- event.all_excluded ||
- event.player == player ||
- event.player != _status.currentPhase ||
- !player.countCards("he")
- )
- return false;
- return (
- event.player.getHistory("useCard").indexOf(event) == 1 &&
- ["basic", "trick"].includes(get.type(event.card))
- );
+ if (event.all_excluded || event.player == player || event.player != _status.currentPhase || !player.countCards("he")) return false;
+ return event.player.getHistory("useCard").indexOf(event) == 1 && ["basic", "trick"].includes(get.type(event.card));
},
content: function () {
"step 0";
if (player != game.me && !player.isOnline()) game.delayx();
player
- .chooseToDiscard(
- get.prompt("ciwei", trigger.player),
- "弃置一张牌,取消" + get.translation(trigger.card) + "的所有目标",
- "he"
- )
+ .chooseToDiscard(get.prompt("ciwei", trigger.player), "弃置一张牌,取消" + get.translation(trigger.card) + "的所有目标", "he")
.set("ai", function (card) {
return _status.event.goon / 1.4 - get.value(card);
})
@@ -3131,12 +2653,7 @@ game.import("character", function () {
player != _status.currentPhase ||
player.getHistory("useCard").length > 1 ||
!game.hasPlayer(function (current) {
- return (
- current != player &&
- (get.realAttitude || get.attitude)(current, player) < 0 &&
- current.hasSkill("ciwei") &&
- current.countCards("he") > 0
- );
+ return current != player && (get.realAttitude || get.attitude)(current, player) < 0 && current.hasSkill("ciwei") && current.countCards("he") > 0;
})
)
return;
@@ -3155,7 +2672,7 @@ game.import("character", function () {
},
trigger: { player: "dieAfter" },
filter: () => {
- return !game.hasPlayer((i) => i.hasSkill("ciwei"), true);
+ return !game.hasPlayer(i => i.hasSkill("ciwei"), true);
},
silent: true,
forceDie: true,
@@ -3175,8 +2692,7 @@ game.import("character", function () {
let i1 = history1.length - 1 - i,
i2 = history2.length - 1 - i;
if (i > 0 && history2[i2].isMe) break;
- if (history1[i1].changeHp.some((evt) => evt.player == player && evt.num < 0))
- return false;
+ if (history1[i1].changeHp.some(evt => evt.player == player && evt.num < 0)) return false;
}
return true;
},
@@ -3213,29 +2729,17 @@ game.import("character", function () {
targetInRange: function (card, player, target) {
if (!card.cards || get.type(card) != "basic") return;
for (var i of card.cards) {
- if (i.hasGaintag("zhuosheng"))
- return game.online ? player == _status.currentPhase : player.isPhaseUsing();
+ if (i.hasGaintag("zhuosheng")) return game.online ? player == _status.currentPhase : player.isPhaseUsing();
}
},
cardUsable: function (card, player, target) {
- if (
- !card.cards ||
- get.mode() == "guozhan" ||
- get.type(card) != "basic" ||
- !(game.online ? player == _status.currentPhase : player.isPhaseUsing())
- )
- return;
+ if (!card.cards || get.mode() == "guozhan" || get.type(card) != "basic" || !(game.online ? player == _status.currentPhase : player.isPhaseUsing())) return;
for (var i of card.cards) {
if (i.hasGaintag("zhuosheng")) return Infinity;
}
},
aiOrder: function (player, card, num) {
- if (
- get.itemtype(card) == "card" &&
- card.hasGaintag("zhuosheng") &&
- get.type(card) == "basic"
- )
- return num - 0.1;
+ if (get.itemtype(card) == "card" && card.hasGaintag("zhuosheng") && get.type(card) == "basic") return num - 0.1;
},
},
trigger: { player: "useCard2" },
@@ -3261,11 +2765,7 @@ game.import("character", function () {
if (event.targets && !info.multitarget) {
if (
game.hasPlayer(function (current) {
- return (
- !event.targets.includes(current) &&
- lib.filter.targetEnabled2(event.card, player, current) &&
- lib.filter.targetInRange(event.card, player, current)
- );
+ return !event.targets.includes(current) && lib.filter.targetEnabled2(event.card, player, current) && lib.filter.targetInRange(event.card, player, current);
})
) {
return true;
@@ -3280,19 +2780,13 @@ game.import("character", function () {
.chooseTarget(get.prompt("zhuosheng"), function (card, player, target) {
var player = _status.event.player;
if (_status.event.targets.includes(target)) return true;
- return (
- lib.filter.targetEnabled2(_status.event.card, player, target) &&
- lib.filter.targetInRange(_status.event.card, player, target)
- );
+ return lib.filter.targetEnabled2(_status.event.card, player, target) && lib.filter.targetInRange(_status.event.card, player, target);
})
.set("prompt2", prompt2)
.set("ai", function (target) {
var trigger = _status.event.getTrigger();
var player = _status.event.player;
- return (
- get.effect(target, trigger.card, player, player) *
- (_status.event.targets.includes(target) ? -1 : 1)
- );
+ return get.effect(target, trigger.card, player, player) * (_status.event.targets.includes(target) ? -1 : 1);
})
.set("targets", trigger.targets)
.set("card", trigger.card);
@@ -3306,8 +2800,7 @@ game.import("character", function () {
"step 2";
if (event.targets) {
player.logSkill("zhuosheng", event.targets);
- if (trigger.targets.includes(event.targets[0]))
- trigger.targets.removeArray(event.targets);
+ if (trigger.targets.includes(event.targets[0])) trigger.targets.removeArray(event.targets);
else trigger.targets.addArray(event.targets);
}
},
@@ -3318,9 +2811,7 @@ game.import("character", function () {
audio: "zhuosheng",
trigger: { player: "useCard" },
filter: function (event, player) {
- return (
- get.type(event.card) == "equip" && lib.skill.zhuosheng.filterx(event, player)
- );
+ return get.type(event.card) == "equip" && lib.skill.zhuosheng.filterx(event, player);
},
frequent: true,
prompt: "是否发动【擢升】摸一张牌?",
@@ -3335,18 +2826,12 @@ game.import("character", function () {
silent: true,
firstDo: true,
filter: function (event, player) {
- return (
- get.mode() != "guozhan" &&
- get.type(event.card) == "basic" &&
- lib.skill.zhuosheng.filterx(event, player) &&
- event.addCount !== false
- );
+ return get.mode() != "guozhan" && get.type(event.card) == "basic" && lib.skill.zhuosheng.filterx(event, player) && event.addCount !== false;
},
content: function () {
trigger.addCount = false;
var stat = player.getStat();
- if (stat && stat.card && stat.card[trigger.card.name])
- stat.card[trigger.card.name]--;
+ if (stat && stat.card && stat.card[trigger.card.name]) stat.card[trigger.card.name]--;
},
},
},
@@ -3377,20 +2862,10 @@ game.import("character", function () {
if (!lib.suit.includes(suit) || !lib.skill.quanbian.hasHand(event)) return false;
return (
player.getHistory("useCard", function (evt) {
- return (
- evt != event &&
- get.suit(evt.card) == suit &&
- lib.skill.quanbian.hasHand(evt) &&
- evt.getParent("phaseUse") == phase
- );
+ return evt != event && get.suit(evt.card) == suit && lib.skill.quanbian.hasHand(evt) && evt.getParent("phaseUse") == phase;
}).length +
player.getHistory("respond", function (evt) {
- return (
- evt != event &&
- get.suit(evt.card) == suit &&
- lib.skill.quanbian.hasHand(evt) &&
- evt.getParent("phaseUse") == phase
- );
+ return evt != event && get.suit(evt.card) == suit && lib.skill.quanbian.hasHand(evt) && evt.getParent("phaseUse") == phase;
}).length ==
0
);
@@ -3400,9 +2875,7 @@ game.import("character", function () {
var cards = get.cards(Math.min(5, player.maxHp));
game.cardsGotoOrdering(cards);
var suit = get.suit(trigger.card);
- var next = player.chooseToMove(
- "权变:获得一张不为" + get.translation(suit) + "花色的牌并排列其他牌"
- );
+ var next = player.chooseToMove("权变:获得一张不为" + get.translation(suit) + "花色的牌并排列其他牌");
next.set("suit", suit);
next.set("list", [["牌堆顶", cards], ["获得"]]);
next.set("filterMove", function (from, to, moved) {
@@ -3459,11 +2932,7 @@ game.import("character", function () {
charlotte: true,
filter: function (event, player) {
if (event.name === "phaseUse") return true;
- return (
- player.isPhaseUsing() &&
- lib.skill.quanbian.hasHand(event) &&
- get.type(event.card) != "equip"
- );
+ return player.isPhaseUsing() && lib.skill.quanbian.hasHand(event) && get.type(event.card) != "equip";
},
content: function () {
var stat = player.getStat("skill");
@@ -3477,13 +2946,7 @@ game.import("character", function () {
mod: {
cardEnabled2: function (card, player) {
var stat = player.getStat("skill");
- if (
- stat.xinquanbian &&
- stat.xinquanbian >= player.maxHp &&
- get.position(card) == "h" &&
- get.type(card, player) != "equip"
- )
- return false;
+ if (stat.xinquanbian && stat.xinquanbian >= player.maxHp && get.position(card) == "h" && get.type(card, player) != "equip") return false;
},
},
},
@@ -3535,12 +2998,7 @@ game.import("character", function () {
return get.name(card) === "tao" || get.name(card) === "jiu";
}),
att = get.attitude(_status.event.player, event.player),
- eff = get.damageEffect(
- event.player,
- player,
- _status.event.player,
- get.natureList(event)
- ),
+ eff = get.damageEffect(event.player, player, _status.event.player, get.natureList(event)),
fd = event.player.hasSkillTag("filterDamage", null, {
player: player,
card: event.card,
@@ -3549,10 +3007,7 @@ game.import("character", function () {
if (player.storage.tairan2) hp -= player.storage.tairan2;
if (eff <= 0 || fd || att >= -2 || Math.abs(hp) <= 1) return false;
if (hp > 2 || (eff > 0 && event.player.isLinked() && event.hasNature())) return true;
- return (
- !event.player.countCards("hs") ||
- (event.player.hp > 2 * event.num && !event.player.hasSkillTag("maixie"))
- );
+ return !event.player.countCards("hs") || (event.player.hp > 2 * event.num && !event.player.hasSkillTag("maixie"));
},
logTarget: "player",
content: function () {
@@ -3564,13 +3019,7 @@ game.import("character", function () {
ai: {
damageBonus: true,
skillTagFilter: function (player, tag, arg) {
- return (
- arg &&
- arg.target &&
- arg.target.hp > 1 &&
- player.hp > 1 &&
- get.attitude(player, arg.target) < -2
- );
+ return arg && arg.target && arg.target.hp > 1 && player.hp > 1 && get.attitude(player, arg.target) < -2;
},
},
},
@@ -3615,11 +3064,7 @@ game.import("character", function () {
if (player.group != "jin") return false;
if (player.countCards("h", lib.skill.ruilve2.filterCard) == 0) return false;
return game.hasPlayer(function (target) {
- return (
- target != player &&
- target.hasZhuSkill("ruilve", player) &&
- !target.hasSkill("ruilve3")
- );
+ return target != player && target.hasZhuSkill("ruilve", player) && !target.hasSkill("ruilve3");
});
},
filterCard: function (card) {
@@ -3629,11 +3074,7 @@ game.import("character", function () {
},
visible: true,
filterTarget: function (card, player, target) {
- return (
- target != player &&
- target.hasZhuSkill("ruilve", player) &&
- !target.hasSkill("ruilve3")
- );
+ return target != player && target.hasZhuSkill("ruilve", player) && !target.hasSkill("ruilve3");
},
content: function () {
player.give(cards, target);
@@ -3666,10 +3107,7 @@ game.import("character", function () {
player.recover(num);
}
"step 1";
- if (player.countCards("h") < player.maxHp)
- player.drawTo(Math.min(player.maxHp, 5 + player.countCards("h"))).gaintag = [
- "tairan",
- ];
+ if (player.countCards("h") < player.maxHp) player.drawTo(Math.min(player.maxHp, 5 + player.countCards("h"))).gaintag = ["tairan"];
},
},
tairan2: {
@@ -3679,11 +3117,7 @@ game.import("character", function () {
},
aiValue: function (player, card, num) {
if (card.hasGaintag && card.hasGaintag("tairan")) {
- if (
- card.name !== "wuxie" &&
- (get.type(card) === "basic" || get.type(card, "trick") === "trick")
- )
- return num / 64;
+ if (card.name !== "wuxie" && (get.type(card) === "basic" || get.type(card, "trick") === "trick")) return num / 64;
return num / 8;
}
},
@@ -3726,8 +3160,7 @@ game.import("character", function () {
event.card = card;
player.gain(card, "gain2");
"step 1";
- if (player.getCards("h").includes(card) && get.subtype(card) == "equip5")
- player.chooseUseTarget(card).nopopup = true;
+ if (player.getCards("h").includes(card) && get.subtype(card) == "equip5") player.chooseUseTarget(card).nopopup = true;
},
},
jyishi: {
@@ -3740,8 +3173,7 @@ game.import("character", function () {
preHidden: true,
filter: function (event, player) {
var target = _status.currentPhase;
- if (!target || !target.isIn() || event.type != "discard" || !target.isPhaseUsing())
- return false;
+ if (!target || !target.isIn() || event.type != "discard" || !target.isPhaseUsing()) return false;
if (target == player) return false;
var evt = event.getl(target);
for (var i of evt.hs) {
@@ -3761,8 +3193,7 @@ game.import("character", function () {
.set("ai", function (button) {
var card = button.link;
var source = _status.event.source;
- if (get.attitude(player, source) > 0)
- return Math.max(1, source.getUseValue(card, null, true));
+ if (get.attitude(player, source) > 0) return Math.max(1, source.getUseValue(card, null, true));
var cards = _status.event.getParent().cards.slice(0);
if (cards.length == 1) return -get.value(card);
cards.remove(card);
@@ -3805,13 +3236,7 @@ game.import("character", function () {
} else event.finish();
"step 2";
var num = Math.floor(player.countCards("h") / 2);
- if (num && target.isAlive())
- player.chooseCard(
- "h",
- num,
- true,
- "交给" + get.translation(target) + get.cnNumber(num) + "张牌"
- );
+ if (num && target.isAlive()) player.chooseCard("h", num, true, "交给" + get.translation(target) + get.cnNumber(num) + "张牌");
else event.finish();
"step 3";
if (result.bool && result.cards && result.cards.length) player.give(result.cards, target);
@@ -3835,13 +3260,7 @@ game.import("character", function () {
hiddenSkill: true,
filter: function (event, player) {
var target = _status.currentPhase;
- return (
- player != target &&
- target &&
- target.isAlive() &&
- event.toShow &&
- event.toShow.includes("jin_simazhao")
- );
+ return player != target && target && target.isAlive() && event.toShow && event.toShow.includes("jin_simazhao");
},
content: function () {
player.addTempSkill("tuishi2");
@@ -3888,20 +3307,12 @@ game.import("character", function () {
"step 2";
target.chooseToUse({
preTarget: event.target2,
- prompt:
- "请对" +
- get.translation(event.target2) +
- "使用一张【杀】,或受到来自" +
- get.translation(player) +
- "的1点伤害",
+ prompt: "请对" + get.translation(event.target2) + "使用一张【杀】,或受到来自" + get.translation(player) + "的1点伤害",
filterCard: function (card, player) {
return get.name(card) == "sha" && lib.filter.filterCard.apply(this, arguments);
},
filterTarget: function (card, player, target) {
- return (
- target == _status.event.preTarget &&
- lib.filter.filterTarget.apply(this, arguments)
- );
+ return target == _status.event.preTarget && lib.filter.filterTarget.apply(this, arguments);
},
addCount: false,
});
@@ -3916,10 +3327,7 @@ game.import("character", function () {
"step 0";
player.choosePlayerCard(target, "h", true);
"step 1";
- player.showCards(
- result.cards,
- get.translation(player) + "对" + get.translation(target) + "发动了【筹伐】"
- );
+ player.showCards(result.cards, get.translation(player) + "对" + get.translation(target) + "发动了【筹伐】");
var type = get.type2(result.cards[0], target),
hs = target.getCards("h", function (card) {
return card != result.cards[0] && get.type2(card, target) != type;
@@ -4007,13 +3415,7 @@ game.import("character", function () {
onremove: true,
trigger: {
player: "loseAfter",
- global: [
- "equipAfter",
- "addJudgeAfter",
- "gainAfter",
- "loseAsyncAfter",
- "addToExpansionAfter",
- ],
+ global: ["equipAfter", "addJudgeAfter", "gainAfter", "loseAsyncAfter", "addToExpansionAfter"],
},
forced: true,
charlotte: true,
@@ -4059,19 +3461,17 @@ game.import("character", function () {
)
event._result = { bool: false };
else
- player
- .chooseTarget(filterTarget, "弃置一名其他角色的一张牌或摸一张牌")
- .set("ai", function (target) {
- var att = get.attitude(player, target);
- if (att >= 0) return 0;
- if (
- target.countCards("he", function (card) {
- return get.value(card) > 5;
- })
- )
- return -att;
- return 0;
- });
+ player.chooseTarget(filterTarget, "弃置一名其他角色的一张牌或摸一张牌").set("ai", function (target) {
+ var att = get.attitude(player, target);
+ if (att >= 0) return 0;
+ if (
+ target.countCards("he", function (card) {
+ return get.value(card) > 5;
+ })
+ )
+ return -att;
+ return 0;
+ });
"step 2";
if (!result.bool) {
player.logSkill("zhaoran2");
@@ -4108,13 +3508,7 @@ game.import("character", function () {
if (!from.hasZhuSkill("chengwu") || from._chengwu) return;
from._chengwu = true;
var bool = game.hasPlayer(function (current) {
- return (
- current != from &&
- current != to &&
- current.group == "jin" &&
- from.hasZhuSkill("chengwu", current) &&
- current.inRange(to)
- );
+ return current != from && current != to && current.group == "jin" && from.hasZhuSkill("chengwu", current) && current.inRange(to);
});
delete from._chengwu;
if (bool) return true;
@@ -4167,11 +3561,7 @@ game.import("character", function () {
if (num1 == 0) num2++;
else num1--;
}
- event.cards = [
- event.card,
- ui.cardPile.childNodes[num1],
- ui.cardPile.childNodes[num2],
- ];
+ event.cards = [event.card, ui.cardPile.childNodes[num1], ui.cardPile.childNodes[num2]];
}
game.updateRoundNumber();
event.cards.randomSort();
@@ -4192,9 +3582,7 @@ game.import("character", function () {
"step 1";
var func = function (id, target) {
var dialog = get.idDialog(id);
- if (dialog)
- dialog.content.firstChild.innerHTML =
- "猜猜哪张是" + get.translation(target) + "的手牌?";
+ if (dialog) dialog.content.firstChild.innerHTML = "猜猜哪张是" + get.translation(target) + "的手牌?";
};
if (player == game.me) func(event.videoId, target);
else if (player.isOnline()) player.send(func, event.videoId, target);
@@ -4361,12 +3749,7 @@ game.import("character", function () {
forced: true,
filter: function (event, player) {
if (player._xijue) return false;
- if (get.mode() == "guozhan")
- return (
- event.name == "showCharacter" &&
- event.toShow &&
- event.toShow.includes("gz_zhanghuyuechen")
- );
+ if (get.mode() == "guozhan") return event.name == "showCharacter" && event.toShow && event.toShow.includes("gz_zhanghuyuechen");
return event.name != "showCharacter" && (event.name != "phase" || game.phaseNumber == 0);
},
content: function () {
@@ -4468,16 +3851,10 @@ game.import("character", function () {
if (get.damageEffect(trigger.player, player, player) <= 0) {
nono = true;
}
- var next = player.chooseToDiscard(
- `是否弃置一枚“爵”和一张${
- get.mode() == "guozhan" ? "基本" : "手"
- }牌,对${get.translation(trigger.player)}发动【骁果】?`,
- "h",
- function (card, player) {
- if (get.mode() != "guozhan") return true;
- return get.type(card, player) == "basic";
- }
- );
+ var next = player.chooseToDiscard(`是否弃置一枚“爵”和一张${get.mode() == "guozhan" ? "基本" : "手"}牌,对${get.translation(trigger.player)}发动【骁果】?`, "h", function (card, player) {
+ if (get.mode() != "guozhan") return true;
+ return get.type(card, player) == "basic";
+ });
next.set("ai", function (card) {
if (_status.event.nono) return 0;
return 8 - get.useful(card);
@@ -4489,11 +3866,7 @@ game.import("character", function () {
player.removeMark("xijue", 1);
var nono = get.damageEffect(trigger.player, player, trigger.player) >= 0;
trigger.player
- .chooseToDiscard(
- "he",
- "弃置一张装备牌并令" + get.translation(player) + "摸一张牌,或受到1点伤害",
- { type: "equip" }
- )
+ .chooseToDiscard("he", "弃置一张装备牌并令" + get.translation(player) + "摸一张牌,或受到1点伤害", { type: "equip" })
.set("ai", function (card) {
if (_status.event.nono) {
return 0;
@@ -4525,12 +3898,7 @@ game.import("character", function () {
},
preHidden: true,
prompt: function () {
- return (
- get.prompt("huishi") +
- "(当前牌堆尾数:" +
- (ui.cardPile.childElementCount % 10) +
- ")"
- );
+ return get.prompt("huishi") + "(当前牌堆尾数:" + (ui.cardPile.childElementCount % 10) + ")";
},
check: function (event, player) {
return ui.cardPile.childElementCount % 10 > 3;
@@ -4540,10 +3908,7 @@ game.import("character", function () {
trigger.changeToZero();
var cards = game.cardsGotoOrdering(get.cards(ui.cardPile.childElementCount % 10)).cards;
var num = Math.ceil(cards.length / 2);
- var next = player.chooseToMove(
- "慧识:将" + get.cnNumber(num) + "张牌置于牌堆底并获得其余的牌",
- true
- );
+ var next = player.chooseToMove("慧识:将" + get.cnNumber(num) + "张牌置于牌堆底并获得其余的牌", true);
next.set("list", [["牌堆顶的展示牌", cards], ["牌堆底"]]);
next.set("filterMove", function (from, to, moved) {
if (moved[0].includes(from) && to == 1) return moved[1].length < _status.event.num;
@@ -4574,52 +3939,23 @@ game.import("character", function () {
preHidden: true,
filter: function (event, player) {
var target = event.player;
- return (
- target != player &&
- target.isIn() &&
- !target.storage.nohp &&
- target.hp + target.countCards("h") >= ui.cardPile.childElementCount % 10 &&
- player.countCards("he") > 0 &&
- player.canUse({ name: "sha", nature: "ice" }, target, false)
- );
+ return target != player && target.isIn() && !target.storage.nohp && target.hp + target.countCards("h") >= ui.cardPile.childElementCount % 10 && player.countCards("he") > 0 && player.canUse({ name: "sha", nature: "ice" }, target, false);
},
content: function () {
"step 0";
player
- .chooseCard(
- "he",
- get.prompt("qingleng", trigger.player),
- "将一张牌当做冰【杀】对其使用",
- function (card, player) {
- return player.canUse(
- get.autoViewAs({ name: "sha", nature: "ice" }, [card]),
- _status.event.target,
- false
- );
- }
- )
+ .chooseCard("he", get.prompt("qingleng", trigger.player), "将一张牌当做冰【杀】对其使用", function (card, player) {
+ return player.canUse(get.autoViewAs({ name: "sha", nature: "ice" }, [card]), _status.event.target, false);
+ })
.set("target", trigger.player)
.set("ai", function (card) {
- if (
- get.effect(
- _status.event.target,
- get.autoViewAs({ name: "sha", nature: "ice" }, [card]),
- player
- ) <= 0
- )
- return false;
+ if (get.effect(_status.event.target, get.autoViewAs({ name: "sha", nature: "ice" }, [card]), player) <= 0) return false;
return 6 - get.value(card);
})
.setHiddenSkill(event.name);
"step 1";
if (result.bool) {
- player.useCard(
- get.autoViewAs({ name: "sha", nature: "ice" }, result.cards),
- result.cards,
- false,
- trigger.player,
- "qingleng"
- );
+ player.useCard(get.autoViewAs({ name: "sha", nature: "ice" }, result.cards), result.cards, false, trigger.player, "qingleng");
if (!player.storage.qingleng || !player.storage.qingleng.includes(trigger.player)) {
player.draw();
player.markAuto("qingleng", [trigger.player]);
@@ -4653,8 +3989,7 @@ game.import("character", function () {
ai: {
effect: {
target: function (card, player, target) {
- if (get.tag(card, "damage") && !player.hasSkillTag("jueqing", false, target))
- return "zerotarget";
+ if (get.tag(card, "damage") && !player.hasSkillTag("jueqing", false, target)) return "zerotarget";
},
},
},
@@ -4699,35 +4034,22 @@ game.import("character", function () {
},
},
characterIntro: {
- zhanghuyuechen:
- "张虎,生卒年不详,雁门马邑(今山西朔城区大夫庄)人。三国时期曹魏将领。名将张辽之子。官至偏将军,袭封晋阳侯,有一子张统。乐綝(195~257年),字号不详,阳平郡卫国县(今河南省清丰县)人。三国时期曹魏将领,右将军乐进的儿子。果毅坚毅,袭封广昌亭侯,累迁扬州刺史。甘露二年,为叛乱的征东大将军诸葛诞所杀,追赠卫尉。",
+ zhanghuyuechen: "张虎,生卒年不详,雁门马邑(今山西朔城区大夫庄)人。三国时期曹魏将领。名将张辽之子。官至偏将军,袭封晋阳侯,有一子张统。乐綝(195~257年),字号不详,阳平郡卫国县(今河南省清丰县)人。三国时期曹魏将领,右将军乐进的儿子。果毅坚毅,袭封广昌亭侯,累迁扬州刺史。甘露二年,为叛乱的征东大将军诸葛诞所杀,追赠卫尉。",
duyu: "杜预(222年-285年),字元凯,京兆郡杜陵县(今陕西西安)人,中国魏晋时期军事家、经学家、律学家,曹魏散骑常侍杜恕之子。杜预初仕曹魏,任尚书郎,后成为权臣司马昭的幕僚,封丰乐亭侯。西晋建立后,历任河南尹、安西军司、秦州刺史、度支尚书等职。咸宁四年(278年)接替羊祜出任镇南大将军,镇守荆州。他积极备战,支持晋武帝司马炎对孙吴作战,并在咸宁五年(279年)成为晋灭吴之战的统帅之一。战后因功进封当阳县侯,仍镇荆州。太康五年(285年),杜预被征入朝,拜司隶校尉,途中于邓县逝世,终年六十三岁。获赠征南大将军、开府仪同三司,谥号为成。杜预耽思经籍,博学多通,多有建树,时誉为“杜武库”。著有《春秋左氏传集解》及《春秋释例》等。为明朝之前唯一一个同时进入文庙和武庙之人。",
- xiahouhui:
- "夏侯徽(211年-234年),字媛容,沛国谯县(今安徽亳州)人,司马师第一任妻子。征南大将军夏侯尚之女,母德阳乡主为大司马曹真之妹。夏侯徽与司马师之间,生有五个女儿。夏侯徽很有见识器度,每当司马师有什么想法时,都由她从旁策划协助。当时司马师之父司马懿位居上将重位,而他的儿子们都有雄才大略。夏侯徽深知司马师绝非曹魏忠臣,而司马师对出身曹魏家族的夏侯徽也非常顾忌。青龙二年(234年),正逢“大疫”、“大病”之年,夏侯徽被司马师毒杀,时年二十四岁,死后葬于峻平陵。西晋建国后,追谥夏侯徽为景怀皇后。",
+ xiahouhui: "夏侯徽(211年-234年),字媛容,沛国谯县(今安徽亳州)人,司马师第一任妻子。征南大将军夏侯尚之女,母德阳乡主为大司马曹真之妹。夏侯徽与司马师之间,生有五个女儿。夏侯徽很有见识器度,每当司马师有什么想法时,都由她从旁策划协助。当时司马师之父司马懿位居上将重位,而他的儿子们都有雄才大略。夏侯徽深知司马师绝非曹魏忠臣,而司马师对出身曹魏家族的夏侯徽也非常顾忌。青龙二年(234年),正逢“大疫”、“大病”之年,夏侯徽被司马师毒杀,时年二十四岁,死后葬于峻平陵。西晋建国后,追谥夏侯徽为景怀皇后。",
shibao: "石苞(?~273年),字仲容,渤海南皮(今河北省南皮县)人。三国时曹魏至西晋重要将领,西晋开国功臣。西晋建立后,历任大司马、侍中、司徒等职,封乐陵郡公,卒后谥号为“武”。",
- simazhou:
- "司马伷(227年~283年6月12日),字子将,河内郡温县(今河南省温县)人。西晋宗室、将领,晋宣帝司马懿第三子,伏太妃所生。晋景帝司马师、文帝司马昭的同父异母弟,晋武帝司马炎的叔父。司马伷少有才气,在曹魏历任宁朔将军、散骑常侍、征虏将军等职,先后受封南安亭侯、东武乡侯,五等爵制建立后,改封南皮伯。西晋建立后,获封东莞郡王,入朝任尚书右仆射、抚军将军,出外拜镇东大将军。后改封琅邪王,加开府仪同三司。西晋伐吴时,率军出涂中,孙皓向他投降并奉上玉玺。战后因功拜大将军,增邑三千户。太康四年(283年),司马伷去世,享年五十七岁。谥号为武,世称“琅邪武王”。著有《周官宁朔新书》八卷,今已亡佚。",
- huangzu:
- "黄祖(?-208年),东汉末年将领。刘表任荆州牧时,黄祖出任江夏太守。初平二年(191年),黄祖在与长沙太守孙坚交战时,其部下将孙坚射死,因此与孙家结下仇怨。之后,黄祖多次率部与东吴军队交战,射杀凌操、徐琨等人。建安十三年(208年),在与孙权的交战中,兵败被杀。",
- cheliji:
- "彻里吉是历史小说《三国演义》中的虚构人物,西羌国王。蜀相诸葛亮伐魏,魏都督曹真驰书赴羌,国王彻里吉即命雅丹丞相与越吉元帅起羌兵一十五万、并战车直扣西平关。后军大败,越吉亡,雅丹被俘,亮将所获羌兵及车马器械,尽给还雅丹,俱放回国。彻里吉感蜀恩义,与之结盟。正史中没有关于彻里吉的记载。",
- weiguan:
- "卫瓘(220年-291年),字伯玉。河东郡安邑县(今山西省夏县)人。三国曹魏后期至西晋初年重臣、书法家,曹魏尚书卫觊之子。卫瓘出身官宦世家,年轻时仕官于曹魏,历任尚书郎、散骑常侍、侍中、廷尉等职。后以镇西军司、监军身份参与伐蜀战争。蜀汉亡后,与钟会一道逮捕邓艾;钟会谋反时,又成功平息叛乱,命田续杀邓艾父子。回师后转任督徐州诸军事、镇东将军,封菑阳侯。西晋建立后,历任青州、幽州刺史、征东大将军等职,成功化解北方边境威胁,因功进爵菑阳公。后入朝为尚书令、侍中,又升任司空,领太子少傅。后逊位,拜太保。晋惠帝即位后,与贾皇后对立,终在政变中满门遇害,享年七十二岁。卫瓘善隶书及章草。不仅兼工各体,还能学古人之长,是颇有创意的书法家。唐朝张怀瓘《书断》中评其章草为“神品”。",
- zhongyan:
- " 钟琰 (?—?年)颍川人,王浑之妻。生卒年不详,约魏末晋初间前后在世。王浑的妻子钟琰,是颍川人,为魏太傅钟繇的曾孙女,父亲钟徽,为黄门郎。她平时广泛阅读各种书籍,因此几岁的时候就能撰写文章。她聪慧弘雅,善于啸咏,她的礼仪法度,为中表所推崇,她写有文集五卷。",
- yangyan:
- "杨艳(238年-274年8月25日),字琼芝,弘农郡华阴县(今陕西省华阴市)人,晋武帝司马炎第一任皇后,曹魏通事郎杨炳之女。自幼父母双亡,为舅舅赵俊所养,跟随继母段氏生活。聪明贤慧,善于书法,天生丽质,娴熟女红,嫁给了世子司马炎。泰始元年(265年),晋武帝即位,建立西晋。泰始二年(266年),杨艳受册为皇后,深得晋武帝宠幸,生下三子三女,包括晋惠帝司马衷。泰始十年(274年),去世,时年三十七,陪葬于峻阳陵,谥号武元皇后。",
- yangzhi:
- "杨芷(259年-292年3月6日),字季兰,小字男胤,弘农郡华阴县(今陕西省华阴市)人,晋武帝司马炎第二任皇后,东汉太尉杨震幼子杨奉后裔,东汉末年东莱太守、蓩亭侯杨众曾孙女,西晋太傅杨骏与嫡妻庞氏之女,武元皇后杨艳堂妹。咸宁二年(276年),立为皇后,史称“婉嫕有妇德, 美映椒房”,得宠于晋武帝。生渤海殇王,早薨,之后再无生育。其父杨骏擅权引起皇后贾南风忌恨,贾南风联络汝南王司马亮、楚王司马玮发动政变,杀死杨骏,并唆使大臣上书状告杨芷谋反,让晋惠帝司马衷将其贬为庶人,押到金墉城居住。元康二年(292年),杨芷冻饿而死,谥号武悼皇后。",
+ simazhou: "司马伷(227年~283年6月12日),字子将,河内郡温县(今河南省温县)人。西晋宗室、将领,晋宣帝司马懿第三子,伏太妃所生。晋景帝司马师、文帝司马昭的同父异母弟,晋武帝司马炎的叔父。司马伷少有才气,在曹魏历任宁朔将军、散骑常侍、征虏将军等职,先后受封南安亭侯、东武乡侯,五等爵制建立后,改封南皮伯。西晋建立后,获封东莞郡王,入朝任尚书右仆射、抚军将军,出外拜镇东大将军。后改封琅邪王,加开府仪同三司。西晋伐吴时,率军出涂中,孙皓向他投降并奉上玉玺。战后因功拜大将军,增邑三千户。太康四年(283年),司马伷去世,享年五十七岁。谥号为武,世称“琅邪武王”。著有《周官宁朔新书》八卷,今已亡佚。",
+ huangzu: "黄祖(?-208年),东汉末年将领。刘表任荆州牧时,黄祖出任江夏太守。初平二年(191年),黄祖在与长沙太守孙坚交战时,其部下将孙坚射死,因此与孙家结下仇怨。之后,黄祖多次率部与东吴军队交战,射杀凌操、徐琨等人。建安十三年(208年),在与孙权的交战中,兵败被杀。",
+ cheliji: "彻里吉是历史小说《三国演义》中的虚构人物,西羌国王。蜀相诸葛亮伐魏,魏都督曹真驰书赴羌,国王彻里吉即命雅丹丞相与越吉元帅起羌兵一十五万、并战车直扣西平关。后军大败,越吉亡,雅丹被俘,亮将所获羌兵及车马器械,尽给还雅丹,俱放回国。彻里吉感蜀恩义,与之结盟。正史中没有关于彻里吉的记载。",
+ weiguan: "卫瓘(220年-291年),字伯玉。河东郡安邑县(今山西省夏县)人。三国曹魏后期至西晋初年重臣、书法家,曹魏尚书卫觊之子。卫瓘出身官宦世家,年轻时仕官于曹魏,历任尚书郎、散骑常侍、侍中、廷尉等职。后以镇西军司、监军身份参与伐蜀战争。蜀汉亡后,与钟会一道逮捕邓艾;钟会谋反时,又成功平息叛乱,命田续杀邓艾父子。回师后转任督徐州诸军事、镇东将军,封菑阳侯。西晋建立后,历任青州、幽州刺史、征东大将军等职,成功化解北方边境威胁,因功进爵菑阳公。后入朝为尚书令、侍中,又升任司空,领太子少傅。后逊位,拜太保。晋惠帝即位后,与贾皇后对立,终在政变中满门遇害,享年七十二岁。卫瓘善隶书及章草。不仅兼工各体,还能学古人之长,是颇有创意的书法家。唐朝张怀瓘《书断》中评其章草为“神品”。",
+ zhongyan: " 钟琰 (?—?年)颍川人,王浑之妻。生卒年不详,约魏末晋初间前后在世。王浑的妻子钟琰,是颍川人,为魏太傅钟繇的曾孙女,父亲钟徽,为黄门郎。她平时广泛阅读各种书籍,因此几岁的时候就能撰写文章。她聪慧弘雅,善于啸咏,她的礼仪法度,为中表所推崇,她写有文集五卷。",
+ yangyan: "杨艳(238年-274年8月25日),字琼芝,弘农郡华阴县(今陕西省华阴市)人,晋武帝司马炎第一任皇后,曹魏通事郎杨炳之女。自幼父母双亡,为舅舅赵俊所养,跟随继母段氏生活。聪明贤慧,善于书法,天生丽质,娴熟女红,嫁给了世子司马炎。泰始元年(265年),晋武帝即位,建立西晋。泰始二年(266年),杨艳受册为皇后,深得晋武帝宠幸,生下三子三女,包括晋惠帝司马衷。泰始十年(274年),去世,时年三十七,陪葬于峻阳陵,谥号武元皇后。",
+ yangzhi: "杨芷(259年-292年3月6日),字季兰,小字男胤,弘农郡华阴县(今陕西省华阴市)人,晋武帝司马炎第二任皇后,东汉太尉杨震幼子杨奉后裔,东汉末年东莱太守、蓩亭侯杨众曾孙女,西晋太傅杨骏与嫡妻庞氏之女,武元皇后杨艳堂妹。咸宁二年(276年),立为皇后,史称“婉嫕有妇德, 美映椒房”,得宠于晋武帝。生渤海殇王,早薨,之后再无生育。其父杨骏擅权引起皇后贾南风忌恨,贾南风联络汝南王司马亮、楚王司马玮发动政变,杀死杨骏,并唆使大臣上书状告杨芷谋反,让晋惠帝司马衷将其贬为庶人,押到金墉城居住。元康二年(292年),杨芷冻饿而死,谥号武悼皇后。",
xinchang: "辛敞(生卒年不详),字泰雍,陇西人氏,是曹魏时代官员。卫尉辛毗之子,辛宪英之弟。",
- xuangongzhu:
- "高陵宣公主(?—?)司马氏,晋宣帝司马懿第二女。司马氏下嫁杜预。其侄司马炎登基时,司马氏已经去世。泰始年间(265年—274年)追赠高陵公主。",
- jin_guohuai:
- "郭槐(237年-296年),字媛韶,太原阳曲(今山西太原)人,魏晋权臣贾充的妻子。父亲是曹魏城阳郡太守郭配,伯父是曹魏名将郭淮。出身太原郭氏。二十一岁时,嫁贾充作继室,生二女二子,长女贾南风,次女贾午,一子贾黎民。贾南风是西晋惠帝司马衷皇后,干预国政,专权误国,直接导致“八王之乱”和西晋亡国。",
- wangxiang:
- "王祥(184年,一作180年-268年4月30日),字休徵。琅邪临沂(今山东省临沂市西孝友村)人。三国曹魏及西晋时大臣。王祥于东汉末隐居二十年,在曹魏,先后任县令、大司农、司空、太尉等职,封爵睢陵侯。西晋建立,拜太保,进封睢陵公。泰始四年四月戊戌日(268年4月30日)去世,年八十五(一作八十九),谥号“元”。有《训子孙遗令》一文传世。王祥侍奉后母朱氏极孝,为传统文化中二十四孝之一“卧冰求鲤”的主人翁。",
- chengjichengcui:
- "成倅、成济(?~260年6月21日),扬州丹阳(今安徽省宣城市)人。三国时期曹魏将领。依附于司马氏家族,得到司马昭的心腹贾充指使,刺死魏帝曹髦。司马昭为平息众怒,将成倅、成济兄弟二人杀死。据《魏氏春秋》记载,成济兄弟不服罪,光着身子跑到屋顶,大骂司马昭,被军士从下乱箭射杀。",
+ xuangongzhu: "高陵宣公主(?—?)司马氏,晋宣帝司马懿第二女。司马氏下嫁杜预。其侄司马炎登基时,司马氏已经去世。泰始年间(265年—274年)追赠高陵公主。",
+ jin_guohuai: "郭槐(237年-296年),字媛韶,太原阳曲(今山西太原)人,魏晋权臣贾充的妻子。父亲是曹魏城阳郡太守郭配,伯父是曹魏名将郭淮。出身太原郭氏。二十一岁时,嫁贾充作继室,生二女二子,长女贾南风,次女贾午,一子贾黎民。贾南风是西晋惠帝司马衷皇后,干预国政,专权误国,直接导致“八王之乱”和西晋亡国。",
+ wangxiang: "王祥(184年,一作180年-268年4月30日),字休徵。琅邪临沂(今山东省临沂市西孝友村)人。三国曹魏及西晋时大臣。王祥于东汉末隐居二十年,在曹魏,先后任县令、大司农、司空、太尉等职,封爵睢陵侯。西晋建立,拜太保,进封睢陵公。泰始四年四月戊戌日(268年4月30日)去世,年八十五(一作八十九),谥号“元”。有《训子孙遗令》一文传世。王祥侍奉后母朱氏极孝,为传统文化中二十四孝之一“卧冰求鲤”的主人翁。",
+ chengjichengcui: "成倅、成济(?~260年6月21日),扬州丹阳(今安徽省宣城市)人。三国时期曹魏将领。依附于司马氏家族,得到司马昭的心腹贾充指使,刺死魏帝曹髦。司马昭为平息众怒,将成倅、成济兄弟二人杀死。据《魏氏春秋》记载,成济兄弟不服罪,光着身子跑到屋顶,大骂司马昭,被军士从下乱箭射杀。",
},
characterTitle: {},
characterFilter: {},
@@ -4749,11 +4071,9 @@ game.import("character", function () {
jin_zhangchunhua: "晋张春华",
jin_zhangchunhua_prefix: "晋",
huishi: "慧识",
- huishi_info:
- "摸牌阶段,你可以放弃摸牌,改为观看牌堆顶的X张牌,获得其中的一半(向下取整),然后将其余牌置入牌堆底。(X为牌堆数量的个位数)",
+ huishi_info: "摸牌阶段,你可以放弃摸牌,改为观看牌堆顶的X张牌,获得其中的一半(向下取整),然后将其余牌置入牌堆底。(X为牌堆数量的个位数)",
qingleng: "清冷",
- qingleng_info:
- "一名角色的回合结束时,若其体力值与手牌数之和不小于X,则你可将一张牌当无距离限制的冰属性【杀】对其使用(X为牌堆数量的个位数)。若这是你本局游戏内首次对其发动此技能,则你摸一张牌。",
+ qingleng_info: "一名角色的回合结束时,若其体力值与手牌数之和不小于X,则你可将一张牌当无距离限制的冰属性【杀】对其使用(X为牌堆数量的个位数)。若这是你本局游戏内首次对其发动此技能,则你摸一张牌。",
xuanmu: "宣穆",
xuanmu2: "宣穆",
xuanmu_info: "锁定技,隐匿技。你于其他角色的回合登场时,防止你受到的伤害直到回合结束。",
@@ -4762,32 +4082,24 @@ game.import("character", function () {
zhanghuyuechen: "张虎乐綝",
xijue: "袭爵",
xijue_gain: "袭爵",
- xijue_info:
- "锁定技,游戏开始时,你获得4枚“爵”。回合结束时,你获得X枚“爵”(X为你本回合内造成的伤害数)。你可弃置一枚“爵”并在合适的时机发动〖突袭〗和〖骁果〗。",
- xijue_info_guozhan:
- "锁定技,当你首次明置此武将牌时,你获得4枚“爵”。回合结束时,你获得X枚“爵”(X为你本回合内造成的伤害数)。你可弃置一枚“爵”并在合适的时机发动〖突袭〗和〖骁果〗。",
+ xijue_info: "锁定技,游戏开始时,你获得4枚“爵”。回合结束时,你获得X枚“爵”(X为你本回合内造成的伤害数)。你可弃置一枚“爵”并在合适的时机发动〖突袭〗和〖骁果〗。",
+ xijue_info_guozhan: "锁定技,当你首次明置此武将牌时,你获得4枚“爵”。回合结束时,你获得X枚“爵”(X为你本回合内造成的伤害数)。你可弃置一枚“爵”并在合适的时机发动〖突袭〗和〖骁果〗。",
xijue_tuxi: "突袭",
xijue_tuxi_info: "摸牌阶段摸牌时,你可以少摸任意张牌,然后获得等量的角色的各一张手牌。",
xijue_tuxi_info_guozhan: "摸牌阶段摸牌时,你可以少摸至多两张牌,然后获得等量的角色的各一张手牌。",
xijue_xiaoguo: "骁果",
- xijue_xiaoguo_info:
- "其他角色的结束阶段开始时,你可以弃置一张手牌,令该角色选择一项:1.弃置一张装备牌,然后你摸一张牌;2.受到你对其造成的1点伤害。",
- xijue_xiaoguo_info_guozhan:
- "其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌;2.受到你对其造成的1点伤害。",
+ xijue_xiaoguo_info: "其他角色的结束阶段开始时,你可以弃置一张手牌,令该角色选择一项:1.弃置一张装备牌,然后你摸一张牌;2.受到你对其造成的1点伤害。",
+ xijue_xiaoguo_info_guozhan: "其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌;2.受到你对其造成的1点伤害。",
gz_duyu: "杜预",
duyu: "晋杜预",
duyu_prefix: "晋",
sanchen: "三陈",
- sanchen_info:
- "出牌阶段限一次。你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且〖三陈〗于此阶段内使用次数上限+1。",
- sanchen_info_guozhan:
- "出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗直到回合结束。否则你本阶段内不能再发动〖三陈〗。",
+ sanchen_info: "出牌阶段限一次。你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且〖三陈〗于此阶段内使用次数上限+1。",
+ sanchen_info_guozhan: "出牌阶段,你可选择一名本回合内未选择过的角色。其摸三张牌,然后弃置三张牌。若其未以此法弃置牌或以此法弃置的牌的类别均不相同,则其摸一张牌且你获得技能〖破竹〗直到回合结束。否则你本阶段内不能再发动〖三陈〗。",
zhaotao: "诏讨",
- zhaotao_info:
- "觉醒技,准备阶段,若你本局游戏内发动〖三陈〗的次数大于2,则你减1点体力上限并获得〖破竹〗。",
+ zhaotao_info: "觉醒技,准备阶段,若你本局游戏内发动〖三陈〗的次数大于2,则你减1点体力上限并获得〖破竹〗。",
pozhu: "破竹",
- pozhu_info:
- "出牌阶段,你可以将一张手牌当做【出其不意】使用。若你未因此牌造成过伤害,则你不能再发动〖破竹〗直到回合结束。",
+ pozhu_info: "出牌阶段,你可以将一张手牌当做【出其不意】使用。若你未因此牌造成过伤害,则你不能再发动〖破竹〗直到回合结束。",
pozhu_info_guozhan: "出牌阶段限一次,你可以将一张手牌当做【出其不意】使用。",
jin_wangyuanji: "晋王元姬",
jin_wangyuanji_prefix: "晋",
@@ -4795,40 +4107,31 @@ game.import("character", function () {
shiren_info: "隐匿技。你于其他角色的回合内登场时,若其有手牌,则你可对其发动〖宴戏〗。",
yanxi: "宴戏",
yanxi2: "宴戏",
- yanxi_info:
- "出牌阶段,你可选择一名有手牌的角色。你将该角色的一张随机手牌与牌堆顶的两张牌混合后展示,并选择其中一张。若你以此法选择的是该角色的手牌,则你获得这三张牌。否则你获得选择的牌。你通过〖宴戏〗得到的牌,不计入当前回合的手牌上限。",
- yanxi_info_guozhan:
- "出牌阶段,你可选择一名有手牌的角色。你将该角色的一张随机手牌与牌堆中的两张随机牌混合后展示,并选择其中一张。若你以此法选择的是该角色的手牌,则你获得这三张牌。否则你获得选择的牌。你通过〖宴戏〗得到的牌,不计入当前回合的手牌上限。",
+ yanxi_info: "出牌阶段,你可选择一名有手牌的角色。你将该角色的一张随机手牌与牌堆顶的两张牌混合后展示,并选择其中一张。若你以此法选择的是该角色的手牌,则你获得这三张牌。否则你获得选择的牌。你通过〖宴戏〗得到的牌,不计入当前回合的手牌上限。",
+ yanxi_info_guozhan: "出牌阶段,你可选择一名有手牌的角色。你将该角色的一张随机手牌与牌堆中的两张随机牌混合后展示,并选择其中一张。若你以此法选择的是该角色的手牌,则你获得这三张牌。否则你获得选择的牌。你通过〖宴戏〗得到的牌,不计入当前回合的手牌上限。",
jin_simazhao: "晋司马昭",
jin_simazhao_prefix: "晋",
tuishi: "推弑",
- tuishi_info:
- "隐匿技,你于其他角色A的回合内登场时,可于此回合结束时选择其攻击范围内的一名角色B。A选择一项:①对B使用一张【杀】。②你对A造成1点伤害。",
+ tuishi_info: "隐匿技,你于其他角色A的回合内登场时,可于此回合结束时选择其攻击范围内的一名角色B。A选择一项:①对B使用一张【杀】。②你对A造成1点伤害。",
choufa: "筹伐",
choufa2: "筹伐",
- choufa_info:
- "出牌阶段限一次,你可展示一名其他角色的一张手牌并记录其类型A。你令其原类型不为A的手牌的牌名均视为【杀】且均视为无属性,直到其回合结束。",
+ choufa_info: "出牌阶段限一次,你可展示一名其他角色的一张手牌并记录其类型A。你令其原类型不为A的手牌的牌名均视为【杀】且均视为无属性,直到其回合结束。",
xinchoufa: "筹伐",
- xinchoufa_info:
- "出牌阶段限一次,你可展示一名其他角色的一张手牌A。你令其所有类型与A不同的手牌的牌名均视为【杀】且均视为无属性,直到其回合结束。",
+ xinchoufa_info: "出牌阶段限一次,你可展示一名其他角色的一张手牌A。你令其所有类型与A不同的手牌的牌名均视为【杀】且均视为无属性,直到其回合结束。",
zhaoran: "昭然",
zhaoran2: "昭然",
- zhaoran_info:
- "出牌阶段开始时,你可令你的手牌对其他角色可见直到出牌阶段结束。若如此做,当你于此阶段内失去一张手牌后,若你的手牌里没有与此牌花色相同的牌且你本回合内未因该花色的牌触发过此效果,则你选择一项:①摸一张牌。②弃置一名其他角色的一张牌。",
+ zhaoran_info: "出牌阶段开始时,你可令你的手牌对其他角色可见直到出牌阶段结束。若如此做,当你于此阶段内失去一张手牌后,若你的手牌里没有与此牌花色相同的牌且你本回合内未因该花色的牌触发过此效果,则你选择一项:①摸一张牌。②弃置一名其他角色的一张牌。",
visible_zhaoran: "invisible",
chengwu: "成务",
chengwu_info: "主公技,锁定技,其他晋势力角色攻击范围内的角色视为在你的攻击范围内。",
jin_xiahouhui: "晋夏侯徽",
jin_xiahouhui_prefix: "晋",
baoqie: "宝箧",
- baoqie_info:
- "隐匿技,锁定技。你登场后,从牌堆或弃牌堆中获得一张不为赠物的宝物牌。若此牌在你的手牌区内为宝物牌,则你可以使用此牌。",
+ baoqie_info: "隐匿技,锁定技。你登场后,从牌堆或弃牌堆中获得一张不为赠物的宝物牌。若此牌在你的手牌区内为宝物牌,则你可以使用此牌。",
jyishi: "宜室",
- jyishi_info:
- "每回合限一次,当有其他角色于其出牌阶段内因弃置而失去手牌后,你可令其获得这些牌中位于弃牌堆的一张,然后你获得其余位于弃牌堆的牌。",
+ jyishi_info: "每回合限一次,当有其他角色于其出牌阶段内因弃置而失去手牌后,你可令其获得这些牌中位于弃牌堆的一张,然后你获得其余位于弃牌堆的牌。",
shiduo: "识度",
- shiduo_info:
- "出牌阶段限一次,你可以与一名其他角色拼点。若你赢,你获得其所有手牌。然后你交给其X张手牌(X为你手牌数的一半,向下取整)。",
+ shiduo_info: "出牌阶段限一次,你可以与一名其他角色拼点。若你赢,你获得其所有手牌。然后你交给其X张手牌(X为你手牌数的一半,向下取整)。",
jin_simashi: "晋司马师",
jin_simashi_prefix: "晋",
taoyin: "韬隐",
@@ -4836,16 +4139,13 @@ game.import("character", function () {
taoyin_info: "隐匿技,当你登场后,若当前回合角色存在且不是你,则你可令该角色本回合的手牌上限-2。",
yimie: "夷灭",
yimie2: "夷灭",
- yimie_info:
- "每回合限一次,当你对其他角色造成伤害时,若伤害值X小于Y,则你可失去1点体力,将伤害值改为Y。此伤害结算结束后,其回复(Y-X)点体力(Y为其体力值)。",
+ yimie_info: "每回合限一次,当你对其他角色造成伤害时,若伤害值X小于Y,则你可失去1点体力,将伤害值改为Y。此伤害结算结束后,其回复(Y-X)点体力(Y为其体力值)。",
ruilve: "睿略",
ruilve2: "睿略",
- ruilve_info:
- "主公技,其他晋势力角色的出牌阶段限一次,该角色可以将一张带有伤害标签的基本牌或锦囊牌交给你。",
+ ruilve_info: "主公技,其他晋势力角色的出牌阶段限一次,该角色可以将一张带有伤害标签的基本牌或锦囊牌交给你。",
tairan: "泰然",
tairan2: "泰然",
- tairan_info:
- "锁定技,回合结束时,你将体力回复至体力上限,并将手牌摸至体力上限(称为“泰然”牌,且至多摸五张)。然后你的下一个出牌阶段开始时,你失去上一次以此法回复的体力值的体力,弃置所有“泰然”牌。",
+ tairan_info: "锁定技,回合结束时,你将体力回复至体力上限,并将手牌摸至体力上限(称为“泰然”牌,且至多摸五张)。然后你的下一个出牌阶段开始时,你失去上一次以此法回复的体力值的体力,弃置所有“泰然”牌。",
gz_jin_simayi: "司马懿",
gz_jin_zhangchunhua: "张春华",
gz_jin_simazhao: "司马昭",
@@ -4853,163 +4153,128 @@ game.import("character", function () {
gz_jin_simashi: "司马师",
gz_jin_xiahouhui: "夏侯徽",
xinquanbian: "权变",
- xinquanbian_info:
- "出牌阶段,每当你首次使用/打出一种花色的手牌时,你可以从牌堆顶的X张牌中获得一张与此牌花色不同的牌,并将其余牌以任意顺序置于牌堆顶。出牌阶段,你至多可使用X张非装备手牌。(X为你的体力上限)",
+ xinquanbian_info: "出牌阶段,每当你首次使用/打出一种花色的手牌时,你可以从牌堆顶的X张牌中获得一张与此牌花色不同的牌,并将其余牌以任意顺序置于牌堆顶。出牌阶段,你至多可使用X张非装备手牌。(X为你的体力上限)",
shibao: "石苞",
zhuosheng: "擢升",
- zhuosheng_info:
- "出牌阶段,①你使用本轮内得到的基本牌时无次数和距离限制。②你使用本轮内获得的普通锦囊牌选择目标后,可令此牌的目标数+1或-1。③你使用本轮内得到的装备牌时可以摸一张牌(以此法得到的牌不能触发〖擢升〗)。",
- zhuosheng_info_guozhan:
- "出牌阶段,①你使用本轮内得到的基本牌时无距离限制。②你使用本轮内获得的普通锦囊牌选择目标后,可令此牌的目标数+1或-1。③你使用本轮内得到的装备牌时可以摸一张牌(以此法得到的牌不能触发〖擢升〗)。",
+ zhuosheng_info: "出牌阶段,①你使用本轮内得到的基本牌时无次数和距离限制。②你使用本轮内获得的普通锦囊牌选择目标后,可令此牌的目标数+1或-1。③你使用本轮内得到的装备牌时可以摸一张牌(以此法得到的牌不能触发〖擢升〗)。",
+ zhuosheng_info_guozhan: "出牌阶段,①你使用本轮内得到的基本牌时无距离限制。②你使用本轮内获得的普通锦囊牌选择目标后,可令此牌的目标数+1或-1。③你使用本轮内得到的装备牌时可以摸一张牌(以此法得到的牌不能触发〖擢升〗)。",
jin_yanghuiyu: "晋羊徽瑜",
jin_yanghuiyu_prefix: "晋",
gz_jin_yanghuiyu: "羊徽瑜",
huirong: "慧容",
- huirong_info:
- "隐匿技,锁定技。当你登场后,你令一名角色将手牌数摸至/弃至与体力值相同(至多摸至五张)。",
+ huirong_info: "隐匿技,锁定技。当你登场后,你令一名角色将手牌数摸至/弃至与体力值相同(至多摸至五张)。",
ciwei: "慈威",
- ciwei_info:
- "一名角色于其回合内使用第二张牌时,若此牌为基本牌或普通锦囊牌,则你可以弃置一张牌,取消此牌的所有目标。",
+ ciwei_info: "一名角色于其回合内使用第二张牌时,若此牌为基本牌或普通锦囊牌,则你可以弃置一张牌,取消此牌的所有目标。",
caiyuan: "才媛",
caiyuan_info: "锁定技。回合结束时,若你于你的上一个回合结束后未扣减过体力,则你摸两张牌。",
simazhou: "司马伷",
caiwang: "才望",
- caiwang_info:
- "当你使用或打出牌响应其他角色使用的牌,或其他角色使用或打出牌响应你使用的牌后,若这两张牌颜色相同,则你可以弃置对方的一张牌。",
+ caiwang_info: "当你使用或打出牌响应其他角色使用的牌,或其他角色使用或打出牌响应你使用的牌后,若这两张牌颜色相同,则你可以弃置对方的一张牌。",
naxiang: "纳降",
naxiang2: "纳降",
- naxiang_info:
- "锁定技,当你受到其他角色造成的伤害后,或你对其他角色造成伤害后,你对其发动〖才望①〗时的“弃置”改为“获得”直到你的下回合开始。",
+ naxiang_info: "锁定技,当你受到其他角色造成的伤害后,或你对其他角色造成伤害后,你对其发动〖才望①〗时的“弃置”改为“获得”直到你的下回合开始。",
cheliji: "彻里吉",
chexuan: "车悬",
- chexuan_info:
- "出牌阶段,若你的装备区里没有宝物牌,你可弃置一张黑色牌,选择一张【舆】置入你的装备区;当你失去装备区里的宝物牌后,你可进行判定,若结果为黑色,将一张随机的【舆】置入你的装备区。",
+ chexuan_info: "出牌阶段,若你的装备区里没有宝物牌,你可弃置一张黑色牌,选择一张【舆】置入你的装备区;当你失去装备区里的宝物牌后,你可进行判定,若结果为黑色,将一张随机的【舆】置入你的装备区。",
qiangshou: "羌首",
qiangshou_info: "锁定技,若你的装备区内有宝物牌,你与其他角色的距离-1。",
cheliji_sichengliangyu: "四乘粮舆",
cheliji_sichengliangyu_bg: "粮",
- cheliji_sichengliangyu_info:
- "一名角色的回合结束时,若你的手牌数小于体力值,你可以摸两张牌,然后弃置此牌。",
+ cheliji_sichengliangyu_info: "一名角色的回合结束时,若你的手牌数小于体力值,你可以摸两张牌,然后弃置此牌。",
cheliji_tiejixuanyu: "铁蒺玄舆",
cheliji_tiejixuanyu_bg: "蒺",
- cheliji_tiejixuanyu_info:
- "其他角色的回合结束时,若其本回合未造成过伤害,你可以令其弃置两张牌,然后弃置此牌。",
+ cheliji_tiejixuanyu_info: "其他角色的回合结束时,若其本回合未造成过伤害,你可以令其弃置两张牌,然后弃置此牌。",
cheliji_feilunzhanyu: "飞轮战舆",
cheliji_feilunzhanyu_bg: "轮",
- cheliji_feilunzhanyu_info:
- "其他角色的回合结束时,若其本回合使用过非基本牌,你可以令其交给你一张牌,然后弃置此牌。",
+ cheliji_feilunzhanyu_info: "其他角色的回合结束时,若其本回合使用过非基本牌,你可以令其交给你一张牌,然后弃置此牌。",
weiguan: "卫瓘",
zhongyun: "忠允",
zhongyun2: "忠允",
- zhongyun_info:
- "锁定技。每名角色的回合限一次,你受伤/回复体力后,若你的体力值与手牌数相等,你回复1点体力或对你攻击范围内的一名角色造成1点伤害;每名角色的回合限一次,你获得手牌或失去手牌后,若你的体力值与手牌数相等,你摸一张牌或弃置一名其他角色一张牌。",
+ zhongyun_info: "锁定技。每名角色的回合限一次,你受伤/回复体力后,若你的体力值与手牌数相等,你回复1点体力或对你攻击范围内的一名角色造成1点伤害;每名角色的回合限一次,你获得手牌或失去手牌后,若你的体力值与手牌数相等,你摸一张牌或弃置一名其他角色一张牌。",
shenpin: "神品",
shenpin_info: "当一名角色的判定牌生效前,你可以打出一张与判定牌颜色不同的牌代替之。",
zhongyan: "钟琰",
bolan: "博览",
- bolan_info:
- "①出牌阶段开始时,你可从三个描述中带有“出牌阶段限一次”的技能中选择一个,令当前回合角色获得直至此阶段结束。②其他角色出牌阶段限一次,其可以失去1点体力,令你发动一次〖博览①〗。",
+ bolan_info: "①出牌阶段开始时,你可从三个描述中带有“出牌阶段限一次”的技能中选择一个,令当前回合角色获得直至此阶段结束。②其他角色出牌阶段限一次,其可以失去1点体力,令你发动一次〖博览①〗。",
yifa: "仪法",
yifa2: "仪法",
- yifa_info:
- "锁定技,其他角色使用【杀】或黑色普通锦囊牌指定你为目标后,其手牌上限-1直到其回合结束。",
+ yifa_info: "锁定技,其他角色使用【杀】或黑色普通锦囊牌指定你为目标后,其手牌上限-1直到其回合结束。",
ol_huaxin: "OL华歆",
ol_huaxin_prefix: "OL",
caozhao: "草诏",
caozhao_backup: "草诏",
- caozhao_info:
- "出牌阶段限一次,你可展示一张手牌并声明一种未以此法声明过的基本牌或普通锦囊牌,令一名体力不大于你的其他角色选择一项:令此牌视为你声明的牌,或其失去1点体力。然后若此牌声明成功,然后你可将其交给一名其他角色。",
+ caozhao_info: "出牌阶段限一次,你可展示一张手牌并声明一种未以此法声明过的基本牌或普通锦囊牌,令一名体力不大于你的其他角色选择一项:令此牌视为你声明的牌,或其失去1点体力。然后若此牌声明成功,然后你可将其交给一名其他角色。",
olxibing: "息兵",
- olxibing_info:
- "当你受到其他角色造成的伤害后,你可弃置你或该角色两张牌,然后你们中手牌少的角色摸两张牌,以此法摸牌的角色不能使用牌指定你为目标直到回合结束。",
+ olxibing_info: "当你受到其他角色造成的伤害后,你可弃置你或该角色两张牌,然后你们中手牌少的角色摸两张牌,以此法摸牌的角色不能使用牌指定你为目标直到回合结束。",
recaiwang: "才望",
- recaiwang_info:
- "①当你使用或打出牌响应其他角色使用的牌,或其他角色使用或打出牌响应你使用的牌后,若这两张牌颜色相同,则你可以弃置对方的一张牌。②若你的手牌数为1,则你可以将该手牌当做【闪】使用或打出。③若你的装备区牌数为1,则你可以将该装备当做【无懈可击】使用或打出。④若你的判定区牌数为1,则你可以将该延时锦囊牌当做【杀】使用或打出。",
+ recaiwang_info: "①当你使用或打出牌响应其他角色使用的牌,或其他角色使用或打出牌响应你使用的牌后,若这两张牌颜色相同,则你可以弃置对方的一张牌。②若你的手牌数为1,则你可以将该手牌当做【闪】使用或打出。③若你的装备区牌数为1,则你可以将该装备当做【无懈可击】使用或打出。④若你的判定区牌数为1,则你可以将该延时锦囊牌当做【杀】使用或打出。",
recaiwang_hand: "才望",
recaiwang_equip: "才望",
recaiwang_judge: "才望",
yangyan: "杨艳",
xuanbei: "选备",
- xuanbei_info:
- "①游戏开始时,你从牌堆中获得两张具有应变标签的牌。②每回合限一次。当你使用的具有应变标签的牌结算结束后,你可将此牌对应的所有实体牌交给一名其他角色。",
+ xuanbei_info: "①游戏开始时,你从牌堆中获得两张具有应变标签的牌。②每回合限一次。当你使用的具有应变标签的牌结算结束后,你可将此牌对应的所有实体牌交给一名其他角色。",
xianwan: "娴婉",
- xianwan_info:
- "①当你需要使用【闪】时,若你的武将牌未横置,则你可以横置武将牌并视为使用【闪】。②当你需要使用【杀】时,若你的武将牌横置,则你可以重置武将牌并视为使用【杀】。",
+ xianwan_info: "①当你需要使用【闪】时,若你的武将牌未横置,则你可以横置武将牌并视为使用【闪】。②当你需要使用【杀】时,若你的武将牌横置,则你可以重置武将牌并视为使用【杀】。",
yangzhi: "杨芷",
wanyi: "婉嫕",
- wanyi_info:
- "每回合每项限一次。出牌阶段,你可以将一张具有应变效果的牌当做【逐近弃远】/【出其不意】/【水淹七军】/【洞烛先机】使用。",
+ wanyi_info: "每回合每项限一次。出牌阶段,你可以将一张具有应变效果的牌当做【逐近弃远】/【出其不意】/【水淹七军】/【洞烛先机】使用。",
maihuo: "埋祸",
- maihuo_info:
- "①当你成为其他角色使用【杀】的目标后,若此【杀】不为转化牌且有对应的实体牌且其武将牌上没有“祸”且你是此牌的唯一目标,则你可以令此牌对你无效,并将此【杀】置于其武将牌上,称为“祸”。②一名其他角色的出牌阶段开始时,若其武将牌上有“祸”,则其对你使用此“祸”(有距离限制且计入次数限制,若你不是此牌的合法目标,则改为将此“祸”置入弃牌堆)。③当你对有“祸”的其他角色造成伤害后,你移去其“祸”。",
+ maihuo_info: "①当你成为其他角色使用【杀】的目标后,若此【杀】不为转化牌且有对应的实体牌且其武将牌上没有“祸”且你是此牌的唯一目标,则你可以令此牌对你无效,并将此【杀】置于其武将牌上,称为“祸”。②一名其他角色的出牌阶段开始时,若其武将牌上有“祸”,则其对你使用此“祸”(有距离限制且计入次数限制,若你不是此牌的合法目标,则改为将此“祸”置入弃牌堆)。③当你对有“祸”的其他角色造成伤害后,你移去其“祸”。",
xinchang: "辛敞",
canmou: "参谋",
- canmou_info:
- "一名角色使用普通锦囊牌指定第一个目标时,若其手牌数为全场唯一最多,则你可以为此牌增加一个额外目标。",
+ canmou_info: "一名角色使用普通锦囊牌指定第一个目标时,若其手牌数为全场唯一最多,则你可以为此牌增加一个额外目标。",
congjian: "从鉴",
- congjian_info:
- "一名其他角色成为普通锦囊牌的唯一目标时,若其体力值为全场唯一最多,则你也可以成为此牌的目标。此牌结算结束后,若你受到过渠道为此牌的伤害,则你摸两张牌。",
- xuangongzhu: "宣公主",
+ congjian_info: "一名其他角色成为普通锦囊牌的唯一目标时,若其体力值为全场唯一最多,则你也可以成为此牌的目标。此牌结算结束后,若你受到过渠道为此牌的伤害,则你摸两张牌。",
+ xuangongzhu: "晋宣公主",
+ gz_xuangongzhu: "宣公主",
+ xuangongzhu_prefix: "晋",
gaoling: "高陵",
gaoling_info: "隐匿技。当你于回合外明置此武将牌时,你可以令一名角色回复1点体力。",
qimei: "齐眉",
- qimei_info:
- "准备阶段,你可以选择一名其他角色。你获得如下效果直到下回合开始:①每回合限一次,当你或其获得牌/失去手牌后,若你与其手牌数相等,则另一名角色摸一张牌。②每回合限一次,当你或其的体力值变化后,若你与其体力值相等,则另一名角色摸一张牌。",
+ qimei_info: "准备阶段,你可以选择一名其他角色。你获得如下效果直到下回合开始:①每回合限一次,当你或其获得牌/失去手牌后,若你与其手牌数相等,则另一名角色摸一张牌。②每回合限一次,当你或其的体力值变化后,若你与其体力值相等,则另一名角色摸一张牌。",
ybzhuiji: "追姬",
- ybzhuiji_info:
- "出牌阶段开始时,你可选择一项:①摸两张牌,并于出牌阶段结束时失去1点体力;②回复1点体力,并于出牌阶段结束时弃置两张牌。",
+ ybzhuiji_info: "出牌阶段开始时,你可选择一项:①摸两张牌,并于出牌阶段结束时失去1点体力;②回复1点体力,并于出牌阶段结束时弃置两张牌。",
jin_yanghu: "晋羊祜",
jin_yanghu_prefix: "晋",
huaiyuan: "怀远",
huaiyuanx: "绥",
- huaiyuan_info:
- "①游戏开始时,你将你的手牌标记为“绥”。②当你失去一张“绥”后,你令一名角色执行一项:⒈其的手牌上限+1。⒉其的攻击范围+1。⒊其摸一张牌。③当你死亡时,你可令一名其他角色的手牌上限+X,且攻击范围+Y(X和Y为你自己被执行过〖怀远②〗的选项一和选项二的次数)。",
+ huaiyuan_info: "①游戏开始时,你将你的手牌标记为“绥”。②当你失去一张“绥”后,你令一名角色执行一项:⒈其的手牌上限+1。⒉其的攻击范围+1。⒊其摸一张牌。③当你死亡时,你可令一名其他角色的手牌上限+X,且攻击范围+Y(X和Y为你自己被执行过〖怀远②〗的选项一和选项二的次数)。",
chongxin: "崇信",
chongxin_info: "出牌阶段限一次,你可重铸一张牌,且令一名有手牌的其他角色也重铸一张牌。",
dezhang: "德彰",
dezhang_info: "觉醒技。准备阶段,若你没有“绥”,则你减1点体力上限并获得〖卫戍〗。",
weishu: "卫戍",
- weishu_info:
- "锁定技。①当你于摸牌阶段外不因〖卫戍①〗而摸牌后,你令一名角色摸一张牌。②当你于弃牌阶段外不因〖卫戍②〗而弃置牌后,你弃置一名其他角色的一张牌。",
+ weishu_info: "锁定技。①当你于摸牌阶段外不因〖卫戍①〗而摸牌后,你令一名角色摸一张牌。②当你于弃牌阶段外不因〖卫戍②〗而弃置牌后,你弃置一名其他角色的一张牌。",
jin_jiachong: "晋贾充",
jin_jiachong_prefix: "晋",
xiongshu: "凶竖",
- xiongshu_info:
- "其他角色的出牌阶段开始时,你可弃置X张牌(X为你本轮内此前已发动过此技能的次数,为0则不弃)并展示其一张手牌,然后你预测“其本阶段内是否会使用与展示牌牌名相同的牌”。此阶段结束时,若你的预测正确,则你对其造成1点伤害;否则你获得展示牌。",
+ xiongshu_info: "其他角色的出牌阶段开始时,你可弃置X张牌(X为你本轮内此前已发动过此技能的次数,为0则不弃)并展示其一张手牌,然后你预测“其本阶段内是否会使用与展示牌牌名相同的牌”。此阶段结束时,若你的预测正确,则你对其造成1点伤害;否则你获得展示牌。",
jianhui: "奸回",
- jianhui_info:
- "锁定技。当你造成伤害后,若受伤角色为A,则你摸一张牌;当你受到伤害后,若伤害来源为A,则A弃置一张牌。(A为除本次伤害外最近一次对你造成过伤害的角色)",
+ jianhui_info: "锁定技。当你造成伤害后,若受伤角色为A,则你摸一张牌;当你受到伤害后,若伤害来源为A,则A弃置一张牌。(A为除本次伤害外最近一次对你造成过伤害的角色)",
xinxuanbei: "选备",
- xinxuanbei_info:
- "出牌阶段限一次。你可选择一名其他角色区域内的一张牌。然后其对你使用对应实体牌为此牌的【杀】。然后若此【杀】,未对你造成过伤害,你摸一张牌;对你造成过伤害,你摸两张牌。",
+ xinxuanbei_info: "出牌阶段限一次。你可选择一名其他角色区域内的一张牌。然后其对你使用对应实体牌为此牌的【杀】。然后若此【杀】,未对你造成过伤害,你摸一张牌;对你造成过伤害,你摸两张牌。",
xinwanyi: "婉嫕",
- xinwanyi_info:
- "①当你使用【杀】或普通锦囊牌指定其他角色为唯一目标后,你可将其的一张牌置于你的武将牌上作为“嫕”。②你不能使用/打出/弃置与“嫕”花色相同的牌。③结束阶段或当你受到伤害后,你令一名角色获得你的一张“嫕”。",
+ xinwanyi_info: "①当你使用【杀】或普通锦囊牌指定其他角色为唯一目标后,你可将其的一张牌置于你的武将牌上作为“嫕”。②你不能使用/打出/弃置与“嫕”花色相同的牌。③结束阶段或当你受到伤害后,你令一名角色获得你的一张“嫕”。",
jin_guohuai: "郭槐",
zhefu: "哲妇",
- zhefu_info:
- "当你于回合外使用或打出牌后,你可令一名有手牌的其他角色选择一项:⒈弃置一张名称相同的牌。⒉受到你造成的1点伤害。",
+ zhefu_info: "当你于回合外使用或打出牌后,你可令一名有手牌的其他角色选择一项:⒈弃置一张名称相同的牌。⒉受到你造成的1点伤害。",
yidu: "遗毒",
- yidu_info:
- "当你使用的【杀】或伤害性锦囊牌结算结束后,你可以展示一名未受到过渠道为此牌伤害的目标角色的至多三张手牌。若这些牌颜色均相同,则你弃置这些牌。",
+ yidu_info: "当你使用的【杀】或伤害性锦囊牌结算结束后,你可以展示一名未受到过渠道为此牌伤害的目标角色的至多三张手牌。若这些牌颜色均相同,则你弃置这些牌。",
wangxiang: "王祥",
bingxin: "冰心",
- bingxin_info:
- "每种牌名每回合限一次。当你需要使用基本牌时,若你的手牌数等于体力值且这些牌的颜色均相同,则你可以摸一张牌,视为使用一张基本牌。",
+ bingxin_info: "每种牌名每回合限一次。当你需要使用基本牌时,若你的手牌数等于体力值且这些牌的颜色均相同,则你可以摸一张牌,视为使用一张基本牌。",
ol_lisu: "OL李肃",
ol_lisu_prefix: "OL",
qiaoyan: "巧言",
- qiaoyan_info:
- "锁定技,当你于回合外受到其他角色造成的伤害时,若你:有“珠”,则你令伤害来源获得“珠”;没有“珠”,则你防止此伤害,然后摸一张牌,并将一张牌正面朝上置于武将牌上,称为“珠”。",
+ qiaoyan_info: "锁定技,当你于回合外受到其他角色造成的伤害时,若你:有“珠”,则你令伤害来源获得“珠”;没有“珠”,则你防止此伤害,然后摸一张牌,并将一张牌正面朝上置于武将牌上,称为“珠”。",
xianzhu: "献珠",
- xianzhu_info:
- "锁定技,出牌阶段开始时,你令一名角色A获得“珠”。若A不为你自己,则你选择你攻击范围内的一名角色B,视为A对B使用一张【杀】。",
+ xianzhu_info: "锁定技,出牌阶段开始时,你令一名角色A获得“珠”。若A不为你自己,则你选择你攻击范围内的一名角色B,视为A对B使用一张【杀】。",
chengjichengcui: "成济成倅",
oltousui: "透髓",
oltousui_info: "你可以将任意张牌置于牌堆底,视为使用一张需使用等量张【闪】抵消的【杀】。",
olchuming: "畜鸣",
- olchuming_info:
- "锁定技。当你对其他角色造成伤害时,或当你受到其他角色造成的伤害时,若此伤害的渠道不为牌或没有对应的实体牌,此伤害+1,否则其于本回合结束时将所有以此法造成伤害的牌当【借刀杀人】或【过河拆桥】对你使用。",
+ olchuming_info: "锁定技。当你对其他角色造成伤害时,或当你受到其他角色造成的伤害时,若此伤害的渠道不为牌或没有对应的实体牌,此伤害+1,否则其于本回合结束时将所有以此法造成伤害的牌当【借刀杀人】或【过河拆桥】对你使用。",
yingbian_pack1: "文德武备·理",
yingbian_pack2: "文德武备·备",
diff --git a/image/character/linghuyu.jpg b/image/character/linghuyu.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2c4254794b167820b86c8a226af7ce615793e49e
GIT binary patch
literal 36764
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