private void AddRooms() { Objects.Door bedroomDoor = new Objects.Door(); bedroomDoor.closed = true; bedroomDoor.locked = true; key.ObjectName = "bedroom key"; key.alternateNames.Add("key"); bedroomDoor.keyObject = key; livingRoom.exits.Add(new Rooms.RoomExit("north"), kitchen); livingRoom.exits.Add(new Rooms.RoomExit("east", true, bedroomDoor), bedroom); kitchen.exits.Add(new Rooms.RoomExit("south"), livingRoom); bedroom.exits.Add(new Rooms.RoomExit("west", true, bedroomDoor), livingRoom); AddToGame("livingroom", livingRoom); AddToGame("kitchen", kitchen); AddToGame("bedroom", bedroom); d***o.ObjectName = "black d***o"; d***o.alternateNames.Add("d***o"); AddToRoom(livingRoom, d***o); //AddToRoom(livingRoom, "key", key); EnterRoom(livingRoom); }
private void ChangeLockState(CommandParameters commandParameters, bool locked) { string[] splitStringParams = commandParameters.stringParam.Split(' '); Objects.Door doorToChange = null; doorToChange = currentGame.findDoor(doorToChange, currentGame.currentRoom, splitStringParams[0]); if (doorToChange == null) { msg("\nI'm sorry I can't see any such door"); return; } if (doorToChange.locked == locked) { msg("\nThe door is already " + (locked ? "locked" : "unlocked")); return; } if (commandParameters.currentGame.player.inventory.Contains(doorToChange.keyObject)) { doorToChange.locked = locked; msg("\nYou " + (locked ? "lock" : "unlock") + " the door"); } }
private void ChangeDoorState(CommandParameters commandParameters, string[] splitParams, bool closed) { if (splitParams.Length == 2) { if (currentGame.currentRoom.exits.Where(p => p.Key.hasDoor == true).Count() > 1) { msg("\nYou really need to tell me which door to " + (closed ? "close" : "open")); return; } else { Objects.Door doorToChange = currentGame.currentRoom.exits.Where(p => p.Key.hasDoor == true).First().Key.door; if (doorToChange.locked) { msg("\nThis door is locked"); return; } doorToChange.closed = closed; msg("\nYou " + (closed?"close":"open") + " the door"); return; } } else { Objects.Door doorToChange = null; doorToChange = currentGame.findDoor(doorToChange, currentGame.currentRoom, splitParams[0]); if (doorToChange == null) { msg("\nI'm sorry I can't see any such door"); return; } if (doorToChange.locked) { msg("\nThis door is locked"); return; } doorToChange.closed = closed; msg("\nYou " + (closed ? "close" : "open") + " the door"); } }
public RoomExit(string direction, bool hasDoor, Objects.Door door) { this.direction = direction; this.hasDoor = hasDoor; this.door = door; }
private void InsertDoor(byte x, byte y, bool open, bool isLeftRight, bool triggerCollision = true) { var door = new Objects.Door(x, y, open, isLeftRight, triggerCollision); World.Insert(door); Insert(door, door.X, door.Y); Doors[new Tuple<byte, byte>(door.X, door.Y)] = door; }