Beispiel #1
0
        public static void UpdateFullPlayer(string body) //.FPLAYER
        {
            FullPlayerData payload = JsonConvert.DeserializeObject <FullPlayerData>(body);

            Player player = null;

            if (GameMain.mainPlayer.uid == payload.data.id)
            {
                player = GameMain.mainPlayer;
            }
            else
            {
                player = GameMain.players.First((it) => { return(it.uid == payload.data.id); });
            }
            if (!player.active && payload.active) //respawn
            {
                player.Reset();
                if (player.uid == payload.data.id)
                {
                    GameMain.hud.toggleDeathPanel();                        //Close death panel
                }
            }
            if (payload.hp != player.hp)
            {
                player.addHealth(payload.hp - player.hp);
            }
            if (!payload.active && player.active)
            {
                player.die();
            }
            player.position    = payload.data.position;
            player.orientation = payload.data.orientation;
        }
Beispiel #2
0
        public static void SendFullPlayerData(FullPlayerData payload) //.PLAYER
        {
            NetDataWriter writer = new NetDataWriter();

            writer.Put(".FPLAYER " + JsonConvert.SerializeObject(payload));
            Program.server.broadcast(null, writer, DeliveryMethod.ReliableUnordered);
        }
Beispiel #3
0
        public static void SendSpawn(NetPeer client, string body) //!GAMEDATA
        {
            NetDataWriter  writer  = new NetDataWriter();
            Player         player  = ServerV2.players[client];
            FullPlayerData payload = new FullPlayerData(player.name, player.active, player.hp, new PlayerData(player.uid, ServerV2.map.GetRandomSpawnArea(), player.orientation));

            writer.Put("!FPLAYER " + JsonConvert.SerializeObject(payload));
            Program.server.broadcast(null, writer, DeliveryMethod.ReliableUnordered);
        }
Beispiel #4
0
        public static void SendHandshake(NetPeer client, string body) //.HANDSHAKE
        {
            //Client
            NetDataWriter writer = new NetDataWriter();

            writer.Put(".HANDSHAKE");
            client.Send(writer, DeliveryMethod.ReliableOrdered);
            //Propagate
            Player         player  = ServerV2.players[client];
            FullPlayerData payload = new FullPlayerData(player.name, player.active, player.hp, new PlayerData(player.uid, player.position, player.orientation));

            writer.Reset();
            writer.Put(".NEWPLAYER " + JsonConvert.SerializeObject(payload));
            Program.server.broadcast(client, writer, DeliveryMethod.ReliableOrdered);
        }
Beispiel #5
0
 public bool Update(ServerTime gameTime)
 {
     position += new Vector2((float)(Math.Sin(angle) * -velocity * gameTime.ElapsedGameTime.TotalSeconds), (float)(Math.Cos(angle) * -velocity * gameTime.ElapsedGameTime.TotalSeconds));
     if (!ServerV2.map.isValidPosition(position))
     {
         return(false);
     }
     foreach (var entry in ServerV2.players)
     {
         Player player = entry.Value;
         if (!player.active)
         {
             continue;
         }
         if (player.getHitbox().Contains(new Point((int)position.X, (int)position.Y)))
         {
             player.addHealth(-damage);
             FullPlayerData payload = new FullPlayerData(player.name, player.active, player.hp, new PlayerData(player.uid, player.position, player.orientation));
             ServerSenderV2.SendFullPlayerData(payload);
             return(false);
         }
     }
     return(true);
 }
Beispiel #6
0
 private void OnActiveGamesGot(FullPlayerData data)
 {
     currentPlayerData.rank = data.rank;
     gameTable.PopulateRows(data.activeGames);
 }
Beispiel #7
0
        public static void AddNewPlayer(string body) //.ADDPLAYER
        {
            FullPlayerData payload = JsonConvert.DeserializeObject <FullPlayerData>(body);

            GameMain.players.Add(new Player(payload.data.id, payload.name, payload.data.position, payload.hp));
        }