乐祢衡

This commit is contained in:
mengxinzxz 2024-06-01 00:54:46 +08:00
parent b4c8b80914
commit 1c0d75a427
5 changed files with 142 additions and 2 deletions

View File

@ -1,4 +1,5 @@
const characters = {
yue_miheng: ["male", "qun", 3, ["dcjigu", "dcsirui"]],
chezhou: ["male", "wei", 4, ["dcshefu", "dcpigua"]],
dc_lifeng: ["male", "shu", 3, ["dctunchu", "dcshuliang"]],
wupu: ["male", "qun", 4, ["dcduanti", "dcshicao"]],

View File

@ -2,6 +2,137 @@ import { lib, game, ui, get, ai, _status } from "../../noname.js";
/** @type { importCharacterConfig['skill'] } */
const skills = {
//乐祢衡
dcjigu: {
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, "dcjigu");
},
mod: {
ignoredHandcard(card) {
if (card.hasGaintag("dcshuangjia_tag")) return true;
},
cardDiscardable(card, _, name) {
if (name == "phaseDiscard" && card.hasGaintag("dcshuangjia_tag")) return false;
},
},
group: "dcjigu_temp",
subSkill: {
temp: {
audio: "dcjigu",
trigger: {
player: "damageEnd",
source: "damageSource",
},
filter(event, player) {
return player.countCards("e") == player.countCards("h", card => card.hasGaintag("dcjigu"));
},
usable: 1,
prompt2(event, player) {
return (
"摸" +
get.cnNumber(
Array.from({ length: 5 })
.map((_, i) => i + 1)
.reduce((sum, i) => sum + player.countEmptySlot(i), 0)
) +
"张牌"
);
},
content() {
player.draw(
Array.from({ length: 5 })
.map((_, i) => i + 1)
.reduce((sum, i) => sum + player.countEmptySlot(i), 0)
);
},
},
},
},
dcsirui: {
audio: 2,
enable: "phaseUse",
filter(event, player) {
if (!player.countCards("hes")) return false;
return get
.inpileVCardList(info => {
const name = info[2];
if (get.type(name) != "basic" && get.type(name) != "trick") return false;
return true;
})
.some(card => player.hasCard(cardx => get.cardNameLength(cardx) == get.cardNameLength(card[2]) && event.filterCard({ name: card[2], nature: card[3], cards: [cardx] }, player, event), "hes"));
},
usable: 1,
chooseButton: {
dialog(event, player) {
const list = get
.inpileVCardList(info => {
const name = info[2];
if (get.type(name) != "basic" && get.type(name) != "trick") return false;
return true;
})
.filter(card => player.hasCard(cardx => get.cardNameLength(cardx) == get.cardNameLength(card[2]) && event.filterCard({ name: card[2], nature: card[3], cards: [cardx] }, player, event), "hes"));
return ui.create.dialog("思锐", [list, "vcard"]);
},
check(button) {
return get.event("player").getUseValue({
name: button.link[2],
nature: button.link[3],
});
},
backup(links, player) {
return {
audio: "dcsirui",
filterCard(card, player) {
return get.cardNameLength(card) == get.cardNameLength(lib.skill.dcsirui_backup.viewAs.name);
},
popname: true,
viewAs: {
name: links[0][2],
nature: links[0][3],
},
check(card) {
return 7 - get.value(card);
},
position: "hes",
};
},
prompt(links, player) {
return "将一张字数为" + get.cardNameLength(links[0][2]) + "的牌当作" + get.translation(links[0][3] || "") + "【" + get.translation(links[0][2]) + "】使用";
},
},
ai: {
order(item, player) {
let list = get
.inpileVCardList(info => {
const name = info[2];
if (get.type(name) != "basic" && get.type(name) != "trick") return false;
return true;
})
.filter(card => player.hasCard(cardx => get.cardNameLength(cardx) == get.cardNameLength(card[2]) && player.hasUseTarget(get.autoViewAs({ name: card[2], nature: card[3] }, [cardx]), true, true), "hes"))
.map(card => {
return { name: card[2], nature: card[3] };
})
.filter(card => player.getUseValue(card, true, true) > 0);
if (!list.length) return 0;
list.sort((a, b) => (player.getUseValue(b, true, true) || 0) - (player.getUseValue(a, true, true) || 0));
return get.order(list[0], player) * 0.99;
},
result: { player: 1 },
},
subSkill: {
backup: { audio: "dcsirui" },
},
},
//侧肘
dcshefu: {
audio: 2,

View File

@ -534,7 +534,13 @@ const translates = {
dcshuliang_info: "一名角色的回合结束时,你可以将任意张手牌交给任意名没有手牌的角色各一张,然后本次获得可以指定自己为目标的牌的角色可以依次选择是否使用本次获得的牌。",
chezhou: "车胄",
dcshefu: "慑伏",
dcshefu_info: "锁定技。你对其他角色/其他角色对你使用牌造成的伤害改为XX为此牌对应的所有实体牌最近一次被伤害来源获得后至现在经过的轮次数。",
dcshefu_info: "锁定技。你对其他角色/其他角色对你使用牌造成的伤害改为XX为此牌对应的所有实体牌最近一次被伤害来源获得后至现在经过的轮次数之和。",
yue_miheng: "乐祢衡",
yue_miheng_prefix: "乐",
dcjigu: "激鼓",
dcjigu_info: "锁定技。①游戏开始时你将所有手牌标记为“激鼓”。②你的“激鼓”牌不计入手牌上限。③每回合限一次当你造成或受到伤害后若你的你的“激鼓”牌数等于你的装备区的牌数则你可以摸X张牌X为你的空缺装备栏数。",
dcsirui: "思锐",
dcsirui_info: "出牌阶段限一次,你可以将一张牌当作与其字数相同的一张基本牌或普通锦囊牌使用。",
};
export default translates;

View File

@ -18,7 +18,7 @@ const characterReplaces = {
sunhanhua: ["dc_sunhanhua", "sunhanhua"],
zhoubuyi: ["zhoubuyi", "yj_zhoubuyi"],
xianglang: ["xianglang", "mb_xianglang"],
miheng: ["re_miheng", "miheng"],
miheng: ["yue_miheng", "re_miheng", "miheng"],
peixiu: ["ol_peixiu", "peixiu"],
};

View File

@ -287,6 +287,7 @@ window.noname_character_rank = {
"zhangqiying",
"wangyuanji",
"miheng",
"yue_miheng",
"re_guojia",
"re_sunquan",
"re_zhangjiao",
@ -1848,6 +1849,7 @@ window.noname_character_rank = {
"dc_zhaoxiang",
"liuyan",
"miheng",
"yue_miheng",
"majun",
"pangdegong",
"yangbiao",