示例#1
0
 public void CmdTaskFinish(CustomPayload payload)
 {
     if (CurrentTask == null)
     {
         return;
     }
     if (IsHunter && !CurrentTask.HunterActive || !IsHunter && !CurrentTask.VictimActive)
     {
         return;
     }
     if (!CurrentTask.OnTaskFinish(this, payload.Data))
     {
         return;
     }
     if (IsHunter)
     {
         CurrentTask.LastHunterOpened = (float)NetworkTime.time;
     }
     else
     {
         CurrentTask.LastVictimOpened = (float)NetworkTime.time;
     }
     TargetSetTaskFinishedClient(connectionToClient, CurrentTask.gameObject);
     CurrentTask = null;
     TargetSetTask(connectionToClient, null);
 }
示例#2
0
    /// <summary>
    /// 
    /// </summary>
    /// <param name="emulatorOffset">How many degrees away I am from the emulation point towards which my rotation is lerping to</param>
    /// <param name="payload"></param>
    /// <param name="extrapPoint"></param>
    /// <param name="emulationPoint"></param>
    /// <returns></returns>
    public Quaternion ExtrapolateFrom(float emulatorOffset, CustomPayload payload, out Vector3 extrapPoint, out Vector3 emulationPoint)
    {
        transform.rotation = payload.quat;
        forwardRotator.degsPerSec = payload.degsPerSecond;

        if(BenchmarkController.instance.shouldRotateTest) {
            BenchmarkController.instance.CreateLandmark(transform.rotation, 1);
        }

        double deltaTime = PhotonNetwork.time - payload.time;
        float frames = (float)deltaTime / Time.fixedDeltaTime;

        extrap(frames, payload);

        extrapPoint = pivot.position;

        if(BenchmarkController.instance.shouldRotateTest) {
            BenchmarkController.instance.CreateLandmark(transform.rotation, 2);
        }

        float degreesPerFrame = payload.degsPerSecond * Time.fixedDeltaTime;
        float emulationLagFrames = emulatorOffset / degreesPerFrame;
        extrap(emulationLagFrames, payload);

        emulationPoint = pivot.position;

        if(BenchmarkController.instance.shouldRotateTest) {
            BenchmarkController.instance.CreateLandmark(transform.rotation, 3);
        }
        return transform.rotation;
    }
示例#3
0
 public void TargetTaskResponse(NetworkConnection conn, CustomPayload payload)
 {
     if (CurrentTask == null)
     {
         return;
     }
     CurrentTask.OnTaskResponseClient(payload.Data);
 }
 /// <summary>
 /// Add APNS keys and values to this object as CustomPayload keys and value
 /// </summary>
 public void SetCustomPayloadWithAPNSPayload(APNSNotificationPayload apnsPayload)
 {
     foreach (var propertyInfo in typeof(APNSNotificationPayload).GetProperties())
     {
         var currentValue = propertyInfo.GetValue(apnsPayload);
         CustomPayload.Add(propertyInfo.Name, currentValue);
     }
 }
        protected virtual byte[] TransformResponse(byte[] response, X509Certificate2 certificate)
        {
            var creds = new X509EncryptingCredentials(certificate, SecurityAlgorithms.RsaPKCS1, SecurityAlgorithms.Aes128CbcHmacSha256);

            var header  = new JwtHeader(creds);
            var payload = new CustomPayload(Encoding.UTF8.GetString(response));

            var token        = new JwtSecurityToken(header, payload);
            var responseBody = _jwtHandler.WriteToken(token);

            return(Encoding.UTF8.GetBytes(responseBody));
        }
示例#6
0
 public void TargetSetTaskData(NetworkConnection conn, CustomPayload payload)
 {
     if (CurrentTask == null)
     {
         return;
     }
     if (!(CurrentTask is GameLocalTask gameLocalTask))
     {
         return;
     }
     gameLocalTask.SetDataInjection(this, payload);
 }
示例#7
0
    void extrap(float frames, CustomPayload payload)
    {
        int frameNum = (int)frames;
        float remainder = frames - (float)frameNum;

        for(int i = 0; i < frameNum; ++i) {
            payload.horizontalMove = InputDriver.instance.HorizontalUpdate(payload.horizontalAim, payload.horizontalMove, 1f);
            sideRotator.myUpdate(payload.horizontalMove, 1);
            forwardRotator.myUpdate(1);
        }

        payload.horizontalMove = InputDriver.instance.HorizontalUpdate(payload.horizontalAim, payload.horizontalMove, remainder);
        sideRotator.myUpdate(payload.horizontalMove, remainder);
        forwardRotator.myUpdate(remainder);
    }
示例#8
0
    private void TargetSynchronizeTaskList(NetworkConnection conn, CustomPayload tasks)
    {
        if (TaskList == null)
        {
            TaskList = new List <GameLocalTask>();
        }
        Debug.Log("TASK SYNCHRONIZE");
        foreach (object o in tasks.Data)
        {
            Debug.Log(o);
        }

        TaskList.Clear();
        TaskList.AddRange(tasks.Data.Where(o => o != null).Select(o => ((GameObject)o).GetComponent <GameLocalTask>()));
        TaskList.ForEach(task => task.ForceNotify());
    }
示例#9
0
 public void CmdTaskStep(CustomPayload payload)
 {
     if (CurrentTask == null)
     {
         return;
     }
     if (CurrentTask.SetCooldownOnStep)
     {
         if (IsHunter)
         {
             CurrentTask.LastHunterOpened = (float)NetworkTime.time;
         }
         else
         {
             CurrentTask.LastVictimOpened = (float)NetworkTime.time;
         }
     }
     CurrentTask.OnTaskStep(this, payload.Data);
 }
        public async Task RoutingTestForClassSubscriber()
        {
            var address = "tcp://localhost:6000";

            var publisherSocket = new PublisherSocket();

            publisherSocket.Bind(address);

            var subscriberSocket = new SubscriberSocket();

            subscriberSocket.Connect(address);

            var subscriber = new ExampleSubscriber();

            var router = NetmqMessageRouter
                         .WithPubSubConnecton(publisherSocket, subscriberSocket)
                         .WithWorkerPool(numberOfSerializationWorkes: 2, numberOfHandlingWorkes: 8)
                         .RegisterTypeSerializer(new RawDataTypeSerializer())
                         .RegisterTypeSerializer(new BasicTextTypeSerializer())
                         .RegisterGeneralSerializer(new JsonObjectSerializer())
                         .RegisterRoute("TestRoute", typeof(CustomPayload))
                         .RegisterSubscriber(subscriber)
                         .StartRouting();

            router.SendMessage("TestRoute", new CustomPayload("Hellow world", 123));

            router.OnException += exception =>
            {
                // handle any exception
            };

            await Task.Delay(TimeSpan.FromSeconds(5));

            router
            .StopRouting()
            .Disconnect();

            var expectedValue = new CustomPayload("Hellow world", 123);

            Assert.AreEqual(expectedValue, subscriber.PassedValue);
        }
示例#11
0
 void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
 {
     if(stream.isWriting) {
         stream.SendNext(rotationDevice.transform.rotation);
         stream.SendNext(finalSpeeder.degsPerSec);
         stream.SendNext(InputDriver.instance.horizontalAim);
         stream.SendNext(InputDriver.instance.horizontalMove);
     } else {
         Quaternion rotation = (Quaternion)stream.ReceiveNext();
         float speed = (float)stream.ReceiveNext();
         float horizontalAim = (float)stream.ReceiveNext();
         float horizontalMove = (float)stream.ReceiveNext();
         CustomPayload payload = new CustomPayload(rotation, speed, info.timestamp, horizontalAim, horizontalMove);
         if(useExtrapolation) {
             Vector3 extrapPoint, emulationPoint;
             Quaternion extrapolateRotation = extrapolater.ExtrapolateFrom(emulator.emulationOffset, payload, out extrapPoint, out emulationPoint);
             emulator.Emulate(extrapolateRotation, extrapPoint, emulationPoint, speed);
         }
     }
 }
 public void Test(CustomPayload value)
 {
     PassedValue = value;
 }
示例#13
0
 public void SetDataInjection(Player player, CustomPayload payload)
 {
     _data[player] = payload;
 }
示例#14
0
 protected void SetData(Player player, CustomPayload payload)
 {
     SetDataInjection(player, payload);
     player.TargetSetTaskData(player.connectionToClient, payload);
 }