Files
@ c03ce9916e98
Branch filter:
Location: games/Awakening/atlantis_dyp_night.lua
c03ce9916e98
17.7 KiB
text/x-lua
Huge cleanup
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 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | --[[
Дипатреанотр, ночь
]]
dyp_entry_night = lcutscene("dyp_entry_night", "Левиафан, рубка", [[Левиафан прибывает в Дипетранотр под покровом ночи. Вы останавливаетесь на южной окраине спящего поселения. Прожектор субмарины выключен, во избежание привлечения лишнего внимания, и пространство вокруг Левиафана затянуто кромешной тьмой. ]], "Вы прибыли в Дипатреанотр ночью. ", leviathan_wheelhouse);
dyp_night_south = room {
nam = 'Дипатреанотр, южная окраина(ночь)';
underwater = true;
disp = 'Дипатреанотр, южная окраина';
view = [[Левиафан завис чуть в стороне от Дипатреанотра. На севере горят яркие огни центральных зданий поселения -- библиотеки и дома вождя. Покрытый тьмой город представляет собой нагромождение каменных домиков без четко выраженных улиц или проходов. ]];
dsc = [[Вы стоите на южной окраине Дипатреанотра. К северу от вас расположены неказистые каменные дома жителей города. ]];
way = {
kh_vroom("К центру", "dyp_night_center");
kh_vroom("В Левиафан", "leviathan_airlock");
};
}
dyp_night_center = room {
var {
state = 0;
};
nam = "Дипатреанотр, центр(ночь)";
underwater = true;
disp = 'Дипатреанотр, центр';
entered = function(s)
dyp_obelisk_puzzle.where_from = 'dyp_night_center';
if s.state == 0 then
s.state = 1;
pr [[С трудом пробираясь в темноте среди хаотично наставленных каменных домиков, вы добираетесь до центра города. ]];
end;
end;
dsc = [[Центральная площадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. ]];
view = [[Центральная площадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. Прожектор Левиафана выключен, чтобы ваше присутствие было менее заметно в темноте. ]];
obj = {
'dyp_obelisk';
};
way = {
kh_vroom('К библиотеке', 'dyp_night_library_entrance');
kh_vroom('К дому вождя', 'dyp_night_chief_house_entrance');
kh_vroom('На юг', 'dyp_night_south');
};
}
dyp_night_library_entrance = room {
var {
anna_state = 0;
jack_state = 0;
walter_state = 0;
};
nam = "Дипатреанотр, вход в библиотеку(ночь)";
underwater = true;
disp = 'Дипатреанотр, вход в библиотеку';
dsc = [[Двухэтажное здание библиотеки -- старейшее в Дипатреанотре. Выстроенное из массивных каменных плит и хорошо обслуживаемое, оно сохранилось в превосходном состоянии. Двери здания распахнуты, изнутри исходит слабый свет. ]];
entered = function(s)
if s.state == 0 then
if char_anna.follow and s.anna_state == 0 then
if rel_anna > 0 then
s.anna_state = 1;
return [[Из динамика доносится голос Анны: "Удивительно. Жаль, что у меня нет времени изучить это место как следует".]];
end;
elseif char_wright.follow and s.jack_state == 0 then
if rel_jack > 0 then
s.jack_state = 1;
return [[Из динамика доносится голос Джека: "Сколько же времени нужно, чтобы изучить все, хранящееся здесь". ]];
end;
elseif char_radcliffe.follow and s.walter_state == 0 then
s.walter_state = 1;
return [[Из динамика доносится голос Уолтера: "Дрейк, у нас есть всего пара часов до рассвета. Не думаю, что за это время мы найдем то что мы ищем". ]];
end;
end;
end;
way = {
kh_vroom("К центру", "dyp_night_center");
kh_vroom("В библиотеку", "dyp_night_library_floor1");
}
}
dyp_night_library_floor1 = room {
nam = "Дипатреанотр, библиотека, первый этаж(ночь)";
disp = 'Дипатреанотр, библиотека, первый этаж';
underwater = true;
dsc = [[Огромный зал библиотеки освещен ровным светом водорослей, покрывающих потолок и колонны, ровные ряды которых поддерживают тяжелый каменный потолок. Повсюду стоят массивные стеллажи, заполненные каменными табличками, изредка перемежающимися древними металлическими. Одна из полок полностью заполнена небольшими блестящими дисками. ]];
obj = {
'dyp_library_statue';
};
way = {
kh_vroom("Наружу", "dyp_night_library_entrance");
kh_vroom("На второй этаж", "dyp_night_library_floor2");
};
}
dyp_night_library_floor2 = room {
nam = "Дипатреанотр, библиотека, второй этаж(ночь)";
disp = 'Дипатреанотр, библиотека, второй этаж';
underwater = true;
dsc = [[Второй этаж библиотеки мало чем отличается от первого -- точно такие же колонны, покрытый водорослями, точно такие же стеллажи с табличками. Здесь гораздо больше полок содержат блестящие диски и металлические таблички. ]];
obj = {
'dyp_night_tablets';
};
way = {
kh_vroom("На первый этаж", "dyp_night_library_floor1");
};
}
dyp_night_tablets = obj {
var {
state = 0;
};
nam = "dyp_night_tablets";
dsc = 'В углу аккуратно разложены в несколько стопок каменные и металлические {таблички}. ';
act = function(s)
if s.state == 0 then
if char_anna.follow then
pr [[Вы аккуратно берете верхнюю табличку из стопки. Анна опускается на пол рядом с вами и начинает рассматривать таблички, одну за другой. Из динамика доносится ее голос: "Дэвид, я нашла". ^]];
walk("dyp_night_anna_hint");
else
return [[Вы аккуратно берете верхнюю табличку из стопки. Вы почти ничего не понимаете из того, что на ней написано. Вам нужен кто-то, кто достаточно хорошо знает язык навьяров. ]];
end;
else
return [[Вам здесь больше нечего делать. ]];
end;
end;
}
dyp_night_anna_hint = dlg {
nam = 'dyp_night_anna_hint';
disp = 'Анна Рэдклифф';
entered = function(s)
dyp_stones_known = true;
dyp_lib_stone_state = 1;
return [[Анна поднимается с пола и поворачивается к вам. В динамике вы слышите ее взволнованный голос: "Я нашла то, что мы искали. Недалеко от храма есть пещера, но чтобы войти в нее, нужны три ключа. Ключи спрятаны здесь, в Дипатреанотре". ]];
end;
phr = {
{'Хорошо, будем искать.', 'Анна молча кладет табличку на место. ', code [[back();]]};
{'Как выглядят эти ключи?', 'Анна отвечает: "Не знаю. Здесь не указано, но здесь есть изображение статуи, похожей на ту, что мы видели внизу".'}
};
}
dyp_night_chief_house_entrance = room {
var {
jack_state = 0;
walter_state = 0;
};
nam = 'Дипатреанотр, перед домом вождя(ночь)';
disp = 'Дипатреанотр, перед домом вождя';
underwater = true;
dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города. Из главного зала исходит слабый свет. ]];
entered = function(s)
if char_radcliffe.follow and rel_radcliffe > 0 and s.walter_state == 0 then
s.walter_state = 1;
return [[Из динамиков доносится голос Уолтера: "Неслабый себе домик вождя отгрохал. Сразу видно, заботится о населении". ]];
elseif char_wright.follow and rel_jack > 0 and s.jack_state == 0 then
s.jack_state = 1;
return [[Из динамиков доносится голос Джека: "Не думал, что современные навьяры не способны даже нормально обработать камень". ]];
end;
end;
way = {
kh_vroom("К центру", "dyp_night_center");
kh_vroom("В дом", "dyp_night_chief_house_hall");
};
}
dyp_night_chief_house_hall = room {
nam = 'Дипатреанотр, дом вождя, приемная(ночь)';
disp = 'Дипатреанотр, дом вождя, приемная';
underwater = true;
dsc = [[Приемная вождя слабо освещена водорослями, покрывающими ровные ряды колонн, поддерживающих тяжелый каменный потолок. В дальнем конце зала установлены каменный трон и массивный каменный стол. В углу зала вы видите лестницу, ведущую на второй этаж. К вашему удивлению, она не охраняется. ]];
way = {
kh_vroom("Наружу", "dyp_night_chief_house_entrance");
kh_vroom('Наверх', 'dyp_night_chief_house_2nd_floor')
};
}
dyp_night_chief_house_2nd_floor = room {
nam = 'Дипатреанотр, дом вождя, второй этаж(ночь)';
disp = 'Дипатреанотр, дом вождя, второй этаж';
dsc = [[Коридор второго этажа пуст. Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Справа от вас расположена дверь. Впереди коридор поворачивает направо. ]];
nolamp = true;
entered = function(s)
make_snapshot();
end;
way = {
kh_vroom('За угол', 'dyp_night_chief_house_2nd_floor2');
kh_vroom('На первый этаж', 'dyp_night_chief_house_hall');
kh_vroom('В дверь', 'dyp_night_chief_house_treasury');
}
}
dyp_night_chief_guard = obj {
var {
state = 0;
};
nam = 'dyp_night_chief_guard';
disp2 = "охранника";
dsc = function(s)
if s.state == 0 then
return [[Рядом с дверью стоит {охранник}. Он с недоумением смотрит на вас. У вас есть несколько мгновений, чтобы что-нибудь предпринять. ]];
else
return [[Рядом с дверью лежит труп охранника. ]];
end;
end;
canshoot = true;
onshoot = function(s)
s.state = 1;
lifeoff(dyp_night_chief_house_2nd_floor2);
return [[Вы убиваете охранника. ]];
end
};
dyp_night_chief_house_2nd_floor2 = room {
var {
state = 0;
};
underwater = true;
nam = 'Дипатреанотр, дом вождя, второй этаж(ночь)';
disp = 'Дипатреанотр, дом вождя, второй этаж';
dsc = [[Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Перед вами расположена дверь. ]];
nolamp = true;
entered = function(s)
if dyp_night_chief_guard.state == 0 then
s.state = 2;
lifeon(s);
end;
end;
exit = function(s)
lifeoff(s);
if dyp_night_chief_guard.state == 0 then
walk("game_over_dyp_night_caught");
end;
end;
life = function(s)
if dyp_night_chief_guard.state == 0 then
s.state = s.state - 1;
if s.state == 0 then
walk("game_over_dyp_night_caught");
end
end;
end;
obj = {
'dyp_night_chief_guard';
};
way = {
kh_vroom('За угол', 'dyp_night_chief_house_2nd_floor');
kh_vroom('В дверь', 'dyp_night_chief_house_bedroom');
};
}
dyp_night_chief_house_treasury = darkroom {
nam = 'Дипатреанотр, дом вождя, сокровищница(ночь)';
disp = 'Дипатреанотр, дом вождя, сокровищница';
dsc_dark = [[Большая темная комната. Вы с трудом различаете очертания предметов. ]];
dsc_halflit = [[Большая комната уставлена всевозможными вещами, должно быть, ценными по навьярским меркам. Найти здесь что-то будет крайне сложно, если не невозможно. ]];
way = {
kh_vroom('В коридор', function(s)
if pl.has_light then
pr [[Вас заметят, если вы не выключите свет. ]];
return false;
end;
return 'dyp_night_chief_house_2nd_floor';
end, 2);
};
};
item_scepter = obj {
var {
state = 0;
};
nam = 'item_scepter';
disp = 'Жезл';
dsc = function(s)
if s.state == 0 then
return [[У изголовья кровати стоит {жезл}, в навершии которого укреплен светящийся зеленым светом камень. ]];
else
return [[У изголовья кровати стоит {жезл}. ]];
end;
end;
tak = [[Вы аккуратно берете жезл. ]];
inv = function(s)
if s.state == 0 then
s.state = 1;
take(dyp_item_stone_green);
return [[Вы аккуратно вынимаете камень из навершия жезла. ]];
else
return [[Искусно сделанный золотистый жезл. Вы не можете определить металл, из которого он сделан. ]];
end;
end;
};
dyp_night_bed = obj {
nam = 'dyp_night_bed';
dsc = [[В центре комнаты стоит большая {кровать}, посреди которой мирно спит вождь Дипатреанотра. ]];
used = function(s, o)
if o == item_scepter then
remove(item_scepter, pl);
put(item_scepter, here());
return [[Вы возвращаете жезл на место. ]];
end;
end;
};
dyp_night_chief_house_bedroom = room {
nam = 'Дипатреанотр, дом вождя, спальня(ночь)';
nolamp = true;
disp = 'Дипатреанотр, дом вождя, спальня';
dsc = [[Просторная комната, практически пустая. ]];
obj = {
'dyp_night_bed',
'item_scepter'
};
way = {
kh_vroom("В коридор", 'dyp_night_chief_house_2nd_floor2');
};
};
|