Initial commit
This commit is contained in:
@@ -0,0 +1,681 @@
|
||||
title: The Mysterious Mansion
|
||||
author: AI Interactive Fiction
|
||||
version: 1.0.0
|
||||
introduction: |
|
||||
You find yourself standing outside an old, abandoned mansion on a hill.
|
||||
Rain patters gently on the gravel path leading to the front door.
|
||||
A strange letter in your pocket invited you here, but you can't remember who sent it.
|
||||
Perhaps the answers lie within...
|
||||
|
||||
# Room definitions
|
||||
rooms:
|
||||
# Starting area
|
||||
front_yard:
|
||||
name: Front Yard
|
||||
description: |
|
||||
You stand on a gravel path leading to an imposing Victorian mansion.
|
||||
The rain has softened to a drizzle, and moonlight peeks through gaps in the clouds.
|
||||
Ancient oak trees frame the property, their branches swaying in the gentle breeze.
|
||||
exits:
|
||||
- direction: north
|
||||
targetRoomId: entrance_hall
|
||||
description: large wooden doors lead into the mansion
|
||||
- direction: south
|
||||
targetRoomId: street
|
||||
description: wrought iron gates lead back to the street
|
||||
objects:
|
||||
- strange_letter
|
||||
- garden_statue
|
||||
characters: []
|
||||
|
||||
# Main entrance
|
||||
entrance_hall:
|
||||
name: Entrance Hall
|
||||
description: |
|
||||
Grand chandeliers hang from the high ceiling, their crystals covered in cobwebs.
|
||||
A wide staircase curves up to the second floor, and paintings of stern-faced
|
||||
individuals watch you from ornate frames on the walls.
|
||||
The floor is polished marble, though dusty from neglect.
|
||||
exits:
|
||||
- direction: south
|
||||
targetRoomId: front_yard
|
||||
description: the main entrance doors
|
||||
- direction: north
|
||||
targetRoomId: grand_staircase
|
||||
description: the grand staircase
|
||||
- direction: east
|
||||
targetRoomId: dining_room
|
||||
description: an archway leads to what appears to be a dining room
|
||||
- direction: west
|
||||
targetRoomId: library
|
||||
description: a door marked 'Library'
|
||||
objects:
|
||||
- dusty_key
|
||||
- umbrella_stand
|
||||
characters:
|
||||
- butler_ghost
|
||||
|
||||
# Library
|
||||
library:
|
||||
name: Library
|
||||
description: |
|
||||
Bookshelves line every wall, reaching from floor to ceiling.
|
||||
A reading desk sits in the center of the room, a leather-bound book
|
||||
open upon it. A gentle fire crackles in the fireplace, casting
|
||||
dancing shadows across the room.
|
||||
exits:
|
||||
- direction: east
|
||||
targetRoomId: entrance_hall
|
||||
description: the door back to the entrance hall
|
||||
- direction: north
|
||||
targetRoomId: secret_study
|
||||
description: a hidden door in the bookshelf
|
||||
isLocked: true
|
||||
keyId: old_brass_key
|
||||
objects:
|
||||
- leather_book
|
||||
- reading_glasses
|
||||
- old_brass_key
|
||||
characters: []
|
||||
|
||||
# Dining Room
|
||||
dining_room:
|
||||
name: Dining Room
|
||||
description: |
|
||||
A long table dominates this room, set for a dinner party that never happened.
|
||||
Fine china and silverware rest atop an elegant tablecloth, now gray with dust.
|
||||
A chandelier hangs above, and a sideboard against the wall holds various serving dishes.
|
||||
exits:
|
||||
- direction: west
|
||||
targetRoomId: entrance_hall
|
||||
description: the archway back to the entrance hall
|
||||
- direction: north
|
||||
targetRoomId: kitchen
|
||||
description: a swinging door to what must be the kitchen
|
||||
objects:
|
||||
- silver_candlestick
|
||||
- dusty_plate
|
||||
characters:
|
||||
- dining_ghost
|
||||
|
||||
# Kitchen
|
||||
kitchen:
|
||||
name: Kitchen
|
||||
description: |
|
||||
This once-busy kitchen now stands silent. Copper pots and pans hang from hooks,
|
||||
and an old cast-iron stove sits cold against the wall. A large preparation table
|
||||
occupies the center of the room, and a pantry door stands ajar.
|
||||
exits:
|
||||
- direction: south
|
||||
targetRoomId: dining_room
|
||||
description: the swinging door back to the dining room
|
||||
- direction: east
|
||||
targetRoomId: pantry
|
||||
description: the pantry door
|
||||
objects:
|
||||
- rusty_knife
|
||||
- cookbook
|
||||
characters: []
|
||||
|
||||
# Pantry
|
||||
pantry:
|
||||
name: Pantry
|
||||
description: |
|
||||
Shelves line the walls of this small room, holding preserves in dusty jars
|
||||
and sacks of long-expired ingredients. A small window provides minimal light,
|
||||
and a musty smell permeates the air.
|
||||
exits:
|
||||
- direction: west
|
||||
targetRoomId: kitchen
|
||||
description: the door back to the kitchen
|
||||
objects:
|
||||
- dusty_jar
|
||||
- strange_bottle
|
||||
characters: []
|
||||
|
||||
# Grand Staircase
|
||||
grand_staircase:
|
||||
name: Grand Staircase
|
||||
description: |
|
||||
The staircase curves gracefully upward, its wooden railings polished to a soft glow
|
||||
despite the overall neglect of the mansion. Family portraits line the walls,
|
||||
following your movement with their painted eyes.
|
||||
exits:
|
||||
- direction: south
|
||||
targetRoomId: entrance_hall
|
||||
description: back down to the entrance hall
|
||||
- direction: north
|
||||
targetRoomId: upper_landing
|
||||
description: up to the second floor
|
||||
objects:
|
||||
- family_portrait
|
||||
characters: []
|
||||
|
||||
# Upper Landing
|
||||
upper_landing:
|
||||
name: Upper Landing
|
||||
description: |
|
||||
The upper landing connects several rooms on the second floor. A faded
|
||||
carpet runs down the center of the hallway, and doors line both sides.
|
||||
A large window at the end of the hall shows the rainy night outside.
|
||||
exits:
|
||||
- direction: south
|
||||
targetRoomId: grand_staircase
|
||||
description: down the grand staircase
|
||||
- direction: east
|
||||
targetRoomId: master_bedroom
|
||||
description: a door marked 'Master Bedroom'
|
||||
- direction: west
|
||||
targetRoomId: study
|
||||
description: a door marked 'Study'
|
||||
objects: []
|
||||
characters: []
|
||||
|
||||
# Master Bedroom
|
||||
master_bedroom:
|
||||
name: Master Bedroom
|
||||
description: |
|
||||
A large four-poster bed dominates this room, its once-luxurious hangings
|
||||
now faded and torn. A vanity sits in the corner, its mirror clouded with age,
|
||||
and a wardrobe stands against the far wall.
|
||||
exits:
|
||||
- direction: west
|
||||
targetRoomId: upper_landing
|
||||
description: the door back to the upper landing
|
||||
objects:
|
||||
- jewelry_box
|
||||
- old_diary
|
||||
characters:
|
||||
- lady_ghost
|
||||
|
||||
# Study
|
||||
study:
|
||||
name: Study
|
||||
description: |
|
||||
This cozy room contains a large desk covered in papers, a comfortable
|
||||
armchair, and a globe that seems to rotate slowly on its own. Bookshelves
|
||||
line the walls, filled with volumes on various esoteric subjects.
|
||||
exits:
|
||||
- direction: east
|
||||
targetRoomId: upper_landing
|
||||
description: the door back to the upper landing
|
||||
objects:
|
||||
- strange_device
|
||||
- important_letter
|
||||
characters: []
|
||||
|
||||
# Secret Study (hidden room)
|
||||
secret_study:
|
||||
name: Secret Study
|
||||
description: |
|
||||
Hidden behind the library bookshelf, this small room appears to be a
|
||||
private study. A desk with a locked drawer sits against one wall, and
|
||||
shelves hold unusual artifacts and rare books. A single candle provides
|
||||
dim illumination.
|
||||
exits:
|
||||
- direction: south
|
||||
targetRoomId: library
|
||||
description: the hidden door back to the library
|
||||
objects:
|
||||
- ancient_tome
|
||||
- crystal_key
|
||||
characters: []
|
||||
|
||||
# Street (exit area)
|
||||
street:
|
||||
name: Street
|
||||
description: |
|
||||
The quiet street outside the mansion is shrouded in fog. Streetlamps cast
|
||||
pools of yellow light that barely penetrate the mist. The mansion's gates
|
||||
loom behind you, while the way back to town lies ahead.
|
||||
exits:
|
||||
- direction: north
|
||||
targetRoomId: front_yard
|
||||
description: the mansion gates
|
||||
objects: []
|
||||
characters: []
|
||||
|
||||
# Object definitions
|
||||
objects:
|
||||
strange_letter:
|
||||
name: Strange Letter
|
||||
description: |
|
||||
A weathered envelope containing an invitation to visit the mansion.
|
||||
The handwriting is elegant but unfamiliar, and the letter is signed
|
||||
simply with the initial "M".
|
||||
traits:
|
||||
- takeable
|
||||
- readable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- read
|
||||
- examine
|
||||
|
||||
garden_statue:
|
||||
name: Garden Statue
|
||||
description: |
|
||||
A weathered stone statue of a weeping angel. Its face is covered by its hands,
|
||||
and detailed wings spread out from its back. Something about it makes you uneasy.
|
||||
traits:
|
||||
- fixed
|
||||
states: {}
|
||||
allowedActions:
|
||||
- examine
|
||||
|
||||
dusty_key:
|
||||
name: Dusty Key
|
||||
description: |
|
||||
An old iron key, covered in dust. It looks like it might fit an old door somewhere.
|
||||
traits:
|
||||
- takeable
|
||||
- key
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- examine
|
||||
- use
|
||||
|
||||
umbrella_stand:
|
||||
name: Umbrella Stand
|
||||
description: |
|
||||
A brass stand holding several antique umbrellas, all in various states of decay.
|
||||
traits:
|
||||
- fixed
|
||||
- container
|
||||
states:
|
||||
open: true
|
||||
containedObjects: []
|
||||
allowedActions:
|
||||
- examine
|
||||
|
||||
leather_book:
|
||||
name: Leather Book
|
||||
description: |
|
||||
A thick tome bound in dark leather. The pages are filled with strange symbols
|
||||
and diagrams that seem to shift slightly when you're not looking directly at them.
|
||||
traits:
|
||||
- takeable
|
||||
- readable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- read
|
||||
- examine
|
||||
|
||||
reading_glasses:
|
||||
name: Reading Glasses
|
||||
description: |
|
||||
A pair of wire-rimmed spectacles. The lenses have a slight blue tint to them.
|
||||
traits:
|
||||
- takeable
|
||||
- wearable
|
||||
states:
|
||||
worn: false
|
||||
allowedActions:
|
||||
- take
|
||||
- wear
|
||||
- examine
|
||||
|
||||
old_brass_key:
|
||||
name: Brass Key
|
||||
description: |
|
||||
A small brass key with intricate engravings. It seems to be quite old but well-maintained.
|
||||
traits:
|
||||
- takeable
|
||||
- key
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- examine
|
||||
- use
|
||||
|
||||
silver_candlestick:
|
||||
name: Silver Candlestick
|
||||
description: |
|
||||
A tarnished silver candlestick with an unlit candle. It feels heavy in your hand.
|
||||
traits:
|
||||
- takeable
|
||||
- light_source
|
||||
states:
|
||||
lit: false
|
||||
allowedActions:
|
||||
- take
|
||||
- light
|
||||
- examine
|
||||
|
||||
dusty_plate:
|
||||
name: Dusty Plate
|
||||
description: |
|
||||
A fine china plate covered in a layer of dust. Despite its age, the painted pattern is still vivid.
|
||||
traits:
|
||||
- takeable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- examine
|
||||
|
||||
rusty_knife:
|
||||
name: Rusty Knife
|
||||
description: |
|
||||
An old kitchen knife with a rusted blade. It's dull, but still might be useful.
|
||||
traits:
|
||||
- takeable
|
||||
- sharp
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- examine
|
||||
- use
|
||||
|
||||
cookbook:
|
||||
name: Cookbook
|
||||
description: |
|
||||
A yellowed cookbook filled with strange recipes. Some ingredients are unusual, and
|
||||
the instructions sometimes reference phases of the moon or specific star alignments.
|
||||
traits:
|
||||
- takeable
|
||||
- readable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- read
|
||||
- examine
|
||||
|
||||
dusty_jar:
|
||||
name: Dusty Jar
|
||||
description: |
|
||||
A glass jar containing what might once have been fruit preserves, now unidentifiable.
|
||||
Best not to open it.
|
||||
traits:
|
||||
- takeable
|
||||
- container
|
||||
states:
|
||||
open: false
|
||||
allowedActions:
|
||||
- take
|
||||
- examine
|
||||
|
||||
strange_bottle:
|
||||
name: Strange Bottle
|
||||
description: |
|
||||
A small bottle containing a glowing blue liquid. The label is written in a language you don't recognize.
|
||||
traits:
|
||||
- takeable
|
||||
- drinkable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- drink
|
||||
- examine
|
||||
|
||||
family_portrait:
|
||||
name: Family Portrait
|
||||
description: |
|
||||
A large painting of a stern-looking family - a husband, wife, and three children.
|
||||
The father's eyes seem to follow you, and there's something oddly familiar about his face.
|
||||
traits:
|
||||
- fixed
|
||||
states: {}
|
||||
allowedActions:
|
||||
- examine
|
||||
|
||||
jewelry_box:
|
||||
name: Jewelry Box
|
||||
description: |
|
||||
An ornate wooden box inlaid with mother-of-pearl. Inside are several pieces of
|
||||
antique jewelry, including a ruby necklace that catches the light strangely.
|
||||
traits:
|
||||
- takeable
|
||||
- container
|
||||
states:
|
||||
open: true
|
||||
containedObjects:
|
||||
- ruby_necklace
|
||||
allowedActions:
|
||||
- take
|
||||
- open
|
||||
- close
|
||||
- examine
|
||||
|
||||
ruby_necklace:
|
||||
name: Ruby Necklace
|
||||
description: |
|
||||
A delicate gold chain with a large ruby pendant. The gem seems to glow with an inner light,
|
||||
and it feels warm to the touch.
|
||||
traits:
|
||||
- takeable
|
||||
- wearable
|
||||
states:
|
||||
worn: false
|
||||
allowedActions:
|
||||
- take
|
||||
- wear
|
||||
- examine
|
||||
|
||||
old_diary:
|
||||
name: Old Diary
|
||||
description: |
|
||||
A leather-bound diary with yellowed pages. The entries detail the daily life of
|
||||
the mansion's former mistress, and hint at a growing fear of something in the house.
|
||||
traits:
|
||||
- takeable
|
||||
- readable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- read
|
||||
- examine
|
||||
|
||||
strange_device:
|
||||
name: Strange Device
|
||||
description: |
|
||||
A brass contraption with gears, dials, and a glass dome. It's purpose isn't clear,
|
||||
but it occasionally ticks and whirs on its own.
|
||||
traits:
|
||||
- takeable
|
||||
states:
|
||||
active: false
|
||||
allowedActions:
|
||||
- take
|
||||
- use
|
||||
- examine
|
||||
|
||||
important_letter:
|
||||
name: Important Letter
|
||||
description: |
|
||||
A sealed envelope addressed to "The Heir." The wax seal bears the same crest
|
||||
that you've seen throughout the mansion.
|
||||
traits:
|
||||
- takeable
|
||||
- readable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- read
|
||||
- examine
|
||||
|
||||
ancient_tome:
|
||||
name: Ancient Tome
|
||||
description: |
|
||||
A massive book bound in what appears to be human skin. The title, "Liber Umbrarum,"
|
||||
is embossed in gold on the spine. The pages contain rituals and incantations.
|
||||
traits:
|
||||
- takeable
|
||||
- readable
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- read
|
||||
- examine
|
||||
|
||||
crystal_key:
|
||||
name: Crystal Key
|
||||
description: |
|
||||
A key made of clear crystal that catches the light in mesmerizing ways. Despite
|
||||
its appearance, it feels as solid as metal and cool to the touch.
|
||||
traits:
|
||||
- takeable
|
||||
- key
|
||||
states: {}
|
||||
allowedActions:
|
||||
- take
|
||||
- use
|
||||
- examine
|
||||
|
||||
# Character definitions
|
||||
characters:
|
||||
butler_ghost:
|
||||
name: Ghostly Butler
|
||||
description: |
|
||||
The translucent figure of an elderly butler, dressed in formal attire from a bygone era.
|
||||
He stands with perfect posture, hands clasped behind his back.
|
||||
dialogue:
|
||||
greeting: "Welcome to the mansion, sir/madam. We've been expecting you."
|
||||
mansion: "This estate has belonged to the Montgomery family for generations. Such a shame what happened to them."
|
||||
family: "The Montgomerys? All gone now, I'm afraid. The master, his wife, and their children. A tragedy."
|
||||
tragedy: "I'm not at liberty to discuss the details, but the answers you seek may be found in the study."
|
||||
yourself: "Me? I've served this house for longer than I care to remember. Even death couldn't release me from my duties."
|
||||
defaultResponse: "I'm afraid I cannot help you with that particular inquiry."
|
||||
inventory: []
|
||||
mood: formal
|
||||
|
||||
dining_ghost:
|
||||
name: Dining Guest
|
||||
description: |
|
||||
A spectral figure in elegant dinner attire, seated at the table. She appears to be
|
||||
a young woman, and she plays absently with a spectral fork.
|
||||
dialogue:
|
||||
greeting: "Oh, a new guest! How delightful. Will you join us for dinner? It's been so long since we had fresh company."
|
||||
dinner: "We've been waiting for the main course for... goodness, how long has it been now? Years, I suppose."
|
||||
herself: "My name? It's... it's strange, I can't quite recall. I remember coming here for a dinner party, but then..."
|
||||
party: "It was supposed to be a celebration. The master of the house had made some sort of discovery. Something important."
|
||||
discovery: "In the secret study, I believe. Behind the library. The master was very excited about it."
|
||||
defaultResponse: "I'm sorry, my mind isn't what it used to be. The years blur together when you're like this."
|
||||
inventory: []
|
||||
mood: wistful
|
||||
|
||||
lady_ghost:
|
||||
name: Ghostly Lady
|
||||
description: |
|
||||
The elegant apparition of a woman in Victorian dress, her face partly obscured by a veil.
|
||||
She sits at the vanity, brushing her long hair with a ghostly brush.
|
||||
dialogue:
|
||||
greeting: "A visitor? How unusual. Are you lost, or are you here for a purpose?"
|
||||
purpose: "Everyone who comes to this house has a purpose, whether they know it or not."
|
||||
herself: "I was the lady of this house once. Now I am bound to it, as are we all."
|
||||
family: "My husband was obsessed with his research. My children... I tried to protect them. I failed."
|
||||
research: "The barriers between worlds, the nature of reality itself. He found something, in the end. Something that should have remained hidden."
|
||||
hidden: "In his secret study. The key is... well, I suppose you'll have to find that yourself. Some secrets reveal themselves only to those who seek them."
|
||||
defaultResponse: "There are some things I cannot speak of. The house has its rules, even for the dead."
|
||||
inventory: []
|
||||
mood: melancholy
|
||||
|
||||
# Action definitions
|
||||
actions:
|
||||
look:
|
||||
patterns:
|
||||
- "look around"
|
||||
- "look at [object]"
|
||||
- "examine [object]"
|
||||
- "check [object]"
|
||||
- "inspect [object]"
|
||||
- "observe [object]"
|
||||
- "view [object]"
|
||||
handler: "look"
|
||||
|
||||
go:
|
||||
patterns:
|
||||
- "go [direction]"
|
||||
- "move [direction]"
|
||||
- "walk [direction]"
|
||||
- "head [direction]"
|
||||
- "travel [direction]"
|
||||
- "enter [direction]"
|
||||
requiresObject: true
|
||||
handler: "go"
|
||||
|
||||
take:
|
||||
patterns:
|
||||
- "take [object]"
|
||||
- "get [object]"
|
||||
- "pick up [object]"
|
||||
- "grab [object]"
|
||||
- "collect [object]"
|
||||
requiresObject: true
|
||||
handler: "take"
|
||||
|
||||
drop:
|
||||
patterns:
|
||||
- "drop [object]"
|
||||
- "put down [object]"
|
||||
- "discard [object]"
|
||||
- "leave [object]"
|
||||
requiresObject: true
|
||||
handler: "drop"
|
||||
|
||||
inventory:
|
||||
patterns:
|
||||
- "inventory"
|
||||
- "check inventory"
|
||||
- "show inventory"
|
||||
- "what am I carrying"
|
||||
- "what do I have"
|
||||
handler: "inventory"
|
||||
|
||||
use:
|
||||
patterns:
|
||||
- "use [object]"
|
||||
- "use [object] on [target]"
|
||||
- "use [object] with [target]"
|
||||
- "apply [object] to [target]"
|
||||
requiresObject: true
|
||||
requiresTarget: false
|
||||
handler: "use"
|
||||
|
||||
talk:
|
||||
patterns:
|
||||
- "talk to [object]"
|
||||
- "speak to [object]"
|
||||
- "ask [object] about [topic]"
|
||||
- "tell [object] about [topic]"
|
||||
- "converse with [object]"
|
||||
requiresObject: true
|
||||
handler: "talk"
|
||||
|
||||
read:
|
||||
patterns:
|
||||
- "read [object]"
|
||||
- "read from [object]"
|
||||
- "examine [object]"
|
||||
- "look at [object]"
|
||||
requiresObject: true
|
||||
handler: "look"
|
||||
|
||||
help:
|
||||
patterns:
|
||||
- "help"
|
||||
- "commands"
|
||||
- "what can I do"
|
||||
- "show help"
|
||||
handler: "help"
|
||||
|
||||
wear:
|
||||
patterns:
|
||||
- "wear [object]"
|
||||
- "put on [object]"
|
||||
- "don [object]"
|
||||
requiresObject: true
|
||||
handler: "use"
|
||||
|
||||
# Initial game state
|
||||
initialState:
|
||||
currentRoomId: front_yard
|
||||
inventory:
|
||||
- strange_letter
|
||||
visitedRooms: []
|
||||
flags:
|
||||
hasMetButler: false
|
||||
hasFoundSecret: false
|
||||
counters:
|
||||
moveCount: 0
|
||||
Reference in New Issue
Block a user