Files
@ c03ce9916e98
Branch filter:
Location: games/Awakening/lse_alliance.lua
c03ce9916e98
17.9 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 | lse_join_drake = cutscene('Лсэрианотр', 'Лсэрианотр', [[Уильям улыбается и довольно потирает руки. "Отлично, сын", -- произносит он, -- "Вместе мы заставим Наэтвьирра и Лсэрианотр раскрыть нам свои тайны". ]], 'lse_jack_on_join');
lse_jack_on_join = dlg {
nam = 'Джек Райт';
disp = 'Джек Райт';
enter = function(s)
if ArrayUtils.indexOf(pl.party, 'wright') == 0 then
walk('lse_walter_on_join');
end;
if have("item_naethvjirr_key") or lse_key then
pon('have_key');
end;
end;
entered = [[Джек Райт спрашивает вас: "Дрейк, ты уверен в том, что ты делаешь? Уильям безумец, он готов пренебречь любой опасностью ради призрачной надежды". ]];
phr = {
{tag="have_key", false, "У нас есть ключ. Он позволит нам управлять Наэтвьирром. ", [[Джек кивает: "Хорошо, я верю тебе, Дрейк". ^]], code [[walk("lse_walter_on_join");]]};
{"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", function(s)
if rel_jack >= 0 then
pr [[Джек кивает: "Хорошо, я верю тебе, Дрейк".^]];
walk("lse_walter_on_join");
else
for i = 1, #pl.party do
if pl.party[i] == 'wright' then
table.remove(pl.party, i);
break;
end;
end;
pr "Джек молча покидает зал. Никто его не останавливает.^";
walk("lse_walter_on_join");
end;
end};
{"Если тебе что-то не нравится -- уходи. ", "Джек кивает и покидает зал. Никто его не останавливает. ^", code [[
for i = 1, #pl.party do
if pl.party[i] == 'wright' then
table.remove(pl.party, i);
break;
end;
end;
walk("lse_walter_on_join");
]]};
}
}
lse_walter_on_join = dlg {
var {
state = 0
};
nam = 'Уолтер Рэдклифф';
disp = 'Уолтер Рэдклифф';
enter = function(s)
if ArrayUtils.indexOf(pl.party, 'radcliffe') == 0 then
walk('lse_learr_on_join');
end;
if have("item_naethvjirr_key") or lse_key then
pon('have_key');
end;
end;
entered = [[Уолтер Рэдклифф говорит вам: "Нам не стоит спешить. Наэтвьирр ждал нас тысячелетия, еще пару лет, пока мы исследуем все возможные исходы он тоже подождет". ]];
phr = {
{tag="have_key", false, "У нас есть ключ. Он позволит нам управлять Наэтвьирром. ", function(s)
if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
lse_walter_on_join.state = 1;
pr "Уолтер молча смотрит на сестру.^";
walk("lse_anna_on_join");
return;
end;
pr [[Уолтер кивает: "Я бы предпочел провести более полное исследование, но пусть будет по твоему". ^]]
walk("lse_learr_on_join");
end};
{"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", function(s)
if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
if rel_walter >= 0 then
lse_walter_on_join.state = 1;
end;
pr "Уолтер молча смотрит на сестру. ^";
walk("lse_anna_on_join");
return;
end;
if rel_walter >= 0 then
pr [[ Уолтер кивает: "Я бы предпочел провести более полное исследование, но пусть будет по твоему". ^]];
else
for i = 1, #pl.party do
if pl.party[i] == 'radcliffe' then
table.remove(pl.party, i);
break;
end;
end;
pr "Уолтер молча покидает зал. Никто его не останавливает. ^";
end;
walk("lse_learr_on_join");
end};
{"Если тебе что-то не нравится -- уходи. ", function(s)
if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
pr "Уолтер молча смотрит на сестру.";
walk("lse_anna_on_join");
return;
end;
for i = 1, #pl.party do
if pl.party[i] == 'radcliffe' then
table.remove(pl.party, i);
break;
end;
end;
pr "Уолтер молча покидает зал. Никто его не останавливает.^";
walk('lse_learr_on_join');
end};
}
}
lse_anna_on_join = dlg {
nam = 'Анна Рэдклифф';
disp = 'Анна Рэдклифф';
enter = function(s)
if ArrayUtils.indexOf(pl.party, 'anna') == 0 then
walk('lse_learr_on_join');
end;
if have("item_naethvjirr_key") or lse_key then
pon('have_key');
end;
end;
entered = [[Анна Рэдклифф вопрошает: "Наэтвьирр даст нам многое. Но, в самом деле, стоит ли спешить?" ]];
phr = {
{tag='have_key', false, "У нас есть ключ. Он позволит нам управлять Наэтвьирром. ", function(s)
if lse_walter_on_join.state == 1 then
pr [[Анна кивает: "Пусть будет по-твоему". ^]];
else
for i = 1, #pl.party do
if pl.party[i] == 'radcliffe' then
table.remove(pl.party, i);
break;
end;
end;
for i = 1, #pl.party do
if pl.party[i] == 'anna' then
table.remove(pl.party, i);
break;
end;
end;
pr [[Уолтер говорит вам: "Мы уходим". Анна не спорит. Они молча покидают зал. Никто их не останавливает. ^]];
end;
walk('lse_learr_on_join');
end};
{"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", function(s)
if lse_walter_on_join.state == 1 and rel_anna >= 0 then
pr [[Анна кивает: "Пусть будет по-твоему". ^]];
else
for i = 1, #pl.party do
if pl.party[i] == 'radcliffe' then
table.remove(pl.party, i);
break;
end;
end;
for i = 1, #pl.party do
if pl.party[i] == 'anna' then
table.remove(pl.party, i);
break;
end;
end;
pr [[Уолтер говорит вам: "Мы уходим". Анна не спорит. Они молча покидают зал. Никто их не останавливает. ^]];
end;
walk('lse_learr_on_join');
end};
{"Если тебе что-то не нравится -- уходи. ", function(s)
for i = 1, #pl.party do
if pl.party[i] == 'radcliffe' then
table.remove(pl.party, i);
break;
end;
end;
for i = 1, #pl.party do
if pl.party[i] == 'anna' then
table.remove(pl.party, i);
break;
end;
end;
pr [[Уолтер говорит вам: "Мы уходим". Анна не спорит. Они молча покидают зал. Никто их не останавливает. ^]];
walk('lse_learr_on_join');
end};
}
}
lse_learr_on_join = dlg {
nam = 'Леарр';
disp = 'Леарр';
enter = function(s)
if ArrayUtils.indexOf(pl.party, 'learr') == 0 then
walk('lse_join_drake_2');
end;
if have("item_naethvjirr_key") or lse_key then
pon('have_key');
end;
end;
entered = [[Леарр бросает взгляд на Фаэтларра, после чего обращается к вам: "Я Наэтвьирра-опасаюсь. Он откроет-нам-тайны, но Древние-предания гласят, он-несет-навьяров-погибель".]];
phr = {
{tag='have_key', false, "У нас есть ключ. Он не даст Наэтвьирру навредить кому-бы то ни было. ", [[Леарр молча кивает. ^]], code [[walk('lse_join_drake_2'); ]]};
{"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", [[Леарр разворачивается и уходит. Фаэтларр выходит следом за ней. Никто их не останавливает. ^]], code [[ walk('lse_join_drake_2'); ]]};
{"Если тебе что-то не нравится -- уходи. ", [[Леарр разворачивается и уходит. Фаэтларр выходит следом за ней. Никто их не останавливает. ^]], code [[ walk('lse_join_drake_2'); ]]};
}
}
lse_join_drake_2 = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Уильям Дрейк провозглашает: "Все готово, Наэтвьирр вот-вот оживет". ]], 'lse_join_main_room');
lse_join_main_room = room {
var {
state = 5;
};
nosave = true;
noautosave = true;
nam = 'Лсэрианотр, зал Наэтвьирра';
disp = 'Лсэрианотр, зал Наэтвьирра';
dsc = [[Центральный зал ярко освещен исходящим из стен светом. По периметру зала установлены массивные металлические шкафы, издающие ровный низкий гул. По полу протянуты толстые провода, соединяющие их со статуей в центре зала. Металлическая статуя изображает навьяра, сидящего на троне. Рядом с троном стоят два пилона, высотой около метра. ]];
entered = function(s)
lifeon(s);
end;
left = function(s)
lifeoff(s);
end;
life = function(s)
if s.state == 0 then
if lse_key then
walk(lse_naethvjirr_drake_a);
else
walk(lse_naethvjirr_ask);
end;
else
s.state = s.state - 1;
end;
end;
obj = {
'lse_a_drake';
'lse_a_aedhyarr';
}
}
lse_a_drake = obj {
nam = "lse_a_drake";
dsc = [[В дальнем конце комнаты, перед небольшим экраном стоит {Уильям Дрейк}. Он не обращает на вас внимания. ]];
used = function(s, o)
if o == item_naethvjirr_key then
walk(lse_naethvjirr_drake_a);
return [[Вы передаете найденный в древнем храме предмет Уильяму, чтобы он использовал его. ]];
end;
end;
act = [[Уильям Дрейк сообщает: "Скоро все будет готово". ]];
};
lse_a_aedhyarr = obj {
nam = "lse_a_aedhyarr";
dsc = [[Рядом со статуей Наэтвьирра стоит {Аэдхиарр}, внимательно наблюдающий за действиями своего "властителя". ]];
act = [[Аэдхиарр не отвлекаясь наблюдает за действиями Уильяма. ]];
};
lse_naethvjirr_ask = dlg {
nam = 'Наэтвьирр';
disp = 'Наэтвьирр';
entered = function(s)
make_snapshot();
if have(item_naethvjirr_key) then
pon('use_key_self', 'use_key_william');
end;
return [[Глаза статуи, стоящей в центре зала зажигаются белым светом. Его рот открывается и он начинает говорить на непонятных вам языках. Наконец, он говорит на чистом английском: "Кто звал меня?"]];
end;
phr = {
{tag="use_key_self", false, "[Отдать Наэтвьирру ключ] Я тебя звал.", code [[ walk(lse_naethvjirr_self); ]]};
{tag="use_key_self", false, "[Передать ключ Уильяму]", code [[walk(lse_naethvjirr_drake_b); ]]};
{"Я тебя звал.", [[Наэтвьирр замирает на некоторое время, после чего требует: "Подчиняйтесь мне". ]], code [[ psub("join_or_die"); ]]};
{"[Позволить Уильяму говорить]", [[Наэтвьирр замирает на некоторое время, после чего требует: "Подчиняйтесь мне". ]], code [[ psub("join_or_die"); ]]};
{tag="join_or_die"};
{"Слушаю и повинуюсь.", code [[walk(prepare_ending(5));]]};
{"Ни за что.", code [[ lse_ending_state=1; walk(lse_a_pre_final_battle);]]};
};
}
lse_a_pre_final_battle = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Наэтвьирр произносит: "Тогда, мне придется вас уничтожить". Вы достаете револьвер, а в зал врывается Фаэтларр. Не раздумывая, Фаэтларр бросается к ближайшему пилону и разрушает его. Мощный электрический разряд вырывается из руки Наэтвьирра и попадает в навьяра. Фаэтларр падает на пол и остается неподвижно лежать. ]], function(s)
lse_pylon1.hp = 0;
if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
return 'lse_pre_fb_learr';
elseif ArrayUtils.indexOf(pl.party, 'wright') ~= 0 then
return 'lse_pre_fb_jack';
elseif ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
return 'lse_pre_fb_anna';
else
return 'lse_pre_fb_walter';
end;
end);
--[[
Ending 1: Drake controls Naethvjirr
]]
lse_naethvjirr_drake_a = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Глаза статуи, стоящей в центре зала зажигаются белым светом. Его рот открывается и он начинает говорить на непонятных вам языках. Наконец, он говорит на чистом английском: "Кто звал меня?" ^Уильям поднимает перед собой металлическую пластину, взятую у вас, произнося: "Я твой хозяин, слушай меня". Наэтвьирр подходит у Уильяму и забирает предмет из его рук. Он на некоторое время замирает, после чего сообщает: "Принято". ]], function(s)
--'lse_naethvjirr_prevails_william'
return prepare_ending(2);
end);
lse_naethvjirr_drake_b = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Уильям поднимает перед собой металлическую пластину, взятую у вас, произнося: "Я твой хозяин, слушай меня". Наэтвьирр подходит у Уильяму и забирает предмет из его рук. Он на некоторое время замирает, после чего сообщает: "Принято". ]], function(s)
--'lse_naethvjirr_prevails_william'
return prepare_ending(2);
end);
--[[
Ending 2: You control naethvjirr
]]
lse_naethvjirr_self = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Наэтвьирр подходит к вам и забирает ключ из ваших рук. Он на некоторое время замирает, после чего сообщает: "Принято". ]], function(s)
--'ending_naethvjirr_prevails_david'
return prepare_ending(1);
end);
|