20 Commits

Author SHA1 Message Date
Z. Cliffe Schreuders
91d4670b2a fix: update event mapping structure and validation for NPCs
- Changed 'eventMapping' to 'eventMappings' in NPC definitions for consistency.
- Updated target knot for closing debrief NPC to 'start' and adjusted story path.
- Enhanced validation script to check for correct eventMappings structure and properties.
- Added checks for missing properties in eventMappings and timedMessages.
- Provided best practice guidance for event-driven cutscenes and closing debrief implementation.
2026-02-18 00:47:37 +00:00
Z. Cliffe Schreuders
321a500f24 Enhance object unlocking logic, add locked field to containers, and validate scenario schema 2026-02-10 14:12:39 +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
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
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
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
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
d2ef5ff6aa refactor: Convert scenarios to ERB templates
- Move scenario JSON files to app/assets/scenarios/
- Rename to .erb extension (24 scenarios converted)
- Keep .ink files in scenarios/ink/ for JIT compilation
- Each scenario now in own directory
- Add conversion script for future use
2025-11-21 15:27:53 +00:00
Z. Cliffe Schreuders
b982158ce5 refactor: Move ink source files to scenarios/ink and add compilation script
Consolidated all ink source files into scenarios/ink directory for better
organization. All ink source files and documentation are now in the same
location as their compiled JSON output.

Changes:
1. Moved all .ink source files from story_design/ink/ to scenarios/ink/
   - chen_hub.ink and supporting files
   - netherton_hub.ink and supporting files
   - haxolottle_hub.ink and supporting files
   - All other ink source files

2. Moved documentation files to scenarios/ink/
   - INK_BEST_PRACTICES.md
   - NPC_HUB_ARCHITECTURE.md
   - ONGOING_CONVERSATIONS_README.md
   - README.md

3. Added scripts/compile-ink.sh
   - Automatically compiles all .ink files in scenarios/ink/
   - Outputs JSON to the same directory
   - Shows colored output with success/failure status
   - Provides compilation summary

Usage:
  ./scripts/compile-ink.sh

This consolidates the ink development workflow into a single directory
and provides an easy way to recompile all ink files after making changes.
2025-11-19 13:44:30 +00:00
Z. Cliffe Schreuders
adc5f3baa4 Add NPC Patrol Features Documentation and Implementation Scripts
- Created comprehensive documentation for two new NPC patrol features: Waypoint Patrol and Cross-Room Navigation.
- Added `QUICK_START_NPC_FEATURES.md` detailing configuration, implementation phases, and testing guidelines.
- Introduced `README_NPC_FEATURES.md` as an index for navigating the documentation package.
- Implemented `update_tileset.py` script to update Tiled map with all objects from the assets directory, ensuring proper GIDs.
- Updated test scenarios for NPC patrol behaviors, including waypoint patrol tests in `test-npc-waypoints.json`.
- Adjusted positions in existing test scenarios for better alignment with new patrol features.
2025-11-10 02:00:27 +00:00
Z. Cliffe Schreuders
e05b4d7903 feat(npc): Add pixel-art avatars for NPCs in bark notifications and update scenario configurations 2025-11-01 00:08:13 +00:00
Z. Cliffe Schreuders
5cd07b5d4b refactor: remove outdated documentation 2025-10-28 16:11:16 +00:00
Z. Cliffe Schreuders
b20d159ffc Extract: Phases 3-6 complete (Key Data Generator, Key Selection, Key Visual Feedback, Key Operations) 2025-10-27 16:10:12 +00:00
Z. Cliffe Schreuders
cf776cb693 Add KeySelection module to lockpicking minigame: Extract key generation logic and integrate into LockpickingMinigamePhaser for improved modularity. 2025-10-27 15:58:56 +00:00
Z. Cliffe Schreuders
cb9f7d1cba Refactor lockpicking minigame: Extract lock configuration logic into LockConfiguration class
- Created a new LockConfiguration class in lock-configuration.js to encapsulate lock configuration methods.
- Removed lock configuration methods from lockpicking-game-phaser.js and replaced them with an instance of LockConfiguration.
- Added methods for saving, loading, clearing, and resetting lock configurations in the new class.
- Updated lockpicking-game-phaser.js to utilize the new LockConfiguration class for managing lock states.
- Introduced scripts for extracting methods and listing JavaScript functions for better code organization and maintainability.
2025-10-27 14:52:43 +00:00
Z. Cliffe Schreuders
f1471c7d29 Add Minigame Documentation: Introduce detailed usage guides for the Container and Notes minigames, outlining features, usage scenarios, and integration with existing systems. Include example data structures and testing instructions to enhance developer understanding and facilitate future enhancements. 2025-10-22 11:43:45 +01:00
Z. Cliffe Schreuders
e8db636f45 Add new assets and update room definitions: Introduce a comprehensive list of available object assets in available_objects.txt. Add multiple new object images and room JSON/TMJ files for room_ceo2, room_closet2, room_office2, and room_servers2. Update existing room files to enhance gameplay experience and ensure proper asset integration. Implement scripts for managing corrupted GID references and external tileset removal to maintain map integrity. 2025-10-10 00:18:04 +01:00