task missiles(){
  if(ObjEnemy_GetInfo(objBoss, INFO_LIFE) <= 0){return;} //Default kill to prevent (0,0) spawning
	//{
		let aux;
    
    let r = 0; let n = 0;
    let pos = []; let rani = 0;
	//}
	
  action();
  while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){

    PlaySFXV(SFX_SHOT00, 18);
    ascent(i in 0..2){
      let a = r + 360/2*i; let b = n + 360/2*i;

      ascent(j in 0..7){
        aux = CShotA2(bx + (rani+100)*cos(b), by + rani*sin(b), 4, a+(360/7*j)*(-1 + i*2), -1/50, 3, AMULET_INV_AZURE - 7*i, 5);
      }
    }

    rani += 3; rani = (rani < 55) ? rani : 55;

    r -= 11; n += 5; 
    wait(7);
  }
}

task action(){
  //{
		let aux;
    
    let r = 0; let n = 0;
    let pos = []; let rani = 0;
	//}

  wait(60*2.2);
  while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){
    
    PlaySFXV(SFX_SHOT01, 56);
    descent(j in 0..7){
      ascent(i in 0..24){
        let a = r + 360/24*i; 

        aux = CShotA1(bx, by, 2.25+j/4, a, LARGE_PURPLE, 11);
        ObjShot_SetSpellResist(aux, true);
      }

      r += 360/48; wait(10);
    }

    r = rand(0,360);
    wait(60*1.8);
  }
}