diff --git a/atlantis.lua b/atlantis.lua --- a/atlantis.lua +++ b/atlantis.lua @@ -1,3 +1,10 @@ +global { + atl_rep_moreau = 0; + atl_rep_darkstar = 0; + atl_rep_svetlova = 0; + atl_rep_wright = 0; +}; + atlantis_illuminators = obj { nam = "Иллюминаторы"; dsc = [[ @@ -214,6 +221,7 @@ atlantis_luna_main_corridor = room { Узкий длинный коридор. По обе его стороны расположены двери, ведущие в комнаты персонала. Яркий свет электрических ламп освещает помещение. ]]; way = { + kh_vroom("В вашу комнату", "atlantis_luna_drake_room"); kh_vroom("В общую комнату", "atlantis_luna_common_room"); kh_vroom("В секцию \"Доминус\"", "atlantis_intersection_luna_dominus"); }; @@ -222,6 +230,18 @@ atlantis_luna_main_corridor = room { }; }; +atlantis_luna_drake_room = room { + nam = "Атлантида, Луна, ваша комната"; + dsc = [[ + ]]; + way = { + kh_vroom("В главный коридор", "atlantis_luna_main_corridor"); + }; + obj = { + "atlantis_illuminators" + }; +}; + atlantis_arctos_main_corridor = room { nam = "Атлантида, Арктос, главный коридор"; dsc = [[ @@ -440,7 +460,6 @@ atlantis_oculus_lab_c = room { kh_vroom("В коридор", "atlantis_oculus_main_corridor"); }; obj = { - "char_learr_atlantis", "char_ryveerr", "char_anna_atlantis", "char_loong" @@ -525,10 +544,18 @@ atlantis_ignis_main_hall = room { atlantis_ignis_hall_a = room { nam = "Атлантида, Игнис, зал А"; + enter = function(s) + if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then + if (where(char_jack_wright_atlantis) ~= atlantis_ignis_hall_a) then + put('char_jack_wright_atlantis', 'atlantis_ignis_hall_a'); + end; + end; + end; dsc = [[ Средних размеров прямоугольный зал. ]]; obj = { + "char_learr_atlantis"; 'ignis_illuminator'; 'ignis_screen'; 'ignis_projector'; @@ -754,6 +781,9 @@ char_anna_atlantis_dlg = dlg { }; char_learr_atlantis = npc { + var { + offended = false; + }; nam = "Леарр"; __where__ = 'atlantis_oculus_lab_c'; dsc = function(s) @@ -772,12 +802,46 @@ char_learr_atlantis_dlg = dlg { nam = "Леарр"; disp = "Леарр"; entered = function(s) - return [[ - Временная затычка диалога - ]]; + if (state == 0) then + if (char_learr_atlantis.offended) then + psub("offended"); + return [[ + Леарр поворачивается к вам, плавники ее становятся ярко-оранжевыми, а она говорит: "Я приветствую тебя-презренный-монстр-he'vji'a'rr". + ]]; + else + psub("generic"); + return [[ + Леарр поворачивается к вам, плавники ее становятся сине-зелеными, а она говорит: "Я приветствую тебя-he'vji'a'rr". + ]]; + end; + end; end; phr = { - {0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]}; + {tag='offended'}; + {"He'vji'a'rr?", [[ + Леарр, кажется, улыбнулась, обнажив два ряда острых треугольных зубок: "Ты неплохо-говоришь. Я легко-понимаю тебя. He'vji'a'rr - вверху-разумный-живой. Монстр-ты понимаешь?" + ]]}; + {"Монстр?", [[ + "Ты чуждо-для-нас-выглядишь, поэтому монстр. Ты так-мыслил. Я права?" + ]], code [[ psub('offended_yes_no') ]]}; + {tag='offended_yes_no'}; + {"Да, наверное так", [[ + "Мы будем-продолжать-друг-друга-монстрами-называть?" + ]], code [[ psub('no_offence') ]]}; + {"Просто мы люди, а ты чудовище", [[ + Леарр скалится, показывая блестящие острые зубки: "Лучше-уходи. Я не-хочу-этими-зубами-перекусить твое-горло". + ]], code [[ back(); ]]}; + {tag='no_offence'}; + {"Нет, вообще-то у меня разговор есть", [[ + "Ты-говори" + ]], code [[ walk('atl_iof_intro'); ]]}; + {tag='generic'}; + {"He'vji'a'rr?", [[ + Леарр, кажется, улыбнулась, обнажив два ряда острых треугольных зубок: "Ты неплохо-говоришь. Я легко-понимаю тебя. Вы-He'vji'a'rr - вверху-разумный-живой, с-поверхности. Мы-na'vji'a'rr - внизу-разумный-живой, из-глубин". + ]]}; + {"Я хотел кое-что спросить", [[ + "Ты-говори" + ]], code [[ walk('atl_iof_intro'); ]]}; }; }; @@ -880,6 +944,57 @@ char_winterlight_dlg = dlg { }; }; +char_jack_wright_atlantis = npc { + nam = "Джек Райт"; + dsc = function(s) + if (where(char_jack_wright_atlantis) == atlantis_ignis_hall_a) then + return [[ + {Джек Райт} сидит рядом и о чем-то с ней разговаривает. + ]]; + else + return [[ + {Джек Райт} + ]]; + end; + end; + dlg = "char_jack_wright_atlantis_dlg"; +}; + +char_jack_wright_atlantis_dlg = dlg { + var { + state = 0; + }; + nam = 'char_jack_wright_atlantis_dlg'; + entered = function(s) + if (state == 0) then + psub("business_or_no"); + return [[ + Джек отворачивается от Леарр, и обращается к вам: "Привет, ты по делу или просто так?" + ]]; + end; + end; + phr = { + {tag = "business_or_no"}; + {"Как тебе станция?", [[ + "Невероятно! Поверить не могу, что мой отец вместе с твоим это все придумали и создали. Это совершенство, никак не меньше - они уже десять лет почти живут без связей с поверхностью, не испытывая при этом никаких проблем". + ]]}; + {always = "true", "Я с Леарр поговорить пришел", function(s) + if (char_learr_atlantis.offended) then + return [[ + Джек ухмыльнулся: "Удачи, я подожду в главном зале". Джек поднялся и вышел. + ]]; + else + return [[ + "Надеюсь, я вам не помешаю? В любом случае, я подожду в главном зале". Джек поднялся и вышел. + ]]; + end; + end, code [[ + remove('char_jack_wright_atlantis', 'atlantis_ignis_hall_a'); + back(); + ]]}; + }; +}; + char_michael_wright = npc { nam = "Майкл Райт"; dsc = [[