# Author(s): Kalkalash, AngriestBird, Droid NATO_decisions = { # NATO - Join F35 Program NATO_ask_to_join_f35_program = { allowed = { NOT = { original_tag = USA } } icon = GFX_decision_nato_f35_expansion_button cost = 50 days_remove = 30 days_re_enable = 270 visible = { NOT = { has_country_flag = F35_blacklist } has_idea = Major_Non_NATO_Ally USA = { OR = { has_country_flag = USA_open_f35_program_nato has_country_flag = USA_open_f35_program_world } } country_exists = USA USA = { NOT = { has_country_flag = collapsed_nation } all_allied_country = { NOT = { has_war_with = ROOT } } } NOT = { OR = { has_country_flag = USA_f35_legacy_members has_country_flag = USA_f35_program_member_new } } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision remove NATO_ask_to_join_f35_program" USA = { country_event = usa.89 } } ai_will_do = { base = 25 } } # Leave NATO leave_NATO = { icon = GFX_decision_generic_leave_nato visible = { has_idea = NATO_member } cost = 100 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision leave_NATO" NATO_leave = yes } ai_will_do = { base = 0 #By default a country will leave if not Western modifier = { add = 1000 NOT = { has_government = democratic } #Countries with special AI NOT = { original_tag = TUR } NOT = { original_tag = EST } NOT = { original_tag = LAT } NOT = { original_tag = LIT } NOT = { original_tag = HUN } NOT = { original_tag = NRY } NOT = { original_tag = GER } NOT = { original_tag = GRE } NOT = { original_tag = ITA } NOT = { original_tag = DEN } NOT = { original_tag = CAN } NOT = { original_tag = SPR } } #Turkey will stay in NATO if Western or if led by AKP modifier = { add = 1000 original_tag = TUR OR = { has_government = nationalist has_government = communism has_government = fascism AND = { has_government = neutrality NOT = { check_variable = { ruling_party = 12 } } NOT = { has_country_leader = { name = "Recep Tayyip Erdoğan" ruling_only = yes } } } } } modifier = { factor = 0 original_tag = TUR is_historical_focus_on = yes NOT = { OR = { has_government = nationalist has_government = fascism has_government = communism } } } # Baltic countries only leave if Emerging or Nationalistic modifier = { add = 1000 OR = { original_tag = EST original_tag = LAT original_tag = LIT } OR = { has_government = communism has_government = fascism } } # Leaves only if not Western or Non-Aligned modifier = { add = 1000 OR = { original_tag = HUN original_tag = NRY original_tag = EST original_tag = LAT original_tag = LIT original_tag = GER original_tag = CAN original_tag = ITA } NOT = { has_government = democratic } NOT = { has_government = neutrality } } #Greece only leaves if not Western or Communist modifier = { add = 1000 original_tag = GRE NOT = { has_government = democratic } NOT = { has_government = communism } } # Denmark should leave if they're not RWP, Western or Neutrality modifier = { add = 1000 original_tag = DEN NOT = { has_government = neutrality } NOT = { has_government = democratic } has_government = nationalist check_variable = { ruling_party = 20 } } # Spain will leave if the Unidas Podemos is in the elections and nationalist not vox modifier = { add = 1000 original_tag = SPR OR = { AND = { has_government = nationalist NOT = { check_variable = { ruling_party = 20 } } } has_government = communism has_government = fascism AND = { has_government = neutrality check_variable = { ruling_party = 18 } } } } modifier = { factor = 0 is_historical_focus_on = yes OR = { original_tag = LAT original_tag = LIT original_tag = EST original_tag = ROM original_tag = SLO original_tag = SLV original_tag = BUL original_tag = ALB original_tag = CRO original_tag = MNT original_tag = FYR } NOT = { has_government = nationalist } NOT = { has_government = fascism } } modifier = { factor = 0 original_tag = POL has_government = nationalist has_global_flag = POL_KORWIN_COMMONWEALTH_FOCUS_PATH } modifier = { factor = 0 original_tag = ITA OR = { AND = { has_government = nationalist nationalist_right_wing_populists_are_in_power = yes is_historical_focus_on = yes } AND = { has_government = communism is_historical_focus_on = yes } } } modifier = { factor = 0 original_tag = CZE has_government = nationalist nationalist_military_junta_are_in_power = yes is_historical_focus_on = yes } } } # Show Non-Ratified Countries show_non_ratified_countries = { icon = GFX_decision_generic_join_nato visible = { is_ai = no has_country_flag = NATO_Accession_Voting } available = { hidden_trigger = { always = no } } highlight_states = { highlight_states_trigger = { CONTROLLER = { has_idea = NATO_member NOT = { has_country_flag = NATO_Ratified_@ROOT } } } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision show_non_ratified_countries" for_each_scope_loop = { array = global.nato_members tooltip = TT_ALL_NATO_MEMBER_NATIONS_GAIN if = { limit = { NOT = { has_country_flag = NATO_Ratified_@ROOT } } set_temp_variable = { selected_tag = THIS.id } TAG_get_name_with_flag = yes } } } } # Joining NATO become_NATO_aspirant = { allowed = { NOT = { original_tag = SOV } } icon = GFX_decision_generic_join_nato available = { has_government = democratic has_elections = yes if = { limit = { original_tag = SWI } NOT = { OR = { has_idea = SWI_swiss_neutrality has_idea = SWI_swiss_neutrality2 } } } } visible = { is_subject = no can_join_NATO = yes NOT = { has_idea = NATO_member } NOT = { has_country_flag = NATO_Aspirant } NOT = { has_country_flag = collapsed_nation } NOT = { has_country_flag = FRA_left_nato_permanently } } cost = 150 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision become_NATO_aspirant" for_each_scope_loop = { array = global.nato_members tooltip = TT_ALL_NATO_MEMBER_NATIONS_GAIN if = { limit = { NOT = { tag = ROOT } } add_opinion_modifier = { target = PREV modifier = NATO_aspirant } reverse_add_opinion_modifier = { target = PREV modifier = NATO_aspirant } country_event = NATO.7 } } set_country_flag = NATO_Aspirant update_nato_dirty_variable = yes } ai_will_do = { # Base 0: a country only reaches for NATO when it has a reason to. Reasons are # additive (Western pull, a dangerous neighbourhood, the historical timeline), # so peaceful uncourted neutrals stay out instead of flooding in ahistorically. base = 0 # --- Western pull --- # Courted by a NATO heavyweight (ahistorical driver; historical play leans on the cohorts below). modifier = { add = 20 is_historical_focus_on = no OR = { AND = { has_opinion = { target = USA value > 100 } USA = { has_idea = NATO_member } } AND = { has_opinion = { target = FRA value > 100 } FRA = { has_idea = NATO_member } } AND = { has_opinion = { target = GER value > 100 } GER = { has_idea = NATO_member } } AND = { has_opinion = { target = ENG value > 100 } ENG = { has_idea = NATO_member } } AND = { has_opinion = { target = SPR value > 100 } SPR = { has_idea = NATO_member } } AND = { has_opinion = { target = ITA value > 100 } ITA = { has_idea = NATO_member } } } } # NATO already dominates our influence. modifier = { add = 20 var:influence_array^0 = { has_idea = NATO_member } } modifier = { add = 15 var:influence_array^1 = { has_idea = NATO_member } } modifier = { add = 10 var:influence_array^2 = { has_idea = NATO_member } } # --- Aggressive neighbourhood --- modifier = { add = 20 any_neighbor_country = { has_war = yes } } modifier = { add = 20 any_neighbor_country = { OR = { has_government = nationalist has_government = communism has_government = fascism } } } # Russia on the warpath against a nearby state. modifier = { add = 50 SOV = { NOT = { has_government = democratic } OR = { has_war_with = UKR has_war_with = FIN has_war_with = LIT has_war_with = LAT has_war_with = EST has_war_with = GEO has_war_with = BLR has_war_with = ABK has_war_with = SOO } } } # --- Historical accession cohorts (respect the real timeline) --- modifier = { add = 100 OR = { original_tag = LAT original_tag = LIT original_tag = EST original_tag = ROM original_tag = SLO original_tag = SLV original_tag = BUL } OR = { has_government = democratic has_government = neutrality } OR = { AND = { date > 2003.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } modifier = { add = 100 OR = { original_tag = ALB original_tag = CRO } OR = { has_government = democratic has_government = neutrality } OR = { AND = { date > 2008.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } modifier = { add = 100 original_tag = MNT OR = { has_government = democratic has_government = neutrality } OR = { AND = { date > 2016.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } modifier = { add = 100 original_tag = FYR OR = { has_government = democratic has_government = neutrality } OR = { AND = { date > 2018.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } modifier = { add = 100 OR = { original_tag = SWE original_tag = FIN } OR = { AND = { date > 2019.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 10 } SOV = { has_war_with = UKR } } } # --- Difficulty nudge --- modifier = { add = 10 difficulty > 2 } modifier = { add = 10 difficulty > 3 } # --- Modulators --- # No drift toward NATO in the opening years (stops day-one joins like Cyprus). modifier = { factor = 0 date < 2002.1.1 } modifier = { factor = 1.5 threat > 0.30 } modifier = { factor = 0.5 threat < 0.10 } # Microstates and non-democracies stay out. modifier = { factor = 0 OR = { original_tag = ADO original_tag = LIC original_tag = MNC original_tag = HLS original_tag = MLT has_government = nationalist has_government = fascism } } modifier = { factor = 0 original_tag = FRA OR = { has_completed_focus = FRA_leave_nato has_completed_focus = FRA_hostile_nato_comm has_completed_focus = FRA_leave_nato_PCF has_completed_focus = FRA_question_eu has_completed_focus = FRA_no_more_eu } } } } finish_NATO_membership_action_plan = { icon = GFX_decision_generic_join_nato available = { is_in_faction = no has_government = democratic has_elections = yes has_added_tension_amount < 5 custom_trigger_tooltip = { tooltip = TT_NO_MILITARY_INTERNAL_FACTION NOT = { has_idea = the_military } } custom_trigger_tooltip = { tooltip = TT_AT_LEAST_SMALL_MILITARY_SPENDING NOT = { has_idea = defence_00 } NOT = { has_idea = defence_01 } } custom_trigger_tooltip = { tooltip = TT_AT_LEAST_BASIC_POLICE NOT = { has_idea = police_01 } } custom_trigger_tooltip = { tooltip = TT_OKAY_CORRUPTION NOT = { OR = { has_idea = corruption_level_10 has_idea = corruption_level_09 has_idea = corruption_level_08 has_idea = corruption_level_07 has_idea = corruption_level_06 } } } } visible = { NOT = { has_idea = NATO_member } has_country_flag = NATO_Aspirant NOT = { has_country_flag = NATO_Accession_Voting } } cost = 100 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision finish_NATO_membership_action_plan" set_country_flag = NATO_Accession_Voting add_to_array = { global.NATO_Accession_Candidates = THIS } NATO_auto_ratify_accession = yes # Refresh the ratification GUI so members see the new candidate without reopening the tab. update_nato_dirty_variable = yes } ai_will_do = { # Already an aspirant, so commit to finishing the action plan reliably. base = 20 modifier = { add = 30 OR = { AND = { has_opinion = { target = USA value > 100 } USA = { has_idea = NATO_member } } AND = { has_opinion = { target = FRA value > 100 } FRA = { has_idea = NATO_member } } AND = { has_opinion = { target = GER value > 100 } GER = { has_idea = NATO_member } } AND = { has_opinion = { target = ENG value > 100 } ENG = { has_idea = NATO_member } } } } modifier = { add = 100 is_historical_focus_on = yes OR = { original_tag = LAT original_tag = LIT original_tag = EST original_tag = ROM original_tag = SLO original_tag = SLV original_tag = BUL original_tag = ALB original_tag = CRO original_tag = MNT original_tag = FYR original_tag = FIN original_tag = SWE } } # Hold off in the opening years. modifier = { factor = 0 date < 2002.1.1 } } } ratify_country_accession = { icon = GFX_decision_generic_join_nato target_array = global.NATO_Accession_Candidates target_root_trigger = { has_idea = NATO_member } target_trigger = { FROM = { has_country_flag = NATO_Accession_Voting } NOT = { has_country_flag = NATO_Ratified_@FROM } } cost = 20 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision ratify_country_accession target: [From.GetName]" hidden_effect = { set_country_flag = NATO_Ratified_@FROM } update_nato_dirty_variable = yes } ai_will_do = { base = 500 modifier = { factor = 2 SOV = { has_added_tension_amount > 5 } } modifier = { factor = 2 SOV = { has_added_tension_amount > 10 } } modifier = { factor = 2 SOV = { has_added_tension_amount > 15 } } modifier = { add = 100 FROM = { has_idea = EU_member } has_idea = EU_member } modifier = { add = 150 FROM = { OR = { var:influence_array^0 = { has_idea = NATO_member } var:influence_array^1 = { has_idea = NATO_member } var:influence_array^2 = { has_idea = NATO_member } } } } modifier = { add = 100 FROM = { any_neighbor_country = { OR = { has_government = nationalist has_government = communism has_government = fascism } } } } modifier = { add = 100 has_opinion = { target = FROM value > 49 } } # Wave the historical cohort through quickly. modifier = { add = 500 is_historical_focus_on = yes FROM = { OR = { original_tag = LAT original_tag = LIT original_tag = EST original_tag = ROM original_tag = SLO original_tag = SLV original_tag = BUL original_tag = ALB original_tag = CRO original_tag = MNT original_tag = FYR original_tag = UKR original_tag = SWE original_tag = FIN } } } } } join_NATO = { icon = GFX_decision_generic_join_nato visible = { has_country_flag = NATO_Accession_Voting } available = { custom_trigger_tooltip = { tooltip = TT_ALL_NATO_MEMBERS_RATIFIED # Every living member must have ratified. Members that no longer exist # (annexed, collapsed) are skipped so a stale array entry cannot deadlock # the accession (#2026). all_of_scopes = { array = global.nato_members OR = { has_country_flag = NATO_Ratified_@ROOT exists = no } } } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision join_NATO" # Join NATO. NATO_join = yes # Remove the candidate stuff. hidden_effect = { clr_country_flag = NATO_Accession_Voting remove_from_array = { global.NATO_Accession_Candidates = THIS } clear_array = NATO_waiting_on_ratify_list clr_country_flag = NATO_Aspirant for_each_scope_loop = { array = global.nato_members clr_country_flag = NATO_Ratified_@ROOT remove_opinion_modifier = { target = PREV modifier = NATO_aspirant } PREV = { remove_opinion_modifier = { target = PREV modifier = NATO_aspirant } } } } } ai_will_do = { # Ratification is already complete by the time this is available, so this just # paces the final step. Historical cohorts and threatened states commit fastest. base = 50 modifier = { add = 200 OR = { AND = { OR = { original_tag = LAT original_tag = LIT original_tag = EST original_tag = ROM original_tag = SLO original_tag = SLV original_tag = BUL } OR = { AND = { date > 2003.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } AND = { OR = { original_tag = ALB original_tag = CRO } OR = { AND = { date > 2008.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } AND = { original_tag = MNT OR = { AND = { date > 2016.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } AND = { original_tag = FYR OR = { AND = { date > 2019.1.1 is_historical_focus_on = yes } SOV = { has_added_tension_amount > 5 } } } } } modifier = { add = 100 original_tag = UKR OR = { SOV = { has_added_tension_amount > 5 } has_government = democratic } } modifier = { add = 100 OR = { original_tag = SWE original_tag = FIN } OR = { SOV = { has_added_tension_amount > 5 } SOV = { has_war_with = UKR } } } modifier = { factor = 0 original_tag = FRA OR = { has_completed_focus = FRA_leave_nato has_completed_focus = FRA_hostile_nato_comm has_completed_focus = FRA_leave_nato_PCF has_completed_focus = FRA_question_eu has_completed_focus = FRA_no_more_eu } } } } # American Custom Decisions nato_enhance_forward_presence_brigade = { allowed = { original_tag = USA } icon = GFX_decision_infiltrate_state visible = { has_idea = NATO_member } available = { POL = { has_idea = NATO_member } SOV = { controls_state = 669 } } fire_only_once = yes cost = 100 days_remove = 80 remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision nato_enhance_forward_presence_brigade" country_event = { id = USA_FOCUS.2 days = 1 } } ai_will_do = { base = 50 modifier = { factor = 0 date < 2005.1.1 threat < 0.35 } modifier = { add = 50 SOV = { has_added_tension_amount > 5 } } } } nato_deploy_turkish_brigade = { allowed = { original_tag = USA } icon = GFX_decision_infiltrate_state visible = { has_idea = NATO_member } available = { TUR = { has_idea = NATO_member } } fire_only_once = yes cost = 100 days_remove = 80 remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision nato_deploy_turkish_brigade" country_event = { id = USA_FOCUS.4 days = 1 } } ai_will_do = { base = 50 modifier = { factor = 0 date < 2005.1.1 threat < 0.35 } modifier = { add = 50 SOV = { has_added_tension_amount > 5 } } } } } NATO_ukraine_help = { send_money_to_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 90 custom_cost_trigger = { check_variable = { treasury > 9.9 } } custom_cost_text = cost_10_0 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_money_to_ukraine" set_temp_variable = { treasury_change = -10 } modify_treasury_effect = yes set_temp_variable = { percent_change = 3 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes UKR = { set_temp_variable = { treasury_change = 10 } modify_treasury_effect = yes hidden_effect = { add_to_variable = { UKR_aid_report_money = 10 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } send_light_equipment = { icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 90 days_remove = 30 available = { has_equipment = { infantry_weapons_type > 1999 } has_equipment = { cnc_equipment_type > 299 } has_equipment = { L_AT_Equipment > 99 } has_equipment = { AA_Equipment > 99 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_light_equipment" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_light_equipment" send_equipment = { type = infantry_weapons_type amount = 2000 target = UKR } send_equipment = { type = cnc_equipment_type amount = 300 target = UKR } send_equipment = { type = L_AT_Equipment amount = 100 target = UKR } send_equipment = { type = AA_Equipment amount = 100 target = UKR } UKR = { hidden_effect = { add_to_variable = { UKR_aid_report_infantry = 2000 } add_to_variable = { UKR_aid_report_cnc = 300 } add_to_variable = { UKR_aid_report_lat = 100 } add_to_variable = { UKR_aid_report_aa = 100 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } send_medium_equipment = { icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 120 days_remove = 60 available = { has_equipment = { util_vehicle_type > 149 } has_equipment = { H_AT_Equipment > 99 } has_equipment = { artillery_equipment > 99 } has_equipment = { medium_tank_amphibious_chassis > 99 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_medium_equipment" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_medium_equipment" send_equipment = { type = util_vehicle_type amount = 150 target = UKR } send_equipment = { type = H_AT_Equipment amount = 100 target = UKR } send_equipment = { type = artillery_equipment amount = 100 target = UKR } send_equipment = { type = medium_tank_amphibious_chassis amount = 100 target = UKR } UKR = { hidden_effect = { add_to_variable = { UKR_aid_report_util = 150 } add_to_variable = { UKR_aid_report_hat = 100 } add_to_variable = { UKR_aid_report_artillery = 100 } add_to_variable = { UKR_aid_report_apc = 100 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } send_heavy_equipment = { icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 150 days_remove = 90 available = { has_equipment = { medium_tank_flame_chassis > 149 } has_equipment = { medium_tank_chassis > 99 } has_equipment = { medium_tank_artillery_chassis > 49 } has_equipment = { medium_tank_aa_chassis > 19 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_heavy_equipment" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_heavy_equipment" send_equipment = { type = medium_tank_flame_chassis amount = 150 target = UKR } send_equipment = { type = medium_tank_chassis amount = 100 target = UKR } send_equipment = { type = medium_tank_artillery_chassis amount = 50 target = UKR } send_equipment = { type = medium_tank_aa_chassis amount = 20 target = UKR } UKR = { hidden_effect = { add_to_variable = { UKR_aid_report_ifv = 150 } add_to_variable = { UKR_aid_report_mbt = 100 } add_to_variable = { UKR_aid_report_spart = 50 } add_to_variable = { UKR_aid_report_mbt_aa = 20 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } send_mr_planes_equipment_nonbba = { allowed = { NOT = { has_dlc = "By Blood Alone" } } icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 150 days_remove = 90 available = { has_equipment = { medium_plane_airframe > 50 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_mr_planes_equipment_nonbba" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_mr_planes_equipment_nonbba" add_equipment_to_stockpile = { type = medium_plane_airframe amount = -50 } UKR = { add_equipment_to_stockpile = { type = MR_Fighter2 amount = 50 producer = USA } hidden_effect = { add_to_variable = { UKR_aid_report_fighters = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } send_strike_planes_equipment_nonbba = { allowed = { NOT = { has_dlc = "By Blood Alone" } } icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 150 days_remove = 90 available = { has_equipment = { small_plane_strike_airframe > 50 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_strike_planes_equipment_nonbba" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_strike_planes_equipment_nonbba" send_equipment = { type = small_plane_strike_airframe amount = 50 target = UKR } UKR = { hidden_effect = { add_to_variable = { UKR_aid_report_strike = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } send_mr_planes_equipment_bba = { allowed = { has_dlc = "By Blood Alone" } icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 150 days_remove = 90 available = { has_equipment = { medium_plane_fighter_airframe > 50 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_mr_planes_equipment_bba" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_mr_planes_equipment_bba" add_equipment_to_stockpile = { type = medium_plane_fighter_airframe amount = -50 } UKR = { add_equipment_to_stockpile = { variant_name = "F-15C Eagle" type = medium_plane_fighter_airframe_2 amount = 50 producer = USA } hidden_effect = { add_to_variable = { UKR_aid_report_fighters = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } send_strike_planes_equipment_bba = { allowed = { has_dlc = "By Blood Alone" } icon = GFX_decision_generic_prepare_civil_war fire_only_once = no days_re_enable = 150 days_remove = 90 available = { has_equipment = { small_plane_strike_airframe > 50 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_strike_planes_equipment_bba" set_temp_variable = { percent_change = 2 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision send_strike_planes_equipment_bba" add_equipment_to_stockpile = { type = small_plane_strike_airframe amount = -50 } UKR = { add_equipment_to_stockpile = { variant_name = "F-16C Fighting Falcon" type = small_plane_strike_airframe_2 amount = 50 producer = USA } hidden_effect = { add_to_variable = { UKR_aid_report_strike = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 5 modifier = { factor = 0 has_war = yes } } } order_guns_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 3.4 } } custom_cost_text = cost_3_5 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_guns_for_ukraine" set_temp_variable = { treasury_change = -3.5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_guns_for_ukraine" UKR = { add_equipment_to_stockpile = { type = infantry_weapons_type amount = 1000 } hidden_effect = { add_to_variable = { UKR_aid_report_infantry = 1000 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { infantry_weapons_type < 5000 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_cnc_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 3.4 } } custom_cost_text = cost_3_5 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_cnc_for_ukraine" set_temp_variable = { treasury_change = -3.5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_cnc_for_ukraine" UKR = { add_equipment_to_stockpile = { type = cnc_equipment_type amount = 300 } hidden_effect = { add_to_variable = { UKR_aid_report_cnc = 300 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { cnc_equipment_type < 1000 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_at_aa_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 4.9 } } custom_cost_text = cost_5_0 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_at_aa_for_ukraine" set_temp_variable = { treasury_change = -5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_at_aa_for_ukraine" UKR = { add_equipment_to_stockpile = { type = L_AT_Equipment amount = 200 } add_equipment_to_stockpile = { type = AA_Equipment amount = 200 } hidden_effect = { add_to_variable = { UKR_aid_report_lat = 200 } add_to_variable = { UKR_aid_report_aa = 200 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { OR = { has_equipment = { L_AT_Equipment < 800 } has_equipment = { AA_Equipment < 800 } } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_util_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 3.4 } } custom_cost_text = cost_3_5 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_util_for_ukraine" set_temp_variable = { treasury_change = -3.5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_util_for_ukraine" UKR = { add_equipment_to_stockpile = { type = util_vehicle_type amount = 80 } hidden_effect = { add_to_variable = { UKR_aid_report_util = 80 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { util_vehicle_type < 400 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_apc_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 3.4 } } custom_cost_text = cost_3_5 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_apc_for_ukraine" set_temp_variable = { treasury_change = -3.5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_apc_for_ukraine" UKR = { add_equipment_to_stockpile = { type = medium_tank_amphibious_chassis amount = 50 } hidden_effect = { add_to_variable = { UKR_aid_report_apc = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { medium_tank_amphibious_chassis < 400 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_ifv_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 4.9 } } custom_cost_text = cost_5_0 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_ifv_for_ukraine" set_temp_variable = { treasury_change = -5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_ifv_for_ukraine" UKR = { add_equipment_to_stockpile = { type = medium_tank_flame_chassis amount = 50 } hidden_effect = { add_to_variable = { UKR_aid_report_ifv = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { medium_tank_flame_chassis < 500 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_spart_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 3.4 } } custom_cost_text = cost_3_5 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_spart_for_ukraine" set_temp_variable = { treasury_change = -3.5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_spart_for_ukraine" UKR = { add_equipment_to_stockpile = { type = medium_tank_artillery_chassis amount = 25 } hidden_effect = { add_to_variable = { UKR_aid_report_spart = 25 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { medium_tank_artillery_chassis < 350 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } order_mbt_for_ukraine = { icon = GFX_decision_attract_foreign_investor fire_only_once = no days_re_enable = 120 days_remove = 60 custom_cost_trigger = { check_variable = { treasury > 7.4 } } custom_cost_text = cost_7_5 available = { NOT = { has_idea = NATO_ukraine_help } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_mbt_for_ukraine" set_temp_variable = { treasury_change = -7.5 } modify_treasury_effect = yes set_temp_variable = { percent_change = 1 } set_temp_variable = { influence_target = UKR.id } change_influence_percentage = yes add_timed_idea = { idea = NATO_ukraine_help days = 60 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision order_mbt_for_ukraine" UKR = { add_equipment_to_stockpile = { type = medium_tank_chassis amount = 50 } hidden_effect = { add_to_variable = { UKR_aid_report_mbt = 50 } UKR_queue_nato_aid_report = yes } } } ai_will_do = { base = 1 modifier = { factor = 5 UKR = { has_equipment = { medium_tank_chassis < 400 } } } modifier = { factor = 0 check_variable = { debt_ratio > 1 } } modifier = { factor = 0 has_active_mission = bankruptcy_incoming_collapse } } } } NATO_CSTO_agreement = { propose_agreement_talks = { icon = GFX_decision_generic_join_nato fire_only_once = yes visible = { is_faction_leader = yes NOT = { has_global_flag = NATO_CSTO_treaty_adandoned } check_variable = { global.CSTO_member^num > 0 } } # available = { # NOT = { has_global_flag = NATO_CSTO_treaty_ratified } # } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision propose_agreement_talks" random_other_country = { limit = { has_idea = CSTO_member is_faction_leader = yes } country_event = { id = NATO_CSTO.1 days = 1 } } } ai_will_do = { base = 10 } } NATO_CSTO_AI_breach_fix = { visible = { is_ai = yes has_country_flag = NATO_CSTO_agreement_breach_warning NOT = { has_global_flag = NATO_CSTO_treaty_adandoned } } fire_only_once = no days_re_enable = 60 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision NATO_CSTO_AI_breach_fix" random_owned_controlled_state = { PREV = { delete_unit = { state = PREV disband = yes } } } } ai_will_do = { base = 1 modifier = { factor = 0 threat > 0.4 } } } NATO_CSTO_breach_mission = { available = { always = yes } activation = { always = no } days_mission_timeout = 120 selectable_mission = no is_good = no fire_only_once = no cancel_trigger = { if = { limit = { has_idea = NATO_member } custom_trigger_tooltip = { tooltip = NATO_CSTO_violation_TT check_variable = { global.var_nato_inf_count < 1000 } check_variable = { global.var_nato_tank_count < 400 } } } else = { custom_trigger_tooltip = { tooltip = NATO_CSTO_violation_TT check_variable = { global.var_csto_inf_count < 1000 } check_variable = { global.var_csto_tank_count < 400 } } } } cancel_effect = { log = "[GetDateText]: [Root.GetName]: Decision cancel effect NATO_CSTO_breach_mission" if = { limit = { has_idea = NATO_member } for_each_scope_loop = { array = global.nato_members tooltip = TT_ALL_NATO_MEMBER_NATIONS_GAIN set_country_flag = { flag = NATO_CSTO_agreement_breach_warning value = 0 } } } else = { for_each_scope_loop = { array = global.CSTO_member tooltip = TT_ALL_CSTO_MEMBER_NATIONS_GAIN set_country_flag = { flag = NATO_CSTO_agreement_breach_warning value = 0 } } } } timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision timeout effect NATO_CSTO_breach_mission" set_global_flag = NATO_CSTO_treaty_adandoned if = { limit = { has_idea = NATO_member } news_event = { id = NATO_CSTO.103 days = 1 } } else = { news_event = { id = NATO_CSTO.104 days = 1 } } add_threat = 10 } } } generic_coalition_politics_decisions = { request_MNNA_status = { icon = GFX_decision_generic_join_nato cost = 50 days_remove = 30 days_re_enable = 180 visible = { EH_is_megastate_country = no NOT = { has_global_flag = GAME_RULE_nato_disabled } any_of_scopes = { array = global.nato_members is_faction_leader = yes NOT = { has_country_flag = collapsed_nation } } is_subject = no is_in_faction = no NOT = { has_idea = Major_Non_NATO_Ally } NOT = { has_idea = NATO_member } # Only nations with a real military or arms base apply. Keeps microstates (Andorra, Monaco, etc.) out of the pool. OR = { has_army_manpower = { size > 10000 } num_of_military_factories > 2 } } available = { OR = { has_government = democratic has_government = neutrality } NOT = { has_country_flag = MNNA_rejected_recently } if = { limit = { NOT = { CHI = { has_idea = NATO_member } } } NOT = { is_in_faction_with = CHI } } if = { limit = { NOT = { SOV = { has_idea = NATO_member } } } NOT = { is_in_faction_with = SOV } } if = { limit = { NOT = { PER = { has_idea = NATO_member } } } NOT = { is_in_faction_with = PER } } custom_trigger_tooltip = { tooltip = nato_leader_not_at_war_with_us_tt any_of_scopes = { array = global.nato_members is_faction_leader = yes NOT = { has_war_with = ROOT } } } } fire_only_once = no remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision remove request_MNNA_status" random_scope_in_array = { array = global.nato_members limit = { is_faction_leader = yes NOT = { has_country_flag = collapsed_nation } } country_event = { id = department_of_state.230 days = 2 } } newline = yes custom_effect_tooltip = TT_IF_THEY_ACCEPT custom_effect_tooltip = MNNA_accept_TT custom_effect_tooltip = TT_IF_THEY_REJECT custom_effect_tooltip = MNNA_reject_TT } ai_will_do = { base = 3 # Don't bother applying unless a NATO leader actually values us modifier = { factor = 0 NOT = { any_of_scopes = { array = global.nato_members is_faction_leader = yes has_opinion = { target = ROOT value > 25 } } } } modifier = { CHI = { has_war_with = ROOT } add = 5 } modifier = { SOV = { has_war_with = ROOT } add = 5 } modifier = { PER = { has_war_with = ROOT } add = 4 } modifier = { has_war = yes add = 5 } modifier = { any_of_scopes = { array = global.nato_members is_faction_leader = yes has_opinion = { target = ROOT value > 75 } } add = 5 } modifier = { factor = 0 any_of_scopes = { array = global.nato_members is_faction_leader = yes has_opinion = { target = ROOT value < -50 } } } modifier = { factor = 0 OR = { has_country_flag = MNNA_rejected_recently has_government = communism has_government = nationalist has_government = fascism } } # Pursue protection when the AI feels threatened; far less inclined when it does not modifier = { check_variable = { ai_attitude_is_threatened > 0 } add = 5 } modifier = { factor = 0.2 check_variable = { ai_attitude_is_threatened = 0 } } modifier = { num_of_factories > 30 add = 5 } modifier = { has_army_manpower = { size > 200000 } add = 5 } modifier = { OR = { western_conservatism_are_in_power = yes western_liberals_are_in_power = yes } add = 5 } modifier = { factor = 0.5 has_stability < 0.30 } modifier = { factor = 0 OR = { is_in_faction_with = SOV is_in_faction_with = CHI } } } } denounce_Status_As_Major_Non_NATO_Ally = { icon = GFX_decision_generic_leave_nato available = { has_idea = Major_Non_NATO_Ally } visible = { NOT = { has_global_flag = GAME_RULE_nato_disabled } has_idea = Major_Non_NATO_Ally } cost = 100 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision denounce_Status_As_Major_Non_NATO_Ally" NATO_major_non_nato_ally_leave = yes USA = { add_opinion_modifier = { target = PREV modifier = left_alliance } } } ai_will_do = { base = 0 } } }