public static void HandleJoinTribe(int fromClient, Packet packet) { int clientIDCheck = packet.ReadInt(); if (fromClient != clientIDCheck) { Console.WriteLine($"Player with ID: \"{fromClient}\" has assumed the wrong client ID: \"{clientIDCheck}\"!"); } Player player = Server.clients[fromClient].Player; HexCoordinates coordinates = packet.ReadHexCoordinates(); if (GameLogic.PlayerInRange(coordinates, player) && player.Tribe == null) { HexCell cell = GameLogic.grid.GetCell(coordinates); if (cell != null) { Structure hq = cell.Structure; if (hq is Headquarter) { player.Tribe = GameLogic.GetTribe(((Headquarter)hq).Tribe); ServerSend.BroadcastPlayer(player); Console.WriteLine("Player: " + player.Name + " successfully joined the tribe " + player.Tribe.Id.ToString() + "."); return; } } } Console.WriteLine("Player: " + player.Name + " failed to join the tribe " + "."); }
public static void HandleBuildHQ(int fromClient, Packet packet) { int clientIDCheck = packet.ReadInt(); if (fromClient != clientIDCheck) { Console.WriteLine($"Player with ID: \"{fromClient}\" has assumed the wrong client ID: \"{clientIDCheck}\"!"); } Player player = Server.clients[fromClient].Player; HexCoordinates coordinates = packet.ReadHexCoordinates(); Headquarter hq = new Headquarter(); if (GameLogic.VerifyBuildHQ(coordinates, hq, player)) { Tribe tribe = GameLogic.ApplyBuildHQ(coordinates, hq); player.Tribe = tribe; ServerSend.BroadcastApplyBuildHQ(coordinates); ServerSend.BroadcastPlayer(player); Console.WriteLine("Player: " + player.Name + " successfully placed a HQ."); } else { Console.WriteLine("Player: " + player.Name + " failed to build HQ"); } Server.SaveGame(); }
public static void HandlePositionUpdate(int fromClient, Packet packet) { int clientIDCheck = packet.ReadInt(); if (fromClient != clientIDCheck) { Console.WriteLine($"Player with ID: \"{fromClient}\" has assumed the wrong client ID: \"{clientIDCheck}\"!"); } Player player = Server.clients[fromClient].Player; HexCoordinates coordinates = packet.ReadHexCoordinates(); player.Position = coordinates; ServerSend.BroadcastPlayer(player); }