Example #1
0
 internal void RaiseEvent(MatchUserEvent.Type type, MatchUser user, MatchState state)
 {
     this.eventHandler?.Invoke(type, user, state);
 }
Example #2
0
        private void OnEvent(MatchUserEvent.Type type, MatchUser sender, MatchState state)
        {
            switch (type)
            {
            case MatchUserEvent.Type.AddToGrading:
                //{
                //	Protos.CS2GC_AddToMatch response = ProtoCreator.Q_CS2GC_AddToMatch();
                //	CS.instance.userMgr.GetUser( e.user.id ).Send( response );
                //}
                break;

            case MatchUserEvent.Type.RemoveFromGrading:
            {
                CSUser user = CS.instance.userMgr.GetUser(sender.id);
                this._userToMatchUser.Remove(user);
                Protos.CS2GC_RemoveFromMatch response = ProtoCreator.Q_CS2GC_RemoveFromMatch();
                user.Send(response);
            }
            break;

            case MatchUserEvent.Type.AddToLounge:
            case MatchUserEvent.Type.RemoveFromLounge:
            {
                Protos.CS2GC_MatchState pMatchState = ProtoCreator.Q_CS2GC_MatchState();
                for (int i = 0; i < state.numTeam; i++)
                {
                    MatchUser[] matchUsers = state.tUsers[i];
                    for (int j = 0; j < state.numUserPerTeam; j++)
                    {
                        MatchUser matchUser = matchUsers[j];
                        if (matchUser == null)
                        {
                            Protos.CS2GC_PlayerInfo playerInfo = new Protos.CS2GC_PlayerInfo
                            {
                                Vaild = false,
                            };
                            pMatchState.PlayerInfos.Add(playerInfo);
                        }
                        else
                        {
                            CSUser user = CS.instance.userMgr.GetUser(matchUser.id);
                            Protos.CS2GC_PlayerInfo playerInfo = new Protos.CS2GC_PlayerInfo
                            {
                                Vaild    = true,
                                GcNID    = user.gcNID,
                                Team     = i,
                                ActorID  = user.actorID,
                                Nickname = user.nickname,
                                Avatar   = user.avatar,
                                Gender   = user.gender,
                                Money    = user.money,
                                Diamoned = user.diamoned,
                                Rank     = user.rank
                            };
                            pMatchState.PlayerInfos.Add(playerInfo);
                        }
                    }
                }
                this.Broadcast(state.users, pMatchState);
            }
            break;

            case MatchUserEvent.Type.MatchSuccess:
                this.BeginBattle(state);
                break;
            }
        }