示例#1
0
    private IEnumerator Restoring()
    {
        yield return(new WaitForSeconds(_restoringDelay));

        while (_currentEnergy < _maxEnergy)
        {
            _currentEnergy++;
            EnergyChanged?.Invoke(_currentEnergy, _maxEnergy);
            yield return(new WaitForSeconds(_restoringRate));
        }
    }
示例#2
0
    private IEnumerator Shooting()
    {
        while (CanShoot)
        {
            _guns[_gunIndex].Shoot(_shotPrefab, _shotAudio);
            _currentEnergy--;
            IncreaseCanonIndex();
            EnergyChanged?.Invoke(_currentEnergy, _maxEnergy);

            yield return(new WaitForSeconds(_fireRate));
        }
    }
示例#3
0
 protected virtual void OnEnergyChanged(EnergyEventArgs e)
 {
     EnergyChanged?.Invoke(this, e);
 }
示例#4
0
 public void ChangeEnergy(int energyDelta)
 {
     CurrentEnergy = Mathf.Clamp(CurrentEnergy + energyDelta, 0, maxEnergy);
     OnEnergyChanged.Invoke();
     EnergyChanged?.Invoke(CurrentEnergy);
 }
示例#5
0
 private void Start()
 {
     _currentEnergy = _maxEnergy;
     StartRestore();
     EnergyChanged?.Invoke(_currentEnergy, _maxEnergy);
 }
示例#6
0
 private void OnPlayerChangeFlightEnergy(S_PLAYER_CHANGE_FLIGHT_ENERGY m)
 {
     EnergyChanged?.Invoke(m.Energy);
 }