// 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(); } } }
protected override Player MakePlayer(GamePeer peer, PlayerInfo info) { //Get Info from webserver BlackjackPlayer newPlayer = new BlackjackPlayer(peer, info); return(newPlayer); }
public BlackjackPlayer(GamePeer peer, PlayerInfo info) : base(peer, info) { money = info.game_money; win = 0; lose = 0; status = PlayerStatus.Waiting; }
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(); } }
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); } }
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); } }
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(); }
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!"); }
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); } }
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); }
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(); }
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); }
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()); }
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; } }
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(); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="Parent">親</param> public GameStateTitle(GamePeer Parent) : base(Parent) { AddOperationHandler(EPacketID.LogInRequest, OnRecvLogInRequest); }
protected override PeerBase CreatePeer(InitRequest initRequest) { var Peer = new GamePeer(initRequest); return(Peer); }
public BaccaratPlayer(GamePeer peer, PlayerInfo info) : base(peer, info) { money = info.game_money; win = 0; lose = 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)); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="Parent">親</param> public GameState(GamePeer Parent) { this.Parent = Parent; }
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); }
/// <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) { }