public Pit(int id, Room room) { this.id = id; this.Type = EntityType.pit; location = room; location.addOccupant(this); Debug.WriteLine("Pit " + id + " is born in Room " + (location.id + 1)); }
//TODO: Change the bat name to int id... public Bat(string name, Room room) { //isAlive = true; this.name = name; this.Type = EntityType.bat; location = room; location.addOccupant(this); Debug.WriteLine("Bat " + name + " is born in Room " + (location.id + 1)); }
public Wumpus(string name, Room room) { isAlive = true; this.name = name; this.Type = EntityType.wumpus; metPlayer = false; location = room; location.addOccupant(this); dice = new Random(); Debug.WriteLine("Wumpus is born in Room " + (location.id + 1)); }
public Player(string name, Room room) { this.name = name; isAlive = true; this.Type = EntityType.player; //set arrows initArrows(); //set location location = room; location.addOccupant(this); move(location); Debug.WriteLine("Player() : " + name + " is born in Room " + (location.id +1)); }
public void move(Room room) { if (location == null) { location = room; location.addOccupant(this); } else { location.removeOccupant(this); //leave the current room location = room; location.addOccupant(this); //enter the new Room. } Debug.WriteLine("Pit " + id + " is now in room " + (location.id + 1)); }
public void fly(List<Room> path, Room current, Wumpus target) { Random rand = new Random(); location = current; location.addOccupant(this); int flightLength = 0; //TODO: this is ugly, clean up later foreach (Room room in path) { //check current length of flight if (flightLength < maxFlight) { if (location.hasOccupant(target)) { target.die(); Console.WriteLine("Aha! You got the Wumpus!"); return; } //check if rooms are connected if (location.hasNeighbor(room)) { move(room); } else { Console.WriteLine("Room " + (location.id + 1) + " is not neighbors with Room " + (room.id + 1) + "! Picking another room..."); int i = rand.Next(0, location.neighbors.Count - 1); move(location.neighbors[i]); } if (location == current) { Console.WriteLine("Ouch! The arrow got you!"); break; } flightLength++; } else Console.WriteLine(" The arrow can only traverse up to 5 rooms!"); } Console.WriteLine("Missed!"); target.wake(); //wake the wumpus if you miss used = true; }
public void addOccupant(IEntity occupant, Room room) { occupants.Add(occupant); room.addOccupant(occupant); }
public void move(Room room) { if (location == null) { location = room; location.addOccupant(this); } else { location.removeOccupant(this); //leave the current room location = room; location.addOccupant(this); //enter the new Room. } Console.WriteLine("You are now in Room " + (location.id + 1)); this.sense(); }
public void move(Room room) { location.removeOccupant(this); //leave the current room location = room; location.addOccupant(this); //enter the new Room. Debug.WriteLine("Arrow.move(): The arrow is in Room " + (location.id + 1)); Console.WriteLine("The arrow is in Room " + (location.id + 1)); }
public void move(Room room) { if (location == null) { location = room; location.addOccupant(this); } else { location.removeOccupant(this); //leave the current room location = room; location.addOccupant(this); //enter the new Room. } Debug.WriteLine("Wumpus.move() : " + name + " has moved to Room " + (location.id + 1)); }