using System.Collections.Generic; namespace DungeonGenerator { public enum RoomType { Normal, Entrance, Monster, Boss } public class Room { public Room(RoomType roomType, int width, int height, Point positionOfTopLeft) { TypeOfRoom = roomType; Width = width; Height = height; PositionOfTopLeft = positionOfTopLeft; } public RoomType TypeOfRoom { get; set; } public int Height { get; set; } public int Width { get; set; } public Point PositionOfTopLeft { get; set; } public List GetPointsInRoom() { List points = new List(); for (int i = 0; i < Width; i++) { for (int j = 0; j < Height; j++) { points.Add(new Point(PositionOfTopLeft.X + i, PositionOfTopLeft.Y + j)); } } return points; } public int GetDistanceToRoom(Room other) { Point centerOfRoom = GetCenterOfRoom(); Point centerOfOther = other.GetCenterOfRoom(); return centerOfRoom.ManhattanDistance(centerOfOther); } public Point GetCenterOfRoom() { return new Point(PositionOfTopLeft.X + Width / 2, PositionOfTopLeft.Y + Height / 2); } } }