Exemplo n.º 1
0
        private IEnumerator LoadWeaponProcess()
        {
            Player.Entities[0].Tags.Add(EntityTags.PerformingCommand);
            yield return(LowerWeapon(false));

            _state = State.Reloading;
            UIChargeCircle.ManualStart(_current.Ammo.Template.ReloadText);
            var reloadPerAmmo = _current.Ammo.ReloadSpeed / _current.Ammo.Amount.MaxValue;
            var totalAmmo     = _current.Ammo.Amount.MaxValue - _current.Ammo.Amount.Value;
            int current       = 0;

            while (true)
            {
                if (_current == null || _state != State.Reloading)
                {
                    break;
                }
                current++;
                UIChargeCircle.ManualSetPercent((float)current / totalAmmo);
                if (!_current.Ammo.TryLoadOneAmmo(Player.Entities[0]))
                {
                    break;
                }
                yield return(reloadPerAmmo);
            }
            UIChargeCircle.StopCharge();
            if (_state == State.None || _state == State.Reloading)
            {
                yield return(RaiseWeapon());
            }
        }
        private IEnumerator LoadWeaponProcess()
        {
            yield return(LowerWeapon(false));

            _state = State.Reloading;
            UIChargeCircle.StopCharge();
            if (_state == State.None || _state == State.Reloading)
            {
                yield return(RaiseWeapon());
            }
        }
Exemplo n.º 3
0
 public override void OnExit()
 {
     base.OnExit();
     Graph.SetVariable(GraphVariables.Reloading, false);
     UIChargeCircle.StopCharge();
 }