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; }
public static void SendFullPlayerData(FullPlayerData payload) //.PLAYER { NetDataWriter writer = new NetDataWriter(); writer.Put(".FPLAYER " + JsonConvert.SerializeObject(payload)); Program.server.broadcast(null, writer, DeliveryMethod.ReliableUnordered); }
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); }
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); }
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); }
private void OnActiveGamesGot(FullPlayerData data) { currentPlayerData.rank = data.rank; gameTable.PopulateRows(data.activeGames); }
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)); }