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); }
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); }
internal virtual void OnDungeonRunDeckUpdated(DungeonRunDeckUpdatedEventArgs args) => DungeonRunDeckUpdated?.Invoke(args);