mirror of
https://github.com/cliffe/BreakEscape.git
synced 2026-02-21 11:18:08 +00:00
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:
66
scenarios/ink/rfid-security-guard.ink
Normal file
66
scenarios/ink/rfid-security-guard.ink
Normal 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
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user