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