public async Task <ResultadoLanzandoHechizo> manejador_Hechizos(HechizoPelea hechizo) { if (hechizo.focus == HechizoFocus.CELDA_VACIA) { return(await lanzar_Hechizo_Celda_Vacia(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.AMBOS) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.ALEJADO && !cuenta.Game.Fight.esta_Cuerpo_A_Cuerpo_Con_Enemigo()) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC && cuenta.Game.Fight.esta_Cuerpo_A_Cuerpo_Con_Enemigo()) { return(await get_Lanzar_Hechizo_Simple(hechizo)); } if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC && !cuenta.Game.Fight.esta_Cuerpo_A_Cuerpo_Con_Enemigo()) { return(await get_Mover_Lanzar_hechizo_Simple(hechizo, get_Objetivo_Mas_Cercano(hechizo))); } return(ResultadoLanzandoHechizo.NO_LANZADO); }
private async Task <ResultadoLanzandoHechizo> lanzar_Hechizo_Celda_Vacia(HechizoPelea hechizo_pelea) { if (pelea.get_Puede_Lanzar_hechizo(hechizo_pelea.id) != FallosLanzandoHechizo.NINGUNO) { return(ResultadoLanzandoHechizo.NO_LANZADO); } if (hechizo_pelea.focus == HechizoFocus.CELDA_VACIA && pelea.get_Cuerpo_A_Cuerpo_Enemigo().Count() == 4) { return(ResultadoLanzandoHechizo.NO_LANZADO); } Spell hechizo = cuenta.game.character.get_Hechizo(hechizo_pelea.id); SpellStats datos_hechizo = hechizo.get_Stats(); List <short> rangos_disponibles = pelea.get_Rango_hechizo(pelea.jugador_luchador.celda, datos_hechizo, mapa); foreach (short rango in rangos_disponibles) { if (pelea.get_Puede_Lanzar_hechizo(hechizo_pelea.id, pelea.jugador_luchador.celda, mapa.GetCellFromId(rango), mapa) == FallosLanzandoHechizo.NINGUNO) { if (hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.CAC || hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.AMBOS && mapa.GetCellFromId(rango).GetDistanceBetweenCells(pelea.jugador_luchador.celda) != 1) { continue; } await pelea.get_Lanzar_Hechizo(hechizo_pelea.id, rango); return(ResultadoLanzandoHechizo.LANZADO); } } return(ResultadoLanzandoHechizo.NO_LANZADO); }
private async Task <ResultadoLanzandoHechizo> lanzar_Hechizo_Celda_Vacia(HechizoPelea hechizo_pelea) { if (_fight.get_Puede_Lanzar_hechizo(hechizo_pelea.id) != FallosLanzandoHechizo.NONE) { return(ResultadoLanzandoHechizo.NO_LANZADO); } if (hechizo_pelea.focus == HechizoFocus.CELDA_VACIA && _fight.get_Cuerpo_A_Cuerpo_Enemigo().Count() == 4) { return(ResultadoLanzandoHechizo.NO_LANZADO); } Hechizo hechizo = cuenta.Game.Character.get_Hechizo(hechizo_pelea.id); HechizoStats datos_hechizo = hechizo.get_Stats(); List <short> rangos_disponibles = _fight.get_Rango_hechizo(_fight.jugador_luchador.celda, datos_hechizo, _map); foreach (short rango in rangos_disponibles) { if (_fight.get_Puede_Lanzar_hechizo(hechizo_pelea.id, _fight.jugador_luchador.celda, _map.get_Celda_Id(rango), _map) == FallosLanzandoHechizo.NONE) { if (hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.CAC || hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.AMBOS && _map.get_Celda_Id(rango).get_Distancia_Entre_Dos_Casillas(_fight.jugador_luchador.celda) != 1) { continue; } await _fight.get_Lanzar_Hechizo(hechizo_pelea.id, rango); return(ResultadoLanzandoHechizo.LANZADO); } } return(ResultadoLanzandoHechizo.NO_LANZADO); }
private async Task <ResultadoLanzandoHechizo> get_Lanzar_Hechizo_Simple(HechizoPelea hechizo) { if (_fight.get_Puede_Lanzar_hechizo(hechizo.id) != FallosLanzandoHechizo.NONE) { return(ResultadoLanzandoHechizo.NO_LANZADO); } Luchadores enemigo = get_Objetivo_Mas_Cercano(hechizo); if (enemigo != null) { FallosLanzandoHechizo resultado = _fight.get_Puede_Lanzar_hechizo(hechizo.id, _fight.jugador_luchador.celda, enemigo.celda, _map); if (resultado == FallosLanzandoHechizo.NONE) { await _fight.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); }
private async Task get_Procesar_hechizo() { if (cuenta?.esta_luchando() == false || configuracion == null) { return; } if (hechizo_lanzado_index >= configuracion.hechizos.Count) { await get_Fin_Turno(); return; } HechizoPelea hechizo_actual = configuracion.hechizos[hechizo_lanzado_index]; if (hechizo_actual.lanzamientos_restantes == 0) { await get_Procesar_Siguiente_Hechizo(hechizo_actual); return; } ResultadoLanzandoHechizo resultado = await manejador_hechizos.manejador_Hechizos(hechizo_actual); switch (resultado) { case ResultadoLanzandoHechizo.NO_LANZADO: await get_Procesar_Siguiente_Hechizo(hechizo_actual); if (GlobalConf.mostrar_mensajes_debug) { cuenta.logger.log_informacion("DEBUG", $"Hechizo {hechizo_actual.nombre} no lanzado"); } break; case ResultadoLanzandoHechizo.LANZADO: hechizo_actual.lanzamientos_restantes--; esperando_sequencia_fin = true; if (GlobalConf.mostrar_mensajes_debug) { cuenta.logger.log_informacion("DEBUG", $"Hechizo {hechizo_actual.nombre} lanzado"); } break; case ResultadoLanzandoHechizo.MOVIDO: esperando_sequencia_fin = true; if (GlobalConf.mostrar_mensajes_debug) { cuenta.logger.log_informacion("DEBUG", $"El bot se ha desplazado porque no ha podido lanzar {hechizo_actual.nombre} "); } break; } }
private async Task get_Procesar_hechizo() { if (cuenta?.IsFighting() == false || configuracion == null) { return; } if (hechizo_lanzado_index >= configuracion.hechizos.Count) { await get_Fin_Turno(); return; } HechizoPelea hechizo_actual = configuracion.hechizos[hechizo_lanzado_index]; if (hechizo_actual.lanzamientos_restantes == 0) { await get_Procesar_Siguiente_Hechizo(hechizo_actual); return; } ResultadoLanzandoHechizo resultado = await manejador_hechizos.manejador_Hechizos(hechizo_actual, pelea.account.capturefight); switch (resultado) { case ResultadoLanzandoHechizo.CAPTURE_LANZADO: hechizo_actual = configuracion.hechizos.FirstOrDefault(o => o.id == 413); hechizo_actual.lanzamientos_restantes--; esperando_sequencia_fin = true; break; case ResultadoLanzandoHechizo.CAPTURE_NO_LANZADO: hechizo_actual = configuracion.hechizos.FirstOrDefault(o => o.id == 413); await get_Procesar_Siguiente_Hechizo(hechizo_actual); break; case ResultadoLanzandoHechizo.NO_LANZADO: await get_Procesar_Siguiente_Hechizo(hechizo_actual); break; case ResultadoLanzandoHechizo.LANZADO: hechizo_actual.lanzamientos_restantes--; esperando_sequencia_fin = true; break; case ResultadoLanzandoHechizo.MOVIDO: esperando_sequencia_fin = true; break; } }
private async Task get_Procesar_Siguiente_Hechizo(HechizoPelea hechizo_actual) { if (cuenta?.IsFighting() == false) { return; } hechizo_actual.lanzamientos_restantes = hechizo_actual.lanzamientos_x_turno; hechizo_lanzado_index++; await get_Procesar_hechizo(); }
private async Task get_Procesar_Siguiente_Hechizo(HechizoPelea hechizo_actual) { if (Account?.IsFighting() == false) { return; } hechizo_actual.lanzamientos_restantes = hechizo_actual.lanzamientos_x_turno; hechizo_lanzado_index++; await Task.Delay(350 + Account.Connection.get_Actual_Ping()); await get_Procesar_hechizo(); }
// Token: 0x060001E4 RID: 484 RVA: 0x0000941C File Offset: 0x0000781C private async Task get_Procesar_Siguiente_Hechizo(HechizoPelea hechizo_actual) { Cuenta cuenta = this.cuenta; bool flag = cuenta != null && !cuenta.esta_luchando(); if (!flag) { hechizo_actual.lanzamientos_restantes = hechizo_actual.lanzamientos_x_turno; this.hechizo_lanzado_index++; await Task.Delay(100); await this.get_Procesar_hechizo(); } }
private Luchadores get_Objetivo_Mas_Cercano(HechizoPelea hechizo) { if (hechizo.focus == HechizoFocus.ENCIMA) { return(_fight.jugador_luchador); } if (hechizo.focus == HechizoFocus.CELDA_VACIA) { return(null); } return(hechizo.focus == HechizoFocus.ENEMIGO ? _fight.get_Obtener_Enemigo_Mas_Cercano() : _fight.get_Obtener_Aliado_Mas_Cercano()); }
private async Task get_Procesar_Siguiente_Hechizo(HechizoPelea hechizo_actual) { if (cuenta?.esta_luchando() == false) { return; } hechizo_actual.lanzamientos_restantes = hechizo_actual.lanzamientos_x_turno; hechizo_lanzado_index++; await Task.Delay(350 + cuenta.conexion.get_Actual_Ping()); await get_Procesar_hechizo(); }
private void button_bajar_hechizo_Click(object sender, EventArgs e) { if (listView_hechizos_pelea.FocusedItem == null || listView_hechizos_pelea.FocusedItem.Index == 0) { return; } List <HechizoPelea> hechizo = cuenta.CombatExtensions.configuracion.hechizos; HechizoPelea temporal = hechizo[listView_hechizos_pelea.FocusedItem.Index + 1]; hechizo[listView_hechizos_pelea.FocusedItem.Index + 1] = hechizo[listView_hechizos_pelea.FocusedItem.Index]; hechizo[listView_hechizos_pelea.FocusedItem.Index] = temporal; cuenta.CombatExtensions.configuracion.guardar(); refrescar_Lista_Hechizos(); }
private async Task get_Procesar_Siguiente_Hechizo(HechizoPelea hechizo_actual) { if (cuenta?.IsFighting() == false) { return; } hechizo_actual.lanzamientos_restantes = hechizo_actual.lanzamientos_x_turno; hechizo_lanzado_index++; var t = new Random().Next(500, 900); cuenta.logger.log_informacion($"Fight", $"Waiting for : {t} ms to cast the spell"); await Task.Delay(t); await get_Procesar_hechizo(); }
// Token: 0x060001E1 RID: 481 RVA: 0x00009344 File Offset: 0x00007744 private async Task get_Procesar_hechizo() { Cuenta cuenta = this.cuenta; bool flag = (cuenta != null && !cuenta.esta_luchando()) || this.configuracion == null; if (!flag) { bool flag2 = this.hechizo_lanzado_index >= this.configuracion.hechizos.Count; if (flag2) { await this.get_Fin_Turno(); } else { HechizoPelea hechizo_actual = this.configuracion.hechizos[this.hechizo_lanzado_index]; if (hechizo_actual.lanzamientos_restantes == 0) { await this.get_Procesar_Siguiente_Hechizo(hechizo_actual); } else { switch (await this.manejador_hechizos.manejador_Hechizos(hechizo_actual)) { case ResultadoLanzandoHechizo.LANZADO: { HechizoPelea hechizoPelea = hechizo_actual; hechizoPelea.lanzamientos_restantes -= 1; this.esperando_sequencia_fin = true; break; } case ResultadoLanzandoHechizo.MOVIDO: this.esperando_sequencia_fin = true; break; case ResultadoLanzandoHechizo.NO_LANZADO: await this.get_Procesar_Siguiente_Hechizo(hechizo_actual); break; } } } } }
private async Task get_Procesar_hechizo() { if (cuenta?.esta_luchando() == false || configuracion == null) { return; } if (hechizo_lanzado_index >= configuracion.hechizos.Count) { await get_Fin_Turno(); return; } HechizoPelea hechizo_actual = configuracion.hechizos[hechizo_lanzado_index]; if (hechizo_actual.lanzamientos_restantes == 0) { await get_Procesar_Siguiente_Hechizo(hechizo_actual); return; } ResultadoLanzandoHechizo resultado = await manejador_hechizos.manejador_Hechizos(hechizo_actual); switch (resultado) { case ResultadoLanzandoHechizo.NO_LANZADO: await get_Procesar_Siguiente_Hechizo(hechizo_actual); break; case ResultadoLanzandoHechizo.LANZADO: hechizo_actual.lanzamientos_restantes--; esperando_sequencia_fin = true; break; case ResultadoLanzandoHechizo.MOVIDO: esperando_sequencia_fin = true; break; } }
// Token: 0x0600019D RID: 413 RVA: 0x000074B0 File Offset: 0x000058B0 public async Task <ResultadoLanzandoHechizo> manejador_Hechizos(HechizoPelea hechizo) { bool flag = hechizo.focus == HechizoFocus.CELL_VIDE; ResultadoLanzandoHechizo result; if (flag) { ResultadoLanzandoHechizo resultadoLanzandoHechizo = await this.lanzar_Hechizo_Celda_Vacia(hechizo); result = resultadoLanzandoHechizo; } else if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC_ET_DISTANCE) { ResultadoLanzandoHechizo resultadoLanzandoHechizo2 = await this.get_Lanzar_Hechizo_Simple(hechizo); result = resultadoLanzandoHechizo2; } else if (hechizo.metodo_lanzamiento == MetodoLanzamiento.DISTANCE && !this.cuenta.juego.pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo(null)) { ResultadoLanzandoHechizo resultadoLanzandoHechizo3 = await this.get_Lanzar_Hechizo_Simple(hechizo); result = resultadoLanzandoHechizo3; } else if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC && this.cuenta.juego.pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo(null)) { ResultadoLanzandoHechizo resultadoLanzandoHechizo4 = await this.get_Lanzar_Hechizo_Simple(hechizo); result = resultadoLanzandoHechizo4; } else if (hechizo.metodo_lanzamiento == MetodoLanzamiento.CAC && !this.cuenta.juego.pelea.esta_Cuerpo_A_Cuerpo_Con_Enemigo(null)) { ResultadoLanzandoHechizo resultadoLanzandoHechizo5 = await this.get_Mover_Lanzar_hechizo_Simple(hechizo, this.get_Objetivo_Mas_Cercano(hechizo)); result = resultadoLanzandoHechizo5; } else { result = ResultadoLanzandoHechizo.NO_LANZADO; } return(result); }
// Token: 0x060001A0 RID: 416 RVA: 0x000075A8 File Offset: 0x000059A8 private async Task <ResultadoLanzandoHechizo> lanzar_Hechizo_Celda_Vacia(HechizoPelea hechizo_pelea) { bool flag = this.pelea.get_Puede_Lanzar_hechizo(hechizo_pelea.id) > FallosLanzandoHechizo.NINGUNO; ResultadoLanzandoHechizo result; if (flag) { result = ResultadoLanzandoHechizo.NO_LANZADO; } else { bool flag2 = hechizo_pelea.focus == HechizoFocus.CELL_VIDE && this.pelea.get_Cuerpo_A_Cuerpo_Enemigo(null).Count <Luchadores>() == 4; if (flag2) { result = ResultadoLanzandoHechizo.NO_LANZADO; } else { Hechizo hechizo = this.cuenta.juego.personaje.get_Hechizo(hechizo_pelea.id); HechizoStats datos_hechizo = hechizo.get_Stats(); List <short> rangos_disponibles = this.pelea.get_Rango_hechizo(this.pelea.jugador_luchador.celda, datos_hechizo, this.mapa); foreach (short rango in rangos_disponibles) { bool flag3 = this.pelea.get_Puede_Lanzar_hechizo(hechizo_pelea.id, this.pelea.jugador_luchador.celda, this.mapa.get_Celda_Id(rango), this.mapa) == FallosLanzandoHechizo.NINGUNO; if (flag3) { bool flag4 = hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.CAC || (hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.CAC_ET_DISTANCE && this.mapa.get_Celda_Id(rango).get_Distancia_Entre_Dos_Casillas(this.pelea.jugador_luchador.celda) != 1); if (!flag4) { await this.pelea.get_Lanzar_Hechizo(hechizo_pelea.id, rango); return(ResultadoLanzandoHechizo.LANZADO); } } } List <short> .Enumerator enumerator = default(List <short> .Enumerator); result = ResultadoLanzandoHechizo.NO_LANZADO; } } return(result); }
private Luchadores get_Objetivo_Mas_Cercano(HechizoPelea hechizo) { Spell Spell = cuenta.game.character.get_Hechizo(hechizo.id); SpellStats SpellStats = Spell.get_Stats(); int range = SpellStats.alcanze_maximo; if (hechizo.focus == HechizoFocus.ENCIMA) { return(pelea.jugador_luchador); } if (hechizo.focus == HechizoFocus.CELDA_VACIA) { return(null); } return(hechizo.focus == HechizoFocus.ENEMIGO ? pelea.get_Obtener_Enemigo_Mas_Cercano(range) : pelea.get_Obtener_Aliado_Mas_Cercano()); }
// 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); }
// Token: 0x060001A1 RID: 417 RVA: 0x000075F8 File Offset: 0x000059F8 private Luchadores get_Objetivo_Mas_Cercano(HechizoPelea hechizo) { bool flag = hechizo.focus == HechizoFocus.SOIS_MEME; Luchadores result; if (flag) { result = this.pelea.jugador_luchador; } else { bool flag2 = hechizo.focus == HechizoFocus.CELL_VIDE; if (flag2) { result = null; } else { result = ((hechizo.focus == HechizoFocus.ENNEMIE) ? this.pelea.get_Obtener_Enemigo_Mas_Cercano() : this.pelea.get_Obtener_Aliado_Mas_Cercano()); } } return(result); }
// Token: 0x0600019F RID: 415 RVA: 0x00007550 File Offset: 0x00005950 private async Task <ResultadoLanzandoHechizo> get_Mover_Lanzar_hechizo_Simple(HechizoPelea hechizo_pelea, Luchadores enemigo) { KeyValuePair <short, MovimientoNodo>?nodo = null; int pm_utilizados = 99; foreach (KeyValuePair <short, MovimientoNodo> movimiento in PeleasPathfinder.get_Celdas_Accesibles(this.pelea, this.mapa, this.pelea.jugador_luchador.celda)) { bool flag = !movimiento.Value.alcanzable; if (!flag) { bool flag2 = hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.CAC && !this.pelea.esta_Cuerpo_A_Cuerpo_Con_Aliado(this.mapa.get_Celda_Id(movimiento.Key)); if (!flag2) { bool flag3 = this.pelea.get_Puede_Lanzar_hechizo(hechizo_pelea.id, this.mapa.get_Celda_Id(movimiento.Key), enemigo.celda, this.mapa) > FallosLanzandoHechizo.NINGUNO; if (!flag3) { bool flag4 = movimiento.Value.camino.celdas_accesibles.Count <= pm_utilizados; if (flag4) { nodo = new KeyValuePair <short, MovimientoNodo>?(movimiento); pm_utilizados = movimiento.Value.camino.celdas_accesibles.Count; } movimiento = default(KeyValuePair <short, MovimientoNodo>); } } } } Dictionary <short, MovimientoNodo> .Enumerator enumerator = default(Dictionary <short, MovimientoNodo> .Enumerator); bool flag5 = nodo != null; ResultadoLanzandoHechizo result; if (flag5) { await this.cuenta.juego.manejador.movimientos.get_Mover_Celda_Pelea(nodo); result = ResultadoLanzandoHechizo.MOVIDO; } else { result = ResultadoLanzandoHechizo.NO_LANZADO; } return(result); }
private async Task <ResultadoLanzandoHechizo> get_Mover_Lanzar_hechizo_Simple(HechizoPelea hechizo_pelea, Luchadores enemigo) { KeyValuePair <short, MovimientoNodo>?nodo = null; int pm_utilizados = 99; foreach (KeyValuePair <short, MovimientoNodo> movimiento in PeleasPathfinder.get_Celdas_Accesibles(_fight, _map, _fight.jugador_luchador.celda)) { if (!movimiento.Value.alcanzable) { continue; } if (hechizo_pelea.metodo_lanzamiento == MetodoLanzamiento.CAC && !_fight.esta_Cuerpo_A_Cuerpo_Con_Aliado(_map.get_Celda_Id(movimiento.Key))) { continue; } if (_fight.get_Puede_Lanzar_hechizo(hechizo_pelea.id, _map.get_Celda_Id(movimiento.Key), enemigo.celda, _map) != FallosLanzandoHechizo.NONE) { continue; } if (movimiento.Value.camino.celdas_accesibles.Count <= pm_utilizados) { nodo = movimiento; pm_utilizados = movimiento.Value.camino.celdas_accesibles.Count; } } if (nodo != null) { await cuenta.Game.Handler.movimientos.get_Mover_Celda_Pelea(nodo); return(ResultadoLanzandoHechizo.MOVIDO); } return(ResultadoLanzandoHechizo.NO_LANZADO); }
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); }