internal void Reset() { PriorityPlayer = 0; MyLibrary.ResetCards(); OpponentCardsSeen.ResetCards(); MySideboard.ResetCards(); //FullDeck.ResetCards(); TimerMe.Reset(); TimerOpponent.Reset(); // notify that everything changed RaisePropertyChangedEvent(string.Empty); }
internal void SetInMatchStateFromBuffered() { if (UpdateCardsInMatchTrackingBuffered == false) { return; } if (MustReset) { Reset(); MustReset = false; } if (StateBuffered.MySeatId == 0) { return; } lock (LockCardsInMatchTracking) { // Timers if (StateBuffered.IsSideboarding) { TimerMe.Pause(); TimerOpponent.Pause(); } if (PriorityPlayer != StateBuffered.PriorityPlayer) { PriorityPlayer = StateBuffered.PriorityPlayer; if (PriorityPlayer == StateBuffered.MySeatId) { TimerMe.Resume(); TimerOpponent.Pause(); } else if (PriorityPlayer == StateBuffered.OpponentSeatId) { TimerMe.Pause(); TimerOpponent.Resume(); } } // Cards lists if (StateBuffered.MySeatId > 0) { try { MyLibrary.ConvertCardList(StateBuffered.MyLibrary); OpponentCardsSeen.ConvertCardList(StateBuffered.OpponentCardsSeen); MySideboard.ConvertCardList(StateBuffered.MySideboard); } catch (KeyNotFoundException) { // Swallow this reported bug: "Got a crash after I conceded a game" // I suppose the MySeatId got to 0 after the validation } RaisePropertyChangedEvent(string.Empty); } //if (isInitialized == false && stateBuffered.CardsByZone[stateBuffered.MySeatId][ZoneSimpleEnum.ZoneType_Library].Count > 0) //{ // FullDeck.ConvertCardList(stateBuffered.CardsByZone[stateBuffered.MySeatId][ZoneSimpleEnum.ZoneType_Library].ToDictionary(i => i.Key, i => i.Value.Count)); // RaisePropertyChangedEvent(nameof(FullDeck)); // isInitialized = true; //} UpdateCardsInMatchTrackingBuffered = false; } }