add_policy = {
	add_to_array = { selected_policies_array = v }
	meta_effect = {
		text = {
			if = {
				limit = {
					NOT = { has_idea = eu4_like_policy_[POLICY] }
				}
				add_ideas = eu4_like_policy_[POLICY]
				set_variable = { eu4_like_policy_[POLICY]_date = global.date }
				add_to_variable = { eu4_like_policy_[POLICY]_date = 0.0075 }
			}
		}
		POLICY = "[?v]"
	}
	remove_from_array = { selectable_policies_array = v }
	update_idea_cost_modifiers = yes
	update_policy_costs = yes
	update_policy_window = yes
	update_main_ideas_window = yes
}

remove_policy = {
	country_event = { id = remove_policy_events.1 }
	update_idea_cost_modifiers = yes
	update_policy_costs = yes
	update_policy_window = yes
	update_main_ideas_window = yes
}

check_and_perhaps_remove_current_policies_effect = {
	clear_temp_array = policies_to_be_removed_temp
	for_each_loop = {
		array = global.all_possible_policies
		value = value_temp
		index = index_temp
		set_temp_variable = { policy_out_of_context = value_temp }
		if = {
			limit = {
				is_in_array = { selected_policies_array = policy_out_of_context }
				NOT = { has_completed_required_idea_groups_for_policy = yes }
			}
			add_to_temp_array = { policies_to_be_removed_temp = policy_out_of_context }
		}
	}

	if = {
		limit = {
			check_variable = { policies_to_be_removed_temp^num > 0 }
		}
		for_each_loop = {
			array = policies_to_be_removed_temp
			value = v
			remove_policy = yes
		}
	}
	if = {
		limit = {
			NOT = { has_not_selected_max_amount_of_policies = yes }
		}
		clear_temp_array = selected_policies_array_temp
		for_each_loop = {
			array = selected_policies_array
			value = v
			add_to_temp_array = { selected_policies_array_temp = v }
		}
		resize_array = { selected_policies_array = max_amount_of_policies }
		for_each_loop = {
			array = selected_policies_array_temp
			value = v
			if = {
				limit = {
					NOT = { is_in_array = { selected_policies_array = v } }
				}
				remove_policy = yes
			}
		}
	}
}

update_policies_effect = {
	clear_array = selectable_policies_array
	for_each_loop = {
		array = global.all_possible_policies
		value = value_temp
		index = index_temp
		set_temp_variable = { policy_out_of_context = value_temp }
		if = {
			limit = {
				NOT = { is_in_array = { selected_policies_array = policy_out_of_context } }
				has_selected_required_idea_groups_for_policy = yes
			}
			add_to_array = { selectable_policies_array = policy_out_of_context }
		}
	}
	update_policy_window = yes
}

update_policy_costs = {
	set_variable = { eu4_like_ideas_country_policy_cost = global.eu4_like_ideas_policy_cost }
	set_temp_variable = { eu4_like_ideas_country_policy_cost_modifier = 1 }
	add_to_temp_variable = { eu4_like_ideas_country_policy_cost_modifier = modifier@policy_cost }
	multiply_variable = { eu4_like_ideas_country_policy_cost = eu4_like_ideas_country_policy_cost_modifier }
	# Round to two decimals
	divide_variable = { eu4_like_ideas_country_policy_cost = 10 }
	multiply_variable = { eu4_like_ideas_country_policy_cost = 10 }
	# Min Policy Cost
	if = {
		limit = {
			check_variable = { eu4_like_ideas_country_policy_cost < 0.05 }
		}
		set_variable = { eu4_like_ideas_country_policy_cost = 0.05 }
	}
	if = {
		limit = {
			check_variable = { selected_policies_array^num > 0 }
		}
		if = {
			limit = {
				NOT = { has_dynamic_modifier = { modifier = eu4_like_ideas_policies_dynamic_modifier } }
			}
			add_dynamic_modifier = { modifier = eu4_like_ideas_policies_dynamic_modifier }
		}
		set_variable = { eu4_like_ideas_country_policy_cost_total = eu4_like_ideas_country_policy_cost }
		multiply_variable = { eu4_like_ideas_country_policy_cost_total = selected_policies_array^num }
		force_update_dynamic_modifier = yes
	}
	else = {
		clear_variable = eu4_like_ideas_country_policy_cost_total
		if = {
			limit = {
				has_dynamic_modifier = { modifier = eu4_like_ideas_policies_dynamic_modifier }
			}
			remove_dynamic_modifier = { modifier = eu4_like_ideas_policies_dynamic_modifier }
		}
	}
}