public void Complete() { foreach (GameObject pannel in teamPannels) { Team team = Match.MakeTeam(); team.color = pannel.GetComponent <Image>().color; team.color.a = 1; foreach (Transform js in pannel.transform) { JavascriptPannel jsPannel = js.gameObject.GetComponent <JavascriptPannel>(); team.AddJSInfo(jsPannel.jsInfo); if (jsPannel.jsInfo.isMine && !Match.myTeam.Contains(team)) { Match.myTeam.Add(team); } } } Match.CompleteMakeTeams(); if (NetworkValues.isServer) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.START)); } ScreenFader.MoveSceneGlobal("Playground"); }
void SendMessagesToNewbie(TcpClient client, NetworkDecorator.NetworkMessage message) { if (message.header != NetworkHeader.NEWBIE) { return; } Debug.Log("NEWBIE COMES!"); int numTeam = teamList.transform.childCount; if (numTeam > 2) { for (int i = 0; i < numTeam - 2; ++i) { Server.instance.SendToCleint(client, NetworkDecorator.AttachHeader(NetworkHeader.ADDTEAM)); } } foreach (Transform team in teamList.transform) { foreach (Transform fleet in team) { string str = team.gameObject.GetComponent <NetworkTeamPannel>().MakeNetworkMessage(NetworkHeader.ADDJS, fleet.gameObject, true); Debug.Log("NEWBIE : " + str); Server.instance.SendToCleint(client, str); } } Server.instance.SendToCleint(client, NetworkDecorator.AttachHeader(NetworkHeader.CHANGEGROUNDSIZE, GameValueSetter.groundSize.ToString())); Server.instance.SendToCleint(client, NetworkDecorator.AttachHeader(NetworkHeader.CHANGESHIPSPERFLEET, GameValueSetter.numShipsPerFleet.ToString())); }
public void Send(string msg) { string message = NetworkValues.name + ":" + input.text; Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.CHAT, message)); AddMessage(message); }
void OnMessageReceived(NetworkDecorator.NetworkMessage m) { if (m.header == NetworkHeader.CHAT) { AddMessage(m.message); } }
public void Restart() { if (NetworkValues.isServer) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.RESTART)); } }
public void Close() { Debug.Log("close client"); Send(NetworkDecorator.AttachHeader(NetworkHeader.ClOSE, NetworkValues.name)); NetworkValues.isNetwork = false; client.GetStream().Close(); client.Close(); }
public void Update() { if (server.Pending()) { clients.Add(server.AcceptTcpClient()); } foreach (TcpClient client in clients) { var stream = client.GetStream(); if (stream.DataAvailable) { byte[] buffer = NetworkStreamReader.Read(stream, client.ReceiveBufferSize); Mirroring(client, buffer); var message = restMessage + System.Text.Encoding.UTF8.GetString(buffer); restMessage = ""; string[] messages = message.Split('뷁'); for (int i = 1; i < messages.Length; ++i) { string msgRaw = messages[i]; string[] msgs = msgRaw.Split('끊'); if (msgs.Length == 1) { restMessage = msgs[0]; continue; } string msg = msgs[0]; if (msg.Length == 0) { continue; } if (msg.Length == 0) { continue; } foreach (OnMessageReceived fn in onMessageReceived) { NetworkDecorator.NetworkMessage m = NetworkDecorator.StringToMessage(msg); fn(client, m); if (m.header == NetworkHeader.ClOSE) { removingClients.Add(client); } } } } } foreach (TcpClient client in removingClients) { clients.Remove(client); } removingClients.Clear(); }
public void Close() { Debug.Log("close server"); Send(NetworkDecorator.AttachHeader(NetworkHeader.ClOSESERVER)); NetworkValues.isServer = false; server.Stop(); clients.Clear(); removingClients.Clear(); }
public static void GameOver() { if (NetworkValues.isNetwork) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.GAMEOVER, NetworkValues.name)); } isGameOver = true; ScreenFader.MoveSceneGlobal("Score"); }
void Start() { if (!NetworkValues.isNetwork) { return; } shouldRemoveListener = true; Client.instance.onMessageReceived.Add(OnMessageReceived); Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.NEWBIE, NetworkValues.name)); }
public void ChangeGroundSize(string groundSize) { if (NetworkValues.isServer) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.CHANGEGROUNDSIZE, groundSize)); } else { GameValueSetter.groundSize = int.Parse(groundSize); textGroundSize.text = groundSize; } }
public void ChangeShipsPerFleet(string shipsPerFleet) { if (NetworkValues.isServer) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.CHANGESHIPSPERFLEET, shipsPerFleet)); } else { GameValueSetter.numShipsPerFleet = int.Parse(shipsPerFleet); textShipsPerFleet.text = shipsPerFleet; } }
public string MakeNetworkMessage(string header, GameObject pannel, bool code = false) { StringBuilder b = new StringBuilder(transform.GetSiblingIndex().ToString()); b.Append(":"); b.Append(pannel.name); if (code) { b.Append(":콛"); b.Append(pannel.GetComponent <JavascriptPannel>().jsInfo.code); } return(NetworkDecorator.AttachHeader(header, b.ToString())); }
void OnMessageReceived(NetworkDecorator.NetworkMessage m) { switch (m.header) { case NetworkHeader.RESTART: ScreenFader.MoveSceneGlobal("MakeTeam"); break; case NetworkHeader.ClOSESERVER: Client.instance.Close(); ScreenFader.MoveSceneGlobal("MainMenu"); break; case NetworkHeader.ClOSE: chat.AddMessage("<color='#ff0000'>" + m.message + " gone.." + "</color>"); break; } }
void OnMessageReceived(NetworkDecorator.NetworkMessage m) { switch (m.header) { case NetworkHeader.ClOSESERVER: Client.instance.Close(); SceneManager.LoadScene("MainMenu"); break; case NetworkHeader.ACCEPTTICK: NetworkValues.acceptedTick = int.Parse(m.message); break; case NetworkHeader.CONSOLE: console.AddPendingCommand(m.message); break; } }
public void AddTeam(bool sendMessage = true) { GameObject pannel = (GameObject)Instantiate(Resources.Load("TeamPannel")); pannel.transform.SetParent(transform); pannel.transform.localScale = Vector3.one; pannel.GetComponent <Image>().color = GoodColor.DequeueColor(); teamPannels.Add(pannel); if (NetworkValues.isServer && NetworkValues.isNetwork && sendMessage) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.ADDTEAM)); } }
public void Update() { if (!NetworkValues.isNetwork) { return; } var stream = client.GetStream(); if (stream.CanRead && stream.DataAvailable) { byte[] buffer = NetworkStreamReader.Read(stream, client.ReceiveBufferSize); var message = restMessage + System.Text.Encoding.UTF8.GetString(buffer); restMessage = ""; string[] messages = message.Split('뷁'); if (onMessageReceived.Count > 0) { for (int i = 1; i < messages.Length; ++i) { string msgRaw = messages[i]; string[] msgs = msgRaw.Split('끊'); if (msgs.Length == 1) { restMessage = msgs[0]; continue; } string msg = msgs[0]; if (msg.Length == 0) { continue; } NetworkDecorator.NetworkMessage m = NetworkDecorator.StringToMessage(msg); foreach (OnMessageReceived fn in onMessageReceived) { fn(m); } } } } }
void OnMessageReceived(NetworkDecorator.NetworkMessage m) { switch (m.header) { case NetworkHeader.ADDJS: string[] strings = m.message.Split(':'); AddJS(int.Parse(strings[0]), strings[1], m.message.Split('콛')[1]); break; case NetworkHeader.REMOVEJS: string[] strings2 = m.message.Split(':'); RemoveJS(int.Parse(strings2[0]), strings2[1]); break; case NetworkHeader.ADDTEAM: teamList.GetComponent<TeamListPannel>().AddTeam(); break; case NetworkHeader.REMOVETEAM: teamList.GetComponent<TeamListPannel>().RemoveTeam(); break; case NetworkHeader.START: teamList.GetComponent<TeamListPannel>().Complete(); ScreenFader.MoveSceneGlobal("Playground"); break; case NetworkHeader.ClOSESERVER: Client.instance.Close(); SceneManager.LoadScene("MainMenu"); break; case NetworkHeader.CHANGEGROUNDSIZE: ChangeGroundSize(m.message); break; case NetworkHeader.CHANGESHIPSPERFLEET: ChangeShipsPerFleet(m.message); break; case NetworkHeader.NEWBIE: chat.AddMessage("<color='#ffff00'>" + m.message + " entered" + "</color>"); break; case NetworkHeader.ClOSE: chat.AddMessage("<color='#ff0000'>" + m.message + " gone.." + "</color>"); break; } }
void OnMessageReceivedAsServer(TcpClient client, NetworkDecorator.NetworkMessage m) { switch (m.header) { case NetworkHeader.NEWBIE: break; case NetworkHeader.REQUESTTICK: numRequest++; if (numRequest >= Server.instance.GetNumClients() && NetworkValues.requestedTick > NetworkValues.acceptedTick) { Server.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.ACCEPTTICK, m.message)); numRequest = 0; } break; case NetworkHeader.GAMEOVER: NetworkValues.acceptedTick += 1000; break; } }
public void RemoveTeam() { if (teamPannels.Count <= 2) { return; } foreach (GameObject pannel in teamPannels) { if (pannel.transform.childCount <= 0) { GoodColor.EnQueueColor(pannel.GetComponent <Image>().color); teamPannels.Remove(pannel); Destroy(pannel); break; } } if (NetworkValues.isServer) { Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.REMOVETEAM)); } }
public void ExcuteCommand(string command, bool syncronized = false, FleetAILoader ai = null) { if (ai == null) { ai = selectedAI; } if (ai != null) { if (NetworkValues.isNetwork && !syncronized) { StringBuilder b = new StringBuilder(ai.fleet.name); b.Append("콛"); b.Append(command); Client.instance.Send(NetworkDecorator.AttachHeader(NetworkHeader.CONSOLE, b.ToString())); AddPendingCommand(b.ToString()); } else { ai.ExcuteCommand(command); WriteLog(command); } } }
void SendMessagesToNewbie(TcpClient client, NetworkDecorator.NetworkMessage message) { if (message.header != NetworkHeader.NEWBIE) return; Debug.Log("NEWBIE COMES!"); int numTeam = teamList.transform.childCount; if (numTeam > 2) { for (int i = 0; i < numTeam - 2; ++i) { Server.instance.SendToCleint(client,NetworkDecorator.AttachHeader(NetworkHeader.ADDTEAM)); } } foreach (Transform team in teamList.transform) { foreach (Transform fleet in team) { string str = team.gameObject.GetComponent<NetworkTeamPannel>().MakeNetworkMessage(NetworkHeader.ADDJS,fleet.gameObject, true); Debug.Log("NEWBIE : " + str); Server.instance.SendToCleint(client, str); } } Server.instance.SendToCleint(client, NetworkDecorator.AttachHeader(NetworkHeader.CHANGEGROUNDSIZE, GameValueSetter.groundSize.ToString())); Server.instance.SendToCleint(client, NetworkDecorator.AttachHeader(NetworkHeader.CHANGESHIPSPERFLEET, GameValueSetter.numShipsPerFleet.ToString())); }