﻿# Story for argead dynasty
# originally made by Petter Vilberg
# adjusted by me

story_argead_invasion = {
	on_setup = {
		historicinvasions_story_setup_effect = { # global start variable, story variables, conditional dissolution protection
			INVADER_DYNN = argead # for story start global variable
			INVADER_TITLE = title:e_argead # title the invader spawns with
		}
		story_owner = {
			argead_maintenance_effect = {
				INVADER_DYNN = argead
				INVADER_CHAR = scope:story.story_owner
				INVADER_TITLE = scope:story.var:invader_title_var
				LANDLESS_YES_NO = no
				STARTING_TIER = duchy
			}
			trigger_event = {
				id = argead_invasion.0200
				months = 1
			}
		}
	}

	on_end = {
		invader_story_on_end_effect = { INVADER_DYNN = argead }
	}

	on_owner_death = {
		# random chance to set variable to end story after ruler N dies, depending on how many story owners there have been in total
		random = {
			chance = 0
			modifier = {
				add = 100
				var:story_owner_counter >= 1 # end story after death of ruler N?
			}
			set_variable = {
				name = end_of_invasion_story
				value = yes
			}
		}
		invader_story_on_death_effect = { INVADER_DYNN = argead }
	}

	# maintenance
	effect_group = {
		days = historicinvasions_story_maintenance_value

		trigger = { always = yes }

		# make sure they have money on hand
		triggered_effect = {
			trigger = { story_owner = { gold < 0 } }
			effect = { story_owner = { add_gold = 500 } }
		}

		# end the story prematurely, because their conquests have been completed
		triggered_effect = {
			trigger = {
				story_owner = { completely_controls_region = special_argead_conquest_region_total }
			}
			effect = {
				debug_log = "ending argead story because the conquest goal has been completed"
				end_story = yes
			}
		}

		# end the story prematurely, because the invader has lost their #th offensive war
		triggered_effect = {
			trigger = {
				NOT = { has_game_rule = historicinvasions_invasion_ends_after_defeat_disabled }
			}
			effect = {
				historicinvasions_invasion_ends_after_defeat_effect = yes
			}
		}
	}

	#Start a new war if none is ongoing
	effect_group = {
		days = { 140 280 }

		trigger = { story_owner = { is_ai = yes } }

		first_valid = {
			triggered_effect = {
				trigger = {
					story_owner = { has_character_flag = invasion_ends_after_player_win }
				}
				effect = {
					debug_log = "ending argead story because a player was able to defend against the invader"
					end_story = yes
				}
			}
			### declarations
			# Macedonia
			triggered_effect = {
				trigger = {
					story_owner = {
						should_invader_declare_war_trigger = { INVADER_TITLE = scope:story.var:invader_title_var }
						NOT = { completely_controls_region = special_argead_conquest_region_1 }
					}
				}
				effect = {
					story_owner = {
						war_target_evaluation_and_declaration_effect = {
							INVADER_DYNN = argead
							INVADER_CHAR = scope:story.story_owner
							INVADER_REGION = 1
							INVADER_TARGET_TITLE_TIER = kingdom
							INVADER_RANGE = neighboring_and_across_water
							INVADER_LIEGE_RESTRICTIONS = ""
						}
					}
				}
			}
			# Asia Minor & Levant
			triggered_effect = {
				trigger = {
					story_owner = {
						should_invader_declare_war_trigger = { INVADER_TITLE = scope:story.var:invader_title_var }
						NOT = { completely_controls_region = special_argead_conquest_region_2 }
					}
				}
				effect = {
					story_owner = {
						war_target_evaluation_and_declaration_effect = {
							INVADER_DYNN = argead
							INVADER_CHAR = scope:story.story_owner
							INVADER_REGION = 2
							INVADER_TARGET_TITLE_TIER = kingdom
							INVADER_RANGE = neighboring_and_across_water # cyprus!
							INVADER_LIEGE_RESTRICTIONS = ""
						}
					}
				}
			}
			# Persia
			triggered_effect = {
				trigger = {
					story_owner = {
						should_invader_declare_war_trigger = { INVADER_TITLE = scope:story.var:invader_title_var }
						NOT = { completely_controls_region = special_argead_conquest_region_3 }
					}
				}
				effect = {
					story_owner = {
						war_target_evaluation_and_declaration_effect = {
							INVADER_DYNN = argead
							INVADER_CHAR = scope:story.story_owner
							INVADER_REGION = 3
							INVADER_TARGET_TITLE_TIER = kingdom
							INVADER_RANGE = neighboring
							INVADER_LIEGE_RESTRICTIONS = ""
						}
					}
				}
			}
			# Indus
			triggered_effect = {
				trigger = {
					story_owner = {
						should_invader_declare_war_trigger = { INVADER_TITLE = scope:story.var:invader_title_var }
						NOT = { completely_controls_region = special_argead_conquest_region_4 }
					}
				}
				effect = {
					story_owner = {
						war_target_evaluation_and_declaration_effect = {
							INVADER_DYNN = argead
							INVADER_CHAR = scope:story.story_owner
							INVADER_REGION = 4
							INVADER_TARGET_TITLE_TIER = kingdom
							INVADER_RANGE = neighboring
							INVADER_LIEGE_RESTRICTIONS = ""
						}
					}
				}
			}
		}
	}

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

		trigger = { NOT = { story_owner = { has_title = scope:story.var:invader_title_var } } }

		# either transfer story ownership or end story if the title is not created
		triggered_effect = {
			trigger = { always = yes }
			effect = {
				hi_check_for_valid_story_owner_effect = {
					INVADER_TITLE = scope:story.var:invader_title_var
					STORY_COUNTER_INCREASE = 0
				}
			}
		}
	}

	effect_group = {
		days = 1095
		trigger = { NOT = { has_variable = argead_greek_persian_acceptance_var } }

		triggered_effect = {
			trigger = { story_owner = { completely_controls_region = historicinvasions_persia_region } }
			effect = {
				# cultural acceptance - easier hybridization
				culture:greek = {
					change_cultural_acceptance = {
						target = culture:persian
						value = medium_positive_culture_acceptance # miniscule = 2%, low = 5%, medium = 10%
						desc = cultural_acceptance_gain_event
					}
				}
				culture:greek = {
					change_cultural_acceptance = {
						target = culture:persian
						value = medium_positive_culture_acceptance # miniscule = 2%, low = 5%, medium = 10%
						desc = cultural_acceptance_gain_event
					}
				}
				culture:greek = {
					change_cultural_acceptance = {
						target = culture:persian
						value = medium_positive_culture_acceptance # miniscule = 2%, low = 5%, medium = 10%
						desc = cultural_acceptance_gain_event
					}
				}
				# only once
				set_variable = argead_greek_persian_acceptance_var
			}
		}
	}

	# convert holy sites and perhaps some other counties
	effect_group = {
		months = { 10 14 }

		trigger = {
			story_owner = {
				religion = faith:hellenic_pagan.religion # includes reformed version
				realm_size > 40
			}
		}

		# holy sites
		triggered_effect = {
			trigger = {
				story_owner = {
					any_sub_realm_barony = {
						is_holy_site_of = scope:story.story_owner.faith
						NOT = { faith = scope:story.story_owner.faith }
						count > 0
					}
				}
			}
			effect = {
				story_owner = {
					random_sub_realm_barony = {
						limit = {
							is_holy_site_of = scope:story.story_owner.faith
							NOT = { faith = scope:story.story_owner.faith }
						}
						county = { set_county_faith = scope:story.story_owner.faith }
					}
				}
			}
		}

		# other counties
		triggered_effect = {
			trigger = {
				story_owner = {
					any_sub_realm_county = {
						NOT = { faith = scope:story.story_owner.faith }
						count > 0
					}
				}
			}
			effect = {
				story_owner = {
					random_sub_realm_county = {
						limit = {
							NOT = { faith = scope:story.story_owner.faith }
						}
						random = {
							chance = {
								value = 100
								subtract = development_level
								subtract = development_level
								max = 100
								min = 0
							}
							set_county_faith = scope:story.story_owner.faith
						}
					}
				}
			}
		}
	}
}