示例#1
0
        public static Tuple <Connect, _System, LobbyHandler, ToArenaHandler, GamingHandler, PacketHandler, PacketHandler> Rudp(Uri gamingServerIp)
        {
            Connect connect = new Connect(gamingServerIp.Host, gamingServerIp.Port, NetworkProtocol.RUDP);

            var system = new _System();

            connect.AddCallBackHandler(_System.OperatorCode, system);

            var gaming = new GamingHandler();

            connect.AddCallBackHandler(GamingHandler.OperationCode, gaming);

            var lobby = new LobbyHandler();

            connect.AddCallBackHandler(LobbyHandler.OperationCode, lobby);

            var toArena = new ToArenaHandler();

            connect.AddCallBackHandler((byte)EOperationCode.ToArena, toArena);

            var gamePacketHandler = new PacketHandler(PacketHandler.GamePacketOperationCode);

            connect.AddCallBackHandler(PacketHandler.GamePacketOperationCode, gamePacketHandler);

            var gameRoomHandler = new PacketHandler(PacketHandler.GameRoomOperationCode);

            connect.AddCallBackHandler(PacketHandler.GameRoomOperationCode, gameRoomHandler);

            //establish connection
            system.Connect += () => { Console.WriteLine("Connect to server."); };

            return(Tuple.Create(connect, system, lobby, toArena, gaming, gamePacketHandler, gameRoomHandler));
        }
示例#2
0
        public async Task JoinLobby(string lobbyId, string player)
        {
            var settings = new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.All
            };
            var hPlayer = JsonConvert.DeserializeObject <HumanPlayer>(player);

            // logic
            var lobby = LobbyHandler.AddPlayerToLobby(lobbyId, hPlayer);

            /*
             * if (lobby == null)
             * {
             *  await Clients.Caller.SendAsync("ReceiveLobbyExisting", false);
             * }
             */
            // prepare json-strings
            var jsLobby   = JsonConvert.SerializeObject(lobby, Formatting.Indented, settings);
            var jsPlayers = JsonConvert.SerializeObject(lobby.Players, Formatting.Indented, settings);

            // add to group and send
            await Clients.Caller.SendAsync("GetLobby", jsLobby, hPlayer.Index);

            await Clients.Group(lobbyId).SendAsync("PlayerListChanged", jsPlayers);

            await Groups.AddToGroupAsync(Context.ConnectionId,
                                         Game.UniquePlayerGroup(new Base64(lobbyId),
                                                                Server.Instance.Lobbies[lobbyId].Players.FindIndex(p => p.InGameName == hPlayer.InGameName)));

            await Groups.AddToGroupAsync(Context.ConnectionId, lobbyId);
        }
示例#3
0
 public LobbyController(LobbyHandler lobbyHandler,
                        PlayerService playerService,
                        IMapper mapper)
 {
     _lobbyHandler  = lobbyHandler;
     _playerService = playerService;
     _mapper        = mapper;
 }
示例#4
0
    /**
     * 返回游戏彩金
     * @param gameType 游戏类型 百家乐 1 德州扑克 2 老虎机 classic:3  老虎机 四大美人:4 老虎机 水果:5
     * @param gameId 游戏的id
     * @param gamejackpot 游戏彩金
     */
    public void GC_GAMETYPE_JACKPOT(InputMessage data)
    {
        int  gameType    = data.GetInt();
        int  gameId      = data.GetInt();
        long gamejackpot = data.GetLong();

        LobbyHandler.Instance().GC_GAMETYPE_JACKPOT(gameType, gameId, gamejackpot);
    }
示例#5
0
    /**
     * 适合自己等级游戏的彩金
     * @param jackpotfitLevelData 适合自己等级游戏彩金
     */
    public void GC_JACKPOT_LEVEL_DATA(InputMessage data)
    {
        int       i, size;
        ArrayList jackpotfitLevelData = new ArrayList();

        size = data.GetShort();
        for (i = 0; i < size; i++)
        {
            JackpotfitLevelData jackpotfitLevelData_Datas = new JackpotfitLevelData();
            jackpotfitLevelData_Datas.gameType = data.GetInt();            //游戏类型 百家乐 1 德州扑克 2 老虎机 classic:3  老虎机 四大美人:4 老虎机 水果:5
            jackpotfitLevelData_Datas.jackpot  = data.GetLong();
            jackpotfitLevelData.Add(jackpotfitLevelData_Datas);
        }
        LobbyHandler.Instance().GC_JACKPOT_LEVEL_DATA(jackpotfitLevelData);
    }
示例#6
0
        public async Task RemovePlayerFromLobby(string lobbyId, byte index)
        {
            var settings = new JsonSerializerSettings()
            {
                TypeNameHandling = TypeNameHandling.All
            };

            // logic
            var(playerList, removedPlayer) = LobbyHandler.RemovePlayerFromLobby(lobbyId, index);

            // notify removed player
            await Clients.Group(Game.UniquePlayerGroup(lobbyId, index)).SendAsync("LeaveLobby");

            //await Groups.RemoveFromGroupAsync(Context.ConnectionId, lobbyId);
            await Clients.Group(lobbyId).SendAsync("ReceiveMessage", removedPlayer.InGameName, "I left the Lobby");

            await Clients.Group(lobbyId).SendAsync("PlayerListChanged", JsonConvert.SerializeObject(playerList, Formatting.Indented, settings));
        }
示例#7
0
    /**
     * 最高彩金获得者前20位
     * @param jackpotList 彩金获得者数据
     */
    public void GC_JACKPOT_LIST_DATA(InputMessage data)
    {
        int       i, size;
        ArrayList jackpotList = new ArrayList();

        size = data.GetShort();
        for (i = 0; i < size; i++)
        {
            JackpotList jackpotList_Datas = new JackpotList();
            jackpotList_Datas.userId   = data.GetLong();
            jackpotList_Datas.img      = data.GetString();       //头像图片
            jackpotList_Datas.name     = data.GetString();       //名字
            jackpotList_Datas.jackpot  = data.GetLong();
            jackpotList_Datas.gameType = data.GetInt();          //游戏类型 百家乐 1 德州扑克 2 老虎机 classic:3  老虎机 四大美人:4 老虎机 水果:5
            jackpotList.Add(jackpotList_Datas);
        }
        LobbyHandler.Instance().GC_JACKPOT_LIST_DATA(jackpotList);
    }
示例#8
0
    /**
     * 进入老虎机后的第一个页面展示的 四个阶段的 彩金数
     * @param jackpotNum 《第几个》--不同的等级对应的最大彩金数,有几个传几个,(配置中可以关闭不同等级的彩金,然以就不显示)
     * @param jackpot 不同的等级对应的最大彩金数,有几个传几个,(配置中可以关闭不同等级的彩金,然以就不显示)
     */
    public void GC_SLOT_NEW_JACKPOTS(InputMessage data)
    {
        int       i, size;
        ArrayList jackpotNum = new ArrayList();

        size = data.GetShort();
        for (i = 0; i < size; i++)
        {
            int jackpotNum_Datas = data.GetInt();
            jackpotNum.Add(jackpotNum_Datas);
        }
        ArrayList jackpot = new ArrayList();

        size = data.GetShort();
        for (i = 0; i < size; i++)
        {
            long jackpot_Datas = data.GetLong();
            jackpot.Add(jackpot_Datas);
        }
        LobbyHandler.Instance().GC_SLOT_NEW_JACKPOTS(jackpotNum, jackpot);
    }
示例#9
0
 // Disregard Frame Skips for now
 public void Update()
 {
     // Update Vars
     game  = GameManager.Instance;
     lobby = game.LobbyHandlerRef;
     level = game.LevelManagerRef;
     // Update Locals
     Interface.Toggle ^= keys[KeyManager.Interface];
     keys.Update(); UpdateLocal(); BypassPasswords();
     // Update Game Settings
     ForceValue(game.SteamDLCManagerRef,
                "hasSupernaturalDLCPurchased", true);
     PhotonNetwork.playerName = "Lauren";
     game.playFabId           = "cats2";
     // testing
     //GameManager.IsServerCheckRequired = false;
     //game.PlayFabRef.playFabStatus = ConnectionManager.EStatus.ONLINE;
     // Meh
     //var exiles = PrivateField<Dictionary<int, bool>>(level.ExileManagerRef, "isExiled");
     //    exiles[PhotonNetwork.player.ID] = false;
     //level.ExileManagerRef.ForceGlobalExile(false);
     // F**k Niggers
 }
示例#10
0
 void Start()
 {
     handler = GameObject.Find("Networker").GetComponent <LobbyHandler>();
 }
示例#11
0
 public async Task CreateLobby(HumanPlayer hp)
 {
     var lobby = LobbyHandler.CreateLobby(hp);
     await Clients.Caller.SendAsync("ReceiveLobbyId", lobby.Id.ToString());
 }
示例#12
0
    /**
     * 游戏彩金数
     * @param jackpot 根据bet数 获取的相应的彩金值
     */
    public void GC_NEW_JACKPOT(InputMessage data)
    {
        long jackpot = data.GetLong();

        LobbyHandler.Instance().GC_NEW_JACKPOT(jackpot);
    }
示例#13
0
 public LobbyHub(LobbyHandler lobbyHandler)
 {
     _lobbyHandler = lobbyHandler;
 }