namespace = great_holy_war

### Great Holy Wars Events
# by Flavio Verna
# updated by Ewan Cowhig Croft
# 0001 - A Great Holy War is declared.
# 0003 - Players informed of the start of the preparation phase of a GHW.
# 0004 - Sponsor selects a new target Kingdom.
# 0010 - A Faith unlocks GHWs for its Religion.
# 0015 - Excommunication is lifted for joining a GHW.
# 0016 - Sponsor admonishes ruler for unpledging from a GHW.
# 0017 - Confirm unpledging.
# 0018 - Confirm pledging.
# 0020 - AI rulers pledge to Undirected GHW.
# 0092 - AI rulers pledge to Directed GHW.
# 0090 - Holy Orders pledging to GHW.
# 0021 - AI rulers counterpledge to Undirected GHW.
# 0093 - AI rulers counterpledge to Directed GHW.
# 0091 - Holy Orders counterpledging to GHW.
# 0022, 0023 - The Pope calls out unpledged player.
# 0024 - Dead Recipient is replaced.
# 0025 - Converted Recipient is replaced.
# 0026, 0027 - A Beneficiary is selected for pledged AI rulers.
# 0028 - Resetting a Beneficiary upon death.
# 0029 - Resetting a Beneficiary upon conversion.
# 0030 - Resetting a Beneficiary due to illness, excommunication, inheritance or celibacy vow.
# 0040 - Player donates money to the GHW War Chest.
# 0050 - GHW preparation phase starts (defender).
# 0051 - GHW was declared.
# 0052 - GHW was won.
# 0053 - GHW was lost.
# 0055 - GHW failed to start.
# 0060 - Crusader trait gained.
# 0058 - Crusader trait lost.
# 0061 - Beneficiaries rewarded upon GHW victory.
# 0080 - GHW sponsor is replaced upon death.
# 0081, 0082 - Player redirected GHW during preparation phase.

# The Sponsor declares a Great Holy War
great_holy_war.0001 = {
	hidden = yes
	scope = faith
	
	trigger = {
		has_doctrine = doctrine_spiritual_head
		save_temporary_scope_as = the_faith
		exists = religious_head
		NOR = {
			exists = great_holy_war
			exists = var:variable_ghw_cooldown
			religion = { exists = var:variable_first_ghw_cooldown } # Do not event spam after Crusades have been just unlocked.
		}
		religious_head = { is_imprisoned = no }
		religion = { exists = var:variable_ghw_unlocked } #Activated by event for every religion.
		suitable_faith_for_undirected_ghw_trigger = yes #Right combinations of Doctrines to have GHWs. And a valid target exists
	}
	
	immediate = {
		save_scope_as = the_faith

		#Determine Sponsor.
		religious_head = { save_scope_as = ghw_sponsor }
		determine_ghw_target_effect = { FAITH = scope:the_faith }

		# Launch the preparation phase
		start_great_holy_war = {
			target_character = scope:target_character
			target_title = scope:target_kingdom
			delay = { 365 545 }
		}
		scope:target_character.faith = { save_scope_as = target_faith } #Used for counterpledges.

		great_holy_war = {
			set_war_declarer = scope:ghw_sponsor
			if = {
				limit = { is_directed_ghw = no }
				undirected_ghw_recipient_selection_effect = yes
			}
		}
		if = {
			limit = { scope:ghw_sponsor.gold > 0 }
			great_holy_war = {
				change_war_chest_gold = {
					value = scope:ghw_sponsor.gold
					divide = 2
					max = 5000
				}
			}
			scope:ghw_sponsor = {
				remove_short_term_gold = {
					value = gold
					divide = 2
					max = 5000
				}
			}
		}
		great_holy_war = {
			pledge_attacker = scope:ghw_sponsor
			set_variable = {
				name = redirect_cost
				value = 500
			}
		}
		#If no Claimant or Title Holder is available to be the Papal choice and the Crusade has not proceeded far enough to have a favorite beneficiary, select a fallback Recipient so that the CB's tooltip does not appear incomplete.
		if = { #Random Courtier in the Pope's court.
			limit = {
				NOT = { exists = scope:the_faith.great_holy_war.ghw_title_recipient }
				exists = scope:ghw_sponsor
				exists = scope:the_faith.great_holy_war
				scope:ghw_sponsor = {
					any_courtier = {
						is_adult = yes
						is_ai = yes
						NOR = {
							has_trait = excommunicated
							has_trait = incapable
							has_trait = devoted
						}
						faith = scope:the_faith
					}
				}
			}
			scope:ghw_sponsor = {
				random_courtier = {
					alternative_limit = {
						scope:the_faith = { has_doctrine = doctrine_gender_male_dominated }
						is_male = yes
						is_adult = yes
						is_ai = yes
						NOR = {
							has_trait = excommunicated
							has_trait = incapable
							has_trait = devoted
						}
						faith = scope:the_faith
					}
					alternative_limit = {
						scope:the_faith = { has_doctrine = doctrine_gender_female_dominated }
						is_female = yes
						is_adult = yes
						is_ai = yes
						NOR = {
							has_trait = excommunicated
							has_trait = incapable
							has_trait = devoted
						}
						faith = scope:the_faith
					}
					limit = {
						is_adult = yes
						is_ai = yes
						NOR = {
							has_trait = excommunicated
							has_trait = incapable
							has_trait = devoted
						}
						faith = scope:the_faith
					}
					save_scope_as = fallback_recipient
					add_character_flag = flag_is_ghw_fallback_recipient
				}
			}
		}
		else_if = { #Else Generate a fallback recipient.
			limit = {
				NOT = { exists = scope:the_faith.great_holy_war.ghw_title_recipient }
			}
			create_character = {
				location = scope:ghw_sponsor.capital_province
				template = new_commander_character
				faith = scope:the_faith
				culture = scope:ghw_sponsor.culture
				save_scope_as = fallback_recipient
				gender_female_chance = {
					if = {
						limit = {
							scope:the_faith = { has_doctrine = doctrine_gender_male_dominated }
						}
						add = 0
					}
					else_if = {
						limit = {
							scope:the_faith = { has_doctrine = doctrine_gender_female_dominated }
						}
						add = 100
					}
					else = {
						add = 50
					}
				}
			}
			scope:fallback_recipient = { add_character_flag = flag_is_ghw_fallback_recipient }
		}
		great_holy_war = {
			set_variable = {
				name = var_fallback_recipient
				value = scope:fallback_recipient
			}
		}

		every_player = { #Inform players
			limit = {
				faith = scope:the_faith
				highest_held_title_tier >= tier_county
				this != scope:ghw_sponsor
			}
			trigger_event = great_holy_war.0003 #Send event immediately for player, then delay it for all the AIs.
		}
		every_player = { #Inform defending players
			limit = {
				OR = {
					faith = scope:target_faith #All infidels.
					any_liege_or_above = {
						scope:the_faith.great_holy_war = { has_pledged_defender = prev }
					}
					AND = {
						faith != scope:the_faith
						scope:the_faith.great_holy_war = { has_pledged_defender = prev }
					}
				}
			}
			trigger_event = great_holy_war.0050
		}

		#Attackers Pledge to the Crusade. (AI only)
		every_faith_ruler = {
			limit = {
				is_ai = yes
				is_landed = yes
				highest_held_title_tier >= tier_county
				NOR = {
					this = scope:ghw_sponsor
					root.great_holy_war = { has_pledged_attacker = prev }
					target_is_liege_or_above = scope:target_character
				}
			}
			trigger_event = {
				#AI pledging. There is a chance the AI might pledge after the Crusade starts, but it's a lot less likely.
				id = great_holy_war.0020
				days = { 50 450 }
			}
		}
		every_faith_holy_order = {
			trigger_event = {
				#Holy orders always join
				id = great_holy_war.0090
				days = { 30 60 }
			}
		}

		#Defenders Pledge to the Crusade. (AI only)
		scope:target_character = {
			religion = {
				every_faith = {
					every_faith_ruler = {
						limit = {
							is_ai = yes
							is_landed = yes
							highest_held_title_tier >= tier_county
							NOT = {
								root.great_holy_war = { has_pledged_defender = prev }
							}
						}
						trigger_event = {
							#AI counterpledging. Unlike attackers, defenders should be selected much faster during the preparation phase and then stop.
							id = great_holy_war.0021
							days = { 25 150 }
						}
					}
				}
			}
			faith = {
				every_faith_holy_order = {
					trigger_event = {
						# Holy orders always join
						id = great_holy_war.0091
						days = { 30 60 }
					}
				}
			}
		}
		#EP3 Redirected Crusade setup event
		great_holy_war = {
			if = {
				limit = {
					has_ep3_dlc_trigger = yes
					scope:the_faith = { this = faith:catholic }
					ep3_frankokratia_ghw_trigger = yes
					ep3_frankokratia_financier_exists_trigger = yes
				}
				#start with player
				if = {
					limit = {
						any_player = {
							ep3_frankokratia_story_owner_trigger = yes
						}
					}
					random_player = {
						limit = {
							ep3_frankokratia_story_owner_trigger = yes
						}
						trigger_event = {
							id = ep3_frankokratia_events.0001
							days = 20
						}
					}
				}
				#Next, ai with a closely related claimant who will accept
				else_if = {
					limit = {
						scope:the_faith = {
							any_faith_playable_ruler = {
								ep3_frankokratia_story_owner_trigger = yes
								ep3_frankokratia_will_start_trigger = yes
								save_temporary_scope_as = char_temp
								
								#Thorough check for close relation claimants
								OR = {
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
									}
									#In laws of family in court/realm
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
										ep3_frankokratia_transiting_relative_trigger = yes
										any_spouse = {
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#Spouse claimant
									any_spouse = {
										ep3_frankokratia_claimant_trigger = yes
									}
									#Spouse's close family in realm/court
									any_spouse = {
										ep3_frankokratia_transiting_relative_trigger = yes
										any_close_family_member = {
											OR = {
												is_courtier_of = prev
												is_vassal_of = prev
											}
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#friends
									any_relation = {
										type = friend
										ep3_frankokratia_claimant_trigger = yes
									}
									#soulmates
									any_relation = {
										type = soulmate
										ep3_frankokratia_claimant_trigger = yes
									}
								}
							}
						}
					}
					scope:the_faith = {
						ordered_faith_playable_ruler = {
							order_by = {
								value = 0
								add = current_military_strength
							}
							limit = {
								ep3_frankokratia_story_owner_trigger = yes
								ep3_frankokratia_will_start_trigger = yes
								save_temporary_scope_as = char_temp
								
								#Thorough check for close relation claimants
								OR = {
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
									}
									#In laws of family in court/realm
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
										ep3_frankokratia_transiting_relative_trigger = yes
										any_spouse = {
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#Spouse claimant
									any_spouse = {
										ep3_frankokratia_claimant_trigger = yes
									}
									#Spouse's close family in realm/court
									any_spouse = {
										ep3_frankokratia_transiting_relative_trigger = yes
										any_close_family_member = {
											OR = {
												is_courtier_of = prev
												is_vassal_of = prev
											}
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#friends
									any_relation = {
										type = friend
										ep3_frankokratia_claimant_trigger = yes
									}
									#soulmates
									any_relation = {
										type = soulmate
										ep3_frankokratia_claimant_trigger = yes
									}
								}
							}
							trigger_event = {
								id = ep3_frankokratia_events.0001
								days = 20
							}
						}
					}
				}
				#Someone with looser relation to claimant who will accept
				else_if = {
					limit = {
						scope:the_faith = {
							any_faith_playable_ruler = {
								ep3_frankokratia_story_owner_trigger = yes
								ep3_frankokratia_will_start_trigger = yes
							}
						}
					}
					scope:the_faith = {
						ordered_faith_playable_ruler = {
							order_by = {
								value = 0
								add = current_military_strength
							}
							limit = {
								ep3_frankokratia_story_owner_trigger = yes
								ep3_frankokratia_will_start_trigger = yes
							}
							trigger_event = {
								id = ep3_frankokratia_events.0001
								days = 20
							}
						}
					}
				}
				#Next, ai with a closely related claimant who might not accept
				else_if = {
					limit = {
						scope:the_faith = {
							any_faith_playable_ruler = {
								ep3_frankokratia_story_owner_trigger = yes
								save_temporary_scope_as = char_temp
								
								#Thorough check for close relation claimants
								OR = {
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
									}
									#In laws of family in court/realm
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
										ep3_frankokratia_transiting_relative_trigger = yes
										any_spouse = {
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#Spouse claimant
									any_spouse = {
										ep3_frankokratia_claimant_trigger = yes
									}
									#Spouse's close family in realm/court
									any_spouse = {
										ep3_frankokratia_transiting_relative_trigger = yes
										any_close_family_member = {
											OR = {
												is_courtier_of = prev
												is_vassal_of = prev
											}
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#friends
									any_relation = {
										type = friend
										ep3_frankokratia_claimant_trigger = yes
									}
									#soulmates
									any_relation = {
										type = soulmate
										ep3_frankokratia_claimant_trigger = yes
									}
								}
							}
						}
					}
					scope:the_faith = {
						ordered_faith_playable_ruler = {
							order_by = {
								value = 0
								add = current_military_strength
							}
							limit = {
								ep3_frankokratia_story_owner_trigger = yes
								save_temporary_scope_as = char_temp
								
								#Thorough check for close relation claimants
								OR = {
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
									}
									#In laws of family in court/realm
									any_close_family_member = {
										OR = {
											is_courtier_of = prev
											is_vassal_of = prev
										}
										ep3_frankokratia_transiting_relative_trigger = yes
										any_spouse = {
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#Spouse claimant
									any_spouse = {
										ep3_frankokratia_claimant_trigger = yes
									}
									#Spouse's close family in realm/court
									any_spouse = {
										ep3_frankokratia_transiting_relative_trigger = yes
										any_close_family_member = {
											OR = {
												is_courtier_of = prev
												is_vassal_of = prev
											}
											ep3_frankokratia_claimant_trigger = yes
										}
									}
									#friends
									any_relation = {
										type = friend
										ep3_frankokratia_claimant_trigger = yes
									}
									#soulmates
									any_relation = {
										type = soulmate
										ep3_frankokratia_claimant_trigger = yes
									}
								}
							}
							trigger_event = {
								id = ep3_frankokratia_events.0001
								days = 20
							}
						}
					}
				}
				#Someone with looser relation to claimant who might not accept
				else_if = {
					limit = {
						scope:the_faith = {
							any_faith_playable_ruler = {
								ep3_frankokratia_story_owner_trigger = yes
							}
						}
					}
					scope:the_faith = {
						ordered_faith_playable_ruler = {
							order_by = {
								value = 0
								add = current_military_strength
							}
							limit = {
								ep3_frankokratia_story_owner_trigger = yes
							}
							trigger_event = {
								id = ep3_frankokratia_events.0001
								days = 20
							}
						}
					}
				}
			}
		}
		if = {
			limit = {
				NOT = {
					exists = global_var:cath_crusade_1
				}
				scope:the_faith = { this = faith:catholic }
			}
			set_global_variable = {
				name = cath_crusade_1
				value = 1
			}
		}
		else_if = {
			limit = {
				scope:the_faith = { this = faith:catholic }
			}
			change_global_variable = {
				name = cath_crusade_1
				add = 1
			}
		}
	}
}

# The preparation for the next Great Holy War begins. Faithful assemble.
great_holy_war.0003 = {
	title = great_holy_war.0003.title
	desc = {
		first_valid = {
			#Catholic flavour
			triggered_desc = {
				desc = great_holy_war.0003.catholic.desc
				trigger = { scope:the_faith = faith:catholic }
			}
			#Everyone else
			desc = great_holy_war.0003.fallback.desc
		}
	}
	theme = faith
	override_background = {
		reference = temple_scope
	}
	left_portrait = scope:ghw_sponsor
	
	immediate = {
		scope:ghw_sponsor = {
			save_scope_as = background_temple_scope
		}
		play_music_cue = "mx_cue_general_crusade_event_2"

		set_variable = {
			name = ghw_pledge_amount
			value = great_holy_war_pledge_amount
		}
		set_variable = {
			name = half_great_holy_war_pledge_amount
			value = {
				value = root.great_holy_war_pledge_amount
				multiply = 0.5
			}
		}
	}
	
	option = {
		name = great_holy_war.0003.a
		trigger = {
			root.faith = scope:the_faith
			NOR = {
				exists = scope:the_faith.great_holy_war.ghw_war
				#Religious head should never unpledge:
				this = scope:the_faith.great_holy_war.ghw_war_declarer
				has_character_flag = ghw_unpledging_cooldown #Safety event.
				#Do not pledge against your own liege:
				any_liege_or_above = { this = scope:the_faith.great_holy_war.ghw_target_character }
			}
			OR = { #Either be independent, or all lieges above you MUST be of the same Faith declaring the war to avoid messy situations of vassals and lieges fighting against each other.
				top_liege = this
				NOT = {
					any_liege_or_above = {
						faith != scope:the_faith
					}
				}
			}
		}
		custom_tooltip = great_holy_war.0003.a.tt
		if = {
			limit = {
				NOT = {
					scope:the_faith.great_holy_war = { has_pledged_attacker = root }
				}
			}
			pledge_ghw_piety_gain_effect = yes
			#Excommunication lifted.
			if = {
				limit = {
					has_trait = excommunicated
					faith = { has_doctrine_parameter = excommunication_active }
				}
				custom_tooltip = great_holy_war.0003.a.lifted_excommunication
				trigger_event = {
					id = great_holy_war.0015
					days = 37
				}
			}
		}
		scope:the_faith.great_holy_war = {
			hidden_effect = { pledge_attacker = root }
			pledge_ghw_war_chest_prestige_effect = yes
			pledge_ghw_war_chest_piety_effect = yes
		}

		ai_chance = {
			base = 10
			modifier = {
				factor = 0.5
				top_liege != this
			}
			modifier = {
				factor = 0.5
				highest_held_title_tier = tier_county
			}
			modifier = {
				factor = 5
				highest_held_title_tier >= tier_kingdom
			}
			modifier = {	#Excommunicated characters like getting rid of the trait.
				factor = 2
				has_trait = excommunicated
			}
		}
	}
	
	option = {
		name = great_holy_war.0003.b
		add_piety = root.var:half_great_holy_war_pledge_amount
		#Excommunication lifted.
		if = {
			limit = {
				has_trait = excommunicated
				faith = { has_doctrine_parameter = excommunication_active }
			}
			trigger_event = {
				id = great_holy_war.0015
				days = 37
			}
		}
		remove_short_term_gold = var:ghw_pledge_amount
		set_variable = {
			name = ghw_war_chest_donated_sum
			value = var:ghw_pledge_amount
		}
		scope:the_faith.great_holy_war = {
			change_war_chest_gold = root.var:ghw_pledge_amount
		}
		if = {
			limit = {
				NOT = { has_character_flag = ghw_pledged_gold }
				is_ai = no
			}
			add_character_flag = { #Used to check whether the Pope will harass for more later.
				flag = ghw_pledged_gold
				days = 7300
			}
		}
		ai_chance = {
			base = 10
		}
	}
	
	option = {
		name = great_holy_war.0003.c
		ai_chance = {
			base = 0
		}
	}
	
	after = {
		remove_variable = ghw_pledge_amount
	}
}

# Rel head selects new target
great_holy_war.0004 = {
	hidden = yes
	scope = ghw
	
	immediate = {
		faith = { save_scope_as = the_faith }
		
		determine_ghw_target_effect = { FAITH = scope:the_faith }
		
		set_great_holy_war_target = { target_title = scope:target_kingdom target_character = scope:target_character }
		if = {
			limit = { exists = var:last_redirector }
			change_variable = {
				name = redirect_cost
				divide = 2
			}
			var:last_redirector = { add_piety = root.var:redirect_cost }
			remove_variable = last_redirector
		}
	}
}

# War is launched
great_holy_war.0005 = {
	hidden = yes
	scope = ghw

	immediate = {
		if = {
			limit = {
				any_pledged_attacker = {
					primary_title = { is_head_of_faith = yes }
					faith = faith:catholic
				}
				exists = global_var:byz_claimant_champion
				global_var:byz_claimant_champion = {
					is_alive = yes
					is_ruler = yes
					any_owned_story = {
						type = frankokratia_story
					}
				}
				exists = title:e_byzantium.holder
			}
			#Check claimant isn't dead, invalidate if they are
			if = {
				limit = {
					global_var:byz_claimant_champion = {
						any_owned_story = {
							type = frankokratia_story
							var:byz_claimant = { is_alive = no }
						}
					}
				}
				global_var:byz_claimant_champion = {
					random_owned_story = {
						type = frankokratia_story
						every_in_list = {
							variable = frankokratia_leaders
							limit = {
								is_ai = no
							}
							trigger_event = ep3_frankokratia_events.0005
						}
					}
				}
			}
			else = {
				ep3_frankokratia_remove_pledged_attackers_effect = yes
			}
		}
		
		start_ghw_war = undirected_great_holy_war
		divide_war_chest = {
			fraction = 0.2
			prestige = no
			gold = no
		}
	}
}

#Unlocking Holy Wars. (on later dates Crusades and Jihads start already unlocked from Character History)
#Hidden check event, fired on_faith pulse.

scripted_trigger great_holy_war_0010_jerusalem_reason_trigger = {
	title:c_jerusalem.holder.top_liege = {
		faith.religion != scope:awakening_faith.religion
	}
}

scripted_trigger great_holy_war_0010_rome_reason_trigger = {
	title:c_roma.holder.top_liege = {
		faith.religion != scope:awakening_faith.religion
	}
}

scripted_trigger great_holy_war_0010_byzantion_reason_trigger = {
	OR = {
		trigger_if = { # Byzantine Empire
			limit = { exists = title:e_byzantium.holder } # Make sure a holder exists beforehand
			title:e_byzantium.holder.religion = {
				NOT = {
					this = religion:christianity_religion
				}
			}
		}
		title:c_byzantion.holder.top_liege.religion = { # Constantinople
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_paphlagonia.holder.top_liege.religion = { # Ankyra
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_attica.holder.top_liege.religion = { # Athens
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_korinthos.holder.top_liege.religion = { # Corinth
			NOT = {
				this = religion:christianity_religion
			}
		}
	}
}

scripted_trigger great_holy_war_0010_europe_reason_trigger = {
	OR = {
		title:c_venaissin.holder.top_liege.religion = { # Provence
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_toulouse.holder.top_liege.religion = { # Toulouse
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_ile_de_france.holder.top_liege.religion = { # Paris
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_cologne.holder.top_liege.religion = { # Cologne
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_halberstadt.holder.top_liege.religion = { # Halberstadt
			NOT = {
				this = religion:christianity_religion
			}
		}
	}
}

scripted_trigger great_holy_war_0010_mecca_reason_trigger = {
	title:c_mecca.holder.top_liege = {
		faith.religion != scope:awakening_faith.religion
	}
}

scripted_trigger great_holy_war_0010_centre_reason_trigger = {
	OR = {
		title:c_baghdad.holder.top_liege.religion = { # Baghdad
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_damascus.holder.top_liege.religion = { # Damascus
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_cairo.holder.top_liege.religion = { # Cairo
			NOT = {
				this = religion:christianity_religion
			}
		}
	}
}

scripted_trigger great_holy_war_0010_africa_reason_trigger = {
	OR = {
		title:c_marrakesh.holder.top_liege.religion = { # Marrakesh
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_tunis.holder.top_liege.religion = { # Tunis
			NOT = {
				this = religion:christianity_religion
			}
		}
		title:c_algier.holder.top_liege.religion = { # Algier
			NOT = {
				this = religion:christianity_religion
			}
		}
	}
}

great_holy_war.0010 = {
	hidden = yes
	scope = faith
	
	trigger = {
		suitable_faith_for_any_ghw_trigger = yes # Faith must have right Doctrines.
		NOR = {
			religion = { exists = var:variable_ghw_unlocked }
			has_global_variable = variable_ghw_global_unlocking_cooldown
		}
		religious_head ?= { is_imprisoned = no }
		num_county_followers >= 35 # Faith must have at least SOME legitimacy.
		OR = {
			current_date >= 2650.1.1 # Free for all after Historical years
			AND = { # Any Faith is seriously under attack.
				any_holy_site = {
					holder.top_liege = {
						faith.religion != root.religion
					}
					count >= 2
				}
				current_date >= 2600.1.1
			}
			AND = { # I learned it from you! - Muslims second.
				religion:christianity_religion = {
					exists = var:variable_ghw_unlocked
				}
				religion:islam_religion = root.religion
				any_holy_site = {
					holder.top_liege = {
						faith.religion != root.religion
					}
					count >= 1
				}
			}
			AND = { # And we learned it from you! - Everyone else last.
				religion:christianity_religion = {
					exists = var:variable_ghw_unlocked
				}
				religion:islam_religion = {
					exists = var:variable_ghw_unlocked
				}
				any_holy_site = {
					holder.top_liege = {
						faith.religion != root.religion
					}
					count >= 1
				}
				NOR = {
					OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
					religion = religion:islam_religion
				}
			}
		}
	}

	weight_multiplier = {
		base = 1
		modifier = { # Historical push for local Christian control.
			add = 2
			title:c_jerusalem.holder = {
				NOT = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } }
			}
			current_date >= 1095.1.1
			OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion }
		}
		modifier = { # Historical push for overall Islamic control.
			add = 2
			title:c_jerusalem.holder.top_liege = {
				NOT = { faith.religion = religion:islam_religion }
			}
			current_date >= 1095.1.1
			root.religion = religion:islam_religion
		}
	}
	
	immediate = {
		set_global_variable = {
			name = variable_ghw_global_unlocking_cooldown # Slow Down cascade of Religious Heads unlocking Crusades all over the place, trying to outplay ach other.
			value = yes
			days = 3650
		}
		religion = {
			set_variable = {
				name = variable_first_ghw_cooldown # Wait at least a couple of months before firing the first Crusade after this event.
				value = yes
				days = 120
			}	
		}	
		save_scope_as = awakening_faith
		if = {
			limit = {
				exists = religious_head
			}
			religious_head = { save_scope_as = ghw_first_sponsor }
		}
		else = {
			random_theocratic_ruler = {
				limit = { faith = root }
				save_scope_as = ghw_first_sponsor
			}
		}
		if = { # Fallback
			limit = {
				NOT = {
					exists = scope:ghw_first_sponsor
				}
			}
			random_ruler = {
				limit = { faith = root }
				save_scope_as = ghw_first_sponsor
			}
		}
		religion = {
			set_variable = {
				name = variable_ghw_unlocked # Crusades
				value = yes
			}
		}
		every_player = {
			trigger_event = great_holy_war.0011 # Flavor fluff for various Faiths.
		}
	}
}

#Flavor Fluff.
great_holy_war.0011 = {
	type = character_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
				}
				desc = great_holy_war.0011.christian.t
			}
			triggered_desc = {
				trigger = {
					scope:awakening_faith.religion = religion:islam_religion
				}
				desc = great_holy_war.0011.muslim.t
			}
			triggered_desc = { #Pagan Polytheists
				trigger = {
					scope:awakening_faith.religion = {
						is_in_family = rf_pagan
					}
				}
				desc = great_holy_war.0011.pagans.t
			}
			desc = great_holy_war.0011.fallback.t
		}
	}
	desc = {
		first_valid = {
			#Christian Flavor
			triggered_desc = { #Catholic Crusades, because of Rome.
				trigger = {
					scope:awakening_faith = faith:catholic
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_rome_reason_trigger = yes
				}
					desc = great_holy_war.0011.catholic.rome.desc
			}
			triggered_desc = { #Christian Crusades, because of fall of Europe.
				trigger = {
					OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_europe_reason_trigger = yes
				}
					desc = great_holy_war.0011.christian.europe.desc
			}
			triggered_desc = { #Christian Crusades, because of fall of Byzantium.
				trigger = {
					OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_byzantion_reason_trigger = yes
				}
					desc = great_holy_war.0011.christian.byzantion.desc
			}
			triggered_desc = { #Catholic Crusades, because of Jerusalem.
				trigger = {
					scope:awakening_faith = faith:catholic
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_jerusalem_reason_trigger = yes
				}
					desc = great_holy_war.0011.catholic.jerusalem.desc
			}
			triggered_desc = { #Christian Crusades, fallback.
				trigger = {
					OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
				}
					desc = great_holy_war.0011.christian.fallback.desc
			}

			#Muslim Flavor
			triggered_desc = { #Jihads, because of Mecca.
				trigger = {
					scope:awakening_faith.religion = religion:islam_religion
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_mecca_reason_trigger = yes
				}
					desc = great_holy_war.0011.muslim.mecca.desc
			}
			triggered_desc = { #Jihads, because of Jerusalem.
				trigger = {
					scope:awakening_faith.religion = religion:islam_religion
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_mecca_reason_trigger = yes
				}
					desc = great_holy_war.0011.muslim.jerusalem.desc
			}
			triggered_desc = { #Jihads, because of Arabia/Egypt.
				trigger = {
					scope:awakening_faith.religion = religion:islam_religion
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_centre_reason_trigger = yes
				}
					desc = great_holy_war.0011.muslim.arabia.desc
			}
			triggered_desc = { #Jihads, because of Africa.
				trigger = {
					scope:awakening_faith.religion = religion:islam_religion
					exists = scope:ghw_first_sponsor
					great_holy_war_0010_africa_reason_trigger = yes
				}
					desc = great_holy_war.0011.muslim.africa.desc
			}
			triggered_desc = { #Jihads, fallback.
				trigger = {
					scope:awakening_faith.religion = religion:islam_religion
				}
					desc = great_holy_war.0011.muslim.fallback.desc
			}
			#Generic Flavor
			triggered_desc = { #Generic, with Head.
				trigger = {
					NOR = {
						scope:awakening_faith.religion = religion:islam_religion
						OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
					}
					exists = scope:ghw_first_sponsor
				}
					desc = great_holy_war.0011.generic.fallback.head.desc
			}
				desc = great_holy_war.0011.generic.fallback.desc
		}
		first_valid = { #Ending, favorable or not, depending on receiver.
			triggered_desc = { # Crusades are good!
				trigger = {
					OR = {
						faith = scope:awakening_faith
						faith = {
							faith_hostility_level = {
								target = scope:awakening_faith
								value < faith_hostile_level
							}
						}
					}
					faith.religion != scope:awakening_faith.religion
				}
					desc = great_holy_war.0011.generic.ending.positive
			}
			triggered_desc = { # Crusades are bad!
				trigger = {
					NOR = {
						faith = scope:awakening_faith
						faith.religion = scope:awakening_faith.religion
						faith = {
							faith_hostility_level = {
								target = scope:awakening_faith
								value < faith_hostile_level
							}
						}
					}
				}
					desc = great_holy_war.0011.generic.ending.negative
			}
			triggered_desc = { # Co-religionists.
				trigger = {
					faith.religion = scope:awakening_faith.religion
					faith != scope:awakening_faith
					exists = faith.religious_head
				}
					desc = great_holy_war.0011.generic.ending.coreligionist.head
			}
			triggered_desc = { # Co-religionists (no Head).
				trigger = {
					faith.religion = scope:awakening_faith.religion
					faith != scope:awakening_faith
					NOT = { exists = faith.religious_head }
				}
					desc = great_holy_war.0011.generic.ending.coreligionist.autonomous
			}
		}
	}
	theme = faith
	override_background = {
		reference = temple_scope
	}
	left_portrait = {
		character = scope:ghw_first_sponsor
		triggered_animation = {
			trigger = {
				scope:awakening_faith = {
					has_doctrine = doctrine_temporal_head
				}
			}
  			animation = marshal
  		}
		animation = personality_zealous
	}
	
	immediate = {
		scope:ghw_first_sponsor = {
			save_scope_as = background_temple_scope
		}
		play_music_cue = "mx_cue_epic_sacral_moment"

		if = { #Localisation use only
			limit = {
				faith.religion = scope:awakening_faith.religion
				faith != scope:awakening_faith
				exists = faith.religious_head
			}
			faith.religious_head = {
				save_scope_as = other_pope
			}
		}
	}

	option = { #God's will
		name = great_holy_war.0011.a
		trigger = {
			root.faith = scope:awakening_faith
			OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
		}
	}
	option = { #Allahu Akhbar
		name = great_holy_war.0011.b
		trigger = {
			root.faith = scope:awakening_faith
			scope:awakening_faith.religion = religion:islam_religion
		}
	}
	option = { #PaganGodName is with us.
		name = great_holy_war.0011.c
		trigger = {
			root.faith = scope:awakening_faith
			NOR = {
				OR = { scope:awakening_faith.religion = religion:eastern_orthodox_religion scope:awakening_faith.religion = religion:catholic_religion scope:awakening_faith.religion = religion:protestant_religion }
				scope:awakening_faith.religion = religion:islam_religion
			}
		}
	}
	option = { #Infidels incoming.
		name = great_holy_war.0011.d
		trigger = {
			root.faith != scope:awakening_faith
			root.faith = {
				faith_hostility_level = {
					target = scope:awakening_faith
					value >= faith_hostile_level
				}
			}
		}
	}
	option = { #Good luck, I suppose...
		name = great_holy_war.0011.e
		trigger = {
			NOR = {
				root.faith = scope:awakening_faith
				root.faith = {
					faith_hostility_level = {
					target = scope:awakening_faith
					value >= faith_hostile_level
					}
				}
			}
		}
	}
	after = {
		custom_tooltip = great_holy_war.0011.tooltip.effect
	}
}

#Excommunication lifted for joining the Crusade.
great_holy_war.0015 = {
	type = letter_event
	opening = {
		desc = great_holy_war.0015.opening
	}
	desc = great_holy_war.0015.desc
	sender = {
		character = scope:scoped_pope
		animation = happiness
	}
	
	trigger = {
		faith.great_holy_war = {
			has_pledged_attacker = root
		}
		has_trait = excommunicated
	}

	immediate = {
		if = { #If Pope died in the meantime.
			limit = {
				OR = {
					NOT = {
						exists = faith.great_holy_war.ghw_war_declarer
					}
					NOT = {
						faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
					}
				}
			}
			faith = { ghw_set_new_war_declarer_effect = yes }
		}
		root.faith.great_holy_war.ghw_war_declarer = { save_scope_as = scoped_pope }
		remove_trait = excommunicated
		add_character_modifier = {
			modifier = excommunication_recently_lifted
			years = 10
		}
	}
	
	option = {
		name = great_holy_war.0015.a
		trigger = { has_trait = cynical }
	}
	option = {
		name = great_holy_war.0015.b
		trigger = {
			NOT = { has_trait = cynical }
		}
	}
}

#Pope upset because ruler unpledged.
great_holy_war.0016 = {
	type = letter_event
	opening = {
		desc = great_holy_war.0015.opening
	}
	desc = {
		first_valid = { #Light Punishment
			triggered_desc = {
				trigger = {
					has_character_flag = ghw_light_punishment
				}
				desc = great_holy_war.0016.desc.a
			}
		}
		first_valid = { #Harsh Punishment
			triggered_desc = {
				trigger = {
					has_character_flag = ghw_harsh_punishment
				}
				desc = great_holy_war.0016.desc.b
			}
		}
		first_valid = { #Excommunication Punishment
			triggered_desc = {
				trigger = {
					has_character_flag = ghw_excommunication
				}
				desc = great_holy_war.0016.desc.c
			}
		}
	}
	sender = {
		character = scope:scoped_pope
		animation = anger
	}
	
	trigger = {
		NOT = {
			faith.great_holy_war = {
				has_pledged_attacker = root
			}
		}
		is_landless_adventurer = no
	}

	immediate = {
		hidden_effect = {
			if = { #If Pope died in the meantime.
				limit = {
					OR = {
						NOT = {
							exists = faith.great_holy_war.ghw_war_declarer
						}
						NOT = {
							faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
						}
					}
				}
				faith = { ghw_set_new_war_declarer_effect = yes }
			}
			root.faith.great_holy_war.ghw_war_declarer = { save_scope_as = scoped_pope }
			random_list = {
				40 = {
					opinion_modifier = {
						who = scope:scoped_pope
						opinion_target = root
					}
					modifier = {
						factor = 2
						highest_held_title_tier = tier_county
					}
					add_character_flag = {
						flag = ghw_light_punishment
						days = 500
					}
				}
				30 = {
					modifier = {
						factor = 1.25
						highest_held_title_tier >= tier_duchy
					}
					add_character_flag = {
						flag = ghw_harsh_punishment
						days = 500
					}
				}
				30 = { #Excommunication available only if target already not excommunicated and religion allows it.
					trigger = {
						NOT = { has_trait = excommunicated }
						faith = { has_doctrine_parameter = excommunication_active }
						highest_held_title_tier >= tier_kingdom
					}
					modifier = { #Fool me once...
						factor = 2
						has_character_modifier = excommunication_recently_lifted
					}
					modifier = {
						factor = 2
						highest_held_title_tier >= tier_empire
					}
					add_character_flag = {
						flag = ghw_excommunication
						days = 500
					}
				}
			}
		}
	}
	
	option = {
		name = great_holy_war.0016.a
		trigger = { has_trait = cynical }
	}
	option = {
		name = great_holy_war.0016.b
		trigger = {
			NOT = { has_trait = cynical }
		}
	}
	after = {
		if = {
			limit = { has_character_flag = ghw_light_punishment }
			scope:scoped_pope = {
				add_opinion = {
					target = root
					modifier = unpledged_from_ghw_opinion
					opinion = -25
				}
			}
		}
		if = {
			limit = { has_character_flag = ghw_harsh_punishment }
			add_piety = medium_piety_loss
			scope:scoped_pope = {
				add_opinion = {
					target = root
					modifier = unpledged_from_ghw_opinion
					opinion = -35
				}
			}
			if = {
				limit = {
					any_theocratic_vassal = { faith = root.faith }
				}
				every_theocratic_vassal = {
					custom = great_holy_war.0016.custom
					limit = { faith = root.faith }
					add_opinion = {
						target = root
						modifier = impious_opinion
						opinion = -35
					}
				}
			}
			if = {
				limit = { exists = cp:councillor_court_chaplain }
				add_opinion = {
					target = root
					modifier = impious_opinion
					opinion = -35
				}
			}
		}
		if = {
			limit = { has_character_flag = ghw_excommunication }
			add_excommunication_actual_effect = yes
			if = {
				limit = { has_character_modifier = excommunication_recently_lifted }
				hidden_effect = { remove_character_modifier = excommunication_recently_lifted }
			}
			scope:scoped_pope = {
				add_opinion = {
					target = root
					modifier = unpledged_from_ghw_opinion
					opinion = -40
				}
			}
		}
		remove_character_flag = ghw_light_punishment
		remove_character_flag = ghw_harsh_punishment
		remove_character_flag = ghw_excommunication
		stress_impact = {
			zealous = medium_stress_impact_gain
		}
	}
}

#Confirmation to unpledge.
great_holy_war.0017 = {
	title = great_holy_war.0017.title
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:scoped_pope = { faith = faith:catholic }
				}
				desc = great_holy_war.0017.desc.a
			}
			triggered_desc = {
				trigger = {
					NOT = {
						scope:scoped_pope = { faith = faith:catholic }
					}
				}
				desc = great_holy_war.0017.desc.b
			}
		}
		}
	theme = faith
	left_portrait = scope:scoped_pope

	immediate = {
		if = {
			limit = {
				NOR = {
					exists = faith.great_holy_war.ghw_war_declarer
					faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
				}
			}
			faith = { ghw_set_new_war_declarer_effect = yes }
		}
		root.faith.great_holy_war.ghw_war_declarer = { save_scope_as = scoped_pope }
		add_character_flag = {
			flag = ghw_unpledging_cooldown
			days = 500
		}
	}
	
	option = {
		name = great_holy_war.0017.a
		if = {
			limit = { #Stop from doing it if the player opens the Crusade Interface and joins from there.
				scope:great_holy_war = { has_pledged_attacker = root }
			}
			root.faith.great_holy_war = {
				unpledge_attacker = root
				unpledge_ghw_war_chest_prestige_effect = yes
				unpledge_ghw_war_chest_piety_effect = yes
			}
		}
		#Piety price
		pledge_ghw_piety_loss_effect = yes
		add_piety_level = -1
		#Set Cooldown
		set_variable = {
			name = variable_ghw_unpledged_cooldown
			value = yes
			days = 60
		}
		#Religious Head is upset
		trigger_event = {
			id = great_holy_war.0016
			days = 37
		}
		remove_character_flag = ghw_unpledging_cooldown
		add_character_flag = { #Used to check whether the Pope will harass for more later.
			flag = ghw_unpledged_once
			days = 550
		}
	}
	option = {
		name = great_holy_war.0017.b
		remove_character_flag = ghw_unpledging_cooldown
	}
}

#Confirmation to pledge.
great_holy_war.0018 = {
	title = great_holy_war.0003.title
	desc = great_holy_war.0018.desc
	theme = faith
	left_portrait = scope:scoped_pope

	immediate = {
		if = {
			limit = {
				OR = {
					NOT = {
						exists = faith.great_holy_war.ghw_war_declarer
					}
					NOT = {
						faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
					}
				}
			}
			faith = { ghw_set_new_war_declarer_effect = yes }
		}
		root.faith.great_holy_war.ghw_war_declarer = { save_scope_as = scoped_pope }
		add_character_flag = {
			flag = ghw_unpledging_cooldown
			days = 500
		}
	}
	
	option = {
		name = great_holy_war.0018.a
		faith.great_holy_war = {
			pledge_attacker = root
			pledge_ghw_war_chest_prestige_effect = yes
			pledge_ghw_war_chest_piety_effect = yes
		}
		#Piety bonus
		root = {
			pledge_ghw_piety_gain_effect = yes
			#Excommunication lifted.
			if = {
				limit = {
					has_trait = excommunicated
					faith = { has_doctrine = tenet_communion }
				}
				trigger_event = {
					id = great_holy_war.0015
					days = 37
				}
			}
		}
		remove_character_flag = ghw_unpledging_cooldown
	}
	option = {
		name = great_holy_war.0018.b
		remove_character_flag = ghw_unpledging_cooldown
	}
}

# AI hidden event to pledge to a Great Holy War during the preparation phase.
# Event is fired when the Pope calls for the Crusade.
# Requires a the_faith scope, defined by event.
great_holy_war.0020 = {
	hidden = yes
	
	trigger = {
		is_ai = yes
		is_ruler = yes
		is_landed = yes
		is_at_war = no
		is_imprisoned = no
		highest_held_title_tier >= tier_county
		NOT = { has_trait = incapable }
		ai_zeal >= 0
		root.faith = scope:the_faith
		NOT = { target_is_liege_or_above = scope:target_character }
		scope:the_faith = { # Crusade still exists
			great_holy_war ?= {
				NOT = { has_pledged_attacker = root }
			}
		}
	}

	immediate = {
		scope:the_faith.great_holy_war = {
			set_variable = {
				name = triple_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 3
				}
			}
			set_variable = {
				name = double_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 2
				}
			}
			set_variable = {
				name = one_and_a_half_of_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 1.5
				}
			}
			set_variable = {
				name = half_of_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 0.5
				}
			}
			set_variable = {
				name = quarter_of_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 0.25
				}
			}
		}
		random_list = {
			15 = { # Pledge.
				trigger = {
					OR = { # Either be independent, or have no liege above you of the defending Faith, to avoid messy situations of vassals and lieges fighting against each other.
						top_liege = this
						any_liege_or_above = {
							count = all
							faith != scope:target_faith
						}
					}
				}
				scope:the_faith.great_holy_war = {
					pledge_attacker = root
					pledge_ghw_war_chest_prestige_effect = yes
					pledge_ghw_war_chest_piety_effect = yes
				}
				pledge_ghw_piety_gain_effect = yes
				# Excommunication lifted.
				if = {
					limit = {
						has_trait = excommunicated
						faith = { has_doctrine_parameter = excommunication_active }
					}
					trigger_event = {
						id = great_holy_war.0015
						days = 37
					}
				}
				if = {
					limit = { is_ai = yes }
					trigger_event = { id = great_holy_war.0026 } # Set Beneficiary automatically.
				}
			}
			85 = { # Do not pledge.
				random = { # When not pledging, there is still a chance that the AI will donate money.
					chance = 35
					modifier = {
						factor = 0.75
						has_trait = greedy
					}
					modifier = {
						factor = 1.5
						has_trait = generous
					}
					modifier = {
						factor = 0.25
						has_trait = cynical
					}
					modifier = {
						factor = 1.75
						has_trait = zealous
					}
					modifier = {
						factor = 1.75
						short_term_gold >= root.great_holy_war_pledge_amount
					}
					ai_value_modifier = { # Raw Zeal
						ai_zeal = 1.0
					}
					scope:the_faith.great_holy_war = {
						change_war_chest_gold = {
							value = root.great_holy_war_pledge_amount
							multiply = 0.5
						}
					}
				}

				modifier = { # More pledging happening at start of preparation phase.
					factor = 0.75
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { days_until_ghw_launch > 200 }
				}
				modifier = { # Less pledging happening after.
					factor = 1.5
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { days_until_ghw_launch < 150 }
				}
				modifier = { # Less pledging happening after.
					factor = 1.75
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { days_until_ghw_launch < 100 }
				}
				modifier = { # Less pledging happening after.
					factor = 1.75
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { days_until_ghw_launch < 70 }
				}
				modifier = { # More likely if war is close by.
					factor = 0.85
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 150000 }
						}
					}
				}
				modifier = { # More likely if war is close by.
					factor = 0.9
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 1500000 } # Roughly Rome to Portugal
						}
					}
				}
				modifier = { # Less likely if war is far away.
					factor = 1.5
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2000000 }
						}
					}
				}
				modifier = { # Just too darn far away...
					factor = 1.75
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2500000 }
						}
					}
				}
				modifier = { # Much less likely to happen if the war has started.
					factor = 0.25
					exists = scope:the_faith.great_holy_war.ghw_war
				}
				modifier = { # Don't get too crowded now.
					factor = 2
					scope:the_faith.great_holy_war = { ghw_attackers_strength > ghw_defenders_strength }
				}
				modifier = { # Don't get too crowded now.
					factor = 1.85
					scope:the_faith.great_holy_war = { ghw_attackers_strength > var:triple_defenders_strength }
				}
				modifier = { # Don't get too crowded now.
					factor = 1.75
					scope:the_faith.great_holy_war = { ghw_attackers_strength > var:double_defenders_strength }
				}
				modifier = { # Don't get too crowded now.
					factor = 1.5
					scope:the_faith.great_holy_war = { ghw_attackers_strength > var:one_and_a_half_of_defenders_strength }
				}
				modifier = { # Try to prevent the Crusade from failing before even starting. (Less strength than defenders)
					factor = 0.75
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_attackers_strength < ghw_defenders_strength }
				}
				modifier = { # Try to prevent the Crusade from failing before even starting. (Less than half of the defenders' strength)
					factor = 0.5
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_attackers_strength < var:half_of_defenders_strength }
				}
				modifier = { # Try to prevent the Crusade from failing before even starting. (Less than quarter of the defenders' strength)
					factor = 0.35
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_attackers_strength < var:quarter_of_defenders_strength }
				}
				modifier = { # Slightly more likely to join when fighting for a Holy Site.
					factor = 0.85
					scope:target_kingdom = {
						any_in_de_jure_hierarchy = {
							tier = tier_barony
							continue = { tier > tier_barony }
							is_holy_site_of = scope:the_faith
						}
					}
				}
				modifier = { # Hoping for forgiveness
					factor = 0.8
					has_trait = excommunicated
				}
				ai_value_modifier = { # Raw Zeal
					ai_zeal = -1.0
				}
				modifier = { # Basic traits
					factor = 2
					has_trait = cynical
				}
				modifier = { # Basic traits
					factor = 0.5
					has_trait = zealous
				}
				modifier = { # Tier
					factor = 0.75
					highest_held_title_tier = tier_kingdom
				}
				modifier = { # Tier
					factor = 0.5
					highest_held_title_tier = tier_empire
				}
			}
		}
	}
}

#AI hidden event to pledge to a Directed Great Holy War.
#Event is fired on_declaration.
#Requires a the_faith scope, defined in the cb.
great_holy_war.0092 = {
	hidden = yes
	
	trigger = {
		is_ai = yes
		is_ruler = yes
		is_landed = yes
		is_at_war = no
		is_imprisoned = no
		highest_held_title_tier >= tier_county
		NOT = { has_trait = incapable }
		ai_zeal >= 0
		root.faith = scope:the_faith
		NOT = { target_is_liege_or_above = scope:ghw_defender } #scope:target_character isn't created in the holy war decision where this event is called
		scope:the_faith = { #Crusade still exists
			great_holy_war ?= {
				NOT = { has_pledged_attacker = root }
			}
		}
	}

	immediate = {
		scope:the_faith.great_holy_war = {
			set_variable = {
				name = triple_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 3
				}
			}
			set_variable = {
				name = double_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 2
				}
			}
			set_variable = {
				name = one_and_a_half_of_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 1.5
				}
			}
			set_variable = {
				name = half_of_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 0.5
				}
			}
			set_variable = {
				name = quarter_of_defenders_strength
				value = {
					value = ghw_defenders_strength
					multiply = 0.25
				}
			}
		}
		random_list = {
			15 = { #Pledge.
				trigger = {
					OR = { # Either be independent, or have no liege above you of the defending Faith, to avoid messy situations of vassals and lieges fighting against each other.
						top_liege = this
						any_liege_or_above = {
							count = all
							faith != scope:target_faith
						}
					}
				}
				scope:the_faith.great_holy_war = {
					pledge_attacker = root
					pledge_ghw_war_chest_prestige_effect = yes
					pledge_ghw_war_chest_piety_effect = yes
				}
				if = {
					limit = { is_ai = yes }
					trigger_event = {
						id = great_holy_war.0026 #Set Beneficiary automatically.
					}
				}
			}
			45 = {
			}
			40 = { #Do not pledge.
				
				random = { #When not pledging, there is still a chance that the AI will donate money.
					chance = 15
					modifier = {
						factor = 0.75
						has_trait = greedy
					}
					modifier = {
						factor = 1.5
						has_trait = generous
					}
					modifier = {
						factor = 0.25
						has_trait = cynical
					}
					modifier = {
						factor = 1.75
						has_trait = zealous
					}
					modifier = {
						factor = 1.75
						short_term_gold >= root.great_holy_war_pledge_amount
					}
					ai_value_modifier = { #Raw Zeal
						ai_zeal = 1.0
					}
					scope:the_faith.great_holy_war = {
						change_war_chest_gold = root.great_holy_war_pledge_amount
					}
				}
				modifier = { #More likely if war is close by.
					factor = 0.85
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 150000 }
						}
					}
				}
				modifier = { #More likely if war is close by.
					factor = 0.9
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 1500000 } # Roughly Rome to Portugal
						}
					}
				}
				modifier = { #Less likely if war is far away.
					factor = 2
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2000000 }
						}
					}
				}
				modifier = { #Just too darn far away...
					factor = 5
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2500000 }
						}
					}
				}
				modifier = { #Slightly more likely to join when fighting for a Holy Site.
					factor = 0.85
					scope:target_kingdom = {
						any_in_de_jure_hierarchy = {
							tier = tier_barony
							continue = { tier > tier_barony }
							is_holy_site_of = scope:the_faith
						}
					}
				}
				ai_value_modifier = { #Raw Zeal
					ai_zeal = -1.0
				}
				modifier = { #Basic traits
					factor = 2
					has_trait = cynical
				}
				modifier = { #Basic traits
					factor = 0.5
					has_trait = zealous
				}
				modifier = { #Tier
					factor = 0.75
					highest_held_title_tier = tier_kingdom
				}
				modifier = { #Tier
					factor = 0.5
					highest_held_title_tier = tier_empire
				}
			}
		}
	}
}

#AI hidden event to have a holy order pledge to a Great Holy War during the preparation phase.
#Event is fired when the Pope calls for the Crusade.
#Requires a the_faith scope, defined by event.
great_holy_war.0090 = {
	hidden = yes
	scope = holy_order

	trigger = {
		scope:the_faith = { #Crusade still exists
			great_holy_war ?= {
				NOT = { has_pledged_attacker = root.leader }
			}
		}
	}

	immediate = {
		scope:the_faith = {
			great_holy_war = {
				pledge_attacker = root.leader
			}
		}
	}
}

#AI hidden event to counterpledge to a Great Holy War during the preparation phase.
#Event is fired when the Pope calls for the Crusade and when the target Kingdom is switched.
#Requires a target_faith scope, defined by event.
#Requires a the_faith scope, defined by event.
great_holy_war.0021 = {
	hidden = yes
	
	trigger = {
		is_ai = yes
		is_ruler = yes
		is_landed = yes
		is_at_war = no
		is_imprisoned = no
		highest_held_title_tier >= tier_county
		NOT = { has_trait = incapable }
		root.faith = scope:the_faith.great_holy_war.ghw_target_character.faith
		scope:the_faith = { #Crusade still exists
			great_holy_war ?= {
				NOT = { has_pledged_defender = root }
			}
			NOT = { exists = great_holy_war.ghw_war } #Must not have started already, only in preparation phase.
		}
	}

	immediate = {
		scope:the_faith.great_holy_war = {
			set_variable = {
				name = triple_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 3
				}
			}
			set_variable = {
				name = double_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 2
				}
			}
			set_variable = {
				name = one_and_a_half_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 1.5
				}
			}
			set_variable = {
				name = half_of_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 0.5
				}
			}
			set_variable = {
				name = quarter_of_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 0.25
				}
			}
		}
		random_list = {
			10 = { #Pledge.
				trigger = {
					OR = { # Either be independent, or have no liege above you of the attacking Faith, to avoid messy situations of vassals and lieges fighting against each other.
						top_liege = this
						any_liege_or_above = {
							count = all
							faith != scope:the_faith
						}
					}
				}
				scope:the_faith.great_holy_war = { pledge_defender = root }
			}
			45
			45 = { #Do not pledge.
				modifier = { #More pledging happening at start of preparation phase.
					factor = 0.75
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { days_until_ghw_launch > 200 }
				}
				modifier = { #Less pledging happening after.
					factor = 1.5
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { days_until_ghw_launch < 100 }
				}
				modifier = { #More likely if war is close by.
					factor = 0.5
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 25000 }
						}
					}
				}
				modifier = { #More likely if war is close by.
					factor = 0.75
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 50000 }
						}
					}
				}
				modifier = { #More likely if war is close by.
					factor = 0.8
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 800000 } # Roughly Rome to Portugal
						}
					}
				}
				modifier = { #Less likely if war is close by.
					factor = 1.75
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 1000000 }
						}
					}
				}
				modifier = { #Less likely if war is close by.
					factor = 1.75
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 1500000 }
						}
					}
				}
				modifier = { #Less likely if war is close by.
					factor = 2
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2000000 }
						}
					}
				}
				modifier = { #Just too darn far away...
					factor = 2.5
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2500000 }
						}
					}
				}
				modifier = { #Much less likely to happen if the war has started.
					factor = 1.75
					exists = scope:the_faith.great_holy_war.ghw_war
				}
				modifier = { #Don't get too crowded now.
					factor = 1.5
					scope:the_faith.great_holy_war = { ghw_defenders_strength > ghw_attackers_strength }
				}
				modifier = { #Don't get too crowded now.
					factor = 1.5
					scope:the_faith.great_holy_war = { ghw_defenders_strength > var:triple_attackers_strength }
				}
				modifier = { #Don't get too crowded now.
					factor = 1.5
					scope:the_faith.great_holy_war = { ghw_defenders_strength > var:double_attackers_strength }
				}
				modifier = { #Don't get too crowded now.
					factor = 1.25
					scope:the_faith.great_holy_war = { ghw_defenders_strength > var:one_and_a_half_attackers_strength }
				}
				modifier = { #Try to balance.
					factor = 0.35
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_defenders_strength < var:half_of_attackers_strength }
				}
				modifier = { #Try to balance.
					factor = 0.25
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_defenders_strength < var:quarter_of_attackers_strength }
				}
				modifier = { #Slightly more likely to join when fighting for a Holy Site.
					factor = 0.75
					scope:target_kingdom = {
						any_in_de_jure_hierarchy = {
							tier = tier_barony
							continue = { tier > tier_barony }
							is_holy_site_of = scope:target_faith
						}
					}
				}
				ai_value_modifier = { #Raw Zeal
					ai_zeal = -1.0
				}
				modifier = { #Basic traits
					factor = 2
					has_trait = cynical
				}
				modifier = { #Basic traits
					factor = 0.5
					has_trait = zealous
				}
				modifier = { #Tier
					factor = 0.75
					highest_held_title_tier = tier_kingdom
				}
				modifier = { #Tier
					factor = 0.5
					highest_held_title_tier = tier_empire
				}
			}
		}
	}
}

#AI hidden event to counterpledge to a Directed Great Holy War.
#Event is fired on_declaration.
#Requires a target_faith scope, defined in the cb.
#Requires a the_faith scope, defined in the cb.
great_holy_war.0093 = {
	hidden = yes
	
	trigger = {
		is_ai = yes
		is_ruler = yes
		is_landed = yes
		is_at_war = no
		is_imprisoned = no
		highest_held_title_tier >= tier_county
		NOT = { has_trait = incapable }
		root.faith = scope:target_faith
		scope:the_faith = { #Crusade still exists
			great_holy_war ?= {
				NOT = { has_pledged_defender = root }
			}
		}
	}

	immediate = {
		scope:the_faith.great_holy_war = {
			set_variable = {
				name = triple_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 3
				}
			}
			set_variable = {
				name = double_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 2
				}
			}
			set_variable = {
				name = one_and_a_half_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 1.5
				}
			}
			set_variable = {
				name = half_of_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 0.5
				}
			}
			set_variable = {
				name = quarter_of_attackers_strength
				value = {
					value = ghw_attackers_strength
					multiply = 0.25
				}
			}
		}
		random_list = {
			25 = { #Pledge.
				trigger = {
					OR = { # Either be independent, or have no liege above you of the attacking Faith, to avoid messy situations of vassals and lieges fighting against each other.
						top_liege = this
						any_liege_or_above = {
							count = all
							faith != scope:the_faith
						}
					}
				}
				scope:the_faith.great_holy_war = { pledge_defender = root }
			}
			75 = { #Do not pledge.
				modifier = { #More likely if war is close by.
					factor = 0.5
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 25000 }
						}
					}
				}
				modifier = { #More likely if war is close by.
					factor = 0.75
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 50000 }
						}
					}
				}
				modifier = { #More likely if war is close by.
					factor = 0.8
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value < 800000 } # Roughly Rome to Portugal
						}
					}
				}
				modifier = { #Less likely if war is close by.
					factor = 2
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 1000000 }
						}
					}
				}
				modifier = { #Less likely if war is close by.
					factor = 5
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 1500000 }
						}
					}
				}
				modifier = { #Less likely if war is close by.
					factor = 6
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2000000 }
						}
					}
				}
				modifier = { #Just too darn far away...
					factor = 10
					scope:target_kingdom = {
						capital_vassal.capital_vassal = {
							squared_distance = { target = root.capital_county value > 2500000 }
						}
					}
				}
				modifier = { #Try to balance.
					factor = 0.35
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_defenders_strength < var:half_of_attackers_strength }
				}
				modifier = { #Try to balance.
					factor = 0.25
					NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
					scope:the_faith.great_holy_war = { ghw_defenders_strength < var:quarter_of_attackers_strength }
				}
				modifier = { #Slightly more likely to join when fighting for a Holy Site.
					factor = 0.75
					scope:target_kingdom = {
						any_in_de_jure_hierarchy = {
							tier = tier_barony
							continue = { tier > tier_barony }
							is_holy_site_of = scope:target_faith
						}
					}
				}
				ai_value_modifier = { #Raw Zeal
					ai_zeal = -1.0
				}
				modifier = { #Basic traits
					factor = 2
					has_trait = cynical
				}
				modifier = { #Basic traits
					factor = 0.5
					has_trait = zealous
				}
				modifier = { #Tier
					factor = 0.75
					highest_held_title_tier = tier_kingdom
				}
				modifier = { #Tier
					factor = 0.5
					highest_held_title_tier = tier_empire
				}
			}
		}
	}
}

#AI hidden event to have a holy order counterpledge to a Great Holy War during the preparation phase.
#Event is fired when the Pope calls for the Crusade and when the target Kingdom is switched.
#Requires a the_faith scope, defined by event.
great_holy_war.0091 = {
	hidden = yes
	scope = holy_order

	trigger = {
		scope:the_faith = { #Crusade still exists
			great_holy_war ?= {
				NOT = { has_pledged_defender = root.leader }
			}
			NOT = { exists = scope:the_faith.great_holy_war.ghw_war } #Must not have started already, only in preparation phase.
		}
	}

	immediate = {
		scope:the_faith.great_holy_war = {
			pledge_defender = root.leader
		}
	}
}


great_holy_war.0022 = {
	hidden = yes
	scope = faith
	
	trigger = {
		exists = great_holy_war
		NOT = { exists = great_holy_war.ghw_war }
		great_holy_war = { days_until_ghw_launch <= 200 }
		great_holy_war = { days_until_ghw_launch >= 150 }
		save_temporary_scope_as = the_faith
		any_player = {
			ghw_pope_annoyed_at_lack_of_participation_trigger = yes
			ghw_pope_annoyed_at_lack_of_participation_tier_trigger = yes
			NOT = { has_character_flag = ghw_pope_poking }
			is_landless_adventurer = no
		}
	}

	immediate = {
		save_scope_as = the_faith

		if = {
			limit = { exists = great_holy_war.ghw_target_character }
			great_holy_war.ghw_target_character = { save_scope_as = target_character }
		}
		every_player = {
			limit = {
				ghw_pope_annoyed_at_lack_of_participation_trigger = yes
				ghw_pope_annoyed_at_lack_of_participation_tier_trigger = yes
				NOT = { has_character_flag = ghw_pope_poking }
				is_landless_adventurer = no
			}
			trigger_event = {
				id = great_holy_war.0023
				days = { 25 50 }
			}
		}
	}
}

#Actual event letter to players.
great_holy_war.0023 = {
	type = letter_event
	opening = { desc = great_holy_war.0015.opening }
	desc = {
		first_valid = { #Regular letter
			triggered_desc = {
				trigger = {
					NOT = {
						scope:scoped_pope = {
							has_hook_of_type = {
								target = root
								type = favor_hook
							}
						}
					}
				}
				desc = great_holy_war.0023.desc
			}
		}
		first_valid = { #Hooked player
			triggered_desc = {
				trigger = {
					scope:scoped_pope = {
						has_hook_of_type = {
							target = root
							type = favor_hook
						}
					}
				}
				desc = great_holy_war.0023.desc.hooked
			}
		}
	}
	sender = scope:scoped_pope
	
	trigger = {
		NOT = { exists = scope:the_faith.great_holy_war.ghw_war }
		ghw_pope_annoyed_at_lack_of_participation_trigger = yes
		ghw_pope_annoyed_at_lack_of_participation_tier_trigger = yes
		is_landless_adventurer = no
	}

	immediate = {
		if = { #If the Pope died in the meantime.
			limit = {
				NOR = {
					exists = scope:the_faith.great_holy_war.ghw_war_declarer
					scope:the_faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
				}
			}
			scope:the_faith = { ghw_set_new_war_declarer_effect = yes }
		}
		scope:the_faith.great_holy_war.ghw_war_declarer = { save_scope_as = scoped_pope }
		add_character_flag = { #Do not fire again.
			flag = ghw_pope_poking
			days = 200
		}
		set_variable = {
			name = ghw_pledge_amount
			value = great_holy_war_pledge_amount
		}
		set_variable = {
			name = half_great_holy_war_pledge_amount
			value = {
				value = root.great_holy_war_pledge_amount
				multiply = 0.5
			}
		}
	}
	
	option = {
		name = {
			trigger = { 				
				NOT = {
					scope:scoped_pope = {
						has_hook_of_type = {
							target = root
							type = favor_hook
						}
					}
				}
			}
			text = great_holy_war.0003.a
		}
		name = {
			trigger = {
				scope:scoped_pope = {
					has_hook_of_type = {
						target = root
						type = favor_hook
					}
				}
			}
			text = great_holy_war.0003.a.hooked
		}
		trigger = {
			ghw_pope_annoyed_at_lack_of_participation_trigger = yes
		}
		if = {
			limit = {
				scope:scoped_pope = {
					has_hook_of_type = {
						target = root
						type = favor_hook
					}
				}
			}
			scope:scoped_pope = {
				use_hook = root
			}
			add_character_flag = {
				flag = variable_ghw_papal_hooked_pledge
				days = 500
			}
		}
		if = {
			limit = {
				NOT = {
					scope:the_faith.great_holy_war = { has_pledged_attacker = root }
				}
			}
			pledge_ghw_piety_gain_effect = yes
			#Excommunication lifted.
			if = {
				limit = {
					has_trait = excommunicated
					faith = { has_doctrine_parameter = excommunication_active }
				}
				custom_tooltip = great_holy_war.0003.a.lifted_excommunication
				trigger_event = {
					id = great_holy_war.0015
					days = 37
				}
			}			
			scope:the_faith.great_holy_war = {
				pledge_attacker = root
				pledge_ghw_war_chest_prestige_effect = yes
				pledge_ghw_war_chest_piety_effect = yes
			}
		}
		stress_impact = {
			cynical = minor_stress_impact_gain
			zealous = minor_stress_impact_loss
		}

		ai_chance = {
			base = 10
			modifier = {
				factor = 0.5
				top_liege != this
			}
			modifier = {
				factor = 0.5
				highest_held_title_tier = tier_county
			}
			modifier = {
				factor = 0.1
				top_liege != this
				highest_held_title_tier <= tier_county
			}
			modifier = {
				factor = 5
				highest_held_title_tier >= tier_kingdom
			}
		}
	}
	
	option = {
		name = great_holy_war.0003.b
		trigger = {
			NOT = {
				scope:scoped_pope = {
					has_hook_of_type = {
						target = root
						type = favor_hook
					}
				}
			}
		}
		add_piety = root.var:half_great_holy_war_pledge_amount
		#Excommunication lifted.
		if = {
			limit = {
				has_trait = excommunicated
				faith = { has_doctrine_parameter = excommunication_active }
			}
			trigger_event = {
				id = great_holy_war.0015
				days = 37
			}
		}
		remove_short_term_gold = var:ghw_pledge_amount
		set_variable = {
			name = ghw_war_chest_donated_sum
			value = var:ghw_pledge_amount
		}
		scope:the_faith.great_holy_war = {
			change_war_chest_gold = root.var:ghw_pledge_amount
		}
		if = {
			limit = {
				NOT = { has_character_flag = ghw_pledged_gold }
			}
			add_character_flag = { #Used to check whether the Pope will harass for more later.
				flag = ghw_pledged_gold
				days = 550
			}
		}
		stress_impact = {
			cynical = minor_stress_impact_gain
			greedy = minor_stress_impact_gain
			generous = minor_stress_impact_loss
			zealous = minor_stress_impact_loss
		}
		ai_chance = {
			base = 10
		}
	}
	option = {
		name = great_holy_war.0023.c
		#But I'm already fighting infidels in another war!
		trigger = {
			is_at_war = yes
			NOR = {
				any_war_enemy = { faith = scope:the_faith }
				scope:scoped_pope = {
					has_hook_of_type = {
						target = root
						type = favor_hook
					}
				}
			}
		}
		ai_chance = {
			base = 0
		}
	}
	option = { #No excuses.
		name = great_holy_war.0023.d
		trigger = {
			OR = {
				is_at_war = no
				NOT = {
					any_war_enemy = {
						faith != scope:the_faith
					}
				}
			}
			NOT = {
				scope:scoped_pope = {
					has_hook_of_type = {
						target = root
						type = favor_hook
					}
				}
			}
		}
		#Piety price
		pledge_ghw_piety_loss_effect = yes
		add_piety_level = -1
		#Set Cooldown
		set_variable = {
			name = variable_ghw_unpledged_cooldown
			value = yes
			days = 60
		}
		#Religious Head is upset
		trigger_event = {
			id = great_holy_war.0016
			days = 37
		}
		stress_impact = {
			zealous = minor_stress_impact_gain
			cynical = minor_stress_impact_loss
		}
		ai_chance = {
			base = 0
		}
	}
	after = {
		remove_variable = ghw_pledge_amount
	}
}

#On_death: of Recipient, pick another one.
great_holy_war.0024 = {
	hidden = yes
	scope = character
	
	trigger = {
		exists = faith.great_holy_war
		faith.great_holy_war.ghw_designated_winner = root
	}

	immediate = {
		save_scope_as = former_recipient
		faith.great_holy_war = {
			faith = { save_scope_as = the_faith }
			ghw_target_title = { save_scope_as = target_kingdom }
			if = { #If Pope died in the meantime.
				limit = {
					NOR = {
						exists = scope:the_faith.great_holy_war.ghw_war_declarer
						scope:the_faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
					}
				}
				scope:the_faith = { ghw_set_new_war_declarer_effect = yes }
			}
			scope:the_faith.great_holy_war.ghw_war_declarer = { save_scope_as = ghw_sponsor }
			#Check and set sponsor if needed.
			undirected_ghw_recipient_selection_on_death_effect = yes
		}
		every_player = {
			limit = {
				scope:the_faith.great_holy_war = {
					OR = {
						has_pledged_attacker = prev
						has_pledged_defender = prev
					}
				}
			}
			if = {
				limit = { exists = scope:ghw_claimant }
				send_interface_toast = {
					type = event_toast_effect_bad
					left_icon = scope:former_recipient
					right_icon = scope:ghw_claimant
					title = great_holy_war.0024.dead.recipient.title
					custom_tooltip = great_holy_war.0024.dead.recipient.replaced
				}
			}
			else = {
				send_interface_toast = {
					type = event_toast_effect_bad
					left_icon = scope:former_recipient
					title = great_holy_war.0024.dead.recipient.title
					custom_tooltip = great_holy_war.0024.dead.recipient.open
				}
			}
		}
	}
}

#on_character_faith_change: of Recipient, pick another one.
great_holy_war.0025 = {
	hidden = yes
	scope = character
	
	trigger = {
		exists = scope:old_faith.great_holy_war
		scope:old_faith.great_holy_war.ghw_designated_winner = root
	}

	immediate = {
		scope:old_faith.great_holy_war = {
			faith = { save_scope_as = the_faith }
			ghw_target_title = { save_scope_as = target_kingdom }
			if = { #If Pope died in the meantime.
				limit = {
					OR = {
						NOT = {
							exists = scope:the_faith.great_holy_war.ghw_war_declarer
						}
						NOT = {
							scope:the_faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
						}
					}
				}
				scope:the_faith = { ghw_set_new_war_declarer_effect = yes }
			}
			scope:the_faith.great_holy_war.ghw_war_declarer = { save_scope_as = ghw_sponsor }
			#Check and set sponsor if needed.
			undirected_ghw_recipient_selection_effect = yes
		}
	}
}

#select Beneficiary for the AI automatically. Fired when it joins from great_holy_war.0020.
scripted_trigger great_holy_war_0026_valid_beneficiary_trigger = {
	NOR = {
		has_trait = excommunicated
		has_trait = incapable
		has_trait = devoted
		has_trait_with_flag = debilitating_illness
	}
	faith = root.faith
	is_adult = yes
	is_ruler = no
	any_heir_title = { count = 0 }	#Not heir to anything
	OR = { #Either not married, or not married to a ruler.
		is_married = no
		NOT = {
			any_spouse = {
				is_ruler = yes
			}
		}
	}
}

great_holy_war.0026 = {
	hidden = yes
	scope = character
	
	trigger = {
		exists = faith.great_holy_war
		faith.great_holy_war = {
			has_pledged_attacker = root
		}
	}

	immediate = {
		reset_beneficiary = yes #Reset by default, then, if also an AI, reassign automatically.
		if = {
			limit = { #If potential new beneficiary exists, pick one.
				is_lowborn = no
				dynasty = {
					any_dynasty_member = {
						great_holy_war_0026_valid_beneficiary_trigger = yes
					}
				}
			}
			dynasty = {
				random_dynasty_member = {
					limit = {
						great_holy_war_0026_valid_beneficiary_trigger = yes					
						OR = {
							AND = {
								is_male = yes
								faith = { has_doctrine = doctrine_gender_male_dominated }
							}
							AND = {
								is_female = yes
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
							NOR = {
								faith = { has_doctrine = doctrine_gender_male_dominated }
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
						}
						is_close_family_or_spouse_of_root_trigger = yes
						age <= 40
						NOT = { has_relation_rival = root }
						is_married = no
						culture = root.culture
					}
					alternative_limit = {
						great_holy_war_0026_valid_beneficiary_trigger = yes
						OR = {
							AND = {
								is_male = yes
								faith = { has_doctrine = doctrine_gender_male_dominated }
							}
							AND = {
								is_female = yes
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
							NOR = {
								faith = { has_doctrine = doctrine_gender_male_dominated }
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
						}
						is_close_family_or_spouse_of_root_trigger = yes
						age <= 40
						NOT = { has_relation_rival = root }
						is_married = no
					}
					alternative_limit = {
						great_holy_war_0026_valid_beneficiary_trigger = yes
						OR = {
							AND = {
								is_male = yes
								faith = { has_doctrine = doctrine_gender_male_dominated }
							}
							AND = {
								is_female = yes
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
							NOR = {
								faith = { has_doctrine = doctrine_gender_male_dominated }
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
						}
						is_close_family_or_spouse_of_root_trigger = yes
						age <= 40
						NOT = { has_relation_rival = root }
					}
					alternative_limit = {
						great_holy_war_0026_valid_beneficiary_trigger = yes
						OR = {
							AND = {
								is_male = yes
								faith = { has_doctrine = doctrine_gender_male_dominated }
							}
							AND = {
								is_female = yes
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
							NOR = {
								faith = { has_doctrine = doctrine_gender_male_dominated }
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
						}
						age <= 40
					}
					alternative_limit = {
						great_holy_war_0026_valid_beneficiary_trigger = yes
						OR = {
							AND = {
								is_male = yes
								faith = { has_doctrine = doctrine_gender_male_dominated }
							}
							AND = {
								is_female = yes
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
							NOR = {
								faith = { has_doctrine = doctrine_gender_male_dominated }
								faith = { has_doctrine = doctrine_gender_female_dominated }
							}
						}
					}
					alternative_limit = {
						great_holy_war_0026_valid_beneficiary_trigger = yes
					}
					weight = {
						base = 1
						opinion_modifier = { # Nepotism
							opinion_target = this
							who = root
						}
						modifier = { # More likely to send a soldier into enemy territory.
							add = 25
							has_trait = education_martial
						}
						modifier = { # Skill
							add = 15
							OR = {
								diplomacy >= 12
								martial >= 12
								stewardship >= 12
								intrigue >= 12
								learning >= 12
							}
						}
						modifier = { #Zeal
							add = 5
							has_strong_religious_conviction_trigger = yes
						}
						modifier = { #Virtues
							add = 2
							num_virtuous_traits >= 2
						}
					}
					save_scope_as = scoped_beneficiary
				}
			}
			set_beneficiary = scope:scoped_beneficiary
		}
		else = { #Else reset.
			reset_beneficiary = yes
		}
	}
}

#Same as above, but fired on death of a participant of a ghw, with different scopes.
great_holy_war.0027 = {
	hidden = yes
	scope = character

	trigger = {
		exists = scope:great_holy_war
		exists = scope:replacement.faith.great_holy_war
	}

	immediate = {
		scope:replacement = {
			if = {
				limit = {
					NOT = {
						scope:great_holy_war = { has_pledged_attacker = prev }
					}
				}
				scope:great_holy_war = { pledge_attacker = prev }
			}
			reset_beneficiary = yes #Reset by default, then, if also an AI, reassign automatically.
			if = {
				limit = { is_ai = yes }
				trigger_event = {
					id = great_holy_war.0026
					days = 2
				}
			}
		}
	}
}

#Resetting beneficiary when he becomes invalid for the spot, for whatever reason.
#On_death.
great_holy_war.0028 = {
	hidden = yes
	scope = character
	
	trigger = {
		exists = faith.great_holy_war
		faith.great_holy_war = {
			any_pledged_attacker = {
				ghw_beneficiary ?= root
			}
		}
	}

	immediate = {
		faith.great_holy_war = {
			every_pledged_attacker = {
				limit = {
					ghw_beneficiary ?= root
				}
				ghw_beneficiary = { save_scope_as = former_beneficiary }
				reset_beneficiary = yes #Reset by default, then, if also an AI, reassign automatically.
				if = {
					limit = { is_ai = no } #Send notification to player.
					send_interface_toast = {
						left_icon = root
						title = great_holy_war.0028.dead.beneficiary_title
						custom_tooltip = great_holy_war.0028.dead.beneficiary
					}
				}
				else = {
					trigger_event = {
						id = great_holy_war.0026
						days = 2
					}
				}
			}
		}
	}
}

#On_character_faith_change.
great_holy_war.0029 = {
	hidden = yes
	scope = character
	
	trigger = {
		exists = scope:old_faith.great_holy_war
		scope:old_faith.great_holy_war = {
			any_pledged_attacker = {
				ghw_beneficiary ?= root
			}
		}
	}

	immediate = {
		scope:old_faith.great_holy_war = {
			every_pledged_attacker = {
				limit = {
					ghw_beneficiary ?= root
				}
				ghw_beneficiary = { save_scope_as = former_beneficiary }
				reset_beneficiary = yes #Reset by default, then, if also an AI, reassign automatically.
				if = {
					limit = { is_ai = no } #Send notification to player.
					send_interface_toast = {
						left_icon = root
						title =  great_holy_war.0029.invalid.beneficiary_title
						custom_tooltip = great_holy_war.0029.converted.beneficiary
					}
				}
				else = {
					trigger_event = {
						id = great_holy_war.0026
						days = 2
					}
				}
			}
		}
	}
}

#All other conditions checked on_faith_monthly.

#If sick
#If incapable
#If monk/nun
#If Excommunicated
#If ruler
#If heir

great_holy_war.0030 = {
	hidden = yes
	scope = faith
	
	trigger = {
		great_holy_war ?= {
			any_pledged_attacker = { #If beneficiary has become invalid in the meantime, for whatever reason.
				ghw_beneficiary ?= {
					OR = {
						has_trait = incapable
						has_trait = excommunicated
						has_trait = devoted
						has_trait_with_flag = debilitating_illness
						is_ruler = yes
						any_heir_title = { }	#Shouldn't be heir to anything
					}
				}
			}
		}
	}

	immediate = {
		great_holy_war = {
			every_pledged_attacker = {
				limit = {
					ghw_beneficiary ?= {
						OR = {
							has_trait = incapable
							has_trait = excommunicated
							has_trait = devoted
							has_trait_with_flag = debilitating_illness
							AND = {
								is_ruler = yes
								NOT = { government_has_flag = government_is_landless_adventurer }
							}
							any_heir_title = { }	#Shouldn't be heir to anything
						}
					}
				}
				ghw_beneficiary = {
					save_scope_as = former_beneficiary
				}
				reset_beneficiary = yes #Reset by default, then, if also an AI, reassign automatically.
				if = {
					limit = {
						is_ai = no  #Send notification to player.
						scope:former_beneficiary = {
							OR = {
								has_trait = incapable
								has_trait = excommunicated
								has_trait = devoted
								has_trait_with_flag = debilitating_illness
								is_ruler = yes
								any_heir_title = { }	#Shouldn't be heir to anything
							}
						}
					}
					send_interface_toast = {
						type = event_toast_effect_bad
						left_icon = root
						title = great_holy_war.0029.invalid.beneficiary_title
						scope:former_beneficiary = {
							if = {
								limit = { has_trait = incapable }
								custom_tooltip = great_holy_war.0030.incapable.beneficiary
							}
							else_if = {
								limit = { has_trait = excommunicated }
								custom_tooltip = great_holy_war.0030.excommunicated.beneficiary
							}
							else_if = {
								limit = { has_trait = devoted }
								custom_tooltip = great_holy_war.0030.devoted.beneficiary
							}
							else_if = {
								limit = { has_trait_with_flag = debilitating_illness }
								custom_tooltip = great_holy_war.0030.sick.beneficiary
							}
							else_if = {
								limit = { is_ruler = yes }
								custom_tooltip = great_holy_war.0030.ruler.beneficiary
							}
							else_if = {
								limit = { any_heir_title = { } } #Shouldn't be heir to anything
								custom_tooltip = great_holy_war.0030.heir.beneficiary
							}
						}
					}
				}
				else_if = {
					limit = { is_ai = yes }
					trigger_event = {
						id = great_holy_war.0026
						days = 2
					}
				}
			}
		}
	}
}

# Player wishes to give money to the Crusade.
great_holy_war.0040 = {
	type = character_event
	title = great_holy_war.0003.title
	desc = great_holy_war.0040.desc
	theme = faith
	left_portrait = root

	immediate = {
		add_character_flag = { # Do not spam button.
			flag = ghw_pledging_gold
			days = 550
		}
		set_variable = {
			name = double_great_holy_war_pledge_amount
			value = {
				value = root.great_holy_war_pledge_amount
				multiply = 2
			}
		}
		set_variable = {
			name = triple_great_holy_war_pledge_amount
			value = {
				value = root.great_holy_war_pledge_amount
				multiply = 3
			}
		}

		#Set halves of above to give as Piety.

		set_variable = {
			name = half_great_holy_war_pledge_amount
			value = {
				value = root.great_holy_war_pledge_amount
				multiply = 0.5
			}
		}
		set_variable = {
			name = half_of_triple_great_holy_war_pledge_amount
			value = {
				value = root.var:triple_great_holy_war_pledge_amount
				multiply = 0.5
			}
		}

		if = {
			limit = {
				NOR = {
					exists = faith.great_holy_war.ghw_war_declarer
					faith.great_holy_war.ghw_war_declarer = { is_alive = yes }
				}
			}
			faith = { ghw_set_new_war_declarer_effect = yes }
		}
		root.faith.great_holy_war.ghw_war_declarer = { save_scope_as = scoped_pope }
	}
	
	option = { # Big donation.
		name = great_holy_war.0040.a
		trigger = { gold >= var:triple_great_holy_war_pledge_amount }
		add_piety = var:half_of_triple_great_holy_war_pledge_amount
		remove_short_term_gold = var:triple_great_holy_war_pledge_amount
		set_variable = {
			name = ghw_war_chest_donated_sum
			value = var:triple_great_holy_war_pledge_amount
		}
		scope:great_holy_war = {
			change_war_chest_gold = root.var:triple_great_holy_war_pledge_amount
		}
		scope:scoped_pope = {
			add_opinion = {
				target = root
				modifier = donated_ghw_money_2
			}
		}
		add_character_flag = { # Used to check whether the Pope will harass for more later.
			flag = ghw_pledged_gold
			days = 7300
		}
		stress_impact = {
			cynical = minor_stress_impact_gain
			greedy = medium_stress_impact_gain
		}
	}
	option = { # Medium donation.
		name = great_holy_war.0040.b
		trigger = { gold >= var:double_great_holy_war_pledge_amount }
		add_piety = root.great_holy_war_pledge_amount
		remove_short_term_gold = var:double_great_holy_war_pledge_amount
		set_variable = {
			name = ghw_war_chest_donated_sum
			value = var:double_great_holy_war_pledge_amount
		}

		scope:great_holy_war = { change_war_chest_gold = root.var:double_great_holy_war_pledge_amount }
		scope:scoped_pope = {
			add_opinion = {
				target = root
				modifier = donated_ghw_money_1
			}
		}
		add_character_flag = { # Used to check whether the Pope will harass for more later.
			flag = ghw_pledged_gold
			days = 7300
		}
		stress_impact = {
			cynical = minor_stress_impact_gain
			greedy = medium_stress_impact_gain
		}
	}
	option = { # Small donation.
		name = great_holy_war.0040.c
		trigger = { gold >= great_holy_war_pledge_amount }
		add_piety = var:half_great_holy_war_pledge_amount
		remove_short_term_gold = great_holy_war_pledge_amount
		set_variable = {
			name = ghw_war_chest_donated_sum
			value = great_holy_war_pledge_amount
		}
		scope:great_holy_war = {
			change_war_chest_gold = root.great_holy_war_pledge_amount
		}
		add_character_flag = { # Used to check whether the Pope will harass for more later.
			flag = ghw_pledged_gold
			days = 7300
		}
	}

	option = { #Never mind...
		name = great_holy_war.0040.d
	}
	after = {
		remove_character_flag = ghw_pledging_gold
		remove_variable = double_great_holy_war_pledge_amount
		remove_variable = triple_great_holy_war_pledge_amount
		remove_variable = half_great_holy_war_pledge_amount
		remove_variable = half_of_triple_great_holy_war_pledge_amount
	}
}

#great_holy_war.0050 Crusade preparation phase starts (defender) (fired from great_holy_war.0001)
#great_holy_war.0051 Crusade is declared (attackers/defenders) (fired from cb)
#great_holy_war.0052 crusade was won (attackers/defenders/bystanders) (fired from cb)
#great_holy_war.0053 crusade was lost (attackers/defenders/bystanders) (fired from cb)
#great_holy_war.0055 crusade failed to start (attackers/defenders/bystanders) (fired from on_great_holy_war_invalidation)

#Rulers of target faith are informed of the start of the preparation phase of the GHW against them.
great_holy_war.0050 = {
	title = great_holy_war.0050.title
	desc = {
		desc = great_holy_war.0050.base.desc
		first_valid = {
			#Defender.
			triggered_desc = {
				desc = great_holy_war.0050.defender.desc
				trigger = {
					scope:target_character = root
				}
			}
			#Everybody else.
			triggered_desc = {
				desc = great_holy_war.0050.others.desc
				trigger = {
					scope:target_character != root
				}
			}
		}
	}
	left_portrait = {
		character = scope:ghw_sponsor
		animation = war_attacker
	}
	lower_right_portrait = scope:target_character

	theme = faith
	override_background = {
		reference = armory
	}
	
	immediate = {
		scope:ghw_sponsor = {
			save_scope_as = background_temple_scope
		}
		play_music_cue = "mx_cue_combat_2"
	}

	option = {
		name = great_holy_war.0050.a
	}
}

#On_declaration of the GHW.
great_holy_war.0051 = {
	title = great_holy_war.0050.title
	desc = {
		first_valid = {
			#Catholic Flavor - Attackers
			triggered_desc = {
				trigger = {
					scope:attacker.faith.great_holy_war = {
						has_pledged_attacker = root
					}
					scope:the_faith = faith:catholic
				}
				desc = great_holy_war.0051.catholic.attackers.desc
			}
			#Everybody else's flavor - Attackers.
			triggered_desc = {
				trigger = {
					scope:attacker.faith.great_holy_war = {
						has_pledged_attacker = root
					}
					NOT = { scope:the_faith = faith:catholic }
				}
				desc = great_holy_war.0051.generic.attackers.desc
			}
			#Everybody else's flavor - Defenders.
			triggered_desc = {
				trigger = {
					scope:attacker.faith.great_holy_war = {
						has_pledged_defender = root
					}
				}
				desc = great_holy_war.0051.generic.defenders.desc
			}
		}
	}
	
	theme = faith
	override_background = { reference = temple }

	left_portrait = {
		character = scope:ghw_sponsor
		animation = war_attacker
	}
	lower_right_portrait = {
		character = scope:ghw_defender
		animation = war_defender
	}
	
	immediate = {
		show_as_tooltip = {
			scope:attacker.faith.great_holy_war = {
				divide_war_chest = { fraction = 0.2 }
			}
		}
		play_music_cue = "mx_cue_combat_3"
	}

	option = {
		name = great_holy_war.0011.a
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
			OR = { root.faith.religion = religion:eastern_orthodox_religion root.faith.religion = religion:catholic_religion root.faith.religion = religion:protestant_religion }
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0011.b
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
			root.faith.religion = religion:islam_religion
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0011.c
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
			NOR = {
				OR = { root.faith.religion = religion:eastern_orthodox_religion root.faith.religion = religion:catholic_religion root.faith.religion = religion:protestant_religion }
				root.faith.religion = religion:islam_religion
			}
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0011.d
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_defender = root }
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
}

#On_declaration of the GHW.
great_holy_war.0071 = {
	title = great_holy_war.0050.title
	desc = {
		first_valid = {
			#Everybody else's flavor - Attackers.
			triggered_desc = {
				trigger = {
					OR = {
						faith = scope:attacker.faith
						is_vassal_of = scope:attacker
					}
				}
				desc = great_holy_war.0071.generic.attackers.desc
			}
			#Everybody else's flavor - Defenders.
			triggered_desc = {
				trigger = {
					OR = {
						faith = scope:defender.faith
						is_vassal_of = scope:defender
					}
				}
				desc = great_holy_war.0071.generic.defenders.desc
			}
		}
	}
	theme = faith
	override_background = {
		reference = armory
	}
	right_portrait = {
		character = scope:ghw_sponsor
		animation = war_attacker
	}
	left_portrait = {
		character = scope:ghw_defender
		animation = war_defender
	}

	
	option = { #Join directed GHW as attacker.
		name = great_holy_war.0011.directed.a
		trigger = {
			is_ai = no
			is_at_war = no
			faith = scope:attacker.faith
			NOR = {
				this = scope:attacker
				scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
				scope:attacker.faith.great_holy_war = { has_pledged_defender = root }
			}
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
		scope:attacker.faith.great_holy_war = { pledge_attacker = root }
	}
	
	option = { #Join directed GHW as defender.
		name = great_holy_war.0011.directed.b
		trigger = {
			is_ai = no
			is_at_war = no
			faith = scope:defender.faith
			NOR = {
				this = scope:defender
				scope:attacker.faith.great_holy_war = { has_pledged_defender = root }
				scope:attacker.faith.great_holy_war = { has_pledged_defender = root }
			}
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
		scope:attacker.faith.great_holy_war = { pledge_defender = root }
	}

	option = {
		name = great_holy_war.0011.a
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
			OR = { root.faith.religion = religion:eastern_orthodox_religion root.faith.religion = religion:catholic_religion root.faith.religion = religion:protestant_religion }
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0011.b
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
			root.faith.religion = religion:islam_religion
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0011.c
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_attacker = root }
			NOR = {
				OR = { root.faith.religion = religion:eastern_orthodox_religion root.faith.religion = religion:catholic_religion root.faith.religion = religion:protestant_religion }
				root.faith.religion = religion:islam_religion
			}
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0011.d
		trigger = {
			scope:attacker.faith.great_holy_war = { has_pledged_defender = root }
		}

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
	option = {
		name = great_holy_war.0050.a
		trigger = {
			scope:attacker.faith != root.faith
		}
		fallback = yes

		custom_tooltip = great_holy_war.0051.generic.start.tt
	}
}

#The Crusade was successful.
great_holy_war.0052 = {
	title = {
		first_valid = { #Title for winners/bystanders
			triggered_desc = {
				trigger = {
					scope:ghw_defender.faith.religion != root.faith.religion
				}
				desc = great_holy_war.0052.title.winners
			}
		}
		first_valid = { #Title for losers
			triggered_desc = {
				trigger = { scope:ghw_defender.faith.religion = root.faith.religion }
				desc = great_holy_war.0052.title.losers
			}
		}
	}
	desc = {
		first_valid = {
			#Everybody else's flavor - Attackers.
			triggered_desc = {
				trigger = { scope:attacker.faith = root.faith }
				desc = great_holy_war.0052.generic.attackers.desc
			}
			#Everybody else's flavor - Defenders.
			triggered_desc = {
				trigger = { scope:ghw_defender.faith.religion = root.faith.religion }
				desc = great_holy_war.0052.generic.defenders.desc
			}
			#Other players.
			triggered_desc = {
				trigger = {
					NOR = {
						scope:attacker.faith = root.faith
						scope:ghw_defender.faith.religion = root.faith.religion
					}
				}
				desc = great_holy_war.0052.generic.outsiders.desc
			}
		}
	}
	theme = faith
	override_background = {
		reference = battlefield
	}
	left_portrait = {
		character = scope:title_recipient
		animation = war_over_win
	}
	right_portrait = {
		character = scope:ghw_defender
		animation = shame
	}
	
	immediate = {
		play_music_cue = "mx_cue_general_crusade_event_3"
		if = {
			limit = {
				has_trait = faith_warrior
				save_temporary_scope_as = char_temp
				scope:attacker.faith.great_holy_war = {
					any_pledged_attacker = { this = scope:char_temp }
				}
			}
			absolve_crusaders_of_gallowsbait_effect = yes
		}
	}
	
	option = {
		name = great_holy_war.0052.a
		trigger = { scope:attacker.faith = root.faith }
	}
	
	option = {
		name = great_holy_war.0052.b
		trigger = { scope:ghw_defender.faith = root.faith }
	}
	
	option = {
		name = great_holy_war.0052.c
		trigger = {
			NOR = {
				scope:attacker.faith = root.faith
				scope:ghw_defender.faith = root.faith
			}
		}
	}

	after = { remove_variable = ghw_war_chest_donated_sum }
}

#The Crusade failed.
great_holy_war.0053 = {
	title = great_holy_war.0053.title
	desc = {
		first_valid = {
			#Everybody else's flavor - Attackers.
			triggered_desc = {
				trigger = { scope:attacker.faith = root.faith }
				desc = great_holy_war.0053.generic.attackers.desc
			}
			#Everybody else's flavor - Defenders.
			triggered_desc = {
				trigger = { scope:ghw_defender.faith.religion = root.faith.religion }
				desc = great_holy_war.0053.generic.defenders.desc
			}
			#Other players.
			triggered_desc = {
				trigger = {
					NOR = {
						scope:attacker.faith = root.faith
						scope:ghw_defender.faith.religion = root.faith.religion
					}
				}
				desc = great_holy_war.0053.generic.outsiders.desc
			}
		}
	}
	theme = faith
	override_background = {
		reference = battlefield
	}
	left_portrait = {
		character = scope:ghw_sponsor
		animation = shame
	}
	right_portrait = {
		character = scope:ghw_defender
		animation = war_over_win
	}

	immediate = {
		play_music_cue = "mx_cue_general_crusade_event_3"
	}

	option = {
		name = great_holy_war.0053.a
		trigger = { scope:attacker.faith = root.faith }
	}
	
	option = {
		name = great_holy_war.0053.b
		trigger = { scope:ghw_defender.faith.religion = root.faith.religion }
	}
	
	option = {
		name = great_holy_war.0052.c
		trigger = {
			NOR = {
				scope:attacker.faith = root.faith
				scope:ghw_defender.faith.religion = root.faith.religion
			}
		}
	}

	after = { remove_variable = ghw_war_chest_donated_sum }
}

#on_great_holy_war_invalidation: Crusade has been invalidated before starting.
great_holy_war.0055 = {
	hidden = yes
	scope = ghw
	
	immediate = {
		save_scope_as = the_ghw

		#Loc keys for localisation fluff.
		ghw_target_character = { save_scope_as = ghw_defender }
		faith = {
			religious_head = { save_scope_as = ghw_sponsor }
			save_scope_as = the_faith
			change_fervor = {
				value =  -10
				desc = fervor_loss_crusade_invalid
			}
			set_variable = {
				name = variable_ghw_cooldown
				value = yes
				years = 30
			}
		}
		every_player = {
			limit = {
				OR = {
					faith = scope:ghw_sponsor.faith
					faith = scope:ghw_defender.faith
				}
			}
			trigger_event = great_holy_war.0056
		}
	}
}

great_holy_war.0056 = {
	title = great_holy_war.0056.title
	desc = great_holy_war.0056.desc
	theme = faith
	override_background = {
		reference = battlefield
	}
	right_portrait = {
		character = scope:ghw_sponsor
		animation = shame
	}
	left_portrait = {
		character = scope:ghw_defender
		animation = war_over_win
	}

	
	option = {
		name = great_holy_war.0056.a
		trigger = { scope:ghw_sponsor.faith = root.faith }

		if = {
			limit = { has_variable = ghw_war_chest_donated_sum }
			add_gold = var:ghw_war_chest_donated_sum
			remove_variable = ghw_war_chest_donated_sum
		}
	}
	
	option = {
		name = great_holy_war.0056.b
		trigger = { scope:ghw_defender.faith = root.faith }
	}
	option = {
		name = great_holy_war.0056.c
		trigger = {
			NOR = {
				scope:ghw_sponsor.faith = root.faith
				scope:ghw_defender.faith = root.faith
			}
		}
	}
}

#Crusader trait gained during GHW.
#Fired on_army_enter_province
#Hidden first event fires for the owner of the army.
#root = owner of the army
#scope:army = the army itself.
great_holy_war.0060 = {
	hidden = yes
	
	trigger = {
		exists = root.faith.great_holy_war
		OR = { #Either army owner or one of his lieges is involved in a GHW.
			any_character_war = {
				OR = {
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
				is_attacker = root
			}
			any_liege_or_above = {
				faith = root.faith
				any_character_war = {
					OR = {
						using_cb = undirected_great_holy_war
						using_cb = directed_great_holy_war
					}
					is_attacker = root
				}
			}
		}
		scope:army = {
			exists = army_commander
			location = { save_temporary_scope_as = current_location }
			army_commander = {
				NOR = {
					has_trait = crusader_king
					has_trait = faith_warrior
				}
			}
		}
		root.faith.great_holy_war.ghw_target_title = { #The dejure Kingdom targeted by the GHW
			any_in_de_jure_hierarchy = {
				tier = tier_barony
				title_province = { this = scope:current_location } #Any province within it.
				holder ?= { #The province's owner must also be part of the GHW on the opposite side.
					OR = {
						any_character_war = {
							OR = {
								using_cb = undirected_great_holy_war
								using_cb = directed_great_holy_war
							}
							is_defender = prev
						}
						any_liege_or_above = {
							any_character_war = {
								OR = {
									using_cb = undirected_great_holy_war
									using_cb = directed_great_holy_war
								}
								is_defender = prev
							}
						}
					}
				}
			}
		}
	}

	immediate = {
		scope:army.location = { save_scope_as = current_location }
		faith = { save_scope_as = the_faith }
		faith.great_holy_war = { save_scope_as = scoped_ghw }
		faith.great_holy_war.ghw_target_title = { save_scope_as = target_kingdom }
		scope:army = {
			army_commander = { trigger_event = great_holy_war.0057 }
			army_owner = {
				every_knight = {
					limit = {
						location = scope:current_location
					}
					trigger_event = great_holy_war.0057
				}
			}
		}
	}
}

great_holy_war.0057 = {
	title = great_holy_war.0057.title
	desc = {
		first_valid = {
			triggered_desc = { #Crusaders
				trigger = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } }
				desc = great_holy_war.0057.crusader.desc
			}
			triggered_desc = { #Muslims
				trigger = { faith.religion = religion:islam_religion }
				desc = great_holy_war.0057.mujahid.desc
			}
			triggered_desc = { #Everybody else
				trigger = {
					NOR = {
						OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion }
						faith.religion = religion:islam_religion
					}
				}
				desc = great_holy_war.0057.generic.outsiders.desc
			}
		}
	}
	theme = faith
	override_background = {
		reference = wilderness_scope
	}
	left_portrait = {
		character = root
		animation = marshal_shield
	}
	
	trigger = {
		root.faith = scope:the_faith
		exists = faith.great_holy_war
		NOR = {
			has_trait = crusader_king
			has_trait = faith_warrior
		}
		OR = {
			is_commanding_army = yes
			is_knight = yes
		}
	}

	immediate = {
		location = { save_scope_as = background_wilderness_scope }
	}
	
	option = {
		name = great_holy_war.0057.a
		add_trait = faith_warrior
		hidden_effect = { #Punish player sneakery.
			trigger_event = {
				id = great_holy_war.0058
				days = { 15 60 }
			}
		}
	}
}

#Character is no longer in the Holy Land fighting infidels, not even a few weeks after getting the trait!
great_holy_war.0058 = {
	title = great_holy_war.0058.title
	desc = great_holy_war.0058.base.desc
	theme = faith
	left_portrait = {
		character = root
		animation = shame
	}
	
	trigger = {
		exists = faith.great_holy_war #GHW must still be ongoing.
		has_trait = faith_warrior
		is_commanding_army = no #Should have stayed in command.
		is_knight = no
		is_imprisoned = no #Don't penalise captured faith_warriors.
		NOR = {
			has_trait = incapable
			has_trait_with_flag = debilitating_illness
		}
		OR = { #Character or liege must still be at war, obviously.
			any_character_war = {
				OR = {
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
				is_attacker = root
			}
			any_liege_or_above = {
				faith = root.faith
				any_character_war = {
					OR = {
						using_cb = undirected_great_holy_war
						using_cb = directed_great_holy_war
					}
					is_attacker = root
				}
			}
		}
	}
	
	
	option = {
		name = great_holy_war.0058.a
		if = {
			limit = { is_ai = no } #Punish player more.
			add_piety = major_piety_loss
		}
		if = {
			limit = { has_trait = faith_warrior }
			remove_trait = faith_warrior
		}
	}
}

#on_character_faith_change: check if the character has changed Religion, in which case the Crusader trait should be cleared.
great_holy_war.0059 = {
	hidden = yes
	scope = character
	
	trigger = {
		OR = {
			has_trait = crusader_king
			has_trait = faith_warrior
		}
	}

	immediate = {
		if = {
			limit = {
				has_trait = crusader_king
			}
			remove_trait = crusader_king
		}
		else_if = {
			limit = {
				has_trait = faith_warrior
			}
			remove_trait = faith_warrior
		}
	}
}

#great_holy_war.0060 Taken for hidden event.


#Event firing for all existing Beneficiaries on_victory to give proper modifiers to their dynasty/House.
great_holy_war.0061 = {
	hidden = yes
	scope = character
	
	trigger = {
		is_alive = yes
		is_landed = yes #Must have received land in the Crusade.
	}
	
	immediate = {
		save_scope_as = scoped_beneficiary
		dynasty = {
			add_dynasty_modifier = {
				modifier = dynasty_beneficiary_won_ghw
				years = 30
			}
			every_dynasty_member = {
				limit = { is_ai = no }
				send_interface_message = {
					type = event_great_holy_war_good_message
					title = great_holy_war.0061.title
					desc = great_holy_war.0061.notification
					left_icon = scope:scoped_beneficiary.primary_title
					right_icon = scope:scoped_beneficiary
				}
			}
		}
		if = {
			limit = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } }
			house = {
				add_house_modifier = {
					modifier = house_beneficiary_won_ghw_crusade
					years = 30
				}
			}
		}
		else_if = {
			limit = { faith.religion = religion:islam_religion }
			house = {
				add_house_modifier = {
					modifier = house_beneficiary_won_ghw_jihad
					years = 30
				}
			}
		}
		else = {
			house = {
				add_house_modifier = {
					modifier = house_beneficiary_won_ghw
					years = 30
				}
			}
		}
		# Plus if we're gallowsbait, remove most/all of it — accounting for some weirdnesses from laamps.
		if = {
			limit = {
				NOR = {
					has_trait = crusader_king
					save_temporary_scope_as = char_temp
					scope:attacker.faith.great_holy_war = {
						any_pledged_attacker = { this = scope:char_temp }
					}
				}
			}
			absolve_crusaders_of_gallowsbait_effect = yes
		}
	}
}

great_holy_war.0070 = {
	title = great_holy_war.0070.title
	desc = great_holy_war.0070.base.desc
	theme = faith
	override_background = {
		reference = throne_room_scope
	}

	left_portrait = {
		character = scope:title_recipient
		animation = ecstasy
	}
	
	trigger = { is_ai = no }
	
	immediate = {
		scope:title_recipient = {
			save_scope_as = background_throne_room_scope
		}
	}

	option = {
		name = great_holy_war.0070.a
		set_player_character = scope:title_recipient
	}
	option = { name = great_holy_war.0070.b }
}

#0071 taken for directed GHW notification.

#on_death: of ghw_sponsor, pick a new one immediately.
great_holy_war.0080 = {
	hidden = yes
	scope = character
	
	trigger = {
		exists = faith.great_holy_war
		root = faith.great_holy_war.ghw_war_declarer
	}
	
	immediate = {
		faith = {
			save_scope_as = the_faith
			ghw_set_new_war_declarer_effect = yes
		}
	}
}

#Player redirected GHW during preparation phase. (old defenders)
great_holy_war.0081 = {
	title = great_holy_war.0081.title
	desc = great_holy_war.0081.desc
	theme = faith
	right_portrait = {
		character = scope:actor
		animation = scheme
	}
	left_portrait = scope:second_recipient
	lower_left_portrait = scope:recipient

	
	option = { name = great_holy_war.0081.a }
}

#Player redirected GHW during preparation phase. (new defenders)
great_holy_war.0082 = {
	title = great_holy_war.0081.title
	desc = great_holy_war.0082.desc
	theme = faith
	right_portrait = {
		character = scope:actor
		animation = scheme
	}
	left_portrait = scope:second_recipient
	lower_left_portrait = scope:recipient

	option = { name = great_holy_war.0082.a }
}

#On_death event to reset GHW fallback recipient.
great_holy_war.0083 = {
	hidden = yes

	trigger = {
		exists = faith.great_holy_war
		has_character_flag = flag_is_ghw_fallback_recipient
	}

	immediate = {	
		faith.great_holy_war = { remove_variable = var_fallback_recipient }
		if = {
			limit = { exists = faith.great_holy_war.ghw_war_declarer.capital_province }
			faith.great_holy_war.ghw_war_declarer = { save_scope_as = fallback_host }
		}
		else_if = {
			limit = {
				NOT = { exists = faith.great_holy_war.ghw_war_declarer.capital_province }
			}
			random_ruler = {
				limit = {
					is_landed = yes
					faith = root.faith
					highest_held_title_tier > 1
				}
				save_scope_as = fallback_host
			}
		}
		#Generate a fallback recipient.
		create_character = {
			location = scope:fallback_host.capital_province
			template = new_commander_character
			faith = root.faith
			culture = root.culture
			save_scope_as = fallback_recipient
			gender_female_chance = {
				if = {
					limit = {
						root.faith = { has_doctrine = doctrine_gender_male_dominated }
					}
					add = 0
				}
				else_if = {
					limit = {
						root.faith = { has_doctrine = doctrine_gender_female_dominated }
					}
					add = 100
				}
				else = { add = 50 }
			}
		}
		scope:fallback_recipient = {
			add_character_flag = flag_is_ghw_fallback_recipient
		}
		root.faith.great_holy_war = {
			set_variable = {
				name = var_fallback_recipient
				value = scope:fallback_recipient
			}
		}
	}
}

#On_faith_conversion event to reset GHW fallback recipient.
great_holy_war.0084 = {
	hidden = yes

	trigger = {
		exists = scope:old_faith.great_holy_war
		has_character_flag = flag_is_ghw_fallback_recipient
	}

	immediate = {	
		scope:old_faith.great_holy_war = { remove_variable = var_fallback_recipient }
		if = {
			limit = { exists = scope:old_faith.great_holy_war.ghw_war_declarer.capital_province }
			scope:old_faith.great_holy_war.ghw_war_declarer = { save_scope_as = fallback_host }
		}
		else_if = {
			limit = {
				NOT = { exists = scope:old_faith.great_holy_war.ghw_war_declarer.capital_province }
			}
			scope:old_faith = {
				random_faith_ruler = {
					limit = {
						is_landed = yes
						highest_held_title_tier > tier_barony
					}
					save_scope_as = fallback_host
				}
			}
		
		}
		#Generate a fallback recipient.
		create_character = {
			location = scope:fallback_host.capital_province
			template = new_commander_character
			faith = scope:old_faith
			culture = root.culture
			save_scope_as = fallback_recipient
			gender_female_chance = {
				if = {
					limit = {
						root.faith = { has_doctrine = doctrine_gender_male_dominated }
					}
					add = 0
				}
				else_if = {
					limit = {
						root.faith = { has_doctrine = doctrine_gender_female_dominated }
					}
					add = 100
				}
				else = { add = 50 }
			}
		}
		scope:fallback_recipient = { add_character_flag = flag_is_ghw_fallback_recipient }
		scope:old_faith.great_holy_war = {
			set_variable = {
				name = var_fallback_recipient
				value = scope:fallback_recipient
			}
		}
	}
}

#On_faith_conversion: clear all vassals of the old faith who may be pledged to a GHW.
great_holy_war.0085 = {
	hidden = yes

	trigger = {
		exists = scope:old_faith.great_holy_war
		NOT = { exists = scope:old_faith.great_holy_war.ghw_war }
		any_vassal = {
			faith = scope:old_faith
			faith.great_holy_war = { has_pledged_attacker = prev }
		}
	}

	immediate = {
		save_scope_as = converter
		every_vassal = {
			limit = {
				faith = scope:old_faith
				faith.great_holy_war = { has_pledged_attacker = prev }
			}
			send_interface_toast = {
				type = event_toast_effect_bad
				right_icon = this
				left_icon = scope:converter
				title = great_holy_war.0085.toast
				faith.great_holy_war = {
					unpledge_attacker = prev
					unpledge_ghw_war_chest_prestige_effect = yes
					unpledge_ghw_war_chest_piety_effect = yes
				}
			}
		}
	}
}
