/// <summary> /// <para>Quita una condicion</para> /// </summary> /// <param name="target">Condicion</param> public void Remove(CondicionEstadoUnidad target) // Quita una condicion { EfectoEstadoUnidad efecto = target.GetComponentInParent <EfectoEstadoUnidad>(); target.transform.SetParent(null); Destroy(target.gameObject); CondicionEstadoUnidad condicion = efecto.GetComponentInChildren <CondicionEstadoUnidad>(); if (condicion == null) { efecto.transform.SetParent(null); Destroy(efecto.gameObject); this.EnviarNotificacion(RemoveNotificacion, efecto); } }
/// <summary> /// <para>Aplica el damage</para> /// </summary> /// <param name="target">Area</param> public override int OnAplicar(Area target) { Unidad defensor = target.contenido.GetComponent <Unidad>(); EstadoUnidad estado = defensor.GetComponentInChildren <EstadoUnidad>(); DuracionCondicionEstadoUnidad[] candidatos = estado.GetComponentsInChildren <DuracionCondicionEstadoUnidad>(); for (int i = candidatos.Length - 1; i >= 0; --i) { EfectoEstadoUnidad efecto = candidatos[i].GetComponentInParent <EfectoEstadoUnidad>(); if (Tipos.Contains(efecto.GetType())) { candidatos[i].Remove(); } } return(0); }