Пример #1
0
    // Token: 0x06001B48 RID: 6984 RVA: 0x0008C650 File Offset: 0x0008A850
    private void OnGUI()
    {
        GamePeer client = Singleton <GameStateController> .Instance.Client;

        if (GUI.Button(new Rect(100f, 10f, 200f, 20f), (!client.IsConnected) ? "Connect" : "Disconnect"))
        {
            if (client.IsConnected)
            {
                client.Disconnect();
            }
            else
            {
                client.Connect(this.connectionString);
            }
        }
        GUI.Label(new Rect(100f, 30f, 200f, 20f), "Status: " + client.Peer.PeerState);
        if (client.IsConnected)
        {
            if (GUI.Button(new Rect(100f, 60f, 200f, 20f), "Enter"))
            {
                client.Operations.SendCreateRoom(new GameRoomData
                {
                    GameMode    = GameModeType.DeathMatch,
                    TimeLimit   = 10,
                    PlayerLimit = 10,
                    KillLimit   = 10
                }, string.Empty, "4.7.1", PlayerDataManager.AuthToken, PlayerDataManager.MagicHash);
            }
            if (GUI.Button(new Rect(100f, 80f, 200f, 20f), "Leave"))
            {
                client.Operations.SendLeaveRoom();
            }
        }
    }
Пример #2
0
        protected override Player MakePlayer(GamePeer peer, PlayerInfo info)
        {
            //Get Info from webserver
            BlackjackPlayer newPlayer = new BlackjackPlayer(peer, info);

            return(newPlayer);
        }
Пример #3
0
 public BlackjackPlayer(GamePeer peer, PlayerInfo info) : base(peer, info)
 {
     money  = info.game_money;
     win    = 0;
     lose   = 0;
     status = PlayerStatus.Waiting;
 }
Пример #4
0
        protected override void OnJoin(GamePeer peer)
        {
            BlackjackPlayer player = playerManager.GetPlayer(peer) as BlackjackPlayer;

            SitInEmptySeat(player);

            NewPlayerJoinEvent newJoin = new NewPlayerJoinEvent();

            newJoin.Actor = player.key.ID;
            newJoin.Money = player.money;
            newJoin.Name  = player.name;
            newJoin.Seat  = player.seat;

            EventData eventData = new EventData(EventCode.PlayerJoin, newJoin);

            BroadcastMessage(peer, eventData, new SendParameters());

            ConfirmJoinResponse joinRes = new ConfirmJoinResponse();

            joinRes.Actor = player.key.ID;
            joinRes.Seat  = player.seat;
            joinRes.Money = player.money;
            ExistingPlayerInfos infos;

            infos.infos = new List <ExistingPlayerInfo>();

            playerManager.ForEach((roomPlayer) =>
            {
                var bRoomPlayer = roomPlayer as BlackjackPlayer;
                if (bRoomPlayer.key.ID == player.key.ID)
                {
                    return;
                }
                ExistingPlayerInfo pInfo;
                pInfo.ID     = bRoomPlayer.key.ID;
                pInfo.Name   = bRoomPlayer.name;
                pInfo.Seat   = bRoomPlayer.seat;
                pInfo.Money  = bRoomPlayer.money;
                pInfo.Bet    = playerBetsDic.ContainsKey(bRoomPlayer) ? playerBetsDic[bRoomPlayer] : new BlackjackBet();
                pInfo.Decks  = player.status == PlayerStatus.Playing ? PacketHelper.Serialize <List <BlackjackCardSet> >(playerCards[bRoomPlayer]) : new byte[] { };
                pInfo.Status = bRoomPlayer.status;

                infos.infos.Add(pInfo);
            });
            joinRes.OtherPlayerInfos = PacketHelper.Serialize <ExistingPlayerInfos>(infos);

            var response = new OperationResponse(CommonOperationCode.ConfirmJoin, joinRes);

            peer.SendOperationResponse(response, new SendParameters());

            if (playerManager.Count == 1)
            {
                ClearGame();
                StartGame();
            }
        }
Пример #5
0
        private void HandleBetRequest(GamePeer gamePeer, OperationRequest operationRequest, SendParameters sendParameters)
        {
            var room = FindPeerRoom(gamePeer) as BaccaratGameRoom;

            var sendBetRequest = new SendBetRequest(gamePeer.Protocol, operationRequest);

            if (room != null)
            {
                room.Bet(gamePeer, sendBetRequest);
            }
        }
Пример #6
0
        private void HandleActionRequest(GamePeer gamePeer, OperationRequest operationRequest, SendParameters sendParameters)
        {
            var room = FindPeerRoom(gamePeer) as BlackjackGameRoom;

            var actionRequest = new ActionRequest(gamePeer.Protocol, operationRequest);

            if (room != null)
            {
                room.OnPlayerAction(gamePeer, actionRequest);
            }
        }
Пример #7
0
        public override void RemovePlayer(GamePeer peer, ExitRequest exitReq, SendParameters sendParameters)
        {
            BaccaratPlayer player = playerManager.GetPlayer(peer) as BaccaratPlayer;

            playersBetDic.Remove(player);
            seatsDic.Remove(player.seat);

            base.RemovePlayer(peer, exitReq, sendParameters);

            CheckAllBet();
        }
Пример #8
0
    public Game(Window window)
    {
        string answer;

        Console.Write("What is your name: ");
        string name = Console.ReadLine();

        do
        {
            Console.Write("Do you want to play it online? (Y/N) ");
            answer = Console.ReadLine();
        }while (answer.ToUpper() != "Y" && answer.ToUpper() != "N");

        if (answer.ToUpper() == "N") // Not online game, offline game
        {
            OnlineGame = false;
        }
        else if (answer.ToUpper() == "Y") // Online game
        {
            OnlineGame = true;
            Console.Write("Which port to run at: ");
            ushort   port = Convert.ToUInt16(Console.ReadLine());
            GamePeer peer = new GamePeer(port)
            {
                Name = name
            };
            ThisPeer = peer;

            string isHost;
            do
            {
                Console.Write("Is this the host? (Y/N) ");
                isHost = Console.ReadLine();
            } while (isHost.ToUpper() != "Y" && isHost.ToUpper() != "N");

            if (isHost.ToUpper() == "N") // Not host server, select server to connect to
            {
                IsServer = false;
                MakeNewConnection(peer);
            }
            else if (isHost.ToUpper() == "Y") // Be the host server
            {
                IsServer = true;
            }
        }

        _gameWindow = window;

        Player Player = new Player(window, name);

        _player = Player;

        Console.WriteLine("Please switch back to game window!");
    }
Пример #9
0
        private void HandleBetBroadcastRequest(GamePeer gamePeer, OperationRequest operationRequest, SendParameters sendParameters)
        {
            var room = FindPeerRoom(gamePeer) as BlackjackGameRoom;

            var betBroadcast = new BroadcastBetRequest(gamePeer.Protocol, operationRequest);

            if (room != null)
            {
                room.BroadcastBet(gamePeer, betBroadcast);
            }
        }
Пример #10
0
        public override void RemovePlayer(GamePeer peer, ExitRequest exitReq, SendParameters sendParameters)
        {
            BlackjackPlayer player = playerManager.GetPlayer(peer) as BlackjackPlayer;

            playerBetsDic.Remove(player);
            playerCards.Remove(player);
            seatsDic.Remove(player.seat);

            base.RemovePlayer(peer, exitReq, sendParameters);

            CheckAllBet(false);
        }
Пример #11
0
        public void Bet(GamePeer peer, SendBetRequest sendBet)
        {
            BaccaratPlayer player = playerManager.GetPlayer(peer) as BaccaratPlayer;
            var            bet    = new BaccaratBet(sendBet.BankerBet, sendBet.PlayerBet, sendBet.TieBet);

            if (HasBet(player) == false && CanBet(player, bet))
            {
                playersBetDic.Add(player, bet);
            }

            CheckAllBet();
        }
Пример #12
0
    private void MakeNewConnection(GamePeer peer)
    {
        string address;
        ushort port;

        Console.Write("Enter Host Server address: ");
        address = Console.ReadLine();

        Console.Write("Enter Host Server port: ");
        port = Convert.ToUInt16(Console.ReadLine());

        peer.ConnectToGamePeer(address, port);
    }
Пример #13
0
        public void BroadcastBet(GamePeer peer, BroadcastBetRequest broadcastBet)
        {
            broadcastBet.Actor = playerManager.GetPlayer(peer).key.ID;
            var eventData = new EventData(EventCode.BlackjackBroadcastBet, broadcastBet);

            lock (syncRoot)
            {
                BroadcastMessage(peer, eventData, new SendParameters());
            }

            var response = new OperationResponse(CommonOperationCode.BlackjackBroadcastBet, new Dictionary <byte, object> {
                { (byte)CommonParameterKey.Success, true }
            });

            peer.SendOperationResponse(response, new SendParameters());
        }
Пример #14
0
        public override void HandleOperationRequest(GamePeer gamePeer, OperationRequest operationRequest, SendParameters sendParameters)
        {
            base.HandleOperationRequest(gamePeer, operationRequest, sendParameters);
            //nothing

            switch (operationRequest.OperationCode)
            {
            case CommonOperationCode.BaccaratBet:
                HandleBetRequest(gamePeer, operationRequest, sendParameters);
                break;

            case CommonOperationCode.BaccaratBroadcastBet:
                HandleBetBroadcastRequest(gamePeer, operationRequest, sendParameters);
                break;
            }
        }
Пример #15
0
        public void Bet(GamePeer peer, SendBetRequest sendBet)
        {
            BlackjackPlayer player = playerManager.GetPlayer(peer) as BlackjackPlayer;
            BlackjackBet    playerBet;

            playerBet.initialBet = sendBet.BetMoney;
            playerBet.totalBet   = sendBet.BetMoney;

            if (HasBet(player) == false && CanBet(player, playerBet))
            {
                playerBetsDic.Add(player, playerBet);

                BroadcastBetDone(player);
            }

            CheckAllBet(false);
        }
 // Token: 0x0600134C RID: 4940 RVA: 0x0000D1CD File Offset: 0x0000B3CD
 public void ResetClient()
 {
     this.Client.Dispose();
     this.Client = new GamePeer();
 }
Пример #17
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="Parent">親</param>
 public GameStateTitle(GamePeer Parent)
     : base(Parent)
 {
     AddOperationHandler(EPacketID.LogInRequest, OnRecvLogInRequest);
 }
Пример #18
0
    protected override PeerBase CreatePeer(InitRequest initRequest)
    {
        var Peer = new GamePeer(initRequest);

        return(Peer);
    }
Пример #19
0
 public BaccaratPlayer(GamePeer peer, PlayerInfo info) : base(peer, info)
 {
     money = info.game_money;
     win   = 0;
     lose  = 0;
 }
Пример #20
0
    // Token: 0x060019C7 RID: 6599 RVA: 0x0008899C File Offset: 0x00086B9C
    public TeamDeathMatchRoom(GameRoomData gameData, GamePeer peer)
    {
        GameState.Current.MatchState.RegisterState(GameStateId.MatchRunning, new MatchRunningState(GameState.Current.MatchState));
        GameState.Current.MatchState.RegisterState(GameStateId.PregameLoadout, new PregameLoadoutState(GameState.Current.MatchState));
        GameState.Current.MatchState.RegisterState(GameStateId.PrepareNextRound, new PrepareNextRoundState(GameState.Current.MatchState));
        GameState.Current.MatchState.RegisterState(GameStateId.EndOfMatch, new EndOfMatchState(GameState.Current.MatchState));
        GameState.Current.MatchState.RegisterState(GameStateId.WaitingForPlayers, new WaitingForPlayersState(GameState.Current.MatchState));
        GameState.Current.MatchState.RegisterState(GameStateId.AfterRound, new AfterRoundState(GameState.Current.MatchState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.Overview, new PlayerOverviewState(GameState.Current.PlayerState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.Playing, new PlayerPlayingState(GameState.Current.PlayerState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.PrepareForMatch, new PlayerPrepareState(GameState.Current.PlayerState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.Killed, new PlayerKilledState(GameState.Current.PlayerState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.Paused, new PlayerPausedState(GameState.Current.PlayerState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.AfterRound, new PlayerAfterRoundState(GameState.Current.PlayerState));
        GameState.Current.PlayerState.RegisterState(PlayerStateId.Spectating, new PlayerSpectatingState(GameState.Current.PlayerState));
        GameState.Current.PlayerData.SendJumpUpdate     += base.Operations.SendJump;
        GameState.Current.PlayerData.SendMovementUpdate += base.Operations.SendUpdatePositionAndRotation;
        GameState.Current.RoomData                       = gameData;
        GameState.Current.Actions.ChangeTeam             = new Action(base.Operations.SendSwitchTeam);
        GameState.Current.Actions.IncreaseHealthAndArmor = delegate(int health, int armor)
        {
            base.Operations.SendIncreaseHealthAndArmor((byte)health, (byte)armor);
        };
        GameState.Current.Actions.RequestRespawn = new Action(base.Operations.SendRespawnRequest);
        GameState.Current.Actions.PickupPowerup  = delegate(int pickupID, PickupItemType type, int value)
        {
            base.Operations.SendPowerUpPicked(pickupID, (byte)type, (byte)value);
        };
        GameState.Current.Actions.OpenDoor       = new Action <int>(base.Operations.SendOpenDoor);
        GameState.Current.Actions.EmitQuickItem  = new Action <Vector3, Vector3, int, byte, int>(base.Operations.SendEmitQuickItem);
        GameState.Current.Actions.EmitProjectile = delegate(Vector3 origin, Vector3 direction, global::LoadoutSlotType slot, int projectileID, bool explode)
        {
            base.Operations.SendEmitProjectile(origin, direction, (byte)slot, projectileID, explode);
        };
        GameState.Current.Actions.RemoveProjectile = new Action <int, bool>(base.Operations.SendRemoveProjectile);
        GameState.Current.Actions.SingleBulletFire = new Action(base.Operations.SendSingleBulletFire);
        GameState.Current.Actions.KillPlayer       = delegate()
        {
            if (GameState.Current.IsInGame && GameState.Current.PlayerData.IsAlive)
            {
                base.Operations.SendDirectDeath();
            }
        };
        GameState.Current.Actions.DirectHitDamage = delegate(int targetCmid, ushort damage, BodyPart part, Vector3 force, byte slot, byte bullets)
        {
            base.Operations.SendDirectHitDamage(targetCmid, (byte)part, bullets, slot);
            if (PlayerDataManager.Cmid == targetCmid)
            {
                GameStateHelper.PlayerHit(targetCmid, damage, part, force);
            }
        };
        GameState.Current.Actions.ExplosionHitDamage = delegate(int targetCmid, ushort damage, Vector3 force, byte slot, byte distance)
        {
            base.Operations.SendExplosionDamage(targetCmid, slot, distance, force);
            if (PlayerDataManager.Cmid == targetCmid)
            {
                GameStateHelper.PlayerHit(targetCmid, damage, BodyPart.Body, force);
            }
        };
        GameState.Current.Actions.PlayerHitFeeback  = new Action <int, Vector3>(base.Operations.SendHitFeedback);
        GameState.Current.Actions.ActivateQuickItem = new Action <QuickItemLogic, int, int, bool>(base.Operations.SendActivateQuickItem);
        GameState.Current.Actions.JoinTeam          = delegate(TeamID team)
        {
            base.Operations.SendJoinGame(team);
            GameState.Current.MatchState.PopAllStates();
        };
        GameState.Current.Actions.JoinAsSpectator = delegate()
        {
            base.Operations.SendJoinAsSpectator();
            GameState.Current.MatchState.PopAllStates();
        };
        GameState.Current.Actions.KickPlayer  = new Action <int>(base.Operations.SendKickPlayer);
        GameState.Current.Actions.ChatMessage = new Action <string, byte>(base.Operations.SendChatMessage);
        GameState.Current.PlayerData.Actions.Clear();
        PlayerActions actions = GameState.Current.PlayerData.Actions;

        actions.UpdateKeyState = (Action <byte>)Delegate.Combine(actions.UpdateKeyState, new Action <byte>(peer.Operations.SendUpdateKeyState));
        PlayerActions actions2 = GameState.Current.PlayerData.Actions;

        actions2.SwitchWeapon = (Action <byte>)Delegate.Combine(actions2.SwitchWeapon, new Action <byte>(base.Operations.SendSwitchWeapon));
        PlayerActions actions3 = GameState.Current.PlayerData.Actions;

        actions3.UpdatePing = (Action <ushort>)Delegate.Combine(actions3.UpdatePing, new Action <ushort>(peer.Operations.SendUpdatePing));
        PlayerActions actions4 = GameState.Current.PlayerData.Actions;

        actions4.PausePlayer = (Action <bool>)Delegate.Combine(actions4.PausePlayer, new Action <bool>(base.Operations.SendIsPaused));
        PlayerActions actions5 = GameState.Current.PlayerData.Actions;

        actions5.SniperMode = (Action <bool>)Delegate.Combine(actions5.SniperMode, new Action <bool>(base.Operations.SendIsInSniperMode));
        PlayerActions actions6 = GameState.Current.PlayerData.Actions;

        actions6.AutomaticFire = (Action <bool>)Delegate.Combine(actions6.AutomaticFire, new Action <bool>(base.Operations.SendIsFiring));
        PlayerActions actions7 = GameState.Current.PlayerData.Actions;

        actions7.SetReadyForNextGame        = (Action <bool>)Delegate.Combine(actions7.SetReadyForNextGame, new Action <bool>(base.Operations.SendIsReadyForNextMatch));
        TabScreenPanelGUI.SortPlayersByRank = new Action <IEnumerable <GameActorInfo> >(GameStateHelper.SortTeamMatchPlayers);
        Singleton <QuickItemController> .Instance.IsConsumptionEnabled  = true;
        Singleton <QuickItemController> .Instance.Restriction.IsEnabled = true;
        Singleton <QuickItemController> .Instance.Restriction.RenewGameUses();

        AutoMonoBehaviour <UnityRuntime> .Instance.OnUpdate += this.OnUpdate;
        global::EventHandler.Global.AddListener <GlobalEvents.InputChanged>(new Action <GlobalEvents.InputChanged>(this.OnInputChangeEvent));
    }
Пример #21
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="Parent">親</param>
 public GameState(GamePeer Parent)
 {
     this.Parent = Parent;
 }
Пример #22
0
        public void OnPlayerAction(GamePeer peer, ActionRequest action)
        {
            if (peer.ValidateOperation(action, new SendParameters()) == false)
            {
                return;
            }

            BlackjackPlayer player = playerManager.GetPlayer(peer) as BlackjackPlayer;

            if (player.status != PlayerStatus.Playing)
            {
                return;
            }

            if (playerCards[player][action.DeckIndex].Finished)
            {
                return;
            }

            BlackjackBet bet = playerBetsDic[player];

            ActionEvent actionEvent = new ActionEvent();

            actionEvent.Actor      = player.key.ID;
            actionEvent.ActionType = action.ActionType;
            actionEvent.DeckIndex  = action.DeckIndex;

            switch (action.ActionType)
            {
            case BlackjackActionType.Hit:
                PlayerHit(player, action.DeckIndex);
                FillActionEventDeck(ref actionEvent, player, action.DeckIndex);
                break;

            case BlackjackActionType.Split:
                if (AddBet(player, bet.initialBet) == false)
                {
                    return;
                }
                Card originalDeckCard;
                Card newDeckCard;
                Split(player, action.DeckIndex, out originalDeckCard, out newDeckCard);
                FillActionEventDeck(ref actionEvent, player, action.DeckIndex, playerCards[player].Count - 1);
                break;

            case BlackjackActionType.Stand:
                Finish(player, action.DeckIndex);
                FillActionEventDeck(ref actionEvent, player, action.DeckIndex);
                break;

            case BlackjackActionType.DoubleDown:
                if (AddBet(player, bet.initialBet) == false)
                {
                    return;
                }
                DoubleDown(player, action.DeckIndex);
                PlayerHit(player, action.DeckIndex);
                FillActionEventDeck(ref actionEvent, player, action.DeckIndex);
                break;
            }

            EventData eventData = new EventData(EventCode.BlackjackAction, actionEvent);

            BroadcastMessage(peer, eventData, new SendParameters());

            var response = new OperationResponse(CommonOperationCode.BlackjackAction, actionEvent);

            peer.SendOperationResponse(response, new SendParameters());

            PlayerActionDone(player, action.DeckIndex);
        }
Пример #23
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="Parent">親</param>
 public GameStatePreActive(GamePeer Parent)
     : base(Parent)
 {
     AddOperationHandler(EPacketID.ClientReady, OnRecvClientReady);
 }
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="Parent">親</param>
 public GameStateActive(GamePeer Parent)
     : base(Parent)
 {
 }