Пример #1
0
 /// <summary>
 /// A constructor with LOS.
 /// </summary>
 /// <param name="LOS"></param>
 public ChokepointGridWorldMaker( int LOS, int NumChokepoints, int Height,
     int Width, int ChokepointRadius, int NumAgents, int NumSteps, int AgentRadius,
     double MoveRate)
 {
     this.xml = new Map( );
       xml.Width = Width;
       xml.Height = Height;
       this.LOS = LOS;
       this.NumChokepoints = NumChokepoints;
       this.ChokepointRadius = ChokepointRadius;
       this.NumAgents = NumAgents;
       this.NumSteps = NumSteps;
       this.AgentRadius = AgentRadius;
       this.MoveRate = MoveRate;
 }
Пример #2
0
 public RoomsGridWorldMaker( int LOS, int Height, int Width, int NumHorzRooms,
     int NumVertRooms, int NumSteps,
     double ChanceOpen, double ChanceClose, int HorzRoomSkip, int VertRoomSkip,
     bool GuarenteeSolveability, double MinAStarDistance, double MaxAStarDistance,
     bool UseCorners, double MinHDistance, double MaxHDistance)
 {
     this.xml = new Map( );
       xml.Width = Width;
       xml.Height = Height;
       this.LOS = LOS;
       this.NumHorzRooms = NumHorzRooms;
       this.NumVertRooms = NumVertRooms;
       this.NumSteps = NumSteps;
       this.ChanceClose = ChanceClose;
       this.ChanceOpen = ChanceOpen;
       this.HorzRoomModifier = HorzRoomSkip + 1;
       this.VertRoomModifier = VertRoomSkip + 1;
       this.GuarenteeSolveability = GuarenteeSolveability;
       this.MaxAStarDistance = MaxAStarDistance;
       this.MinAStarDistance = MinAStarDistance;
       this.UseCorners = UseCorners;
       this.MaxHDistance = MaxHDistance;
       this.MinHDistance = MinHDistance;
 }
Пример #3
0
 private static void DrawLine( Point From, Point To, Map xml, GenericGridWorldStaticState SS, Point Unit, bool[][] tiles )
 {
     Point Cur = From;
       Stack<Point> Blocked = new Stack<Point>( );
       while ( !Cur.Equals( To ) ) {
     Cur = Next( Cur, xml.Width, xml.Height, To );
     if ( SS.Tiles[Cur.Y][Cur.X]
     is ChokeTile<GenericGridWorldStaticState, GenericGridWorldDynamicState> ) {
       continue;
     } else if ( Unit.X == Cur.X && Unit.Y == Cur.Y ) {
       continue;
     } else if ( SS.Tiles[Cur.Y][Cur.X]
     is BlockedTile<GenericGridWorldStaticState, GenericGridWorldDynamicState> ) {
       while ( Blocked.Count != 0 ) {
     Cur = Blocked.Pop( );
     SS.Tiles[Cur.Y][Cur.X] = new PassableTile<GenericGridWorldStaticState,
       GenericGridWorldDynamicState>( Cur.X, Cur.Y, xml.Height, xml.Width );
     tiles[Cur.Y][Cur.X] = false;
       }
       break;
     } else {
       SS.Tiles[Cur.Y][Cur.X] = new BlockedTile<GenericGridWorldStaticState,
     GenericGridWorldDynamicState>( Cur.X, Cur.Y, xml.Height, xml.Width );
       Blocked.Push( Cur );
       tiles[Cur.Y][Cur.X] = true;
     }
       }
 }