
if flags.cango then
Set_Cursor(123,3)

end

AddParticleToObject(6500,"SvetMig");
MoveEmiter("SvetMig",274,205);
StartEmiter("SvetMig");

AddParticleToObject(6501,"SvetMig1");
MoveEmiter("SvetMig1",85,372);
StartEmiter("SvetMig1");

AddParticleToObject(6502,"SvetMig2");
MoveEmiter("SvetMig2",81,600);
StartEmiter("SvetMig2");

AddParticleToObject(6503,"SvetMig3");
MoveEmiter("SvetMig3",691,606);
StartEmiter("SvetMig3");


AddParticleToObject(6504,"SvetMig4");
MoveEmiter("SvetMig4",286,463);
StartEmiter("SvetMig4");


AddParticleToObject(6505,"SvetMig5");
MoveEmiter("SvetMig5",400,465);
StartEmiter("SvetMig5");


AddParticleToObject(6506,"SvetMig6");
MoveEmiter("SvetMig6",388,366);
StartEmiter("SvetMig6");


AddParticleToObject(6507,"SvetMig7");
MoveEmiter("SvetMig7",590,172);
StartEmiter("SvetMig7");


AddParticleToObject(6508,"SvetMig8");
MoveEmiter("SvetMig8",704,250);
StartEmiter("SvetMig8");

AddParticleToObject(6509,"SvetMig9");
MoveEmiter("SvetMig9",764,20);
 StartEmiter("SvetMig9");

AddParticleToObject(6510,"SvetMig10");
MoveEmiter("SvetMig10",1000,360);
 StartEmiter("SvetMig10");

AddParticleToObject(6512,"SvetMig12");
MoveEmiter("SvetMig12",814,369);
 StartEmiter("SvetMig12");



			
			
--не включаем эфект красного глаза и пара если бык уже проехал
if not flags.path_is_clear then
AddParticleToObject(513,"glaza");
MoveEmiter("glaza",658,472);

AddParticleToObject(514,"Dust2");
MoveEmiter("Dust2",643,510);
end

AddParticleToObject(700,"Highlight");
MoveEmiter("Highlight",460,465);
AddParticleToObject(10015,"HighlightBull");
MoveEmiter("HighlightBull",800,500);

-- закончили мини игру, можно включать эмитеры глаза и пара
if flags.cango then
StartEmiter("glaza");
StartEmiter("Dust2");
end

if not flags.path_is_clear then
	StartEmiter("HighlightBull");
	AddParticleToObject(3333,"HighlightDoor");
	MoveEmiter("HighlightDoor",165,300);
	StartEmiter("HighlightDoor");
end


-- функция вызывается после того как сыграли мини игру, чтоб поставить быка в нужное положение
function  AfterBullAnim()
	set_visible_object( 113, false );
	speciale_action(2,31);
	set_visible_object(10001,false);
	set_visible_object(10003,false);
	set_visible_object(10005,false);
	set_visible_object(10007,false);	
	set_visible_object(10009,false);
	set_visible_object(10011,false);
	
	set_visible_object(10000,true);
	set_visible_object(10002,true);
	set_visible_object(10004,true);
	set_visible_object(10006,true);
	set_visible_object(10008,true);	
	set_visible_object(10010,true);
	set_visible_object(10012,true);
	StartEmiter("Dust2");
	StartEmiter("glaza");
	Set_Cursor(10000,4);		
	Set_Cursor(700,3)
	Set_Cursor(123,3)

end;
	


if not flags.path_is_clear and flags.rentgen then			
			StartEmiter("HighlightBull");		
end;		 
local function LoadLogic()
	if flags.board_is_active and not flags.mini1_complete then		
		Set_Cursor( obj.board.id, 2);
	end;
--не прошли мини но использовали рентген	
	if flags.mini1_complete then
		
	end;

--прошли мини и бык врезался в стену
	if flags.path_is_clear then
		for i=10000,10012 do
			set_visible_object( i, false );
		end;
		set_visible_object( 34, true );
		set_visible_object( 35, true );
		Set_Cursor( 35, 1 );
		set_visible_object( 113, false );
		set_visible_object( 10014, true );
		SetObjectPosition( 10014, 280, 403);
	end;
end;

LoadLogic();
WaitRender();

c("\ngameinput")
function gameinput (sender,obj_id,attachedID)
c("sender= "..sender.."\n")
	if SLevel==1.0 then return; end;
	
	
	
	if sender==777 then	
		if not flags.comics then
			flags.comics=true;
			StartTimer(4323432432342,1,"conv333")	
			
		function conv333()
			 ShowMenu(true)			
			CreatePlashechka(6621231,"99","goodgirl")	
			
		    SwitchToSheet("re")			
		end
		
		
		c("SHOWMENU!")
	 end
--после сохранения если бык врезался уже то создаем полигон на двери
	if flags.path_is_clear then	
		poly= {70,100,300,100,300,500,70,500}
		CreatePolygon(355,4,"poly")	
		Set_Cursor( 355, 1 );		
		speciale_action(4,355)
	end
	
	
--после сохранения  в мини игре, восстанавливаем её		
	if  flags.mini_start and not flags.start  then		
		
		leafobj={2234}
		GetRenderTarget(2234,"rendertar");	
		
		mininame="mini";
		mininum1=3;
		mininum2=10;
		mininame2="gates";
	return;end
		 
	if top_plush_id then		
		ShowMenu(true)
		c("\nshowmenu")
	end	 
	
	end	
	
	
--обработка плашки	
	 if (sender == 1  or sender==5) and not isTimes  and imagetex~=-1 then
			set_visible_object(obj.plashechka.id,false)
			set_visible_object(obj[imagetex].id,false)
			del_object_from_game(5654547)		
			gameinput(26,imageid)	
	end
--обработка меню	
	if sender == 2 then
		RemoveFromMouse(object);
		MessageProc(sender,obj_id);
	return;end;	
--обработка рентгена	
	if sender ==100001 then	
			speciale_action(2,obj.xray.id,true);
            speciale_action(4,obj.xray.id);     
			BlockCursor(true)
            xray=true;            
            flags.rentgen=true;  		   			
			StartEmiter("HighlightBull");
			userent=false;
			flags.bikrent=true;				
	end	
--картинка рентгена стала видимой	
	if sender==16  then
		if obj_id ==obj.xray.id and xray then
			xray=false;
			BlockCursor(false)
			CreatePlashechka(9999,"105","goodgirl")
			StartEmiter("HighlightBull");	
			Set_Cursor(700,2);
		return;end;
	return;end
--картина рентгена стала невидимой	
	if sender==15 then
		if obj_id ==obj.xray.id  then	
			xray=false;
			rentgen_is_usable=false;
			BlockCursor(false)
		return;end;
	return;end
	
		
	
	if sender ==36 then	
	--	после того как прошли мини, говорит что можно дернуть быка за хвост
		if obj_id ==222 then	
			CreatePlashechka(9999,"53","goodgirl")
			SwitchToSheet("re")
		return;end;
	--	бык врезался, говорит что можно идти дальше
		if obj_id==50 then
			CreatePlashechka(9999,"107","goodgirl")
		end
	return;end;
	
	
	if sender == 33 then			
		
	--прошли мини таймер вызывает сообщение что дерни быка за хвост
		if flags.mini_complete then		
			flags.mini_complete=false;		
			StartTimer(222,0.2)
		end	
	
	
		if obj_id == 34 then
			StopEmiter("Dust1");
			flags.comics2 = true;
			set_visible_object( 35, true );
			Set_Cursor( 35, 1 );
			WaitRender();
		end;
	
		
		if flags.mini1_complete and not flags.bull_anim_played then
			flags.bull_anim_played = true;
			StartAnimation(113,0,5);
		end;
		
		flags.bull_anim_played = true;
		if not flags.starting_hint then
			flags.starting_hint = true;
			
		end;
		if not flags.finish then
		flags.finish = false;
			ShowMenu(true);
			SwitchToSheet("re");
			c("333333")
		return end
 end;

	
	
if sender ==41 then	
		
	RotateHandler(obj_id); --обработчик гаджетов
--вкл анимацию стрекозы когда долетела
	if obj_id ==obj.dragonfly.id then	
		StartAnimation( 5555555555,1,5 );	
	end;
	

	if flags.finish then return;end;
--бык закончил движение
		if obj_id == 10014 then
			flags.path_is_clear = true;
			AddParticleToObject(700,"Dust1");
			MoveEmiter("Dust1",180,495);
			StartEmiter("Dust1");
			StopEmiter("Dust");
			SetAlfa(34,0.0,1.0,2);
			playeffect("044")
			StartTimer(50,2);
			StopEmiter("SvetMig5");
				StopEmiter("SvetMig4");
				set_visible_object(3333,false)
		end;
		
	
	
end; --енд оф 41 сендер

if sender == 100 then			
		-- ShowMenu(true);	

		if flags.first_time_load then				
			set_visible_object(obj.intro.id,true);
			flags.first_time_load=false
			speciale_action(4,obj.intro.id)			
			flags.start_draw = false;
			flags.bull_anim_played=true
			c("\n 3 lvl end of 100")
		return; end;	
end;
	

	
	if sender == 12 then
--коллапс мусора		
		if obj_id == obj.statuetka3.id or obj_id == obj.extuinguisher.id or obj_id == obj.cassette.id or obj_id == obj.knife.id or obj_id == obj.sponge.id or
			obj_id == obj.glass1.id or obj_id == obj.glass2.id or obj_id == obj.glass3.id or obj_id == obj.glass4.id or obj_id == obj.charcoal.id or
			obj_id == obj.handbag.id or obj_id == obj.vase.id or obj_id == obj.cube.id or obj_id == obj.pipe.id or obj_id == obj.cap.id then
		
--собрали весь мусор 			
			if flags.items == 15 then				
				flags.items_collected = true;
				AlternateTimer("SwitchSheet1",1000)	
				if not flags.rentgen then				
				CreatePlashechka(66,"106","goodgirl")
				end
			end;
		end;
	return; end;
	
	if sender == 8 then
		HideGlove();
		HideRentgen()
		HideNvg();
	end;
	

	
	
	
	
	if sender==26 then	
		if obj_id ==25 then
		
			StartAnimation( 5555555555,2,5 );
		return;end;
	return;end
	
	if sender == 1 then	
--мини игра пройдена тыкаем на дверь чтоб перейти на след локацию
	
		if (obj_id == 35 or obj_id==355 ) and flags.path_is_clear and not canusegadjets   then
			flags.finish = true;
			ShowMenu(false);
			del_object_from_game(obj.dragonfly.id)
			
			leafobj={2234}
			GetRenderTarget(2234,"rendertar");	
			minigg=true;
			levelnext=4;
			StopTravel(obj.dragonfly.id)
			
		end;
--тыкаем на дверь, говорит дверь заперта	
		if obj_id == 3333 then
			CreatePlashechka(9999,"104","goodgirl")
			set_visible_object(3333,true)
			speciale_action(4,3333)
			
		end;
	
--тыкаем на мусор		
		if obj_id == obj.statuetka3.id or obj_id == obj.extuinguisher.id or obj_id == obj.cassette.id or obj_id == obj.knife.id or obj_id == obj.sponge.id or
			obj_id == obj.glass1.id or obj_id == obj.glass2.id or obj_id == obj.glass3.id or obj_id == obj.glass4.id or obj_id == obj.charcoal.id or
			obj_id == obj.handbag.id or obj_id == obj.vase.id or obj_id == obj.cube.id or obj_id == obj.pipe.id or obj_id == obj.cap.id then
			flags.items = flags.items + 1;
			CollapseObj(obj_id);
		return; end;
--тыкаем на быка чтоб запустить мини	
		if obj_id == 700 and not flags.mini_start then
		
			if flags.rentgen then			
				ClosePlushes()
				flags.mini_start=true;
			else
				CreatePlashechka(9999,"106","goodgirl")
			end
			
		return; end;	
	
		if obj_id == 702 then
			set_visible_object(702,false)
			set_visible_object(701,false)
		return; end;
		---------------------
		
--мини пройдена, предметы собраны, тыкаем на быка чтоб запустить	
		if obj_id >= 10000 and obj_id <= 10012 or( obj_id==123) then
			
		if flags.rentgen then					
			
			if (obj_id == 10000 or obj_id == 123) and flags.bull and flags.cango then
				if flags.items == 15 then 
				set_visible_object( 10000, false );
				set_visible_object( 10002, false );
				set_visible_object( 10004, false );
				set_visible_object( 10006, false );
				set_visible_object( 10008, false );
				set_visible_object( 10010, false );
				set_visible_object( 10012, false );
				set_visible_object( 10014, true );
				StopEmiter("glaza")
				StopEmiter("Dust2")
				StartTravel(10014,1,nil,nil, { "InstantiationOfLine",2, 617,403, 170, 403,2,false}); 
				playeffect("043")
				speciale_action(2,112); -- anim ground
				AddParticleToObject(10015,"Dust");
				MoveEmiter("Dust",800,580);
				StartEmiter("Dust");
				StartAnimation(112,0,9); 
				StopEmiter("HighlightBull");
				set_visible_object(123,false)
				del_object_from_game(513);
				else 
					CreatePlashechka(62316,"55","goodgirl")
				end;			
			
			return; end;			
		 else
			CreatePlashechka(66,"106","goodgirl")
		end
		
		if not flags.rentgen then		
		CreatePlashechka(62126,"108","goodgirl")
		elseif not flags.cango then
			ClosePlushes()
			flags.mini_start=true;
		end
		 end
	return; 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.path_is_clear then	
		computation(35);	
	return;end
-- собрали предметы, говорит используй рентген	
	if flags.items >= 15 and not flags.bikrent then			
		CreatePlashechka(25,"106","goodgirl")
				StartTimer(43224,0.1,"muha")
				
				function muha ()
					StartAnimation( 5555555555,1,5 );			
				end
	return;end;			

-- собрали предметы воспользовались рентгеном летит на быка	
	if flags.items >= 15 then		
			if not flags.bull then
			computation(700);				
			return; end;
			computation(10000);				
		return
	end
	ok = false
	while not ok do
		help_id = GetRandomObject();
		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;