private void FireDelegate_CmdReceived(IConnectedSystemEndpoint Endpoint, FireControlCmd Cmd)
        {
            if (Cmd.WeaponType == FireControlType.Primary)
            {
                lock (_loadLockObj)
                {
                    var now         = HighResolutionDateTime.UtcNow;
                    var diff        = now - _lastLoadTime;
                    var isValidFire = diff >= Constants.Gameplay.ReloadDuration;

                    int fireType  = 0;
                    var isLoaded  = Convert.ToInt32(_isLoaded);
                    var isMisfire = Convert.ToInt32(_isLoaded & !isValidFire);
                    fireType += isLoaded + isMisfire;
                    var fireState = (PrimaryWeaponFireState)fireType;

                    PrimaryWeaponFired?.Invoke(Endpoint, fireState);

                    _isLoaded = false;
                }
            }
            else if (Cmd.WeaponType == FireControlType.Secondary)
            {
                SecondaryWeaponFired?.Invoke(Endpoint);
            }
        }
Beispiel #2
0
 private static void ArdManager_CommandReceived(IArdNetSystem Sender, IConnectedSystemEndpoint ConnectedSystem, TcpRequest Message)
 {
     Debug.WriteLine($"CMD: {Message.Request}");
     if (Message.Request == "VIBE")
     {
         _vibe.Blink(500);
     }
 }
Beispiel #3
0
    public void ChangeAmmo(IConnectedSystemEndpoint c)
    {
        if (c is null)
        {
            throw new System.ArgumentNullException(nameof(c));
        }

        UnityMainThreadDispatcher.Instance().Enqueue(ChangeSize);
    }
Beispiel #4
0
 public void TankMovement(IConnectedSystemEndpoint c, MovementDirection moveDir)
 {
     if (c is null)
     {
         throw new System.ArgumentNullException(nameof(c));
     }
     //print($"dir: {moveDir}");
     _currentMovement = moveDir;
 }
Beispiel #5
0
    public void TurretRotation(IConnectedSystemEndpoint c, MovementDirection moveDir)
    {
        if (c is null)
        {
            throw new System.ArgumentNullException(nameof(c));
        }

        _currentDirection = moveDir;
        _gunTarget.ChangeAimDistance(moveDir);
    }
Beispiel #6
0
    public void PrimaryFire(IConnectedSystemEndpoint c, PrimaryWeaponFireState state)
    {
        if (c is null)
        {
            throw new System.ArgumentNullException(nameof(c));
        }

        _weaponsState = state;
        UnityMainThreadDispatcher.Instance().Enqueue(FireWeapon);
    }
 private void LoaderDelegate_CmdReceived(IConnectedSystemEndpoint Endpoint, GunLoaderCmd Cmd)
 {
     if (Cmd.LoaderType == GunLoaderType.Load)
     {
         lock (_loadLockObj)
         {
             _isLoaded     = true;
             _lastLoadTime = HighResolutionDateTime.UtcNow;
             PrimaryGunLoaded?.Invoke(Endpoint);
         }
     }
     else if (Cmd.LoaderType == GunLoaderType.CycleAmmoType)
     {
         PrimaryAmmoCycled?.Invoke(Endpoint);
     }
 }
        private void Server_TcpClientConnected(IArdNetSystem Sender, IConnectedSystemEndpoint e)
        {
            _ = Interlocked.Increment(ref _tcpConnectionCount);
            Console.WriteLine("New TCP Connection");
            Console.WriteLine("    IP Address: " + e.Endpoint);

            e.UserState = new
            {
                Name = "Hello",
                Time = DateTime.Now
            };

            if (!ArdServer.NetConfig.TCP.HeartbeatConfig.ExpectHeartbeatResponse)
            {
                ArdServer.SendTcpCommand(e.Endpoint, "set.htbt", new string[] { "respond", "false" });
            }
        }
Beispiel #9
0
        private void MovDelegate_MovementChanged(IConnectedSystemEndpoint Endpoint, MovementDirection Dir)
        {
            //dont show ui input if not connected
            if (_ardClient.IsServerConnected)
            {
                _dir = Dir;
            }
            else
            {
                _dir = MovementDirection.Stop;
            }

            InvokePropertyChanged(nameof(DirNW));
            InvokePropertyChanged(nameof(DirN));
            InvokePropertyChanged(nameof(DirNE));

            InvokePropertyChanged(nameof(DirW));
            InvokePropertyChanged(nameof(DirE));

            InvokePropertyChanged(nameof(DirSW));
            InvokePropertyChanged(nameof(DirS));
            InvokePropertyChanged(nameof(DirSE));
        }
Beispiel #10
0
 private static void ArdManager_TcpEndpointConnected(IArdNetSystem Sender, IConnectedSystemEndpoint e)
 {
     _ = _serverMsgHandle.Set();
     Debug.WriteLine("ArdNet Connected");
     _led.On();
 }
Beispiel #11
0
 public void LoadGun(IConnectedSystemEndpoint c)
 {
 }
Beispiel #12
0
 public void SecondaryFire(IConnectedSystemEndpoint c)
 {
     UnityMainThreadDispatcher.Instance().Enqueue(FireBullet);
 }