protected virtual IEnumerator WaitForReload() { yield return(new WaitForSeconds(SelectedEquipmentObject.Template.reloadDuration)); ResetEquipmentVolume(); SelectedEquipmentObject.SetReload(false); }
public virtual void Shoot() { if (SelectedEquipmentObject.Volume == 0) { Reload(); } if (!SelectedEquipmentObject.Triggerable) { return; } reloadTimer = SelectedEquipmentObject.Template.reloadDuration; Equipment equipment = SelectedEquipmentObject.Template; SelectedEquipmentObject.ResetTimer(); switch (equipment.type) { case EquipmentType.Weapon: ShootWithWeapon(equipment as Weapon); break; case EquipmentType.Laser: ShootWithLaser(equipment as Laser); break; default: break; } }
public virtual void Reload() { if (SelectedEquipmentObject.Reloading || SelectedEquipmentObject.VolumeInfinite) { return; } SelectedEquipmentObject.SetReload(true); UIManager.Instance.SetReload(); StartCoroutine(WaitForReload()); }
protected virtual void Update() { if (!initialized) { return; } if (!SelectedEquipmentObject.Triggerable) { SelectedEquipmentObject.UpdateTimer(-Time.deltaTime); } reloadTimer -= Time.deltaTime; if (reloadTimer < 0) { ResetEquipmentVolume(); } }
public virtual void ResetEquipmentVolume() { reloadTimer = SelectedEquipmentObject.Template.reloadDuration; SelectedEquipmentObject.ResetVolume(); OnVolumeChangedEvent?.Invoke(SelectedEquipmentObject.Volume, SelectedEquipmentObject.Template.volume); }
public virtual void ImpactEquipmentVolume(float value) { SelectedEquipmentObject.UpdateVolume(value); OnVolumeChangedEvent?.Invoke(SelectedEquipmentObject.Volume, SelectedEquipmentObject.Template.volume); }