Exemple #1
0
    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);
    }
Exemple #2
0
 public void SetColor(SweetsColorType colorType)
 {
     if (CanChangeColor())
     {
         ColorComponent.SetColor(colorType);
     }
 }
Exemple #3
0
    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);
    }
Exemple #4
0
    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>();
 }