feedback7 R22-GHSIM: #298 rework — the one-interval gap of an instant skill with no attack of its own sits on the skill (nextCastAt), not on the operator's attack cooldown: its casts no longer replace the attacks / heals that were due; golden: back to 2 moves against the code before #298 (roster-033, roster-034)
Review of fb7-gh-sim (MERGE AFTER FIXES, high):4128965awrote u.atkCd after such a cast and gated the tick casts on it, so each cast took the attack that was due — 度算浪波 with 迅捷: 15 casts, 0 attacks in 20 s (silenced: 15 attacks); 冲锋号令·γ型 and 医疗无人机 lost one attack / heal per cast; after an idle cast the next attack waited the armed cooldown. PRTS 度算浪波 is an automatic instant throw, not an attack. Now (skills.js): such a cast (instant / charges, no spec.attack, not the DEFAULT cast right before an attack) sets skill.nextCastAt = now + the unit's attack interval, and the casts checked in skill.tick wait for it; the attack cooldown is not touched (reset on deployment, like opReadyAt). Measured (20 s, 引星棘刺 S1, 迅捷 229 layers): 12 casts — the first at 4 s as SP fills (#124), then one per 1.36 s — and 14 attacks, as many as silenced; without 迅捷 3 casts and 14 attacks; an idle cast does not delay the next attack (1 tick). [ASSUMED] one attack interval stays. Tests: bonds_addon «迅捷 refills 引星棘刺 S1 at once …» now asserts the casts take no attack (attacks = the silenced run's; fails on4128965a: 0 vs 4, and before it: 180 casts in 6 s); op_wang waits skill.nextCastAt; playtest6-skills (锏) back to its original timing. test/content + test/sim: 2835 pass. Docs: SIM.md §7, PLAYING.md 技能自动释放 (no attack is taken). Golden: against 4128965a's files roster (21) bonds (9) fields (9) matches (16) standins (6) diy (22) scenarios move back; against the same code with the gap disabled only roster-033 and roster-034 differ (引星棘刺 S1 recast within one interval) — the 84-scenario move of4128965acame from the attack cooldown, now gone.
This commit is contained in:
1 parent
38d4c3e4b5
commit
db29acf907
12 files changed
+1528
-1493
No files matched your search
+5
-5
@@ -924,11 +924,11 @@ instance) and skip `'counter'` / `'reflect'` damage. When the guard trips, the l
|
||||
AUTO skills are exempt; kits with their own automatic cast of a MANUAL skill check `skill.opCooling` (波登可 S1, 雪猎
|
||||
special bullets, 流形 copy). While a cast "next attack" (instant / charges with an attack override) waits for its
|
||||
attack, no further charge is cast. An instant / charges skill with no attack override of its own (a throw, a heal, a
|
||||
buff, a DP gain …) takes one attack cycle: its cast sets the unit's attack cooldown to at least its attack interval, and
|
||||
the casts checked every tick (the rules above, the DEFAULT of units that never attack, content trigger ranges) wait while
|
||||
that cooldown runs — attack speed paces them, and an SP refund that refills the bar at once (迅捷) no longer recasts one
|
||||
every tick (GitHub #298, 引星棘刺 S1; [ASSUMED] one attack interval: PRTS prints no 前后摇 for such casts); a cast right
|
||||
before an attack (DEFAULT) is followed by that attack as before. `gainSp` is ignored while a duration/ammo/toggle skill
|
||||
buff, a DP gain …) is cast from the tick (the rules above, the DEFAULT of units that never attack, content trigger
|
||||
ranges) at most once per attack interval of its unit — `skill.nextCastAt`, set by such a cast, reset on deployment —:
|
||||
attack speed paces it, and an SP refund that refills the bar at once (迅捷) no longer recasts it every tick (GitHub #298,
|
||||
引星棘刺 S1; [ASSUMED] one attack interval: PRTS prints no 前后摇 for such casts). The cast is no attack: the unit's
|
||||
attacks and heals keep their own rhythm, and its first cast comes as soon as it is ready (#124). `gainSp` is ignored while a duration/ammo/toggle skill
|
||||
runs (its bar shows the skill), whatever the reason, and — any reason but `'init'` — while the unit has the `noSp`
|
||||
flag (阻回: "停止并阻止任意形式的技力回复"; the operators' 凋亡 burst, §3).
|
||||
- Kinds: `duration` (mods for `duration` s), `ammo` (mods until `ammo` attacks were made, optional duration cap),
|
||||
|
||||
Reference in new issue
Block a user