#ifndef GAME_CONFIG_H
#define GAME_CONFIG_H

#include <string>
#include <vector>

// 超级神模式配置文件
struct GameConfig {
    struct GlobalSettings {
        bool FullAutoTracking = true;
        std::string SAVModelRange = "UltraLongRange";
        std::string WeaponRange = "Infinite";
        std::string ProbabilityDelayRange = "Zero";
        std::string DynamicRange = "Adaptive";
        int Recoil = 0;
        int AntiShake = 100;
        bool LockOnAim = true;
        bool LockOnHead = true;
        bool PredictiveAim = true;
        bool MagicBulletTracking = true;
        bool NoBulletDrop = true;
        bool InstantHit = true;
        bool UnlimitedAmmo = true;
        bool OneHitKill = true;
        bool ElementalComboEnabled = true;
        bool AutoReload = true;
        bool AutoFire = true;
        bool AutoTargeting = true;
        bool AutoAimCorrection = true;
        bool AutoElementalSwitch = true;
        int AutoCritChance = 100;
        double GlobalDamageMultiplier = 1e235;
        bool AutoRegenerateAmmo = true;
        bool AutoSwapWeapon = true;
        bool AutoRepairEquipment = true;
        bool AutoEnhanceWeapon = true;
        bool AutoUnlockAllAbilities = true;
    } GlobalSettings;

    struct Weapon {
        std::string WeaponName;
        double BaseDamage;
        double HeadshotMultiplier;
        struct MagicBulletEffects {
            bool ElementalDamage = true;
            std::string ElementalType = "AllElements";
            double ElementalMultiplier;
        } MagicBulletEffects;
    };

    std::vector<std::string> WeaponTypes = {
        "AllRifles", "AllSMGs", "AllDMRs", "AllShotguns",
        "AllSniperRifles", "AllPistols", "AllMeleeWeapons", "AllEnergyWeapons"
    };

    std::vector<Weapon> Weapons = {
        {"AssaultRifle", 1e235, 1e235, {true, "AllElements", 1e235}},
        {"SMG", 5e233, 5e233, {true, "AllElements", 5e233}},
        {"DMR", 2e235, 2e235, {true, "AllElements", 2e235}},
        {"Shotgun", 1e236, 1e236, {true, "AllElements", 1e236}},
        {"SniperRifle", 5e236, 5e236, {true, "AllElements", 5e236}},
        {"Pistol", 1e235, 1e235, {true, "AllElements", 1e235}},
        {"MeleeWeapon", 1e237, 1e237, {true, "AllElements", 1e237}},
        {"EnergyWeapon", 1e238, 1e238, {true, "AllElements", 1e238}}
    };
};

struct GameSettings {
    bool HeadshotEnabled = true;
    double HeadshotDamageBoost = 1e235;
    struct CriticalHitEffect {
        std::string EffectType = "GiganticMagicExplosion";
        double EffectScale = 1e235;
        std::string EffectColor = "Rainbow";
    } CriticalHitEffect;
    double GlobalDamageMultiplier = 1e235;
    bool AutoRespawn = true;
    bool Invincibility = true;
    bool InstantReload = true;
    bool SuperSpeed = true;
    bool InfiniteHealth = true;
    bool AutoHeal = true;
    bool AutoLevelUp = true;
    bool AutoSkillUnlock = true;
    double GlobalEffectMultiplier = 1e135;
    bool AutoEnhanceAbilities = true;
    bool AutoOptimizePerformance = true;
    bool AutoSyncSettings = true;
};

struct PlayerSettings {
    struct SkillBonuses {
        std::string BonusType = "Damage";
        double BonusValue = 1e235;
    } HeadshotMaster;
};

#endif // GAME_CONFIG_H