File diff fda22c203ad5 → 77aa01170934
engineering.lua
Show inline comments
 
new file 100644
 
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 = "Возле одной из стен стоит терминал.";
 
};
 
\ No newline at end of file