feedback1 WD: forms reach late views, stable enemy shapes, review fixes
- Every form change goes through content setForm(): the unit keeps it (e.form) and UnitInfo publishes it, so a view built mid-battle from fieldMeta (a watched teammate's field, 联防 observers, a reconnect) starts in the current form instead of the first-form model. - Enemy profile (dmgType) and Unit moving / form are initialised at spawn: one object shape for the sim's hot loop (the boss-field bench is back at the base speed). - 转译基底·α: an HP loss cannot knock out its original form (no death clip). - 假想敌:再生: 1 s 重生 and walking 傀儡 cited from PRTS; shields within 1.8 as the 再生状态 begins. - Renderer: a 重生's closing clip (and the ember's stand-up clip) is timed from the fx dur to end with it, so the next form attacks on its own clips. - Docs: ASSETS FORMS list, SIM form fx, PLAYING 隐匿 wording.
This commit is contained in:
1 parent
06be81f67e
commit
5c23eeb804
12 files changed
+318
-88
No files matched your search
@@ -1,7 +1,8 @@
|
||||
// server/sim/snapshot.js — compact serialization for clients (DESIGN §8.2).
|
||||
//
|
||||
// b.snap = { fieldId, t, units: [[id, x, y, hp, maxHp, sp, spMax, flags, anim]], dp, killed, total }
|
||||
// UnitInfo = { id, kind, side, ownerId, defId, name, tier, golden, spine, avatar, x, y, facing, dir, maxHp, skillIndex?, moduleId? }
|
||||
// UnitInfo = { id, kind, side, ownerId, defId, name, tier, golden, spine, avatar, x, y, facing, dir, maxHp, motion?, boss?, uid?,
|
||||
// form?, skillIndex?, moduleId? } (form = an enemy's current model form, content/enemies.js setForm)
|
||||
// dir = 'UP'|'RIGHT'|'DOWN'|'LEFT' (allies: the deploy direction, sim/dir.js); facing = its horizontal sign (±1).
|
||||
// flags bits & anim codes come from shared/constants.js (UF / ANIM).
|
||||
|
||||
@@ -32,6 +33,9 @@ export function unitInfo(u) {
|
||||
maxHp: Math.max(1, Math.round(u.s.maxHp)),
|
||||
motion: u.motion === 'FLY' ? 'FLY' : undefined,
|
||||
boss: u.isBoss ? true : undefined,
|
||||
// an enemy's current model form (content/enemies.js setForm, render/units.js FORMS): a view built mid-battle
|
||||
// (fieldMeta — a watched teammate's field, 联防 observers, a reconnect) starts on that clip set
|
||||
form: typeof u.form === 'string' ? u.form : undefined,
|
||||
uid: u.uid ?? undefined,
|
||||
// DESIGN §16: the equipped skill's index (the renderer / audio pick that skill's Spine clip and sound)
|
||||
skillIndex: u.side === 'ally' && Number.isInteger(d.skill?.index) ? d.skill.index : undefined,
|
||||
|
||||
Reference in new issue
Block a user