- Added event emissions for NPC interactions in core game systems:
- Unlock System: door_unlocked, item_unlocked, door_unlock_attempt
- Interactions System: object_interacted
- Inventory System: item_picked_up:*
- Minigame Framework: minigame_completed, minigame_failed
- Created event-triggered reactions for the helper NPC:
- Added knots for lockpick pickup, success, failure, door unlock, and object interaction.
- Implemented state tracking and context-aware responses.
- Updated event mappings in scenario JSON for the helper NPC to respond to various events.
- Fixed global variable references in event emission code to ensure proper event dispatching.
- Added debug logging to verify event emissions and NPC reactions.
- Documented implementation details and testing instructions for new features.
- Added NPCGameBridge class to facilitate interactions between NPCs and game state.
- Implemented methods for unlocking doors, giving items, setting objectives, revealing secrets, adding notes, triggering events, and discovering rooms.
- Introduced a helper NPC that can assist players by unlocking the CEO's office and providing items based on trust levels.
- Created comprehensive documentation for the NPC Game Bridge implementation.
- Updated scenario JSON to include the new helper NPC and its interactions.
- Added Ink story for the helper NPC demonstrating its capabilities.
- Deleted `phone-messages-minigame.js` and archived related CSS.
- Updated `interactions.js` to exclusively use phone-chat with runtime conversion.
- Enhanced error handling for phone interactions.
- Marked completion of old phone minigame removal in implementation log.
- Added detailed cleanup summary documentation.
- Added support for voice messages prefixed with "voice:" in Ink files.
- Updated UI rendering to display voice message UI with play button and transcript.
- Implemented automatic conversion for scenario JSON with voice properties.
- Created test examples for pure voice messages and mixed content.
- Fixed issues with NPC registration and message duplication in test scenarios.
- Documented feature details, use cases, and testing procedures.
Update interactions.js to reference new version of constants
Improve NPCBarkSystem to dynamically import phone-chat minigame and handle fallback UI more gracefully
Modify constants.js to conditionally export GAME_CONFIG based on Phaser availability
Update implementation log for Phone Chat Minigame, detailing completed modules and next steps
Create detailed implementation plan for Phone Chat Minigame, outlining structure, features, and integration points
Add test HTML page for Phone Chat Minigame, including setup, chat tests, and history management functionalities
- Created a generic NPC script with conversation handling.
- Developed an Alice NPC script demonstrating branching dialogue and state tracking.
- Implemented a test NPC script for development purposes.
- Added JSON representations for the NPC scripts.
- Created an HTML test interface for NPC integration testing.
- Included event handling and bark systems for NPC interactions.
- Created `05_EXAMPLE_SCENARIO.md` with a complete Ink script for the Biometric Breach scenario featuring NPCs Alice and Bob.
- Added `QUICK_REFERENCE.md` as a cheat sheet for NPC system components, event types, and common patterns.
- Introduced `README.md` as an index for NPC integration planning, outlining document structure and key concepts.
- Updated PinManagement to utilize new PinVisuals class for handling pin visuals and interactions.
- Replaced direct feedback updates with keyInsertion feedback methods for consistency.
- Introduced a new PinVisuals class to encapsulate pin rendering logic and improve code organization.
- Adjusted tool manager feedback methods to align with the new structure.
- Enhanced pin highlighting and visual updates during gameplay for better user experience.
- Implemented ToolManager to handle the visibility and behavior of lockpicking tools.
- Added methods for switching between key mode and lockpicking mode.
- Included functionality to return hook to starting position and flash wrench red.
- Integrated cleanup and initialization processes for the lockpicking game state.
- Enhanced user feedback and UI updates during mode transitions.
- 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.
- Updated room_office2.tmj to adjust object positions and dimensions for better alignment.
- Added new objects and refined existing ones to improve gameplay experience.
- Modified TiledItemPool in rooms.js to support regular and table items separately, ensuring proper item matching and prioritization.
- Improved interaction handling for swivel chairs, allowing them to be kicked and spin upon collision with walls.
- Updated object physics to handle swivel chair collisions dynamically, enhancing realism.
- Revised scenario details in cybok_heist.json for clarity and improved narrative flow.
Add new scenario: Introduce "CyBOK Heist" with detailed room and object interactions, including clues and challenges related to cybersecurity concepts.