    script_shot shot1{
       let out=false;
       let gr=GetArgument;
       let lv=0;
       @Initialize{
          SetDefault(gr+lv*20);
       }
       @MainLoop {
          if(GetX<20||GetX>428||GetY<20||GetY>460){
             out=true;
             End;
          }
          if(GetCommonData("kakusei")>0){
             lv=1;
             if(GetPoint==0){lv=2;SetSpeed(GetSpeed+0.04)}
          }
          else{lv=0}
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<=4){SetCommonData("gekitui",1);}
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          if(out==false&&OnBomb==false){
             if(GetCommonData("kakusei")>0){
                let a=(200+GetCommonData("kinkaiten")*100);
                CreateShotFromScript( "kinka",GetX(), GetY(), a, 270, 0, 99-GetCommonData("kinkaiten")/20);
             }
             if(OnBomb==false&&GetCommonData("kakusei")==0){
                CreateShotFromScript( "isi",GetX(), GetY(), 0, 270, 0, 0);
             }
          }
       }
    }    

   script_shot shot2{//d͉e
       let out=false;
       let gr=GetArgument;
       let lv=0;
       let kasoku=0;
       let speed=GetSpeed;
       let angle=GetAngle;
       @Initialize{
          SetDefault(gr+lv*20);
       }
       @MainLoop {
          if(GetX<20||GetX>428||GetY<20||GetY>460){
             out=true;
             End;
          }
          if(GetCommonData("kakusei")>0){
             lv=1;
             if(GetPoint==0){lv=2;SetSpeed(GetSpeed+0.04);kasoku+=0.015;}
          }
          else{lv=0}
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<=4){SetCommonData("gekitui",1);}
          SetX(GetX+cos(angle)*speed);
          SetY(GetY+sin(angle)*speed+kasoku);
          kasoku+=0.03;
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          if(out==false&&OnBomb==false){
             if(GetCommonData("kakusei")>0){
                let a=(200+GetCommonData("kinkaiten")*100);
                CreateShotFromScript( "kinka",GetX(), GetY(), a, 270, 0, 99-GetCommonData("kinkaiten")/20);
             }
             if(OnBomb==false&&GetCommonData("kakusei")==0){
                CreateShotFromScript( "isi",GetX(), GetY(), 0, 270, 0, 0);
             }
          }
       }
    }
   script_shot shot3{//e
       let out=false;
       let gr=GetArgument;
       let lv=0;
       let kasoku=GetSpeed;
       let angle=GetAngle;
       @Initialize{
          SetDefault(gr+lv*20);
       }
       @MainLoop {
          if(GetX<20||GetX>428||GetY<20||GetY>460){
             out=true;
             End;
          }
          if(GetCommonData("kakusei")>0){
             lv=1;
             if(GetPoint==0){lv=2;SetSpeed(GetSpeed+0.04)}
          }
          else{lv=0}
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<=4){SetCommonData("gekitui",1);}
          SetSpeed(GetSpeed+kasoku);
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          if(out==false&&OnBomb==false){
             if(GetCommonData("kakusei")>0){
                let a=(200+GetCommonData("kinkaiten")*100);
                CreateShotFromScript( "kinka",GetX(), GetY(), a, 270, 0, 99-GetCommonData("kinkaiten")/20);
             }
             if(OnBomb==false&&GetCommonData("kakusei")==0){
                CreateShotFromScript( "isi",GetX(), GetY(), 0, 270, 0, 0);
             }
          }
       }
    }
   script_shot shot4{//玩@_
       let out=false;
       let gr=GetArgument;
       let lv=0;
       let kasoku=GetSpeed;
       let phase=2;
       @Initialize{
          SetDefault(gr+lv*20);
       }
       @MainLoop {
          if(GetX<20||GetX>428||GetY<20||GetY>460){
             out=true;
             End;
          }
          if(GetCommonData("kakusei")>0){
             lv=1;
             if(GetPoint==0){lv=2;SetSpeed(GetSpeed+0.04)}
          }
          else{lv=0}
          if(phase==2){
             SetSpeed(GetSpeed-0.1);
             if(GetSpeed<0.5){
                SetAngle(GetAngleToPlayer);
                phase=1;
             }
          }
          if(phase==1){
             SetSpeed(GetSpeed+0.06);
          }
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<=4){SetCommonData("gekitui",1);}
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          if(out==false&&OnBomb==false){
             if(GetCommonData("kakusei")>0){
                let a=(200+GetCommonData("kinkaiten")*100);
                CreateShotFromScript( "kinka",GetX(), GetY(), a, 270, 0, 99-GetCommonData("kinkaiten")/20);
             }
             if(OnBomb==false&&GetCommonData("kakusei")==0){
                CreateShotFromScript( "isi",GetX(), GetY(), 0, 270, 0, 0);
             }
          }
       }
    }
   script_shot shot5{//eei
       let out=false;
       let gr=01;
       let arg=GetArgument;
       let pl=GetAngleToPlayer;
       let ex = GetCommonData("ex");
       let lv=0;
       let time=0;
       @Initialize{
          SetDefault(gr+lv*20);
       }
       @MainLoop {
          if(GetX<20||GetX>428||GetY<20||GetY>460){
             out=true;
             End;
          }
          if(GetCommonData("kakusei")>0){
             lv=1;
             if(GetPoint==0){lv=2;}
          }
          else{lv=0}
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<=4){SetCommonData("gekitui",1);}
          if(arg==1&&time%2==0&&time<60){//Q{X23
             CreateShotFromScript( "shot1",GetX(), GetY(), 4+ex, GetAngle+180, 0, 13);
          }
          if(arg==2&&time%9==7&&time<60){//Q{X25
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.08+ex*0.03, 90, 0, 02);
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.08+ex*0.03, 270, 0, 02);
          }
          if((|arg|)==3&&time%10==0&&time<150){//Q{X31
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.06, GetAngle-75*arg/3, 0, 13);
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.06, GetAngle-165*arg/3, 0, 13);
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.06, GetAngle+15*arg/3, 0, 13);
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.06, GetAngle+125*arg/3, 0, 13);
             if(ex==1){
                CreateShotFromScript( "shot3",GetX(), GetY(), 0.1, GetAngle-75*arg/3, 0, 13);
                CreateShotFromScript( "shot3",GetX(), GetY(), 0.1, GetAngle-165*arg/3, 0, 13);
                CreateShotFromScript( "shot3",GetX(), GetY(), 0.1, GetAngle+15*arg/3, 0, 13);
                CreateShotFromScript( "shot3",GetX(), GetY(), 0.1, GetAngle+125*arg/3, 0, 13);
             }
          }
          if(arg==4&&time%5==0&&time<120){//Q{X32
             CreateShotFromScript( "shot3",GetX(), GetY(), 0.032+ex*0.01, GetAngle+(360-time*2.5)*((time/5)%2-0.5), 0, 06);
          }
          if((|arg|)==5&&time%7==0&&time<40){//R{X3
             CreateShotFromScript( "shot1",GetX(), GetY(), 2.8, GetAngle-10*arg, 0, 05);
             CreateShotFromScript( "shot1",GetX(), GetY(), 2.8, GetAngle-10*arg+30-5*ex, 0, 05);
             CreateShotFromScript( "shot1",GetX(), GetY(), 2.8, GetAngle-10*arg-30+5*ex, 0, 05);
             if(ex==1){
                CreateShotFromScript( "shot1",GetX(), GetY(), 2.8, GetAngle-10*arg+50, 0, 05);
                CreateShotFromScript( "shot1",GetX(), GetY(), 2.8, GetAngle-10*arg-50, 0, 05);
             }
          }
          if(arg==6&&time%15==0){//3{X12
             CreateShotFromScript( "shot1",GetX(), GetY(), 1.6, GetAngle+90, 0, 12);
             CreateShotFromScript( "shot1",GetX(), GetY(), 1.6, GetAngle-90, 0, 12);
             if(ex==1){
                CreateShotFromScript( "shot1",GetX(), GetY(), 2.3, GetAngle+90, 0, 12);
                CreateShotFromScript( "shot1",GetX(), GetY(), 2.3, GetAngle-90, 0, 12);
             }
          }
          if(arg==8&&time%3==0){//3{X22
             CreateShotFromScript( "shot1",GetX(), GetY(), 1.8+ex*0.5, time*4.3, 0, 12);
             CreateShotFromScript( "shot1",GetX(), GetY(), 1.8+ex*0.5, time*4.3+180, 0, 12);
          }
          if(arg==10&&time%35==0){//3{X3
             CreateShotFromScript( "shot1",GetX(), GetY(), 2, 30, 0, 02);
             CreateShotFromScript( "shot1",GetX(), GetY(), 2, 150, 0, 02);
          }
          if((|arg|)==11&&time%3==0){//3{X3
             CreateShotFromScript( "shot1",GetX(), GetY(), 4, 90+(50-time*0.6)*arg/11, 0, 12);
             CreateShotFromScript( "shot1",GetX(), GetY(), 4, 90+(-30-time*0.6)*arg/11, 0, 12);
          }
          time++;
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          if(out==false&&OnBomb==false){
             if(GetCommonData("kakusei")>0){
                let a=(200+GetCommonData("kinkaiten")*100);
                CreateShotFromScript( "kinka",GetX(), GetY(), a, 270, 0, 99-GetCommonData("kinkaiten")/20);
             }
             if(OnBomb==false&&GetCommonData("kakusei")==0){
                CreateShotFromScript( "isi",GetX(), GetY(), 0, 270, 0, 0);
             }
          }
          if(out==true&&arg==7){//3{X13
             let a=0;
             loop(4){
                CreateShotFromScript( "shot3",GetX()+cos(a*90)*12, GetY()+sin(a*90)*12, 0.02+ex*0.006, a*90, 0, 13);
                CreateShotFromScript( "shot3",GetX()+cos(a*90)*12, GetY()+sin(a*90)*12, 0.022+ex*0.006, a*90, 0, 13);
                CreateShotFromScript( "shot3",GetX()+cos(a*90)*12, GetY()+sin(a*90)*12, 0.024+ex*0.006, a*90, 0, 13);
                if(ex==1){
                   CreateShotFromScript( "shot3",GetX()+cos(a*90)*12, GetY()+sin(a*90)*12, 0.026+ex*0.006, a*90, 0, 13);
                }
                a++;
             }
          }
          if(out==true&&arg==9){//3{X23
             let a=0;
             loop(36+ex*9){
                CreateShotFromScript( "shot1",GetX()+cos(GetAngle+180)*12, GetY()+sin(GetAngle+180)*12, 1+ex*0.5, a*(10-ex*2), 0, 03);
                a++;
             }
          }
       }
    }    


    script_shot kinka{
       let time=6;
       let score=0;
       let arg=0;
       @Initialize{
          SetDefault(93);
          SetBombResist();
          SetSpeed(4);
          let se1 = GetCurrentScriptDirectory~"wav\se1.wav";
          PlaySE(se1);
          arg=GetCommonData("kinkaiten");
       }
       @MainLoop {
          if(time>=0&&GetCommonData("kakusei")>0){
             DeleteEnemyShotImmediatelyInCircle(SHOT, GetX, GetY, 25);
          }
          SetSpeed(GetSpeed+1);
          SetAngle(GetAngleToPlayer);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<30^2&&time<0){End;}
          if(time<=-30){
             End;
          }
          if(time==3){SetDefault(98-trunc(arg/10));}
          time-=1;
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          AddScore(arg*40+400+GetCommonData("kinkai"));
          SetCommonData("kinkai",GetCommonData("kinkai")+trunc(arg/4)+1);
          if(GetCommonData("kinkai")>5000){SetCommonData("kinkai",5000);}
          SetCommonData("ruikei",GetCommonData("ruikei")+1);
          let se1 = GetCurrentScriptDirectory~"wav\se1.wav";
          PlaySE(se1);
       }
    }

    script_shot isi{
       let time=10;
       let score=GetCommonData("rank")*150+100;
       @Initialize{
          SetDefault(96-trunc(GetCommonData("prerank")/2));
          SetBombResist();
          SetSpeed(1);
          SetAngle(270);
       }
       @MainLoop {
          if(time<0){
             SetSpeed(10);
             SetAngle(GetAngleToPlayer);
             if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<30^2||time<=-50){
                let se1 = GetCurrentScriptDirectory~"wav\se1.wav";
                PlaySE(se1);
                AddScore(score);
                End;
             }
          }
          time-=1;
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          
       }
    }

    script_shot utikaesi{
       let out=false;
       let gr=GetArgument;
       let lv=0;
       @Initialize{
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<130^2){out=true;End;}
       }
       @MainLoop {
          if(GetX<20||GetX>428||GetY<20||GetY>460){
             out=true;
             End;
          }
          if(GetCommonData("kakusei")>0){
             lv=1;
             if(GetPoint==0){lv=2;SetSpeed(GetSpeed+0.04)}
          }
          else{lv=0}
          SetDefault(gr+lv*20);
          if((GetX-GetPlayerX)^2+(GetY-GetPlayerY)^2<=4){SetCommonData("gekitui",1);}
       }
       @DrawLoop {
          DrawGraphicDefault();
       }
       @Finalize{
          if(out==false&&OnBomb==false){
             if(GetCommonData("kakusei")>0){
                let se1 = GetCurrentScriptDirectory~"wav\se1.wav";
                PlaySE(se1);
                let a=GetGraze*(5+GetCommonData("kinkaiten")/2);
                CreateShotFromScript( "kinka",GetX(), GetY(), a, 270, 0, 99-GetCommonData("kinkaiten")/20);
             }
             if(OnBomb==false&&GetGraze==0){
             }
          }
       }
    }    

