mirror of
https://gitlab.com/Oreolek/black_phone.git
synced 2024-07-05 16:24:30 +03:00
457 lines
16 KiB
CoffeeScript
457 lines
16 KiB
CoffeeScript
room "living-room",
|
|
title: "Living room"
|
|
enter: (character, system, from) ->
|
|
if (from == "start")
|
|
audio = document.getElementById("bgsound")
|
|
audio.currentTime=0
|
|
audio.volume = 0.5
|
|
audio.play()
|
|
ways: ["bedroom", "kitchen", "balcony"]
|
|
dsc: """
|
|
#{textlink("A book stand", "bookcase")} is hanging above #{textlink("a television set.", "tv")}
|
|
"""
|
|
objects:
|
|
window: obj "window",
|
|
act: """
|
|
The moon is full today.
|
|
It illuminates the apartment, makes the things stand out in some weird angles.
|
|
"""
|
|
dsc: "Ronald is standing in a dark room with a big {{window}}"
|
|
walls: obj "walls",
|
|
dsc: "{{The walls}} are covered with a dingy rose wallpaper."
|
|
act: """
|
|
There are colorful photographs on the walls.
|
|
A wooden house in a forest.
|
|
A village on a mountaintop.
|
|
A family sitting around a fire.
|
|
A sunset burning in a vast ocean.
|
|
A black monolith standing on sand dunes.
|
|
"""
|
|
door: obj "door",
|
|
dsc: "Oh, and {{the door Ronald came into}} the apartment is there, too."
|
|
act: (character, system) ->
|
|
if character.sandbox.box_opened == 0
|
|
writemd(system, lvl1("Ronald has a job here. It's still on."))
|
|
else
|
|
system.doLink("exitdoor")
|
|
writers:
|
|
bookcase: (character, system) ->
|
|
lvl1("""
|
|
Either Anastasia has a very conflicting taste in books, or she has no taste at all. Let's see...
|
|
#{textlink("“Soviet Black Magic: a Lost Art”,", "magic")}
|
|
#{textlink("”My Dinner with Zane”,", "zane")}
|
|
#{textlink("The Scientific Dictionary of Everything,", "dictionary")}
|
|
#{textlink("“Silent Things”,", "silent")}
|
|
#{textlink("”Also sprach Zarathustra”,", "zaratustra")}
|
|
#{textlink("”Pepperoni poker”,", "pepper")}
|
|
#{textlink("”Jazz sauce. Culinary collection”", "culinary")}
|
|
and #{textlink("Classico.", "classico")}
|
|
""")
|
|
magic: (character, system) ->
|
|
lvl2("""
|
|
”Soviet Black Magic: a Lost Art”
|
|
|
|
The author, who calls himself The Master, describes the lost art of Soviet Union *magija.*
|
|
It's mostly about illusions.
|
|
|
|
This is a cheap paperback edition, but she read this at least a couple of times.
|
|
The pages have dogged ears, and coffee stains too.
|
|
Ronald can even see a hint of lipstick smearing the variety show retelling.
|
|
""")
|
|
zane: (character, system) ->
|
|
lvl2("""
|
|
A three-part romantic urban fantasy detective about a girl who solves murders while dining
|
|
with her best werewolf friend in an Orient café.
|
|
|
|
It looks rather new, the pages are still white and straight.
|
|
Maybe she didn't catch the right moment to read this.. or maybe just forgot about it.
|
|
""")
|
|
dictionary: (character, system) ->
|
|
lvl2("""
|
|
A big fat Dictionary of Everything, issued in 1989.
|
|
Nobody reads every page of these.
|
|
Ronald doubts Anastasia got to read at least one page.
|
|
""")
|
|
silent: (character, system) ->
|
|
lvl2("""
|
|
Silent Things, a story where nothing speaks and nothing happens.
|
|
*And she actually read that.*
|
|
""")
|
|
zaratustra: (character, system) ->
|
|
if character.sandbox.seen_zaratustra?
|
|
lvl2("""
|
|
This book already gave Ronald everything he wanted.
|
|
No need to read it, not a bit.
|
|
""")
|
|
else
|
|
money(character, 20000)
|
|
lvl2("""
|
|
Nietsche's four-part novel about The Man, The Superman and everything in-between.
|
|
It's surprisingly worn down.
|
|
She took this book out a lot.
|
|
|
|
Was she secretly a philosophy nut?
|
|
An Übermensch dreamer?
|
|
|
|
No, of course not.
|
|
Ronald opens the book and finds a stash of money inside.
|
|
""")
|
|
pepper: (character, system) ->
|
|
lvl2("""
|
|
An "ironic woman detective" who plays harp and solves murders!
|
|
It's a trash book filled with blatant product placement. Looks untouched.
|
|
""")
|
|
culinary: (character, system) ->
|
|
lvl2("An old culinary book. Nothing about it.")
|
|
classico: (character, system) ->
|
|
lvl2("""
|
|
A history of classical music, from the prehistoric times to the 1970s, a brand new edition with passages about psychedelic rock.
|
|
The Bach section is bookmarked.
|
|
""")
|
|
tv: (character, system) ->
|
|
lvl1("""
|
|
An expensive 40-something inch TV standing on a stylish black stand. The room looks kinda small for that monster.
|
|
""")
|
|
|
|
room "bedroom",
|
|
title: "Bedroom"
|
|
ways: ["living-room", "kitchen", "bathroom"]
|
|
dsc: (character, system) ->
|
|
return """
|
|
The bedroom is spacious; its walls are lavender green, almost white in the moonlight.
|
|
|
|
#{textlink("A massive wardrobe", "wardrobe")} occupies one of the walls.
|
|
|
|
On the wall across #{textlink("a big bed", "bed")} hangs #{textlink("a full sized mirror.", "mirror")}
|
|
|
|
#{if character.sandbox.box_opened == 0
|
|
"On a small table near the bed is an ornate #{way_to("wooden box.", "box")}"
|
|
else ""}
|
|
"""
|
|
writers:
|
|
bed: () -> lvl1("""
|
|
A double bed with flower-embroidered sheets.
|
|
She left several days ago.
|
|
The sheets are still fresh.
|
|
""")
|
|
wardrobe: () -> lvl1("""
|
|
Anastasia's wardrobe is very high-maintenance.
|
|
It has a built-in ironing board (with an iron hanged nearby), with 5 drawer rows for #{textlink("lingerie,", "lingerie")} #{textlink("accessories", "accessories")}, #{textlink("shoes.", "shoes")}, #{textlink("hats", "hats")} and.. #{textlink("audio players.", "mp3")}
|
|
|
|
On the hangers are #{textlink("cashmere coat,", "coat")} #{textlink("sport jacket,","jacket")} #{textlink("jeans,", "jeans")} #{textlink("green shirt,", "gshirt")} #{textlink("a red sleeveless shirt", "rshirt")}, #{textlink("an orange vest,", "vest")} #{textlink("knee-length flower dress,", "dress")} #{textlink("another flower dress,", "adress")} #{textlink("alpaca coat,","coat")} #{textlink("a short skirt", "skirt")} and #{textlink("a big collection of dancing costumes.", "costumes")}
|
|
""")
|
|
coat: () ->
|
|
lvl2("A warm coat for the cold winter.")
|
|
jacket: () ->
|
|
lvl2("""
|
|
A light expensive jacket.
|
|
An unusual material, must be something high-tech.
|
|
It's slightly used.
|
|
""")
|
|
jeans: () ->
|
|
lvl2("Just a pair of women jeans, nothing special.")
|
|
gshirt: () ->
|
|
lvl2("""
|
|
A green shirt, looks very worn.
|
|
It's not remarkable in any way but maybe she just loves it very much.
|
|
""")
|
|
rshirt: () ->
|
|
lvl2("""
|
|
A red women-cut shirt.
|
|
She didn't wear it much.
|
|
""")
|
|
vest: () ->
|
|
lvl2("""
|
|
It looks like a life vest but actually it's a fashionable piece of warm clothing.
|
|
It was trendy last year.
|
|
*Why do I know this, is something wrong with me?*
|
|
""")
|
|
dress: () ->
|
|
lvl2("""
|
|
Just a dress.
|
|
Lots of flower embroidery, no pockets.
|
|
*Impractical.*
|
|
""")
|
|
adress: () ->
|
|
lvl2("These flowers are not like that flowers.")
|
|
coat: (character, system) ->
|
|
if character.sandbox.seen_coat?
|
|
return lvl2("""
|
|
A warm grey alpaca coat for the bleak autumn times.
|
|
It's one of her favorites.
|
|
""")
|
|
else
|
|
character.sandbox.seen_coat = 1
|
|
money(character, 4000)
|
|
return lvl2("""
|
|
A warm coat.. hey, what's this?
|
|
One of the pockets is loaded with cash!
|
|
""")
|
|
skirt: () ->
|
|
lvl2("""
|
|
This hanger has only a short skirt.
|
|
Maybe there was something else on it?
|
|
Who knows.
|
|
""")
|
|
costumes: () ->
|
|
lvl2("""
|
|
Ana is an exotic dancer.
|
|
She has her own dance style, and these exquisite costumes are made just for her moves and motions.
|
|
""")
|
|
mp3: () ->
|
|
lvl2("""
|
|
Wow, this woman LOVES her players!
|
|
|
|
There are MP3 players, CD players, portable DVD, walk-on clips, sport hands-free players, underwater ones.
|
|
|
|
These are all rather cheap, though, compared to *something else* in this room.
|
|
""")
|
|
hats: () ->
|
|
lvl2("""
|
|
These look very old-style, very Mary Poppins-like.
|
|
Maybe that's just a trend or whatever.
|
|
""")
|
|
lingerie: () ->
|
|
lvl2("Ronald won't be digging in that.")
|
|
accessories: () ->
|
|
lvl2("""
|
|
A cross necklace, three metal bracelets and lots of uncomplicated earrings and hair pins.
|
|
A dozen of scarfs or so.
|
|
No diamonds, no rings, no *jewelry.*
|
|
|
|
On the other hand, her Instagram nickname is *bareboned mane shaker.*
|
|
""")
|
|
shoes: () ->
|
|
lvl2("""
|
|
Anastasia doesn't care for the footwear fashion.
|
|
These 4 pairs of combat boots and 13 pairs of ballet flats can attest that.
|
|
|
|
Of course, there are sandals, loafers, flat dress shoes.. That's a strong dislike for heels... or maybe it's a medical problem?
|
|
""")
|
|
mirror: () ->
|
|
lvl1("""
|
|
The mirror looks directly at the bed.
|
|
Kinky, though not very much *Feng Shui* in it.
|
|
|
|
#{textlink("The frame","frame")} depicts various artists (all women) making sculptures of men.
|
|
It's a very *unusual* art.
|
|
""")
|
|
frame: () ->
|
|
lvl2("""
|
|
On a close examination, the frame isn't attached to the wall.
|
|
There is #{textlink("a safe", "safe")} behind the mirror!
|
|
""")
|
|
safe: (character) ->
|
|
if character.sandbox.seen_safe?
|
|
return lvl3("""
|
|
The safe is locked with a regular lock.
|
|
Ronald tries two keys.
|
|
The first of them opens the door.
|
|
|
|
There are #{textlink("money", "money")} inside, and #{textlink("a rough sketch.", "sketch")}
|
|
""")
|
|
else
|
|
return lvl3("""
|
|
The safe is open now.
|
|
|
|
There is #{textlink("a rough sketch", "sketch")} inside.
|
|
""")
|
|
money: (character, system) ->
|
|
character.sandbox.seen_safe = 1
|
|
money(character, 50000)
|
|
lvl4("""
|
|
It's a big cash.
|
|
Odd that she didn't take this when she left.
|
|
But someone's fault just makes Ronald's payday now.
|
|
""")
|
|
sketch: () ->
|
|
lvl4("""
|
|
It's a portrait of Anastasia.
|
|
She bites her lower lip slightly.
|
|
Her eyes are sad, or maybe concerned with something.
|
|
The sketch is signed: *"L. Y. - 2017"*
|
|
""")
|
|
|
|
room "kitchen",
|
|
title: "Kitchen"
|
|
ways: ["living-room", "bedroom"]
|
|
dsc: """
|
|
The white, perfectly clean kitchen could be called spartan: #{textlink("a fridge,", "fridge")} a microwave and #{textlink("a big table", "table")} where one can eat whatever she "cooked" that way.
|
|
"""
|
|
writers:
|
|
fridge: () ->
|
|
lvl1("""
|
|
No magnets or stickers on the outside.
|
|
The door opens easily.
|
|
*If only the hinges on the apartment doors were as good as refrigerator ones.*
|
|
|
|
A hearty bunch of salad.
|
|
|
|
Some fruits, carrots, two beets.
|
|
|
|
Three eggs, one cracked.
|
|
|
|
A bottle of ketchup, bottle of whiskey, valerian vial.
|
|
|
|
A jar of raspberry preserve, half-finished.
|
|
|
|
And enough frozen pizzas to last a month.
|
|
""")
|
|
table: (character, system) ->
|
|
if character.sandbox.seen_table?
|
|
return lvl1("A letter's still there. Nothing new about it.")
|
|
else
|
|
character.sandbox.seen_table = 1
|
|
return lvl1("""
|
|
There's something on the table.
|
|
|
|
It looks like a formal letter.
|
|
It's in French, though, so Ronald won't be able to read it.
|
|
He's sure it's recent (`24.03.2018`) and it's about something-something QUANTUM AUDIO.. armement?
|
|
""")
|
|
|
|
room "bathroom",
|
|
before: (character,system) ->
|
|
writemd(system,"Ronald doesn't want to search the bathroom. It's too private a room to enter.")
|
|
index = undum.game.situations["bedroom"].ways.indexOf("bathroom")
|
|
undum.game.situations["bedroom"].ways.splice(index, 1)
|
|
return false
|
|
title: "Bathroom"
|
|
ways: ["bedroom"]
|
|
|
|
room "balcony",
|
|
title: "Balcony"
|
|
ways: ["living-room"]
|
|
dsc: """
|
|
A small glazed-in empty balcony.
|
|
It's an amazing night.
|
|
The whole town is lit by moonlight, standing perfectly still.
|
|
|
|
On a short stand is #{textlink("an ashtray","ashtray")} with some ash in it.
|
|
"""
|
|
writers:
|
|
ashtray: (character) ->
|
|
character.sandbox.knows_the_code = 1
|
|
return lvl1("""
|
|
She completely smoked out two cigarettes here.
|
|
There's also a #{textlink("piece of paper nearby,", "paper")} half-burnt.
|
|
""")
|
|
paper: () ->
|
|
lvl2("""
|
|
It's a letter, written by hand on a thick sheet of what must be an A4 paper.
|
|
The handwriting is wobbly and the first three quarters of the sheet is gone, but the ending is legible.
|
|
|
|
*...ok at them, celebrating the New Year, think of our anniversary.
|
|
The day of White.
|
|
I will fly to you no matter what.*
|
|
|
|
*L. Y.*
|
|
""")
|
|
|
|
room "box",
|
|
ways: ["bedroom"]
|
|
choices: "#box"
|
|
dsc: (character, system) ->
|
|
return """
|
|
It's a red wood, very expensive.
|
|
And this box is locked with a digital code key.
|
|
#{if is_visited(this) == 0
|
|
"""
|
|
Ronald takes out a vial from his pocket. He coats the keys with a bright white powder.
|
|
|
|
Only 1, 2, 7 and 0 keys are fingerprinted.
|
|
|
|
He wipes the box clean until there is no trace of the powder.
|
|
"""
|
|
}
|
|
"""
|
|
|
|
room "smash",
|
|
canView: (character) ->
|
|
character.sandbox.view_smash == 1
|
|
optionText: "Smash the box"
|
|
before: (character) ->
|
|
character.sandbox.view_smash = 0
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
dsc: "Ronald still needs the phone in this box. A very high-tech fragile phone. Smashing isn't an option."
|
|
|
|
safe_button = (number) ->
|
|
room "put#{number}",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Enter #{number}"
|
|
before: (character) ->
|
|
code_input(character, number)
|
|
canChoose: (character) ->
|
|
code_can_input(character)
|
|
after: (character, system) ->
|
|
code_check(character, system)
|
|
dsc: (character) -> """
|
|
Ronald presses button #{number}. The display is #{code_print(character)} now.
|
|
"""
|
|
|
|
safe_button(1)
|
|
safe_button(2)
|
|
safe_button(7)
|
|
safe_button(0)
|
|
|
|
room "reset",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Reset the display"
|
|
before: (character) ->
|
|
code_reset(character)
|
|
dsc: """
|
|
Ronald presses Backspace until the display is empty.
|
|
"""
|
|
|
|
room "exitdoor",
|
|
ways: ["living-room"]
|
|
choices: "#door"
|
|
dsc: """
|
|
Ronald is ready to go.
|
|
Maybe he's satisfied with his explorations or just wants to finish this.
|
|
But then a new problem arrives.
|
|
|
|
Someone's shadow is under the doorframe.
|
|
"""
|
|
|
|
room "finale",
|
|
before: () ->
|
|
_paq.push(['setCustomDimension', 1, true])
|
|
$("#tools_wrapper").hide()
|
|
optionText: "Use the Phone"
|
|
tags: ["door"]
|
|
ways: []
|
|
dsc: (character, system) -> """
|
|
"LOADING... 100%"
|
|
|
|
Ronald opens the door and presses his finger to the phone screen.
|
|
|
|
### A CACOPHONY OF MONKEY SOUNDS
|
|
|
|
There stands a tall man in a grey jacket and plaid shirt.
|
|
*Another Instagram follower, perhaps?*
|
|
|
|
An older man in his pajamas and slippers lies motionless on the floor near him.
|
|
|
|
### A QUANTUM MAGICAL SMART PHONE FIESTA
|
|
|
|
The man in a grey jacket slumps as if struck by something.
|
|
Ronald taps the Phone again and quietly escapes the floor.
|
|
|
|
“Well, that was a good night.”
|
|
|
|
#{if character.sandbox.money > 0
|
|
"The pocket is heavy with #{character.sandbox.money} rubles and the phone."
|
|
else
|
|
"The phone is heavy in the pocket."
|
|
}
|
|
The sun is coming up soon.
|
|
|
|
If you're not sleeping at night, you risk learning something secret about your neighbors.
|
|
|
|
<center><h3>END</h3></center>
|
|
"""
|