diff --git a/Gulpfile.coffee b/Gulpfile.coffee index 3adba79..0d65591 100644 --- a/Gulpfile.coffee +++ b/Gulpfile.coffee @@ -102,6 +102,7 @@ gulp.task('serve', ['build'], () -> gulp.watch(['./sass/*.scss'], ['sass']) gulp.watch(['./img/*.png', './img/*.jpeg', './img/*.jpg'], ['img']) gulp.watch(['./game/*.coffee'], ['coffee']); + gulp.watch(['./game/procgen/*/*.cson'], ['concatCoffee']); gulp.watch(['./build/css/main.css'], sassListener) gulp.watch( diff --git a/game/begin.coffee b/game/begin.coffee index f15124a..dce9fe4 100644 --- a/game/begin.coffee +++ b/game/begin.coffee @@ -22,6 +22,10 @@ $.getJSON('game/procgen/'+i18n.lang+'.json', (data) -> $.holdReady( false ) ) +salet.init = () -> + salet.character.lastBeat = () -> + return salet.progress.sequence.length - salet.character.beat + $(document).ready(() -> window.addEventListener('popstate', (event) -> salet.goBack() @@ -65,3 +69,27 @@ actlink = (content, ref) -> class ImprovModel constructor: () -> @tags = [] + getTag: (tagName) -> + for tag in @tags + if tag[0] == tagName + return tag[1] + return undefined + hasTag: (tagName) -> + for tag in @tags + if tag[0] == tagName + return true + return false + setTag: (tagName, value) -> + for tag, index in @tags + if tag[0] == tagName + @tags[index][1] = value + return true + @tags.push([tagName, value]) + return true + setTagIfNotPresent: (tagName, value) -> + if @getTag(tagName) == undefined + @tags.push([tagName, value]) + +state = new ImprovModel +procgen = (tag) -> + return Improv.gen(tag, state) diff --git a/game/language/ru.coffee b/game/language/ru.coffee index bd54045..f00d6d1 100644 --- a/game/language/ru.coffee +++ b/game/language/ru.coffee @@ -3,26 +3,74 @@ module.exports = erase_message: "Это навсегда удалит вашего персонажа и немедленно вернёт вас на старт игры. Вы уверены?" back: "Обратно" intro: """ - -- Только что звонили из клуба. <..> + # Не забыть назвать игру + + Наконец-то. Наконец-то эти однообразные концерты закончились, и ваша группа + поехала на гастроли. По Сибири. Играть очень народный фолк. + + Именно проклиная всё, что было с вами по ту сторону Урала, вы едете по трассе + прямо на восток, пока не приедете в Самое Холодное Место. + А оттуда уже можно будет город за городом прыгать домой. """ - dsc: (Improv) -> """ - ### В машине + dsc: (Improv, state) -> """ + ##### В машине - Рядом с вами сидит [Лёша](alexey) и #{Improv.gen("alexey")} - На переднем сидении [Марго](margo) #{Improv.gen("margo")} - Вы сидите на заднем сидении, за спиной водителя. [Катя](katie) #{Improv.gen("katie")} + Рядом с вами сидит [Лёша](alexey). #{Improv.gen("alexey", state)} + Передним пассажиром едет [Марго](margo). #{Improv.gen("margo", state)} + Вы сидите на заднем сидении, за спиной водителя [Кати](katie). #{Improv.gen("katie", state)} Вы положили в карман дверцы [мобильный телефон.](phone) За [окном машины](./_writer_window) проносится трасса. - #{Improv.gen("you")} + #{Improv.gen("you", state)} + """ + story_call: """ + У Лёши звонит телефон. + """ + alexey_dsc: (Improv, state) -> """ + Лучший клавишник России по мнению Маргариты (что не мешает ему сидеть на перкуссии), + золотой самородок Нижнего Новгорода и просто -- ОН. + + #{Improv.gen("alexey", state)} + """ + margo_dsc: (Improv, state) -> """ + #{Improv.gen("margo", state)} + """ + katie_dsc: (Improv, state) -> """ + #{Improv.gen("katie", state)} + """ + katie_bye: """ + -- Ладно, не буду отвлекать. + + Катя многозначительно молчит в ответ. + """ + margo_bye: """ + -- Ну ладно, у меня тут в окне важные дела. + + -- Всё интересное мы уже проехали. + + -- А я не хочу ничего пропустить! + """ + alexey_bye: """ + Я замолкаю. Разговор быстро затухает, как будто мы и не говорили вовсе. + """ + alexey_mood: "Как настроение, Лёш?" + alexey_mood_answ: "Паршивое. Но это нормально, оно всегда паршивое." + alexey_speed: "Как думаешь, скоро приедем?" + alexey_speed_answ: """ + -- Как думаешь, скоро приедем? + + -- Приедем, как приедем. В прошлом городе приехали вовремя, а зрителей не было. + А до этого опоздали, и был полный зал. Хочешь, порепетируем? + + -- Не надо. """ phone_dsc: "Вы открываете список контактов. Кому бы позвонить…" director_prompt: "Директор музыкального клуба" director_dsc: """ — Алло? Анна Борисовна? """ - bye: "Попрощаться" + bye: "Закончить разговор" cyalater: """ — Спасибо. Созвонимся. """ diff --git a/game/procgen/ru/alexey.cson b/game/procgen/ru/alexey.cson index 5f494fa..2818c1f 100644 --- a/game/procgen/ru/alexey.cson +++ b/game/procgen/ru/alexey.cson @@ -1,5 +1,7 @@ phrases: [ - "обнимает гитару." - "насвистывает свою партию в песне про солнце." - "задумчиво смотрит в одну точку." + "Он обнимает футляр с гитарой Марго." + "Он насвистывает свою партию в песне про солнце." + "Он задумчиво смотрит в одну точку." + "Он выудил откуда-то томик Стивена Кинга и взахлёб читает." + "Он развалился, уткнув ноги в спинку переднего сиденья." ] diff --git a/game/procgen/ru/katie.cson b/game/procgen/ru/katie.cson index b01e01e..c49e8e2 100644 --- a/game/procgen/ru/katie.cson +++ b/game/procgen/ru/katie.cson @@ -1,3 +1,3 @@ phrases: [ - "выжимает из машины всё, что дозволено правилами." + "Она выжимает из машины всё, что дозволено правилами." ] diff --git a/game/procgen/ru/margo.cson b/game/procgen/ru/margo.cson index 87f922d..4edd26e 100644 --- a/game/procgen/ru/margo.cson +++ b/game/procgen/ru/margo.cson @@ -1,3 +1,3 @@ phrases: [ - "напевает про себя весёлый мотивчик." + "Она напевает про себя весёлый мотивчик." ] diff --git a/game/procgen/ru/window.cson b/game/procgen/ru/window.cson index 1727404..e0d14e8 100644 --- a/game/procgen/ru/window.cson +++ b/game/procgen/ru/window.cson @@ -8,6 +8,7 @@ groups: [ ['weather', 'warm'] ] phrases: [ + 'В машине душно, а за окном солнышко.' ] , tags: [ diff --git a/game/procgen/ru/you.cson b/game/procgen/ru/you.cson index 3b9bfa1..470baf7 100644 --- a/game/procgen/ru/you.cson +++ b/game/procgen/ru/you.cson @@ -1,3 +1,15 @@ -phrases: [ - "Вы сжимаете родную флейту. Только бы не опоздать." +groups: [ + tags: [ + ['mood', 'calm'] # спокойное настроение + ] + phrases: [ + "Вам хорошо и спокойно." + ] + , + tags: [ + ['mood', 'shaky'] # нервное состояние + ] + phrases: [ + "Вы сжимаете родную флейту. Только бы не опоздать." + ] ] diff --git a/game/story.coffee b/game/story.coffee index 44dad6c..8a6005e 100644 --- a/game/story.coffee +++ b/game/story.coffee @@ -1,30 +1,69 @@ +## REAL ROOM + room "start", + clear: false before: (from) -> if (!from) + salet.character.beat = 0 + state.setTag("weather", "warm") + state.setTag("mood", "calm") return "intro".l() - dsc: () -> "dsc".l(Improv) + dsc: () -> "dsc".l(Improv, state) + beforeChoices: () -> + if salet.character.lastBeat() > 3 and salet.character.heard_call == false + salet.character.heard_call = true + salet.character.beat = salet.progress.sequence.length + salet.view.write "#{"story_call".l()}" writers: window: () -> # re-enter the room, reroll the description salet.view.clearContent() salet.here().entering("start") - return ""+Improv.gen("window")+"" + return ""+procgen("window")+"" -room "phone", - choices: "#call", - dsc: "phone_dsc".l() +## ACTUALLY DIALOGUES + +dlg = (name) -> + return room(name, { + 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") +dlg("katie") +dlg("phone") + +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") +dlg_bye("katie") room "director", - tags: ["call"], + tags: ["phone"], choices: "#director" optionText: "director_prompt".l() dsc: "director_dsc".l() -dialogue "bye".l(), "director", "call", "cyalater".l() +# особый диалог прощания, потому что у него особый текст на возврате +dialogue "bye".l(), "director", "phone", "cyalater".l() # Virtual room to go around limitations room "vstart", - tags: ["call"] + tags: ["phone"] optionText: (from) -> switch from when "phone" then "end_phone".l() diff --git a/html/index.html b/html/index.html index 5806986..3595f97 100644 --- a/html/index.html +++ b/html/index.html @@ -12,8 +12,8 @@
- +
diff --git a/html/ru.html b/html/ru.html index 54a45d1..38ea39b 100644 --- a/html/ru.html +++ b/html/ru.html @@ -12,22 +12,12 @@
- - + +
-
-
-
-

Не забыть назвать игру

- -
-
-
diff --git a/sass/main.scss b/sass/main.scss index 0051a9d..3d6c491 100644 --- a/sass/main.scss +++ b/sass/main.scss @@ -72,9 +72,7 @@ body { #tools_wrapper { background: $body-bg; .buttons { - @include make-col(6); - @include make-col-offset(6); - text-align: right; + text-align: left; } button { display: inline-block; @@ -82,6 +80,7 @@ body { } #content_wrapper { background: $text_background; + padding-top: 2em; border-radius: 5px; } .content {