Changeset - a4e12e25133d
[Not reviewed]
default
0 3 0
Silverwing - 6 years ago 2018-12-02 11:21:05

added all items to leviathan dialog
3 files changed with 38 insertions and 4 deletions:
0 comments (0 inline, 0 general)
journey_temple.lua
Show inline comments
 
dt_intro = lsutscene('Левиафан, рубка', 'Левиафан, рубка', [[Следуя карте, найденной в светодиске, вы следуете к древнейшему из известных вам навьярских сооружений. Через месяц пути вы оказываетесь в глубоком лабиринте ущелий. Здесь вам предстоит найти искомое. ]], 'Вы прибыли в древний храм. ', dt_labyrinth);
 

	
 
dt_labyrinth_foot = room {
 
    nam = "dt_labyrinth_foot";
 
    no_exit = [[
 
        Нет смысла покидать Левиафан здесь. 
 
    ]];
 
    handwheel_room = "dt_labyrinth";
 
};
 

	
 
dt_labyrinth_bridge = room {
 
    nam = "dt_labyrinth_bridge";
 
    no_exit = [[
 
         Вы не сможете высадиться здесь. 
 
    ]];
 
    handwheel_room = "dt_labyrinth";
 
};
 

	
 
--id, dsc, directions, where, leviathan_where
 
dt_labyrinth_map = {
 
    ["01"] = {
 
        dsc = [[
 
            Вы находитесь у входа в сложный лабиринт ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        ne = "02",
 
        where = dt_labyrinth_foot
 
    };
 
    ["02"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        sw = "01",
 
        e = "03",
 
        where = dt_labyrinth_foot
 
    };
 
    ["03"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        w = "02",
 
        ne = "04",
 
        where = dt_labyrinth_foot
 
    };
 
    ["04"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        sw = "03",
 
        nw = "05",
 
        e = "07",
 
        where = dt_labyrinth_foot
 
    };
 
    ["05"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        se = "04",
 
        n = "06",
 
        where = dt_labyrinth_foot
 
    };
 
    ["06"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        s = "05",
 
        where = dt_labyrinth_foot
 
    };
 
    ["07"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        w = "04",
 
        n = "08",
 
        se = "09",
 
        where = dt_labyrinth_foot
 
    };
 
    ["08"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        s = "07",
 
        where = dt_labyrinth_foot
 
    };
 
    ["09"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        w = "33",
 
        ne = "10",
 
        nw = "07",
 
        where = dt_labyrinth_foot
 
    };
 
    ["10"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        ne = "11",
 
        sw = "09",
 
        where = dt_labyrinth_foot
 
    };
 
    ["11"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Под вами с северо-запада на юго-восток простирается глубокая расщелина. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        ne = "13",
 
        se = "14",
 
        nw = "12",
 
        sw = "10",
 
        where = dt_labyrinth_foot
 
    };
 
    ["12"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Под вами простирается глубокая расщелина. Она продолжается на северо-запад настолько далеко, насколько хватает мощности прожектора Левиафана, однако, судя по карте, вам нет смысла двигаться в том направлении.
 
        ]], 
 
        se = "11",
 
        where = dt_labyrinth_foot
 
    };
 
    ["13"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        sw = "11",
 
        where = dt_labyrinth_foot
 
    };
 
    ["14"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Под вами с северо-запада на юго-восток простирается глубокая расщелина. На юго-востоке вы видите узкий каменный мостик, протянувшийся над бездной. Из отверстия в скале напротив моста исходит яркий свет. 
 
        ]], 
 
        nw = "11",
 
        se = "15",
 
        where = dt_labyrinth_foot
 
    };
 
    ["15"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Под вами с северо-запада на юго-восток простирается глубокая расщелина. Прямо под Левиафаном вы видите узкий каменный мостик, из отверстия в скале напротив которого исходит яркий свет. Мостик слишком узкий и вы не можете высадиться здесь
 
        ]], 
 
        nw = "11",
 
        se = "15",
 
        where = dt_labyrinth_bridge
 
    };
 
    ["16"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        ne = "35",
 
        where = dt_labyrinth_foot
 
    };
 
    ["17"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Под вами с северо-запада на юго-восток простирается глубокая расщелина. На северо-западе вы видите узкий каменный мостик, протянувшийся над бездной. Из отверстия в скале напротив моста исходит яркий свет. 
 
        ]], 
 
        nw = "15",
 
        where = dt_labyrinth_foot
 
    };
 
    ["18"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        ne = "31",
 
        where = dt_labyrinth_foot
 
    };
 
    ["19"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. на северо-востоке вы видите глубокую расщелину, простирающуюся с северо-запада на юго-восток. над расщелиной висит узкий каменный мостик. Из отверстия в скале напротив него исходит яркий свет. 
 
        ]], 
 
        ne = "15",
 
        w = "20",
 
        where = "dt_temple_ravine"
 
    };
 
    ["20"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        e = "19",
 
        s = "20",
 
        where = dt_labyrinth_foot
 
    };
 
    ["21"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        n = "20",
 
        se = "22",
 
        where = dt_labyrinth_foot
 
    };
 
    ["22"] = {
 
        dsc = [[
 
            Вы находитесь в лабиринте ущелий и впадин. Где-то здесь скрыт древний навьярский храм. 
 
        ]], 
 
        nw = "21",
 
        sw = "23",
 
        where = dt_labyrinth_foot
 
    };
 
    ["23"] = {
leviathan.lua
Show inline comments
 
@@ -672,410 +672,443 @@ leviathan_airpump_control = obj {
 
	nam = "leviathan_airpump_control";
 
	dsc = function(s)
 
		if (submarine_leviathan.airpump) then
 
			return [[Один из них отвечает за управление {воздушными насосами} и находится сейчас во включенном состоянии. ]];
 
		else
 
			return [[Один из них отвечает за управление {воздушными насосами} и находится сейчас в выключенном состоянии.  ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (submarine_leviathan.airpump) then
 
			submarine_leviathan.airpump = false;
 
            timer:stop();
 
            lifeoff(s);
 
			return [[Вы выключаете воздушные насосы. ]];
 
		else
 
			submarine_leviathan.airpump = true;
 
            game.timer = leviathan_airpump_timer;
 
            timer:set(1000);
 
            lifeon(s);
 
			return [[Вы включаете воздушные насосы. ]];
 
		end;
 
	end;
 
	life = function(s)
 
		if (submarine_leviathan.power_on and submarine_leviathan.airpump and submarine_leviathan.battery) then
 
            if (submarine_leviathan.air_level > 432000) then 
 
                submarine_leviathan.air_level = 432000;
 
                p("Кислородные баллоны заполнены. ");
 
                lifeoff(leviathan_airpump_control);
 
                timer:stop();
 
            end;
 
            if (here().leviathan) then
 
                pr([[Вы слышите гул работающих насосов. ]]);
 
            end;
 
        end;
 
	end;
 
	seen_level = 1;
 
};
 
 
leviathan_wheelhouse_sensors = obj {
 
	nam = "leviathan_wheelhouse_sensors";
 
	dsc = [[Чуть ниже рычагов находится небольшая {панель} с лампочками и стрелками каких-то приборов. ]];
 
	act = function(s)
 
		if (submarine_leviathan.battery) then
 
			pr("На панели горят следующие лампочки: ");
 
			pr("батарея работает");
 
			if (submarine_leviathan.power_on) then
 
				pr(", питание включено");
 
			end;
 
			if (submarine_leviathan.airpump) then
 
				pr(", воздушные насосы включены");
 
			end;
 
			if (submarine_leviathan.circuit_breaks > 0) then
 
				pr(", разорвана цепь освещения");
 
			end;
 
			pr(". ");
 
		else
 
			pr("На панели не горит ни одна лампочка. ");
 
		end;
 
		local percent = submarine_leviathan.air_level / 432000 * 100;
 
		pr ([[
 
			Кислородные баллоны заполнены на 
 
		]] .. tostring(math.floor(percent + 0.5)) .. "%. ");
 
	end;
 
	seen_level = 1;
 
};
 
 
leviathan_wiring_dsc = [[Под потолком висят какие-то {провода}. ]];
 
 
leviathan_wiring_act = function(s)
 
	if (submarine_leviathan.power_on and submarine_leviathan.battery) then
 
		return [[Возможно, лучше отключить электричество, прежде чем копаться в проводах. ]];
 
	end;
 
	if (s.state == 0) then
 
		return [[Некоторые провода разорваны. ]];
 
	elseif (s.state == 1) then
 
		return [[Некоторые провода перемотаны изолентой. ]];
 
	else
 
		return [[Провода в порядке. ]];
 
	end;
 
end;
 
 
leviathan_wiring_used = function(s, o)
 
	if (submarine_leviathan.power_on and submarine_leviathan.battery) then
 
		return [[Возможно, лучше отключить электричество, прежде чем копаться в проводах. ]];
 
	end;
 
	if (o == item_ducttape and s.state == 0) then
 
		s.state = 1;
 
		submarine_leviathan.circuit_breaks = submarine_leviathan.circuit_breaks - 1;
 
		if (submarine_leviathan.circuit_breaks == 0) then
 
			for i = 1, #leviathan_wiring do
 
				leviathan_wiring[i]:disable();
 
			end;
 
		end;
 
		return [[Вы соединяете провода и заматываете их изолентой. ]];
 
	end;
 
end;
 
 
leviathan_wheelhouse_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_wheelhouse_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_wardroom_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_wardroom_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_engineering_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_engineering_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
 	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_cargo_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_cargo_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_corridor_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_corridor_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_lower_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_lower_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_life_wiring = obj {
 
    var {
 
        state = 2;
 
    };
 
	nam = "leviathan_life_wiring";
 
	dsc = leviathan_wiring_dsc;
 
	act = leviathan_wiring_act;
 
	used = leviathan_wiring_used;
 
	seen_level = 1;
 
};
 
 
leviathan_wiring = {
 
	leviathan_wheelhouse_wiring;
 
	leviathan_wardroom_wiring;
 
	leviathan_engineering_wiring;
 
	leviathan_cargo_wiring;
 
	leviathan_corridor_wiring;
 
	leviathan_lower_wiring;
 
	leviathan_life_wiring;
 
};
 
 
leviathan_dlg = dlg {
 
	nam = "leviathan_dlg";
 
	disp = "Левиафан, рубка";
 
	dsc = function()
 
		local view = "";
 
		if (type(where(submarine_leviathan).view) == "function") then
 
			view = where(submarine_leviathan):view();
 
		else
 
			view = where(submarine_leviathan).view;
 
			view = where(submarine_leviathan).view();
 
		end;
 
		
 
		return [[Вы находитесь в рубке Левиафана перед штурвалом. Отсюда вы можете направиться куда-нибудь. Яркий свет электрических ламп освещает помещение. ]] .. (view);
 
	end;
 
	update_options = function()
 
		leviathan_dlg:poff("atlantis", "old_temple", "iraaphaanotrr", "iraaphaanotrr_temple", "dypatreanotrr", "dypatreanotrr_temple", "venaedanotrr", 'venaedanotrr_ravine', 'venaedanotrr_temple');
 
		if (atlantis_found and where(submarine_leviathan) ~= atl_aqua_leviathan_dock) then
 
			leviathan_dlg:pon("atlantis");
 
		end;
 
		if (temple_found and where(submarine_leviathan) ~= iyh_far_from_entrance_foot) then
 
			leviathan_dlg:pon("old_temple");
 
		end;	
 
        if (iraaphaanotrr_found and where(submarine_leviathan) ~= iraa_near_city_west) then
 
            leviathan_dlg:pon("iraaphaanotrr");
 
        end;
 
        if (dypatreanotrr_found and where(submarine_leviathan) ~= dyp_center) then
 
            leviathan_dlg:pon("dypatreanotrr");
 
        end;
 
		if (dypatreanotrr_night_found and where(submarine_leviathan) ~= dyp_night_center) then
 
			leviathan_dlg:pon("dypatreanotrr_night");
 
		end;
 
        if (iraaphaanotrr_temple_found and where(submarine_leviathan) ~= ctt_iraa_near_temple) then
 
        if (iraaphaanotrr_temple_found and where(submarine_leviathan) ~= ctt_iraa_near_temple) 		then
 
			leviathan_dlg:pon("iraaphaanotrr_temple");
 
		end;
 
		if (dypatreanotrr_temple_found and where(submarine_leviathan) ~= dyp_temple_entrance) then
 
			leviathan_dlg:pon("dypatreanotrr_temple");
 
		end;
 
		if venaedanotrr_found and where(submarine_leviathan) ~= ven_center then
 
			leviathan_dlg:pon("venaedanotrr");
 
		end;
 
		if venaedanotrr_ravine_found and where(submarine_leviathan) ~= ven_ravine_entrance then
 
			leviathan_dlg:pon("venaedanotrr_ravine");
 
		end;
 
		if venaedanotrr_temple_found and where(submarine_leviathan) ~= ven_temple_entrance then
 
			leviathan_dlg:pon("venaedanotrr_temple");
 
		end;
 
		if nleyyslanotrr_found and where(submarine_leviathan) ~= nley_near_cliff_1 then
 
			leviathan_dlg:pon('nleyyslanotrr')
 
		end;
 
		if deep_temple_found and where(submarine_leviathan) ~= dt_labyrinth_foot then
 
			leviathan_dlg:pon('deep_temple')
 
		end;
 
		if lseryanotrr_found then
 
			leviathan_dlg:pon('lseryanotrr')
 
		end;
 
	end;
 
	enter = function(s)
 
		s.update_options();
 
	end;
 
	phr = {
 
		{tag="atlantis", always = "true", "Атлантида", function()
 
			move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			leviathan_dlg:update_options();
 
            walk(atl_entry);
 
		end},
 
		{tag="old_temple", always = "true", "Старый храм", function()
 
			return "Вы прибыли в старый храм";
 
		end, function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
			leviathan_dlg:update_options();
 
			walk(ancient_temple_intro);
 
		end},
 
		{tag="iraaphaanotrr", always = "true", "Ираафаанотр", function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
            move(submarine_leviathan, "iraa_near_city_west");
 
            leviathan_dlg:update_options();      
 
			walk(iraa_entry);
 
		end},
 
		{tag="iraaphaanotrr_temple", always = "true", "Храм Ираафаанотра", function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, "iraa_temple_entrance");
 
            leviathan_dlg:update_options();      
 
            walk(iraa_temple_entry);
 
		end},
 
		{tag="dypatreanotrr", always = "true", "Дипатреанотр", function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, "dyp_center");
 
            leviathan_dlg:update_options();      
 
            walk(dyp_entry);
 
		end},
 
		{tag="dypatreanotrr_night", always = "true", "Дипатреанотр, ночь", function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, "dyp_night_center");
 
			leviathan_dlg:update_options();
 
			walk(dyp_entry);
 
		end},
 
		{tag="dypatreanotrr_temple", always = "true", "Храм Дипатреанотра", function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, "dyp_temple_entrance");
 
            leviathan_dlg:update_options();      
 
            walk(dyp_temple_entry);
 
		end},
 
        {tag="venaedanotrr", always = "true", "Венаэданотр", function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
            move(submarine_leviathan, "ven_center");
 
            leviathan_dlg:update_options();      
 
            walk(ven_intro);
 
        end},
 
		{tag='venaedanotrr_ravine', always = 'true', 'Ущелье около Венаэданотра', function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, 'ven_ravine_entrance');
 
			leviathan_dlg:update_options();
 
			walk(ven_ravine_intro);
 
		end},
 
		{tah='venaedanotrr_temple', always = 'true', 'Храм Венаэданотра', function()
 
		{tag='venaedanotrr_temple', always = 'true', 'Храм Венаэданотра', function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, 'ven_temple_entrance');
 
			leviathan_dlg:update_options();
 
			walk(ven_temple_intro);
 
		end},
 
		{tag='nleyyslanotrr', always = 'true', 'Нлейисланотр', function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, 'nley_near_cliff_1');
 
			leviathan_dlg:update_options();
 
			if nley_visited then
 
				walk(leviathan_wheelhouse);
 
			else
 
				walk(nley_intro);
 
			end;
 
		end},
 
		{tag='deep_temple', always = 'true', 'Неизвестный храм', function()
 
			if raybox_task then
 
				raybox_task_finished = true;
 
			end;
 
			move(submarine_leviathan, 'dt_labyrinth_foot');
 
			leviathan_dlg:update_options();
 
			walk(dt_intro);
 
		end},
 
		{tag='lseryanotrr', always = 'true', 'Лсэрианотр', function()
 
			leviathan_dlg:update_options();
 
			walk(lse_entered);
 
		end},
 
		{always = "true", "Назад", "", function()
 
			back();
 
		end}
 
	};
 
};
 
 
phone_wheelhouse = obj {
 
	nam = "phone_wheelhouse";
 
	disp = "Телефон";
 
	dsc = [[Рядом со штурвалом установлен {телефонный аппарат} для связи в пределах субмарины. ]];
 
	act = function(s)
 
        if (not submarine_leviathan.power_on or not submarine_leviathan.battery) then
 
            return [[Без электричества телефон не заработает. ]];
 
        elseif (#pl.party < 1) then
 
            return [[Здесь никого нет. ]];
 
        else
 
            walkin(phone_dlg);
 
        end;      
 
	end;
 
	seen_level = 1;
 
};
 
 
phone_cabin = obj {
 
	nam = "phone_cabin";
 
	disp = "Телефон";
 
	dsc = [[На столе установлен {телефонный аппарат} для связи в пределах субмарины. ]];
 
	act = function(s)
 
		if (not submarine_leviathan.power_on or not submarine_leviathan.battery) then
 
            return [[Без электричества телефон не заработает. ]];
 
        elseif (#pl.party < 1) then
 
            return [[Здесь никого нет. ]];
 
        else
 
            walkin("phone_dlg");
 
        end;
 
	end;
 
	seen_level = 1;
 
};
 
 
phone_wardroom = obj {
 
	nam = "phone_wardroom";
 
	disp = "Телефон";
 
	dsc = [[На столе, рядом с креслом капитана установлен {телефонный аппарат} для связи в пределах субмарины. ]];
 
	act = function(s)
 
		if (not submarine_leviathan.power_on or not submarine_leviathan.battery) then
 
            return [[Без электричества телефон не заработает. ]];
 
        elseif (#pl.party < 1) then
 
            return [[Здесь никого нет. ]];
 
        else
 
            walkin("phone_dlg");
 
        end;
 
	end;
 
	seen_level = 1;
 
};
 
 
phone_dlg = dlg {
 
	nam = "phone_dlg";
 
	disp = "Телефон";
 
	hideinv = true;
 
	dsc = [[Вы снимаете трубку и можете вызвать кого-нибудь. ]];
 
	entered = function(s)
 
		poff("phaetlarr", "learr", "radcliffe", "wright", "aikerjarr", "anna");
 
		for i = 1, #pl.party do
 
			pon(pl.party[i]);
 
		end;
 
	end;
 
	phr = {
 
		{ tag = "aikerjarr", always = true, "Аикерьярр", [[Аикерьярр не берет трубку. ]]},
 
		{ tag = "phaetlarr", always = true, "Фаэтларр", code = [[walkin("phaetlarr_phone_dlg")]]},
 
		{ tag = "learr", always = true, "Леарр", code = [[walkin("learr_phone_dlg")]]},
 
		{ tag = "radcliffe", always = true, "Уолтер Рэдклифф", code = [[walkin("radcliffe_phone_dlg")]]},
 
		{ tag = "wright", always = true, "Джек Райт", code = [[walkin("wright_phone_dlg")]]},
 
		{ tag = "anna", always = true, "Анна Рэдклифф", code = [[walkin("anna_phone_dlg")]]},
 
		{ tag = "exit", always = true, "Положить трубку", code = [[back()]]}
 
	}
 
};
 
 
global {
 
    lev_started = false;
 
};
 
 
function leviathan_init()
 
    if not lev_started then
 
        lev_started = true;
 
        put(submarine_leviathan:disable(), dock_mooring);
 
        local i = 0;
 
        while i < submarine_leviathan.circuit_breaks do
 
            local t = rnd(#leviathan_wiring);
 
            if (leviathan_wiring[t].state == 2) then
 
                leviathan_wiring[t].state = 0;
 
                i = i + 1;
 
            end;
 
        end;
 
    end;
 
end;
 
\ No newline at end of file
startup.lua
Show inline comments
 
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_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;
 
    language_known = false;
 
    cart_known = false;
 
    
 
    dt_code = {};
 
    dt_buttons = {};
 

	
 
    raybox_task = false;
 
    raybox_task_finished = false;
 

	
 
    --Глобальные состояния(для концовок)
 
    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_scepter = false; -- был ли возвращен скипетр в Ираафаанотр
 
    iraa_map = false; -- был ли возвращен оригинал карты в Ираафаанотр
 
    dyp_map = false; -- Передана ли карта(оригинал или копия в Дипатреанотр)
 
    svetlova_help = 0; -- Дополнительная помощь, оказанная Светловой в исследовании навьяров --увеличивается, если показать ей КНО и скипетр
 
};
 

	
 
game.enable_save = function ()
 
    if here().nosave then
 
        return false;
 
    end;
 
    return true;
 
end;
 

	
 
game.enable_autosave = function ()
 
    if here().noautosave then
 
        return false;
 
    end;
 
    return true;
 
end;
 

	
 

	
 
player_drake = player {
 
    var {
 
        hp = 10;
 
        has_light = false;
 
        party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]};
 
        companion = nil;
 
        money = 200;
 
    };
 
    nam = "player";
 
    disp = "Дэвид Дрейк";
 
    disp2 = "Дрейка";
 
    disp3 = "Дрейку";
 
    where = 'port';
 
    
 
    obj = {'hp_indicator', 'item_umbrella', '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;
 
    disp = "Вступление";
 
    dsc = [[
 
        ВНИМАНИЕ: Это специальная предварительная версия игры. Ни один фрагмент игры не является финальным.^^
 
        Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка -- единственного сына богатого и уважаемого владельца транспортной компании "Вестхейвен Трансоушен". ^
 
        Несколько лет назад, когда Дэвиду было 10 лет, Уильям таинственным образом бесследно пропал. Полицейское расследование вскоре зашло в тупик и было прекращено. Через несколько месяцев компания, оставшаяся без своего владельца, обанкротилась, ее имущество распродается. ^
 
        После исчезновения отца Дэвид жил в Вашингтоне с бабушкой. Он пошел по стопам отца и выучился на инженера-кораблестроителя. Несколько дней назад в доме, где он жил, был обнаружен тайник, хранящий секретные документы отца -- карты, указывающие, по-видимому, на какие-то тайники Уильяма и записка с адресом и именем.^
 
        Одержимый идеей узнать больше, Дэвид отправляется в Лондон...
 
    ]];
 
    obj = {
 
        vway("Начать игру", "{Начать игру}", 'aurora_borealis');
 
    }
 
};
 

	
 
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: Если вы видите это сообщение -- это баг. ";
 

	
 
preview_unavailable_learr = game_over("preview_unavailable_learr", [[Спасти Леарр у обитателей Атлантиды не получилось. Гибель навьярессы поставила под угрозу многое, чего удалось добиться персоналу станции за долгие годы под водой. ^^Узнать, что произошло дальше, вы сможете в полной версии игры.^^Вы можете загрузить игру и попробовать спасти Леарр самостоятельно. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]]);
 

	
 
preview_unavailable_rayfish = game_over("preview_unavailable_rayfish", [[Убив ската, вы восстанавливаете против себя всех навьяров из Дипатреанотра и Ираафаанотра. В ваших дальнейших поисках вам придется расчитывать только на себя.^^Узнать, что произошло дальше, вы сможете в полной версии игры.^^Вы можете загрузить игру и попробовать обойтись без убийства ската. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]]);
 

	
 
preview_unavailable_venaedanotrr = cutscene("preview_unavailable_venaedanotrr", "Предварительная версия", [[Левиафан полным ходом несется вдаль, к невиданным доселе навьярским поселениям. Кто знает, какие приключения ждут вас и остальных членов экипажа субмарины?^^Узнать, что произошло дальше, вы сможете в полной версии игры. Если вы не собрали оба фрагмента карты, то вы можете продолжить игру. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]], "leviathan_wheelhouse");
 

	
 
preview_unavailable_dypatreanotrr = cutscene("preview_unavailable_dypatreanotrr", "Предварительная версия", [[Вы входите в пещеру в поисках очередного фрагмента карты. Какие испытания предстоит вам преодолеть, прежде, чем вы найдете его? Вы узнаете это в полной версии игры. Если вы не собрали оба фрагмента карты, то вы можете продолжить игру. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]], "dyp_temple_cave_entrance");
 

	
 
function init()
 
    ---modules init
 
    pl = player_drake;
 
    require "dbg";
 
    atlantis_init();
 
    leviathan_init();
 
    warehouse18_init();
 
    warehouse32_init();
 

	
 
    if prefs.language then
 
        language = prefs.language;
 
    else
 
        prefs.language = language;
 
    end;
 
    
 
    local nums = {1,2,3,4,5,6};
 
    for i = 1, 4 do 
 
        local index = rnd(#nums);
 
        table.insert(dt_code, nums[index]);
 
        table.remove(nums, index);
 
    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;
 
    ---game init
 
    pl.where = intro;
 
    ---debug
 
    nley_cave_entrance.state = 1;
 
    pl.where = "nley_phaetlarr_dlg_join";
 
    move("submarine_leviathan", "ven_temple_entrance");
 

	
 
    take(ven_item_green_key);
 
    take(ven_item_red_key);
 
    take(ven_item_tablet);
 
    ven_temple_labyrinth_l1.position = '17';
 

	
 
    -- leviathan
 
    submarine_leviathan.circuit_breaks = 0;
 
    submarine_leviathan.battery = true;
 
    submarine_leviathan.power_on = true;
 
    submarine_leviathan.air_level = 500000;
 
end; 
0 comments (0 inline, 0 general)