﻿on_game_start = {
	on_actions = {
		histmod_start
		histmod_rollo_initial_setup
	}
}

on_game_start_after_lobby = {
	on_actions = {
		histmod_rollo_setup
		histmod_russia_setup
		histmod_karling_setup
		histmod_salic_law_setup
		histmod_aquitaine_setup
		histmod_harald_setup
	}
}

histmod_start = {
	effect = {
        set_global_variable = {
			name = histmod_is_loaded
			value = yes
		}
		# error suppression
        if = {
            limit = {
				exists = global_var:histmod_is_loaded
				always = no
			}
			# for RICE compatibility
			set_global_variable = is_RICE_loaded_global_variable
			# for LMF compatibility
        	set_global_variable = lmf_is_loaded
			# for More Interactive Vassals compatibility
			set_global_variable = miv_is_loaded
			# for Dark Ages compatibility
			set_global_variable = darkages_is_loaded
		}
	}
}

histmod_rollo_initial_setup = {
	events = {
		histmod.0059 # Initial Rollo setup (before game rules are checked)
	}
}

histmod_rollo_setup = {
	events = {
		histmod.0060 # After game start Rollo setup
	}
}

histmod_russia_setup = {
	trigger = {
		game_start_date = 867.1.1
	}
	effect = {
		character:40605 = {
			add_trait = adventurer #Should probably have always had this
			add_character_flag = used_to_be_conqueror # So he doesn't become a conqueror
			if = {
				limit = {
					NOT = { has_game_rule = no_stronger_rurikid }
				}
				add_prowess_skill = 10
				add_trait = physique_good_1
				trigger_event = { id = histmod.0350 days = { 4380 4700 } } #he dies sometime in 879
				character:40606 = {
					add_trait = physique_good_1
					add_prowess_skill = 12
					add_trait = adventurer_follower
				}
				if = {
					limit = { has_fp1_dlc_trigger = yes }
					spawn_army = {
						name = varangian_novgorod_troops_name
						levies = 1000
						men_at_arms = {
							type = huscarl
							stacks = 5
						}
						men_at_arms = {
							type = varangian_veterans
							stacks = 5
						}
						men_at_arms = {
							type = armored_footmen
							stacks = 3
						}
						location = province:2157
						origin = province:2157
						inheritable = yes
						uses_supply = no
					}
				}
				else = {
					spawn_army = {
						name = varangian_novgorod_troops_name
						levies = 1000
						men_at_arms = {
							type = huscarl
							stacks = 5
						}
						men_at_arms = {
							type = armored_footmen
							stacks = 5
						}
						location = province:2157
						origin = province:2157
						inheritable = yes
						uses_supply = no
					}
				}
			}
		}
		character:6811 = {
			add_trait = adventurer #Should probably have always had this
			add_prowess_skill = 10
		}
		character:163118 = { #Alania strives for independence
			set_relation_rival = {
				target = character:74025
				reason = rival_historical
			}
			if = {
				limit = {
					OR = {
						has_game_rule = okay_alan_independence_war
						has_game_rule = no_alan_independence_war
					}
				}
				spawn_army = {
					name = alan_horse_archer_troops_name
					location = capital_province
					uses_supply = no
					inheritable = yes
					
					men_at_arms = {
						type = horse_archers
						stacks = 5
					}
					men_at_arms = {
						type = horse_archers
						stacks = 5
					}
					men_at_arms = {
						type = horse_archers
						stacks = 5
					}
				}
			}
		}
	}
}

histmod_karling_setup = {
	trigger = {
		NOT = { has_game_rule = no_karling_decline_rule }
		game_start_date = 867.1.1
	}
	effect = {
		# start the story cycle on Charles the Bald
		character:90104 = {
			create_story = { type = histmod_karling_story_cycle }
		}
		if = {
			limit = {
				OR = {
					has_game_rule = all_karling_decline_rule
					has_game_rule = events_karling_decline_rule
				}
			}
			# Carloman (one of Charles the Bald's sons) should already be a monk
			character:42021 = {  add_trait = devoted }
			# Ludwig the German and Louis the Younger do not have more children
			if = {
				limit = { exists = global_var:lmf_is_loaded }
				character:90107 = { add_character_flag = lmf_no_children }
				character:30228 = { add_character_flag = lmf_no_children }
			}
		}
	}
}

histmod_salic_law_setup = {
	trigger = {
		OR = {
			has_game_rule = yes_salic_law_rule
			has_game_rule = ahist_salic_law_rule
		}
	}
	effect = {
		every_ruler = {
			limit = {
				exists = capital_province
				highest_held_title_tier >= tier_duchy
				NOR = { 
					has_culture = culture:occitan
					capital_province = { geographical_region = world_middle_east }
				}
				culture = {
					OR = { 
						has_cultural_pillar = heritage_frankish
						has_cultural_pillar = heritage_central_germanic
					}
				}
				has_religion = religion:christianity_religion
				has_government = feudal_government
			}
			every_held_title = {
				limit = {
					tier >= tier_duchy
					NOT = { has_title_law = male_only_law }
				}
				add_title_law = male_only_law
			}
			if = {
				limit = {
					NOT = { has_realm_law = male_only_law }
				}
				add_realm_law_skip_effects = male_only_law
			}
		}
	}
}

histmod_aquitaine_setup = {
	trigger = {
		has_game_rule = yes_aquitaine_subsumed
	}
	effect = {
		title:k_aquitaine ?= {
			every_in_de_jure_hierarchy = {
				limit = { tier = tier_duchy }
				set_de_jure_liege_title = title:k_france
			}
		}
	}
}

histmod_harald_setup = {
	trigger = {
		has_game_rule = yes_harald_fairhair_boost
		NOR = {
			has_game_rule = no_conquerors_frequency
			exists = title:k_norway.holder
		}
	}
	effect = {
		character:144000 = {
			add_gold = 500
			add_prestige = 800
			set_sexuality = heterosexual
			add_prowess_skill = 15
			add_martial_skill = 5
			add_character_flag = { flag = immune_to_disease years = 20 }
			add_character_flag = histmod_seeking_norway
			create_story = histmod_conqueror_story_cycle
			spawn_army = {
				name = harald_vestfold_troops_name
				levies = 500
				men_at_arms = {
					type = huscarl
					stacks = 3
				}
				men_at_arms = {
					type = armored_footmen
					stacks = 2
				}
				location = province:286
				origin = province:286
				inheritable = yes
				uses_supply = no
			}
			spawn_army = {
				name = harald_vestfold_troops_name
				levies = 500
				men_at_arms = {
					type = huscarl
					stacks = 3
				}
				men_at_arms = {
					type = armored_footmen
					stacks = 2
				}
				location = province:286
				origin = province:286
				inheritable = yes
				uses_supply = no
			}
		}
	}
}

# Called from code once every five years for "playable" (count+) characters.
# Root is the character
five_year_playable_pulse = {
	on_actions = {
		delay = { days = { 45 75 } }
		scandinavian_adventure_pulse_check
	}
}

scandinavian_adventure_pulse_check = {
	trigger = {
		has_fp1_dlc_trigger = yes
		NOT = { has_game_rule = fp1_scandi_adventurers_off }
		culture = {
			has_cultural_pillar = heritage_north_germanic
			NOT = { has_cultural_era_or_later = culture_era_early_medieval }
		}
	}
	events = {
		histmod.0050
	}
}

# When the Normans are created
on_character_culture_change = {
	on_actions = {
		delay = { days = { 7 14 } }
		new_norman_culture_check
	}
}

new_norman_culture_check = {
	trigger = {
		game_start_date = 867.1.1
		culture = culture:norman
		completely_controls = title:d_normandy
		NOT = {	
			is_target_in_global_variable_list = {
				name = unavailable_unique_decisions
				target = flag:flag_formed_normandy_decision_effect
			}
		}
	}
	events = {
		histmod.0105
	}
}

# For Rurikid vs. Khazaria wars
on_war_started = {
	on_actions = {
		delay = { days = 1 }
		on_rurikid_khazaria_war
	}
}

on_rurikid_khazaria_war = {
	trigger = {
		game_start_date = 867.1.1
		has_game_rule = yes_full_stronger_rurikid
		scope:defender = {
			is_ai = yes
			primary_title = { this = title:e_caspian-pontic_steppe }
		}
		scope:attacker = {
			is_ai = yes
			is_rurikid_candidate_ruler = yes
		}
		NOT = {	
			is_target_in_global_variable_list = {
				name = unavailable_unique_decisions
				target = flag:had_rurikid_khazaria_war
			}
		}
	}
	effect = {
		if = {
			limit = { scope:attacker.strength_with_relevant_allies_vs_war_defender_value < scope:defender.strength_with_relevant_allies_vs_war_attacker_value }
			add_to_global_variable_list = {
				name = unavailable_unique_decisions
				target = flag:had_rurikid_khazaria_war
			}
			spawn_army = {
				name = varangian_novgorod_troops_name
				location = scope:attacker.capital_province
				war = scope:war
				uses_supply = no
				inheritable = no
				levies = {
					value = 0
					add = histmod_war_strength_difference_value
					min = 0
					max = 10000
				}
			}
			spawn_army = {
				name = varangian_novgorod_troops_name
				location = scope:attacker.capital_province
				war = scope:war
				uses_supply = no
				inheritable = no
				levies = {
					value = 0
					add = histmod_war_strength_difference_value
					min = 0
					max = 10000
				}
			}
			spawn_army = {
				name = varangian_novgorod_troops_name
				location = scope:attacker.capital_province
				war = scope:war
				uses_supply = no
				inheritable = no
				levies = {
					value = 0
					add = histmod_war_strength_difference_value
					min = 0
					max = 10000
				}
			}
		}
	}
}

# For the Treaty of Meerssen & Ahistorical Salic Law & Karling Overthrow
on_death = {
	on_actions = {
		treaty_of_meerssen
		female_salic_law_check
		karling_overthrow_check
	}
}

treaty_of_meerssen = {
	trigger = {
		this = character:144998
		OR = {
			has_game_rule = all_karling_decline_rule
			has_game_rule = events_karling_decline_rule
		}
		is_ai = yes
		is_landed = yes
		primary_title = title:k_lotharingia
		exists = primary_heir
	}
	events = {
		histmod.0301
	}
}

female_salic_law_check = {
	trigger = {
		has_game_rule = ahist_salic_law_rule
		is_landed_or_landless_administrative = yes
		has_realm_law = male_only_law
	}
	effect = {
		every_child = {
			even_if_dead = yes
			limit = {
				is_female = yes
				OR = {
					NOT = { has_trait = bastard }
					root = { is_female = yes }
				}
			}
			add_to_temporary_list = daughters 
		}

		if = {
			limit = {
				list_size = { name = daughters value > 0 }
			}
			every_held_title = {
				limit = { tier >= tier_county }
				save_temporary_scope_as = parent_title
				every_in_list = {
					list = daughters
					if = {
						limit = { is_alive = yes }
						add_pressed_claim = scope:parent_title
					}
					else = {
						every_child = {
							add_unpressed_claim = scope:parent_title
						}
					}
				}
			}
		}
	}
}

karling_overthrow_check = {
	trigger = {
		OR = {
			primary_title = title:k_france
			primary_title = title:k_aquitaine
			primary_title = title:k_east_francia
			primary_title = title:k_italy
			primary_title = title:k_lotharingia
			primary_title = title:k_bavaria
			primary_title = title:k_burgundy
		}
		game_start_date = 867.1.1
		is_ai = yes
		dynasty = { this = dynasty:25061 } #Karling
	}
	events = {
		histmod.0310
	}
}

# To track Histmod Conqueror losses
on_war_won_attacker = {
	on_actions = {
		histmod_defender_loss_check
	}
}

on_war_won_defender = {
	on_actions = {
		histmod_attacker_loss_check
	}
}

histmod_defender_loss_check = {
	trigger = {
		scope:defender = {
			any_owned_story = { type = histmod_conqueror_story_cycle }
		}
	}
	effect = {
		scope:defender = {
			if = {
				limit = {
					NOT = { has_variable = lost_wars }
				}
				set_variable = { name = lost_wars value = 1 }
			}
			else = {
				change_variable = { name = lost_wars add = 1 }
			}
		}
	}
}

histmod_attacker_loss_check = {
	trigger = {
		scope:attacker = {
			any_owned_story = { type = histmod_conqueror_story_cycle }
		}
	}
	effect = {
		scope:attacker = {
			if = {
				limit = {
					NOT = { has_variable = lost_wars }
				}
				set_variable = { name = lost_wars value = 1 }
			}
			else = {
				change_variable = { name = lost_wars add = 1 }
			}
		}
	}
}

# To start up the Hauteville invasion of Sicily
on_county_culture_change = {
	on_actions = {
		hauteville_start_check
	}
}

hauteville_start_check = {
	trigger = {
		game_start_date < 960.1.1
		root = title:c_avranches
		culture = culture:norman
	}
	effect = {
		title:c_avranches = {
			trigger_event = { id = histmod.0500 years = 20 }
		}
	}
}

# So that the Hautevilles remain feudal and feudal elective
on_title_gain = {
	on_actions = {
		hauteville_title_gain_check
	}
}

hauteville_title_gain_check = {
	trigger = {
		scope:title = { is_titular = no }
		primary_title = scope:title
		exists = global_var:is_hauteville_dynasty
		dynasty ?= global_var:is_hauteville_dynasty
	}
	effect = {
		# send appropriate courtiers back
		every_courtier = {
			limit = {
				has_variable = remain_at_court
				var:remain_at_court = {
					exists = holder
					holder = { is_ai = yes }
				}
			}
			save_temporary_scope_as = return_home
			if = {
				limit = {
					is_married = yes
					primary_spouse = {
						NOT = { has_variable = remain_at_court }
						is_courtier_of = root
					}
				}
				scope:return_home.var:remain_at_court.holder = { add_courtier = scope:return_home.primary_spouse }
			}
			every_child = {
				limit = {
					is_adult = no
					NOT = { has_variable = remain_at_court }
					is_courtier_of = root
				}
				scope:return_home.var:remain_at_court.holder = { add_courtier = prev }
			}
			scope:return_home.var:remain_at_court.holder = { add_courtier = scope:return_home }
		}
		
		# make sure feudal and feudal elective
		if = {
			limit = {
				is_ai = yes
				government_has_flag = government_is_administrative
			}
			convert_to_feudalism_from_administrative_effect = yes
			save_scope_as = actor
			trigger_event = ep3_decisions_event.4070
			hidden_effect = {
				every_vassal = {
					trigger_event = { id = ep3_decisions_event.4075 days = 3 }
				}
			}
		}
		if = {
			limit = {
				is_ai = yes
				any_held_title = {
					NOT = { has_title_law = feudal_elective_succession_law }
					title_tier > county
				}
			}
			every_held_title = {
				limit = {
					NOT = { has_title_law = feudal_elective_succession_law }
					tier > tier_county
				}
				add_title_law = feudal_elective_succession_law 
			}
		}
	}
}

