mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-10-13 18:46:17 +08:00
fixed # 更新刘备配置和奖励
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
export function createOpeningEffects(game, owner, refreshEnergy) {
|
||||
const enemies = () => game.players.filter(player =>
|
||||
player !== owner && player.isAlive() &&
|
||||
player.storage?.mengsanCamp_shuying === "enemy");
|
||||
const addStatus = (player, key, skill, amount) => {
|
||||
player.storage[key] = (player.storage[key] || 0) + amount;
|
||||
player.addSkill(skill);
|
||||
player.markSkill(skill);
|
||||
};
|
||||
return async relic => {
|
||||
if (relic.effect === "firstTurnEnergy") {
|
||||
owner.storage.mengsanEnergy_shuying += relic.amount;
|
||||
refreshEnergy();
|
||||
} else if (relic.effect === "openingStrength") {
|
||||
addStatus(owner, "mengsanStrength_shuying",
|
||||
"mengsan_raider_strength_shuying", relic.amount);
|
||||
} else {
|
||||
for (const target of enemies()) {
|
||||
if (!owner.isAlive()) break;
|
||||
if (!target.isAlive()) continue;
|
||||
if (relic.effect === "openingVulnerable") {
|
||||
addStatus(target, "mengsanVulnerable_shuying",
|
||||
"mengsan_vulnerable_shuying", relic.amount);
|
||||
} else if (relic.effect === "openingWeak") {
|
||||
addStatus(target, "mengsanWeak_shuying",
|
||||
"mengsan_weak_shuying", relic.amount);
|
||||
} else if (relic.effect === "openingDamage") {
|
||||
const damage = target.damage(relic.amount, owner, "nocard");
|
||||
damage.mengsanScriptedSkill_shuying = true;
|
||||
await damage;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function createRelicCombatSkills(getBattle, getOwner) {
|
||||
return {
|
||||
mengsan_relic_attack_shuying: {
|
||||
trigger: { global: "damageBegin1" },
|
||||
forced: true, silent: true, popup: false, priority: 80,
|
||||
filter(event) {
|
||||
const source = event.source;
|
||||
return Boolean(getBattle()?.session.active && event.card &&
|
||||
!event.mengsanScriptedSkill_shuying &&
|
||||
((source === getOwner() &&
|
||||
source?.storage?.mengsanStrength_shuying > 0) ||
|
||||
source?.storage?.mengsanWeak_shuying > 0));
|
||||
},
|
||||
async content(event, trigger) {
|
||||
const source = trigger.source;
|
||||
if (source === getOwner()) {
|
||||
trigger.num += source.storage.mengsanStrength_shuying || 0;
|
||||
}
|
||||
if (source.storage.mengsanWeak_shuying > 0) {
|
||||
trigger.num = Math.floor(trigger.num * 0.75);
|
||||
}
|
||||
},
|
||||
},
|
||||
mengsan_weak_shuying: {
|
||||
mark: true, marktext: "弱",
|
||||
onremove(player) { delete player.storage.mengsanWeak_shuying; },
|
||||
intro: { content(storage, player) {
|
||||
return `剩余${player.storage.mengsanWeak_shuying || 0}回合:` +
|
||||
"攻击伤害减少25%(向下取整)";
|
||||
} },
|
||||
trigger: { player: "phaseAfter" },
|
||||
forced: true, silent: true, popup: false,
|
||||
async content(event, trigger, player) {
|
||||
player.storage.mengsanWeak_shuying = Math.max(0,
|
||||
(player.storage.mengsanWeak_shuying || 0) - 1);
|
||||
if (player.storage.mengsanWeak_shuying) {
|
||||
player.markSkill("mengsan_weak_shuying");
|
||||
} else player.removeSkill("mengsan_weak_shuying");
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user