- Fix Loreline parsing: escape quotes in dialogue, remove [if] bracket syntax, remove # in text conflicting with tags - Add French accents to all 9 .fr.lor translation files (hundreds of fixes) - Fix cosmetic equip display: use item nameKey lookup instead of constructing key from cosmeticValue (fixes StardustLegendary MISSING) - Deduplicate cosmetics in appearance menu - Localize all hardcoded strings (welcome, inventory, adventure, cosmetic) - Add new tests: Loreline parsing (19), cosmetic slot keys, slot+value uniqueness (302 total, 0 failures)
245 lines
13 KiB
Text
245 lines
13 KiB
Text
// Microscopic Adventure - Open The Box
|
|
// Theme: Cells are tiny boxes. Biology is just box logistics.
|
|
|
|
character cellina
|
|
name: Dr. Cellina
|
|
role: Biologist
|
|
|
|
character mike
|
|
name: Mitochondria Mike
|
|
role: Personified Organelle
|
|
|
|
state
|
|
sciencePoints: 0
|
|
cellsExplored: 0
|
|
mikeHappiness: 30
|
|
rebranded: false
|
|
|
|
beat Intro
|
|
The shrink ray hums. You're wearing a lab coat that's about to become very, very small. #intro-hum
|
|
cellina: Initiating cellular-scale reduction in 3... 2... 1... #cellina-count
|
|
The world goes white, then enormous, then incomprehensible. #intro-shrink
|
|
When your vision clears, you're floating in a warm, amber-colored fluid. #intro-floating
|
|
cellina: Welcome to the inside of a human cell! Also known as... a box. A tiny, squishy box. #cellina-welcome
|
|
cellina: I've been studying cells for fifteen years, and one day it hit me: they're just boxes. #cellina-studying
|
|
cellina: Membrane walls, contents inside, specific opening mechanisms. Cells are BOXES. #cellina-membrane
|
|
sciencePoints += 5
|
|
|
|
choice
|
|
Look around the cell #opt-look
|
|
cellsExplored += 1
|
|
-> LookAround
|
|
Ask Dr. Cellina to explain further #opt-explain
|
|
sciencePoints += 10
|
|
-> CellinaExplains
|
|
Swim toward the big glowing thing #opt-swim
|
|
-> SwimToNucleus
|
|
|
|
beat CellinaExplains
|
|
cellina: Think about it. The cell membrane is the box walls. Selective permeability is the lock. #cellina-walls
|
|
cellina: The nucleus is a box inside the box. Mitochondria are tiny power boxes. #cellina-nucleus
|
|
cellina: The endoplasmic reticulum is... okay, that one's more of a crumpled sheet, but MOSTLY boxes. #cellina-er
|
|
cellina: Even vesicles -- those little transport bubbles -- they're just round boxes. Don't let the shape fool you. #cellina-vesicles
|
|
sciencePoints += 10
|
|
-> LookAround
|
|
|
|
beat SwimToNucleus
|
|
You swim toward the large, glowing sphere in the center. The nucleus. #swim-nucleus
|
|
cellina: Careful! That's the nucleus -- the box that contains the instruction manual for building MORE boxes! #cellina-careful
|
|
cellina: Also known as DNA. But I prefer \"Box Assembly Instructions.\" #cellina-dna
|
|
cellsExplored += 1
|
|
-> MeetMike
|
|
|
|
beat LookAround
|
|
The cell is vast at this scale. Organelles float past like furniture in a furnished box. #look-vast
|
|
cellina: Over there is the Golgi apparatus -- the cell's shipping department. It packages things into smaller boxes and mails them. #cellina-golgi
|
|
cellina: It's literally a box that puts things in boxes. Peak box efficiency. #cellina-peak
|
|
A small, bean-shaped organelle zooms past, muttering. #look-bean
|
|
cellina: And THAT would be a mitochondrion. They're usually not this chatty. #cellina-chatty
|
|
-> MeetMike
|
|
|
|
beat MeetMike
|
|
The mitochondrion stops in front of you. It has a face. It should not have a face. #mike-face
|
|
mike: Oh great. More visitors. Let me guess -- you're here to call me the \"powerhouse of the cell.\" #mike-powerhouse
|
|
mike: Go ahead. Say it. Everyone does. It's literally the only thing anyone knows about me. #mike-say
|
|
cellina: Mike, these are researchers. Be nice. #cellina-nice
|
|
mike: \"Be nice,\" she says. I generate ATP for BILLIONS of cellular processes and all I get is ONE Wikipedia sentence! #mike-atp
|
|
|
|
choice
|
|
Call him the powerhouse of the cell (he's asking for it) #opt-powerhouse
|
|
mikeHappiness -= 20
|
|
-> PowerhouseReaction
|
|
Suggest a new title for Mike #opt-newtitle
|
|
mikeHappiness += 20
|
|
-> NewTitle
|
|
Ask Mike about his job #opt-job
|
|
sciencePoints += 10
|
|
-> MikeJob
|
|
|
|
beat PowerhouseReaction
|
|
mike: You did it. You actually said it. I'm dying inside. Well, I'm always dying inside. I have a 10-day lifespan. #mike-dying
|
|
mike: Do you know how many organelles are in a cell? THOUSANDS. And I'm the only one with a catchphrase. #mike-catchphrase
|
|
mike: The Golgi apparatus doesn't have to deal with this. Nobody even remembers the Golgi apparatus. #mike-golgi
|
|
cellina: I remember the Golgi apparatus. #cellina-golgi-2
|
|
mike: YOU'RE A BIOLOGIST, CELLINA. YOU DON'T COUNT. #mike-dontcount
|
|
-> BoxTheory
|
|
|
|
beat NewTitle
|
|
mike: A new title? You'd do that for me? #mike-newtitle
|
|
mike: I've been workshopping some options. How about: \"The Box Opener of the Cell\"? #mike-boxopener
|
|
mike: Because that's what I DO! I open molecular boxes of glucose and release the energy inside! #mike-glucose
|
|
mike: I'm not a powerhouse. I'm a box opener. The ORIGINAL box opener. #mike-original
|
|
cellina: That's... actually scientifically accurate. ATP synthesis IS essentially unboxing chemical energy. #cellina-accurate
|
|
mikeHappiness += 30
|
|
rebranded = true
|
|
-> BoxTheory
|
|
|
|
beat MikeJob
|
|
mike: Fine, you want to know what I actually do? I'll tell you what I actually do. #mike-fine
|
|
mike: Glucose comes in -- that's a box of energy, by the way. A molecular box. #mike-glucosebox
|
|
mike: I crack it open through a series of chemical reactions. Krebs cycle, electron transport chain, the works. #mike-krebs
|
|
mike: And what comes out? ATP. Which is ANOTHER box. A box of usable energy. #mike-atpbox
|
|
mike: I'm a box that opens boxes to make other boxes. My entire existence is BOX LOGISTICS. #mike-logistics
|
|
cellina: Mike, that was the most passionate biochemistry lecture I've ever heard. #cellina-passionate
|
|
sciencePoints += 15
|
|
mikeHappiness += 10
|
|
-> BoxTheory
|
|
|
|
beat BoxTheory
|
|
cellina: Mike actually raises a good point. Let's look at cellular biology through the box framework. #cellina-framework
|
|
cellina: DNA is stored in the nucleus -- a box. It's read by ribosomes -- tiny box-reading machines. #cellina-ribosomes
|
|
cellina: Proteins are folded into specific shapes -- essentially, origami boxes. Each shape is a function. #cellina-proteins
|
|
sciencePoints += 10
|
|
cellsExplored += 1
|
|
mike: And when a cell divides? It's one box becoming TWO boxes! Mitosis is just box multiplication! #mike-mitosis
|
|
|
|
choice
|
|
Explore the nucleus up close #opt-nucleus
|
|
cellsExplored += 1
|
|
-> ExploreNucleus
|
|
Visit the cell membrane #opt-membrane
|
|
cellsExplored += 1
|
|
-> CellMembrane
|
|
Ask what happens when a box-cell goes wrong #opt-wrong
|
|
-> CellGoneWrong
|
|
|
|
beat ExploreNucleus
|
|
You approach the nucleus. Its double membrane is like a box within a box. Security through redundant boxing. #nucleus-approach
|
|
cellina: The nuclear envelope. Two membranes. It's a box with a backup box. #cellina-envelope
|
|
Inside, chromosomes are neatly arranged. They look like instruction manuals, tightly folded. #nucleus-chromosomes
|
|
mike: Each chromosome is a chapter in the instruction book for building a human. #mike-chapter
|
|
mike: And what is a human? A very large, very complicated, self-moving box. #mike-human
|
|
cellina: I can't even argue with that. We're bipedal boxes filled with smaller boxes. #cellina-bipedal
|
|
sciencePoints += 15
|
|
-> CellMembrane
|
|
|
|
beat CellMembrane
|
|
You swim to the cell membrane -- the outer wall of this biological box. #membrane-swim
|
|
cellina: The membrane is selectively permeable. It decides what goes in and out. #cellina-permeable
|
|
cellina: It's a box that chooses who gets to open it. The most security-conscious box in nature. #cellina-security
|
|
mike: Ion channels are the locks. Receptor proteins are the keys. #mike-channels
|
|
mike: And sometimes, the box lets in a virus by accident because the virus has a fake key. #mike-virus
|
|
mike: Box security isn't perfect. Nothing is. Not even boxes. #mike-imperfect
|
|
sciencePoints += 10
|
|
-> VirusAlert
|
|
|
|
beat CellGoneWrong
|
|
cellina: When a cell goes wrong? That's when the box breaks. #cellina-breaks
|
|
cellina: Cancer, for instance. That's a box that forgot how to stop copying itself. #cellina-cancer
|
|
cellina: It just keeps making boxes. Boxes on boxes on boxes. No quality control. #cellina-quality
|
|
mike: It's a production line with no off switch. The box equivalent of reply-all. #mike-replyall
|
|
cellina: That's... a surprisingly apt analogy, Mike. #cellina-apt
|
|
sciencePoints += 10
|
|
-> VirusAlert
|
|
|
|
beat VirusAlert
|
|
An alarm sounds. Or rather, the cell starts vibrating in a concerning way. #virus-alarm
|
|
cellina: Oh no. The cell is under attack! #cellina-attack
|
|
mike: VIRUS! A virus is trying to get in! It's disguised as a delivery box! #mike-virus-alert
|
|
mike: This is why I have trust issues! Everything LOOKS like a legitimate box but some boxes are LIARS! #mike-trust
|
|
A virus particle -- tiny, geometric, and menacing -- latches onto the membrane. #virus-latch
|
|
cellina: It's trying to inject its contents. It's an evil box delivering evil instructions! #cellina-evil
|
|
|
|
choice
|
|
Help the cell fight the virus #opt-fight
|
|
-> FightVirus
|
|
Observe the immune response scientifically #opt-observe
|
|
sciencePoints += 15
|
|
-> ObserveResponse
|
|
Ask Mike to do something #opt-ask-mike
|
|
mikeHappiness += 10
|
|
-> MikeToTheRescue
|
|
Carefully extract the virus with surgical precision|||Your hands are remarkably steady -- perhaps steady enough for microscopic work... #opt-surgery if hasStat("Dexterity", 10)
|
|
-> MicroscopicSurgeon
|
|
|
|
beat MicroscopicSurgeon
|
|
markSecretBranch("microscopic_surgeon")
|
|
Your hands move with impossible precision. At this scale, a nanometer of error means disaster. You don't make errors. #surgeon-hands
|
|
You pinch the virus between two fingers and gently peel it from the membrane receptor, like removing a sticker without tearing it. #surgeon-peel
|
|
cellina: That's... that's not possible. You just performed manual phagocytosis. With your FINGERS. #cellina-fingers
|
|
mike: I've seen a lot of things inside this cell. Someone hand-removing a virus like a splinter is a new one. #mike-splinter
|
|
cellina: The receptor isn't even damaged. That's like picking a lock without scratching it. At the MOLECULAR level. #cellina-lock
|
|
mike: Can you do that to the weird protein that's been stuck in the Golgi for three days? Asking for a friend. The friend is me. #mike-friend
|
|
sciencePoints += 20
|
|
mikeHappiness += 15
|
|
-> GrandRealization
|
|
|
|
beat FightVirus
|
|
You grab a nearby antibody -- it's shaped like a Y, which is just a box with arms -- and hurl it at the virus. #fight-hurl
|
|
cellina: That's not how immunology works, but I appreciate the enthusiasm! #cellina-immunology
|
|
The antibody latches onto the virus, neutralizing it. The membrane holds. #fight-latches
|
|
mike: Box integrity maintained! The cell is safe! #mike-safe
|
|
sciencePoints += 10
|
|
-> GrandRealization
|
|
|
|
beat ObserveResponse
|
|
You watch as the cell's defense mechanisms activate. White blood cells approach from outside. #observe-defense
|
|
cellina: Macrophages! The immune system's cleanup crew! They're essentially boxes that eat other boxes! #cellina-macrophages
|
|
A macrophage engulfs the virus. It's like watching a box swallow a smaller box. #observe-engulf
|
|
cellina: Phagocytosis. A box consuming a box. It's boxes all the way down, even in immunology. #cellina-phagocytosis
|
|
sciencePoints += 20
|
|
-> GrandRealization
|
|
|
|
beat MikeToTheRescue
|
|
mike: You want ME to fight the virus? I'm a MITOCHONDRION! I make energy! I don't DO combat! #mike-combat
|
|
mike: But you know what? Fine! I'll generate so much ATP that this cell will be INVINCIBLE! #mike-invincible
|
|
Mike starts glowing. Brighter. BRIGHTER. The cell fills with energy. #mike-glowing
|
|
cellina: Mike is over-producing ATP! The cell has so much energy it's... vibrating the virus off! #cellina-vibrating
|
|
The virus detaches and floats away, defeated by sheer metabolic enthusiasm. #mike-defeated
|
|
mikeHappiness += 30
|
|
mike: That's right! Nobody messes with the Box Opener of the Cell! #mike-nobody
|
|
-> GrandRealization
|
|
|
|
beat GrandRealization
|
|
The crisis passes. The cell calms down. You float in the warm cytoplasm, thinking. #realization-float
|
|
cellina: You know, I started this research to understand cells. But what I've really learned is about boxes. #cellina-learned
|
|
cellina: Every cell is a box. Every organelle is a box within a box. #cellina-every
|
|
cellina: Life itself is just... boxes organizing other boxes to make more boxes. #cellina-life
|
|
mike: And at the center of every box, there's a smaller box trying to be taken seriously. #mike-center
|
|
cellina: Is that a metaphor, Mike? #cellina-metaphor
|
|
mike: Everything is a metaphor when you're a sentient organelle having a conversation inside a human body. #mike-everything
|
|
sciencePoints += 10
|
|
|
|
if rebranded
|
|
mike: But at least I'm not \"the powerhouse\" anymore. I'm the Box Opener. And I'm proud. #mike-proud
|
|
mike: When we get back to normal size, I want business cards. Tiny, tiny business cards. #mike-cards
|
|
|
|
-> Ending
|
|
|
|
beat Ending
|
|
cellina: Time to return to normal size. Initiating expansion sequence. #ending-expand
|
|
The world blurs, shrinks, and then snaps back to normal. You're in the lab. Full-sized. Still wearing the lab coat. #ending-lab
|
|
cellina: Science points earned: $sciencePoints. Cells explored: $cellsExplored. #cellina-stats
|
|
cellina: Mike happiness level: $mikeHappiness. #cellina-mike
|
|
|
|
if mikeHappiness > 60
|
|
cellina: Mike seems happy. For a mitochondrion. His ATP output has increased 40%. #cellina-happy
|
|
cellina: Turns out, organelle morale affects cellular performance. I should publish that. #cellina-publish
|
|
else
|
|
cellina: Mike is still grumpy. But he's always been grumpy. It's part of his charm. #cellina-grumpy
|
|
|
|
cellina: You know what I've learned today? #cellina-today
|
|
cellina: Biology isn't about cells, or DNA, or evolution. #cellina-biology
|
|
cellina: It's about boxes. Tiny, beautiful, impossibly complex boxes that somehow became alive. #cellina-boxes
|
|
cellina: And one of those boxes really, really wants a new nickname. #cellina-nickname
|
|
-> .
|