Skip to content

Commit 25a41dc

Browse files
authored
Merge pull request #3135 from xizifu/PR-Branch
武将调整;bugfix
2 parents d0c3e2f + 296e860 commit 25a41dc

File tree

16 files changed

+292
-438
lines changed

16 files changed

+292
-438
lines changed

character/bingshi/skill.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,7 +1702,7 @@ const skills = {
17021702
if (left.length && right.length) {
17031703
const shun = `顺时针:${left.map(i => get.translation(i)).join("、")}`,
17041704
ni = `逆时针:${right.map(i => get.translation(i)).join("、")}`,
1705-
prompt = "令顺时针或逆时针上的角色同时展示并依次弃置一张牌,然后你可令弃置一种颜色牌的所有角色成为此【杀】额外目标";
1705+
prompt = "令顺时针或逆时针上的角色同时展示并依次弃置一张手牌,然后你可令弃置一种颜色牌的所有角色成为此【杀】额外目标";
17061706
const result = await player
17071707
.chooseButton([
17081708
get.prompt(event.skill),
@@ -1729,20 +1729,22 @@ const skills = {
17291729
})
17301730
.forResult();
17311731
event.result = {
1732-
bool: result.bool,
1732+
bool: result?.bool,
17331733
targets: result?.links?.[0],
17341734
};
17351735
} else {
17361736
const targets = left.length ? left : right;
17371737
event.result = await player.chooseBool(get.prompt2(event.skill, targets)).forResult();
1738-
event.result.targets = targets;
1738+
if (event.result?.bool) {
1739+
event.result.targets = targets;
1740+
}
17391741
}
17401742
},
17411743
async content(event, trigger, player) {
1742-
const targets = event.targets.filter(target => target.countCards("he", card => lib.filter.cardDiscardable(card, target, "mbfeijing")));
1744+
const targets = event.targets.filter(target => target.countCards("h", card => lib.filter.cardDiscardable(card, target, "mbfeijing")));
17431745
if (targets.length) {
17441746
const next = player
1745-
.chooseCardOL(targets, "he", true, "飞径:展示并弃置一张牌", (card, player) => {
1747+
.chooseCardOL(targets, "h", true, "飞径:展示并弃置一张牌", (card, player) => {
17461748
return lib.filter.cardDiscardable(card, player, "mbfeijing");
17471749
})
17481750
.set("ai", get.unuseful)
@@ -2544,7 +2546,7 @@ const skills = {
25442546
skill = "mbrunwei";
25452547
const cards = get.cards(num, true);
25462548
player.logSkill("mbrunwei", null, null, null, [get.rand(1, 2)]);
2547-
await player.showCards(cards, `${get.translation(player)}发动了${get.translation(skill)}`);
2549+
await player.showCards(cards, `${get.translation(player)}发动了${get.translation(skill)}`);
25482550
const used = player.hasSkill(skill + "_twice");
25492551
if (
25502552
used &&

character/bingshi/translate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ const translates = {
7272
mb_huangzu: "势黄祖",
7373
mb_huangzu_prefix: "势",
7474
mbchizhang: "鸱张",
75-
mbchizhang_info: "你使用伤害牌无距离限制。当你使用手牌中除闪电外的伤害牌指定目标后,你可以弃置任意数量的手牌,其他角色不能使用或打出与你此法弃置牌颜色相同的牌响应此牌。",
75+
mbchizhang_info: "你使用伤害牌无距离限制。当你使用手牌中除【闪电】外的伤害牌指定目标后,你可以弃置任意数量的手牌,其他角色不能使用或打出与你此法弃置牌颜色相同的牌响应此牌。",
7676
mbduanyang: "断鞅",
7777
mbduanyang_info: "每回合限一次,当你不因使用而失去手牌后,你可以将其中随机一张【杀】置于武将牌上,并于本阶段结束时使用之;你以此法使用的【杀】造成伤害后,你可以重铸受伤角色区域内至多两张牌,然后摸四张牌。",
7878
guoyuan: "势国渊",
@@ -86,7 +86,7 @@ const translates = {
8686
mb_zhangyan: "势张燕",
8787
mb_zhangyan_prefix: "势",
8888
mbfeijing: "飞径",
89-
mbfeijing_info: "你可以将一张伤害类锦囊牌当做【杀】使用或打出。每回合限两次,你使用【杀】指定唯一目标时,可以令你与其中间逆时针或顺时针方向上的所有角色同时展示并依次弃置一张牌,然后你可以选择一种颜色,令弃置此颜色牌的角色成为此【杀】的额外目标,",
89+
mbfeijing_info: "你可以将一张伤害类锦囊牌当做【杀】使用或打出。每回合限两次,你使用【杀】指定唯一目标时,可以令你与其中间逆时针或顺时针方向上的所有角色同时展示并依次弃置一张手牌,然后你可以选择一种颜色,令弃置此颜色牌的角色成为此【杀】的额外目标,",
9090
mbxiaoge: "骁戈",
9191
mbxiaoge_info: "锁定技,你使用的【杀】:对因〖飞径〗成为此【杀】目标的角色造成伤害时,防止之,然后你回复1点体力并获得其因〖飞径〗弃置的牌;仅指定了一名角色为目标,此【杀】结算后你视为对其使用一张【决斗】。",
9292
pot_weiyan: "势魏延",

character/clan/skill.js

Lines changed: 25 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -2970,6 +2970,24 @@ const skills = {
29702970
},
29712971
},
29722972
clanjianji: {
2973+
getBool(event, player) {
2974+
const card = new lib.element.VCard({ name: "sha", isCard: true });
2975+
const targets = game.filterPlayer(target => {
2976+
return event.player.getPrevious() == target || event.player.getNext() == target;
2977+
});
2978+
const bool = !targets.some(target => {
2979+
return target.getHistory("useCard").length;
2980+
});
2981+
const goon =
2982+
player.hasUseTarget(card) &&
2983+
!game.getGlobalHistory("useCard", evt => {
2984+
if (!["sha", "juedou"].includes(evt.card.name)) {
2985+
return false;
2986+
}
2987+
return evt.targets?.some(target => targets.includes(target));
2988+
}).length;
2989+
return [bool, goon];
2990+
},
29732991
limited: true,
29742992
audio: 2,
29752993
trigger: { global: "phaseJieshuBegin" },
@@ -2983,41 +3001,14 @@ const skills = {
29833001
if (!targets.length) {
29843002
return false;
29853003
}
2986-
const card = new lib.element.VCard({ name: "sha", isCard: true });
2987-
return (
2988-
!targets.some(target => {
2989-
return target.getHistory("useCard").length;
2990-
}) ||
2991-
(player.hasUseTarget(card) &&
2992-
!targets.some(target => {
2993-
return game.hasPlayer2(current => {
2994-
return current.getHistory("useCard", evt => {
2995-
return evt.targets && evt.targets.includes(target);
2996-
}).length;
2997-
});
2998-
}))
2999-
);
3004+
const [bool, goon] = get.info("clanjianji").getBool(event, player);
3005+
return bool || goon;
30003006
},
30013007
skillAnimation: true,
30023008
animationColor: "watar",
30033009
prompt2(event, player) {
30043010
let str = "";
3005-
const card = new lib.element.VCard({ name: "sha", isCard: true });
3006-
const targets = game.filterPlayer(target => {
3007-
return event.player.getPrevious() == target || event.player.getNext() == target;
3008-
}),
3009-
bool = !targets.some(target => {
3010-
return target.getHistory("useCard").length;
3011-
}),
3012-
goon =
3013-
player.hasUseTarget(card) &&
3014-
!targets.some(target => {
3015-
return game.hasPlayer2(current => {
3016-
return current.getHistory("useCard", evt => {
3017-
return evt.targets && evt.targets.includes(target);
3018-
}).length;
3019-
});
3020-
});
3011+
const [bool, goon] = get.info("clanjianji").getBool(event, player);
30213012
if (bool) {
30223013
if (goon) {
30233014
str += "你可以";
@@ -3034,49 +3025,19 @@ const skills = {
30343025
},
30353026
check(event, player) {
30363027
const card = new lib.element.VCard({ name: "sha", isCard: true });
3037-
const targets = game.filterPlayer(target => {
3038-
return event.player.getPrevious() == target || event.player.getNext() == target;
3039-
}),
3040-
bool = !targets.some(target => {
3041-
return target.getHistory("useCard").length;
3042-
}),
3043-
goon =
3044-
player.hasUseTarget(card) &&
3045-
!targets.some(target => {
3046-
return game.hasPlayer2(current => {
3047-
return current.getHistory("useCard", evt => {
3048-
return evt.targets && evt.targets.includes(target);
3049-
}).length;
3050-
});
3051-
});
3028+
const [bool, goon] = get.info("clanjianji").getBool(event, player);
30523029
return (bool && (get.attitude(player, event.player) > 0 || event.player.countCards("h") > player.countCards("h"))) || (goon && player.hasValueTarget(card));
30533030
},
30543031
logTarget: "player",
30553032
async content(event, trigger, player) {
30563033
player.awakenSkill(event.name);
30573034
const card = new lib.element.VCard({ name: "sha", isCard: true });
3058-
const targets = game.filterPlayer(target => {
3059-
return trigger.player.getPrevious() == target || trigger.player.getNext() == target;
3060-
}),
3061-
boolx = !targets.some(target => {
3062-
return target.getHistory("useCard").length;
3063-
}),
3064-
goon =
3065-
player.hasUseTarget(card) &&
3066-
!targets.some(target => {
3067-
return game.hasPlayer2(current => {
3068-
return current.getHistory("useCard", evt => {
3069-
return evt.targets && evt.targets.includes(target);
3070-
}).length;
3071-
});
3072-
});
3035+
const [boolx, goon] = get.info(event.name).getBool(trigger, player);
30733036
if (boolx) {
30743037
let draw = false;
30753038
if (goon) {
3076-
const {
3077-
result: { bool },
3078-
} = await player.chooseBool("是否与" + get.translation(trigger.player) + "各摸一张牌?").set("choice", get.attitude(player, trigger.player) > 0 || trigger.player.countCards("h") > player.countCards("h"));
3079-
if (bool) {
3039+
const { result } = await player.chooseBool("是否与" + get.translation(trigger.player) + "各摸一张牌?").set("choice", get.attitude(player, trigger.player) > 0 || trigger.player.countCards("h") > player.countCards("h"));
3040+
if (result?.bool) {
30803041
draw = true;
30813042
}
30823043
} else {

character/clan/translate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ const translates = {
128128
clanlilun: "离论",
129129
clanlilun_info: "出牌阶段限一次,你可以重铸两张牌名相同的手牌(不能是你本回合以此法重铸过的牌名的牌),然后使用其中的一张牌。",
130130
clanjianji: "见机",
131-
clanjianji_info: "限定技,一名角色的结束阶段,若其上下家均未于本回合:使用过牌,则你可以与其各摸一张牌;成为过牌的目标,则你可以视为使用一张【杀】。",
131+
clanjianji_info: "限定技,一名角色的结束阶段,若其上下家均未于本回合:使用过牌,则你可以与其各摸一张牌;成为过【杀】或【决斗】的目标,则你可以视为使用一张【杀】。",
132132
clan_wangmingshan: "族王明山",
133133
clan_wangmingshan_prefix: "族",
134134
clantanque: "弹雀",

character/extra/skill.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2577,30 +2577,32 @@ const skills = {
25772577
},
25782578
fengliao: {
25792579
audio: 2,
2580-
zhuanhuanji: true,
2580+
zhuanhuanji(player, skill) {
2581+
player.storage[skill] = !player.storage[skill];
2582+
get.info(skill).init(player, skill);
2583+
},
2584+
init(player, skill) {
2585+
player.addTip(skill, `${get.translation(skill)} ${player.storage[skill] ? "伤害" : "摸牌"}`);
2586+
},
2587+
onremove(player, skill) {
2588+
player.removeTip(skill);
2589+
},
25812590
mark: true,
25822591
marktext: "☯",
2583-
intro: {
2584-
content(storage) {
2585-
if (storage) {
2586-
return "你使用牌指定唯一目标后,你对其造成1点火焰伤害。";
2587-
}
2588-
return "你使用牌指定唯一目标后,你令其摸一张牌。";
2589-
},
2590-
},
2592+
intro: { content: storage => `你使用牌指定唯一目标后,你${storage ? "对其造成1点火焰伤害" : "令其摸一张牌"}` },
25912593
trigger: { player: "useCardToPlayered" },
25922594
filter(event, player) {
25932595
return event.targets.length == 1;
25942596
},
25952597
forced: true,
25962598
logTarget: "target",
25972599
async content(event, trigger, player) {
2598-
player.changeZhuanhuanji("fengliao");
2600+
player.changeZhuanhuanji(event.name);
25992601
const { target } = trigger;
2600-
if (player.storage.fengliao) {
2602+
if (player.storage[event.name]) {
26012603
await target.draw();
26022604
} else {
2603-
await target.damage("fire", player);
2605+
await target.damage("fire");
26042606
}
26052607
},
26062608
mod: {

0 commit comments

Comments
 (0)