//invoke from buttton scene public void SetTurnBack() { if (SaveInfo.Count == 0) { return; } HexagonalCell[] cells = HexagonalGrid.Instance.GetAllCells(); int lenght = cells.Length; int count = SaveInfo.Count - 2; for (int i = 0; i < lenght; i++) { CardData card = SaveInfo[count].Cards[i]; cells[i].InitCardInCellWithCheckClosed((int)card.myColor, card.myNumCard, card.mySpecialCard, card.isClosed); } CardData _activCard = SaveInfo[count].ActicCard; activCard.InitCard((int)_activCard.myColor, _activCard.myNumCard, _activCard.mySpecialCard); score.SetScore(SaveInfo[count].Score); score.SetTurn(SaveInfo[count].Turn); ManagerClosedCard.Instance.currentProgress = SaveInfo[count].untilClosed; score.SetTextClosedCard(SaveInfo[count].untilClosed); SaveInfo.RemoveAt(SaveInfo.Count - 1); Debug.Log("turn back"); }
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); } }