public void UpdateEnergy(TimeUpdateEvent e, ShaftEnergyNode weapon, [JoinByTank] HUDNodes.ActiveSelfTankNode tank, [JoinAll] SingleNode <MainHUDComponent> hud) { CooldownTimerComponent cooldownTimer = weapon.cooldownTimer; if ((weapon.weaponEnergy.Energy >= weapon.shaftEnergy.UnloadEnergyPerQuickShot) && ((cooldownTimer.CooldownTimerSec <= 0f) && weapon.Entity.HasComponent <ShootableComponent>())) { if (!weapon.Entity.HasComponent <BlinkMarkerComponent>()) { weapon.Entity.AddComponent <BlinkMarkerComponent>(); hud.component.EnergyBlink(true); } } else { if (weapon.Entity.HasComponent <BlinkMarkerComponent>()) { weapon.Entity.RemoveComponent <BlinkMarkerComponent>(); } if (InputManager.GetActionKeyDown(ShotActions.SHOT)) { hud.component.EnergyBlink(false); } } hud.component.CurrentEnergyValue = weapon.weaponEnergy.Energy; }
public void Init(NodeAddedEvent e, ShaftEnergyNode weapon, [JoinByTank, Context] HUDNodes.SelfTankNode tank, SingleNode <MainHUDComponent> hud) { hud.component.EnergyBarEnabled = true; hud.component.MaxEnergyValue = 1f; hud.component.CurrentEnergyValue = 0f; hud.component.EnergyAmountPerSegment = 1f; }
public void PlayLowEnergyForShaft(TimeUpdateEvent e, ShaftEnergyNode weapon, [JoinByTank] TankNode tank, [JoinAll] SoundListenerNode listener) { if (InputManager.GetActionKeyDown(ShotActions.SHOT)) { CooldownTimerComponent cooldownTimer = weapon.cooldownTimer; if ((weapon.weaponEnergy.Energy < weapon.shaftEnergy.UnloadEnergyPerQuickShot) || ((cooldownTimer.CooldownTimerSec > 0f) || !weapon.Entity.HasComponent <ShootableComponent>())) { this.PlayLowEnergyFeedback(tank); } } }
private void ReloadEnergy(TimeUpdateEvent evt, ShaftEnergyNode weapon) { float num = weapon.shaftEnergy.ReloadEnergyPerSec * evt.DeltaTime; weapon.weaponEnergy.Energy += num; if (weapon.weaponEnergy.Energy >= 1f) { weapon.weaponEnergy.Energy = 1f; weapon.weaponEnergyEsm.Esm.ChangeState <WeaponEnergyStates.WeaponEnergyFullState>(); } }
public void UnloadEnergyPerQuickShot(BaseShotEvent evt, ShaftEnergyNode weapon, [JoinByTank] SingleNode <ShaftIdleStateComponent> state) { this.UnloadEnergyByQuickShot(weapon); }
public void UnloadEnergyPerAimingShot(BaseShotEvent evt, ShaftEnergyNode weapon, [JoinByTank] SingleNode <ShaftAimingWorkFinishStateComponent> state) { this.UnloadEnergyByAimingShot(weapon); }
private void ApplyDeltaEnergy(float deltaEnergy, ShaftEnergyNode weapon) { weapon.weaponEnergy.Energy += deltaEnergy; weapon.weaponEnergy.Energy = Mathf.Clamp01(weapon.weaponEnergy.Energy); }
private void UnloadEnergyByQuickShot(ShaftEnergyNode weapon) { float deltaEnergy = -weapon.shaftEnergy.UnloadEnergyPerQuickShot; this.ApplyDeltaEnergy(deltaEnergy, weapon); }
private void UnloadEnergyByAimingShot(ShaftEnergyNode weapon) { weapon.weaponEnergy.Energy = Mathf.Min(weapon.weaponEnergy.Energy, 1f - weapon.shaftEnergy.PossibleUnloadEnergyPerAimingShot); weapon.weaponEnergy.Energy = Mathf.Clamp01(weapon.weaponEnergy.Energy); }
public void UnloadEnergy(TimeUpdateEvent evt, ShaftEnergyNode weapon, [JoinByTank] SingleNode <WeaponEnergyUnloadingStateComponent> unloading, [JoinByTank] ActiveTankNode tank) { this.UnloadEnergy(evt, weapon); }
private void UnloadEnergy(TimeUpdateEvent evt, ShaftEnergyNode weapon) { float deltaEnergy = -weapon.shaftEnergy.UnloadAimingEnergyPerSec * evt.DeltaTime; this.ApplyDeltaEnergy(deltaEnergy, weapon); }
public void StartUnloading(NodeAddedEvent evt, ShaftEnergyNode weapon, [Context, JoinByTank] SingleNode <ShaftAimingWorkingStateComponent> state, [Context, JoinByTank] ActiveTankNode tank) { weapon.weaponEnergyEsm.Esm.ChangeState <WeaponEnergyStates.WeaponEnergyUnloadingState>(); }