Files @ f16f3ae5a5b1
Branch filter:

Location: games/Awakening/main.lua

Silverwing
Chapter 1 complete
-- $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
-- Часть 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;
	
	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
	put(item_toolbox, pl);
	put(item_duct_tape, pl);
	pl.where = "leviathan_airlock";
	atlantis_found = true;
	move(submarine_leviathan, "atl_aqua_leviathan_dock");
	pl.party = {'wright'};
	
	--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;