MRPGI/rooms/room3.json
type-two d0caf983a0 Initial commit: MRPGI — Apple-Silicon AGI adventure engine
A new-school reimagining of Sierra's 1980s AGI interpreter in Rust + macroquad:

- Dual-buffer (visual + priority) room model with hand-painted walkability
- In-engine room editor: brush/line/rect/fill/pick/erase/oval/image/spawn/object tools
- Sprite pipeline (PNG -> EGA quantize), multi-room worlds with edge exits
- Objects with look/use/needs/keys/win conditions (no code)
- Forgiving text parser + optional local-LLM lane (Ollama / OpenRouter)
- Branching NPC dialogue trees, chiptune SFX, per-room ambient music
- Content kit: 61 archetypes across fantasy/scifi/monsters/saucy/horror
- Full docs: README, EDITOR_GUIDE, MANUAL, art manifesto + Gemini prompts

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 17:26:55 +10:00

162 lines
3.7 KiB
JSON

{
"strokes": [
{
"Rect": {
"x": 0,
"y": 0,
"w": 160,
"h": 168,
"color": 6,
"meaning": "None"
}
},
{
"Rect": {
"x": 6,
"y": 16,
"w": 148,
"h": 146,
"color": 7,
"meaning": "Floor"
}
},
{
"Rect": {
"x": 0,
"y": 0,
"w": 65,
"h": 16,
"color": 6,
"meaning": "Wall"
}
},
{
"Rect": {
"x": 95,
"y": 0,
"w": 65,
"h": 16,
"color": 6,
"meaning": "Wall"
}
},
{
"Rect": {
"x": 0,
"y": 160,
"w": 160,
"h": 8,
"color": 6,
"meaning": "Wall"
}
},
{
"Rect": {
"x": 0,
"y": 0,
"w": 6,
"h": 168,
"color": 6,
"meaning": "Wall"
}
},
{
"Rect": {
"x": 154,
"y": 0,
"w": 6,
"h": 168,
"color": 6,
"meaning": "Wall"
}
},
{
"Rect": {
"x": 40,
"y": 122,
"w": 80,
"h": 28,
"color": 4,
"meaning": "None"
}
},
{
"Rect": {
"x": 20,
"y": 24,
"w": 8,
"h": 8,
"color": 14,
"meaning": "None"
}
}
],
"spawn": [
80,
138
],
"exits": [
0,
null,
null,
null
],
"objects": [
{
"name": "villager",
"sprite": "villager",
"x": 60,
"y": 112,
"look": "A nervous barkeep. 'Heading to the cave? Take the key — and my prayers.'",
"takeable": false,
"synonyms": "barkeep person npc",
"use_text": "'Be careful in there,' the barkeep says, sliding you nothing useful.",
"needs": "",
"wins": false,
"dialogue": [
{ "says": "Oh — a traveller! You're for the cave, aren't you? I can see it in your... whatever those are.", "choices": [ { "text": "What's down there?", "goto": 1 }, { "text": "Maybe. Got anything useful?", "goto": 2 }, { "text": "Just passing through.", "goto": 3 } ] },
{ "says": "Orcs. Dark. A spellbook nobody should read aloud. Take the key by the door — it opens the old chest.", "choices": [ { "text": "Thanks, I'll be careful.", "goto": -1 }, { "text": "A spellbook, you say?", "goto": 4 } ] },
{ "says": "Key's by the door, potion's on the house. Beyond that, just my prayers, friend.", "choices": [ { "text": "I'll take them. Cheers.", "goto": -1 } ] },
{ "says": "Nobody just passes through here. But suit yourself.", "choices": [ { "text": "...fine. What IS in the cave?", "goto": 1 } ] },
{ "says": "Don't read it aloud. Bring it to the altar in the dungeon and step well back.", "choices": [ { "text": "Noted. Thank you.", "goto": -1 } ] }
]
},
{
"name": "key",
"sprite": "key",
"x": 44,
"y": 140,
"look": "An iron key hanging by the door. The barkeep nods at you to take it.",
"takeable": true,
"synonyms": "ironkey",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "potion",
"sprite": "potion",
"x": 112,
"y": 132,
"look": "A complimentary vial of bubbling red liquid. Probably fine.",
"takeable": true,
"synonyms": "vial elixir flask",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "barrel",
"sprite": "barrel",
"x": 122,
"y": 120,
"look": "A barrel of inn ale. Smells like courage and mistakes.",
"takeable": false,
"synonyms": "ale keg",
"use_text": "",
"needs": "",
"wins": false
}
],
"music": 4
}