public WallAvoidance(SteeringBehaviorsManager manager, Vehicle owner, float setFeelersLength, List <Wall> setWalls)
     : base(manager, owner)
 {
     feelers       = new List <Vector2>(3);
     feelersLength = setFeelersLength;
     walls         = setWalls;
 }
 public Wander(SteeringBehaviorsManager manager, Vehicle theOwner, float setWandJitter, float setWandRadius, float setWandDist)
     : base(manager, theOwner)
 {
     wanderJitter   = setWandJitter;
     wanderRadius   = setWandRadius;
     wanderDistance = setWandDist;
     wanderTarget   = RandomHelper.getRandomVector() * wanderRadius;
 }
        public EvadeMulti(SteeringBehaviorsManager manager, Vehicle setOwner, float setMinDistance, GetVehicles updatePursuers, bool avoidBullets)
            : base(manager, setOwner)
        {
            minDistance       = setMinDistance;
            minDistanceSquare = minDistance * minDistance;

            this.avoidBullets = avoidBullets;

            //evade = new Evade(manager, setOwner, null, setMinDistance);

            UpdatePursuers = updatePursuers;

            flee = new Flee(manager, setOwner, new Vector2());
        }
 public Arrive(SteeringBehaviorsManager manager, Vehicle theOwner, Vector2 targetPos, Deceleration decel)
     : base(manager, theOwner)
 {
     targetPosition = targetPos; deceleration = decel;
 }
 public Flee(SteeringBehaviorsManager manager, Vehicle theOwner, Vector2 targetPos) : base(manager, theOwner)
 {
     targetPosition = targetPos;
 }
 public SteeringBehavior(SteeringBehaviorsManager manager, Vehicle theOwner)
 {
     owner = theOwner; steeringBehaviorsManager = manager;
 }
 public Vehicle(Vector2 setPosition, Vector2 setVelocity, float setMass, float setMaxSpeed, float setMaxForce, float setMaxTurnRate, GetVehicles getVehiclesFunction, int width, int height)
     : base(setPosition, setVelocity, setMass, setMaxSpeed, setMaxForce, setMaxTurnRate)
 {
     steering = new SteeringBehaviorsManager(this, getVehiclesFunction, width, height);
 }
 public override void Update(GameTime gameTime)
 {
     neighbors = SteeringBehaviorsManager.GetNeighbors(Owner);
 }
 public Seek(SteeringBehaviorsManager manager, Vehicle theOwner, Vector2 targetPos)
     : base(manager, theOwner)
 {
     targetPosition = targetPos;
 }
 public Pursuit(SteeringBehaviorsManager manager, Vehicle theOwner, Vehicle theEvader)
     : base(manager,theOwner)
 {
     evader = theEvader; seek = new Seek(manager, theOwner, new Vector2());
 }
 public EvadeMulti(SteeringBehaviorsManager manager, Vehicle setOwner, float setMinDistance, GetVehicles updatePursuers)
     : this(manager, setOwner, setMinDistance, updatePursuers, false)
 {
 }
        public EvadeMulti(SteeringBehaviorsManager manager, Vehicle setOwner, float setMinDistance, GetVehicles updatePursuers, bool avoidBullets)
            : base(manager, setOwner)
        {
            minDistance = setMinDistance;
            minDistanceSquare = minDistance * minDistance;

            this.avoidBullets = avoidBullets;

            //evade = new Evade(manager, setOwner, null, setMinDistance);

            UpdatePursuers = updatePursuers;

            flee = new Flee(manager, setOwner, new Vector2());
        }
 public Evade(SteeringBehaviorsManager manager, Vehicle theOwner, Vehicle thePursuer, float setMinDistance)
     : base(manager,theOwner)
 {
     pursuer = thePursuer; flee = new Flee(manager, theOwner, new Vector2()); minDistance = setMinDistance; minDistanceSquare = minDistance * minDistance;
 }
 public Arrive(SteeringBehaviorsManager manager, Vehicle theOwner, Vector2 targetPos, Deceleration decel)
     : base(manager,theOwner)
 {
     targetPosition = targetPos; deceleration = decel;
 }
 public Pursuit(SteeringBehaviorsManager manager, Vehicle theOwner, Vehicle theEvader)
     : base(manager, theOwner)
 {
     evader = theEvader; seek = new Seek(manager, theOwner, new Vector2());
 }
 public Evade(SteeringBehaviorsManager manager, Vehicle theOwner, Vehicle thePursuer, float setMinDistance)
     : base(manager, theOwner)
 {
     pursuer = thePursuer; flee = new Flee(manager, theOwner, new Vector2()); minDistance = setMinDistance; minDistanceSquare = minDistance * minDistance;
 }
 public Separation(SteeringBehaviorsManager manager, Vehicle theOwner)
     : base(manager,theOwner)
 {
 }
 public EvadeMulti(SteeringBehaviorsManager manager, Vehicle setOwner, float setMinDistance, GetVehicles updatePursuers)
     : this(manager, setOwner, setMinDistance, updatePursuers, false)
 {
 }
 public SteeringBehavior(SteeringBehaviorsManager manager, Vehicle theOwner)
 {
     owner = theOwner; steeringBehaviorsManager = manager;
 }
 public Separation(SteeringBehaviorsManager manager, Vehicle theOwner) : base(manager, theOwner)
 {
 }
 public WallAvoidance(SteeringBehaviorsManager manager, Vehicle owner, float setFeelersLength, List<Wall> setWalls)
     : base(manager, owner)
 {
     feelers = new List<Vector2>(3);
     feelersLength = setFeelersLength;
     walls = setWalls;
 }
 public Vehicle(Vector2 setPosition, Vector2 setVelocity, float setMass, float setMaxSpeed, float setMaxForce, float setMaxTurnRate, GetVehicles getVehiclesFunction, int width, int height)
     : base(setPosition, setVelocity, setMass, setMaxSpeed, setMaxForce, setMaxTurnRate)
 {
     steering = new SteeringBehaviorsManager(this, getVehiclesFunction, width, height);
 }
 public Wander(SteeringBehaviorsManager manager, Vehicle theOwner, float setWandJitter, float setWandRadius, float setWandDist)
     : base(manager,theOwner)
 {
     wanderJitter = setWandJitter;
     wanderRadius = setWandRadius;
     wanderDistance = setWandDist;
     wanderTarget = RandomHelper.getRandomVector() * wanderRadius;
 }