Changeset - 3da21717d0e3
[Not reviewed]
default
0 1 0
Silverwing - 7 years ago 2017-12-23 11:14:44

Iraaphaanotrr and Dypatreanotrr items hidden from Leviathan menu if player is in Iraa-city or Dyp-city
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
leviathan.lua
Show inline comments
 
@@ -680,327 +680,327 @@ leviathan_airpump_control = obj {
 
			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;
 
		end;
 
		
 
		return [[Вы находитесь в рубке Левиафана перед штурвалом. Отсюда вы можете направиться куда-нибудь. Яркий свет электрических ламп освещает помещение. ]] .. (view);
 
	end;
 
	update_options = function()
 
		leviathan_dlg:poff("atlantis", "old_temple", "iraaphaanotrr", "iraaphaanotrr_temple", "dypatreanotrr", "dypatreanotrr_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) ~= ctt_iraa_city) then
 
        if (iraaphaanotrr_found and where(submarine_leviathan) ~= iraa_near_city_west) then
 
            leviathan_dlg:pon("iraaphaanotrr");
 
        end;
 
        if (dypatreanotrr_found and where(submarine_leviathan) ~= ctt_dyp_city) then
 
        if (dypatreanotrr_found and where(submarine_leviathan) ~= dyp_center) then
 
            leviathan_dlg:pon("dypatreanotrr");
 
        end;
 
		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;
 
	end;
 
	enter = function(s)
 
		s.update_options();
 
	end;
 
	phr = {
 
		{tag="atlantis", always = "true", "Атлантида", nil, function()
 
			move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
			leviathan_dlg:update_options();
 
            walk(atl_entry);
 
		end},
 
		{tag="old_temple", always = "true", "Старый храм", function()
 
			return "Вы прибыли в старый храм";
 
		end, function()
 
			move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
			leviathan_dlg:update_options();
 
		end},
 
		{tag="iraaphaanotrr", always = "true", "Ираафаанотр", function()
 
            move(submarine_leviathan, "iraa_near_city_west");
 
            leviathan_dlg:update_options();      
 
			walk(iraa_entry);
 
		end},
 
		{tag="iraaphaanotrr_temple", always = "true", "Храм Ираафаанотра", function()
 
			move(submarine_leviathan, "iraa_temple_entrance");
 
            leviathan_dlg:update_options();      
 
            walk(iraa_entry);
 
		end},
 
		{tag="dypatreanotrr", always = "true", "Дипатреанотр", function()
 
			move(submarine_leviathan, "dyp_center");
 
            leviathan_dlg:update_options();      
 
            walk(dyp_entry);
 
		end},
 
		{tag="dypatreanotrr_temple", always = "true", "Храм Дипатреанотра", function()
 
			move(submarine_leviathan, "dyp_temple_entrance");
 
            leviathan_dlg:update_options();      
 
            walk(dyp_temple_entry);
 
		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()]]}
 
	}
 
};
 
 
function leviathan_init()
 
	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;
 
\ No newline at end of file
0 comments (0 inline, 0 general)