mirror of
https://gitlab.com/Oreolek/ludumdare37.git
synced 2024-05-04 18:18:35 +03:00
Структура и объекты
This commit is contained in:
parent
b260faa4ad
commit
0a75d71a58
|
@ -27,6 +27,13 @@ salet.init = () ->
|
||||||
return salet.progress.sequence.length - salet.character.beat
|
return salet.progress.sequence.length - salet.character.beat
|
||||||
salet.character.newBeat = () ->
|
salet.character.newBeat = () ->
|
||||||
salet.character.beat = salet.progress.sequence.length
|
salet.character.beat = salet.progress.sequence.length
|
||||||
|
salet.character.beat = 0
|
||||||
|
state.setTag("weather", "warm")
|
||||||
|
audio = document.getElementById("bgsound")
|
||||||
|
if audio?
|
||||||
|
audio.currentTime = 0
|
||||||
|
audio.volume = 1.0
|
||||||
|
audio.play()
|
||||||
|
|
||||||
$(document).ready(() ->
|
$(document).ready(() ->
|
||||||
window.addEventListener('popstate', (event) ->
|
window.addEventListener('popstate', (event) ->
|
||||||
|
|
|
@ -17,17 +17,37 @@ module.exports =
|
||||||
До Иркутска оставалось ещё двадцать четыре остановки и день пути.
|
До Иркутска оставалось ещё двадцать четыре остановки и день пути.
|
||||||
Поезд тихо тронулся.
|
Поезд тихо тронулся.
|
||||||
"""
|
"""
|
||||||
|
window: "За {{окном}} проносятся столбы."
|
||||||
dsc: (Improv, state) ->
|
dsc: (Improv, state) ->
|
||||||
"""
|
"""
|
||||||
##### В купе поезда
|
##### В купе поезда
|
||||||
|
|
||||||
Это маленькое купе на четырёх человек.
|
Это маленькое купе на четырёх человек.
|
||||||
|
"""
|
||||||
|
alexey: (Improv, state) ->
|
||||||
|
"""
|
||||||
|
На верхней полке напротив вас сидит {{#{if salet.character.knows_alexey then "Лёша" else "небритый парень в тёмном спортивном костюме"}.}}
|
||||||
|
#{Improv.gen("alexey", state)}
|
||||||
|
"""
|
||||||
|
margo: (Improv, state) ->
|
||||||
|
"""
|
||||||
|
На нижней полке рядом с вами отдыхает {{#{if salet.character.knows_margo then "Марго" else "красивая дама с ручным хорьком и циничным взглядом"}.}}
|
||||||
|
#{Improv.gen("margo", state)}
|
||||||
|
"""
|
||||||
|
owindow: "Вы замечаете, что окно {{неплотно закрыто.}}"
|
||||||
|
dsc_ferret: """
|
||||||
|
##### В купе поезда
|
||||||
|
|
||||||
На верхней полке напротив вас сидит [#{if salet.character.knows_alexey then "Лёша" else "небритый парень в тёмном спортивном костюме"}](alexey). #{Improv.gen("alexey", state)}
|
Это маленькое купе на четырёх человек.
|
||||||
|
Сейчас здесь именно четыре человека, хотя на ваш счёт этого сразу и не скажешь.
|
||||||
|
|
||||||
На нижней полке рядом с вами отдыхает [#{if salet.character.knows_margo then "Марго" else "красивая дама с ручным хорьком и циничным взглядом"}](margo). #{Improv.gen("margo", state)}
|
"""
|
||||||
|
window_end: "Вы уже не обращаете внимания на лютую метель за {{окном.}}"
|
||||||
За [окном](./_writer_window) проносятся столбы.
|
owindow_end: "Но вы замечаете, что окно так никто и не {{закрыл до конца.}}"
|
||||||
|
window_open_no: "Вам не душно. Зачем открывать окно?"
|
||||||
|
window_open: """
|
||||||
|
С резким усилием вы открываете окно.
|
||||||
|
В купе начинается небольшой снегопад.
|
||||||
"""
|
"""
|
||||||
meet_alexey: """
|
meet_alexey: """
|
||||||
-- Добрый вечер.
|
-- Добрый вечер.
|
||||||
|
@ -180,3 +200,15 @@ module.exports =
|
||||||
book_act_twice: "Книга только упала со столика, а вы и так устали."
|
book_act_twice: "Книга только упала со столика, а вы и так устали."
|
||||||
reset_book: "Алексей замечает книгу на полу и нагибается, чтобы её поднять."
|
reset_book: "Алексей замечает книгу на полу и нагибается, чтобы её поднять."
|
||||||
reset_book_ends: "Алексей поднимается и кладёт книгу на место."
|
reset_book_ends: "Алексей поднимается и кладёт книгу на место."
|
||||||
|
reset_window: """
|
||||||
|
Маргарита замечает открытое окно и тянется, чтобы его закрыть.
|
||||||
|
"""
|
||||||
|
reset_window_ends: """
|
||||||
|
Маргарита закрывает окно, спускается и занимает своё прежнее место.
|
||||||
|
"""
|
||||||
|
blood_dsc: "Вы замечаете на полу {{красное пятно.}}"
|
||||||
|
blood_act: "Кровь. Вы не очень удивлены."
|
||||||
|
ferret_dsc: "{{Ручной хорёк}} Маргариты внимательно смотрит на вас."
|
||||||
|
ferret_act: "Хорёк не реагирует." # подсказка 1
|
||||||
|
ferret_one_margo: "Хорёк не реагирует." # подсказка 2
|
||||||
|
ferret_one_alexey: "Хорёк не реагирует." # подсказка 3
|
||||||
|
|
|
@ -4,14 +4,11 @@ room "start",
|
||||||
clear: false
|
clear: false
|
||||||
before: (from) ->
|
before: (from) ->
|
||||||
if (!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()
|
return "intro".l()
|
||||||
dsc: () -> "dsc".l(Improv, state)
|
dsc: () ->
|
||||||
|
if salet.character.ferret == true
|
||||||
|
return "dsc_ferret".l()
|
||||||
|
return "dsc".l(Improv, state)
|
||||||
afterChoices: () ->
|
afterChoices: () ->
|
||||||
if (
|
if (
|
||||||
salet.character.lastBeat() > 3 and
|
salet.character.lastBeat() > 3 and
|
||||||
|
@ -22,30 +19,73 @@ room "start",
|
||||||
salet.character.killed = true
|
salet.character.killed = true
|
||||||
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 == true 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)
|
||||||
|
salet.view.write "**"+"reset_window".l()+"**"
|
||||||
|
|
||||||
|
if (salet.character.window == true and salet.character.lastBeat() > 3)
|
||||||
|
salet.character.window = false
|
||||||
|
salet.character.newBeat()
|
||||||
|
salet.view.write "**"+"reset_window_ends".l()+"**"
|
||||||
|
|
||||||
if (salet.character.book == true and salet.character.lastBeat() > 3)
|
if (salet.character.book == true 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()+"**"
|
||||||
writers:
|
|
||||||
window: () ->
|
|
||||||
# re-enter the room, reroll the description
|
|
||||||
salet.view.clearContent()
|
|
||||||
salet.here().entering("start")
|
|
||||||
return "<em>"+procgen("window")+"</em>"
|
|
||||||
canExit: (to) ->
|
canExit: (to) ->
|
||||||
if salet.character.killed and (to == "margo" or to == "alexey")
|
if salet.character.killed and (to == "margo" or to == "alexey")
|
||||||
salet.view.clearContent()
|
salet.view.clearContent()
|
||||||
salet.view.append("<em>"+"#{to}_reaction".l()+"</em>")
|
salet.view.append("<em>"+"#{to}_reaction".l()+"</em>")
|
||||||
return false
|
return false
|
||||||
units:[
|
units:[
|
||||||
|
unit "window",
|
||||||
|
order: 5
|
||||||
|
dsc: () ->
|
||||||
|
if salet.character.ferret == true
|
||||||
|
return "\n\n"+"window_end".l()
|
||||||
|
return "\n\n"+"window".l()
|
||||||
|
act: () ->
|
||||||
|
# re-enter the room, reroll the description
|
||||||
|
salet.view.clearContent()
|
||||||
|
salet.here().entering("start")
|
||||||
|
return "<em>"+procgen("window")+"</em>"
|
||||||
|
unit "owindow",
|
||||||
|
order: 6
|
||||||
|
dsc: () ->
|
||||||
|
if salet.character.ferret == true
|
||||||
|
return "owindow_end".l()
|
||||||
|
return "owindow".l()
|
||||||
|
act: () ->
|
||||||
|
salet.view.clearContent()
|
||||||
|
salet.here().entering("start")
|
||||||
|
if salet.character.killed
|
||||||
|
salet.character.window = true
|
||||||
|
salet.character.newBeat()
|
||||||
|
return "<em>"+"window_open".l()+"</em>"
|
||||||
|
else
|
||||||
|
return "<em>"+"window_open_no".l()+"</em>"
|
||||||
|
unit "alexey",
|
||||||
|
order: 3
|
||||||
|
dsc: () ->
|
||||||
|
"alexey".l(Improv, state)
|
||||||
|
act: () ->
|
||||||
|
salet.goTo("alexey")
|
||||||
|
unit "margo",
|
||||||
|
order: 4
|
||||||
|
dsc: () ->
|
||||||
|
"margo".l(Improv, state)
|
||||||
|
act: () ->
|
||||||
|
salet.goTo("margo")
|
||||||
unit "debug",
|
unit "debug",
|
||||||
dsc: "<center>{{Пропустить всё до загадок}}</center>"
|
dsc: "<center>{{Пропустить всё до загадок}}</center>"
|
||||||
act: () ->
|
act: () ->
|
||||||
state.setTag("weather", "cold")
|
state.setTag("weather", "cold")
|
||||||
salet.here().take(book)
|
salet.here().take(book)
|
||||||
salet.here().take(blood)
|
salet.here().take(blood)
|
||||||
|
salet.here().take(ferret)
|
||||||
salet.character.newBeat()
|
salet.character.newBeat()
|
||||||
salet.character["knows_alexey"] = true
|
salet.character["knows_alexey"] = true
|
||||||
salet.character["knows_margo"] = true
|
salet.character["knows_margo"] = true
|
||||||
|
@ -57,11 +97,12 @@ room "start",
|
||||||
]
|
]
|
||||||
|
|
||||||
book = cunit "book",
|
book = cunit "book",
|
||||||
|
order: 7
|
||||||
dsc: () ->
|
dsc: () ->
|
||||||
if salet.character.book
|
if salet.character.book
|
||||||
return "book_floor".l()
|
return "\n\n"+"book_floor".l()
|
||||||
else
|
else
|
||||||
return "book".l()
|
return "\n\n"+"book".l()
|
||||||
enact: () ->
|
enact: () ->
|
||||||
if salet.character.book
|
if salet.character.book
|
||||||
return "book_act_twice".l()
|
return "book_act_twice".l()
|
||||||
|
@ -71,8 +112,22 @@ book = cunit "book",
|
||||||
return "book_act".l()
|
return "book_act".l()
|
||||||
|
|
||||||
blood = cunit "blood",
|
blood = cunit "blood",
|
||||||
dsc: "Вы замечаете на полу {{красное пятно.}}"
|
order: 8
|
||||||
enact: "Кровь. Вы не очень удивлены."
|
dsc: "blood_dsc".l()
|
||||||
|
enact: "blood_act".l()
|
||||||
|
|
||||||
|
ferret = cunit "ferret",
|
||||||
|
dsc: "ferret_dsc".l()
|
||||||
|
order: 4
|
||||||
|
enact: () ->
|
||||||
|
if salet.character.window == true and salet.character.book == true
|
||||||
|
# хорьку никто не мешает
|
||||||
|
else if salet.character.window == true
|
||||||
|
return "ferret_one_margo".l()
|
||||||
|
else if salet.character.book == true
|
||||||
|
return "ferret_one_alexey".l()
|
||||||
|
else
|
||||||
|
return "ferret_act".l()
|
||||||
|
|
||||||
## ACTUALLY DIALOGUES
|
## ACTUALLY DIALOGUES
|
||||||
|
|
||||||
|
@ -153,6 +208,7 @@ room "killed5",
|
||||||
state.setTag("weather", "cold")
|
state.setTag("weather", "cold")
|
||||||
salet.rooms["start"].take(book)
|
salet.rooms["start"].take(book)
|
||||||
salet.rooms["start"].take(blood)
|
salet.rooms["start"].take(blood)
|
||||||
|
salet.rooms["start"].take(ferret)
|
||||||
optionText: "killed5_option".l()
|
optionText: "killed5_option".l()
|
||||||
dsc: "killed5".l()
|
dsc: "killed5".l()
|
||||||
tags: ["killed"]
|
tags: ["killed"]
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<p>
|
<p>
|
||||||
<a href="https://git.oreolek.ru/oreolek/ludumdare37" target="_blank">Исходный код игры</a>
|
<a href="https://git.oreolek.ru/oreolek/ludumdare37" target="_blank">Исходный код игры</a>
|
||||||
</p>
|
</p>
|
||||||
<p>Аудио: <a href="https://freesound.org/people/felix.blume/sounds/188796">felix blume — On a train in Ukraine, going to Chernobyl</a>, лицензия CC-BY</p>
|
<!-- <p>Аудио: <a href="https://freesound.org/people/felix.blume/sounds/188796">felix blume — On a train in Ukraine, going to Chernobyl</a>, лицензия CC-BY</p> -->
|
||||||
</div>
|
</div>
|
||||||
<div id="footright">
|
<div id="footright">
|
||||||
</div>
|
</div>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<!-- CDN JS Libraries -->
|
<!-- CDN JS Libraries -->
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js" integrity="sha384-QXBtGc4014gU26HdCwzgy8TVO+FHSSE4+EvPPiSTpdE9w0KyJy1ocfiIbBl1HLq7" crossorigin="anonymous"></script>
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js" integrity="sha384-QXBtGc4014gU26HdCwzgy8TVO+FHSSE4+EvPPiSTpdE9w0KyJy1ocfiIbBl1HLq7" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
|
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
|
||||||
<audio id="bgsound" preload="auto" loop="loop"><source src="audio/bgr.mp3" type='audio/mpeg; codecs="mp3"'></audio>
|
<!-- <audio id="bgsound" preload="auto" loop="loop"><source src="audio/bgr.mp3" type='audio/mpeg; codecs="mp3"'></audio> -->
|
||||||
|
|
||||||
<script type="text/javascript" src="game/bundle.js"></script>
|
<script type="text/javascript" src="game/bundle.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in a new issue