예제 #1
0
        protected override void DoHandle(RaceAward content)
        {
            var raceAwardQueue = _raceAward.Read();

            if (raceAwardQueue == null)
            {
                raceAwardQueue = new Queue <RaceAward>();
                _raceAward.Write(raceAwardQueue, Time.time);
            }

            if (!raceAwardQueue.Contains(content))
            {
                raceAwardQueue.Enqueue(content);
            }

            var cacheDialog = _dialogManager.GetCachedDialog(DialogName.RaceAwardsDialog);

            if (cacheDialog != null)
            {
                return;
            }

            if (raceAwardQueue.Count <= 0)
            {
                return;
            }

            var raceAward = raceAwardQueue.Dequeue();

            if (raceAward == null)
            {
                return;
            }

            _dialogManager.ShowDialog <RaceAwardsDialog>(DialogName.RaceAwardsDialog, false, true,
                                                         (dialog) =>
            {
                dialog.Apply(raceAward);
                dialog.Show();
            });
        }