-- $Name: Пробуждение$ -- $Version: 1.0$ -- $Author: Khaelenmore Thaal$ instead_version "1.9.1" require "para" require "dash" require "quotes" require "hideinv" require "kbd" -- Код и ядро dofile "utils.lua" -- Общее dofile "items.lua" dofile "party.lua" dofile "game_over.lua"; -- Часть 1 dofile "london.lua" dofile "wright.lua" dofile "travel.lua" dofile "dock2.lua" dofile "warehouse18.lua" dofile "warehouse32.lua" -- Часть 2 dofile "leviathan.lua" dofile "atlantis.lua" dofile "atlantis_ignis.lua" dofile "atlantis_dlg.lua" dofile "atlantis_intro.lua" dofile "atlantis_ignis_on_fire.lua" dofile "atlantis_looking_for_clues.lua" dofile "atlantis_from_the_ashes.lua" dofile "atlantis_iyhehevjiarr.lua" dofile "atlantis_catching_the_tail.lua" -- Часть 3 dofile "journey_venaedanotrr.lua" -- Часть 4 dofile "final_scene.lua"; dofile "final_battle.lua"; dofile "first_city_inner_rim.lua" dofile "first_city_middle_rim.lua" dofile "first_city_outer_rim.lua" --TODO представить все дисплеи картинками --TODO описания локаций должны изменяться в зависимости от посещения их днем или ночью --TODO больше Flavour-textа global { warehouse18_found = false; warehouse32_found = false; dock_found = false; leviathan_discovered = false; atlantis_found = false; temple_found = false; nearest_cities_found = false; iraaphaanotrr_temple_found = false; dypatreanotrr_temple_found = false; venaedanotrr_temple_found = false; zayslanotrr_temple_found = false; deep_temple_found = false; lseryanotrr_found = false; rel_phaetlarr = 0; rel_walter = 0; rel_learr = 0; rel_anna = 0; rel_jack = 0; }; pl = player { nam = "player"; disp = "Дэвид Дрейк"; where = 'port'; hitpoints = 10; obj = {'item_umbrella', 'item_charts', 'item_note_1', 'item_money', }; -- party array. Should be empty on start party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]}; companion = nil; money = 200; 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; disp = "Вступление"; dsc = [[ ВНИМАНИЕ: Это специальная предварительная версия игры. Ни один фрагмент игры не является финальным. ^^ ВНИМАНИЕ: Данная версия игры не предназначена для какого-либо распространения, исключая прямую передачу файлов автором. Вышеуказанное ограничение на распространение данной версии игры аннулируется в момент выхода полной версии. ^^ Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка - единственного сына богатого и уважаемого владельца транспортной компании "Вестхейвен Трансоушен". ^ Несколько лет назад, когда Дэвиду было 10 лет, Уильям таинственным образом бесследно пропал. Полицейское расследование вскоре зашло в тупик и было прекращено. Через несколько месяцев компания, оставшаяся без своего владельца, обанкротилась, ее имущество распродается. ^ После исчезновения отца Дэвид жил в Вашингтоне с бабушкой. Он пошел по стопам отца и выучился на инженера-кораблестроителя. Несколько дней назад в доме, где он жил, был обнаружен тайник, хранящий секретные документы отца - карты, указывающие по-видимому на какие-то тайники Уильяма и записка с адресом и именем.^ Одержимый идеей узнать больше, Дэвид отправляется в Лондон... ]]; obj = { vway("Начать игру", "{Начать игру}", 'aurora_borealis'); } }; demo_end = room { nam = "demo_end"; hideinv = true; dsc = [[ Вы встаете за штурвал "Левиафана". Уверенным движением руки вы включаете насосы. Резервуары заполняются водой и субмарина опускается вниз. Еще одним движением вы включаете двигатели. "Левиафан" плавно сдвигается с места. Через несколько часов вы выходите в открытое море. Еще раз сверившись с картой, вы направляетесь к месту, отмеченному на ней. *** Конец предварительной демонстрации *** ]]; }; game.nam = "Пробуждение"; game.dsc = [[ Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка, сына владельца крупной транспортной компании "Вестхейвен Трансоушен". Несколько лет назад Уильям Дрейк, отец главного героя бесследно пропадает. Компания вскоре разваливается. Поиски ни к чему не приводят. Когда казалось бы уже все потеряно, в доме Дрейков находят тайник с документами Уильяма. Несколько схем строений, принадлежащих компании и клочок бумаги с адресом некоего Майкла Райта в Лондоне. Естественно, Дэвид как можно скорее отправляется в Великобританию... Вам предстоит отыскать подводную лодку, посетить подводную станцию, построенную Уильямом, встретить древнюю расу подводных жителей, поучаствовать в событиях, описанных древними легендами этой расы и узнать, что стало с Уильямом Дрейком. ]]; game_act_phrases = { "Вы не знаете, что с этим делать. "; "Вам нет смысла это трогать. "; "Вам это ничем не поможет. "; "Это бессмыссленно. "; "Незачем это трогать. "; }; game_use_phrases = { "Вам это ничем не поможет. "; "Это бессмыссленно. "; "Вы не знаете, как это сделать. " }; 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 = "INV: Если вы видите это сообщение - это баг. "; require "dbg" function init() ---modules init leviathan_init(); warehouse18_init(); warehouse32_init(); ---game init pl.where = intro; ---debug --[[ ---IYH lifeon(char_learr); lifeon(char_wright); lifeon(char_radcliffe); lifeon(char_anna); lifeon(char_aikerjarr_lev); pl.party = {'learr', 'wright', 'radcliffe', 'anna'}; atlantis_found = true; move(submarine_leviathan, "ctt_dyp_temple_entrance"); --move(submarine_leviathan, "iyh_far_from_entrance_foot"); pl.where = leviathan_wheelhouse; submarine_leviathan.battery = true; -- Состояние батареи submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи submarine_leviathan.circuit_breaks = 0; -- Разрывы цепи submarine_leviathan.valves_to_replace = 0; -- Количество клапанов, которые нужно заменить для полноценной работы submarine_leviathan.power_on = true; -- включена ли энергия submarine_leviathan.air_level = 432000; -- запас воздуха. Максимум - 5 дней(5 * 24 * 60 * 60 = 432000) submarine_leviathan.airpump = false; leviathan_airlock.has_light = true; leviathan_wardroom.has_light = true; leviathan_wheelhouse.has_light = true; leviathan_corridor.has_light = true; leviathan_cabin_1.has_light = true; leviathan_cabin_2.has_light = true; leviathan_cabin_3.has_light = true; leviathan_cabin_4.has_light = true; leviathan_cabin_5.has_light = true; leviathan_captains_cabin.has_light = true; leviathan_cargo_hold.has_light = true; leviathan_engines.has_light = true; leviathan_lower_deck.has_light = true; leviathan_life_support.has_light = true; atl_iyh_state = 7; --]] --- Chapter 1: Atlantis submarine_leviathan.battery = true; -- Состояние батареи submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи submarine_leviathan.circuit_breaks = 0; -- Разрывы цепи submarine_leviathan.valves_to_replace = 0; -- Количество клапанов, которые нужно заменить для полноценной работы submarine_leviathan.power_on = true; -- включена ли энергия submarine_leviathan.air_level = 432000; -- запас воздуха. Максимум - 5 дней(5 * 24 * 60 * 60 = 432000) submarine_leviathan.airpump = false; leviathan_airlock.has_light = true; leviathan_wardroom.has_light = true; leviathan_wheelhouse.has_light = true; leviathan_corridor.has_light = true; leviathan_cabin_1.has_light = true; leviathan_cabin_2.has_light = true; leviathan_cabin_3.has_light = true; leviathan_cabin_4.has_light = true; leviathan_cabin_5.has_light = true; leviathan_captains_cabin.has_light = true; leviathan_cargo_hold.has_light = true; leviathan_engines.has_light = true; leviathan_lower_deck.has_light = true; leviathan_life_support.has_light = true; pl.party = {'wright'}; put(item_toolbox, pl); put(item_ducttape, pl); pl.where = "leviathan_airlock"; atlantis_found = true; move(submarine_leviathan, "atl_aqua_leviathan_dock"); submarine_leviathan:enable(); --ven_temple_l1.position = "66"; --ven_shark.position = "55"; pl.where = "ven_temple_l1"; move(submarine_leviathan, "ven_center"); --pl.where = "ven_chest_look"; --move(ven_shark, "ven_temple_l1"); --put(item_suit, pl); -- pl.where = warehouse_32; -- pl.where = w32_mgr; -- put(item_cogs, pl); -- put(item_pump_details, pl); -- put(item_electrodes, pl); --put(item_lamp, pl); -- pl.where = aurora_borealis; -- move(submarine_leviathan, first_city_entrance); -- move(submarine_leviathan, first_city_outer_east); -- walk(final_scene); -- walk(leviathan_wardroom); -- walk(leviathan_wardroom); -- put("char_learr", "leviathan_wardroom"); -- put("char_phaetlarr", "leviathan_engines"); -- put("char_radcliffe", "leviathan_engines"); -- put("char_wright", "leviathan_wardroom"); -- pl.where = leviathan_airlock; -- pl.where = hotel_street; -- pl.where = warehouse_32_entry; -- dock_found = true; end;