Add comprehensive example demonstrating all major features of the Storybook DSL through Lewis Carroll's Alice in Wonderland. Contents: - 12 characters (Alice, WhiteRabbit, CheshireCat, MadHatter, etc.) - 7 relationships with named participant blocks - 3 institutions (tea parties, royal court) - 1 schedule (Mad Tea Party eternal rotation) - 12 behavior trees using new syntax features - 1 life arc (Alice's journey) Demonstrates: - Cross-file template resolution (schema/templates.sb) - Template inheritance and includes - Strict template validation - Action parameters and repeater decorators - Named participant relationship blocks - Species-based character typing - Rich prose blocks throughout All content validates successfully.
228 lines
7.0 KiB
Plaintext
228 lines
7.0 KiB
Plaintext
//! Locations in Wonderland: surreal geography
|
|
|
|
use schema::core_enums::TimeState;
|
|
|
|
location RabbitHole {
|
|
depth: 1000..4000 // Miles deep, or so Alice calculates
|
|
falls_like: tunnel
|
|
lined_with: ["cupboards", "bookshelves", "maps", "pictures"]
|
|
contains_marmalade_jar: true
|
|
jar_is_empty: true
|
|
|
|
---description
|
|
A deep hole under a hedge, leading straight down like a well.
|
|
The fall is impossibly long, giving Alice time to wonder about
|
|
geography, talk to herself about Dinah the cat, and examine
|
|
the curious furnishings along the walls.
|
|
|
|
She falls so slowly (or the hole is so deep) that she has time
|
|
to take a jar labeled "ORANGE MARMALADE" from a shelf, discover
|
|
it empty, and replace it in a cupboard further down.
|
|
---
|
|
|
|
---physical_properties
|
|
Defies normal physics. The fall should be fatal but Alice lands
|
|
gently on sticks and dry leaves. The sides are inexplicably
|
|
furnished like a house. The depth is impossible.
|
|
|
|
This is the threshold between normal world and Wonderland -
|
|
logic breaks down in the tunnel itself.
|
|
---
|
|
}
|
|
|
|
location HallOfDoors {
|
|
shape: "long and low"
|
|
lit_by: "lamps hanging from roof"
|
|
number_of_doors: 20..50
|
|
all_locked: true
|
|
|
|
// The tiny door
|
|
has_tiny_door: true
|
|
tiny_door_height_inches: 15
|
|
tiny_door_leads_to: garden
|
|
|
|
// The glass table
|
|
has_glass_table: true
|
|
table_legs: 3
|
|
golden_key_on_table: true
|
|
bottle_appears_spontaneously: true
|
|
|
|
---description
|
|
A long, low hall with doors all around. All doors are locked.
|
|
Alice tries every one, walking down one side and up the other
|
|
in sadness and frustration.
|
|
|
|
A three-legged glass table holds a tiny golden key. After much
|
|
searching, Alice finds it unlocks a curtain-concealed door only
|
|
fifteen inches high. Through it, she glimpses the beautiful
|
|
garden she longs to reach.
|
|
---
|
|
}
|
|
|
|
location Garden {
|
|
beauty_level: 1.0
|
|
has_rose_trees: true
|
|
roses_should_be: red
|
|
roses_actually_are: white // Being hastily painted
|
|
has_croquet_ground: true
|
|
|
|
// Garden features
|
|
has_fountains: true
|
|
has_flower_beds: true
|
|
desirability_to_alice: 1.0
|
|
|
|
// Transformation site
|
|
where_alice_becomes_normal_size: true
|
|
|
|
---description
|
|
The lovely garden Alice glimpses through the tiny door. Filled
|
|
with bright flowers and cool fountains. Represents normalcy
|
|
and beauty in contrast to Wonderland's chaos.
|
|
|
|
Contains the Queen's croquet ground, where the beauty quickly
|
|
gives way to tyranny and absurdity as flamingos serve as
|
|
mallets and hedgehogs as balls.
|
|
---
|
|
|
|
---symbolism
|
|
The garden represents Alice's desire for order and sense.
|
|
She spends much of the early story trying to reach it,
|
|
shrinking and growing to fit through the door.
|
|
|
|
When she finally arrives, it's less paradise than she imagined -
|
|
the Queen's mad croquet game and constant execution threats
|
|
make it as chaotic as everywhere else in Wonderland.
|
|
---
|
|
}
|
|
|
|
location MadTeaPartyTable {
|
|
time_state: frozen
|
|
current_time: 18:00 // Always 6 o'clock
|
|
size: very_large
|
|
seats_occupied: 3
|
|
seats_available: 97..997
|
|
|
|
// Table state
|
|
covered_in_dirty_dishes: true
|
|
never_washed: true
|
|
rotation_direction: clockwise
|
|
|
|
// Refreshments
|
|
has_tea: true
|
|
has_wine: false // Despite March Hare's offers
|
|
has_butter: true // For watch repairs
|
|
has_bread_knife: true // To spread butter
|
|
|
|
---description
|
|
A large table set out under a tree in front of a house. Three
|
|
participants (Hatter, March Hare, Dormouse) crowd into one corner
|
|
despite abundant space.
|
|
|
|
Because Time refuses to move past six o'clock, it's always tea-time.
|
|
They never have time to wash dishes, so they rotate around the
|
|
table to clean seats as the previous ones get dirty.
|
|
---
|
|
|
|
---temporal_paradox
|
|
The table exists in a time loop. The same conversations happen
|
|
repeatedly. The same riddles are asked. The same butter is used
|
|
on the same watch.
|
|
|
|
"Suppose we change the subject" is said eternally, but the subject
|
|
never truly changes. The Dormouse tells the same story about the
|
|
treacle well forever.
|
|
---
|
|
}
|
|
|
|
location CroquetGround {
|
|
belongs_to: queen_of_hearts
|
|
terrain: "all ridges and furrows"
|
|
game_in_progress: true
|
|
rules_exist: false
|
|
|
|
// Live equipment
|
|
mallets_are: flamingos
|
|
balls_are: hedgehogs
|
|
arches_are: card_soldiers
|
|
|
|
// Game state
|
|
players_play_simultaneously: true
|
|
cheating_allowed: true // For Queen only
|
|
queen_always_wins: true
|
|
|
|
---description
|
|
The Queen's croquet ground, where the game is pure chaos.
|
|
Live flamingos serve as mallets but twist around to look at
|
|
players. Live hedgehogs serve as balls but unroll and crawl away.
|
|
Soldiers bend to form arches but walk off to other parts of the
|
|
ground.
|
|
|
|
All players play at once without waiting turns, quarreling and
|
|
fighting for hedgehogs. The Queen goes stamping about shouting
|
|
"Off with their heads!" every minute.
|
|
---
|
|
|
|
---game_theory
|
|
The game has no rules, or rather, the only rule is that the
|
|
Queen wins. The equipment is deliberately uncooperative. The
|
|
terrain is maximally difficult. Victory is impossible.
|
|
|
|
This is Wonderland's version of sport: a perfectly designed
|
|
system for generating frustration, with arbitrary authority
|
|
(the Queen) as the only arbiter.
|
|
---
|
|
}
|
|
|
|
location QueensPalace {
|
|
architectural_style: "playing card"
|
|
inhabitants: card_people
|
|
staff: ["soldiers", "courtiers", "gardeners", "cooks"]
|
|
|
|
// Court features
|
|
has_throne_room: true
|
|
has_croquet_ground: true
|
|
has_kitchens: true // Where Duchess's cook adds too much pepper
|
|
|
|
// Justice system
|
|
has_courtroom: true
|
|
presumption_of_innocence: false
|
|
sentence_before_verdict: true // "Sentence first! Verdict afterwards!"
|
|
|
|
---description
|
|
The palace of the King and Queen of Hearts. Everything is
|
|
decorated with hearts. Inhabitants are all playing cards -
|
|
soldiers (clubs), courtiers (diamonds), royalty (hearts).
|
|
|
|
The court system operates on Wonderland logic: sentences are
|
|
pronounced before verdicts, evidence is nonsensical, and the
|
|
Queen shouts for executions regardless of guilt or innocence.
|
|
---
|
|
}
|
|
|
|
location MushroomTop {
|
|
height_above_ground: 4..5 // Feet
|
|
diameter: 2..3 // Feet
|
|
mushroom_color: white_with_spots
|
|
inhabited_by: caterpillar
|
|
|
|
// Size-changing properties
|
|
one_side_makes_taller: true
|
|
other_side_makes_shorter: true
|
|
which_is_which: ambiguous // Round mushroom has no clear "sides"
|
|
|
|
// Atmosphere
|
|
hookah_smoke_present: true
|
|
philosophical_discussions: true
|
|
|
|
---description
|
|
The top of a large mushroom where the Caterpillar sits smoking
|
|
a hookah. About the same height as Alice (when she's normal-sized,
|
|
which is rare).
|
|
|
|
The mushroom has magical properties: one side makes you grow,
|
|
the other makes you shrink. Alice must figure out which is which
|
|
through dangerous experimentation, resulting in her neck growing
|
|
like a serpent at one point.
|
|
---
|
|
}
|