public void Loop() { while (true) { KSObject msg = RecvMessage(); if (msg is BaseSnapshot) { HandleSnapshot((BaseSnapshot)msg); } else if (msg.Name() == StartGame.NameStatic) { HandleStartGame(msg); } else if (msg.Name() == EndGame.NameStatic) { HandleEndGame((EndGame)msg); break; } } }
public bool Join() { KSObject joinMessage; if (Config.GetInstance().Configuration.Value("general").Value <bool>("offline_mode")) { joinMessage = new JoinOfflineGame { TeamNickname = Config.GetInstance().Configuration.Value("ai").Value <string>("team_nickname"), AgentName = Config.GetInstance().Configuration.Value("ai").Value <string>("agent_name") }; } else { joinMessage = new JoinOnlineGame { Token = Config.GetInstance().Configuration.Value("ai").Value <string>("token"), AgentName = Config.GetInstance().Configuration.Value("ai").Value <string>("agent_name") }; } SendMessage(joinMessage); ClientJoined clientJoinedMessage; while (true) { KSObject tmp = RecvMessage(); if (tmp.Name() == ClientJoined.NameStatic) { clientJoinedMessage = (ClientJoined)tmp; break; } } if ((bool)clientJoinedMessage.Joined) { ai.SetSides(clientJoinedMessage.Sides, clientJoinedMessage.SideName); Logger.Log("Joined the game successfully"); Logger.Log("Side: " + clientJoinedMessage.SideName); return(true); } Logger.Log("Failed to join the game"); return(false); }