族韩韶 bug修复

This commit is contained in:
Spmario233 2024-05-05 18:03:00 +08:00
parent 20022976f3
commit 918b20a4e6
3 changed files with 39 additions and 49 deletions

View File

@ -2355,14 +2355,10 @@ const skills = {
filter(event, player) { filter(event, player) {
return game.hasPlayer(current => player.canCompare(current)); return game.hasPlayer(current => player.canCompare(current));
}, },
direct: true, async cost(event, trigger, player){
content() { event.result = await player.chooseTarget(get.prompt("clanliuju"), "与一名其他角色拼点,输的角色可以使用任意张拼点牌中的非基本牌", (card, player, target) => {
"step 0";
player
.chooseTarget(get.prompt("clanliuju"), "与一名其他角色拼点,输的角色可以使用任意张拼点牌中的非基本牌", (card, player, target) => {
return player.canCompare(target); return player.canCompare(target);
}) }).set("ai", target => {
.set("ai", target => {
var player = _status.event.player; var player = _status.event.player;
var ts = target.getCards("h").sort((a, b) => get.number(a) - get.number(b)); var ts = target.getCards("h").sort((a, b) => get.number(a) - get.number(b));
if (get.attitude(player, target) < 0) { if (get.attitude(player, target) < 0) {
@ -2373,54 +2369,46 @@ const skills = {
return Math.random() - 0.7; return Math.random() - 0.7;
} }
return get.type(ts[0]) != "basic"; return get.type(ts[0]) != "basic";
}); }).forResult();
"step 1"; },
if (result.bool) { content() {
var target = result.targets[0]; "step 0";
var target = targets[0];
event.target = target; event.target = target;
player.logSkill("clanliuju", target);
player.chooseToCompare(target).set("small", true); player.chooseToCompare(target).set("small", true);
} else event.finish(); "step 1";
"step 2";
if (!result.tie) { if (!result.tie) {
var loser = result.bool ? target : player; var loser = result.bool ? target : player;
var cards = []; var cards = [];
game.getGlobalHistory("cardMove", evt => { game.getGlobalHistory("cardMove", evt => {
if (evt.getParent(2) == event) if (evt.getParent(2).name === "chooseToCompare" && evt.getParent(3) === event) cards.addArray(evt.cards.filter(i => {
cards.addArray(
evt.cards.filter(i => {
return get.position(i, true) == "d" && get.type(i, null, false) != "basic"; return get.position(i, true) == "d" && get.type(i, null, false) != "basic";
}) }));
);
}); });
event.loser = loser; event.loser = loser;
event.distance = [get.distance(player, target), get.distance(target, player)]; event.distance = [get.distance(player, target), get.distance(target, player)];
if (cards.length) event.cards = cards; if (cards.length) event.cards = cards;
else event.finish(); else event.finish();
} else event.finish(); } else event.finish();
"step 3"; "step 2";
var cardsx = cards.filter(i => get.position(i, true) == "d" && event.loser.hasUseTarget(i)); var cardsx = cards.filter(i => get.position(i, true) == "d" && event.loser.hasUseTarget(i));
if (!cardsx.length) event.goto(6); if (!cardsx.length) event.goto(6);
else else event.loser.chooseButton(["留驹:是否使用其中的一张牌?", cardsx]).set("filterButton", button => {
event.loser
.chooseButton(["留驹:是否使用其中的一张牌?", cardsx])
.set("filterButton", button => {
return _status.event.player.hasUseTarget(button.link); return _status.event.player.hasUseTarget(button.link);
}) }).set("ai", button => {
.set("ai", button => {
return _status.event.player.getUseValue(button.link) + 0.1; return _status.event.player.getUseValue(button.link) + 0.1;
}); });
"step 4"; "step 3";
if (result.bool) { if (result.bool) {
var card = result.links[0]; var card = result.links[0];
event.cards.remove(card); event.cards.remove(card);
event.loser.$gain2(card, false); event.loser.$gain2(card, false);
game.delayx(); game.delayx();
event.loser.chooseUseTarget(true, card, false); event.loser.chooseUseTarget(true, card, false);
} else event.goto(6); } else event.goto(5);
"step 5"; "step 4";
if (cards.filter(i => get.position(i, true) == "d" && event.loser.hasUseTarget(i)).length) event.goto(3); if (cards.filter(i => get.position(i, true) == "d" && event.loser.hasUseTarget(i)).length) event.goto(3);
"step 6"; "step 5";
if (get.distance(player, target) != event.distance[0] || get.distance(target, player) != event.distance[1]) { if (get.distance(player, target) != event.distance[0] || get.distance(target, player) != event.distance[1]) {
player.restoreSkill("clanxumin"); player.restoreSkill("clanxumin");
game.log(player, "重置了", "#g【恤民】"); game.log(player, "重置了", "#g【恤民】");

View File

@ -20,9 +20,7 @@ const skills = {
const map = lib.skill.dcbenxi.getMap(), const map = lib.skill.dcbenxi.getMap(),
list = Object.keys(map); list = Object.keys(map);
if (list.length > 0) { if (list.length > 0) {
const skill = list.randomGet(), const skill = list.randomGet(), voiceMap = game.parseSkillTextMap(skill, map[skill]);
voiceMap = game.parseSkillTextMap(skill, map[skill]);
console.log(voiceMap);
player.storage.dcbenxi_pending = skill; player.storage.dcbenxi_pending = skill;
findaudio: for (let data of voiceMap) { findaudio: for (let data of voiceMap) {
if(!data.text) continue; if(!data.text) continue;

View File

@ -2793,8 +2793,12 @@ const skills = {
trigger: { player: ["gainAfter", "loseAsyncAfter"] }, trigger: { player: ["gainAfter", "loseAsyncAfter"] },
forced: true, forced: true,
filter: (event, player) => { filter: (event, player) => {
if (event.getParent("phaseDraw", true)) return false; const phaseDraw = event.getParent("phaseDraw");
const evt = player.getHistory("gain", i => !i.getParent("phaseDraw", true))[0]; if (phaseDraw && phaseDraw.player === player) return false;
const evt = player.getHistory("gain").find(i => {
const phaseDraw = i.getParent("phaseDraw");
return (!phaseDraw || phaseDraw.player !== player);
});
if (!evt) return false; if (!evt) return false;
if (event.name == "gain") { if (event.name == "gain") {
if (evt != event || event.getlx === false) return false; if (evt != event || event.getlx === false) return false;