Changeset - 7b9f5f1ade83
[Not reviewed]
default
0 1 0
Silverwing - 5 years ago 2020-04-29 06:32:02

Tower level 3 complete
1 file changed with 341 insertions and 4 deletions:
main3.lua
341
4
0 comments (0 inline, 0 general) First comment
main3.lua
Show inline comments
 
@@ -1189,7 +1189,7 @@ room {
 
    };
 
    obj {
 
        nam = 'red_catalyst';
 
        dsc = 'На одном из столов я замечаю {пробирку с красной жидкостью}. ';
 
        dsc = 'На одном из столов я вижу {пробирку с красной жидкостью}. ';
 
        disp = 'Красный катализатор';
 
        disp2 = 'красный катализатор';
 
        disp3 = 'красный катализатор';
 
@@ -1207,7 +1207,7 @@ room {
 
    };
 
    obj {
 
        nam = 'blue_catalyst';
 
        dsc = 'На одной из полок я замечаю {пробирку с синей жидкостью}. ';
 
        dsc = 'На одной из полок я обнаруживаю {пробирку с синей жидкостью}. ';
 
        disp = 'Синий катализатор';
 
        disp2 = 'синий катализатор';
 
        disp3 = 'синий катализатор';
 
@@ -1305,7 +1305,344 @@ dlg {
 
room {
 
    nam = 'tower_level_3';
 
    disp = 'Башня, третий этаж';
 
    dsc = [[Поднявшись на третий этаж, я оказываюсь в уютном кабинете. Вдоль одной из стен установлены книжные полки, а в стену напротив нее вмонтирован ярко пылающий камин. Несмотря на это, в помещении царит уютный полумрак. Чуть поодаль от камина стоит старое кресло-качалка. В центре кабинета стоит массивный деревянный стол, на котором стоят пять фигурок из серебристого металла: волк, тигр, лев, башня и рыцарь. Каждая из фигурок стоит на небольшом шестиугольном основании. В поверхности стола так же есть пять шестиугольных углублений. По периметру стола витиеватым почерком нанесена какая-то надпись.]];
 
    dsc = [[Поднявшись на третий этаж, я оказываюсь в уютном кабинете. Вдоль одной из стен установлены книжные полки, а в стену напротив нее вмонтирован ярко пылающий камин. Несмотря на это, в помещении царит уютный полумрак. Чуть поодаль от камина стоит старое кресло-качалка. В центре кабинета стоит массивный деревянный {tower_level_3_table|стол}.]];
 
    way = {
 
        path {"Вниз", "tower_level_2"};
 
        path {"#up", "Вверх", "tower_level_4"}:disable();
 
    };
 
}:with {
 
    obj {
 
        solved = false;
 
        nam = 'tower_level_3_table';
 
        act = function(s)
 
            if s.solved then
 
                return 'Огромный стол занимает значительное пространство в центре комнаты. Полированная поверхность блестит в мерцающем свете камина. В поверхности стола так же есть пять шестиугольных углублений, четыре из которых отмечены сторонами света: NW, NE, SE, SW, а еще одна, в центре, оставлена без отметки. В каждом углублении стоит небольшая фигурка из серебристого металла. По периметру стола витиеватым почерком нанесена какая-то надпись. ';
 
            else
 
                walkin('tower_level_3_table_in');
 
            end;
 
        end;
 
    }
 
}
 

	
 
room {
 
    nam = 'tower_level_3_table_in';
 
    disp = 'Башня, третий этаж';
 
    dsc = [[Огромный стол занимает значительное пространство в центре комнаты. Полированная поверхность блестит в мерцающем свете камина. В поверхности стола так же есть пять шестиугольных углублений, четыре из которых отмечены сторонами света: NW, NE, SE, SW, а еще одна, в центре, оставлена без отметки. По периметру стола витиеватым почерком нанесена какая-то {#hint|надпись}. ]];
 
}:with {
 
    obj {
 
        nam = '#figures';
 
        dsc = 'На нем стоят {пять фигурок} из серебристого металла. ';
 
        act = function(s)
 
            take('figure_wolf');
 
            take('figure_tiger');
 
            take('figure_lion');
 
            take('figure_knight');
 
            take('figure_tower');
 
            remove('#figures', here());
 
            return 'Я поднимаю фигурки со стола. ';
 
        end;
 
    };
 
    obj {
 
        item = false;
 
        target = 'figure_wolf';
 
        nam = '#north_west';
 
        dsc = function(s)
 
            if s.item then
 
                return 'В углубении NW стоит {' .. s.item.disp2 .. '}. ';
 
            else
 
                return '{Углубление NW} пусто. ';
 
            end;
 
        end;
 
        act = function(s)
 
            if s.item then
 
                local t = s.item;
 
                take(s.item);
 
                s.item = false;
 
                return 'Я забираю ' .. t.disp3 .. ' из углубления';
 
            else
 
                return 'Небольшое шестиугольное углубление. ';
 
            end;
 
        end;
 
        used = function(s, o)
 
            if s.item then
 
                return 'В углублении уже стоит ' .. s.item.disp2;
 
            elseif o^'figure_wolf' or o^'figure_lion' or o^'figure_tower' or o^'figure_knight' or o^'figure_tiger' then
 
                s.item = o;
 
                pr('Я помещаю ' .. o.disp3 .. ' в углубление. ');
 
                remove(o, pl);
 
                local niches = {
 
                    _('#north_west');
 
                    _('#north_east');
 
                    _('#middle');
 
                    _('#south_west');
 
                    _('#south_east');
 
                };
 
                
 
                for i = 1, #niches do
 
                    if not niches[i].item or niches[i].item.nam ~= niches[i].target then
 
                        return;
 
                    end;
 
                end;
 
                
 
                _('tower_level_3_table').solved = true;
 
                walkout();
 
                _('#up', 'tower_level_3'):enable();
 
                pr 'Легкий щелчок дает мне понять, что дверь на следующий этаж башни открыта. ';
 
            end;
 
        end;
 
    };
 
    obj {
 
        item = false;
 
        target = 'figure_lion';
 
        nam = '#north_east';
 
        dsc = function(s)
 
            if s.item then
 
                return 'В углубении NE стоит {' .. s.item.disp2 .. '}. ';
 
            else
 
                return '{Углубление NE} пусто. ';
 
            end;
 
        end;
 
        act = function(s)
 
            if s.item then
 
                local t = s.item;
 
                take(s.item);
 
                s.item = false;
 
                return 'Я забираю ' .. t.disp3 .. ' из углубления';
 
            else
 
                return 'Небольшое шестиугольное углубление. ';
 
            end;
 
        end;
 
        used = function(s, o)
 
            if s.item then
 
                return 'В углублении уже стоит ' .. s.item.disp2;
 
            elseif o^'figure_wolf' or o^'figure_lion' or o^'figure_tower' or o^'figure_knight' or o^'figure_tiger' then
 
                s.item = o;
 
                pr('Я помещаю ' .. o.disp3 .. ' в углубление. ');
 
                remove(o, pl);
 
                local niches = {
 
                    _('#north_west');
 
                    _('#north_east');
 
                    _('#middle');
 
                    _('#south_west');
 
                    _('#south_east');
 
                };
 
                
 
                for i = 1, #niches do
 
                    if not niches[i].item or niches[i].item.nam ~= niches[i].target then
 
                        return;
 
                    end;
 
                end;
 
                
 
                _('tower_level_3_table').solved = true;
 
                walkout();
 
                _('#up', 'tower_level_3'):enable();
 
                pr 'Легкий щелчок дает мне понять, что дверь на следующий этаж башни открыта. ';
 
            end;
 
        end;
 
    };
 
    obj {
 
        item = false;
 
        target = 'figure_tower';
 
        nam = '#middle';
 
        dsc = function(s)
 
            if s.item then
 
                return 'В центральном углубении стоит {' .. s.item.disp2 .. '}. ';
 
            else
 
                return '{Центральное углубление} пусто. ';
 
            end;
 
        end;
 
        act = function(s)
 
            if s.item then
 
                local t = s.item;
 
                take(s.item);
 
                s.item = false;
 
                return 'Я забираю ' .. t.disp3 .. ' из углубления';
 
            else
 
                return 'Небольшое шестиугольное углубление. ';
 
            end;
 
        end;
 
        used = function(s, o)
 
            if s.item then
 
                return 'В углублении уже стоит ' .. s.item.disp2;
 
            elseif o^'figure_wolf' or o^'figure_lion' or o^'figure_tower' or o^'figure_knight' or o^'figure_tiger' then
 
                s.item = o;
 
                pr('Я помещаю ' .. o.disp3 .. ' в углубление. ');
 
                remove(o, pl);
 
                local niches = {
 
                    _('#north_west');
 
                    _('#north_east');
 
                    _('#middle');
 
                    _('#south_west');
 
                    _('#south_east');
 
                };
 
                
 
                for i = 1, #niches do
 
                    if not niches[i].item or niches[i].item.nam ~= niches[i].target then
 
                        return;
 
                    end;
 
                end;
 
                
 
                _('tower_level_3_table').solved = true;
 
                walkout();
 
                _('#up', 'tower_level_3'):enable();
 
                pr 'Легкий щелчок дает мне понять, что дверь на следующий этаж башни открыта. ';
 
            end;
 
        end;
 
    };
 
    obj {
 
        item = false;
 
        target = 'figure_knight';
 
        nam = '#south_west';
 
        dsc = function(s)
 
            if s.item then
 
                return 'В углубении SW стоит {' .. s.item.disp2 .. '}. ';
 
            else
 
                return '{Углубление SW} пусто. ';
 
            end;
 
        end;
 
        act = function(s)
 
            if s.item then
 
                local t = s.item;
 
                take(s.item);
 
                s.item = false;
 
                return 'Я забираю ' .. t.disp3 .. ' из углубления';
 
            else
 
                return 'Небольшое шестиугольное углубление. ';
 
            end;
 
        end;
 
        used = function(s, o)
 
            if s.item then
 
                return 'В углублении уже стоит ' .. s.item.disp2;
 
            elseif o^'figure_wolf' or o^'figure_lion' or o^'figure_tower' or o^'figure_knight' or o^'figure_tiger' then
 
                s.item = o;
 
                pr('Я помещаю ' .. o.disp3 .. ' в углубление. ');
 
                remove(o, pl);
 
                local niches = {
 
                    _('#north_west');
 
                    _('#north_east');
 
                    _('#middle');
 
                    _('#south_west');
 
                    _('#south_east');
 
                };
 
                
 
                for i = 1, #niches do
 
                    if not niches[i].item or niches[i].item.nam ~= niches[i].target then
 
                        return;
 
                    end;
 
                end;
 
                
 
                _('tower_level_3_table').solved = true;
 
                walkout();
 
                _('#up', 'tower_level_3'):enable();
 
                pr 'Легкий щелчок дает мне понять, что дверь на следующий этаж башни открыта. ';
 
            end;
 
        end;
 
    };
 
    obj {
 
        item = false;
 
        target = 'figure_tiger';
 
        nam = '#south_east';
 
        dsc = function(s)
 
            if s.item then
 
                return 'В углубении SE стоит {' .. s.item.disp2 .. '}. ';
 
            else
 
                return '{Углубление SE} пусто. ';
 
            end;
 
        end;
 
        act = function(s)
 
            if s.item then
 
                local t = s.item;
 
                take(s.item);
 
                s.item = false;
 
                return 'Я забираю ' .. t.disp3 .. ' из углубления';
 
            else
 
                return 'Небольшое шестиугольное углубление. ';
 
            end;
 
        end;
 
        used = function(s, o)
 
            if s.item then
 
                return 'В углублении уже стоит ' .. s.item.disp2;
 
            elseif o^'figure_wolf' or o^'figure_lion' or o^'figure_tower' or o^'figure_knight' or o^'figure_tiger' then
 
                s.item = o;
 
                pr('Я помещаю ' .. o.disp3 .. ' в углубление. ');
 
                remove(o, pl);
 
                local niches = {
 
                    _('#north_west');
 
                    _('#north_east');
 
                    _('#middle');
 
                    _('#south_west');
 
                    _('#south_east');
 
                };
 
                
 
                for i = 1, #niches do
 
                    if not niches[i].item or niches[i].item.nam ~= niches[i].target then
 
                        return;
 
                    end;
 
                end;
 
                
 
                _('tower_level_3_table').solved = true;
 
                walkout();
 
                _('#up', 'tower_level_3'):enable();
 
                pr 'Легкий щелчок дает мне понять, что дверь на следующий этаж башни открыта. ';
 
            end;
 
        end;
 
    };
 
    obj {
 
        nam = '#hint';
 
        act = [[На столе я замечаю следующий текст:^
 
Пятеро их, у каждого цвет свой: белый, алый, лазурный, изумрудный и черный.^
 
Четверым дано время: полдень, полночь, рассвет и закат, пятый – вне времени.^
 
Четверым дан сезон: осень, лето, весна и зима, пятый – вне времени.^
 
Четверым даны луны: растущая, полная, убывающая и новая, пятый – вне времени.^
 
На северо-западе место полной луны, владения новой, зеленой – напротив ее.^
 
Тигр в полдень бродит по землям своим.^
 
Зима не на юге, и весна от нее на востоке.^
 
Башня – вне времени, лишь цвет ей присущ.^
 
Волк в полночь обходит владенья свои, тот что летом владеет – напротив его.^
 
Луна убывает на севере, белый закат южнее ее.^
 
Черный – в центре, окружен он рассветом, закатом, полночью и полднем.^
 
Лев алый весенний рассвет собой воплощает.]];
 
    }
 
}
 

	
 
obj {
 
    nam = 'figure_wolf';
 
    disp = 'Фигурка волка';
 
    disp2 = 'фигурка волка';
 
    disp3 = 'фигурку волка';
 
    inv = 'Фигурка волка, рыщущего в поисках добычи из неизвестного мне серебристого металла. Очень красивая и детально проработанная, она закреплена на шестиугольном основании из того же металла. ';
 
}
 

	
 
obj {
 
    nam = 'figure_tiger';
 
    disp = 'Фигурка тигра';
 
    disp2 = 'фигурка тигра';
 
    disp3 = 'фигурку тигра';
 
    inv = 'Фигурка бегущего тигра из неизвестного мне серебристого металла. Очень красивая и детально проработанная, она закреплена на шестиугольном основании из того же металла. ';
 
}
 

	
 
obj {
 
    nam = 'figure_lion';
 
    disp = 'Фигурка льва';
 
    disp2 = 'фигурка льва';
 
    disp3 = 'фигурку льва';
 
    inv = 'Фигурка льва, стоящего с гордо поднятой головой и смотрящего куда-то вдаль. Сделана из неизвестного мне серебристого металла. Очень красивая и детально проработанная, она закреплена на шестиугольном основании из того же металла.';
 
}
 

	
 
obj {
 
    nam = 'figure_knight';
 
    disp = 'Фигурка рыцаря';
 
    disp2 = 'фигурка рыцаря';
 
    disp3 = 'фигурку рыцаря';
 
    inv = 'Фигурка рыцаря в полном доспехе, стоящего, опершись на громадный двуручный меч. Сделана из неизвестного мне серебристого металла. Очень красивая и детально проработанная, она закреплена на шестиугольном основании из того же металла.';
 
}
 

	
 
obj {
 
    nam = 'figure_tower';
 
    disp = 'Фигурка башни';
 
    disp2 = 'фигурка башни';
 
    disp3 = 'фигурку башни';
 
    inv = 'Фигурка высокой шестиугольной башни -- уменьшенной копии той, в которой я сейчас нахожусь. Сделана из неизвестного мне серебристого металла. Фигурка настолько проработана,  она закреплена на шестиугольном основании из того же металла.';
 
}
 

	
 
room {
 
@@ -1375,6 +1712,6 @@ function start(load)
 
        _('box').oiled = true;
 
        _('box').opened = true;
 
        take('hidden_key');
 
        walk('tower_level_2');
 
        walk('tower_level_3');
 
    end;
 
end;
 
\ No newline at end of file
0 comments (0 inline, 0 general) First comment
You need to be logged in to comment. Login now