Changeset - 25cc88aa8577
[Not reviewed]
default
0 1 0
Silverwing - 8 years ago 2017-01-21 12:29:18

logic and savegame fixes
1 file changed with 10 insertions and 5 deletions:
dock2.lua
10
5
0 comments (0 inline, 0 general)
dock2.lua
Show inline comments
 
@@ -117,28 +117,31 @@ dock_mooring = room {
 
	way = {
 
		vroom("К воротам", "dock_inside");
 
		vroom("К пульту управления краном", "dock_crane_control");
 
		leviathan_entry:disable();
 
	};
 
	obj = {
 
		"dock_leviathan",
 
		"dock_crane"
 
	};
 
};
 
 
dock_leviathan = obj {
 
    var {
 
        submerged = true;
 
        pump_state = 0; -- 0 в отсеке вода; 1 - в отсеке нет воды
 
        open = false;
 
    };
 
	nam = "dock_leviathan";
 
	disp = "Левиафан";
 
	submerged = true;
 
	pump_state = 0; -- 0 в отсеке вода; 1 - в отсеке нет воды
 
	dsc = function(s)
 
		if (s.submerged) then
 
			return "Под поверхностью воды виден какой-то большой металлический {предмет}. ";
 
		else
 
			if (s.open) then
 
				return [[
 
					На тросах подвешена странная машина. Торпедообразный корпус, в верхней части которого находится {люк}, а в задней видно несколько гребных винтов. Иллюминаторы, частично показавшиеся на поверхности, покрыты грязью. В передней части на борту прикреплена слегка поржавевшая табличка "А04 - Левиафан". 
 
				]]
 
			else
 
				return [[
 
					На тросах подвешена странная машина. Торпедообразный корпус, в верхней части которого виден наглухо задраенный {люк}, а в задней видно несколько гребных винтов. Иллюминаторы, частично показавшиеся на поверхности, покрыты грязью. В передней части на борту прикреплена слегка поржавевшая табличка "А04 - Левиафан". 
 
				]]
 
@@ -148,47 +151,49 @@ dock_leviathan = obj {
 
	act = function(s)
 
		if (s.submerged) then
 
			return "Какой-то большой предмет. В мутной воде вы не можете понять, что это. ";
 
		elseif (s.open) then
 
			--TODO
 
			s.open = false;
 
			leviathan_entry:disable();
 
			return "Вы задраиваете люк.";
 
		else
 
			--TODO
 
			s.open = true;
 
			leviathan_entry:enable();
 
			if (s.pump_state < 2) then
 
			if (s.pump_state == 0) then
 
				return "Вы отдраиваете люк. Отсек внутри заполнен водой. ";
 
			else
 
				return "Вы отдраиваете люк. ";
 
			end;
 
		end;	
 
	end;
 
	used = function(s, o)
 
		if (o == item_pump) then
 
			dock_leviathan.pump_state = 1;
 
			remove(item_pump, pl);
 
			return [[
 
				Вы откачиваете воду из отсека и теперь можете спуститься в него. 
 
			]];
 
		end;
 
	end;
 
};
 
 
dock_crane = obj {
 
    var {
 
        state = 0;
 
        broken = true;
 
    };
 
	nam = "dock_crane";
 
	disp = "Подъемник";
 
	state = 0;
 
	broken = true;
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return "Чуть в стороне от вас огромный металлический кран нависает над водой. {Тросы} сейчас подняты. Возле одной из опор крана установлена небольшая кабинка, в которой по-видимому расположены механизмы для управления краном. ";
 
		elseif (s.state == 1) then
 
			return "Чуть в стороне от вас огромный металлический кран нависает над водой. {Тросы} опущены насколько это возможно - они почти полностью погружены в грязную воду. Возле одной из опор крана установлена небольшая кабинка, в которой по-видимому расположены механизмы для управления краном. ";
 
		elseif (s.state == 2) then
 
			return "Чуть в стороне от вас огромный металлический кран нависает над водой. {Тросы} подцеплены к предмету, скрывающемуся под водой. Возле одной из опор крана установлена небольшая кабинка, в которой по-видимому расположены механизмы для управления краном. ";
 
		else
 
			return "Чуть в стороне от вас огромный металлический кран нависает над водой. ";
 
		end;
 
	end;
 
	act = function(s)
0 comments (0 inline, 0 general)