internal void RaiseEvent(MatchUserEvent.Type type, MatchUser user, MatchState state) { this.eventHandler?.Invoke(type, user, state); }
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; } }