feedback5: merge feedback4 (583899d) — W4B ported: 阿戈尔's devoured base ATK as a 最终加算 (atkFinal), a fallen marker's marks still resolve, 缇缇 S2 pulses re-enter sleep for her trait (applyStatus reenter in server/sim/battle/status.js; the 缇缇 kit in kits/ops/chess_char_5_02-titi.js; Battle.js / tier5.js stay feedback5's façade and shim); golden: roster-042, bond-egirShip-high, coop2-ABYSS-10-boosted moved, the same three as on feedback4 (bond-egirShip-high identical to it)
This commit is contained in:
commit
c6827a0eaf
20 files changed
+302
-96
No files matched your search
@@ -20,7 +20,8 @@ export default {
|
||||
// enemies, sleeping enemies take 30 % ATK arts/s. T2 勇气的报偿: Sargon/Minos ops above 50 % HP get +20 ASPD.
|
||||
// S1 缓蚀 (duration): ATK +, attack@prob chance per attack to sleep the target attack@sleep s.
|
||||
// S2 封护 (duration): no attacks, ATK +; she and the lowest-HP-ratio operator in her range sleep until the skill ends
|
||||
// (沉睡 = invulnerable), enemies around either of them keep falling asleep; T1 ×talent_scale.
|
||||
// (沉睡 = invulnerable), enemies around either of them keep falling asleep — each 0.25 s pulse a new 沉睡 entry for
|
||||
// her trait (GitHub #162, DESIGN §24.8); T1 ×talent_scale.
|
||||
chess_char_5_02_a: (bb, chess, def) => {
|
||||
const t0 = talent(chess, 0), t1 = talent(chess, 1);
|
||||
const sid = selectedId(chess, def);
|
||||
@@ -61,9 +62,22 @@ export default {
|
||||
unit.mem.titiWardAcc += dt;
|
||||
if (unit.mem.titiWardAcc < AURA_IV - 1e-9) return;
|
||||
unit.mem.titiWardAcc = 0;
|
||||
// "期间持续使自身与该目标周围的敌人陷入沉睡": every AURA_IV (0.25 s) the enemies around a ward sleep AURA_DUR (0.5 s),
|
||||
// and each pulse is a new 沉睡 entry (`reenter`), so her trait garrison_125 「每当范围内有敌人或干员进入沉睡或晕眩时」
|
||||
// climbs on it to its per-battle cap (GitHub #162, the reporter's memory of the official mode: 「攻击范围内有陷入
|
||||
// 沉睡就开始迅速增加直至上限」; the owner's decision of 2026-10-06, DESIGN §24.8). [ASSUMED] the pulse timing (not in
|
||||
// the data). Once per enemy and pulse (one beside both wards re-enters once); not while a longer sleep from
|
||||
// elsewhere holds it. The 0.5 s sleep outlasts the 0.25 s, so the enemy never wakes between pulses — only the
|
||||
// `entered` flag of the pulse changed (until 0.1.3 the first pulse alone was an entry).
|
||||
const pulsed = new Set();
|
||||
for (const a of unit.mem.titiWard || []) {
|
||||
if (!a.alive || !a.deployed || !a.findBuff('titi:ward')) continue;
|
||||
for (const e of battle.foesInRadius(a.x, a.y, RING1)) if (e.alive) battle.applyStatus(e, 'sleep', { duration: AURA_DUR, source: unit });
|
||||
for (const e of battle.foesInRadius(a.x, a.y, RING1)) {
|
||||
if (!e.alive) continue;
|
||||
const reenter = !pulsed.has(e) && !e.buffs.some((b) => (b.status ?? b.key) === 'sleep' && b.timeLeft > AURA_DUR + 1e-9);
|
||||
pulsed.add(e);
|
||||
battle.applyStatus(e, 'sleep', { duration: AURA_DUR, source: unit, reenter });
|
||||
}
|
||||
}
|
||||
},
|
||||
onEnd({ battle, unit }) {
|
||||
|
||||
Reference in new issue
Block a user