public void Setup() { GlobalReference.GlobalValues = new GlobalValues(); wander = new Wanderer(); npc = new Mock <INonPlayerCharacter>(); random = new Mock <IRandom>(); followTarget = new Mock <INonPlayerCharacter>(); room = new Mock <IRoom>(); north = new Mock <IRoom>(); east = new Mock <IRoom>(); south = new Mock <IRoom>(); west = new Mock <IRoom>(); up = new Mock <IRoom>(); down = new Mock <IRoom>(); exitNorth = new Mock <IExit>(); exitEast = new Mock <IExit>(); exitSouth = new Mock <IExit>(); exitWest = new Mock <IExit>(); exitUp = new Mock <IExit>(); exitDown = new Mock <IExit>(); world = new Mock <IWorld>(); zone = new Mock <IZone>(); zones = new Dictionary <int, IZone>(); rooms = new Dictionary <int, IRoom>(); random.Setup(e => e.PercentDiceRoll(1)).Returns(true); npc.Setup(e => e.Room).Returns(room.Object); world.Setup(e => e.Zones).Returns(zones); zone.Setup(e => e.Rooms).Returns(rooms); exitNorth.Setup(e => e.Room).Returns(1); exitEast.Setup(e => e.Room).Returns(2); exitSouth.Setup(e => e.Room).Returns(3); exitWest.Setup(e => e.Room).Returns(4); exitUp.Setup(e => e.Room).Returns(5); exitDown.Setup(e => e.Room).Returns(6); exitNorth.Setup(e => e.Zone).Returns(0); exitEast.Setup(e => e.Zone).Returns(0); exitSouth.Setup(e => e.Zone).Returns(0); exitWest.Setup(e => e.Zone).Returns(0); exitUp.Setup(e => e.Zone).Returns(0); exitDown.Setup(e => e.Zone).Returns(0); zones.Add(0, zone.Object); rooms.Add(1, north.Object); rooms.Add(2, east.Object); rooms.Add(3, south.Object); rooms.Add(4, west.Object); rooms.Add(5, up.Object); rooms.Add(6, down.Object); GlobalReference.GlobalValues.Random = random.Object; GlobalReference.GlobalValues.World = world.Object; }
// Sets up the behaviors that this agent uses. Should be called by implementing classes public void initialize() { this.smellFollower = new SmellFollower(); this.wallAvoider = new WallAvoider(MAIN_RAY_LENGTH, SIDE_RAY_LENGTH, transform, MAX_ACCEL); this.collisionAvoider = new CollisionAvoider(COLLISION_AVOIDANCE_RAD, transform, rigidBody, MAX_ACCEL); this.arriver = new Arriver(ARRIVE_RADIUS, SLOW_RADIUS, MAX_SPEED, rigidBody); this.aligner = new Aligner(ROTATE_ARRIVE_RAD, ROTATE_SLOW_RAD, MAX_ANGULAR_ACC, transform, rigidBody); this.fleer = new Fleer(FLEE_TAG_RAD, transform, MAX_ACCEL); this.seeker = new Seeker(MAX_ACCEL, transform); this.pursuer = new Pursuer(MAX_ACCEL, rigidBody); this.wanderer = new Wanderer(MAX_ACCEL, transform); this.mover = new Mover(MAX_ACCEL, MAX_ANGULAR_ACC, MAX_SPEED, MAX_ROTATION, rigidBody); }