/// <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>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); }
/// <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]); }
/// <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)); }
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>(); }
/// <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]); }