public static GameArea GetAreaFromArea(GameArea area, int Radius, bool Oblique, GameScenario Scenario, Faction faction) { Dictionary <Point, object> closedList = new Dictionary <Point, object>(); GameArea area2 = new GameArea(); foreach (Point point in area.Area) { area2.CombineArea(GetViewArea(point, Radius, Oblique, Scenario, faction), closedList); } foreach (Point point in closedList.Keys) { area2.Area.Add(point); } return(area2); }
public static GameArea GetAreaFromArea(GameArea area, int radius, bool oblique, GameScenario Scenario, Faction faction) { /*int longRadius; * if (area.Count <= 1) * longRadius = radius; * else if (area.Count <= 5) * longRadius = radius + 1; * else * longRadius = radius + 2; * GameArea candidateArea = GetArea(area.Centre, longRadius, oblique); * if (longRadius >= (radius + 1)) * { * candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y - longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y + longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y - longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y + longRadius)); * } * if (longRadius >= (radius + 2)) * { * candidateArea.Area.Remove(new Point(area.Centre.X - longRadius + 1, area.Centre.Y - longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y - longRadius + 1)); * candidateArea.Area.Remove(new Point(area.Centre.X - longRadius + 1, area.Centre.Y + longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y + longRadius - 1)); * candidateArea.Area.Remove(new Point(area.Centre.X + longRadius - 1, area.Centre.Y - longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y - longRadius + 1)); * candidateArea.Area.Remove(new Point(area.Centre.X + longRadius - 1, area.Centre.Y + longRadius)); * candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y + longRadius - 1)); * } * return candidateArea;*/ Dictionary <Point, object> closedList = new Dictionary <Point, object>(); GameArea area2 = new GameArea(); foreach (Point point in area.Area) { area2.CombineArea(GetViewArea(point, radius, oblique, Scenario, faction), closedList); } foreach (Point point in closedList.Keys) { area2.Area.Add(point); } return(area2); }
public static GameArea GetAreaFromArea(GameArea area, int radius, bool oblique, GameScenario Scenario, Faction faction) { /*int longRadius; if (area.Count <= 1) longRadius = radius; else if (area.Count <= 5) longRadius = radius + 1; else longRadius = radius + 2; GameArea candidateArea = GetArea(area.Centre, longRadius, oblique); if (longRadius >= (radius + 1)) { candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y - longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y + longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y - longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y + longRadius)); } if (longRadius >= (radius + 2)) { candidateArea.Area.Remove(new Point(area.Centre.X - longRadius + 1, area.Centre.Y - longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y - longRadius + 1)); candidateArea.Area.Remove(new Point(area.Centre.X - longRadius + 1, area.Centre.Y + longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X - longRadius, area.Centre.Y + longRadius - 1)); candidateArea.Area.Remove(new Point(area.Centre.X + longRadius - 1, area.Centre.Y - longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y - longRadius + 1)); candidateArea.Area.Remove(new Point(area.Centre.X + longRadius - 1, area.Centre.Y + longRadius)); candidateArea.Area.Remove(new Point(area.Centre.X + longRadius, area.Centre.Y + longRadius - 1)); } return candidateArea;*/ Dictionary<Point, object> closedList = new Dictionary<Point, object>(); GameArea area2 = new GameArea(); foreach (Point point in area.Area) { area2.CombineArea(GetViewArea(point, radius, oblique, Scenario, faction), closedList); } foreach (Point point in closedList.Keys) { area2.Area.Add(point); } return area2; }
public static GameArea GetAreaFromArea(GameArea area, int Radius, bool Oblique, GameScenario Scenario, Faction faction) { Dictionary<Point, object> closedList = new Dictionary<Point, object>(); GameArea area2 = new GameArea(); foreach (Point point in area.Area) { area2.CombineArea(GetViewArea(point, Radius, Oblique, Scenario, faction), closedList); } foreach (Point point in closedList.Keys) { area2.Area.Add(point); } return area2; }