Exemple #1
0
    public void PushTile(StackPin stackPin)
    {
        pin = stackPin;
        var position = stackPin.CalculateNextPosition(gameObject);
        var sequence = DOTween.Sequence();

        if (!stackPin.pinIndex.Equals(pinIndex))
        {
            sequence.Append(transform.DOLocalMove(stackPin.GetEntryPoint(), 0.2f));
        }
        sequence.Append(transform.DOLocalMove(position, 0.1f));
        sequence.Play();
    }
Exemple #2
0
    public void LoadStackRandom(StackData stack, int stacksToFill, int maxStackPins)
    {
        stacksToWin = stacksToFill;
        if (stacksToFill > maxStackPins)
        {
            Debug.LogError("Pins to fill is higher than max pins");
            return;
        }

        stackPins.Shuffle();
        colors.Shuffle();

        Color[] randomColors = new Color[stacksToFill];

        for (int i = 0; i < stacksToFill; i++)
        {
            randomColors[i] = colors[i];
            //randomStackpins[i] = stackPins[i];
        }

        for (int j = 0; j < stacksToFill; j++)
        {
            int   colorCode = j;
            Color color     = randomColors[j];
            stack.meshes.Shuffle();
            for (int i = 0; i < stack.meshes.Count; i++)
            {
                GameObject tile = pooledGameObjects[0];
                pooledGameObjects.RemoveAt(0);
                var stackTile = tile.GetComponent <StackTile>();
                stackTile.SetData(stack);
                stackTile.colorCode = colorCode;
                stackTile.index     = stack.meshes[i].index;
                stackTile.SetMesh(stack.meshes[i].mesh);
                stackTile.SetMaterials(stack.materials.ToArray());
                stackTile.SetMaterialColor(color);
                stackPins.Shuffle();
                StackPin stackPin = stackPins[0];
                stackTile.pinIndex = stackPin.pinIndex;
                stackPin.PushTile(stackTile.gameObject);
            }
        }

        ActionManager.TriggerEvent(GameEvents.STACK_LOAD_COMPLETE, new Hashtable()
        {
            { "level", currentLevel }
        });
        //ActionManager.TriggerEvent(GameEvents.STACK_LOAD_COMPLETE);
    }
Exemple #3
0
 public void LoadStack(StackData stack, PinConfig config, List <Color> colors)
 {
     for (int j = 0; j < config.tiles.Count; j++)
     {
         var tileInfo = config.tiles[j];
         {
             GameObject tile = pooledGameObjects[0];
             pooledGameObjects.RemoveAt(0);
             var stackTile = tile.GetComponent <StackTile>();
             stackTile.SetData(stack);
             stackTile.colorCode = tileInfo.colorIndex;
             stackTile.index     = tileInfo.size;
             stackTile.SetMesh(stack.meshes[tileInfo.size - 1].mesh);
             stackTile.SetMaterials(stack.materials.ToArray());
             stackTile.SetMaterialColor(colors[tileInfo.colorIndex]);
             StackPin stackPin = stackPins[config.pinIndex];
             stackTile.pinIndex = stackPin.pinIndex;
             stackPin.PushTile(stackTile.gameObject);
         }
     }
 }
Exemple #4
0
 public void PopTile(StackPin stackPin)
 {
     transform.DOLocalMove(stackPin.GetEntryPoint(), 0.1f);
 }