Files
@ 2b0b0271ccb0
Branch filter:
Location: games/Awakening/engineering.lua
2b0b0271ccb0
6.0 KiB
text/x-lua
fix: dice game
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | 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 = "Возле одной из стен стоит терминал.";
};
|