public void TestJoinCreatingPlayerData() { var playersBefore = Game.World.Players.PlayerCount; var joinEvent = new JoinWorldEvent(); var clientPlayer = new TestServerPlayer(); Game.HandleClientEvent(clientPlayer, joinEvent); var createdPlayer = Game.World.Players.GetPlayer(clientPlayer.UserID); Assert.AreEqual(1, Game.World.Players.PlayerCount); Assert.AreEqual(clientPlayer, createdPlayer); Assert.AreEqual(1, createdPlayer.Buildings.Count); // initial building Assert.IsTrue(createdPlayer.Parties[0] != null); // initial party }
public void TestNewPlayerReceivingEvents() { var playersBefore = Game.World.Players.PlayerCount; var joinEvent = new JoinWorldEvent(); var player = new TestServerPlayer(); Game.HandleClientEvent(player, joinEvent); var entityVisibleEvents = player.ReceivedEventsOfType <EntityVisibleEvent>(); var tileVisibleEvent = player.ReceivedEventsOfType <TileVisibleEvent>(); Assert.IsTrue(tileVisibleEvent.Count > 2); Assert.AreEqual(2, entityVisibleEvents.Count); Assert.IsTrue(entityVisibleEvents.Where(e => e.Entity == player.Parties.First()).Any()); Assert.IsTrue(entityVisibleEvents.Where(e => e.Entity == player.Buildings.First()).Any()); }
public void TestJoinExistingPlayer() { var playersBefore = Game.World.Players.PlayerCount; var joinEvent = new JoinWorldEvent(); var player = new TestServerPlayer(); Game.HandleClientEvent(player, joinEvent); var firstEntityVisibleEvents = player.ReceivedEventsOfType <EntityVisibleEvent>(); var firstTileVisibleEvents = player.ReceivedEventsOfType <TileVisibleEvent>(); player.ReceivedEvents.Clear(); Game.HandleClientEvent(player, joinEvent); var secondEntityVisibleEvents = player.ReceivedEventsOfType <EntityVisibleEvent>(); var secondTileVisibleEvents = player.ReceivedEventsOfType <TileVisibleEvent>(); Assert.AreEqual(firstEntityVisibleEvents.Count, secondEntityVisibleEvents.Count); Assert.AreEqual(firstTileVisibleEvents.Count, secondTileVisibleEvents.Count); }
public void JoinWorld(JoinWorldEvent ev) { PlayerEntity player = null; if (_world.Players.GetPlayer(ev.Sender.UserID, out player)) { Log.Debug($"Existing player {player.UserID} joined"); Log.Debug($"Sending {player.VisibleTiles.Count} visible tiles"); foreach (var tile in player.VisibleTiles) { Log.Debug($"Sending tile {tile}"); tile.SendTileInformation(player, null); } } else { player = ev.Sender; _world.PlaceNewPlayer(player); Log.Debug($"New player {player.UserID} joined the world"); } }