﻿story_mongol_invasion = {
	# by Petter Vilberg
	
	on_setup = {
		story_owner = { # Start conquest of all of Mongolia
			start_wars_for_mongolia_effect = yes
		}
		set_variable = {
			name = succession_counter
			value = 0
		}
	}
#
	on_end = {
		debug_log = "Mongol story ended on:"
		debug_log_date = yes
		set_global_variable = {
			name = mongol_story_has_ended
			value = yes
		}
	}
#
	on_owner_death = {
		story_owner = {
			set_variable = {
				name = special_mongol_empire_conquest_region_prio_1_alpha_var
				value = 0
			}
			set_variable = {
				name = special_mongol_empire_conquest_region_prio_1_var
				value = 0
			}
			set_variable = {
				name = special_mongol_empire_conquest_region_prio_2_var
				value = 0
			}
			set_variable = {
				name = special_mongol_empire_conquest_region_prio_3_var
				value = 0
			}
			set_variable = {
				name = special_mongol_empire_conquest_region_prio_4_var
				value = 0
			}
			set_variable = {
				name = special_mongol_empire_conquest_region_prio_5_var
				value = 0
			}
			set_variable = {
				name = outside_conquest_region_var
				value = 0
			}
			every_realm_county = {
				if = {
					limit = {
						title_province = {
							geographical_region = special_mongol_empire_conquest_region_prio_5
						}
					}
					root.story_owner = {
						change_variable = {
							name = special_mongol_empire_conquest_region_prio_5_var
							add = 1
						}
					}
				}
				else_if = {
					limit = {
						title_province = {
							geographical_region = special_mongol_empire_conquest_region_prio_4
						}
					}
					root.story_owner = {
						change_variable = {
							name = special_mongol_empire_conquest_region_prio_4_var
							add = 1
						}
					}
				}
				else_if = {
					limit = {
						title_province = {
							geographical_region = special_mongol_empire_conquest_region_prio_3
						}
					}
					root.story_owner = {
						change_variable = {
							name = special_mongol_empire_conquest_region_prio_3_var
							add = 1
						}
					}
				}
				else_if = {
					limit = {
						title_province = {
							geographical_region = special_mongol_empire_conquest_region_prio_2
						}
					}
					root.story_owner = {
						change_variable = {
							name = special_mongol_empire_conquest_region_prio_2_var
							add = 1
						}
					}
				}
				else_if = {
					limit = {
						title_province = {
							geographical_region = special_mongol_empire_conquest_region_prio_1
						}
					}
					root.story_owner = {
						change_variable = {
							name = special_mongol_empire_conquest_region_prio_1_var
							add = 1
						}
					}
				}
				else_if = {
					limit = {
						title_province = {
							geographical_region = special_mongol_empire_conquest_region_prio_1_alpha
						}
					}
					root.story_owner = {
						change_variable = {
							name = special_mongol_empire_conquest_region_prio_1_alpha_var
							add = 1
						}
					}
				}
				else = {
					root.story_owner = {
						change_variable = {
							name = outside_conquest_region_var
							add = 1
						}
					}
				}
			}
		}
		# Weighted random chance to end the story/break up the Empire
		random = {
			chance = 0
			#Pure realm size - Mongol empire is historical breakup size
			modifier = {
				add = 20
				story_owner = {
					realm_size >= 1087
				}
			}
			#Pure realm size - Mongol empire is max extent size
			modifier = {
				add = 20
				story_owner = {
					realm_size >= 1474
				}
			}
			#Pure realm size - Mongol empire is at total bonus size
			modifier = {
				add = 30
				story_owner = {
					realm_size >= 1725
				}
			}
			modifier = { # If the empire is very successful, increase the chance
				add = 10
				story_owner = {
					#Half of total county count
					var:special_mongol_empire_conquest_region_prio_1_alpha_var >= 80
					var:special_mongol_empire_conquest_region_prio_1_var >= 60
					var:special_mongol_empire_conquest_region_prio_2_var >= 100
					#Just a third
					var:special_mongol_empire_conquest_region_prio_3_var >= 30
					var:special_mongol_empire_conquest_region_prio_4_var >= 100
					var:special_mongol_empire_conquest_region_prio_5_var >= 120
				}
			}
			modifier = { # If the empire is EXTREMELY successful, increase the chance
				add = 20
				story_owner = {
					#Three quarters of total county count
					var:special_mongol_empire_conquest_region_prio_1_alpha_var >= 120
					var:special_mongol_empire_conquest_region_prio_1_var >= 75
					var:special_mongol_empire_conquest_region_prio_2_var >= 200
					#Just half
					var:special_mongol_empire_conquest_region_prio_3_var >= 45
					var:special_mongol_empire_conquest_region_prio_4_var >= 150
					var:special_mongol_empire_conquest_region_prio_5_var >= 180
					var:outside_conquest_region_var >= 100
				}
			}
			modifier = {
				add = 20
				var:succession_counter > 1
			}
			modifier = {
				add = 30
				var:succession_counter > 2
			}
			modifier = { # Historical point
				add = 30
				var:succession_counter > 3
			}
			modifier = { # Guaranteed if there have been five successions
				add = 20
				var:succession_counter > 4
			}
			set_variable = {
				name = end_of_story
				value = yes
			}
		}
		if = {
			limit = {
				exists = var:end_of_story
			}
			# Do the breakup of the empire if possible
			story_owner = {
				if = {
					limit = {
						realm_size >= 50
					}
					debug_log = "Trying to break up the Mongol Empire"
					break_up_mongol_empire_effect = yes
				}
				else = {
					save_scope_as = old_khan
					player_heir = {
						save_scope_as = new_khan
					}
					every_player = {
						trigger_event = mongol_invasion.1005 # Small end to story
					}
				}
			}
			end_story = yes
		}
		else = {
			change_variable = {
				name = succession_counter
				add = 1
			}
			# Handle story succession
			story_owner = {
				save_scope_as = old_khan # for news events
				if = {
					limit = {
						any_child = { # if the Khan has a reasonable heir...
							is_primary_heir_of = scope:story.story_owner
						}
					}
					random_child = {
						limit = {
							is_primary_heir_of = scope:story.story_owner		
						}
						save_scope_as = new_khan # for news events
						save_scope_as = new_story_owner # pass chain to appropriate target
						add_character_flag = {
							flag = gain_mongol_succession_dread
							days = 2
						}
						add_character_modifier = {
							modifier = the_great_khan_modifier
						}
					}
					every_player = {
						trigger_event = {
							id = mongol_invasion.1001
							days = 1
						}
					}
				}
				else_if = {
					limit = {
						dynasty = {
							any_dynasty_member = { # if the Khan has some other heir (not family?)
								is_primary_heir_of = scope:story.story_owner
							}
						}
					}				
					dynasty = {
						random_dynasty_member = {
							limit = {
								is_primary_heir_of = scope:story.story_owner
							}
							save_scope_as = new_khan # for news events
							save_scope_as = new_story_owner # pass chain to appropriate target
							add_character_flag = {
								flag = gain_mongol_succession_dread
								days = 2
							}
							add_character_modifier = {
								modifier = the_great_khan_modifier
							}
						}
					}
					every_player = {
						trigger_event = {
							id = mongol_invasion.1001
							days = 1
						}
					}
				}
				else_if = { # If the empire passes out of the original dynasty, the story will automatically end
					limit = {
						NOT = {
							dynasty = {
								any_dynasty_member = { # if the Khan has some other heir (not family?)
									is_primary_heir_of = scope:story.story_owner
								}
							}
						}
					}
					scope:story.story_owner.primary_heir = {
						save_scope_as = new_khan
					}
					every_player = {
						trigger_event = {
							id = mongol_invasion.1001
							days = 1
						}
					}
				}
			}
			if = {
				limit = { exists = scope:new_story_owner }
				make_story_owner = scope:new_story_owner
				scope:new_story_owner = {
					# Delayed firing of spawning new event troops
					trigger_event = {
						id = mongol_invasion.0100
						days = 1
					}
				}
				debug_log = "Successfully replaced the Mongol Khan"
				debug_log_date = yes
				debug_log_scopes = yes
			}
			else = {
				# Make sure the empire breaks up as best as possible
				story_owner = {
					if = {
						limit = {
							realm_size >= 50
						}
					}
					debug_log = "Due to failing to replace the Khan with a Temujin successor, now trying to break up the empire"
					break_up_mongol_empire_effect = yes
				}

				end_story = yes
				debug_log = "Failed to replace the Mongol Khan"
				debug_log_date = yes
				debug_log_scopes = yes
			}
		}
		story_owner = {
			clear_variable_list = special_mongol_empire_conquest_region_prio_1_alpha_var
			clear_variable_list = special_mongol_empire_conquest_region_prio_1_var
			clear_variable_list = special_mongol_empire_conquest_region_prio_2_var
			clear_variable_list = special_mongol_empire_conquest_region_prio_3_var
			clear_variable_list = special_mongol_empire_conquest_region_prio_4_var
			clear_variable_list = special_mongol_empire_conquest_region_prio_5_var
			clear_variable_list = outside_conquest_region_var
		}
	}



	#Start a new war if none is ongoing
	effect_group = {
		days = { 30 50 }

		trigger = {
			story_owner = {
				is_at_war = no
				gold > 0
				any_held_title = {
					this = title:e_mongol_empire
				}
			}
		}

		triggered_effect = {
			trigger = {
				story_owner = {
					is_ai = yes
				}
			}
			effect = {
				if = {
					limit = {
						has_mpo_dlc_trigger = yes
					}
					story_owner = {
						gok_war_target_evaluation_and_declaration_effect = yes
					}
				}
				else = {
					story_owner = {
						mongol_war_target_evaluation_and_declaration_effect = yes
					}
				}
				debug_log = "The story started a new war for the Mongols"
				debug_log_date = yes
				story_owner = {
					save_scope_as = owner
				}
				debug_log_scopes = yes
			}
		}
	}

	# Story handling in case of succession weirdness
	effect_group = {
		days = 180

		trigger = {
			story_owner = {
				NOT = {
					any_held_title = {
						this = title:e_mongol_empire
					}
				}
			}
		}

		triggered_effect = {
			trigger = { exists = title:e_mongol_empire }
			effect = {
				if = {
					limit = {
						title:e_mongol_empire.holder = {
							culture = culture:mongol
						}
					}
					make_story_owner = title:e_mongol_empire.holder
				}
				else = {
					end_story = yes
				}
			}
		}

		triggered_effect = {
			trigger = { NOT = { exists = title:e_mongol_empire } }
			effect = {
				end_story = yes
			}
		}
	}

	# Set up Mongol Empire de jure stuff
	effect_group = {
		days = 180

		trigger = {
			NOT = { exists = var:has_updated_mongolia_de_jure }
			trigger_if = {
				limit = {
					title:e_mongolia = {
						any_de_jure_county = {
							count >= 3
						}
					}
				}
				title:e_mongolia = {
					any_in_de_jure_hierarchy = {
						continue = { tier > tier_county }
						tier = tier_county
						holder.top_liege = scope:story.story_owner
						count > 3
					}
				}
			}	
			story_owner.capital_county.empire = {
				any_in_de_jure_hierarchy = {
					continue = { tier > tier_county }
					tier = tier_county
					holder.top_liege = scope:story.story_owner
					count > 5
				}
			}
		}

		triggered_effect = {
			trigger = {
				always = yes
			}

			effect = {
				title:e_mongolia = {
					every_in_de_jure_hierarchy = {
						limit = {
							tier = tier_kingdom
						}
						set_de_jure_liege_title = title:e_mongol_empire
					}
				}
				if = {
					limit = {
						exists = title:e_mongolia.holder
					}
					title:e_mongolia.holder = {
						destroy_title = title:e_mongolia
					}
				}
				if = {
					limit = {
						story_owner.capital_county.empire = {
							NOT = {
								this = title:e_mongol_empire
							}
						}
					}
					story_owner.capital_county.empire = {
						save_scope_as = new_de_jure
					}
					scope:new_de_jure = {
						every_in_de_jure_hierarchy = {
							limit = {
								tier = tier_kingdom
							}
							set_de_jure_liege_title = title:e_mongol_empire
						}
					}
				}

				set_variable = {
					name = has_updated_mongolia_de_jure
					value = yes
				}
			}
		}
	}
}
