Skip to content

Commit 083ca6f

Browse files
authored
Merge pull request #2652 from xjm0708/PR-Branch
bugfix&新卡牌
2 parents 08812da + 4249f3a commit 083ca6f

File tree

19 files changed

+2533
-906
lines changed

19 files changed

+2533
-906
lines changed

card/kaiheiji.js

Lines changed: 655 additions & 47 deletions
Large diffs are not rendered by default.

character/extra/skill.js

Lines changed: 51 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -904,12 +904,14 @@ const skills = {
904904
const targets = game.filterPlayer(target => target != player);
905905
player.line(targets);
906906
if (choices.includes("fengyin")) {
907+
game.log(player, "选择了", "#y准备阶段、结束阶段", "的效果");
907908
for (const target of targets) {
908909
target.when({ player: "phaseJieshuBefore" }).then(() => player.addTempSkill("fengyin", ["phaseBefore", "phaseChange", "phaseAfter"]));
909910
target.when({ player: "phaseZhunbeiBefore" }).then(() => player.addTempSkill("fengyin", ["phaseBefore", "phaseChange", "phaseAfter"]));
910911
}
911912
}
912913
if (choices.includes("judge")) {
914+
game.log(player, "选择了", "#y判定阶段", "的效果");
913915
for (const target of targets) {
914916
target.when({ player: "phaseJudgeBegin" }).step(async (event, trigger, player) => {
915917
const result = await player
@@ -929,51 +931,62 @@ const skills = {
929931
}
930932
}
931933
if (choices.includes("discard")) {
932-
game.addGlobalSkill("dclishi_discard");
934+
game.log(player, "选择了", "#y摸牌阶段", "的效果");
933935
for (const target of targets) {
934-
target.when({ player: "phaseDrawBegin" }).then(() => trigger.set("dclishi", player.playerid));
936+
target.addTempSkill("dclishi_discard", { player: "phaseDrawAfter" });
937+
//target.when({ player: "phaseDrawBegin" }).then(() => trigger.set("dclishi", player.playerid));
935938
}
936939
}
937940
if (choices.includes("use")) {
941+
game.log(player, "选择了", "#y出牌阶段", "的效果");
938942
for (const target of targets) {
939-
target.when({ player: "phaseUseBegin" }).then(() => player.addTempSkill("dclishi_limit", ["phaseBefore", "phaseChange", "phaseAfter"]));
943+
target.addTempSkill("dclishi_limit", { player: "phaseUseAfter" });
944+
//target.when({ player: "phaseUseBegin" }).then(() => player.addTempSkill("dclishi_limit", ["phaseBefore", "phaseChange", "phaseAfter"]));
940945
}
941946
}
942947
if (choices.includes("gain")) {
943-
player.addSkill("dclishi_gain");
948+
game.log(player, "选择了", "#y弃牌阶段", "的效果");
944949
for (const target of targets) {
945-
target.when({ player: "phaseDiscardBegin" }).then(() => trigger.set("dclishi", player.playerid));
950+
target.addTempSkill("dclishi_gain", { player: "phaseDiscardAfter" });
951+
target.markAuto("dclishi_gain", player);
952+
//target.when({ player: "phaseDiscardBegin" }).then(() => trigger.set("dclishi", player.playerid));
946953
}
947954
}
948955
},
949956
subSkill: {
950957
gain: {
951958
trigger: {
952-
global: ["loseAsyncAfter", "loseAfter"],
959+
player: ["loseAfter"],
960+
global: ["loseAsyncAfter"],
953961
},
954962
charlotte: true,
955963
forced: true,
956964
popup: false,
965+
onremove: true,
957966
filter(event, player) {
958967
if (event.type !== "discard") {
959968
return false;
960969
}
961970
const evt = event.getParent("phaseDiscard");
962-
if (evt?.dclishi !== event.player.playerid) {
963-
return false;
964-
}
965-
const evt2 = event.getl(event.player);
966-
return evt?.name === "phaseDiscard" && evt?.player === event.player && evt2?.cards2?.filterInD("d");
971+
const evt2 = event.getl(player);
972+
return evt?.name === "phaseDiscard" && evt?.player === player && evt2?.cards2?.filterInD("d");
967973
},
968974
async content(event, trigger, player) {
969-
await player.gain(trigger.getl(trigger.player).cards2.filterInD("d"), "gain2");
975+
const gainer = player
976+
.getStorage(event.name)
977+
.sortBySeat()
978+
.find(target => target.isIn());
979+
if (gainer) {
980+
await gainer.gain(trigger.getl(player).cards2.filterInD("d"), "gain2");
981+
}
970982
},
971983
},
972984
limit: {
973985
charlotte: true,
974986
onremove: true,
975987
trigger: { player: "useCard1" },
976988
silent: true,
989+
firstDo: true,
977990
filter(event, player) {
978991
return player.isPhaseUsing();
979992
},
@@ -1000,15 +1013,15 @@ const skills = {
10001013
forced: true,
10011014
popup: false,
10021015
trigger: {
1003-
global: ["gainAfter", "loseAsyncAfter"],
1016+
player: ["gainAfter"],
10041017
},
10051018
filter(event, player) {
10061019
const evt = event.getParent("phaseDraw");
1007-
const cards = event?.getg?.(player);
1008-
return event.getParent()?.name == "draw" && evt?.name === "phaseDraw" && evt?.dclishi === player.playerid && cards.map(card => get.color(card)).unique().length == 1;
1020+
const cards = event.getg?.(player);
1021+
return event.getParent()?.name == "draw" && evt?.name === "phaseDraw" && evt?.player === player && cards.map(card => get.color(card)).unique().length == 1;
10091022
},
10101023
async content(event, trigger, player) {
1011-
let cards = trigger.getg(player);
1024+
const cards = trigger.getg(player);
10121025
await player.modedDiscard(cards);
10131026
},
10141027
},
@@ -10732,11 +10745,7 @@ const skills = {
1073210745
audio: 2,
1073310746
async cost(event, trigger, player) {
1073410747
const {
10735-
result: {
10736-
bool,
10737-
targets,
10738-
links: cost_data,
10739-
}
10748+
result: { bool, targets, links: cost_data },
1074010749
} = await player
1074110750
.chooseButtonTarget({
1074210751
createDialog: [get.prompt2(event.skill), player.getExpansions("qixing")],
@@ -10792,12 +10801,12 @@ const skills = {
1079210801
return -1;
1079310802
},
1079410803
})
10795-
.set("allUse", player.getExpansions("qixing").length >= game.countPlayer(current => get.attitude(player, current) > 4) * 2)
10804+
.set("allUse", player.getExpansions("qixing").length >= game.countPlayer(current => get.attitude(player, current) > 4) * 2);
1079610805
event.result = {
1079710806
bool: bool,
1079810807
targets: targets?.sortBySeat(),
1079910808
cost_data: cost_data,
10800-
}
10809+
};
1080110810
},
1080210811
async content(event, trigger, player) {
1080310812
const { targets, cost_data: cards } = event;
@@ -10860,33 +10869,30 @@ const skills = {
1086010869
},
1086110870
async cost(event, trigger, player) {
1086210871
const {
10863-
result: {
10864-
bool,
10865-
targets,
10866-
links: cost_data,
10867-
}
10868-
} = await player
10869-
.chooseButtonTarget({
10870-
createDialog: [get.prompt2(event.skill), player.getExpansions("qixing")],
10871-
selectButton: 1,
10872-
filterTarget: true,
10873-
ai1(button) {
10874-
if (game.hasPlayer(target => {
10872+
result: { bool, targets, links: cost_data },
10873+
} = await player.chooseButtonTarget({
10874+
createDialog: [get.prompt2(event.skill), player.getExpansions("qixing")],
10875+
selectButton: 1,
10876+
filterTarget: true,
10877+
ai1(button) {
10878+
if (
10879+
game.hasPlayer(target => {
1087510880
return get.attitude(get.player(), target) < 0;
10876-
})) {
10877-
return 1;
10878-
}
10879-
return 0;
10880-
},
10881-
ai2(target) {
10882-
return -get.attitude(get.player(), target);
10883-
},
10884-
});
10881+
})
10882+
) {
10883+
return 1;
10884+
}
10885+
return 0;
10886+
},
10887+
ai2(target) {
10888+
return -get.attitude(get.player(), target);
10889+
},
10890+
});
1088510891
event.result = {
1088610892
bool: bool,
1088710893
targets: targets?.sortBySeat(),
1088810894
cost_data: cost_data,
10889-
}
10895+
};
1089010896
},
1089110897
async content(event, trigger, player) {
1089210898
const { targets, cost_data: cards } = event;

0 commit comments

Comments
 (0)