
script_spell NaturalBomb{

	let imgSpell = GetCurrentScriptDirectory~"LilySpell.png";

	@Initialize{
		LoadGraphic(imgSpell);
		SetPlayerInvincibility(300);
		TMain;
	}

	@MainLoop{
		CollectItems;
		yield;
	}

	@Finalize{
		DeleteGraphic(imgSpell);
	}

	task TMain{
		loop(60){yield;}
		HomingBombA(GetPlayerX,GetPlayerY);
		loop(240){yield;}
		End;
	}

task HomingBombA(let x,let y){
	let ang=270;
	ascent(i in EnumEnemyBegin..EnumEnemyEnd){
		let e=EnumEnemyGetID(i);
		let ex=GetEnemyInfo(e,ENEMY_X);
		let ey=GetEnemyInfo(e,ENEMY_Y);
		if(ex>GetClipMinX-32 && ex<GetClipMaxX+32 && ey>GetClipMinY-32 && ey<GetClipMaxY+32){
			ang=atan2(ey-y,ex-x);
		}
	}
	HomingBombB(x,y,ang);
}

task HomingBombB(let x,let y,let ang){
	let scax=0;
	let scay=0;
	let angle=0;
	let obj = Obj_Create(OBJ_SPELL);
	Obj_SetPosition(obj,x,y);
	Obj_SetAngle(obj,ang);
	Obj_SetSpeed(obj,2);
	ObjEffect_SetTexture(obj, imgSpell);
	ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetRenderState(obj, ADD);
	Obj_SetAlpha(obj, 255);
	ObjEffect_SetScale(obj, scax,scay);
	ObjEffect_CreateVertex(obj, 4);
	ObjEffect_SetVertexXY(obj, 0, -74, -74);
	ObjEffect_SetVertexXY(obj, 1, -74,  74);
	ObjEffect_SetVertexXY(obj, 2,  74, -74);
	ObjEffect_SetVertexXY(obj, 3,  74,  74);

	ObjEffect_SetVertexUV(obj, 0,  0,  0);
	ObjEffect_SetVertexUV(obj, 1,  0, 64);
	ObjEffect_SetVertexUV(obj, 2, 64,  0);
	ObjEffect_SetVertexUV(obj, 3, 64, 64);

	ObjEffect_SetLayer(obj, 3);
	ObjEffect_SetAngle(obj, 0,0,angle);

	intersection;

	loop(30){
		Obj_SetPosition(obj,GetPlayerX,GetPlayerY);
		scax+=2/30;
		scay+=2/30;
		ObjEffect_SetScale(obj, scax,scay);
		yield;
		}
	loop(180){
		yield;
		}
	loop(30){
		scax-=2/30;
		scay-=2/30;
		ObjEffect_SetScale(obj, scax,scay);
		yield;
		}
	Obj_Delete(obj);

		task intersection{
			let radius=0;
			while(!Obj_BeDeleted(obj)){
				radius+=150/30;
				if(radius>150){radius=150;}
				ObjSpell_SetIntersecrionCircle(obj,Obj_GetX(obj),Obj_GetY(obj),radius,10,true);
				yield;
			}
		}

	}
}
