diff --git a/game/begin.coffee b/game/begin.coffee index dce9fe4..ae3ef6d 100644 --- a/game/begin.coffee +++ b/game/begin.coffee @@ -25,6 +25,8 @@ $.getJSON('game/procgen/'+i18n.lang+'.json', (data) -> salet.init = () -> salet.character.lastBeat = () -> return salet.progress.sequence.length - salet.character.beat + salet.character.newBeat = () -> + salet.character.beat = salet.progress.sequence.length $(document).ready(() -> window.addEventListener('popstate', (event) -> @@ -90,6 +92,12 @@ class ImprovModel if @getTag(tagName) == undefined @tags.push([tagName, value]) +cunit = (name, spec) -> + spec.act = () -> + salet.view.clearContent() + salet.here().entering("start") + return ''+@enact.fcall(this)+'' + return unit(name, spec) state = new ImprovModel procgen = (tag) -> return Improv.gen(tag, state) diff --git a/game/language/ru.coffee b/game/language/ru.coffee index 7a918d5..fc432c4 100644 --- a/game/language/ru.coffee +++ b/game/language/ru.coffee @@ -115,6 +115,9 @@ module.exports = Вы видите то же купе, но сейчас дверь открыта, и внутри никого нет. + За окном осенний тёплый пейзаж сменился метелью. + Неужели вы уже в Сибири? + Куда все так внезапно ушли? Верхние полки сложены, а на столе лежит книжка Стивена Кинга. """ @@ -171,3 +174,9 @@ module.exports = У вас созревает план мести. Но если вы не можете выйти, то как заставить кондуктора прийти сюда? """ + book: "На столике лежит {{книга}} в мягком переплёте." + book_floor: "На полу лежит {{книга}} в мягком переплёте." + book_act: "Напрягшись, вы берёте книгу и роняете её со стола." + book_act_twice: "Книга только упала со столика, а вы и так устали." + reset_book: "Алексей замечает книгу на полу и нагибается, чтобы её поднять." + reset_book_ends: "Алексей поднимается и кладёт книгу на место." diff --git a/game/story.coffee b/game/story.coffee index d6825e2..189c7d0 100644 --- a/game/story.coffee +++ b/game/story.coffee @@ -20,8 +20,14 @@ room "start", salet.character.knows_alexey ) salet.character.killed = true - salet.character.beat = salet.progress.sequence.length + 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 @@ -33,6 +39,40 @@ room "start", 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 @@ -111,6 +151,8 @@ 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"]