public void ClearColor(SweetsColorType type, SweetInfo boom1 = null, SweetInfo boom2 = null) { List <SweetInfo> list = new List <SweetInfo>(); SweetInfo item; for (int x = 0; x < xColumn; x++) { for (int y = 0; y < yColumn; y++) { item = sweetsArray[x, y]; if (item.CanChangeColor() && (item.ColorComponent.SweetColorType == type || type == SweetsColorType.Any)) { list.Add(item); } } } if (boom1 != null) { list.Add(boom1); } if (boom2 != null) { list.Add(boom2); } ClearSweets(list, true); }
public void SetColor(SweetsColorType colorType) { if (CanChangeColor()) { ColorComponent.SetColor(colorType); } }
public SweetInfo CreateSpecialSweet(int count, SweetsColorType color, int _x, int _y) { SweetInfo info = null; if (count == 4) { Destroy(sweetsArray[_x, _y].gameObject); var type = UnityEngine.Random.Range(0, 1f) < 0.5f ? SweetsType.Row_Clear : SweetsType.Column_Clear; info = sweetsArray[_x, _y] = CreateNewSweet(type, _x, _y); info.SetColor(color); } else if (count >= 5) { Destroy(sweetsArray[_x, _y].gameObject); sweetsArray[_x, _y] = CreateNewSweet(SweetsType.Rainbowcandy, _x, _y); } return(info); }
public List <SweetInfo> MatchSweets(SweetInfo sweet, int newX, int newY) { if (sweet.CanChangeColor()) { SweetsColorType color = sweet.ColorComponent.SweetColorType; List <SweetInfo> matchRowSweets = new List <SweetInfo>(); List <SweetInfo> matchLineSweets = new List <SweetInfo>(); List <SweetInfo> finisedMatchSweets = new List <SweetInfo>(); for (int xDir = -1; xDir <= 1; xDir++) { if (xDir == 0) { continue; } for (int xDistance = 1; xDistance < xColumn; xDistance++) { int posX = newX + (xDir * xDistance); if (posX < 0 || posX >= xColumn) { break; } if (sweetsArray[posX, newY].CanChangeColor() && sweetsArray[posX, newY].ColorComponent.SweetColorType == color) { matchRowSweets.Add(sweetsArray[posX, newY]); } else { break; } } } for (int yDir = -1; yDir <= 1; yDir++) { if (yDir == 0) { continue; } for (int yDistance = 1; yDistance < yColumn; yDistance++) { int posY = newY + (yDir * yDistance); if (posY < 0 || posY >= yColumn) { break; } if (sweetsArray[newX, posY].CanChangeColor() && sweetsArray[newX, posY].ColorComponent.SweetColorType == color) { matchLineSweets.Add(sweetsArray[newX, posY]); } else { break; } } } if (matchRowSweets.Count >= 2) { finisedMatchSweets.AddRange(matchRowSweets); } if (matchLineSweets.Count >= 2) { finisedMatchSweets.AddRange(matchLineSweets); } finisedMatchSweets.Add(sweet); if (finisedMatchSweets.Count >= 3) { return(finisedMatchSweets); } } return(null); }
public void SetColor(SweetsColorType colorType) { SweetColorType = colorType; sweetSprite.sprite = MainGameManager.Instance.SweetsColorDic[SweetColorType].sprite; }
private void Awake() { movedComponent = GetComponent <SweetsMovement>(); coloredComponent = GetComponent <SweetsColorType>(); elimiComponent = GetComponent <Eliminate>(); }