Beispiel #1
0
    public void CreateLevel()
    {
        var levelSave = levelSerializer.DeserializeLevel(@"1");

        level = new GameObject("Root").AddComponent <Level>();

        var grid = new TileGrid(levelSave.width, levelSave.height);

        var player = Instantiate(PlayerPrefab).GetComponent <PlayerTile>();

        level.Initialize(grid, player);
        var levelParams = level.GetParameters();

        player.Initialize(levelSave.player, levelParams);

        for (int i = 0; i < levelSave.tiles.Count; i++)
        {
            var tileSave = levelSave.tiles[i];
            for (int j = 0; j < tilePrefabs.Count; j++)
            {
                if (tilePrefabs[j].GetComponent <ITile>().GetType().Name == tileSave.tileName)
                {
                    var tile = Instantiate(tilePrefabs[j]).GetComponent <ITile>();
                    tile.Initialize(tileSave, levelParams);
                    grid.AddTile(tile);
                }
            }
        }
    }
Beispiel #2
0
    private void CreateTestLevel()
    {
        var l = new GameObject("Root").AddComponent <Level>();

        level = l;
        var p    = Instantiate(PlayerPrefab).GetComponent <PlayerTile>();
        var grid = new TileGrid(size);

        p.Initialize(1, 4, grid);

        var w = Instantiate(wallPrefab).GetComponent <WallTile>();

        w.Initialize(4, 3);
        grid.AddTile(w);

        var dch = Instantiate(directionChangerPrefab).GetComponent <DirectionChangerTile>();

        dch.Initialize(1, 6, Direction.DOWN);
        grid.AddTile(dch);

        l.Initialize(grid, p);
    }
Beispiel #3
0
    private Tile CreateOneTile(Coordinate _coordinate, Tile.TileType _type)
    {
        GameObject go = Instantiate(tilePrefabs[(int)_type].gameObject, GetWorldSpacePositionFromCoordinate(_coordinate), Quaternion.identity) as GameObject;

        go.SetActive(true);                     // local reference copy was set as inactive, so it has to be activated
        Tile t = go.GetComponent <Tile>();

        t.transform.SetParent(transform);
        t.Initialize(tileGrid, _coordinate, _type);
        tileGrid.AddTile(_coordinate, t);

        // initialize light source if it has one
        LightSource lightSource = go.GetComponent <LightSource>();

        if (lightSource != null)
        {
            lightSource.Initialize();
        }

        EventBroadcast.Instance.TriggerEvent(EventBroadcast.Event.LEVEL_CHANGE);

        return(t);
    }
Beispiel #4
0
    void SetTile(TileType type)
    {
        var cost = TileTypeData.Get(type).cost;

        if (scoreKeeper.points < cost || !grid.CanBuild(mousePosition, type))
        {
            return;
        }

        scoreKeeper.points -= cost;

        if (activeTile != null)
        {
            activeTile.type = type;
        }
        else
        {
            grid.AddTile(mousePosition, type);
        }

        RefreshButtons();
        pointPreview = 0;
    }