Exemple #1
0
        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
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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");
            }
        }