feedback5: merge W5AA — community reports of 2026-10-06: the 孤岛风云 prisoners leave the gate confined (grey) and change model as their prefabs do, the 4th attack hits freed; a bounty enemy that dies with no operator behind it pays in 联防 too (the helper whose half it fell on); 忍冬's trigger and 枯朽之种's bounty were already fixed (pinned by tests); DESIGN §25.14 after round 18's §25.13; data/enemies.json regenerated offline on the merged code (round 18's model quirks + the prisoners' clips); golden: vs feedback5 exactly W5AA's moves (26 battles, solo-ABYSS-2, coop2-NORMAL-3, coop3-ABYSS-5, solo-HARD-9-boosted), vs W5AA exactly round 18's boss-pool moves
This commit is contained in:
commit
714af994fc
26 files changed
+1081
-366
No files matched your search
@@ -206,6 +206,11 @@ export const EL_BAR = Object.freeze({ icon: 0.15, min: 8, max: 15, enemy: 0.8, g
|
||||
* clip (`end`) is timed from the 重生's `dur` (the 'telegraph' fx) to end with it, so the second form walks and
|
||||
* attacks on its own clips at once (a view that missed the timing — built mid-重生 — skips the closing clip);
|
||||
* - 守墓石像 (forms 'stone' → 'fly'): the statue on Sleep [ASSUMED by name], then the flyer's *_2 clips.
|
||||
* - the 孤岛风云 prisoners (sim content/enemies/archetypes.js prisoner: forms 'warning' → 'liberty'), as their official
|
||||
* battle prefabs' modes: confined on the manifest's clips (the grey collar light: 普通囚犯 / 老练囚犯 Idle3 … through
|
||||
* tools/assets/spine.mjs PREFAB_SPINE_ROLES, 强壮囚犯 Idle …, 拳师囚犯 / 重犯 / 传奇重犯 *_grey), mode R — the warning
|
||||
* before the last confined attack — on the blinking orange set (*2, *_orange), mode L — 【解放】 — on the red set
|
||||
* (普通囚犯 / 老练囚犯 Idle …, 强壮囚犯 *3, the others *_red); no change clip (the prefab switches the set at once).
|
||||
* - the 傀儡师 operators' <替身> (sim professions.js installDollkeeper: form 'doll' from the start of the switch to it
|
||||
* until the switch back starts, GitHub issue #44): the skeletons draw it on their *_B clips (their own slots — the
|
||||
* 本体's are hidden). 归溟幽灵鲨: Start_B fades it in (the 1 s switch), Idle_B (it never attacks), Die_B breaks it
|
||||
@@ -239,6 +244,13 @@ const STATUE = Object.freeze({
|
||||
fly: Object.freeze({ change: null, roles: clipSet('Idle_2', 'Move_2', 'Die_2', 'Attack_2') }),
|
||||
});
|
||||
const JAKILL2 = clipSet('C2_Idle', 'C2_Move', 'C2_Die', 'C2_Attack');
|
||||
/** A prisoner's 'warning' (mode R) and 'liberty' (mode L) clip sets: the clip-name suffix of each (see the list above). */
|
||||
const prisoner = (warn, free) => Object.freeze({
|
||||
warning: Object.freeze({ change: null, roles: clipSet(`Idle${warn}`, `Move${warn}`, `Die${warn}`, `Attack${warn}`) }),
|
||||
liberty: Object.freeze({ change: null, roles: clipSet(`Idle${free}`, `Move${free}`, `Die${free}`, `Attack${free}`) }),
|
||||
});
|
||||
const PRISONER = prisoner('2', '');
|
||||
const PRISONER_COLOURED = prisoner('_orange', '_red');
|
||||
/** A 傀儡师's 替身 roles: idle `idle`, death `die`, attack `attack` (null: none), no skill clip of its own. */
|
||||
const dollRoles = (idle, die, attack = null) => Object.freeze({
|
||||
idle, deploy: idle, die, attack: attack ? Object.freeze({ begin: null, loop: attack, end: null }) : null, attackDown: null, skill: null,
|
||||
@@ -282,6 +294,12 @@ export const FORMS = Object.freeze({
|
||||
}),
|
||||
enemy_1172_dugago: STATUE,
|
||||
enemy_1172_dugago_2: STATUE,
|
||||
enemy_1116_liprr: PRISONER,
|
||||
enemy_1116_liprr_2: PRISONER,
|
||||
enemy_1119_vofsd: prisoner('2', '3'),
|
||||
enemy_1118_lidbox_2: PRISONER_COLOURED,
|
||||
enemy_1121_lifbos: PRISONER_COLOURED,
|
||||
enemy_1121_lifbos_2: PRISONER_COLOURED,
|
||||
});
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user