Ejemplo n.º 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);
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// <para>Aplica el damage en un area</para>
        /// </summary>
        /// <param name="target">Area</param>
        public override int OnAplicar(Area target)        // Aplica el damage en un area
        {
            Unidad defensor = target.contenido.GetComponent <Unidad>();

            // Predecir el valor
            int value = Predecir(target);

            // Agregar una variacion
            value = Mathf.FloorToInt(value * UnityEngine.Random.Range(0.9f, 1.1f));

            // Comprobar el rango
            value = Mathf.Clamp(value, minDamage, maxDamage);

            // Aplicar el damage
            Stats s = defensor.GetComponent <Stats>();

            s[TipoStats.HP] += value;
            return(value);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// <para>Obtiene la defensa base</para>
 /// </summary>
 /// <param name="target"></param>
 /// <returns></returns>
 public override int GetBaseDefensa(Unidad target)        // Obtiene la defensa base
 {
     return(target.GetComponent <Stats>()[TipoStats.DEF]);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// <para>Obtener las areas a rango para el movimiento</para>
 /// </summary>
 /// <returns></returns>
 private List <Area> GetOpcionesMovimiento()       // Obtener las areas a rango para el movimiento
 {
     return(Unidad.GetComponent <Movimiento>().GetAreasInRango(freya.grid));
 }
Ejemplo n.º 5
0
        private Stats stats;                            // Estadisticas
        #endregion

        #region Inicializaciones
        /// <summary>
        /// <para>Inicializacion de <see cref="EstadoEfectoKO"/></para>
        /// </summary>
        private void Awake()        // Inicializacion de EstadoEfectoKO
        {
            unidad = GetComponentInParent <Unidad>();
            stats  = unidad.GetComponent <Stats>();
        }
Ejemplo n.º 6
0
 /// <summary>
 /// <para>Obtener el counter de una unidad</para>
 /// </summary>
 /// <param name="target">Unidad</param>
 /// <returns></returns>
 private int GetCounter(Unidad target)        // Obtener el counter de una unidad
 {
     return(target.GetComponent <Stats>()[TipoStats.CTR]);
 }