public IEnumerator useEnergyOverTime(float energyCost, IUseEnergy caller) { while (caller.usingEnergy) { currentEnergy -= energyCost * Time.deltaTime; recharging = false; yield return(null); } recharging = false; }
public void useEnergy(IUseEnergy caller) { switch (caller.energyUseType) { default: break; case EnergyUseType.instant: useInstantEnergy(caller.energyCost); break; case EnergyUseType.drain: StartCoroutine(useEnergyOverTime(caller.energyCost, caller)); break; case EnergyUseType.exponential: useExponetialEnergy(caller.energyCost, stamina); break; } }