Changeset - 89b50a1a01c1
[Not reviewed]
default
0 1 0
silverwing - 7 years ago 2017-07-23 13:17:20

iraa completable
1 file changed with 204 insertions and 1 deletions:
0 comments (0 inline, 0 general)
atlantis_navjiarr.lua
Show inline comments
 
@@ -1113,6 +1113,9 @@ iraa_temple_main_2 = room {
 
        kh_vroom("В зал Ответа", "iraa_temple_ahall");
 
        kh_vroom("К главному входу", "iraa_temple_main_1");
 
    };
 
    obj = {
 
        "iraa_temple_lever_4"
 
    };
 
};
 

	
 
iraa_temple_main_1 = room {
 
@@ -1165,12 +1168,39 @@ iraa_temple_ahall = room {
 
};
 

	
 
iraa_temple_room_0 = room {
 
    var {
 
        state = false;
 
    };
 
    nam = "iraa_temple_room_0";
 
    disp = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_6");
 
        kh_vroom("В скрытый проход", "iraa_temple_hidden_stairs");
 
    };
 
    obj = {
 
        "iraa_temple_lever_0"
 
    };
 
    open = function(s)
 
        s.state = true;
 
        path("В скрытый проход", s):enable();
 
        if here() == s then
 
            pr("Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. ");
 
        else
 
            pr("Вы слышите где-то поблизости скрежет каменных плит. ");
 
        end;
 
    end;
 
    close = function(s)
 
        if s.state then
 
            s.state = false;
 
            path("В скрытый проход", s):disable();
 
            if here() == s then
 
                pr("Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. ");
 
            else
 
                pr("Вы слышите где-то поблизости скрежет каменных плит. ");
 
            end;
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_room_1 = room {
 
@@ -1180,6 +1210,9 @@ iraa_temple_room_1 = room {
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_1");
 
    };
 
    obj = {
 
        "iraa_temple_lever_1"
 
    };
 
};
 

	
 
iraa_temple_room_2 = room {
 
@@ -1189,6 +1222,9 @@ iraa_temple_room_2 = room {
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_5");
 
    };
 
    obj = {
 
        "iraa_temple_lever_2"
 
    };
 
};
 

	
 
iraa_temple_room_3 = room {
 
@@ -1198,6 +1234,9 @@ iraa_temple_room_3 = room {
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_2");
 
    };
 
    obj = {
 
        "iraa_temple_lever_3"
 
    };
 
};
 

	
 
iraa_temple_room_5 = room {
 
@@ -1207,6 +1246,9 @@ iraa_temple_room_5 = room {
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_3");
 
    };
 
    obj = {
 
        "iraa_temple_lever_5"
 
    };
 
};
 

	
 
iraa_temple_room_6 = room {
 
@@ -1238,8 +1280,10 @@ iraa_temple_switch = obj {
 
        end;
 
        if not state[1] and not state[2] and state[3] and not state[4] and state[5] and not state[6] then
 
            -- A valid state
 
            iraa_temple_room_0:open();
 
        else
 
            -- An invalid state
 
            iraa_temple_room_0:close();
 
        end;
 
    end;
 
};
 
@@ -1247,29 +1291,188 @@ iraa_temple_switch = obj {
 
iraa_temple_lever_0 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой фиолетового цвета]];
 
    act = function(s)
 
        iraa_temple_switch(1);
 
    end;
 
};
 

	
 
iraa_temple_lever_1 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой синего цвета]];
 
    act = function(s)
 
        iraa_temple_switch(2);
 
    end;
 
};
 

	
 
iraa_temple_lever_2 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой зеленого цвета]];
 
    act = function(s)
 
        iraa_temple_switch(3);
 
    end;
 
};
 

	
 
iraa_temple_lever_3 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой желтого цвета]];
 
    act = function(s)
 
        iraa_temple_switch(4);
 
    end;
 
};
 

	
 
iraa_temple_lever_4 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = [[Под пьедесталом расположен едва заметный {рычаг} с отметкой оранжевого цвета]];
 
    act = function(s)
 
        iraa_temple_switch(5);
 
    end;
 
};
 

	
 
iraa_temple_lever_5 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = [[Рядом со входом расположен едва заметный {рычаг} с отметкой красного цвета]];
 
};
 
\ No newline at end of file
 
    act = function(s)
 
        iraa_temple_switch(6);
 
    end;
 
};
 

	
 
iraa_temple_hidden_stairs = darkroom {
 
    nam = "iraa_temple_hidden_stairs";
 
    dsc_dark = [[]];
 
    dsc_halflit = [[]];
 
    way = {
 
        kh_vroom("Наверх", "iraa_temple_room_0", 1);
 
        kh_vroom("Вниз", "iraa_temple_room_0", 1);
 
    };
 
};
 

	
 
iraa_temple_button_ctr = function(nam, index)
 
    return obj {
 
        nam = nam;
 
        dsc = function(s)
 
            local im = "images/dyp_bg.png";
 
            for i = 1, #iraa_temple_hidden_hall.buttons[index] do
 
                im = im .. ";images/dyp_" .. tostring(iraa_temple_hidden_hall.buttons[index][i]) .. ".png";
 
            end;
 
            if (iraa_temple_hidden_hall.pressed_buttons[index]) then
 
                return "{Рычаг с символами " .. img(im) .."} включен.^";
 
            else
 
                return "{Рычаг с символами " .. img(im) .."} выключен.^";
 
            end;
 
        end;
 
        act = function(s)
 
            iraa_temple_hidden_hall:check(index);
 
            return [[
 
                Вы переключаете рычаг и узор на полу комнаты меняется
 
            ]];
 
        end;
 
    };
 
end;
 

	
 
iraa_temple_hidden_hall = room {
 
    var {
 
        active_parts = {false, false, false, false, false, false, false, false, false, false, false, false};
 
        pressed_buttons = {false, false, false, false, false, false, false, false};
 
        solved = false;
 
    };
 
    buttons = {
 
        {1, 5, 9, 11, 12};
 
        {1, 2, 3, 4};
 
        {4, 8, 10, 11, 12};
 
        {2, 4, 5, 6};
 
        {1, 5, 7, 9, 10, 11, 12};
 
        {2, 6, 9, 10, 12};
 
        {1, 3, 7, 8};
 
        {3, 7, 9, 10, 11};
 
    };
 
    pic = function(s)
 
        local pic = 'images/dyp_bg.png';
 
        local cnt = 0;
 
        for i = 1, #s.active_parts do
 
            if (s.active_parts[i]) then
 
                cnt = cnt + 1;
 
                pic = pic .. ";images/dyp_" .. tostring(i) .. ".png";
 
            end;
 
        end;
 
        if (cnt > 0) then
 
            return pic;
 
        else
 
            return nil;
 
        end;
 
    end;
 
    nam = "Храм Ираафаанотра, потайной зал";
 
    dsc = [[Большой круглый плохо освещенный зал. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. ]];
 
    obj = {
 
        iraa_temple_button_ctr("iraa_temple_b1", 1);
 
        iraa_temple_button_ctr("iraa_temple_b2", 2);
 
        iraa_temple_button_ctr("iraa_temple_b3", 3);
 
        iraa_temple_button_ctr("iraa_temple_b4", 4);
 
        iraa_temple_button_ctr("iraa_temple_b5", 5);
 
        iraa_temple_button_ctr("iraa_temple_b6", 6);
 
        iraa_temple_button_ctr("iraa_temple_b7", 7);
 
        iraa_temple_button_ctr("iraa_temple_b8", 8);
 
    };
 
    way = {
 
        kh_vroom("Наверх", "iraa_temple_hidden_stairs"):disable();
 
        kh_vroom("Вниз", "iraa_temple_hidden_storage"):disable();
 
    };
 
    check = function(s, index)
 
        s.pressed_buttons[index] = not s.pressed_buttons[index];
 
        
 
        for i = 1, #s.active_parts do
 
            s.active_parts[i] = false;
 
        end;
 
        
 
        for i = 1, #s.pressed_buttons do
 
            if (s.pressed_buttons[i]) then
 
                for j = 1, #s.buttons[i] do
 
                    s.active_parts[s.buttons[i][j]] = not s.active_parts[s.buttons[i][j]];
 
                end;
 
            end;
 
        end;
 
        
 
        s.solved = true;
 
        for i = 1, #s.active_parts do
 
            if (not s.active_parts[i]) then
 
                s.solved = false;
 
                break;
 
            end;
 
        end;
 
        
 
        if (s.solved) then
 
            path("Наверх"):enable();
 
            path("Вниз"):enable();
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_hidden_storage = room {
 
    nam = "iraa_temple_hidden_storage";
 
    disp = [[Храм Ираафаанотра, хранилище]];
 
    dsc = [[Стены этой небольшой комнаты излучают слабый свет. ]];
 
    obj = {
 
        "iraa_temple_hidden_pedestal"
 
    };
 
};
 

	
 
iraa_temple_hidden_pedestal = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "iraa_temple_hidden_pedestal";
 
    dsc = function(s)
 
        if s.state == 0:
 
            return [[В центре установлен металлический пьедестал, на котором лежит металлическая {табличка}. ]];
 
        else
 
            return [[В центре установлен металлический {пьедестал}. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if s.state == 0:
 
            item_lse_map.state = item_lse_map.state + 1;
 
            return [[Вы забираете металлическую табличку себе. ]];
 
        else
 
            return [[Вьедестал пуст. ]];
 
        end;
 
    end;
 
};
0 comments (0 inline, 0 general)