private async Task <ResultadoLanzandoHechizo> get_Lanzar_Hechizo_Simple(PeleaHechizos hechizo)
        {
            if (pelea.get_Puede_Lanzar_hechizo(hechizo.id) != FallosLanzandoHechizo.NINGUNO)
            {
                return(ResultadoLanzandoHechizo.NO_LANZADO);
            }

            Luchadores enemigo = get_Objetivo_Mas_Cercano(hechizo);

            if (enemigo != null)
            {
                FallosLanzandoHechizo resultado = pelea.get_Puede_Lanzar_hechizo(hechizo.id, pelea.jugador_luchador.celda, enemigo.celda, mapa);

                if (resultado == FallosLanzandoHechizo.NINGUNO)
                {
                    await pelea.get_Lanzar_Hechizo(hechizo.id, enemigo.celda.id);

                    return(ResultadoLanzandoHechizo.LANZADO);
                }

                if (resultado == FallosLanzandoHechizo.NO_ESTA_EN_RANGO)
                {
                    return(await get_Mover_Lanzar_hechizo_Simple(hechizo, enemigo));
                }
            }
            else if (hechizo.focus == HechizoFocus.CELDA_VACIA)
            {
                return(await lanzar_Hechizo_Celda_Vacia(hechizo));
            }

            return(ResultadoLanzandoHechizo.NO_LANZADO);
        }
        // Token: 0x0600019E RID: 414 RVA: 0x00007500 File Offset: 0x00005900
        private async Task <ResultadoLanzandoHechizo> get_Lanzar_Hechizo_Simple(HechizoPelea hechizo)
        {
            bool flag = this.pelea.get_Puede_Lanzar_hechizo(hechizo.id) > FallosLanzandoHechizo.NINGUNO;
            ResultadoLanzandoHechizo result;

            if (flag)
            {
                result = ResultadoLanzandoHechizo.NO_LANZADO;
            }
            else
            {
                Luchadores enemigo = this.get_Objetivo_Mas_Cercano(hechizo);
                bool       flag2   = enemigo != null;
                if (flag2)
                {
                    FallosLanzandoHechizo resultado = this.pelea.get_Puede_Lanzar_hechizo(hechizo.id, this.pelea.jugador_luchador.celda, enemigo.celda, this.mapa);
                    bool flag3 = resultado == FallosLanzandoHechizo.NINGUNO;
                    if (flag3)
                    {
                        this.cuenta.logger.log_Fight("COMBAT", "Lancement du sort " + hechizo.nombre + " ...");
                        await this.pelea.get_Lanzar_Hechizo(hechizo.id, enemigo.celda.id);

                        return(ResultadoLanzandoHechizo.LANZADO);
                    }
                    if (resultado == FallosLanzandoHechizo.NO_ESTA_EN_RANGO)
                    {
                        this.cuenta.logger.log_Fight("COMBAT", "Lancement du sort " + hechizo.nombre + " ...");
                        return(await this.get_Mover_Lanzar_hechizo_Simple(hechizo, enemigo));
                    }
                }
                else if (hechizo.focus == HechizoFocus.CELL_VIDE)
                {
                    this.cuenta.logger.log_Fight("COMBAT", "Lancement du sort " + hechizo.nombre + " ...");
                    return(await this.lanzar_Hechizo_Celda_Vacia(hechizo));
                }
                result = ResultadoLanzandoHechizo.NO_LANZADO;
            }
            return(result);
        }
Exemple #3
0
        private async Task <ResultadoLanzandoHechizo> get_Lanzar_Hechizo_Simple(HechizoPelea hechizo, bool capturer = false)
        {
            if (pelea.get_Puede_Lanzar_hechizo(hechizo.id) != FallosLanzandoHechizo.NINGUNO)
            {
                return(ResultadoLanzandoHechizo.NO_LANZADO);
            }



            /* gestion sort capture */
            bool lancer_capture = is_Spell_capture_lancable();

            if (cuenta.isGroupLeader == true)
            {
                if (cuenta.needToCapture == true && cuenta.game.fight.jugador_luchador.esta_vivo == false)
                {
                    capturer = false;
                }
            }
            if (cuenta.hasGroup == true)
            {
                foreach (var membre in cuenta.group.members)
                {
                    if (membre.needToCapture == true && membre.game.fight.jugador_luchador.esta_vivo == false)
                    {
                        capturer = false;
                    }
                }
            }

            if (lancer_capture == true && cuenta.needToCapture == false && cuenta.capturelance == false && capturer == true && cuenta.capturefight == true)
            {
                cuenta.Logger.LogInfo($"Fight", $"CAPTURE INFO : Je lance pas de sort, la capture doit étre lancé par un autre");
                return(ResultadoLanzandoHechizo.NO_LANZADO);
            }
            if (lancer_capture == true && cuenta.needToCapture == true && capturer == true && cuenta.capturelance == false && cuenta.capturefight == true)
            {
                hechizo = cuenta.fightExtension.configuracion.hechizos.FirstOrDefault(o => o.id == 413);
                Luchadores            lanceur_capture = get_Objetivo_Mas_Cercano(hechizo);
                FallosLanzandoHechizo result          = pelea.get_Puede_Lanzar_hechizo(hechizo.id, pelea.jugador_luchador.celda, lanceur_capture.celda, mapa);

                if (result == FallosLanzandoHechizo.NINGUNO)
                {
                    cuenta.Logger.LogInfo($"Fight", $"CAPTURE INFO : Je lance la capture");
                    await pelea.get_Lanzar_Hechizo(hechizo.id, lanceur_capture.celda.cellId);

                    if (cuenta.hasGroup == true)
                    {
                        cuenta.group.lider.capturelance = true;
                        foreach (var item in cuenta.group.members)
                        {
                            item.capturelance = true;
                        }
                    }
                    else
                    {
                        cuenta.capturelance = true;
                    }
                    return(ResultadoLanzandoHechizo.CAPTURE_LANZADO);
                }
                else
                {
                    cuenta.Logger.LogInfo($"Fight", $"CAPTURE INFO : Je doit lancer la capture mais pas possible " + result);
                    return(ResultadoLanzandoHechizo.CAPTURE_NO_LANZADO);
                }
            }
            else if (lancer_capture == false && hechizo.id == 413 && cuenta.needToCapture == true && capturer == true && cuenta.capturelance == false && cuenta.capturefight == true)
            {
                cuenta.Logger.LogInfo($"Fight", $"CAPTURE INFO : Pas le moment pour lancer la capture");
                return(ResultadoLanzandoHechizo.CAPTURE_NO_LANZADO);
            }

            Luchadores enemigo = get_Objetivo_Mas_Cercano(hechizo);


            if (enemigo != null)
            {
                FallosLanzandoHechizo resultado = pelea.get_Puede_Lanzar_hechizo(hechizo.id, pelea.jugador_luchador.celda, enemigo.celda, mapa);

                if (resultado == FallosLanzandoHechizo.NINGUNO)
                {
                    await pelea.get_Lanzar_Hechizo(hechizo.id, enemigo.celda.cellId);

                    return(ResultadoLanzandoHechizo.LANZADO);
                }

                if (resultado == FallosLanzandoHechizo.NO_ESTA_EN_RANGO)
                {
                    return(await get_Mover_Lanzar_hechizo_Simple(hechizo, enemigo));
                }
            }
            else if (hechizo.focus == HechizoFocus.CELDA_VACIA)
            {
                return(await lanzar_Hechizo_Celda_Vacia(hechizo));
            }

            return(ResultadoLanzandoHechizo.NO_LANZADO);
        }