Commit Graph

628 Commits

Author SHA1 Message Date
Z. Cliffe Schreuders
0c90e1298c Complete Mission 3 Stage 2 Atmosphere & Locations
- Created comprehensive atmosphere.md (1,085 lines)
- 7 detailed location descriptions with day/night contrasts
- Reception lobby: Corporate facade, company founding plaque (safe PIN clue: 2010)
- Conference room: Victoria meeting location, LORE Fragment 4 (philosophy whiteboard)
- Office hallway: Guard patrol route, server room access
- Server room (PRIMARY): VM terminal, physical evidence, technical challenges
- Victoria's office: LORE Fragment 3 (Architect's email), confrontation location
- James's office: Innocence evidence, moral complexity, warning note option
- Break room: Guard patrol waypoint
- Comprehensive atmospheric design:
  * Day/night transformation philosophy
  * Lighting design (bright professional vs. dark tense)
  * Sound design (corporate ambiance vs. stealth tension)
  * Environmental storytelling (dual nature revelation)
- 7 key atmospheric moments identified
- Complete sensory design for immersion
2026-01-14 09:46:32 +00:00
Z. Cliffe Schreuders
8ddeac37cb Complete Mission 3 Stage 2 Character Profiles
- Created comprehensive characters.md (948 lines)
- Victoria Sterling: True believer villain with economic philosophy
  * Calculated harm (hospital deaths), feels no remorse
  * Articulate evil monologue explaining worldview
  * Strategic double agent offer (not remorseful)
- James Park: Innocent bystander for moral complexity
  * Genuine ethical hacker, family man
  * Unaware of Zero Day criminal operations
  * Player choice: warn or let face consequences
- Agent 0x99: Mission handler with established voice
  * Provides briefing, tutorials, revelation reactions
  * Acknowledges player choices in debrief
  * Advances campaign arc (The Architect)
- Cipher: Referenced Zero Day leader (future antagonist)
- Character relationships matrix
- Discoverable evidence specifications
- Complete dialogue samples for key scenes
2026-01-14 09:46:32 +00:00
Z. Cliffe Schreuders
7fe580aeb6 Complete Mission 3 Stage 1 - Narrative Structure Development
- Created comprehensive story_arc.md (1,546 lines)
- 14 scenes across 3 acts with complete breakdown
- Key story beats identified (opening hook, midpoint twist, climax choice)
- Emotional arc progression mapped with tension curve
- Pacing chart with timeline breakdown (60-75 min playtime)
- Variable tracking specification (tracks actual actions, not vague labels)
- Opening/closing cutscene implementation details
- Mission highlights:
  * Concrete stakes: Zero Day sold hospital ransomware exploit (4-6 deaths)
  * Midpoint twist: M2 connection revelation (Scene 10)
  * Climax: Victoria double agent choice
  * Campaign arc: The Architect introduction
- Educational focus: Network recon (nmap, netcat, distcc), RFID security, multi-encoding
- Ready for Stage 2: Storytelling Elements Development
2026-01-14 09:46:32 +00:00
Z. Cliffe Schreuders
27f04d601d Add Mission 3 Stage 0 completion document
Stage 0 COMPLETE 

All 4 documents created (~2,900+ lines total):
 Scenario initialization (820 lines)
 Technical challenges (812 lines)
 Narrative themes (600+ lines)
 Hybrid architecture plan (700+ lines)

Key Achievements:
- RFID cloning mechanic fully specified
- M2 connection revelation designed
- The Architect introduction planned
- Moral choices defined (Victoria, James)
- Educational objectives mapped (6 CyBOK areas)
- Campaign arc connections documented

Ready for Stage 1: Narrative Structure Development

Status: Stage 0 COMPLETE | Next: Stage 1
2026-01-14 09:46:32 +00:00
Z. Cliffe Schreuders
e70e4cf9dd Complete Mission 3 Stage 0 - Scenario Initialization (4/4 documents, ~2,900 lines)
Stage 0 COMPLETE! All foundation documents created:

Document 1: Scenario Initialization (820 lines) 
- Mission overview (tier, playtime, ENTROPY cell, SecGen scenario)
- CyBOK knowledge areas (NSS, SS, ACS, SOC, HF, AB)
- 3-act structure with scene preview
- Key NPCs (Victoria Sterling, James Park, Cipher, Agent 0x99)
- 4 LORE fragments with campaign significance
- Victory conditions (100%, 80%, 60%)
- Educational objectives
- Campaign arc connections (M1-M2-M4-M6-M7-9)
- Post-mission debrief script
- Critical decisions: RFID (proximity + social eng), scanning (auto + tutorial), double agent (long-term vs immediate), Architect (name only)

Document 2: Technical Challenges (812 lines) 
Break Escape In-Game:
- RFID Cloning (NEW): Proximity (2 GU, 10s), visual feedback, tutorial, alt paths
- Lockpicking: 4 locks (cabinet, office, security, safe PIN 2010)
- Guard Patrol: 60s loop, LOS detection, timing strategies
- Social Engineering: Victoria trust (0-100), James intel, guard cover stories
- Multi-Encoding: ROT13, Hex, Base64, double-encoded (ROT13+Base64)

VM/SecGen Challenges:
- Network Scanning: nmap, flag{network_scan_complete}
- Banner Grabbing: netcat FTP, flag{ftp_intel_gathered}, GHOST codename
- HTTP Analysis: Base64 HTML, flag{pricing_intel_decoded}
- distcc Exploit: CVE-2004-2687, flag{distcc_legacy_compromised}, M2 connection!

Integration: 9 challenges (5 in-game, 4 VM), difficulty scaling, educational rubric

Document 3: Narrative Themes (600+ lines) 
Theme: Corporate Espionage / Intelligence Gathering
Setting: WhiteHat Security Services (Zero Day front company)
- Daytime: Professional corporate facade
- Nighttime: Espionage thriller tension
- Contrast: Same location, two faces

NPCs Detailed:
- Victoria Sterling: Free-market ideologue, true believer, double agent candidate
- James Park: Innocent employee, moral complexity, protection choice
- "Cipher": Cell leader (referenced), future villain setup
- Agent 0x99: Handler, tutorials, debrief narrator

Tone: Espionage thriller (Michael Clayton, Tinker Tailor Soldier Spy)
Stakes: Personal (James), Organizational (SAFETYNET vs Zero Day), Societal (exploit marketplace)
Central Conflict: Player vs Victoria ideology, vs Zero Day operations, vs Architect (background)

Document 4: Hybrid Architecture Plan (700+ lines) 
VM Component (SecGen "Information Gathering: Scanning"):
- Validates network reconnaissance (nmap, netcat, distcc)
- 4 flags represent ENTROPY intercepts
- Stable (pre-built, unchanged for assessment consistency)

ERB Component (Narrative Content):
- Encoded messages (ROT13, Hex, Base64, double-encoded)
- LORE fragments (client list, exploit catalog, Architect directives)
- NPC dialogues (Ink scripts)
- Environmental storytelling

Dead Drop Integration:
- VM flag → submit at drop-site terminal → unlock in-game resource
- flag{network_scan_complete} → workstation access
- flag{ftp_intel_gathered} → client codename list
- flag{pricing_intel_decoded} → pricing spreadsheet, LORE 2 access
- flag{distcc_legacy_compromised} → M2 connection reveal, Agent 0x99 "aha moment"

Correlation Matrix:
- FTP banner (VM) "GHOST" ↔ Hex client list "Ransomware Inc" ↔ distcc log "ProFTPD sale"
- ROT13 whiteboard "THE ARCHITECT" ↔ Double-encoded USB "Architect directives"
- Base64 email "$12,500 ProFTPD" ↔ distcc log "ProFTPD sale $12,500" (exact match!)

Educational Integration:
- Agent 0x99 tutorials (RFID, nmap, netcat, encoding)
- Drop-site terminal annotations (port explanations)
- CyberChef workstation hints (after failed attempts)

Key Mission Features:
🆕 RFID Keycard Cloning (2 GU proximity, 10s clone, progress bar, tutorial)
🎯 M2 Revelation (ProFTPD sold to Ghost for $12,500, hospital ransomware connection)
🎯 Architect Introduction (First direct communication, Q4 priorities, cell coordination)
⚖️ Moral Choices (Victoria: arrest vs double agent | James: protect vs ignore)
📚 Educational (NSS: nmap/netcat, SS: distcc CVE, ACS: multi-encoding, SOC: correlation)

Victory Conditions:
- 100%: All 4 VM flags + 4 encoded messages + 3 LORE + choices + stealth
- 80%: 3 VM flags + 3 messages + 2 LORE + choices
- 60%: 2 VM flags + 2 messages + choices

Campaign Impact:
- Confirms ENTROPY coordination (not independent cells)
- Reveals The Architect as real coordinator (not myth)
- Proves Zero Day is central exploit supplier
- Sets up M4 (Critical Mass SCADA), M6 (Crypto Anarchists), M7-9 (Architect hunt)

Stage 0 Status:  COMPLETE (4/4 documents, ~2,900 lines)
Next: Stage 1 - Narrative Structure Development (scene-by-scene breakdown)
2026-01-14 09:46:32 +00:00
Z. Cliffe Schreuders
e93aa1e876 Add Mission 3 Stage 0 progress summary
Created comprehensive Stage 0 development summary document:

Progress: 50% Complete (2/4 documents)

 Completed Documents:
1. Scenario Initialization (820 lines)
   - Mission overview, CyBOK areas, 3-act structure
   - NPCs, LORE fragments, victory conditions
   - Educational objectives, campaign connections
   - Critical decisions made (RFID, scanning, choices)

2. Technical Challenges (812 lines)
   - 5 in-game challenges (RFID cloning NEW, lockpicking, guards, social eng, encoding)
   - 4 VM challenges (nmap scan, FTP banner, HTTP/Base64, distcc CVE-2004-2687)
   - Integration matrix, difficulty scaling, assessment rubric
   - Implementation priority (3 phases)

🔄 In Progress:
3. Narrative Themes - NEXT
4. Hybrid Architecture Plan - PENDING

Key Achievements:
 RFID cloning mechanic fully specified (proximity, tutorial, alternatives)
 Campaign arc advanced (Architect first communication, M2 connection)
 Educational value defined (9 challenges → 6 CyBOK areas)
 Moral complexity created (Victoria double agent, James protection)
 LORE framework set (4 fragments connecting Season 1 cells)
 NPC voices established (Victoria ideologue, James innocent, Cipher mystery)

Mission Features Defined:
- New Mechanic: RFID cloning (2 GU, 10s, visual feedback, tutorial)
- M2 Revelation: ProFTPD sold to Ghost for $12,500 (hospital ransomware)
- Architect Reveal: First direct communication (Q4 priorities, coordination)
- Moral Choices: Victoria (arrest vs double agent), James (protect vs ignore)
- 3 Acts: Daytime recon (20-30%) → Nighttime infiltration (50-55%) → Choice (20-25%)

Educational Objectives:
- Network reconnaissance (nmap, netcat, service enumeration)
- Service exploitation (distcc CVE-2004-2687, Metasploit)
- Multi-encoding (ROT13, Hex, Base64, nested ROT13+Base64)
- Intelligence correlation (physical + digital evidence)
- RFID security vulnerabilities, social engineering

Victory Conditions:
- 100%: All flags, all LORE, both choices, stealth
- 80%: 3/4 flags, 2/3 LORE, choices made
- 60%: 2/4 flags, server accessed, choice made

Next Steps:
- Complete narrative_themes.md (setting details, NPC voices, tone)
- Complete hybrid_architecture_plan.md (VM + ERB integration spec)
- Proceed to Stage 1 (Narrative Structure Development)

Status: Stage 0 - 50% COMPLETE
Target: Ready for Stage 1 by end of session
2026-01-14 09:46:32 +00:00
Z. Cliffe Schreuders
7c9d471eaf Complete Mission 3 Stage 0 technical challenges specification
Added comprehensive technical challenges breakdown (600+ lines):

Break Escape In-Game Challenges:

1. RFID Keycard Cloning (NEW MECHANIC)
   - Proximity-based (2 GU range, 10-second window)
   - Visual feedback: Progress bar, particle effects, audio cues
   - Success: Cloned keycard added to inventory
   - Alternative: Social engineering (victoria_trust >= 40)
   - Tutorial: Agent 0x99 pre-mission briefing
   - Educational: RFID vulnerabilities, proximity attacks
   - Implementation: Proximity detection, progress tracking, inventory integration

2. Lockpicking (Reinforced from M1-M2)
   - 4 locks: IT cabinet (easy), executive office (medium), security room (medium), safe (PIN)
   - Safe combo: 2010 (WhiteHat founding year)
   - Clues: Reception plaque, computer file
   - Skill reinforcement, no tutorial needed
   - Contains: LORE Fragment 2 (Exploit Catalog)

3. Guard Patrol Stealth (Reinforced from M2)
   - Night security guard, 4-waypoint patrol (60s loop)
   - LOS: 150px range, 120° cone
   - Detection states: Unaware → Alert → Suspicious → Hostile
   - Strategies: Timing-based stealth, social engineering, distraction
   - Educational: Operational security, pattern recognition

4. Social Engineering (Advanced)
   - Victoria Sterling: Influence system (50 start, 40+ for bypasses)
   - Trust unlocks: Office info (30+), server access (40+), double agent (80+)
   - James Park: Information extraction (office layout, schedules, security)
   - Night Guard: Cover story validation
   - Educational: Trust exploitation, corporate infiltration

5. Multi-Encoding Puzzle
   - Message 1: ROT13 whiteboard ("MEET WITH THE ARCHITECT...")
   - Message 2: Hex client list (Ransomware Inc, Critical Mass, Social Fabric)
   - Message 3: Base64 email (ProFTPD exploit pricing)
   - Message 4: Double-encoded USB (ROT13 + Base64 nested - Architect's directives)
   - Discovery: Conference room, Victoria's computer, email, desk drawer
   - Educational: Pattern recognition, multi-stage decoding, persistence
   - CAMPAIGN REVEAL: First direct Architect communication!

VM/SecGen Challenges (Information Gathering: Scanning):

1. Network Port Scanning
   - Tool: nmap
   - Target: 192.168.100.50
   - Output: Ports 21 (FTP), 22 (SSH), 80 (HTTP), 3632 (distcc)
   - Flag: flag{network_scan_complete}
   - Educational: Port scanning, service enumeration
   - Difficulty: Easy

2. Banner Grabbing (FTP)
   - Tool: netcat, ftp
   - Banner reveals: Client codename "GHOST" (M2 connection!)
   - Flag: flag{ftp_intel_gathered}
   - Educational: Intelligence from banners, netcat fundamentals
   - Difficulty: Easy

3. HTTP Service Analysis
   - HTML contains Base64 in comment
   - Encoded: ZmxhZ3twcmljaW5nX2ludGVsX2RlY29kZWR9
   - Decoded: flag{pricing_intel_decoded}
   - Educational: Web reconnaissance, Base64 (reinforced)
   - Connects: Victoria's pricing email
   - Difficulty: Medium

4. distcc Exploitation (CVE-2004-2687)
   - Vulnerability: distcc daemon RCE
   - Tools: Metasploit or manual exploitation
   - Shell access → operational logs
   - CRITICAL REVEAL: ProFTPD sold to Ghost for $12,500 (M2 hospital!)
   - Flag: flag{distcc_legacy_compromised}
   - Educational: Legacy exploitation, CVE research, RCE
   - Difficulty: Advanced

Challenge Integration Matrix:
- 9 challenges total (5 in-game, 4 VM)
- Difficulty: Easy → Advanced scaling
- Educational: NSS, SS, ACS, SOC, HF, AB knowledge areas
- Unlocks: Server access, intel, LORE, M2 connection, Architect reveal

Difficulty Scaling:
- Easy: 5s RFID, slower guard, tutorial VM
- Normal: 10s RFID, standard guard, all encoding types
- Hard: 15s RFID, fast guard, additional obfuscation

Educational Assessment Rubric:
 Network reconnaissance (port scanning, service enumeration)
 Service exploitation (distcc CVE-2004-2687, Metasploit)
 Encoding analysis (ROT13, Hex, Base64, nested decoding)
 Intelligence correlation (physical + digital evidence)
 Physical security (RFID, lockpicking, stealth, social engineering)

Implementation Priority:
- Phase 1: RFID, guard, VM challenges, drop-site integration
- Phase 2: Social engineering, encoding puzzle, LORE, safe
- Phase 3: Tutorials, scaling, alternative paths, feedback

Status: Stage 0 technical challenges COMPLETE 
Next: narrative_themes.md, hybrid_architecture_plan.md
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
88e00f4a8d Begin Mission 3 'Ghost in the Machine' - Stage 0 Initialization
Created comprehensive Stage 0 scenario initialization for Mission 3:

Mission Overview:
- Title: "Ghost in the Machine"
- Tier: Intermediate (Mission 3 of Season 1)
- ENTROPY Cell: Zero Day Syndicate
- SecGen Scenario: "Information Gathering: Scanning"
- Playtime: 60-75 minutes
- New Mechanic: RFID keycard cloning

Key Features:
 Undercover operation at WhiteHat Security Services (Zero Day front company)
 RFID cloning mechanics (proximity-based, 10-second window)
 Network reconnaissance integration (nmap, netcat, distcc exploitation)
 Multi-encoding puzzle (ROT13, Hex, Base64, double-encoded)
 Major revelation: Zero Day sold M2 hospital ransomware exploit
 First direct mention of "The Architect" (campaign arc progression)
 Double agent vs. arrest moral choice

Technical Challenges:
- VM: Network scanning (nmap), banner grabbing (netcat), distcc CVE-2004-2687
- In-Game: RFID cloning, lockpicking, guard patrol, social engineering, multi-encoding
- Hybrid: Dead drop system integrates VM flags with ERB narrative content

CyBOK Areas:
- NSS: Port scanning, service enumeration, banner grabbing
- SS: distcc exploitation, legacy service targeting
- ACS: ROT13, Hex, Base64 encoding, multi-stage decoding
- SOC: Intelligence correlation, systematic investigation
- HF: Undercover operations, social engineering
- AB: Exploit marketplace economics, threat actor coordination

3-Act Structure:
- Act 1 (20-30%): Undercover infiltration, daytime recon, clone RFID card
- Act 2 (50-55%): Nighttime infiltration, network scan, evidence collection
- Act 3 (20-25%): M2 connection reveal, Architect discovery, moral choice

Key NPCs:
- Victoria Sterling (Zero Day sales lead) - Professional, ideological, arrest/double agent target
- James Park (Innocent pen tester) - Moral complexity, optional protection choice
- "Cipher" (Cell leader) - Referenced but not seen, future villain setup
- Agent 0x99 (Handler) - Briefing, tutorials, debrief

LORE Fragments:
1. Zero Day Client List (Hex-encoded) - Shows all ENTROPY cells coordinating
2. Exploit Catalog (Safe, PIN 2010) - ProFTPD sale to Ghost for $12,500
3. The Architect's Requirements (Double-encoded) - First direct communication
4. Victoria's Manifesto (Whiteboard) - Free market ideology

Campaign Connections:
- M1: Social Fabric appears in client list
- M2: ProFTPD exploit sold to Ghost revealed (MAJOR "aha moment")
- M4: Critical Mass client, SCADA exploits referenced
- M6: Crypto Anarchists mentioned in Architect's requirements
- M7-9: The Architect introduction, coordination revealed

Educational Objectives:
- Network reconnaissance (port scanning, service enumeration)
- Banner grabbing for intelligence gathering
- Multi-stage encoding/decoding
- Intelligence correlation (physical + digital evidence)
- RFID security vulnerabilities

Victory Conditions:
- Full (100%): 4 VM flags, 4 encoded messages, 3 LORE, moral choices, stealth
- Standard (80%): 3 VM flags, 3 encoded messages, 2 LORE, moral choices
- Minimal (60%): 2 VM flags, 2 encoded messages, moral choice

Moral Choices:
1. Victoria Sterling: Arrest (disrupt cell) vs. Double Agent (long-term intel)
2. James Park: Protect innocent vs. Focus on mission
3. Consequences tracked in global variables, reflected in debrief

Critical Decisions Made:
 RFID cloning: Proximity (10s) + social engineering alternative
 Network scanning: Automated flags + educational tutorial
 Double agent: Long-term intelligence vs. immediate disruption
 Architect reveal: Name only (identity reserved for M7-9)
 Setting: WhiteHat Security corporate office
 Structure: Daytime recon → nighttime infiltration

Next Steps:
Stage 1 - Narrative Structure Development (scene-by-scene breakdown)

Status: Stage 0 COMPLETE 
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
4101fcb838 Add clear constant objectives reference for Mission 2
Created OBJECTIVES.md as quick-reference guide for Mission 2's constant objectives:

📋 Clear Structure:
- 5 Main Objectives clearly listed with descriptions
- 15 Total Tasks with unlock conditions
- Visual progression flow diagram
- Quick reference table for developers/players

Objectives Summary:
1. Infiltrate Hospital (3 tasks) - Active at start
2. Access IT Systems (3 tasks) - Unlocks after Objective 1
3. Exploit ENTROPY's Backdoor (4 tasks) - Unlocks after server room access
4. Recover Offline Backup Keys (3 tasks) - Unlocks after database flag
5. Make Critical Decisions (2 tasks) - Unlocks after Objectives 3 & 4

🔒 Progressive Unlock System:
Start → Obj 1 → Obj 2 → Obj 3 + Obj 4 → Obj 5 → Complete

 Constant Objectives Guaranteed:
- Defined once in scenario.json.erb (lines 41-183)
- Same 5 objectives, same 15 tasks throughout mission
- No dynamic or changing objectives
- Clear unlock conditions for each objective

Quick Reference Includes:
- Task IDs for development
- Minimum completion requirements (60% vs 100%)
- Key answers (PIN: 1987, passwords, flags)
- Moral choice options

Purpose:
- Player reference during gameplay
- Developer reference for implementation
- QA reference for testing
- Documentation of constant objective set

This ensures Mission 2 has a clear, constant, and well-documented set of objectives.
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
26a5d6fafa Add Mission 2 objectives verification document
Created OBJECTIVES_VERIFICATION.md to confirm objectives are clear and constant:

 Verification Status: PASS
- 5 well-defined objectives with descriptive titles
- 15 specific tasks with explicit completion criteria
- Consistent across all files (scenario.json.erb, SOLUTION_GUIDE.md, Ink scripts)
- Progressive unlock structure ensures linear story flow
- Multiple solution paths documented for flexibility

Objectives Summary:
1. Infiltrate Hospital (3 tasks) - Active at start
2. Access IT Systems (3 tasks) - Unlocks after Objective 1
3. Exploit ENTROPY's Backdoor (4 tasks) - Unlocks after server room access
4. Recover Offline Backup Keys (3 tasks) - Unlocks after database flag
5. Make Critical Decisions (2 tasks) - Unlocks after Objectives 3 & 4

Cross-File Verification:
 scenario.json.erb: 5 objectives, 15 tasks
 SOLUTION_GUIDE.md: 5 objectives, 15 tasks (documented)
 Ink scripts: Reference tasks via #complete_task tags
 Global variables: Track objective states

Progression Flow:
Start → Obj 1 → Obj 2 → Obj 3 + Obj 4 → Obj 5 → Complete

Completion Requirements:
- Minimum (60%): 2+ VM flags, offline keys, both moral choices
- Perfect (100%): All 15 tasks, 4 VM flags, 3 LORE fragments, Marcus protected

Player-Facing Clarity:
- Clear task titles guide player actions
- Progressive unlocking prevents confusion
- Multiple solution paths (social, stealth, combat)
- No ambiguity in completion criteria

Optional Content (not required for completion):
- Marcus Protection Choice (moral decision)
- LORE Fragment Collection (3 fragments for narrative depth)

Result: Mission 2 objectives are clear, constant, and suitable for:
- Player guidance during gameplay
- Completion tracking for mission scoring
- Educational assessment of learning outcomes
- Narrative pacing and tension building
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
b3156bf125 Complete Mission 2 comprehensive solution guide (2085 lines)
Added remaining sections to SOLUTION_GUIDE.md:
- Complete Item List (starting inventory, key items, optional items)
- LORE Items (all 3 fragments with locations)
- Environmental Clues (founding plaque, sticky notes, emails)
- VM-Related Items (all 4 flags with rewards)
- Speedrun Optimization Guide (minimal 60% + perfect 100% routes)
- Achievement Guide (story, ethical, combat, stealth, speedrun)
- Common Mistakes & Solutions (7 troubleshooting scenarios)
- Educational Learning Outcomes (CyBOK mapping for 8 knowledge areas)
- Conclusion (key takeaways, Season 1 connection, final statistics)

Guide Contents Summary:
 Mission Overview (47 patients, 12-hour crisis, 2.5 BTC ransom)
 Complete Objectives List (5 constant aims, ~17 tasks)
 ASCII Room Layout Diagram (8 rooms with guard patrol route)
 3 Step-by-Step Walkthroughs (Optimal/Combat/Social paths)
 NPC Interaction Guide (5 NPCs with influence systems)
 Puzzle Solutions (PIN 1987, Base64, ROT13)
 VM Challenge Solutions (all 4 flags with commands)
 LORE Fragment Locations (3 fragments with narrative significance)
 Moral Choices & Consequences (3 choices with decision matrices)
 Complete Item List (40+ items categorized)
 Speedrun Routes (35-min minimal, 65-min perfect)
 Achievement Guide (20+ achievements)
 Common Mistakes (7 issues with solutions)
 Educational Outcomes (8 CyBOK knowledge areas)

Perfect Run Statistics:
- Rooms: 8/8
- NPCs: 5/5 (Dr. Kim, Marcus, Guard, Agent 0x99, Ghost)
- VM Flags: 4/4
- LORE: 3/3
- Moral Choices: 3/3
- Time: 65-75 minutes
- Score: 100%

Educational Focus:
- MAT: Ransomware, ProFTPD CVE-2010-4652
- IR: Recovery procedures, backup importance
- NSS: SSH weaknesses, FTP vulnerabilities
- ACS: Encoding vs encryption, Base64, ROT13
- SS: Linux navigation, file permissions
- HF: Social engineering, scapegoating dynamics
- AB: Threat actor motivations, ransomware economics
- SOC: Physical security, investigation techniques

Narrative Impact:
- LORE 3 (ZDS Invoice) sets up Mission 3: "Ghost in the Machine"
- First evidence of ENTROPY cell coordination under "The Architect"
- Connects Ransomware Inc → Zero Day Syndicate → Crypto Anarchists
- Transforms Season 1 from isolated missions to connected campaign

Document is now complete and ready for playtesting reference.
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
9cb607ddf6 Add interactive guard with combat options to Mission 2
Implemented patrolling security guard in hallway_north with multiple
player interaction options including combat/fighting mechanics.

New Features:
1. Interactive Security Guard NPC
   - Patrols hallway_north corridor (4-waypoint route)
   - Line-of-sight detection (150px range, 120° angle)
   - Lockpicking detection (event-triggered confrontation)
   - Visual LOS cone for player awareness

2. Combat/Fighting Options
   Player can choose to physically confront the guard:
   - Knockout punch (quick but risky)
   - Wrestling/grappling (moderate difficulty)
   - Improvised weapon (fire extinguisher)
   - Back down from fight (de-escalation)

   Success depends on influence stat:
   - High influence: Guard knocked out, ~2 min window
   - Low influence: Failed attack, mission compromised

3. Alternative Approaches
   - Social engineering (claim authorization, emergency)
   - Persuasion (explain situation, build rapport)
   - De-escalation (apologize, back down)
   - Avoidance (wait for patrol to pass)

4. Consequences System
   - #hostile tag: Guard calls backup
   - #take_damage: Failed combat consequences
   - #mission_failed: Attacking security = mission end
   - Guard knockout: Time-limited stealth window

Files Added:
- m02_npc_security_guard.ink (500+ lines)
- m02_npc_security_guard.json (compiled)

Files Modified:
- scenario.json.erb:
  - Added interactive guard NPC to hallway_north
  - Patrol behavior with 4 waypoints
  - LOS and lockpicking event detection
  - Global variables: guard_knocked_out, attacked_guard

Validation: ✓ PASSED
- Schema compliant
- JSON valid
- Ink script compiles successfully

Design Notes:
- Based on npc-patrol-lockpick test scenario
- Integrated with M2's hospital crisis context
- Multiple paths support different playstyles
- Combat is high-risk/high-reward option
- Aligns with SAFETYNET Field Rule 7: improvise as needed
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
bf90ad2769 Fix Mission 2 scenario validation errors - JSON now valid
Fixed 2 critical issues preventing validation:

1. JSON newline escaping (line 429):
   - Changed: "text": "<%= marcus_warning_email %>"
   - To: "text": <%= marcus_warning_email.to_json %>
   - Root cause: Ruby \n sequences became literal newlines in JSON
   - Fix: .to_json properly escapes strings for JSON format

2. Invalid object type (line 561):
   - Changed: "type": "key_data"
   - To: "type": "notes"
   - Issue: "key_data" not in schema's allowed types
   - Fix: Using "notes" for USB drive with backup encryption keys

Validation Results:
✓ ERB renders successfully
✓ JSON parses without errors
✓ Schema validation PASSED
⚠ 8 non-critical warnings/suggestions (optional enhancements)

Schema validation summary:
- All required fields present
- All object types valid
- Room dimensions compliant
- Connection structure valid
- NPC and item placement correct

Scenario is now ready for testing and implementation!
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
fcf2b60c14 Add Mission 2 'Ransomed Trust' scenario implementation (WIP)
Created comprehensive scenario files for Mission 2:
- mission.json metadata with CyBOK mappings
- scenario.json.erb with 8 rooms, 4 NPCs, objectives, items
- 8 compiled Ink scripts (789 total lines including JSON)

Ink Scripts (All Successfully Compiled ):
- m02_opening_briefing.json - Act 1 emergency briefing
- m02_npc_sarah_kim.json - Hospital CTO dialogue
- m02_npc_marcus_webb.json - IT Admin dialogue
- m02_terminal_dropsite.json - VM flag submission
- m02_terminal_ransom_interface.json - Ransom decision
- m02_phone_agent0x99.json - Handler support
- m02_phone_ghost.json - Antagonist communication
- m02_closing_debrief.json - Outcome acknowledgment

Scenario Features:
- 8 rooms: Reception, IT Dept, Server Room, Emergency Storage,
  Dr. Kim's Office, Conference Room, 2 Hallways
- 4 NPCs: Dr. Kim, Marcus Webb, Receptionist, Guard (patrol)
- 5 Objectives with progressive unlocking
- VM integration: SecGen "Rooting for a win" scenario
- 3 LORE fragments (CryptoSecure, Ghost Manifesto, ZDS Invoice)
- PIN puzzle (1987), lockpicking, social engineering
- Moral choices: Ransom payment, hospital exposure, Marcus protection

Known Issues (To Fix):
- JSON newline escaping in multi-line text fields (line 393)
- Text fields need \n instead of literal newlines
- Validation script shows "Invalid control character" error

Next Steps:
- Fix JSON escaping in scenario.json.erb
- Run validation script successfully
- Add recommended tutorials (PIN puzzle, Marcus reminder)
- Test scenario compilation and gameplay
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
3b367f75a2 Add Mission 3 'Ghost in the Machine' preparation document
Mission 3: Intelligence Gathering & Network Reconnaissance
- ENTROPY Cell: Zero Day Syndicate
- SecGen Scenario: Information Gathering: Scanning
- New Mechanics: RFID keycard cloning, network reconnaissance
- Difficulty: Intermediate (Mission 3 of Season 1)
- Playtime: 60-75 minutes

Key Features:
- Undercover operation at WhiteHat Security Services (Zero Day front)
- RFID cloning mechanics introduction
- Network scanning integration (nmap, netcat, distcc exploitation)
- Multi-encoding puzzle (ROT13, Hex, Base64)
- Major revelation: Zero Day sold M2 hospital ransomware exploit
- First direct mention of "The Architect" (campaign arc progression)
- Double agent vs. arrest moral choice

Campaign Connections:
- Reveals cross-cell coordination (M2 hospital attack traced to Zero Day)
- Sets up Zero Day as recurring antagonist
- Introduces The Architect as mysterious coordinator
- Client list connects M1 (Social Fabric), M2 (Ransomware Inc), M4 (Critical Mass)

CyBOK Areas:
- Network Security (port scanning, service enumeration, banner grabbing)
- Systems Security (distcc exploitation CVE-2004-2687)
- Applied Cryptography (multiple encoding types, pattern recognition)
- Security Operations (intelligence correlation, systematic investigation)

README includes:
- Executive summary and mission overview
- 9-stage development workflow (same as M1, M2)
- Technical challenges breakdown (RFID, network recon, encoding)
- Narrative arc (3 acts: undercover → infiltration → revelation)
- Key NPCs (Victoria Sterling, James Park, Cipher references)
- LORE opportunities (client lists, exploit catalog, Architect requirements)
- Good practices from M1 & M2
- Critical decisions needed before Stage 0
- Risk assessment
- Development timeline estimate (70-97 hours design)

Status: Ready for Stage 0 initialization
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
c0765a4861 Complete Mission 2 'Ransomed Trust' Stages 8-9: Validation and Assembly
Stage 8: Scenario Review and Validation
- Comprehensive validation report (08_validation_report.md)
- Validated completeness across all 8 stages (0-7)
- Technical validation: room dimensions, Ink syntax, item placement
- Educational quality: CyBOK alignment, technical accuracy
- Narrative quality: character consistency, choice impact
- Player experience: no soft locks, clear objectives
- Overall assessment: PASS WITH MINOR RECOMMENDATIONS
- No critical fixes required, scenario ready for assembly

Stage 9: Scenario Assembly
- Logical flow validation (09_logical_flow_validation.md)
  - All objectives completable with multiple valid paths
  - Progressive unlocking validated (no soft locks)
  - Resource access validated (items, keycards, NPCs)
  - Spatial logic validated (all coordinates within bounds)
  - Hybrid integration validated (VM flags, terminal interfaces)
  - Complete 12-step walkthrough (50-70 minutes)
  - VALIDATION PASSED

- Assembly guidance (09_assembly_guidance.md)
  - Phase-by-phase implementation roadmap (6 phases)
  - Complete JSON templates and ERB structure
  - All 9 room definitions with connections
  - NPC configurations with Ink script references
  - Complete items list (12 items)
  - LORE fragments JSON (3 fragments)
  - VM integration configuration
  - Validation checklists
  - Estimated implementation time: 12-18 hours

Mission 2 planning (Stages 0-9) now complete and ready for developer implementation.
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
30f0e686d9 Add Mission 2 Stage 7: Complete Ink Script Suite
Created 8 comprehensive Ink scripts for Mission 2 "Ransomed Trust":

1. m02_opening_briefing.ink
   - Act 1 emergency briefing with Agent 0x99
   - Player choice tracking (cautious/aggressive/adaptable approach)
   - Mission objectives and stakes establishment (47 patients, 12-hour window)
   - 3-line dialogue rule adherence throughout

2. m02_npc_sarah_kim.ink
   - Dr. Kim (Hospital CTO) NPC with hub dialogue pattern
   - Guilt revelation about budget cuts ($85K security vs $3.2M MRI)
   - Trust/influence system (0-100 scale)
   - Ransom decision input and scapegoating protection options

3. m02_npc_marcus_webb.ink
   - Marcus Webb (IT Admin) social engineering target
   - Trust-based access (keycard vs lockpicking paths)
   - Password hints and server room access progression
   - Vindication storyline (protect from scapegoating)

4. m02_terminal_dropsite.ink
   - VM flag submission interface (4 flags)
   - Hybrid architecture integration (VM → in-game unlocks)
   - Progressive intel unlocking system
   - Ghost manifesto horror reveal integration

5. m02_terminal_ransom_interface.ink
   - Critical moral choice interface (pay ransom vs manual recovery)
   - Ghost's persuasion vs Agent 0x99's analysis
   - Consequence visualization (1-2 vs 4-6 patient deaths)
   - Secondary decision: hospital exposure
   - Global variable tracking for debrief callbacks

6. m02_phone_agent0x99.ink
   - Handler support and tutorial guidance
   - Contextual hints (guard patrols, lockpicking, passwords, PIN safe)
   - Encoding tutorial (Base64, ROT13)
   - Ransom decision counseling (neutral presentation)
   - Event-triggered knots for game events

7. m02_phone_ghost.ink
   - Antagonist communication (cold, calculated ideology)
   - ENTROPY philosophy explanation
   - Patient death calculation justification
   - Unrepentant true believer characterization
   - Post-decision responses (paid vs refused ransom)

8. m02_closing_debrief.ink
   - Comprehensive outcome acknowledgment
   - Patient death statistics (2 vs 6 fatalities)
   - NPC fate tracking (Dr. Kim, Marcus protected/unprotected paths)
   - Ransom choice validation (utilitarian vs consequentialist ethics)
   - Hospital exposure consequences
   - Mission 3 setup (Zero Day Syndicate)
   - The Architect tease

Key Features:
- All scripts follow 3-line dialogue rule for pacing
- Hub patterns for replayable conversations
- Trust/influence systems for NPCs
- Proper #exit_conversation tags
- Variable tracking for choice callbacks
- External variable integration
- Event-triggered knot support
- Moral complexity without "right" answers

Stage 7 Complete: All narrative content ready for implementation.
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
bacb2b7308 Add Mission 2 Stages 5-6: Room Layout and LORE Fragments
Stage 5 - Room Layout and Spatial Design:
- Hospital floor plan with 7 rooms (hub-and-spoke layout)
- 3 locked doors with progressive difficulty (easy → medium → medium-hard)
- 60-second guard patrol with predictable waypoints
- Detailed container placement (11 total containers)
- PIN puzzle design with multiple clues and fallback device
- Server Room as central hub for VM/encoding challenges
- Multiple solution paths for player agency

Stage 6 - LORE Fragments:
- Fragment 1: Ghost's Manifesto (VM discovery, patient death calculations)
- Fragment 2: CryptoSecure Services (filing cabinet, front company operations)
- Fragment 3: ZDS Invoice (safe puzzle, exploit procurement and cross-cell coordination)
- Campaign connections to M3 (Zero Day Syndicate) and M6 (Crypto Anarchists)
- The Architect coordination role revealed

These planning documents complete the foundational design for Mission 2
"Ransomed Trust" room layout, spatial design, and narrative LORE integration.
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
92db4b3cfe Complete Mission 2 'Ransomed Trust' Stages 0-4 development
Stage 0: Scenario Initialization
- Complete mission overview with hospital ransomware crisis
- Ransomware Incorporated cell integration
- Hybrid architecture plan (VM ProFTPD exploitation + ERB narrative)
- Concrete stakes: 47 patients, 12-hour deadline, $87K ransom
- Ghost as true believer antagonist (calculated patient deaths)
- 3 LORE fragments planned (manifesto, CryptoSecure, ZDS invoice)

Stage 1: Narrative Structure
- Complete 3-act structure (18 scenes)
- Act 1: Infiltration (Dr. Kim, Marcus, guard tutorial)
- Act 2: Exploitation (VM challenges, safe puzzle, LORE discoveries)
- Act 3: Impossible choices (ransom dilemma, hospital exposure)
- Emotional beat timeline with intensity mapping
- Tutorial integration for new mechanics (guards, PIN safe, ROT13)

Stage 2: Character Development
- Dr. Sarah Kim: Desperate CTO with guilt over budget cuts
- Marcus Webb: Defensive IT admin, scapegoat victim
- Ghost: Unrepentant ENTROPY operative, true believer
- Agent 0x99: Supportive handler, growing ENTROPY concern
- Voice examples with 3-line dialogue rule
- Character arcs defined (Marcus varies by player choice)

Stage 3: Moral Choices and Consequences
- Choice 1: Marcus trust building (sympathize/professional/blame)
- Choice 2: Marcus protection (warn/plant evidence/ignore)
- Choice 3: Ransom payment (pay/independent recovery) - NO RIGHT ANSWER
- Choice 4: Hospital exposure (public/quiet) - transparency vs pragmatism
- Optional: Ghost confrontation (argue/acknowledge/silent)
- All choices have meaningful campaign consequences (M6 financial trail)
- Utilitarian vs Consequentialist ethical frameworks
- Debrief variations reflect all choices (4 ransom+exposure combos)

Stage 4: Player Objectives and Tasks
- 5 required aims, 3 optional aims
- 23 required tasks, 4 optional tasks (27 total)
- Hybrid objectives: VM flag submissions + in-game tasks
- Success tiers: 60% minimal, 80% standard, 100% perfect
- Progressive unlocking validated (no soft locks)
- Ink tag integration (#complete_task, #unlock_aim, #give_item)
- Optional achievements: Ghost Hunter, Code Breaker, Ethical Hacker

Technical Challenges (Detailed Breakdown):
- New mechanics: Patrolling guards (60s predictable), PIN safe puzzle
- Reinforced mechanics: Lockpicking (4 doors), social engineering, Base64
- New encoding: ROT13 (Caesar cipher introduction)
- VM: ProFTPD CVE-2010-4652 exploitation, SSH brute force, Linux nav
- CyBOK coverage: Malware, Incident Response, Cryptography, Human Factors

Key Design Decisions:
- Ransom dilemma has no 'right' answer (both ethically valid)
- Ghost remains unrepentant (true believer, no redemption arc)
- Marcus's fate controllable by player (justice possible)
- Guard patrols beginner-friendly (forgiving, predictable, alternate paths)
- PIN puzzle accessible (multiple clues, hint system, fallback device)
- Campaign integration: M3 ZDS connection, M6 financial trail

Ready for Stage 5: Room Layout Design
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
b01ed30968 Add Mission 2 'Ransomed Trust' development preparation document
- Created comprehensive preparation doc for M02 development
- Extracted mission details from Season 1 arc plan
- Documented 9-stage development workflow
- Applied Mission 1 good practices and lessons learned
- Identified new mechanics: patrolling guards, PIN cracking
- Outlined moral choices: ransom payment, hospital exposure
- Documented campaign connections to M1 and M6
- Included risk assessment and success criteria
- Ready for Stage 0: Scenario Initialization
2026-01-14 09:46:31 +00:00
Z. Cliffe Schreuders
6c3285d745 Update CyBOK metadata 2026-01-13 13:28:14 +00:00
Z. Cliffe Schreuders
d2b78b9d54 Clean up trailing whitespace in migration and CSS files
- Removed unnecessary trailing whitespace from `remove_unique_game_constraint.rb`, `flag-station-minigame.css`, `vm-launcher-minigame.css`, and `hacktivity-cable.js` to enhance code quality and maintain consistency across the codebase.
2026-01-13 09:39:14 +00:00
Z. Cliffe Schreuders
2b0c68e961 Revise SOLUTION_GUIDE.md for improved room layout and navigation clarity
- Updated room connections and layout to enhance player exploration and interaction.
- Added a Room Connections Summary table for quick reference on room access and directions.
- Revised step-by-step solution to clarify actions and results, ensuring a more intuitive gameplay experience.
- Enhanced puzzle chain diagram to reflect updated room connections and paths.
- Removed outdated content to streamline the guide and focus on essential gameplay elements.
2025-12-08 00:24:45 +00:00
Z. Cliffe Schreuders
adbd7a64b0 Revise Mission 1: First Contact to enhance narrative depth and urgency
- Updated the story premise to introduce "Operation Shatter," detailing the coordinated mass panic attack targeting vulnerable populations.
- Expanded the room layout to include additional rooms and NPC interactions, enhancing player exploration and engagement.
- Added critical LORE fragments revealing casualty projections and targeting demographics, emphasizing the stakes of the mission.
- Revised dialogue and choices to reflect player actions and moral implications, ensuring a more impactful closing debrief.
- Improved scenario structure and flow, aligning with best practices for narrative clarity and player agency.
2025-12-08 00:20:50 +00:00
Z. Cliffe Schreuders
aad985ee98 Add new functionality to open workstations in new tabs
- Introduced buttons in the Crypto and Lab Workstation title bars to allow users to open the respective workstations in new tabs.
- Implemented JavaScript functions `openCryptoWorkstationInNewTab` and `openLabWorkstationInNewTab` to handle the new tab functionality.
- Updated CSS styles for the new buttons to ensure proper positioning and visual appeal.
- Made necessary imports and exports in helper files to integrate the new functionality across the application.
2025-12-05 15:37:31 +00:00
Z. Cliffe Schreuders
9ca6474141 Update instructor scenario JSON for improved dialogue and structure
- Enhanced the instructor's dialogue in `instructor.json` to provide clearer guidance on lab activities and exploitation concepts.
- Added detailed explanations of lab resources, including the Lab Sheet Workstation and VM lab room, to facilitate better player understanding.
- Improved the flow of conversation by restructuring prompts and responses, ensuring a more engaging learning experience for players.
- Included reminders about the ethical use of knowledge gained during the lab, reinforcing responsible security practices.
2025-12-04 23:22:51 +00:00
Z. Cliffe Schreuders
f0ffb3fdfd Refactor code to remove trailing whitespace and improve readability
- Cleaned up trailing whitespace in `games_controller.rb`, `game.rb`, and `validate_scenario.rb` to enhance code quality and maintain consistency across the codebase.
- Updated migration file `remove_unique_game_constraint.rb` to remove unnecessary whitespace, ensuring a cleaner migration history.
- Improved overall readability of the code by eliminating redundant blank lines in various files.
2025-12-04 23:17:34 +00:00
Z. Cliffe Schreuders
c7d9f5e3cf Update migration and CSS files to remove trailing whitespace
- Cleaned up trailing whitespace in migration file `remove_unique_game_constraint.rb` to maintain code quality.
- Removed unnecessary whitespace from CSS files for `flag-station-minigame.css` and `vm-launcher-minigame.css`, ensuring cleaner stylesheets.
- Tidied up JavaScript file `hacktivity-cable.js` by eliminating trailing whitespace, improving readability and consistency across the codebase.
2025-12-04 23:15:38 +00:00
Z. Cliffe Schreuders
d327380fac Enhance scenario validation and improve timed conversation structure
- Updated `validate_scenario.rb` to enforce correct usage of `targetKnot` in timed conversations, ensuring compliance with new requirements.
- Added checks for missing properties in timed conversations, including `delay` and `targetKnot`, to improve scenario integrity.
- Enhanced logging for validation issues, providing clearer feedback on scenario configuration errors.
- Updated relevant scenarios to align with the new validation rules, ensuring consistency across gameplay elements.
2025-12-04 23:15:03 +00:00
Z. Cliffe Schreuders
996a4ab6ce Add lab conversion prompt documentation for Break Escape scenarios
- Introduced a comprehensive guide for converting existing lab Ink files into Break Escape scenarios, detailing each step of the process.
- Included instructions for determining lab configuration, creating new scenario directories, and editing Ink files to align with gameplay requirements.
- Provided guidelines for updating scenario JSON, managing objectives, and ensuring compliance with best practices for dialogue and influence tracking.
- Emphasized the importance of validating scenarios and maintaining consistency with SecGen XML metadata for CyBOK entries.
2025-12-04 23:13:50 +00:00
Z. Cliffe Schreuders
629aa229b3 Enhance inventory and container management for improved gameplay experience
- Added functionality to include current player inventory in game state for page reload recovery, allowing players to restore their inventory seamlessly.
- Implemented filtering of container contents to exclude items already in the player's inventory, enhancing user experience and gameplay clarity.
- Updated game mechanics to support both type-based and ID-based matching for inventory items, improving task validation and objectives tracking.
- Enhanced logging for better visibility into inventory processing and container content loading, aiding in debugging and game state management.
- Updated scenarios to reflect changes in item identification and task requirements, ensuring consistency across gameplay elements.
2025-12-04 15:42:01 +00:00
Z. Cliffe Schreuders
5a89ce945c Update INK best practices and instructor scenarios for influence tracking
- Added critical requirements for including `#influence_increased` and `#influence_decreased` tags after modifying influence variables to ensure visual feedback in the game.
- Enhanced documentation on best practices for dialogue formatting, emphasizing the importance of avoiding lists and keeping exit conversations brief.
- Updated multiple instructor scenarios to include the necessary influence tags, ensuring consistent feedback for player actions.
- Corrected room connection direction in scenario.json.erb for improved navigation.
2025-12-04 14:13:21 +00:00
Z. Cliffe Schreuders
333ea39c56 Implement submit_flags task functionality and enhance game mechanics
- Added support for submit_flags tasks in GamesController, allowing players to submit flags for validation and task completion.
- Updated game state management to track submitted flags and validate against required flags for task completion.
- Enhanced ObjectivesManager to handle flag submissions, including syncing progress with the server and managing task states.
- Introduced a new locksmith NPC for lockpicking tutorials, expanding gameplay elements and player engagement.
- Updated scenario schema to include submit_flags task type and associated properties, ensuring proper integration into the game mechanics.
- Improved logging and debugging information for flag submissions and task progress updates, enhancing visibility into game state changes.
2025-12-04 14:00:26 +00:00
Z. Cliffe Schreuders
e1d3b1ff2c Enhance FlagStationMinigame and scenario structure
- Added functionality to complete tasks via the objectives manager in FlagStationMinigame, improving gameplay interaction.
- Updated scenario.json.erb to replace flags_submitted with specific SSH and privilege flag submissions, enhancing clarity in task objectives.
- Introduced new task types in the scenario schema to support task completion mechanics, ensuring better integration of gameplay elements.
2025-12-04 08:40:25 +00:00
Z. Cliffe Schreuders
289c0ce1c7 Add lab workstation functionality and integrate into gameplay
- Introduced a lab workstation popup in the game interface for accessing lab sheets via an iframe.
- Implemented JavaScript functions to create, open, and close the lab workstation, enhancing user interaction.
- Updated CSS styles for the lab workstation popup to ensure a seamless visual experience.
- Enhanced interaction handling to allow players to open lab workstations from inventory items.
- Added new scenario files for the Linux Fundamentals and Security Lab, including detailed instructions and objectives for players.
- Updated scenario schema to include the new lab workstation type, ensuring proper integration into the game mechanics.
2025-12-04 02:10:35 +00:00
Z. Cliffe Schreuders
49fc995cb3 Enhance scenario schema and validation scripts
- Updated scenario-schema.json to include "tutorial" as a valid difficulty level.
- Changed position coordinates from integer to number for better precision.
- Added new item types ("id_badge", "rfid_cloner") in scenario schema with descriptions.
- Improved validate_scenario.rb to check for common issues, including room connection directions and NPC configurations.
- Added suggestions for gameplay improvements based on scenario features.
- Updated SCENARIO_JSON_FORMAT_GUIDE.md to clarify valid directions and bidirectional connections.
- Introduced guidelines for lock type variety and progression in room layout design.
- Established dialogue pacing rules in Ink scripting to enhance player engagement.
- Included validation steps in scenario assembly documentation to ensure structural integrity.
2025-12-02 10:37:57 +00:00
Z. Cliffe Schreuders
7ac541a286 Enhance NPC encounter tracking and logging in GamesController
- Added logging for the number of NPCs in a room when loading it, improving visibility into game state.
- Ensured NPC encounters are tracked when unlocking doors, even when using cached room data, to maintain accurate encounter statistics.
2025-12-01 17:42:28 +00:00
Z. Cliffe Schreuders
a4606f596c Enhance NPC encounter logging and fix item type references in scenario scripts 2025-12-01 17:31:12 +00:00
Z. Cliffe Schreuders
0cf9e0ba62 Add scenario schema and validation script for Break Escape scenarios
- Introduced `scenario-schema.json` to define the structure and requirements for scenario.json.erb files.
- Implemented `validate_scenario.rb` to render ERB templates to JSON and validate against the schema.
- Created a comprehensive `SCENARIO_JSON_FORMAT_GUIDE.md` to outline the correct format for scenario files, including required fields, room definitions, objectives, and common mistakes.
2025-12-01 15:45:24 +00:00
Z. Cliffe Schreuders
47eaffa4c3 Scenario development WiP 2025-12-01 08:48:43 +00:00
Z. Cliffe Schreuders
2b766c6000 Add SecGen Scenario Summaries for BreakEscape mission design
- Created a comprehensive document detailing various SecGen lab scenarios, including setup, user accounts, vulnerabilities, and CTF steps.
- Each scenario provides insights into player experiences and objectives, aiding mission designers in understanding gameplay dynamics.
- Scenarios cover a range of topics, including Linux and Windows security labs, malware exploitation, information gathering, and post-exploitation techniques.
2025-11-30 02:26:28 +00:00
Z. Cliffe Schreuders
ce53d60ff1 Reduce duration of failure and success messages in PasswordMinigame for improved user experience
- Decreased the display time for various failure and success messages from 3000ms to 1000ms or 1500ms, enhancing responsiveness during gameplay.
- Adjusted the cancellation message display time from 2000ms to 800ms for quicker feedback.
2025-11-30 00:23:56 +00:00
Z. Cliffe Schreuders
19db2f530d Refactor whitespace and comments for consistency in BreakEscape controllers and models
- Cleaned up unnecessary whitespace in `games_controller.rb`, `missions_controller.rb`, `game.rb`, `mission.rb`, `routes.rb`, `seeds.rb`, and migration files to enhance code readability.
- Standardized comment formatting across various files to maintain consistency and improve clarity.
2025-11-30 00:06:54 +00:00
Z. Cliffe Schreuders
5d9f83192d Implement keyboard input pause for text entry in FlagStationMinigame
- Added functionality to disable WASD key capture during text input, enhancing user experience.
- Implemented a fallback mechanism to dynamically import the pauseKeyboardInput method if not available on the window object, ensuring compatibility across different environments.
2025-11-30 00:04:42 +00:00
Z. Cliffe Schreuders
a8c4f6576f Enhance standalone mode with VM IP handling and UI updates
- Updated `GamesController` to parse and store VM IPs from JSON input, improving player state management.
- Modified `Game` model to include VM IPs in the context for better integration with gameplay.
- Enhanced `Mission` model's `vm_object` method to override IPs from the context when available.
- Revamped `new.html.erb` to provide a clearer interface for entering VM IP addresses and flag hints.
- Improved `vm-launcher-minigame.js` to display VM IPs and provide connection instructions in standalone mode.
2025-11-30 00:02:08 +00:00
Z. Cliffe Schreuders
bca619aeac Add Lock Scenario and System Architecture Documentation
- Introduced `LOCK_SCENARIO_GUIDE.md` to provide a comprehensive reference for implementing locks in scenarios, detailing room and object lock configurations, lock types, and quick examples.
- Added `LOCK_SYSTEM_ARCHITECTURE.md` to outline the data flow from scenario definition to server validation, including steps for scenario definition, server bootstrap filtering, client lock checks, and server validation processes.
- Included security notes and references for various lockable object types and items related to the locking system.
2025-11-29 23:46:39 +00:00
Z. Cliffe Schreuders
ef8e2f294a Refactor RFID handling and enhance game logic
- Updated `GamesController` and `Game` model to include RFID lock types in the filtering logic for 'requires' attributes, ensuring proper handling of biometric, bluetooth, and RFID types.
- Improved `RFIDMinigame` to standardize card ID retrieval, supporting both `card_id` and `key_id`.
- Enhanced `unlock-system.js` to prioritize physical keycard checks and streamline the unlocking process with detailed logging.
- Adjusted scenario JSON files to replace `keyId` with `card_id` for consistency and added new lock requirements for various rooms.
2025-11-29 23:43:30 +00:00
Z. Cliffe Schreuders
92330b04dc Enhance flag handling and XML integration for standalone mode
- Updated `GamesController` to support XML flag hints for standalone mode, improving backward compatibility with legacy flag input.
- Introduced `parse_flag_hints_xml` method in `Mission` model to extract flags from XML content.
- Enhanced `Game` model to incorporate `flags_by_vm` from player state for better flag management.
- Modified `new.html.erb` to update UI for flag hints input, replacing the previous comma-separated flags format.
- Improved `FlagStationMinigame` to display accepted VM flags and handle flag submissions more effectively.
- Adjusted scenario JSON to include flag stations with VM-specific flag handling.
2025-11-29 20:57:39 +00:00
Z. Cliffe Schreuders
bb2b0c206e Implement VM object retrieval and enhance game visuals
- Added `vm_object` method in `mission.rb` to fetch VM details from context or return a fallback.
- Introduced new images for VM launchers and flag stations in the assets directory.
- Updated `game.js` to preload new VM launcher and flag station images.
- Refactored `vm-launcher-minigame.js` to streamline VM handling and improve UI messaging.
- Adjusted scenario JSON to utilize the new `vm_object` method for VM data retrieval.
2025-11-29 01:35:20 +00:00
Z. Cliffe Schreuders
ca44cef068 Enhance game setup for VM and standalone modes
- Updated `GamesController` to use `current_player` for VM set retrieval.
- Improved `MissionsController` to handle redirection for both Hacktivity and standalone modes.
- Modified `new.html.erb` to include UI for standalone flag input alongside VM set selection.
- Added new CSS styles for standalone mode instructions and flags input form.
- Introduced new mission configuration for the SecGen VM Lab, integrating VM and flag capture elements.
2025-11-28 17:41:17 +00:00