public AIUnit(AI.Elements UT) { UnitType = UT; Health = 100; Mana = 100; Stamina = 100; for (int i = 0; i <= 4; i++) { Moves.NewMove Move = new Moves.NewMove(UnitType); Abilities.Add(Move); } }
private void Update() { if (CurrentAbility == null) { CurrentAbility = ThisUnit.Abilities.Where(x => x.ActiveCooldown <= 0).FirstOrDefault(); } else if (DistFromTarget() <= CurrentAbility.Range && MoveCooldown <= 0) { CurrentAbility.ActiveCooldown = CurrentAbility.CoolDownTime; MoveCooldown = Random.Range(3, 5); CurrentAbility.UseMove(this.transform, Target); CurrentAbility = null; } IEnumerable <Moves.NewMove> MovesInCooldown = ThisUnit.Abilities.Where(x => x.ActiveCooldown > 0); foreach (Moves.NewMove MIC in MovesInCooldown) { MIC.ActiveCooldown -= Time.deltaTime; } if (MoveCooldown > 0) { MoveCooldown -= Time.deltaTime; } }