## REAL ROOM
room "start",
clear: false
before: (from) ->
if (!from)
salet.character.beat = 0
state.setTag("weather", "warm")
audio = document.getElementById("bgsound")
audio.currentTime = 0
audio.volume = 1.0
audio.play()
return "intro".l()
dsc: () -> "dsc".l(Improv, state)
afterChoices: () ->
if (
salet.character.lastBeat() > 3 and
salet.character.killed != true and
salet.character.knows_margo and
salet.character.knows_alexey
)
salet.character.killed = true
salet.character.newBeat()
salet.goTo("killed")
if (salet.character.book == true and salet.character.lastBeat() == 2)
salet.view.write "**"+"reset_book".l()+"**"
if (salet.character.book == true and salet.character.lastBeat() > 3)
salet.character.book = false
salet.character.newBeat()
salet.view.write "**"+"reset_book_ends".l()+"**"
writers:
window: () ->
# re-enter the room, reroll the description
salet.view.clearContent()
salet.here().entering("start")
return ""+procgen("window")+""
canExit: (to) ->
if salet.character.killed and (to == "margo" or to == "alexey")
salet.view.clearContent()
salet.view.append(""+"#{to}_reaction".l()+"")
return false
units:[
unit "debug",
dsc: "
{{Пропустить всё до загадок}}"
act: () ->
state.setTag("weather", "cold")
salet.here().take(book)
salet.here().take(blood)
salet.character.newBeat()
salet.character["knows_alexey"] = true
salet.character["knows_margo"] = true
salet.here().drop("debug")
salet.character.killed = true
salet.view.clearContent()
salet.here().entering("start")
return "*Сделано.*"
]
book = cunit "book",
dsc: () ->
if salet.character.book
return "book_floor".l()
else
return "book".l()
enact: () ->
if salet.character.book
return "book_act_twice".l()
else
salet.character.book = true
salet.character.newBeat()
return "book_act".l()
blood = cunit "blood",
dsc: "Вы замечаете на полу {{красное пятно.}}"
enact: "Кровь. Вы не очень удивлены."
## ACTUALLY DIALOGUES
dlg = (name) ->
return room(name, {
before: () ->
if salet.character["knows_#{name}"] != true
salet.character["knows_#{name}"] = true
return "meet_#{name}".l()
choices: "##{name}",
dsc: () ->
"#{name}_dsc".l(Improv, state)
})
dlg_bye = (name) ->
return room("#{name}_bye", {
clear: false
tags: [name]
optionText: "bye".l()
dsc: "#{name}_bye".l()
after: () ->
return salet.goTo("start")
})
dlg("alexey")
dlg("margo")
dialogue "alexey_mood".l(), "alexey", "alexey", "alexey_mood_answ".l()
dialogue "alexey_speed".l(), "alexey", "alexey", "alexey_speed_answ".l()
dlg_bye("alexey")
dlg_bye("margo")
room "killed",
clear: false
choices: "#killed"
dsc: "story_call".l()
room "killed2",
clear: false
optionText: "killed2_option".l()
dsc: "killed2".l()
tags: ["killed"]
choices: "#killed"
canView: () ->
true if !salet.isVisited("killed2")
room "killed3",
clear: false
optionText: "killed3_option".l()
dsc: "killed3".l()
tags: ["killed"]
choices: "#killed"
canView: () ->
true if salet.isVisited("killed2") and !salet.isVisited("killed3")
room "killed4_a",
clear: false
optionText: "killed4_option_a".l()
dsc: "killed4_a".l()
tags: ["killed"]
choices: "#killed"
canView: () ->
true if salet.isVisited("killed3") and !salet.isVisited("killed4_b")
room "killed4_b",
clear: false
optionText: "killed4_option_b".l()
dsc: "killed4_b".l()
tags: ["killed"]
choices: "#killed"
canView: () ->
true if salet.isVisited("killed3") and !salet.isVisited("killed4_a")
room "killed5",
clear: false
enter: () ->
state.setTag("weather", "cold")
salet.rooms["start"].take(book)
salet.rooms["start"].take(blood)
optionText: "killed5_option".l()
dsc: "killed5".l()
tags: ["killed"]
canView: () ->
true if salet.isVisited("killed4_a") or salet.isVisited("killed4_b")
after: () ->
return salet.goTo("start")