protected ActiveModule(CategoryFlags ammoCategoryFlags, bool ranged = false)
        {
            IsRanged  = ranged;
            coreUsage = new ModuleProperty(this, AggregateField.core_usage);
            AddProperty(coreUsage);
            cycleTime = new CycleTimeProperty(this);
            AddProperty(cycleTime);

            if (ranged)
            {
                optimalRange = new OptimalRangeProperty(this);
                AddProperty(optimalRange);
                _falloff = new FalloffProperty(this);
                AddProperty(_falloff);
            }

            _ammoCategoryFlags = ammoCategoryFlags;
        }
 public SensorJammerModule() : base(true)
 {
     optimalRange.AddEffectModifier(AggregateField.effect_ew_optimal_range_modifier);
     _ecmStrength = new ModuleProperty(this, AggregateField.ecm_strength);
     AddProperty(_ecmStrength);
 }
 protected ArmorRepairerBaseModule(bool ranged) : base(ranged)
 {
     armorRepairAmount = new ModuleProperty(this, AggregateField.armor_repair_amount);
     armorRepairAmount.AddEffectModifier(AggregateField.effect_repair_amount_modifier);
     AddProperty(armorRepairAmount);
 }