コード例 #1
0
ファイル: PackWatcher.cs プロジェクト: riQQ/HearthSim.Common
        public override UpdateResult Update()
        {
            var cards = _gameDataProvider.GetPackCards();

            if (cards?.Count == 5)
            {
                if (cards.All(x => _previousPack.Any(c => c.Id == x.Id & c.Premium == x.Premium)))
                {
                    return(UpdateResult.Continue);
                }
                if (_previousPack.Any())
                {
                    _invokeEvent = true;
                }
                _previousPack.Clear();
                _previousPack.AddRange(cards);
                if (_invokeEvent)
                {
                    var pack = new Pack((Booster)_gameDataProvider.GetPackId(),
                                        cards.Select(x => new CollectionCard(x.Id, x.Premium ? 0 : x.Count, x.Premium ? x.Count : 0)));
                    PackOpened?.Invoke(new PackOpenedEventArgs(pack));
                }
            }
            else
            {
                _invokeEvent = true;
            }

            return(UpdateResult.Continue);
        }
コード例 #2
0
 private void OnPackOpened(Pack Pack)
 {
     PackOpened?.Invoke(this, new PackOpenedEventArgs(Pack));
 }
コード例 #3
0
 internal virtual void OnPackOpened(PackOpenedEventArgs args) => PackOpened?.Invoke(args);