Hustler-Pixelwelt T4: Overseer ohne Punkte, Zzz, Dampf und Stecker-Schild, außerhalb von „arbeitet“ nur gedimmt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-22 08:05:26 +00:00
1 parent 43b4dcbe9f
commit 93ee128879
2 files changed
+16 -11

No files matched your search

+7 -5
View File
@@ -89,8 +89,9 @@ export function figurZustand(workerId, eintrag, { paused = false } = {}) {
hut,
pose,
klasse: ovs ? 'hk-spr hk-ovs-klein' : `hk-spr hk-fig-${hut}-${pose}`,
punkte: status === 'wartet',
zzz: status === 'leerlauf',
// Der Overseer ist ein schwebender Kristall: keine Kaffeepunkte und kein Zzz, außerhalb von „arbeitet“ nur gedimmt (Controller-Beschluss)
punkte: status === 'wartet' && !ovs,
zzz: status === 'leerlauf' && !ovs,
bildschirm: status === 'arbeitet' && !ovs,
radar: workerId === 'rita' && status === 'arbeitet',
alarm: status === 'fehler',
@@ -174,10 +175,11 @@ export function detailModell(workerId, eintrag, trace, now) {
figur: ovs ? 'hk-spr hk-gr-overseer' : `hk-spr hk-gr-${hut}-${POSE_NACH_STATUS[status]}`,
overlays: {
monitor: status === 'arbeitet' && !ovs,
dampf: status === 'wartet',
zzz: status === 'leerlauf',
dampf: status === 'wartet' && !ovs,
zzz: status === 'leerlauf' && !ovs,
wirbel: ovs,
schild: status === 'grau',
schild: status === 'grau' && !ovs,
gedimmt: ovs && status !== 'arbeitet',
alarm: status === 'fehler',
},
}
+9 -6
View File
@@ -200,6 +200,7 @@ test('figurZustand: Overseer in allen Status – eigenes Sprite, gedimmt außer
assert.equal(f.raumGrau, false, status)
assert.equal(f.raum, 'bruecke', status)
assert.equal(f.alarm, status === 'fehler', status)
assert.equal(f.punkte, false, status); assert.equal(f.zzz, false, status)
assert.match(f.label, /^Overseer, Opus, /, status)
}
assert.equal(figurZustand('otto', eintrag('arbeitet')).label, 'Overseer, Opus, arbeitet')
@@ -334,7 +335,7 @@ test('detailModell: voller Trace – alle Felder', () => {
assert.equal(d.nummer, '9 / 19')
assert.equal(d.szene, 'hk-sz hk-sz-buero')
assert.equal(d.figur, 'hk-spr hk-gr-muetze-arbeiten')
assert.deepEqual({ ...d.overlays }, { monitor: true, dampf: false, zzz: false, wirbel: false, schild: false, alarm: false })
assert.deepEqual({ ...d.overlays }, { monitor: true, dampf: false, zzz: false, wirbel: false, schild: false, gedimmt: false, alarm: false })
// Spur: neueste zuerst, Zeit in Berlin (heute nur Uhrzeit), sichere Links bleiben Links
assert.deepEqual(d.spur, traceRows(VOLLER_TRACE.events, JETZT))
assert.deepEqual(d.spur.map((z) => z.id), ['b', 'a', 'c'])
@@ -456,11 +457,11 @@ test('detailModell: Etage · Raum, Nummer und Name für alle 19 aus dem Roster',
test('detailModell: Szene, große Figur und Zusätze je Status', () => {
const erwartet = {
arbeitet: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-arbeiten', overlays: { monitor: true, dampf: false, zzz: false, wirbel: false, schild: false, alarm: false } },
wartet: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-warten', overlays: { monitor: false, dampf: true, zzz: false, wirbel: false, schild: false, alarm: false } },
leerlauf: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-schlafen', overlays: { monitor: false, dampf: false, zzz: true, wirbel: false, schild: false, alarm: false } },
grau: { szene: 'hk-sz hk-sz-nicht', figur: 'hk-spr hk-gr-kappe-nicht', overlays: { monitor: false, dampf: false, zzz: false, wirbel: false, schild: true, alarm: false } },
fehler: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-nicht', overlays: { monitor: false, dampf: false, zzz: false, wirbel: false, schild: false, alarm: true } },
arbeitet: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-arbeiten', overlays: { monitor: true, dampf: false, zzz: false, wirbel: false, schild: false, gedimmt: false, alarm: false } },
wartet: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-warten', overlays: { monitor: false, dampf: true, zzz: false, wirbel: false, schild: false, gedimmt: false, alarm: false } },
leerlauf: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-schlafen', overlays: { monitor: false, dampf: false, zzz: true, wirbel: false, schild: false, gedimmt: false, alarm: false } },
grau: { szene: 'hk-sz hk-sz-nicht', figur: 'hk-spr hk-gr-kappe-nicht', overlays: { monitor: false, dampf: false, zzz: false, wirbel: false, schild: true, gedimmt: false, alarm: false } },
fehler: { szene: 'hk-sz hk-sz-buero', figur: 'hk-spr hk-gr-kappe-nicht', overlays: { monitor: false, dampf: false, zzz: false, wirbel: false, schild: false, gedimmt: false, alarm: true } },
}
for (const status of STATUS) {
const d = detailModell('max', eintrag(status), null, JETZT)
@@ -480,6 +481,8 @@ test('detailModell: Overseer steht auf der Brücke mit Wirbel, in jedem Status m
assert.equal(d.figur, 'hk-spr hk-gr-overseer', status)
assert.equal(d.overlays.wirbel, true, status)
assert.equal(d.overlays.monitor, false, status)
assert.equal(d.overlays.dampf, false, status); assert.equal(d.overlays.zzz, false, status); assert.equal(d.overlays.schild, false, status)
assert.equal(d.overlays.gedimmt, status !== 'arbeitet', status); assert.equal(d.overlays.alarm, status === 'fehler', status)
assert.equal(d.name, 'Overseer')
}
assert.equal(detailModell('otto', eintrag('arbeitet'), null, JETZT).nummer, '1 / 19')