import java.util.HashMap;
import java.util.Map;

public class GameConfig {
    
    // Global aim assist configuration
    public static class GlobalAimAssistConfig {
        private final boolean rapidTargetLock;
        private final double aimStrength;
        private final double lockOnSpeed;
        private final double adhesionStrength;
        private final double expansionRate;
        private final double optimizationLevel;

        public GlobalAimAssistConfig(boolean rapidTargetLock, double aimStrength, 
                                    double lockOnSpeed, double adhesionStrength,
                                    double expansionRate, double optimizationLevel) {
            this.rapidTargetLock = rapidTargetLock;
            this.aimStrength = aimStrength;
            this.lockOnSpeed = lockOnSpeed;
            this.adhesionStrength = adhesionStrength;
            this.expansionRate = expansionRate;
            this.optimizationLevel = optimizationLevel;
        }

        // Getters
        public boolean isRapidTargetLock() { return rapidTargetLock; }
        public double getAimStrength() { return aimStrength; }
        public double getLockOnSpeed() { return lockOnSpeed; }
        public double getAdhesionStrength() { return adhesionStrength; }
        public double getExpansionRate() { return expansionRate; }
        public double getOptimizationLevel() { return optimizationLevel; }
    }

    // Weapon-specific configuration
    public static class WeaponConfig {
        private final double headshotLockStrength;
        private final double adhesion;
        private final double speed;

        public WeaponConfig(double headshotLockStrength, double adhesion, double speed) {
            this.headshotLockStrength = headshotLockStrength;
            this.adhesion = adhesion;
            this.speed = speed;
        }

        // Getters
        public double getHeadshotLockStrength() { return headshotLockStrength; }
        public double getAdhesion() { return adhesion; }
        public double getSpeed() { return speed; }
    }

    // Load all configurations
    public static GlobalAimAssistConfig loadGlobalConfig() {
        return new GlobalAimAssistConfig(
            true,       // rapidTargetLock
            99.99,      // aimStrength
            99.99,      // lockOnSpeed
            99.99,      // adhesionStrength
            99.99,      // expansionRate
            99.99       // optimizationLevel
        );
    }

    public static Map<String, WeaponConfig> loadWeaponConfigs() {
        Map<String, WeaponConfig> configs = new HashMap<>();
        
        // Designated Marksman Rifles
        configs.put("SKS", new WeaponConfig(99.99, 99.99, 99.99));
        configs.put("Mini14", new WeaponConfig(99.99, 99.99, 99.99));
        configs.put("SLR", new WeaponConfig(99.99, 99.99, 99.99));
        configs.put("QBU", new WeaponConfig(99.99, 99.99, 99.99));
        configs.put("Mk14", new WeaponConfig(99.99, 99.99, 99.99));
        configs.put("VSS", new WeaponConfig(99.99, 99.99, 99.99));
        
        return configs;
    }

    // Usage example
    public static void main(String[] args) {
        // Load global configuration
        GlobalAimAssistConfig globalConfig = loadGlobalConfig();
        System.out.println("Rapid Target Lock: " + globalConfig.isRapidTargetLock());
        System.out.println("Aim Strength: " + globalConfig.getAimStrength());
        
        // Load weapon configurations
        Map<String, WeaponConfig> weaponConfigs = loadWeaponConfigs();
        
        // Access SKS configuration
        WeaponConfig sksConfig = weaponConfigs.get("SKS");
        System.out.println("\nSKS Headshot Lock Strength: " + sksConfig.getHeadshotLockStrength());
        
        // Access VSS configuration
        WeaponConfig vssConfig = weaponConfigs.get("VSS");
        System.out.println("VSS Speed: " + vssConfig.getSpeed());
    }
}
