Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public override void Update(float deltaTime)
 {
     if (Geo.GetDistance(SpawnPosition, Position) >= 1000)
     {
         if (RoamState == MinionRoamState.Hostile)
         {
             ReturnToCamp();
         }
     }
     base.Update(deltaTime);
 }
Ejemplo n.º 3
0
 public float GetDistanceTo(Unit other)
 {
     return(Geo.GetDistance(Position, other.Position));
 }
Ejemplo n.º 4
0
 public override bool Collide(AttackableUnit target)
 {
     return(Geo.GetDistance(Position, target.Position) <= CollisionRadius + (target.PathfindingCollisionRadius * target.Stats.ModelSize.TotalSafe));
 }