script_enemy_main
{
    let count=0;//嗝
    let l=0;
    let N17=0;
    let N18=0;
    let N19=255;
    let N20=100;

    task isi()
{
    let obj = Obj_Create(OBJ_EFFECT);
    let l=0;
    Obj_SetX(obj, GetX);
    Obj_SetY(obj, GetY);
    Obj_SetSpeed(obj, 0);
    ObjEffect_SetTexture(obj, GetCurrentScriptDirectory~"\img\dot-kaze-ti.png");
    ObjEffect_SetRenderState(obj, ALPHA);
    ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
    ObjEffect_SetScale(obj,1,1);
    ObjEffect_SetAngle(obj,0,0,0);
    ObjEffect_CreateVertex(obj, 4);
    ObjEffect_SetLayer(obj,4);

    while (!Obj_BeDeleted(obj))
    {

        Obj_SetX(obj, GetX);
        Obj_SetY(obj, GetY);
        Obj_SetAlpha(obj,255);
        ObjEffect_SetAngle(obj,0,0,0);
        ObjEffect_SetScale(obj,1,1);
        ObjEffect_SetVertexXY(obj,0,-32,-32);
        ObjEffect_SetVertexXY(obj,1,-32,32);
        ObjEffect_SetVertexXY(obj,2,32,-32);
        ObjEffect_SetVertexXY(obj,3,32,32);
        ObjEffect_SetVertexUV(obj,0,256,256);
        ObjEffect_SetVertexUV(obj,1,256,320);
        ObjEffect_SetVertexUV(obj,2,320,256);
        ObjEffect_SetVertexUV(obj,3,320,320);

        ascent(let t in 0..4) {
            ObjEffect_SetVertexColor(obj,t,N19,N19,N19,N19);
        }

        yield;
    }

}

task isi2(s)
{
    let obj = Obj_Create(OBJ_EFFECT);
    Obj_SetX(obj, GetX);
    Obj_SetY(obj, GetY);
    Obj_SetSpeed(obj, 0);
    ObjEffect_SetTexture(obj, GetCurrentScriptDirectory~"\img\dot-kaze-ti.png");
    ObjEffect_SetRenderState(obj, ALPHA);
    ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
    ObjEffect_SetScale(obj,s,s);
    ObjEffect_SetAngle(obj,0,0,0);
    ObjEffect_CreateVertex(obj, 4);
    ObjEffect_SetLayer(obj,4);

    while (!Obj_BeDeleted(obj))
    {

        Obj_SetX(obj, GetX);
        Obj_SetY(obj, GetY);
        Obj_SetAlpha(obj,N18);
        ObjEffect_SetAngle(obj,0,0,0);
        ObjEffect_SetScale(obj,s,s);
        ObjEffect_SetVertexXY(obj,0,-32,-32);
        ObjEffect_SetVertexXY(obj,1,-32,32);
        ObjEffect_SetVertexXY(obj,2,32,-32);
        ObjEffect_SetVertexXY(obj,3,32,32);
        ObjEffect_SetVertexUV(obj,0,320,256);
        ObjEffect_SetVertexUV(obj,1,320,320);
        ObjEffect_SetVertexUV(obj,2,384,256);
        ObjEffect_SetVertexUV(obj,3,384,320);

        ascent(let t in 0..4) {
            ObjEffect_SetVertexColor(obj,t,N18*(N19/255)*(N20/100),N18*(N19/255)*(N20/100),N18*(N19/255)*(N20/100),N18*(N19/255)*(N20/100));
        }

        yield;
    }

}

@Initialize
{
    SetLife(1);
    isi;
    isi2(1);
    isi2(0.5);
    SetDamageRate(0,0);
    if (GetArgument==4.5||GetArgument==2.5||GetArgument==0) {
        isi2(0.7);
    }
}

@MainLoop
{

    if (GetArgument==0) {
        SetSpeed(1.2);
        SetAngle(90);
        if (count<80) {
            SetSpeed(5.2-count*0.06);
        }
    }
    if (GetArgument==1&&count<80) {
        SetSpeed(1.2);
        SetAngle(90);
    }
    if (GetArgument>=2&&GetArgument<4&&count<80) {
        SetSpeed(1);
        SetAngle(90);
    }
    if (GetArgument==3&&count==140&&N19>=250) {
        CreateEnemyFromFile(GetCurrentScriptDirectory~"Enemy01.txt",GetX(),GetY(),0,0,0);
        N19=240;
    }
    if (GetArgument>=4&&count<80) {
        SetSpeed(0.5);
        SetAngle(90);
    }

    if (N20>0&&OnPlayerMissed==true) {
        N20-=5;
    }
    if (N20<100&&OnPlayerMissed==false) {
        N20+=5;
    }

    if (N19<250) {
        N19-=5;
    }

    if (N19>90) {
        SetCollisionA(GetX(),GetY(),30);
        SetCollisionA(GetX()-20,GetY()+20,10);
        SetCollisionA(GetX()+20,GetY()-20,10);
        SetCollisionA(GetX()+20,GetY()+20,10);
        SetCollisionA(GetX()-20,GetY()-20,10);
        DeleteEnemyShotImmediatelyInCircle(SHOT,GetX,GetY,30);
        DeleteEnemyShotImmediatelyInCircle(SHOT,GetX-20,GetY+20,10);
        DeleteEnemyShotImmediatelyInCircle(SHOT,GetX-20,GetY-20,10);
        DeleteEnemyShotImmediatelyInCircle(SHOT,GetX+20,GetY+20,10);
        DeleteEnemyShotImmediatelyInCircle(SHOT,GetX+20,GetY-20,10);
    }

    if ((GetArgument==2.5)+(GetArgument==4.5)+(GetArgument==0)==1&&count>55*(GetArgument==0)&&count<220&&count%55>30&&count%3==0) {
        PlaySE(GetCurrentScriptDirectory~"\se\Shot02.wav");
        CreateShot01(GetX-16,GetY+32,3.5,90,196,15);
        CreateShot01(GetX+16,GetY+32,3.5,90,196,15);
        CreateShot01(GetX-16,GetY+32,3.5,90,196,1);
        CreateShot01(GetX+16,GetY+32,3.5,90,196,1);
    }

    if ((|GetX-GetPlayerX|)<=32&&(|GetY-GetPlayerY|)<=32&&GetTimeOfPlayerInvincibility<=0&&OnPlayerMissed==false) {
        SetPlayerInvincibility(0);
        ShootDownPlayer;
    }

    if (((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2)^0.5>0) {
        N18=315-(((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2)^0.5);
    }
    if (N18>255) {
        N18=255;
    }if (GetArgument==3) {
        N18=0;
    }if (GetArgument==4.5||GetArgument==2.5||GetArgument==0) {
        N18=255;
    }

    if (count>=80) {
        SetColor(255,255,255);
    }
    count++;
    if (GetY()>=512||N19<=0) {
        VanishEnemy;
    }yield;
}

@Finalize
{
}

@DrawLoop
{
}
}