Example #1
0
        public void TurnDeck()
        {
            if (!_gm.Waiting)
            {
                StartCoroutine(_gm.StartWaiting(1f));
                _gm.AddMoveToUndo(new TurnDeckMove());
                for (int i = deckDropColumns.Length - 1; i >= 0; i--)
                {
                    var column = deckDropColumns[i];
                    for (int j = column.Cards.Count - 1; j >= 0; j--)
                    {
                        var card        = column.Cards[j];
                        var destination = _gm.GetCardDestinationPosition(transform, 0);
                        StartCoroutine(GameManager.MoveCardsOnBoard(card, destination, 500));
                        card.Flip(true);
                        card.transform.SetParent(transform);
                        card.TriggerActive = true;
                    }

                    column.Cards.RemoveAll(card => card != null);
                }

                _dropTransformCount = 0;

                _gm.UpdateScore(-10000);
                _gm.UpdateMove();
            }
        }
Example #2
0
        private void PickCardFromDeck(CardObject card)
        {
            _dropTransformCount %= 3;
            var deckDrop = deckDropColumns[_dropTransformCount];

            ManagePreviousColumnCardTrigger(false);
            deckDrop.AddCards(new[] { card });
            _dropTransformCount++;
            var destination = _gm.GetCardDestinationPosition(deckDrop.transform, 0);

            StartCoroutine(GameManager.MoveCardsOnBoard(card, destination, 500));
            GameManager.Instance.AddMoveToUndo(new DeckMove(deckDrop, new[] { card }));
        }
Example #3
0
        private void GenerateHint(Column toColumn, IEnumerable <CardObject> cards)
        {
            var hintCards = new List <CardObject>();

            InstantiateHintCards(hintCards, cards);

            for (int i = 0; i < hintCards.Count; i++)
            {
                var card        = hintCards[i];
                var destination = GameManager.Instance.GetCardDestinationPosition(toColumn.transform, toColumn.Spacing, 1 + i);
                StartCoroutine(GameManager.MoveCardsOnBoard(card, destination, 500, DestroyHintCard));
            }
        }
Example #4
0
        private void MoveDroppedCard(float speed, int formIndex, int toIndex)
        {
            if (deckDropColumns[formIndex].transform.childCount > 0)
            {
                var card        = deckDropColumns[formIndex].transform.GetChild(0).GetComponent <CardObject>();
                var destination = _gm.GetCardDestinationPosition(deckDropColumns[toIndex].transform, 0);
                deckDropColumns[toIndex].AddCards(new[] { card });
                deckDropColumns[formIndex].RemoveCards(new[] { card });
                StartCoroutine(GameManager.MoveCardsOnBoard(card, destination, speed));

                if (card.TriggerActive)
                {
                    card.TriggerActive = false;
                }
            }
        }