Ejemplo n.º 1
0
 public void LoadSpecs(GridSpecs <T> gridSpecs, int cols, int rows)
 {
     gridSpecs.Dimensions = new Vector2(cols, rows);
     gridSpecs.Initialise();
     TileSpecs = new TileSpecs <T>(gridSpecs, cols, rows);
     gridSpecs.CalibrateTile(TileSpecs);
     // Because I cannot serialise GridSpecs<T>
     _gridSpecs = gridSpecs;
 }
Ejemplo n.º 2
0
    private void OnTriggerEnter(Collider other)
    {
        Debug.Log("meni");

        tile = other.GetComponent <TileSpecs>();
        if (tile != null)
        {
            if (gameStarted && tile.colorInt == doc.color)
            {
                hittedTile = true;
            }
            else
            {
                hittedTile = false;
            }
        }
    }
Ejemplo n.º 3
0
    public void Do777Sorting(List <RectTransform> tileList, List <TileSpecs> tileSpecsList, List <TileSpecs> removedTiles)
    {
        TileSpecs UniqueTile = null;
        List <List <TileSpecs> > MatchedTiles = new List <List <TileSpecs> >();

        for (int i = 0; i < tileList.Count; i++)
        {
            if (tileList[i].GetComponent <TileSpecs>().isUnique)
            {
                UniqueTile = tileList[i].GetComponent <TileSpecs>();
            }
        }



        for (int i = 1; i < tileSpecsList.Count; i++)
        {
            int count = tileSpecsList.FindAll(s => s.number.Equals(i) && !s.isDuplicated && !s.isUnique && !s.isUsed).Count;

            if (count >= 3)
            {
                MatchedTiles.Add(tileSpecsList.FindAll(s => s.number.Equals(i) && !s.isDuplicated && !s.isUnique && !s.isUsed));
            }
            else if (count == 2 && !UniqueTile.isUsed)
            {
                UniqueTile.isUsed = true;
                List <TileSpecs> UniqeTileAdder;
                UniqeTileAdder = tileSpecsList.FindAll(s => s.number.Equals(i) && !s.isDuplicated && !s.isUnique && !s.isUsed);
                UniqeTileAdder.Add(UniqueTile);

                MatchedTiles.Add(UniqeTileAdder);
            }
        }



        for (int i = 0; i < MatchedTiles.Count; i++)
        {
            for (int j = 0; j < MatchedTiles[i].Count; j++)
            {
                if (MatchedTiles[i][j] != null)
                {
                    LeanTween.move(MatchedTiles[i][j].gameObject,
                                   TileCreator.TC.Slots[TileCreator.TC.CurrentOpenSlotIndex].transform.position,
                                   0.35f);
                    //  MatchedTiles[i][j].TargetPos = TileCreator.TC.Slots[TileCreator.TC.CurrentOpenSlotIndex].transform.position;
                    MatchedTiles[i][j].isUsed = true;
                    TileCreator.TC.Slots[TileCreator.TC.CurrentOpenSlotIndex].GetComponent <SlotScript>().isOccupied = true;
                    //   Debug.Log("Number: " + MatchedTiles[i][j].number + " Color: " + MatchedTiles[i][j].color + " Duplicated: "
                    //      + MatchedTiles[i][j].isDuplicated);
                    TileCreator.TC.CurrentOpenSlotIndex++;
                }
            }
            TileCreator.TC.CurrentOpenSlotIndex++;
        }

        for (int i = 0; i < tileSpecsList.Count; i++)
        {
            if (!tileSpecsList[i].isUsed)
            {
                if (!removedTiles.Contains(tileSpecsList[i]))
                {
                    removedTiles.Add(tileSpecsList[i]);
                    Debug.Log("ALOOOOOOOOOOOOO");
                }


                //   tileSpecsList[i].transform.position = TileCreator.TC.Slots[TileCreator.TC.CurrentOpenSlotIndex].transform.position;
                // TileCreator.TC.CurrentOpenSlotIndex++;
            }
        }
    }
Ejemplo n.º 4
0
        public void CalibrateTile(TileSpecs <T> specs)
        {
            var scale = new Vector3(specs.ScaleX, specs.ScaleY);

            TileInstance.Scale(scale);
        }
Ejemplo n.º 5
0
    private IEnumerator CheckNeighbours(GameObject go)
    {
        if (playerTurn == 1)
        {
            whichPlayerHasTurn = player1PC;
        }
        else
        {
            whichPlayerHasTurn = player2PC;
        }
        color = go.GetComponent <TileSpecs>().colorInt;
        TileSpecs goSpecs = go.GetComponent <TileSpecs>();

        if (!goSpecs.hasChecked)
        {
            if (Physics.Raycast(go.transform.position, Vector3.up, out hit, 1f) && hit.collider.tag == "Tile" && hit.collider.gameObject.GetComponent <TileSpecs>().colorInt == color)
            {
                if (!hit.collider.gameObject.GetComponent <TileSpecs>().hasChecked&& !hit.collider.gameObject.GetComponent <TileSpecs>().isAdded)
                {
                    goSpecs.neighboursList.Add(hit.collider.gameObject);
                    destroy.Add(hit.collider.gameObject);
                    hit.collider.gameObject.GetComponent <TileSpecs>().isAdded = true;
                }
            }

            if (Physics.Raycast(go.transform.position, Vector3.down, out hit, 1f) && hit.collider.tag == "Tile" && hit.collider.gameObject.GetComponent <TileSpecs>().colorInt == color)
            {
                if (!hit.collider.gameObject.GetComponent <TileSpecs>().hasChecked&& !hit.collider.gameObject.GetComponent <TileSpecs>().isAdded)
                {
                    goSpecs.neighboursList.Add(hit.collider.gameObject);
                    destroy.Add(hit.collider.gameObject);
                    hit.collider.gameObject.GetComponent <TileSpecs>().isAdded = true;
                }
            }

            if (Physics.Raycast(go.transform.position, Vector3.left, out hit, 1f) && hit.collider.tag == "Tile" && hit.collider.gameObject.GetComponent <TileSpecs>().colorInt == color)
            {
                if (!hit.collider.gameObject.GetComponent <TileSpecs>().hasChecked&& !hit.collider.gameObject.GetComponent <TileSpecs>().isAdded)
                {
                    goSpecs.neighboursList.Add(hit.collider.gameObject);
                    destroy.Add(hit.collider.gameObject);
                    hit.collider.gameObject.GetComponent <TileSpecs>().isAdded = true;
                }
            }

            if (Physics.Raycast(go.transform.position, Vector3.right, out hit, 1f) && hit.collider.tag == "Tile" && hit.collider.gameObject.GetComponent <TileSpecs>().colorInt == color)
            {
                if (!hit.collider.gameObject.GetComponent <TileSpecs>().hasChecked&& !hit.collider.gameObject.GetComponent <TileSpecs>().isAdded)
                {
                    goSpecs.neighboursList.Add(hit.collider.gameObject);
                    destroy.Add(hit.collider.gameObject);
                    hit.collider.gameObject.GetComponent <TileSpecs>().isAdded = true;
                }
            }

            goSpecs.hasChecked = true;

            yield return(new WaitForSeconds(0.0f));

            if (goSpecs.neighboursList.Count != 0)
            {
                for (int i = 0; i < goSpecs.neighboursList.Count; i++)
                {
                    yield return(new WaitForSeconds(0.0f));

                    StartCoroutine(CheckNeighbours(goSpecs.neighboursList[i]));
                }
            }
            else
            {
                for (int i = 0; i < destroy.Count; i++)
                {
                    if (destroy[i].GetComponent <TileSpecs>().isAdded == true && destroy[i].GetComponent <TileSpecs>().hasChecked == false)
                    {
                        StartCoroutine(CheckNeighbours(destroy[i]));
                    }
                }

                yield return(new WaitForSeconds(0.0f));

                for (int i = 0; i < destroy.Count; i++)
                {
                    if (color == 1)
                    {
                        blue++;
                        AddProbs(whichPlayerHasTurn);
                    }
                    else if (color == 2)
                    {
                        green++;
                        AddProbs(whichPlayerHasTurn);
                    }
                    else if (color == 3)
                    {
                        red++;
                        AddProbs(whichPlayerHasTurn);
                    }
                    Destroy(destroy[i]);
                    //Debug.Log("Destroyed tiles: "+ x);

                    //destroy.Remove(destroy[i]);
                }

                destroy.Clear();
            }
        }
    }