示例#1
0
        private void OpponentGridControl_OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            // Crappy workaround MVVM -> code behind
            OpponentViewModel vm = DataContext as OpponentViewModel;

            if (vm != null)
            {
                vm.ClientChanged += OnClientChanged;

                if (vm.Client != null)
                {
                    OnClientChanged(null, vm.Client);
                }
            }
        }
示例#2
0
 private void OnSpecialUsed(int playerId, string playerName, int targetId, string targetName, int specialId, Specials special)
 {
     ExecuteOnUIThread.Invoke(() =>
     {
         OpponentViewModel vm = DataContext as OpponentViewModel;
         if (vm == null)
         {
             return;
         }
         if (targetId == vm.PlayerId && special == Specials.Immunity && (vm.Client.IsPlaying || vm.Client.IsSpectator || ClientOptionsViewModel.Instance.DisplayOpponentsFieldEvenWhenNotPlaying))
         {
             SetImmunity();
         }
     });
 }
示例#3
0
 private void OnContinuousSpecialFinished(int playerId, Specials special)
 {
     ExecuteOnUIThread.Invoke(() =>
     {
         OpponentViewModel vm = DataContext as OpponentViewModel;
         if (vm == null)
         {
             return;
         }
         if (playerId == vm.PlayerId && special == Specials.Immunity)
         {
             ResetImmunity();
         }
     });
 }
示例#4
0
 private void OnRedrawBoard(int playerId, IBoard board)
 {
     ExecuteOnUIThread.Invoke(() =>
     {
         OpponentViewModel vm = DataContext as OpponentViewModel; // <-- this may cause cross-thread exception
         if (vm == null)
         {
             return;
         }
         if (playerId == vm.PlayerId && (vm.Client.IsPlaying || vm.Client.IsSpectator || ClientOptionsViewModel.Instance.DisplayOpponentsFieldEvenWhenNotPlaying))
         {
             DrawGrid(board);
         }
     });
 }