Пример #1
0
    private AlteredCandyInfo CreateNewCandyInSpecificColumns(IEnumerable <int> columnsWithMissingCandies)
    {
        AlteredCandyInfo newCandyInfo = new AlteredCandyInfo();

        foreach (int column in columnsWithMissingCandies)
        {
            var emptyItems = candies.GetEmptyItemsOnColumn(column);

            foreach (var item in emptyItems)
            {
                var go = GetRandomCandy();

                GameObject newCandy = Instantiate(go, SpawnPositions [column], Quaternion.identity) as GameObject;
                newCandy.GetComponent <Candy> ().Initialize(go.GetComponent <Candy> ().Type, item.Row, item.Column);

                if (GameVariables.Rows - item.Row > newCandyInfo.maxDistance)
                {
                    newCandyInfo.maxDistance = GameVariables.Rows - item.Row;
                }

                candies [item.Row, item.Column] = newCandy;
                newCandyInfo.AddCandy(newCandy);
            }
        }
        return(newCandyInfo);
    }
Пример #2
0
    private AlteredCandyInfo CreateNewCandyInSpecificColumns(IEnumerable <int> columnsWithMissingCandy)
    {
        AlteredCandyInfo newCandyInfo = new AlteredCandyInfo();

        //find how many null values the column has
        foreach (int column in columnsWithMissingCandy)
        {
            var emptyItems = candies.GetEmptyItemsOnColumn(column);
            foreach (var item in emptyItems)
            {
                var        go       = GetRandomCandy();
                GameObject newCandy = Instantiate(go, SpawnPositions[column], Quaternion.identity)
                                      as GameObject;

                newCandy.GetComponent <Candy>().Assign(item.Row, item.Column, go.GetComponent <Candy>().Type);

                if (Constant.xSize - item.Row > newCandyInfo.MaxDistance)
                {
                    newCandyInfo.MaxDistance = Constant.xSize - item.Row;
                }

                candies[item.Row, item.Column] = newCandy;
                newCandyInfo.AddCandy(newCandy);
            }
        }
        return(newCandyInfo);
    }
Пример #3
0
    /// <summary>
    /// Function resposible of creating new candies after the matches of the candies of same colour
    /// </summary>
    /// <param name="missingCandies"></param>
    /// <returns></returns>
    private AlteredCandyInfo CreateNewCandyinSpecificColumn(IEnumerable <int> missingCandies)
    {
        AlteredCandyInfo newCandyInfo = new AlteredCandyInfo();

        foreach (int col in missingCandies)
        {
            var candyInfos = candyArray.GetEmptyItemsOnColumn(col);

            foreach (var item in candyInfos)
            {
                GameObject tempGO = GetRandomCandy();
                if (tempGO != null)
                {
                    GameObject newCandy = Instantiate(tempGO, spawnPosition[col], Quaternion.identity);
                    newCandy.GetComponent <Candy>().Initialize(item.Row, item.Column, newCandy.GetComponent <Candy>().candyColour);

                    if (GameVariables.Rows - item.Row > newCandyInfo.MaxDistance)
                    {
                        newCandyInfo.MaxDistance = GameVariables.Rows - item.Row;
                    }

                    candyArray[item.Row, item.Column] = newCandy;
                    newCandyInfo.AddNewCandies(newCandy);
                }
            }
        }
        return(newCandyInfo);
    }
    /// <summary>
    /// Create new candies in empty spaces within each column
    /// </summary>
    /// <param name="columnsWithMissingCandies"></param>
    /// <returns></returns>
    private AlteredCandyInfo CreateNewCandyInSpecificColumns(IEnumerable <int> columnsWithMissingCandies)
    {
        AlteredCandyInfo newCandyInfo = new AlteredCandyInfo();

        // loop through each column to find the empty spaces
        foreach (int column in columnsWithMissingCandies)
        {
            var emptyItems = candies.GetEmptyItemsOnColumn(column);

            // for each missing item, generate a new candy
            foreach (var item in emptyItems)
            {
                // generate a new candy object
                var go = GetRandomCandy();

                // instantiate this candy
                GameObject newCandy = Instantiate(go, spawnPositions[column], Quaternion.identity) as GameObject;

                // initialize this candy and put it in its position
                newCandy.GetComponent <Candy>().Initialize(go.GetComponent <Candy>().Type, item.Row, item.Column);

                //
                if (GameVariables.Rows - item.Row > newCandyInfo.maxDistance)
                {
                    // Update the max distance
                    newCandyInfo.maxDistance = GameVariables.Rows - item.Row;
                }

                // add the new candy into the array
                candies[item.Row, item.Column] = newCandy;

                // add the candy to the new candy info
                newCandyInfo.AddCandy(newCandy);
            }
        }



        return(newCandyInfo);
    }