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 = "Возле одной из стен стоит терминал."; };