Changeset - 8cbb9b0e674e
[Not reviewed]
default
0 2 0
silverwing - 7 years ago 2017-06-24 13:53:32

iyh rewrite progress
2 files changed with 66 insertions and 69 deletions:
0 comments (0 inline, 0 general)
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -819,9 +819,20 @@ iyh_left_room_3 = room {
 
};
 
 
iyh_old_navjiarr_body = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "iyh_old_navjiarr_body";
 
    dsc = [[В одной из ниш справа от входа лежит старый {навьяр}. Серая чешуя давно поблекла, глаза закрыты. Руки сложены на груди. ]];
 
    act = [[Навьяр никак не реагирует на вас. Он мертв. ]];
 
    act = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            put(iyh_item_amulet, pl);
 
            return [[Навьяр никак не реагирует на вас. Он мертв. В руках его вы замечаете небольшой металлический амулет, который вы забираете себе. ]];
 
        else
 
            return [[Навьяр никак не реагирует на вас. Он мертв. ]];
 
        end;
 
    end;
 
};
 
 
iyh_item_record = obj {
 
@@ -839,6 +850,12 @@ iyh_item_record = obj {
 
    end;
 
};
 
 
iyh_item_amulet = obj {
 
    nam = "iyh_item_amulet";
 
    disp = "Амулет";
 
    inv = [[Небольшой металлический диск на цепочке. На диске выгравирован причудливый орнамент, а в центре изображен скат. ]];
 
};
 
 
iyh_room_wall = obj {
 
    nam = "iyh_room_wall";
 
    dsc = [[{Стена} слева от входа не содержит ниш, в отличие от стен в других комнатах. ]];
 
@@ -892,7 +909,7 @@ iyh_temple_hidden_room_1 = room {
 
    dsc = [[Небольшая комната, вытесанная в скале. Надежно спрятанная от посторонних глаз, она хранила свои тайны многие столетия, пока вы не открыли ее. Сейчас одна из стен ее раскрылась, открывая проход внутрь. ]];
 
    way = {
 
        kh_vroom("К задним комнатам", "iyh_left_room_3");
 
        kh_vroom("К гланому залу", "iyh_temple_left_hall"):disable();
 
        kh_vroom("К главному залу", "iyh_temple_left_hall"):disable();
 
    };
 
    obj = {
 
        "iyh_temple_hidden_wall_1",
 
@@ -939,7 +956,8 @@ iyh_temple_hidden_room_2 = room {
 
        kh_vroom("К гланому залу", "iyh_temple_right_hall")
 
    };
 
    obj = {
 
        
 
        "iyh_temple_lever_2",
 
        "iyh_temple_lever_3"
 
    };
 
};
 
 
@@ -991,36 +1009,43 @@ iyh_temple_lever_3 = obj {
 
    end;
 
};
 
 
iyh_temple_main_hall_end = room {
 
	nam = "Храм";
 
	dsc = [[Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь в дальнем конце зала. Массивная дверь ведет в задние помещения храма. ]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and atl_iyh_shockfish_away and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			walk("game_over_shockfish_2");
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("В центр зала", "iyh_temple_main_hall_middle");
 
		kh_vroom("В заднюю дверь", "iyh_temple_rear_corridor_end");
 
	};
 
iyh_shockfish = obj {
 
    nam = "iyh_shockfish";
 
    dsc = [[В центре зала завис огромный {скат}. Громадная рыба спокойно наблюдает за вами и, кажется, не собирается нападать. ]];
 
    noshoot = [[Врядли вы серьезно повредите гиганта своим выстрелом. ]];
 
    act = [[Скат наблюдает за вами, однако не стремится нападать. Возможно, дело в вашем амулете?]];
 
    used = function(s, o)
 
        if (o == iyh_item_amulet) then
 
            remove(iyh_item_amulet, pl);
 
            remove(iyh_shockfish, here());
 
            atl_iyh_shockfish_left = true;
 
            return [[Вы бросаете амулет скату и гигантская рыба легко подхватывает его. Взмахнув хвостом, он выплывает из храма и устремляется куда-то вдаль. ]];
 
        end;
 
    end;
 
};
 
 
iyh_back_door_main = obj {
 
	nam = "iyh_back_door_main";
 
	dsc = function(s)
 
		if (iyh_back_door.open) then
 
			return [[
 
				В конце зала находится открытая {дверь}. 
 
			]];
 
		else
 
			return [[
 
				В конце зала находится закрытая {дверь}. 
 
			]];
 
		end;
 
	end;
 
	act = [[
 
		Не удается открыть дверь. Она заперта с другой стороны. 
 
	]];
 
iyh_temple_main_hall_enter = function(s)
 
    remove(iyh_shockfish, here());
 
    print("forfag");
 
    if (atl_iyh_shockfish_away == 0 and atl_iyh_shockfish_away and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
        if have(iyh_item_amulet) then
 
            print("forfag1");
 
            put(iyh_shockfish, here());
 
        else
 
            print("forfag2");
 
            walk("game_over_shockfish_2");
 
        end;
 
    end;
 
end;
 
 
iyh_temple_main_hall_end = room {
 
    nam = "Храм";
 
    dsc = [[Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь в дальнем конце зала. Массивная дверь ведет в задние помещения храма. ]];
 
    enter = iyh_temple_main_hall_enter;
 
    way = {
 
        kh_vroom("В центр зала", "iyh_temple_main_hall_middle");
 
        kh_vroom("В заднюю дверь", "iyh_temple_rear_corridor_end");
 
    };
 
};
 
 
iyh_temple_main_hall_middle = room {
 
@@ -1031,11 +1056,7 @@ iyh_temple_main_hall_middle = room {
 
	obj = {
 
		"iyh_pedestal"
 
	};
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			walk("game_over_shockfish_2");
 
		end;
 
	end;
 
	enter = iyh_temple_main_hall_enter;
 
	way = {
 
		kh_vroom("К выходу", "iyh_temple_main_hall_entry");
 
		kh_vroom("В конец зала", "iyh_temple_main_hall_end");
 
@@ -1049,11 +1070,7 @@ iyh_temple_main_hall_entry = room {
 
	dsc = [[
 
		Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь у входа в зал. 
 
	]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			walk("game_over_shockfish_2");
 
		end;
 
	end;
 
	enter = iyh_temple_main_hall_enter;
 
	entered = function(s)
 
		if (atl_iyh_entrance_destroyed) then
 
			path("Выйти"):disable();
 
@@ -1091,7 +1108,7 @@ iyh_temple_right_hall = room {
 
	]];
 
    checkCoder = function(s, phrase)
 
        if (phrase == "aed'rr") then
 
            path('В скрытое помещение'):enable();
 
            path('В скрытое помещение', s):enable();
 
            return [[Стоит последней лампочке погаснуть, как одна из плит в стене комнаты сдвигается, открывая проход в скрытое помещение. ]];
 
        else
 
            return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. ]];
 
@@ -1150,7 +1167,7 @@ iyh_temple_under_corridor_2 = darkroom {
 
    checkCoder = function(s, phrase)
 
        if (phrase == "i'yhe'he'vji'a'rr" or phrase == "he'vji'a'rr") then
 
            iyh_temple_under_plaque:disable();
 
            path("В дверь"):enable();
 
            path("В дверь", s):enable();
 
            return [[Лампочки кодировщика зажигаются в заданной последовательности bи каменная дверь медленно поднимается, открывая проход дальше. ]];
 
        else
 
            return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. ]];
 
@@ -1256,39 +1273,18 @@ iyh_pedestal = obj {
 
	nam = "iyh_pedestal";
 
	dsc = function(s)
 
		if (s.taken) then
 
			return [[
 
				В центре комнаты расположен пустой {пьедестал}.
 
			]];
 
			return [[В центре комнаты расположен пустой {пьедестал}. ]];
 
		else
 
			return [[
 
				В центре комнаты расположен {пьедестал}, на котором покоится какой-то блестящий предмет.
 
			]];
 
			return [[В центре комнаты расположен {пьедестал}, на котором покоится самая обычная, на первый взгляд, подзорная труба. ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
			return [[Пьедестал пуст. ]];
 
		else
 
			s.taken = true;
 
			atl_iyh_state = 8;
 
			
 
			if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				return [[
 
					Вы подходите к кубу, чтобы взять его, но Леарр вас опережает - она прячет куб к себе в сумку. По ее плавникам бегут цветные полосы: [Это наша-реликвия].
 
				]];
 
			elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
				return [[
 
					Вы подходите к кубу, чтобы взять его, но Аикерьярр вас опережает - он прячет куб к себе в сумку. По его плавникам бегут цветные полосы: [Не трогай! Это наша-реликвия].
 
				]];
 
			else
 
				take(item_navjiarr_cube);
 
				return [[
 
					Вы поднимаете небольшой светящийся кубик. 
 
				]];
 
			end;
 
			
 
            take(iyh_looking_glass);
 
			return [[Вы поднимаете покоящуюся на пьедестале подзорную трубу. ]];
 
		end;
 
	end;
 
};
main.lua
Show inline comments
 
@@ -181,6 +181,7 @@ function init()
 
    ---game init
 
    pl.where = intro;
 
    ---debug	
 
    language_known = true;
 
    pl.where = "iyh_rear_entrance_foot";
 
    move(submarine_leviathan, "iyh_rear_entrance_foot");
 
    put(item_suit, pl);
0 comments (0 inline, 0 general)