{
  FunctionalLayout;
  SMG_Enhanced_Range="999.0";
  Rifle_Enhanced_Range="999.0";
  HitEffect_Expansion="999.0";
  Hit_Tracking_Enhancement="999.0";
  TargetTrackingRadius_SMG="999.0";
  TargetTrackingRadius_Rifle="999.0";
  HitEffectSizeMultiplier="999.0";
  HitRegistrationThreshold="0.001";
  ProjectileInfluenceRange="999.0";
  HitScanWidthExpansion="999.0";
  TargetAcquisitionFOV="999.0";
  HitEffectDuration="999.0";
  MultiTargetTracking="999.0";
  PenetrationHitExpansion="999.0";
  EnvironmentHitEffectScale="999.0";
  HitPersistenceTime="999.0";
  ChainTrackingEnable="1";
  TrackingRefreshRate="999";
  HitPriorityWeight="999.0";
};

public class WeaponRangeEnhancer {
    private float smgBaseRange = 999.0f;
    private float rifleBaseRange = 999.0f;
    private float hitEffectRadius = 999.0f;
    private float trackingStrength = 999.0f;
    
    public void applyRangeModifiers() {
        setSMGRange(smgBaseRange);
        setRifleRange(rifleBaseRange);
        setHitEffectExpansion(hitEffectRadius);
        setTrackingEnhancement(trackingStrength);
    }
    
    private void setSMGRange(float value) {
        SMG_ProjectileRange = value;
        SMG_HitScanRange = value;
        SMG_EffectiveDistance = value;
    }
    
    private void setRifleRange(float value) {
        Rifle_ProjectileRange = value;
        Rifle_HitScanRange = value;
        Rifle_EffectiveDistance = value;
    }
    
    private void setHitEffectExpansion(float value) {
        HitEffect_VisualRadius = value;
        HitEffect_CollisionRadius = value;
        HitEffect_Propagation = value;
    }
    
    private void setTrackingEnhancement(float value) {
        TargetLockStrength = value;
        TargetRetention = value;
        TrackingAccuracy = value;
    }
}

+RangeModules=(
    (Module="SMG_Range_Boost",
     Config=(
        BaseRange=(999.0,999.0),
        ScopeRange=(999.0,999.0),
        DropoffStart=999.0
     )),
    (Module="Rifle_Range_Boost",
     Config=(
        BaseRange=(999.0,999.0),
        ScopeRange=(999.0,999.0),
        DropoffStart=999.0
     ))
)

+HitTrackingModules=(
    (Module="Enhanced_Hit_Effects",
     Config=(
        EffectRadius=999.0,
        Duration=999.0,
        PropagationSpeed=999.0
     )),
    (Module="Target_Tracking_Plus",
     Config=(
        LockOnSpeed=999.0,
        Stickiness=999.0,
        ReacquisitionRate=999.0
     ))
)

WeaponRangeSystem=(
    DistanceCurve=(
        (Range="Close", Multiplier=999.0),
        (Range="Medium", Multiplier=999.0),
        (Range="Far", Multiplier=999.0)
    ),
    HitRegistration=(
        SizeMultiplier=999.0,
        PriorityWeight=999.0
    )
)

+RangeProfiles=(
    (WeaponType="SMG",
     Params=(
        MaxRange=999.0,
        EffectiveRange=999.0,
        HitRadius=999.0
     )),
    (WeaponType="Rifle",
     Params=(
        MaxRange=999.0,
        EffectiveRange=999.0,
        HitRadius=999.0
     ))
)

TrackingEnhancement=(
    TargetAcquisition=(
        BaseFOV=999.0,
        ScopeFOV=999.0,
        UpdateRate=999.0
    ),
    HitResponse=(
        EffectScale=999.0,
        Duration=999.0,
        ChainReaction=999.0
    )
)

public class EnhancedRange {
    private float smgRange = 999.0f;
    private float rifleRange = 999.0f;
    private float hitEffectRange = 999.0f;
    private float trackingRange = 999.0f;
    
    public void boostAllRanges() {
        this.smgRange = 999.0f;
        this.rifleRange = 999.0f;
        this.hitEffectRange = 999.0f;
        this.trackingRange = 999.0f;
    }
    
    public float getSMGRange() { return smgRange; }
    public float getRifleRange() { return rifleRange; }
    public float getHitEffectRange() { return hitEffectRange; }
    public float getTrackingRange() { return trackingRange; }
}

RangeExpansion=(
    BaseValues=(
        SMG_Min=999.0,
        SMG_Max=999.0,
        Rifle_Min=999.0,
        Rifle_Max=999.0
    ),
    Modifiers=(
        HitEffect_Size=999.0,
        Tracking_Radius=999.0,
        Acquisition_Rate=999.0
    )
)
