public static Room Generate(RoomSettings settings)
        {
            RoomGenerator.settings = settings;
            room = new Room(settings.width, settings.height);
            prng = new System.Random(settings.seed);

            openCoords = new FisherYates.ShuffleList <Coord>(room.tileCount, prng);

            // fill coord array and initialize room with empty tiles
            for (int x = 0; x < settings.width; x++)
            {
                for (int y = 0; y < settings.height; y++)
                {
                    Coord c = new Coord(x, y);
                    InstantiateEmpty(c);
                    openCoords.Add(c);
                }
            }

            // place doors

            // place obstacles
            PlaceRandomObstacles();

            return(room);
        }
示例#2
0
        public static Room Generate(RoomSettings settings)
        {
            RoomGenerator.settings = settings;
            room = new Room(settings);
            prng = new System.Random(settings.seed);

            openCoords = new FisherYates.ShuffleList <Coord>(room.tileCount, prng);

            // fill coord array and initialize room with empty tiles
            for (int x = 0; x < settings.width; x++)
            {
                for (int y = 0; y < settings.height; y++)
                {
                    Coord c = new Coord(x, y);
                    InsertEmpty(c);
                    openCoords.Add(c);
                }
            }

            // place Warps
            foreach (RoomSettings.WarpSettings warp in settings.warps)
            {
                InsertWarp(warp.position, warp.target);
            }

            PlaceRandomObstacles();

            PlaceEnemySpawnPoints();

            return(room);
        }
示例#3
0
        void Awake()
        {
            projectileRadius
                    = subBossProjectilePrefab.GetComponent <SphereCollider>().radius;
            gravity = Physics.gravity.magnitude;

            spawnPoints = new FisherYates.ShuffleList <Vector3>(
                spawnPointTransforms.Length);
            foreach (Transform point in spawnPointTransforms)
            {
                spawnPoints.Add(point.position);
            }

            SubBossController.DyingStatic -= SubBossDyingHandler;
            SubBossController.DyingStatic += SubBossDyingHandler;
        }
示例#4
0
 public void SetTile(int x, int y, ITile tile)
 {
     // change openTiles list if necessary
     if (tiles[x, y] == null || tiles[x, y].type != tile.type)
     {
         Coord c = new Coord(x, y);
         if (tile.type == TileType.Empty)
         {
             openTiles.Add(c);
         }
         else
         {
             openTiles.Remove(c);
         }
     }
     tiles[x, y] = tile;
 }