#include <iostream>
#include <string>

// 定义一个结构体用于表示不同武器类型的瞄准辅助加成
struct WeaponAimAssistBonuses {
    int rifleBonus;
    int sniperRifleBonus;
    int submachineGunBonus;
    int shotgunBonus;
};

// 定义一个结构体用于表示不同场景的瞄准辅助强度系数
struct ScenarioAimAssistCoefficients {
    double indoorBattle;
    double outdoorBattle;
    double longRangeShooting;
    double closeRangeCombat;
};

// 定义一个类用于表示瞄准辅助设置
class AimAssistSettings {
public:
    // 基础瞄准辅助设置
    int aimAssistGeneralSwitch;
    int aimAssistIntensityWhenNotFiring;
    int aimAssistEffectiveDistance;

    // 射击时的瞄准辅助设置
    int aimAssistIntensityWhenFiring;
    std::string lockedBodyPart;
    int aimAssistChasingSpeed;

    // 其他相关瞄准辅助设置
    int aimAssistSensitivity;
    int autoLockTarget;
    double aimAssistAndWeaponRecoilCorrelation;

    // 不同武器类型的瞄准辅助加成
    WeaponAimAssistBonuses weaponBonuses;

    // 不同场景的瞄准辅助强度系数
    ScenarioAimAssistCoefficients scenarioCoefficients;

    // 构造函数
    AimAssistSettings() {
        // 初始化基础瞄准辅助设置
        aimAssistGeneralSwitch = 1;
        aimAssistIntensityWhenNotFiring = 20;
        aimAssistEffectiveDistance = 120;

        // 初始化射击时的瞄准辅助设置
        aimAssistIntensityWhenFiring = 100;
        lockedBodyPart = "head";
        aimAssistChasingSpeed = 99999;

        // 初始化其他相关瞄准辅助设置
        aimAssistSensitivity = 60;
        autoLockTarget = 0;
        aimAssistAndWeaponRecoilCorrelation = 0.3;

        // 初始化不同武器类型的瞄准辅助加成
        weaponBonuses.rifleBonus = 15;
        weaponBonuses.sniperRifleBonus = 25;
        weaponBonuses.submachineGunBonus = 10;
        weaponBonuses.shotgunBonus = 8;

        // 初始化不同场景的瞄准辅助强度系数
        scenarioCoefficients.indoorBattle = 1.1;
        scenarioCoefficients.outdoorBattle = 0.9;
        scenarioCoefficients.longRangeShooting = 1.3;
        scenarioCoefficients.closeRangeCombat = 0.7;
    }

    // 打印设置函数
    void printSettings() const {
        std::cout << "Aim Assist General Switch: " << aimAssistGeneralSwitch << std::endl;
        std::cout << "Aim Assist Intensity When Not Firing: " << aimAssistIntensityWhenNotFiring << std::endl;
        std::cout << "Aim Assist Effective Distance: " << aimAssistEffectiveDistance << std::endl;
        std::cout << "Aim Assist Intensity When Firing: " << aimAssistIntensityWhenFiring << std::endl;
        std::cout << "Locked Body Part: " << lockedBodyPart << std::endl;
        std::cout << "Aim Assist Chasing Speed: " << aimAssistChasingSpeed << std::endl;
        std::cout << "Aim Assist Sensitivity: " << aimAssistSensitivity << std::endl;
        std::cout << "Auto-lock Target: " << autoLockTarget << std::endl;
        std::cout << "Aim Assist and Weapon Recoil Correlation: " << aimAssistAndWeaponRecoilCorrelation << std::endl;
        std::cout << "Rifle Aim Assist Bonus: " << weaponBonuses.rifleBonus << std::endl;
        std::cout << "Sniper Rifle Aim Assist Bonus: " << weaponBonuses.sniperRifleBonus << std::endl;
        std::cout << "Submachine Gun Aim Assist Bonus: " << weaponBonuses.submachineGunBonus << std::endl;
        std::cout << "Shotgun Aim Assist Bonus: " << weaponBonuses.shotgunBonus << std::endl;
        std::cout << "Indoor Battle Aim Assist Intensity Coefficient: " << scenarioCoefficients.indoorBattle << std::endl;
        std::cout << "Outdoor Battle Aim Assist Intensity Coefficient: " << scenarioCoefficients.outdoorBattle << std::endl;
        std::cout << "Long-range Shooting Aim Assist Intensity Coefficient: " << scenarioCoefficients.longRangeShooting << std::endl;
        std::cout << "Close-range Combat Aim Assist Intensity Coefficient: " << scenarioCoefficients.closeRangeCombat << std::endl;
    }
};

int main() {
    // 创建一个AimAssistSettings对象
    AimAssistSettings settings;

    // 打印设置
    settings.printSettings();

    return 0;
}