示例#1
0
    private void AddNewCoPlayer(string email, Location location)
    {
        CoPlayer coPlayer = Instantiate(coPlayerPrefab, transform.position, transform.rotation) as CoPlayer;

        coPlayer.SetEmail(email);
        coPlayer.SetPosition(location);
        playersOnScreen.Add(coPlayer);
    }
示例#2
0
        //-------------------------------------------------------------------------
        public void leaveLobby()
        {
            //UiMgr.Instance.destroyCurrentUi<UiMbLobby>();
            //UiMgr.Instance.destroyCurrentUi<UiMbWaiting>();

            InLobby = false;

            CoPlayer.requestGetOnlinePlayerNum();
        }
示例#3
0
        //-------------------------------------------------------------------------
        public override void handleEvent(object sender, EntityEvent e)
        {
            if (e is EvUiClickSearchDesk)
            {
                // 搜索牌桌
                var ev = (EvUiClickSearchDesk)e;

                enterLobby(ev.desktop_searchfilter);
            }
            else if (e is EvUiClickSearchFriendsDesk)
            {
                // 查找正在玩好友桌子
                //UiMbLobby ui_lobby = UiMgr.Instance.getCurrentUi<UiMbLobby>();
                //ui_lobby.setCurrentPlayingFriend(CoPlayerFriend.FriendListInDesktop);
            }
            else if (e is EvUiClickPlayInDesk)
            {
                // 玩家点击进入桌子玩
                var ev = (EvUiClickPlayInDesk)e;
                CoPlayer.requestEnterDesktop(ev.desk_etguid);
            }
            else if (e is EvUiClickFindSuitDeskTop)
            {
                // 查找合适牌桌
            }
            else if (e is EvUiClickLeaveLobby)
            {
                // 点击上一步,返回主界面
                leaveLobby();
            }
            else if (e is EvUiRequestGetCurrentFriendPlayDesk)
            {
                // 查询制定玩家所在桌子
                var ev = (EvUiRequestGetCurrentFriendPlayDesk)e;
                requestSearchDesktopFollowFriend(ev.desktop_etguid);
            }
        }
示例#4
0
        //---------------------------------------------------------------------
        // 进入桌子
        public async Task enterDesktop(string desktop_etguid)
        {
            if (IsEntering)
            {
                EbLog.Note("CellPlayerDesktop.enterDesktop() 错误:正在进入中");
                return;
            }
            IsEntering = true;

            if (!string.IsNullOrEmpty(DesktopEtGuid))
            {
                await leaveDesktop();
            }

            DesktopRequestPlayerEnter request_enter;

            request_enter.desktop_etguid = desktop_etguid;
            request_enter.seat_index     = 255;
            request_enter.player_clip    = 0;
            request_enter.player_gold    = CoActor.Def.PropGold.get();
            request_enter.is_vip         = CoActor.Def.mPropIsVIP.get();

            var grain = Entity.getUserData <GrainCellPlayer>();

            // Step1:监听桌子广播
            await _createDesktopStreamConsumer(desktop_etguid);

            // 自动下注
            int bet_chip  = 2000;
            int left_chip = CoActor.Def.PropGold.get();

            if (left_chip < bet_chip)
            {
                bet_chip = left_chip;
            }
            left_chip -= bet_chip;
            CoPlayer.CoActor.Def.PropGold.set(left_chip);

            // Step2:进入桌子并获取桌子初始化信息
            var         grain_desktop = grain.GF.GetGrain <ICellDesktop>(new Guid(desktop_etguid));
            DesktopData desktop_data  = await grain_desktop.s2sPlayerEnter(request_enter, CoPlayer.exportEtPlayerMirror());

            IsEntering    = false;
            DesktopEtGuid = desktop_data.desktop_cfg_data.desktop_etguid;

            DesktopNotify desktop_notify;

            desktop_notify.id   = DesktopNotifyId.DesktopInit;
            desktop_notify.data = EbTool.protobufSerialize <DesktopData>(desktop_data);

            MethodData notify_data = new MethodData();

            notify_data.method_id = MethodType.s2cPlayerDesktopNotify;
            notify_data.param1    = EbTool.protobufSerialize <DesktopNotify>(desktop_notify);
            var grain_player = grain.GF.GetGrain <ICellPlayer>(new Guid(Entity.Guid));

            grain_player.s2sNotify(notify_data);
        }