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>
15 lines
3.6 KiB
JSON
15 lines
3.6 KiB
JSON
[
|
|
{ "name": "rose", "sprite": "rose", "x": 60, "y": 130, "look": "A single red rose, thornless. Someone planned ahead.", "takeable": true, "synonyms": "flower bloom", "use_text": "You offer the rose to the room in general. The room blushes.", "needs": "", "wins": false },
|
|
{ "name": "wine", "sprite": "wine", "x": 110, "y": 132, "look": "A bottle of something bubbly and overconfident.", "takeable": true, "synonyms": "bottle champagne bubbly drink", "use_text": "You pop the cork. It arcs across the room and somehow lands in a glass.", "needs": "", "wins": false },
|
|
{ "name": "perfume", "sprite": "perfume", "x": 40, "y": 128, "look": "A perfume bottle labelled 'Regret, No.5'. Dangerously, undeniably good.", "takeable": true, "synonyms": "scent cologne spray", "use_text": "One spritz. You are now 14% more mysterious and 3% more flammable.", "needs": "", "wins": false },
|
|
{ "name": "letter", "sprite": "letter", "x": 80, "y": 60, "look": "A love letter in looping handwriting. It just says: 'meet me upstairs ;)'.", "takeable": true, "synonyms": "note card love invite", "use_text": "You read the letter again. The winky face is doing a lot of work.", "needs": "", "wins": false },
|
|
{ "name": "couch", "sprite": "couch", "x": 50, "y": 120, "look": "A red velvet couch that has clearly heard things. It keeps them to itself.", "takeable": false, "synonyms": "sofa seat settee", "use_text": "You flop onto the couch. It exhales, supportively, like an old confidant.", "needs": "", "wins": false },
|
|
{ "name": "lamp", "sprite": "lamp", "x": 25, "y": 110, "look": "A lamp dialed to 'intriguing'. The whole room looks 12% more attractive.", "takeable": false, "synonyms": "light mood lava", "use_text": "You nudge the dial to 'scandalous'. The shadows get ideas.", "needs": "", "wins": false },
|
|
{ "name": "locket", "sprite": "locket", "x": 90, "y": 132, "look": "A heart locket. Inside: a tiny portrait of someone winking.", "takeable": true, "synonyms": "necklace heart pendant", "use_text": "You open the locket. The little portrait blows you a kiss and shuts itself.", "needs": "", "wins": false },
|
|
{ "name": "cocktail", "sprite": "cocktail", "x": 120, "y": 128, "look": "A cocktail with a paper umbrella and big ambitions.", "takeable": true, "synonyms": "drink martini glass", "use_text": "You sip the cocktail. It tastes like a bad decision you'd happily repeat.", "needs": "", "wins": false },
|
|
{ "name": "jukebox", "sprite": "jukebox", "x": 130, "y": 116, "look": "A jukebox glowing like a sunset. It only plays mood music.", "takeable": false, "synonyms": "music machine records", "use_text": "The jukebox drops a slow number. The lighting takes the hint immediately.", "needs": "", "wins": false },
|
|
{ "name": "mirror", "sprite": "mirror", "x": 20, "y": 90, "look": "A gilded mirror. You look, frankly, like a catch.", "takeable": false, "synonyms": "looking glass reflection", "use_text": "You wink at the mirror. It winks back a half-second early, showing off.", "needs": "", "wins": false },
|
|
{ "name": "bouncer", "sprite": "bouncer", "x": 80, "y": 118, "look": "A bouncer the size of a vending machine, manicure immaculate, heart of gold.", "takeable": false, "synonyms": "guard doorman security", "use_text": "'List or letter, sugar,' the bouncer says, not unkindly.", "needs": "", "wins": false },
|
|
{ "name": "velvet door", "sprite": "door", "x": 110, "y": 120, "look": "A velvet-roped door marked MEMBERS ONLY. The good party is clearly behind it.", "takeable": false, "synonyms": "door rope vip upstairs", "use_text": "You flash the letter. The bouncer reads it, raises an eyebrow, and drops the rope. 'Have fun, sugar.'", "needs": "letter", "wins": true }
|
|
]
|