Ejemplo n.º 1
0
 public void CheckEnergyInjectionSlot(EarlyUpdateEvent e, DiscreteWeaponEnergyNode weapon, [JoinByTank] ObservationSlotNode slot, [JoinByModule] SingleNode <EnergyInjectionModuleReloadEnergyComponent> module)
 {
     if (this.CheckBlock(weapon.weaponEnergy, module.component, slot.Entity) && this.CheckBlock(weapon.cooldownTimer, slot.Entity))
     {
         slot.Entity.AddComponentIfAbsent <InventorySlotTemporaryBlockedByClientComponent>();
     }
 }
Ejemplo n.º 2
0
        public void UnloadEnergyPerShot(BaseShotEvent evt, DiscreteWeaponEnergyNode weapon)
        {
            float unloadEnergyPerShot = weapon.discreteWeaponEnergy.UnloadEnergyPerShot;

            weapon.weaponEnergy.Energy -= unloadEnergyPerShot;
            weapon.weaponEnergy.Energy  = Mathf.Clamp(weapon.weaponEnergy.Energy, 0f, 1f);
            weapon.weaponEnergyEsm.Esm.ChangeState <WeaponEnergyStates.WeaponEnergyReloadingState>();
        }
Ejemplo n.º 3
0
 public void CheckInitialState(NodeAddedEvent evt, DiscreteWeaponEnergyNode weapon, [Context, JoinByTank] ActiveTankNode activeTank)
 {
     if (weapon.weaponEnergy.Energy == 1f)
     {
         weapon.weaponEnergyEsm.Esm.ChangeState <WeaponEnergyStates.WeaponEnergyFullState>();
     }
     else
     {
         weapon.weaponEnergyEsm.Esm.ChangeState <WeaponEnergyStates.WeaponEnergyReloadingState>();
     }
 }