Exemple #1
0
    public void CreateFireFor_SendsPacketsToChosenClients()
    {
        var mtaServer = new TestingServer();
        var players   = new TestingPlayer[] {
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
        };
        var additionalPlayers = new TestingPlayer[]
        {
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
        };

        var service = new FireService(mtaServer);

        service.CreateFireFor(players, Vector3.Zero);

        foreach (var player in players)
        {
            mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player);
        }
        foreach (var player in additionalPlayers)
        {
            mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player, count: 0);
        }
    }
Exemple #2
0
    public void HandlePacketRelaysPureSyncPacket()
    {
        var server       = new TestingServer();
        var sourcePlayer = server.AddFakePlayer();
        var otherPlayers = new TestingPlayer[] { server.AddFakePlayer(), server.AddFakePlayer(), server.AddFakePlayer() };

        Mock <ILogger> loggerMock = new();

        Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new();

        middlewareMock.Setup(x => x.GetPlayersToSyncTo(sourcePlayer, It.IsAny <PlayerPureSyncPacket>())).Returns(otherPlayers);

        Mock <IElementCollection> elementCollectionMock = new();

        var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementCollectionMock.Object);

        handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket()
        {
        });

        foreach (var player in otherPlayers)
        {
            server.VerifyPacketSent(PacketId.PACKET_ID_PLAYER_PURESYNC, player);
        }
    }
    public void HandlePacketRelaysPureSyncPacket()
    {
        var server       = new TestingServer();
        var sourcePlayer = server.AddFakePlayer();
        var otherPlayers = new TestingPlayer[] { server.AddFakePlayer(), server.AddFakePlayer(), server.AddFakePlayer() };

        Mock <ILogger> loggerMock = new();

        Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new();

        middlewareMock.Setup(x => x.GetPlayersToSyncTo(sourcePlayer, It.IsAny <PlayerPureSyncPacket>())).Returns(otherPlayers);

        Mock <IElementRepository> elementRepositoryMock = new();

        var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementRepositoryMock.Object);

        handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket()
        {
        });

        foreach (var player in otherPlayers)
        {
            server.NetWrapperMock.Verify(x => x.SendPacket(
                                             player.Address,
                                             PacketId.PACKET_ID_PLAYER_PURESYNC,
                                             It.IsAny <ushort>(),
                                             It.IsAny <byte[]>(),
                                             It.IsAny <PacketPriority>(),
                                             It.IsAny <PacketReliability>()));
        }
    }
Exemple #4
0
    public void PlayerSpawn_ShouldResetDefaults()
    {
        var player = TestingPlayer.CreateStandalone();

        player.HasJetpack = true;
        player.Health     = 50;
        player.Armor      = 10;
        player.AddWeapon(WeaponId.Ak47, 100);
        player.Dimension     = 10;
        player.Interior      = 10;
        player.VehicleAction = VehicleAction.Entering;
        player.Vehicle       = new Server.Elements.Vehicle(Server.Elements.VehicleModel.Alpha, Vector3.Zero);
        player.Seat          = 0;

        player.Spawn(Vector3.Zero, 0, 0, 5, 5);

        player.HasJetpack.Should().BeFalse();
        player.Health.Should().Be(100);
        player.Armor.Should().Be(0);
        player.Weapons.Should().BeEmpty();
        player.Dimension.Should().Be(5);
        player.Interior.Should().Be(5);
        player.VehicleAction.Should().Be(VehicleAction.None);
        player.Vehicle.Should().BeNull();
        player.Seat.Should().BeNull();
    }
    public void CreateExplosionFor_SendsPacketsToChosenClients()
    {
        var mtaServer = new TestingServer();
        var players   = new TestingPlayer[] {
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
        };
        var additionalPlayers = new TestingPlayer[]
        {
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
        };

        var service = new ExplosionService(mtaServer);

        service.CreateExplosionFor(players, Vector3.Zero, Enums.ExplosionType.WeakRocket);

        foreach (var player in players)
        {
            mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player);
        }
        foreach (var player in additionalPlayers)
        {
            mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player, count: 0);
        }
    }
Exemple #6
0
 SpriteRenderer spriteRen;     //声明该组件用来更换表情
 public void Start()
 {
     expresMana = FindObjectOfType <ExpressionManager>();
     enemyChar  = GetComponent <EnemyCharacter>();
     testing    = GetComponent <TestingPlayer>();
     spriteRen  = GetComponentInChildren <SpriteRenderer>();
 }
Exemple #7
0
    protected override IClient CreateClient(uint binaryAddress, INetWrapper netWrapper)
    {
        var player = new TestingPlayer();

        player.Client = new TestingClient(binaryAddress, netWrapper, player);
        return(player.Client);
    }
Exemple #8
0
    public static TestingPlayer CreateStandalone()
    {
        var netWrapper = new Mock <INetWrapper>();
        var player     = new TestingPlayer();

        player.Client = new TestingClient(0, netWrapper.Object, player);
        return(player);
    }
Exemple #9
0
    public void SetMoneyByProperty_ShouldStayWithinNegativeBounds()
    {
        var player = TestingPlayer.CreateStandalone();

        player.Money = -1000000000;

        player.Money.Should().Be(-99999999);
    }
Exemple #10
0
    public void SetMoney_ShouldStayWithinBounds()
    {
        var player = TestingPlayer.CreateStandalone();

        player.SetMoney(1000000000);

        player.Money.Should().Be(99999999);
    }
Exemple #11
0
    public void CreateFire_BroadcastsFirePacket()
    {
        var mtaServer = new TestingServer();
        var players   = new TestingPlayer[] {
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
        };

        var service = new FireService(mtaServer);

        service.CreateFire(Vector3.Zero);

        foreach (var player in players)
        {
            mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player);
        }
    }
    public void CreateExplosion_BroadcastsExplosionPacket()
    {
        var mtaServer = new TestingServer();
        var players   = new TestingPlayer[] {
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
            mtaServer.AddFakePlayer(),
        };

        var service = new ExplosionService(mtaServer);

        service.CreateExplosion(Vector3.Zero, Enums.ExplosionType.WeakRocket);

        foreach (var player in players)
        {
            mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player);
        }
    }
    public void HandlePacketSendReturnSyncPacket()
    {
        var server       = new TestingServer();
        var sourcePlayer = server.AddFakePlayer();
        var otherPlayers = new TestingPlayer[] { server.AddFakePlayer(), server.AddFakePlayer(), server.AddFakePlayer() };

        Mock <ILogger> loggerMock = new();

        Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new();

        middlewareMock.Setup(x => x.GetPlayersToSyncTo(sourcePlayer, It.IsAny <PlayerPureSyncPacket>())).Returns(otherPlayers);

        Mock <IElementRepository> elementRepositoryMock = new();

        var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementRepositoryMock.Object);

        handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket()
        {
        });

        server.NetWrapperMock.Verify(x => x.SendPacket(sourcePlayer.Address, It.IsAny <ushort>(), It.IsAny <ReturnSyncPacket>()));
    }
Exemple #14
0
 public void HandlePacket(TestingPlayer source, PacketId packetId, byte[] data)
 {
     this.packetReducer.EnqueuePacket(source.Client, packetId, data);
 }