乐邹氏
This commit is contained in:
parent
72c17ed5d9
commit
b37748efdc
|
@ -1,4 +1,5 @@
|
|||
const characters = {
|
||||
yue_zoushi: ["female", "qun", 3, ["dcyunzheng", "dchuoxin"]],
|
||||
zhupeilan: ["female", "wu", 3, ["dccilv", "dctongdao"]],
|
||||
yue_miheng: ["male", "qun", 3, ["dcjigu", "dcsirui"]],
|
||||
chezhou: ["male", "wei", 4, ["dcshefu", "dcpigua"]],
|
||||
|
|
|
@ -2,6 +2,111 @@ import { lib, game, ui, get, ai, _status } from "../../noname.js";
|
|||
|
||||
/** @type { importCharacterConfig['skill'] } */
|
||||
const skills = {
|
||||
//乐邹氏
|
||||
dcyunzheng: {
|
||||
audio: 2,
|
||||
trigger: {
|
||||
global: "phaseBefore",
|
||||
player: "enterGame",
|
||||
},
|
||||
filter(event, player) {
|
||||
return event.name != "phase" || game.phaseNumber == 0;
|
||||
},
|
||||
forced: true,
|
||||
content() {
|
||||
const cards = player.getCards("h");
|
||||
player.addGaintag(cards, "dcyunzheng_tag");
|
||||
},
|
||||
mod: {
|
||||
ignoredHandcard(card) {
|
||||
if (card.hasGaintag("dcyunzheng_tag")) return true;
|
||||
},
|
||||
cardDiscardable(card, _, name) {
|
||||
if (name == "phaseDiscard" && card.hasGaintag("dcyunzheng_tag")) return false;
|
||||
},
|
||||
},
|
||||
group: "dcyunzheng_fengyin",
|
||||
subSkill: {
|
||||
fengyin: {
|
||||
audio: "dcyunzheng",
|
||||
trigger: {
|
||||
global: ["phaseBefore", "loseAfter", "loseAsyncAfter", "gainAfter", "equipAfter", "addJudgeAfter", "addToExpansionAfter"],
|
||||
player: ["dchuoxin_update", "enterGame"],
|
||||
},
|
||||
filter(event, player) {
|
||||
if (
|
||||
["lose", "loseAsync", "gain", "equip", "addJudge", "addToExpansion"].includes(event.name) &&
|
||||
!game.hasPlayer(target => {
|
||||
const evt = event.getl(target);
|
||||
return evt && (evt.hs || []).length;
|
||||
})
|
||||
)
|
||||
return false;
|
||||
return game.hasPlayer(target => {
|
||||
return target.hasCard(card => card.hasGaintag("dcyunzheng_tag")) == !target.hasSkill("dcyunzheng_block");
|
||||
});
|
||||
},
|
||||
logTarget(event, player) {
|
||||
return game
|
||||
.filterPlayer(target => {
|
||||
return target.hasCard(card => card.hasGaintag("dcyunzheng_tag")) == !target.hasSkill("dcyunzheng_block");
|
||||
})
|
||||
.sortBySeat();
|
||||
},
|
||||
forced: true,
|
||||
content() {
|
||||
const targets = game
|
||||
.filterPlayer(target => {
|
||||
return target.hasCard(card => card.hasGaintag("dcyunzheng_tag")) == !target.hasSkill("dcyunzheng_block");
|
||||
})
|
||||
.sortBySeat();
|
||||
for (const target of targets) {
|
||||
target[target.hasSkill("dcyunzheng_block") ? "removeSkill" : "addSkill"]("dcyunzheng_block");
|
||||
}
|
||||
},
|
||||
},
|
||||
block: {
|
||||
inherit: "fengyin",
|
||||
},
|
||||
},
|
||||
},
|
||||
dchuoxin: {
|
||||
audio: 2,
|
||||
trigger: { player: "useCardToPlayered" },
|
||||
filter(event, player) {
|
||||
if (
|
||||
!player.hasHistory("lose", evt => {
|
||||
if (evt.getParent() != event.getParent()) return false;
|
||||
return event.cards.some(card => (evt.hs || []).includes(card));
|
||||
})
|
||||
)
|
||||
return false;
|
||||
return event.target != player && event.target.countCards("h");
|
||||
},
|
||||
forced: true,
|
||||
logTarget: "target",
|
||||
async content(event, trigger, player) {
|
||||
const target = trigger.target;
|
||||
const result = await player.choosePlayerCard("h", target, true, "惑心:展示" + get.translation(target) + "的一张手牌").forResult();
|
||||
if (result.bool) {
|
||||
let cards = result.cards.slice();
|
||||
await player.showCards(cards, get.translation(player) + "发动了【惑心】");
|
||||
const cardx = cards.filter(card => card.hasGaintag("dcyunzheng_tag") || get.suit(card) == get.suit(trigger.card));
|
||||
if (cardx.length) {
|
||||
cards.removeArray(cardx);
|
||||
await player.gain(cardx, target, "give");
|
||||
await event.trigger("dchuoxin_update");
|
||||
}
|
||||
if (cards.some(card => !card.hasGaintag("dcyunzheng_tag"))) {
|
||||
target.addGaintag(
|
||||
cards.filter(card => !card.hasGaintag("dcyunzheng_tag")),
|
||||
"dcyunzheng_tag"
|
||||
);
|
||||
await event.trigger("dchuoxin_update");
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
//朱佩兰
|
||||
dccilv: {
|
||||
audio: 2,
|
||||
|
@ -168,10 +273,10 @@ const skills = {
|
|||
},
|
||||
mod: {
|
||||
ignoredHandcard(card) {
|
||||
if (card.hasGaintag("dcshuangjia_tag")) return true;
|
||||
if (card.hasGaintag("dcjigu")) return true;
|
||||
},
|
||||
cardDiscardable(card, _, name) {
|
||||
if (name == "phaseDiscard" && card.hasGaintag("dcshuangjia_tag")) return false;
|
||||
if (name == "phaseDiscard" && card.hasGaintag("dcjigu")) return false;
|
||||
},
|
||||
},
|
||||
group: "dcjigu_temp",
|
||||
|
@ -335,6 +440,7 @@ const skills = {
|
|||
audio: 2,
|
||||
trigger: { source: "damageSource" },
|
||||
filter(event, player) {
|
||||
if (event.player == player) return false;
|
||||
return event.num > 1 && event.player.isIn() && event.player.countCards("he") && game.roundNumber > 0;
|
||||
},
|
||||
async cost(event, trigger, player) {
|
||||
|
|
|
@ -11,7 +11,7 @@ const characterSort = {
|
|||
sp_jishi: ["dc_jiben", "zhenghun", "dc_sunhanhua", "liuchongluojun", "wupu"],
|
||||
sp_raoting: ["dc_huanghao", "dc_sunziliufang", "dc_sunchen", "dc_jiachong"],
|
||||
sp_yijun: ["gongsundu", "mengyou", "dc_sp_menghuo", "gongsunxiu"],
|
||||
sp_zhengyin: ["yue_caiwenji", "yue_zhoufei", "yue_caiyong", "yue_xiaoqiao", "yue_daqiao", "yue_miheng"],
|
||||
sp_zhengyin: ["yue_caiwenji", "yue_zhoufei", "yue_caiyong", "yue_xiaoqiao", "yue_daqiao", "yue_miheng", "yue_zoushi"],
|
||||
huicui_waitforsort: ["chezhou", "zhupeilan"],
|
||||
};
|
||||
|
||||
|
|
|
@ -536,7 +536,7 @@ const translates = {
|
|||
dcshefu: "慑伏",
|
||||
dcshefu_info: "锁定技。你对其他角色/其他角色对你使用牌造成的伤害改为X(X为此牌对应的所有实体牌最近一次被伤害来源获得后至现在经过的轮次数之和)。",
|
||||
dcpigua: "披挂",
|
||||
dcpigua_info: "当你对一名角色造成超过1点伤害后,你可以获得其至多等同于游戏轮次的牌,这些牌本回合不计入你的手牌上限。",
|
||||
dcpigua_info: "当你对一名其他角色造成超过1点伤害后,你可以获得其至多等同于游戏轮次的牌,这些牌本回合不计入你的手牌上限。",
|
||||
yue_miheng: "乐祢衡",
|
||||
yue_miheng_prefix: "乐",
|
||||
dcjigu: "激鼓",
|
||||
|
@ -548,6 +548,13 @@ const translates = {
|
|||
dccilv_info: "当你成为普通锦囊牌的目标后,你可以摸剩余选项数的牌,然后若你的手牌数大于你的体力上限,则你选择执行并移去一项:①令此牌对你无效;②防止此牌对你造成的伤害;③于此牌结算完毕后获得此牌对应的所有实体牌。",
|
||||
dctongdao: "痛悼",
|
||||
dctongdao_info: "限定技,当你进入濒死状态时,你可以选择一名角色,令其将其拥有的技能重置至游戏开始时的状态,然后若其不为你,则你将体力值回复至与其相同。",
|
||||
yue_zoushi: "乐邹氏",
|
||||
yue_zoushi_prefix: "乐",
|
||||
dcyunzheng: "韵筝",
|
||||
dcyunzheng_tag: "筝",
|
||||
dcyunzheng_info: "锁定技。①游戏开始时,你将所有手牌标记为“筝”。②你的“筝”牌不计入手牌上限。③手牌中有“筝”的角色的非锁定技失效。",
|
||||
dchuoxin: "惑心",
|
||||
dchuoxin_info: "锁定技,当你使用手牌指定其他角色为目标后,你展示其一张手牌。若此牌为“筝”牌或与你使用牌花色相同,你获得之;否则你将此牌标记为“筝”。",
|
||||
};
|
||||
|
||||
export default translates;
|
||||
|
|
|
@ -464,6 +464,6 @@ export default {
|
|||
"#dcjigu1": "我接着奏乐,诸公接着舞。",
|
||||
"#dcjigu2": "这不是鼓,而是曹公的脸面!",
|
||||
"#dcsirui1": "暑气可借酒气消,此间艳阳醉着酒。",
|
||||
"#dcsirui2": "诸君饮霓而醉,举事唯我独行。",
|
||||
"#dcsirui2": "诸君饮泥而醉,举事唯我独醒!",
|
||||
"#yue_miheng:die": "映日荷花今犹在,不见当年采荷人……",
|
||||
};
|
||||
|
|
|
@ -717,6 +717,7 @@ window.noname_character_rank = {
|
|||
"jsrg_yuanshao",
|
||||
"sb_handang",
|
||||
"sb_gongsunzan",
|
||||
"yue_zoushi",
|
||||
],
|
||||
bp: [
|
||||
"ol_peixiu",
|
||||
|
@ -2278,6 +2279,7 @@ window.noname_character_rank = {
|
|||
"yue_miheng",
|
||||
],
|
||||
rare: [
|
||||
"yue_zoushi",
|
||||
"chezhou",
|
||||
"std_sunhao",
|
||||
"std_chengpu",
|
||||
|
|
|
@ -31,7 +31,7 @@ const characterReplaces = {
|
|||
jsp_guanyu: ["jsp_guanyu", "dc_jsp_guanyu", "jsrg_guanyu"],
|
||||
mushun: ["mushun", "sp_mushun"],
|
||||
wangjun: ["dc_wangjun", "wangjun"],
|
||||
zoushi: ["re_zoushi", "jsrg_zoushi"],
|
||||
re_zoushi: ["yue_zoushi", "re_zoushi", "jsrg_zoushi"],
|
||||
zhangmancheng: ["dc_zhangmancheng", "tw_zhangmancheng"],
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue