705 lines
22 KiB
YAML
705 lines
22 KiB
YAML
title: The Mysterious Mansion
|
|
author: AI Interactive Fiction
|
|
version: 1.0.0
|
|
introduction: |
|
|
::music[crossfade, loop, lead=10](Dark Jodler.mp3)
|
|
|
|
::chapter[The Mysterious Mansion]
|
|
|
|
The last thing you remember is the letter: heavy paper, black wax, your name written in a hand you almost recognized.
|
|
It asked you to come after dusk, alone, and promised that the house would answer what the sender could not.
|
|
|
|
Now you stand beyond the wrought iron gate, with rain cooling your face and the hill rising before you.
|
|
At its crest waits the old Victorian mansion, every dark window turned toward the path as if the building has been expecting you.
|
|
|
|
The gate gives under your hand with no protest, though its ironwork is wet enough to shine black.
|
|
Gravel shifts beneath your boots as you pass between the pillars, and the garden closes behind you with the soft finality of a curtain.
|
|
|
|
Halfway up the path, you stop and listen.
|
|
The rain has thinned to a whisper, but the house answers with other sounds: timber settling, gutters ticking, and something deep inside the walls that might be machinery or breath.
|
|
|
|
For a heartbeat you think the mansion is about to speak ... but only the wind moves through the ivy.
|
|
It drags the leaves across the brickwork in slow strokes, as if wiping dust from an old name.
|
|
|
|
# Room definitions
|
|
rooms:
|
|
# Starting area
|
|
front_yard:
|
|
name: Front Yard
|
|
description: |
|
|
You follow the gravel path up the hill.
|
|
The rain softens to a drizzle, and moonlight peeks through gaps in the clouds.
|
|
Ancient oak trees frame the property, their branches swaying in the gentle breeze.
|
|
At the top of three worn stone steps, the mansion's front door waits under a sagging porch roof.
|
|
The porch boards are swollen with rain, each one bending under your weight before it remembers its shape.
|
|
A brass knocker hangs at eye level, polished bright at the edges where countless hands have touched it and left no warmth behind.
|
|
The letter in your pocket presses against your ribs.
|
|
You remember the last line now: come before the clocks learn your name.
|
|
Somewhere above you, behind a blind upper window, a pale shape passes from left to right and is gone.
|
|
You tell yourself it was a reflection, then look back at the path and find no light behind you bright enough to make one.
|
|
The house waits.
|
|
When you reach for the handle, it turns before your fingers touch it, and the door opens {{sfx:squeaky-door.ogg}} with a long, complaining squeak.
|
|
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
|