Merge pull request #1395 from mengxinzxz/PR-Branch

bugfix+技能调整
This commit is contained in:
Spmario233 2024-05-27 23:53:49 +08:00 committed by GitHub
commit bef0f50844
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 43 additions and 58 deletions

View File

@ -3947,12 +3947,6 @@ const skills = {
//裴元绍
dcmoyu: {
audio: 2,
init() {
game.addGlobalSkill("dcmoyu_ai");
},
onremove() {
if (!game.hasPlayer(i => i.hasSkill("dcmoyu"), true)) game.removeGlobalSkill("dcmoyu_ai");
},
enable: "phaseUse",
filter(event, player) {
return game.hasPlayer(current => lib.skill.dcmoyu.filterTarget(null, player, current));
@ -3962,7 +3956,7 @@ const skills = {
},
async content(event, trigger, player) {
const target = event.target;
player.addTempSkill("dcmoyu_clear");
player.addTempSkill("dcmoyu_clear", "phaseUseAfter");
player.markAuto("dcmoyu_clear", [target]);
await player.gainPlayerCard(target, "hej", true, 1 + player.hasSkill("dcmoyu_add"));
player.removeSkill("dcmoyu_add");
@ -3979,10 +3973,6 @@ const skills = {
return lib.filter.targetEnabled.apply(this, arguments);
})
.set("sourcex", player)
.set("num", num)
.set("oncard", card => {
_status.event.baseDamage = _status.event.getParent().num;
})
.forResult();
if (result.bool) {
if (
@ -3991,11 +3981,13 @@ const skills = {
})
) {
player.tempBanSkill("dcmoyu");
player.addTempSkill("dcmoyu_ban");
} else {
player.addTempSkill("dcmoyu_add", "phaseChange");
}
}
},
global: "dcmoyu_ai",
subSkill: {
clear: {
charlotte: true,
@ -4004,7 +3996,7 @@ const skills = {
ban: {
charlotte: true,
mark: true,
marktext: "欲",
marktext: '<span style="text-decoration: line-through;">欲</span>',
intro: { content: "偷马贼被反打了!" },
},
add: {
@ -4014,15 +4006,6 @@ const skills = {
intro: { content: "欲望加速,下次抢两张!" },
},
ai: {
trigger: { player: "dieAfter" },
filter: () => {
return !game.hasPlayer(i => i.hasSkill("dcmoyu"), true);
},
silent: true,
forceDie: true,
content: () => {
game.removeGlobalSkill("dcmoyu_ai");
},
ai: {
effect: {
target: function (card, player, target, current) {

View File

@ -688,6 +688,7 @@ const skills = {
);
},
async content(event, trigger, player) {
player.awakenSkill("jsrgjiebing");
await player.gainMaxHp(2);
await player.recover(2);
await player.addSkills("jsrgbaowei");
@ -9311,7 +9312,7 @@ const skills = {
aiValue: (player, card, num) => {
if (num > 0 && get.itemtype(card) === "card" && card.name !== "zhuge" && get.subtype(card) === "equip1" && !player.getEquip(1)) return 0.01 * num;
},
aiUseful: () => {
aiUseful: function () {
return lib.skill.jsrgzhenqiao.mod.aiValue.apply(this, arguments);
},
},

View File

@ -115,7 +115,7 @@ const skills = {
let cards = [];
if (event.name == "cardsDiscard") {
const evt = event.getParent().relatedEvent;
if (evt && evt.name == "judge" && evt.player == player) {
if (evt && evt.name == "judge" && evt.player != player) {
cards.addArray(event.cards.filter(i => get.position(i, true) == "d"));
}
} else {

View File

@ -1419,33 +1419,28 @@ const skills = {
break;
}
case 4: {
let map = {};
game.dead.forEach(target => (map[target.playerid] = get.translation(target)));
const {
result: { control },
} = await player
.chooseControl(Object.values(map))
.set("ai", () => {
const getNum = target => {
let num = 0;
if (target.name && lib.character[target.name]) num += get.rank(target.name, true);
if (target.name2 && lib.character[target.name2]) num += get.rank(target.name2, true);
return num;
};
let controls = _status.event.controls.slice();
controls = controls.map(name => [name, game.dead.find(target => _status.event.map[target.playerid] == name)]);
controls.sort((a, b) => getNum(b[1]) - getNum(a[1]));
return controls[0][0];
const result = await player
.chooseTarget(
"行殇:请选择一名已阵亡角色",
(card, player, target) => {
return target.isDead();
},
true,
"获得一名已阵亡角色的所有技能,然后失去〖行殇〗〖放逐〗〖颂威〗"
)
.set("ai", target => {
return ["name", "name1", "name2"].reduce((sum, name) => {
if (!target[name] || !lib.character[target[name]] || (name == "name1" && target.name1 == target.name)) return sum;
return sum + get.rank(target[name], true);
}, 0);
})
.set("prompt", "获得一名已阵亡角色的所有技能")
.set("map", map);
if (control) {
const target2 = game.dead.find(targetx => map[targetx.playerid] == control);
.set("deadTarget", true)
.forResult();
if (result.bool) {
const target2 = result.targets[0];
player.line(target2);
game.log(player, "选择了", target2);
const skills = target2.getStockSkills(true, true);
const skills2 = ["sbxingshang", "sbfangzhu", "sbsongwei"];
player.changeSkills(skills, skills2);
await player.changeSkills(target2.getStockSkills(true, true), ["sbxingshang", "sbfangzhu", "sbsongwei"]);
}
}
}
@ -1485,7 +1480,7 @@ const skills = {
case 3:
return str + "移去5个“颂”标记令一名体力上限小于10的角色加1点体力上限并回复1点体力然后随机恢复一个被废除的装备栏";
case 4:
return str + "移去5个“颂”标记获得一名已阵亡角色的所有技能然后失去武将牌上的所有技能";
return str + "移去5个“颂”标记获得一名已阵亡角色的所有技能然后失去〖行殇〗〖放逐〗〖颂威〗";
}
},
},

View File

@ -1,6 +1,6 @@
const characters = {
caimao: ["male", "wei", 4, ["olzuolian", "oljingzhou"]],
ol_peixiu: ["male", "wei", 3, ["olmaozhu", "oljinlan"]],
ol_peixiu: ["male", "wei", 4, ["olmaozhu", "oljinlan"]],
yadan: ["male", "qun", 4, ["olqingya", "oltielun"]],
sp_sunce: ["male", "qun", 4, ["olliantao"]],
ol_liupi: ["male", "qun", 4, ["olyicheng"]],

View File

@ -663,7 +663,7 @@ const skills = {
cards = moved[0].slice();
if (cards.length) {
await game.cardsGotoOrdering(cards);
for (let i = cards.length - 1; i--; i >= 0) {
for (let i = cards.length - 1; i >= 0; i--) {
ui.cardPile.insertBefore(cards[i], ui.cardPile.firstChild);
}
game.log(cards, "被放回了牌堆顶");
@ -687,7 +687,7 @@ const skills = {
cards = hs.slice();
if (cards.length) {
await game.cardsGotoOrdering(cards);
for (let i = cards.length - 1; i--; i >= 0) {
for (let i = cards.length - 1; i >= 0; i--) {
ui.cardPile.insertBefore(cards[i], ui.cardPile.firstChild);
}
game.log(cards, "被放回了牌堆顶");

View File

@ -240,6 +240,7 @@ const skills = {
selectCard: 2,
position: "hes",
viewAs: { name: "juedou" },
selectTarget: 2,
viewAsFilter(player) {
if (player.countCards("hes") < 2) return false;
},

View File

@ -208,8 +208,8 @@ const translates = {
stddaizui: "戴罪",
stddaizui_info: "锁定技,当你受到伤害后,你视为本轮未发动过〖盗书〗。",
stdxiongxia: "凶侠",
stdxiongxia_info: "你可以将两张牌当作【决斗】使用。你以此法使用的【决斗】结算完毕后,若所有目标角色都受到了此牌造成的伤害,则〖凶侠〗于本回合失效。",
stdhuizhan: "挥",
stdxiongxia_info: "你可以将两张牌当作【决斗】对两名其他角色使用。你以此法使用的【决斗】结算完毕后,若所有目标角色都受到了此牌造成的伤害,则〖凶侠〗于本回合失效。",
stdhuizhan: "挥",
stdhuizhan_info: "你使用【杀】可以额外指定至多两个目标。若如此做,目标角色响应此【杀】时,其他目标角色可以代替其使用【闪】。",
stdmingfa: "明伐",
stdmingfa_info: "出牌阶段你可以对一名体力值大于1的角色造成1点伤害然后此技能失效直至其死亡或回复体力。",

View File

@ -798,6 +798,7 @@ const skills = {
subSkill: {
g: {
audio: "dcwuyou",
forceaudio: true,
enable: "phaseUse",
usable: 1,
filter(event, player) {
@ -934,6 +935,10 @@ const skills = {
if (!card.cards) return;
if (card.cards.some(card => card.hasGaintag("dcwuyou_transfer"))) return Infinity;
},
targetInRange(card, player) {
if (!card.cards) return;
if (card.cards.some(card => card.hasGaintag("dcwuyou_transfer"))) return true;
},
},
},
},
@ -1049,11 +1054,11 @@ const skills = {
result: {
player(player) {
const enemies = game.filterPlayer(current => {
return get.rawAttitude(player, current) < 0 && get.attitude(player, current) >= 0;
}),
knownEnemies = game.filterPlayer(current => {
return get.attitude(player, current) < 0;
});
return (!get.rawAttitude || get.rawAttitude(player, current) < 0) && get.attitude(player, current) >= 0;
}),
knownEnemies = game.filterPlayer(current => {
return get.attitude(player, current) < 0;
});
if ((!knownEnemies.length && player.countCards("e") > 1) || (player.getHp() > 3 && enemies.length > 0 && knownEnemies.length < 2 && knownEnemies.length < enemies.length && !knownEnemies.some(enemy => get.attitude(player, enemy) <= -9))) return 0;
const val1 = game
.filterPlayer()