コード例 #1
0
        /// <summary>
        /// Reaction to be called when pointer-like input is released
        /// </summary>
        private void OnInputRelease()
        {
            if (currentDeckInputOver != null)
            {
                if (currentDeckInputOver.deckType == DeckController.DeckType.Column)
                {
                    //Check if the card added is one more greater than actual and if they are of the same seed
                    if (CheckIfCardMatch(currentDeckInputOver.GetTopCardValue(), draggedCard.GetValue(), true))
                    {
                        GameManager.I.MoveCtrl.RecordMove(0, draggedCard, draggedCardOriginalDeck, currentDeckInputOver);
                        //Assing 5 points from a card that come in column from outside
                        if (draggedCardOriginalDeck.deckType != DeckController.DeckType.Column)
                        {
                            AssignPoints(5);
                            GameManager.I.MoveCtrl.GetLastMove().PointsGiven = 5;
                        }

                        //Assign a move
                        AssignMove();

                        currentDeckInputOver.AddTopCard(draggedCard);
                        ReleaseDraggedCard(false);
                    }
                }
                else if (currentDeckInputOver.deckType == DeckController.DeckType.Seed)
                {
                    //Check if the card added is one less than actual and if they are of the same seed
                    if (CheckIfCardMatch(currentDeckInputOver.GetTopCardValue(), draggedCard.GetValue(), false))
                    {
                        //Assign 10 points for a card in the seed decks
                        AssignPoints(10);

                        GameManager.I.MoveCtrl.RecordMove(10, draggedCard, draggedCardOriginalDeck, currentDeckInputOver);

                        //Assign a move
                        AssignMove();

                        currentDeckInputOver.AddTopCard(draggedCard);
                        ReleaseDraggedCard(false);
                    }

                    //If won, show it
                    if (CheckVictory())
                    {
                        GameManager.I.InterfaceCtrl.DisplayVictoryMenu();
                    }
                }
            }

            ReleaseDraggedCard(true);
        }
コード例 #2
0
        /// <summary>
        /// Return the card to original deck
        /// </summary>
        private void ReleaseDraggedCard(bool _giveBackToOriginalDeck)
        {
            if (draggedCard == null)
            {
                return;
            }

            if (_giveBackToOriginalDeck)
            {
                draggedCardOriginalDeck.AddTopCard(draggedCard);                        //Return the card to original Deck
            }
            else if (draggedCardOriginalDeck.deckType == DeckController.DeckType.Column)
            {
                if (draggedCardOriginalDeck.IsTopCardFrontSide)                         //Add the card to the new deck and flip the top
                {
                    draggedCardOriginalDeck.DrawCard(true, false);                      //card of the original deck if it wasn't already flipped (front side)
                }
                else
                {
                    AssignPoints(5);                                                    //Special case: assign 5 points if a card in column is reveald
                    draggedCardOriginalDeck.DrawCard(true, true);
                }
            }
            else if (draggedCardOriginalDeck.deckType == DeckController.DeckType.DrawnCards)
            {
                draggedCardOriginalDeck.DrawCard(true, false);                          //Never flip the drawn cards (they are already fron side)
                draggedCardOriginalDeck.OrderCards();                                   //Always update their displacement
            }

            draggedCard = null;
            isDragging  = false;
        }
コード例 #3
0
        /// <summary>
        /// Transfer the card from this deck to another
        /// </summary>
        /// <param name="_newDeck"></param>
        public void TransferTopCard(DeckController _newDeck)
        {
            CardBehaviour card = RemoveTopCard();

            if (card != null)
            {
                _newDeck.AddTopCard(card);
            }
        }