コード例 #1
0
        void OnPlayerActionTaken(object sender, PlayerActionEventArgs e)
        {
            if (InvokeRequired)
            {
                // We're not in the UI thread, so we need to call BeginInvoke
                BeginInvoke(new EventHandler <PlayerActionEventArgs>(OnPlayerActionTaken), new[] { sender, e });
                return;
            }
            SuspendLayout();
            var p     = e.Player;
            var php   = m_Huds[p.NoSeat];
            var bet   = m_Bets[p.NoSeat];
            var table = m_Game.Table;

            php.SetMoney(p.MoneySafeAmnt);
            php.SetSleeping();
            php.DoAction(e.Action, e.AmountPlayed);
            lblTotalPot.Text = Resources.PlayerHud_SetMoney_Dollar + table.TotalPotAmnt;
            if (e.Action == GameActionEnum.Fold)
            {
                php.SetCards(GameCard.NoCard, GameCard.NoCard);
            }
            if (p.MoneyBetAmnt > 0)
            {
                bet.Text = Resources.PlayerHud_SetMoney_Dollar + p.MoneyBetAmnt;
            }
            ResumeLayout();
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: sam-zhou/MaJiang
        private void PlayerOnPlayerAction(object sender, PlayerActionEventArgs e)
        {
            var player = sender as Player;

            if (player == null)
            {
                return;
            }


            AvailablePlayerActions = null;

            if (e.PlayerAction == PlayerActions.Discard)
            {
                foreach (var otherPlayer in Players.Where(q => q.Id != player.Id))
                {
                    otherPlayer.DiscardByOther(e.ActionOnTile, otherPlayer.PlayerPosition == player.PlayerPosition.GetNextPosition());
                }
            }


            if (PlayerAction != null)
            {
                PlayerAction(player, e);
            }
        }
コード例 #3
0
        private void buttonFold_Click(object sender, EventArgs e)
        {
            PlayerActionEventArgs args = new PlayerActionEventArgs
            {
                Action = PlayerAction.Fold
            };

            PokerEventsMediator.OnPlayerAction(null, args);
        }
コード例 #4
0
        private void buttonBet_Click(object sender, EventArgs e)
        {
            labelPot.Text = (Int32.Parse(labelPot.Text.ToString()) + trackBar1.Value).ToString();
            PlayerActionEventArgs args = new PlayerActionEventArgs {
                BetAmount = trackBar1.Value,
                Action    = PlayerAction.Bet
            };

            PokerEventsMediator.OnPlayerAction(null, args);
        }
コード例 #5
0
 void OnPlayerActionTaken_Console(object sender, PlayerActionEventArgs e)
 {
     if (InvokeRequired)
     {
         // We're not in the UI thread, so we need to call BeginInvoke
         BeginInvoke(new EventHandler <PlayerActionEventArgs>(OnPlayerActionTaken_Console), new[] { sender, e });
         return;
     }
     WriteLine(e.Player.Name + " did [" + e.Action.ToString() + "]");
 }
コード例 #6
0
ファイル: MaJiangGame.cs プロジェクト: sam-zhou/MaJiang
        private void GameOnPlayerAction(object sender, PlayerActionEventArgs e)
        {
            var player = sender as Player;

            if (player == null)
            {
                throw new Exception("Sender is not a valid player");
            }
            foreach (var meld in e.Melds)
            {
                Sessions.Broadcast(string.Format("{0} {1} on {2} - Melds: {3}", player.Name, e.PlayerAction, e.ActionOnTile, meld));
            }
        }
コード例 #7
0
        private async Task PlayersHandlerOnPlayerAction(object sender, PlayerActionEventArgs e)
        {
            var player = _playerManager.GetPlayer(e.PlayerId);

            var action = e.Action;

            var actionMoveTo = action as PlayerActionMoveTo;

            if (actionMoveTo != null)
            {
                _world.MovePlayer(player, actionMoveTo.X, actionMoveTo.Y);
            }

            await Task.FromResult((object)null);
        }
コード例 #8
0
        void OnPlayerActionTaken(object sender, PlayerActionEventArgs e)
        {
            var p = e.Player;

            Send(new PlayerTurnEndedCommand()
            {
                NoSeat = p.NoSeat,
                TotalPlayedMoneyAmount = p.MoneyBetAmnt,
                TotalSafeMoneyAmount   = p.MoneySafeAmnt,
                TotalPot          = Game.Table.Bank.MoneyAmount,
                ActionTakenType   = e.Action,
                ActionTakenAmount = e.AmountPlayed,
                PlayerState       = p.State,
            });
        }
コード例 #9
0
ファイル: MaJiangGame.cs プロジェクト: sam-zhou/MaJiang
        private void GameOnPlayerActionable(object sender, PlayerActionEventArgs e)
        {
            var player = sender as Player;

            if (player == null)
            {
                throw new Exception("Sender is not a valid player");
            }

            if (player.Id == ID)
            {
                foreach (var meld in e.Melds)
                {
                    Sessions.SendTo(string.Format("You can {0} on {1} Melds: {2}", e.PlayerAction, e.ActionOnTile, meld), ID);
                }
            }
        }
コード例 #10
0
        public void ActionHandler(object sender, PlayerActionEventArgs args)
        {
            if (SelectedCharacter == null)
            {
                WriteToOutputString("Please Select a target to attack.");
            }
            else
            {
                _game.PlayerAction(args.Action, SelectedCharacter);
            }

            switch (args.Action)
            {
            case PlayerActionEnum.Attack:
                if (SelectedCharacter == null)
                {
                    WriteToOutputString("Please Select a target to attack.");
                }
                else
                {
                    _game.PlayerAction(args.Action, SelectedCharacter);
                }
                break;

            case PlayerActionEnum.FullAttack:
                if (SelectedCharacter == null)
                {
                    WriteToOutputString("Please Select a target to attack.");
                }
                else
                {
                    _game.PlayerAction(args.Action, SelectedCharacter);
                }
                break;

            case PlayerActionEnum.EndTurn:
                _game.PlayerAction(args.Action, SelectedCharacter);
                break;

            case PlayerActionEnum.DisplayItems:
                _previousState = MenuState;
                MenuState      = MenuStateEnum.Items;
                break;
            }
        }
コード例 #11
0
ファイル: Game.cs プロジェクト: sam-zhou/MaJiang
        private void PlayerOnPlayerActionable(object sender, PlayerActionEventArgs e)
        {
            var player = sender as Player;

            if (player == null)
            {
                return;
            }

            var availablePlayerAction = new AvailablePlayerAction(e.PlayerAction, _currentPlayerPosition, player.PlayerPosition, e.ActionOnTile, e.Melds);

            AvailablePlayerActions.Add(availablePlayerAction);

            if (PlayerActionable != null)
            {
                PlayerActionable(sender, e);
            }
        }
コード例 #12
0
 private void RefreshClock()
 {
     while (true)
     {
         MethodInvoker mi = delegate() {
             double timeleft = Clock.GetTimeLeft().TotalSeconds;
             if (timeleft <= 0)
             {
                 Clock.StopClock();
                 PlayerActionEventArgs args = new PlayerActionEventArgs {
                     Action = PlayerAction.Fold
                 };
                 PokerEventsMediator.OnPlayerAction(null, args);
             }
             label1.Text = Clock.GetTimeLeft().ToString(@"hh\:mm\:ss");      // hh\:mm\:ss\:fff
         };
         this.Invoke(mi);
     }
 }
コード例 #13
0
ファイル: LogEvents.cs プロジェクト: Kriez/MayhemBot
        //"Name<uid><wonid><team>" triggered "action" [60]
        /// <summary>
        /// Raises the <see cref="PlayerTriggered"/> event.
        /// </summary>
        /// <param name="timestamp">Time at which <see cref="PlayerTriggered"/> event was fired.</param>
        /// <param name="info">Information about <see cref="PlayerTriggered"/> event.</param>
        protected virtual void OnPlayerAction(DateTime timestamp, string[] info)
        {
            string s = string.Empty;

            if (info.Length > 3)
            {
                for (int i = 3; i < info.Length; i++)
                {
                    s += info[i];
                }
            }
            PlayerActionEventArgs eventArgs = new PlayerActionEventArgs()
            {
                Timestamp = timestamp,
                Player    = GetPlayerInfo(info[0]),
                Action    = info[2],
                ExtraInfo = s
            };

            PlayerTriggered.Fire(ServerEndPoint, eventArgs);
        }