public Room OtherSideFrom(Room room) { if (room.Equals(room1)) return room2; else if (room.Equals(room2)) return room1; else return null; }
public DoorNeedingSpell(Room r1, Room r2) : base(r1, r2) { }
public override Door MakeDoor(Room r1, Room r2) { return new DoorNeedingSpell(r1, r2); }
public Door Clone(Room r1, Room r2) { Door door = (Door)this.MemberwiseClone(); door.Initialize(r1, r2); return door; }
internal void Initialize(Room r1, Room r2) { this.room1 = r1; this.room2 = r2; }
public Door(Room room1, Room room2) { this.room1 = room1; this.room2 = room2; }