public AtaqueCombate Atacar(AtaqueID ataqueID)
    {
        AtaqueCombate proximoAtaque = new AtaqueCombate();

        proximoAtaque.haFallado  = ComprobarSiElAtaqueFalla(ataqueID);
        proximoAtaque.tipoAtaque = Pokemon.Ataque(ataqueID).DatosFijos.tipoDeAtaque;

        if (!proximoAtaque.haFallado)
        {
            proximoAtaque.id    = ataqueID;
            proximoAtaque.danio = CalcularDanio(ataqueID);
            proximoAtaque.estadoAlteradoProvocado = CalcularEstadoAlterado(ataqueID);
            if (ComprobarSiSeAutoCura(ataqueID))
            {
                proximoAtaque.pokemonOriginalSeCura             = true;
                proximoAtaque.porcentajeCuracionPokemonOriginal = Pokemon.Ataque(ataqueID).DatosFijos.porcentajeDeCuracion;
            }
            if (ComprobarSiSeAutoInflingeDanio(ataqueID))
            {
                proximoAtaque.pokemonOriginalSeHaceDanio     = true;
                proximoAtaque.porcentajeDanioPokemonOriginal = Pokemon.Ataque(ataqueID).DatosFijos.porcentajeDeDanioAutoInflingido;
            }
        }
        Debug.Log(string.Concat("Pokemon ", Pokemon.ID.ToString(), " va a atacar: ", ataqueID.ToString(), " ", proximoAtaque.ToString()));
        return(proximoAtaque);
    }
 public string ObtenerNombreFicheroAtaque(AtaqueID ataque)
 {
     for (int i = 0; i < listaAtaque.Count; i++)
     {
         if (listaAtaque[i].ID == ataque)
         {
             return(listaAtaque[i].nombreFichero);
         }
     }
     if (ataque != AtaqueID.NINGUNO)
     {
         Debug.LogWarning(string.Concat("No se ha encontrado ningún Ataque con el ID ", ataque.ToString()));
     }
     return(string.Empty);
 }