diff --git a/game/en.coffee b/game/en.coffee
new file mode 100644
index 0000000..4bd0081
--- /dev/null
+++ b/game/en.coffee
@@ -0,0 +1,82 @@
+module.exports.language =
+ intro: """
+ -- Damn, they keep coming!
+
+ A narrow corridor, me and unstoppable line of pearlskinned shiny androids.
+ I'm sure I expected this New Year to be a lot different.
+
+ One crate of androids contains thirty five machines.
+ This is going to be a long battle.
+ """
+ androidattack: "One of androids is so close he bites me!"
+ emptyclip: "I get rid of empty cartridge."
+ player_hit:[
+ "Android's head explodes like a Christmas fireworks.",
+ "Android tries to dodge but finds himself right on the bullet's wrong side. He falls, flooding the floor with oil."
+ ]
+ player_finished:[
+ "I finish the android with a shot to his heart.",
+ "I finish the android with a precise shot.",
+ "The bullet pierces android's head and he finally falls on the floor motionless.",
+ ]
+ player_nicked:[
+ "I shoot the enemy's leg off. He falls but keeps slowly scratch his way with his hands.",
+ "I shoot through the android's arm. He stumbles but keeps going.",
+ ]
+ shoot:[
+ "Shoot",
+ "BAM!",
+ "BLAM!",
+ "BANG!",
+ "Take a shot",
+ "Push the trigger",
+ "Attack",
+ "Shoot 'em",
+ "KILL THEM WITH PISTOL",
+ "I HATE ANDROIDS",
+ "I. Hate. Machines.",
+ "MECHANOID ANNIHILATION",
+ 'Destroy the mechanoids',
+ "Send a bullet to android",
+ "Send a bullet with explosion",
+ "Push the trigger FOR THE HUMANITY",
+ "Jump to a wall and shoot while flying",
+ "Sit down and shoot from a hip",
+ "Take the pistol in both hands and push the trigger",
+ "Slowly take aim and shoot",
+ ]
+ reload: "Reload the pistol",
+ reload_response: "I put another clip in the pistol. I hope it has some ammo."
+ search: "Search for a clip"
+ search_response:[
+ "I hastily search the floor, trying to find at least one cartridge intact.",
+ "I quickly look around for a clip on the floor.",
+ ]
+ finale: """
+ KABOOM!
+
+ The last android suddenly explodes like larded with dynamite.
+ Eh, with these machines you never know.
+ I turn around and go away, not looking at the fire.
+
+ My job is done.
+
+
THE END
+ """
+ clips_not_found:[
+ "No, nothing here.",
+ "Come on, at least one! No, didn't find any."
+ ]
+ health: 'Health'
+ enemies: 'Enemies ahead'
+ clips: 'Cartridges'
+ bullets: 'Bullets in clip'
+ clips_found:[
+ "Aha! Got one. I hope it has some ammo.",
+ "Eh, here's one. Looks heavy -- I hope it has some ammo.",
+ ]
+ player_missed:[
+ "The bullet flies over android's left arm.",
+ "Android dodges the shot. It's alright, next time I won't miss.",
+ "Damn! Missed.",
+ ]
diff --git a/game/main.coffee b/game/main.coffee
index 0c06c16..320de8b 100644
--- a/game/main.coffee
+++ b/game/main.coffee
@@ -16,13 +16,15 @@ markdown = new md({
})
undumloc = require("./ru.coffee").language
undum.language["ru"] = undumloc
+undumloc = require("./en.coffee").language
+undum.language["en"] = undumloc
a = elements.a
span = elements.span
img = elements.img
undum.game.id = "7a1aba32-f0fd-4e3b-ba5a-59e3fa9e6012"
-undum.game.version = "0.5"
+undum.game.version = "1.0"
way_to = (content, ref) -> a(content).class('way').ref(ref)
textlink = (content, ref) -> a(content).once().writer(ref)
@@ -53,7 +55,7 @@ spend_clip = (character, system) ->
if bullets == 0
character.sandbox.clips.splice(character.sandbox.current_clip, 1)
clips = character.sandbox.clips.length
- writemd(system, "Я выбрасываю пустой картридж.")
+ writemd(system, "emptyclip".l())
system.setQuality("clips", clips)
if character.sandbox.current_clip < clips - 1
character.sandbox.current_clip++
@@ -64,26 +66,15 @@ spend_clip = (character, system) ->
check_distance = (character, system) ->
if character.sandbox.distance == 0
system.setQuality("health", character.qualities.health - 1)
- system.writemd("Один из андроидов доходит до меня и кусает!")
+ system.writemd("androidattack".l())
situation 'start',
- content: """
- -- Проклятье, они продолжают идти!
-
- Узкий коридор, я и непрекращающаяся очередь сверкающих белоснежной кожей андроидов.
- Я уверен, что я представлял этот Новый Год совершенно не так.
-
- Один ящик андроидов содержит тридцать пять машин.
- Это будет длинная битва.
- """,
+ content: "intro".l(),
choices: ["#shoot"],
situation "hit",
content: (character, system, from) ->
- response = oneOf(
- "Голова андроида взрывается снопом сверкающих искр.",
- "Андроид пытается увернуться, но попадает точнёхонько под пулю. Он падает, разливая масло на пол."
- ).randomly(system)
+ response = oneOf("player_hit".l()).randomly(system)
return response()
choices: ["#shoot"]
before: (character, system, from) ->
@@ -99,53 +90,24 @@ situation "nicked",
if character.sandbox.nicked == 1
system.setQuality("enemies", character.qualities.enemies - 1)
character.sandbox.nicked = 0
- response = oneOf(
- "Я добиваю андроида выстрелом в сердце.",
- "Я добиваю андроида точным выстрелом",
- "Пуля пробивает голову андроида, и он наконец падает на пол без движения.",
- ).randomly(system)
+ response = oneOf("player_finished".l()).randomly(system)
return response()
else
character.sandbox.nicked = 1
- response = oneOf(
- "Я отстреливаю ногу врага. Он падает, но продолжает медленно царапать путь ко мне руками."
- "Я простреливаю руку андроида. Он пошатывается, но продолжает идти."
- ).randomly(system)
+ response = oneOf("player_nicked".l()).randomly(system)
return response()
choices: ["#shoot"]
situation "miss",
content: (character, system, from) ->
- response = oneOf(
- "Пуля пролетает над левым плечом андроида.",
- "Андроид вовремя уворачивается от выстрела. Ничего, в следующий раз я не промахнусь."
- ).randomly(system)
+ response = oneOf("player_missed".l()).randomly(system)
return response()
choices: ["#shoot"]
situation "shoot",
tags: ["shoot"],
optionText: (character, system, from) ->
- return oneOf(
- "Выстрел",
- "Бдыщь!",
- "Выстрелить",
- "Нажать на курок",
- "Атака",
- "Стрельба",
- "СТРЕЛЯТЬ!",
- "УБИТЬ ИХ ИЗ ПИСТОЛЕТА",
- "НЕНАВИЖУ АНДРОИДОВ",
- "АННИГИЛЯЦИЯ МЕХАНОИДОВ",
- "Уничтожить механоидов",
- "Отправить пулю в андроида",
- "Послать пулю взрывом",
- "Нажать на курок во имя ЧЕЛОВЕЧЕСТВА",
- "Прыгнуть к стене и выстрелить из пистолета в полёте",
- "Присесть и выстрелить с колена",
- "Взять пистолет в обе руки и нажать на курок",
- "Не спеша прицелиться и выстрелить"
- ).randomly(system)
+ return oneOf("shoot".l()).randomly(system)
canChoose: (character, system) ->
return character.qualities.bullets > 0
before: (character, system, from) ->
@@ -166,7 +128,7 @@ situation "shoot",
situation "reload",
tags: ["shoot"],
choices: ["#shoot"],
- optionText: "Перезарядить пистолет",
+ optionText: "reload".l(),
canView: (character, system) ->
return character.sandbox.seen_reload || character.qualities.bullets < 6
canChoose: (character, system) ->
@@ -177,12 +139,12 @@ situation "reload",
character.sandbox.distance--
after: (character, system) ->
spend_clip(character, system)
- writemd(system, "Я вставляю другой картридж в пистолет. Надеюсь, в нём есть патроны.")
+ writemd(system, "reload_response".l())
return true
situation "search",
tags: ["shoot"],
- optionText: "Искать чужие картриджи",
+ optionText: "search".l(),
canView: (character, system) ->
return character.sandbox.seen_search || character.qualities.clips < 5
canChoose: (character, system) ->
@@ -192,10 +154,7 @@ situation "search",
character.sandbox.seen_search = 1
character.sandbox.distance--
after: (character, system) ->
- response = oneOf(
- "Я в спешке шарю по полу, пытаясь найти хотя бы один целый картридж.",
- "Я быстро оглядываюсь в поисках картриджей на полу."
- ).randomly(system)
+ response = oneOf("search_response".l()).randomly(system)
writemd(system, response())
roll = system.rnd.dice(1,20) # d20 roll
find_threshold = 10
@@ -215,47 +174,31 @@ situation "found",
character.sandbox.clips[character.sandbox.clips.length] = bullets
system.setQuality("clips", character.sandbox.clips.length)
content: (character, system, from) ->
- response = oneOf(
- "Ага! Есть один. Надеюсь, в нём есть патроны.",
- "А, вот какой-то. На вес тяжёлый -- надеюсь, в нём есть патроны."
- ).randomly(system)
+ response = oneOf("clips_found".l()).randomly(system)
return response()
situation "not_found",
choices: ["#shoot"],
content: (character, system, from) ->
- response = oneOf(
- "Нет, ничего нет.",
- "Ну хотя бы один! Нет, не нашёл."
- ).randomly(system)
+ response = oneOf("clips_not_found".l()).randomly(system)
return response()
situation "finale",
- content: """
- Ба-бах!
-
- Последний андроид внезапно взрывается, как будто нашпигованный взрывчаткой.
- А, впрочем, с этими машинами никогда не знаешь наверняка.
- Я отворачиваюсь и ухожу прочь, не обращая внимания на взрыв.
-
- Моя работа сделана.
-
- КОНЕЦ
- """,
+ content: "finale".l(),
qualities
head:
- bullets: qualities.integer('Патронов в картридже'),
- clips: qualities.integer('Картриджей с патронами'),
- enemies: qualities.integer('Врагов впереди'),
- health: qualities.fudgeAdjectives('Здоровье'),
+ bullets: qualities.integer("bullets".l()),
+ clips: qualities.integer("clips".l()),
+ enemies: qualities.integer("enemies".l()),
+ health: qualities.fudgeAdjectives("health".l()),
undum.game.init = (character, system) ->
system.setQuality("bullets", 6)
system.setQuality("clips", 6)
system.setQuality("enemies", 35)
system.setQuality("health", 3)
- character.sandbox.clips = [5,5]#[6,6,6,6,6,6]
+ character.sandbox.clips = [6,6,6,6,6,6]
character.sandbox.current_clip = 0
character.sandbox.nicked = 0
character.sandbox.distance = 3
diff --git a/game/ru.coffee b/game/ru.coffee
index 966bb26..441f4ca 100644
--- a/game/ru.coffee
+++ b/game/ru.coffee
@@ -19,3 +19,83 @@ module.exports.language =
random_error: "Проинициализируйте Random с непустым зерном перед использованием."
dice_string_error: "не могу интерпретировать вашу cтроку кубиков: '{string}'."
erase_message: "Это навсегда удалит вашего персонажа и немедленно вернёт вас на старт игры. Вы уверены?"
+ intro: """
+ -- Проклятье, они продолжают идти!
+
+ Узкий коридор, я и непрекращающаяся очередь сверкающих белоснежной кожей андроидов.
+ Я уверен, что я представлял этот Новый Год совершенно не так.
+
+ Один ящик андроидов содержит тридцать пять машин.
+ Это будет длинная битва.
+ """
+ androidattack: "Один из андроидов доходит до меня и кусает!"
+ emptyclip: "Я выбрасываю пустой картридж."
+ player_hit:[
+ "Голова андроида взрывается снопом сверкающих искр.",
+ "Андроид пытается увернуться, но попадает точнёхонько под пулю. Он падает, разливая масло на пол."
+ ]
+ player_finished:[
+ "Я добиваю андроида выстрелом в сердце.",
+ "Я добиваю андроида точным выстрелом",
+ "Пуля пробивает голову андроида, и он наконец падает на пол без движения.",
+ ]
+ player_nicked:[
+ "Я отстреливаю ногу врага. Он падает, но продолжает медленно царапать путь ко мне руками."
+ "Я простреливаю руку андроида. Он пошатывается, но продолжает идти."
+ ]
+ shoot:[
+ "Выстрел",
+ "Бдыщь!",
+ "Выстрелить",
+ "Нажать на курок",
+ "Атака",
+ "Стрельба",
+ "СТРЕЛЯТЬ!",
+ "УБИТЬ ИХ ИЗ ПИСТОЛЕТА",
+ "НЕНАВИЖУ АНДРОИДОВ",
+ "АННИГИЛЯЦИЯ МЕХАНОИДОВ",
+ "Уничтожить механоидов",
+ "Отправить пулю в андроида",
+ "Послать пулю взрывом",
+ "Нажать на курок во имя ЧЕЛОВЕЧЕСТВА",
+ "Прыгнуть к стене и выстрелить из пистолета в полёте",
+ "Присесть и выстрелить с колена",
+ "Взять пистолет в обе руки и нажать на курок",
+ "Не спеша прицелиться и выстрелить",
+ ]
+ reload: "Перезарядить пистолет"
+ reload_response: "Я вставляю другой картридж в пистолет. Надеюсь, в нём есть патроны."
+ search: "Искать чужие картриджи"
+ search_response:[
+ "Я в спешке шарю по полу, пытаясь найти хотя бы один целый картридж.",
+ "Я быстро оглядываюсь в поисках картриджей на полу.",
+ ]
+ finale:
+ """
+ Ба-бах!
+
+ Последний андроид внезапно взрывается, как будто нашпигованный динамитом.
+ А, впрочем, с этими машинами никогда не знаешь наверняка.
+ Я отворачиваюсь и ухожу прочь, не обращая внимания на взрыв.
+
+ Моя работа сделана.
+
+ КОНЕЦ
+ """
+ clips_not_found:[
+ "Нет, ничего нет.",
+ "Ну хотя бы один! Нет, не нашёл."
+ ]
+ health: 'Здоровье'
+ enemies: 'Врагов впереди'
+ clips: 'Картриджей с патронами'
+ bullets: 'Патронов в картридже'
+ clips_found:[
+ "Ага! Есть один. Надеюсь, в нём есть патроны.",
+ "А, вот какой-то. На вес тяжёлый -- надеюсь, в нём есть патроны."
+ ]
+ player_missed:[
+ "Пуля пролетает над левым плечом андроида.",
+ "Андроид вовремя уворачивается от выстрела. Ничего, в следующий раз я не промахнусь.",
+ "Чёрт! Промазал."
+ ]