public void MsgtoSer_JoinRoom(NetworkConnection cliconn, Msg_JoinRoom msg) { H.klog($"Got req to join from {cliconn.connectionId} , with name {msg.mename}"); if (GameMan._ins.roomTab_ser.ContainsKey(msg.idtojoin)) { //prepare for message to send GameMan.Room ro = GameMan._ins.roomTab_ser[msg.idtojoin]; List <int> memid = new List <int>(); List <string> memname = new List <string>(); List <bool> memstate = new List <bool>(); //addin LEADER to the list //memid.Add(ro.leader.connectionId); //memname.Add(ro.nameslist[ro.leader.connectionId]); //H.klog($"Memcount = {ro.members.Count}"); if (ro.members.Count != 0) { for (int i = 0; i < ro.members.Count; i++) { //add conn id to member id list to send to cliconn memid.Add(ro.members[i].connectionId); memname.Add(ro.nameslist[ro.members[i].connectionId]); //send a msg to each member of room, new one join ro.members[i].Send(new Msg_Lobby { playerconnid = cliconn.connectionId, playername = msg.mename, comcode = ComCode.JoinRoom }); // adding ready state to right client conn id if (ro.readyflags.ContainsKey(ro.members[i].connectionId)) { memstate.Add(ro.readyflags[ro.members[i].connectionId]); } else { memstate.Add(false); } } } //send message to leader to add new mem ro.leader.Send(new Msg_Lobby { playerconnid = cliconn.connectionId, playername = msg.mename, comcode = ComCode.JoinRoom }); //reset start ui button ro.leader.Send(new Msg_Lobby { comcode = ComCode.AllReady, enaRoomStart = false }); //H.klog($"Memid count = {memid.Count}"); Msg_JoinRoom mess = new Msg_JoinRoom { idtojoin = msg.idtojoin, members = memid, roommemnames = memname, memcount = memid.Count, memstate = memstate, leaderid = ro.leader.connectionId, leadername = ro.nameslist[ro.leader.connectionId], error = false }; cliconn.Send(mess); // adding cliconn as room member on server GameMan._ins.AddRoomPlayer_Ser(msg.idtojoin, cliconn, msg.mename); //adding player to player table GameMan._ins.playerTab_ser.Add(cliconn.connectionId, msg.idtojoin); } }
public void MsgtoCli_JoinRoom(Msg_JoinRoom sermsg) { // open game room and add itself GameMan._ins.SetupRoom_Cli(sermsg.idtojoin); // adding leader badge to the room GameMan._ins.AddRoomPlayerUI_Cli(sermsg.leaderid, sermsg.leadername, true); // add extra lobby player if (sermsg.memcount != 0) { for (int i = 0; i < sermsg.memcount; i++) { GameMan._ins.AddRoomPlayerUI_Cli(sermsg.members[i], sermsg.roommemnames[i], false, sermsg.memstate[i]); } } }