Changeset - 037e19ceec23
[Not reviewed]
default
0 3 0
Silverwing - 7 years ago 2017-02-11 15:39:16

More leviathan improvements
3 files changed with 23 insertions and 40 deletions:
0 comments (0 inline, 0 general)
leviathan.lua
Show inline comments
 
@@ -107,13 +107,13 @@ leviathan_captains_cabin = darkroom {
 
	disp = "Левиафан, каюта капитана";
 
	leviathan = true;
 
	dsc_lit = [[Каюта капитана несколько больше остальных. Под потолком расположена элетрическая лампа, излучающая яркий свет. ]];
 
	dsc_halflit = [[Вы находитесь в каюте, очевидно, предназначенной для капитана. Под потолком расположена элетрическая лампа, однако сейчас она не горит. Эта каюта немного больше остальных. В слабом свете лампы вы с трудом различаете очертания дверей и предметов. ]];
 
	dsc_dark = [[Вы находитесь в одной из кают. В темноте вы не можете ничего различить. ]];
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 0);
 
		kh_vroom("В коридор", "leviathan_corridor", 1);
 
	};
 
	obj = {
 
		"phone_cabin";
 
        "lev_capn_desk";
 
        "lev_capn_map";
 
        "lev_capn_chair";
 
@@ -198,13 +198,13 @@ leviathan_cabin_1 = darkroom {
 
	disp = "Левиафан, каюта №1";
 
	leviathan = true;
 
	dsc_lit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, излучающая яркий свет. ]];
 
    dsc_halflit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, однако сейчас она не горит. В слабом свете лампы вы с трудом различаете очертания дверей и предметов.  ]]; 
 
    dsc_dark = [[В помещении темно и вы ничего не видите. ]];  
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 0);
 
		kh_vroom("В коридор", "leviathan_corridor", 1);
 
	};
 
    obj = {
 
        'lev_cab_table';
 
        'lev_cab_beds';
 
        'lev_cab_view';
 
    };   
 
@@ -218,13 +218,13 @@ leviathan_cabin_2 = darkroom {
 
	disp = "Левиафан, каюта №2";
 
	leviathan = true;
 
	dsc_lit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, излучающая яркий свет. ]];
 
    dsc_halflit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, однако сейчас она не горит. В слабом свете лампы вы с трудом различаете очертания дверей и предметов.  ]]; 
 
    dsc_dark = [[В помещении темно и вы ничего не видите. ]];  
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 0);
 
		kh_vroom("В коридор", "leviathan_corridor", 1);
 
	};
 
    obj = {
 
        'lev_cab_table';
 
        'lev_cab_beds';
 
        'lev_cab_view';
 
    };   
 
@@ -238,13 +238,13 @@ leviathan_cabin_3 = darkroom {
 
	disp = "Левиафан, каюта №3";
 
	leviathan = true;
 
	dsc_lit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, излучающая яркий свет. ]];
 
    dsc_halflit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, однако сейчас она не горит. В слабом свете лампы вы с трудом различаете очертания дверей и предметов.  ]]; 
 
    dsc_dark = [[В помещении темно и вы ничего не видите. ]];  
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 0);
 
		kh_vroom("В коридор", "leviathan_corridor", 1);
 
	};      
 
    obj = {
 
        'lev_cab_table';
 
        'lev_cab_beds';
 
        'lev_cab_view';
 
    };   
 
@@ -258,13 +258,13 @@ leviathan_cabin_4 = darkroom {
 
	disp = "Левиафан, каюта №4";
 
	leviathan = true;
 
	dsc_lit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, излучающая яркий свет. ]];
 
    dsc_halflit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, однако сейчас она не горит. В слабом свете лампы вы с трудом различаете очертания дверей и предметов.  ]]; 
 
    dsc_dark = [[В помещении темно и вы ничего не видите. ]];  
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 0);
 
		kh_vroom("В коридор", "leviathan_corridor", 1);
 
	};
 
    obj = {
 
        'lev_cab_table';
 
        'lev_cab_beds';
 
        'lev_cab_view';
 
    };   
 
@@ -278,13 +278,13 @@ leviathan_cabin_5 = darkroom {
 
	disp = "Левиафан, каюта №5";
 
	leviathan = true;
 
	dsc_lit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, излучающая яркий свет. ]];
 
    dsc_halflit = [[Эта каюта ничем не отличается от других, расположенных по левому борту субмарины. Под потолком расположена электрическая лампа, однако сейчас она не горит. В слабом свете лампы вы с трудом различаете очертания дверей и предметов.  ]]; 
 
    dsc_dark = [[В помещении темно и вы ничего не видите. ]];  
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 0);
 
		kh_vroom("В коридор", "leviathan_corridor", 1);
 
	};
 
    obj = {
 
        'lev_cab_table';
 
        'lev_cab_beds';
 
        'lev_cab_view';
 
    };
 
@@ -477,27 +477,13 @@ leviathan_breaker = obj {
 
			pr([[Вы выключаете рубильник. ]]);
 
		else
 
			submarine_leviathan.power_on = true;
 
			-- TODO включать двигатель если установлена батарея
 
			pr([[Вы включаете рубильник. ]]);
 
			if (submarine_leviathan.battery and submarine_leviathan.circuit_breaks == 0) then
 
				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;
 
				pr([[Повсюда зажигается яркий свет, на мгновение ослепляя вас. ]]);
 
				pr([[Повсюду зажигается яркий свет, на мгновение ослепляя вас. ]]);
 
			end;
 
		end;
 
	end;
 
	seen_level = 1;
 
};
 
 
@@ -599,18 +585,19 @@ leviathan_wheelhouse = darkroom {
 
	way = {
 
		kh_vroom("В кают-компанию", "leviathan_wardroom", 2);
 
	};
 
	obj = {
 
		'leviathan_handwheel';
 
		'leviathan_airpump_control';
 
		'leviathan_controls';
 
		'leviathan_wheelhouse_sensors';
 
		"leviathan_wheelhouse_wiring";
 
	};
 
};
 
 
leviathan_controls = obj {nam = '1'}
 
 
leviathan_handwheel = obj {
 
	nam = "leviathan_handwheel";
 
	dsc = [[Перед вами расположен {штурвал}. Рядом с ним расположено несколько рычагов. ]];
 
	act = function(s)
 
		if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then
 
			--walkin("demo_end");
 
@@ -649,30 +636,26 @@ leviathan_airpump_control = obj {
 
			lifeon(s);
 
			submarine_leviathan.airpump = true;
 
			return [[Вы включаете воздушные насосы. ]];
 
		end;
 
	end;
 
	life = function(s)
 
		if (submarine_leviathan.power_on) then
 
			if (submarine_leviathan.airpump and submarine_leviathan.battery) then
 
				submarine_leviathan.air_level = submarine_leviathan.air_level + 250;
 
				if (submarine_leviathan.air_level > 432000) then submarine_leviathan.air_level = 432000;
 
				pr([[Вы слышите гул работающих насосов. ]]);
 
				end;
 
			end;
 
		end;
 
		if (submarine_leviathan.power_on and submarine_leviathan.airpump and submarine_leviathan.battery) then
 
            submarine_leviathan.air_level = submarine_leviathan.air_level + 4000;
 
            if (submarine_leviathan.air_level > 432000) then 
 
                submarine_leviathan.air_level = 432000;
 
                lifeoff(s);
 
            end;
 
            if (here().leviathan) then
 
                pr([[Вы слышите гул работающих насосов. ]]);
 
            end;
 
        end;
 
	end;
 
	seen_level = 1;
 
};
 
 
leviathan_controls = obj {
 
	nam = "leviathan_controls";
 
	dsc = [[Остальные {рычаги} используются для управления движением субмарины. ]];
 
	seen_level = 1;
 
};
 
 
leviathan_wheelhouse_sensors = obj {
 
	nam = "leviathan_wheelhouse_sensors";
 
	dsc = [[Чуть ниже рычагов находится небольшая {панель} с лампочками и стрелками каких-то приборов. ]];
 
	act = function(s)
 
		if (submarine_leviathan.battery) then
 
			pr("На панели горят следующие лампочки: ");
utils.lua
Show inline comments
 
@@ -518,44 +518,40 @@ end;
 
    nam = "_kh_input0";
 
    dsc = "{0}";
 
    act = function(s)
 
        if (here().input:len() < here().maxlen) then
 
            here().input = here().input .. "0";
 
        end;
 
        return "";
 
    end;
 
};
 
 
_kh_backspace = obj {
 
    nam = "_kh_back";
 
    dsc = "{Стереть}";
 
    act = function(s)
 
        if (here().input:len() > 0) then
 
            here().input = here().input:sub(1, here().input:len() - 1);
 
        end;
 
        return "";
 
    end;
 
};
 
 
_kh_cancel = obj {
 
    nam = "_kh_cancel";
 
    dsc = "{Отмена}";
 
    act = function(s)
 
        back();
 
        return "";
 
    end;
 
};
 
 
_kh_enter = obj {
 
    nam = "_kh_enter";
 
    dsc = "{Ввод}";
 
    act = function(s)
 
        if (here().input) then
 
            here():check(here().input);
 
        end;
 
        return "";
 
    end;
 
};
 
 
 
--[[
 
	Создает obj, который добавляет другой obj на сцену при активации и становится неинтерактивным
wright.lua
Show inline comments
 
@@ -50,12 +50,16 @@ wright_dlg = dlg {
 
    var {
 
        state = 1;
 
    };
 
	nam = "wright_dlg";
 
	disp = "Джек Райт";
 
	entered = function(s)
 
        if (submarine_leviathan.power_on and submarine_leviathan.airpump and submarine_leviathan.battery and submarine_leviathan.air_level < 432000) then
 
            submarine_leviathan.air_level = 432000;
 
            lifeoff(s);
 
        end;   
 
		if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then
 
			psub('leviathan_restored');
 
			return [[Джек Райт отвлекается от газеты: "Добрый день". ]];
 
		elseif (s.state == 1) then
 
			--First meeting
 
            char_wright_home.known = true;         
0 comments (0 inline, 0 general)