protected override void CalcMove() { if (GameWorld.IsInRange(GameObject.Location, TargetLocation, MaxRange)) { int angle = (int)GameWorld.CalcAngle(GameObject.Location.ToPoint(), TargetLocation.ToPoint()); if (GameWorld.IsInRange(GameObject.Location, TargetLocation, MinRange)) { if (angle < 180) { angle += 180; } else { angle -= 180; } GameObject.TargetSpeed = this.targetSpeed; } else if (GameWorld.IsInRange(GameObject.Location, TargetLocation, MinRange, MidRange)) { GameObject.TargetSpeed = 0; } else { GameObject.TargetSpeed = this.targetSpeed; } GameObject.Angle = angle; } else { Speed.X = 0; Speed.Y = 0; } }