mirror of
https://gitlab.com/Oreolek/black_phone.git
synced 2024-05-14 23:18:35 +03:00
374 lines
12 KiB
CoffeeScript
374 lines
12 KiB
CoffeeScript
update_ways = (ways) ->
|
|
content = ""
|
|
for way in ways
|
|
if undum.game.situations[way]?
|
|
content += way_to(undum.game.situations[way].title, way)
|
|
$("#ways").html(content)
|
|
|
|
# if the player enters the code prior to learning the birthday, the game responds accordingly
|
|
# when he wants to go, there's someone at rge door
|
|
# it's another thief (someone who is at ease with Ana's Instagram too) who took out Petya
|
|
# the Black Phone can deal with him
|
|
|
|
situation "living-room",
|
|
title: "Living room"
|
|
before: () ->
|
|
if not $(".ways h2").is(':visible')
|
|
$(".ways h2").fadeIn()
|
|
update_ways(this.ways)
|
|
ways: ["bedroom", "kitchen", "balcony"]
|
|
content: """
|
|
Ronald is standing in a dark room with a big #{textlink("window.", "window")}
|
|
|
|
The walls are covered with a dingy rose wallpaper.
|
|
The room is very unnerving.
|
|
Was it actually her home?
|
|
|
|
On a coffee table lies an opened envelope.
|
|
|
|
#{textlink("A book stand", "bookcase")} is hanging above #{textlink("a television set.", "tv")}
|
|
|
|
Oh, and #{textlink("the door Ronald came into", "door")} the apartment is there, too.
|
|
"""
|
|
writers:
|
|
window: "The moon is full today. It illuminates the flat, makes the things stand out in some weird angles."
|
|
bookcase: """
|
|
Either Anastacia has a very conflicting taste in books, or she has no taste at all. Let's see...
|
|
#{textlink("“Master and Margarita”,", "bulgakov")}
|
|
#{textlink("“Breakfast at Tiffany's”,", "tiffanys")}
|
|
#{textlink("The Soviet Encyclopedic Dictionary,", "dictionary")}
|
|
#{textlink("“Grey”,", "grey")}
|
|
#{textlink("”Also sprach Zarathustra”,", "zaratustra")}
|
|
#{textlink("”Poker with sharks”,", "dontzova")}
|
|
#{textlink("”Classic sauce. Culinary collection”", "culinary")}
|
|
and #{textlink("The Bible.", "bible")}
|
|
"""
|
|
bulgakov: """
|
|
“Master and Margarita” by Mikhail Bulgakov.
|
|
A famous urban fantasy satire of Soviet nineteen-thirties.
|
|
This is a cheap paperback edition, she read this at least a couple of times.
|
|
The pages have dog's ears, and coffee stains too.
|
|
Ronald can even see a hint of lipstick smearing the episode of Satan's dark magic variety show performance.
|
|
"""
|
|
tiffanys: """
|
|
This book looks scrawny wedged between the fat dictionary and an epic novel.
|
|
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: "A big fat dictionary of everything, issued in 1989. Nobody reads every page of these. Ronald doubts Anastacia got to read at least one page."
|
|
grey: "Fifty Shades of Grey, an unnecessary remake. Now from a psychopath's point of view. And she actually read that."
|
|
zaratustra: (character, system) ->
|
|
money(character, system, 20000)
|
|
"""
|
|
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.
|
|
"""
|
|
dontzova: """
|
|
An "ironic detective" by Daria Dontzova about Evlampia Romanova, an amateur detective.
|
|
The heroine (nicknamed as Lamp) plays harp and solves murders.
|
|
It's a trash book filled with blatant product placement.
|
|
"""
|
|
culinary: "An old culinary book. Nothing about it."
|
|
bible: "An Orthodox Christian Bible, Old Testament. A decent hardcover edition. Bookmarked at the Sodom episode."
|
|
tv: "An expensive 40-something inch TV standing on a stylish black stand. The room looks kinda small for that monster."
|
|
door: (character, system) ->
|
|
if character.sandbox.box_opened == 0
|
|
"Ronald has a job here. It's still on."
|
|
else
|
|
system.doLink("door")
|
|
|
|
situation "bedroom",
|
|
before: () ->
|
|
update_ways(this.ways)
|
|
title: "Bedroom"
|
|
ways: ["living-room", "kitchen", "bathroom"]
|
|
content: (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")}"
|
|
}
|
|
"""
|
|
writers:
|
|
bed: """
|
|
A double bed with flower-embroidered sheets.
|
|
She left several days ago.
|
|
The sheets are still fresh.
|
|
"""
|
|
wardrobe: """
|
|
TODO [This is about Ana's looks, her body.]
|
|
"""
|
|
mirror: """
|
|
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: """
|
|
On a close examination, the frame isn't attached to the wall.
|
|
There is #{textlink("a safe", "safe")} behind the mirror!
|
|
"""
|
|
safe: """
|
|
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")}
|
|
"""
|
|
money: (character, system) ->
|
|
money(character, system, 50000)
|
|
"""
|
|
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: """
|
|
It's a portrait of Anastacia.
|
|
She bites her lower lip slightly.
|
|
Her eyes are sad, or maybe concerned with something.
|
|
The sketch is signed: *"L. Y. - 2017"*
|
|
"""
|
|
|
|
situation "kitchen",
|
|
before: () ->
|
|
update_ways(this.ways)
|
|
title: "Kitchen"
|
|
ways: ["living-room", "bedroom"]
|
|
content: """
|
|
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: """
|
|
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: """
|
|
TODO [Here the player learns why Ana decided to bolt away]
|
|
"""
|
|
|
|
situation "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)
|
|
update_ways(undum.game.situations["bedroom"].ways)
|
|
return false
|
|
title: "Bathroom"
|
|
ways: ["bedroom"]
|
|
|
|
situation "balcony",
|
|
before: () ->
|
|
update_ways(this.ways)
|
|
title: "Balcony"
|
|
ways: ["living-room"]
|
|
content: """
|
|
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 """
|
|
She completely smoked out two cigarettes here.
|
|
There's also a #{textlink("piece of paper nearby,", "paper")} half-burnt.
|
|
"""
|
|
paper: """
|
|
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.*
|
|
"""
|
|
|
|
situation "box",
|
|
before: () ->
|
|
update_ways(this.ways)
|
|
ways: ["bedroom"]
|
|
choices: "#box"
|
|
content: (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, 3, 7 and 0 keys are fingerprinted.
|
|
|
|
He wipes the box clean until there is no trace of the powder.
|
|
"""
|
|
}
|
|
"""
|
|
|
|
# no need to call update_ways, it's the same location
|
|
situation "smash",
|
|
canView: (character) ->
|
|
character.sandbox.view_smash == 1
|
|
optionText: "Smash the box"
|
|
before: (character) ->
|
|
character.sandbox.view_smash = 0
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
content: "Ronald still needs the phone in this box. A very high-tech fragile phone. Smashing isn't an option."
|
|
|
|
situation "put1",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Enter 1"
|
|
before: (character) ->
|
|
code_input(character, 1)
|
|
canChoose: (character) ->
|
|
code_can_input(character)
|
|
after: (character, system) ->
|
|
code_check(character, system)
|
|
content: (character) -> """
|
|
Ronald presses button 1. The display is #{character.sandbox.code} now.
|
|
"""
|
|
|
|
situation "put2",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Enter 2"
|
|
before: (character) ->
|
|
code_input(character, 2)
|
|
after: (character, system) ->
|
|
code_check(character, system)
|
|
canChoose: (character) ->
|
|
code_can_input(character)
|
|
content: (character) -> """
|
|
Ronald presses button 2. The display is #{character.sandbox.code} now.
|
|
"""
|
|
|
|
situation "put3",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Enter 3"
|
|
before: (character) ->
|
|
code_input(character, 3)
|
|
after: (character, system) ->
|
|
code_check(character, system)
|
|
canChoose: (character) ->
|
|
code_can_input(character)
|
|
content: (character) -> """
|
|
Ronald presses button 3. The display is #{character.sandbox.code} now.
|
|
"""
|
|
|
|
situation "put7",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Enter 7"
|
|
before: (character) ->
|
|
code_input(character, 7)
|
|
after: (character, system) ->
|
|
code_check(character, system)
|
|
canChoose: (character) ->
|
|
code_can_input(character)
|
|
content: (character) -> """
|
|
Ronald presses button 7. The display is #{character.sandbox.code} now.
|
|
"""
|
|
|
|
situation "put0",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Enter 0"
|
|
before: (character) ->
|
|
code_input(character, 0)
|
|
after: (character, system) ->
|
|
code_check(character, system)
|
|
canChoose: (character) ->
|
|
code_can_input(character)
|
|
content: (character) -> """
|
|
Ronald presses button 0. The display is #{character.sandbox.code} now.
|
|
"""
|
|
|
|
situation "reset",
|
|
choices: "#box"
|
|
tags: ["box"]
|
|
optionText: "Reset the display"
|
|
before: (character) ->
|
|
code_reset(character)
|
|
content: """
|
|
You press Backspace until the display is empty.
|
|
"""
|
|
|
|
situation "door",
|
|
before: () ->
|
|
update_ways(this.ways)
|
|
ways: ["living-room"]
|
|
choices: "#door"
|
|
content: """
|
|
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.
|
|
"""
|
|
|
|
situation "finale",
|
|
before: () ->
|
|
update_ways(this.ways)
|
|
optionText: "Use the Phone"
|
|
tags: ["door"]
|
|
ways: []
|
|
content: (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.
|
|
*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.qualities.money > 0
|
|
"The pocket is heavy with #{character.qualities.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 to learn something secret about your neighbors.
|
|
|
|
<center><h3>END</h3></center>
|
|
"""
|