mirror of
https://gitlab.com/Oreolek/ludumdare37.git
synced 2024-04-26 14:19:50 +03:00
Конец! Дописано. Надо только название придумать.
This commit is contained in:
parent
0a75d71a58
commit
43ec0302b7
|
@ -101,8 +101,10 @@ class ImprovModel
|
||||||
|
|
||||||
cunit = (name, spec) ->
|
cunit = (name, spec) ->
|
||||||
spec.act = () ->
|
spec.act = () ->
|
||||||
|
# re-enter the room, reroll the description
|
||||||
salet.view.clearContent()
|
salet.view.clearContent()
|
||||||
salet.here().entering("start")
|
r = salet.here()
|
||||||
|
r.entering(r.name)
|
||||||
return '<em>'+@enact.fcall(this)+'</em>'
|
return '<em>'+@enact.fcall(this)+'</em>'
|
||||||
return unit(name, spec)
|
return unit(name, spec)
|
||||||
state = new ImprovModel
|
state = new ImprovModel
|
||||||
|
|
|
@ -18,8 +18,7 @@ module.exports =
|
||||||
Поезд тихо тронулся.
|
Поезд тихо тронулся.
|
||||||
"""
|
"""
|
||||||
window: "За {{окном}} проносятся столбы."
|
window: "За {{окном}} проносятся столбы."
|
||||||
dsc: (Improv, state) ->
|
dsc: """
|
||||||
"""
|
|
||||||
##### В купе поезда
|
##### В купе поезда
|
||||||
|
|
||||||
Это маленькое купе на четырёх человек.
|
Это маленькое купе на четырёх человек.
|
||||||
|
@ -29,18 +28,24 @@ module.exports =
|
||||||
На верхней полке напротив вас сидит {{#{if salet.character.knows_alexey then "Лёша" else "небритый парень в тёмном спортивном костюме"}.}}
|
На верхней полке напротив вас сидит {{#{if salet.character.knows_alexey then "Лёша" else "небритый парень в тёмном спортивном костюме"}.}}
|
||||||
#{Improv.gen("alexey", state)}
|
#{Improv.gen("alexey", state)}
|
||||||
"""
|
"""
|
||||||
|
alexey_end: """
|
||||||
|
Парень в спортивном костюме обыскивает нижние полки.
|
||||||
|
"""
|
||||||
margo: (Improv, state) ->
|
margo: (Improv, state) ->
|
||||||
"""
|
"""
|
||||||
На нижней полке рядом с вами отдыхает {{#{if salet.character.knows_margo then "Марго" else "красивая дама с ручным хорьком и циничным взглядом"}.}}
|
На нижней полке рядом с вами отдыхает {{#{if salet.character.knows_margo then "Марго" else "красивая дама с ручным хорьком и циничным взглядом"}.}}
|
||||||
#{Improv.gen("margo", state)}
|
#{Improv.gen("margo", state)}
|
||||||
"""
|
"""
|
||||||
|
margo_end: """
|
||||||
|
Девушка ищет хорька в своём багаже.
|
||||||
|
Сумка, пакеты, несколько чемоданов… она застряла надолго.
|
||||||
|
"""
|
||||||
owindow: "Вы замечаете, что окно {{неплотно закрыто.}}"
|
owindow: "Вы замечаете, что окно {{неплотно закрыто.}}"
|
||||||
dsc_ferret: """
|
dsc_ferret: """
|
||||||
##### В купе поезда
|
##### В купе поезда
|
||||||
|
|
||||||
Это маленькое купе на четырёх человек.
|
Это маленькое купе на четырёх человек.
|
||||||
Сейчас здесь именно четыре человека, хотя на ваш счёт этого сразу и не скажешь.
|
Сейчас здесь именно четыре человека, хотя на ваш счёт этого сразу и не скажешь.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
window_end: "Вы уже не обращаете внимания на лютую метель за {{окном.}}"
|
window_end: "Вы уже не обращаете внимания на лютую метель за {{окном.}}"
|
||||||
owindow_end: "Но вы замечаете, что окно так никто и не {{закрыл до конца.}}"
|
owindow_end: "Но вы замечаете, что окно так никто и не {{закрыл до конца.}}"
|
||||||
|
@ -209,6 +214,86 @@ module.exports =
|
||||||
blood_dsc: "Вы замечаете на полу {{красное пятно.}}"
|
blood_dsc: "Вы замечаете на полу {{красное пятно.}}"
|
||||||
blood_act: "Кровь. Вы не очень удивлены."
|
blood_act: "Кровь. Вы не очень удивлены."
|
||||||
ferret_dsc: "{{Ручной хорёк}} Маргариты внимательно смотрит на вас."
|
ferret_dsc: "{{Ручной хорёк}} Маргариты внимательно смотрит на вас."
|
||||||
ferret_act: "Хорёк не реагирует." # подсказка 1
|
ferret_dsc_end: "{{Ручной хорёк}} Юля смотрит на вас из тёмного угла."
|
||||||
ferret_one_margo: "Хорёк не реагирует." # подсказка 2
|
ferret_act: """
|
||||||
ferret_one_alexey: "Хорёк не реагирует." # подсказка 3
|
Маргарита не выпускает хорька из рук, но маленькому прохвосту не терпится
|
||||||
|
побегать.
|
||||||
|
"""
|
||||||
|
ferret_one_margo: """
|
||||||
|
Хорёк пускается в бег, но внимательная хозяйка не даёт ему убежать.
|
||||||
|
"""
|
||||||
|
ferret_one_alexey: """
|
||||||
|
Хорёк пускается в бег, но ваш сосед замечает его и быстро ловит.
|
||||||
|
"""
|
||||||
|
ferret_run: """
|
||||||
|
Когда оба человека отвлекаются, хорёк пулей летит прочь с полки.
|
||||||
|
Он прячется в дальнем углу, где вам хорошо его видно.
|
||||||
|
|
||||||
|
Когда Маргарита обнаруживает пропажу, она поднимает крик.
|
||||||
|
— Караул! Юля! Юля! Она же может быть где угодно в вагоне!
|
||||||
|
|
||||||
|
Видимо, хорёк был девочкой.
|
||||||
|
Хозяйка уходит, а через некоторое время возвращается вместе с проводником
|
||||||
|
вагона.
|
||||||
|
|
||||||
|
— Я точно говорю, она не могла далеко убежать.
|
||||||
|
Давайте поищем сначала в вашем купе.
|
||||||
|
|
||||||
|
Как раз тут вам и нужен проводник.
|
||||||
|
Как же теперь его… нейтрализовать?
|
||||||
|
"""
|
||||||
|
conductor: """
|
||||||
|
{{Проводник}} осматривает пол.
|
||||||
|
Он не двигается с места, поэтому не может заметить хорька.
|
||||||
|
"""
|
||||||
|
table: """
|
||||||
|
{{Раскладной столик}} собран, чтобы открыть пол.
|
||||||
|
"""
|
||||||
|
table_act: """
|
||||||
|
Вы опускаете столик.
|
||||||
|
Вы не в силах поставить его на защёлку, поэтому он тут же складывается обратно.
|
||||||
|
"""
|
||||||
|
alexey_final: """
|
||||||
|
Вы опускаете столик прямо на голову Алексею.
|
||||||
|
Он тихо охает и складывается на полу.
|
||||||
|
"""
|
||||||
|
alexey_final_dsc: "На полу под столиком лежит бесчувственный спортсмен."
|
||||||
|
margo_final: """
|
||||||
|
Проводник прыгает, чтобы поймать хорька, но случайно задевает
|
||||||
|
девушку, которая пытается дотянуться до защёлки окна.
|
||||||
|
|
||||||
|
Девушка падает и ударяется головой о стену. Она лежит без сознания.
|
||||||
|
"""
|
||||||
|
margo_final_dsc: """
|
||||||
|
На полке лежит бессознательная любительница редких животных.
|
||||||
|
"""
|
||||||
|
ferret_whereto: "Вы можете выманить хорька, но куда?"
|
||||||
|
ferret_close: "Приманить к столу"
|
||||||
|
ferret_close_dsc: """
|
||||||
|
Хорёк делает два прыжка к столу, но тут же разворачивается и прячется обратно.
|
||||||
|
"""
|
||||||
|
ferret_far: "Приманить на середину купе"
|
||||||
|
ferret_far_dsc: """
|
||||||
|
Хорёк прыгает на середину купе, делает круг и возвращается в тёмный угол,
|
||||||
|
так никем и не замеченный.
|
||||||
|
"""
|
||||||
|
ferret_blood: "Приманить к луже крови"
|
||||||
|
ferret_blood_dsc: """
|
||||||
|
Хорёк не хочет бежать так далеко — там слишком много людей.
|
||||||
|
"""
|
||||||
|
conductor_examine: """
|
||||||
|
Злобный кондуктор, который убил вас, но ещё не знает, что вы стали призраком
|
||||||
|
и теперь навечно будете обитать в таинственном четырёхместном купе поезда Москва-Владивосток.
|
||||||
|
|
||||||
|
И если ваш план удастся, то он останется здесь с вами.
|
||||||
|
"""
|
||||||
|
final: """
|
||||||
|
— Ага, вот ты где!
|
||||||
|
|
||||||
|
Проводник идёт к хорьку, но вместо этого подскальзывается на луже из вашей крови.
|
||||||
|
Он падает, и ударяется головой об угол полки. Если он выживет, это будет ещё долго болеть.
|
||||||
|
|
||||||
|
Месть совершена. Вы чувствуете, что можете выйти из поезда.
|
||||||
|
|
||||||
|
### КОНЕЦ
|
||||||
|
"""
|
||||||
|
|
|
@ -6,9 +6,9 @@ room "start",
|
||||||
if (!from)
|
if (!from)
|
||||||
return "intro".l()
|
return "intro".l()
|
||||||
dsc: () ->
|
dsc: () ->
|
||||||
if salet.character.ferret == true
|
if salet.character.ferret
|
||||||
return "dsc_ferret".l()
|
return "dsc_ferret".l()
|
||||||
return "dsc".l(Improv, state)
|
return "dsc".l()
|
||||||
afterChoices: () ->
|
afterChoices: () ->
|
||||||
if (
|
if (
|
||||||
salet.character.lastBeat() > 3 and
|
salet.character.lastBeat() > 3 and
|
||||||
|
@ -20,18 +20,18 @@ room "start",
|
||||||
salet.character.newBeat()
|
salet.character.newBeat()
|
||||||
salet.goTo("killed")
|
salet.goTo("killed")
|
||||||
|
|
||||||
if (salet.character.book == true and salet.character.lastBeat() == 2)
|
if (salet.character.book and salet.character.lastBeat() == 2)
|
||||||
salet.view.write "**"+"reset_book".l()+"**"
|
salet.view.write "**"+"reset_book".l()+"**"
|
||||||
|
|
||||||
if (salet.character.window == true and salet.character.lastBeat() == 2)
|
if (salet.character.window and salet.character.lastBeat() == 2)
|
||||||
salet.view.write "**"+"reset_window".l()+"**"
|
salet.view.write "**"+"reset_window".l()+"**"
|
||||||
|
|
||||||
if (salet.character.window == true and salet.character.lastBeat() > 3)
|
if (salet.character.window and salet.character.lastBeat() > 3)
|
||||||
salet.character.window = false
|
salet.character.window = false
|
||||||
salet.character.newBeat()
|
salet.character.newBeat()
|
||||||
salet.view.write "**"+"reset_window_ends".l()+"**"
|
salet.view.write "**"+"reset_window_ends".l()+"**"
|
||||||
|
|
||||||
if (salet.character.book == true and salet.character.lastBeat() > 3)
|
if (salet.character.book and salet.character.lastBeat() > 3)
|
||||||
salet.character.book = false
|
salet.character.book = false
|
||||||
salet.character.newBeat()
|
salet.character.newBeat()
|
||||||
salet.view.write "**"+"reset_book_ends".l()+"**"
|
salet.view.write "**"+"reset_book_ends".l()+"**"
|
||||||
|
@ -41,47 +41,51 @@ room "start",
|
||||||
salet.view.append("<em>"+"#{to}_reaction".l()+"</em>")
|
salet.view.append("<em>"+"#{to}_reaction".l()+"</em>")
|
||||||
return false
|
return false
|
||||||
units:[
|
units:[
|
||||||
unit "window",
|
cunit "window",
|
||||||
order: 5
|
order: 5
|
||||||
dsc: () ->
|
dsc: () ->
|
||||||
if salet.character.ferret == true
|
if salet.character.ferret
|
||||||
return "\n\n"+"window_end".l()
|
return "\n\n"+"window_end".l()
|
||||||
return "\n\n"+"window".l()
|
return "\n\n"+"window".l()
|
||||||
act: () ->
|
enact: () ->
|
||||||
# re-enter the room, reroll the description
|
return procgen("window")
|
||||||
salet.view.clearContent()
|
cunit "owindow",
|
||||||
salet.here().entering("start")
|
|
||||||
return "<em>"+procgen("window")+"</em>"
|
|
||||||
unit "owindow",
|
|
||||||
order: 6
|
order: 6
|
||||||
dsc: () ->
|
dsc: () ->
|
||||||
if salet.character.ferret == true
|
if salet.character.ferret
|
||||||
return "owindow_end".l()
|
return "owindow_end".l()
|
||||||
return "owindow".l()
|
return "owindow".l()
|
||||||
act: () ->
|
enact: () ->
|
||||||
salet.view.clearContent()
|
|
||||||
salet.here().entering("start")
|
|
||||||
if salet.character.killed
|
if salet.character.killed
|
||||||
salet.character.window = true
|
salet.character.window = true
|
||||||
salet.character.newBeat()
|
salet.character.newBeat()
|
||||||
return "<em>"+"window_open".l()+"</em>"
|
return "window_open".l()
|
||||||
else
|
else
|
||||||
return "<em>"+"window_open_no".l()+"</em>"
|
return "window_open_no".l()
|
||||||
unit "alexey",
|
cunit "alexey",
|
||||||
order: 3
|
order: 3
|
||||||
dsc: () ->
|
dsc: () ->
|
||||||
"alexey".l(Improv, state)
|
if salet.character.alexey
|
||||||
act: () ->
|
return "alexey_final_dsc".l()
|
||||||
|
if salet.character.ferret
|
||||||
|
return "alexey_end".l()
|
||||||
|
return "alexey".l(Improv, state)
|
||||||
|
enact: () ->
|
||||||
salet.goTo("alexey")
|
salet.goTo("alexey")
|
||||||
unit "margo",
|
cunit "margo",
|
||||||
order: 4
|
order: 4
|
||||||
dsc: () ->
|
dsc: () ->
|
||||||
|
if salet.character.margo
|
||||||
|
return "margo_final_dsc".l()
|
||||||
|
if salet.character.ferret
|
||||||
|
return "margo_end".l()
|
||||||
"margo".l(Improv, state)
|
"margo".l(Improv, state)
|
||||||
act: () ->
|
enact: () ->
|
||||||
salet.goTo("margo")
|
salet.goTo("margo")
|
||||||
unit "debug",
|
cunit "debug",
|
||||||
dsc: "<center>{{Пропустить всё до загадок}}</center>"
|
dsc: "<center>{{Пропустить всё до загадок}}</center>"
|
||||||
act: () ->
|
order: 666
|
||||||
|
enact: () ->
|
||||||
state.setTag("weather", "cold")
|
state.setTag("weather", "cold")
|
||||||
salet.here().take(book)
|
salet.here().take(book)
|
||||||
salet.here().take(blood)
|
salet.here().take(blood)
|
||||||
|
@ -91,9 +95,7 @@ room "start",
|
||||||
salet.character["knows_margo"] = true
|
salet.character["knows_margo"] = true
|
||||||
salet.here().drop("debug")
|
salet.here().drop("debug")
|
||||||
salet.character.killed = true
|
salet.character.killed = true
|
||||||
salet.view.clearContent()
|
return "Сделано."
|
||||||
salet.here().entering("start")
|
|
||||||
return "*Сделано.*"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
book = cunit "book",
|
book = cunit "book",
|
||||||
|
@ -117,18 +119,46 @@ blood = cunit "blood",
|
||||||
enact: "blood_act".l()
|
enact: "blood_act".l()
|
||||||
|
|
||||||
ferret = cunit "ferret",
|
ferret = cunit "ferret",
|
||||||
dsc: "ferret_dsc".l()
|
dsc: () ->
|
||||||
|
if salet.character.ferret
|
||||||
|
return "ferret_dsc_end".l()
|
||||||
|
return "ferret_dsc".l()
|
||||||
order: 4
|
order: 4
|
||||||
enact: () ->
|
enact: () ->
|
||||||
if salet.character.window == true and salet.character.book == true
|
if salet.character.ferret
|
||||||
|
return salet.goTo("ferret")
|
||||||
|
if salet.character.window and salet.character.book
|
||||||
# хорьку никто не мешает
|
# хорьку никто не мешает
|
||||||
else if salet.character.window == true
|
salet.character.book = false
|
||||||
|
salet.character.window = false
|
||||||
|
salet.character.ferret = true
|
||||||
|
salet.here().take(conductor)
|
||||||
|
salet.here().take(table)
|
||||||
|
salet.view.clearContent()
|
||||||
|
salet.here().entering("start")
|
||||||
|
return "ferret_run".l()
|
||||||
|
else if salet.character.window
|
||||||
return "ferret_one_margo".l()
|
return "ferret_one_margo".l()
|
||||||
else if salet.character.book == true
|
else if salet.character.book
|
||||||
return "ferret_one_alexey".l()
|
return "ferret_one_alexey".l()
|
||||||
else
|
else
|
||||||
return "ferret_act".l()
|
return "ferret_act".l()
|
||||||
|
|
||||||
|
conductor = cunit "conductor",
|
||||||
|
dsc: "conductor".l()
|
||||||
|
order: 2
|
||||||
|
enact: "conductor_examine".l()
|
||||||
|
|
||||||
|
table = cunit "table",
|
||||||
|
dsc: "table".l()
|
||||||
|
order: 7
|
||||||
|
enact: () ->
|
||||||
|
if salet.character.book and !salet.character.alexey
|
||||||
|
salet.character.alexey = true
|
||||||
|
return "alexey_final".l()
|
||||||
|
else
|
||||||
|
return "table_act".l()
|
||||||
|
|
||||||
## ACTUALLY DIALOGUES
|
## ACTUALLY DIALOGUES
|
||||||
|
|
||||||
dlg = (name) ->
|
dlg = (name) ->
|
||||||
|
@ -216,3 +246,45 @@ room "killed5",
|
||||||
true if salet.isVisited("killed4_a") or salet.isVisited("killed4_b")
|
true if salet.isVisited("killed4_a") or salet.isVisited("killed4_b")
|
||||||
after: () ->
|
after: () ->
|
||||||
return salet.goTo("start")
|
return salet.goTo("start")
|
||||||
|
|
||||||
|
room "ferret",
|
||||||
|
clear: true
|
||||||
|
dsc: "ferret_whereto".l()
|
||||||
|
choices: "#ferret"
|
||||||
|
|
||||||
|
room "ferret_close",
|
||||||
|
clear: false
|
||||||
|
optionText: "ferret_close".l()
|
||||||
|
dsc: () ->
|
||||||
|
if salet.character.window and !salet.character.margo
|
||||||
|
salet.character.margo = true
|
||||||
|
return "margo_final".l()
|
||||||
|
return "ferret_close_dsc".l()
|
||||||
|
after: () ->
|
||||||
|
salet.goTo("start")
|
||||||
|
tags: ["ferret"]
|
||||||
|
|
||||||
|
room "ferret_blood",
|
||||||
|
clear: false
|
||||||
|
optionText: "ferret_blood".l()
|
||||||
|
dsc: () ->
|
||||||
|
if salet.character.alexey and salet.character.margo
|
||||||
|
salet.goTo("final")
|
||||||
|
return ""
|
||||||
|
return "ferret_blood_dsc".l()
|
||||||
|
tags: ["ferret"]
|
||||||
|
after: () ->
|
||||||
|
unless salet.character.alexey and salet.character.margo
|
||||||
|
salet.goTo("start")
|
||||||
|
|
||||||
|
room "ferret_far",
|
||||||
|
clear: false
|
||||||
|
optionText: "ferret_far".l()
|
||||||
|
dsc: "ferret_far_dsc".l()
|
||||||
|
tags: ["ferret"]
|
||||||
|
after: () ->
|
||||||
|
salet.goTo("start")
|
||||||
|
|
||||||
|
room "final",
|
||||||
|
clear: true
|
||||||
|
dsc: "final".l()
|
||||||
|
|
Loading…
Reference in a new issue