local use_rent_1_loc=false;
local X_Ray = false;
local FA = 0.0;
local TA = 1.0;
local stoneX, stoneY;
local speed = 1;
AddParticleToObject(obj.lever.id,"Highlight");    --частица на рычаг
MoveEmiter("Highlight", 145,450);

AddParticleToObject(23,"kamni");  --частица на камни---
MoveEmiter("kamni", 290,370);

ActivateObject(obj.lever.id, true);
set_pixel_check(obj.lever.id, false);




--мини игра пройдена, нужно раставить камни как после завершения мини игры---
if flags.mini1 then
	SetObjectPosition( 21, 490, 185 );
	SetObjectPosition( 22, 466, 235 );
	SetObjectPosition( 23, 450, 280 );
	SetObjectPosition( 24, 440, 325 );
	SetObjectPosition( 25, 415, 375 );
	set_visible_object( 14, false );
	set_visible_object( 1008, false );
	set_visible_object( 1009, false );
	--StartEmiter("Highlight");
	Set_Cursor(obj.lever.id,4);
	-- StopEmiter("kamni");
end;

--все сдели а в дверь не зашли----
if flags.finish then
	set_visible_object( obj.lever.id, false );
	set_visible_object( 31, true );
	SetObjectPosition(30, 500, 200 );
	Set_Cursor(0029,1);
	StartEmiter("Highlight");
	
end;


--все сделали а пнв не взяли ---------
if not flags.takenvg and flags.finish then
set_visible_object(obj.loc_nvg.id,true)
setcolor(obj.loc_nvg.id,0.7,0.7,0.7,1)
end


--прошли мини , нужно сообщить об этом после загрузки
if flags.mini1 then
CreatePlashechka(9999,"61","goodgirl")
end

--прошли мини но не нажали на рычаг и вышли
if flags.richag then
CreatePlashechka(9999,"49","goodgirl")
end



WaitRender();


--функция создания мини игры----
function mini_create()
TakeGlove();
StartTimer(1111,1.5);
playeffect("025")
ShowMenu( false );
set_visible_object( obj.mini_border.id, true );
init_mini(1);
StopEmiter("Highlight");
StopEmiter("kamni");
create_mini(26,5,25,10,173,229,395,559,678,248,900,578,417,197,640,427,85);
set_visible_object(1008,true);
set_visible_object(1009,true);
set_visible_object( obj.mini_skip.id, true );
set_visible_object( obj.mini_menu.id, true );
set_visible_object( obj.mini_help.id, true );
set_visible_object( obj.mini_skip_loading.id, true );
StartAnimation( obj.mini_skip_loading.id, 0, 3 );
end;



function gameinput(sender,obj_id,attachedID)


--пока мини не начата, не обрабатываем кнопки мини интерфейса---

	if SLevel==1.0 then return; end;
	
--обработка плашки----
	 if (sender == 1  or sender==5) and not isTimes  and imagetex~=-1 then			
			set_visible_object(obj[imagetex].id,false)
			set_visible_object(obj.plashechka.id,false)
			del_object_from_game(5654547)		
			gameinput(26,imageid)			
				
	end
	

if sender == 1 then
	
	--обработчик мини интерфейс кнопок---
	-- if  flags.start_mini then
	-- c("help v mini\n")
	-- MiniInterfaceHandler( sender, obj_id );	
	-- c("help v mini 2\n")
	-- end
	
	--тыкнули на рентген или пнв
	if obj_id ==obj.loc_rent.id or obj_id ==obj.loc_nvg.id then				
		CollapseObj(obj_id);	
		HideGlove()
	return;end;
	
	--пробуем зайти в проход----------	
	if obj_id == 0029 and flags.finish  and not canusegadjets  then	
	if flags.items < 15 then  --не все предметы собраны
		if not flags.istutor then
				CreatePlashechka(9999,"58","goodgirl")
				else
				set_text(5654547,"58")
				end
	
	if not flags.takenvg then
	CreatePlashechka(9999,"216","goodgirl")
	return;end
	else
				
			flags.finish2 = true;
			ShowMenu(false);
			-- ClosePlushes();			
		 -- LevelEnd(2)
		 del_object_from_game(obj.dragonfly.id)
			set_visible_object(5556,false);
			leafobj={2234}
			GetRenderTarget(2234,"rendertar");	
			minigg=true;
			levelnext=2;
			
		end;
	end
	--тыкнул когда включен рентген--------		
		if obj_id == obj.x_ray_yellow.id or obj_id == obj.x_ray_green.id then
			CreatePlashechka(9999,"51","goodgirl")
		return; end;
	--тыкаем на мусор---
		if obj_id == obj.ball1.id or obj_id == obj.ball2.id or obj_id == obj.ball3.id  or
			obj_id == obj.pencil.id or obj_id == obj.disc.id or obj_id == obj.glasses.id or obj_id == obj.flower.id or obj_id == obj.card.id or 
			  obj_id == obj.apple.id or obj_id == obj.statue.id or obj_id == obj.shue.id or obj_id == obj.bell.id or obj_id == obj.hanger.id then
			 
			
			
			if flags.start_mini then return;end;
				flags.items = flags.items + 1;
				CollapseObj(obj_id);
				
				if flags.items>=15 then				
					flags.items_collected =true
				end
		return; end;
	
	--переставляем камни во время мини игры----
		if obj_id > 20 and obj_id < 26 then
			if glove_on and flags.rentgen and not flags.start_mini then return;end
			if flags.rentgen and not flags.start_mini then	

			if not flags.mini1 then
			-- StartTimer(666,1);
			ClosePlushes()
			flags.start_mini=true;	
			flags.start_mini1=true;	
			
			end
			end;
			
			if flags.Hanoi  and flags.start_mini then
				if glove_on then
					add_to_mouse(obj_id);
					--speciale_action(4,1010);
					mousepresed=true;
					objectid=obj_id;
				--else
					--CreateWindow(CWX,CWY,"50");
				return; end;
			return; end;
		return; end;

			
	--нажали на рычаг----		
		if obj_id == obj.lever.id   then -- use level
			
			if not flags.rentgen then
			
			return;end;
			
			if not flags.mini1 then
			CreatePlashechka(9999,"60","goodgirl")
			return;end;
			if flags.mini1 and not flags.Hanoi then					
				-- playeffect("033")
				StopEmiter("Highlight");
				speciale_action(2,obj.lever.id);
				speciale_action(2,31);
				StartTravel(30,1,nil,nil, { "InstantiationOfLine",2, 216,319,400,319,1,false});
				playeffect("034")
				Set_Cursor(0029,1);				
				setcolor(obj.loc_nvg.id,0.7,0.7,0.7,1)
				speciale_action(2,obj.loc_nvg.id,true)	
				flags.richag=true;
			 end;
			
		 end;
	 end;

	--мини игра, обработка камней--
	if sender == 6 then	
		if mousepresed then
			RemoveFromMouse(objectid);
			check_mini_game_Hanoi(objectid);
			mousepresed=false;
			objectid=0;
			playeffect("032")
			
			local id = 21;
			local f = true;
			while( id < 26) do
				local xx,yy;
				xx,yy = GetObjectPosition(id);				
				if 163 <= xx and xx <= 395 and 229 <= yy and yy <= 559 then
					f = false;
					break;
				end;
				id = id + 1;
			end;
			if f then
				finish_mini_game(true);
			end;			
		 end;	
	 end;
if  flags.start_mini then
c("flags.start_mini\n")
MiniInterfaceHandler( sender, obj_id );	
end
if sender ==41 then		
		RotateHandler(obj_id);	
		if obj_id ==obj.dragonfly.id then	
			StartAnimation( 5555555555,1,5 );
		return;end;
	
	--открылась дверь, виднеется ПНВ---
		if obj_id ==30 then
					finish_mini_game(true);
					Set_Cursor(30,1);
					flags.finish = true;
					-- CreatePlashechka(9999,"49","goodgirl",true)		
					set_text(5654547,"49")
					CreatePlashechka(9999,"49","goodgirl")
					flags.istutor=true;
		return;end;	
	return;end
	
	
	--использовали рентген------
if sender ==100001 then	
			speciale_action(2,obj.x_ray_yellow.id,true);  
			BlockCursor(true)
            xray=true;            
            flags.rentgen=true;  			
			flags.seen=true;
            flags.start_tutor = false;			
	
end	
	
	
	if sender == 2 then
		RemoveFromMouse(object);
		MessageProc(sender,obj_id);
	return;end;

	
	if sender == 33 then
	
		if  flags.Hanoi and not flags.start_mini then
			ShowMenu(true);
			SwitchToSheet("re");	
		return; end
		
		
		if  flags.Hanoi and not flags.mini1  then
			ShowMenu(false);		
		return; end
			
		if not flags.finish then
			flags.finish = false;
			ShowMenu(true);
			SwitchToSheet("re");
		return end
	end;
	
	
	
if sender ==15 then

--исчезло изображение рентгена---
	if obj_id ==obj.x_ray_yellow.id then
		xray=false;
			flags.use_rent_1_loc=false
		StartTimer(1020,0.1);
		BlockCursor(true);
		StartEmiter("kamni");
		Set_Cursor(obj.lever.id,4);
		StartEmiter("Highlight");
		StartTimer(111,3);
	return;end;
end;
 
 if sender==16 then
 
	--появилось изображение рентгена---
	if obj_id ==obj.x_ray_yellow.id then
		set_text(5654547,"214")
		BlockCursor(true)
	
		StartTimer(6556553,1,"tutor10")
			function tutor10()
			set_visible_object(5560,true)
			speciale_action(4,5560)
			StartAnimation(5560)	
			playeffect("018")			
			BlockCursor(false)
			end
		
		
	end
 return;end

	
if sender == 36 then	
	
	if obj_id==111 then
		set_visible_object(obj.plashechka.id,false)
		set_visible_object(obj.goodgirl.id,false)
		del_object_from_game(5654547)	
		SwitchToSheet("re")
	
	end	
	
	if obj_id ==1111 then  --подсказка в мини игре	
	CreateWindow(CWX,CWY,"666",2452,nil,100,230);	
	return;end;

		--таймер о том что можно воздействовать на камни чтоб запустить мини игру----
        if obj_id ==1020 then
		BlockCursor(false)
		if  not flags.comicsend1 then					
			set_text(5654547,"103")
			Set_Cursor(21,2);
			Set_Cursor(22,2);
			Set_Cursor(23,2);
			Set_Cursor(24,2);
			Set_Cursor(25,2);
		return;end;
		return;end;	
	
	
		
return;end;


	if sender == 14 then
		if flags.Hanoi and flags.items == 15 then
			if obj_id == obj.loc_glove.id then
				if glove_on then
					HideGlove();
				else
					TakeGlove();
					-- CreateWindow(CWX,CWY,"666",2452,nil,100,230);
				end;
			else
				CreatePlashechka(9999,"53","goodgirl")
			return; end;
		return; end;
	return; end;
	


	
if sender==777 then
	if flags.comics then
		StartTimer(43342,0.5,"conv1")
		function conv1()
			CreatePlashechka(9999,"48","goodgirl")
		end
		
		
		flags.comics=false;
	end
--прошли мини , растемняем и говорим что можно дернуть за рычаг--
	if flags.mini_finish then
		OpenPlushes()
		flags.mini_finish=false
		CreatePlashechka(9999,"61","goodgirl")
	end
	
	if top_plush_id then		
		ShowMenu(true)
	end	
	
--запустили мини, растемняем----
	if flags.start_mini1 then
	flags.start_mini1=false;
	
	OpenPlushes()	
	mini_create();
	set_visible_object( obj.mini_border.id, true );
	set_visible_object( obj.mini_menu2.id, true );
	set_visible_object( obj.mini_skip2.id, true );
	set_visible_object( obj.mini_help2.id, true );
	set_visible_object( obj.mini_skip_loading.id, true );
	return; end
	
--сохранились в мини и вышли, теперь загружаем----
	if flags.Hanoi and flags.rentgen and flags.start_mini then	
	mini_create();
	SetCustomCursor(obj.glove.id);	
	set_visible_object( obj.mini_border.id, true );
	set_visible_object( obj.mini_menu2.id, true );
	set_visible_object( obj.mini_skip2.id, true );
	set_visible_object( obj.mini_help2.id, true );
	set_visible_object( obj.mini_skip_loading.id, true );
	flags.items_collected = true;	
	ShowMenu(false)
return;end;
	end
	
	
	
	
	if sender == 100 then	
	
		if flags.first_time_load then
		
		flags.first_time_load=false
			set_visible_object(obj.intro.id,true);
			speciale_action(4,obj.intro.id);			
		return; end;
				
	return; end;

	if sender==26 then
	
		if obj_id==11 then 	
			set_visible_object(5560,true)
			speciale_action(4,5560)
			StartAnimation(5560)		
			playeffect("018")
		return;end
	
	
	RemoveWindow(8,2.8,"DestroyMyWindow") --закрываем окно хелпа в мини
	
	
	
	if obj_id ==25 then
	StartAnimation( 5555555555,2,5 );	
	return;end;
	
	
	--обработка сообщения что мы открыли дверь---
	if obj_id ==50 then
	CreatePlashechka(12,"217","goodgirl")
	flags.prepareforarrow=true;
	speciale_action(2,obj.arrow11.id);
	StartAnimation(obj.arrow11.id)	
	playeffect("018")
	return;end;
	
	return;end
	
	--конец мини игры, финиш мини гейм-----
	if sender == 10 then
	
		set_visible_object( obj.mini_border.id, false );
		set_visible_object( obj.mini_menu2.id, false );
		set_visible_object( obj.mini_skip2.id, false );
		set_visible_object( obj.mini_help2.id, false );
		set_visible_object( obj.mini_skip_loading.id, false );	
		rentgen_is_usable=false;
		flags.start_mini=false;
		set_visible_object( obj.mini_border.id, false );
		ShowMenu( true );
		SwitchToSheet("re");	
		SetAlfaSheet( sheet_switch_time );		
		set_visible_object( obj.mini_skip.id, false );
		set_visible_object( obj.mini_help.id, false );
		set_visible_object( obj.mini_menu.id, false );	
		set_visible_object( obj.mini_skip1.id, false );
		set_visible_object( obj.mini_help1.id, false );
		set_visible_object( obj.mini_menu1.id, false );			
		ClosePlushes()
		StartEmiter("Highlight");
		flags.mini1 = true;
		flags.Hanoi = false;
		HideGlove();
		Set_Cursor(21,3);
		Set_Cursor(22,3);
		Set_Cursor(23,3);
		Set_Cursor(24,3);
		Set_Cursor(25,3);
		flags.mini_finish=true
		Set_Cursor(obj.lever.id,4);		
		set_visible_object( 1008, false );
		set_visible_object( 1009, false );
		set_visible_object( 14, false );
		SetObjectPosition( 21, 480, 160 );
		SetObjectPosition( 22, 460, 210 );
		SetObjectPosition( 23, 450, 260 );
		SetObjectPosition( 24, 440, 310 );
		SetObjectPosition( 25, 415, 360 );		
	return; end;

		
	if sender == 12 then
	
	
	--сколапсили рентген----
	if obj_id == obj.loc_rent.id then 
		playeffect("023")		
		rentgen_is_usable = true;		
		flags.rentgen_taken = true;			
		SetCurrentRM("menu");
		AddButtonToBook(100001,"8","rentgen_blue",nil,nil,nil,902,178,30,30,true,true,3);
		SetCurrentRM("main");
		PushButton(100001,false)		
		flags.items = flags.items + 1;
		setcolor( obj.loc_rent.id, 0, 0, 0, 0.5, 1 );
		obj.loc_rent.is_collapsed = true;		
		flags.takerent=true;		
		CreatePlashechka(9999,"211","goodgirl",true)
		BlockCursor(true)
		StartTimer(663443553,0.4,"tutor9")
		flags.use_rent_1_loc=true;		
		function tutor9()
			BlockCursor(false)
			set_visible_object(5556,true);
			StartAnimation(5556);			
			playeffect("018")
		end
		if flags.items>=15 then				
					flags.items_collected =true
	    end
	return;end
	--сколапсили очки ночного видения----
		if obj_id == obj.loc_nvg.id then 			
			playeffect("023")
			flags.items = flags.items + 1;
			flags.nvg_taken = true;		
			SetCurrentRM("menu");
			setcolor( obj.loc_nvg.id, 0, 0, 0, 0.5, 1 );
			AddButtonToBook(100002,"5","nvg_blue",nil,nil,nil,963,143,30,30,true,true,1);
			SetCurrentRM("main");
			PushButton(100002,false)
			flags.nvg_block=true;
			flags.takenvg=true;			
			-- CreateWindow(CWX,CWY,"215",4,"window",100,230,"NV",460,190);	
			declineGadjet=false;	
			flags.istutor=false;
			CreatePlashechka(9999,"215","goodgirl")
			StartTimer(64634,3,"endofnvg")
			if flags.items>=15 then				
					flags.items_collected =true
				end
			function endofnvg()
			set_visible_object(obj.plashechka.id,false)
			set_visible_object(obj.goodgirl.id,false)
			del_object_from_game(5654547)				
			end
	return;end
	
	--сколапсили мусор	
		if obj_id == obj.ball1.id or obj_id == obj.ball2.id or obj_id == obj.ball3.id  or
			obj_id == obj.pencil.id or obj_id == obj.disc.id or obj_id == obj.glasses.id or obj_id == obj.flower.id or obj_id == obj.card.id or 
			  obj_id == obj.apple.id or obj_id == obj.statue.id or obj_id == obj.shue.id or obj_id == obj.bell.id or obj_id == obj.hanger.id 
			 then
			
			 -- flags.items = flags.items + 1;
			
			 if flags.items == 15 and not flags.rentgen then
		CreatePlashechka(9999,"50","goodgirl")
		flags.items_collected = true;
		AlternateTimer("SwitchSheet1",1000)		
		return;end;
		
				if flags.items == 15 and  flags.rentgen then
					CreatePlashechka(9999,"52","goodgirl")
					AlternateTimer("SwitchSheet1",1000)
					flags.items_collected = true;				
					
					
				end;
		return; end;
		
	return; end;

	if sender == 8  then
	HideRentgen()
	HideNvg()
	
	if flags.items <= 15 and not flags.start_mini and glove_on then
		HideGlove();	
	end
	
	if flags.items == 15 and flags.Hanoi and glove_on then	return;	end		
		
	end;
		
	
end;


function SelectRandom()
local dist=-1;local a=-1;local b=-1;local v=100;local t=-1;local diag=-1;
local width = -1;local height = -1;local radius=1.2;			
	
	--собрали все прдметы, подсказка о том что вруби рентген--
	if flags.items_collected  and  not flags.rentgen then
		CreatePlashechka(25,"50","goodgirl")	
	return;end
	--летит на рычаг--
	if not flags.finish and flags.items_collected  then
		computation(obj.lever.id);	
    return;end	
	--летит на ПНВ--
	if not flags.takenvg and flags.finish then
		computation(obj.loc_nvg.id)
	return;end
	
	--летит на проход--
	
	if flags.finish and flags.items_collected then
		computation(0029);				
	return;end;
	
	ok = false
	while not ok do
		help_id = GetRandomObject();
		if help_id==obj.loc_nvg.id and not flags.richag then
			computation(obj.lever.id)
		return;end
		for i,v in pairs(obj) do
			if v.id == help_id and not v.is_collapsed then
				ok = true
				x,y=GetObjectPosition(v.id);
				x1,y1=GetObjectPosition(obj.dragonfly.id);
				width,height = GetObjectSize(v.id)
				a= (x-x1); b= (y-y1);  dist= math.sqrt (a^2+b^2);				
		        t=dist/400;		
                r = (math.sqrt(width^2+height^2)*0.5);		
				
				if r<50 then	r=75;	radius=4;	end  -- при радиусе меньше 50 определяем время кружения и радиус стрекозы
				
				if r>50 and r <100 then	r=87 radius=2.5;  end  --при радиусе больше 50 и меньше 100
				
				if r>100 then 	r=100 	radius=0.75;  end  -- при радиусе больше 100
				
				StartBigTravel(obj.dragonfly.id, v.id, 0, t, r/90, t, 2 ,radius);
			return end
		end
	end
end;