noname/card/zhenfa.js

458 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { lib, game, ui, get, ai, _status } from "../noname.js";
game.import("card", function () {
return {
name: "zhenfa",
card: {
pozhenjue: {
type: "zhenfa",
recastable: true,
enable: true,
notarget: true,
content: function () {
var targets = game.filterPlayer();
var n = targets.length;
while (n--) {
game.swapSeat(targets.randomGet(), targets.randomGet());
}
},
mode: ["guozhan"],
ai: {
order: 8,
result: {
player: 1,
},
},
},
changshezhen: {
type: "zhenfa",
recastable: true,
enable: function (card, player) {
if (player.inline()) return true;
if (player.identity == "unknown" || player.identity == "ye") return false;
return game.hasPlayer(function (current) {
return current != player && current.isFriendOf(player);
});
},
notarget: true,
content: function () {
if (player.inline()) {
var targets = game.filterPlayer(function (current) {
return player.inline(current);
});
player.line(targets);
game.asyncDraw(targets);
} else if (player.getNext()) {
var list = game.filterPlayer(function (current) {
return current != player && current.isFriendOf(player);
});
if (list.length) {
list.sort(function (a, b) {
return (
get.distance(player, a, "absolute") - get.distance(player, b, "absolute")
);
});
player.line(list[0]);
game.swapSeat(list[0], player.getNext(), true, true);
}
}
},
mode: ["guozhan"],
ai: {
order: 6.5,
result: {
player: 1,
},
tag: {
draw: 1,
},
},
},
tianfuzhen: {
type: "zhenfa",
recastable: true,
enable: function () {
return game.hasPlayer(function (current) {
return current.isMajor();
});
},
filterTarget: function (card, player, target) {
return target.isMajor() && target.countCards("he") > 0;
},
selectTarget: -1,
content: function () {
target.chooseToDiscard("he", true).delay = false;
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
target: -1,
},
tag: {
discard: 1,
},
},
},
dizaizhen: {
type: "zhenfa",
recastable: true,
enable: function () {
return game.hasPlayer(function (current) {
return current.isNotMajor();
});
},
filterTarget: function (card, player, target) {
return target.isNotMajor();
},
selectTarget: -1,
content: function () {
target.draw(false);
target.$draw();
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
target: 1,
},
tag: {
draw: 1,
},
},
},
fengyangzhen: {
type: "zhenfa",
recastable: true,
enable: true,
filterTarget: function (card, player, target) {
return target.sieged();
},
selectTarget: -1,
content: function () {
target.addTempSkill("feiying", { player: "damageAfter" });
target.popup("feiying");
game.log(target, "获得了技能", "【飞影】");
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
target: 2,
},
},
},
yunchuizhen: {
type: "zhenfa",
recastable: true,
enable: true,
filterTarget: function (card, player, target) {
return target.siege();
},
selectTarget: -1,
content: function () {
target.addTempSkill("wushuang", { source: "damageAfter" });
target.popup("wushuang");
game.log(target, "获得了技能", "【无双】");
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
target: 2,
},
},
},
qixingzhen: {
type: "zhenfa",
recastable: true,
enable: function (card, player) {
return player.siege() || player.sieged();
},
filterTarget: function (card, player, target) {
return target == player;
},
selectTarget: -1,
content: function () {
"step 0";
event.targets = game.filterPlayer(function (current) {
return current.siege(player);
});
"step 1";
if (event.targets.length) {
var current = event.targets.shift();
player.line(current, "green");
player.discardPlayerCard(current, true);
event.redo();
}
"step 2";
var card = { name: "sha", isCard: true };
var list = game.filterPlayer(function (current) {
return current.siege(player) && player.canUse(card, current);
});
if (list.length) {
player.useCard(card, list, false);
}
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
target: 1,
},
},
},
shepanzhen: {
type: "zhenfa",
recastable: true,
enable: function (card, player) {
if (player.identity == "unknown" || player.identity == "ye") return false;
if (get.population(player.identity) <= 1) return false;
return game.hasPlayer(function (current) {
return (
current != player &&
current.identity == player.identity &&
!player.inline(current)
);
});
},
notarget: true,
content: function () {
var targets = game.filterPlayer(function (current) {
return current.identity == player.identity;
});
targets.sortBySeat();
for (var i = 1; i < targets.length; i++) {
game.swapSeat(targets[i], targets[i - 1].next, false);
}
game.log(get.translation(player.identity) + "势力角色摆成了蛇蟠阵");
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
player: 1,
},
},
},
longfeizhen: {
type: "zhenfa",
recastable: true,
enable: function (card, player) {
return player.next.siege(player);
},
filterTarget: function (card, player, target) {
if (target.getCards("he").length == 0) return false;
return target == player.next || target == player.previous;
},
selectTarget: -1,
content: function () {
"step 0";
player.choosePlayerCard(target, "he", true);
"step 1";
target.discard(result.buttons[0].link);
"step 2";
if (target == targets[targets.length - 1]) {
player.draw();
}
},
mode: ["guozhan"],
ai: {
order: 10,
result: {
target: -1,
player: 1,
},
},
},
huyizhen: {
type: "zhenfa",
recastable: true,
enable: function (card, player) {
return player.siege(player.next) || player.siege(player.previous);
},
filterTarget: function (card, player, target) {
return player.siege(target);
},
selectTarget: -1,
content: function () {
"step 0";
player.chooseCard(
"将一张非基本牌当作杀对" + get.translation(target) + "使用",
"he",
function (card) {
return get.type(card) != "basic";
}
).ai = function (card) {
if (get.effect(target, { name: "sha" }, player, player) > 0) {
return 6 - get.value(card);
}
return 0;
};
"step 1";
if (result.bool) {
player.useCard({ name: "sha" }, result.cards, target, false);
}
"step 2";
if (target == player.next) event.player2 = player.next.next;
else event.player2 = player.previous.previous;
event.player2.chooseCard(
"将一张非基本牌当作杀对" + get.translation(target) + "使用",
"he",
function (card) {
return get.type(card) != "basic";
}
).ai = function (card) {
if (get.effect(target, { name: "sha" }, event.player2, event.player2) > 0) {
return 6 - get.value(card);
}
return 0;
};
"step 3";
if (result.bool) {
event.player2.useCard({ name: "sha" }, result.cards, target, false);
}
},
mode: ["guozhan"],
ai: {
order: 7,
result: {
target: -2,
},
},
},
niaoxiangzhen: {
type: "zhenfa",
recastable: true,
enable: true,
filterTarget: function (card, player, target) {
if (player.identity == target.identity) return false;
if (target.identity == "unknown" || target.identity == "ye") return false;
return (
target.identity == target.next.identity || target.identity == target.previous.identity
);
},
selectTarget: -1,
content: function () {
"step 0";
var next = target.chooseToRespond({ name: "shan" });
next.ai = function (card) {
if (get.damageEffect(target, player, target) >= 0) return 0;
return 1;
};
next.autochoose = lib.filter.autoRespondShan;
"step 1";
if (result.bool == false) {
target.damage();
}
},
ai: {
basic: {
order: 9,
useful: 1,
},
result: {
target: -1.5,
},
tag: {
respond: 1,
respondShan: 1,
damage: 1,
},
},
mode: ["guozhan"],
},
},
skill: {},
translate: {
zhenfa: "阵法",
changshezhen: "长蛇阵",
pozhenjue: "破阵决",
tianfuzhen: "天覆阵",
dizaizhen: "地载阵",
fengyangzhen: "风扬阵",
yunchuizhen: "云垂阵",
qixingzhen: "七星阵",
shepanzhen: "蛇蟠阵",
shepanzhen_bg: "列",
yunchuizhen_bg: "垂",
longfeizhen: "龙飞阵",
huyizhen: "虎翼阵",
niaoxiangzhen: "鸟翔阵",
niaoxiangzhen_info: "令所有非你阵营的队列的角色今次打出一张闪或者受到1点伤害。",
qixingzhen_info:
"弃置所有围攻你的角色各一张牌,然后视为对所有你围攻的角色使用一张不计入出杀次数的杀。",
// longfeizhen_info:'弃置围攻你的角色各一张牌,然后摸一张牌。',
// qixingzhen_info:'令我方所有角色进入围攻状态。',
// shepanzhen_info:'令我方所有角色进入队列状态。',
// yunchuizhen_info:'令所有围攻角色获得技能〖无双〗,直到其首次造成伤害。',
// fengyangzhen_info:'令所有被围攻角色获得技能〖飞影〗,直到其首次受到伤害。',
dizaizhen_info: "所有小势力角色摸一张牌。",
changshezhen_info:
"若你处于队列中,与你同一队列的所有角色摸一张牌,否则将与你逆时针距离最近的同势力角色移至你下家。",
// pozhenjue_info:'将所有角色的顺序随机重排。',
tianfuzhen_info: "所有大势力角色弃置一张牌。",
},
list: [
["diamond", 1, "changshezhen"],
["club", 1, "changshezhen"],
// ["spade",1,'changshezhen'],
// ["heart",1,'changshezhen'],
["diamond", 2, "tianfuzhen"],
// ["club",2,'tianfuzhen'],
["spade", 2, "tianfuzhen"],
["heart", 2, "tianfuzhen"],
["diamond", 3, "dizaizhen"],
// ["club",3,'dizaizhen'],
["spade", 3, "dizaizhen"],
["heart", 3, "dizaizhen"],
// ["diamond",4,'fengyangzhen'],
// ["club",4,'fengyangzhen'],
// ["spade",4,'fengyangzhen'],
// ["heart",4,'fengyangzhen'],
// ["diamond",5,'zhonghuangzhen'],
// ["club",5,'zhonghuangzhen'],
// ["spade",5,'zhonghuangzhen'],
// ["heart",5,'zhonghuangzhen'],
// ["diamond",6,'huyizhen'],
// ["club",6,'huyizhen'],
// ["spade",6,'huyizhen'],
// ["heart",6,'huyizhen'],
["diamond", 7, "qixingzhen"],
["club", 7, "qixingzhen"],
["spade", 7, "qixingzhen"],
// ["heart",7,'qixingzhen'],
// ["diamond",8,'shepanzhen'],
// ["club",8,'shepanzhen'],
// ["spade",8,'shepanzhen'],
// ["heart",8,'shepanzhen'],
// ["diamond",9,'longfeizhen'],
// ["club",9,'longfeizhen'],
// ["spade",9,'longfeizhen'],
// ["heart",9,'longfeizhen'],
["diamond", 11, "niaoxiangzhen"],
// ["club",11,'niaoxiangzhen'],
["spade", 11, "niaoxiangzhen"],
["heart", 11, "niaoxiangzhen"],
// ["diamond",12,'yunchuizhen'],
// ["club",12,'yunchuizhen'],
// ["spade",12,'yunchuizhen'],
// ["heart",12,'yunchuizhen'],
// ["diamond",13,'pozhenjue'],
// ["club",13,'pozhenjue'],
// ["spade",13,'pozhenjue'],
//["heart",13,'pozhenjue'],
],
};
});