private async Task antes_Fin_Turno() { if (!pelea.turno_actual) { return; } if (configuracion.tactica == Tactica.PASIVA) { await fin_Turno(400); return; } if (pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo() && configuracion.tactica == Tactica.AGRESIVA) { await fin_Turno(400); return; } if (pelea.jugador_luchador.pm > 0 && pelea.get_Enemigos.Any()) { bool cercano = configuracion.tactica == Tactica.AGRESIVA || !hechizo_lanzado; await get_Mover(cercano, pelea.get_Enemigo_Mas_Cercano()); final_turno = true; } await fin_Turno(400); }
public async Task <ResultadoLanzandoHechizo> manejador_Hechizos(PeleaHechizos hechizo) { if (hechizo_para_lanzar != -1 && hechizo_para_lanzar == hechizo.id) { if (GlobalConf.mostrar_mensajes_debug) { cuenta.logger.log_informacion("DEBUG", $"Se ha lanzado el hechizo {hechizo.nombre} atacando a {enemigos_tocados} enemigos en la celda {celda_objetivo}"); } await pelea.get_Lanzar_Hechizo(hechizo.id, celda_objetivo); hechizo_para_lanzar = -1; celda_objetivo = -1; enemigos_tocados = 0; return(ResultadoLanzandoHechizo.LANZADO); } if (!get_Distancia_Buena(hechizo)) { return(ResultadoLanzandoHechizo.NO_LANZADO); } if (hechizo.necesita_piedra)//Para capturar { ObjetosInventario arma = cuenta.juego.personaje.inventario.get_Objeto_en_Posicion(InventarioPosiciones.ARMA); if (arma != null && arma.id_modelo != 83) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } else { return(ResultadoLanzandoHechizo.NO_LANZADO); } } if (hechizo.focus == HechizoFocus.CELDA_VACIA) { return(await lanzar_Hechizo_Celda_Vacia(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.AMBOS && !hechizo.es_aoe) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.ALEJADO && !hechizo.es_aoe && !pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo()) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC && !hechizo.es_aoe && pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo()) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC && !hechizo.es_aoe && !pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo()) { return(await get_Mover_Lanzar_hechizo_Simple(hechizo, get_Objetivo_Mas_Cercano(hechizo))); } if (hechizo.es_aoe) { if (pelea.total_enemigos_vivos > 1) { return(await lanzar_Hechizo_AOE(hechizo)); } else { return(await get_Lanzar_Hechizo_Simple(hechizo)); } } return(ResultadoLanzandoHechizo.NO_LANZADO); }