feedback3 WF: a 傀儡师 leaves every switch at full HP (PRTS: the HP is reset during the switch, 不死 throughout) — a second 阿戈尔 devour mark inside the 1-s switch no longer leaves 归溟幽灵鲨's 替身 at 1 HP (community report #2)

This commit is contained in:
sganggs committed 2026-10-04 19:27:34 +08:00
1 parent 21eb496e02
commit e376cff5a8
3 files changed
+42 -3

No files matched your search

+11 -2
View File
@@ -128,15 +128,24 @@ const installDollkeeper = (battle, unit) => {
};
const at = (extra) => ({ x: unit.x, y: unit.y, id: unit.id, ...extra });
// a switch animation: "切换动画开始时会清除自身一切Buff" (header: the running skill and the statuses), then 1 s of 不死
// (the fatal hook below) 无敌 阻回 禁疗 孤立 强制缴械 and 眩晕 / 冻结 / 睡眠 immunity (beforeStatus below)
// (the fatal hook below) 无敌 阻回 禁疗 孤立 强制缴械 and 眩晕 / 冻结 / 睡眠 immunity (beforeStatus below). "切换途中重设自身
// 生命至最大值": the HP is set to the max at the start (enter / leave) and again when the switch ends, so she always
// leaves it at full HP — a lethal 流失 inside the switch (无敌 does not stop it, 不死 holds it at 1 HP: a later 阿戈尔
// devour mark on her) used to leave her the 替身's 20 s at 1 HP (community report #2)
const startSwitch = () => {
const sk = unit.skill;
if (sk && sk.active && sk.kind !== 'passive') sk.end('substitute');
for (const b of unit.buffs.slice()) if (b.status) battle.removeBuff(unit, b);
unit.trait.dollSwitching = true;
const done = () => { unit.trait.dollSwitching = false; };
const ended = () => {
done();
if (!unit.alive || !unit.deployed) return;
unit.markDirty();
unit.hp = unit.s.maxHp;
};
battle.addBuff(unit, {
key: 'trait:dollSwitching', duration: DOLL_SWITCH, onExpire: done, onRemove: done,
key: 'trait:dollSwitching', duration: DOLL_SWITCH, onExpire: ended, onRemove: done,
flags: { invulnerable: true, noSp: true, noHeal: true, isolated: true, disarm: true },
});
};