mirror of
https://github.com/cliffe/BreakEscape.git
synced 2026-02-21 11:18:08 +00:00
- Introduced a data-driven global variable system to manage narrative state across NPC interactions. - Added support for global variables in scenario JSON, allowing for easy extension and management. - Implemented synchronization of global variables between Ink stories and the game state, ensuring real-time updates across conversations. - Enhanced state persistence, allowing global variables to survive page reloads and be restored during conversations. - Created comprehensive documentation and testing guides to facilitate usage and verification of the new system.
1 line
2.4 KiB
JSON
1 line
2.4 KiB
JSON
{"inkVersion":21,"root":[[["done",{"#n":"g-0"}],null],"done",{"hub":[["#","^speaker:npc:test_npc_back","/#","^Woop! Welcome! This is a group conversation test. Let me introduce you to my colleague.","\n","ev","str","^Listen in on the introduction","/str","/ev",{"*":".^.c-0","flg":4},{"c-0":["^ ",{"->":"group_meeting"},"\n",null]}],null],"group_meeting":["#","^speaker:npc:test_npc_back","/#","^Agent, meet my colleague from the back office. BACK","\n",{"->":"colleague_introduction"},null],"colleague_introduction":["#","^speaker:npc:test_npc_front","/#","^Nice to meet you! I'm the lead technician here. FRONT.","\n",{"->":"player_question"},null],"player_question":["#","^speaker:player","/#","^What kind of work do you both do here?","\n",{"->":"front_npc_explains"},null],"front_npc_explains":["#","^speaker:npc:test_npc_back","/#","^Well, I handle the front desk operations and guest interactions. But my colleague here...","\n",{"->":"colleague_responds"},null],"colleague_responds":["#","^speaker:npc:test_npc_front","/#","^I manage all the backend systems and security infrastructure. Together, we keep everything running smoothly.","\n",{"->":"player_follow_up"},null],"player_follow_up":["#","^speaker:player","/#","^That sounds like a well-coordinated operation!","\n",{"->":"front_npc_agrees"},null],"front_npc_agrees":["#","^speaker:npc:test_npc_back","/#","^It really is! We've been working together for several years now. Communication is key.","\n",{"->":"colleague_adds"},null],"colleague_adds":["#","^speaker:npc:test_npc_front","/#","^Exactly. And we're always looking for talented people like you to join our team.","\n",{"->":"player_closing"},null],"player_closing":[["#","^speaker:player","/#","ev","str","^I'd love to join your organization!","/str","/ev",{"*":".^.c-0","flg":20},"ev","str","^I need to think about it.","/str","/ev",{"*":".^.c-1","flg":20},{"c-0":["\n","ev",true,"/ev",{"VAR=":"player_joined_organization","re":true},"#","^speaker:npc:test_npc_back","/#","^Excellent! Welcome aboard. We'll get you set up with everything you need.","\n","#","^exit_conversation","/#",{"->":"hub"},{"#f":5}],"c-1":["\n","#","^speaker:npc:test_npc_back","/#","^That's understandable. Take your time deciding.","\n","#","^exit_conversation","/#",{"->":"hub"},{"#f":5}]}],null],"global decl":["ev",false,{"VAR=":"conversation_started"},false,{"VAR=":"player_joined_organization"},"/ev","end",null]}],"listDefs":{}} |