openthebox/content/adventures/pirate/intro.lor
Samuel Bouchet 04894a4906 Initial project setup: Open The Box CLI game
- .NET 10 console app with Spectre.Console and Loreline integration
- Black Box Sim architecture (simulation separated from presentation)
- Progressive CLI rendering (9 phases from basic to full layout)
- 25+ box definitions with weighted loot tables
- 100+ item definitions (meta, cosmetics, materials, adventure tokens)
- 9 Loreline adventures (Space, Medieval, Pirate, etc.)
- Bilingual content (EN/FR)
- Save/load system
- Game Design Document
2026-03-10 18:24:01 +01:00

277 lines
13 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
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
-> .