diff --git a/journey_venaedanotrr.lua b/journey_venaedanotrr.lua --- a/journey_venaedanotrr.lua +++ b/journey_venaedanotrr.lua @@ -1215,7 +1215,8 @@ ven_char_phanearr_dlg = dlg { entered = function(s) if s.state == 0 then s.state = 1; - return [[Фанеарр обращается к вам, по его головным плавникам бегут цветные полосы: "Почтенный хевьяр, благодарю тебя за помощь. Чем могу быть полезен?"]]; + take(ven_item_tablet); + return [[Фанеарр обращается к вам, по его головным плавникам бегут цветные полосы: "Почтенный хевьяр, благодарю тебя за помощь. В благодарность, я дам тебе кое-что, что было найдено мной некогда в том самом ущелье", -- с этими словами он протягивает вам металлическую табличку. ]]; else return [[Фанеарр обращается к вам. По его головным плавникам бегут цветные полосы: "Ты говори". ]]; end; @@ -1274,7 +1275,12 @@ ven_temple_entrance = room { way = { kh_vroom('В Левиафан', "leviathan_airlock"); kh_vroom('В храм', function(s) - return 'ven_temple_hall_1'; + if ven_temple_entrance.state == 3 then + return 'ven_temple_hall_1'; + else + p [[Двери храма не откроются для вас. ]]; + return false; + end; end); kh_vroom('К дому хранителя', "ven_temple_keeper_house"); }; @@ -1297,11 +1303,16 @@ ven_temple_doors = obj { if o == ven_item_green_key then ven_temple_entrance.state = ven_temple_entrance.state + 1; remove(ven_item_green_key, pl); - return [[Додекаэдр легко входит в отверстие и накрепко закрепляется там. Где-то изнутри двери вы слышите тяжелый скрежет. ]]; + p [[Додекаэдр легко входит в отверстие и накрепко закрепляется там. Где-то изнутри двери вы слышите тяжелый скрежет. ]]; elseif o == ven_item_red_key then ven_temple_entrance.state = ven_temple_entrance.state + 2; remove(ven_item_red_key, pl); - return [[Додекаэдр легко входит в отверстие и накрепко закрепляется там. Где-то изнутри двери вы слышите тяжелый скрежет. ]]; + p [[Додекаэдр легко входит в отверстие и накрепко закрепляется там. Где-то изнутри двери вы слышите тяжелый скрежет. ]]; + end; + if ven_temple_entrance.state == 3 then + p [[Двери храма теперь открыты. ]]; + else + p [[]]; end; end; } @@ -1312,7 +1323,7 @@ ven_temple_keeper_house = room { dsc = [[Небольшое каменное строение, напоминающее дома жителей города расположено неподалеку от входа в храм высеченного в скале. ]]; way = { kh_vroom('В дом', "ven_temple_keeper_house_inside"); - kh_vroom('К храму', "ven_temple_keeper_house_inside"); + kh_vroom('К храму', "ven_temple_entrance"); } }; @@ -1522,8 +1533,10 @@ ven_temple_pedestal = obj { dsc = [[С одной из сторон пьедестала вашему взору открывается потайная ниша, внутри которой спрятан {рычаг}. ]]; act = function(s) if s.state == 0 then - ven_temple_ahall.state = 1; - path("Наверх", ven_temple_ahall):enable(); + ven_temple_pedestal.state = 1; + ven_temple_qhall.state = 1; + path("Наверх", ven_temple_qhall):enable(); + return [[Рычаг легко поддается. Из зала вопроса доносится гул, который вскоре оканчивается глухим ударом. ]]; else return [[Вам здесь больше нечего делать. ]]; end; @@ -1553,34 +1566,37 @@ ven_temple_hall_3 = room { } ven_temple_qhall = room { + var { + state = 0; + }; nam = 'Храм Венаэданотра, зал вопроса'; - dsc = [[Небольшое помещение сбоку от основного храмового зала. Напротив входа на стену нанесено изображение главного зала. ]]; + dsc = function(s) + if s.state == 0 then + return [[Небольшое помещение сбоку от основного храмового зала. Напротив входа на стену нанесено изображение главного зала. ]]; + else + return [[Небольшое помещение сбоку от основного храмового зала. Напротив входа на стену нанесено изображение главного зала. Одна из боковых стен зала отсутствует, открывая проход на широкую лестницу, ведущую наверх. ]]; + end; + end; obj = { 'ven_qhall_altar' }; way = { kh_vroom('В главный зал', 'ven_temple_hall_2'); + kh_vroom('Наверх', 'ven_temple_labyrinth_l1'):disable(); }; }; ven_temple_ahall = room { - var { - state = 0; - }; nam = 'Храм Венаэданотра, зал ответа'; - dsc = function(s) - if s.state == 0 then - return [[Небольшое помещение сбоку от основного храмового зала. Напротив входа на стене выгравировано изображение навьяра, плывущего наверх. ]]; - else - return [[Небольшое помещение сбоку от основного храмового зала. Напротив входа на стене выгравировано изображение навьяра, плывущего наверх. Одна из боковых стен зала отсутствует, открывая проход на широкую лестницу, ведущую наверх. ]]; - end; + dsc = [[Небольшое помещение сбоку от основного храмового зала. Напротив входа на стене выгравировано изображение навьяра, плывущего наверх. ]]; + entered = function(s) + ven_temple_labyrinth_l1.position = '03'; end; obj = { 'ven_ahall_altar' }; way = { kh_vroom('В главный зал', 'ven_temple_hall_2'); - kh_vroom('Наверх', 'ven_temple_labyrinth_l1'):disable(); }; }; @@ -1604,8 +1620,10 @@ ven_ahall_altar = obj { end; act = function(s) if s.state == 0 then + s.state = 1; return [[Серый каменный алтарь. Навьяры тщательно очищают его от светящихся водорослей, покрывающих остальные поверхности храма. Ничего примечательного если не считать того, что это почти идеально ровный параллелепипед. В нижней части алтаря расположено едва заметное углубление. ]]; elseif s.state == 1 then + s.state = 2; ven_temple_pedestal:enable(); return [[Вы протискиваете в углубление руку и сдвигаете там что-то. Слышите скрежет, доносящийся из главного зала. ]]; else @@ -1614,3 +1632,9 @@ ven_ahall_altar = obj { end; } +ven_item_tablet = obj { + nam = "ven_item_tablet"; + disp = "Табличка"; + inv = [[Металлическая табличка с рисунком, изображающим навьяра и человека, пожимающих друг другу руки. Человек изображен без скафандра. Навьяр изображен одетым в черный облегающий костюм, человек же одет как простой средневековый рыбак. Вдоль верхнего и нижнего края таблички расположены ровными рядами небольшие круглые отверстия. ]]; + tak = [[Вы забираете табличку. ]]; +}; diff --git a/journey_venaedanotrr_labyrinth.lua b/journey_venaedanotrr_labyrinth.lua --- a/journey_venaedanotrr_labyrinth.lua +++ b/journey_venaedanotrr_labyrinth.lua @@ -208,13 +208,10 @@ ven_temple_labyrinth_l1 = labyrinth { ex = "Выйти"; nam = "Венаэданотр, храм, лабиринт"; dsc = function(s) - --if true then - -- return tostring(s.position); - --end; if (s.map[s.position].name) then return s.map[s.position].name; else - return [[Вы стоите посреди запутанного лабиринта. Металлические стены по сторонам здесь ничем не отличаются от стен в других коридорах этого лабиринта. ]]; + return [[Вы стоите посреди запутанного лабиринта. Металлические стены по сторонам здесь ничем не отличаются от стен в других коридорах этого лабиринта. Пол и потолок излучают мягкий белый свет. ]]; end; end; enter = function(s) @@ -298,13 +295,11 @@ ven_temple_labyrinth_l1 = labyrinth { e2 = "03"; }; ["03"] = { - name = [[ - Вы стоите у входа в храм. - ]]; + name = [[Вы стоите у лестницы, ведущей вниз, к главному помещению храма. Со всех сторон вас окружают металлические стены. Пол и потолок сделаны из странного светящегося материала, твердого на ощупь. ]]; e1 = "13"; e2 = "04"; e4 = "02"; - ex = "ven_temple_entrance"; + ex = "ven_temple_qhall"; e1lock = function(s) return lock03; end; @@ -827,7 +822,7 @@ end); ven_chest_open = kh_vobj("ven_chest_open", "{Открыть сундук.}^", function(s) if (not here().taken) then here().taken = true; - take(item_ven_temple_key_1); + take(ven_item_temple_key_1); return "В сундуке вы находите металлический ключ. "; else return "Сундук пуст"; @@ -843,8 +838,8 @@ ven_first_lock = obj { dsc = "В двери вы видите {замочную скважину}. "; used = function(s, o) print "fuckersaurus" - if (o == item_ven_temple_key_1) then - remove(item_ven_temple_key_1, pl); + if (o == ven_item_temple_key_1) then + remove(ven_item_temple_key_1, pl); ven_temple_labyrinth_l1.lock1 = false; path('e3'):enable(); return "Вы открываете дверь. "; @@ -866,8 +861,8 @@ ven_second_lock = obj { nam = "ven_second_lock"; dsc = "В двери вы видите {замочную скважину}. "; used = function(s, o) - if (o == item_ven_temple_key_2) then - remove(item_ven_temple_key_2, pl); + if (o == ven_item_temple_key_2) then + remove(ven_item_temple_key_2, pl); ven_temple_labyrinth_l1.lock3 = false; path('e4'):enable(); return "Вы открываете дверь. "; @@ -883,29 +878,23 @@ ven_cache = obj { nam = "ven_cache"; dsc = function(s) if (s.state >= 1) then - return [[ - В южной стене открыта {выемка}. - ]]; + return [[В южной стене открыта {выемка}. ]]; else - return [[ - В южной стене имеется небольшую {прорезь}. - ]]; + return [[В южной стене имеется небольшую {прорезь}. ]]; end; end; act = function(s) if (s.state == 1) then s.state = 2; - move(item_ven_temple_key_2, pl); - return [[ - В выемке вы находите ключ. - ]]; + move(ven_item_temple_key_2, pl); + return [[В выемке вы находите ключ. ]]; end; end; used = function(s, o) if (s.state == 0) then - if (o == item_ven_tablet) then + if (o == ven_item_tablet) then s.state = 1; - remove(item_ven_tablet, pl); + remove(ven_item_tablet, pl); return "Пластинка легко уходит вглубь прорези. Вы слышите щелчок и в стене открывается выемка, в которой лежит ключ. "; end; end; @@ -922,20 +911,16 @@ ven_skeleton = obj { ]]; }; -item_ven_temple_key_1 = obj { - nam = "item_ven_temple_key_1"; +ven_item_temple_key_1 = obj { + nam = "ven_item_temple_key_1"; disp = "Ключ из храма"; - dsc = [[ - Металлический ключик, найденный вами в храме Венаэданотра. - ]]; + dsc = [[Металлический ключик, найденный вами в храме Венаэданотра. ]]; }; -item_ven_temple_key_2 = obj { - nam = "item_ven_temple_key_2"; +ven_item_temple_key_2 = obj { + nam = "ven_item_temple_key_2"; disp = "Ключ из тайника"; - dsc = [[ - Металлический ключик, найденный вами в тайнике в храме Венаэданотра. - ]]; + dsc = [[Металлический ключик, найденный вами в тайнике в храме Венаэданотра. ]]; } item_ven_spear = obj { @@ -1007,4 +992,4 @@ ven_pedestal = obj { return [[Вы забираете фрагмент карты себе. ]]; end; end; -}; \ No newline at end of file +}; diff --git a/startup.lua b/startup.lua --- a/startup.lua +++ b/startup.lua @@ -167,16 +167,15 @@ function init() ---game init pl.where = intro; ---debug - table.insert(pl.party, 'learr'); - table.insert(pl.party, 'radcliffe'); - pl.where = "ven_out_hut"; - move("submarine_leviathan", "ven_ravine_entrance"); - ven_center.state = 1; - ven_quest_status = 4; + pl.where = "ven_temple_entrance"; + move("submarine_leviathan", "ven_temple_entrance"); - char_radcliffe:accompany(true); - char_radcliffe:accompany(false); - char_learr:accompany(true); + take(ven_item_green_key); + take(ven_item_red_key); + take(ven_item_tablet); + + pl.where = "ven_temple_labyrinth_l1"; + ven_temple_labyrinth_l1.position = '17'; -- leviathan submarine_leviathan.circuit_breaks = 0;