fix(rfid): Create proper .ink source file and add compilation instructions

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.
This commit is contained in:
Z. Cliffe Schreuders
2025-11-15 23:48:15 +00:00
parent 5d010e98d7
commit af11d420e0
3 changed files with 87 additions and 48 deletions

View File

@@ -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

View File

@@ -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"
]
}

View File

@@ -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