global { warehouse18_found = false; warehouse32_found = false; warehouse32_visited = false; dock_found = false; leviathan_discovered = false; atlantis_found = false; temple_found = false; iraaphaanotrr_found = false; iraaphaanotrr_temple_found = false; dypatreanotrr_found = false; dypatreanotrr_night_found = false; dypatreanotrr_temple_found = false; venaedanotrr_found = false; venaedanotrr_ravine_found = false; venaedanotrr_temple_found = false; nleyyslanotrr_found = false; nleyyslanotrr_visited = false; deep_temple_found = false; lseryanotrr_found = false; rel_phaetlarr = 0; rel_walter = 0; rel_learr = 0; rel_anna = 0; rel_jack = 0; language_known = false; cart_known = false; dt_code = {}; dt_buttons = {}; raybox_task = false; raybox_task_finished = false; starlight_dock_appearance = 2; starlight_dock_status = false; starlight_darkstar_status = 0; --Глобальные состояния(для концовок) mtr_outcome = 0; -- 1 - leroy accused, 2 - jones accused, 3 - failed to prove conflict_resolved = false; -- Решен ли конфликт между навьярами artifacts_returned = false; -- Вернили ли артефакты из храма навьярам? wright_state = 0; -- был взят Райт на борт или нет goldman_state = 0; -- 0 - Голдман не раскрыт, 1 - Голдман казнен, 2 - Голдман задержан, 3 - Голдман изгнан leroy_state = 0; -- 0 - Леруа не раскрыт, 1 - Леруа казнен, 2 - Леруа задержан, 3 - Леруа изгнан iraa_wand = false; -- был ли возвращен скипетр в Ираафаанотр iraa_map = false; -- был ли возвращен оригинал карты в Ираафаанотр dyp_map = false; -- Передана ли карта(оригинал или копия в Дипатреанотр) svetlova_help = 0; -- Дополнительная помощь, оказанная Светловой в исследовании навьяров --увеличивается, если показать ей КНО и скипетр }; trans_startup = { ru = { ['Language: '] = 'Язык(Language): '; ['Language has been changed'] = 'Язык изменен'; ['Default'] = 'По-умолчанию'; ['{Default}'] = '{По-умолчанию}'; ['David Drake'] = 'Дэвид Дрейк'; ['player_drake.disp2'] = 'Дэвида Дрейка'; ['player_drake.disp3'] = 'Дэвиду Дрейку'; ['Introduction'] = 'Вступление'; ['intro.dsc'] = [[Пароход "Северное сияние" причаливает в порту Лондона. Всего неделю назад вы нашли в доме, где жили вместе со своей матерью, тайник, оставленный бесследно исчезнувшим отцом -- Уильямом Дрейком, владельцем транспортной компании "Вестхейвен Трансоушен". ^Сейчас у вас на руках есть лишь небольшая сумма, заблаговременно снятая со счета, да кипа старых бумаг, которая, быть может, позволит выяснить, что случилось с пропавшим Уильямом. ]]; ['Settings'] = 'Настройки'; ['Start playing'] = 'Начать игру'; ['Information'] = 'Информация'; ['intro_info.dsc'] = [[Спасибо, что играете в Пробуждение. Ждем ваших отзывов на inbox@silverwing.one и https://forum.silverwing.one.^ Автор игры: Khaelenmore Thaal^ Музыка: ^ Bensound (https://www.bensound.com/royalty-free-music)^ Evolution^Deep Blue^Birth of a Hero^Better Days^Sci Fi^ Incompetech (https://incompetech.com/)^ River of Io^ Purple Planet (https://www.purple-planet.com/)^ Midnight Bell^]]; ['You don\'t know what to do with this.'] = 'Вы не знаете, что с этим делать.'; ['You don\'t know how to do this.'] = 'Вы не знаете, как это сделать.'; ['You don\'t have any reason to do this.'] = 'Вам нет смысла это трогать.'; ['This will not help you.'] = 'Вам это ничем не поможет. '; ['This is pointless.'] = 'Это бессмысленно. ".'; ['There is no reason to do this.'] = 'Незачем это трогать.'; ['INV: If you see this message, it is a bug.'] = 'INV: Если вы видите это сообщение -- это баг.'; }; en = { ['player_drake.disp2'] = 'David Drake'; ['player_drake.disp3'] = 'David Drake'; ['intro.dsc'] = [[Steamer by the name of "Aurora Borealis" arrives to the London port. Only a week ago in a house where you were living with your mother you've found a hiding place left by your father -- William Drake, owner of Westhaven Transocean transport company, who have disappeared without a trace. ^Now you have only a handful of money withdrawn from your bank account and a pile of old papers which may hopefully help you to find out what happened with your missing father. ]]; ['intro_info.dsc'] = [[Thank you for playing Awakening. We are waiting for your reviews on inbox@silverwing.one and https://forum.silverwing.one.^ Author: Khaelenmore Thaal^ Music: ^ Bensound (https://www.bensound.com/royalty-free-music)^ Evolution^Deep Blue^Birth of a Hero^Better Days^Sci Fi^ Incompetech (https://incompetech.com/)^ River of Io^ Purple Planet (https://www.purple-planet.com/)^ Midnight Bell^]]; }; } game.enable_save = function () if here().nosave then return false; end; return true; end; game.enable_autosave = function () if EngineUtils.getValue(here().noautosave, here()) then return false; end; return true; end; player_drake = player { var { hp = 10; has_light = false; party = {}; companion = false; money = 200; }; nam = "player"; disp = translate(trans_startup, "David Drake"); disp2 = translate(trans_startup, "player_drake.disp2"); disp3 = translate(trans_startup, "player_drake.disp3"); where = 'port'; obj = {'hp_indicator', 'item_charts', 'item_note_1', 'item_money'}; pay = function(s, c) if (s.money >= c) then s.money = s.money - c; return true; else return false; end; end; }; intro = room { nam = "intro"; hideinv = true; entered = function(s) set_music('music/intro.ogg'); end; disp = translate(trans_startup, 'Introduction'); dsc = translate(trans_startup, 'intro.dsc'); way = { kh_vroom(translate(trans_startup, 'Information'), 'intro_info'); kh_vroom(translate(trans_startup, 'Settings'), 'intro_settings'); kh_vroom(translate(trans_startup, 'Start playing'), 'aurora_borealis'); } }; intro_info = room { nam = "intro_info"; hideinv = true; nosave = true; noautosave = true; disp = translate(trans_startup, 'Information'); dsc = translate(trans_startup, 'intro_info.dsc'); way = { kh_vroom(translate(trans_startup, 'Introduction'), 'intro', 'intro'); kh_vroom(translate(trans_startup, 'Settings'), 'intro_settings', 'settings'); kh_vroom(translate(trans_startup, 'Start playing'), 'aurora_borealis', 'start'); } }; intro_settings = room { nam = "settings"; hideinv = true; nosave = true; noautosave = true; disp = translate(trans_startup, 'Settings'); dsc = [[]]; obj = { 'intro_settings_lang'; }; way = { kh_vroom(translate(trans_startup, 'Introduction'), 'intro', 'intro'); kh_vroom(translate(trans_startup, 'Information'), 'intro_info', 'intro_info'); kh_vroom(translate(trans_startup, 'Start playing'), 'aurora_borealis', 'start'); } } intro_settings_lang_default = obj { nam = 'intro_settings_lang_default'; dsc = function(s) if language == '' then return translate_now(trans_startup, 'Default'); else return translate_now(trans_startup, '{Default}'); end; end; act = function(s) language = ''; prefs.language = language; prefs:store(); return translate_now(trans_startup, 'Language has been changed'); end; } intro_settings_lang_ru = obj { nam = 'intro_settings_lang_ru'; dsc = function(s) if language == 'ru' then return 'Русский'; else return '{Русский}'; end; end; act = function(s) language = 'ru'; prefs.language = language; prefs:store(); return 'Язык изменен'; end; } intro_settings_lang_en = obj { nam = 'intro_settings_lang_en'; dsc = function(s) if language == 'en' then return 'English'; else return '{English}'; end; end; act = function(s) language = 'en'; prefs.language = language; prefs:store(); return 'Language has been changed'; end; } intro_settings_lang = obj { nam = "intro_settings_lang"; dsc = translate(trans_startup, 'Language: '); obj = { intro_settings_lang_default, intro_settings_lang_ru, intro_settings_lang_en } } -- TODO Do we need to update that? game.nam = 'Пробуждение'; game.dsc = [[ Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка, сына владельца крупной транспортной компании "Вестхейвен Трансоушен". Несколько лет назад Уильям Дрейк, отец главного героя бесследно пропадает. Компания вскоре разваливается. Поиски ни к чему не приводят. Когда казалось бы уже все потеряно, в доме Дрейков находят тайник с документами Уильяма. Несколько схем строений, принадлежащих компании и клочок бумаги с адресом некоего Майкла Райта в Лондоне. Естественно, Дэвид как можно скорее отправляется в Великобританию... Вам предстоит отыскать подводную лодку, посетить подводную станцию, построенную Уильямом, встретить древнюю расу подводных жителей, поучаствовать в событиях, описанных древними легендами этой расы и узнать, что стало с Уильямом Дрейком. ]]; game_act_phrases = { translate(trans_startup, 'You don\'t know what to do with this.'); translate(trans_startup, 'You don\'t have any reason to do this.'); translate(trans_startup, 'This will not help you.'); translate(trans_startup, 'This is pointless.'); translate(trans_startup, 'There is no reason to do this.'); }; game_use_phrases = { translate(trans_startup, 'This will not help you.'); translate(trans_startup, 'This is pointless.'); translate(trans_startup, 'You don\'t know how to do this.'); }; game.act = function(s) return game_act_phrases[rnd(#game_act_phrases)](); end; game.use = function(s) return game_use_phrases[rnd(#game_use_phrases)](); end; game.inv = translate(trans_startup, 'INV: If you see this message, it is a bug.'); stead.savename = function() return stead.call(stead.here(), 'disp') or stead.call(stead.here(), 'nam'); end --[[ -- This function gathers all game info and returns room name for proper ending ]] function prepare_ending(nstate) if atl_mtr_finished_jones then atlantis_state = 4; elseif atl_rep_dyp < 0 then atlantis_state = 5; elseif iraa_wand then atlantis_state = 1; elseif iraa_map then atlantis_state = 2; elseif dyp_map then atlantis_state = 3; end; naethvjirr_state = nstate; if nstate == 1 then return "ending_naethvjirr_prevails_david"; elseif nstate == 2 then return "ending_naethvjirr_prevails_william"; elseif nstate == 3 or nstate == 4 then return "ending_naethvjirr_destroyed"; elseif nstate == 5 then return "ending_naethvjirr_prevails"; end; end function init() ---modules init pl = player_drake; --putf("debug_tool", stead.me()) atlantis_init(); leviathan_init(); warehouse18_init(); warehouse32_init(); if prefs.language then language = prefs.language; pl.where = intro; else prefs.language = language; pl.where = intro_settings; end; local nums = {1,2,3,4,5,6}; if #dt_code == 0 then for i = 1, 4 do local index = rnd(#nums); table.insert(dt_code, nums[index]); end; end; nums = {1,2,3,4,5,6}; for i = 1, 3 do local index = rnd(#nums); table.insert(dt_buttons, nums[index]); table.remove(nums, index); end; ---debug end; function start() leviathan_start(); end;