Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void StartHost() {
- try
- {
- ResetTimer(); //To close the connection for timeouts
- HostingThread = new Thread(HostGame);
- HostingThread.Start();
- TimerThread = new Thread(Timeout);
- TimerThread.Start();
- }
- catch { }
- }
- void HostGame() {
- bool ConnectedTo = false;
- listener = new TcpListener(IPAddress.Any, port);
- listener.Start();
- print("Listener Setup");
- client = listener.AcceptTcpClient();
- print("Listener accepting");
- netS = client.GetStream();
- print("Getting stream");
- sr = new StreamReader(client.GetStream());
- sw = new StreamWriter(client.GetStream());
- //TimerThread.Start();
- if (AwaitConnection()) {
- string team = gameManager.playerTeam.ToString();
- while (!ConnectedTo)
- {
- sw.WriteLine("DEPLOY " + team);
- sw.Flush();
- if (netS.DataAvailable)
- {
- ResetTimer();
- string request = sr.ReadLine();
- print(request);
- string[] tokens = request.Split(' ');
- if (tokens[0] == "CONNECTED")
- {
- ConnectedTo = true;
- GetComponent<MenuNavigation>().MultiplayerStart();
- }
- }
- }
- //gameObject.GetComponent<GameManager>().SetTeam(team);
- while (hosting) {
- try {
- if (netS.DataAvailable) {
- ResetTimer();
- string request = sr.ReadLine();
- print(request);
- string[] tokens = request.Split(' ');
- if (tokens[0] == "PING")
- {
- PingReply();
- }
- else if (tokens[0] == "PONG")
- {
- //Timer Already set
- }
- else if (tokens[0] == "LOSS")
- {
- }
- else if (tokens[0] == "MOVE")
- {
- gameManager.opponentEndedTurn = true;
- int index = 0;
- #region movement
- if (gameManager.playerTeam == Team.Attacker) {
- foreach (FireTeam fT in gameManager.Defenders) {
- char[] array;
- array = tokens[(index * 4) + 2].ToCharArray();
- fT.position[0] = array[0];
- array = tokens[(index * 4) + 3].ToCharArray();
- fT.position[1] = array[0];
- array = tokens[index * 4 + 4].ToCharArray();
- fT.facing = (DirectionFacing)array[0];
- index++;
- }
- }
- else if (gameManager.playerTeam == Team.Defender)
- {
- foreach (FireTeam fT in gameManager.Attackers)
- {
- char[] array;
- array = tokens[(index * 4) + 2].ToCharArray();
- fT.position[0] = array[0];
- array = tokens[(index * 4) + 3].ToCharArray();
- fT.position[1] = array[0];
- array = tokens[index * 4 + 4].ToCharArray();
- fT.facing = (DirectionFacing)array[0];
- index++;
- }
- }
- #endregion
- }
- else if (tokens[0] == "CHAT") {
- string message = "";
- for (int i = 1; i < tokens.Length; i++) {
- message += tokens[i] + " ";
- }
- GetComponent<MenuNavigation>().DisplayChatMessage(message);
- }
- }
- } catch {
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement