Beispiel #1
0
    public void InitBonusInfo(eSpecialCard _specialCard)
    {
        string path = "";

        bonus.transform.localPosition = Vector3.zero;
        if (animator == null)
        {
            animator = bonus.GetComponent <Animator>();
        }
        animator.enabled = false;
        if (_specialCard == eSpecialCard.Joker)
        {
            int rand = Random.Range(0, 4);
            path = "Card/Special/" + _specialCard.ToString() + rand.ToString();
        }
        else if (_specialCard == eSpecialCard.chameleon)
        {
            int rand = Random.Range(1, 3);
            path = "Card/Special/" + _specialCard.ToString() + rand.ToString();
        }
        else if (_specialCard == eSpecialCard.wind1)
        {
            if (animator != null)
            {
                animator.enabled = true;
                animator.Play("Wind1");
            }
            return;
        }
        else if (_specialCard == eSpecialCard.wind2)
        {
            if (animator != null)
            {
                animator.enabled = true;
                animator.Play("Wind2");
            }
            return;
        }
        else
        {
            path = "Card/Special/" + _specialCard.ToString();
        }
        Sprite _sprite = Resources.Load <Sprite>(path);

        bonus.sprite = _sprite;
    }
Beispiel #2
0
 void OnDisable()
 {
     if (isFull)
     {
         PlayerPrefs.SetString(name, myBonus.ToString());
     }
     else
     {
         PlayerPrefs.SetString(name, "");
     }
 }
Beispiel #3
0
 private BonusSlot GetSameBonusInSlot(eSpecialCard _bonus)
 {
     for (int i = 0; i < bonusSlots.Length; i++)
     {
         eSpecialCard currentBonus = bonusSlots[i].GetBonus();
         if (_bonus.ToString().Contains("upend") && currentBonus.ToString().Contains("upend"))
         {
             if (currentBonus != eSpecialCard.upend4)
             {
                 return(bonusSlots[i]);
             }
         }
         if (_bonus.ToString().Contains("bullet") && currentBonus.ToString().Contains("bullet"))
         {
             if (currentBonus != eSpecialCard.bullet5)
             {
                 return(bonusSlots[i]);
             }
         }
         if (_bonus.ToString().Contains("fireworks") && currentBonus.ToString().Contains("fireworks"))
         {
             if (currentBonus != eSpecialCard.fireworks3)
             {
                 return(bonusSlots[i]);
             }
         }
         if (_bonus.ToString().Contains("wind") && currentBonus.ToString().Contains("wind"))
         {
             if (currentBonus != eSpecialCard.wind3)
             {
                 return(bonusSlots[i]);
             }
         }
     }
     return(null);
 }
Beispiel #4
0
    public void PlayBonusStart(eSpecialCard _bonus, bool isStart)
    {
        string path  = "Audio/";
        string bonus = _bonus.ToString();

        if (isStart)
        {
            path += "Start/";
        }
        else
        {
            path += "Go/";
        }

        if (bonus.Contains("upend"))
        {
            bonus = "upend";
        }
        else if (bonus.Contains("wind"))
        {
            bonus = "wind";
        }
        else if (bonus.Contains("bullet"))
        {
            bonus = "bullet";
        }
        else if (bonus.Contains("fireworks"))
        {
            bonus = "fireworks";
        }
        AudioClip _clip = Resources.Load <AudioClip>(path + bonus);

        if (_clip != null)
        {
            allSound.PlayOneShot(_clip);
        }
    }
Beispiel #5
0
    private void MechanicsBonuses(HexagonalCell _cell)
    {
        SoundManager.Instance.PlayBonusStart(currentBonus, false);
        string strCurrentBonus = currentBonus.ToString();

        if (strCurrentBonus.Contains("upend"))
        {
            isNeedActivateBonus = true;
            if (!_cell.GetCard().GetIsClosed())
            {
                return;
            }
            currentActivSlot.ActivateBackImageCard(true);
            _cell.SetFlashingBack(false);
            _cell.GetCard().SetIsClosed(false);
            canUppend--;
            ManagerCombination.Instance.ClearMatchCells();
            if (canUppend <= 0)
            {
                currentActivSlot.ClearSlot();
                isNeedActivateBonus = false;
                HexagonalCell[] closedCells = HexagonalGrid.Instance.GetAllClosedCard();
                for (int i = 0; i < closedCells.Length; i++)
                {
                    closedCells[i].SetFlashingBack(false);
                }
            }
        }
        else if (strCurrentBonus.Contains("wind"))
        {
            int step = 0;
            if (currentBonus == eSpecialCard.wind1)
            {
                step = 1;
            }
            if (currentBonus == eSpecialCard.wind2)
            {
                step = 2;
            }
            if (currentBonus == eSpecialCard.wind3)
            {
                step = 3;
            }
            currentActivSlot.GetMyCard().SetMovePositionCallBack(_cell.transform.position, (delegate() {
                HexagonalGrid.Instance.WindFallNearCard(_cell.Info.myX, _cell.Info.myY, step);
                BonusManager.Instance.ClearCurrentBonusSlot();
                ManagerCombination.Instance.ClearMatchCells();
                activCard.SetEnableImageCard(true);
            }));
        }
        else if (strCurrentBonus.Contains("fireworks"))
        {
            int step = 0;
            if (currentBonus == eSpecialCard.fireworks2)
            {
                step = 1;
            }
            if (currentBonus == eSpecialCard.fireworks3)
            {
                step = 2;
            }
            currentActivSlot.GetMyCard().SetMovePositionCallBack(_cell.transform.position, (delegate() {
                HexagonalGrid.Instance.FallNearCard(_cell.Info.myX, _cell.Info.myY, step);
                BonusManager.Instance.ClearCurrentBonusSlot();
                ManagerCombination.Instance.ClearMatchCells();
                activCard.SetEnableImageCard(true);
            }));
        }
        else if (currentBonus == eSpecialCard.copy && !_cell.GetCard().GetIsClosed())
        {
            if (!activCard.GetIsMoving())
            {
                activCard.AppearanceInit((int)_cell.GetCard().Info.myColor, _cell.GetCard().Info.myNumCard, eSpecialCard.none);
                currentActivSlot.ClearSlot();
            }
        }
        else if (currentBonus == eSpecialCard.chameleon && !_cell.GetCard().GetIsClosed() && _cell.GetCard().Info.mySpecialCard == eSpecialCard.none)
        {
            chameleonPanel.ActivatePanel(_cell);
            currentActivSlot.ClearSlot();
        }
        else if (currentBonus == eSpecialCard.decrease && !_cell.GetCard().GetIsClosed() && _cell.GetCard().Info.myNumCard > 2)
        {
            _cell.GetCard().DecreaseCard();
            currentActivSlot.ClearSlot();
        }
        else if (currentBonus == eSpecialCard.increase && !_cell.GetCard().GetIsClosed() && _cell.GetCard().Info.myNumCard < 14)
        {
            _cell.GetCard().IncreaseCard();
            currentActivSlot.ClearSlot();
        }
    }
Beispiel #6
0
    public void ActivateBonus(BonusSlot _bonusSlot)
    {
        if (_bonusSlot == null || _bonusSlot.GetBonus() == eSpecialCard.none || activCard.myCard.Info.mySpecialCard != eSpecialCard.none || isNeedActivateBonus)
        {
            return;
        }
        eSpecialCard _currentBonus = _bonusSlot.GetBonus();

        SoundManager.Instance.PlayBonusStart(_currentBonus, true);
        isNeedActivateBonus = false;
        if (_currentBonus == eSpecialCard.Joker || _currentBonus.ToString().Contains("bullet"))
        {
            if (!activCard.GetIsMoving())
            {
                activCard.SetReserveCardToPoll();
                activCard.InitCard(0, 0, _currentBonus);
                _bonusSlot.ClearSlot();
            }
        }
        else if (_currentBonus.ToString().Contains("wind") || _currentBonus.ToString().Contains("fireworks"))
        {
            if (!activCard.GetIsMoving())
            {
                Transform card = _bonusSlot.GetMyCard().GetTransformImageCard();
                Vector3   pos  = activCard.transform.position;
                activCard.SetEnableImageCard(false);
                card.position = pos;
                NeedActivateBonus(_bonusSlot, false);
            }
        }
        else if (_currentBonus == eSpecialCard.upend1 || _currentBonus == eSpecialCard.upend2 || _currentBonus == eSpecialCard.upend3)
        {
            HexagonalCell[] closedCells = HexagonalGrid.Instance.GetAllClosedCard();
            for (int i = 0; i < closedCells.Length; i++)
            {
                closedCells[i].SetFlashingBack(true);
            }
            canUppend = (int)_currentBonus;
            NeedActivateBonus(_bonusSlot, true);
        }
        else if (_currentBonus == eSpecialCard.upend4)
        {
            HexagonalCell[] closedCells = HexagonalGrid.Instance.GetAllClosedCard();
            for (int i = 0; i < closedCells.Length; i++)
            {
                closedCells[i].GetCard().SetIsClosed(false);
            }
            _bonusSlot.ClearSlot();
        }
        else if (_currentBonus == eSpecialCard.hurricane)
        {
            HexagonalGrid.Instance.MixAllCards();
            _bonusSlot.ClearSlot();
        }
        else if (_currentBonus == eSpecialCard.free)
        {
            activCard.SetCanFlight();
            _bonusSlot.ClearSlot();
        }
        else
        {
            NeedActivateBonus(_bonusSlot, true);
        }
    }
Beispiel #7
0
        public string InitBonusInfo(eSpecialCard _specialCard)
        {
            string path = "Card/" + Info.myColor.ToString() + "/" + Info.myNumCard.ToString();

            if (_specialCard != eSpecialCard.none)
            {
                if (_specialCard == eSpecialCard.Joker)
                {
                    int rand = Random.Range(0, 4);
                    path = "Card/Special/" + _specialCard.ToString() + rand.ToString();
                }
                else if (_specialCard == eSpecialCard.chameleon)
                {
                    int rand = Random.Range(1, 3);
                    path = "Card/Special/" + _specialCard.ToString() + rand.ToString();
                }
                else if (_specialCard == eSpecialCard.wind1)
                {
                    if (animator != null)
                    {
                        animator.enabled = true;
                        animator.Play("Wind1");
                    }
                    imageCard.enabled = true;
                    return(null);
                }
                else if (_specialCard == eSpecialCard.wind2)
                {
                    if (animator != null)
                    {
                        animator.enabled = true;
                        animator.Play("Wind2");
                    }
                    imageCard.enabled = true;
                    return(null);
                }
                else
                {
                    path = "Card/Special/" + _specialCard.ToString();
                }
            }
            Sprite _sprite = Resources.Load <Sprite>(path);

            if (_sprite != null)
            {
                imageCard.enabled = true;
                imageCard.sprite  = _sprite;
                textCard.text     = "";
            }
            else
            {
                imageCard.enabled = false;
                if (_specialCard == eSpecialCard.none)
                {
                    textCard.text = "";
                }
                else
                {
                    textCard.text = _specialCard.ToString();
                }
            }
            return(path);
        }