diff --git a/audio/die/xin_sunquan.mp3 b/audio/die/xin_sunquan.mp3 new file mode 100644 index 000000000..cb394a8a9 Binary files /dev/null and b/audio/die/xin_sunquan.mp3 differ diff --git a/audio/skill/dchuanli1.mp3 b/audio/skill/dchuanli1.mp3 new file mode 100644 index 000000000..d27041202 Binary files /dev/null and b/audio/skill/dchuanli1.mp3 differ diff --git a/audio/skill/dchuanli2.mp3 b/audio/skill/dchuanli2.mp3 new file mode 100644 index 000000000..1175bb5b5 Binary files /dev/null and b/audio/skill/dchuanli2.mp3 differ diff --git a/audio/skill/dchuiwan1.mp3 b/audio/skill/dchuiwan1.mp3 new file mode 100644 index 000000000..68439a186 Binary files /dev/null and b/audio/skill/dchuiwan1.mp3 differ diff --git a/audio/skill/dchuiwan2.mp3 b/audio/skill/dchuiwan2.mp3 new file mode 100644 index 000000000..7f82be918 Binary files /dev/null and b/audio/skill/dchuiwan2.mp3 differ diff --git a/character/collab/character.js b/character/collab/character.js index af46e1d9f..60b23bc80 100644 --- a/character/collab/character.js +++ b/character/collab/character.js @@ -21,7 +21,7 @@ const characters = { sp_mushun: ["male", "qun", 4, ["moukui"]], dc_wuyi: ["male", "shu", 4, ["dcbenxi"]], quyuan: ["male", "qun", 3, ["dcqiusuo", "dclisao"]], - xin_sunquan: ["male", "wu", 3, ["dchuiwan", "dchuanli"], ["die_audio"]], + xin_sunquan: ["male", "wu", 3, ["dchuiwan", "dchuanli"]], }; export default characters; diff --git a/character/collab/voices.js b/character/collab/voices.js index 501b0e03a..26e6de16e 100644 --- a/character/collab/voices.js +++ b/character/collab/voices.js @@ -45,4 +45,9 @@ export default { "#taoshen:die": "马革裹尸,身沉江心……", "#jieyuan_more": "我所有的努力,都是为了杀你!", "#jieyuan_less": "我必须活下去!", + "#dchuiwan1": "金珠弹黄鹂,玉带做秋千,如此游戏人间。", + "#dchuiwan2": "小爷横行江东,今日走马、明日弄鹰。", + "#dchuanli1": "金乌当空,汝欲与我辩日否?", + "#dchuanli2": "童言无忌,童言有理!", + "#xin_sunquan:die": "阿娘,大哥抢我糖人!", }; diff --git a/character/sp/character.js b/character/sp/character.js index 77719f7d1..e8a0960cb 100644 --- a/character/sp/character.js +++ b/character/sp/character.js @@ -1,7 +1,7 @@ const characters = { ol_jiangwan: ["male", "shu", 3, ["olziruo", "olxvfa"]], caimao: ["male", "wei", 4, ["olzuolian", "oljingzhou"]], - ol_peixiu: ["male", "wei", 4, ["olmaozhu", "oljinlan"]], + ol_peixiu: ["male", "jin", 4, ["olmaozhu", "oljinlan"]], yadan: ["male", "qun", 4, ["olqingya", "oltielun"]], sp_sunce: ["male", "qun", 4, ["junkliantao"]], ol_liupi: ["male", "qun", 4, ["olyicheng"]], diff --git a/character/sp/skill.js b/character/sp/skill.js index a34eb515c..4b27fa0b3 100644 --- a/character/sp/skill.js +++ b/character/sp/skill.js @@ -58,8 +58,8 @@ const skills = { dialog(_, player) { let dialog = ui.create.dialog("蓄发:请选择一项", "hidden"); const list = [ - ["0", "将至少一半手牌称为“蓄发”置于武将牌上(向上取整),然后可以视为使用“蓄发”牌中的一张普通锦囊牌"], - ["1", "移去一半“蓄发”牌(向上取整),然后可以视为使用其中一张普通锦囊牌"], + ["0", "将至少一半手牌称为“蓄发”置于武将牌上,然后可以将一张牌当作“蓄发”牌中的一张普通锦囊牌使用"], + ["1", "移去至少一半“蓄发”牌,然后可以将一张牌当作其中一张普通锦囊牌使用"], ].filter(listx => { if (listx[0] == "0") return !player.hasSkill("olxvfa_0") && player.countCards("h"); return !player.hasSkill("olxvfa_1") && player.getExpansions("olxvfa").length; @@ -75,8 +75,8 @@ const skills = { check: () => 1 + Math.random(), backup: links => get.copy(lib.skill["olxvfa_" + ["put", "remove"][parseInt(links[0])]]), prompt(links) { - if (links[0] == "0") return "###蓄发###将至少一半手牌称为“蓄发”置于武将牌上(向上取整),然后可以视为使用“蓄发”牌中的一张普通锦囊牌"; - return "###蓄发###移去一半“蓄发”牌(向上取整),然后可以视为使用其中一张普通锦囊牌"; + if (links[0] == "0") return "###蓄发###将至少一半手牌称为“蓄发”置于武将牌上,然后可以将一张牌当作“蓄发”牌中的一张普通锦囊牌使用"; + return "###蓄发###移去一半“蓄发”牌,然后可以将一张牌当作其中一张普通锦囊牌使用"; }, }, intro: { @@ -109,13 +109,13 @@ const skills = { player.addTempSkill("olxvfa_0", "phaseUseAfter"); await player.addToExpansion(event.cards, player, "give").set("gaintag", ["olxvfa"]); const cards = player.getExpansions("olxvfa"); - if (cards.some(card => get.type(card) == "trick" && player.hasUseTarget({ name: card.name, isCard: true }, true))) { + if (cards.some(card => get.type(card) == "trick" && player.hasCard(cardx => player.hasUseTarget(get.autoViewAs({ name: card.name }, [cardx]), true), "hes"))) { const result = await player - .chooseButton(["蓄发:是否视为使用一张“蓄发”牌?", cards]) + .chooseButton(['###蓄发###
是否将一张牌当作一张“蓄发”牌使用?
', cards]) .set("filterButton", button => { const player = get.event("player"), card = button.link; - return get.type(card) == "trick" && player.hasUseTarget({ name: card.name, isCard: true }, true); + return get.type(card) == "trick" && player.hasCard(cardx => player.hasUseTarget(get.autoViewAs({ name: card.name }, [cardx]), true), "hes"); }) .set("ai", button => { const player = get.event("player"), @@ -125,7 +125,20 @@ const skills = { .forResult(); if (result.bool) { const card = result.links[0]; - await player.chooseUseTarget({ name: card.name, isCard: true }, true, false); + game.broadcastAll(function (card) { + lib.skill.olxvfa_backupx.viewAs = { name: card.name }; + }, card); + await player + .chooseToUse() + .set("openskilldialog", "###蓄发###将一张牌当作【" + get.translation(card.name) + "】使用") + .set("norestore", true) + .set("addCount", false) + .set("_backupevent", "olxvfa_backupx") + .set("custom", { + add: {}, + replace: { window: function () {} }, + }) + .backup("olxvfa_backupx"); } } }, @@ -140,7 +153,7 @@ const skills = { const cards = player.getExpansions("olxvfa"), num = Math.ceil(cards.length / 2); const result = await player - .chooseButton(["蓄发:请移去至少" + get.cnNumber(num) + "张“蓄发”牌", cards], [num, Infinity], true) + .chooseButton(['###蓄发###
请移去至少' + get.cnNumber(num) + '张“蓄发”牌
', cards], [num, Infinity], true) .set("ai", button => { const player = get.event("player"), value = player.getUseValue(button.link, true); @@ -159,13 +172,13 @@ const skills = { if (result.bool) { const cardx = result.links; await player.loseToDiscardpile(cardx); - if (cardx.some(card => get.type(card) == "trick" && player.hasUseTarget({ name: card.name, isCard: true }, true))) { + if (cardx.some(card => get.type(card) == "trick" && player.hasCard(cardxx => player.hasUseTarget(get.autoViewAs({ name: card.name }, [cardxx]), true), "hes"))) { const result2 = await player - .chooseButton(["蓄发:是否视为使用一张移去的“蓄发”牌?", cardx]) + .chooseButton(['###蓄发###
是否将一张牌当作一张移去的“蓄发”牌使用?
', cardx]) .set("filterButton", button => { const player = get.event("player"), card = button.link; - return get.type(card) == "trick" && player.hasUseTarget({ name: card.name, isCard: true }, true); + return get.type(card) == "trick" && player.hasCard(cardx => player.hasUseTarget(get.autoViewAs({ name: card.name }, [cardx]), true), "hes"); }) .set("ai", button => { const player = get.event("player"), @@ -175,12 +188,44 @@ const skills = { .forResult(); if (result2.bool) { const card = result2.links[0]; - await player.chooseUseTarget({ name: card.name, isCard: true }, true, false); + game.broadcastAll(function (card) { + lib.skill.olxvfa_backupx.viewAs = { name: card.name }; + }, card); + await player + .chooseToUse() + .set("openskilldialog", "###蓄发###将一张牌当作【" + get.translation(card.name) + "】使用") + .set("norestore", true) + .set("addCount", false) + .set("_backupevent", "olxvfa_backupx") + .set("custom", { + add: {}, + replace: { window: function () {} }, + }) + .backup("olxvfa_backupx"); } } } }, }, + backupx: { + filterCard: true, + position: "hes", + check(card) { + const player = get.event("player"); + if (player.hasValueTarget(card, true, true)) return 0; + if (player.hasSkill("olziruo")) { + const cards = player.getCards("h"); + if (cards.indexOf(card) == (player.storage.olziruo ? cards.length - 1 : 0)) { + return 15 - get.value(card); + } + } + return 5 - get.value(card); + }, + log: false, + precontent() { + delete event.result.skill; + }, + }, }, ai: { order: 1, diff --git a/character/sp/translate.js b/character/sp/translate.js index 92d2ed388..29c3cf9a6 100644 --- a/character/sp/translate.js +++ b/character/sp/translate.js @@ -1265,7 +1265,7 @@ const translates = { olziruo:'自若', olziruo_info:'转换技,锁定技。①你不能整理手牌。②当你使用最{阴:左;阳:右}侧的手牌时,你摸一张牌。', olxvfa:'蓄发', - olxvfa_info:'出牌阶段各限一次,你可以:①将至少一半手牌称为“蓄发”置于武将牌上(向上取整),然后你可以视为使用“蓄发”牌中的一张普通锦囊牌;②移去一半“蓄发”牌(向上取整),然后你可以视为使用其中一张普通锦囊牌。', + olxvfa_info:'出牌阶段各限一次,你可以:①将至少一半手牌称为“蓄发”置于武将牌上,然后你可以将一张牌当作“蓄发”牌中的一张普通锦囊牌使用;②移去至少一半“蓄发”牌,然后你可以将一张牌当作其中一张普通锦囊牌使用。', }; export default translates; diff --git a/image/character/clan_wuqiao.jpg b/image/character/clan_wuqiao.jpg index 2ca0a9816..54c2a5dbf 100644 Binary files a/image/character/clan_wuqiao.jpg and b/image/character/clan_wuqiao.jpg differ diff --git a/image/character/ol_peixiu.jpg b/image/character/ol_peixiu.jpg index 7ab4e9706..87aca4574 100644 Binary files a/image/character/ol_peixiu.jpg and b/image/character/ol_peixiu.jpg differ