

//F̐ݒ
let Aura_red	 = [255,  0,  0];
let Aura_orange	 = [255,128,  0];
let Aura_yellow	 = [255,255,  0];
let Aura_green	 = [  0,255,  0];
let Aura_cyan	 = [  0,255,255];
let Aura_blue	 = [  0,  0,255];
let Aura_purple	 = [255,  0,255];
let Aura_white	 = [255,255,255];

let Aura_rose	 = [255, 96,128];
let AuraColor_Pattern08 = [
Aura_red,
Aura_orange,
Aura_yellow,
Aura_green,
Aura_cyan,
Aura_blue,
Aura_purple,
Aura_white,
Aura_rose
];

let Aura_CS = 1.125;//I[̋ʃXP[
let root2 = 2^0.5;//[g2{gp
//I[
task TAura(objEnemy,c)
{
	let color = AuraColor_Pattern08[c];
	let r = color[0];
	let g = color[1];
	let b = color[2];
	let ex = ObjMove_GetX(objEnemy);
	let ey = ObjMove_GetY(objEnemy);

	task auraDraw(n)
	{
		let r2 = color[0];
		let g2 = color[1];
		let b2 = color[2];
		let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	
		let exp = 0; let alp = 0;
		let an = rand(-20,20)/2;
		let scale = 1.35;

		Obj_SetRenderPriority(obj,0.29);
		ObjPrim_SetTexture(obj,imgBossEfect);
		ObjRender_SetBlendType(obj,BLEND_ADD_ARGB);
		ObjSprite2D_SetSourceRect(obj,5,68,45,108);
		ObjRender_SetAlpha(obj, alp);
		if(r2==0){r2+=56;}
		if(g2==0){g2+=56;}
		if(b2==0){b2+=56;}
		
		while(!Obj_IsDeleted(objEnemy))
		{
			exp = 0;alp = 0;
			an = rand(-20,20)/2;
			scale = 1.35;
			while((exp <= 100))
			{
				ObjSprite2D_SetDestRect(obj,-20,0-min(exp/1.02,22*4),20,0);
	
				ObjRender_SetScaleXYZ(obj,scale*Aura_CS+n/2,scale*Aura_CS,1);
				ObjRender_SetColor(obj,r2*(alp/205)/4,g2*(alp/205)/4,b2*(alp/205)/4);
				ObjRender_SetPosition(obj,round(ex+an),round(ey-8+an/5),0);
				ObjRender_SetAlpha(obj, (1-n)*alp*0.75);
				if(exp < 25){alp += 205/5;}
				else if(exp > 50){alp -= 205/6;}
	
				exp += 5-1;
				yield;
			}
		}
		Obj_Delete(obj);
	}

	task auraC
	{
		loop(6)
		{	auraDraw(1/3);
			loop(3){yield;}
			auraDraw(1/4);
			loop(3){yield;}
			auraDraw(0);
			loop(3){yield;}
		}
	}
	
	task chageDraw_color(Blend_Type){
		let Angle = rand(0,360);

		let rc = 0;
		if(Blend_Type!=BLEND_ALPHA){rc = 64;}

		let objs = ObjPrim_Create(OBJ_SPRITE_2D);
		Obj_SetRenderPriority(objs,0.21);
		ObjPrim_SetTexture(objs,imgBossEfect);
		ObjRender_SetBlendType(objs,BLEND_SUBTRACT);
		ObjSprite2D_SetSourceRect(objs,50,68,90,108);
		ObjSprite2D_SetDestRect(objs,-20,-20,20,20);
		ObjRender_SetAngleXYZ(objs,0,0,Angle);
		ObjRender_SetColor(objs,255-r,255-g,255-b);

		let obj = ObjPrim_Create(OBJ_SPRITE_2D);
		Obj_SetRenderPriority(obj,0.23);
		ObjPrim_SetTexture(obj,imgBossEfect);
		ObjRender_SetBlendType(obj,Blend_Type);
		ObjSprite2D_SetSourceRect(obj,50,68,90,108);
		ObjSprite2D_SetDestRect(obj,-20,-20,20,20);
		ObjRender_SetAngleXYZ(obj,0,0,Angle);
		ObjRender_SetColor(obj,r,g,b);
		let scale = 1.82*0.7+2.25*0.5; let alp = 0; let count = 0;
		let an = rand(-20,20)/2;
		
		while(!Obj_IsDeleted(objEnemy))
		{	Angle = rand(0,360);
			scale = 1.82*0.7+2.25*0.5; alp = 0; count = 0;
			an = rand(-20,20)/2;
			ObjRender_SetAngleXYZ(objs,0,0,Angle);
			ObjRender_SetAngleXYZ(obj,0,0,Angle);
			while((scale > 0.5))
			{
				ObjRender_SetPosition(obj, round(ex+cos(Angle)*an), round(ey+sin(Angle)*an),0);
				ObjRender_SetScaleXYZ(obj,max(scale*root2,1),max(scale*root2,1),1);
	
				ObjRender_SetAlpha(obj,an/2+alp/3);
	
				ObjRender_SetPosition(objs, round(ex+cos(Angle)*an), round(ey+sin(Angle)*an),0);
				ObjRender_SetScaleXYZ(objs,max(scale*root2,1),max(scale*root2,1),1);//1.45
				ObjRender_SetAlpha(objs,an/2+alp/4);
				
				ObjRender_SetColor(objs,255-r,255-g,255-b);
				ObjRender_SetColor(obj,r,g,b);
				if(alp<=110){alp += 110/8;}
				scale -= 3.5/45*0.5;
				count += 1;
				yield;
			}
		}
		Obj_Delete(obj);
		Obj_Delete(objs);
	}
	task chageDraw_white{
		let Angle = rand(0,360);

		let rc = 0;

		let r_color = 222;

		let obj = ObjPrim_Create(OBJ_SPRITE_2D);
		Obj_SetRenderPriority(obj,0.29);
		ObjPrim_SetTexture(obj,imgBossEfect);
		ObjRender_SetBlendType(obj,BLEND_ADD_ARGB);
		ObjSprite2D_SetSourceRect(obj,50,68,90,108);
		ObjSprite2D_SetDestRect(obj,-22,-22,22,22);
		ObjRender_SetAngleXYZ(obj,0,0,Angle);

		let scale = 1.65; let alp = 0; let count = 0;
		let an = rand(-10,10)/2;
		while(!Obj_IsDeleted(objEnemy))
		{	Angle = rand(0,360);
			scale = 1.65; alp = 0; count = 0;
			an = rand(-10,10)/2;
			ObjRender_SetAngleXYZ(obj,0,0,Angle);
			while((scale > 0.5)){
				if (Obj_IsDeleted(objEnemy)){break;}
				ObjRender_SetPosition(obj, round(ex+an/2*cos(Angle)), round(ey+an/2*sin(Angle)), 0);
				ObjRender_SetAlpha(obj,alp/6*255/r_color);
				ObjRender_SetScaleXYZ(obj,max(scale,1),max(scale,1),1);
				if(alp<=r_color){alp += r_color/6;}
				scale -= 3.5/45*0.5;
				count += 1;
				yield;
			}
		}
		Obj_Delete(obj);
	}
	task chageC{
		loop(10)
		{
			chageDraw_color(BLEND_ADD_ARGB);
			chageDraw_white;
			loop(6){yield;}
		}
	}
	chageC;
	auraC;
	while(!Obj_IsDeleted(objEnemy))
	{
		ex = ObjMove_GetX(objEnemy);
		ey = ObjMove_GetY(objEnemy);
		yield;
	}

}
