# HG changeset patch # User silverwing # Date 2017-07-29 17:01:26 # Node ID 8ddae614e4255a65289d733de73dfe04375d5f1c # Parent 1b76b319590ebf017053a5b33afc2be541a250aa Iraa progress diff --git a/atlantis_navjiarr.lua b/atlantis_navjiarr.lua --- a/atlantis_navjiarr.lua +++ b/atlantis_navjiarr.lua @@ -814,30 +814,86 @@ iraa_rytlarr_dlg = dlg { Ираафаанотр.Храм ]] +player_learr = player { + nam = "player_learr"; + obj = {}; +}; + +iraa_learr_choice_dlg = dlg { + nam = "iraa_learr_choice_dlg"; + disp = "Леарр"; + entered = [[Вы уже собираетесь покинуть Левиафан, как в шлюзовую камеру входит Леарр со словами: "Дрейк-ты здесь-оставайся. Я в-храм-пойду". ]]; + phr = { + {"Почему не отправиться вместе?", [[Леарр отрицательно качает головой: "Хевьярам нельзя-в-храм-входить, поэтому я внутрь-только-одна-войду". ]]}; + {"Хорошо, ты справишься лучше. ", [[Леарр кивает: "Я вернусь-с-картой. Вы здесь-ждите". Вы покидаете шлюзовую камеру и Леарр выходит наружу. ]], code [[ + rel_learr = rel_learr + 1; + pl = player_learr; + walk("iraa_temple_entrance"); + ]]}; + {"Я пойду сам. ", [[Леарр недовольно качает головой. Плавники окрашиваются синим. Со совами: "Ты ошибку-совершаешь", -- она выходит из шлюзовой камеры. ^^Вы выбираетесь из Левиафана. ]], code [[ + rel_learr = rel_learr - 1; + walk("iraa_temple_entrance"); + ]]}; + }; +}; + iraa_temple_entrance = room { var { state = 0; }; nam = "Храм Ираафаанотра, вход"; underwater = true; - dsc = [[Перед вами возвышаются массивные двустворчатые ворота храма, вытесанные из камня. Над ними вы видите тщательно поддерживаемую в порядке карту, указывающую путь к Ираафаанотру. Скала тянется с севера на юг насколько хватает глаз. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр стоит перед массивными двустворчатыми воротами храма, вытесанными в скале, протянувшейся с севера на юг. Над ними расположена карта, указывающая путь к Ираафаанотру. Работники храма регулярно обновляли и восстанавливали карту в течение многих столетий. ]]; + else + return [[Перед вами возвышаются массивные двустворчатые ворота храма, вытесанные из камня. Над ними вы видите тщательно поддерживаемую в порядке карту, указывающую путь к Ираафаанотру. Скала тянется с севера на юг насколько хватает глаз. ]]; + end; + end; view = [[Через иллюминаторы видны массивные ворота вытесанного в скале храма. Над входом расположен символ храма -- карта пути к самому Ираафаанотру отсюда. ]]; - entered = function(s) - if (char_anna.follow and s.state == 0) then - pr [[В динамике скафандра вы слышите голос Анны Рэдклифф: "Этот символ - ни что иное, как карта, указывающая путь к городу. В отличие от самого города, здесь я не вижу указаний ни на одно место, кроме храма и Ираафаанотра". ]]; + enter = function(s) + if s.state == 0 and ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then + s.state = 1; + walkin("iraa_learr_choice_dlg"); end; - s.state = 1; end; obj = { "iraa_temple_guardians"; }; way = { kh_vroom("Войти", function(s) - return [[Стражники не пропустят вас. ]]; + if pl == player_learr then + return "iraa_temple_main_1"; + else + pr [[Стражники не пропустят вас. ]]; + return false; + end; + + end); + kh_vroom("Вдоль скалы на север", function(s) + if pl == player_learr then + pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]]; + return false; + else + return "iraa_temple_north_1"; + end; end); - kh_vroom("Вдоль скалы на север", "iraa_temple_north_1"); - kh_vroom("Вдоль скалы на юг", "iraa_temple_south"); - kh_vroom("В Левиафан", "leviathan_airlock"); + kh_vroom("Вдоль скалы на юг", function(s) + if pl == player_learr then + pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]]; + return false; + else + return "iraa_temple_south"; + end; + end); + kh_vroom("В Левиафан", function(s) + if pl == player_learr and iraa_temple_hidden_pedestal.state == 0 then + pr [[В голове Леарр проносится мысль: "Я еще не сделала все, что нужно". ]]; + return false; + else + return "leviathan_airlock"; + end; + end); }; }; @@ -845,7 +901,12 @@ iraa_temple_guardians = npc { nam = "iraa_temple_guardians"; dsc = [[У входа в храм стоят двое {стражников} -- обычный дозор. ]]; phrases = function(s) - if language_known then + if pl == player_learr then + return { + "Один из стражников приветствует Леарр и приглашает войти в храм. "; + "Стражники не обращают на Леарр внимания. "; + }; + elseif language_known then return { "В вашем присутствии стражники заметно нервничают. "; "Стражники осторожно переглядываются. "; @@ -1178,9 +1239,6 @@ iraa_temple_guardian = room { wait = 0; }; nam = "iraa_temple_guardian"; - dsc = function(s) - - end; life = function(s) s.wait = s.wait + 1; if (s.wait < 3) then @@ -1243,8 +1301,10 @@ iraa_temple_guardian = room { end; end; dsc = function(s) + if pl == player_learr then + return ""; + end; if here().index > 6 or here().index < 1 then - --Вы в домике return [[]]; end; if s.direction == 1 then @@ -1271,7 +1331,13 @@ iraa_temple_corridor_6 = room { index = 6; nam = "iraa_temple_corridor_6"; disp = "Храм Ираафаанотра, коридор"; - dsc = [[Вы стоите в самом конце коридора в храме Ираафаанотра. Вокруг -- ровные камееные стены. В одной из них вы видите глубокую, трещину, через которую вы с трудом протиснулись сюда. Еще в одной из стен вы видите небольшой дверной проем, за которым скрывается маленькая комнатка. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в коридоре в храме Ираафаанотра. Каменные стены покрыты Файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. Северную стену рассекает глубокая трещина, а в западной находится дверь, ведущая в одну из служебных комнат. ]]; + else + return [[Вы стоите в самом конце коридора в храме Ираафаанотра. Вокруг -- камееные стены, покрытые светящимися водорослями. В одной из них вы видите глубокую, трещину, через которую вы с трудом протиснулись сюда. В западной стене вы видите небольшой дверной проем, за которым скрывается маленькая комнатка. ]]; + end; + end; way = { kh_vroom("В трещину", "iraa_temple_crack"); kh_vroom("В комнату", "iraa_temple_room_0"); @@ -1286,7 +1352,13 @@ iraa_temple_corridor_5 = room { index = 5; nam = "iraa_temple_corridor_5"; disp = "Храм Ираафаанотра, коридор"; - dsc = [[Вы стоите в коридоре в храме Ираафаанотра. В одной из ровных каменных стен, расположенных по сторонам от вас, имеется небольшой дверной проем, за которым скрывается маленькая комнатка. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. В западной стене коридора имеется проем, ведущий в одну из служебных комнат. ]]; + else + return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В западной стене находится дверной проем, ведущий в небольшую комнату. ]]; + end; + end; way = { kh_vroom("В комнату", "iraa_temple_room_2"); kh_vroom("По коридору, на север", "iraa_temple_corridor_6"); @@ -1301,7 +1373,13 @@ iraa_temple_corridor_4 = room { index = 4; nam = "iraa_temple_corridor_4"; disp = "Храм Ираафаанотра, коридор"; - dsc = [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. ]]; + else + return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. ]]; + end; + end; way = { kh_vroom("По коридору, на север", "iraa_temple_corridor_5"); kh_vroom("По коридору, на юг", "iraa_temple_corridor_3"); @@ -1315,7 +1393,13 @@ iraa_temple_corridor_3 = room { index = 3; nam = "iraa_temple_corridor_3"; disp = "Храм Ираафаанотра, коридор"; - dsc = [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. Здесь коридор сворачивает под прямым углом к северу. В конце коридора на западе вы видите массивную каменную дверь, которая сейчас открыта. На севере коридор заканчивается тупиком. К востоку от вас массивная каменная дверь, но она заперта. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. Коридор сворачивает под прямым углом к северу. В восточной стене расположена массивная каменная дверь -- задний вход в храм. Леарр никогда не понимала этой необходимости, но во всех известных ей храмах было ровно два входа. ]]; + else + return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. Здесь коридор сворачивает под прямым углом к северу. В конце коридора на западе вы видите массивную каменную дверь, которая сейчас открыта. На севере коридор заканчивается тупиком. К востоку от вас массивная каменная дверь, но она заперта. ]]; + end; + end; way = { kh_vroom("По коридору, на север", "iraa_temple_corridor_4"); kh_vroom("В комнату", "iraa_temple_room_5"); @@ -1330,7 +1414,13 @@ iraa_temple_corridor_2 = room { index = 2; nam = "iraa_temple_corridor_2"; disp = "Храм Ираафаанотра, коридор"; - dsc = [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. ]]; + else + return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В стенах имеются дверные проемы, ведущие в небольшие комнаты. ]]; + end; + end; way = { kh_vroom("По коридору, на восток", "iraa_temple_corridor_3"); kh_vroom("В комнату в северной стене", "iraa_temple_room_3"); @@ -1346,7 +1436,13 @@ iraa_temple_corridor_1 = room { index = 1; nam = "iraa_temple_corridor_1"; disp = "Храм Ираафаанотра, коридор"; - dsc = [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. Прямо перед вами находится дверь, ведущая в основное помещение храма. Отсюда вы видите, что в нем никого нет. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр впервые за долгие годы оказалась в задней части храма. Хотя проход сюда, в принципе, не запрещен, необходимости бывать здесь, как правило, нет -- все, что доступно пониманию горожан происходит в главном зале. Ровные каменные стены покрыты файирром -- светящимися водорослями, используемыми навьярами повсеместно. В западной стене находится дверь, ведущая в основное помещение храма, а в северной и южной -- проемы, ведущие в служебные комнаты. ]]; + else + return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены, покрытые светящимися водорослями. Прямо перед вами находится дверь, ведущая в основное помещение храма. Отсюда вы видите, что в нем никого нет. ]]; + end; + end; way = { kh_vroom("По коридору, на запад", "iraa_temple_corridor_2"); kh_vroom("В комнату в северной стене", "iraa_temple_room_7"); @@ -1361,7 +1457,13 @@ iraa_temple_corridor_1 = room { iraa_temple_main_3 = room { nam = "iraa_temple_main_3"; disp = "Храм Ираафаанотра, главный зал"; - dsc = [[Вы находитесь в конце главного зала храма Ираафаанотра. В стенах проделаны многочисленые ниши, в которых покоятся священные реликвии навьяров. Массивная каменная дверь ведет в задние помещения. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в главном зале Ираафаанотра. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. Рядом с Леарр расположена дверь, ведущая в задние помещения храма. Обычно там бывают лишь те, кто всю свою жизнь посвятил служению в этом храме. ]]; + else + return [[Вы находитесь в конце главного зала храма Ираафаанотра. В стенах проделаны многочисленые ниши, в которых покоятся священные реликвии навьяров. Массивная каменная дверь ведет в задние помещения. ]]; + end; + end; way = { kh_vroom("в дверь", "iraa_temple_corridor_1"); kh_vroom("К центру зала", "iraa_temple_main_2"); @@ -1371,7 +1473,13 @@ iraa_temple_main_3 = room { iraa_temple_main_2 = room { nam = "iraa_temple_main_2"; disp = "Храм Ираафаанотра, главный зал"; - dsc = [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами Ответа и Вопроса. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в центре главного зала храма Ираафаанотра. Рядом с ней находится пустой пьедестал, на котором должна находиться важнейшая реликвия храма, украденная ворами из Дипатреанотра. Слева и справа находятся залы, с незапамятных времен именуемые залом Вопроса и залом Ответа. ]]; + else + return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами Ответа и Вопроса. ]]; + end; + end; way = { kh_vroom("В конец зала", "iraa_temple_main_3"); kh_vroom("В зал Вопроса", "iraa_temple_qhall"); @@ -1386,11 +1494,21 @@ iraa_temple_main_2 = room { iraa_temple_main_1 = room { nam = "iraa_temple_main_1"; disp = "Храм Ираафаанотра, главный зал"; - dsc = [[Вы находитесь в главном зале храма Ираафаанотра. В многочисленных нишах в стенах покоятся древние реликвии. Перед вами возвышаются массивные ворота храма, за которыми наверняка стоит обычная стража -- двое вооруженных навьяров. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в главном зале храма Ираафаанотра, у центрального входа. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. ]]; + else + return [[Вы находитесь в главном зале храма Ираафаанотра. В многочисленных нишах в стенах покоятся древние реликвии. Перед вами возвышаются массивные ворота храма, за которыми наверняка стоит обычная стража -- двое вооруженных навьяров. ]]; + end; + end; way = { kh_vroom("В ворота", function(s) - pr("Не стоит делать этого. Стража вас схватит. "); - return false; + if pl == player_learr then + return "iraa_temple_entrance"; + else + pr("Не стоит делать этого. Стража вас схватит. "); + return false; + end; end); kh_vroom("К центру зала", "iraa_temple_main_2"); }; @@ -1398,14 +1516,26 @@ iraa_temple_main_1 = room { iraa_temple_question = obj { nam = "iraa_temple_question"; - dsc = [[На стене напротив входа нанесены какие-то {письмена}. Видно, что навьяры раз за разом тщательно обновляют их, сохраняя их в первозданном виде. ]]; - act = [[Письмена гласят: "Ищи число". ]]; + dsc = function(s) + if pl == player_learr then + return [[Единственной достопримечательностью помещения была загадочная надпись "Ты ищешь число здесь", на стене напротив входа. ]]; + else + return [[На стене напротив входа нанесены какие-то {письмена}. Видно, что навьяры раз за разом тщательно обновляют их, сохраняя их в первозданном виде. ]]; + end; + end; + act = [[Письмена гласят: "Ты число-здесь-ищешь". ]]; }; iraa_temple_qhall = room { nam = "iraa_temple_qhall"; - disp = "Храм Ираафаанотра, Зал Вопроса"; - dsc = [[Небольшой боковой зал. ]]; + disp = "Храм Ираафаанотра, Зал вопроса"; + dsc = function(s) + if pl == player_learr then + return [[Назначение небольшого по размерам зала вопроса, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]]; + else + return [[Зал вопроса представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]]; + end; + end; way = { kh_vroom("В главный зал", "iraa_temple_main_2"); }; @@ -1416,14 +1546,32 @@ iraa_temple_qhall = room { iraa_temple_answer = obj { nam = "iraa_temple_answer"; - dsc = [[Вы видите вырезанное в стене изображение {спрута}. ]]; - act = [[Традиционное для навьяров схематичное изображение спрута. Вам бросается в глаза наличие у существа шестнадцати щупалец. ]]; + dsc = function(s) + if pl == player_learr then + return [[Вырезанное в камне стены изображение спрута всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]]; + else + return [[Вы видите вырезанное в стене изображение {спрута}. ]]; + end; + end; + act = function(s) + if pl == player_learr then + return [[В голове Леарр пробегает мысль: "Для чего он здесь?" В первый раз в жизни, Леарр обращает внимание на наличие шестнадцати щупалец у существа. ]]; + else + return [[Традиционное для навьяров схематичное изображение спрута. Вам бросается в глаза наличие у существа шестнадцати щупалец. ]]; + end; + end; }; iraa_temple_ahall = room { nam = "iraa_temple_ahall"; - disp = "Храм Ираафаанотра, Зал Ответа"; - dsc = [[Небольшой боковой зал. ]]; + disp = "Храм Ираафаанотра, Зал ответа"; + dsc = function(s) + if pl == player_learr then + return [[Назначение небольшого по размерам зала ответа, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]]; + else + return [[Зал ответа представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]]; + end; + end; way = { kh_vroom("В главный зал", "iraa_temple_main_2"); }; @@ -1734,6 +1882,7 @@ iraa_temple_hidden_pedestal = obj { end; act = function(s) if s.state == 0 then + s.state = 1; item_lse_map.state = item_lse_map.state + 1; return [[Вы забираете металлическую табличку себе. ]]; else diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -181,8 +181,8 @@ function init() ---game init pl.where = intro; ---debug - --language_known = true; - --pl.where = "iyh_rear_entrance_foot"; + language_known = true; + --pl.where = "leviathan_airlock"; --move(submarine_leviathan, "iyh_rear_entrance_foot"); --put(item_suit, pl); --put(item_suit, pl); @@ -190,9 +190,9 @@ function init() --pl.where = "atlantis_intro_dock"; ---leviathan - --pl.where = "leviathan_airlock"; - --submarine_leviathan.airpump = false; - --[[ + pl.where = "leviathan_airlock"; + submarine_leviathan.airpump = false; + --[[]] leviathan_airlock.has_light = true; leviathan_wardroom.has_light = true; leviathan_wheelhouse.has_light = true; @@ -213,9 +213,10 @@ function init() submarine_leviathan.circuit_breaks = 0; submarine_leviathan.valves_to_replace = 0; submarine_leviathan.power_on = true - pl.party = {'wright'}; - atlantis_found = true; - pl.where = leviathan_wheelhouse;]] + pl.party = {'wright', 'learr'}; + atlantis_found = true;--]] + --- iraaphaanotrr + move(submarine_leviathan, "iraa_temple_entrance"); --[[ ---IYH lifeon(char_learr);