openthebox/content/adventures/pirate/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

292 lines
14 KiB
Text

// Pirate Adventure - Open The Box
// Theme: High seas treasure hunting, but the treasure is always boxes
character captain
name: Blackbeard the Unboxable
role: Pirate Captain
character mate
name: Linu
role: First Mate
state
doubloons: 30
boxesFound: 0
crewMorale: 50
hasMap: false
betrayed: false
beat Intro
The salty wind hits your face as you stand on the deck of The Corrugated Corsair. #intro-wind
captain: Arrr! Welcome aboard, ye scurvy landlubber! #captain-welcome
captain: I be Blackbeard the Unboxable! They call me that because no box can contain me! #captain-name
mate: They call him that because he can't figure out how to open boxes, Captain. #mate-truth
captain: LINU! What have I told ye about telling the truth?! #captain-truth
mate: That it's "mutiny with extra steps," Captain. #mate-mutiny
choice
Ask about the mission #opt-mission
-> MissionBrief
Ask why the ship is made of cardboard #opt-cardboard
-> CardboardShip
Attempt to leave immediately #opt-leave
-> CantLeave
beat CardboardShip
captain: The Corrugated Corsair is made from the finest triple-wall cardboard! #captain-corsair
captain: She's waterproof! Mostly. Don't touch the starboard side. Or breathe on it. #captain-waterproof
mate: We've lost three deckhands to structural dampness this week. #mate-dampness
captain: They knew the risks when they signed up for a cardboard pirate ship. #captain-risks
-> MissionBrief
beat CantLeave
You turn toward the gangplank. It's gone. It was also made of cardboard. A seagull ate it. #leave-gangplank
captain: Ha! No one leaves Blackbeard's crew! Mostly because the exit dissolved! #captain-noleave
mate: We really should switch to wood, Captain. #mate-wood
captain: NEVER! Cardboard or death! #captain-death
-> MissionBrief
beat MissionBrief
captain: We be searching for the legendary Treasure Box of the Seven Seas! #captain-treasure
captain: A box so valuable, it contains ALL other boxes! The mother of all boxes! #captain-mother
mate: Supposedly. The map was found inside a box, so its reliability is questionable. #mate-map
captain: Every map is found inside SOMETHING, Linu! That's how maps work! #captain-maps
hasMap = true
The captain unfurls a map. It's just a drawing of a box with an X on it. #mission-unfurl
choice
Follow the map as-is #opt-follow
-> FollowMap
Suggest the map might be upside down #opt-upside
-> UpsideDown
Question whether a box drawing constitutes a map #opt-question
-> QuestionMap
Stomp your leg on the deck with authority|||Your sea legs might earn some respect around here... #opt-pegleg [if hasEquipped("legs", "PegLeg")]
-> OneOfUs
beat OneOfUs
markSecretBranch("pirate_one_of_us")
You stomp your peg leg on the cardboard deck. It makes a deeply satisfying THUNK. #pegleg-stomp
The entire crew goes silent. Then Blackbeard's eyes widen. #pegleg-eyes
captain: That sound... that THUNK... ye have a PEG LEG! #captain-pegleg
captain: Linu! This one's got the leg! THE LEG! They're one of US! #captain-one
mate: The crew is going wild, Captain. They haven't been this excited since we found that box of rum. #linu-excited
captain: Forget the map! This changes everything! A peg-legged sailor on a cardboard ship -- that's DESTINY! #captain-destiny
captain: Ye get double rations! And by rations I mean cardboard, but DOUBLE cardboard! #captain-rations
crewMorale += 30
boxesFound += 1
-> FollowMap
beat QuestionMap
captain: Of course it's a map! It has an X! #captain-x
mate: Captain, you drew the X yourself. Five minutes ago. In crayon. #mate-crayon
captain: It was TACTICAL crayon, Linu! #captain-crayon
mate: There's no such thing as tactical crayon. #mate-tactical
captain: There is now! I just invented it! Innovation, Linu! #captain-innovation
crewMorale -= 10
-> FollowMap
beat UpsideDown
You rotate the map 180 degrees. It looks exactly the same because it's just a square. #upside-rotate
captain: By Davy Jones' Box Collection! The map was upside down the whole time! #captain-jones
mate: Captain, it's a square. It looks the same from every angle. #mate-square
captain: That's what makes it such a CLEVER map! #captain-clever
crewMorale += 10
-> FollowMap
beat FollowMap
The Corrugated Corsair sets sail across the Cardboard Sea. #follow-sail
After two days of sailing, you spot something on the horizon. #follow-horizon
mate: Captain! Land ho! Or... box ho? It appears to be a floating box. #mate-landho
captain: A floating box in the ocean? That's either our treasure or our lunch. #captain-floating
captain: The crew has been eating boxes for days. We're running low on provisions. #captain-provisions
mate: We're running low on ship, too. Someone ate part of the hull. #mate-hull
choice
Sail toward the floating box #opt-sail-toward
-> FloatingBox
Fire a cannon at it first #opt-cannon if doubloons > 10
doubloons -= 10
-> FireCannon
Send Linu to investigate in a rowboat #opt-send-linu
-> LinuInvestigates
beat FireCannon
captain: FIRE THE CARDBOARD CANNONS! #captain-fire
The cannon makes a "pffft" sound and launches a cardboard ball approximately twelve feet. #cannon-pffft
It lands in the water with a soft, disappointing splash. #cannon-splash
mate: Effective range: twelve feet. Effective damage: emotional. #mate-range
captain: The enemy doesn't know our cannons are useless! That's our advantage! #captain-advantage
-> FloatingBox
beat LinuInvestigates
Linu rows out to the box in a tiny boat made of -- you guessed it -- cardboard. #linu-rows
mate: It's a crate, Captain! Marked "Property of the Seven Seas Box Co." #linu-crate
mate: Also, my boat is dissolving. Permission to hurry? #linu-dissolving
captain: Permission granted! Save the box first, though! #captain-savebox
mate: Before me?! #linu-before
captain: Priorities, Linu! #captain-priorities
boxesFound += 1
-> FloatingBox
beat FloatingBox
You pull alongside the mysterious floating box. It's enormous. Waterlogged but intact. #floating-pull
captain: This be it! The Treasure Box of the Seven Seas! #captain-thisbe
mate: How can you tell? #linu-how
captain: It says "Treasure Box of the Seven Seas" on the side. #captain-says
mate: Oh. That IS convenient. #linu-convenient
boxesFound += 1
choice
Open the treasure box immediately #opt-open-treasure
-> OpenTreasure
Check for traps first #opt-check-traps
-> CheckTraps
Claim the box without opening it -- it's worth more sealed #opt-sealed
-> SealedBox
beat CheckTraps
You examine the box carefully. There's a small warning label. #traps-examine
The label reads: "WARNING: Contents may contain more boxes. And also a kraken." #traps-label
mate: A kraken? In a box? #linu-kraken
captain: That's how they ship 'em these days. Free-range krakens are expensive. #captain-kraken
crewMorale -= 10
-> OpenTreasure
beat SealedBox
captain: Brilliant! A sealed box is worth ten opened ones! That's pirate economics! #captain-economics
mate: That's not how economics works. #linu-economics
captain: What are ye, a pirate or an accountant? #captain-accountant
mate: Currently? An accountant. Someone has to manage our negative doubloon balance. #linu-accountant
You secure the sealed box in the cargo hold. It rattles suspiciously. #sealed-rattles
-> RivalPirates
beat OpenTreasure
You pry open the massive treasure box. Inside, there are... #open-pry
captain: MORE BOXES! #captain-moreboxes
Indeed. Hundreds of smaller boxes, stacked neatly. Each labeled with a different sea. #open-hundreds
mate: "Adriatic Box." "Caribbean Box." "That Puddle Behind Gary's House Box." #linu-labels
captain: Seven seas, hundreds of boxes. The math checks out. Pirate math, anyway. #captain-math
boxesFound += 3
choice
Open all the smaller boxes #opt-open-all
-> OpenAllBoxes
Take them back to port to sell #opt-sell
doubloons += 50
-> RivalPirates
Build a raft out of the boxes since the ship is sinking #opt-raft if crewMorale < 40
-> BoxRaft
beat OpenAllBoxes
You spend the next four hours opening boxes. Your hands are covered in cardboard cuts. #openall-hours
Each box contains a smaller box. It's boxes all the way down. #openall-alltheway
captain: We're rich! Rich in BOXES! #captain-rich
mate: We can't spend boxes, Captain. #linu-spend
captain: Not with THAT attitude! #captain-attitude
At the very bottom of the last box, you find a single gold doubloon and a note. #openall-note
The note reads: "IOU - One Treasure. Sorry, the kraken needed it." #openall-iou
doubloons += 1
-> RivalPirates
beat BoxRaft
The ship is taking on water. Specifically, it's becoming water, because it's cardboard. #raft-water
mate: Captain, the ship is dissolving! #linu-ship
captain: Then we BUILD! From the treasure boxes! A new ship! A BOX SHIP! #captain-build
mate: As opposed to our current box ship? #linu-current
captain: A BETTER box ship! With LAMINATION! #captain-lamination
You construct a surprisingly seaworthy raft from the treasure boxes. #raft-construct
crewMorale += 20
-> RivalPirates
beat RivalPirates
A ship appears on the horizon. A WOODEN ship. How luxurious. #rival-appears
captain: Rival pirates! It's Captain Unboxinator and his crew! #captain-rival
mate: They have real cannons, Captain. And a ship that doesn't dissolve. #linu-real
captain: Details! #captain-details
The rival ship pulls alongside. Their captain, a large woman with a crowbar for a hand, grins. #rival-pulls
She shouts across the water: "Hand over your boxes, Blackbeard!" #rival-shouts
choice
Fight the rival pirates #opt-fight
-> SeaBattle
Negotiate a trade #opt-negotiate if doubloons > 20
doubloons -= 20
-> Negotiate
Challenge them to a box-opening race #opt-race
-> BoxRace
beat SeaBattle
captain: Battle stations! Load the cardboard cannons! #captain-stations
mate: Captain, they're laughing at us. #linu-laughing
captain: Good! Laughter is the enemy of focus! While they laugh, we... throw boxes at them! #captain-throw
You hurl boxes at the rival ship. One hits their captain in the face. #battle-hurl
She's momentarily stunned. Not by the impact -- by the audacity. #battle-stunned
boxesFound += 1
crewMorale += 20
-> TwistEnding
beat Negotiate
captain: Perhaps we can reach a... box-ness arrangement? #captain-arrangement
The rival captain narrows her eyes. She considers. #negotiate-considers
She responds: "Half your boxes. And that weird map you drew in crayon." #rival-half
captain: You can have the boxes. But the crayon map is MY intellectual property! #captain-ip
mate: Let it go, Captain. #linu-letitgo
boxesFound -= 1
-> TwistEnding
beat BoxRace
captain: A box-opening race! First crew to open fifty boxes wins! #captain-race
The rival captain agrees. She's confident. Her crew has real tools. #race-agrees
But your crew has DESPERATION. And cardboard cuts have made your fingers incredibly nimble. #race-desperation
The race begins. Boxes fly open left and right. Cardboard confetti fills the air. #race-begins
You win by a single box. The last box contains a rubber duck. Nobody knows why. #race-duck
boxesFound += 5
crewMorale += 30
-> TwistEnding
beat TwistEnding
As the rival pirates retreat (or celebrate, depending on the outcome), Linu pulls you aside. #twist-aside
mate: Look at the bottom of the treasure box, Captain. There's a hidden compartment. #linu-hidden
You open the hidden compartment. Inside: a single, perfect, golden box. #twist-golden
captain: The REAL Treasure Box of the Seven Seas! #captain-realbox
mate: What's inside it? #linu-inside
captain: Linu, I've been a pirate for thirty years. I've opened ten thousand boxes. #captain-thirty
captain: And I've learned one thing: it's never about what's inside the box. #captain-lesson
choice
Open the golden box anyway #opt-open-golden
-> FinalReveal
Keep it sealed forever #opt-keep-sealed
-> KeepSealed
beat FinalReveal
You open the golden box. Inside, there's a mirror. #reveal-mirror
You see your own reflection staring back at you. #reveal-reflection
captain: The real treasure... was us? #captain-us
mate: No, Captain. It's literally just a mirror. Someone put a mirror in a box. #linu-mirror
captain: A METAPHORICAL mirror, Linu! #captain-metaphor
mate: It's a regular mirror. I can see the price tag. It cost three doubloons. #linu-pricetag
captain: The cheapest treasures are the most priceless! #captain-priceless
mate: That's... not even slightly true. #linu-nottrue
-> Ending
beat KeepSealed
captain: This box shall remain sealed! For all eternity! Or until someone gets curious! #captain-sealed
mate: So... about five minutes, then? #linu-fiveminutes
captain: Probably less. I'm already curious. #captain-curious
captain: But a good pirate knows that some boxes are better left unopened. #captain-good
captain: And I am a terrible pirate. So I'll open it Tuesday. #captain-tuesday
-> Ending
beat Ending
The sun sets over the Cardboard Sea. Your adventure draws to a close. #ending-sunset
captain: We found boxes! We opened boxes! We ARE boxes! #captain-summary
mate: We're not boxes, Captain. #linu-notboxes
captain: Speak for yourself, Linu. I've always identified as a shipping container. #captain-container
mate: Boxes found today: $boxesFound. Ship structural integrity: questionable. #linu-log
mate: Doubloons remaining: $doubloons. Captain's sanity: also questionable. #linu-sanity
captain: Set course for the next adventure, Linu! There are always more boxes on the horizon! #captain-next
mate: The horizon is sinking, Captain. Along with our ship. #linu-sinking
captain: Then we'll sink WITH STYLE! #captain-style
-> .