Example #1
0
    private Dictionary <int, LinkerSpawner> SpawnLinkerSpawners()
    {
        Dictionary <int, LinkerSpawner> linkerSpawners = new Dictionary <int, LinkerSpawner>();

        for (int spawnerColumn = 0; spawnerColumn < LevelSettings.Instance.BoardWidth; ++spawnerColumn)
        {
            GameObject go = ObjectPooler.Instance.SpawnFromPool(ObjectPoolTypes.Spawner);
            go.transform.position = new Vector3(
                gameObject.transform.position.x + spawnerColumn * (Layouts._BoardTileSize.x + Layouts._BoardPadding.x),
                gameObject.transform.position.y + LevelSettings.Instance.BoardHeight * (Layouts._BoardTileSize.y + Layouts._BoardPadding.y),
                0
                );
            go.name             = "Spawner_" + spawnerColumn;
            go.transform.parent = gameObject.transform;
            LinkerSpawner spawner = go.GetComponent <LinkerSpawner>();
            spawner.Initialize(
                _LinkerLogic,
                new SGridCoords(spawnerColumn, 0)
                );
            linkerSpawners.Add(spawnerColumn, spawner);
        }
        return(linkerSpawners);
    }
Example #2
0
 private void RefillCollumns(List <SRefillData> refillDataList)
 {
     foreach (SRefillData refillData in refillDataList)
     {
         LinkerSpawner spawner = _LinkerSpawners[refillData._Column];
         if (spawner)
         {
             List <LinkerObject> linkerObjects = spawner.SpawnLinkers(refillData._EmptySpaces);
             for (int spawnIndex = 0; spawnIndex < linkerObjects.Count; ++spawnIndex)
             {
                 LinkerObject linker     = linkerObjects[spawnIndex];
                 SGridCoords  destCoords = new SGridCoords(refillData._Column, refillData._EmptySpaces - 1 - spawnIndex);
                 linker._GridCoords = destCoords;
                 _LinkerObjects[destCoords._Column, destCoords._Row] = linker;
                 linker.gameObject.transform.parent = _BoardTiles[destCoords._Column, destCoords._Row].gameObject.transform;
                 linker.SetFalling(
                     _FallSpeed,
                     _BoardTiles[destCoords._Column, destCoords._Row].gameObject.transform.position,
                     destCoords
                     );
             }
         }
     }
 }