public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom)
 {
     managerLogger.AddLogMessage("server", "New connection...");
     var data = inc.ReadByte();
     if (data == (byte)PacketType.Login)
     {
         managerLogger.AddLogMessage("server", "..connection accpeted.");
         playerAndConnection = CreatePlayer(inc, gameRoom.Players, gameRoom.ManagerCamera);
         inc.SenderConnection.Approve();
         var outmsg = server.NetServer.CreateMessage();
         outmsg.Write((byte)PacketType.Login);
         outmsg.Write(true);
         outmsg.Write(gameRoom.Players.Count);
         for (int n = 0; n < gameRoom.Players.Count; n++)
         {
             var p = gameRoom.Players[n];
             outmsg.Write(p.Player.Username);
             outmsg.WriteAllProperties(p.Player.Position);
         }
         server.NetServer.SendMessage(outmsg, inc.SenderConnection, NetDeliveryMethod.ReliableOrdered, 0);
         var command = new PlayerPositionCommand();
         command.Run(managerLogger, server,inc,playerAndConnection,gameRoom);
         server.SendNewPlayerEvent(playerAndConnection.Player.Username, gameRoom.GameRoomId);
     }
     else
     {
         inc.SenderConnection.Deny("Didn't send correct information.");
     }
 }
Example #2
0
//
//		public static GameRoom SpectateRandomGame()
//		{
//			List<GameRoom> filteredRooms = new List<GameRoom>();
//			GameRoom[] rooms;
//			//MutexRooms.WaitOne();
//			rooms = new GameRoom[m_rooms.Count];
//			m_rooms.Values.CopyTo(rooms, 0);
//			//MutexRooms.ReleaseMutex();
//
//			foreach (GameRoom room in rooms)
//			{
//				if (room.Game.State != GameState.Lobby)
//					filteredRooms.Add(room);
//			}
//
//			if (filteredRooms.Count == 0)
//				return null;
//
//			return filteredRooms[Program.Random.Next(0, filteredRooms.Count)];
//		}

        private static GameRoom CreateRoom(GameConfig config)
        {
            GameRoom room = new GameRoom(config);

            //MutexRooms.WaitOne();
            m_rooms.Add(config.Name, room);
            //Logger.WriteLine(String.Format("++Game:{0}",config.Name));
            //MutexRooms.ReleaseMutex();
            return(room);
        }
 public Task SendMessageToRoom(GameRoom room, string message, bool important = false) =>
 _bot.LockAndDo(async() =>
 {
     var messageObj = await _bot.SendTextMessageAsync(room.ExternalRoomId, message, ParseMode.Html);
     if (important)
     {
         await Task.Delay(100);
         await _bot.PinChatMessageAsync(room.ExternalRoomId, messageObj.MessageId);
     }
 });
Example #4
0
 public static bool TryCreateFacility(UnityEngine.Object[] roomObjects, out GameRoom room)
 {
     if (roomObjects == null || roomObjects.Length == 0)
     {
         room = null;
         return(false);
     }
     room = new Facility((FacilityRoom)roomObjects[0]);
     return(true);
 }
Example #5
0
        public IActionResult Put()
        {
            var room = GameRoom.Create(Guid.NewGuid());

            this._repo.Save(room);
            return(new JsonResult(new {
                Id = room.Id,
                Players = room.Players,
            }));
        }
        public GameRoom_SetName(Client User, XmlDocument Packet) : base(User, Packet)
        {
            GameRoom Room = User.Player.GameRoom;

            Room.Core.Name = base.Query.Attributes["room_name"].InnerText;
            Room.Core.Revision++;

            Process();
            Room.Sync(User);
        }
Example #7
0
        public GameRoom_Kick(Client User, XmlDocument Packet)
            : base(User, Packet)
        {
            Room = User.Player.RoomPlayer.Room;
            long TargetId = long.Parse(Query.Attributes["target_id"].InnerText);

            Target = Room.Players.Users.ToList().Find((Client Attribute) => Attribute.Player.UserID == TargetId);
            new GameRoom_OnKicked(Target);
            Process();
        }
Example #8
0
 public InvitationRequest(Client User, InvitationTicket Ticket)
     : base(User, null)
 {
     if (!(Type == "result"))
     {
         this.Ticket = Ticket;
         Room        = Ticket.Sender.Player.RoomPlayer.Room;
         Process();
     }
 }
 public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom)
 {
     managerLogger.AddLogMessage("server",string.Format("Kicking {0}",playerAndConnection.Player.Username));
     var outmessage = server.NetServer.CreateMessage();
     outmessage.Write((byte)PacketType.Kick);
     outmessage.Write(playerAndConnection.Player.Username);
     server.NetServer.SendToAll(outmessage, NetDeliveryMethod.ReliableOrdered);
     //Kick player
     playerAndConnection.Connection.Disconnect("Bye bye, you're kicked.");
 }
Example #10
0
        public bool StartGame(long roomId)
        {
            GameRoom gr = dbContext.GameRoom.Find(roomId);

            gr.StartTime = DateTime.Now;
            dbContext.GameRoom.Update(gr);
            dbContext.SaveChanges();
            BackgroundJob.Schedule(() => DistributeResults(roomId), TimeSpan.FromMinutes(3));
            return(true);
        }
Example #11
0
    static int Init(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 3);
        SocketConnectInfo obj  = (SocketConnectInfo)LuaScriptMgr.GetNetObjectSelf(L, 1, "SocketConnectInfo");
        EginUser          arg0 = (EginUser)LuaScriptMgr.GetNetObject(L, 2, typeof(EginUser));
        GameRoom          arg1 = (GameRoom)LuaScriptMgr.GetNetObject(L, 3, typeof(GameRoom));

        obj.Init(arg0, arg1);
        return(0);
    }
Example #12
0
        public async Task <GameRoomJson> CreateGameAsync(GameRoom roomCreation)
        {
            var response = await client.PostAsJsonAsync($"{client.BaseAddress}/games/create", roomCreation);

            if (!response.IsSuccessStatusCode)
            {
                throw new HttpRequestException(response.StatusCode.ToString() + "\n" + response.ReasonPhrase);
            }
            return(await response.Content.ReadAsAsync <GameRoomJson>());
        }
        public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom)
        {
            managerLogger.AddLogMessage("server", "Received new input");
            var key = (Keys)inc.ReadByte();
            var name = inc.ReadString();
            playerAndConnection = gameRoom.Players.FirstOrDefault(p => p.Player.Username == name);
            if (playerAndConnection == null)
            {
                managerLogger.AddLogMessage("server", string.Format("Could not find player with name {0}", name));
                return;
            }

            int x = 0;
            int y = 0;

            switch (key)
            {
                case Keys.Down:
                    y++;
                    break;

                case Keys.Up:
                    y--;
                    break;

                case Keys.Left:
                    x--;
                    break;

                case Keys.Right:
                    x++;
                    break;
            }

            var player = playerAndConnection.Player;
            var position = playerAndConnection.Player.Position;
            if (!ManagerCollision.CheckCollision(new Rectangle(position.XPosition + x, position.YPosition + y, 100, 50),
                player.Username, gameRoom.Players.Select(p => p.Player).ToList()))
            {
                position.XPosition += x;
                position.YPosition += y;

                position.Visible = gameRoom.ManagerCamera.InScreenCheck(new Vector2(position.XPosition, position.YPosition));
                if (position.Visible)
                {
                    var screenPosition =
                        gameRoom.ManagerCamera.WorldToScreenPosition(new Vector2(position.XPosition, position.YPosition));
                    position.ScreenXPosition = (int) screenPosition.X;
                    position.ScreenYPosition = (int) screenPosition.Y;
                }

                var command = new PlayerPositionCommand();
                command.Run(managerLogger, server, inc, playerAndConnection, gameRoom);
            }
        }
Example #14
0
        public static void RewardPlayer(Player player, RewardData rewardData, GameRoom room)
        {
            if (player == null || rewardData == null || room == null)
            {
                return;
            }

            // TODO : 살짝 문제가 있긴 하다...
            // 1) DB에다가 저장 요청
            // 2) DB 저장 OK
            // 3) 메모리에 적용
            int?slot = player.Inven.GetEmptySlot();

            if (slot == null)
            {
                return;
            }

            ItemDb itemDb = new ItemDb()
            {
                TemplateId = rewardData.itemId,
                Count      = rewardData.count,
                Slot       = slot.Value,
                OwnerDbId  = player.PlayerDbId
            };

            // You
            Instance.Push(() =>
            {
                using (AppDbContext db = new AppDbContext())
                {
                    db.Items.Add(itemDb);
                    bool success = db.SaveChangesEx();
                    if (success)
                    {
                        // Me
                        room.Push(() =>
                        {
                            Item newItem = Item.MakeItem(itemDb);
                            player.Inven.Add(newItem);

                            // Client Noti
                            {
                                S_AddItem itemPacket = new S_AddItem();
                                ItemInfo itemInfo    = new ItemInfo();
                                itemInfo.MergeFrom(newItem.Info);
                                itemPacket.Items.Add(itemInfo);

                                player.Session.Send(itemPacket);
                            }
                        });
                    }
                }
            });
        }
Example #15
0
 void SetPoints(GameRoom gameRoom)
 {
     foreach (var player in gameRoom.Players)
     {
         if (player.Answer == gameRoom.CurrentQuestion.CorrectAnswer)
         {
             player.Points += 1;
             player.Answer  = "";
         }
     }
 }
        public void GameRoomTest_Update_Bb_good()
        {
            proxy.InsertNewGameRoom(gameRoom);
            gameRoom.SetBB(89);
            proxy.UpdateGameRoom(gameRoom);
            GameRoom g = (GameRoom)proxy.GetGameRoombyId(gameRoom.Id);

            Assert.AreEqual(g.getBBnum(), 89);
            proxy.DeleteGameRoomPref(gameRoom.Id);
            proxy.DeleteGameRoom(gameRoom.Id, gameRoom.GetGameNum());
        }
Example #17
0
    public static bool TrySetupFactory(Object[] factoryObject, out GameRoom room)
    {
        if (factoryObject == null || factoryObject.Length == 0)
        {
            room = null;
            return(false);
        }

        room = new Factory(factoryObject[0]);
        return(true);
    }
 public InMatchState(UserSession user, GameRoom gameRoom)
 {
     User                       = user;
     GameRoom                   = gameRoom;
     PlayerCollide              = new Circle(User.position, 10);
     PlayerCollide.OnCollision += new CollideDetected(delegate(ICollider item)
     {
         int i = 0;
     }
                                                      );
 }
Example #19
0
 private async void InviteToGame()
 {
     string room = await gameBl.InviteToGame(SelectedUser);
     _guiDispatcher.Invoke(() =>
     {
         GameVM gameVm = new GameVM(room);
         GameRoom gameRoom = new GameRoom();
         gameRoom.DataContext = gameVm;
         gameRoom.Visibility = Visibility.Visible;
     });
 }
Example #20
0
 public static GameRoom GetGame(string name)
 {
     //MutexRooms.WaitOne();
     if (m_rooms.ContainsKey(name))
     {
         GameRoom room = m_rooms[name];
         //MutexRooms.ReleaseMutex();
         return(room);
     }
     return(null);
 }
Example #21
0
    public static bool TryCreatePortalRoom(Object[] roomObjects, out GameRoom room)
    {
        if (roomObjects == null || roomObjects.Length == 0 || PortalRoomType() == null)
        {
            room = null;
            return(false);
        }

        room = new PortalRoom((MonoBehaviour)roomObjects[0]);
        return(true);
    }
Example #22
0
    public static bool TryCreateRoom(Object[] roomObjects, out GameRoom room)
    {
        if (roomObjects == null || roomObjects.Length == 0)
        {
            room = null;
            return(false);
        }

        room = new DefaultGameRoom();
        return(true);
    }
Example #23
0
        private GameRoom ConvertToGameRoom(GetAllGameRoomsResult v)
        {
            GameRoom toRet = new GameRoom();

            toRet.GameId   = v.GameId;
            toRet.GameXML  = v.GameXML;
            toRet.isActive = v.isActive;
            toRet.Replay   = v.Replay;
            toRet.RoomId   = v.RoomId;
            return(toRet);
        }
        public InvitationRequest(Client User, InvitationTicket Ticket) : base(User, null)
        {
            if (base.Type == "result")
            {
                return;
            }
            this.Ticket = Ticket;
            Room        = Ticket.Sender.Player.GameRoom;

            Process();
        }
Example #25
0
        public PlayerEntity(Player player, GameRoom room) : base(room)
        {
            Height     = 60;
            Width      = 30;
            HasGravity = true;
            Player     = player;

            Teleport(Program.rnd.Next(500), Program.rnd.Next(500));

            Type = EntityType.Player;
        }
Example #26
0
        //BACKEND LOGIC

        public List <IdFactionResponse> readPlayerFactions(GameRoom room)
        {
            List <IdFactionResponse> idFactions = new List <IdFactionResponse>();
            List <RoomPlayer>        players    = room.Players.PlayerList.ToList();

            foreach (RoomPlayer roomPlayer in players)
            {
                idFactions.Add(new IdFactionResponse(roomPlayer.playerId, roomPlayer.faction));
            }
            return(idFactions);
        }
        public BulletEntity(GameRoom room, float angle, Player owner) : base(room)
        {
            int bulletSpeed = 800;

            Width  = 5;
            Height = 5;
            XSpeed = Math.Cos(Math.Max(Math.Min(angle, 1000), -1000)) * bulletSpeed;
            YSpeed = Math.Sin(Math.Max(Math.Min(angle, 1000), -1000)) * bulletSpeed;
            Type   = EntityType.Bullet;
            Owner  = owner;
        }
Example #28
0
 public InvitationRequest(Client User, InvitationTicket Ticket)
     : base(User, (XmlDocument)null)
 {
     if (this.Type == "result")
     {
         return;
     }
     this.Ticket = Ticket;
     this.Room   = Ticket.Sender.Player.RoomPlayer.Room;
     this.Process();
 }
Example #29
0
 //随机组队
 public void TeamUp(string playerId)
 {
     if (this.SessionIDGameRoom.ContainsKey(playerId))
     {
         GameRoom gameRoom = this.SessionIDGameRoom[playerId];
         gameRoom.TeamUp();
         Thread.Sleep(500);
         Thread thr = new Thread(new ThreadStart(this.UpdateGameHall));
         thr.Start();
     }
 }
Example #30
0
    public static bool TryCreateElevatorRoom(Object[] roomObjects, out GameRoom room)
    {
        if (roomObjects == null || roomObjects.Length == 0)
        {
            room = null;
            return(false);
        }

        room = new ElevatorGameRoom(roomObjects[0]);
        return(true);
    }
Example #31
0
 //换座
 public void SwapSeat(string playerId, int offset)
 {
     if (this.SessionIDGameRoom.ContainsKey(playerId))
     {
         GameRoom gameRoom = this.SessionIDGameRoom[playerId];
         gameRoom.SwapSeat(playerId, offset);
         Thread.Sleep(500);
         Thread thr = new Thread(new ThreadStart(this.UpdateGameHall));
         thr.Start();
     }
 }
Example #32
0
 //旁观玩家 by id
 public void ObservePlayerById(string playerId, string observerId)
 {
     if (this.SessionIDGameRoom.ContainsKey(observerId))
     {
         GameRoom gameRoom = this.SessionIDGameRoom[observerId];
         gameRoom.ObservePlayerById(playerId, observerId);
         Thread.Sleep(500);
         Thread thr = new Thread(new ThreadStart(this.UpdateGameHall));
         thr.Start();
     }
 }
        public GameRoom_SetInfo(Client User, XmlDocument Packet)
            : base(User, Packet)
        {
            GameRoom    room        = User.Player.RoomPlayer.Room;
            string      Uid         = Query.Attributes["mission_key"].InnerText;
            XmlDocument xmlDocument = GameResources.Maps.Find((XmlDocument Attribute) => Attribute.FirstChild.Attributes["uid"].InnerText == Uid);

            room.Mission.Map = xmlDocument;
            Process();
            room.Sync(User);
        }
 public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom)
 {
     if (playerAndConnection != null)
     {
         managerLogger.AddLogMessage("server", "Sending out new player position to all in group " + gameRoom.GameRoomId);
         var outmessage = server.NetServer.CreateMessage();
         outmessage.Write((byte) PacketType.PlayerPosition);
         outmessage.WriteAllProperties(playerAndConnection.Player);
         server.NetServer.SendMessage(outmessage, gameRoom.Players.Select(p => p.Connection).ToList(),
             NetDeliveryMethod.ReliableOrdered, 0);
     }
 }
 public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom)
 {
     managerLogger.AddLogMessage("server", "Sending full player list");
     var outmessage = server.NetServer.CreateMessage();
     outmessage.Write((byte)PacketType.AllPlayers);
     outmessage.Write(CameraUpdate);
     outmessage.Write(gameRoom.Players.Count);
     foreach (var p in gameRoom.Players)
     {
         outmessage.WriteAllProperties(p.Player);
     }
     server.NetServer.SendMessage(outmessage, gameRoom.Players.Select(p => p.Connection).ToList(), NetDeliveryMethod.ReliableOrdered, 0);
 }
Example #36
0
        public static JObject Get(GameRoom room, bool playerOne)
        {
            GamePlayer player;
            GamePlayer opponent;
            var ident = -1;
            if (playerOne)
            {
                ident = 1;
                player = room.players.First;
                opponent = room.players.Second;
            }
            else
            {
                ident = 2;
                player = room.players.Second;
                opponent = room.players.First;
            }

            // Construct a game update object
            JObject obj = new JObject(
                 new JProperty("gameId", room.gameId),
                 new JProperty("round", room.round),
                 new JProperty("ident", ident),
                 new JProperty("player", new JObject(
                    new JProperty("info", JObject.FromObject(player.GetPlayerData())),
                    new JProperty("board", JObject.FromObject(player.boardCards)),
                    new JProperty("hand", JObject.FromObject(player.handCards))
                    )),
                new JProperty("opponent", new JObject(
                    new JProperty("info", JObject.FromObject(opponent.GetPlayerData())),
                    new JProperty("board", JObject.FromObject(opponent.boardCards)),
                    new JProperty("hand", from h in opponent.handCards
                                          select
                                              new JObject(
                                                   new JObject(
                                                    new JProperty("cid", h.Value.cid))
                                       ))
                    )
                ));

            return obj;
        }
Example #37
0
 private UserModel getPlayerByUsername(GameRoom room, string userName)
 {
     foreach (var player in room.Players)
     {
         if (player.UserName == userName)
         {
             return player;
         }
     }
     return null;
 }
Example #38
0
 public void SetOwnerData(GameRoom cardRoom, int position)
 {
     this.cardRoom = cardRoom;
     this.cardOwnerPostion = position;
 }
        public void Init(SessionManager manager, GameRoom.GameRoomSession session)
        {
            _manager = manager;
            _session = session;

            _description = _session.GameRoom.Description;
            _password = _session.GameRoom.Password;
            _isBetting = _session.GameRoom.IsBetting;
            _isTeamBotPlaced = _session.GameRoom.IsTeamBotPlaced;
            _bettingType = _session.GameRoom.BettingType == null ? "1v1" : _session.GameRoom.BettingType;
            _isAdvertising = _session.GameRoom.IsAdvertising;
            _members = _session.GameRoom.Members;
            //temporary admins view does not include owner cause he cannot be disabled now, later admins must be initialized with complete list
            //_admins = session.GameRoom.Admins;
            _admins = session.GameRoom.AdminsWithoutOwner;
            _notAdmins = session.GameRoom.MembersNotAdmins;

            PrepareControls();
        }
        public void Init(SessionManager manager, GameRoom.GameRoomSession session)
        {
            _manager = manager; // the mediator and messaging service (sort of)
            _session = session; // the model (sort of)

            // socket membership messages trigger on the session, so update room's membership when session members change
            _session.Membership.CollectionChanged += Membership_CollectionChanged;
            _session.GameRoom.PropertyChanged += GameRoom_PropertyChanged;
            _session.RoomBets.CollectionChanged += RoomBets_CollectionChanged;
            _session.MyMatch.PropertyChanged += MyMatch_PropertyChanged;
            _session.ChatMessageReceived += ChatMessages_CollectionChanged;

            _mutedMembersIds = new List<string>();
            InitMembership();
        }
        private bool TryGetGameRoom(string gameRoomId, out GameRoom.GameRoomSession gameRoomSession)
        {
            gameRoomSession = null;

            var usageId = PrefixGameRoom + gameRoomId;
            ChatroomSessionBase usage;
            if (!_chatroomUsage.TryGetValue(usageId, out usage))
                return false;

            gameRoomSession = (GameRoom.GameRoomSession)usage;
            return true;
        }
Example #42
0
 private void LoadGame(object sender, GameRoom room)
 {
     if (_loadingGame || _loadRequest || _inGame) return;
     _loadRequest = true;
     _loadingGame = false;
     _inGame = false;
     _currentRoom = room;
 }
Example #43
0
    private void StartGame(object sender, GameRoom room)
    {
        _loadingGame = _loadRequest = false;
        _inGame = true;

        ThreadHelper.MAIN.InvokeOnThread(startGame);
    }
    public void LeaveRoom()
    {
        if (!_joinedRoom) return;
        _joinedRoom = false;
        ConnectedRoom = null;
        _udpRegistered = false;

        BeginSend(PackageFactory.Pack(PackageType.LeaveRoom, null));
    }
Example #45
0
 private GameRoom CreateGameRoom(Room room)
 {
     var gameRoom = new GameRoom(640, 360, 32, room.X, room.Y);
     gameRoom.CreateTiles("dungeon", room.Doors);
     return gameRoom;
 }
    protected override void HandleMessage(TypedPackage message)
    {
        Debug.Log(string.Format("Msg: {0} of length {1}.", message.Type, message.Data.Length));

        if (message.Type == PackageType.LoginSucceed)
        {
            try
            {
                LoginSucceedData data = new LoginSucceedData(message.Data, ref message.Offset);
                _playerID = data.PlayerID;
                _udpConnectionKey = data.UdpConnectKey;
                OnLogedIn();
            }
            catch (Exception e)
            {
                Debug.Log("Failed to parse: " + e.ToString());
            }

            BeginUdpRegister();
        }
        else if (message.Type == PackageType.LoginFailed)
        {
            OnLoginFailed();
        }
        else if (message.Type == PackageType.RoomCreated)
        {
            OnCreatedRoom();
        }
        else if (message.Type == PackageType.JoinedRoom)
        {
            JoinedRoomInfoData data;
            try
            {
                data = new JoinedRoomInfoData(message.Data, ref message.Offset);
                ConnectedRoom = data.Room;
                OnJoinedRoom();
            }
            catch (Exception e)
            {
                Debug.Log("Failed to parse data: " + e.Message + " | " + e.TargetSite + " | " + e.StackTrace);
            }
        }
        else if (message.Type == PackageType.RoomList)
        {
            RoomListData data = new RoomListData(message.Data, ref message.Offset);
            OpenRooms = data.Rooms;
            OnReceivedRooms();
        }
        else if (message.Type == PackageType.OtherJoinedRoom)
        {
            RoomPlayerInfo playerInfo = new RoomPlayerData(message.Data, ref message.Offset).Player;
            ConnectedRoom.Players.Add(playerInfo);
            OnOtherJoinedRoom(playerInfo);
        }
        else if (message.Type == PackageType.OtherLeftRoom)
        {
            PlayerIDData playerInfo = new PlayerIDData(message.Data, ref message.Offset);
            RoomPlayerInfo player = null;
            for (int i = ConnectedRoom.Players.Count - 1; i >= 0; i--)
            {
                if (ConnectedRoom.Players[i].PlayerID == playerInfo.PlayerID)
                {
                    player = ConnectedRoom.Players[i];
                    ConnectedRoom.Players.RemoveAt(i);
                    break;
                }
            }

            if (player != null) OnOtherLeftRoom(player);
            else Debug.Log("Could not find player to remove");
        }
        else if (message.Type == PackageType.OtherChangedSetup)
        {
            // Parse
            OtherPlayerSetupData info = new OtherPlayerSetupData(message.Data, ref message.Offset);

            // Find player of id
            RoomPlayerInfo foundPlayer = null;
            foreach (RoomPlayerInfo player in ConnectedRoom.Players)
            {
                if (player.PlayerID == info.PlayerID)
                {
                    foundPlayer = player;
                    break;
                }
            }

            // Change setup of player
            if (foundPlayer != null)
            {
                foundPlayer.Setup = info.Setup;
                OnOtherChangedSetup();
            }
            else
            {
                Debug.Log("Could not find player to remove");
            }
        }
        else if (message.Type == PackageType.UDPRegistered)
        {
            _udpRegistered = true;
        }
        else if (message.Type == PackageType.RoomLoad)
        {
            RoomUdpSetupData msg = new RoomUdpSetupData(message.Data, ref message.Offset);

            // Assign udp settings
            foreach (PlayerUdpSetupData playerUDP in msg.UdpPlayerList)
            {
                foreach (RoomPlayerInfo player in ConnectedRoom.Players)
                {
                    if (player.PlayerID == playerUDP.PlayerID)
                    {
                        player.UdpEP = playerUDP.EP;
                        break;
                    }
                }
            }

            OnGameLoad();
        }
        else if (message.Type == PackageType.RoomStart)
        {
            OnGameStart();
        }
        else
        {
            base.HandleMessage(message);
        }
    }
 public void Init(SessionManager manager, GameRoom.GameRoomSession session, Bet bet)
 {
     _manager = manager;
     _session = session;
     _bet = bet;
 }
Example #48
0
 private void EmitAll(GameRoom room, string message, object val)
 {
     foreach (var player in room.Players)
     {
         qManager.SendMessage(player, player.Gateway, message, val);
     }
 }
Example #49
0
    public void FromBytes(byte[] data, ref int offset)
    {
        int roomID = BitConverter.ToInt32(data, offset);
        offset += 4;

        int nameLength = (int)data[offset++];
        string name = Encoding.UTF8.GetString(data, offset, nameLength);
        offset += nameLength;

        int maxPlayers = (int)data[offset++];
        int mapID = (int)data[offset++];
        int creatorID = (int)data[offset++];

        Room = new GameRoom(roomID, name, maxPlayers, mapID, creatorID);
    }
Example #50
0
    public void FromBytes(byte[] data, ref int offset)
    {
        int roomID = BitConverter.ToInt32(data, offset);
        offset += 4;

        int nameLength = (int)data[offset++];
        string name = Encoding.UTF8.GetString(data, offset, nameLength);
        offset += nameLength;

        int maxPlayers = (int)data[offset++];
        int mapID = (int)data[offset++];
        int creatorID = (int)data[offset++];

        int playerAmount = (int)data[offset++];
        RoomPlayerInfo[] players = new RoomPlayerInfo[playerAmount];
        for (int i = 0; i < playerAmount; i++)
        {
            players[i] = new RoomPlayerData(data, ref offset).Player;
        }

        Room = new GameRoom(roomID, name, maxPlayers, mapID, creatorID);
        Room.Players.AddRange(players);
    }