/// <summary> /// <para>Ronda</para> /// </summary> /// <returns></returns> public IEnumerator Ronda() // Ronda { // Obtener el sistema freya Freya freya = GetComponent <Freya>(); while (true) { this.EnviarNotificacion(ComienzoRondaNotificacion); // Obtener las unidades actuales List <Unidad> unidades = new List <Unidad>(freya.unidades); // Agregar al stats for (int n = 0; n < unidades.Count; n++) { Stats s = unidades[n].GetComponent <Stats>(); s[TipoStats.CTR] += s[TipoStats.SPD]; } // Ordenar las unidades unidades.Sort((a, b) => GetCounter(a).CompareTo(GetCounter(b))); // Tomar turno for (int n = unidades.Count - 1; n >= 0; n--) { if (TomarTurno(unidades[n])) { // Cambiar el turno a la unidad freya.turno.Cambio(unidades[n]); unidades[n].EnviarNotificacion(TurnoComienzoNotificacion); yield return(unidades[n]); // Obtener el coste minimo del turno int coste = turnoCoste; // Modificar los parametros de la unidad (Ataque / Mover) if (freya.turno.puedeUnidadMover) { coste += movCoste; } if (freya.turno.puedeUnidadAtacar) { coste += accionCoste; } // Quitar el CTR por haber movido o atacado Stats s = unidades[n].GetComponent <Stats>(); s.SetValue(TipoStats.CTR, s[TipoStats.CTR] - coste, false); unidades[n].EnviarNotificacion(TurnoCompletadoNotificacion); } } // Terminar la ronda this.EnviarNotificacion(FinRondaNotificacion); } }
public void Start() { estadoBatalla = Freya.Esperando; enemigos.AddRange(GameObject.FindGameObjectsWithTag("Enemigo")); aliados.AddRange(GameObject.FindGameObjectsWithTag("Aliado")); aliadoGUI = AliadoGUI.Activado; panelAcciones.SetActive(false); panelSeleccionEnemigo.SetActive(false); panelMagia.SetActive(false); panelEspeciales.SetActive(false); panelObjetos.SetActive(false); CrearBtnEnemigos(); }
public static void ConfirmCombo() { if (comboIsReady == true) { DistanceUpdate(); DistanceNormalize(); Monster.HPUpdate(); Monster.RageUpdate(); Freya.HPUpdate(); ClearComboLine(); } if (comboIsReady == false) { ClearComboLine(); } }
/// <summary> /// <para>Inicializacion de <see cref="BaseObjetivoBatalla"/></para> /// </summary> public virtual void Awake() // Inicializacion de BaseObjetivoBatalla { freya = GetComponent <Freya>(); }
/// <summary> /// <para>Inicializador de <see cref="EstadoFreya"/>.</para> /// </summary> public virtual void Awake() // Inicializador de EstadoFreya { freya = GetComponent <Freya>(); }
/// <summary> /// <para>Inicializador de <see cref="AIController"/></para> /// </summary> private void Awake() // Inicializador de AIController { // Obtener freya freya = GetComponent <Freya>(); }
public void Update() { switch (estadoBatalla) { case Freya.Esperando: if (proxTurno.Count > 0) { estadoBatalla = Freya.TomarAccion; } break; case Freya.TomarAccion: GameObject proceso = GameObject.Find(proxTurno[0].enemigo); if (proxTurno[0].tipo == "Enemigo") { EnemigoMEstados EME = proceso.GetComponent <EnemigoMEstados>(); for (int n = 0; n < aliados.Count; n++) { if (proxTurno[0].objetivoEnemigo == aliados[n]) { EME.posicionAliado = proxTurno[0].objetivoEnemigo; EME.estadoTurno = EstadoTurno.Accion; break; } else { proxTurno[0].objetivoEnemigo = aliados[Random.Range(0, aliados.Count)]; EME.posicionAliado = proxTurno[0].objetivoEnemigo; EME.estadoTurno = EstadoTurno.Accion; } } } if (proxTurno[0].tipo == "Aliado") { AliadoMEstados AME = proceso.GetComponent <AliadoMEstados>(); AME.posicionEnemigo = proxTurno[0].objetivoEnemigo; AME.estadoTurno = EstadoTurno.Accion; } estadoBatalla = Freya.RealizarAccion; break; case Freya.RealizarAccion: break; case Freya.ComprobarVida: if (aliados.Count < 1) { // Ganar Batalla estadoBatalla = Freya.Derrota; } else if (enemigos.Count < 1) { // Perder Batalla estadoBatalla = Freya.Ganar; } else { // Limpiar panel ClearPanelAtaque(); aliadoGUI = AliadoGUI.Activado; } break; case Freya.Derrota: NGUIDebug.Log("Has perdido la batalla"); for (int i = 0; i < enemigos.Count; i++) { enemigos[0].GetComponent <EnemigoMEstados>().estadoTurno = EstadoTurno.Esperando; } break; case Freya.Ganar: NGUIDebug.Log("Has ganado la batalla"); for (int i = 0; i < aliados.Count; i++) { aliados[0].GetComponent <AliadoMEstados>().estadoTurno = EstadoTurno.Esperando; } break; } switch (aliadoGUI) { case AliadoGUI.Activado: if (ManagerAliado.Count > 0) { ManagerAliado[0].transform.Find("Selector").gameObject.SetActive(true); eleccionAliado = new clsControlTurno(); panelAcciones.SetActive(true); CrearBtnAtaques(); aliadoGUI = AliadoGUI.Esperando; } break; case AliadoGUI.Esperando: Time.timeScale = 0.0f; break; case AliadoGUI.Finalizado: AliadoTurnoTerminado(); break; } }