Esempio n. 1
0
 public BattleUnit GetNearestFoe(BattleUnit requester)
 {
     BattleUnit nearest = null;
     float minDist = float.PositiveInfinity;
     foreach (BattleUnit unit in _units)
     {
         if (unit.Player == requester.Player || unit.ReallyDead || unit.Stealth)
             continue;
         float curDist = Vector3.Distance(unit.Avatar.Position, requester.Avatar.Position);
         if (curDist < minDist)
         {
             minDist = curDist;
             nearest = unit;
         }
     }
     return nearest;
 }
Esempio n. 2
0
 public void Attack(BattleUnit who, BattleUnit attacker)
 {
     if (attacker.Stealth || attacker.Hp > 0)
         who.Hp -= 60 + _random.Next(48);
 }
Esempio n. 3
0
 public void Remove(BattleUnit unit)
 {
     unit.OnRemove();
     _toRemove.Add(unit);
 }
Esempio n. 4
0
 public void Add(BattleUnit unit)
 {
     _toAdd.Add(unit);
 }
Esempio n. 5
0
        public void SetTarget(BattleUnit u)
        {
            Target = u;
            float uWidth = u.Avatar.PixelScale.X*u.Avatar.TexRect.Width;

            if (u.Avatar.Flipped)
                uWidth = -uWidth;

            float xDistance = u.Avatar.Position.X - Avatar.Position.X + 2*uWidth;
            SetTarget(xDistance);
        }