From 6dc3a123e640842a84cf93e753b2d32e7ee529cd Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 21 Feb 2026 14:05:17 +0100 Subject: [PATCH 1/6] =?UTF-8?q?feat(copy):=20#299=20#300=20opening=20hook?= =?UTF-8?q?=20monologue=20=E2=80=94=20smuggler=20+=20detective=20first=205?= =?UTF-8?q?=20minutes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Smuggler: 11-line diegetic tutorial arc (station hum → Kael → fog → sound ping) Detective: 12-line analytical tutorial arc (lattice overlay → Sera → manifest anomaly) Both sequences: priority 8-10, cooldown 9999 (fire once), prerequisites null, fully D-035 schema-compliant. Voice-checked against docs/design/voice-patterns.md. Co-Authored-By: Claude Opus 4.6 --- .../transit/monologue/detective/opening.yaml | 165 ++++++++++++++++++ .../transit/monologue/smuggler/opening.yaml | 152 ++++++++++++++++ 2 files changed, 317 insertions(+) create mode 100644 content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml create mode 100644 content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml new file mode 100644 index 000000000..c087e6d3e --- /dev/null +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml @@ -0,0 +1,165 @@ +character: detective +location: opening +lines: + # Opening Hook Sequence — Ticket #300 — Detective Diegetic Tutorial Arc / First 5 Minutes + # 12 lines. Prerequisites null on all — fires before any knowledge graph state exists. + # Priority 8-10 ensures these fire before the general terminal pool lines. + # cooldown: 9999 — each line fires once, does not repeat. + # Arc: institutional orientation → sensory/analytical → lattice overlay → Commission kiosk → fog boundary → + # NPC lattice scan → Sera sighting → Sera warmth → manifest board → anomaly → flag it → operational settle. + # Contraction discipline: analytical lines = uncontracted; personal lines (Sera) = contracted. + # All lines fully schema-compliant per D-035 (role, access, trust, situation present). + + - id: opening_m_d_001 + text: "Sova Transit. Mid-morning shift, dock lighting at half-cycle. Consistent with the Commission pre-arrival briefing." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [focused] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, analytical, orientation] + notes: "Opening line. Reality matches the briefing — he arrived prepared. Establishes: detective as institutional outsider sent here. Cool-lit corridors per D-046 expressed through 'half-cycle' lighting observation. No contractions (analytical)." + + - id: opening_m_d_002 + text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the wormhole threshold. First observation: consistent with Commission briefing profile." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, atmospheric, analytical] + notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home." + + - id: opening_m_d_003 + text: "Lattice overlay initializing. Four identity flags in immediate range — cross-referencing against Commission case file." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [focused] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, lattice, perception] + notes: "Teaches insert channel. The analytical lattice is active on entry — it flags and cross-references automatically. Teaches: detective's insert HUD is denser and diegetically active (D-048). Players learn the lattice is a tool, not decoration." + + - id: opening_m_d_004 + text: "Commission kiosk confirmed my credentials on entry. Authority access logged. The floor knows someone's here." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [focused] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, institutional, authority] + notes: "Commission kiosk visible, institutional standing established. Sardonic close — dry awareness of his effect on the social environment. Confidence register: wry humor (section 2.8). Teaches: Authority access tier, institutional role is visible to NPCs." + + - id: opening_m_d_005 + text: "Visual range terminates at bay nine. Approximately fifteen meters. Consistent with district atmo settings." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, observation] + trigger: enter_location + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, fog, perception] + notes: "Fog boundary in analytical register. He clocks the measurement, notes 'approximately' — precision with honest calibration. Contrast with smuggler's 'Can't see the far dock' — same fog, different framing: limitation vs. measurement." + + - id: opening_m_d_006 + text: "Dock workers distributed across nine visible bays. Lattice flagging each on contact. Names from the case file, faces from the floor." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, observation] + trigger: enter_location + mood: [focused] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, lattice, orientation] + notes: "Spatial overview with lattice overlay tutorial. Explains how the insert channel works: lattice matches observed faces against the pre-loaded case file. Parallel structure ('Names from... faces from...'). Teaches: NPC identification comes through the lattice." + + - id: opening_m_d_007 + text: "Venn, S. at the far terminal. She said she'd come in early." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, social] + trigger: observe_npc + mood: [warm] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, sera, friend-arc] + notes: "First Sera sighting. Surname-initial filing first (institutional reflex) — then breaks to personal contracted voice ('she'd') in the same beat. Teaches contrast: case-file subjects get 'Davan, K.'; Sera gets a different register. D-033 Unknown/Neutral teal entity." + + - id: opening_m_d_008 + text: "She's got the manifest logs open already. We've worked this district before — she knows what I need before I ask." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, social] + trigger: observe_npc + mood: [warm] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, sera, friend-arc] + notes: "Sera warmth. Fully contracted throughout ('She's', 'We've', 'she knows') — personal mode, no analytical distance. Em-dash. Prior relationship established. Contrast with how he processes everyone else. Teaches: some NPCs are in a different relational category (THE FRIEND pattern, D-034)." + + - id: opening_m_d_009 + text: "Central manifest board: real-time container routing, weight declarations, bay assignments. Everything routes through here." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, investigation] + trigger: enter_location + mood: [focused] + priority: 8 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, manifest, investigation] + notes: "Manifest board labeled and cataloged. Colon usage (section 2.2). No contractions (analytical). Teaches: the manifest board is the information hub — and therefore the investigation's starting point." + + - id: opening_m_d_010 + text: "Container 4471. Temp storage flag since yesterday. Standard turnaround is sub-eight hours — that's not standard." + role: player_character + access: [public] + trust: surface + situation: [arrival, observation, investigation] + trigger: observe_anomaly + mood: [focused, suspicious] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, manifest, investigation, anomaly] + notes: "First manifest anomaly. Specific container ID from case file. 'That's not standard' — only contraction in an analytical line, marking it as personal reaction to the finding. Sets the investigation hook: something is wrong before he asks a single question." + + - id: opening_m_d_011 + text: "Worth flagging. Let's see what the shift logs say about that container's overnight routing." + role: player_character + access: [public] + trust: surface + situation: [observation, investigation] + trigger: observe_anomaly + mood: [focused] + priority: 8 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, investigation, next-step] + notes: "'Worth flagging' + 'Let's see what' — both detective verbal tics in sequence (section 2.7). Frames the next investigative step. Teaches: investigation is incremental — observe, flag, investigate deeper." + + - id: opening_m_d_012 + text: "Lattice stable. Nine identity flags and counting. Let's see what this shift tells me." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [focused] + priority: 7 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, lattice, operational] + notes: "Operational settle — closes the opening arc. Lattice confirmed active, identity count growing. 'Let's see what...' verbal tic as the closing beat. The whole opening hook lands here: credentials logged, floor scanned, first anomaly flagged. Investigation begins." diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml new file mode 100644 index 000000000..96420c9c4 --- /dev/null +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml @@ -0,0 +1,152 @@ +character: smuggler +location: opening +lines: + # Opening Hook Sequence — Ticket #299 — Smuggler Diegetic Tutorial Arc / First 5 Minutes + # 11 lines. Prerequisites null on all — fires before any knowledge graph state exists. + # Priority 8-10 ensures these fire before the general terminal pool lines. + # cooldown: 9999 — each line fires once, does not repeat. + # Arc: station hum → spatial count → fog boundary → thin crowd → Kael sighting ×2 → news ticker → sound ping → time countdown → settle ×2. + # All lines fully schema-compliant per D-035 (role, access, trust, situation present). + + - id: opening_m_s_001 + text: "Station hum. B-flat, steady — freight's moving." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [content] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, atmospheric] + notes: "Opening sensation. Station audio registers first — the hum tells her freight is running. Teaches: audio environment carries operational information (D-074)." + + - id: opening_m_s_002 + text: "Sixteen bays, three arms running. Standard morning." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [content] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, orientation] + notes: "Spatial orientation. She clocks the floor in two beats — count of bays, count of running arms. Everything in fragments. Teaches: the terminal layout." + + - id: opening_m_s_003 + text: "Haze past bay eight today. Can't see the far dock from here." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, observation] + trigger: enter_location + mood: [content] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, fog, perception] + notes: "Fog boundary. She notices the edge of her vision as a fact of the floor, not a mechanic. Teaches: perception range has limits (D-015, D-046)." + + - id: opening_m_s_004 + text: "Morning crew's spread thin. Good. Room to move." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [content] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc] + notes: "Light crowd = operational comfort. 'Good.' standalone verbal tic (section 1.7). Teaches: NPC density affects movement options." + + - id: opening_m_s_005 + text: "Kael's at dock three. Right where he should be." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, social] + trigger: observe_npc + mood: [content, warm] + priority: 10 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, kael, friend-arc] + notes: "First Kael sighting. Warm, immediate — she locates him before she finishes reading the floor. Teaches: named NPCs are identifiable via insert overlay (D-033 green entity)." + + - id: opening_m_s_006 + text: "Already has his clipboard. Day's organized before it starts. That's Kael." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, social] + trigger: observe_npc + mood: [warm] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, kael, friend-arc] + notes: "Kael warmth. Three beats: observation → interpretation → naming. The name at the end lands as affection. Establishes: Kael is trusted, competent, reliable — the baseline before the friend arc erodes it." + + - id: opening_m_s_007 + text: "Bulletin board's got a new Commission notice. Lattice registration updates. Not today's problem." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] + trigger: enter_location + mood: [content] + priority: 8 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, news-ticker] + notes: "News ticker glance. She reads and dismisses it. The Commission exists as background noise — relevant only when it stops being ignorable. Teaches: environmental text exists, player can engage or skip. D-037 irony: lattice registration is exactly what the ring circumvents." + + - id: opening_m_s_008 + text: "Span gate echo from dock fourteen. Something inbound, running heavy by the sound of it." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, observation] + trigger: hear_sound + mood: [content] + priority: 9 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, sound, perception] + notes: "First sound ping at the edge of range. She interprets pitch instantly — the echo tells her load weight. Teaches: sound carries operational information (D-018, D-074 sound model). Sound channel is meaningful." + + - id: opening_m_s_009 + text: "Shift board says light cargo today. Fifty minutes before Voss does his rounds." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, routine] + trigger: enter_location + mood: [content] + priority: 8 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, operational] + notes: "'Fifty minutes' = time-as-countdown verbal tic (section 1.7). She's already calculating windows. Teaches: time and NPC patrol rhythms are trackable." + + - id: opening_m_s_010 + text: "Same floor, same faces, same hum. Could be worse." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start] + trigger: enter_location + mood: [content] + priority: 8 + cooldown: 9999 + tags: [opening-hook, tutorial-arc, atmospheric] + notes: "Settling line. Baseline contentment. Parallel three-beat structure then understatement. 'Could be worse' is her comfort language — not enthusiastic, just settled. Voice anchor for confidence register (section 1.8)." + + - id: opening_m_s_011 + text: "Dock's clean this morning. Good start." + role: player_character + access: [public] + trust: surface + situation: [arrival, shift_start, routine] + trigger: enter_location + mood: [content] + priority: 7 + cooldown: 9999 + tags: [opening-hook, tutorial-arc] + notes: "Close of opening arc. Short, approving. 'Good start' = positive 'Good.' tic applied to the environment. Everything is where it should be — for now." From 458e50eee0c4b6ca873b78bd2b0adcaae09d84b5 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 21 Feb 2026 14:05:29 +0100 Subject: [PATCH 2/6] =?UTF-8?q?fix(copy):=20#169=20access=20tier=20audit?= =?UTF-8?q?=20=E2=80=94=20mood=20vocab=20rename=20+=20monologue=20structur?= =?UTF-8?q?al=20tags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part A: Sprint 14 mood vocabulary applied across 20 dialogue files (334 fixes): fond→warm, comfortable→content, worried→anxious, concerned→frustrated, analytical→focused, conflicted→anxious/suspicious per context. Part B: All 12 monologue pool files now carry required D-035 structural tags (role, access, trust, situation) — 223 lines fixed. Part C: Full access tag audit passed — all dialogue lines have valid tags. Co-Authored-By: Claude Opus 4.6 --- .../maintenance-corridors/kael-davan.yaml | 72 ++++++- .../maintenance-corridors/ring-operative.yaml | 32 ++-- .../maintenance-corridors/transit-worker.yaml | 10 +- .../dialogue/the-last-shift/bar-owner.yaml | 58 +++--- .../dialogue/the-last-shift/bar-regular.yaml | 40 ++-- .../dialogue/the-last-shift/bartender.yaml | 52 +++--- .../dialogue/the-last-shift/day-worker.yaml | 12 +- .../dialogue/the-last-shift/kael-davan.yaml | 84 +++++++-- .../dialogue/the-last-shift/pc-detective.yaml | 2 +- .../dialogue/the-last-shift/pc-smuggler.yaml | 4 +- .../dialogue/the-last-shift/sera-venn.yaml | 167 +++++++++++------ .../dialogue/the-terminal/courier.yaml | 36 ++-- .../dialogue/the-terminal/dock-worker.yaml | 40 ++-- .../dialogue/the-terminal/kael-davan.yaml | 116 +++++++++--- .../the-terminal/maintenance-tech.yaml | 12 +- .../dialogue/the-terminal/new-hire.yaml | 42 ++--- .../dialogue/the-terminal/pc-detective.yaml | 2 +- .../dialogue/the-terminal/pc-smuggler.yaml | 2 +- .../dialogue/the-terminal/scheduler.yaml | 54 +++--- .../the-terminal/shift-supervisor.yaml | 54 +++--- .../transit/monologue/detective/general.yaml | 40 ++++ .../detective/maintenance-corridors.yaml | 100 ++++++++++ .../detective/pc-smuggler-tells.yaml | 32 ++++ .../monologue/detective/the-last-shift.yaml | 176 ++++++++++++++++++ .../monologue/detective/the-terminal.yaml | 160 ++++++++++++++++ .../transit/monologue/smuggler/general.yaml | 40 ++++ .../smuggler/maintenance-corridors.yaml | 100 ++++++++++ .../smuggler/pc-detective-tells.yaml | 32 ++++ .../monologue/smuggler/the-last-shift.yaml | 152 +++++++++++++++ .../monologue/smuggler/the-terminal.yaml | 140 ++++++++++++++ 30 files changed, 1529 insertions(+), 334 deletions(-) diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/kael-davan.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/kael-davan.yaml index c2bbb8277..2fea939d6 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/kael-davan.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/kael-davan.yaml @@ -41,7 +41,7 @@ lines: access: [insider] trust: real situation: [routine] - mood: [comfortable] + mood: [content] topic: [cargo] tags: [kael, ring-ops, renn, operational] @@ -51,7 +51,7 @@ lines: access: [insider] trust: real situation: [routine] - mood: [concerned] + mood: [frustrated] topic: [danger, cargo] tags: [kael, ring-ops, operational, caution] @@ -66,7 +66,7 @@ lines: access: [insider] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [danger] tags: [kael, contradiction, phase-3] @@ -76,7 +76,7 @@ lines: access: [insider] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [routine] tags: [kael, deflection, lying, phase-4] @@ -86,7 +86,7 @@ lines: access: [insider] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [trust] tags: [kael, deflection, hostile-path, phase-4] @@ -100,7 +100,7 @@ lines: access: [insider] trust: secret situation: [confrontation, alone] - mood: [conflicted] + mood: [anxious] topic: [personal, trust] tags: [kael, confession, phase-5] @@ -110,7 +110,7 @@ lines: access: [insider] trust: secret situation: [confrontation, alone] - mood: [worried] + mood: [anxious] topic: [danger, trust] tags: [kael, confession, nils, phase-5] @@ -120,9 +120,65 @@ lines: access: [insider] trust: secret situation: [alone] - mood: [conflicted] + mood: [anxious] topic: [personal] tags: [kael, confession, phase-5] knowledge_grant: fact_id: knowledge.kael_exit_plan confidence: knows_details + + # ======================================== + # LAYER 2 GREETING VARIANTS — D-028 Layer 2 + # Ticket #170 (Sprint 15). situation: [greeting] fires on initial contact. + # Access tier + mood encode relationship history state. + # Context: restricted maintenance corridors. Any stranger here is immediately + # suspicious. Even trusted contacts get terse, operational greetings. + # ======================================== + + # first_meeting: InteractionMemory.count == 0. Any stranger in restricted corridors is a problem. + - id: maintenance-corridors_d_011 + text: "This is a restricted section. Who authorized you back here?" + role: dock-worker + access: [public] + trust: surface + situation: [greeting] + mood: [focused] + topic: [danger, routine] + tags: [kael, greeting, first-meeting, layer2] + notes: "Layer 2 greeting — first meeting in restricted corridors. Immediate challenge. Any stranger back here is suspicious regardless of intent." + + # established — peer/smuggler context: count >= 3, RelationshipState: Known/Friendly → Peer/Insider access. + - id: maintenance-corridors_d_012 + text: "You're on time. Clear all the way to the junction." + role: dock-worker + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [content] + topic: [cargo, colleague] + tags: [kael, greeting, repeat-visit, peer-tone, layer2] + notes: "Layer 2 greeting — established, operational. All business. Kael treats a trusted repeat visitor as crew — no pleasantries, just the essential handoff information." + + # established — authority/detective context: count >= 3, RelationshipState: PersonOfInterest → Authority access. + - id: maintenance-corridors_d_013 + text: "You keep showing up back here. You have clearance for this section?" + role: dock-worker + access: [authority] + trust: surface + situation: [greeting] + mood: [suspicious] + topic: [danger, routine] + tags: [kael, greeting, repeat-visit, authority-tone, layer2] + notes: "Layer 2 greeting — repeat with authority figure in restricted section. Professionally defensive. Kael challenges them but can't bar entry if they have clearance." + + # post-confrontation: confrontation logged. Kael is cornered on his own operational ground. + - id: maintenance-corridors_d_014 + text: "You followed me here." + role: dock-worker + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [hostile, suspicious] + topic: [danger, trust] + tags: [kael, greeting, post-confrontation, layer2] + notes: "Layer 2 greeting — post-confrontation, restricted corridors. Accusatory, not a question. Kael feels cornered. This is where the contradiction lives." diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml index 3750987dc..42f3ec76d 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml @@ -28,7 +28,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, b7] dual_lens: smuggler: "Cover phrase. He's not doing maintenance." @@ -42,7 +42,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, bay-four, spatial] dual_lens: smuggler: "He's telling me the route is faster. This is spatial information, not just courtesy." @@ -55,7 +55,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, ambient] dual_lens: smuggler: "Dead air confirmed. Meridian's not picking this up." @@ -68,7 +68,7 @@ lines: trust: surface situation: [routine] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, pael, corridor-traffic] dual_lens: smuggler: "Pael was through. Legitimate. Corridor's been active — that means traffic covers us." @@ -81,7 +81,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, c4, spatial] dual_lens: smuggler: "He's giving me the timing. Three minutes to C-4 from this point." @@ -156,7 +156,7 @@ lines: trust: real situation: [routine, confrontation] topic: [danger, colleague] - mood: [concerned] + mood: [frustrated] tags: [ring-operative, ring-ops, coded, drin-asking, warning] dual_lens: smuggler: "Drin's circling B-7. That's a warning. Push the pickup or hold it." @@ -218,7 +218,7 @@ lines: trust: real situation: [confrontation, investigation] topic: [danger, institution] - mood: [concerned] + mood: [frustrated] tags: [ring-operative, ring-ops, commission, warning] dual_lens: smuggler: "Detective is visible on the main floor. Corridors are still clear." @@ -231,7 +231,7 @@ lines: trust: real situation: [confrontation] topic: [danger] - mood: [concerned] + mood: [frustrated] tags: [ring-operative, ring-ops, drin, abort-signal] dual_lens: smuggler: "Stop. Drin's in position. The window's closed." @@ -244,7 +244,7 @@ lines: trust: real situation: [confrontation, routine] topic: [danger, institution] - mood: [concerned] + mood: [frustrated] tags: [ring-operative, ring-ops, maret, voss, caution] dual_lens: smuggler: "Maret flagged something. Voss is managing it. Stand down tonight." @@ -257,7 +257,7 @@ lines: trust: real situation: [shift_end, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, ring-ops, run-complete, closing] dual_lens: smuggler: "Run's done. No issues. Tomorrow." @@ -312,7 +312,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, generation-pass] - id: maintenance-corridors_d_121 @@ -322,7 +322,7 @@ lines: trust: surface situation: [routine] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, pael, generation-pass] - id: maintenance-corridors_d_122 @@ -332,7 +332,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, generation-pass] - id: maintenance-corridors_d_123 @@ -342,7 +342,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, spatial, generation-pass] - id: maintenance-corridors_d_124 @@ -352,7 +352,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, navigation, generation-pass] dual_lens: smuggler: "He's directing people away from the route. Social traffic management." @@ -375,5 +375,5 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ring-operative, surface-cover, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/transit-worker.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/transit-worker.yaml index fce0e3a83..30cc9e8ef 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/transit-worker.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/transit-worker.yaml @@ -22,7 +22,7 @@ lines: trust: surface situation: [routine, observation] topic: [colleague, personal] - mood: [comfortable] + mood: [content] tags: [tev, seems-important-but-isnt, waiting, kosse] dual_lens: smuggler: "Someone asking who came through the corridor. Tev. Harmless — checking for a partner." @@ -43,7 +43,7 @@ lines: trust: surface situation: [routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [tev, atmospheric] - id: maintenance-corridors_d_003 @@ -53,7 +53,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [tev, incidental] - id: maintenance-corridors_d_004 @@ -63,7 +63,7 @@ lines: trust: surface situation: [routine, night_shift] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [tev, atmospheric] - id: maintenance-corridors_d_005 @@ -73,5 +73,5 @@ lines: trust: surface situation: [routine, observation] topic: [personal] - mood: [comfortable] + mood: [content] tags: [tev, waiting] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml index 427281ed4..4bd853885 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml @@ -20,7 +20,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting, economy-of-words] - id: the-last-shift_d_101 @@ -30,7 +30,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting] - id: the-last-shift_d_102 @@ -40,7 +40,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting, house-rules] - id: the-last-shift_d_103 @@ -50,7 +50,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting, redirection] # ========================================== @@ -64,7 +64,7 @@ lines: trust: surface situation: [confrontation, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, house-rules, authority] - id: the-last-shift_d_105 @@ -74,7 +74,7 @@ lines: trust: surface situation: [routine, shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, tab, house-rules] - id: the-last-shift_d_106 @@ -84,7 +84,7 @@ lines: trust: surface situation: [routine] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [lera, torek, tab-arrangement] dual_lens: smuggler: "Lera chose to give Torek credit. Commission man. She's keeping him visible and comfortable. Smart." @@ -98,7 +98,7 @@ lines: trust: surface situation: [routine] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [lera, lattice-free, house-rules] notes: "Not legally enforceable — Lera knows this. It's about atmosphere, not compliance." @@ -109,7 +109,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, drinks, community] # ========================================== @@ -123,7 +123,7 @@ lines: trust: surface situation: [arrival, routine] topic: [colleague, routine] - mood: [comfortable] + mood: [content] tags: [lera, kael, spatial-information] dual_lens: smuggler: "Good. She keeps track. That's what she does." @@ -136,7 +136,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [lera, naia, observation] dual_lens: smuggler: "Lera noticed Naia's off. She notices everything. She's saying it because she wants someone to do something." @@ -149,7 +149,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [lera, ren, drifter] dual_lens: smuggler: "That's Lera's version of a clean assessment. She'd say more if she suspected something." @@ -162,7 +162,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [lera, tev, endorsement] dual_lens: smuggler: "Lera vouching for Tev. She doesn't do that for people she doesn't trust." @@ -193,7 +193,7 @@ lines: trust: real situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [lera, kael, loyalty] dual_lens: smuggler: "Lera's loyal to Kael. Not to the ring. There's a difference and it matters." @@ -210,7 +210,7 @@ lines: trust: surface situation: [arrival, investigation] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [lera, detective-path, neutral-welcome] - id: the-last-shift_d_116 @@ -220,7 +220,7 @@ lines: trust: surface situation: [investigation, routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [lera, detective-path, institutional-independence] - id: the-last-shift_d_117 @@ -240,7 +240,7 @@ lines: trust: surface situation: [investigation] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [lera, detective-path, careful-language] dual_lens: smuggler: "Never encounters this line." @@ -257,7 +257,7 @@ lines: trust: real situation: [routine, alone] topic: [colleague, danger] - mood: [concerned] + mood: [frustrated] tags: [lera, naia, threshold-line] dual_lens: smuggler: "Lera's telling me to do something about Naia. She's right." @@ -274,7 +274,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, closing] - id: the-last-shift_d_121 @@ -284,7 +284,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, closing] - id: the-last-shift_d_122 @@ -294,7 +294,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, closing] # ========================================== @@ -308,7 +308,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting, generation-pass] - id: the-last-shift_d_124 @@ -318,7 +318,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting, generation-pass] - id: the-last-shift_d_125 @@ -328,7 +328,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, greeting, newcomer, generation-pass] - id: the-last-shift_d_126 @@ -338,7 +338,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, house-rules, generation-pass] - id: the-last-shift_d_127 @@ -348,7 +348,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, redirect, generation-pass] - id: the-last-shift_d_128 @@ -358,7 +358,7 @@ lines: trust: surface situation: [routine, shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, house-rules, generation-pass] - id: the-last-shift_d_129 @@ -368,7 +368,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, ambient, generation-pass] - id: the-last-shift_d_130 @@ -378,5 +378,5 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [lera, ambient, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml index 0eb376b1a..d5e8319e5 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml @@ -19,7 +19,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, greeting] - id: the-last-shift_d_301 @@ -29,7 +29,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, greeting] - id: the-last-shift_d_302 @@ -39,7 +39,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, greeting, drinks] # ========================================== @@ -53,7 +53,7 @@ lines: trust: surface situation: [routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [bar-regular, terminal, voss] - id: the-last-shift_d_304 @@ -89,7 +89,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, transition-window, complaint] dual_lens: smuggler: "The window is their biggest frustration. And their biggest frustration is the ring's biggest asset." @@ -132,7 +132,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, sports, drifters] - id: the-last-shift_d_310 @@ -142,7 +142,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, infrastructure, grievance] - id: the-last-shift_d_311 @@ -152,7 +152,7 @@ lines: trust: surface situation: [routine] topic: [community, routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, vessels-tamm, notice] dual_lens: smuggler: "Vessels Tamm. Naia's surname is Tamm. Don't chase it — but don't ignore it either." @@ -165,7 +165,7 @@ lines: trust: surface situation: [routine] topic: [community, routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, clinic, community] - id: the-last-shift_d_313 @@ -175,7 +175,7 @@ lines: trust: surface situation: [routine] topic: [institution, community] - mood: [comfortable] + mood: [content] tags: [bar-regular, lattice, economy] dual_lens: smuggler: "That's why the waiting list keeps growing. They're providing a service." @@ -239,7 +239,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, closing] - id: the-last-shift_d_319 @@ -249,7 +249,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, closing, community] # ========================================== @@ -263,7 +263,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, greeting, generation-pass] - id: the-last-shift_d_321 @@ -273,7 +273,7 @@ lines: trust: surface situation: [arrival] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [bar-regular, greeting, voss, generation-pass] - id: the-last-shift_d_322 @@ -293,7 +293,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, sports, community, generation-pass] - id: the-last-shift_d_324 @@ -303,7 +303,7 @@ lines: trust: surface situation: [routine] topic: [institution, community] - mood: [comfortable] + mood: [content] tags: [bar-regular, infrastructure, grievance, generation-pass] - id: the-last-shift_d_325 @@ -313,7 +313,7 @@ lines: trust: surface situation: [routine] topic: [colleague, routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, new-hire, community, generation-pass] - id: the-last-shift_d_326 @@ -333,7 +333,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [bar-regular, kael, observation, generation-pass] dual_lens: smuggler: "Kael's absence is visible. Other people notice too." @@ -346,7 +346,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [bar-regular, lera, humor, generation-pass] - id: the-last-shift_d_329 @@ -356,5 +356,5 @@ lines: trust: surface situation: [shift_end] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [bar-regular, closing, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bartender.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bartender.yaml index 06b9215b0..92f27cb35 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bartender.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bartender.yaml @@ -19,7 +19,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, greeting] - id: the-last-shift_d_201 @@ -29,7 +29,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, greeting, social] - id: the-last-shift_d_202 @@ -39,7 +39,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, greeting, drinks] # ========================================== @@ -53,7 +53,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [sess, kael, observation] dual_lens: smuggler: "Sess noticed Kael's off. She's reading it as personal. She doesn't know what's underneath." @@ -66,7 +66,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [sess, torek, observation] dual_lens: smuggler: "Torek's making friends with the staff. Not good." @@ -79,7 +79,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [sess, naia, note, observation] dual_lens: smuggler: "Naia left something. Lera has it. Go to Lera." @@ -92,7 +92,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [sess, ren, drifter] - id: the-last-shift_d_207 @@ -102,7 +102,7 @@ lines: trust: surface situation: [routine] topic: [colleague, routine] - mood: [comfortable] + mood: [content] tags: [sess, tev, door, observation] dual_lens: smuggler: "Tev watches the door for Lera. Not for anyone else. That's the setup." @@ -115,7 +115,7 @@ lines: trust: surface situation: [routine] topic: [colleague, institution] - mood: [comfortable] + mood: [content] tags: [sess, sera, torek, observation] dual_lens: smuggler: "Commission in, Commission contact out. Makes sense." @@ -132,7 +132,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, tev, sports, community] - id: the-last-shift_d_210 @@ -142,7 +142,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [sess, workers-association, community] - id: the-last-shift_d_211 @@ -152,7 +152,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, ambient] # ========================================== @@ -166,7 +166,7 @@ lines: trust: surface situation: [arrival, investigation] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [sess, detective-path, observation] - id: the-last-shift_d_213 @@ -176,7 +176,7 @@ lines: trust: surface situation: [investigation, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, detective-path, open] dual_lens: smuggler: "Never encounters this line." @@ -189,7 +189,7 @@ lines: trust: surface situation: [investigation] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [sess, detective-path, lera-redirect] # ========================================== @@ -203,7 +203,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, closing] - id: the-last-shift_d_216 @@ -213,7 +213,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, closing] # ========================================== @@ -227,7 +227,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, greeting, generation-pass] - id: the-last-shift_d_218 @@ -237,7 +237,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, greeting, generation-pass] - id: the-last-shift_d_219 @@ -247,7 +247,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, greeting, social, generation-pass] - id: the-last-shift_d_220 @@ -257,7 +257,7 @@ lines: trust: surface situation: [routine, arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, lera, house-rules, generation-pass] - id: the-last-shift_d_221 @@ -267,7 +267,7 @@ lines: trust: surface situation: [routine] topic: [institution, colleague] - mood: [comfortable] + mood: [content] tags: [sess, torek, observation, generation-pass] - id: the-last-shift_d_222 @@ -277,7 +277,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [sess, ren, observation, generation-pass] - id: the-last-shift_d_223 @@ -287,7 +287,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, sports, community, generation-pass] - id: the-last-shift_d_224 @@ -297,7 +297,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, ambient, generation-pass] - id: the-last-shift_d_225 @@ -307,5 +307,5 @@ lines: trust: surface situation: [shift_end, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [sess, closing, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/day-worker.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/day-worker.yaml index 73ae54d50..e638dc1bc 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/day-worker.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/day-worker.yaml @@ -22,7 +22,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [money, cargo] - mood: [comfortable] + mood: [content] tags: [ren, seems-important-but-isnt, job-seeking, night-shift] dual_lens: smuggler: "Someone asking about the night rotation. Probably nothing. Watch them anyway." @@ -43,7 +43,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [ren, job-seeking] - id: the-last-shift_d_003 @@ -53,7 +53,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [routine] - mood: [comfortable] + mood: [content] tags: [ren, atmospheric] - id: the-last-shift_d_004 @@ -63,7 +63,7 @@ lines: trust: surface situation: [social] topic: [personal, routine] - mood: [comfortable] + mood: [content] tags: [ren, drifter] - id: the-last-shift_d_005 @@ -73,7 +73,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [personal] - mood: [comfortable] + mood: [content] tags: [ren, atmospheric] - id: the-last-shift_d_006 @@ -83,7 +83,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [ren, seems-important-but-isnt, job-seeking] notes: > Second "seems important" line. Asking about manifest deadlines sounds diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/kael-davan.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/kael-davan.yaml index e1ccdd903..e922931dd 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/kael-davan.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/kael-davan.yaml @@ -18,7 +18,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social, arrival] - mood: [fond] + mood: [warm] topic: [personal, colleague] tags: [kael, greeting, phase-1] @@ -28,7 +28,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [fond] + mood: [warm] topic: [personal] tags: [kael, social, phase-1] @@ -38,7 +38,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [comfortable] + mood: [content] topic: [colleague, routine] tags: [kael, humor, voss, lera] @@ -48,7 +48,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [comfortable] + mood: [content] topic: [colleague] tags: [kael, observational, torek] knowledge_grant: @@ -61,7 +61,7 @@ lines: access: [peer] trust: surface situation: [bar_evening, social] - mood: [comfortable] + mood: [content] topic: [personal] tags: [kael, atmospheric] @@ -71,7 +71,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [comfortable] + mood: [content] topic: [personal, routine] tags: [kael, casual, lera] @@ -85,7 +85,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [fond] + mood: [warm] topic: [personal] tags: [kael, unprompted, naia-reference] @@ -95,7 +95,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [fond] + mood: [warm] topic: [personal] tags: [kael, unprompted, naia-reference] @@ -105,7 +105,7 @@ lines: access: [insider] trust: real situation: [bar_evening, social, alone] - mood: [conflicted] + mood: [anxious] topic: [personal, trust] tags: [kael, naia-reference, vulnerability] @@ -119,7 +119,7 @@ lines: access: [insider] trust: real situation: [bar_evening, social] - mood: [concerned] + mood: [frustrated] topic: [danger] tags: [kael, ring-ops, nils] @@ -129,7 +129,7 @@ lines: access: [insider] trust: real situation: [bar_evening, social] - mood: [concerned] + mood: [frustrated] topic: [danger, colleague] tags: [kael, ring-ops, torek, caution] @@ -139,7 +139,7 @@ lines: access: [insider] trust: real situation: [bar_evening, social, alone] - mood: [concerned] + mood: [frustrated] topic: [colleague, danger] tags: [kael, ring-ops, lera, caution] knowledge_grant: @@ -156,7 +156,7 @@ lines: access: [insider, peer] trust: surface situation: [bar_evening, social] - mood: [conflicted] + mood: [anxious] topic: [personal] tags: [kael, contaminated-trust, phase-5] @@ -166,7 +166,7 @@ lines: access: [insider] trust: real situation: [bar_evening, social] - mood: [conflicted] + mood: [anxious] topic: [personal] tags: [kael, contaminated-trust, naia-reference, phase-5] @@ -176,6 +176,60 @@ lines: access: [insider] trust: surface situation: [bar_evening, social] - mood: [worried] + mood: [anxious] topic: [trust, personal] tags: [kael, vulnerability, phase-5] + + # ======================================== + # LAYER 2 GREETING VARIANTS — D-028 Layer 2 + # Ticket #170 (Sprint 15). situation: [greeting] fires on initial contact. + # Access tier + mood encode relationship history state. + # ======================================== + + # first_meeting: InteractionMemory.count == 0. RelationshipState: Unknown → Public access only. + - id: the-last-shift_d_016 + text: "Evening. Friend of someone's, or first time at Lera's?" + role: dock-worker + access: [public] + trust: surface + situation: [greeting] + mood: [content] + topic: [personal] + tags: [kael, greeting, first-meeting, layer2] + notes: "Layer 2 greeting — first meeting at the bar. Kael is curious about a stranger but not suspicious. Off-shift, looser than at the terminal." + + # established — peer/smuggler context: count >= 3, RelationshipState: Known/Friendly → Peer/Insider access. + - id: the-last-shift_d_017 + text: "You made it. I was starting to think something came up." + role: dock-worker + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [warm] + topic: [personal, colleague] + tags: [kael, greeting, repeat-visit, peer-tone, layer2] + notes: "Layer 2 greeting — established, bar context. Warm, they were expected. Kael was watching for them." + + # established — authority/detective context: count >= 3, RelationshipState: PersonOfInterest → Authority access. + - id: the-last-shift_d_018 + text: "Still in the district. Thought you'd be done by now." + role: dock-worker + access: [authority] + trust: surface + situation: [greeting] + mood: [suspicious] + topic: [routine] + tags: [kael, greeting, repeat-visit, authority-tone, layer2] + notes: "Layer 2 greeting — repeat with authority figure, bar context. Politely questioning their continued presence. The bar is supposed to be off-limits from work." + + # post-confrontation: confrontation in InteractionMemory.notable_events. NPC mood shifted to suspicious/frustrated. + - id: the-last-shift_d_019 + text: "You came back." + role: dock-worker + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [suspicious, frustrated] + topic: [personal, trust] + tags: [kael, greeting, post-confrontation, layer2] + notes: "Layer 2 greeting — post-confrontation, bar context. Flat, loaded. Not a welcome. Three words that replace a whole conversation they both don't want to have." diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-detective.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-detective.yaml index 693ccae1d..3f9e8f081 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-detective.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-detective.yaml @@ -15,7 +15,7 @@ lines: access: [public] trust: surface situation: [bar_evening, greeting] - mood: [comfortable] + mood: [content] topic: [personal] tags: [pc-detective, greeting, public-tier] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-smuggler.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-smuggler.yaml index 477c4d3f7..08090fc64 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-smuggler.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/pc-smuggler.yaml @@ -15,7 +15,7 @@ lines: access: [public] trust: surface situation: [bar_evening, greeting] - mood: [comfortable] + mood: [content] topic: [personal] tags: [pc-smuggler, greeting, public-tier] @@ -25,7 +25,7 @@ lines: access: [public] trust: surface situation: [bar_evening, social] - mood: [comfortable] + mood: [content] topic: [routine] tags: [pc-smuggler, social, public-tier] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml index f6c5cbca2..9207ffedc 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml @@ -45,7 +45,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [personal] - mood: [fond, comfortable] + mood: [warm, content] tags: [greeting, phase-1, establishes-warmth] - id: the-last-shift_d_102 @@ -55,7 +55,7 @@ lines: trust: surface situation: [bar_evening, arrival] topic: [personal] - mood: [fond] + mood: [warm] tags: [greeting, phase-1, spatial-anchor] - id: the-last-shift_d_103 @@ -65,7 +65,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [personal, routine] - mood: [fond, comfortable] + mood: [warm, content] tags: [greeting, phase-1-2] - id: the-last-shift_d_104 @@ -75,7 +75,7 @@ lines: trust: surface situation: [bar_evening, arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [greeting, phase-2-5, repeatable] - id: the-last-shift_d_105 @@ -85,7 +85,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [colleague, personal] - mood: [comfortable] + mood: [content] tags: [greeting, phase-2, naia-reference] - id: the-last-shift_d_106 @@ -95,7 +95,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [routine] - mood: [comfortable] + mood: [content] tags: [greeting, phase-1-3] - id: the-last-shift_d_107 @@ -105,7 +105,7 @@ lines: trust: surface situation: [bar_evening, arrival] topic: [personal] - mood: [concerned] + mood: [frustrated] tags: [greeting, phase-3-5, post-pattern, shorter] - id: the-last-shift_d_108 @@ -115,7 +115,7 @@ lines: trust: surface situation: [bar_evening, arrival] topic: [routine, personal] - mood: [comfortable] + mood: [content] tags: [greeting, phase-2-3] # ============================================================ @@ -130,7 +130,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [orientation, district-background] - id: the-last-shift_d_111 @@ -140,7 +140,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [orientation, npc-introduction] - id: the-last-shift_d_112 @@ -150,7 +150,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [orientation, district-background] - id: the-last-shift_d_113 @@ -160,7 +160,7 @@ lines: trust: surface situation: [social] topic: [routine] - mood: [comfortable] + mood: [content] tags: [setting-atmosphere] - id: the-last-shift_d_114 @@ -170,7 +170,7 @@ lines: trust: surface situation: [social] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [self-introduction, institutional-background] - id: the-last-shift_d_115 @@ -180,7 +180,7 @@ lines: trust: surface situation: [social] topic: [personal, institution] - mood: [comfortable] + mood: [content] tags: [backstory, phase-1] - id: the-last-shift_d_116 @@ -190,7 +190,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [colleague] - mood: [fond] + mood: [warm] tags: [community-texture] - id: the-last-shift_d_117 @@ -200,7 +200,7 @@ lines: trust: surface situation: [bar_evening] topic: [routine] - mood: [comfortable] + mood: [content] tags: [setting-atmosphere, routine] - id: the-last-shift_d_118 @@ -210,7 +210,7 @@ lines: trust: surface situation: [social] topic: [personal] - mood: [comfortable] + mood: [content] tags: [setting-detail, phase-1] - id: the-last-shift_d_119 @@ -220,7 +220,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [personal] - mood: [comfortable] + mood: [content] tags: [spatial-anchor, character-detail] # ============================================================ @@ -239,7 +239,7 @@ lines: trust: surface situation: [social] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [institutional-background] - id: the-last-shift_d_121 @@ -249,7 +249,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [colleague, personal] - mood: [fond] + mood: [warm] tags: [naia-reference, phase-2] - id: the-last-shift_d_122 @@ -259,7 +259,7 @@ lines: trust: surface situation: [social] topic: [routine] - mood: [comfortable] + mood: [content] tags: [district-context] - id: the-last-shift_d_123 @@ -269,7 +269,7 @@ lines: trust: surface situation: [social, investigation] topic: [colleague, institution] - mood: [comfortable] + mood: [content] tags: [deflection-surface, distance-from-hub] - id: the-last-shift_d_124 @@ -279,7 +279,7 @@ lines: trust: surface situation: [social] topic: [colleague, personal] - mood: [comfortable] + mood: [content] tags: [community-framing] - id: the-last-shift_d_125 @@ -289,7 +289,7 @@ lines: trust: surface situation: [social] topic: [institution] - mood: [comfortable] + mood: [content] tags: [information-offer, phase-2, overcompensation-seed] # --- Real trust --- @@ -301,7 +301,7 @@ lines: trust: real situation: [social, bar_evening] topic: [colleague, personal, trust] - mood: [concerned] + mood: [frustrated] tags: [naia-kael-link, phase-2, critical-information] knowledge_grant: fact_id: "relationship.kael_naia_connection" @@ -314,7 +314,7 @@ lines: trust: real situation: [social] topic: [institution, investigation] - mood: [analytical] + mood: [focused] tags: [institutional-access, phase-2-3, self-incriminating-hint] - id: the-last-shift_d_132 @@ -324,7 +324,7 @@ lines: trust: real situation: [social, bar_evening] topic: [personal, trust] - mood: [concerned, conflicted] + mood: [frustrated, anxious] tags: [motivation-reveal, phase-2-3] - id: the-last-shift_d_133 @@ -334,7 +334,7 @@ lines: trust: real situation: [social] topic: [institution, investigation] - mood: [analytical] + mood: [focused] tags: [institutional-capability, overcompensation, phase-3-4] knowledge_grant: fact_id: "investigation.manifest_discrepancy" @@ -347,7 +347,7 @@ lines: trust: real situation: [social] topic: [institution, personal] - mood: [analytical] + mood: [focused] tags: [self-awareness, capability-reveal] - id: the-last-shift_d_135 @@ -357,7 +357,7 @@ lines: trust: real situation: [social, investigation] topic: [trust] - mood: [conflicted] + mood: [anxious] tags: [deflection-real-tier, phase-4, the-lie] - id: the-last-shift_d_136 @@ -367,7 +367,7 @@ lines: trust: real situation: [bar_evening, social] topic: [money, personal] - mood: [conflicted] + mood: [anxious] tags: [moral-position, community-loyalty] # --- Secret trust --- @@ -379,7 +379,7 @@ lines: trust: secret situation: [alone, social] topic: [investigation, trust, personal] - mood: [conflicted] + mood: [anxious] tags: [confession, phase-5, critical-reveal] knowledge_grant: fact_id: "investigation.manifest_discrepancy" @@ -392,7 +392,7 @@ lines: trust: secret situation: [alone, social] topic: [personal, trust, institution] - mood: [conflicted] + mood: [anxious] tags: [motivation-confession, phase-5] - id: the-last-shift_d_142 @@ -402,7 +402,7 @@ lines: trust: secret situation: [alone] topic: [investigation, danger] - mood: [worried, conflicted] + mood: [anxious] tags: [torek-link, avoidance-explanation, phase-5] knowledge_grant: fact_id: "investigation.shift_mismatch" @@ -415,7 +415,7 @@ lines: trust: secret situation: [investigation, confrontation] topic: [trust, investigation] - mood: [suspicious, conflicted] + mood: [suspicious, anxious] tags: [denial-under-pressure, phase-4-5, the-wall] - id: the-last-shift_d_144 @@ -425,7 +425,7 @@ lines: trust: secret situation: [alone, social] topic: [trust, personal] - mood: [conflicted] + mood: [anxious] tags: [retrospective-confession, phase-5, emotional-payload] # ============================================================ @@ -441,7 +441,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [colleague, investigation] - mood: [comfortable] + mood: [content] tags: [unprompted, genuine-help, phase-1-2] knowledge_grant: fact_id: "relationship.trust_network" @@ -454,7 +454,7 @@ lines: trust: real situation: [social] topic: [institution, cargo] - mood: [analytical] + mood: [focused] tags: [unprompted, overcompensation, phase-3-4] - id: the-last-shift_d_152 @@ -464,7 +464,7 @@ lines: trust: real situation: [social, bar_evening] topic: [routine, investigation] - mood: [analytical, concerned] + mood: [focused, frustrated] tags: [unprompted, overcompensation, phase-3-4] - id: the-last-shift_d_153 @@ -474,7 +474,7 @@ lines: trust: real situation: [social] topic: [institution, investigation] - mood: [comfortable] + mood: [content] tags: [unprompted, information-offer, overcompensation, phase-3-5] - id: the-last-shift_d_154 @@ -484,7 +484,7 @@ lines: trust: real situation: [social, bar_evening] topic: [personal, colleague] - mood: [concerned] + mood: [frustrated] tags: [unprompted, naia-worry, phase-2-3] knowledge_grant: fact_id: "relationship.kael_naia_connection" @@ -497,7 +497,7 @@ lines: trust: real situation: [social, bar_evening] topic: [colleague, trust, danger] - mood: [concerned] + mood: [frustrated] tags: [unprompted, genuine-help, phase-2-3] # ============================================================ @@ -512,7 +512,7 @@ lines: trust: surface situation: [bar_evening] topic: [routine] - mood: [comfortable] + mood: [content] tags: [avoidance-excuse-1, torek-trigger, phase-3] - id: the-last-shift_d_161 @@ -522,7 +522,7 @@ lines: trust: surface situation: [bar_evening] topic: [personal] - mood: [comfortable] + mood: [content] tags: [avoidance-excuse-2, torek-trigger, phase-3] - id: the-last-shift_d_162 @@ -532,7 +532,7 @@ lines: trust: surface situation: [bar_evening] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [avoidance-excuse-3, torek-trigger, phase-3] - id: the-last-shift_d_163 @@ -542,7 +542,7 @@ lines: trust: surface situation: [social, investigation] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [torek-deflection, phase-4, the-deflection] - id: the-last-shift_d_164 @@ -552,7 +552,7 @@ lines: trust: surface situation: [investigation, social] topic: [cargo, institution] - mood: [comfortable] + mood: [content] tags: [topic-deflection, cargo-avoidance, phase-3-5] - id: the-last-shift_d_165 @@ -562,7 +562,7 @@ lines: trust: surface situation: [social, bar_evening] topic: [routine] - mood: [comfortable] + mood: [content] tags: [redirect, warmth-recovery, phase-4] - id: the-last-shift_d_166 @@ -582,7 +582,7 @@ lines: trust: real situation: [social, investigation] topic: [investigation, trust] - mood: [conflicted] + mood: [anxious] tags: [redirect-to-detective, controlled-recovery, phase-4] # ============================================================ @@ -598,7 +598,7 @@ lines: trust: surface situation: [bar_evening, arrival] topic: [personal] - mood: [fond] + mood: [warm] tags: [post-discovery, surface-warmth, phase-5] - id: the-last-shift_d_171 @@ -608,7 +608,7 @@ lines: trust: real situation: [social] topic: [institution] - mood: [comfortable] + mood: [content] tags: [post-discovery, overcompensation, phase-5] - id: the-last-shift_d_172 @@ -618,7 +618,7 @@ lines: trust: surface situation: [bar_evening, social] topic: [personal, investigation] - mood: [concerned] + mood: [frustrated] tags: [post-discovery, awareness, phase-5] - id: the-last-shift_d_173 @@ -628,7 +628,7 @@ lines: trust: real situation: [social] topic: [trust, personal] - mood: [fond, conflicted] + mood: [warm, anxious] tags: [post-discovery, genuine-but-contaminated, phase-5] - id: the-last-shift_d_174 @@ -638,5 +638,64 @@ lines: trust: real situation: [social, bar_evening] topic: [trust, personal] - mood: [fond, concerned] + mood: [warm, frustrated] tags: [post-discovery, overcompensation, phase-5, closing-line] + + # ============================================================ + # LAYER 2 GREETING VARIANTS — D-028 Layer 2 + # Ticket #170 (Sprint 15). situation: [greeting] fires on initial contact. + # Access tier + mood encode relationship history state. + # Sera is THE FRIEND for the detective. Warm, observant, bar anchor. + # ============================================================ + + # first_meeting (detective path): RelationshipState Unknown → Public/Authority access. + # Sera clocks them as Commission immediately. Makes them welcome anyway. + - id: the-last-shift_d_175 + text: "Commission? Don't worry, I don't bite. I'm Sera. Corner booth's better -- you can see the whole room." + role: bar-regular + access: [public, authority] + trust: surface + situation: [greeting] + mood: [warm] + topic: [personal, institution] + tags: [sera, greeting, first-meeting, detective-path, layer2] + notes: "Layer 2 greeting — first meeting, detective path. Sera reads the institutional marking immediately and disarms it. Corner booth tip is genuine -- Sera always notices the useful details." + + # established (detective path): count >= 3, RelationshipState: Known/Friendly → Peer access. + # Warmer, more personal. Sera has been waiting for them. + - id: the-last-shift_d_176 + text: "I was hoping you'd come in. Saved the corner booth. How'd today go?" + role: bar-regular + access: [peer] + trust: surface + situation: [greeting] + mood: [warm] + topic: [personal, investigation] + tags: [sera, greeting, repeat-visit, detective-path, layer2] + notes: "Layer 2 greeting — established, detective path. Personal, invested. Sera asks about their day the way a friend does -- not just small talk." + + # first_meeting (smuggler path): smuggler is dock crew, Sera knows the district crowd. + # Peer/insider access from the start -- Sera has social network, not institutional distance. + - id: the-last-shift_d_177 + text: "Terminal crew? Grab a seat. Kael usually sits in the back if you're looking for him." + role: bar-regular + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [content] + topic: [colleague, personal] + tags: [sera, greeting, first-meeting, smuggler-path, layer2] + notes: "Layer 2 greeting — first meeting, smuggler path. Sera recognizes dock crew on sight and extends the social network. Mentioning Kael is casual intel -- she knows everyone's connections." + + # post-confrontation: confrontation logged. Sera's surface warmth is present but qualified. + # She doesn't know where they stand. The welcome is real but uncertain. + - id: the-last-shift_d_178 + text: "You're back. I wasn't sure you would be." + role: bar-regular + access: [peer] + trust: surface + situation: [greeting] + mood: [anxious, suspicious] + topic: [personal, trust] + tags: [sera, greeting, post-confrontation, layer2] + notes: "Layer 2 greeting — post-confrontation. Sera's warmth is genuine but the relief is complicated. She genuinely didn't know if they'd come back. The relationship is still there but it's been stressed." diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/courier.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/courier.yaml index 66d26e6ad..7a0ea1d7b 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/courier.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/courier.yaml @@ -20,7 +20,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, greeting, operational] - id: the-terminal_d_501 @@ -30,7 +30,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, greeting, procedural] - id: the-terminal_d_502 @@ -40,7 +40,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, greeting, cargo] # ========================================== @@ -54,7 +54,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, operational, brief] - id: the-terminal_d_504 @@ -64,7 +64,7 @@ lines: trust: surface situation: [routine, investigation] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, procedural, documentation] - id: the-terminal_d_505 @@ -74,7 +74,7 @@ lines: trust: surface situation: [routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, operational] - id: the-terminal_d_506 @@ -84,7 +84,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, operational] dual_lens: smuggler: "Clean phrase. Public-safe. He'd say it either way." @@ -154,7 +154,7 @@ lines: trust: surface situation: [investigation, routine] topic: [institution, cargo] - mood: [comfortable] + mood: [content] tags: [renn, detective-path, procedural] - id: the-terminal_d_512 @@ -164,7 +164,7 @@ lines: trust: surface situation: [investigation] topic: [cargo, institution] - mood: [comfortable] + mood: [content] tags: [renn, detective-path, deflection] dual_lens: smuggler: "That's the answer. Clean and correct." @@ -177,7 +177,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [cargo, institution] - mood: [comfortable] + mood: [content] tags: [renn, detective-path, authority-assertion] # ========================================== @@ -191,7 +191,7 @@ lines: trust: surface situation: [shift_end, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, closing] - id: the-terminal_d_515 @@ -201,7 +201,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, closing] # ========================================== @@ -215,7 +215,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, greeting, generation-pass] - id: the-terminal_d_517 @@ -225,7 +225,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, greeting, procedural, generation-pass] - id: the-terminal_d_518 @@ -235,7 +235,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, delay, generation-pass] - id: the-terminal_d_519 @@ -245,7 +245,7 @@ lines: trust: surface situation: [routine, investigation] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [renn, procedural, generation-pass] - id: the-terminal_d_520 @@ -255,7 +255,7 @@ lines: trust: surface situation: [arrival, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, operational, generation-pass] - id: the-terminal_d_521 @@ -265,5 +265,5 @@ lines: trust: surface situation: [shift_end, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [renn, closing, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml index d6a085bdf..34c5ce396 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml @@ -19,7 +19,7 @@ lines: trust: surface situation: [shift_start, arrival] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [dock-worker, greeting] - id: the-terminal_d_201 @@ -56,7 +56,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, bay-four, procedural] dual_lens: smuggler: "He doesn't know what's in it. Just annoyed at the backup." @@ -69,7 +69,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, manifest] - id: the-terminal_d_205 @@ -92,7 +92,7 @@ lines: trust: surface situation: [routine] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [dock-worker, drin, inspection] dual_lens: smuggler: "Drin on six while bay four stays held. Scheduled or arranged?" @@ -118,7 +118,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [colleague, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, pael, community] - id: the-terminal_d_209 @@ -161,7 +161,7 @@ lines: trust: surface situation: [shift_end, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, social, the-last-shift] - id: the-terminal_d_212 @@ -171,7 +171,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, workers-association, community] - id: the-terminal_d_213 @@ -181,7 +181,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, social, pael] # ========================================== @@ -259,7 +259,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, closing] - id: the-terminal_d_220 @@ -269,7 +269,7 @@ lines: trust: surface situation: [shift_end, shift_transition] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, closing] # ========================================== @@ -283,7 +283,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [dock-worker, greeting, generation-pass] - id: the-terminal_d_222 @@ -293,7 +293,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, station, generation-pass] - id: the-terminal_d_223 @@ -303,7 +303,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [colleague, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, pael, generation-pass] - id: the-terminal_d_224 @@ -313,7 +313,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, social, generation-pass] - id: the-terminal_d_225 @@ -323,7 +323,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, scan-hold, generation-pass] - id: the-terminal_d_226 @@ -333,7 +333,7 @@ lines: trust: surface situation: [routine] topic: [colleague, routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, new-hire, generation-pass] - id: the-terminal_d_227 @@ -343,7 +343,7 @@ lines: trust: surface situation: [shift_transition] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, handoff, generation-pass] - id: the-terminal_d_228 @@ -373,7 +373,7 @@ lines: trust: surface situation: [routine] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [dock-worker, pael, humor, generation-pass] - id: the-terminal_d_231 @@ -383,7 +383,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, overtime, generation-pass] - id: the-terminal_d_232 @@ -393,5 +393,5 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [dock-worker, closing, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml index 1480ea9ab..f43eb2009 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml @@ -18,7 +18,7 @@ lines: access: [insider, peer] trust: surface situation: [arrival, shift_start] - mood: [fond] + mood: [warm] topic: [colleague] tags: [kael, greeting, phase-1] @@ -28,7 +28,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_start] - mood: [comfortable] + mood: [content] topic: [routine] tags: [kael, greeting, phase-1] @@ -38,7 +38,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_start] - mood: [comfortable] + mood: [content] topic: [colleague, routine] tags: [kael, greeting, humor] @@ -48,7 +48,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_start, social] - mood: [fond] + mood: [warm] topic: [colleague] tags: [kael, greeting, phase-1] @@ -58,7 +58,7 @@ lines: access: [peer] trust: surface situation: [arrival, social] - mood: [comfortable] + mood: [content] topic: [personal] tags: [kael, greeting, casual] @@ -69,7 +69,7 @@ lines: access: [public, authority] trust: surface situation: [arrival] - mood: [comfortable] + mood: [content] topic: [routine] tags: [kael, greeting, outsider] @@ -83,7 +83,7 @@ lines: access: [insider, peer] trust: surface situation: [routine, shift_start] - mood: [comfortable] + mood: [content] topic: [routine, cargo] tags: [kael, operational] @@ -93,7 +93,7 @@ lines: access: [public, peer] trust: surface situation: [routine] - mood: [comfortable] + mood: [content] topic: [cargo, routine] tags: [kael, operational] knowledge_grant: @@ -106,7 +106,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_start] - mood: [comfortable] + mood: [content] topic: [routine] tags: [kael, humor] @@ -116,7 +116,7 @@ lines: access: [public, peer] trust: surface situation: [routine] - mood: [comfortable] + mood: [content] topic: [routine] tags: [kael, environmental] @@ -126,7 +126,7 @@ lines: access: [insider, peer] trust: surface situation: [routine] - mood: [comfortable] + mood: [content] topic: [cargo, colleague] tags: [kael, operational, maret] @@ -136,7 +136,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_end, shift_transition] - mood: [comfortable] + mood: [content] topic: [routine] tags: [kael, operational] @@ -146,7 +146,7 @@ lines: access: [insider, peer] trust: surface situation: [social, routine] - mood: [fond] + mood: [warm] topic: [personal] tags: [kael, naia-reference, casual] @@ -199,7 +199,7 @@ lines: access: [insider] trust: real situation: [routine] - mood: [comfortable] + mood: [content] topic: [cargo] tags: [kael, ring-ops, maret, phase-2] @@ -209,7 +209,7 @@ lines: access: [insider] trust: real situation: [social] - mood: [concerned] + mood: [frustrated] topic: [danger, trust] tags: [kael, ring-ops, nils, tension, phase-2] @@ -231,7 +231,7 @@ lines: access: [insider] trust: real situation: [routine, social] - mood: [worried] + mood: [anxious] topic: [colleague, danger] tags: [kael, ring-ops, maret, caution, phase-2] @@ -241,7 +241,7 @@ lines: access: [insider] trust: real situation: [shift_transition] - mood: [concerned] + mood: [frustrated] topic: [cargo, danger] tags: [kael, ring-ops, contraband, phase-2] @@ -255,7 +255,7 @@ lines: access: [insider] trust: secret situation: [social, alone] - mood: [conflicted] + mood: [anxious] topic: [trust, personal] tags: [kael, vulnerability, friend-arc] @@ -265,7 +265,7 @@ lines: access: [insider] trust: secret situation: [social, alone] - mood: [conflicted] + mood: [anxious] topic: [personal, trust] tags: [kael, naia-reference, vulnerability] @@ -275,7 +275,7 @@ lines: access: [insider] trust: secret situation: [alone] - mood: [worried] + mood: [anxious] topic: [personal, trust] tags: [kael, naia-reference, vulnerability, friend-arc] @@ -289,7 +289,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_start] - mood: [concerned] + mood: [frustrated] topic: [colleague, danger] tags: [kael, unprompted, warning] @@ -299,7 +299,7 @@ lines: access: [insider, peer] trust: surface situation: [shift_end, social] - mood: [fond] + mood: [warm] topic: [personal, colleague] tags: [kael, unprompted, social] @@ -309,7 +309,7 @@ lines: access: [insider] trust: real situation: [social] - mood: [worried] + mood: [anxious] topic: [danger, colleague] tags: [kael, unprompted, torek, caution] @@ -323,7 +323,7 @@ lines: access: [insider, peer] trust: surface situation: [confrontation, social] - mood: [concerned] + mood: [frustrated] topic: [personal] tags: [kael, deflection, phase-4] @@ -333,7 +333,7 @@ lines: access: [insider, peer] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [personal, trust] tags: [kael, deflection, phase-4] @@ -343,7 +343,7 @@ lines: access: [insider, peer] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [routine] tags: [kael, deflection, lying, phase-4] @@ -353,7 +353,7 @@ lines: access: [insider, peer] trust: surface situation: [confrontation, shift_start] - mood: [concerned] + mood: [frustrated] topic: [routine, trust] tags: [kael, deflection, subject-change, phase-4] @@ -363,7 +363,7 @@ lines: access: [insider] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [danger] tags: [kael, deflection, phase-4] @@ -378,7 +378,7 @@ lines: access: [insider] trust: real situation: [confrontation, alone] - mood: [conflicted] + mood: [anxious] topic: [trust, personal] tags: [kael, confession-path, phase-5] @@ -389,7 +389,7 @@ lines: access: [insider] trust: surface situation: [confrontation] - mood: [concerned] + mood: [frustrated] topic: [danger, trust] tags: [kael, hostile-path, phase-5] @@ -400,7 +400,7 @@ lines: access: [insider] trust: secret situation: [confrontation, alone] - mood: [conflicted] + mood: [anxious] topic: [personal, trust] tags: [kael, confession, naia-reference, phase-5] @@ -422,3 +422,57 @@ lines: situation: [confrontation, investigation] topic: [colleague, routine] tags: [kael, deflection, detective-path, voss] + + # ======================================== + # LAYER 2 GREETING VARIANTS — D-028 Layer 2 + # Ticket #170 (Sprint 15). situation: [greeting] fires on initial contact. + # Access tier + mood encode relationship history state. + # ======================================== + + # first_meeting: InteractionMemory.count == 0. RelationshipState: Unknown → Public access only. + - id: the-terminal_d_039 + text: "This section is dock crew and logistics. If you're Commission or admin, check-in's back that way." + role: dock-worker + access: [public] + trust: surface + situation: [greeting] + mood: [content] + topic: [routine] + tags: [kael, greeting, first-meeting, layer2] + notes: "Layer 2 greeting — first meeting. Kael is helpful but orienting the stranger away from his work." + + # established — peer/smuggler context: count >= 3, RelationshipState: Known/Friendly → Peer/Insider access. + - id: the-terminal_d_040 + text: "You're back. Good -- bay three's been quiet. I'll fill you in." + role: dock-worker + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [warm] + topic: [colleague, routine] + tags: [kael, greeting, repeat-visit, peer-tone, layer2] + notes: "Layer 2 greeting — established. Warm, practical, skips pleasantries. Treats them as crew." + + # established — authority/detective context: count >= 3, RelationshipState: PersonOfInterest → Authority access. + - id: the-terminal_d_041 + text: "Back again. I'm on shift -- if you have questions, make them quick." + role: dock-worker + access: [authority] + trust: surface + situation: [greeting] + mood: [focused] + topic: [routine] + tags: [kael, greeting, repeat-visit, authority-tone, layer2] + notes: "Layer 2 greeting — repeat with authority figure. Professional, clipped, not hostile. Kael can't refuse but won't volunteer." + + # post-confrontation: confrontation in InteractionMemory.notable_events. NPC mood shifted to suspicious/frustrated. + - id: the-terminal_d_042 + text: "Didn't expect you today." + role: dock-worker + access: [peer, insider] + trust: surface + situation: [greeting] + mood: [suspicious, frustrated] + topic: [personal] + tags: [kael, greeting, post-confrontation, layer2] + notes: "Layer 2 greeting — post-confrontation. Strained. Four words doing the work of a paragraph. Not hostile but the warmth is gone." diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml index 04a97e3bb..110ee56e4 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/maintenance-tech.yaml @@ -21,7 +21,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [pael, seems-important-but-isnt, maintenance, b7] dual_lens: smuggler: "Pael knows the corridor's been used. But Pael knows nothing — this is an HVAC complaint." @@ -42,7 +42,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [pael, atmospheric] - id: the-terminal_d_042 @@ -52,7 +52,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [pael, atmospheric] - id: the-terminal_d_043 @@ -62,7 +62,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [pael, warning, helpful] - id: the-terminal_d_044 @@ -72,7 +72,7 @@ lines: trust: surface situation: [routine, social] topic: [routine] - mood: [comfortable] + mood: [content] tags: [pael, response] - id: the-terminal_d_045 @@ -82,5 +82,5 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [pael, atmospheric] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/new-hire.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/new-hire.yaml index d891ba8f7..c403ec223 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/new-hire.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/new-hire.yaml @@ -19,7 +19,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, greeting, orientation] - id: the-terminal_d_401 @@ -29,7 +29,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [new-hire, greeting, voss] - id: the-terminal_d_402 @@ -39,7 +39,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, greeting] # ========================================== @@ -53,7 +53,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [new-hire, bay-four, observation] dual_lens: smuggler: "New eyes on bay four. He doesn't know what he's looking at. But he noticed." @@ -66,7 +66,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [new-hire, c4-storage, observation, inadvertent-witness] dual_lens: smuggler: "He saw someone in C-4 without a log. Does he know who? This is a problem." @@ -83,7 +83,7 @@ lines: trust: surface situation: [routine, shift_transition] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, transition-window, comparison] dual_lens: smuggler: "He's asking about the window. Doesn't know why it matters. Answer carefully." @@ -96,7 +96,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [new-hire, bay-four, inadvertent-witness] dual_lens: smuggler: "He saw movement through bay four during the hold. This is a liability." @@ -112,7 +112,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, maintenance-corridors, orientation] dual_lens: smuggler: "He found the corridor entrance by accident. Normal for new workers. Noted." @@ -129,7 +129,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [new-hire, commission, curiosity] - id: the-terminal_d_409 @@ -139,7 +139,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [new-hire, maret, observation] dual_lens: smuggler: "He noticed Maret. Good that he's asking, not reporting. Manage this." @@ -152,7 +152,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [new-hire, voss, curiosity] - id: the-terminal_d_411 @@ -162,7 +162,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [new-hire, voss, career] # ========================================== @@ -176,7 +176,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, closing] - id: the-terminal_d_413 @@ -186,7 +186,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, closing] # ========================================== @@ -200,7 +200,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, orientation, generation-pass] - id: the-terminal_d_415 @@ -210,7 +210,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [new-hire, maret, curiosity, generation-pass] - id: the-terminal_d_416 @@ -220,7 +220,7 @@ lines: trust: surface situation: [routine, arrival] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, orientation, generation-pass] - id: the-terminal_d_417 @@ -230,7 +230,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, social, generation-pass] - id: the-terminal_d_418 @@ -240,7 +240,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [new-hire, orientation, humor, generation-pass] - id: the-terminal_d_419 @@ -250,7 +250,7 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [new-hire, drin, curiosity, generation-pass] - id: the-terminal_d_420 @@ -260,5 +260,5 @@ lines: trust: surface situation: [routine] topic: [colleague] - mood: [comfortable] + mood: [content] tags: [new-hire, voss, humor, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-detective.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-detective.yaml index 25e3a309e..2a668c58d 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-detective.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-detective.yaml @@ -23,7 +23,7 @@ lines: access: [public] trust: surface situation: [arrival, greeting] - mood: [comfortable] + mood: [content] topic: [routine] tags: [pc-detective, greeting, public-tier] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-smuggler.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-smuggler.yaml index 2e77f0934..8e2289019 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-smuggler.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/pc-smuggler.yaml @@ -23,7 +23,7 @@ lines: access: [public] trust: surface situation: [arrival, greeting] - mood: [comfortable] + mood: [content] topic: [routine] tags: [pc-smuggler, greeting, public-tier] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml index 2692d68c0..31eba436d 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml @@ -20,7 +20,7 @@ lines: trust: surface situation: [shift_start, arrival] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, procedural, greeting] - id: the-terminal_d_301 @@ -30,7 +30,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [maret, container-4471, procedural] dual_lens: smuggler: "She's tracking 4471 as a scheduling issue. Not flagging it as a discrepancy yet." @@ -46,7 +46,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [maret, procedural, manifest] # ========================================== @@ -60,7 +60,7 @@ lines: trust: surface situation: [routine, investigation] topic: [cargo, routine] - mood: [concerned] + mood: [frustrated] tags: [maret, discrepancy, flagging] dual_lens: smuggler: "Which container? Not 4471. She's flagging a different one. Two flags, no escalation." @@ -76,7 +76,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [concerned] + mood: [frustrated] tags: [maret, discrepancy, institutional-response] dual_lens: smuggler: "She doesn't know what 'administrative' means either. Voss's answer covered nothing." @@ -89,7 +89,7 @@ lines: trust: surface situation: [routine, investigation] topic: [cargo, routine] - mood: [concerned] + mood: [frustrated] tags: [maret, pattern, transition-window] dual_lens: smuggler: "She's found the pattern. Not the cause. Not yet." @@ -105,7 +105,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [concerned] + mood: [frustrated] tags: [maret, pattern, manifest] dual_lens: smuggler: "She's tracking the small ones too. But 'within rounding' is what Voss told her. She's not satisfied." @@ -118,7 +118,7 @@ lines: trust: surface situation: [routine, confrontation] topic: [cargo, institution] - mood: [concerned] + mood: [frustrated] tags: [maret, voss, suppression, frustration] dual_lens: smuggler: "She filed a formal notice. Voss sat on it. She knows. This is the pressure point." @@ -138,7 +138,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, operational] - id: the-terminal_d_309 @@ -148,7 +148,7 @@ lines: trust: surface situation: [routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, drin, bay-four, scheduling] dual_lens: smuggler: "Maret confirmed it: bay four is Voss's directive. Not a system hold." @@ -161,7 +161,7 @@ lines: trust: surface situation: [routine] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [maret, administrative] - id: the-terminal_d_311 @@ -171,7 +171,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, procedural, manifest] # ========================================== @@ -185,7 +185,7 @@ lines: trust: surface situation: [investigation, routine] topic: [institution, cargo] - mood: [comfortable] + mood: [content] tags: [maret, detective-path, procedural] - id: the-terminal_d_313 @@ -195,7 +195,7 @@ lines: trust: surface situation: [investigation] topic: [cargo, institution] - mood: [concerned] + mood: [frustrated] tags: [maret, detective-path, discrepancy-disclosure] dual_lens: smuggler: "Never encounters this line." @@ -208,7 +208,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [institution, cargo] - mood: [concerned] + mood: [frustrated] tags: [maret, detective-path, careful-language] dual_lens: smuggler: "Never encounters this line." @@ -225,7 +225,7 @@ lines: trust: real situation: [routine, investigation] topic: [cargo, investigation] - mood: [concerned] + mood: [frustrated] tags: [maret, peer-candor, pattern] dual_lens: smuggler: "She's figured it out. She hasn't said what 'it' is. But she knows the numbers aren't random." @@ -241,7 +241,7 @@ lines: trust: real situation: [routine, confrontation] topic: [cargo, institution] - mood: [concerned] + mood: [frustrated] tags: [maret, voss, suppression, peer-candor] dual_lens: smuggler: "Two formal notices. Both sitting with Voss. He's managing her output directly." @@ -257,7 +257,7 @@ lines: trust: real situation: [confrontation, alone] topic: [investigation] - mood: [concerned] + mood: [frustrated] tags: [maret, detective-path, threshold-line] notes: "Gate line. Opens when detective has built enough trust. What follows depends on the conversation state." @@ -272,7 +272,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [maret, closing] - id: the-terminal_d_319 @@ -282,7 +282,7 @@ lines: trust: real situation: [shift_end, routine] topic: [routine] - mood: [concerned] + mood: [frustrated] tags: [maret, closing, character-line] notes: "Low-access line. Maret's professional philosophy. Can fire as ambient or as a closing beat." @@ -297,7 +297,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, procedural, generation-pass] - id: the-terminal_d_321 @@ -307,7 +307,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [maret, operational, generation-pass] - id: the-terminal_d_322 @@ -317,7 +317,7 @@ lines: trust: surface situation: [routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, procedural, generation-pass] - id: the-terminal_d_323 @@ -327,7 +327,7 @@ lines: trust: surface situation: [routine] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [maret, voss, administrative, generation-pass] - id: the-terminal_d_324 @@ -337,7 +337,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [maret, procedural, generation-pass] - id: the-terminal_d_325 @@ -347,7 +347,7 @@ lines: trust: surface situation: [routine, shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [maret, procedural, generation-pass] - id: the-terminal_d_326 @@ -357,7 +357,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [maret, procedural, manifest, generation-pass] - id: the-terminal_d_327 diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/shift-supervisor.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/shift-supervisor.yaml index befdacc14..c20d61025 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/shift-supervisor.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/shift-supervisor.yaml @@ -19,7 +19,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, greeting, authority] - id: the-terminal_d_101 @@ -29,7 +29,7 @@ lines: trust: surface situation: [shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [voss, procedural] - id: the-terminal_d_102 @@ -39,7 +39,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [voss, authority] dual_lens: smuggler: "Review hold on Bay 4. Voss knows the container's in the queue. Is he covering it or flagging it?" @@ -52,7 +52,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [institution, routine] - mood: [concerned] + mood: [frustrated] tags: [voss, warning, commission] dual_lens: smuggler: "Voss knows the detective's here. That warning's not just about tidiness." @@ -69,7 +69,7 @@ lines: trust: surface situation: [routine] topic: [routine, colleague] - mood: [comfortable] + mood: [content] tags: [voss, drin, authority] - id: the-terminal_d_105 @@ -79,7 +79,7 @@ lines: trust: surface situation: [shift_transition] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, procedural, transition-window] - id: the-terminal_d_106 @@ -89,7 +89,7 @@ lines: trust: surface situation: [routine, shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, procedural] - id: the-terminal_d_107 @@ -99,7 +99,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, operational] - id: the-terminal_d_108 @@ -109,7 +109,7 @@ lines: trust: surface situation: [routine, investigation] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [voss, maret, discrepancy, cover] dual_lens: smuggler: "Voss reviewed it and logged it. Not escalating. He's managing it." @@ -125,7 +125,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [comfortable] + mood: [content] tags: [voss, deflection, philosophy] # ========================================== @@ -177,7 +177,7 @@ lines: trust: surface situation: [investigation, routine] topic: [institution, routine] - mood: [comfortable] + mood: [content] tags: [voss, detective-path, institutional-resistance] - id: the-terminal_d_114 @@ -187,7 +187,7 @@ lines: trust: surface situation: [investigation] topic: [cargo, institution] - mood: [comfortable] + mood: [content] tags: [voss, detective-path, redirect] - id: the-terminal_d_115 @@ -197,7 +197,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [voss, detective-path, deflection] - id: the-terminal_d_116 @@ -207,7 +207,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [voss, detective-path, authority-assertion] # ========================================== @@ -221,7 +221,7 @@ lines: trust: real situation: [confrontation, alone] topic: [danger] - mood: [concerned] + mood: [frustrated] tags: [voss, confrontation, private] - id: the-terminal_d_118 @@ -231,7 +231,7 @@ lines: trust: real situation: [confrontation, alone] topic: [colleague, danger] - mood: [concerned] + mood: [frustrated] tags: [voss, ring-ops, maret, caution] knowledge_grant: fact_id: behavioral.voss_awareness @@ -244,7 +244,7 @@ lines: trust: surface situation: [confrontation] topic: [routine] - mood: [concerned] + mood: [frustrated] tags: [voss, deflection, shutdown] # ========================================== @@ -258,7 +258,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, procedural] - id: the-terminal_d_121 @@ -268,7 +268,7 @@ lines: trust: surface situation: [shift_transition, shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, procedural] - id: the-terminal_d_122 @@ -278,7 +278,7 @@ lines: trust: surface situation: [shift_end] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, closing] # ========================================== @@ -292,7 +292,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, procedural, generation-pass] - id: the-terminal_d_124 @@ -302,7 +302,7 @@ lines: trust: surface situation: [routine] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [voss, procedural, maret, generation-pass] - id: the-terminal_d_125 @@ -312,7 +312,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [voss, operational, generation-pass] - id: the-terminal_d_126 @@ -322,7 +322,7 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, authority, generation-pass] - id: the-terminal_d_127 @@ -332,7 +332,7 @@ lines: trust: surface situation: [shift_end, routine] topic: [routine, institution] - mood: [comfortable] + mood: [content] tags: [voss, procedural, generation-pass] - id: the-terminal_d_128 @@ -342,7 +342,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine, cargo] - mood: [comfortable] + mood: [content] tags: [voss, operational, generation-pass] - id: the-terminal_d_129 @@ -352,5 +352,5 @@ lines: trust: surface situation: [routine] topic: [routine] - mood: [comfortable] + mood: [content] tags: [voss, philosophy, generation-pass] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/general.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/general.yaml index 9b224a8cf..fe1b701b6 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/general.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/general.yaml @@ -3,50 +3,90 @@ location: general lines: - id: general_m_d_001 text: "Sova Transit District. Population twelve thousand and change. Let's narrow that down." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, analytical] - id: general_m_d_002 text: "The span gate resonance is constant here. Background radiation of a freight hub." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: general_m_d_003 text: "First week on station. The case file is thin. The manifest discrepancies are not." + role: player_character + access: [public] + trust: surface + situation: [investigation] trigger: time_idle tags: [investigation, orientation] - id: general_m_d_004 text: "Everyone knows I'm Commission. The conversations stop when I walk in. Noted." + role: player_character + access: [public] + trust: surface + situation: [investigation] trigger: time_idle tags: [investigation, social] - id: general_m_d_005 text: "Station gravity's point-nine-three standard. Enough to notice after a long shift." + role: player_character + access: [public] + trust: surface + situation: [alone] trigger: time_idle tags: [environmental, personal] - id: general_m_d_006 text: "The previous liaison rotated out three months ago. That gap matters." + role: player_character + access: [public] + trust: surface + situation: [investigation] trigger: time_idle tags: [investigation, analytical] - id: general_m_d_007 text: "Back in the district. Let's see what changed while I wasn't watching." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit tags: [arrival, analytical] - id: general_m_d_008 text: "Recycled air, industrial residue, and that constant gate hum. Sova in three notes." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: general_m_d_009 text: "Communities like this close ranks around outsiders. Patient work." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: time_idle tags: [reflection, social] - id: general_m_d_010 text: "The manifest data goes back eighteen months. The pattern starts around month six." + role: player_character + access: [public] + trust: surface + situation: [investigation] trigger: time_idle tags: [investigation, analytical] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/maintenance-corridors.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/maintenance-corridors.yaml index 9a9d37c41..e0dda7c5a 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/maintenance-corridors.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/maintenance-corridors.yaml @@ -5,41 +5,73 @@ lines: - id: maintenance-corridors_m_d_001 text: "Maintenance level. Low lighting, exposed conduit, restricted access nobody enforces." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, environmental] - id: maintenance-corridors_m_d_002 text: "The air's different down here. Cooler. Damper. Less filtered." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: maintenance-corridors_m_d_003 text: "Service corridor B-section. Not on the public transit map. Interesting routing options." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location tags: [arrival, investigation] - id: maintenance-corridors_m_d_004 text: "Water recycling conduits. The station's circulatory system, hidden from view." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: maintenance-corridors_m_d_005 text: "Pipe network branching three directions. Good for maintenance. Better for privacy." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, analytical] - id: maintenance-corridors_m_d_006 text: "Emergency lighting only. Visibility reduced, but so is surveillance coverage." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location tags: [environmental, investigation] - id: maintenance-corridors_m_d_007 text: "The rust smell is stronger near junction B-7. Older section. Less maintenance." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: maintenance-corridors_m_d_008 text: "Back in the corridors. Different route this time — mapping the alternatives." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: return_visit tags: [arrival, investigation] @@ -47,41 +79,73 @@ lines: - id: maintenance-corridors_m_d_009 text: "Scuff marks on the floor. Recent, heavy. Cargo weight, not foot traffic." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly tags: [investigation, evidence] - id: maintenance-corridors_m_d_010 text: "The service hatch has been used recently. Oil on the handle, dust disturbed." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly tags: [investigation, evidence] - id: maintenance-corridors_m_d_011 text: "Restricted access, but the lock plate shows wear. Regular use by someone with clearance." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly tags: [investigation, evidence] - id: maintenance-corridors_m_d_012 text: "Sound carries differently down here. Voices from two junctions away, if you're patient." + role: player_character + access: [public] + trust: surface + situation: [investigation, routine] trigger: hear_sound tags: [environmental, investigation] - id: maintenance-corridors_m_d_013 text: "Chalk marks on the wall. Low, deliberate. Not maintenance notation — wrong color." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly tags: [investigation, evidence] - id: maintenance-corridors_m_d_014 text: "This corridor connects bay four to temp storage. Bypasses the main freight floor entirely." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation, routine] trigger: enter_location tags: [investigation, operational] - id: maintenance-corridors_m_d_015 text: "Footsteps ahead. Single set, moving fast. Someone who knows where they're going." + role: player_character + access: [public] + trust: surface + situation: [investigation, routine] trigger: hear_sound tags: [investigation, caution] - id: maintenance-corridors_m_d_016 text: "The temp storage access from this side isn't logged on the manifest system. Blind spot." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly tags: [investigation, evidence] @@ -89,6 +153,10 @@ lines: - id: maintenance-corridors_m_d_017 text: "The cargo scuff pattern matches bay four containers. Dock to corridor to storage — the route." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -99,6 +167,10 @@ lines: - id: maintenance-corridors_m_d_018 text: "Those chalk marks match the courier's timing. Renn's route markers, if I had to guess." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -109,6 +181,10 @@ lines: - id: maintenance-corridors_m_d_019 text: "Camera blind spot at junction C-2. Coincidence, or someone mapped the coverage?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -118,6 +194,10 @@ lines: - id: maintenance-corridors_m_d_020 text: "Standard container, no manifest checkpoint along this route. That's the gap." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -128,6 +208,10 @@ lines: - id: maintenance-corridors_m_d_021 text: "Hatch lubricant is fresh. Someone's maintaining this access point. Not station maintenance." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -137,6 +221,10 @@ lines: - id: maintenance-corridors_m_d_022 text: "Davan was seen near B-7 during off-shift. Cross-reference with container movements." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -147,6 +235,10 @@ lines: - id: maintenance-corridors_m_d_023 text: "Two access routes, one manifest checkpoint. Someone designed this gap. Or discovered it." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -156,6 +248,10 @@ lines: - id: maintenance-corridors_m_d_024 text: "Rosta's gambling debt gives me leverage. But using it makes me the authority they resent." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -166,6 +262,10 @@ lines: - id: maintenance-corridors_m_d_025 text: "Evidence is accumulating. Names, routes, timing. But I still can't see the full picture." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/pc-smuggler-tells.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/pc-smuggler-tells.yaml index 39d64ad33..65ffe3c1d 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/pc-smuggler-tells.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/pc-smuggler-tells.yaml @@ -14,6 +14,10 @@ lines: - id: general_m_d_011 text: "That dock worker checks the corridor before turning. Habitual. Military? Or just careful." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -23,6 +27,10 @@ lines: - id: general_m_d_012 text: "Movement pattern changed at shift change. More direct. Less idle. Interesting." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: relationship: @@ -32,6 +40,10 @@ lines: - id: general_m_d_013 text: "Slight acceleration past the checkpoint. Most people do it. But this one does it every time." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: relationship: @@ -41,6 +53,10 @@ lines: - id: general_m_d_014 text: "Same three people at the same table. Every shift. Consistent social group." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -50,6 +66,10 @@ lines: - id: general_m_d_015 text: "That worker checked container 4471 twice. The same container that's in my manifest discrepancy file." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -65,6 +85,10 @@ lines: - id: general_m_d_016 text: "Three behavioral flags on one dock worker. Corridor awareness, shift-transition alertness, cargo fixation. That's a pattern." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: entity_attributes: @@ -76,6 +100,10 @@ lines: - id: general_m_d_017 text: "Cross-referencing the dock worker's shift schedule with manifest anomalies. Correlation: moderate." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -89,6 +117,10 @@ lines: - id: general_m_d_018 text: "The dock worker and Davan eat together every shift. Same courier joins them. Tight operational cluster." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: relationship: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-last-shift.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-last-shift.yaml index 182ca4dc4..d0c7efe2c 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-last-shift.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-last-shift.yaml @@ -5,51 +5,91 @@ lines: - id: the-last-shift_m_d_001 text: "The Last Shift. Only place in this district that doesn't smell like freight lubricant." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: the-last-shift_m_d_002 text: "Grain spirit and low conversation. The social nexus of Sova Transit." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, analytical] - id: the-last-shift_m_d_003 text: "Bar's busy tonight. Good — crowds talk. Bad — they notice outsiders." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location tags: [arrival, investigation] - id: the-last-shift_m_d_004 text: "Standard district bar. Prefab fixtures, aftermarket lighting, a menu board nobody reads." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, environmental] - id: the-last-shift_m_d_005 text: "The Meridian feed on the wall display. Local news, freight indices, Assembly coverage." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental] - id: the-last-shift_m_d_006 text: "The overhead vent rattles every thirty seconds. Like clockwork. Nobody else notices." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: the-last-shift_m_d_007 text: "The conversation volume dropped when I walked in. Recovering now. They're adjusting." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location tags: [social, investigation] - id: the-last-shift_m_d_008 text: "Back at the bar. Same booth. Let's see who's here and who isn't." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit tags: [arrival, analytical] - id: the-last-shift_m_d_009 text: "Kitchen's running. Fried protein and something spiced. The bar's other currency: hot food." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: the-last-shift_m_d_010 text: "Someone carved initials into this table. Old. A history I don't have." + role: player_character + access: [public] + trust: surface + situation: [alone] trigger: time_idle tags: [environmental, reflection] @@ -57,51 +97,91 @@ lines: - id: the-last-shift_m_d_011 text: "The bartender — Sessik, L. Knows everyone. Watches everything. Gives away nothing." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, lera, analytical] - id: the-last-shift_m_d_012 text: "Good to see Sera. At least someone in this district speaks my language." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, sera, warm] - id: the-last-shift_m_d_013 text: "Lintar, T. — the loud one at the bar. Spends freely. Where's the money from?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc tags: [npc, torek, investigation] - id: the-last-shift_m_d_014 text: "A woman at the corner table — Tamm, N., according to Sera. Davan's partner." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, naia, analytical] - id: the-last-shift_m_d_015 text: "The regulars have assigned seating. Unofficial, but enforced. I don't have a spot yet." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [social, atmospheric] - id: the-last-shift_m_d_016 text: "Sessik greeted three people by name since I sat down. I got a nod. Progress." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, lera, social] - id: the-last-shift_m_d_017 text: "Two dock workers in the corner. Heads close, voices low. Not unusual for after-shift." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction tags: [social, investigation] - id: the-last-shift_m_d_018 text: "Sera introduced me to Tamm. Brief, polite, guarded. Expected." + role: player_character + access: [public] + trust: surface + situation: [social] trigger: post_conversation tags: [npc, sera, naia, social] - id: the-last-shift_m_d_019 text: "Sessik poured my drink without asking. She remembered. Small thing, but noted." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, lera, social, warm] - id: the-last-shift_m_d_020 text: "The old man by the window hasn't spoken to anyone all evening. Watching, though." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [social, atmospheric] @@ -109,6 +189,10 @@ lines: - id: the-last-shift_m_d_021 text: "Sera left when Torek arrived. Second time. Different excuse. Same result." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -119,6 +203,10 @@ lines: - id: the-last-shift_m_d_022 text: "That's the third time. Three excuses, one result. That's data." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -129,6 +217,10 @@ lines: - id: the-last-shift_m_d_023 text: "Lintar's spending doesn't match a dock worker's salary. Source unknown." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -138,6 +230,10 @@ lines: - id: the-last-shift_m_d_024 text: "Sessik's eyes tracked me when I sat near the back room. Protective, not hostile." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -147,6 +243,10 @@ lines: - id: the-last-shift_m_d_025 text: "Sera's being extra helpful tonight. Names, backgrounds, context. Compensating?" + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: relationship: @@ -157,6 +257,10 @@ lines: - id: the-last-shift_m_d_026 text: "Same booth. Same warm smile. Same offer to buy me a drink. Everything except the truth." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: relationship: @@ -167,6 +271,10 @@ lines: - id: the-last-shift_m_d_027 text: "Tamm seems distressed tonight. Not her baseline. Something at home, or something she heard?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -176,6 +284,10 @@ lines: - id: the-last-shift_m_d_028 text: "Sessik just redirected a conversation away from freight schedules. Protective reflex?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction prerequisites: facts: @@ -185,6 +297,10 @@ lines: - id: the-last-shift_m_d_029 text: "Davan and his partner at the bar. She's talking. He's not listening. Noted." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction prerequisites: relationship: @@ -194,6 +310,10 @@ lines: - id: the-last-shift_m_d_030 text: "The regulars are warming up. Three visits and I'm almost furniture. Almost." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit prerequisites: facts: @@ -206,6 +326,10 @@ lines: - id: the-last-shift_m_d_043 text: "Davan is different here. Looser. The dock worker persona drops and something warmer replaces it." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -215,6 +339,10 @@ lines: - id: the-last-shift_m_d_044 text: "Davan checks the door every time it opens. Even here. Even off-shift. That is not relaxation." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: relationship: @@ -231,6 +359,10 @@ lines: - id: the-last-shift_m_d_031 text: "Sera changed the subject when I mentioned manifests. Smooth. Practised, maybe." + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: facts: @@ -241,6 +373,10 @@ lines: - id: the-last-shift_m_d_032 text: "She volunteers names, routines, context. Gives everything I ask for -- except what I did not." + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: relationship: @@ -251,6 +387,10 @@ lines: - id: the-last-shift_m_d_033 text: "Sera at the Commission kiosk. Third pass this shift. That is not standard recalibration." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -261,6 +401,10 @@ lines: - id: the-last-shift_m_d_034 text: "Everything Sera told me checks out. Layout, schedules, regulars. Accurate. Thorough. Selective?" + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: relationship: @@ -271,6 +415,10 @@ lines: - id: the-last-shift_m_d_035 text: "She mentioned Naia's worry about Kael early -- before I had context. Priming, or concern?" + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: facts: @@ -281,6 +429,10 @@ lines: - id: the-last-shift_m_d_036 text: "Sera's institutional access goes further than field calibration. She could pull records I cannot." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: relationship: @@ -290,6 +442,10 @@ lines: - id: the-last-shift_m_d_037 text: "Assessment: Venn, S. Cooperative. Embedded. Competent. Green -- with reservations now." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -300,6 +456,10 @@ lines: - id: the-last-shift_m_d_038 text: "Correction: amber. The avoidance pattern is behavioural, not preferential. Data, not taste." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -310,6 +470,10 @@ lines: - id: the-last-shift_m_d_039 text: "She's the first person who made this place feel less foreign. I need that to not matter right now." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: relationship: @@ -320,6 +484,10 @@ lines: - id: the-last-shift_m_d_040 text: "Those early tips. The district layout, the introductions. Were those help -- or steering?" + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: relationship: @@ -330,6 +498,10 @@ lines: - id: the-last-shift_m_d_041 text: "She's not a suspect. She's a friend with access to everything I need. That is the problem." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -340,6 +512,10 @@ lines: - id: the-last-shift_m_d_042 text: "Trust: compromised. The question is not what she told me. It is what she did not." + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: relationship: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml index 3314be7d8..e1ce15ab7 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/the-terminal.yaml @@ -5,61 +5,109 @@ lines: - id: the-terminal_m_d_001 text: "Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, analytical] - id: the-terminal_m_d_002 text: "Sixteen bays, four loading arms, one manifest board. Everything routes through here." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, orientation] - id: the-terminal_m_d_003 text: "Cargo lubricant and recycled air. The smell of honest work. Or a convincing imitation." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: the-terminal_m_d_004 text: "Loading arm three has a grind in its cycle. Maintenance deferred — budget, or negligence?" + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental, analytical] - id: the-terminal_m_d_005 text: "Shift change in twenty minutes. The handover period is where oversight gets thin." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation, routine] trigger: time_idle tags: [investigation, operational] - id: the-terminal_m_d_006 text: "The manifest board updates in real-time. Container movement, weight, destination. All logged." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, orientation] - id: the-terminal_m_d_007 text: "Heavy foot traffic at shift change. Good — observation is easier in a crowd." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location tags: [arrival, investigation] - id: the-terminal_m_d_008 text: "Containers stacked to regulation height in most bays. Bay four is the exception." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly tags: [environmental, investigation] - id: the-terminal_m_d_009 text: "Back at the hub. Different shift, different faces. Same manifest board." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit tags: [arrival] - id: the-terminal_m_d_010 text: "The dock lights are running half-cycle. Saves power. Also reduces visibility." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, analytical] - id: the-terminal_m_d_011 text: "Something in the air beyond the lubricant. Chemical, faint. Not standard freight residue." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location tags: [environmental, investigation] - id: the-terminal_m_d_012 text: "Overhead conveyor running at capacity. The manifest says otherwise. Interesting." + role: player_character + access: [public] + trust: surface + situation: [investigation, routine] trigger: hear_sound tags: [environmental, investigation] @@ -67,61 +115,109 @@ lines: - id: the-terminal_m_d_013 text: "Shift supervisor Voss. Tense posture, checking the dock more than the schedule." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, voss, behavioral] - id: the-terminal_m_d_014 text: "Korr, M. — freight scheduler. Efficient, focused. Either very good or very careful." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, maret, analytical] - id: the-terminal_m_d_015 text: "Rosta, D. — dock inspector. Quick checks, minimal documentation. That's a pattern." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc tags: [npc, drin, investigation] - id: the-terminal_m_d_016 text: "Dock worker. Davan, K. Unremarkable on paper. But he knows the bay layout cold." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, kael] - id: the-terminal_m_d_017 text: "Conversations stop when I pass. Standard response to Commission presence. Expected." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction tags: [social, investigation] - id: the-terminal_m_d_018 text: "Two workers talking by bay six. One sees me, taps the other. Both go quiet." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction tags: [social, investigation] - id: the-terminal_m_d_019 text: "Voss gave Davan a look across the bay. Brief. Loaded. Filing it." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, voss, kael, behavioral] - id: the-terminal_m_d_020 text: "The courier — Renn — moves fast. Efficient routing. Knows these corridors well." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, renn, analytical] - id: the-terminal_m_d_021 text: "New shift starting. Different bodies, same avoidance radius around me." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [social, atmospheric] - id: the-terminal_m_d_022 text: "Rosta's inspection of bay four took forty seconds. The others: three minutes each." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc tags: [npc, drin, investigation, behavioral] - id: the-terminal_m_d_023 text: "Voss deflected when I asked about overnight containers. Smooth, but I caught it." + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation tags: [npc, voss, investigation] - id: the-terminal_m_d_024 text: "Korr won't make eye contact. Not hostility — something else. Anxiety, maybe." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, maret, behavioral] @@ -129,6 +225,10 @@ lines: - id: the-terminal_m_d_025 text: "Davan's lattice activity spiked. Expecting a message? Or checking for surveillance?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: relationship: @@ -138,6 +238,10 @@ lines: - id: the-terminal_m_d_026 text: "Container 4471. Logged for temp storage overnight. Turnaround should be sub-eight hours." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -148,6 +252,10 @@ lines: - id: the-terminal_m_d_027 text: "Weight discrepancy on the bay four manifest. Point-three kilos over declared. Noted." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -157,6 +265,10 @@ lines: - id: the-terminal_m_d_028 text: "Rosta's gambling debts are in the case file. Leverage, if I need it. Do I need it?" + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -166,6 +278,10 @@ lines: - id: the-terminal_m_d_029 text: "Three names keep appearing near the anomalous manifests: Voss, Davan, Renn. Coincidence?" + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -176,6 +292,10 @@ lines: - id: the-terminal_m_d_030 text: "The shift transition creates a twenty-minute gap in active oversight. Every cycle." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation, routine] trigger: time_idle prerequisites: facts: @@ -186,6 +306,10 @@ lines: - id: the-terminal_m_d_031 text: "Korr changed the schedule after our conversation. Covering tracks, or just doing her job?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: entity_attributes: @@ -196,6 +320,10 @@ lines: - id: the-terminal_m_d_032 text: "Rosta inspects everything else by the book. Bay four is the exception. That's the tell." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -206,6 +334,10 @@ lines: - id: the-terminal_m_d_033 text: "Davan's at an unusual terminal. Not his assigned bay. Why the move?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: relationship: @@ -215,6 +347,10 @@ lines: - id: the-terminal_m_d_034 text: "Voss is watching me watch his people. He knows what I'm here for." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -225,6 +361,10 @@ lines: - id: the-terminal_m_d_035 text: "The routing logs and the physical movement don't match. Someone's hand-editing." + role: player_character + access: [public] + trust: surface + situation: [investigation] trigger: discover_evidence prerequisites: facts: @@ -238,6 +378,10 @@ lines: - id: the-terminal_m_d_036 text: "Davan's shift pattern is clean. Too clean. Same bays, same hours, same rotation. Nothing out of place." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -247,6 +391,10 @@ lines: - id: the-terminal_m_d_037 text: "Davan eats with the same group every shift. Social anchor, or keeping tabs?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -256,6 +404,10 @@ lines: - id: the-terminal_m_d_038 text: "Davan handled that container routing without checking the manifest board. He knows the schedule by heart." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -266,6 +418,10 @@ lines: - id: the-terminal_m_d_039 text: "Davan's posture changed when I approached bay four. Subtle. Filing it." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: relationship: @@ -276,6 +432,10 @@ lines: - id: the-terminal_m_d_040 text: "Three manifests with weight discrepancies. All during Davan's shifts. Correlation is not causation. But noted." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/general.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/general.yaml index 4c15f8ad4..4a2bb492a 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/general.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/general.yaml @@ -3,50 +3,90 @@ location: general lines: - id: general_m_s_001 text: "Another day on Sova. Same air, same hum, same faces." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: general_m_s_002 text: "The span gate hum's louder today. Maintenance hasn't touched it in weeks." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: general_m_s_003 text: "Twenty minutes between shifts. That's the window. Always has been." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: time_idle tags: [operational, orientation] - id: general_m_s_004 text: "People talk about leaving Sova. Nobody actually does." + role: player_character + access: [public] + trust: surface + situation: [alone] trigger: time_idle tags: [reflection] - id: general_m_s_005 text: "Two years of this. Still not used to the gate vibration in my teeth." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental, personal] - id: general_m_s_006 text: "The money's good. The risk's manageable. Keep telling yourself that." + role: player_character + access: [public] + trust: surface + situation: [alone] trigger: time_idle tags: [reflection, operational] - id: general_m_s_007 text: "Back again. Same corridors, same shortcuts, same reasons." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit tags: [arrival] - id: general_m_s_008 text: "Commission patrols are thinner this cycle. Good or bad — hard to say." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly tags: [operational, caution] - id: general_m_s_009 text: "If anyone asks, I'm clocking overtime. That's always the story." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: time_idle tags: [operational, cover] - id: general_m_s_010 text: "Recycled air tastes different near the outer ring. Sharper. More machine." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/maintenance-corridors.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/maintenance-corridors.yaml index c5e1fdf4b..69f8fb095 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/maintenance-corridors.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/maintenance-corridors.yaml @@ -5,41 +5,73 @@ lines: - id: maintenance-corridors_m_s_001 text: "Service corridor. Dim lights, damp walls, and the constant drip of condensation." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: maintenance-corridors_m_s_002 text: "Cooler down here. The ventilation doesn't reach this far." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: maintenance-corridors_m_s_003 text: "The access panel's still loose. Good — our route's intact." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location tags: [arrival, operational] - id: maintenance-corridors_m_s_004 text: "Pipes groaning overhead. Station's old. These corridors are older." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental, atmospheric] - id: maintenance-corridors_m_s_005 text: "Water recycling rumbles through the walls down here. Constant." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: maintenance-corridors_m_s_006 text: "Back in the maintenance tunnels. Rust and coolant." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit tags: [arrival, atmospheric] - id: maintenance-corridors_m_s_007 text: "Emergency lighting only. Just enough to see where you're going." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental] - id: maintenance-corridors_m_s_008 text: "Footsteps echo different down here. You learn to listen." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental, operational] @@ -47,41 +79,73 @@ lines: - id: maintenance-corridors_m_s_009 text: "Renn's chalk marks on the wall. Route's been used recently." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly tags: [operational, renn] - id: maintenance-corridors_m_s_010 text: "Someone left a crate at junction B-4. Not one of ours." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly tags: [operational, caution] - id: maintenance-corridors_m_s_011 text: "The temp storage hatch is warm. Cargo cycled through recently." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location tags: [operational] - id: maintenance-corridors_m_s_012 text: "Scratches on the lock plate. Someone's been forcing this access point." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly tags: [environmental, caution] - id: maintenance-corridors_m_s_013 text: "Timer says twelve minutes until the oversight gap closes. Plenty." + role: player_character + access: [public] + trust: surface + situation: [alone, routine] trigger: time_idle tags: [operational] - id: maintenance-corridors_m_s_014 text: "That's Renn's jacket on the pipe junction. He was here." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly tags: [npc, renn, operational] - id: maintenance-corridors_m_s_015 text: "Voices echoing from the junction. Can't make out words yet." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [caution] - id: maintenance-corridors_m_s_016 text: "The route through B-section is clear. Voss kept his word." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location tags: [operational, voss] @@ -89,6 +153,10 @@ lines: - id: maintenance-corridors_m_s_017 text: "Corridor B-7. This is where I saw Kael. With someone I don't know." + role: player_character + access: [public] + trust: surface + situation: [arrival, investigation] trigger: enter_location prerequisites: facts: @@ -99,6 +167,10 @@ lines: - id: maintenance-corridors_m_s_018 text: "Fresh boot prints in the dust. Two sets. Different sizes." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -108,6 +180,10 @@ lines: - id: maintenance-corridors_m_s_019 text: "New scratch marks on the service hatch. Someone's using our route." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -118,6 +194,10 @@ lines: - id: maintenance-corridors_m_s_020 text: "The container in temp was supposed to move last shift. It didn't. Why?" + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -127,6 +207,10 @@ lines: - id: maintenance-corridors_m_s_021 text: "Camera's been repositioned at junction C-2. Who authorized that?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: facts: @@ -137,6 +221,10 @@ lines: - id: maintenance-corridors_m_s_022 text: "If Kael's meeting people down here without telling us, the whole route's exposed." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation, routine] trigger: time_idle prerequisites: facts: @@ -147,6 +235,10 @@ lines: - id: maintenance-corridors_m_s_023 text: "Sealed containers don't end up in temp storage by accident. Someone rerouted." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -156,6 +248,10 @@ lines: - id: maintenance-corridors_m_s_024 text: "Kael's not answering his lattice. He was supposed to meet me here." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: relationship: @@ -166,5 +262,9 @@ lines: - id: maintenance-corridors_m_s_025 text: "Someone wiped the dust off this hatch. Recently. Carefully." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly tags: [environmental, caution] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/pc-detective-tells.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/pc-detective-tells.yaml index 8b14e87e5..ca0b8bdbb 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/pc-detective-tells.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/pc-detective-tells.yaml @@ -14,6 +14,10 @@ lines: - id: general_m_s_011 text: "Commission officer just stood there after talking to Voss. Making notes. Not good." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -23,6 +27,10 @@ lines: - id: general_m_s_012 text: "That investigator is working the hub section by section. Not browsing. Searching." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: relationship: @@ -32,6 +40,10 @@ lines: - id: general_m_s_013 text: "Commission's parked at the manifest terminal again. Third time today." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: relationship: @@ -41,6 +53,10 @@ lines: - id: general_m_s_014 text: "They're watching. From the corner, where they can see the whole dock floor. Professional." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -50,6 +66,10 @@ lines: - id: general_m_s_015 text: "The investigator and Sera again. Old friends? Or is Sera reporting to them?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -64,6 +84,10 @@ lines: - id: general_m_s_016 text: "New Commission face at the hub. Keep your head down. Don't give them anything." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_npc prerequisites: relationship: @@ -74,6 +98,10 @@ lines: - id: general_m_s_017 text: "That investigator's been here all morning. Nobody stays that long for a routine check." + role: player_character + access: [public] + trust: surface + situation: [alone, routine] trigger: time_idle prerequisites: relationship: @@ -84,6 +112,10 @@ lines: - id: general_m_s_018 text: "Commission's at the bar. Sitting with Sera. Watching the room like they own it." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-last-shift.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-last-shift.yaml index 7e8ff0cdf..341a9c51c 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-last-shift.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-last-shift.yaml @@ -5,51 +5,91 @@ lines: - id: the-last-shift_m_s_001 text: "Lera's. Grain spirit and noise. Could use both right now." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: the-last-shift_m_s_002 text: "Bar's half full. The after-shift crowd's starting to filter in." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival] - id: the-last-shift_m_s_003 text: "Lera's got the Meridian feed running. Same headlines, different day." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, environmental] - id: the-last-shift_m_s_004 text: "Smells like fried protein and cheap grain spirit. Perfect." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: the-last-shift_m_s_005 text: "My booth's free. Small victories." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, personal] - id: the-last-shift_m_s_006 text: "The overhead light's still buzzing. Lera says it adds character." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: the-last-shift_m_s_007 text: "Music's louder tonight. Lera's in a good mood, or drowning something out." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental, atmospheric] - id: the-last-shift_m_s_008 text: "Back at Lera's. Same booth, same drink, same crowd." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: return_visit tags: [arrival] - id: the-last-shift_m_s_009 text: "The ventilation rattles when the kitchen's on. You learn to talk over it." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: the-last-shift_m_s_010 text: "Quiet night at Lera's. Fewer people means fewer ears." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location tags: [arrival, operational] @@ -57,51 +97,91 @@ lines: - id: the-last-shift_m_s_011 text: "Lera's behind the bar. Good — she keeps things steady." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, lera] - id: the-last-shift_m_s_012 text: "Kael's at the corner table. Looks relaxed. That's something." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, kael] - id: the-last-shift_m_s_013 text: "Torek's buying rounds again. That man doesn't know the word 'discreet.'" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, torek, caution] - id: the-last-shift_m_s_014 text: "Sera's here. Commission field tech. She keeps to herself — mostly." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, sera, commission] - id: the-last-shift_m_s_015 text: "Naia's laughing at something Lera said. Nice to see her relaxed." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, naia] - id: the-last-shift_m_s_016 text: "Old Pael's in his usual spot. Hasn't moved in three hours. Impressive." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, atmospheric] - id: the-last-shift_m_s_017 text: "Lera just cut someone off. Smooth about it, but firm." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, lera] - id: the-last-shift_m_s_018 text: "Kael and Naia at the bar. Leaning into each other. They look good together." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, kael, naia] - id: the-last-shift_m_s_019 text: "Voss is drinking alone. Not his usual pace." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, voss] - id: the-last-shift_m_s_020 text: "That new face in the corner — been nursing the same drink for an hour." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, caution] @@ -109,6 +189,10 @@ lines: - id: the-last-shift_m_s_021 text: "Sera left when Torek walked in. Coincidence? Maybe." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: facts: @@ -118,6 +202,10 @@ lines: - id: the-last-shift_m_s_022 text: "Torek just paid cash credit, not station account. Sloppy." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_npc prerequisites: facts: @@ -127,6 +215,10 @@ lines: - id: the-last-shift_m_s_023 text: "Lera gave me that look. The one that says 'not here, not now.'" + role: player_character + access: [public] + trust: surface + situation: [routine, social] trigger: post_conversation prerequisites: facts: @@ -136,6 +228,10 @@ lines: - id: the-last-shift_m_s_024 text: "Naia looks tired. Has Kael been coming home late again?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -145,6 +241,10 @@ lines: - id: the-last-shift_m_s_025 text: "The detective is here. At the bar. My bar." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -155,6 +255,10 @@ lines: - id: the-last-shift_m_s_026 text: "Sera and the detective sharing a booth. Commission people stick together." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction prerequisites: facts: @@ -164,6 +268,10 @@ lines: - id: the-last-shift_m_s_027 text: "Kael didn't save my seat tonight. First time in months." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: relationship: @@ -174,6 +282,10 @@ lines: - id: the-last-shift_m_s_028 text: "The back room light's on. Nils is here, then." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -183,6 +295,10 @@ lines: - id: the-last-shift_m_s_029 text: "Kael bought Naia a drink but barely looked at her. That's new." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction prerequisites: facts: @@ -192,6 +308,10 @@ lines: - id: the-last-shift_m_s_030 text: "Everyone's a little too quiet tonight. Something happened. I can feel it." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location prerequisites: facts: @@ -208,6 +328,10 @@ lines: - id: the-last-shift_m_s_031 text: "Sera's at the Commission kiosk. Third time this shift. Nobody recalibrates that much." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: facts: @@ -218,11 +342,19 @@ lines: - id: the-last-shift_m_s_032 text: "Naia trusts Sera. More than most people here. That says something." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, sera, naia, social, dual-lens] - id: the-last-shift_m_s_033 text: "Sera was studying the freight display. For a calibration tech, that's a lot of manifest reading." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: facts: @@ -233,6 +365,10 @@ lines: - id: the-last-shift_m_s_034 text: "That's three times Sera's bailed when Torek showed up. Maybe she owes him money." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly prerequisites: facts: @@ -243,6 +379,10 @@ lines: - id: the-last-shift_m_s_035 text: "Sera offered the detective compliance records. Helpful -- or professional courtesy?" + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: witness_interaction prerequisites: facts: @@ -252,6 +392,10 @@ lines: - id: the-last-shift_m_s_036 text: "Something about Sera tonight. Same smile, different eyes." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: relationship: @@ -261,11 +405,19 @@ lines: - id: the-last-shift_m_s_037 text: "Commission tech who drinks at a dock bar. Either lonely or embedded. Either way -- careful." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, sera, commission, assessment, dual-lens] - id: the-last-shift_m_s_038 text: "Sera knows the shift rotations better than Voss. That's not calibration. That's attention." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: facts: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml index 6cb54f85e..953f1c99c 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/the-terminal.yaml @@ -5,61 +5,109 @@ lines: - id: the-terminal_m_s_001 text: "Morning shift. Recycled air and cargo lubricant. Home sweet home." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: the-terminal_m_s_002 text: "The loading arms are cycling. Freight's on schedule — for once." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location tags: [arrival, operational] - id: the-terminal_m_s_003 text: "Shift board's already full. Voss has everyone running double today." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: enter_location tags: [arrival, operational] - id: the-terminal_m_s_004 text: "Cargo lubricant and ozone. You'd think I'd stop noticing." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: the-terminal_m_s_005 text: "Loading arm three is grinding again. Someone should file that." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental] - id: the-terminal_m_s_006 text: "Containers stacked six high in bay four. That's new." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly tags: [environmental, operational] - id: the-terminal_m_s_007 text: "The freight manifest board's flickering. Always flickering." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental] - id: the-terminal_m_s_008 text: "Dock lights are on half-cycle. Budget cuts again." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [environmental, atmospheric] - id: the-terminal_m_s_009 text: "Back at the hub. Shift transition in fifty minutes." + role: player_character + access: [public] + trust: surface + situation: [arrival, routine] trigger: return_visit tags: [arrival, operational] - id: the-terminal_m_s_010 text: "Quiet morning. Containers moving, nobody talking. I like it this way." + role: player_character + access: [public] + trust: surface + situation: [arrival] trigger: enter_location tags: [arrival, atmospheric] - id: the-terminal_m_s_011 text: "Bay three's been sealed off. Inspection, or something else?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly tags: [environmental, caution] - id: the-terminal_m_s_012 text: "The conveyor hums at a different pitch when it's loaded heavy. This one's heavy." + role: player_character + access: [public] + trust: surface + situation: [routine] trigger: hear_sound tags: [environmental, operational] @@ -67,61 +115,109 @@ lines: - id: the-terminal_m_s_013 text: "Kael's already at the dock. Good. The day's better when he's on shift." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, kael, warm] - id: the-terminal_m_s_014 text: "Voss is pacing. Never a good sign." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, voss, caution] - id: the-terminal_m_s_015 text: "Maret's got her scheduling face on. Tight lips, fast hands on the terminal." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, maret] - id: the-terminal_m_s_016 text: "New face at dock seven. Temp worker, or someone I should know about?" + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, caution] - id: the-terminal_m_s_017 text: "Drin's at inspection again. Going through the motions, same as always." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, drin] - id: the-terminal_m_s_018 text: "Renn's running late. Third time this week." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_npc tags: [npc, renn, operational] - id: the-terminal_m_s_019 text: "Voss and Maret talking by the schedule board. Both look tense." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, voss, maret] - id: the-terminal_m_s_020 text: "Kael nodded at me across the bay. Business as usual." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc tags: [npc, kael] - id: the-terminal_m_s_021 text: "Someone I don't recognize talking to Drin. Drin's smiling. Drin never smiles." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: witness_interaction tags: [npc, drin, anomaly] - id: the-terminal_m_s_022 text: "Torek's on the dock. Shouldn't be — his shift ended two hours ago." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly tags: [npc, torek, caution] - id: the-terminal_m_s_023 text: "Nils isn't here yet. That's unusual." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly tags: [npc, nils, operational] - id: the-terminal_m_s_024 text: "Kael's eating alone today. He always eats with me." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_anomaly tags: [npc, kael, concern] @@ -129,6 +225,10 @@ lines: - id: the-terminal_m_s_025 text: "Kael keeps checking his lattice. Waiting for a message? Not like him to be jumpy." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_anomaly prerequisites: relationship: @@ -139,6 +239,10 @@ lines: - id: the-terminal_m_s_026 text: "Container 4471's been in temp since yesterday. That's not the normal routing." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -148,6 +252,10 @@ lines: - id: the-terminal_m_s_027 text: "Voss changed the rotation again. Third time this month. Covering something." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_anomaly prerequisites: facts: @@ -157,6 +265,10 @@ lines: - id: the-terminal_m_s_028 text: "That detective's back. Asking questions near bay four. Stay calm." + role: player_character + access: [public] + trust: surface + situation: [investigation, observation] trigger: observe_npc prerequisites: facts: @@ -167,6 +279,10 @@ lines: - id: the-terminal_m_s_029 text: "Maret hasn't looked at me all shift. She noticed something. I know she did." + role: player_character + access: [public] + trust: surface + situation: [observation] trigger: observe_npc prerequisites: entity_attributes: @@ -178,6 +294,10 @@ lines: - id: the-terminal_m_s_030 text: "Shift transition in ten. If the route's clean, we move tonight." + role: player_character + access: [public] + trust: surface + situation: [alone, routine] trigger: time_idle prerequisites: facts: @@ -187,6 +307,10 @@ lines: - id: the-terminal_m_s_031 text: "Kael was in corridor B-7 last night. Off-shift. Off-route. That's not nothing." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -197,6 +321,10 @@ lines: - id: the-terminal_m_s_032 text: "Who was Kael talking to? Not anyone from our rotation. I'd know the face." + role: player_character + access: [public] + trust: surface + situation: [alone, investigation] trigger: time_idle prerequisites: facts: @@ -207,6 +335,10 @@ lines: - id: the-terminal_m_s_033 text: "He looked left before answering. He always looks left when he's lying." + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: facts: @@ -217,6 +349,10 @@ lines: - id: the-terminal_m_s_034 text: "Torek's spending too much at Lera's. Someone's going to notice." + role: player_character + access: [public] + trust: surface + situation: [observation, routine] trigger: observe_npc prerequisites: facts: @@ -226,6 +362,10 @@ lines: - id: the-terminal_m_s_035 text: "Same old Kael. Same jokes, same routine. ...What are you not telling me?" + role: player_character + access: [public] + trust: surface + situation: [investigation, social] trigger: post_conversation prerequisites: relationship: From 378c4945e7ab6ead1a11ce04f02639138f6038b2 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 21 Feb 2026 14:05:40 +0100 Subject: [PATCH 3/6] =?UTF-8?q?feat(copy):=20#170=20Layer=202=20relationsh?= =?UTF-8?q?ip=20history=20=E2=80=94=20greeting=20variants=20+=20situation?= =?UTF-8?q?=20mapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New: docs/design/layer2-situation-mapping.md — full InteractionMemory→Layer 2 pipeline documentation, 5 relationship history states, authoring checklist. Greeting variants added: - Kael Davan: 12 lines (4 per location × 3 locations) - Sera Venn: 4 lines at The Last Shift All use situation: [greeting], correct Sprint 14 mood vocabulary. Co-Authored-By: Claude Opus 4.6 --- docs/design/layer2-situation-mapping.md | 258 ++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 docs/design/layer2-situation-mapping.md diff --git a/docs/design/layer2-situation-mapping.md b/docs/design/layer2-situation-mapping.md new file mode 100644 index 000000000..5668e1e5e --- /dev/null +++ b/docs/design/layer2-situation-mapping.md @@ -0,0 +1,258 @@ +# Layer 2: Situation-to-Relationship-History Mapping + +**Ticket:** #170 | **Sprint:** 15 | **Author:** Paula +**Cross-references:** D-028, D-035, server/src/npc/interaction.rs (#325), server/src/simulation/dialogue.rs (#305) + +--- + +## Purpose + +D-028 Layer 2 modifies greeting and topic selection based on interaction history with a specific NPC. +This document defines: + +1. Which of the 14 D-035 situations encode relationship history states +2. How the engine maps `InteractionMemory` to Layer 2 situation activation +3. How content authors tag lines to exploit those states + +--- + +## Part A: The 14 Situations — Which Encode Relationship History + +D-035 defines 14 `situation` enum values. Most are **time-and-context situations** (what's happening in the world right now). A smaller subset are **relationship history markers** that the engine derives from `InteractionMemory`. + +### Time-and-Context Situations (engine derives from game state) + +| Situation | When Active | Relationship-Aware? | +|-----------|-------------|---------------------| +| `arrival` | Player has just arrived at this location (first visit this game-day) | No | +| `shift_start` | NPC is beginning their work shift | No | +| `shift_end` | NPC is wrapping up their work shift | No | +| `shift_transition` | Gap between shifts — oversight thinnest | No | +| `bar_evening` | Social hours at The Last Shift | No | +| `night_shift` | Late hours, skeleton crew | No | +| `investigation` | Player is actively asking probing questions; activated by `PersonOfInterest` relationship | Yes — via RelationshipState | +| `confrontation` | Triangle tension past threshold; NPC is defensive/agitated | No (NPC-side state) | +| `social` | NPC is in casual social activity | No | +| `alone` | NPC is by themselves | No | +| `emergency` | Urgent event occurring | No | +| `routine` | Normal daily activity (always-active baseline) | No | +| `observation` | Player watching from a distance | No | + +### Relationship History Situations + +| Situation | Relationship History State | How Activated | +|-----------|---------------------------|---------------| +| `greeting` | **Any initial contact** — the opening exchange of an encounter | Active whenever the player initiates Talk (pending Rust update — see Part D) | + +The `greeting` situation is the primary Layer 2 tool for content authors. By itself, `greeting` marks a line for the initial-contact phase of any encounter. The engine's `InteractionMemory` state then determines which `greeting`-tagged lines actually surface, via access tier filtering. + +--- + +## Part B: Relationship History States and Content Encoding + +Five relationship history states matter for Layer 2 dialogue authoring: + +### 1. first_meeting +**Condition:** `InteractionMemory.interaction_count == 0` +**Engine behavior:** Pushes `Situation::FirstMeeting` into active situations +**Content encoding:** `situation: [greeting]` + `access: [public]` + +The player has never spoken to this NPC before. Their `RelationshipState` is `Unknown`, so only `access: [public]` lines are eligible. A `greeting`-tagged line with `access: [public]` fires as the first words exchanged. + +```yaml +# Pattern: first_meeting +situation: [greeting] +access: [public] +trust: surface +mood: [content] # or untagged (neutral) +``` + +### 2. established +**Condition:** `InteractionMemory.interaction_count >= 3` +**Engine behavior:** Pushes `Situation::RepeatedVisit` into active situations +**Content encoding:** `situation: [greeting]` + `access: [peer]` or `access: [peer, insider]` + +The player has spoken to this NPC at least 3 times. The relationship has progressed — typically `Known` (access: Peer) or `Friendly` (access: Peer + Insider). `greeting`-tagged lines with these access tiers become available and are preferred over public lines for greeting selection. + +```yaml +# Pattern: established — peer warmth +situation: [greeting] +access: [peer, insider] +trust: surface +mood: [warm, content] +``` + +```yaml +# Pattern: established — authority/professional repeat +situation: [greeting] +access: [authority] +trust: surface +mood: [focused] +``` + +### 3. tense +**Condition:** Confrontation logged in `InteractionMemory.notable_events` but relationship has not collapsed +**Engine behavior:** No distinct situation pushed; modeled through NPC's `CurrentMood` (set to `suspicious` or `frustrated` by confrontation response system) +**Content encoding:** `situation: [greeting]` + `access: [peer, insider]` + `mood: [suspicious, frustrated]` + +A confrontation was delivered. The relationship may have been decremented (e.g., `Friendly → Known`), but the player still has peer access. The NPC's mood has shifted. `greeting`-tagged lines with `mood: [suspicious, frustrated]` score higher in Layer 4 weighted selection. + +```yaml +# Pattern: tense — post-confrontation greeting (still peer access) +situation: [greeting] +access: [peer, insider] +trust: surface +mood: [suspicious, frustrated] +``` + +### 4. post_confrontation +**Condition:** Confrontation recorded in `InteractionMemory.notable_events` (kind: `Confrontation`) +**Relationship state change:** `process_confrontation_response` decrements `RelationshipState` (e.g., `Known → PersonOfInterest`) +**Content encoding:** `situation: [confrontation]` + access tags matching post-decrement relationship + +Post-confrontation dialogue is primarily handled by existing `situation: [confrontation]` lines and the deflection/response pools. The `greeting` situation isn't the primary driver here — the confrontation situation takes precedence. + +```yaml +# Pattern: post_confrontation — NPC is now defensive +situation: [confrontation] +access: [peer, public, authority] +trust: surface +mood: [hostile, suspicious, frustrated] +``` + +### 5. post_walkaway +**Condition:** Walk-away recorded in `InteractionMemory.notable_events` (kind: `WalkAway`) +**Engine behavior:** `process_walk_away` records `IncompleteInteraction` in KnowledgeGraph; NPC gets `RoutineDeviation` component +**Content encoding:** `situation: [greeting]` + `mood: [suspicious]` (lower intensity than confrontation) + +A walk-away is softer than a confrontation. The NPC noticed, the KG recorded it, but the relationship didn't necessarily decrement. The NPC's mood may shift mildly suspicious. `greeting`-tagged lines with `mood: [suspicious]` will score slightly higher next encounter. + +```yaml +# Pattern: post_walkaway — NPC is mildly unsettled +situation: [greeting] +access: [peer, insider] +trust: surface +mood: [suspicious] +``` + +--- + +## Part C: Situation State Quick Reference + +| Relationship History State | InteractionMemory Condition | Access Tier in Play | Mood Signal | Layer 2 Mechanism | +|--------------------------|----------------------------|--------------------|--------------|--------------------| +| `first_meeting` | count == 0 | Public only | neutral/content | `Situation::FirstMeeting` pushed; only Public lines eligible | +| `established` | count >= 3 | Peer, Insider, or Authority | warm, content, focused | `Situation::RepeatedVisit` pushed; higher-tier access unlocked | +| `tense` | confrontation in notable_events, peer access still active | Peer + Insider | suspicious, frustrated | No distinct situation; NPC CurrentMood drives scoring | +| `post_confrontation` | confrontation in notable_events, relationship decremented | Public + Authority (or Peer) | hostile, suspicious | RelationshipState decremented → access tier shifts | +| `post_walkaway` | walkaway in notable_events | Peer + Insider | suspicious | KG records IncompleteInteraction; mild mood shift | + +--- + +## Part D: InteractionMemory → Layer 2 Situation Selection + +**Source:** `server/src/npc/interaction.rs` (#325), `server/src/simulation/dialogue.rs` (#305, L414-421) + +### The Derivation Chain + +When the player initiates a Talk interaction, `process_talk_interaction` derives the active situation set through two passes: + +**Pass 1: Game-state situations** (`derive_situations`, dialogue.rs L226-251) +```rust +// Always-active baseline +situations.push(Situation::Routine); + +// Day phase → situation +match day_phase { + Morning => situations.push(Situation::ShiftStart), + Afternoon => situations.push(Situation::Social), + Evening => { situations.push(Situation::BarEvening); situations.push(Situation::Social); } + Night => situations.push(Situation::NightShift), +} + +// Relationship context +if relationship == PersonOfInterest { situations.push(Situation::Investigation); } +``` + +**Pass 2: InteractionMemory situations** (dialogue.rs L414-421) +```rust +if let Some(ref mem) = interaction_mem_opt { + if mem.is_first_meeting() { + situations.push(Situation::FirstMeeting); // count == 0 + } else if mem.is_repeated_visit() { + situations.push(Situation::RepeatedVisit); // count >= 3 + } +} +``` + +### InteractionMemory Thresholds + +| Method | Condition | Derived Situation | +|--------|-----------|-------------------| +| `is_first_meeting()` | `interaction_count == 0` | `Situation::FirstMeeting` | +| `is_repeated_visit()` | `interaction_count >= 3` | `Situation::RepeatedVisit` | +| *(neither)* | count == 1 or 2 | Neither — transitional zone | + +**Transitional zone (count 1-2):** No `FirstMeeting` or `RepeatedVisit` situation is pushed. The player has spoken to this NPC once or twice — the relationship is warming, but not yet "established." Greeting selection falls through to `access: [public]` lines (relationship likely still `Unknown` or just tipping to `Known`). + +### The `greeting` Situation: Current Status and Intent + +Content lines use `situation: [greeting]` as their tag. The engine currently pushes `Situation::FirstMeeting` and `Situation::RepeatedVisit` — NOT `Situation::Greeting`. + +**Schema note (dialogue-line.schema.json):** `"'greeting' is not yet in server/src/content/line_pool.rs — lines using it will be skipped until Rust is updated."` + +**Intended resolution (pending Rust update):** When `server/src/content/line_pool.rs` is updated to include `Situation::Greeting`, `greeting`-tagged content lines will fire. The Layer 2 relationship history distinction will then work through the access tier filtering that is already implemented: + +- `access: [public]` + `situation: [greeting]` → first meeting lines (Unknown relationship) +- `access: [peer, insider]` + `situation: [greeting]` → established lines (Known/Friendly relationship) +- `access: [authority]` + `situation: [greeting]` → authority repeat lines (PersonOfInterest relationship) +- `mood: [suspicious, frustrated]` on any of the above → strained/post-confrontation lines score higher + +### Walk-away and Confrontation: No Separate Situations + +Walk-aways and confrontations do NOT push a dedicated `Situation::PostWalkAway` or `Situation::PostConfrontation`. Instead: + +- **Walk-away:** `InteractionMemory.notable_events` records `InteractionEventKind::WalkAway`. The KG records `IncompleteInteraction`. NPC gets `RoutineDeviation`. On next encounter, the NPC's mild mood shift (`suspicious`) steers Layer 4 scoring. +- **Confrontation:** `process_confrontation_response` decrements the NPC's `RelationshipState` in the player's KG. This directly changes which access tiers are available on next encounter. NPC's `CurrentMood` shifts (implementation pending: currently hardcoded to push `Tier2` animation and spike monologue; mood component update to `suspicious`/`frustrated` is implied). + +### The Layer 2 Pipeline in Full + +``` +Player initiates Talk + ↓ +1. derive_situations(day_phase, relationship) + → [Routine, ShiftStart/Social/BarEvening/NightShift, Investigation?] + ↓ +2. InteractionMemory → FirstMeeting | RepeatedVisit | (neither) + → append to situations list + ↓ +3. available_access_tiers(relationship) + → [Public] | [Public, Peer] | [Public, Peer, Insider] | [Public, Peer, Authority] | [Hostile] + ↓ +4. line_pool.query_dialogue(location, role, access, situations, trust) + → candidate lines matching all three filters + ↓ +5. Layer 4 weighted scoring: mood match (+3), topic match (+2/each) + → NPC's CurrentMood biases toward lines matching their emotional state + ↓ +6. Weighted random selection → final line +``` + +--- + +## Authoring Checklist: Layer 2 Greeting Variants + +When authoring greeting variants for a new Tier 1 NPC, provide at minimum: + +- [ ] **First meeting** — `situation: [greeting]`, `access: [public]`, neutral mood. Fires before any relationship forms. +- [ ] **Established (peer/social)** — `situation: [greeting]`, `access: [peer, insider]`, `mood: [warm, content]`. Fires after 3+ interactions in a social/peer context. +- [ ] **Established (authority)** — `situation: [greeting]`, `access: [authority]`, `mood: [focused]`. Fires after 3+ interactions in an authority/investigation context. +- [ ] **Post-confrontation** — `situation: [greeting]`, `access: [peer, insider]`, `mood: [suspicious, frustrated]`. Fires when NPC's mood is strained. + +Optional but recommended: +- [ ] **Transitional (1-2 interactions)** — `situation: [arrival, social]`, `access: [public, peer]`. Bridges first meeting and established. Uses `arrival` until `greeting` situation is active in Rust. +- [ ] **Post-walkaway** — `situation: [greeting]`, `access: [peer, insider]`, `mood: [suspicious]`. Softer version of post-confrontation. + +--- + +*Last updated: 2026-02-21 (Sprint 15, ticket #170)* From 9e33a82e1ddcd0708010c378629290c562a2b820 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 21 Feb 2026 14:22:34 +0100 Subject: [PATCH 4/6] =?UTF-8?q?fix(copy):=20PR=20#53=20review=20=E2=80=94?= =?UTF-8?q?=20ID=20collision,=20moods.yaml=20enum,=20voice/lore=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Renumber Kael greeting variants _d_039-042 → _d_046-049 (collision with pc-smuggler.yaml, Hoshe #1) - Update moods.yaml enum to Sprint 14 vocabulary (Paula #1, Miri #1) - Add missing mood field on the-terminal_d_014 (Hoshe #3) - Fix "wormhole threshold" → "span gate threshold" in detective opening (Miri #2) - Fix "We've worked this district before" — detective is newly arrived (Miri #5) - Fix smuggler opening "That's Kael" label → behavior-read (Paula #5) Co-Authored-By: Claude Opus 4.6 --- .../dialogue/the-terminal/kael-davan.yaml | 9 +++--- .../transit/monologue/detective/opening.yaml | 8 +++--- .../transit/monologue/smuggler/opening.yaml | 4 +-- content/global/enums/moods.yaml | 28 +++++++++---------- 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml index f43eb2009..f25069004 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml @@ -156,6 +156,7 @@ lines: access: [public, peer] trust: surface situation: [routine, social] + mood: [content] topic: [colleague] tags: [kael, observational] @@ -430,7 +431,7 @@ lines: # ======================================== # first_meeting: InteractionMemory.count == 0. RelationshipState: Unknown → Public access only. - - id: the-terminal_d_039 + - id: the-terminal_d_046 text: "This section is dock crew and logistics. If you're Commission or admin, check-in's back that way." role: dock-worker access: [public] @@ -442,7 +443,7 @@ lines: notes: "Layer 2 greeting — first meeting. Kael is helpful but orienting the stranger away from his work." # established — peer/smuggler context: count >= 3, RelationshipState: Known/Friendly → Peer/Insider access. - - id: the-terminal_d_040 + - id: the-terminal_d_047 text: "You're back. Good -- bay three's been quiet. I'll fill you in." role: dock-worker access: [peer, insider] @@ -454,7 +455,7 @@ lines: notes: "Layer 2 greeting — established. Warm, practical, skips pleasantries. Treats them as crew." # established — authority/detective context: count >= 3, RelationshipState: PersonOfInterest → Authority access. - - id: the-terminal_d_041 + - id: the-terminal_d_048 text: "Back again. I'm on shift -- if you have questions, make them quick." role: dock-worker access: [authority] @@ -466,7 +467,7 @@ lines: notes: "Layer 2 greeting — repeat with authority figure. Professional, clipped, not hostile. Kael can't refuse but won't volunteer." # post-confrontation: confrontation in InteractionMemory.notable_events. NPC mood shifted to suspicious/frustrated. - - id: the-terminal_d_042 + - id: the-terminal_d_049 text: "Didn't expect you today." role: dock-worker access: [peer, insider] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml index c087e6d3e..cb877d1f0 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml @@ -24,7 +24,7 @@ lines: notes: "Opening line. Reality matches the briefing — he arrived prepared. Establishes: detective as institutional outsider sent here. Cool-lit corridors per D-046 expressed through 'half-cycle' lighting observation. No contractions (analytical)." - id: opening_m_d_002 - text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the wormhole threshold. First observation: consistent with Commission briefing profile." + text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the span gate threshold. First observation: consistent with Commission briefing profile." role: player_character access: [public] trust: surface @@ -33,7 +33,7 @@ lines: priority: 10 cooldown: 9999 tags: [opening-hook, tutorial-arc, atmospheric, analytical] - notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home." + notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. 'span gate threshold' is canonical terminology (D-036). Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home." - id: opening_m_d_003 text: "Lattice overlay initializing. Four identity flags in immediate range — cross-referencing against Commission case file." @@ -100,7 +100,7 @@ lines: notes: "First Sera sighting. Surname-initial filing first (institutional reflex) — then breaks to personal contracted voice ('she'd') in the same beat. Teaches contrast: case-file subjects get 'Davan, K.'; Sera gets a different register. D-033 Unknown/Neutral teal entity." - id: opening_m_d_008 - text: "She's got the manifest logs open already. We've worked this district before — she knows what I need before I ask." + text: "She's got the manifest logs open already. Field tech who knows how to pull records — she knows what I need before I ask." role: player_character access: [public] trust: surface @@ -110,7 +110,7 @@ lines: priority: 9 cooldown: 9999 tags: [opening-hook, tutorial-arc, sera, friend-arc] - notes: "Sera warmth. Fully contracted throughout ('She's', 'We've', 'she knows') — personal mode, no analytical distance. Em-dash. Prior relationship established. Contrast with how he processes everyone else. Teaches: some NPCs are in a different relational category (THE FRIEND pattern, D-034)." + notes: "Sera warmth. Fully contracted throughout ('She's', 'she knows') — personal mode, no analytical distance. Em-dash. Professional respect established without implying prior district visits. Contrast with how he processes everyone else. Teaches: some NPCs are in a different relational category (THE FRIEND pattern, D-034)." - id: opening_m_d_009 text: "Central manifest board: real-time container routing, weight declarations, bay assignments. Everything routes through here." diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml index 96420c9c4..661c03dc2 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/smuggler/opening.yaml @@ -74,7 +74,7 @@ lines: notes: "First Kael sighting. Warm, immediate — she locates him before she finishes reading the floor. Teaches: named NPCs are identifiable via insert overlay (D-033 green entity)." - id: opening_m_s_006 - text: "Already has his clipboard. Day's organized before it starts. That's Kael." + text: "Already has his clipboard. Day's organized before it starts. Two years, same routine." role: player_character access: [public] trust: surface @@ -84,7 +84,7 @@ lines: priority: 9 cooldown: 9999 tags: [opening-hook, tutorial-arc, kael, friend-arc] - notes: "Kael warmth. Three beats: observation → interpretation → naming. The name at the end lands as affection. Establishes: Kael is trusted, competent, reliable — the baseline before the friend arc erodes it." + notes: "Kael warmth through behavior-reading, not labeling. Three beats: observation → interpretation → familiarity. 'Two years, same routine' says she knows his patterns intimately. Establishes: Kael is trusted, competent, reliable — the baseline before the friend arc erodes it." - id: opening_m_s_007 text: "Bulletin board's got a new Commission notice. Lattice registration updates. Not today's problem." diff --git a/content/global/enums/moods.yaml b/content/global/enums/moods.yaml index 270015040..e7a34641d 100644 --- a/content/global/enums/moods.yaml +++ b/content/global/enums/moods.yaml @@ -9,28 +9,26 @@ description: > Lines can be appropriate for multiple moods. values: - - value: fond - description: Warm, affectionate. Genuine positive feeling toward the listener. + - value: anxious + description: Anxious about something specific. Distracted, checking surroundings. (Renamed from 'worried' in Sprint 14.) - - value: comfortable - description: At ease, relaxed. Default positive-neutral state. + - value: frustrated + description: Blocked, irritated, empathetically distressed. Outward-directed tension. (Renamed from 'concerned' in Sprint 14.) - - value: worried - description: Anxious about something specific. Distracted, checking surroundings. + - value: content + description: At ease, relaxed. Default positive-neutral state. (Renamed from 'comfortable' in Sprint 14.) - value: suspicious description: Guarded, measuring words. Something feels off to this NPC. - - value: analytical - description: Thoughtful, assessing. Processing information rather than emoting. + - value: warm + description: Warm, affectionate. Genuine positive feeling toward the listener. (Renamed from 'fond' in Sprint 14.) - - value: conflicted - description: > - Torn between competing impulses. Loyalty vs. self-preservation, duty vs. - friendship. The mood of someone who hasn't decided what to do yet. - - - value: concerned - description: Worried about someone else's wellbeing. Empathetic distress. + - value: hostile + description: Actively antagonistic. Trust broken, relationship damaged. (Added in Sprint 14.) - value: relieved description: Tension has eased. Something feared didn't happen, or a burden lifted. + + - value: focused + description: Thoughtful, assessing, task-oriented. Processing information rather than emoting. (Renamed from 'analytical', merged with 'conflicted' in Sprint 14.) From 4be9cde3fae6a805ca51b77a248354b1b7ba4a8a Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 21 Feb 2026 14:48:03 +0100 Subject: [PATCH 5/6] =?UTF-8?q?fix(copy):=20PR=20#53=20review=20round=202?= =?UTF-8?q?=20=E2=80=94=20ID=20collision,=20wary/tired=20moods,=20greeting?= =?UTF-8?q?=20enum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Renumber Kael greeting IDs _d_046-049 → _d_050-053 (pc-detective.yaml holds 046-048, Hoshe R2-H1) - Replace pre-existing invalid mood values: wary→suspicious (22 lines), tired→frustrated (4 lines) across 5 dialogue files (Hoshe R2-H2) - Add greeting to situations.yaml enum with server-pending note (Hoshe R2-H3) - Fix double-dash → em-dash on Kael greeting lines (Hoshe R2-H5) Co-Authored-By: Claude Opus 4.6 --- .../maintenance-corridors/ring-operative.yaml | 8 +++--- .../dialogue/the-last-shift/bar-owner.yaml | 2 +- .../dialogue/the-last-shift/bar-regular.yaml | 20 +++++++------- .../dialogue/the-terminal/dock-worker.yaml | 26 +++++++++---------- .../dialogue/the-terminal/kael-davan.yaml | 12 ++++----- .../dialogue/the-terminal/scheduler.yaml | 2 +- content/global/enums/situations.yaml | 7 +++++ 7 files changed, 42 insertions(+), 35 deletions(-) diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml index 42f3ec76d..fad7d44f0 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/maintenance-corridors/ring-operative.yaml @@ -274,7 +274,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [ring-operative, detective-path, access-denial] - id: maintenance-corridors_d_118 @@ -284,7 +284,7 @@ lines: trust: surface situation: [investigation] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [ring-operative, detective-path, voss-redirect] dual_lens: smuggler: "Never encounters this." @@ -297,7 +297,7 @@ lines: trust: surface situation: [investigation] topic: [routine] - mood: [wary] + mood: [suspicious] tags: [ring-operative, detective-path, deflection] # ========================================== @@ -365,7 +365,7 @@ lines: trust: surface situation: [routine, shift_end] topic: [routine] - mood: [tired] + mood: [frustrated] tags: [ring-operative, surface-cover, generation-pass] - id: maintenance-corridors_d_126 diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml index 4bd853885..3234f345d 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-owner.yaml @@ -230,7 +230,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [lera, detective-path, authority-assertion] - id: the-last-shift_d_118 diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml index d5e8319e5..60b2eaecc 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/bar-regular.yaml @@ -63,7 +63,7 @@ lines: trust: surface situation: [routine] topic: [colleague, cargo] - mood: [wary] + mood: [suspicious] tags: [bar-regular, maret, voss, discrepancy] dual_lens: smuggler: "They're talking about Maret's flags as general knowledge. That's a wider problem than I thought." @@ -76,7 +76,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [wary] + mood: [suspicious] tags: [bar-regular, bay-four, observation] dual_lens: smuggler: "They've noticed bay four. It's becoming visible. Not good." @@ -102,7 +102,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [bar-regular, commission, audit] dual_lens: smuggler: "Cycle fifteen. That's the deadline. Get clean before then." @@ -115,7 +115,7 @@ lines: trust: surface situation: [routine] topic: [institution, colleague] - mood: [wary] + mood: [suspicious] tags: [bar-regular, voss, observation] dual_lens: smuggler: "Voss is visible more. Is that heat from above, or is he managing something on the floor?" @@ -188,7 +188,7 @@ lines: trust: surface situation: [routine] topic: [institution, community] - mood: [wary] + mood: [suspicious] tags: [bar-regular, workers-association, voss, transition-window] dual_lens: smuggler: "Voss is defending the twenty-minute window against Association pressure. He's protecting the gap." @@ -205,7 +205,7 @@ lines: trust: surface situation: [arrival, investigation] topic: [routine] - mood: [wary] + mood: [suspicious] tags: [bar-regular, detective-path, recognition] - id: the-last-shift_d_316 @@ -215,7 +215,7 @@ lines: trust: surface situation: [investigation, routine] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [bar-regular, detective-path, deflection] - id: the-last-shift_d_317 @@ -225,7 +225,7 @@ lines: trust: surface situation: [investigation] topic: [routine] - mood: [wary] + mood: [suspicious] tags: [bar-regular, detective-path, lera-redirect] # ========================================== @@ -283,7 +283,7 @@ lines: trust: surface situation: [arrival] topic: [routine] - mood: [tired] + mood: [frustrated] tags: [bar-regular, greeting, generation-pass] - id: the-last-shift_d_323 @@ -323,7 +323,7 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [bar-regular, infrastructure, generation-pass] - id: the-last-shift_d_327 diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml index 34c5ce396..a379adbdb 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/dock-worker.yaml @@ -29,7 +29,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [routine] - mood: [tired] + mood: [frustrated] tags: [dock-worker, greeting] - id: the-terminal_d_202 @@ -39,7 +39,7 @@ lines: trust: surface situation: [arrival, shift_start] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, voss, caution] dual_lens: smuggler: "Voss is in early. If the schedule's tight, the window shifts. Check it." @@ -79,7 +79,7 @@ lines: trust: surface situation: [routine] topic: [colleague, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, maret, observation] dual_lens: smuggler: "Maret reviewing something. If she flags a discrepancy, Voss'll sit on it. He always does." @@ -105,7 +105,7 @@ lines: trust: surface situation: [shift_transition, routine] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, commission, transition-window] dual_lens: smuggler: "Commission presence during transition. Window's compromised." @@ -128,7 +128,7 @@ lines: trust: surface situation: [routine] topic: [cargo, colleague] - mood: [wary] + mood: [suspicious] tags: [dock-worker, maret, voss, discrepancy] dual_lens: smuggler: "Forty kilos. Maret flagged it. Voss buried it. Same as last time." @@ -144,7 +144,7 @@ lines: trust: surface situation: [routine] topic: [cargo, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, c4-storage, observation] dual_lens: smuggler: "C-4's getting casual attention. Note it." @@ -195,7 +195,7 @@ lines: trust: surface situation: [investigation, routine] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, detective-path, redirect] - id: the-terminal_d_215 @@ -205,7 +205,7 @@ lines: trust: surface situation: [investigation, confrontation] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, detective-path, deflection] - id: the-terminal_d_216 @@ -215,7 +215,7 @@ lines: trust: surface situation: [investigation] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [dock-worker, detective-path, voss, redirect] # ========================================== @@ -229,7 +229,7 @@ lines: trust: real situation: [routine] topic: [colleague] - mood: [wary] + mood: [suspicious] tags: [dock-worker, maret, peer-candor] dual_lens: smuggler: "Maret's not going to drop it. That's the problem." @@ -242,7 +242,7 @@ lines: trust: real situation: [routine] topic: [institution, colleague] - mood: [wary] + mood: [suspicious] tags: [dock-worker, voss, peer-candor] dual_lens: smuggler: "He suspects Voss is shaving something. Doesn't know what. Doesn't want to." @@ -353,7 +353,7 @@ lines: trust: surface situation: [routine, shift_start] topic: [routine, cargo] - mood: [wary] + mood: [suspicious] tags: [dock-worker, span-gate, generation-pass] - id: the-terminal_d_229 @@ -363,7 +363,7 @@ lines: trust: surface situation: [shift_start, routine] topic: [colleague, routine] - mood: [tired] + mood: [frustrated] tags: [dock-worker, staffing, generation-pass] - id: the-terminal_d_230 diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml index f25069004..d3527a1dc 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml @@ -431,7 +431,7 @@ lines: # ======================================== # first_meeting: InteractionMemory.count == 0. RelationshipState: Unknown → Public access only. - - id: the-terminal_d_046 + - id: the-terminal_d_050 text: "This section is dock crew and logistics. If you're Commission or admin, check-in's back that way." role: dock-worker access: [public] @@ -443,8 +443,8 @@ lines: notes: "Layer 2 greeting — first meeting. Kael is helpful but orienting the stranger away from his work." # established — peer/smuggler context: count >= 3, RelationshipState: Known/Friendly → Peer/Insider access. - - id: the-terminal_d_047 - text: "You're back. Good -- bay three's been quiet. I'll fill you in." + - id: the-terminal_d_051 + text: "You're back. Good — bay three's been quiet. I'll fill you in." role: dock-worker access: [peer, insider] trust: surface @@ -455,8 +455,8 @@ lines: notes: "Layer 2 greeting — established. Warm, practical, skips pleasantries. Treats them as crew." # established — authority/detective context: count >= 3, RelationshipState: PersonOfInterest → Authority access. - - id: the-terminal_d_048 - text: "Back again. I'm on shift -- if you have questions, make them quick." + - id: the-terminal_d_052 + text: "Back again. I'm on shift — if you have questions, make them quick." role: dock-worker access: [authority] trust: surface @@ -467,7 +467,7 @@ lines: notes: "Layer 2 greeting — repeat with authority figure. Professional, clipped, not hostile. Kael can't refuse but won't volunteer." # post-confrontation: confrontation in InteractionMemory.notable_events. NPC mood shifted to suspicious/frustrated. - - id: the-terminal_d_049 + - id: the-terminal_d_053 text: "Didn't expect you today." role: dock-worker access: [peer, insider] diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml index 31eba436d..83565fe05 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/scheduler.yaml @@ -367,5 +367,5 @@ lines: trust: surface situation: [routine] topic: [institution, routine] - mood: [wary] + mood: [suspicious] tags: [maret, commission, audit, generation-pass] diff --git a/content/global/enums/situations.yaml b/content/global/enums/situations.yaml index 820b44eb7..74ccedd18 100644 --- a/content/global/enums/situations.yaml +++ b/content/global/enums/situations.yaml @@ -51,3 +51,10 @@ values: - value: observation description: Player is watching from a distance, not directly interacting + + - value: greeting + description: > + Initial contact phase of an encounter. Layer 2 (D-028) uses greeting lines + with access tier filtering to differentiate first meeting vs established vs + post-confrontation greetings. Added Sprint 8 amendment. NOTE: server + derive_situations() does not yet push Situation::Greeting — pending Rust update. From e166409674fbe89650e6f5c8df0e04976fedb55a Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 21 Feb 2026 15:03:06 +0100 Subject: [PATCH 6/6] =?UTF-8?q?fix(copy):=20PR=20#53=20review=20round=203?= =?UTF-8?q?=20=E2=80=94=20span=20gate=20terminology,=20mood=20tags,=20em-d?= =?UTF-8?q?ash=20consistency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix "span gate threshold" → "span gate hum" (D-036 canonical term) in detective opening, add missing mood tags on opening_m_d_002 and the-terminal_d_020, normalize sera-venn double-dashes to em-dashes, fix situations.yaml header count, document greeting fallback behavior. Co-Authored-By: Claude Opus 4.6 --- .../dialogue/the-last-shift/sera-venn.yaml | 64 +++++++++---------- .../dialogue/the-terminal/kael-davan.yaml | 1 + .../transit/monologue/detective/opening.yaml | 5 +- content/global/enums/situations.yaml | 2 +- docs/design/layer2-situation-mapping.md | 2 + 5 files changed, 39 insertions(+), 35 deletions(-) diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml index 9207ffedc..a3dfc3fc3 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-last-shift/sera-venn.yaml @@ -39,7 +39,7 @@ lines: # ============================================================ - id: the-last-shift_d_101 - text: "There you are. Grab a seat -- Lera's doing that thing with the grain spirit again. Don't ask, just trust me and order the ale." + text: "There you are. Grab a seat — Lera's doing that thing with the grain spirit again. Don't ask, just trust me and order the ale." role: bar-regular access: [peer] trust: surface @@ -49,7 +49,7 @@ lines: tags: [greeting, phase-1, establishes-warmth] - id: the-last-shift_d_102 - text: "Corner booth's free. I saved it -- force of habit." + text: "Corner booth's free. I saved it — force of habit." role: bar-regular access: [peer] trust: surface @@ -79,7 +79,7 @@ lines: tags: [greeting, phase-2-5, repeatable] - id: the-last-shift_d_105 - text: "Good timing. Naia was here earlier -- you just missed her." + text: "Good timing. Naia was here earlier — you just missed her." role: bar-regular access: [peer] trust: surface @@ -89,7 +89,7 @@ lines: tags: [greeting, phase-2, naia-reference] - id: the-last-shift_d_106 - text: "Grab a seat. Quiet night so far -- Lera's in a good mood, which means the ale's fresh." + text: "Grab a seat. Quiet night so far — Lera's in a good mood, which means the ale's fresh." role: bar-regular access: [peer, public] trust: surface @@ -134,7 +134,7 @@ lines: tags: [orientation, district-background] - id: the-last-shift_d_111 - text: "See the card game in the corner? That's Harek's table. Security officer, off-duty. Harmless -- just loud." + text: "See the card game in the corner? That's Harek's table. Security officer, off-duty. Harmless — just loud." role: bar-regular access: [peer] trust: surface @@ -184,7 +184,7 @@ lines: tags: [backstory, phase-1] - id: the-last-shift_d_116 - text: "Lera remembers every regular's order. Eighteen years of that. Don't ask how she does it -- she'll just pour you one and prove it." + text: "Lera remembers every regular's order. Eighteen years of that. Don't ask how she does it — she'll just pour you one and prove it." role: bar-regular access: [peer, public] trust: surface @@ -194,7 +194,7 @@ lines: tags: [community-texture] - id: the-last-shift_d_117 - text: "The shift crowd clears out by 19:00. After that it's just us -- regulars, a few stragglers. The good hours." + text: "The shift crowd clears out by 19:00. After that it's just us — regulars, a few stragglers. The good hours." role: bar-regular access: [peer] trust: surface @@ -233,7 +233,7 @@ lines: # --- Surface trust --- - id: the-last-shift_d_120 - text: "The Commission runs maintenance checks quarterly. I handle the field side -- equipment calibration, relay diagnostics. Standard." + text: "The Commission runs maintenance checks quarterly. I handle the field side — equipment calibration, relay diagnostics. Standard." role: bar-regular access: [peer, authority] trust: surface @@ -243,7 +243,7 @@ lines: tags: [institutional-background] - id: the-last-shift_d_121 - text: "Naia teaches the station kids. Primary education, mostly. She's good at it -- patient. The kids adore her." + text: "Naia teaches the station kids. Primary education, mostly. She's good at it — patient. The kids adore her." role: bar-regular access: [peer] trust: surface @@ -253,7 +253,7 @@ lines: tags: [naia-reference, phase-2] - id: the-last-shift_d_122 - text: "The district runs on freight. Terminal handles most of it -- container processing, manifest filing. Bread and butter." + text: "The district runs on freight. Terminal handles most of it — container processing, manifest filing. Bread and butter." role: bar-regular access: [peer, public] trust: surface @@ -295,7 +295,7 @@ lines: # --- Real trust --- - id: the-last-shift_d_130 - text: "Naia's been worried lately. About Kael -- her partner. He's a dock worker at the Terminal. Late nights, evasive answers. She confided in me." + text: "Naia's been worried lately. About Kael — her partner. He's a dock worker at the Terminal. Late nights, evasive answers. She confided in me." role: bar-regular access: [peer] trust: real @@ -373,7 +373,7 @@ lines: # --- Secret trust --- - id: the-last-shift_d_140 - text: "I ran a compliance check. Unauthorized. Six weeks ago. Naia was so worried about Kael -- I thought I could help. I found manifest discrepancies tied to his shifts." + text: "I ran a compliance check. Unauthorized. Six weeks ago. Naia was so worried about Kael — I thought I could help. I found manifest discrepancies tied to his shifts." role: bar-regular access: [peer] trust: secret @@ -396,7 +396,7 @@ lines: tags: [motivation-confession, phase-5] - id: the-last-shift_d_142 - text: "The irregularities correlate with Torek Lintar's inspection shifts. That's why I can't -- I can't be near him. He doesn't know I know." + text: "The irregularities correlate with Torek Lintar's inspection shifts. That's why I can't — I can't be near him. He doesn't know I know." role: bar-regular access: [peer] trust: secret @@ -409,7 +409,7 @@ lines: confidence: "knows_details" - id: the-last-shift_d_143 - text: "I don't know what you're looking for. I told you everything I know. If you're asking whether I'm hiding something -- I'm a field tech, not an analyst." + text: "I don't know what you're looking for. I told you everything I know. If you're asking whether I'm hiding something — I'm a field tech, not an analyst." role: bar-regular access: [peer, authority] trust: secret @@ -435,7 +435,7 @@ lines: # ============================================================ - id: the-last-shift_d_150 - text: "Oh -- before I forget. The dock scheduler, Maret? She's sharp. If you need freight records context, she's the one to ask." + text: "Oh — before I forget. The dock scheduler, Maret? She's sharp. If you need freight records context, she's the one to ask." role: bar-regular access: [peer] trust: surface @@ -448,7 +448,7 @@ lines: confidence: "suspects" - id: the-last-shift_d_151 - text: "I checked the relay calibration logs for the Terminal this morning. Nothing flagged. But the data throughput was higher than standard -- more manifests processed than usual." + text: "I checked the relay calibration logs for the Terminal this morning. Nothing flagged. But the data throughput was higher than standard — more manifests processed than usual." role: bar-regular access: [peer, authority] trust: real @@ -458,7 +458,7 @@ lines: tags: [unprompted, overcompensation, phase-3-4] - id: the-last-shift_d_152 - text: "I asked around -- quietly -- about the shift rotation schedule. Voss has been adjusting it more than usual this cycle. Might mean nothing." + text: "I asked around — quietly — about the shift rotation schedule. Voss has been adjusting it more than usual this cycle. Might mean nothing." role: bar-regular access: [peer] trust: real @@ -491,7 +491,7 @@ lines: confidence: "knows_details" - id: the-last-shift_d_155 - text: "You should know -- Lera watches out for her regulars. If people have been asking about you, she'd know. She just won't volunteer it." + text: "You should know — Lera watches out for her regulars. If people have been asking about you, she'd know. She just won't volunteer it." role: bar-regular access: [peer] trust: real @@ -506,7 +506,7 @@ lines: # ============================================================ - id: the-last-shift_d_160 - text: "Actually, I should head out. Early shift tomorrow -- calibration rounds start at 07:30." + text: "Actually, I should head out. Early shift tomorrow — calibration rounds start at 07:30." role: bar-regular access: [peer, public] trust: surface @@ -516,7 +516,7 @@ lines: tags: [avoidance-excuse-1, torek-trigger, phase-3] - id: the-last-shift_d_161 - text: "Sorry -- headache coming on. Station air does that sometimes. I'll catch you tomorrow." + text: "Sorry — headache coming on. Station air does that sometimes. I'll catch you tomorrow." role: bar-regular access: [peer, public] trust: surface @@ -526,7 +526,7 @@ lines: tags: [avoidance-excuse-2, torek-trigger, phase-3] - id: the-last-shift_d_162 - text: "I need to check something at the Commission kiosk. Forgot to file a diagnostic report. I'll be quick -- or not. You know how the system is." + text: "I need to check something at the Commission kiosk. Forgot to file a diagnostic report. I'll be quick — or not. You know how the system is." role: bar-regular access: [peer] trust: surface @@ -536,7 +536,7 @@ lines: tags: [avoidance-excuse-3, torek-trigger, phase-3] - id: the-last-shift_d_163 - text: "Torek? He's just loud. I don't love loud drunks. Nothing personal -- I just like a quieter evening." + text: "Torek? He's just loud. I don't love loud drunks. Nothing personal — I just like a quieter evening." role: bar-regular access: [peer] trust: surface @@ -546,7 +546,7 @@ lines: tags: [torek-deflection, phase-4, the-deflection] - id: the-last-shift_d_164 - text: "Manifests? I wouldn't know -- I'm on the equipment side, not the freight side. Different department entirely." + text: "Manifests? I wouldn't know — I'm on the equipment side, not the freight side. Different department entirely." role: bar-regular access: [peer, authority] trust: surface @@ -556,7 +556,7 @@ lines: tags: [topic-deflection, cargo-avoidance, phase-3-5] - id: the-last-shift_d_165 - text: "Anyway -- did you try the ale? Lera got a new supply run in. Much better than last week's batch." + text: "Anyway — did you try the ale? Lera got a new supply run in. Much better than last week's batch." role: bar-regular access: [peer] trust: surface @@ -566,7 +566,7 @@ lines: tags: [redirect, warmth-recovery, phase-4] - id: the-last-shift_d_166 - text: "I'm just a field tech. I maintain equipment. I don't track people or shipments -- that's your department." + text: "I'm just a field tech. I maintain equipment. I don't track people or shipments — that's your department." role: bar-regular access: [peer, authority] trust: surface @@ -576,7 +576,7 @@ lines: tags: [deflection-firm, phase-4-5, the-wall] - id: the-last-shift_d_167 - text: "Let's talk about something else. How's the investigation going -- generally? Making progress?" + text: "Let's talk about something else. How's the investigation going — generally? Making progress?" role: bar-regular access: [peer] trust: real @@ -632,7 +632,7 @@ lines: tags: [post-discovery, genuine-but-contaminated, phase-5] - id: the-last-shift_d_174 - text: "If there's anything I can help with -- anything at all -- you just ask. You know that." + text: "If there's anything I can help with — anything at all — you just ask. You know that." role: bar-regular access: [peer] trust: real @@ -651,7 +651,7 @@ lines: # first_meeting (detective path): RelationshipState Unknown → Public/Authority access. # Sera clocks them as Commission immediately. Makes them welcome anyway. - id: the-last-shift_d_175 - text: "Commission? Don't worry, I don't bite. I'm Sera. Corner booth's better -- you can see the whole room." + text: "Commission? Don't worry, I don't bite. I'm Sera. Corner booth's better — you can see the whole room." role: bar-regular access: [public, authority] trust: surface @@ -659,7 +659,7 @@ lines: mood: [warm] topic: [personal, institution] tags: [sera, greeting, first-meeting, detective-path, layer2] - notes: "Layer 2 greeting — first meeting, detective path. Sera reads the institutional marking immediately and disarms it. Corner booth tip is genuine -- Sera always notices the useful details." + notes: "Layer 2 greeting — first meeting, detective path. Sera reads the institutional marking immediately and disarms it. Corner booth tip is genuine — Sera always notices the useful details." # established (detective path): count >= 3, RelationshipState: Known/Friendly → Peer access. # Warmer, more personal. Sera has been waiting for them. @@ -672,10 +672,10 @@ lines: mood: [warm] topic: [personal, investigation] tags: [sera, greeting, repeat-visit, detective-path, layer2] - notes: "Layer 2 greeting — established, detective path. Personal, invested. Sera asks about their day the way a friend does -- not just small talk." + notes: "Layer 2 greeting — established, detective path. Personal, invested. Sera asks about their day the way a friend does — not just small talk." # first_meeting (smuggler path): smuggler is dock crew, Sera knows the district crowd. - # Peer/insider access from the start -- Sera has social network, not institutional distance. + # Peer/insider access from the start — Sera has social network, not institutional distance. - id: the-last-shift_d_177 text: "Terminal crew? Grab a seat. Kael usually sits in the back if you're looking for him." role: bar-regular @@ -685,7 +685,7 @@ lines: mood: [content] topic: [colleague, personal] tags: [sera, greeting, first-meeting, smuggler-path, layer2] - notes: "Layer 2 greeting — first meeting, smuggler path. Sera recognizes dock crew on sight and extends the social network. Mentioning Kael is casual intel -- she knows everyone's connections." + notes: "Layer 2 greeting — first meeting, smuggler path. Sera recognizes dock crew on sight and extends the social network. Mentioning Kael is casual intel — she knows everyone's connections." # post-confrontation: confrontation logged. Sera's surface warmth is present but qualified. # She doesn't know where they stand. The welcome is real but uncertain. diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml index d3527a1dc..e5fd61826 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/dialogue/the-terminal/kael-davan.yaml @@ -220,6 +220,7 @@ lines: access: [insider] trust: real situation: [routine] + mood: [content] topic: [colleague] tags: [kael, ring-ops, drin, phase-2] knowledge_grant: diff --git a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml index cb877d1f0..5696d91be 100644 --- a/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml +++ b/content/campaigns/main/systems/krenn/stations/sova/districts/transit/monologue/detective/opening.yaml @@ -24,16 +24,17 @@ lines: notes: "Opening line. Reality matches the briefing — he arrived prepared. Establishes: detective as institutional outsider sent here. Cool-lit corridors per D-046 expressed through 'half-cycle' lighting observation. No contractions (analytical)." - id: opening_m_d_002 - text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the span gate threshold. First observation: consistent with Commission briefing profile." + text: "Cargo lubricant, recycled atmosphere. Same mixture on every freight hub from here to the span gate hum. First observation: consistent with Commission briefing profile." role: player_character access: [public] trust: surface situation: [arrival, shift_start] trigger: enter_location + mood: [focused] priority: 10 cooldown: 9999 tags: [opening-hook, tutorial-arc, atmospheric, analytical] - notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. 'span gate threshold' is canonical terminology (D-036). Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home." + notes: "Environmental sensory in analytical register. Colon usage (detective verbal pattern, section 2.2). No contractions. 'span gate' is canonical terminology (D-036); 'hum' is sensory detail. Contrast with smuggler's 'Home sweet home' — same smell, opposite emotional valence. He's working, not home." - id: opening_m_d_003 text: "Lattice overlay initializing. Four identity flags in immediate range — cross-referencing against Commission case file." diff --git a/content/global/enums/situations.yaml b/content/global/enums/situations.yaml index 74ccedd18..5bdd35a5b 100644 --- a/content/global/enums/situations.yaml +++ b/content/global/enums/situations.yaml @@ -1,4 +1,4 @@ -# 13 situation values (D-035, D-028 Layer 2) +# 14 situation values (D-035, D-028 Layer 2) # Situation context for dialogue line eligibility — engine-state-to-situation mapping name: situations decision_ref: D-035 diff --git a/docs/design/layer2-situation-mapping.md b/docs/design/layer2-situation-mapping.md index 5668e1e5e..506fb9da4 100644 --- a/docs/design/layer2-situation-mapping.md +++ b/docs/design/layer2-situation-mapping.md @@ -201,6 +201,8 @@ Content lines use `situation: [greeting]` as their tag. The engine currently pus **Schema note (dialogue-line.schema.json):** `"'greeting' is not yet in server/src/content/line_pool.rs — lines using it will be skipped until Rust is updated."` +**Current fallback behavior:** Until the Rust update lands, lines tagged `situation: [greeting]` are excluded from the candidate pool entirely — they never fire. NPCs greet the player using their `situation: [routine]` or `situation: [social]` lines instead, filtered by access tier and mood as usual. This means Layer 2 relationship-aware greetings are functionally dormant; the content exists and is schema-valid, but the engine skips it. No error is raised — the line pool query simply finds no match for the `greeting` situation and falls through to other eligible lines. + **Intended resolution (pending Rust update):** When `server/src/content/line_pool.rs` is updated to include `Situation::Greeting`, `greeting`-tagged content lines will fire. The Layer 2 relationship history distinction will then work through the access tier filtering that is already implemented: - `access: [public]` + `situation: [greeting]` → first meeting lines (Unknown relationship)