public override void Update(float deltaTime) { float deltaMovement = Speed * 0.001f * deltaTime; // deltaTime float xOffset = Direction.X * deltaMovement; float yOffset = Direction.Y * deltaMovement; Position = new Vector2(Position.X + xOffset, Position.Y + yOffset); foreach (var team in Unit.Team.GetOposedTeams()) { foreach (var target in team.AliveUnits.OfType <AttackableUnit>()) { if (Hitten.Contains(target) == false) { if (Geo.GetDistance(Position, target.Position) <= CollisionRadius + (target.PathfindingCollisionRadius * target.Stats.ModelSize.TotalSafe)) { Hitten.Add(target); OnReach(target, this); } } if (PendingDispose) { return; } } } base.Update(deltaTime); if (Geo.GetDistance(Position, StartPosition) >= Range) { OnRangeReached(this); } }
public override void Update(float deltaTime) { if (Geo.GetDistance(SpawnPosition, Position) >= 1000) { if (RoamState == MinionRoamState.Hostile) { ReturnToCamp(); } } base.Update(deltaTime); }
public float GetDistanceTo(Unit other) { return(Geo.GetDistance(Position, other.Position)); }
public override bool Collide(AttackableUnit target) { return(Geo.GetDistance(Position, target.Position) <= CollisionRadius + (target.PathfindingCollisionRadius * target.Stats.ModelSize.TotalSafe)); }