Files
@ aec5d78f6fd5
Branch filter:
Location: games/Awakening/final_scene.lua - annotation
aec5d78f6fd5
11.7 KiB
text/x-lua
progress on dlg rewrite; Svetlova new dlg added
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 | c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 e56198c202cf c4b207ce4252 e56198c202cf e56198c202cf e56198c202cf c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 e56198c202cf c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 e56198c202cf c4b207ce4252 e56198c202cf e56198c202cf e56198c202cf c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd c4b207ce4252 c4b207ce4252 bda865ce65bd bda865ce65bd c4b207ce4252 c4b207ce4252 bda865ce65bd bda865ce65bd c4b207ce4252 c4b207ce4252 bda865ce65bd bda865ce65bd bda865ce65bd bda865ce65bd bda865ce65bd bda865ce65bd bda865ce65bd c4b207ce4252 bda865ce65bd bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd bda865ce65bd bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd c4b207ce4252 e56198c202cf e56198c202cf e56198c202cf c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd c4b207ce4252 e56198c202cf bda865ce65bd e56198c202cf e56198c202cf c4b207ce4252 bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 bda865ce65bd bda865ce65bd c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 c4b207ce4252 e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf e56198c202cf | adrian_helper = obj { nam = "adrian_helper"; life = function(s) if (char_adrian.state > 1 and char_adrian.state < 5) then char_adrian.state = char_adrian.state + 1; elseif (char_adrian.state == 5) then char_naethvjirr.active = true; p([[ Адриан что-то делает с пультом управления и Наэтвьирр оживает ]]); lifeoff(s); walk("pre_battle_scene_normal"); end; end; }; char_adrian = obj { nam = "adrian"; disp = "Adrian"; state = 1; dsc = function(s) if (char_naethvjirr.active) then return [[ Вы видите {Адриана Блэка}, стоящего рядом с автоматоном. ^ ]]; else if (s.state == 1) then return [[ Вы видите {Адриана Блэка}, стоящего рядом с автоматоном. Он что-то делает с ним. ^ ]]; elseif (s.state < 6) then return [[ {Адриан Блэк} собирается включить Наэтвьирра. ^ ]]; end; end; end; life = function(s) if (s.state < 5) then s.state = s.state + 1; elseif (s.state == 5) then char_naethvjirr.active = true; p([[ Адриан что-то делает с пультом управления и Наэтвьирр оживает ]]); lifeoff(s); walk("pre_battle_scene_normal"); end; end; act = function(s) if (s.state == 1) then walkin "adrian_dlg"; elseif (s.state < 5) then return "Надо как-то остановить его, но как?"; else -- TODO: Вы сбиваете Адриана с ног end; end; }; adrian_dlg = dlg { nam = "adrian_dlg"; disp = "Адриан Блэк"; hideinv = true; entered = [[ Блэк поворачивается к вам. Его лицо выражает крайнюю степень удивления: "Кто вы, черт возьми, такие?!". Он отвлекся от работы с Наэтвьирром. Кажется, он не рад вас видеть. ]]; phr = { {"Адриан Блэк?", [[ "Предположим. " ]]}, {"Что здесь происходит?", [[ "Завершаю то, что должно было закончиться тысячелетия назад. Эта машина, Наэтвьирр - спящий разум глубин, как его называют Навьяры, или если точнее - Эйлеслвьихенарр - вечный разум глубин и поверхности. Он таит знания тысяч поколений Навьяр - они не должны скрываться под толщей воды, они должны быть открыты нам! " ]], [[ pstart 'more_naethvjirr' ]]}, { tag="more_naethvjirr" }, {"Что вы знаете о Наэтвьирре?", [[ "Согласно легендам, собранным мной в разных поселениях навьяров, Наэтвьирр был построен в глубокой древности навьярами, которые тогда господствовали как под водой, так и на суше. Единственной целью существования Наэтвьирра было стать "вечным мудрецом" - "эйлеслэйлайхевьирр", как его называют до сих пор в некоторых местах. Имена менялись, как всегда было у навьяров, но всегда отражали суть - частично или полностью - мыслящая, всезнающая машина, способная ответить на многие вопросы и помочь принять многие трудные решения. Только по чудовищному недоразумению он не был активирован раньше. " ]]}, {"Вы понимаете, насколько опасно включать эту машину, как бы она ни называлась?", [[ "Во-первых, не тебе учить меня. Во-вторых, я все предусмотрел - в случае опасности я смогу отключить его." ]], [[ pstart 'halt_naethvjirr' ]]}, { tag="halt_naethvjirr", empty = function() char_adrian.state = 2; p("^^С этими словами, Адриан подходит к рубильнику. У вас есть несколько мгновений, чтобы отреагировать"); walk("final_scene"); char_naethvjirr.canshoot = true; lifeon(adrian_helper); end }, {"Как вы собираетесь управлять им, если ключ утерян? *Вы показываете Адриану табличку со схемой работы Наэтвьирра*", [[ Адриан показывает вам серебристую пластинку небольшого размера(около 20х15см), на которой отсвечивают красноватые круги и линии. - "Я все предусмотрел. Без этой деталюшки Наэтвьирр будет серьезно ограничен в возможностях - это тот самый компонент, который должен блокироваться или разблокироваться ключом. " ]]} }; }; char_naethvjirr = obj { nam = "naethvjirr"; disp = "Наэтвьирр"; disp2 = "Наэтвьирра"; canshoot = false; dsc = function(s) if (s.active) then return [[ В центре зала перед массивной конструкцией, напоминающей трон, стоит {автоматон навьяр}. Конструкт выглядит совершенно как живой, сияющие белым светом глаза оглядывают помещение и вас в ожидании ваших действий. Тысячи проводов тянутся от "трона" к стенам, подобно щупальцам. ^ ]]; else return [[ В центре зала на массивной конструкции, напоминающей трон, сидит {навьяр}. Конструкт выглядит совершенно как живой, однако он абсолютно неподвижен. Покрытые серебристой чешуей, его руки покоятся на коленях. Тысячи проводов тянутся от "трона" и фигуры к стенам, подобно щупальцам. Глаза навьяра закрыты. ^ ]]; end; end; act = [[ Я пока не знаю, что с этим делать ]]; noshootmsg = "Я не знаю, к чему это приведет, пока лучше этого не делать"; nohitmsg = "Я не знаю, к чему это приведет, пока лучше этого не делать"; onshoot = function(s) p("^^Ваш выстрел повреждает Наэтвьирра, но вы не замечаете, сказалось ли это на его работоспособности"); fb_naethvjirr.hitpoints = 2; char_adrian.state = 6; -- TODO Адриан стреляет в одного из членов партии if (#pl.party ~= 0) then local chosen_one; local chosen_one_index = rnd(#pl.party); local chosen_one_name = pl.party[chosen_one_index]; if (chosen_one_name == "learr") then chosen_one = char_learr_fb; elseif (chosen_one_name == "phaetlarr") then chosen_one = char_phaetlarr_fb; elseif (chosen_one_name == "radcliffe") then chosen_one = char_radcliffe_fb; else chosen_one = char_wright_fb; end; table.remove(pl.party, chosen_one_index); p("^^Адриан вскидывает пистолет и стреляет в вашу сторону. " .. chosen_one.disp .. " падает замертво"); walk("pre_battle_scene_fight"); else -- TODO Адриан стреляет в вас walk("game_over_shot"); end; end; }; char_learr_fb = obj { nam = "learr_fb"; disp = "Леарр"; dsc = function() return [[ {Леарр} смотрит попеременно то на вас, то на Адриана ^ ]]; end; }; char_phaetlarr_fb = obj { nam = "phaetlarr_fb"; disp = "Фаэтларр"; dsc = function() return [[ {Фаэтларр} оглядывает зал ^ ]]; end; }; char_radcliffe_fb = obj { nam = "radcliffe_fb"; disp = "Уолтер Рэдклифф"; dsc = function() return [[ {Уолтер Рэдклифф} с интересом разглядывает Наэтвьирра ^ ]]; end; }; char_wright_fb = obj { nam = "wright_fb"; disp = "Джек Райт"; dsc = function() return [[ {Джек Райт} ждет ваших действий ^ ]]; end; }; final_scene= room { nam = "final_scene"; disp = "Лсэрианотр, центральный зал"; dsc = [[ Вы находитесь в центральном зале древнего города Навьяр. Вдоль стен стоят огромные металлические шкафы, из которых тысячи проводом тянутся к громадной конструкции в центре зала. Мягкий свет льется сверху, практически ослепляя вас после полумрака остальной части мертвого города. ]]; obj = { "char_naethvjirr", "char_adrian", "adrian_helper", "char_learr_fb", "char_phaetlarr_fb", "char_radcliffe_fb", "char_wright_fb" }; }; pre_battle_scene_fight = room { nam = "pre_battle_scene_fight"; disp = "Лсэрианотр, центральный зал"; dsc = [[ Вы не успеваете опомниться, как Блэк снова стоит у пульта, а Наэтвьирр открывает глаза и оглядывает помещение. Адриан тут же издает приказ, указывая на вас:"Убей их" ]]; obj = { vway("Продолжить", "{Продолжить}", 'final_battle') }; }; pre_battle_scene_normal = room { nam = "pre_battle_scene_normal"; disp = "Лсэрианотр, центральный зал"; dsc = [[ В глазах автоматона зажигается мягкий синий свет и он поворачивается к Адриану. Какое-то время он молчит, видимо, пытаясь подобрать наиболее подходящий язык для общения. В итоге по головным плавникам Навьяра побежали цветные полосы - ставший уже столь привычным для вас, способ общения среди Навьяров. Он "говорит" быстро, и вы успеваете понять лишь отдельные слова: "время", "пробуждение", "повелитель". Вы понимаете, что у вас есть еще немного времени, чтобы остановить его. Едва вы достаете оружие, как из пола перед троном поднимаются два небольших пилона. Очевидно, что город будет защищать своего хозяина. ]]; obj = { vway("Продолжить", "{Продолжить}", 'final_battle') }; }; |