public void InitLevel(int level, int targetPills, int targetPrizes, MazeConfig config) { this.targetPills = targetPills; this.targetPrizes = targetPrizes; this.currentLevelIndex = level; this._status = GameStatus.Loading; Lives = Constants.DefaultLives; this.pillsEaten = 0; this.prizesEaten = 0; MazeConfiguration = config; }
public Maze ( MazeConfig mazeConfiguration ) { config = mazeConfiguration; CreateMaze(Levels.AllLevels[GameState.Instance.CurrentLevel % Levels.AllLevels.Length].Data); }
public void InstantiateLevel(int levelIndex, ILevel level, MazeConfig config) { RemoveChildren(); ResetLevelData(); float height = config.TileHeight; float width = config.TileWidth; float verticalDirection = config.VerticalDirection; for (int row = 0; row < config.NumRows; row++) { for (int col = 0; col < config.NumColumns; col++) { TileType tileType = (TileType)level.Data[row, col]; GameObject newTile = null ; Vector3 newPosition = new Vector3 ( (float)col * width, (float)row * height * verticalDirection, 0f); switch (tileType) { case TileType.PathWithDot: newTile = Instantiate(pillTile, newPosition, Quaternion.identity) as GameObject; Pills++; break; case TileType.PathWithoutDot: newTile = Instantiate(BackgroundTile, newPosition , Quaternion.identity) as GameObject; break; case TileType.BlueWall: newTile = Instantiate(obstacleTiles[obstacleTilesRandom.Next(0, obstacleTiles.Length)], newPosition, Quaternion.identity) as GameObject; break; case TileType.GrayWall: newTile = Instantiate(outerWallTiles[outerWallRandom.Next(0, outerWallTiles.Length-1)], newPosition, Quaternion.identity) as GameObject; break; case TileType.PlayerStart: newTile = Instantiate ( BackgroundTile, newPosition, Quaternion.identity) as GameObject; newTile.transform.SetParent(boardTransform, false); newTile = player; newTile.transform.SetParent(null); playerStartingPosition = newPosition; newTile.transform.position = playerStartingPosition; break; case TileType.PathWithIcon: newTile = Instantiate(prizePrefab , newPosition, Quaternion.identity) as GameObject; Prizes++; break; case TileType.EnemyStart: newTile = Instantiate(BackgroundTile, newPosition, Quaternion.identity) as GameObject; newTile.transform.SetParent(boardTransform, false); newTile = enemy; newTile.transform.SetParent(null); enemyStartingPosition = newPosition; newTile.transform.position = enemyStartingPosition; break; default: System.Diagnostics.Debug.Assert(false, "Invalid tile type"); break; } if ( newTile != null ) newTile.transform.SetParent(boardTransform, false ); } } config.Data = level.Data; GameState.Instance.InitLevel(levelIndex, Pills, Prizes, config); BroadcastMessage("LevelReset"); }
public Maze(MazeConfig mazeConfiguration) { config = mazeConfiguration; CreateMaze(Levels.AllLevels[GameState.Instance.CurrentLevel % Levels.AllLevels.Length].Data); }