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; } } } }