示例#1
0
        /// <summary>
        /// <para>Buscar una unidad cercana</para>
        /// </summary>
        private void BuscarUnidadCercana()        // Buscar una unidad cercana
        {
            unidadCercana = null;

            // Buscar con un criterio
            freya.grid.Buscar(Unidad.Area, delegate(Area arg1, Area arg2)
            {
                if (unidadCercana == null && arg2.contenido != null)
                {
                    Bando bando = arg2.contenido.GetComponentInChildren <Bando>();
                    if (bando != null && Bando.IsCalculo(bando, Objetivos.Enemigo))
                    {
                        // Si la alianza esta
                        Unidad unidad = bando.GetComponent <Unidad>();
                        Stats stats   = unidad.GetComponent <Stats>();
                        // Si la unidad no esta KO
                        if (stats[TipoStats.HP] > 0)
                        {
                            // Obtener la unidad cercana
                            unidadCercana = unidad;
                            return(true);
                        }
                    }
                }
                return(unidadCercana == null);
            });
        }
        /// <summary>
        /// <para>Determina si tiene objetivo</para>
        /// </summary>
        /// <param name="area">Area</param>
        /// <returns></returns>
        public override bool IsTarget(Area area)        // Determina si tiene objetivo
        {
            if (area == null || area.contenido == null)
            {
                return(false);
            }

            Bando bandoAre = area.contenido.GetComponentInChildren <Bando>();

            return(bando.IsCalculo(bandoAre, Objetivos.Enemigo));
        }
示例#3
0
        public bool IsConfuso;                                                  // Determina si esta confusa la unidad
        #endregion

        #region Funcionalidad
        /// <summary>
        /// <para>Determina el bando</para>
        /// </summary>
        /// <param name="bando"></param>
        /// <param name="objetivos"></param>
        /// <returns></returns>
        public bool IsCalculo(Bando bando, Objetivos objetivos)        // Determina el bando
        {
            bool isCalculo = false;

            switch (objetivos)
            {
            case Objetivos.UnoMismo:
                isCalculo = bando == this;
                break;

            case Objetivos.Aliado:
                isCalculo = tipo == bando.tipo;
                break;

            case Objetivos.Enemigo:
                isCalculo = (tipo != bando.tipo) && bando.tipo != Bandos.Neutral;
                break;
            }
            return(IsConfuso ? !isCalculo : isCalculo);
        }
示例#4
0
        /// <summary>
        /// <para>Comprueba si la habilidad se puede realizar</para>
        /// </summary>
        /// <param name="plan"></param>
        /// <param name="area"></param>
        /// <returns></returns>
        private bool IsHabilidadRealizable(PlanDeAtaque plan, Area area)        // Comprueba si la habilidad se puede realizar
        {
            bool isRealizable = false;

            // Si el objetivo es un area
            if (plan.objetivo == Objetivos.Area)
            {
                isRealizable = true;
            }
            else if (plan.objetivo != Objetivos.None)
            {
                // Si no es un area, pero si una unidad
                Bando other = area.contenido.GetComponentInChildren <Bando>();
                if (other != null && Bando.IsCalculo(other, plan.objetivo))
                {
                    isRealizable = true;
                }
            }

            return(isRealizable);
        }
        private Bando bando;                                        // Bando
        #endregion

        #region Inicializadores
        /// <summary>
        /// <para>Inicializador de <see cref="EfectoHabilidadObjetivoEnemigo"/></para>
        /// </summary>
        private void Start()        // Inicializador de EfectoHabilidadObjetivoEnemigo
        {
            bando = GetComponentInParent <Bando>();
        }
示例#6
0
        /// <summary>
        /// <para>Agrega un bando</para>
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="tipo"></param>
        private static void AddBando(GameObject obj, Bandos tipo)        // Agrega un bando
        {
            Bando bando = obj.AddComponent <Bando>();

            bando.tipo = tipo;
        }