Exemplo n.º 1
0
        public void PlayerUpdated(ScrumPokerPlayer player)
        {
            if (player == null)
            {
                return;
            }
            this.BeginInvoke(() =>
            {
                if (Me.OriginalObject.ID == player.ID)
                {
                    Me.UpdateFrom(player);
                }

                foreach (ScrumPokerPlayerModel p in Players)
                {
                    if (p.OriginalObject.ID == player.ID)
                    {
                        p.UpdateFrom(player);
                        return;
                    }
                }
                // not found
                Players.Add(new ScrumPokerPlayerModel(player));
            });
        }
Exemplo n.º 2
0
        public void UpdatePlayer(ScrumPokerPlayer player)
        {
            if (_player != null && HaveAllPlayersVoted() && _player.SelectedCard.DisplayName != player.SelectedCard.DisplayName)
            {
                throw new InvalidOperationException("Cannot update vote after cards have been flipped!");
            }

            _player = player;

            // some checks
            if (_player.SelectedCard == null || _player.SelectedCard.DisplayName == "🚫")
            {
                _player.HasVoted = false; _player.SelectedCard = null;
            }
            if (_player.CardColor == null || _player.CardColor.Item1 == 0 && _player.CardColor.Item2 == 0 && _player.CardColor.Item3 == 0)
            {
                SetColor(_player);
            }

            ScrumPokerPlayer pubplayer = player.Clone();

            pubplayer.SelectedCard = null;
            Player = pubplayer;

            BroadcastOther((IScrumPokerCallback c) => c.PlayerUpdated(Player));
            Post((IScrumPokerCallback c) => c.PlayerUpdated(_player));

            if (HaveAllPlayersVoted())
            {
                Flip();
            }
        }
Exemplo n.º 3
0
 private void SetColor(ScrumPokerPlayer player)
 {
     lock (_instances)
     {
         var inUse = GetInstances <ScrumPokerHost>().Where(h => h._player != null).Select(h => h._player.CardColor);
         var tuple = AvailableColors.FirstOrDefault(c => !inUse.Contains(c));
         if (tuple != null && !(tuple.Item1 == 0 && tuple.Item2 == 0 && tuple.Item3 == 0))
         {
             player.CardColor = tuple;
         }
         else
         {
             player.CardColor = new Tuple <byte, byte, byte>((byte)(_randy.Next(255)), (byte)(_randy.Next(255)), (byte)(_randy.Next(255)));
         }
     }
 }
Exemplo n.º 4
0
 public void PlayerRemoved(ScrumPokerPlayer player)
 {
     if (player == null)
     {
         return;
     }
     this.BeginInvoke(() =>
     {
         foreach (ScrumPokerPlayerModel p in Players.ToArray())
         {
             if (p.OriginalObject.ID == player.ID)
             {
                 Players.Remove(p);
             }
         }
     });
 }