
#Title[ʏ킻3]
#Text[]
#ScriptVersion[2]

script_enemy_main
{let count= -90 ;//eoԊu𐧌䂷邽߂̕ϐ
let cx=GetCenterX();//ϐcxɒSxW
let cy=GetCenterY();//ϐcxɒSyW
let csd     = GetCurrentScriptDirectory;
    let imgBoss   = csd ~ "Boss.png";
let count2=-120;
let arrayLaser=[];//LaserObject̃IuWFNgۑĂ

@Initialize()
{SetTimer(30);
SetLife(2000);
SetGraphicRect(1,1,64,64);
LoadGraphic(imgBoss);
SetDamageRate(70,70);
SetMovePosition02(cx,cy,60);}
			
@MainLoop()
{count2++;
if(count>0 && count%30 == 0)
{let angle = 0;
while(angle<360)
{ShotObject(GetX(), GetY(), 3, angle, AQUA21, 5);
angle+=20;}}
if(count == 60){
LaserObject(0,RED01);
LaserObject(1,BLUE01);
LaserObject(2,GREEN01);}
if(count2==60){
CreateLaser01(GetX,GetY,3,GetAngleToPlayer,60,10,WHITE11,6);
count2=0;
}
if(count == 360){let i=0;
loop(length(arrayLaser))
{ObjShot_FadeDelete(arrayLaser[i]);
i++;}				
count=0;}
	
SetCollisionA(GetX(),GetY(),32);
SetCollisionB(GetX(),GetY(),24);
count++;
yield;}

@DrawLoop()
{SetTexture(imgBoss);
DrawGraphic(GetX(),GetY());}
		
@Finalize()
{DeleteGraphic(imgBoss);}

task LaserObject(let num, let grf){let r=120;
let angle=210+120*num;
let obj = Obj_Create(OBJ_LASER);
arrayLaser = arrayLaser~[obj];
Obj_SetX(obj, GetX() + r*cos(angle-150));
Obj_SetY(obj, GetY() + r*sin(angle-150));
Obj_SetAngle(obj, angle);
ObjShot_SetGraphic(obj, grf);
ObjShot_SetDelay(obj, 90);
ObjLaser_SetLength(obj, (3^0.5)*r);
ObjLaser_SetWidth(obj, 12);
while( !Obj_BeDeleted(obj) )
{angle+=1;
Obj_SetX(obj, GetX() + r*cos(angle-150));
Obj_SetY(obj, GetY() + r*sin(angle-150));
Obj_SetAngle(obj, angle);
yield;}
let i=0;
loop(length(arrayLaser))
{if(arrayLaser[i] == obj)
{arrayLaser = erase(arrayLaser, i);
break;}
i++;}}
task ShotObject(let x, let y, let speed, let angle, let grf, let delay)
{let obj = Obj_Create(OBJ_SHOT);
Obj_SetX(obj, x);
Obj_SetY(obj, y);
Obj_SetSpeed(obj, speed);
Obj_SetAngle(obj, angle);
ObjShot_SetGraphic(obj, grf);
ObjShot_SetDelay(obj, delay);
while( !Obj_BeDeleted(obj) )
{let i=0;
loop(length(arrayLaser))
{if(Collision_Obj_Obj(arrayLaser[i], obj))
{x = Obj_GetX(obj);
y = Obj_GetY(obj);
CreateShot01(x, y, 3, Obj_GetAngle(arrayLaser[i])-90, grf, 0);
Obj_Delete(obj);
break;}
i++;}
yield;}}}
