Beispiel #1
0
        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 " + ".");
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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);
        }