task ballCircs(){
  //{
		let aux; const int frame = 25;

    real r = 0, y;
    real[] x = [0, 0]; 
	//}

  while(GetCommonData("BossLife", 6000) > 1000 && GetCommonData("Timer", 600) > 27){yield;}
  while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){

    PlaySFXV(SFX_SHOT03, 30); 
    ascent(int ct in 0..frame){
      if(Obj_IsDeleted(objBoss)){return;}
      PlaySFXV(SFX_SHOT04, 40); 
      
      x = Interpolate_Linear([bx-40, bx+40], [bx+250, bx-250], ct/(frame-1));
      y = Interpolate_Linear(by+20, by-120, ct/(frame-1));
      ascent(int i in 0..8){
        let a = r + 360/8*i;
        CScaledShotA2(x[0], y, 6, a, -1/15, 1.9, SHOT_SCALE_DORANGE, 7, 1.15);

        a = (180 - r) + 360/8*i;
        CScaledShotA2(x[1], y, 6, a, -1/15, 1.9, SHOT_SCALE_DORANGE, 7, 1.15);
      }

      r += 360/16 + rand(-8, 8);
      wait(3);
    }
    PlaySFXV(SFX_SHOT03, 30); 

    wait(60*4);
  }
}

task showWarning(){

  let text;

  let p01 = ObjText_Create(); 
	ObjText_SetFontType(p01, "Monofonto");
	ObjText_SetFontSize(p01, 29.5);
	ObjText_SetFontBold(p01, false);
	ObjText_SetFontColorTop(p01, 255, 255, 255);
	ObjText_SetFontColorBottom(p01, 255, 255, 255);
	ObjText_SetFontBorderType(p01, BORDER_FULL);
	ObjText_SetFontBorderColor(p01, 0, 0, 0);
	ObjText_SetFontBorderWidth(p01, 2);
  Obj_SetRenderPriority(p01, 1);
	ObjText_SetFontCharacterSet(p01, 0x00000001);

  ObjText_SetText(p01, "Use C to [font bc=(255,255,51)]purify[font clear][r]the [font tc=(89,9,170)]dark[font clear] bullets!");
  ObjRender_SetX(p01, gx-110); ObjRender_SetY(p01, gy);
  ObjRender_SetScaleX(p01, 0);

  ascent(i in 0..15){ObjRender_SetScaleX(p01, i/14); yield;}
  wait(60*2);
  ascent(i in 0..15){
    ObjRender_SetScaleXYZ(p01, 1 + (i/14)*2, 1 + (i/14)*2, 0);
    ObjRender_SetAlpha(p01, 255 - 255*(i/14));
    yield;
  }

  Obj_Delete(p01);
  ObjEnemy_SetDamageRate(objBoss, 10, 15);
}