eeu_form_category = {
	eeu_form_decision = {
		icon = generic_form_nation
		priority = 10

		ai_will_do = {
			factor = 5 #AI really wants to form the EU. Its held back by spirits or territory control
			modifier = {
				factor = 0
				is_historical_focus_on = yes
			}
			modifier = {
				factor = 0
				has_game_rule = { rule = eeu_rule_ai_spread_spirit option = eeu_rule_ai_spread_spirit_no }
			}
			modifier = {
				factor = 0
				has_game_rule = { rule = eeu_rule_ai_form_democratic option = eeu_rule_ai_form_democratic_no }
				has_government = democratic
			}
			modifier = {
				factor = 0	
				has_game_rule = { rule = eeu_rule_ai_form_neutrality option = eeu_rule_ai_form_neutrality_no }
				has_government = neutrality
			}
			modifier = {
				factor = 0				
				has_game_rule = { rule = eeu_rule_ai_form_fascist option = eeu_rule_ai_form_fascist_no }
				has_government = fascism
			}
			modifier = {
				factor = 0				
				has_game_rule = { rule = eeu_rule_ai_form_communist option = eeu_rule_ai_form_communist_no }
				has_government = communism
			}
			modifier = {
				factor = 0
				is_major = no
			}
			modifier = {
				check_variable = {
					eeu_ai_formation_dislike > 0
				}
				factor = 0.85
			}
			modifier = {
				check_variable = {
					eeu_ai_formation_dislike > 1
				}
				factor = 0.6
			}
			modifier = {
				check_variable = {
					eeu_ai_formation_dislike > 2
				}
				factor = 0.25
			}
			modifier = {
				check_variable = {
					eeu_ai_formation_dislike > 3
				}
				factor = 0
			}
			modifier = {
				factor = 20
				date > 1945.08.01
			}
		}

		available = {
			has_idea = eeu_torch_spirit
			custom_trigger_tooltip = {
				tooltip = eeu_formation_not_in_progress_tt
				NOT = {
					has_global_flag = eeu_formation_in_progress
				}
			}
			is_subject = no
			eeu_trigger_formation_allowed = yes
		}

		complete_effect = {
			eeu_effect_formation_reset = yes
			set_global_flag = eeu_formation_in_progress
			set_variable = { global.eeu_tag = THIS }
			if = {
				limit = {
					is_ai = yes
				}
				set_global_flag = eeu_formation_by_ai
				log = "EEU formation attempt by AI"
			}
			else = {
				log = "EEU formation attempt by player"
			}
			every_other_country = {
				limit = {
					OR = {
						eeu_country_has_join_spirit = yes
						AND = {
							is_subject_of = ROOT
							is_in_array = { global.eeu_active_country_array = THIS }
						}
					}
				}
				add_to_array = { global.eeu_form_undecided_array = THIS }

				country_event = {
					id = eeu.20
					days = 1
					random_days = 5
				}
			}
			force_update_map_mode = {
				mapmode = eeu_map_modes_formation
			}
		}

		cost = 25
		days_remove = 11
		days_re_enable = 20

		cancel_effect = {
			eeu_effect_formation_reset = yes
		}

		remove_effect = {
			log = "eeu: formation: [?global.eeu_form_annex_desire_array^num] DESIRE to unionize"
			log = "eeu: formation: [?global.eeu_form_puppet_array^num] DESIRE to be puppeted"


			clear_array = global.eeu_form_annex_array
			set_temp_variable = { last_pass_found = 1 } # boolean logic is inverted here, because the 'break' switch breaks if the condition is false
			while_loop_effect = {
				limit = { 
					check_variable = { last_pass_found = 1 }
				}
				log = "eeu: formation: annexation territory check: new round! "

				set_temp_variable = { found = 0 }

				for_each_scope_loop = {
					array = global.eeu_form_annex_desire_array
					break = found
					
					if = {
						limit = {
							OR = {
								check_variable = { neighbors^num = 0 }
								any_neighbor_country = {
									OR = {
										is_in_array = { global.eeu_form_annex_array = THIS }
										tag = var:global.eeu_tag
									}
								}
							}
						}
						log = "eeu: formation: annexation territory check: '[THIS.GetName]' has valid connection"
						set_temp_variable = { found = 1 }
						add_to_array = { global.eeu_form_annex_array = THIS }
						remove_from_array = { global.eeu_form_annex_desire_array = THIS }
					}
				}
				
				set_temp_variable = {
					last_pass_found = found
				}
			}

			log = "eeu: formation: [?global.eeu_form_annex_array^num] WILL unionize"
			log = "eeu: formation: [?global.eeu_form_annex_desire_array^num] left without core connection. Will we puppeted instead."

			for_each_scope_loop = {
				array = global.eeu_form_annex_desire_array
				add_to_array = { global.eeu_form_puppet_array = THIS }
				country_event = { # notify country that it couldnt be annexed
					id = eeu.27
				}
			}
			
			if = {
				limit = {
					eeu_nobody_denied_formation = yes

					check_variable = { global.eeu_form_takeover_array^num < 2 }
					
					eeu_trigger_formation_success = yes
				}
				log = "eeu formation is happening!"

				if = {
					limit = {
						is_ai = yes
						check_variable = { global.eeu_form_takeover_array^num = 0 }
					}
					log = "eeu formation by AI and no takeover"
					set_variable = { global.eeu_tag = THIS }
				}
				else_if = {
					limit = {
						is_ai = yes
						check_variable = { global.eeu_form_takeover_array^num = 1 }
					}
					log = "eeu formation by AI and single takeover"
					add_to_array = { global.eeu_form_annex_array = THIS }
					set_variable = { global.eeu_tag = var:global.eeu_form_takeover_array^0 }
				}
				else = {
					log = "eeu formation by player"
					set_variable = { global.eeu_tag = THIS }
				}
				log = "eeu formation determined tag to be [?global.eeu_tag.GetName]"


				custom_effect_tooltip = eeu_form_effect_union_tt
				var:global.eeu_tag = {
					eeu_effect_remove_other_bops = yes
					set_cosmetic_tag = EUR_UNIFIED
					every_other_country = {
						limit = {
							is_ally_with = ROOT
							is_in_array = { global.eeu_active_country_array = THIS }
						}
						eeu_raise_join_spirit = yes
					}

					if = {
						limit = {
							is_faction_leader = yes
						}
						set_faction_name = eeu_faction_name
					}
					else = {
						leave_faction = yes
						create_faction = eeu_faction_name
					}

					hidden_effect = {
						if = {
							limit = {
								has_government = democratic
							}
							news_event = { id = eeu_news.10 hours = 6 }
						}
						else = {
							news_event = { id = eeu_news.20 hours = 6 }
						}
						set_global_flag = form_european_union_flag
						set_country_flag = formed_european_union
					}

					for_each_loop = {
						array = global.eeu_form_annex_array
						set_variable = { global.eeu_annex_target = v }
						eeu_annex_effect = yes
					}


					for_each_scope_loop = {
						array = global.eeu_form_puppet_array
						eeu_become_prospect = yes
					}

					eeu_form_core_effect = yes
					
					add_ideas = { eeu_econ_spirit_0 eeu_politics_spirit_0 eeu_military_spirit_0 }
					
					set_party_name = {
						ideology = democratic
						long_name = eeu_democratic_party_name_long
						name = eeu_democratic_party_name
					}
					set_party_name = {
						ideology = communism
						long_name = eeu_communist_party_name_long
						name = eeu_communist_party_name
					}
					set_party_name = {
						ideology = fascism
						long_name = eeu_facist_party_name_long
						name = eeu_facist_party_name
					}
					set_party_name = {
						ideology = neutrality
						long_name = eeu_neutral_party_name_long
						name = eeu_neutral_party_name
					}
				}
				eeu_effect_formation_reset = yes
				eeu_effect_calculate_ratio = yes
			}
			else_if = {
				limit = {
					has_global_flag = eeu_formation_in_progress
				}
				log = "eeu: formation: not happening. sadface."
				country_event = {
					id = eeu.26
				}
				eeu_effect_formation_reset = yes
				set_variable = { global.eeu_tag = 0 }
				custom_effect_tooltip = eeu_formation_failed_agreement_tt
				add_to_variable = {
					var = eeu_ai_formation_dislike
					value = 1
					tooltip = eeu_decrease_ai_formation_desire_tt
				}
			}
		}
	}

	eeu_form_effect_display_decision = {
		priority = 10

		available = {
			hidden_trigger = {
				always = no
			}
			eeu_nobody_denied_formation = yes
			has_government = democratic
			if = {
				limit = {
					has_global_flag = eeu_formation_in_progress
				}
				eeu_trigger_form_agree_major = yes
				eeu_trigger_form_agree_2 = yes
				eeu_trigger_form_agree_3 = yes
				eeu_trigger_form_agree_puppet_annex = yes
			}
			else = {
				eeu_major_ally_has_spirit = yes
				eeu_non_hostiles_have_spirit_1 = yes
				eeu_non_hostiles_have_spirit_2 = yes
			}

			eeu_controls_germany_all = yes
			eeu_controls_benelux = yes
			eeu_controls_france = yes
			eeu_controls_italy = yes
			eeu_controls_iberia = yes
			eeu_controls_poland = yes
			eeu_controls_soviet = yes
			eeu_controls_all_nordic = yes
			eeu_controls_baltics = yes
			eeu_controls_danubia = yes
			eeu_controls_balkans = yes
			eeu_controls_turkey = yes
			eeu_controls_romania_bulgaria = yes

			eeu_controls_50_percent = yes
			eeu_controls_75_percent = yes

			
			all_of_scopes = {
				array = global.eeu_spirit_1_array
				has_idea = eeu_join_spirit_1
			}
			all_of_scopes = {
				array = global.eeu_spirit_2_array
				has_idea = eeu_join_spirit_2
			}
			all_of_scopes = {
				array = global.eeu_spirit_3_array
				has_idea = eeu_join_spirit_3
			}

		}

		remove_effect = {
			ROOT = {
				custom_effect_tooltip = eeu_form_effect_union_tt
			}
			for_each_scope_loop = {
				array = global.eeu_form_annex_desire_array
				custom_effect_tooltip = eeu_form_effect_union_tt
			}
			for_each_scope_loop = {
				array = global.eeu_form_puppet_array
				custom_effect_tooltip = eeu_form_effect_puppet_tt
			}
			custom_effect_tooltip = eeu_form_effect_faction_tt
		}
	}

	eeu_decision_form_toggle_tech_transfer = {
		icon = generic_operation
	
		complete_effect = {
			if = {
				custom_effect_tooltip = eeu_decision_toggle_tech_transfer_do_enable_tt
				limit = {
					has_global_flag = eeu_flag_annex_disable_tech_transfer
				}
				clr_global_flag = eeu_flag_annex_disable_tech_transfer
			}
			else = {
				custom_effect_tooltip = eeu_decision_toggle_tech_transfer_do_disable_tt
				set_global_flag = eeu_flag_annex_disable_tech_transfer
			}
		}

		cost = 0
	}
}