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); }
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); }
/// <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); }