# HOI4 Roguelike v3.6.1 - threat-driven Player Only counterpower

rl_clear_counterpower_difficulty_flags = {
    clr_global_flag = rl_counterpower_none
    clr_global_flag = rl_counterpower_light
    clr_global_flag = rl_counterpower_normal
    clr_global_flag = rl_counterpower_strong
    clr_global_flag = rl_counterpower_world
}

rl_set_counterpower_none = {
    rl_clear_counterpower_difficulty_flags = yes
    set_global_flag = rl_counterpower_configured
    set_global_flag = rl_counterpower_none
}

rl_set_counterpower_light = {
    rl_clear_counterpower_difficulty_flags = yes
    set_global_flag = rl_counterpower_configured
    set_global_flag = rl_counterpower_light
}

rl_set_counterpower_normal = {
    rl_clear_counterpower_difficulty_flags = yes
    set_global_flag = rl_counterpower_configured
    set_global_flag = rl_counterpower_normal
}

rl_set_counterpower_strong = {
    rl_clear_counterpower_difficulty_flags = yes
    set_global_flag = rl_counterpower_configured
    set_global_flag = rl_counterpower_strong
}

rl_set_counterpower_world = {
    rl_clear_counterpower_difficulty_flags = yes
    set_global_flag = rl_counterpower_configured
    set_global_flag = rl_counterpower_world
}

rl_migrate_v36_counterpower = {
    if = {
        limit = { NOT = { has_global_flag = rl_counterpower_configured } }
        if = {
            limit = { has_global_flag = rl_mode_player_only }
            rl_set_counterpower_normal = yes
        }
        else = {
            rl_set_counterpower_none = yes
        }
    }
}

rl_reset_player_only_counterpower_variables = {
    set_variable = { rl_counter_mod_industrial_capacity_factory = 0 }
    set_variable = { rl_counter_mod_industrial_capacity_dockyard = 0 }
    set_variable = { rl_counter_mod_production_speed_buildings_factor = 0 }
    set_variable = { rl_counter_mod_production_factory_efficiency_gain_factor = 0 }
    set_variable = { rl_counter_mod_production_factory_max_efficiency_factor = 0 }
    set_variable = { rl_counter_mod_research_speed_factor = 0 }
    set_variable = { rl_counter_mod_army_attack_factor = 0 }
    set_variable = { rl_counter_mod_army_defence_factor = 0 }
    set_variable = { rl_counter_mod_army_org_factor = 0 }
    set_variable = { rl_counter_mod_army_speed_factor = 0 }
    set_variable = { rl_counter_mod_max_planning_factor = 0 }
    set_variable = { rl_counter_mod_planning_speed = 0 }
    set_variable = { rl_counter_mod_land_reinforce_rate = 0 }
    set_variable = { rl_counter_mod_training_time_army_factor = 0 }
    set_variable = { rl_counter_mod_air_attack_factor = 0 }
    set_variable = { rl_counter_mod_air_defence_factor = 0 }
    set_variable = { rl_counter_mod_air_mission_efficiency = 0 }
    set_variable = { rl_counter_mod_naval_damage_factor = 0 }
    set_variable = { rl_counter_mod_naval_defense_factor = 0 }
    set_variable = { rl_counter_mod_navy_org_factor = 0 }
    set_variable = { rl_counter_mod_supply_consumption_factor = 0 }
    set_variable = { rl_counter_mod_army_fuel_consumption_factor = 0 }
    set_variable = { rl_counter_mod_navy_fuel_consumption_factor = 0 }
    set_variable = { rl_counter_mod_air_fuel_consumption_factor = 0 }
    set_variable = { rl_counter_mod_stability_factor = 0 }
    set_variable = { rl_counter_mod_war_support_factor = 0 }
    set_variable = { rl_counter_mod_political_power_factor = 0 }
    set_variable = { rl_counter_mod_local_resources_factor = 0 }
    set_variable = { rl_counter_mod_fuel_gain_factor = 0 }
    set_variable = { rl_counter_mod_max_fuel_factor = 0 }
    set_variable = { rl_counter_mod_army_armor_attack_factor = 0 }
    set_variable = { rl_counter_mod_army_armor_defence_factor = 0 }
    set_variable = { rl_counter_mod_armor_factor = 0 }
    set_variable = { rl_counter_mod_air_agility_factor = 0 }
    set_variable = { rl_counter_mod_air_intercept_efficiency = 0 }
    set_variable = { rl_counter_mod_positioning = 0 }
    set_variable = { rl_counter_mod_screening_efficiency = 0 }
    set_variable = { rl_counter_mod_special_project_speed_factor = 0 }
}

rl_v36_calculate_threat_points = {
    set_variable = { rl_counter_threat_points = rl_common_count }
    set_variable = { rl_counter_threat_scratch = rl_rare_count }
    multiply_variable = { var = rl_counter_threat_scratch value = 2 }
    add_to_variable = { var = rl_counter_threat_points value = rl_counter_threat_scratch }
    set_variable = { rl_counter_threat_scratch = rl_epic_count }
    multiply_variable = { var = rl_counter_threat_scratch value = 4 }
    add_to_variable = { var = rl_counter_threat_points value = rl_counter_threat_scratch }
    set_variable = { rl_counter_threat_scratch = rl_legendary_count }
    multiply_variable = { var = rl_counter_threat_scratch value = 8 }
    add_to_variable = { var = rl_counter_threat_points value = rl_counter_threat_scratch }
    set_variable = { rl_counter_threat_scratch = rl_divine_count }
    multiply_variable = { var = rl_counter_threat_scratch value = 16 }
    add_to_variable = { var = rl_counter_threat_points value = rl_counter_threat_scratch }
    set_variable = { rl_counter_threat_scratch = 0 }
}

rl_v36_clear_escalation_flags = {
    clr_global_flag = rl_escalation_stage_1
    clr_global_flag = rl_escalation_stage_2
    clr_global_flag = rl_escalation_stage_3
    clr_global_flag = rl_escalation_stage_4
    clr_global_flag = rl_escalation_stage_5
}

rl_v36_clear_adaptive_flags = {
    clr_global_flag = rl_counter_adapt_industry_1
    clr_global_flag = rl_counter_adapt_industry_2
    clr_global_flag = rl_counter_adapt_industry_3
    clr_global_flag = rl_counter_adapt_army_1
    clr_global_flag = rl_counter_adapt_army_2
    clr_global_flag = rl_counter_adapt_army_3
    clr_global_flag = rl_counter_adapt_armor_1
    clr_global_flag = rl_counter_adapt_armor_2
    clr_global_flag = rl_counter_adapt_armor_3
    clr_global_flag = rl_counter_adapt_air_1
    clr_global_flag = rl_counter_adapt_air_2
    clr_global_flag = rl_counter_adapt_air_3
    clr_global_flag = rl_counter_adapt_navy_1
    clr_global_flag = rl_counter_adapt_navy_2
    clr_global_flag = rl_counter_adapt_navy_3
    clr_global_flag = rl_counter_adapt_research_1
    clr_global_flag = rl_counter_adapt_research_2
    clr_global_flag = rl_counter_adapt_research_3
}

# v3.8.0: adaptive profiles and stages are derived from the strongest human player (max over all humans),
# so in multiplayer the last player to pick no longer overwrites the global state.
rl_v36_update_adaptive_flags = {
    rl_v36_clear_adaptive_flags = yes
    if = { limit = { check_variable = { global.rl_cp_cat_industry > 19 } } set_global_flag = rl_counter_adapt_industry_3 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_industry > 9 } } set_global_flag = rl_counter_adapt_industry_2 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_industry > 4 } } set_global_flag = rl_counter_adapt_industry_1 }
    if = { limit = { check_variable = { global.rl_cp_cat_army > 19 } } set_global_flag = rl_counter_adapt_army_3 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_army > 9 } } set_global_flag = rl_counter_adapt_army_2 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_army > 4 } } set_global_flag = rl_counter_adapt_army_1 }
    if = { limit = { check_variable = { global.rl_cp_cat_armor > 19 } } set_global_flag = rl_counter_adapt_armor_3 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_armor > 9 } } set_global_flag = rl_counter_adapt_armor_2 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_armor > 4 } } set_global_flag = rl_counter_adapt_armor_1 }
    if = { limit = { check_variable = { global.rl_cp_cat_air > 19 } } set_global_flag = rl_counter_adapt_air_3 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_air > 9 } } set_global_flag = rl_counter_adapt_air_2 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_air > 4 } } set_global_flag = rl_counter_adapt_air_1 }
    if = { limit = { check_variable = { global.rl_cp_cat_navy > 19 } } set_global_flag = rl_counter_adapt_navy_3 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_navy > 9 } } set_global_flag = rl_counter_adapt_navy_2 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_navy > 4 } } set_global_flag = rl_counter_adapt_navy_1 }
    if = { limit = { check_variable = { global.rl_cp_cat_research > 19 } } set_global_flag = rl_counter_adapt_research_3 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_research > 9 } } set_global_flag = rl_counter_adapt_research_2 }
    else_if = { limit = { check_variable = { global.rl_cp_cat_research > 4 } } set_global_flag = rl_counter_adapt_research_1 }
}

rl_v36_update_escalation_stage = {
    rl_v36_clear_escalation_flags = yes
    if = { limit = { check_variable = { global.rl_cp_threat > 299 } } set_global_flag = rl_escalation_stage_5 set_variable = { global.rl_cp_stage = 5 } }
    else_if = { limit = { check_variable = { global.rl_cp_threat > 149 } } set_global_flag = rl_escalation_stage_4 set_variable = { global.rl_cp_stage = 4 } }
    else_if = { limit = { check_variable = { global.rl_cp_threat > 74 } } set_global_flag = rl_escalation_stage_3 set_variable = { global.rl_cp_stage = 3 } }
    else_if = { limit = { check_variable = { global.rl_cp_threat > 24 } } set_global_flag = rl_escalation_stage_2 set_variable = { global.rl_cp_stage = 2 } }
    else_if = { limit = { check_variable = { global.rl_cp_threat > 0 } } set_global_flag = rl_escalation_stage_1 set_variable = { global.rl_cp_stage = 1 } }
    else = { set_variable = { global.rl_cp_stage = 0 } }
}

rl_v38_calculate_counterpower_signature = {
    set_variable = { global.rl_cp_signature = 1 }
    if = { limit = { has_global_flag = rl_counterpower_light } add_to_variable = { global.rl_cp_signature = 1 } }
    else_if = { limit = { has_global_flag = rl_counterpower_normal } add_to_variable = { global.rl_cp_signature = 2 } }
    else_if = { limit = { has_global_flag = rl_counterpower_strong } add_to_variable = { global.rl_cp_signature = 3 } }
    else_if = { limit = { has_global_flag = rl_counterpower_world } add_to_variable = { global.rl_cp_signature = 4 } }
    set_temp_variable = { rl_cp_stage_part = global.rl_cp_stage }
    multiply_temp_variable = { rl_cp_stage_part = 5 }
    add_to_variable = { global.rl_cp_signature = rl_cp_stage_part }
    if = { limit = { has_global_flag = rl_counter_adapt_industry_1 } add_to_variable = { global.rl_cp_signature = 30 } }
    if = { limit = { has_global_flag = rl_counter_adapt_industry_2 } add_to_variable = { global.rl_cp_signature = 60 } }
    if = { limit = { has_global_flag = rl_counter_adapt_industry_3 } add_to_variable = { global.rl_cp_signature = 90 } }
    if = { limit = { has_global_flag = rl_counter_adapt_army_1 } add_to_variable = { global.rl_cp_signature = 120 } }
    if = { limit = { has_global_flag = rl_counter_adapt_army_2 } add_to_variable = { global.rl_cp_signature = 240 } }
    if = { limit = { has_global_flag = rl_counter_adapt_army_3 } add_to_variable = { global.rl_cp_signature = 360 } }
    if = { limit = { has_global_flag = rl_counter_adapt_armor_1 } add_to_variable = { global.rl_cp_signature = 480 } }
    if = { limit = { has_global_flag = rl_counter_adapt_armor_2 } add_to_variable = { global.rl_cp_signature = 960 } }
    if = { limit = { has_global_flag = rl_counter_adapt_armor_3 } add_to_variable = { global.rl_cp_signature = 1440 } }
    if = { limit = { has_global_flag = rl_counter_adapt_air_1 } add_to_variable = { global.rl_cp_signature = 1920 } }
    if = { limit = { has_global_flag = rl_counter_adapt_air_2 } add_to_variable = { global.rl_cp_signature = 3840 } }
    if = { limit = { has_global_flag = rl_counter_adapt_air_3 } add_to_variable = { global.rl_cp_signature = 5760 } }
    if = { limit = { has_global_flag = rl_counter_adapt_navy_1 } add_to_variable = { global.rl_cp_signature = 7680 } }
    if = { limit = { has_global_flag = rl_counter_adapt_navy_2 } add_to_variable = { global.rl_cp_signature = 15360 } }
    if = { limit = { has_global_flag = rl_counter_adapt_navy_3 } add_to_variable = { global.rl_cp_signature = 23040 } }
    if = { limit = { has_global_flag = rl_counter_adapt_research_1 } add_to_variable = { global.rl_cp_signature = 30720 } }
    if = { limit = { has_global_flag = rl_counter_adapt_research_2 } add_to_variable = { global.rl_cp_signature = 61440 } }
    if = { limit = { has_global_flag = rl_counter_adapt_research_3 } add_to_variable = { global.rl_cp_signature = 92160 } }
}

# Applies the current global counterpower to one AI country if it has not received this state yet.
rl_v38_apply_ai_counterpower_if_outdated = {
    if = {
        limit = {
            is_ai = yes
            has_global_flag = rl_mode_player_only
            NOT = { check_variable = { rl_cp_applied_signature = global.rl_cp_signature } }
        }
        rl_apply_player_only_ai_escalation = yes
        set_variable = { rl_cp_applied_signature = global.rl_cp_signature }
    }
}

rl_update_global_player_only_escalation = {
    if = {
        limit = { has_global_flag = rl_mode_player_only is_ai = no }
        rl_migrate_v36_counterpower = yes
        set_variable = { global.rl_cp_threat = 0 }
    set_variable = { global.rl_cp_cat_industry = 0 }
    set_variable = { global.rl_cp_cat_army = 0 }
    set_variable = { global.rl_cp_cat_armor = 0 }
    set_variable = { global.rl_cp_cat_air = 0 }
    set_variable = { global.rl_cp_cat_navy = 0 }
    set_variable = { global.rl_cp_cat_research = 0 }
        every_country = {
            limit = { is_ai = no }
            rl_v36_calculate_threat_points = yes
            if = { limit = { check_variable = { rl_counter_threat_points > global.rl_cp_threat } } set_variable = { global.rl_cp_threat = rl_counter_threat_points } }
            if = { limit = { check_variable = { rl_cat_industry > global.rl_cp_cat_industry } } set_variable = { global.rl_cp_cat_industry = rl_cat_industry } }
            if = { limit = { check_variable = { rl_cat_army > global.rl_cp_cat_army } } set_variable = { global.rl_cp_cat_army = rl_cat_army } }
            if = { limit = { check_variable = { rl_cat_armor > global.rl_cp_cat_armor } } set_variable = { global.rl_cp_cat_armor = rl_cat_armor } }
            if = { limit = { check_variable = { rl_cat_air > global.rl_cp_cat_air } } set_variable = { global.rl_cp_cat_air = rl_cat_air } }
            if = { limit = { check_variable = { rl_cat_navy > global.rl_cp_cat_navy } } set_variable = { global.rl_cp_cat_navy = rl_cat_navy } }
            if = { limit = { check_variable = { rl_cat_research > global.rl_cp_cat_research } } set_variable = { global.rl_cp_cat_research = rl_cat_research } }
        }
        if = {
            limit = { has_global_flag = rl_counterpower_none }
            rl_v36_clear_escalation_flags = yes
            rl_v36_clear_adaptive_flags = yes
            set_variable = { global.rl_cp_stage = 0 }
        }
        else = {
            rl_v36_update_escalation_stage = yes
            rl_v36_update_adaptive_flags = yes
        }
        every_country = {
            limit = { is_ai = no }
            if = {
                limit = { has_global_flag = rl_counterpower_none }
                set_variable = { rl_last_escalation_stage = 0 }
                if = { limit = { has_idea = rl_player_only_counterpower_indicator } remove_ideas = rl_player_only_counterpower_indicator }
            }
            else = {
                if = { limit = { NOT = { has_idea = rl_player_only_counterpower_indicator } } add_ideas = rl_player_only_counterpower_indicator }
                if = {
                    limit = {
                        check_variable = { global.rl_cp_stage > 0 }
                        NOT = { check_variable = { rl_last_escalation_stage = global.rl_cp_stage } }
                    }
                    country_event = { id = rl.40 hours = 2 }
                }
                set_variable = { rl_last_escalation_stage = global.rl_cp_stage }
                if = {
                    limit = { NOT = { has_country_flag = rl_counterpower_announced } }
                    set_country_flag = rl_counterpower_announced
                    country_event = { id = rl.41 hours = 3 }
                }
            }
        }
        # AI countries are only rebuilt when the global state actually changed
        rl_v38_calculate_counterpower_signature = yes
        if = {
            limit = { NOT = { check_variable = { global.rl_cp_last_signature = global.rl_cp_signature } } }
            set_variable = { global.rl_cp_last_signature = global.rl_cp_signature }
            every_country = {
                limit = { is_ai = yes }
                rl_v38_apply_ai_counterpower_if_outdated = yes
            }
        }
    }
}
rl_v36_set_stage_base_variables = {
    if = {
        limit = { has_global_flag = rl_escalation_stage_5 }
        set_variable = { rl_counter_mod_industrial_capacity_factory = 0.45 }
        set_variable = { rl_counter_mod_industrial_capacity_dockyard = 0.45 }
        set_variable = { rl_counter_mod_production_speed_buildings_factor = 0.45 }
        set_variable = { rl_counter_mod_production_factory_efficiency_gain_factor = 0.25 }
        set_variable = { rl_counter_mod_production_factory_max_efficiency_factor = 0.20 }
        set_variable = { rl_counter_mod_research_speed_factor = 0.20 }
        set_variable = { rl_counter_mod_army_attack_factor = 0.45 }
        set_variable = { rl_counter_mod_army_defence_factor = 0.45 }
        set_variable = { rl_counter_mod_army_org_factor = 0.20 }
        set_variable = { rl_counter_mod_army_speed_factor = 0.12 }
        set_variable = { rl_counter_mod_max_planning_factor = 0.25 }
        set_variable = { rl_counter_mod_planning_speed = 0.25 }
        set_variable = { rl_counter_mod_land_reinforce_rate = 0.05 }
        set_variable = { rl_counter_mod_training_time_army_factor = -0.20 }
        set_variable = { rl_counter_mod_air_attack_factor = 0.45 }
        set_variable = { rl_counter_mod_air_defence_factor = 0.45 }
        set_variable = { rl_counter_mod_air_mission_efficiency = 0.25 }
        set_variable = { rl_counter_mod_naval_damage_factor = 0.45 }
        set_variable = { rl_counter_mod_naval_defense_factor = 0.45 }
        set_variable = { rl_counter_mod_navy_org_factor = 0.20 }
        set_variable = { rl_counter_mod_supply_consumption_factor = -0.20 }
        set_variable = { rl_counter_mod_army_fuel_consumption_factor = -0.15 }
        set_variable = { rl_counter_mod_navy_fuel_consumption_factor = -0.15 }
        set_variable = { rl_counter_mod_air_fuel_consumption_factor = -0.15 }
        set_variable = { rl_counter_mod_stability_factor = 0.15 }
        set_variable = { rl_counter_mod_war_support_factor = 0.15 }
        set_variable = { rl_counter_mod_political_power_factor = 0.18 }
        set_variable = { rl_counter_mod_local_resources_factor = 0.40 }
        set_variable = { rl_counter_mod_fuel_gain_factor = 0.45 }
        set_variable = { rl_counter_mod_max_fuel_factor = 0.50 }
    }
    else_if = {
        limit = { has_global_flag = rl_escalation_stage_4 }
        set_variable = { rl_counter_mod_industrial_capacity_factory = 0.30 }
        set_variable = { rl_counter_mod_industrial_capacity_dockyard = 0.30 }
        set_variable = { rl_counter_mod_production_speed_buildings_factor = 0.30 }
        set_variable = { rl_counter_mod_production_factory_efficiency_gain_factor = 0.15 }
        set_variable = { rl_counter_mod_production_factory_max_efficiency_factor = 0.10 }
        set_variable = { rl_counter_mod_research_speed_factor = 0.15 }
        set_variable = { rl_counter_mod_army_attack_factor = 0.30 }
        set_variable = { rl_counter_mod_army_defence_factor = 0.30 }
        set_variable = { rl_counter_mod_army_org_factor = 0.15 }
        set_variable = { rl_counter_mod_army_speed_factor = 0.08 }
        set_variable = { rl_counter_mod_max_planning_factor = 0.18 }
        set_variable = { rl_counter_mod_land_reinforce_rate = 0.03 }
        set_variable = { rl_counter_mod_air_attack_factor = 0.30 }
        set_variable = { rl_counter_mod_air_defence_factor = 0.30 }
        set_variable = { rl_counter_mod_air_mission_efficiency = 0.15 }
        set_variable = { rl_counter_mod_naval_damage_factor = 0.30 }
        set_variable = { rl_counter_mod_naval_defense_factor = 0.30 }
        set_variable = { rl_counter_mod_navy_org_factor = 0.15 }
        set_variable = { rl_counter_mod_supply_consumption_factor = -0.15 }
        set_variable = { rl_counter_mod_army_fuel_consumption_factor = -0.10 }
        set_variable = { rl_counter_mod_stability_factor = 0.10 }
        set_variable = { rl_counter_mod_war_support_factor = 0.10 }
        set_variable = { rl_counter_mod_political_power_factor = 0.12 }
        set_variable = { rl_counter_mod_local_resources_factor = 0.25 }
        set_variable = { rl_counter_mod_fuel_gain_factor = 0.30 }
        set_variable = { rl_counter_mod_max_fuel_factor = 0.30 }
    }
    else_if = {
        limit = { has_global_flag = rl_escalation_stage_3 }
        set_variable = { rl_counter_mod_industrial_capacity_factory = 0.20 }
        set_variable = { rl_counter_mod_industrial_capacity_dockyard = 0.20 }
        set_variable = { rl_counter_mod_production_speed_buildings_factor = 0.20 }
        set_variable = { rl_counter_mod_production_factory_efficiency_gain_factor = 0.10 }
        set_variable = { rl_counter_mod_research_speed_factor = 0.10 }
        set_variable = { rl_counter_mod_army_attack_factor = 0.20 }
        set_variable = { rl_counter_mod_army_defence_factor = 0.20 }
        set_variable = { rl_counter_mod_army_org_factor = 0.10 }
        set_variable = { rl_counter_mod_army_speed_factor = 0.05 }
        set_variable = { rl_counter_mod_max_planning_factor = 0.10 }
        set_variable = { rl_counter_mod_air_attack_factor = 0.20 }
        set_variable = { rl_counter_mod_air_defence_factor = 0.20 }
        set_variable = { rl_counter_mod_air_mission_efficiency = 0.10 }
        set_variable = { rl_counter_mod_naval_damage_factor = 0.20 }
        set_variable = { rl_counter_mod_naval_defense_factor = 0.20 }
        set_variable = { rl_counter_mod_navy_org_factor = 0.10 }
        set_variable = { rl_counter_mod_supply_consumption_factor = -0.10 }
        set_variable = { rl_counter_mod_political_power_factor = 0.08 }
        set_variable = { rl_counter_mod_local_resources_factor = 0.15 }
        set_variable = { rl_counter_mod_fuel_gain_factor = 0.20 }
        set_variable = { rl_counter_mod_max_fuel_factor = 0.20 }
    }
    else_if = {
        limit = { has_global_flag = rl_escalation_stage_2 }
        set_variable = { rl_counter_mod_industrial_capacity_factory = 0.10 }
        set_variable = { rl_counter_mod_industrial_capacity_dockyard = 0.10 }
        set_variable = { rl_counter_mod_production_speed_buildings_factor = 0.10 }
        set_variable = { rl_counter_mod_production_factory_efficiency_gain_factor = 0.05 }
        set_variable = { rl_counter_mod_research_speed_factor = 0.07 }
        set_variable = { rl_counter_mod_army_attack_factor = 0.10 }
        set_variable = { rl_counter_mod_army_defence_factor = 0.10 }
        set_variable = { rl_counter_mod_army_org_factor = 0.05 }
        set_variable = { rl_counter_mod_air_attack_factor = 0.10 }
        set_variable = { rl_counter_mod_air_defence_factor = 0.10 }
        set_variable = { rl_counter_mod_naval_damage_factor = 0.10 }
        set_variable = { rl_counter_mod_naval_defense_factor = 0.10 }
        set_variable = { rl_counter_mod_supply_consumption_factor = -0.05 }
        set_variable = { rl_counter_mod_political_power_factor = 0.05 }
        set_variable = { rl_counter_mod_local_resources_factor = 0.10 }
        set_variable = { rl_counter_mod_fuel_gain_factor = 0.10 }
        set_variable = { rl_counter_mod_max_fuel_factor = 0.10 }
    }
    else_if = {
        limit = { has_global_flag = rl_escalation_stage_1 }
        set_variable = { rl_counter_mod_industrial_capacity_factory = 0.05 }
        set_variable = { rl_counter_mod_industrial_capacity_dockyard = 0.05 }
        set_variable = { rl_counter_mod_production_speed_buildings_factor = 0.05 }
        set_variable = { rl_counter_mod_research_speed_factor = 0.03 }
        set_variable = { rl_counter_mod_army_attack_factor = 0.05 }
        set_variable = { rl_counter_mod_army_defence_factor = 0.05 }
        set_variable = { rl_counter_mod_air_attack_factor = 0.05 }
        set_variable = { rl_counter_mod_air_defence_factor = 0.05 }
        set_variable = { rl_counter_mod_naval_damage_factor = 0.05 }
        set_variable = { rl_counter_mod_naval_defense_factor = 0.05 }
        set_variable = { rl_counter_mod_political_power_factor = 0.03 }
        set_variable = { rl_counter_mod_local_resources_factor = 0.05 }
        set_variable = { rl_counter_mod_fuel_gain_factor = 0.05 }
        set_variable = { rl_counter_mod_max_fuel_factor = 0.05 }
    }
}

rl_v36_add_adaptive_variables = {
    if = {
        limit = { has_global_flag = rl_counter_adapt_industry_3 }
        add_to_variable = { var = rl_counter_mod_industrial_capacity_factory value = 0.12 }
        add_to_variable = { var = rl_counter_mod_industrial_capacity_dockyard value = 0.12 }
        add_to_variable = { var = rl_counter_mod_production_speed_buildings_factor value = 0.12 }
        add_to_variable = { var = rl_counter_mod_production_factory_efficiency_gain_factor value = 0.08 }
        add_to_variable = { var = rl_counter_mod_local_resources_factor value = 0.12 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_industry_2 }
        add_to_variable = { var = rl_counter_mod_industrial_capacity_factory value = 0.06 }
        add_to_variable = { var = rl_counter_mod_industrial_capacity_dockyard value = 0.06 }
        add_to_variable = { var = rl_counter_mod_production_speed_buildings_factor value = 0.06 }
        add_to_variable = { var = rl_counter_mod_production_factory_efficiency_gain_factor value = 0.04 }
        add_to_variable = { var = rl_counter_mod_local_resources_factor value = 0.06 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_industry_1 }
        add_to_variable = { var = rl_counter_mod_industrial_capacity_factory value = 0.03 }
        add_to_variable = { var = rl_counter_mod_industrial_capacity_dockyard value = 0.03 }
        add_to_variable = { var = rl_counter_mod_production_speed_buildings_factor value = 0.03 }
        add_to_variable = { var = rl_counter_mod_production_factory_efficiency_gain_factor value = 0.02 }
        add_to_variable = { var = rl_counter_mod_local_resources_factor value = 0.03 }
    }
    if = {
        limit = { has_global_flag = rl_counter_adapt_army_3 }
        add_to_variable = { var = rl_counter_mod_army_defence_factor value = 0.15 }
        add_to_variable = { var = rl_counter_mod_army_org_factor value = 0.10 }
        add_to_variable = { var = rl_counter_mod_max_planning_factor value = 0.10 }
        add_to_variable = { var = rl_counter_mod_supply_consumption_factor value = -0.08 }
        add_to_variable = { var = rl_counter_mod_land_reinforce_rate value = 0.03 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_army_2 }
        add_to_variable = { var = rl_counter_mod_army_defence_factor value = 0.08 }
        add_to_variable = { var = rl_counter_mod_army_org_factor value = 0.06 }
        add_to_variable = { var = rl_counter_mod_max_planning_factor value = 0.06 }
        add_to_variable = { var = rl_counter_mod_supply_consumption_factor value = -0.04 }
        add_to_variable = { var = rl_counter_mod_land_reinforce_rate value = 0.02 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_army_1 }
        add_to_variable = { var = rl_counter_mod_army_defence_factor value = 0.04 }
        add_to_variable = { var = rl_counter_mod_army_org_factor value = 0.03 }
        add_to_variable = { var = rl_counter_mod_max_planning_factor value = 0.03 }
        add_to_variable = { var = rl_counter_mod_supply_consumption_factor value = -0.02 }
        add_to_variable = { var = rl_counter_mod_land_reinforce_rate value = 0.01 }
    }
    if = {
        limit = { has_global_flag = rl_counter_adapt_armor_3 }
        add_to_variable = { var = rl_counter_mod_army_armor_attack_factor value = 0.15 }
        add_to_variable = { var = rl_counter_mod_army_armor_defence_factor value = 0.15 }
        add_to_variable = { var = rl_counter_mod_armor_factor value = 0.10 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_armor_2 }
        add_to_variable = { var = rl_counter_mod_army_armor_attack_factor value = 0.08 }
        add_to_variable = { var = rl_counter_mod_army_armor_defence_factor value = 0.08 }
        add_to_variable = { var = rl_counter_mod_armor_factor value = 0.06 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_armor_1 }
        add_to_variable = { var = rl_counter_mod_army_armor_attack_factor value = 0.04 }
        add_to_variable = { var = rl_counter_mod_army_armor_defence_factor value = 0.04 }
        add_to_variable = { var = rl_counter_mod_armor_factor value = 0.03 }
    }
    if = {
        limit = { has_global_flag = rl_counter_adapt_air_3 }
        add_to_variable = { var = rl_counter_mod_air_defence_factor value = 0.20 }
        add_to_variable = { var = rl_counter_mod_air_agility_factor value = 0.15 }
        add_to_variable = { var = rl_counter_mod_air_mission_efficiency value = 0.10 }
        add_to_variable = { var = rl_counter_mod_air_intercept_efficiency value = 0.10 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_air_2 }
        add_to_variable = { var = rl_counter_mod_air_defence_factor value = 0.10 }
        add_to_variable = { var = rl_counter_mod_air_agility_factor value = 0.08 }
        add_to_variable = { var = rl_counter_mod_air_mission_efficiency value = 0.06 }
        add_to_variable = { var = rl_counter_mod_air_intercept_efficiency value = 0.06 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_air_1 }
        add_to_variable = { var = rl_counter_mod_air_defence_factor value = 0.05 }
        add_to_variable = { var = rl_counter_mod_air_agility_factor value = 0.04 }
        add_to_variable = { var = rl_counter_mod_air_mission_efficiency value = 0.03 }
        add_to_variable = { var = rl_counter_mod_air_intercept_efficiency value = 0.03 }
    }
    if = {
        limit = { has_global_flag = rl_counter_adapt_navy_3 }
        add_to_variable = { var = rl_counter_mod_naval_defense_factor value = 0.20 }
        add_to_variable = { var = rl_counter_mod_navy_org_factor value = 0.10 }
        add_to_variable = { var = rl_counter_mod_positioning value = 0.10 }
        add_to_variable = { var = rl_counter_mod_screening_efficiency value = 0.10 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_navy_2 }
        add_to_variable = { var = rl_counter_mod_naval_defense_factor value = 0.10 }
        add_to_variable = { var = rl_counter_mod_navy_org_factor value = 0.06 }
        add_to_variable = { var = rl_counter_mod_positioning value = 0.06 }
        add_to_variable = { var = rl_counter_mod_screening_efficiency value = 0.06 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_navy_1 }
        add_to_variable = { var = rl_counter_mod_naval_defense_factor value = 0.05 }
        add_to_variable = { var = rl_counter_mod_navy_org_factor value = 0.03 }
        add_to_variable = { var = rl_counter_mod_positioning value = 0.03 }
        add_to_variable = { var = rl_counter_mod_screening_efficiency value = 0.03 }
    }
    if = {
        limit = { has_global_flag = rl_counter_adapt_research_3 }
        add_to_variable = { var = rl_counter_mod_research_speed_factor value = 0.10 }
        add_to_variable = { var = rl_counter_mod_special_project_speed_factor value = 0.10 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_research_2 }
        add_to_variable = { var = rl_counter_mod_research_speed_factor value = 0.06 }
        add_to_variable = { var = rl_counter_mod_special_project_speed_factor value = 0.06 }
    }
    else_if = {
        limit = { has_global_flag = rl_counter_adapt_research_1 }
        add_to_variable = { var = rl_counter_mod_research_speed_factor value = 0.03 }
        add_to_variable = { var = rl_counter_mod_special_project_speed_factor value = 0.03 }
    }
}

rl_v36_scale_counterpower_variables = {
    if = { limit = { has_global_flag = rl_counterpower_light } set_variable = { rl_counter_scale = 0.5 } }
    else_if = { limit = { has_global_flag = rl_counterpower_strong } set_variable = { rl_counter_scale = 1.5 } }
    else_if = { limit = { has_global_flag = rl_counterpower_world } set_variable = { rl_counter_scale = 2 } }
    else = { set_variable = { rl_counter_scale = 1 } }
    multiply_variable = { rl_counter_mod_industrial_capacity_factory = rl_counter_scale }
    multiply_variable = { rl_counter_mod_industrial_capacity_dockyard = rl_counter_scale }
    multiply_variable = { rl_counter_mod_production_speed_buildings_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_production_factory_efficiency_gain_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_production_factory_max_efficiency_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_research_speed_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_attack_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_defence_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_org_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_speed_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_max_planning_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_planning_speed = rl_counter_scale }
    multiply_variable = { rl_counter_mod_land_reinforce_rate = rl_counter_scale }
    multiply_variable = { rl_counter_mod_training_time_army_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_air_attack_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_air_defence_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_air_mission_efficiency = rl_counter_scale }
    multiply_variable = { rl_counter_mod_naval_damage_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_naval_defense_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_navy_org_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_supply_consumption_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_fuel_consumption_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_navy_fuel_consumption_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_air_fuel_consumption_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_stability_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_war_support_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_political_power_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_local_resources_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_fuel_gain_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_max_fuel_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_armor_attack_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_army_armor_defence_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_armor_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_air_agility_factor = rl_counter_scale }
    multiply_variable = { rl_counter_mod_air_intercept_efficiency = rl_counter_scale }
    multiply_variable = { rl_counter_mod_positioning = rl_counter_scale }
    multiply_variable = { rl_counter_mod_screening_efficiency = rl_counter_scale }
    multiply_variable = { rl_counter_mod_special_project_speed_factor = rl_counter_scale }
}

rl_v36_remove_counterpower_hidden_ideas = {
    remove_ideas = rl_counter_manpower_l_1
    remove_ideas = rl_counter_manpower_l_2
    remove_ideas = rl_counter_manpower_l_3
    remove_ideas = rl_counter_manpower_l_4
    remove_ideas = rl_counter_manpower_l_5
    remove_ideas = rl_counter_manpower_n_1
    remove_ideas = rl_counter_manpower_n_2
    remove_ideas = rl_counter_manpower_n_3
    remove_ideas = rl_counter_manpower_n_4
    remove_ideas = rl_counter_manpower_n_5
    remove_ideas = rl_counter_manpower_s_1
    remove_ideas = rl_counter_manpower_s_2
    remove_ideas = rl_counter_manpower_s_3
    remove_ideas = rl_counter_manpower_s_4
    remove_ideas = rl_counter_manpower_s_5
    remove_ideas = rl_counter_manpower_w_1
    remove_ideas = rl_counter_manpower_w_2
    remove_ideas = rl_counter_manpower_w_3
    remove_ideas = rl_counter_manpower_w_4
    remove_ideas = rl_counter_manpower_w_5
    remove_ideas = rl_counter_armor_l_1
    remove_ideas = rl_counter_armor_l_2
    remove_ideas = rl_counter_armor_l_3
    remove_ideas = rl_counter_armor_n_1
    remove_ideas = rl_counter_armor_n_2
    remove_ideas = rl_counter_armor_n_3
    remove_ideas = rl_counter_armor_s_1
    remove_ideas = rl_counter_armor_s_2
    remove_ideas = rl_counter_armor_s_3
    remove_ideas = rl_counter_armor_w_1
    remove_ideas = rl_counter_armor_w_2
    remove_ideas = rl_counter_armor_w_3
}

rl_v36_apply_manpower_idea = {
    if = {
        limit = { has_global_flag = rl_counterpower_light }
        if = { limit = { has_global_flag = rl_escalation_stage_5 } add_ideas = rl_counter_manpower_l_5 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_4 } add_ideas = rl_counter_manpower_l_4 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_3 } add_ideas = rl_counter_manpower_l_3 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_2 } add_ideas = rl_counter_manpower_l_2 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_1 } add_ideas = rl_counter_manpower_l_1 }
    }
    else_if = {
        limit = { has_global_flag = rl_counterpower_normal }
        if = { limit = { has_global_flag = rl_escalation_stage_5 } add_ideas = rl_counter_manpower_n_5 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_4 } add_ideas = rl_counter_manpower_n_4 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_3 } add_ideas = rl_counter_manpower_n_3 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_2 } add_ideas = rl_counter_manpower_n_2 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_1 } add_ideas = rl_counter_manpower_n_1 }
    }
    else_if = {
        limit = { has_global_flag = rl_counterpower_strong }
        if = { limit = { has_global_flag = rl_escalation_stage_5 } add_ideas = rl_counter_manpower_s_5 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_4 } add_ideas = rl_counter_manpower_s_4 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_3 } add_ideas = rl_counter_manpower_s_3 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_2 } add_ideas = rl_counter_manpower_s_2 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_1 } add_ideas = rl_counter_manpower_s_1 }
    }
    else_if = {
        limit = { has_global_flag = rl_counterpower_world }
        if = { limit = { has_global_flag = rl_escalation_stage_5 } add_ideas = rl_counter_manpower_w_5 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_4 } add_ideas = rl_counter_manpower_w_4 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_3 } add_ideas = rl_counter_manpower_w_3 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_2 } add_ideas = rl_counter_manpower_w_2 }
        else_if = { limit = { has_global_flag = rl_escalation_stage_1 } add_ideas = rl_counter_manpower_w_1 }
    }
}

rl_v36_apply_armor_idea = {
    if = {
        limit = { has_global_flag = rl_counterpower_light }
        if = { limit = { has_global_flag = rl_counter_adapt_armor_3 } add_ideas = rl_counter_armor_l_3 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_2 } add_ideas = rl_counter_armor_l_2 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_1 } add_ideas = rl_counter_armor_l_1 }
    }
    else_if = {
        limit = { has_global_flag = rl_counterpower_normal }
        if = { limit = { has_global_flag = rl_counter_adapt_armor_3 } add_ideas = rl_counter_armor_n_3 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_2 } add_ideas = rl_counter_armor_n_2 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_1 } add_ideas = rl_counter_armor_n_1 }
    }
    else_if = {
        limit = { has_global_flag = rl_counterpower_strong }
        if = { limit = { has_global_flag = rl_counter_adapt_armor_3 } add_ideas = rl_counter_armor_s_3 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_2 } add_ideas = rl_counter_armor_s_2 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_1 } add_ideas = rl_counter_armor_s_1 }
    }
    else_if = {
        limit = { has_global_flag = rl_counterpower_world }
        if = { limit = { has_global_flag = rl_counter_adapt_armor_3 } add_ideas = rl_counter_armor_w_3 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_2 } add_ideas = rl_counter_armor_w_2 }
        else_if = { limit = { has_global_flag = rl_counter_adapt_armor_1 } add_ideas = rl_counter_armor_w_1 }
    }
}

rl_apply_player_only_ai_escalation = {
    # v3.8.3: read the other training time sources before the counterpower variables are reset
    rl_calc_training_time_other = yes
    rl_remove_all_escalation_ideas = yes
    rl_v36_remove_counterpower_hidden_ideas = yes
    rl_reset_player_only_counterpower_variables = yes
    if = {
        limit = {
            has_global_flag = rl_mode_player_only
            is_ai = yes
            NOT = { has_global_flag = rl_counterpower_none }
            OR = {
                has_global_flag = rl_escalation_stage_1
                has_global_flag = rl_escalation_stage_2
                has_global_flag = rl_escalation_stage_3
                has_global_flag = rl_escalation_stage_4
                has_global_flag = rl_escalation_stage_5
            }
        }
        rl_v36_set_stage_base_variables = yes
        rl_v36_add_adaptive_variables = yes
        rl_v36_scale_counterpower_variables = yes
        rl_v36_apply_manpower_idea = yes
        rl_v36_apply_armor_idea = yes
        if = { limit = { NOT = { has_dynamic_modifier = rl_player_only_counterpower } } add_dynamic_modifier = { modifier = rl_player_only_counterpower } }
        # v3.8.3: keep the uncapped value for the weekly check, then cap the total training time at -99 %
        set_variable = { rl_counter_raw_training_time_army_factor = rl_counter_mod_training_time_army_factor }
        set_country_flag = rl_v383_counter_tt_tracked
        rl_apply_training_time_total_cap = yes
        force_update_dynamic_modifier = yes
        set_country_flag = rl_counterpower_applied
    }
    else = {
        if = { limit = { has_dynamic_modifier = rl_player_only_counterpower } remove_dynamic_modifier = { modifier = rl_player_only_counterpower } }
        clr_country_flag = rl_counterpower_applied
    }
}

rl_bootstrap_player_only_counterpower = {
    rl_migrate_v36_counterpower = yes
    if = {
        limit = { has_global_flag = rl_mode_player_only is_ai = no }
        rl_update_global_player_only_escalation = yes
    }
}
