#e
#Title[buMXguwbhv]
#Text[G@Luƒ@񂲁v(IWiL)]
#ScriptVersion[2]

script_enemy_main {
 let img = "script\img\ExRumia.png";
 let name = "buMXguwbhv";

 @Initialize {
  CutIn(KOUMA, name, "", 0, 0, 0, 0);
  SetX(GetCenterX);
  SetY(GetCenterY - 180);
  SetLife(5000);
  SetScore(1000000);
  SetTimer(99);

  LoadGraphic(img);
  SetTexture(img);
  SetGraphicRect(64, 0, 128, 64);

  TMain;
 }

 @MainLoop {
  SetCollisionA(GetX, GetY, 24);
  SetCollisionB(GetX, GetY, 24);

  yield;
 }

 @DrawLoop {
  DrawGraphic(GetX, GetY);
 }

 @Finalize {
  DeleteGraphic(img);
 }

 //ȉ^XN(}CNXbh)

 task TMain {
  yield;

  TMove;
  TShot; //Ă
 }

 task TMove {
  yield;

  loop {
   loop(100) { yield; }
   moveToPlayer(rand(-80, 80), rand(-80, 80), 90, GetClipMinX + 90, GetClipMinY, GetClipMaxX - 90, GetCenterY - 120);
  }
 }

 task TShot {
  let way = 80;
  let r = rand(0.5, 1);
  let pet = rand(1, 3);
  let set = rand(60, 100);
  yield;

  loop {
   loop(way) { yield; }
   if(pet <= 2) {
    CreateShotA(1, GetX, GetY, 0);
    SetShotDataA(1, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(1, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 49, 0, 0, r, WHITE01);
    FireShot(1);
    CreateShotA(2, GetX, GetY, 0);
    SetShotDataA(2, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(2, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 35, 0, 0, r, RED01);
    SetShotDataA(2, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(2);
    CreateShotA(3, GetX, GetY, 0);
    SetShotDataA(3, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(3, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 21, 0, 0, r, RED01);
    SetShotDataA(3, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(3);
    CreateShotA(4, GetX, GetY, 0);
    SetShotDataA(4, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(4, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 7, 0, 0, r, RED01);
    SetShotDataA(4, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(4);
    CreateShotA(5, GetX, GetY, 0);
    SetShotDataA(5, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(5, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 7, 0, 0, r, WHITE01);
    FireShot(5);
    CreateShotA(6, GetX, GetY, 0);
    SetShotDataA(6, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(6, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 21, 0, 0, r, RED01);
    SetShotDataA(6, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(6);
    CreateShotA(7, GetX, GetY, 0);
    SetShotDataA(7, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(7, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 35, 0, 0, r, RED01);
    SetShotDataA(7, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(7);
    CreateShotA(8, GetX, GetY, 0);
    SetShotDataA(8, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(8, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 49, 0, 0, r, WHITE01);
    FireShot(8);

    pet = rand(1, 3);
   }

   if(pet > 2) {
    CreateShotA(1, GetX, GetY, 0);
    SetShotDataA(1, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(1, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 49, 0, 0, r, RED01);
    SetShotDataA(1, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(1);
    CreateShotA(2, GetX, GetY, 0);
    SetShotDataA(2, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(2, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 35, 0, 0, r, RED01);
    SetShotDataA(2, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(2);
    CreateShotA(3, GetX, GetY, 0);
    SetShotDataA(3, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(3, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 21, 0, 0, r, WHITE01);
    FireShot(3);
    CreateShotA(4, GetX, GetY, 0);
    SetShotDataA(4, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(4, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) - 7, 0, 0, r, RED01);
    SetShotDataA(4, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(4);
    CreateShotA(5, GetX, GetY, 0);
    SetShotDataA(5, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(5, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 7, 0, 0, r, RED01);
    SetShotDataA(5, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(5);
    CreateShotA(6, GetX, GetY, 0);
    SetShotDataA(6, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(6, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 21, 0, 0, r, WHITE01);
    FireShot(6);
    CreateShotA(7, GetX, GetY, 0);
    SetShotDataA(7, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(7, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 35, 0, 0, r, RED01);
    SetShotDataA(7, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(7);
    CreateShotA(8, GetX, GetY, 0);
    SetShotDataA(8, 0, r, atan2(GetPlayerY - GetY, GetPlayerX - GetX), 0, 0, r, RED05);
    SetShotDataA(8, set, NULL, atan2(GetPlayerY - GetY, GetPlayerX - GetX) + 49, 0, 0, r, RED01);
    SetShotDataA(8, 120, rand(1, 1.5), NULL, 0, 0, r, WHITE03);
    FireShot(8);

    pet = rand(1, 3);
   }

   r = rand(0.5, 1);
   set = rand(60, 100);

   way -= 1;
   if(way == 20) {
    way = 21;
   }

   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   if(way < 30) {
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
    CreateShot01(GetX, GetY, 1, rand(45, 135), WHITE05, 0);
   }
  }
 }

 function wait(w) {
  loop(w) { yield; }
 }

 function moveToPlayer(xMove, yMove, frame, left, top, right, bottom) {
  let x;
  let y;

  x = GetX + xMove;
  if(x < left) {
   x = left;
  }
  else if(right < x) {
   x = right;
  }

  y = GetY + yMove;
  if(y < top) {
   y = top;
  }
  else if(bottom < y) {
   y = bottom;
  }

  SetMovePosition02(x, y, frame);
 }

}