MRPGI/kit/objects.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

158 lines
3.6 KiB
JSON

[
{
"name": "sword",
"sprite": "sword",
"x": 80,
"y": 130,
"look": "A notched iron sword. It has Opinions about orcs.",
"takeable": true,
"synonyms": "blade weapon",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "spellbook",
"sprite": "spellbook",
"x": 80,
"y": 130,
"look": "A spellbook bound in something best not identified. The runes won't hold still.",
"takeable": true,
"synonyms": "book tome grimoire",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "key",
"sprite": "key",
"x": 80,
"y": 130,
"look": "A heavy iron key, cold and important-looking.",
"takeable": true,
"synonyms": "ironkey",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "potion",
"sprite": "potion",
"x": 80,
"y": 130,
"look": "A vial of bubbling red liquid. Almost certainly fine.",
"takeable": true,
"synonyms": "vial elixir flask",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "torch",
"sprite": "torch",
"x": 80,
"y": 130,
"look": "A guttering torch. It pushes the dark back a little.",
"takeable": true,
"synonyms": "light flame",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "orc",
"sprite": "orc",
"x": 80,
"y": 120,
"look": "A green orc, picking its teeth with a dagger. It hasn't noticed you. Yet.",
"takeable": false,
"synonyms": "monster brute goblin",
"use_text": "You poke the orc. It looks up. In hindsight, a mistake.",
"needs": "",
"wins": false
},
{
"name": "villager",
"sprite": "villager",
"x": 80,
"y": 120,
"look": "A nervous villager. 'You're... not from the cave, are you?'",
"takeable": false,
"synonyms": "person man woman npc",
"use_text": "'Sorry, nothing for you,' the villager mumbles.",
"needs": "",
"wins": false
},
{
"name": "chest",
"sprite": "chest",
"x": 80,
"y": 135,
"look": "A banded wooden chest. Locked.",
"takeable": false,
"synonyms": "box trunk",
"use_text": "The key turns; the lid yawns open and old gold spills out.",
"needs": "key",
"wins": false
},
{
"name": "door",
"sprite": "door",
"x": 80,
"y": 120,
"look": "A stout wooden door, banded with iron.",
"takeable": false,
"synonyms": "gate",
"use_text": "The lock clunks and the door swings wide.",
"needs": "key",
"wins": false
},
{
"name": "altar",
"sprite": "altar",
"x": 80,
"y": 100,
"look": "A stone altar humming with cold light. Something is meant to rest here.",
"takeable": false,
"synonyms": "shrine pedestal",
"use_text": "You lay the spellbook on the altar. A doorway tears open in the air. THE END.",
"needs": "spellbook",
"wins": true
},
{
"name": "tree",
"sprite": "tree",
"x": 60,
"y": 80,
"look": "An ancient tree, bark like old leather.",
"takeable": false,
"synonyms": "oak trunk wood",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "rock",
"sprite": "rock",
"x": 120,
"y": 130,
"look": "A mossy boulder. Immovable, and a little smug about it.",
"takeable": false,
"synonyms": "boulder stone",
"use_text": "",
"needs": "",
"wins": false
},
{
"name": "sign",
"sprite": "sign",
"x": 80,
"y": 50,
"look": "A weathered signpost, paint long faded.",
"takeable": false,
"synonyms": "notice post",
"use_text": "",
"needs": "",
"wins": false
}
]