. - #36
Open
Damian-I wants to merge 1399 commits into
Open
Conversation
Co-authored-by: Copilot <copilot@github.com>
…nd updating object placements in room configurations Co-authored-by: Copilot <copilot@github.com>
…estigation objectives, gameplay instructions, and regulatory considerations Co-authored-by: Copilot <copilot@github.com>
…hors, and learning objectives; enhance scenario context and gameplay instructions; clarify key concepts and investigation strategies; improve regulatory frameworks and reflection questions; streamline hints and tips for better user experience. Co-authored-by: Copilot <copilot@github.com>
… to clarify authorisation requirements
…th a rollback option for the previous preview model.
Implements a fully scenario-driven drag-and-drop document reconstruction puzzle. Players sort shuffled paper strips into reading order (with optional 180° rotation) to reveal passwords, PINs, or contact details hidden in improperly disposed documents.
Each NPC message is now preceded by a 1 s typing indicator, with a 400 ms breath between consecutive messages. Previously all messages in a burst appeared simultaneously inside a single 500 ms setTimeout. Both continueStory() and handleChoice() are updated; all other logic is unchanged. Timing is controlled by TYPING_DELAY_MS and INTER_MESSAGE_MS constants at the top of each function for easy tuning.
…ted demographic cohorts and the impact of misinformation. Update casualty projections and operational methods to reflect a more nuanced understanding of panic dynamics and emergency response overload. Adjust NPC dialogue to emphasize the calculated nature of the attack and its implications for vulnerable populations. Rephrased to avoid triggering phrases.
…03_cyber_insurance
…uffer cache with LRU eviction and prefetching capabilities. Introduce a new configuration option for buffer cache size. Update MusicController to handle prefetching and aborting of audio loads, ensuring efficient memory usage and smoother transitions between tracks.
…icController and updating the music widget to include a voice volume slider. Implement audio routing for TTS through the voice gain node, ensuring consistent volume control across different audio sources. Adjust CSS for the music widget to accommodate new features and improve UI responsiveness.
…t to improve user experience. Adjust music, SFX, and voice volume levels for better balance and clarity.
mg-06: Add network diagram pinboard to Evidence Archive for sis…
mg-c: Combination Padlock minigame for BreakEscape
Merge VPN Minigames
NPC Typing Indicator
Scenario design review surfaced a half-applied character rename and one legacy NPC file that was made runnable but never polished. Fixes: - Rename the NPC to match its in-game name: id robert_chen -> robert_vance (NPC, phone NPC, KO global, meet_ task id, #speaker/#complete_task tags, storyPaths, ink filenames git-mv'd). All player-visible "Chen" -> "Vance". Internal chen_* state vars kept (synced consistently, not the id). - Give the Level 1 keycard on the peaceful path (#give_item:keycard) so befriending Vance no longer silently fails to hand it over. - KO-aware closing debrief: gate Vance's lines on robert_vance_ko, with a medics alternate and a debrief_end_ko closer. - Delete the unreachable "Conversation 2" block (stale Level-2 hand-over). - Population figure 400,000 -> 240,000; one third-person choice -> first person. - Task submit_privesc_flag -> submit_http_analysis_flag (matches its flag); remap stale puzzle_graph_aim/unlocks_aim ids to real aimIds; correct the briefing's staging-tags TODO (aims stage via unlockCondition, as m01). Verified: 10/10 ink compile, loopcheck clean (hub + both debrief paths + phone + briefing), validator schema/wiring/geometry pass.
- Add # influence_increased feedback on every Vance trust gain (m01/m02 convention), so building rapport now registers on screen. - Rework the opening briefing into a question-hub: topic branches funnel back to the hub and the only exit runs through mission_stakes, so the Architect / Social Fabric coordination beat can no longer be skipped (previously the timeline branch reached the objectives without it). - Drop redundant post-choice "You:" echoes (chen_early_reveal, Voltage fight/arrest) per the no-echo NPC convention. - Keep Vance at his post: reword "meet me in the Control Room" and the phone "out of the building" line so his dialogue matches his on-screen sprite in the operations office. - Polish: correct the stale attack_mechanism_known comment, remove the dead voltage_choice global, comment the deliberate arrest-branch voltage_captured exception, rename the ROBERT CHEN file header, and soften Voltage's operative-name line to avoid an out-of-order mis-cue. Recompiled 10/10, loopcheck clean, validator passes.
Rewrite TESTING_WALKTHROUGH.md into the walkthrough-scenario skill format: 16-step critical path across the five sequenced aims, a global-variable state table, a puzzle-graph reconciliation table (all gating nodes covered), and edge-case / KO-safety notes. Reflects the reworked briefing hub and the Vance/Voltage dialogue fixes.
…or incomplete missions
Advance the early-draft mission to a complete, canon-aligned state across all ten alignment dimensions. Planned via mission-alignment-plan; see ALIGNMENT_PLAN.md. - Unblock the validator (17 ink errors) and make the mission completable: flag rewards via set_global, targetFlags wiring, unique evidence items, evidence_level reachable, torres_identified set, Torres reveal fixed. - Stage five sequenced aims with spoiler-safe titles; add missionConclusion + bond_visualiser, non-replaying briefing, and an event-driven music block. - Retarget stakes to ENTROPY acquiring the National Emergency-Services Dispatch Network key material; add the Architect's casualty projection and a live Recruiter phone antagonist. - Rebuild Agent HaX as a progress-gated support hub with exposure-gated field guides (incl. the new Bludit CMS guide). - Replace CYOA combat with real hostility + a post-KO fate choice; add KO resilience to every named NPC. - Reuse notes/keycard sprites for evidence and badges; fix latent RFID key_id gaps that left server_hallway and torres_office unopenable. - Regenerate dungeon graph and add TESTING_WALKTHROUGH.md.
…d terminal Follow the m01 pattern: the drop-site is now the flag-station object where the player submits the flags they actually captured on the Bludit VM, rather than a scripted NPC terminal that faked typing flags and narrated the exploitation steps. - Remove the scripted dropsite_terminal_npc and delete m05_dropsite_terminal.ink; its flavour documents and fake flag-submission dialogue are gone. Flag task completion is already server-authoritative via targetFlags; architect_approval_confirmed is set by the flag4 handler eventMapping; Agent 0x99's flag beats come from handler eventMappings. Nothing referenced the removed NPC. - Rename the flag-station to "SAFETYNET Drop-Site Terminal" to match m01 and point its observations at the on-VM intel. - Drop the orphaned traversal_files_found / root_access_achieved globals. - Add puzzle_graph_unlocks to the three access items so the dungeon graph maps every locked door; validator now reports zero warnings. - Update TESTING_WALKTHROUGH.md and regenerate the dungeon graph.
The closing act was gated behind two ink VARs (torres_identified, final_choice) that were assigned in ink but never bridged to game globals with #set_global, so Torres never revealed and the debrief never fired — the mission was unwinnable despite a green validator. - Bridge torres_identified in Patricia's ink (reveals Torres, triggers the confrontation and recruiter beats) - Bridge final_choice on all five endings at their terminal points so the closing debrief and credits fire once, after the confrontation - setVisible the hidden Torres sprite on reveal for the combat path - Add a KO-safe fallback: handler sets torres_identified at evidence>=5 if Patricia is down, so the finale can't be stranded by a KO - Remove dead #complete_task:stop_final_exfiltration tags (no such task)
The opening briefing set player_approach, knows_full_stakes and handler_trust as ink VARs only, so the closing debrief (reading the globals) saw defaults and a whole layer of personalisation never fired. Bridge them with #set_global. Also: add influence feedback tags across all four NPCs and collapse the parallel rapport scalars onto the <npc>_influence convention; finish lore_collected wiring and repoint the debrief success tiers onto the live evidence_level; give the Recruiter's deal a real accept path (was dead code); drop an undeclared set_global; add a confront_stance debrief callback; harden a pre-existing torres_outcome starvation.
Reflect the bridged briefing globals (player_approach, knows_full_stakes, handler_trust), the evidence_level-driven debrief success tier, lore_collected wiring, the confront_stance callback, and the Recruiter's new accept path. Regenerated dungeon graph alongside.
… and development status for clarity
Budget papers, ransom demand, insider bribe, and ENTROPY's fake 'recovery service' ledger all quoted USD despite St. Catherine's being a UK NHS trust. Converts to GBP throughout and reframes the ransom as a flat £150,000 payable in Bitcoin at the prevailing rate, rather than a fixed BTC quantity pinned to a stale exchange rate.
Drop the 'national security'/black-budget-government-agency framing. SAFETYNET now answers to no state, has no jurisdiction, legal cover, extraction rights, or diplomatic protection -- its cover stories are the only thing holding an operation together, not classified executive orders. Updates the official designation, mission statement, shadow war section, and related organisation/character/world-building pages to match.
Follow-up to the SAFETYNET retcon in the shared lore hub, lab intro, and m03 dialogue -- 'national security', 'federal investigation', and 'FBI/CISA/NSA' lines replaced with language consistent with SAFETYNET having no state backing.
Substantial ink and scenario.json.erb rework across the analyst, Elena Volkov, trader, opening briefing, agent 0x99 phone, and Satoshi confrontation conversations, plus a testing walkthrough and VM integration doc.
Replace the branching crisis-path structure (corporate/data/infrastructure/ supply-chain + Director Morgan) with a single mission built around four named NPCs (Elena Rodriguez, Jake Morrison, James Mercer, Thomas Park). Retire the old stage-0 option planning docs and session/completion summaries in favour of a contract, alignment plan, mission design and delegation notes, and a testing walkthrough. Regenerates the dungeon graph and updates README/SOLUTION_GUIDE to match.
person-chat TTS hardcoded the trigger NPC's voice for every line, so a conversation with several line-prefixed speakers showed the right portraits but read all lines in one voice. Resolve the TTS speaker (and the next-line preload) from the parsed block instead, guarded to only override when the speaker is a registered NPC with its own voice block; otherwise fall back to the trigger NPC, leaving single-NPC scenarios unchanged.
Rebuild scenario.json.erb to the current schema (was an unrenderable early draft): 9-room SAFETYNET HQ on real room types and sprites, staged spoiler-safe aims, bond_visualiser conclusion, event-driven music, narrator + per-NPC voices, redundant lock chain, and the such_a_git VM wired via safetynet_gitlist_server flags (flagRewards -> flagN_submitted, HaX eventMappings deriving the evidence globals). Full 12-file ink set: an investigation with real autonomy -- Director Netherton's briefing, three branching suspect interviews with alibis and an accusation mechanic, a HaX support hub with exposure-gated field guides, the confrontation (hard-canon stakes; the mole's philosophy argued and rejected), and a branching debrief. KO-resilient throughout; the fate is set at a terminal. Adds CONTRACT, SOLUTION_GUIDE, TESTING_WALKTHROUGH and the dungeon graph, and establishes Nightshade + the Mission 8 canon in the Insider Threat Initiative bible entry.
Add Agent 0x47 'Nightshade' as a trusted technical colleague, alongside the two familiar SAFETYNET faces (Director Netherton and Agent HaX), to the openings of m02-m06 (and Nightshade's PIN-cracker analysis to the m02 debrief) using the multi-NPC line-prefix format. Nightshade is helpful and liked throughout, with no tell -- in m05 he ironically briefs the player on how to catch an insider by the exact behaviour that later exposes him. All co-speakers are hidden, registry-only NPCs (male_scientist / male_spy) carrying no task or gating global. Spoiler discipline held: no pre-m08 mission names the mole or the cell. Includes the incorporation plan (engine verification + per-mission notes).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.