public void Initialize()
 {
     _run     = null;
     _info    = null;
     _data    = new MockDungeonRunData();
     _watcher = new DungeonRunWatcher(_data, 100);
     _watcher.DungeonRunMatchStarted += run => _run = run;
     _watcher.DungeonRunDeckUpdated  += info => _info = info;
 }
        public void InAdventureScreen_InfoNotUpdatedUntilReset()
        {
            _data.InAdventureScreen = true;
            _data.MockDungeonInfo   = new[]
            {
                new MockDungeonInfo
                {
                    RunActive = true,
                    DbfIds    = new List <int> {
                        Backstab
                    },
                    LootA = new List <int> {
                        Category, DeadlyPoison
                    },
                    LootB = new List <int> {
                        Category, PitSnake
                    },
                    LootC = new List <int> {
                        Category, SinisterStrike
                    },
                    Treasure = new List <int> {
                        BattleTotem, PotionOfVitality, CrystalGem
                    },
                    PlayerChosenLoot     = 1,
                    PlayerChosenTreasure = 1
                },
                new MockDungeonInfo
                {
                    RunActive = false,
                }
            };

            _watcher.Update();
            Assert.IsNotNull(_info);

            _info = null;
            _watcher.Update();
            Assert.IsNull(_info);

            _watcher.Run();
            Thread.Sleep(130);
            Assert.IsNotNull(_info);
        }
Exemplo n.º 3
0
 internal override void OnDungeonRunDeckUpdated(DungeonRunDeckUpdatedEventArgs args)
 {
     SelectedDeck = args.Deck;
     Log.Debug("Set SelectedDeck=" + SelectedDeck);
     base.OnDungeonRunDeckUpdated(args);
 }
        public void InAdventureScreen_RunActiveChosenNoTreasure_NewData()
        {
            _data.InAdventureScreen = true;
            _data.MockDungeonInfo   = new[]
            {
                new MockDungeonInfo
                {
                    RunActive = true,
                    DbfIds    = new List <int> {
                        Backstab
                    },
                    LootA = new List <int> {
                        Category, DeadlyPoison
                    },
                    LootB = new List <int> {
                        Category, PitSnake
                    },
                    LootC = new List <int> {
                        Category, SinisterStrike
                    },
                    PlayerChosenLoot = 1,
                },
                new MockDungeonInfo
                {
                    RunActive = false,
                }
            };

            var result = _watcher.Update();

            Assert.IsNotNull(_info);

            var dbfIds = _info.Deck.Cards.Select(x => x.Data?.DbfId ?? 0).OrderBy(x => x).ToArray();
            var expectedDbfIds = new[] { Backstab, DeadlyPoison }.OrderBy(x => x);

            Assert.IsTrue(expectedDbfIds.SequenceEqual(dbfIds), $"Found: {(string.Join(", ", dbfIds))}");
            Assert.AreEqual(Watcher.UpdateResult.Continue, result);

            _data.MockDungeonInfo = new[]
            {
                new MockDungeonInfo
                {
                    RunActive = true,
                    DbfIds    = new List <int> {
                        Backstab
                    },
                    LootA = new List <int> {
                        Category, DeadlyPoison
                    },
                    LootB = new List <int> {
                        Category, PitSnake
                    },
                    LootC = new List <int> {
                        Category, SinisterStrike
                    },
                    PlayerChosenLoot = 1,
                },
                new MockDungeonInfo
                {
                    RunActive = true,
                    DbfIds    = new List <int> {
                        PitSnake
                    },
                    LootA = new List <int> {
                        Category, DeadlyPoison
                    },
                    LootB = new List <int> {
                        Category, PitSnake
                    },
                    LootC = new List <int> {
                        Category, SinisterStrike
                    },
                    PlayerChosenLoot = 1,
                }
            };

            _info  = null;
            result = _watcher.Update();
            Assert.IsNotNull(_info);

            dbfIds         = _info.Deck.Cards.Select(x => x.Data?.DbfId ?? 0).OrderBy(x => x).ToArray();
            expectedDbfIds = new[] { PitSnake, DeadlyPoison }.OrderBy(x => x);
            Assert.IsTrue(expectedDbfIds.SequenceEqual(dbfIds), $"Found: {(string.Join(", ", dbfIds))}");
            Assert.AreEqual(Watcher.UpdateResult.Break, result);
        }
Exemplo n.º 5
0
 internal virtual void OnDungeonRunDeckUpdated(DungeonRunDeckUpdatedEventArgs args) =>
 DungeonRunDeckUpdated?.Invoke(args);