public void DealCardToPlayer(int spreadCardId, int playerCardId, GameModel.Turn turn) { _commandsSequence.Enqueue(() => { Debug.Log("DealCardToPlayer animation targetPlayer " + turn); var cardToMove = FindCardById(_spreadCards, spreadCardId); var holderMoveFrom = FindCardHolderByCardId(_spreadCardHolders, spreadCardId); if (holderMoveFrom != null) { holderMoveFrom.DetachCard(); } else { Debug.LogError("cardHolder is null for spread card id: " + spreadCardId); } CardHolder holderMoveTo; var currenPlayerCardHolders = turn == GameModel.Turn.PLAYER ? _playerCardHolders : _opponentCardHolders; var currenPlayerCards = turn == GameModel.Turn.PLAYER ? _playerCards : _opponentCards; if (playerCardId == -1) { holderMoveTo = GetEmptyHolder(currenPlayerCardHolders); } else { holderMoveTo = FindCardHolderByCardId(currenPlayerCardHolders, playerCardId); } if (holderMoveTo != null && cardToMove != null) { holderMoveTo.AttachCard(spreadCardId); currenPlayerCards.Add(cardToMove); _spreadCards.Remove(cardToMove); cardToMove.RectTransform.DOMove(holderMoveTo.RectTransform.position, DEAL_DURATION). OnComplete(() => { NextCommand(); }); } else { if (holderMoveTo == null) { Debug.LogError("holderToMove is null for player card id: " + playerCardId); } if (cardToMove == null) { Debug.LogError("cardToMove is null for spread card id: " + spreadCardId); } } }); }
public void ChangeTurn(GameModel.Turn turn) { _commandsSequence.Enqueue(() => { }); }
public void MatchedPlayerCards(Dictionary <GameConfig.MatchType, List <CardVo> > cardsByMatchingType, GameModel.Turn turn) { _commandsSequence.Enqueue(() => { Sequence sequence = DOTween.Sequence(); var currenPlayerCardHolders = turn == GameModel.Turn.PLAYER ? _playerCardHolders : _opponentCardHolders; var currenPlayerCards = turn == GameModel.Turn.PLAYER ? _playerCards : _opponentCards; List <Card> cardsToRemove = new List <Card>(); foreach (GameConfig.MatchType matchingType in cardsByMatchingType.Keys) { var cardsList = cardsByMatchingType[matchingType]; Sequence scaleUpSequence = DOTween.Sequence(); Sequence scaleDownSequence = DOTween.Sequence(); foreach (CardVo cardVo in cardsList) { var cardToAnimate = FindCardById(currenPlayerCards, cardVo.id); if (cardToAnimate) { if (cardsToRemove.IndexOf(cardToAnimate) == -1) { cardsToRemove.Add(cardToAnimate); } scaleUpSequence.Join(cardToAnimate.RectTransform.DOScale(new Vector3(1.1f, 1.5f, 1), 0.3f)); scaleDownSequence.Join(cardToAnimate.RectTransform.DOScale(Vector3.one, 0.2f)); } else { Debug.LogError("cand find card for id " + cardVo.id + " for target " + turn); } } sequence.Append(scaleUpSequence); sequence.Append(scaleDownSequence); } Sequence scaleToZeroSequence = DOTween.Sequence(); foreach (Card card in cardsToRemove) { currenPlayerCards.Remove(card); scaleToZeroSequence.Join(card.RectTransform.DOScale(new Vector3(0f, 0f, 1), 0.2f).OnComplete(() => { DestroyCard(card); })); } sequence.Append(scaleToZeroSequence); sequence.OnComplete(() => { NextCommand(); }); }); }
public void MoveCardFromPlayerToCommonDeck(int playerCardId, int commonDeckCardId, GameModel.Turn turn) { _commandsSequence.Enqueue(() => { List <Card> currentPlayerDeck = turn == GameModel.Turn.PLAYER ? _playerCards : _opponentCards; Card cardToMove = FindCardById(currentPlayerDeck, playerCardId); if (cardToMove == null) { Debug.LogError("can't move card from current player: " + turn + " card id: " + playerCardId + " no such card in player deck"); } else { CardHolder holderDestination = FindCardHolderByCardId(_commonDeckCardHolders, commonDeckCardId); if (holderDestination == null) { Debug.LogError("can't move card to common deck - no such card with id: " + commonDeckCardId); } else { holderDestination.DetachCard(); Sequence sequence = DOTween.Sequence(); Card cardToRemoveFromCommonDeck = FindCardById(_commonDeckCards, commonDeckCardId); sequence.Append(cardToMove.RectTransform.DOMove(holderDestination.RectTransform.position, 1)); sequence.Append(cardToMove.RectTransform.DOScale(Vector3.zero, 0.1f)); sequence.Join(cardToRemoveFromCommonDeck.RectTransform.DOScale(Vector3.zero, 0.1f)); sequence.OnComplete(() => { _commonDeckCards.Remove(cardToRemoveFromCommonDeck); DestroyCard(cardToRemoveFromCommonDeck); DestroyCard(cardToMove); NextCommand(); }); } } }); if (_currentCommand == null && _commandsSequence.Count > 0) { NextCommand(); } }
public void ChangeTurn(GameModel.Turn turn) { }
public void MatchedPlayerCards(Dictionary <GameConfig.MatchType, List <CardVo> > cards, GameModel.Turn turn) { _gameScreen.MatchedPlayerCards(cards, turn); }
public void MoveCardFromPlayerToCommonDeck(int playerCardId, int commonDeckCardId, GameModel.Turn turn) { _gameScreen.MoveCardFromPlayerToCommonDeck(playerCardId, commonDeckCardId, turn); }
public void DealCardToPlayer(int spreadCardId, int playerCardId, GameModel.Turn turn) { _gameScreen.DealCardToPlayer(spreadCardId, playerCardId, turn); }