# FLAG = unique flag across all mods
# NAME = name displayed on the button
dmm_register_mod = {
	dmm_create_global_country_if_needed = yes
	event_target:dmm_global_country = {
		if = {
			limit = {
				NOT = {
					any_owned_leader = {
						has_leader_flag = $DMM_FLAG$
					}
				}
			}
			create_leader = {
				class = general
				name = random
				species = event_target:dmm_global_species
				immortal = yes
			}
			last_created_leader = {
				set_name = $DMM_NAME$
				set_leader_flag = $DMM_FLAG$
			}
		}
	}
}

# FLAG = unique flag across all mods
dmm_deregister_mod = {
	dmm_create_global_country_if_needed = yes
	event_target:dmm_global_country = {
		random_owned_leader = {
			limit = {
				has_leader_flag = $DMM_FLAG$
			}
			kill_leader = {
				type = general
			}
		}
	}
}

# FLAG = unique flag across all mods
dmm_show_button_all = {
	dmm_create_global_country_if_needed = yes
	event_target:dmm_global_country = {
		random_owned_leader = {
			limit = {
				has_leader_flag = $DMM_FLAG$
			}
			remove_leader_flag = dmm_hide_all
		}
	}
}

# FLAG = unique flag across all mods
dmm_hide_button_all = {
	dmm_create_global_country_if_needed = yes
	event_target:dmm_global_country = {
		random_owned_leader = {
			limit = {
				has_leader_flag = $DMM_FLAG$
			}
			set_leader_flag = dmm_hide_all
		}
	}
}

# FLAG = unique flag across all mods
# this = country
dmm_add_button_exception = {
	dmm_create_global_country_if_needed = yes
	event_target:dmm_global_country = {
		random_owned_leader = {
			limit = {
				has_leader_flag = $DMM_FLAG$
			}
			set_leader_flag = dmm_display_exception_for_@prevprev
		}
	}
}

# FLAG = unique flag across all mods
# this = country
dmm_remove_button_exception = {
	dmm_create_global_country_if_needed = yes
	event_target:dmm_global_country = {
		random_owned_leader = {
			limit = {
				has_leader_flag = $DMM_FLAG$
			}
			remove_leader_flag = dmm_display_exception_for_@prevprev
		}
	}
}

# INDEX = index of the leader
dmm_call_mod_menu = {
	dmm_close_dmm_menu = yes
	fire_on_action = {
		on_action = dmm_mod_selected
		scopes = {
			from = event_target:dmm_leader_$INDEX$
		}
	}
}

dmm_close_dmm_menu = {
	dmm_clear_variable_list = yes
	set_variable = {
		which = dmm_starting_leader_index
		value = 0
	}
	set_variable = {
		which = dmm_leader_index
		value = 0
	}
	remove_country_flag = dmm_opened
}

dmm_create_global_country_if_needed = {
	if = {
		limit = {
			NOT = {
				exists = event_target:dmm_global_country
			}
		}
		create_species = {
			class = MOL
			portrait = mol17
			effect = {
				save_global_event_target_as = dmm_global_species
			}
		}
		create_country = {
			type = dmm_global_country
			name = "DMM Global Event Country"
			species = event_target:dmm_global_species
			effect = {
				save_global_event_target_as = dmm_global_country
			}
		}
	}
}

dmm_clear_variable_list = {
	set_variable = {
		which = dmm_leader_0
		value = 0
	}
	set_variable = {
		which = dmm_leader_1
		value = 0
	}
	set_variable = {
		which = dmm_leader_2
		value = 0
	}
	set_variable = {
		which = dmm_leader_3
		value = 0
	}
	set_variable = {
		which = dmm_leader_4
		value = 0
	}
	set_variable = {
		which = dmm_leader_5
		value = 0
	}
	set_variable = {
		which = dmm_leader_6
		value = 0
	}
	set_variable = {
		which = dmm_leader_7
		value = 0
	}
	set_variable = {
		which = dmm_leader_8
		value = 0
	}
	set_variable = {
		which = dmm_leader_9
		value = 0
	}
	set_variable = {
		which = dmm_leader_a
		value = 0
	}
	set_variable = {
		which = dmm_leader_b
		value = 0
	}
	set_variable = {
		which = dmm_leader_c
		value = 0
	}
	set_variable = {
		which = dmm_leader_d
		value = 0
	}
	set_variable = {
		which = dmm_leader_e
		value = 0
	}
	set_variable = {
		which = dmm_leader_f
		value = 0
	}
}

# this = caller country
# prev = leader
# dmm_leader_index < 0
dmm_store_leader_list = {
	if = {
		limit = {
			check_variable = {
				which = dmm_leader_index
				value < -8
			}
		}
		if = {
			limit = {
				check_variable = {
					which = dmm_leader_index
					value < -12
				}
			}
			if = {
				limit = {
					check_variable = {
						which = dmm_leader_index
						value < -14
					}
				}
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -15
						}
					}
					dmm_store_leader = {
						INDEX = f
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = e
					}
				}
			}
			else = {
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -13
						}
					}
					dmm_store_leader = {
						INDEX = d
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = c
					}
				}
			}
		}
		else = {
			if = {
				limit = {
					check_variable = {
						which = dmm_leader_index
						value < -10
					}
				}
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -11
						}
					}
					dmm_store_leader = {
						INDEX = b
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = a
					}
				}
			}
			else = {
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -9
						}
					}
					dmm_store_leader = {
						INDEX = 9
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = 8
					}
				}
			}
		}
	}
	else = {
		if = {
			limit = {
				check_variable = {
					which = dmm_leader_index
					value < -4
				}
			}
			if = {
				limit = {
					check_variable = {
						which = dmm_leader_index
						value < -6
					}
				}
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -7
						}
					}
					dmm_store_leader = {
						INDEX = 7
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = 6
					}
				}
			}
			else = {
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -5
						}
					}
					dmm_store_leader = {
						INDEX = 5
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = 4
					}
				}
			}
		}
		else = {
			if = {
				limit = {
					check_variable = {
						which = dmm_leader_index
						value < -2
					}
				}
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -3
						}
					}
					dmm_store_leader = {
						INDEX = 3
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = 2
					}
				}
			}
			else = {
				if = {
					limit = {
						check_variable = {
							which = dmm_leader_index
							value < -1
						}
					}
					dmm_store_leader = {
						INDEX = 1
					}
				}
				else = {
					dmm_store_leader = {
						INDEX = 0
					}
				}
			}
		}
	}
}

# this = caller country
# prev = leader
# INDEX = 0..f
dmm_store_leader = {
	set_variable = {
		which = dmm_leader_$INDEX$
		value = 1
	}
	prev = {
		save_event_target_as = dmm_leader_$INDEX$
	}
}
