commit
bef0f50844
|
@ -3947,12 +3947,6 @@ const skills = {
|
|||
//裴元绍
|
||||
dcmoyu: {
|
||||
audio: 2,
|
||||
init() {
|
||||
game.addGlobalSkill("dcmoyu_ai");
|
||||
},
|
||||
onremove() {
|
||||
if (!game.hasPlayer(i => i.hasSkill("dcmoyu"), true)) game.removeGlobalSkill("dcmoyu_ai");
|
||||
},
|
||||
enable: "phaseUse",
|
||||
filter(event, player) {
|
||||
return game.hasPlayer(current => lib.skill.dcmoyu.filterTarget(null, player, current));
|
||||
|
@ -3962,7 +3956,7 @@ const skills = {
|
|||
},
|
||||
async content(event, trigger, player) {
|
||||
const target = event.target;
|
||||
player.addTempSkill("dcmoyu_clear");
|
||||
player.addTempSkill("dcmoyu_clear", "phaseUseAfter");
|
||||
player.markAuto("dcmoyu_clear", [target]);
|
||||
await player.gainPlayerCard(target, "hej", true, 1 + player.hasSkill("dcmoyu_add"));
|
||||
player.removeSkill("dcmoyu_add");
|
||||
|
@ -3979,10 +3973,6 @@ const skills = {
|
|||
return lib.filter.targetEnabled.apply(this, arguments);
|
||||
})
|
||||
.set("sourcex", player)
|
||||
.set("num", num)
|
||||
.set("oncard", card => {
|
||||
_status.event.baseDamage = _status.event.getParent().num;
|
||||
})
|
||||
.forResult();
|
||||
if (result.bool) {
|
||||
if (
|
||||
|
@ -3991,11 +3981,13 @@ const skills = {
|
|||
})
|
||||
) {
|
||||
player.tempBanSkill("dcmoyu");
|
||||
player.addTempSkill("dcmoyu_ban");
|
||||
} else {
|
||||
player.addTempSkill("dcmoyu_add", "phaseChange");
|
||||
}
|
||||
}
|
||||
},
|
||||
global: "dcmoyu_ai",
|
||||
subSkill: {
|
||||
clear: {
|
||||
charlotte: true,
|
||||
|
@ -4004,7 +3996,7 @@ const skills = {
|
|||
ban: {
|
||||
charlotte: true,
|
||||
mark: true,
|
||||
marktext: "欲",
|
||||
marktext: '<span style="text-decoration: line-through;">欲</span>',
|
||||
intro: { content: "偷马贼被反打了!" },
|
||||
},
|
||||
add: {
|
||||
|
@ -4014,15 +4006,6 @@ const skills = {
|
|||
intro: { content: "欲望加速,下次抢两张!" },
|
||||
},
|
||||
ai: {
|
||||
trigger: { player: "dieAfter" },
|
||||
filter: () => {
|
||||
return !game.hasPlayer(i => i.hasSkill("dcmoyu"), true);
|
||||
},
|
||||
silent: true,
|
||||
forceDie: true,
|
||||
content: () => {
|
||||
game.removeGlobalSkill("dcmoyu_ai");
|
||||
},
|
||||
ai: {
|
||||
effect: {
|
||||
target: function (card, player, target, current) {
|
||||
|
|
|
@ -688,6 +688,7 @@ const skills = {
|
|||
);
|
||||
},
|
||||
async content(event, trigger, player) {
|
||||
player.awakenSkill("jsrgjiebing");
|
||||
await player.gainMaxHp(2);
|
||||
await player.recover(2);
|
||||
await player.addSkills("jsrgbaowei");
|
||||
|
@ -9311,7 +9312,7 @@ const skills = {
|
|||
aiValue: (player, card, num) => {
|
||||
if (num > 0 && get.itemtype(card) === "card" && card.name !== "zhuge" && get.subtype(card) === "equip1" && !player.getEquip(1)) return 0.01 * num;
|
||||
},
|
||||
aiUseful: () => {
|
||||
aiUseful: function () {
|
||||
return lib.skill.jsrgzhenqiao.mod.aiValue.apply(this, arguments);
|
||||
},
|
||||
},
|
||||
|
|
|
@ -115,7 +115,7 @@ const skills = {
|
|||
let cards = [];
|
||||
if (event.name == "cardsDiscard") {
|
||||
const evt = event.getParent().relatedEvent;
|
||||
if (evt && evt.name == "judge" && evt.player == player) {
|
||||
if (evt && evt.name == "judge" && evt.player != player) {
|
||||
cards.addArray(event.cards.filter(i => get.position(i, true) == "d"));
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -1419,33 +1419,28 @@ const skills = {
|
|||
break;
|
||||
}
|
||||
case 4: {
|
||||
let map = {};
|
||||
game.dead.forEach(target => (map[target.playerid] = get.translation(target)));
|
||||
const {
|
||||
result: { control },
|
||||
} = await player
|
||||
.chooseControl(Object.values(map))
|
||||
.set("ai", () => {
|
||||
const getNum = target => {
|
||||
let num = 0;
|
||||
if (target.name && lib.character[target.name]) num += get.rank(target.name, true);
|
||||
if (target.name2 && lib.character[target.name2]) num += get.rank(target.name2, true);
|
||||
return num;
|
||||
};
|
||||
let controls = _status.event.controls.slice();
|
||||
controls = controls.map(name => [name, game.dead.find(target => _status.event.map[target.playerid] == name)]);
|
||||
controls.sort((a, b) => getNum(b[1]) - getNum(a[1]));
|
||||
return controls[0][0];
|
||||
const result = await player
|
||||
.chooseTarget(
|
||||
"行殇:请选择一名已阵亡角色",
|
||||
(card, player, target) => {
|
||||
return target.isDead();
|
||||
},
|
||||
true,
|
||||
"获得一名已阵亡角色的所有技能,然后失去〖行殇〗〖放逐〗〖颂威〗"
|
||||
)
|
||||
.set("ai", target => {
|
||||
return ["name", "name1", "name2"].reduce((sum, name) => {
|
||||
if (!target[name] || !lib.character[target[name]] || (name == "name1" && target.name1 == target.name)) return sum;
|
||||
return sum + get.rank(target[name], true);
|
||||
}, 0);
|
||||
})
|
||||
.set("prompt", "获得一名已阵亡角色的所有技能")
|
||||
.set("map", map);
|
||||
if (control) {
|
||||
const target2 = game.dead.find(targetx => map[targetx.playerid] == control);
|
||||
.set("deadTarget", true)
|
||||
.forResult();
|
||||
if (result.bool) {
|
||||
const target2 = result.targets[0];
|
||||
player.line(target2);
|
||||
game.log(player, "选择了", target2);
|
||||
const skills = target2.getStockSkills(true, true);
|
||||
const skills2 = ["sbxingshang", "sbfangzhu", "sbsongwei"];
|
||||
player.changeSkills(skills, skills2);
|
||||
await player.changeSkills(target2.getStockSkills(true, true), ["sbxingshang", "sbfangzhu", "sbsongwei"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1485,7 +1480,7 @@ const skills = {
|
|||
case 3:
|
||||
return str + "移去5个“颂”标记,令一名体力上限小于10的角色加1点体力上限并回复1点体力,然后随机恢复一个被废除的装备栏";
|
||||
case 4:
|
||||
return str + "移去5个“颂”标记,获得一名已阵亡角色的所有技能,然后失去武将牌上的所有技能";
|
||||
return str + "移去5个“颂”标记,获得一名已阵亡角色的所有技能,然后失去〖行殇〗〖放逐〗〖颂威〗";
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
const characters = {
|
||||
caimao: ["male", "wei", 4, ["olzuolian", "oljingzhou"]],
|
||||
ol_peixiu: ["male", "wei", 3, ["olmaozhu", "oljinlan"]],
|
||||
ol_peixiu: ["male", "wei", 4, ["olmaozhu", "oljinlan"]],
|
||||
yadan: ["male", "qun", 4, ["olqingya", "oltielun"]],
|
||||
sp_sunce: ["male", "qun", 4, ["olliantao"]],
|
||||
ol_liupi: ["male", "qun", 4, ["olyicheng"]],
|
||||
|
|
|
@ -663,7 +663,7 @@ const skills = {
|
|||
cards = moved[0].slice();
|
||||
if (cards.length) {
|
||||
await game.cardsGotoOrdering(cards);
|
||||
for (let i = cards.length - 1; i--; i >= 0) {
|
||||
for (let i = cards.length - 1; i >= 0; i--) {
|
||||
ui.cardPile.insertBefore(cards[i], ui.cardPile.firstChild);
|
||||
}
|
||||
game.log(cards, "被放回了牌堆顶");
|
||||
|
@ -687,7 +687,7 @@ const skills = {
|
|||
cards = hs.slice();
|
||||
if (cards.length) {
|
||||
await game.cardsGotoOrdering(cards);
|
||||
for (let i = cards.length - 1; i--; i >= 0) {
|
||||
for (let i = cards.length - 1; i >= 0; i--) {
|
||||
ui.cardPile.insertBefore(cards[i], ui.cardPile.firstChild);
|
||||
}
|
||||
game.log(cards, "被放回了牌堆顶");
|
||||
|
|
|
@ -240,6 +240,7 @@ const skills = {
|
|||
selectCard: 2,
|
||||
position: "hes",
|
||||
viewAs: { name: "juedou" },
|
||||
selectTarget: 2,
|
||||
viewAsFilter(player) {
|
||||
if (player.countCards("hes") < 2) return false;
|
||||
},
|
||||
|
|
|
@ -208,8 +208,8 @@ const translates = {
|
|||
stddaizui: "戴罪",
|
||||
stddaizui_info: "锁定技,当你受到伤害后,你视为本轮未发动过〖盗书〗。",
|
||||
stdxiongxia: "凶侠",
|
||||
stdxiongxia_info: "你可以将两张牌当作【决斗】使用。你以此法使用的【决斗】结算完毕后,若所有目标角色都受到了此牌造成的伤害,则〖凶侠〗于本回合失效。",
|
||||
stdhuizhan: "挥战",
|
||||
stdxiongxia_info: "你可以将两张牌当作【决斗】对两名其他角色使用。你以此法使用的【决斗】结算完毕后,若所有目标角色都受到了此牌造成的伤害,则〖凶侠〗于本回合失效。",
|
||||
stdhuizhan: "挥戟",
|
||||
stdhuizhan_info: "你使用【杀】可以额外指定至多两个目标。若如此做,目标角色响应此【杀】时,其他目标角色可以代替其使用【闪】。",
|
||||
stdmingfa: "明伐",
|
||||
stdmingfa_info: "出牌阶段,你可以对一名体力值大于1的角色造成1点伤害,然后此技能失效直至其死亡或回复体力。",
|
||||
|
|
|
@ -798,6 +798,7 @@ const skills = {
|
|||
subSkill: {
|
||||
g: {
|
||||
audio: "dcwuyou",
|
||||
forceaudio: true,
|
||||
enable: "phaseUse",
|
||||
usable: 1,
|
||||
filter(event, player) {
|
||||
|
@ -934,6 +935,10 @@ const skills = {
|
|||
if (!card.cards) return;
|
||||
if (card.cards.some(card => card.hasGaintag("dcwuyou_transfer"))) return Infinity;
|
||||
},
|
||||
targetInRange(card, player) {
|
||||
if (!card.cards) return;
|
||||
if (card.cards.some(card => card.hasGaintag("dcwuyou_transfer"))) return true;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1049,11 +1054,11 @@ const skills = {
|
|||
result: {
|
||||
player(player) {
|
||||
const enemies = game.filterPlayer(current => {
|
||||
return get.rawAttitude(player, current) < 0 && get.attitude(player, current) >= 0;
|
||||
}),
|
||||
knownEnemies = game.filterPlayer(current => {
|
||||
return get.attitude(player, current) < 0;
|
||||
});
|
||||
return (!get.rawAttitude || get.rawAttitude(player, current) < 0) && get.attitude(player, current) >= 0;
|
||||
}),
|
||||
knownEnemies = game.filterPlayer(current => {
|
||||
return get.attitude(player, current) < 0;
|
||||
});
|
||||
if ((!knownEnemies.length && player.countCards("e") > 1) || (player.getHp() > 3 && enemies.length > 0 && knownEnemies.length < 2 && knownEnemies.length < enemies.length && !knownEnemies.some(enemy => get.attitude(player, enemy) <= -9))) return 0;
|
||||
const val1 = game
|
||||
.filterPlayer()
|
||||
|
|
Loading…
Reference in New Issue