EU_voting_category = { EU_election_5_years = { allowed = { always = no } available = { tag = EUU } activation = { always = no } is_good = yes days_mission_timeout = 1825 selectable_mission = yes fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: mission timeout_effect EU_election_5_years" country_event = EUelection.1 } ai_will_do = { base = 0 } } ############# ### EUXXX ### ############# EU_parliament_focus_EUXXX_approve = { allowed = { always = yes } available = { custom_trigger_tooltip = { tooltip = EU_parliament_vote_passed_tt check_variable = { global.pass_vote_mission_ender = 1 } } } activation = { always = no } is_good = yes days_mission_timeout = 14 selectable_mission = no fire_only_once = yes complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_parliament_focus_EUXXX_approve" if = { limit = { var:global.eu_commission = { tag = ROOT } } log = "[GetDateText]: [ROOT.GetName]: mission complete_effect EU_parliament_focus_EUXXX_approve" EU_finalize_passed_agenda = yes } else_if = { limit = { EU_is_commission_caretaker = yes NOT = { has_global_flag = EU_vacant_agenda_finalized } } set_global_flag = { flag = EU_vacant_agenda_finalized value = 1 days = 2 } log = "[GetDateText]: [ROOT.GetName]: mission complete_effect EU_parliament_focus_EUXXX_approve (caretaker)" EU_finalize_passed_agenda = yes } } timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_parliament_focus_EUXXX_approve" if = { limit = { OR = { var:global.eu_commission = { tag = ROOT } AND = { EU_is_commission_caretaker = yes NOT = { has_global_flag = EU_vacant_agenda_finalized } } } } if = { limit = { check_variable = { global.eu_commission = EUU.id } } set_global_flag = { flag = EU_vacant_agenda_finalized value = 1 days = 2 } } if = { limit = { check_variable = { var = global.active_MEP_Support value = global.MEP_Majority compare = greater_than_or_equals } } EU_finalize_passed_agenda = yes } else = { custom_effect_tooltip = EU_parliament_remove_agenda_tt hidden_effect = { log = "[GetDateText]: [ROOT.GetName]: mission timeout_effect EU_parliament_focus_EU[?global.current_active_agenda_disp]_remove" clr_global_flag = EU_active_EP_agenda_holder clr_global_flag_PG_X_support = yes reset_MEP_support_party_x = yes set_variable = { global.active_MEP_Support = 0 } set_variable = { global.pass_vote_mission_ender = 0 } if = { limit = { NOT = { has_global_flag = EU_ongoing_budget_draft } NOT = { has_global_flag = EU_ongoing_mff_draft } } set_the_eu_parliament_delay = yes } if = { limit = { has_global_flag = EU_budget_EP_block NOT = { has_active_mission = EU_budget_draft_ongoing } NOT = { has_active_mission = EU_budget_draft_preparations } } clr_global_flag = EU_budget_EP_block EU_rollback_budget_values = yes } if = { limit = { has_global_flag = EU_mff_EP_block NOT = { has_active_mission = EU_mff_draft_ongoing } NOT = { has_active_mission = EU_mff_draft_preparations } } clr_global_flag = EU_mff_EP_block EU_rollback_mff_values = yes } } set_variable = { global.current_active_agenda_disp = 0 } } # Only the single finalizer (commission president, or the caretaker during a # vacancy) drives cross-member cleanup; the gate above ensures exactly one member # reaches here, so it does not remove everyone's mission before the driver runs. for_each_scope_loop = { array = global.EU_member if = { limit = { has_active_mission = EU_parliament_focus_EUXXX_approve } remove_mission = EU_parliament_focus_EUXXX_approve } } } } } EU_council_determine_serious_breach_of_EU_values = { allowed = { EU_is_potential = yes } target_root_trigger = { EU_council_has_breach_authority = yes has_idea = EU_member } target_trigger = { FROM = { NOT = { has_country_flag = serious_breach_of_EU_values } NOT = { has_idea = EUU_voting_rights_suspended } check_variable = { THIS.breach_of_EU_value > 3 } } } target_array = global.EU_member cost = 100 available = { FROM = { custom_trigger_tooltip = { tooltip = number_of_eu_breaches_greater_than_three check_variable = { THIS.breach_of_EU_value > 3 } } } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_council_determine_serious_breach_of_EU_values" FROM = { set_country_flag = serious_breach_of_EU_values set_temp_variable = { modify_europeanism = -0.15 } set_temp_variable = { modify_europeanism_target = THIS } europeanism_change = yes } } ai_will_do = { base = 1 } } EU_council_revoke_determination_of_serious_breach_of_EU_values = { allowed = { EU_is_potential = yes } target_root_trigger = { has_idea = EU_member NOT = { has_idea = EUU_voting_rights_suspended } } target_trigger = { FROM = { has_country_flag = serious_breach_of_EU_values NOT = { has_idea = EUU_voting_rights_suspended } } } target_array = global.EU_member cost = 100 available = { FROM = { custom_trigger_tooltip = { tooltip = "Level of breach of EU values < 4." check_variable = { THIS.breach_of_EU_value < 4 } } } NOT = { has_idea = EUU_voting_rights_suspended } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_council_revoke_determination_of_serious_breach_of_EU_values" FROM = { clr_country_flag = serious_breach_of_EU_values set_temp_variable = { modify_europeanism = 0.15 } set_temp_variable = { modify_europeanism_target = THIS } europeanism_change = yes } } ai_will_do = { base = 1 } } EU_council_suspend_voting_rights = { allowed = { EU_is_potential = yes } target_root_trigger = { has_idea = EU_member NOT = { has_idea = EUU_voting_rights_suspended } } target_trigger = { FROM = { has_country_flag = serious_breach_of_EU_values NOT = { has_idea = EUU_voting_rights_suspended } } } target_array = global.EU_member cost = 100 available = { FROM = { custom_trigger_tooltip = { tooltip = number_of_eu_breaches_greater_than_four check_variable = { THIS.breach_of_EU_value > 4 } } } NOT = { has_idea = EUU_voting_rights_suspended } EU_council_has_breach_authority = yes } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_council_suspend_voting_rights" FROM = { add_ideas = EUU_voting_rights_suspended set_temp_variable = { modify_europeanism = -0.30 } set_temp_variable = { modify_europeanism_target = THIS } europeanism_change = yes } } ai_will_do = { base = 1 } } EU_council_revoke_voting_rights_suspension = { allowed = { EU_is_potential = yes } target_root_trigger = { has_idea = EU_member NOT = { has_idea = EUU_voting_rights_suspended } } target_trigger = { FROM = { has_idea = EUU_voting_rights_suspended } } target_array = global.EU_member cost = 100 available = { FROM = { custom_trigger_tooltip = { tooltip = "Level of breach of EU values < 5." check_variable = { THIS.breach_of_EU_value < 5 } } has_idea = EUU_voting_rights_suspended } NOT = { has_idea = EUU_voting_rights_suspended } custom_trigger_tooltip = { tooltip = can_determine_a_breach_of_values_FROM all_of_scopes = { array = global.EU_member if = { limit = { NOT = { tag = ROOT } NOT = { tag = FROM } NOT = { has_idea = EUU_voting_rights_suspended } } is_top3_influencer = yes } } } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_council_revoke_voting_rights_suspension" FROM = { remove_ideas = EUU_voting_rights_suspended set_temp_variable = { modify_europeanism = 0.30 } set_temp_variable = { modify_europeanism_target = THIS } europeanism_change = yes } } ai_will_do = { base = 1 } } ### budget rights EU_council_suspend_subsidies = { allowed = { EU_is_potential = yes } target_root_trigger = { has_idea = EU_member NOT = { has_idea = EUU_voting_rights_suspended } } target_trigger = { FROM = { has_country_flag = serious_breach_of_EU_values NOT = { has_idea = EUU_subsidies_suspended } } } target_array = global.EU_member cost = 100 available = { FROM = { custom_trigger_tooltip = { tooltip = number_of_eu_breaches_greater_than_three check_variable = { THIS.breach_of_EU_value > 3 } } } NOT = { has_idea = EUU_voting_rights_suspended } EU_council_has_breach_authority = yes } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_council_suspend_subsidies" FROM = { add_ideas = EUU_subsidies_suspended set_temp_variable = { modify_europeanism = -0.20 } set_temp_variable = { modify_europeanism_target = THIS } europeanism_change = yes } } ai_will_do = { base = 1 } } EU_council_revoke_subsidies_suspension = { allowed = { EU_is_potential = yes } target_root_trigger = { has_idea = EU_member NOT = { has_idea = EUU_voting_rights_suspended } } target_trigger = { FROM = { has_idea = EUU_subsidies_suspended } } target_array = global.EU_member cost = 100 available = { FROM = { custom_trigger_tooltip = { tooltip = "Level of breach of EU values < 4." check_variable = { THIS.breach_of_EU_value < 4 } } has_idea = EUU_subsidies_suspended } NOT = { has_idea = EUU_voting_rights_suspended } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_council_revoke_subsidies_suspension" FROM = { remove_ideas = EUU_subsidies_suspended set_temp_variable = { modify_europeanism = 0.20 } set_temp_variable = { modify_europeanism_target = THIS } europeanism_change = yes } } ai_will_do = { base = 1 } } ################################## ### 1.1.8 New Voting Decisions ### ################################## ### Unified Result Mission QMV ### # Held by every member as a shared countdown; only the commission president applies the result, on timeout. EU_voting_mission_focus_EUXXX_QMV_result = { #icon = EU_voting_decision allowed = { always = yes } available = { always = no } activation = { always = no } is_good = yes days_mission_timeout = 14 selectable_mission = yes fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_voting_mission_focus_EUXXX_QMV_result" if = { limit = { has_idea = EU_commission_president } apply_EU_QMV_result = yes } else_if = { limit = { EU_is_commission_caretaker = yes NOT = { has_global_flag = EU_vacant_QMV_finalized } } set_global_flag = { flag = EU_vacant_QMV_finalized value = 1 days = 2 } apply_EU_QMV_result = yes } } ai_will_do = { base = -1000 } } ### Budget and MFF missions EU_budget_yearly_timer = { allowed = { always = yes } available = { always = no } activation = { always = no } days_mission_timeout = 344 selectable_mission = yes is_good = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_budget_yearly_timer" remove_mission = EU_budget_yearly_timer activate_mission = EU_budget_draft_preparations set_global_flag = EU_budget_EP_block update_eu_dirty_variable = yes country_event = EUbudget.10 } ai_will_do = { base = 0 } } EU_budget_draft_preparations = { allowed = { always = yes } available = { always = no } activation = { always = no } is_good = yes days_mission_timeout = 7 selectable_mission = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_budget_draft_preparations" set_EU_gdp = yes EU_save_budget_values = yes update_EU_budget_call_rate = yes update_EU_average_eco_lvl = yes EU_global_click_cost = yes reset_MEP_support_party_x = yes set_variable = { global.EU_budget_draft_invested_PP = 0 } remove_mission = EU_budget_draft_preparations activate_mission = EU_budget_draft_ongoing set_global_flag = EU_ongoing_budget_draft set_global_flag = EU_budget_EP_block # failgate update_eu_dirty_variable = yes country_event = EUbudget.11 } ai_will_do = { base = 0 } } EU_budget_draft_ongoing = { allowed = { always = yes } available = { always = no } activation = { always = no } days_mission_timeout = 14 selectable_mission = yes is_good = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_budget_draft_ongoing" set_EU_gdp = yes update_EU_budget_call_rate = yes if = { limit = { has_idea = ECB_president } if = { limit = { check_variable = { global.EU_global_exp_ratio = global.EU_global_exp_saved } check_variable = { global.EU_growth_exp_ratio = global.EU_growth_exp_saved } check_variable = { global.EU_natural_exp_ratio = global.EU_natural_exp_saved } } all_MEP_support_draft = yes } assess_MEP_support_party_x = yes set_global_flag = EU_active_EP_agenda_holder for_each_scope_loop = { array = global.EU_member activate_mission = EU_parliament_focus_EUXXX_approve } set_variable = { global.current_active_agenda_disp = 999 } } else = { if = { limit = { any_of_scopes = { array = global.EU_member has_idea = ECB_president } } set_global_flag = EU_active_EP_agenda_holder for_each_scope_loop = { array = global.EU_member activate_mission = EU_parliament_focus_EUXXX_approve } } else = { # No member holds the ECB presidency: the draft cannot reach an EP vote. # Restore the saved baseline so a half-edited proposal does not persist as live. clr_global_flag = EU_budget_EP_block if = { limit = { NOT = { has_global_flag = EU_vacant_budget_rolled_back } } set_global_flag = { flag = EU_vacant_budget_rolled_back value = 1 days = 2 } EU_rollback_budget_values = yes } } } clr_global_flag = EU_ongoing_budget_draft remove_mission = EU_budget_draft_ongoing activate_mission = EU_budget_yearly_timer } ai_will_do = { base = 0 } } EU_mff_yearly_timer = { allowed = { always = yes } available = { always = no } activation = { always = no } is_good = yes days_mission_timeout = 1237 selectable_mission = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_mff_yearly_timer" set_global_flag = EU_mff_EP_block remove_mission = EU_mff_yearly_timer activate_mission = EU_mff_draft_preparations update_eu_dirty_variable = yes country_event = EUbudget.20 } ai_will_do = { base = 0 } } EU_mff_draft_preparations = { allowed = { always = yes } available = { always = no } activation = { always = no } is_good = yes days_mission_timeout = 14 selectable_mission = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_mff_draft_preparations" set_EU_gdp = yes EU_save_mff_values = yes update_EU_budget_call_rate = yes update_EU_average_eco_lvl = yes EU_global_click_cost = yes EU_country_call_rate_cost_calc = yes set_variable = { global.EU_budget_draft_invested_PP = 0 } remove_mission = EU_mff_draft_preparations activate_mission = EU_mff_draft_ongoing set_global_flag = EU_ongoing_mff_draft set_global_flag = EU_mff_EP_block # failgate update_eu_dirty_variable = yes country_event = EUbudget.21 } ai_will_do = { base = 0 } } EU_mff_draft_ongoing = { allowed = { always = yes } available = { always = no } activation = { always = no } days_mission_timeout = 28 selectable_mission = yes is_good = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_mff_draft_ongoing" set_EU_gdp = yes update_EU_budget_call_rate = yes if = { limit = { has_idea = ECB_president } if = { limit = { check_variable = { global.EU_budget_min_call_rate = global.EU_min_call_rate_saved } check_variable = { global.EU_budget_call_rate = global.EU_global_call_rate_saved } check_variable = { THIS.EU_budget_call_rate = THIS.EU_call_rate_saved } } all_MEP_support_draft = yes } assess_MEP_support_party_x = yes set_global_flag = EU_active_EP_agenda_holder for_each_scope_loop = { array = global.EU_member activate_mission = EU_parliament_focus_EUXXX_approve } set_variable = { global.current_active_agenda_disp = 998 } } else = { if = { limit = { any_of_scopes = { array = global.EU_member has_idea = ECB_president } } set_global_flag = EU_active_EP_agenda_holder for_each_scope_loop = { array = global.EU_member activate_mission = EU_parliament_focus_EUXXX_approve } } else = { # No member holds the ECB presidency: the draft cannot reach an EP vote. # Restore the saved baseline so a half-edited proposal does not persist as live. clr_global_flag = EU_mff_EP_block if = { limit = { NOT = { has_global_flag = EU_vacant_mff_rolled_back } } set_global_flag = { flag = EU_vacant_mff_rolled_back value = 1 days = 2 } EU_rollback_mff_values = yes } } } clr_global_flag = EU_ongoing_mff_draft remove_mission = EU_mff_draft_ongoing activate_mission = EU_mff_yearly_timer } ai_will_do = { base = 0 } } } EU_fiscal_category = { eurozone_reforms = { allowed = { always = no } activation = { always = no } available = { EU_eurozone_reforms_passed = no } days_mission_timeout = 900 selectable_mission = yes fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision eurozone_reforms" effect_tooltip = { country_event = EUevent.5 } if = { limit = { any_of_scopes = { array = global.EU_member is_ai = no } } random_scope_in_array = { array = global.EU_member limit = { is_ai = no } country_event = EUevent.5 } } else = { random_scope_in_array = { array = global.EU_member country_event = EUevent.5 } } } cancel_trigger = { has_global_flag = eurozone_reforms } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision eurozone_reforms" for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN country_event = EUevent.6 remove_mission = eurozone_reforms } } ai_will_do = { base = 60 modifier = { add = 20 OR = { check_variable = { ruling_party = 1 } ### conservatism check_variable = { ruling_party = 6 } ### Conservative check_variable = { ruling_party = 14 } ### Neutral_conservatism } } modifier = { add = 30 OR = { check_variable = { ruling_party = 2 } ### liberalism check_variable = { ruling_party = 16 } ### Neutral_Libertarian } } modifier = { add = 40 OR = { check_variable = { ruling_party = 3 } ### socialism check_variable = { ruling_party = 18 } ### neutral_Social check_variable = { ruling_party = 17 } ### Neutral_green check_variable = { ruling_party = 4 } ### Communist-State check_variable = { ruling_party = 5 } ### anarchist_communism check_variable = { ruling_party = 19 } ### Neutral_Communism } } modifier = { add = -60 OR = { check_variable = { ruling_party = 20 } ### Nat_Populism check_variable = { ruling_party = 21 } ### Nat_Fascism check_variable = { ruling_party = 22 } ### Nat_Autocracy check_variable = { ruling_party = 23 } ### Monarchist } } } } troika_reforms = { allowed = { always = no } available = { ### add raising tax rate later OR = { interest_rate_lower_than_3_5 = yes has_idea = corruption_level_05 has_idea = corruption_level_04 has_idea = corruption_level_03 has_idea = corruption_level_02 has_idea = corruption_level_01 has_idea = stable_growth has_idea = fast_growth has_idea = economic_boom AND = { OR = { has_idea = bureau_03 has_idea = bureau_02 has_idea = bureau_01 } OR = { has_idea = edu_03 has_idea = edu_02 has_idea = edu_01 } OR = { has_idea = health_03 has_idea = health_02 has_idea = health_01 } OR = { has_idea = social_03 has_idea = social_02 has_idea = social_01 } OR = { has_idea = defence_02 has_idea = defence_01 has_idea = defence_00 } } } } activation = { always = no } days_mission_timeout = 730 selectable_mission = yes ai_will_do = { base = 100 } cancel_trigger = { ROOT = { NOT = { has_idea = EUU_national_dept_crisis_eu } } } timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision troika_reforms" ROOT = { country_event = EUevent.9 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision troika_reforms" ROOT = { country_event = EUevent.8 } } } } EU_exit_category = { EU_Revoke_Article_50 = { visible = { has_idea = EU_member has_country_flag = Article_50 } available = { custom_trigger_tooltip = { tooltip = tooltip_EU_Revoke_Article_50_available has_country_flag = Article_50 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_Revoke_Article_50" custom_effect_tooltip = tooltip_EU_Revoke_Article_50_effect hidden_effect = { ROOT = { clr_country_flag = Article_50 news_event = EU_news.22 set_country_flag = { flag = recently_revoked_article_50 days = 180 value = 1 } } } } # AI EU Exit ai_will_do = { base = 0 modifier = { add = -40 gov_is_EUexiteer = yes } modifier = { add = 1 NOT = { gov_is_eurosceptical = yes } } modifier = { factor = 0 OR = { AND = { has_elections = no check_variable = { THIS.europeanism > 0.50 } } EU_external_sov_chi_influence_50 = yes } } } } EU_exit = { allowed = { always = no } activation = { always = no } available = { custom_trigger_tooltip = { tooltip = tooltip_EU_exit_available has_country_flag = withdrawal_treaty } } days_mission_timeout = 730 selectable_mission = yes fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_exit" # Unprepared No Deal Exit if = { limit = { NOT = { ROOT = { has_country_flag = EU_article_50_prepared_no_deal_exit } } } add_timed_idea = { idea = no_deal_exit days = 1825 # five years # unprepared no deal exit } leaving_EU = yes clr_country_flag = Article_50 } else_if = { limit = { ROOT = { has_country_flag = EU_article_50_prepared_no_deal_exit } } add_timed_idea = { idea = no_deal_exit days = 730 # two years # prepared no deal exit } leaving_EU = yes clr_country_flag = Article_50 } # One Member State Leaves news_event = EU_news.21 } cancel_trigger = { ### by EU_Revoke_Article_50 custom_trigger_tooltip = { tooltip = tooltip_EU_exit_cancel_trigger ROOT = { NOT = { has_country_flag = Article_50 } } } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_exit" news_event = EU_news.22 ### Article 50 is revoked } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_exit" add_ideas = withdrawal_treaty leaving_EU = yes clr_country_flag = Article_50 ### one member state leaves news_event = EU_news.21 } ### AI Withdrawal Treaty ai_will_do = { base = 60 ### Government factor modifier = { add = -10 ROOT = { OR = { check_variable = { ruling_party = 1 } ### conservatism check_variable = { ruling_party = 6 } ### Conservative check_variable = { ruling_party = 14 } ### Neutral_conservatism } } } modifier = { add = 10 ROOT = { OR = { check_variable = { ruling_party = 2 } ### liberalism check_variable = { ruling_party = 16 } ### Neutral_Libertarian } } } modifier = { add = 20 ROOT = { OR = { check_variable = { ruling_party = 3 } ### socialism check_variable = { ruling_party = 18 } ### neutral_Social check_variable = { ruling_party = 17 } ### Neutral_green } } } modifier = { add = 20 ROOT = { OR = { check_variable = { ruling_party = 4 } ### Communist-State check_variable = { ruling_party = 5 } ### anarchist_communism check_variable = { ruling_party = 19 } ### Neutral_Communism } } } modifier = { add = -30 ROOT = { OR = { check_variable = { ruling_party = 20 } ### Nat_Populism check_variable = { ruling_party = 21 } ### Nat_Fascism check_variable = { ruling_party = 22 } ### Nat_Autocracy check_variable = { ruling_party = 23 } ### Monarchist } } } } } EU_extend_Article_50 = { available = { #has_idea = EU_member custom_trigger_tooltip = { tooltip = tooltip_EU_extend_Article_50_available has_country_flag = Article_50 EU_influence_on_leader_of_foreign_policy_25_percent = yes } } visible = { has_idea = EU_member has_country_flag = Article_50 } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_extend_Article_50" remove_mission = EU_exit remove_mission = EU_exit_three_month activate_mission = EU_exit_three_month news_event = EU_news.24 ### Article 50 Extension } ai_will_do = { base = 0 } } EU_exit_three_month = { activation = { always = no } allowed = { always = no } available = { custom_trigger_tooltip = { tooltip = tooltip_EU_exit_available has_country_flag = withdrawal_treaty } } days_mission_timeout = 90 selectable_mission = yes fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_exit_three_month" if = { ### unprepared no deal exit limit = { NOT = { ROOT = { has_country_flag = EU_article_50_prepared_no_deal_exit } } } add_timed_idea = { idea = no_deal_exit days = 1825 # five years # unprepared no deal exit } leaving_EU = yes clr_country_flag = Article_50 } else_if = { ### prepared no deal exit limit = { ROOT = { has_country_flag = EU_article_50_prepared_no_deal_exit } } add_timed_idea = { idea = no_deal_exit days = 730 # two years # prepared no deal exit } leaving_EU = yes clr_country_flag = Article_50 } news_event = EU_news.21 ### one member state leaves } cancel_trigger = { ### by EU_Revoke_Article_50 custom_trigger_tooltip = { #same tooltip as EU_exit tooltip = tooltip_EU_exit_cancel_trigger ROOT = { NOT = { has_country_flag = Article_50 } } } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_exit_three_month" news_event = EU_news.22 ### Article 50 is revoked } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_exit_three_month" ROOT = { add_ideas = withdrawal_treaty leaving_EU = yes clr_country_flag = Article_50 } news_event = EU_news.23 } ### AI Withdrawal Treaty ai_will_do = { base = 60 ### Government factor modifier = { add = -10 ROOT = { OR = { check_variable = { ruling_party = 1 } ### conservatism check_variable = { ruling_party = 6 } ### Conservative check_variable = { ruling_party = 14 } ### Neutral_conservatism } } } modifier = { add = 10 ROOT = { OR = { check_variable = { ruling_party = 2 } ### liberalism check_variable = { ruling_party = 16 } ### Neutral_Libertarian } } } modifier = { add = 20 ROOT = { OR = { check_variable = { ruling_party = 3 } ### socialism check_variable = { ruling_party = 18 } ### neutral_Social check_variable = { ruling_party = 17 } ### Neutral_green } } } modifier = { add = 20 ROOT = { OR = { check_variable = { ruling_party = 4 } ### Communist-State check_variable = { ruling_party = 5 } ### anarchist_communism check_variable = { ruling_party = 19 } ### Neutral_Communism } } } modifier = { add = -30 ROOT = { OR = { check_variable = { ruling_party = 20 } ### Nat_Populism check_variable = { ruling_party = 21 } ### Nat_Fascism check_variable = { ruling_party = 22 } ### Nat_Autocracy check_variable = { ruling_party = 23 } ### Monarchist } } } } } EU_withdrawal_treaty = { available = { EU_influence_on_leader_of_foreign_policy_25_percent = yes } visible = { has_idea = EU_member has_country_flag = Article_50 } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_withdrawal_treaty" set_country_flag = withdrawal_treaty ### withdrawal_treaty news_event = EU_news.23 } ai_will_do = { base = 60 ### Government factor modifier = { add = -10 OR = { check_variable = { ruling_party = 1 } ### conservatism check_variable = { ruling_party = 6 } ### Conservative check_variable = { ruling_party = 14 } ### Neutral_conservatism } } modifier = { add = 10 OR = { check_variable = { ruling_party = 2 } ### liberalism check_variable = { ruling_party = 16 } ### Neutral_Libertarian } } modifier = { add = 20 OR = { check_variable = { ruling_party = 3 } ### socialism check_variable = { ruling_party = 18 } ### neutral_Social check_variable = { ruling_party = 17 } ### Neutral_green } } modifier = { add = 20 OR = { check_variable = { ruling_party = 4 } ### Communist-State check_variable = { ruling_party = 5 } ### anarchist_communism check_variable = { ruling_party = 19 } ### Neutral_Communism } } modifier = { add = -30 OR = { check_variable = { ruling_party = 20 } ### Nat_Populism check_variable = { ruling_party = 21 } ### Nat_Fascism check_variable = { ruling_party = 22 } ### Nat_Autocracy check_variable = { ruling_party = 23 } ### Monarchist } } } } EU_prepared_no_deal_exit = { visible = { has_idea = EU_member has_country_flag = Article_50 } cost = 150 complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_prepared_no_deal_exit" set_country_flag = EU_article_50_prepared_no_deal_exit } ai_will_do = { base = 60 ### Government factor modifier = { add = -10 OR = { check_variable = { ruling_party = 1 } ### conservatism check_variable = { ruling_party = 6 } ### Conservative check_variable = { ruling_party = 14 } ### Neutral_conservatism } } modifier = { add = 10 OR = { check_variable = { ruling_party = 2 } ### liberalism check_variable = { ruling_party = 16 } ### Neutral_Libertarian } } modifier = { add = 20 OR = { check_variable = { ruling_party = 3 } ### socialism check_variable = { ruling_party = 18 } ### neutral_Social check_variable = { ruling_party = 17 } ### Neutral_green } } modifier = { add = 20 OR = { check_variable = { ruling_party = 4 } ### Communist-State check_variable = { ruling_party = 5 } ### anarchist_communism check_variable = { ruling_party = 19 } ### Neutral_Communism } } modifier = { add = -30 OR = { check_variable = { ruling_party = 20 } ### Nat_Populism check_variable = { ruling_party = 21 } ### Nat_Fascism check_variable = { ruling_party = 22 } ### Nat_Autocracy check_variable = { ruling_party = 23 } ### Monarchist } } } } } EU_defense_category = { EU_Frontex_take_control = { visible = { has_idea = EU_member has_idea = frontex_ExDir NOT = { has_country_flag = control_frontex_force } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_Frontex_take_control" if = { limit = { check_variable = { global.EU_frontex_controller > 0 } } var:global.EU_frontex_controller = { clr_country_flag = control_frontex_force } } for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN if = { limit = { has_template = "European Border Guard Team" } add_manpower = -500 subtract_from_variable = { treasury = 0.05 } } delete_unit_template_and_units = { division_template = "European Border Guard Team" } give_military_access = ROOT } if = { limit = { HUN = { has_idea = EU_member } } load_oob = "EU_frontex_basic_2017" } else = { load_oob = "EU_frontex_basic_2000" } set_country_flag = control_frontex_force set_variable = { global.EU_frontex_controller = ROOT } } ai_will_do = { base = 0 } } EU_EuroNavy_take_control = { visible = { has_idea = EU_member has_idea = EUU_euronavy_sc } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_EuroNavy_take_control" hidden_effect = { for_each_scope_loop = { array = global.EU_member EUU = { inherit_technology = PREV } } inherit_technology = EUU } for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN country_event = EUevent.10 } } ai_will_do = { base = 0 } } EU_EuroArmy_take_control = { visible = { has_idea = EU_member has_idea = EUU_euroarmy_sc NOT = { has_country_flag = control_euroarmy_force } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_EuroArmy_take_control" if = { limit = { check_variable = { global.EU_euroarmy_controller > 0 } } var:global.EU_euroarmy_controller = { clr_country_flag = control_euroarmy_force } } for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN if = { limit = { has_template = "EuroArmy Brigade" } add_manpower = -1000 subtract_from_variable = { treasury = 0.1 } } delete_unit_template_and_units = { division_template = "EuroArmy Brigade" } give_military_access = ROOT } load_oob = "EU_EuroArmy_basic_2000" set_country_flag = control_euroarmy_force set_variable = { global.EU_euroarmy_controller = ROOT } } ai_will_do = { base = 0 } } EU_create_EDU = { available = { #has_idea = European_Security_Council has_idea = EU_foreign_minister #has_idea = EU_member ROOT = { EU_influence_on_all_other_members_25_percent = yes } } visible = { NOT = { has_global_flag = EDU } has_idea = European_Security_Council has_idea = EU_member } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_create_EDU" set_global_flag = EDU if = { limit = { any_of_scopes = { array = global.EU_member has_idea = NATO_member } } for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN if = { limit = { has_idea = NATO_member } remove_ideas = NATO_member } } } create_faction_from_template = faction_template_edu for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN ROOT = { add_to_faction = PREV } add_ai_strategy = { type = alliance id = ROOT value = 200 } news_event = EU_news.47 } ### non-EU NATO members notification of EDU news_event = EU_news.48 } ai_will_do = { base = 0 } } EU_military_exercise = { allowed = { EU_is_potential = yes } target_array = neighbors target_root_trigger = { has_idea = European_Security_Council has_idea = EU_member } icon = GFX_decision_infiltrate_state days_remove = 90 custom_cost_trigger = { command_power > 40 } custom_cost_text = command_power_more_than_40 target_trigger = { FROM = { NOT = { has_idea = EU_member } if = { limit = { ROOT = { has_idea = NATO_member } } NOT = { has_idea = NATO_member } } any_neighbor_country = { EU_has_external_border = yes } OR = { is_major = yes is_in_faction = yes } } } available = { all_of_scopes = { array = global.EU_member NOT = { has_country_flag = EU_military_exercise_prep } } NOT = { has_war = yes } has_idea = European_Security_Council has_idea = EU_member } fixed_random_seed = no complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_military_exercise" add_command_power = -40 FROM = { set_country_flag = { flag = EU_military_exercise_at_border_from@ROOT value = 1 days = 450 } } set_variable = { var = ROOT.var_EU_military_exercise_target value = FROM } set_country_flag = { flag = EU_military_exercise_prep value = 1 days = 450 } } ai_will_do = { base = 0 } } EU_ask_to_host_military_exercise = { allowed = { EU_is_potential = yes } target_array = global.EU_member target_root_trigger = { has_idea = European_Security_Council has_idea = EU_member } days_remove = 365 target_trigger = { FROM = { EU_has_external_border = yes THIS = { any_neighbor_country = { has_country_flag = EU_military_exercise_at_border_from@ROOT } } } } available = { all_of_scopes = { array = global.EU_member NOT = { has_country_flag = EU_host_military_exercise@ROOT } } has_country_flag = EU_military_exercise_prep has_idea = EU_member } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_ask_to_host_military_exercise" FROM = { country_event = EUevent.18 } } ai_will_do = { base = 0 } } EU_military_exercise_mission = { allowed = { always = no } available = { divisions_in_state = { size > 0 state = ROOT.var_EU_military_exercise_host_state } } activation = { always = no } is_good = yes days_mission_timeout = 30 days_remove = 40 selectable_mission = yes ai_will_do = { base = 1 } fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: mission timeout_effect EU_military_exercise_mission" add_command_power = -40 EU_military_exercise_cleanup = yes } complete_effect = { log = "[GetDateText]: [Root.GetName]: mission complete_effect EU_military_exercise_mission" ### mission reward if = { limit = { divisions_in_state = { size > 10 state = ROOT.var_EU_military_exercise_host_state } } add_named_threat = { threat = 2 name = EU_military_exercise_threat } army_experience = 100 add_command_power = 100 } else_if = { limit = { divisions_in_state = { size > 5 state = ROOT.var_EU_military_exercise_host_state } } add_named_threat = { threat = 1 name = EU_military_exercise_threat } army_experience = 50 add_command_power = 50 } else = { add_named_threat = { threat = 0.5 name = EU_military_exercise_threat } army_experience = 10 add_command_power = 10 } ### diplo if = { limit = { check_variable = { ROOT.var_EU_military_exercise_host_tag > 0 } } var:ROOT.var_EU_military_exercise_host_tag = { ROOT = { add_opinion_modifier = { target = PREV modifier = hosted_military_exercise } reverse_add_opinion_modifier = { target = PREV modifier = executed_military_exercise } } } } if = { limit = { check_variable = { ROOT.var_EU_military_exercise_target > 0 } } var:ROOT.var_EU_military_exercise_target = { ROOT = { reverse_add_opinion_modifier = { target = PREV modifier = military_exercise_on_border } } random_owned_state = { limit = { any_neighbor_state = { state = ROOT.var_EU_military_exercise_host_state } } set_variable = { var = PREV.var_counter_military_exercise_state value = THIS } } news_event = EU_news.50 set_variable = { var = var_counter_military_exercise_originator value = ROOT } activate_mission = counter_military_exercise_mission } } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision EU_military_exercise_mission" EU_military_exercise_cleanup = yes } } } generic_coalition_politics_decisions = { counter_military_exercise_mission = { allowed = { always = no } available = { divisions_in_state = { size > 0 state = ROOT.var_counter_military_exercise_state } } activation = { always = no } is_good = yes days_mission_timeout = 30 days_remove = 30 selectable_mission = yes ai_will_do = { base = 1 } fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: mission timeout_effect counter_military_exercise_mission" add_command_power = -40 } complete_effect = { log = "[GetDateText]: [Root.GetName]: mission complete_effect counter_military_exercise_mission" if = { limit = { divisions_in_state = { size > 10 state = ROOT.var_counter_military_exercise_state } } add_named_threat = { threat = 2 name = EU_military_exercise_threat } army_experience = 100 add_command_power = 100 } else_if = { limit = { divisions_in_state = { size > 5 state = ROOT.var_counter_military_exercise_state } } add_named_threat = { threat = 1 name = EU_military_exercise_threat } army_experience = 50 add_command_power = 50 } else = { add_named_threat = { threat = 0.5 name = EU_military_exercise_threat } army_experience = 10 add_command_power = 10 } ### diplo: the countered nation sours the originator of the border exercise on it if = { limit = { check_variable = { ROOT.var_counter_military_exercise_originator > 0 } } var:ROOT.var_counter_military_exercise_originator = { add_opinion_modifier = { target = ROOT modifier = countered_military_exercise } } news_event = EU_news.51 } } remove_effect = { log = "[GetDateText]: [Root.GetName]: Decision counter_military_exercise_mission" clear_variable = ROOT.var_counter_military_exercise_state clear_variable = ROOT.var_counter_military_exercise_originator } } } EU_apply_for_membership_category = { EU_apply_for_membership = { cost = 50 available = { custom_trigger_tooltip = { tooltip = EU_level_of_breaches_less_than_3_tt check_variable = { THIS.breach_of_EU_value < 3 } } OR = { AND = { has_country_flag = EU_candidate NOT = { has_country_flag = EU_former_member } } custom_trigger_tooltip = { tooltip = EU_rejoin_cooldown_elapsed_tt has_country_flag = EU_former_member NOT = { has_country_flag = EU_rejoin_cooldown } } } NOT = { has_war = yes } custom_trigger_tooltip = { tooltip = EU_no_external_chi_influence_15_tt EU_external_chi_influence_15 = no } OR = { custom_trigger_tooltip = { tooltip = EU_no_external_sov_influence_15_tt EU_external_sov_influence_15 = no } SOV = { has_country_flag = EU_candidate } } if = { limit = { is_ai = no } custom_trigger_tooltip = { tooltip = EU_at_least_80_europeanism check_variable = { europeanism > 0.79 } } } else = { custom_trigger_tooltip = { tooltip = EU_at_least_70_europeanism check_variable = { europeanism > 0.69 } } } } visible = { NOT = { has_idea = EU_member } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision complete EU_apply_for_membership" add_ideas = EU_member force_update_map_mode = { mapmode = EU_map_mode } if = { limit = { has_global_flag = EDU has_idea = NATO_member } remove_ideas = NATO_member } if = { limit = { has_global_flag = EDU } for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN if = { limit = { is_faction_leader = yes } add_to_faction = ROOT ROOT = { add_ai_strategy = { type = alliance id = PREV value = 200 } } } } for_each_scope_loop = { array = global.nato_members tooltip = TT_ALL_NATO_MEMBER_NATIONS_GAIN news_event = EU_news.49 } } for_each_scope_loop = { array = global.EU_member tooltip = TT_ALL_EU_MEMBER_NATIONS_GAIN news_event = EU_news.27 } hidden_effect = { if = { limit = { original_tag = SOV } mark_focus_tree_layout_dirty = yes } } } ai_will_do = { base = 250 # Europeanism modifier = { add = -100 check_variable = { global.var_europeanism < 0.50 } } modifier = { factor = 10 OR = { has_government = democratic has_government = neutrality } } modifier = { factor = 1.5 any_of_scopes = { array = THIS.influence_array has_idea = EU_member } } modifier = { add = 15 var:influence_array^0 = { has_idea = EU_member } } modifier = { add = 15 var:influence_array^1 = { has_idea = EU_member } } modifier = { add = 15 var:influence_array^2 = { has_idea = EU_member } } modifier = { factor = 1.5 any_of_scopes = { array = THIS.influence_array OR = { AND = { NOT = { original_tag = SOV } SOV = { NOT = { has_idea = EU_member } } } NOT = { original_tag = CHI } } } } modifier = { factor = 2.5 # Russia is at war with European democratic nations NOT = { SOV = { has_idea = EU_member } } SOV = { NOT = { has_government = democratic } } OR = { SOV = { has_war_with = UKR } SOV = { has_war_with = FIN } SOV = { has_war_with = LIT } SOV = { has_war_with = LAT } SOV = { has_war_with = EST } SOV = { has_war_with = GEO } SOV = { has_war_with = BLR } SOV = { has_war_with = ABK } SOV = { has_war_with = SOO } } } modifier = { factor = 100 date > 2004.1.1 is_historical_focus_on = yes } modifier = { factor = 100 date > 2007.1.1 is_historical_focus_on = yes } modifier = { factor = 100 date > 2013.1.1 is_historical_focus_on = yes } } } EU_join_the_euro_decision = { cost = 100 available = { if = { limit = { original_tag = DEN } has_country_flag = DEN_accept } if = { limit = { original_tag = GRE } has_completed_focus = GRE_convert_to_euro if = { limit = { has_country_flag = GRE_hide_financial_records } interest_rate_lower_than_6_5 = yes } else = { interest_rate_lower_than_3_5 = yes } } else = { interest_rate_lower_than_3_5 = yes } OR = { has_idea = corruption_level_05 has_idea = corruption_level_04 has_idea = corruption_level_03 has_idea = corruption_level_02 has_idea = corruption_level_01 } OR = { has_idea = stable_growth has_idea = fast_growth has_idea = economic_boom } gdp_per_capita_greater_than_10 = yes } visible = { has_idea = EU_member NOT = { has_idea = euro } } fire_only_once = yes # Will not re-enable after being removed complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision complete EU_join_the_euro_decision" if = { limit = { original_tag = GRE has_idea = GRE_the_drachma_idea } remove_ideas = GRE_the_drachma_idea newline = yes add_ideas = GRE_euro_adopted newline = yes } joining_the_euro = yes } ai_will_do = { base = 250 modifier = { add = -100 check_variable = { global.var_europeanism < 0.50 } } modifier = { add = -100 check_variable = { global.var_europeanism < 0.90 } OR = { original_tag = DEN original_tag = ENG original_tag = SWE } } } } pre_accession_assistance_program = { allowed = { always = no } available = { OR = { has_idea = corruption_level_03 has_idea = corruption_level_02 has_idea = corruption_level_01 } } activation = { always = no } days_mission_timeout = 5 #180 selectable_mission = yes fire_only_once = yes timeout_effect = { log = "[GetDateText]: [Root.GetName]: Decision pre_accession_assistance_program" var:var_IPA = { country_event = EUevent.20 } } complete_effect = { log = "[GetDateText]: [Root.GetName]: Decision pre_accession_assistance_program" add_political_power = 400 } ai_will_do = { base = 100 } } }