diff --git a/apps/event-91-night-crawler/index.html b/apps/event-91-night-crawler/index.html index 158c4a7..e4338da 100644 --- a/apps/event-91-night-crawler/index.html +++ b/apps/event-91-night-crawler/index.html @@ -461,6 +461,21 @@ .ref-table .cyan { color: var(--cyan); } .ref-table .red { color: var(--red); } + /* NPC PORTRAIT */ + .npc-portrait { + width: 100%; + max-width: 120px; + height: 155px; + flex-shrink: 0; + border-radius: 4px; + overflow: hidden; + border: 1px solid var(--border); + background: #0a0a0f; + } + .npc-portrait svg { display: block; } + .npc-card-inner { display: flex; gap: 12px; align-items: flex-start; } + .npc-card-text { flex: 1; min-width: 0; } + /* STAT BLOCK */ .stat-block { background: var(--surface2); @@ -1163,7 +1178,8 @@ const NPCS = [ motivation: 'Professional completion. Not ideologically committed to the entity programme — committed to Veltris\'s continued operation and her position within it.', knows: 'Everything. The feeding schedule. The containment failures. Dr Chen\'s condition. The secondary node. The termination order on the player team — she authorised it before the briefing.', stats: 'STR 10 | CON 12 | SIZ 10 | INT 16 | POW 14 | DEX 12 | APP 14\nHP 11 | PP 14 | DB None | Move 10\nPersuade 70%, Fast Talk 65%, Insight 70%, Intimidate 55%, Spot 50%\nAttacks: Concealed sidearm (40%), 2D6 (draws only in extremis)\nSPECIAL: Panic protocol — combat stims (+15% physical, 1D6 rounds) + direct line to Veltris black ops (8-min response).', - hp: 11, maxHp: 11 + hp: 11, maxHp: 11, + portrait: `` }, { name: 'Damos Reth', @@ -1175,7 +1191,8 @@ const NPCS = [ motivation: 'Survival first. Exposure of what Veltris has done, second. Realistic about his odds. Does not frame the situation heroically.', knows: 'Full entity programme history. Feeding schedule. Containment failures. Dr Chen\'s condition. The secondary node in Sub-District 4 ("two kilometres north — nobody knows"). The 47 disappearances.', stats: 'STR 10 | CON 10 | SIZ 11 | INT 16 | POW 11 | DEX 11 | APP 12\nHP 11 | PP 8 (depleted) | DB None | Move 7 (four days in a pod)\nResearch 70%, Computer Use 65%, Data Analysis 60%, Insight 55%\nAttacks: None.\nSPECIAL: Early-stage filament integration in both palms. Reversible with treatment within 72 hours.', - hp: 11, maxHp: 11 + hp: 11, maxHp: 11, + portrait: `` }, { name: 'Jed Osler', @@ -1187,7 +1204,8 @@ const NPCS = [ motivation: 'The bar. The regulars. The routine that holds everything together. They are anchored to the specific geography of their life.', knows: 'Reth\'s movements and questions. The disappearances by name and timeframe — cluster near the plant. The organic smell, when it started. People who came back from below street level and then went back down on their own.', stats: 'STR 13 | CON 14 | SIZ 12 | INT 14 | POW 13 | DEX 13 | APP 12\nHP 14 | PP 13 | DB None | Move 10\nInsight 70%, Streetwise 65%, Spot 55%, Persuade 55%, Brawl 50%\nAttacks: Prosthetic arm (50%), 1D6+1 | Baton behind bar (40%), 1D8\nSPECIAL: Will not go below street level under any circumstances. Not fear — a decision made long ago.', - hp: 14, maxHp: 14 + hp: 14, maxHp: 14, + portrait: `` }, { name: 'Dr Yava Chen', @@ -1199,7 +1217,8 @@ const NPCS = [ motivation: 'The entity. She genuinely believes it is the most significant discovery in human history. She no longer thinks about her career, former colleagues, or what she was before fourteen weeks underground.', knows: 'Everything documented — growth rate, sensory mechanism, feeding response, proximity effects, the secondary node in Sub-District 4 ("the lateral extension"), the slow influence on the surrounding population ("environmental expression").', stats: 'STR 9 | CON 12 | SIZ 10 | INT 18 | POW 16 | DEX 10 | APP 11\nHP 11 | PP 16 | DB None | Move 9\nScience (Biology) 85%, Research 80%, Medicine 50%, Insight 60%\nAttacks: None.\nSPECIAL: 5+ min conversation → POW resistance vs POW 16. Fail: 1 SAN loss. Roll secretly. Tell affected player privately.', - hp: 11, maxHp: 11 + hp: 11, maxHp: 11, + portrait: `` }, { name: 'Scratch', @@ -1211,7 +1230,8 @@ const NPCS = [ motivation: 'Her people\'s safety. Losing gang members to disappearances for 8 months. Knows it is not other gangs.', knows: 'Missing residents by name and date. Disappearances cluster near drainage access points closest to the plant. Two gang members came back "not right" — then both walked back to the plant voluntarily at 3 a.m. three weeks ago and did not return. RED HERRING — not connected to entity.', stats: 'STR 12 | CON 12 | SIZ 10 | INT 15 | POW 13 | DEX 17 | APP 13\nHP 12 | PP 13 | DB None | Move 12\nStreetwise 70%, Dodge 65%, Spot 60%, Brawl 55%, Stealth 55%, Fast Talk 50%\nAttacks: Reflex-augmented strike (55%), 1D6 | Blade (45%), 1D6+1\nSPECIAL: First round of combat she did not initiate — DEX counts as 20 for Strike Rank.', - hp: 12, maxHp: 12 + hp: 12, maxHp: 12, + portrait: `` } ]; @@ -1484,13 +1504,15 @@ function buildNPCs() { const container = document.getElementById('npc-list'); container.innerHTML = NPCS.map((npc, i) => `