public void PutCard(TTCard card, int indexOfRow, int indexOfColumn) { if (IsCardExistAt(indexOfRow, indexOfColumn)) { return; } _slots[indexOfRow, indexOfColumn] = card; _ruleContext.ApplyRuleOnMove(this, card.belongPlayerId, indexOfRow, indexOfColumn); }
public void SelectCard(TTCard card) { if (_presenter.GetCurrentPlayer() == card.belongPlayerId) { _selectedCard = card; } else { Debug.LogWarning("Selected card not belong to current turn player."); } }
public void SelectSlot(int indexOfRow, int indexOfColumn) { if (_selectedCard != null) { if (!_presenter.IsCardExistAt(indexOfRow, indexOfColumn)) { _presenter.PutCard(_selectedCard, indexOfRow, indexOfColumn); _selectedCard = null; } } }
public void ApplyRuleOnMove(TTBoard board, int movedPlayerId, int indexOfRow, int indexOfColumn) { TTCard movedCard = board.GetCardAt(indexOfRow, indexOfColumn); foreach (Direction direction in System.Enum.GetValues(typeof(Direction))) { TTCard adjacentCard = board.GetCardAt(indexOfRow, indexOfColumn, direction); if (adjacentCard != null && (adjacentCard.belongPlayerId != movedPlayerId)) { int movedCardRank = movedCard.GetRankOf(direction); int adjacentCardRank = adjacentCard.GetOppositeRankOf(direction); bool canTurnCard = CompareRank(movedCardRank, adjacentCardRank) > 0; if (canTurnCard) { adjacentCard.belongPlayerId = movedPlayerId; } } } }
public void UpdateUI(TTCard updateCard) { card = updateCard; if (card != null) { _cardParent.SetActive(true); TTCardData cardData = card.cardData; _rankUpText.text = GetRankString(cardData.rankUp); _rankRightText.text = GetRankString(cardData.rankRight); _rankDownText.text = GetRankString(cardData.rankDown); _rankLeftText.text = GetRankString(cardData.rankLeft); backgroundImg.color = TTGameView.Instance.GetCardColorOf(card.belongPlayerId); } else { _cardParent.SetActive(false); } }
public void UpdateUI(TTCard card) { cardUI.UpdateUI(card); }