Changeset - cdcbd99df8e8
[Not reviewed]
adaptivity
0 3 1
Silverwing - 3 years ago 2022-08-21 11:22:42

Further updates, an ending added
4 files changed with 371 insertions and 147 deletions:
0 comments (0 inline, 0 general) First comment
ending.lua
Show inline comments
 
new file 100644
 
--[[
 
1. Leaving the tower
 
]]
 

	
 
room {
 
    state = 0;
 
    nam = 'ending_left';
 
    nofollow = true;
 
    theme = 'tower';
 
    disp = 'Конец игры';
 
    noinv = true;
 
    onenter = function(s)
 
        s.state = s.state + 1;
 
        if s.state == 1 then
 
            pr 'Я делаю шаг в сторону двери, но что-то останавливает меня. Что, если второго шанса не будет?';
 
            return false;
 
        elseif s.state == 2 then
 
            pr 'Я продолжаю двигаться к выходу, В моей голове возникает изображение двери башни, захлопывающейся за мной. ';
 
            return false;
 
        elseif s.state == 3 then
 
            pr 'Я продолжаю двигаться к выходу из башни, воздух словно сгущается передо мной, не желая выпускать. Темнота вокруг меня становится гуще, как будто башня начинает отторгать меня. ';
 
            return false;
 
        end;
 
    end;
 
    dsc = function(s)
 
        pr [[Я выхожу из башни, и массивная каменная плита опускается за мной, навеки закрывая путь внутрь. ]]
 
        if solarscale_with_me then
 
            pr [[Соларскейл задумчиво смотрит на меня и на башню. Некоторое время мы тщательно изучаем ее со всех сторон, но в конце концов, отчаявшись, отправляемся каждый своей дорогой. ]];
 
        end;
 
        pr [[^Столетие за столетием я возвращался к этому месту, но гладкий черный камень все также оставался неприступен для меня. ]];
 
        if solarscale_with_me then
 
            pr [[Не удалось мне найти и Соларскейл -- сколько ни пытался, я не смог обнаружить никаких следов прекрасной драконессы. ]];
 
        end;
 
    end;
 
}
 

	
 
--[[
 
2. Destroying the tower
 
]]
 

	
 
room {
 
    nam = 'ending_formatted';
 
    disp = 'Конец игры';
 
    theme = 'tower';
 
    nofollow = true;
 
    noinv = true;
 
    dsc = function(s)
 
        if solarscale_with_me then
 
            pr [[Я отошел от компьютера и в этот момент ощутил неуловимое изменение, произошедшее в башне. Мир вокруг нас с Соларскейл начал расплываться и вскоре мы оказались в лесу. Повсюду валялись обломки черного камня, только что составлявшего башню, хотя узнать ее в них было бы непросто. Переглянувшись с драконессой, мы попрощались и отправились каждый своей дорогой.         Столетие за столетием я возвращался к этому месту, но не находил ничего, кроме забытых всеми осколков черного камня. Неизвестной для меня осталась и судьба Соларскейл -- сколько ни пытался, я не смог найти никаких следов прекрасной драконессы. ]];
 
        else
 
            pr [[Я отошел от компьютера и в этот момент ощутил неуловимое изменение, произошедшее в башне. Мир вокруг меня начал расплываться и вскоре мы оказались в лесу. Повсюду валялись обломки черного камня, только что составлявшего башню, хотя узнать ее в них было бы непросто. Вздохнув, я расправил крылья и отправился домой. Столетие за столетием я возвращался к этому месту, но не находил ничего, кроме забытых всеми осколков черного камня. ]];
 
        end;
 
    end;
 
}
 

	
 
--[[
 
3. True ending stage 1
 
]]
 

	
 
-- 3a. With solarscale
 

	
 
room {
 
    nam = 'ending_solarscale_pre';
 
    nofollow = true;
 
    theme = 'tower';
 
    disp = 'Башня, серверная';
 
    noinv = true;
 
    dsc = [[В сознании моем звучит мягкий, спокойный и, кажется, давно знакомый голос: "Добро пожаловать домой". Стены начинают растворяться, открывая вид на бескрайние просторы вселенной и в этот момент я чувствую легкое прикосновение, возвращающее меня к реальности. ]];
 
    way = {
 
        path {'Продолжить', 'ending_solarscale_dlg'};
 
    };
 
}
 

	
 
dlg {
 
    nam = 'ending_solarscale_dlg';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Соларскейл';
 
    enter = [[Соларскейл произносит слова прощания: "Мне пора уходить. Счастливого путешествия! Надеюсь, мы еще увидимся". ]];
 
    phr = {
 
        {"[Схватить Соларскейл за руку]", function(s)
 
            walk('ending_solarscale_leaving');
 
            return [[Я слышу в голове голос: "Оставь ее. У нее свой путь". От удивления я разжимаю руку. Этого оказывается достаточно. ]];
 
        end};
 
        {"Вы не хотите остаться?", function(s)
 
            if solarscale_helps >= 2 and _'solarscale_ally'.tea_given then
 
                walk('ending_solarcale_stays');
 
                return 'Соларскейл на мгновение замирает, а потом с искрами в глазах отвечает: "Конечно, хочу!"';
 
            else
 
                walk('ending_solarscale_leaving');
 
                return 'Соларскейл печально опускает голову: "Меня ждут дома. Мне нужно лететь". '
 
            emd;
 
        end};
 
        {"Что же, не буду вас задерживать. До новых встреч. ", function(s)
 
            walk('ending_solarscale_leaving')
 
            return false;
 
        end};
 
    };
 
}
 

	
 
room {
 
    nam = 'ending_solarcale_stays';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = [[Мое восприятие изменяется. Я ощущаю, как башня медленно растворяется в воздухе. Соларскейл с изумлением глядит на то, как башня адаптируется под нас -- меняются размеры и расположение комнат, появляются и исчезают предметы окружения и стены. ]];
 
    way = {
 
        path {'Продолжить', 'ending_with_solarscale'};
 
    };
 
};
 

	
 
room {
 
    nam = 'ending_solarscale_leaving';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = [[Я не успеваю моргнуть и глазом, как Соларскейл покидает башню. Кажется, я вижу собственными глазами, как драконесса вылетает через проем на первом этаже. Тяжелая каменная плита опускается за ней. Я вижу, как Соларскейл оборачивается, глядя на башню. Ее чешуя сияет в лучах заходящего Солнца, а изумрудно-зеленые глаза смотрят на меня. Мое восприятие изменяется. Я ощущаю, как башня медленно растворяется в воздухе, а драконесса отворачивается и продолжает свой путь. ]];
 
    way = {
 
        path {'Продолжить', function(s)
 
            if irradiated then
 
                return 'ending_irradiated';
 
            else
 
                return 'ending_alone';
 
            end;
 
        end};
 
    };
 
}
 

	
 
-- 3b. Without solarscale
 
room {
 
    nam = 'ending_no_solarscale';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = 'На одной из вершин на краю кратере сидела золотая драконесса. Ее чешуя сверкала в лучах заходящего Солнца, а изумрудно-зеленые глаза смотрели в центр кратера на медленно растворяющуюся в воздухе черную башню. Как только башня полностью исчезла, драконесса расправила тонкие сияющие крылья и поднялась в небеса. ';
 
    way = {
 
        path {'Продолжить', function(s)
 
            if irradiated then
 
                return 'ending_irradiated';
 
            else
 
                return 'ending_alone';
 
            end;
 
        end};
 
    };
 
}
 

	
 
--[[
 
4. True ending stage 2
 
]]
 

	
 
-- 4a. With solarscale
 
room {
 
    nam = 'ending_with_solarscale';
 
    nofollow = true;
 
    disp = 'Конец игры';
 
    noinv = true;
 
    theme = 'tower';
 
    dsc = [[
 
        Перед моим взором раскинулась бескрайняя вселенная. Все дороги и все миры открыты передо мной. По своему желанию я могу оказаться в любом месте в любое время. Я поднимаюсь на вершину башни и мысленно отдаю команду отправляться в путь. Соларскейл же немедленно начинает исследовать внутренние пространства башни. ^Сперва меня удивляет, насколько легко и чутко башня реагирует на нас, меняя размеры, расположение и даже количество комнат, но вскоре я привыкаю к тому, что за дверью всегда находится именно то, что я ищу. И как бы далеко ни отдалялись мы с Соларскейл, мы всегда непостижимым образом находились рядом. ^Тысячелетие за тысячелетием мы путешествуем по мирам, собирая их знания, помогая нуждающимся и сохраняя самое ценное их наследие. Вскоре время и пространство перестают иметь для нас всякое значение.
 
    ]];
 
}
 

	
 
-- 4b. Without solarscale
 
room {
 
    nam = 'ending_alone';
 
    nofollow = true;
 
    disp = 'Конец игры';
 
    noinv = true;
 
    theme = 'tower';
 
    dsc = [[
 
        Перед моим взором раскинулась бескрайняя вселенная. Все дороги и все миры открыты передо мной. По своему желанию я могу оказаться в любом месте в любое время. Я поднимаюсь на вершину башни и мысленно отдаю команду отправляться в путь. ^Сперва меня удивляет, насколько легко и чутко башня реагирует на мое состояние, меняя размеры, расположение и даже количество комнат, но вскоре я привыкаю к тому, что за ближайшей дверью всегда находится именно то, что я ищу. Тысячелетие за тысячелетием я путешествую по мирам, собирая их знания, помогая нуждающимся и сохраняя самое ценное их наследие. Вскоре время и пространство перестают иметь для меня всякое значение.
 
    ]];
 
}
 

	
 
-- 4c. Irradiated
 
room {
 
    nam = 'ending_irradiated';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = [[Перед моим взором раскинулась бескрайняя вселенная. Все дороги и все миры открыты передо мной. По своему желанию я могу оказаться в любом месте в любое время. Я мысленно отдаю команду отправляться в путь. ^Сперва меня удивляет, насколько легко и чутко башня реагирует на мое состояние, меняя размеры, расположение и даже количество комнат, но вскоре я привыкаю к тому, что за ближайшей дверью всегда находится именно то, что я ищу. Тысячелетие за тысячелетием я путешествую по мирам, собирая их знания, помогая нуждающимся и сохраняя самое ценное их наследие. Несмотря на все это, странное ощущение не дает мне покоя -- словно дни мои медленно истекают и путешествие мое не будет вечным. ]];
 
}
main3.lua
Show inline comments
 
@@ -123,6 +123,7 @@ include "computer_parts"
 
include "solarscale"
 
include "tower"
 
include "forest"
 
include "ending"
 

	
 
local menu = {
 
    system_settings = {
 
@@ -502,6 +503,7 @@ end;
 

	
 
room {
 
    nam = 'intro_settings';
 
    nofollow = true;
 
    notitle = true;
 
    nosave = true;
 
    noautosave = true;
 
@@ -1720,7 +1722,12 @@ function start(load)
 
        --_('level_3_main_room'):enable();
 
        --_('level_4_next_room'):enable();
 
        --_'tower_level_3_room_2'.light = true;
 
        --walk('tower_level_2_room_2');
 
        solarscale_with_me = true;
 
        remove('solarscale', where('solarscale'));
 
        put('solarscale_ally', here());
 
        lifeon(_'solarscale_ally');
 
        power_on = true;
 
        walk('tower_level_1_room_2');
 
    end;
 
end;
 

	
solarscale.lua
Show inline comments
 
@@ -7,6 +7,8 @@ obj {
 
	level_3_2_visited = false;
 
	level_2_2_visited = false;
 
	level_1_2_visited = false;
 
	tea_asked = false;
 
	tea_given = false;
 
	nam = 'solarscale_ally';
 
	dsc = function(s)
 
		if here()^'above_forest' or here()^'above_near_village' or here()^'above_village' or here()^'above_crater' or here()^'above_west' then
 
@@ -166,6 +168,15 @@ dlg {
 
	end;
 
	phr = {
 
		{cond=function(s) return here():from()^'tower_level_1' and not have('tower_box') and not _('tower_level_1').keys_taken and not have('tower_level_2_key') and _('level_1_up'):disabled() end, 'У вас есть идеи, как открыть эту дверь?', 'Соларскейл задумчиво произносит: "Пока не знаю. Надо все внимательно осмотреть". '};
 
		{cond=function(s) return here():from()^'tower_level_1_room_2' and not _'solarscale_ally'.tea_asked end, 'Вы любите чай?', function(s)
 
			_'solarscale_ally'.tea_asked = true;
 
			return 'Соларскейл игриво спрашивает: "А вы угощаете?"'
 
		end};
 
		{cond=function(s) return here():from()^'tower_level_1_room_2' and _'solarscale_ally'.tea_asked and have('tea') end, '[Подать Соларскейл чашку] Ваш чай.', function(s)
 
			_'solarscale_ally'.tea_given = true;
 
			remove('tea', pl);
 
			return 'Соларскейл залпом выпивает чай и с улыбкой смотрит на меня: "Благодарю!"'
 
        end};
 
		{cond=function(s) return here():from()^'tower_level_1' and have('tower_box') and not _('tower_level_1').keys_taken and _('level_1_up'):disabled() end, 'У вас есть идеи, что мы должны сделать?', 'Соларскейл подлетает ко мне: "Я могу взглянуть на шкатулку, что вы только что подняли?" ', 
 
			only=true;
 
			{'[Протянуть шкатулку Соларскейл] Да, конечно. ', 'Соларскейл берет шкатулку и внимательно осматривает, прежде чем вернуть ее мне. Наконец, она изрекает: "Четыре замочные скважины... Наверное, и ключи должны быть где-то здесь". '};
tower.lua
Show inline comments
 
@@ -124,6 +124,109 @@ obj {
 
	inv = 'Набор отверток для электроники. Нигде на коробке нет никаких отметок о производителе. Отвертки при это очень качественно изготовлены и прекрасно сохранились. ';
 
};
 

	
 
--[[
 
1. В шкафу взять чайник и чашку
 
2. В чайник налить воды из крана
 
3. Чайник поставить на плиту, чтобы он вскипел(эл-во должно быть включено)
 
4. Из шкафчика достать чай
 
5. Чай поместить в чашку
 
6. Налить воды в чашку
 

	
 
- Чашку с водой/чаем и чайник нельзя бросить в котел
 
]]
 

	
 
obj {
 
    state = 0; -- 0 - empty, 1 - cold water, 2 - hot water
 
    nam = 'kettle';
 
    disp = function(s)
 
        if s.state == 0 then
 
            return 'Чайник';
 
        elseif s.state == 1 then
 
            return 'Чайник с водой';
 
        elseif s.state == 2 then
 
            return 'Чайник с кипятком';
 
        end;
 
    end;
 
    disp2 = 'чайник';
 
    disp3 = 'чайник';
 
    inv = function(s)
 
        if s.state == 0 then
 
            return 'Самый обычный металлический чайник. Сейчас он пуст. ';
 
        elseif s.state == 1 then
 
            return 'Самый обычный металлический чайник. Сейчас он полон холодной воды. ';
 
        elseif s.state == 2 then
 
             return 'Самый обычный металлический чайник. Сейчас он наполнен кипятком. ';
 
        end;
 
    end;
 
}
 

	
 
obj {
 
    has_tea = false;
 
    has_water = false;
 
    nam = 'cup';
 
    disp = function(s)
 
        if s.has_tea then
 
            return 'Чашка с пакетиком'
 
        elseif s.has_water then
 
            return 'Чашка с водой';
 
        else
 
            return 'Пустая чашка';
 
        end;
 
    end;
 
    disp2 = 'чашка';
 
    disp3 = 'чашку';
 
    inv = function(s)
 
        if s.has_tea then
 
            return 'Миниатюрная фарфоровая чашечка. Внутри лежит чайный пакетик. ';
 
        elseif s.has_water then
 
            return 'Миниатюрная фарфоровая чашечка, наполненная горячей водой. ';
 
        else
 
            return 'Миниатюрная фарфоровая чашечка. ';
 
        end;
 
    end;
 
    used = function(s, o)
 
        if o ^ 'kettle' then
 
            if o.state == 2 then
 
                if s.has_water then
 
                    return 'В чашке уже достаточно воды. ';
 
                end;
 
                s.has_water = true;
 
                pr 'Я наливаю воду в чашку. ';
 
            elseif o.state == 1 then
 
                return 'В холодной воде чай не заварится. ';
 
            else
 
                return 'А что я хочу налить из пустого чайника? ';
 
            end;
 
        elseif o ^ 'teabag' then
 
            s.has_tea = true;
 
            remove('teabag', pl);
 
            pr 'Я кладу пакетик в чашку. ';
 
        else
 
            return false
 
        end;
 
        if s.has_tea and s.has_water then
 
            remove('cup', pl);
 
            take('tea');
 
            return 'Чай готов! ';
 
        end;
 
    end;
 
}
 

	
 
obj {
 
    nam = 'teabag';
 
    disp = 'Чайный пакетик';
 
    disp2 = 'чайный пакетик';
 
    disp3 = 'чайный пакетик';
 
    inv = 'Обыкновенный чайный пакетик. ';
 
}
 

	
 
obj {
 
    nam = 'tea';
 
    disp = 'Чашка с чаем';
 
    disp2 = 'чашка с чаем';
 
    disp3 = 'Чашку с чаем';
 
    inv = 'Миниатюрная фарфоровая чашечка, наполненная ароматным напитком. ';
 
}
 

	
 
room {
 
    keys_taken = false;
 
@@ -2238,31 +2341,65 @@ room {
 
    nam = 'tower_level_1_room_2';
 
    disp = 'Башня, кухня';
 
    pic = 'images/tower_level_1_room_2.png';
 
    decor = [[По периметру этой просторной комнаты расположена узкая {#tabletop|столешница} из черного камня, под которой расположились всевозможные {#cabinets1|шкафчики}. Над столешницей находятся навесные {#cabinets2|шкафы}. В углу стоит старинный {#fridge|холодильник}. В углу напротив стоит электрическая {#stove|плита}. В помещении царит такой же тихий и уютный полумрак, что и в большинстве помещений башни. ]];
 
    decor = [[По периметру этой просторной комнаты расположена узкая {#tabletop|столешница} из черного камня, под которой расположились всевозможные {#cabinets1|шкафчики}. Над столешницей находятся навесные {#cabinets2|шкафы}. В углу стоит старинный {#fridge|холодильник}. В углу напротив стоит электрическая {#stove|плита}. Рядом с плитой находится {#kitchen_sink|раковина}. В помещении царит такой же тихий и уютный полумрак, что и в большинстве помещений башни. ]];
 
    way = {
 
        path {'Наверх', 'tower_level_2_room_2'};
 
        path {'level_1_main_room', 'В гостиную', 'tower_level_1'}:disable();
 
    };
 
}: with {
 
    obj {
 
        nam = '#tabletop';
 
        act = 'Столешница сделана из того же материала, что и стены. Прочность этого холодного и гладкого камня не вызывает сомнений.';
 
        nam = '#kitchen_sink';
 
        act = 'Полированная поверхность каменной раковины, врезанной в столешницу блестит в свете электрических ламп. ';
 
        used = function(s, o)
 
            if o ^ 'kettle' then
 
                if o.state == 0 then
 
                    o.state = 1;
 
                    return 'Я наполняю чайник водой. ';
 
                else
 
                    return 'Чайник уже полон. ';
 
                end;
 
            end;
 
        end;
 
    };
 
    obj {
 
        nam = '#cabinets1';
 
        act = 'В шкафах только посуда и различные столовые приборы. ';
 
        nam = '#tabletop';
 
        act = 'Столешница сделана из того же материала, что и стены. Прочность этого холодного и гладкого камня не вызывает сомнений. ';
 
    };
 
    obj {
 
        state = false;
 
        state = 0;
 
        nam = '#cabinets1';
 
        act = function(s)
 
            if _'solarscale_ally'.tea_asked and s.state == 0 then
 
                s.state = 1;
 
                take('teabag');
 
                return 'В одном из шкафов обнаруживается коробочка чая. Я беру один пакетик. ';
 
            end;
 
        
 
            return 'В шкафах только посуда и различные столовые приборы. ';
 
        end;
 
    };
 
    obj {
 
        state = 0;
 
        nam = '#cabinets2';
 
        act = function(s)
 
            if s.state then
 
                return 'В шкафах только посуда и различные столовые приборы. ';
 
            else
 
                s.state = true;
 
                take('password_note');
 
                return 'В одном из шкафчиков я обнаруживаю кем-то оставленную записку. Я забираю ее себе. ';
 
            if s.state < 3 then
 
                if s.state == 0 then
 
                    s.state = 1;
 
                    take('password_note');
 
                    return 'В одном из шкафчиков я обнаруживаю кем-то оставленную записку. Я забираю ее себе. ';
 
                elseif _'solarscale_ally'.tea_asked then
 
                    if s.state == 1 then
 
                        s.state = 2;
 
                        take('kettle');
 
                        return 'В одном из шкафчиков я нахожу чайник. ';
 
                    elseif s.state == 2 then
 
                        s.state = 3;
 
                        take('cup');
 
                        return 'В одном из шкафчиков я нахожу небольшую фарфоровую чашечку. ';
 
                    end;
 
                end;
 
            end;
 
            return 'В шкафах только посуда и различные столовые приборы. ';
 
        end;
 
    };
 
    obj {
 
@@ -2272,6 +2409,22 @@ room {
 
    obj {
 
        nam = '#stove';
 
        act = 'Электрическая плита на четыре конфорки с электрической же духовкой. Со своими электронными элементами управления она выглядит слишком современной для этого места. ';
 
        used = function(s, o)
 
            if o ^ 'kettle' then
 
                if power_on then
 
                    if o.state == 0 then
 
                        pr [[Бессмысленно кипятить пустой чайник. ]];
 
                    elseif o.state == 2 then
 
                        pr [[Вода в чайнике уже горячая. ]];
 
                    else
 
                        o.state = 2;
 
                        pr [[Я ставлю чайник на плиту и через несколько минут вода в нем закипает. ]];
 
                    end;
 
                else
 
                    pr [[Без электричества ничего не получится. ]];
 
                end;
 
            end;
 
        end;
 
    };
 
    obj {
 
        nam = 'silver_fork';
 
@@ -2924,137 +3077,3 @@ room {
 
    end;
 
}
 

	
 
room {
 
    state = 0;
 
    nam = 'ending_left';
 
    nofollow = true;
 
    theme = 'tower';
 
    disp = 'Конец игры';
 
    noinv = true;
 
    onenter = function(s)
 
        s.state = s.state + 1;
 
        if s.state == 1 then
 
            pr 'Я делаю шаг в сторону двери, но что-то останавливает меня. Что, если второго шанса не будет?';
 
            return false;
 
        elseif s.state == 2 then
 
            pr 'Я продолжаю двигаться к выходу, В моей голове возникает изображение двери башни, захлопывающейся за мной. ';
 
            return false;
 
        elseif s.state == 3 then
 
            pr 'Я продолжаю двигаться к выходу из башни, воздух словно сгущается передо мной, не желая выпускать. Темнота вокруг меня становится гуще, как будто башня начинает отторгать меня. ';
 
            return false;
 
        end;
 
    end;
 
    dsc = function(s)
 
        pr [[Я выхожу из башни, и массивная каменная плита опускается за мной, навеки закрывая путь внутрь. ]]
 
        if solarscale_with_me then
 
            pr [[Соларскейл задумчиво смотрит на меня и на башню. Некоторое время мы тщательно изучаем ее со всех сторон, но в конце концов, отчаявшись, отправляемся каждый своей дорогой. ]];
 
        end;
 
        pr [[^Столетие за столетием я возвращался к этому месту, но гладкий черный камень все также оставался неприступен для меня. ]];
 
        if solarscale_with_me then
 
            pr [[Не удалось мне найти и Соларскейл -- сколько ни пытался, я не смог обнаружить никаких следов прекрасной драконессы. ]];
 
        end;
 
    end;
 
}
 

	
 
room {
 
    nam = 'ending_formatted';
 
    disp = 'Конец игры';
 
    theme = 'tower';
 
    nofollow = true;
 
    noinv = true;
 
    dsc = function(s)
 
        if solarscale_with_me then
 
            pr [[Я отошел от компьютера и в этот момент ощутил неуловимое изменение, произошедшее в башне. Мир вокруг нас с Соларскейл начал расплываться и вскоре мы оказались в лесу. Повсюду валялись обломки черного камня, только что составлявшего башню, хотя узнать ее в них было бы непросто. Переглянувшись с драконессой, мы попрощались и отправились каждый своей дорогой.         Столетие за столетием я возвращался к этому месту, но не находил ничего, кроме забытых всеми осколков черного камня. Неизвестной для меня осталась и судьба Соларскейл -- сколько ни пытался, я не смог найти никаких следов прекрасной драконессы. ]];
 
        else
 
            pr [[Я отошел от компьютера и в этот момент ощутил неуловимое изменение, произошедшее в башне. Мир вокруг меня начал расплываться и вскоре мы оказались в лесу. Повсюду валялись обломки черного камня, только что составлявшего башню, хотя узнать ее в них было бы непросто. Вздохнув, я расправил крылья и отправился домой. Столетие за столетием я возвращался к этому месту, но не находил ничего, кроме забытых всеми осколков черного камня. ]];
 
        end;
 
    end;
 
}
 

	
 
room {
 
    nam = 'ending_no_solarscale';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = 'На одной из вершин на краю кратере сидела золотая драконесса. Ее чешуя сверкала в лучах заходящего Солнца, а изумрудно-зеленые глаза смотрели в центр кратера на медленно растворяющуюся в воздухе черную башню. Как только башня полностью исчезла, драконесса расправила тонкие сияющие крылья и поднялась в небеса. ';
 
    way = {
 
        path {'Продолжить', function(s)
 
            if irradiated then
 
                return 'ending_irradiated';
 
            else
 
                return 'ending_true';
 
            end;
 
        end};
 
    };
 
}
 

	
 
room {
 
    nam = 'ending_solarscale_pre';
 
    nofollow = true;
 
    theme = 'tower';
 
    disp = 'Башня, серверная';
 
    noinv = true;
 
    dsc = [[В сознании моем звучит мягкий, спокойный и, кажется, давно знакомый голос: "Добро пожаловать домой". Стены начинают растворяться, открывая вид на бескрайние просторы вселенной и в этот момент я чувствую легкое прикосновение, возвращающее меня к реальности. ]];
 
    way = {
 
        path {'Продолжить', 'ending_solarscale_dlg'};
 
    };
 
}
 

	
 
dlg {
 
    nam = 'ending_solarscale_dlg';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Соларскейл';
 
    enter = [[Соларскейл произносит слова прощания: "Мне пора уходить. Счастливого путешествия! Надеюсь, мы еще увидимся". ]];
 
    phr = {
 
        {"[Схватить Соларскейл за руку]", function(s)
 
            walk('ending_solarscale');
 
            return [[Я слышу в голове голос: "Оставь ее. У нее свой путь". От удивления я разжимаю руку. Этого оказывается достаточно. ]];
 
        end};
 
        {"Вы не хотите остаться?", 'Соларскейл печально опускает голову: "Меня ждут дома. Мне нужно лететь". '};
 
        {"Что же, не буду вас задерживать. До новых встреч. ", function(s)
 
            walk('ending_solarscale')
 
            return false;
 
        end};
 
    };
 
}
 

	
 
room {
 
    nam = 'ending_solarscale';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = [[Я не успеваю моргнуть и глазом, как Соларскейл покидает башню. Кажется, я вижу собственными глазами, как драконесса вылетает через проем на первом этаже. Тяжелая каменная плита опускается за ней. Я вижу, как она оборачивается, глядя на башню. Ее чешуя сияет в лучах заходящего Солнца, а изумрудно-зеленые глаза смотрят на меня. Я ощущаю то, что она должна сейчас видеть: медленно растворяющуюся в воздухе черную башню. Как только башня полностью исчезает, драконесса продолжает свой путь. ]];
 
    way = {
 
        path {'Продолжить', function(s)
 
            if irradiated then
 
                return 'ending_irradiated';
 
            else
 
                return 'ending_true';
 
            end;
 
        end};
 
    };
 
}
 

	
 
room {
 
    nam = 'ending_irradiated';
 
    nofollow = true;
 
    theme = 'tower';
 
    noinv = true;
 
    disp = 'Конец игры';
 
    dsc = [[Перед моим взором раскинулась бескрайняя вселенная. Все дороги и все миры открыты передо мной. По своему желанию я могу оказаться в любом месте в любое время. Я мысленно отдаю команду отправляться в путь. ^Сперва меня удивляет, насколько легко и чутко башня реагирует на мое состояние, меняя размеры, расположение и даже количество комнат, но вскоре я привыкаю к тому, что за ближайшей дверью всегда находится именно то, что я ищу. Тысячелетие за тысячелетием я путешествую по мирам, собирая их знания, помогая нуждающимся и сохраняя самое ценное их наследие. Несмотря на все это, странное ощущение не дает мне покоя -- словно дни мои медленно истекают и путешествие мое не будет вечным. ]];
 
}
 

	
 
room {
 
    nam = 'ending_true';
 
    nofollow = true;
 
    disp = 'Конец игры';
 
    noinv = true;
 
    theme = 'tower';
 
    dsc = [[
 
        Перед моим взором раскинулась бескрайняя вселенная. Все дороги и все миры открыты передо мной. По своему желанию я могу оказаться в любом месте в любое время. Я поднимаюсь на вершину башни и мысленно отдаю команду отправляться в путь. ^Сперва меня удивляет, насколько легко и чутко башня реагирует на мое состояние, меняя размеры, расположение и даже количество комнат, но вскоре я привыкаю к тому, что за ближайшей дверью всегда находится именно то, что я ищу. Тысячелетие за тысячелетием я путешествую по мирам, собирая их знания, помогая нуждающимся и сохраняя самое ценное их наследие. Вскоре время и пространство перестают иметь для меня всякое значение.
 
    ]];
 
}
0 comments (0 inline, 0 general) First comment
You need to be logged in to comment. Login now