Beispiel #1
0
 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;
 }
Beispiel #2
0
 public Maze (  MazeConfig mazeConfiguration  )
 {
     config = mazeConfiguration;
     CreateMaze(Levels.AllLevels[GameState.Instance.CurrentLevel % Levels.AllLevels.Length].Data); 
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
    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");
    }
Beispiel #5
0
 public Maze(MazeConfig mazeConfiguration)
 {
     config = mazeConfiguration;
     CreateMaze(Levels.AllLevels[GameState.Instance.CurrentLevel % Levels.AllLevels.Length].Data);
 }