public void Logout(bool force = false)
        {
            if (force)
            {
                Connection           = null;
                _lastConnectionExist = CurrentClock.ElapsedMilliseconds;
                return;
            }

            _checkLogout.Reset(Account.IsPremium ? 5000 : 20000);
            IsInLogoutProcess = true;
        }
        public bool ChangeFormation(DroneFormation change)
        {
            long currentTime = PlayerController.CurrentClock.ElapsedMilliseconds;

            if (DroneFormation.ID == change.ID || _lastFormationChangeTime.FromNow(currentTime) < FORMATION_COOLDOWN)
            {
                return(false);
            }
            ;

            _lastFormationChangeTime = currentTime;
            MergeBoosts(DroneFormation, change);

            DroneFormation = change;
            _shieldChangeTickTimeFunction.Reset();
            _shieldChangePerSecond = GetShieldChangePerSecond();

            ICommand formationChangedCommand = PacketBuilder.DroneFormationChangeCommand(PlayerController);

            PlayerController.Send(formationChangedCommand);
            PlayerController.EntitesInRange((x) => x.Send(formationChangedCommand));

            return(true);
        }