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