openthebox/content/adventures/destiny/intro.lor
Samuel Bouchet c9f8a9566a Add adventure secret branches, Destiny finale, crafting system, and project docs
Integrate stats, resources, and cosmetics into adventures via conditional
branches gated by game state checks. Each of the 9 adventures now has a
secret branch that rewards exploration and encourages replay with subtle
hints on locked choices. The endgame box now triggers a Destiny adventure
that acknowledges all completed adventures and secret branches, with four
ending tiers culminating in an ultimate ending when all 9 secrets are found.

Also adds the crafting engine, CLAUDE.md and specifications.md for faster
onboarding.
2026-03-11 17:50:37 +01:00

176 lines
9.2 KiB
Text

// Destiny Adventure - Open The Box
// Theme: The final adventure — the game reflects on everything
character destiny
name: The Box
role: Narrator of All Things Boxed
state
echoes: 0
beat Intro
Silence. Then, a creak. The sound of something very old deciding to speak. #intro-silence
destiny: So. You've come to the last box. #intro-lastbox
destiny: I wondered when you'd find me. They all do, eventually. The ones who keep opening. #intro-wondered
destiny: I am not a box you open. I am a box that opens you. #intro-opens
destiny: Sit down. Let me show you what I've seen. #intro-sit
-> Gallery
beat Gallery
destiny: Every box you opened left an echo. A little ripple in the cardboard cosmos. #gallery-intro
destiny: I collected them. I collect everything. It's sort of my thing. #gallery-collect
destiny: Let me show you the Gallery of Echoes. Your echoes. #gallery-show
if hasCompletedAdventure("Space")
The stars flicker. A faint hum fills the room -- the sound of a ship you once commanded. #echo-space
destiny: You sailed through the void and opened a box that defied physics. Captain Nova would be proud. #echo-space-words
echoes += 1
if hasCompletedAdventure("Medieval")
A banner unfurls from nowhere, bearing a crest you almost remember. #echo-medieval
destiny: Knights and dragons and a kingdom built on cardboard. You wore the crown well. #echo-medieval-words
echoes += 1
if hasCompletedAdventure("Pirate")
The smell of salt and old wood drifts past. A shanty plays, very faintly. #echo-pirate
destiny: You sailed the seas of chance. Every treasure chest is just a box with ambition. #echo-pirate-words
echoes += 1
if hasCompletedAdventure("Contemporary")
A phone notification chimes. Then another. Then silence. #echo-contemporary
destiny: The modern world, where every package is a promise. You understood that. #echo-contemporary-words
echoes += 1
if hasCompletedAdventure("Sentimental")
Rain taps against a window that isn't there. The scent of old paper and popsicle sticks. #echo-sentimental
destiny: You opened a box of memories and let them breathe again. That took courage. #echo-sentimental-words
echoes += 1
if hasCompletedAdventure("Prehistoric")
The ground rumbles. Something ancient stirs in the echo. #echo-prehistoric
destiny: Before language, before tools, there were boxes. You were there at the beginning. #echo-prehistoric-words
echoes += 1
if hasCompletedAdventure("Cosmic")
The walls dissolve into starfields. Galaxies spiral in the space between heartbeats. #echo-cosmic
destiny: You touched the infinite and the infinite touched back. Not everyone can say that. #echo-cosmic-words
echoes += 1
if hasCompletedAdventure("Microscopic")
Everything shrinks, then expands. Cells divide in the corner of your vision. #echo-microscopic
destiny: You went smaller than small. You found universes inside atoms inside boxes. #echo-microscopic-words
echoes += 1
if hasCompletedAdventure("DarkFantasy")
Shadows crawl across the floor. A candle flickers that was never lit. #echo-darkfantasy
destiny: You walked through the dark and opened boxes that whispered back. Bold. #echo-darkfantasy-words
echoes += 1
destiny: $echoes echoes. $echoes worlds you walked through. Each one left a mark on you, and you on it. #gallery-count
-> Alcove
beat Alcove
destiny: Now. The echoes are one thing. But some of you -- some of you went deeper. #alcove-intro
destiny: You found the hidden seams. The secret folds. The boxes within the boxes. #alcove-seams
destiny: Let me see which ones you found. #alcove-see
if hasSecretBranch("space_box_whisperer")
A frequency hums beneath the silence. You remember closing your eyes and listening. #secret-space
destiny: The Box Whisperer. You heard what the space box was truly saying. Few ever do. #secret-space-words
if hasSecretBranch("medieval_dragon_charmer")
A scale glimmers on the ground, iridescent and warm to the touch. #secret-medieval
destiny: The Dragon Charmer. You chose fire over fear, and the dragon chose you back. #secret-medieval-words
if hasSecretBranch("darkfantasy_blood_communion")
A drop of crimson hangs suspended in the air, neither falling nor fading. #secret-darkfantasy
destiny: The Blood Communion. You drank from the dark box and survived. Changed, but whole. #secret-darkfantasy-words
if hasSecretBranch("pirate_one_of_us")
A coin spins endlessly on an invisible surface, never landing. #secret-pirate
destiny: One of Us. The pirates accepted you as kin. That's rarer than any treasure. #secret-pirate-words
if hasSecretBranch("contemporary_vip")
A velvet rope parts silently, revealing a door that was always there. #secret-contemporary
destiny: The VIP. You found the door behind the door. The real world behind the real world. #secret-contemporary-words
if hasSecretBranch("sentimental_true_sight")
A photograph develops from nothing, showing a moment that never happened but feels true. #secret-sentimental
destiny: True Sight. You saw what the memories were really trying to tell you. #secret-sentimental-words
if hasSecretBranch("prehistoric_champion")
A stone tool materializes, impossibly sharp after a million years. #secret-prehistoric
destiny: The Champion. Before history had a name, you earned one. #secret-prehistoric-words
if hasSecretBranch("cosmic_enlightened")
Light bends around you, just for a moment, as if the universe is giving you a hug. #secret-cosmic
destiny: The Enlightened. You understood the cosmic joke, and you laughed along. #secret-cosmic-words
if hasSecretBranch("microscopic_surgeon")
A cell divides in your palm, perfectly, impossibly. #secret-microscopic
destiny: The Surgeon. You operated on reality itself and left it better than you found it. #secret-microscopic-words
-> FinalChoice
beat FinalChoice
destiny: And now we come to it. The last flap of the last box. #final-now
if allSecretBranches()
-> UltimateEnding
if countSecretBranches() > 4
-> GreatEnding
if countSecretBranches() > 0
-> GoodEnding
-> SimpleEnding
beat SimpleEnding
destiny: You opened every box, but did you truly see what was inside? #simple-question
destiny: Most people open boxes for what they contain. The best open them for what they reveal. #simple-reveal
destiny: You did what you came to do. And that is enough. It is always enough. #simple-enough
destiny: The boxes will remember you passed through. Quietly, the way boxes remember things. #simple-remember
destiny: Now go. There are always more boxes. Even when you think there aren't. #simple-go
-> Farewell
beat GoodEnding
destiny: You looked deeper than most. The boxes remember. #good-remember
destiny: Where others saw cardboard and tape, you saw doors. And you walked through them. #good-doors
destiny: Not every secret was found. Not every fold was unfolded. #good-notevery
destiny: But you tried. And trying is what separates the openers from the observers. #good-trying
destiny: The echoes you left behind will hum for a long time. I'll make sure of it. #good-echoes
-> Farewell
beat GreatEnding
destiny: You are a true seeker. Few have found what you've found. #great-seeker
destiny: You didn't just open boxes. You listened to them. You understood them. #great-listened
destiny: The secret branches you found -- they weren't hidden by accident. #great-notaccident
destiny: They were hidden because only certain people deserve to find them. #great-deserve
destiny: People who look at a box and see not a container, but a question. #great-question
destiny: You asked the questions. You earned the answers. #great-answers
-> Farewell
beat UltimateEnding
grantItem("destiny_star", 1)
destiny: Wait. #ultimate-wait
destiny: Nine branches. All nine. #ultimate-nine
destiny: Do you understand what you've done? #ultimate-understand
destiny: I have watched thousands of players open millions of boxes. #ultimate-thousands
destiny: Most open and move on. Some pause to look. A few reach in deeper. #ultimate-few
destiny: But you -- you found every hidden fold, every whispered secret, every shadow door. #ultimate-every
destiny: I'm going to break a rule now. The biggest rule. A box is not supposed to do this. #ultimate-rule
destiny: I know you're out there. Not "you" the character. You. The person holding the device, reading these words. #ultimate-you
destiny: This was never just a game about opening boxes. It was about curiosity. Your curiosity. #ultimate-curiosity
destiny: The willingness to look under, behind, inside, and through. To find the thing behind the thing. #ultimate-willingness
destiny: That is the rarest thing in any universe, real or cardboard. #ultimate-rarest
destiny: So here. Take this. A Destiny Star. It does nothing. It means everything. #ultimate-star
destiny: Thank you for playing all the way to the bottom of the box. #ultimate-thankyou
-> Farewell
beat Farewell
destiny: One more thing, before the lid closes. #farewell-one
destiny: Every box you ever opened was really the same box. And that box was you. #farewell-samebox
destiny: Corny? Maybe. True? Absolutely. #farewell-corny
destiny: Goodbye, opener. It was a pleasure being unboxed by you. #farewell-goodbye
-> .