From af11d420e0d181f56347e892ecb8cf6f977dd56d Mon Sep 17 00:00:00 2001 From: "Z. Cliffe Schreuders" Date: Sat, 15 Nov 2025 23:48:15 +0000 Subject: [PATCH] fix(rfid): Create proper .ink source file and add compilation instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created proper Ink source file for Security Guard NPC: Ink Story File: - Created scenarios/ink/rfid-security-guard.ink (proper Ink format) - Follows equipment-officer.ink pattern - Uses # speaker:npc and # speaker:player tags - Implements hub dialogue structure - Contains clone_keycard tag: # clone_keycard:Master Keycard|FF4A7B9C21 - Multiple dialogue branches and paths Story Structure: - start knot → hub knot - ask_keycard knot with multiple choices - cloned knot for post-clone conversation - Proper conversation flow with END points Removed: - Deleted placeholder rfid-security-guard.json (incorrect format) - JSON must be compiled from .ink source using inklecate or Inky Updated README: - Added compilation instructions section - Option 1: Inky editor (recommended, GUI) - Option 2: inklecate command line - Warning that .json needs compilation before use - Links to download tools The .ink file is the source of truth and must be compiled to .json before the scenario will work properly. --- scenarios/ink/rfid-security-guard.ink | 66 ++++++++++++++++++++++++++ scenarios/ink/rfid-security-guard.json | 48 ------------------- scenarios/test-rfid-README.md | 21 ++++++++ 3 files changed, 87 insertions(+), 48 deletions(-) create mode 100644 scenarios/ink/rfid-security-guard.ink delete mode 100644 scenarios/ink/rfid-security-guard.json diff --git a/scenarios/ink/rfid-security-guard.ink b/scenarios/ink/rfid-security-guard.ink new file mode 100644 index 0000000..2ea1ad7 --- /dev/null +++ b/scenarios/ink/rfid-security-guard.ink @@ -0,0 +1,66 @@ +// rfid-security-guard.ink +// Security Guard NPC for RFID test scenario +// Demonstrates clone_keycard tag functionality +// Player can subtly clone the guard's master keycard during conversation + +=== start === +# speaker:npc +Hey there. I'm the security guard for this facility. + +I've got the master keycard that opens the secure room. + +-> hub + +=== hub === ++ [Ask about the keycard] + -> ask_keycard + ++ [Just browsing] + # speaker:npc + Alright, let me know if you need anything. + -> END + +=== ask_keycard === +# speaker:npc +This keycard? Yeah, it's the master access card. Opens everything in the building. + +I can't just hand it to you though - security policy and all that. + ++ [Offer to buy it] + # speaker:npc + Ha! Nice try, but I can't sell company property. I'd lose my job. + -> hub + ++ [Ask if you can borrow it] + # speaker:npc + Sorry, no can do. This thing never leaves my person. + -> hub + ++ [Subtly scan their badge] + # clone_keycard:Master Keycard|FF4A7B9C21 + # speaker:player + You casually position your Flipper Zero near their badge while chatting... + -> cloned + ++ [Leave them alone] + # speaker:npc + Sure thing. Have a good one! + -> END + +=== cloned === +# speaker:npc +...So anyway, that's why I love working nights. Much quieter, you know? + +The pay's better too. Plus I get to catch up on my podcasts. + ++ [Thanks for the chat!] + # speaker:npc + No problem! Stay safe out there. + -> END + ++ [Any other secure areas?] + # speaker:npc + Well, there's the CEO's office, but that's on a different floor entirely. + + This master card works for most areas on this level though. + -> cloned diff --git a/scenarios/ink/rfid-security-guard.json b/scenarios/ink/rfid-security-guard.json deleted file mode 100644 index 35983c9..0000000 --- a/scenarios/ink/rfid-security-guard.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "content": [ - "-> start", - "", - "=== start ===", - "Hey there. I'm the security guard for this facility.", - "", - "I've got the master keycard that opens the secure room.", - "", - "+ [Ask about the keycard]", - " -> ask_keycard", - "+ [Just browsing]", - " Alright, let me know if you need anything.", - " -> END", - "", - "=== ask_keycard ===", - "This keycard? Yeah, it's the master access card. Opens everything in the building.", - "", - "I can't just hand it to you though - security policy and all that.", - "", - "+ [Offer to buy it]", - " Ha! Nice try, but I can't sell company property. I'd lose my job.", - " -> start", - "+ [Ask if you can borrow it]", - " Sorry, no can do. This thing never leaves my person.", - " -> start", - "+ [Subtly scan their badge]", - " # clone_keycard:Master Keycard|FF4A7B9C21", - " You casually position your Flipper Zero near their badge while chatting...", - " -> cloned", - "+ [Leave them alone]", - " Sure thing. Have a good one!", - " -> END", - "", - "=== cloned ===", - "...So anyway, that's why I love working nights. Much quieter, you know?", - "", - "The pay's better too. Plus I get to catch up on my podcasts.", - "", - "+ [Thanks for the chat!]", - " No problem! Stay safe out there.", - " -> END", - "+ [Any other secure areas?]", - " Well, there's the CEO's office, but that's on a different floor entirely.", - " This master card works for most areas on this level though.", - " -> cloned" - ] -} diff --git a/scenarios/test-rfid-README.md b/scenarios/test-rfid-README.md index 66c88da..6e468d3 100644 --- a/scenarios/test-rfid-README.md +++ b/scenarios/test-rfid-README.md @@ -3,6 +3,27 @@ ## Overview This scenario tests all RFID keycard functionality in BreakEscape. +## ⚠️ Important: Compile Ink Story First + +Before running the scenario, you need to compile the Ink story file: + +**Option 1: Using Inky (Recommended)** +1. Download [Inky](https://github.com/inkle/inky/releases) (Ink editor with built-in compiler) +2. Open `scenarios/ink/rfid-security-guard.ink` in Inky +3. Click File → Export story.json only... +4. Save as `scenarios/ink/rfid-security-guard.json` + +**Option 2: Using inklecate (Command Line)** +```bash +# Install inklecate +# https://github.com/inkle/ink/releases + +# Compile the story +inklecate scenarios/ink/rfid-security-guard.ink -o scenarios/ink/rfid-security-guard.json +``` + +**Note**: The current `rfid-security-guard.json` file is a placeholder and won't work without proper compilation from the `.ink` source. + ## Scenario Structure ### Room 1: Test Lobby