public override bool SharedCanFire(ICharacter character, WeaponState weaponState) { var requiredEnergyAmount = this.EnergyUsePerShot; var vehicle = character.SharedGetCurrentVehicle(); if (VehicleEnergySystem.SharedHasEnergyCharge(vehicle, Convert.ToUInt16(requiredEnergyAmount))) { return(true); } if (IsClient && weaponState.SharedGetInputIsFiring()) { VehicleEnergyConsumptionSystem.ClientShowNotificationNotEnoughEnergy( (IProtoVehicle)vehicle.ProtoGameObject); // stop using weapon item! weaponState.ProtoWeapon.ClientItemUseFinish(weaponState.ItemWeapon); } return(false); }