Files @ f391fb97b8c1
Branch filter:

Location: games/Awakening/engineering.lua

Silverwing
321
first_city_engineering_door = obj {
	nam = "first_city_engineering_door";
	dsc = function(s)
		if (first_city_engineering.open) then
			return [[]];
		else
			return [[{Двери}, ведущие в зал обслуживания заблокированы. ]];
		end;
	end;
};

first_city_engineering_door_inside = obj {
	nam = "first_city_engineering_door_inside";
};

first_city_engineering = room {
	nam = "first_city_engineering";
	disp = "Лсэрианотр, зал обслуживания";
	dsc = [[
		Вы находитесь в одном из залов обслуживания Лсэрианотра. Двери в помещение заблокированы и разблокировать их не представляется возможным.
	]];
	entered = function(s)
		service_tunnels.position = "24";
	end;
	obj = {
		"first_city_door_control",
		"first_city_door_control_cardreader",
		"item_keys"
	};
	way = {
		kh_vroom("В сервиcный тоннель", "service_tunnels");
	};
};

item_keys = obj {
	nam = "item_keys";
	disp = "Ключи";
	dsc = "На столе лежат несколько {металлических пластин}. ";
	act = function(s)
		take(item_middle_rim_key);
		take(item_airlock_key);
		take(item_engineering_key);
		take(item_blank_key);
		disable(s);
		return "Вы берете пластины себе";
	end;
};

--TODO (публичная демо-версия) сделать картинки ключей
--TODO (приватная демо-версия) сделать случайную генерацию ключей

item_airlock_key = obj {
	nam = "item_airlock_key";
	disp = "Ключ-карта";
	inv = [[Небольшая металлическая пластина около 6 см в ширину и 10 см в длину. На ней нет никаких символов, кроме трех цилиндров заключенных в квадрат. ]]; 
};

item_middle_rim_key = obj {
	nam = "item_middle_rim_key";
	disp = "Ключ-карта с отверстиями";
	inv = [[Небольшая металлическая пластина около 3 см в ширину и 10 см в длину, на ней в ряд через равные промежутки присутствуют отверстия или нарисованные круги: круг, отверстие, круг, отверстие, круг, отверстие, отверстие, круг ]]; -- 01010110 = 172 
};

item_engineering_key = obj {
	nam = "item_engineering_key";
	disp = "Ключ-карта с отверстиями";
	inv = [[Небольшая металлическая пластина около 3 см в ширину и 10 см в длину, на ней в ряд через равные промежутки присутствуют отверстия или нарисованные круги: круг, отверстие, круг, круг, отверстие, круг, круг, круг ]]; -- 01001000 = 144
};

item_blank_key = obj {
	nam = "item_blank_key";
	disp = "Ключ-карта без отверстий";
	inv = [[Небольшая металлическая пластина около 3 см в ширину и 10 см в длину с восемью кругами, нарисованными на ней в ряд ]]; -- 00000000 = 0
};

first_city_door_control_cardreader = obj {
	nam = "first_city_door_control_cardreader";
	state = 0;
	dsc = function(s)
		if (s.state == 0 or s.state == 2) then
			return "В терминале вы видите небольшую {щель}, около 3 сантиметров шириной.";
		else
			return "В терминале вы видите небольшую {щель}, около 3 сантиметров шириной. В ней застряла одна из ключ-карт";
		end;
	end;
	act = function(s)
		if (s.state == 0 or s.state == 2) then
			return "Очевидно, сюда что-то вставляется. ";
		else
			return "Ключ-карта застряла. Вы не сможете вытащить ее руками. ";
		end;
	end;
	used = function(s, o)
		if (s.state == 0) then
			if (o == item_middle_rim_key) then
				s.state = s.state + 1;
				remove(item_middle_rim_key, pl);
				first_city_middle_south.open(first_city_middle_south);
				return "Аппарат начинает считывать карту. Вы слышите громкий щелчок. Вы слышите откуда-то издалека звук открывающихся огромных ворот. Карта остается в разъеме. ";
			elseif (o == item_engineering_key) then
				s.state = s.state + 1;
				remove(item_engineering_key, pl);
				return "Аппарат начинает считывать карту. Вы слышите громкий щелчок. Двери в комнату слегка приоткрываются. После чего с громким стуком захлопываются. Карта остается в разъеме. ";
			elseif (o == item_blank_key) then
				s.state = s.state + 1;
				remove(item_blank_key, pl);
				return "Аппарат начинает считывать карту. Вы слышите громкий щелчок. Карта остается в разъеме. ";
			else
				return "Это сюда не подойдет";
			end;
		elseif (s.state == 1 and o == item_umbrella) then
			s.state = 0;
			return "Острым наконечником зонта вы поддеваете ключ и вытягиваете его из разъема. К сожалению, он более непригоден к использованию - вы видите, что он погнут";
		else
			return "Прежде чем вставлять что-то еще, нужно извлечь ключ. ";
		end;
	end;
};

first_city_door_control = obj {
	nam = "first_city_door_control";
	dsc = "Возле одной из стен стоит терминал.";
};