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; }
public void Attack(BattleUnit who, BattleUnit attacker) { if (attacker.Stealth || attacker.Hp > 0) who.Hp -= 60 + _random.Next(48); }
public void Remove(BattleUnit unit) { unit.OnRemove(); _toRemove.Add(unit); }
public void Add(BattleUnit unit) { _toAdd.Add(unit); }
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); }