diff --git a/atlantis_navjiarr.lua b/atlantis_navjiarr.lua --- a/atlantis_navjiarr.lua +++ b/atlantis_navjiarr.lua @@ -816,6 +816,7 @@ iraa_rytlarr_dlg = dlg { player_learr = player { nam = "player_learr"; + has_light = true; obj = {}; }; @@ -1339,7 +1340,14 @@ iraa_temple_corridor_6 = room { end; end; way = { - kh_vroom("В трещину", "iraa_temple_crack"); + kh_vroom("В трещину", function(s) + if pl == player_learr then + pr [[В голове Леарр мелькает мысль: "Мне нечего там делать". ]]; + return false; + else + return "iraa_temple_crack"; + end; + end); kh_vroom("В комнату", "iraa_temple_room_0"); kh_vroom("По коридору, на юг", "iraa_temple_corridor_5"); }; @@ -1444,7 +1452,7 @@ iraa_temple_corridor_1 = room { end; end; way = { - kh_vroom("По коридору, на запад", "iraa_temple_corridor_2"); + kh_vroom("По коридору, на восток", "iraa_temple_corridor_2"); kh_vroom("В комнату в северной стене", "iraa_temple_room_7"); kh_vroom("В комнату в южной стене", "iraa_temple_room_1"); kh_vroom("В главный зал", "iraa_temple_main_3"); @@ -1465,7 +1473,7 @@ iraa_temple_main_3 = room { end; end; way = { - kh_vroom("в дверь", "iraa_temple_corridor_1"); + kh_vroom("В дверь", "iraa_temple_corridor_1"); kh_vroom("К центру зала", "iraa_temple_main_2"); }; }; @@ -1477,13 +1485,13 @@ iraa_temple_main_2 = room { if pl == player_learr then return [[Леарр находится в центре главного зала храма Ираафаанотра. Рядом с ней находится пустой пьедестал, на котором должна находиться важнейшая реликвия храма, украденная ворами из Дипатреанотра. Слева и справа находятся залы, с незапамятных времен именуемые залом Вопроса и залом Ответа. ]]; else - return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами Ответа и Вопроса. ]]; + return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами ответа и вопроса. ]]; end; end; way = { kh_vroom("В конец зала", "iraa_temple_main_3"); - kh_vroom("В зал Вопроса", "iraa_temple_qhall"); - kh_vroom("В зал Ответа", "iraa_temple_ahall"); + kh_vroom("В зал вопроса", "iraa_temple_qhall"); + kh_vroom("В зал ответа", "iraa_temple_ahall"); kh_vroom("К главному входу", "iraa_temple_main_1"); }; obj = { @@ -1528,7 +1536,7 @@ iraa_temple_question = obj { iraa_temple_qhall = room { nam = "iraa_temple_qhall"; - disp = "Храм Ираафаанотра, Зал вопроса"; + disp = "Храм Ираафаанотра, зал вопроса"; dsc = function(s) if pl == player_learr then return [[Назначение небольшого по размерам зала вопроса, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]]; @@ -1548,7 +1556,7 @@ iraa_temple_answer = obj { nam = "iraa_temple_answer"; dsc = function(s) if pl == player_learr then - return [[Вырезанное в камне стены изображение спрута всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]]; + return [[Вырезанное в камне стены изображение {спрута} всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]]; else return [[Вы видите вырезанное в стене изображение {спрута}. ]]; end; @@ -1564,7 +1572,7 @@ iraa_temple_answer = obj { iraa_temple_ahall = room { nam = "iraa_temple_ahall"; - disp = "Храм Ираафаанотра, Зал ответа"; + disp = "Храм Ираафаанотра, зал ответа"; dsc = function(s) if pl == player_learr then return [[Назначение небольшого по размерам зала ответа, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]]; @@ -1584,12 +1592,13 @@ iraa_temple_room_0 = room { var { state = false; }; + index = 0; nam = "iraa_temple_room_0"; disp = "Храм Ираафаанотра, комната"; dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; way = { kh_vroom("В коридор", "iraa_temple_corridor_6"); - kh_vroom("В скрытый проход", "iraa_temple_hidden_stairs"); + kh_vroom("В скрытый проход", "iraa_temple_hidden_stairs"):disable(); }; obj = { "iraa_temple_lever_0" @@ -1598,9 +1607,9 @@ iraa_temple_room_0 = room { s.state = true; path("В скрытый проход", s):enable(); if here() == s then - pr("Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. "); + return "Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. "; else - pr("Вы слышите где-то поблизости скрежет каменных плит. "); + return "Вы слышите где-то поблизости скрежет каменных плит. "; end; end; close = function(s) @@ -1608,18 +1617,26 @@ iraa_temple_room_0 = room { s.state = false; path("В скрытый проход", s):disable(); if here() == s then - pr("Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. "); + return "Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. "; else - pr("Вы слышите где-то поблизости скрежет каменных плит. "); + return "Вы слышите где-то поблизости скрежет каменных плит. "; end; end; + return "Вы дергаете рычаг"; end; }; iraa_temple_room_1 = room { nam = "iraa_temple_room_1"; disp = "Храм Ираафаанотра, комната"; - dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; + index = 0; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]]; + else + return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; + end; + end; way = { kh_vroom("В коридор", "iraa_temple_corridor_1"); }; @@ -1631,7 +1648,14 @@ iraa_temple_room_1 = room { iraa_temple_room_2 = room { nam = "iraa_temple_room_2"; disp = "Храм Ираафаанотра, комната"; - dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; + index = 0; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]]; + else + return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; + end; + end; way = { kh_vroom("В коридор", "iraa_temple_corridor_5"); }; @@ -1643,7 +1667,14 @@ iraa_temple_room_2 = room { iraa_temple_room_3 = room { nam = "iraa_temple_room_3"; disp = "Храм Ираафаанотра, комната"; - dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; + index = 0; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]]; + else + return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; + end; + end; way = { kh_vroom("В коридор", "iraa_temple_corridor_2"); }; @@ -1655,7 +1686,14 @@ iraa_temple_room_3 = room { iraa_temple_room_5 = room { nam = "iraa_temple_room_5"; disp = "Храм Ираафаанотра, комната"; - dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; + index = 0; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]]; + else + return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; + end; + end; way = { kh_vroom("В коридор", "iraa_temple_corridor_3"); }; @@ -1667,7 +1705,14 @@ iraa_temple_room_5 = room { iraa_temple_room_6 = room { nam = "iraa_temple_room_6"; disp = "Храм Ираафаанотра, комната"; - dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; + index = 0; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]]; + else + return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; + end; + end; way = { kh_vroom("В коридор", "iraa_temple_corridor_2"); }; @@ -1676,7 +1721,14 @@ iraa_temple_room_6 = room { iraa_temple_room_7 = room { nam = "iraa_temple_room_7"; disp = "Храм Ираафаанотра, комната"; - dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; + index = 0; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]]; + else + return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; + end; + end; way = { kh_vroom("В коридор", "iraa_temple_corridor_1"); }; @@ -1691,77 +1743,133 @@ iraa_temple_switch = obj { if index < 7 and index > 0 then s.state[index] = not s.state[index]; end; - if not state[1] and not state[2] and state[3] and not state[4] and state[5] and not state[6] then + if not s.state[1] and not s.state[2] and s.state[3] and not s.state[4] and s.state[5] and not s.state[6] then -- A valid state - iraa_temple_room_0:open(); + return iraa_temple_room_0:open(); else -- An invalid state - iraa_temple_room_0:close(); + return iraa_temple_room_0:close(); end; end; }; iraa_temple_lever_0 = obj { nam = "iraa_temple_lever_0"; - dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой фиолетового цвета]]; + dsc = function(s) + local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой фиолетового цвета. ]]; + if iraa_temple_switch.state[1] then + r = r..[[Сейчас он опущен вниз. ]]; + else + r = r..[[Сейчас он поднят вверх. ]]; + end; + return r; + end; act = function(s) - iraa_temple_switch(1); + return iraa_temple_switch:switch(1); end; }; iraa_temple_lever_1 = obj { nam = "iraa_temple_lever_0"; - dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой синего цвета]]; + dsc = function(s) + local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой синего цвета. ]]; + if iraa_temple_switch.state[2] then + r = r..[[Сейчас он опущен вниз. ]]; + else + r = r..[[Сейчас он поднят вверх. ]]; + end; + return r; + end; act = function(s) - iraa_temple_switch(2); + return iraa_temple_switch:switch(2); end; }; iraa_temple_lever_2 = obj { nam = "iraa_temple_lever_0"; - dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой зеленого цвета]]; + dsc = function(s) + local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой зеленого цвета. ]]; + if iraa_temple_switch.state[3] then + r = r..[[Сейчас он опущен вниз. ]]; + else + r = r..[[Сейчас он поднят вверх. ]]; + end; + return r; + end; act = function(s) - iraa_temple_switch(3); + return iraa_temple_switch:switch(3); end; }; iraa_temple_lever_3 = obj { nam = "iraa_temple_lever_0"; - dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой желтого цвета]]; + dsc = function(s) + local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой желтого цвета. ]]; + if iraa_temple_switch.state[4] then + r = r..[[Сейчас он опущен вниз. ]]; + else + r = r..[[Сейчас он поднят вверх. ]]; + end; + return r; + end; act = function(s) - iraa_temple_switch(4); + return iraa_temple_switch:switch(4); end; }; iraa_temple_lever_4 = obj { nam = "iraa_temple_lever_0"; - dsc = [[Под пьедесталом расположен едва заметный {рычаг} с отметкой оранжевого цвета]]; + dsc = function(s) + local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой оранжевого цвета. ]]; + if iraa_temple_switch.state[5] then + r = r..[[Сейчас он опущен вниз. ]]; + else + r = r..[[Сейчас он поднят вверх. ]]; + end; + return r; + end; act = function(s) - iraa_temple_switch(5); + return iraa_temple_switch:switch(5); end; }; iraa_temple_lever_5 = obj { nam = "iraa_temple_lever_0"; - dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой красного цвета]]; + dsc = function(s) + local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой красного цвета. ]]; + if iraa_temple_switch.state[6] then + r = r..[[Сейчас он опущен вниз. ]]; + else + r = r..[[Сейчас он поднят вверх. ]]; + end; + return r; + end; act = function(s) - iraa_temple_switch(6); + return iraa_temple_switch:switch(6); end; }; iraa_temple_hidden_stairs = darkroom { nam = "iraa_temple_hidden_stairs"; - dsc_dark = [[]]; - dsc_halflit = [[]]; + disp = "Храм Ираафаанотра, потайной ход"; + dsc_dark = [[Потайной спуск уходит далеко вниз, под храм. В темноте вы ничего не различаете. ]]; + dsc_halflit = function(s) + if pl == player_learr then + return [[Потайной спуск уходит далеко вниз, под храм. Глаза Леарр хорошо различают плавно уходящий вниз коридор. ]]; + else + return [[Потайной спуск уходит далеко вниз, под храм. В слабом свете фонаря, встроенного в скафандр, вы различаете плавно уходящий вниз коридор. ]]; + end; + end; way = { - kh_vroom("Наверх", "iraa_temple_room_0", 1); - kh_vroom("Вниз", "iraa_temple_room_0", 1); + kh_vroom("Наверх", "iraa_temple_room_0", 2); + kh_vroom("Вниз", "iraa_temple_hidden_hall", 1); }; }; iraa_temple_button_ctr = function(nam, index) return obj { nam = nam; + seen_level = 1; dsc = function(s) local im = "images/dyp_bg.png"; for i = 1, #iraa_temple_hidden_hall.buttons[index] do @@ -1814,7 +1922,18 @@ iraa_temple_hidden_hall = room { end; end; nam = "Храм Ираафаанотра, потайной зал"; - dsc = [[Большой круглый плохо освещенный зал. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр оказывается в огромном зале. Мягкий, едва заметный свет исходит из самих стен. В центре зала находятся восемь рычагов, рядом с которыми нанесены символы. ]]; + else + return [[Большой круглый зал. Мягкий, едва заметный свет исходит из самих стен. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. ]]; + end; + end; + entered = function(s) + if not s.solved then + return [[Позади вас металлическая плита почти бесшумно сдвигается, закрывая вход. ]]; + end; + end; obj = { iraa_temple_button_ctr("iraa_temple_b1", 1); iraa_temple_button_ctr("iraa_temple_b2", 2); @@ -1862,7 +1981,16 @@ iraa_temple_hidden_hall = room { iraa_temple_hidden_storage = room { nam = "iraa_temple_hidden_storage"; disp = [[Храм Ираафаанотра, хранилище]]; - dsc = [[Стены этой небольшой комнаты излучают слабый свет. ]]; + dsc = function(s) + if pl == player_learr then + return [[Леарр находится в небольшой круглой комнате. Стены комнаты, как и в других скрытых помещенях храма, излучают слабый свет. ]]; + else + return [[Стены этой небольшой комнаты излучают слабый свет. ]]; + end; + end; + way = { + kh_vroom("Наверх", "iraa_temple_hidden_hall"); + }; obj = { "iraa_temple_hidden_pedestal" };