Changeset - ff6055d419a3
[Not reviewed]
default
0 2 0
Silverwing - 8 years ago 2016-06-28 13:33:24

iyh2 fight improve
2 files changed with 84 insertions and 35 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -10,6 +10,9 @@ global {
 
	
 
	atl_iyh_state = 0;
 
	atl_iyh_ryveerr_spoken = false;
 
	atl_iyh_shockfish_dead = false;
 
	atl_iyh_shockfish_left = false;
 
	atl_iyh_shockfish_away = 0;
 
	
 
	atl_lfc_state = 0;
 
	atl_lfc_panic = 0;
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -59,6 +59,7 @@ iyh_far_from_entrance = dlg {
 
		visited = false;
 
	};
 
	nam = "Заброшенный храм";
 
	hideinv = true;
 
	entered = function(s)
 
		pr [[
 
			Вы прибываете на место. Через иллюминаторы вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. 
 
@@ -84,6 +85,13 @@ iyh_far_from_entrance = dlg {
 
		{tag="advance", always=true, "[Подойти ближе]", [[
 
			Послушные вашей воле, двигатели Левиафана приводят субмарину в движение и вы плавно приближаетесь ко входу в храм. 
 
		]], code [[ walk('iyh_near_entrance'); ]]};
 
		{tag="wait", "[Ждать]", [[
 
			Вы решаете подождать до наступления ночи и это правдывает себя. Как только последние лучи солнца перестают пробиваться сквозь толщу воды, скат выбирается из своего логова и отправляется на охоту.
 
		]], code [[ 
 
			lifeon(iyh_far_from_entrance);
 
			atl_iyh_shockfish_away = 50;
 
			walk('iyh_near_entrance'); 
 
		]]};
 
		{tag="light_temple", always=true, "[Осветить вход в храм]", [[
 
			Мощный луч света падает на вход в храм. Вы видите внутри какое-то движение и изнутри выплывает огромный скат. 
 
		]], code [[ iyh_fight.distance = 1000; walk('iyh_fight'); ]]};
 
@@ -96,7 +104,14 @@ iyh_far_from_entrance = dlg {
 
		{tag="ravine", false, always=true, "[Подойти ко входу в ущелье]", [[
 
			Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье.
 
		]], code [[ walk('iyh_ravine_entry'); ]]};
 
	};	
 
	};
 
	life = function(s)
 
		if (atl_iyh_shockfish_away == 0) then
 
			-- TODO если игрок в храме - ему хана
 
		elseif (atl_iyh_shockfish_away < 5) then
 
			pr "Приближается рассвет. Скат скоро вернется. ";
 
		end;
 
	end;
 
};
 
 
iyh_fight = room {
 
@@ -127,44 +142,73 @@ iyh_fight = room {
 
			iyh_fight_torpedo:disable();
 
			pr "у вас не осталось заряженных торпед. ";
 
		end;
 
		if (submarine_leviathan.electric_integrity < 30) then
 
			pr "Свет в рубке периодически моргает, чувствуется запах горелой проводки, часть проводов искрит. ";
 
		elseif (submarine_leviathan.electric_integrity < 70) then	
 
			pr "Свет в рубке периодически моргает. ";
 
		end;
 
		if (submarine_leviathan.hull_integrity < 30) then
 
			pr "Обшивка Левиафана сильно повреждена. ";
 
		elseif (submarine_leviathan.hull_integrity < 70) then	
 
			pr "Обшивка Левиафана повреждена. ";
 
		end;
 
	end;
 
	maketurn = function(s)
 
		if (s.distance <= 75) then
 
			if (s.distance > 0) then
 
				s.distance = 0;
 
		if (s.distance > 1000) then
 
			if (s.shockfish_health < 20) then
 
				pr "Скат уплывает и вы остаетесь одни. ";
 
				atl_iyh_shockfish_left = true;
 
				walk("iyh_far_from_entrance");
 
			else
 
				pr "Вы удаляетесь достаточно далеко и скат возвращается к себе в жилище. ";
 
				walk("iyh_far_from_entrance");
 
			end;
 
		end;
 
		if (s.shockfish_health < 20) then
 
			if (s.distance < 0) then
 
				s.distance = s.distance - 75;
 
			else
 
				s.distance = s.distance + 75;
 
			end;
 
			pr "";
 
		else
 
			if (s.distance <= 75) then
 
				if (s.distance > 0) then
 
					s.distance = 0;
 
					pr "Скат приближается к вам. ";
 
				end;
 
				
 
				if (s.timing <= 0) then
 
					s.timing = 5;
 
					pr "Скат атакует Левиафан электрическим разрядом. ";
 
					submarine_leviathan.electric_integrity = submarine_leviathan.electric_integrity - 10;
 
					if (submarine_leviathan.electric_integrity > 50) then
 
						pr "Атака не оказывает видимого эффекта на субмарину. ";
 
					elseif (submarine_leviathan.electric_integrity > 0) then
 
						pr "Свет моргает, проводка искрит. ";
 
						if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Райта: \"Мы так долго не протянем\".";
 
						elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Рэдклиффа: \"Мы так долго не протянем\".";
 
						end;
 
					else
 
						walk('game_over_powerless');
 
					end;
 
				else
 
					s.timing = s.timing - 1;
 
					pr "Скат пытается пробить обшивку Левиафана хвостовым шипом";
 
					submarine_leviathan.hull_integrity = submarine_leviathan.hull_integrity - 5;
 
					if (submarine_leviathan.hull_integrity > 50) then
 
						pr ", но не наосит ощитимого ущерба. ";
 
					elseif (submarine_leviathan.hull_integrity > 0) then
 
						pr ". Сильный удар повреждает внешнюю обшивку, в резервуары проникает вода. ";
 
					else
 
						walk('game_over_sunk');
 
					end;
 
				end;
 
			else
 
				pr "Скат приближается к вам. ";
 
			end;
 
			
 
			if (s.timing <= 0) then
 
				s.timing = 5;
 
				pr "Скат атакует Левиафан электрическим разрядом. ";
 
				submarine_leviathan.electric_integrity = submarine_leviathan.electric_integrity - 10;
 
				if (submarine_leviathan.electric_integrity > 50) then
 
					pr "Атака не оказывает видимого эффекта на субмарину. ";
 
				elseif (submarine_leviathan.electric_integrity > 0) then
 
					pr "Свет моргает, проводка искрит. ";
 
					if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
						pr "По телефону вы слышите встревоженный голос Райта: \"Мы так долго не протянем\".";
 
					elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
						pr "По телефону вы слышите встревоженный голос Рэдклиффа: \"Мы так долго не протянем\".";
 
					end;
 
				else
 
					walk('game_over_powerless');
 
				end;
 
			else
 
				s.timing = s.timing - 1;
 
				pr "Скат пытается пробить обшивку Левиафана хвостовым шипом";
 
				submarine_leviathan.hull_integrity = submarine_leviathan.hull_integrity - 5;
 
				if (submarine_leviathan.hull_integrity > 50) then
 
					pr ", но не наосит ощитимого ущерба. ";
 
				elseif (submarine_leviathan.hull_integrity > 0) then
 
					pr ". Сильный удар повреждает внешнюю обшивку, в резервуары проникает вода. ";
 
				else
 
					walk('game_over_sunk');
 
				end;
 
			end;
 
		else
 
			pr "Скат приближается к вам. ";
 
		end;
 
	end;
 
	obj = {
 
@@ -200,7 +244,9 @@ iyh_fight_torpedo = obj {
 
				pr "Вы стреляете торпедой в ската. Торпеда достигает цели. Ската отбрасывает назад на ".. tostring(meters) .. " метров. "
 
			else
 
				iyh_fight.shockfish_health = 0;
 
				atl_iyh_shockfish_dead = true;
 
				pr "Вы стреляете торпедой в ската. Торпеда взрывается достигнув цели и разрывает ската. Вода краснеет от крови, а вы теперь можете безопасно приблизиться к храму. ";
 
				
 
			end;
 
			return iyh_fight.maketurn();
 
		end;
0 comments (0 inline, 0 general)