public void RunWorkingStream(EarlyUpdateEvent evt, StreamWeaponWorkingControllerNode workingWeapon, [JoinByTank] SelfActiveTankNode selfActiveTank) { Entity weapon = workingWeapon.Entity; CooldownTimerComponent cooldownTimer = workingWeapon.cooldownTimer; if (workingWeapon.weaponEnergy.Energy <= 0f) { SwitchWorkingModeToIdleMode(weapon); } else if (InputManager.GetActionKeyUp(ShotActions.SHOT)) { SwitchWorkingModeToIdleMode(weapon); } else if ((cooldownTimer.CooldownTimerSec <= 0f) && workingWeapon.Entity.HasComponent <ShootableComponent>()) { base.ScheduleEvent <BeforeShotEvent>(workingWeapon); base.ScheduleEvent <ShotPrepareEvent>(workingWeapon); } }
public void SwitchToIdleWhenTankInactive(NodeRemoveEvent evt, SelfActiveTankNode selfActiveTank, [JoinByTank] StreamWeaponWorkingControllerNode workingWeapon) { SwitchWorkingModeToIdleMode(workingWeapon.Entity); }