Пример #1
0
        protected override void Start()
        {
            base.Start();

            IsSingleMode            = true;
            _singleModeGuessingCard = null;

            var cardList = new List <Card>(GetComponentsInChildren <Card>());

            var maxCardId = cardList.FindMax(x => x.Id);

            foreach (var card in cardList)
            {
                if (IsSingleMode && _cardPassDict.Keys.FirstOrDefault(x => x.PictureSprite.spriteId == card.PictureSprite.spriteId) != null)
                {
                    IsSingleMode = false;
                }

                card.Init(maxCardId * Card.SHOW_FIRST_TIME_DELAY + CARD_MEMORY_DURATION);
                _cardPassDict.Add(card, false);
            }

            ShuffleCards();

            _baloon = transform.root.GetComponentsInChildren <DreamingBaloon>(true)[0];

            _baloon.gameObject.SetActive(IsSingleMode);

            cardList[0].OnHideCardFinished += () => { dispatcher.Dispatch(FieldEventType.FirstCardShowFinished); if (IsSingleMode)
                                                      {
                                                          _baloon.Show();
                                                      }
            };

            if (IsSingleMode)
            {
                _singleModeGuessingCard = cardList[Random.Range(0, cardList.Count)];
                _baloon.Picture.SetSprite(_singleModeGuessingCard.PictureSprite.spriteId);

                foreach (var card in cardList)
                {
                    if (!card.Equals(_singleModeGuessingCard))
                    {
                        _cardPassDict[card] = true;
                    }
                }
            }
        }