示例#1
0
        /// <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);
        }