﻿####################################
# Heresy system - shared effects   #
####################################
# Reusable building blocks for heresy_pulse.0001 router and the three component event chains (light, dangerous-rite, historical).

# Faith scope. Sets the cooldown variable that gates faith_heresy_events_pulse.
pam_heresy_set_pulse_cooldown_effect = {
	set_variable = {
		name = current_heresy
		value = yes
		days = pam_heresy_pulse_cooldown_days
	}
}

# Faith scope. Resets fervor to the tiered component target.
# COMPONENT = 1, 2, or 3.
pam_heresy_fervor_reset_effect = {
	if = {
		limit = { $COMPONENT$ = 1 }
		change_fervor = {
			value = pam_heresy_fervor_reset_component_1_value
			desc = pam_heresy_fervor_reset_component_1_desc
		}
	}
	else_if = {
		limit = { $COMPONENT$ = 2 }
		change_fervor = {
			value = pam_heresy_fervor_reset_component_2_value
			desc = pam_heresy_fervor_reset_component_2_desc
		}
	}
	else = {
		change_fervor = {
			value = pam_heresy_fervor_reset_component_3_value
			desc = pam_heresy_fervor_reset_component_3_desc
		}
	}
}

# Christian Situation catalyst
pam_heresy_push_catalyst_effect = {
	if = {
		limit = { religion = religion:christianity_religion }
		situation:the_christian_church ?= {
			trigger_situation_catalyst = $CATALYST$
		}
	}
}

# Faith scope.
# Snapshots the rite's current tenets and the HoR's known rite doctrines.
# The pam_heresy_c1_resolve_differences_effect can later identify what the divergence swapped in.
pam_heresy_c1_snapshot_pre_divergence_state_effect = {
	scope:diverging_rite = {
		every_rite_tenet = {
			add_to_list = c1_pre_divergence_tenets
		}
	}
	if = {
		limit = { exists = scope:hor }
		scope:hor = {
			every_character_doctrine = {
				rite_filter = scope:diverging_rite
				add_to_list = c1_pre_divergence_doctrines
			}
		}
	}
}

# Faith scope (called after change_rite_divergence has been applied).
# Saves scope:differing_tenet / scope:differing_doctrine for the C1 flavour text.
# C1 narrates a within-rite shift, so the comparison must be against the pre-divergence snapshot of scope:diverging_rite - not against the parent faith's main rite (which would surface pre-existing differences like Mozarabic's Communion).
# C2/C3 keep using rite_growth_resolve_differences_effect because there the mainline-vs-new-rite delta is the relevant story.
pam_heresy_c1_resolve_differences_effect = {
	clear_saved_scope = differing_tenet
	clear_saved_scope = differing_doctrine

	scope:diverging_rite = {
		random_rite_tenet = {
			limit = {
				NOT = { is_in_list = c1_pre_divergence_tenets }
			}
			save_scope_as = differing_tenet
		}
	}

	if = {
		limit = {
			NOT = { exists = scope:differing_tenet }
			exists = scope:hor
		}
		scope:hor = {
			random_character_doctrine = {
				rite_filter = scope:diverging_rite
				limit = {
					NOT = { is_in_list = c1_pre_divergence_doctrines }
				}
				save_scope_as = differing_doctrine
			}
		}
	}
}

# Faith scope. Picks the rite to diverge in Component 1.
# Saves scope:diverging_rite.
# Filters: exclude mainline, damper insular_celtic / mozarabic_church to factor 0.1.
# Weighted by current divergence so already-divergent rites are more likely.
pam_heresy_c1_pick_diverging_rite_effect = {
	clear_saved_scope = diverging_rite

	random_faith_rite = {
		limit = {
			this != faith.main_rite
			rite_counties >= 1
			head_of_rite ?= { is_ai = yes }
		}

		weight = {
			base = 5
			# More divergent rites are more likely to deepen further.
			modifier = {
				add = 10
				"divergence(faith.main_rite)" >= 25
			}
			modifier = {
				add = 20
				"divergence(faith.main_rite)" >= 50
			}
			modifier = {
				add = 20
				"divergence(faith.main_rite)" >= 75
			}
			# Pluralism-resistant rites are less prone to lurching toward heresy.
			modifier = {
				factor = 0.5
				rite_has_parameter = pluralism_pluralistic_resistant_to_heresy
			}
			# Insular Celtic and Mozarabic are doctrinally weird but historically not the seedbed for heresy outbreaks; dampen without excluding outright.
			modifier = {
				factor = 0.1
				OR = {
					this = rite:insular_celtic
					this = rite:mozarabic_church
				}
			}
		}

		save_scope_as = diverging_rite
	}
}

# Character scope (an AI ruler being swept into a new rite by Component 2 / 3 spread).
# Mirrors rite_growth_convert_ruler_to_new_rite_effect, but uses a heresy flag.
pam_heresy_convert_ruler_to_new_rite_effect = {
	if = {
		limit = { rite != scope:new_rite }
		set_character_rite_with_conversion = scope:new_rite
	}
	every_held_title = {
		limit = {
			tier = tier_county
			rite = scope:source_rite
		}
		set_county_rite = scope:new_rite
	}
	add_character_flag = {
		flag = recently_converted_by_heresy
		years = 10
	}
	# Mirror rite_growth_convert_ruler_to_new_rite_effect
	rite_growth_convert_court_to_new_rite_effect = yes
	
	# Archbishop clerical-region cascade.
	if = {
		limit = { any_held_title = { has_clerical_region = yes } }
		every_held_title = {
			limit = { has_clerical_region = yes }
			save_temporary_scope_as = title_check
			every_county_in_clerical_region = {
				limit = {
					rite = scope:source_rite
					OR = {
						this = scope:title_check.title_capital_county
						any_neighboring_county = {
							this = scope:title_check.title_capital_county
						}
					}
				}
				set_county_rite = scope:new_rite
				holder = {
					if = {
						limit = { is_eligible_rite_growth_target_trigger = yes }
						pam_heresy_convert_ruler_to_new_rite_effect = yes
					}
				}
			}
		}
	}
}

# Character scope, an AI ruler pulled into the declared heresy faith by the third component's spread
# Faith-conversion equivalent of pam_heresy_convert_ruler_to_new_rite_effect
pam_heresy_convert_ruler_to_heresy_faith_effect = {
	if = {
		limit = { faith != scope:heresy_faith }
		# For Catholic historical heresies, conversion is handled here county by
		# county. Do not call the broad with_conversion effect, which can bypass
		# the geographical filter and convert territory outside the allowed area.
		if = {
			limit = { scope:heresy_faith = { religion = religion:catholic_religion } }
			set_character_faith = scope:heresy_faith
		}
		else = {
			set_character_faith_with_conversion = scope:heresy_faith
			if = {
				limit = { faith != scope:heresy_faith }
				set_character_faith = scope:heresy_faith
			}
		}
	}
	every_held_title = {
		limit = {
			tier = tier_county
			faith = scope:origin_faith
			pam_heresy_neow_permitted_county_trigger = yes
		}
		set_county_faith = scope:heresy_faith
	}
	add_character_flag = {
		flag = recently_converted_by_heresy
		years = 10
	}
	# Faith-side mirror of rite_growth_convert_court_to_new_rite_effect.
	every_courtier_or_guest = {
		limit = {
			is_physically_able_ai = yes
			faith = scope:origin_faith
			NOT = { has_character_flag = ai_will_not_convert }
		}
		set_character_faith = scope:heresy_faith
	}
	every_courtier_away = {
		limit = {
			is_physically_able_ai = yes
			faith = scope:origin_faith
			NOT = { has_character_flag = ai_will_not_convert }
		}
		set_character_faith = scope:heresy_faith
	}
	every_pool_character = {
		province = capital_province
		limit = {
			is_physically_able_ai = yes
			faith = scope:origin_faith
			NOT = { has_character_flag = ai_will_not_convert }
		}
		set_character_faith = scope:heresy_faith
	}
	# Faith-side mirror of the rite cascade in pam_heresy_convert_ruler_to_new_rite_effect.
	if = {
		limit = { any_held_title = { has_clerical_region = yes } }
		every_held_title = {
			limit = { has_clerical_region = yes }
			save_temporary_scope_as = title_check
			every_county_in_clerical_region = {
				limit = {
					pam_heresy_neow_permitted_county_trigger = yes
					faith = scope:origin_faith
					OR = {
						this = scope:title_check.title_capital_county
						any_neighboring_county = {
							this = scope:title_check.title_capital_county
						}
					}
				}
				set_county_faith = scope:heresy_faith
				holder = {
					if = {
						# Faith version of is_eligible_rite_growth_target_trigger, since scope:source_rite is not set after declaration
						limit = {
							is_physically_able_ai_adult = yes
							faith = scope:origin_faith
							capital_county = { pam_heresy_neow_permitted_county_trigger = yes }
							NOR = {
								scope:founder ?= this
								has_trait = heresiarch
								has_trait = herald
								recently_converted_faith_trigger = yes
								has_character_flag = recently_converted_by_rite_growth
								has_character_flag = ai_will_not_convert
								faith.religious_head ?= this
								highest_held_title_tier >= tier_empire
							}
						}
						pam_heresy_convert_ruler_to_heresy_faith_effect = yes
					}
				}
			}
		}
	}
}

# Any scope. Spread message for all three components, sent after scope:convert_ruler converts
# Reaches same-faith players near the convert and the convert's liege
# Shows a rite change when scope:new_rite exists, otherwise a faith change to scope:heresy_faith
# TITLE = message title loc key
pam_heresy_send_spread_message_effect = {
	every_player = {
		limit = {
			faith = scope:origin_faith
			NOR = {
				this = scope:convert_ruler
				scope:founder ?= this
			}
			OR = {
				scope:convert_ruler.liege ?= this
				capital_county ?= {
					squared_distance = {
						target = scope:convert_ruler.capital_county
						value <= squared_distance_medium
					}
				}
			}
		}
		if = {
			limit = { exists = scope:new_rite }
			send_interface_message = {
				type = msg_pam_heresy_spread
				title = $TITLE$
				left_icon = scope:convert_ruler
				right_icon = scope:new_rite
				show_as_tooltip = {
					scope:convert_ruler = {
						set_character_rite = scope:new_rite
					}
				}
			}
		}
		else_if = {
			limit = { exists = scope:heresy_faith }
			send_interface_message = {
				type = msg_pam_heresy_spread
				title = $TITLE$
				left_icon = scope:convert_ruler
				right_icon = scope:founder
				show_as_tooltip = {
					scope:convert_ruler = {
						set_character_faith = scope:heresy_faith
					}
				}
			}
		}
	}
}

# Character scope. Unlocks every perk in all three Learning lifestyle trees.
pam_heresy_unlock_all_learning_perks_effect = {
	add_perk = faithful_perk
	add_perk = zealous_proselytizer_perk
	add_perk = religious_icon_perk
	add_perk = prophet_perk
	add_perk = clerical_justifications_perk
	add_perk = church_and_state_perk
	add_perk = radiant_perk
	add_perk = defender_of_the_faith_perk
	add_perk = theologian_perk
	add_perk = pedagogy_perk
	add_perk = open_minded_perk
	add_perk = apostate_perk
	add_perk = scientific_perk
	add_perk = planned_cultivation_perk
	add_perk = scholarly_circles_perk
	add_perk = learn_on_the_job_perk
	add_perk = sanctioned_loopholes_perk
	add_perk = erudite_perk
	add_perk = anatomical_studies_perk
	add_perk = carefree_perk
	add_perk = mental_resilience_perk
	add_perk = restraint_perk
	add_perk = know_thyself_perk
	add_perk = wash_your_hands_perk
	add_perk = iron_constitution_perk
	add_perk = healthy_perk
	add_perk = whole_of_body_perk
}

# Character scope, and this expects scope:new_rite, or omit it for the historical split path
pam_heresy_finalise_founder_effect = {
	add_character_flag = ai_will_not_convert
	if = {
		limit = { NOT = { has_trait = heresiarch } }
		add_trait = heresiarch
	}
	# Brief flag mirroring add_heresiarch_trait_effect to prevent removal on conversion.
	add_character_flag = {
		flag = new_heresiarch
		days = 3
	}
	if = {
		limit = { NOT = { exists = inspiration } }
		create_inspiration = religious_inspiration
	}
	pam_heresy_unlock_all_learning_perks_effect = yes
	if = {
		limit = { exists = scope:new_rite }
		every_courtier_or_guest = {
			limit = {
				is_physically_able = yes
				faith = scope:new_rite.faith
				rite != scope:new_rite
				NOT = { has_character_flag = ai_will_not_convert }
			}
			set_character_rite = scope:new_rite
		}
	}
}

######################################################
# Heresy system - Component 3 setup effects          #
######################################################
# Faith / character scope helpers used only by heresy_historical.0001 and 0011.

# --- Epicenter ruler picker (faith scope) ---
# Picks scope:epicenter_ruler. Game rule controls geography:
#   strict_regional_heresy: prefers the holder of scope:heresy_strict_capital;
#       falls back to a default-region pick if that holder is unsuitable.
#   relaxed_regional_heresy: any same-faith duke+ AI ruler in the world.
#   default_regional_heresy / fallback: a same-faith duke+ AI ruler whose
#       capital sits inside the heresy's regional trigger.
pam_heresy_pick_epicenter_ruler_effect = {
	clear_saved_scope = epicenter_ruler

	# Strict: try the historical capital's holder first.
	if = {
		limit = {
			pam_heresy_strict_rule_trigger = yes
			exists = scope:heresy_strict_capital
			scope:heresy_strict_capital.holder ?= {
				faith = root
				is_landed = yes
				is_ai = yes
				highest_held_title_tier >= tier_duchy
				NOR = {
					this = root.religious_head
					has_trait = heresiarch
					has_trait = herald
					recently_converted_faith_trigger = yes
				}
			}
		}
		scope:heresy_strict_capital.holder = { save_scope_as = epicenter_ruler }
	}

	# Default / fallback: regional duke+ holder.
	if = {
		limit = { NOT = { exists = scope:epicenter_ruler } }
		random_faith_ruler = {
			limit = {
				is_eligible_heresy_epicenter_ruler_trigger = yes
				OR = {
					pam_heresy_relaxed_rule_trigger = yes
					AND = {
						# Default: must be in heresy region.
						pam_heresy_default_rule_trigger = yes
						exists = capital_county
						capital_county.title_province = {
							pam_heresy_capital_in_heresy_region_trigger = yes
						}
					}
					AND = {
						# Strict but historical capital not held by an eligible ruler:
						# fall back to default-region behaviour rather than skipping.
						pam_heresy_strict_rule_trigger = yes
						exists = capital_county
						capital_county.title_province = {
							pam_heresy_capital_in_heresy_region_trigger = yes
						}
					}
				}
			}
			weight = {
				base = 100
				modifier = {
					factor = 2
					highest_held_title_tier >= tier_kingdom
				}
				modifier = {
					factor = 1.5
					OR = {
						has_trait = zealous
						has_trait = lifestyle_mystic
						has_trait = lifestyle_scholar
						has_trait = theologian
					}
				}
				modifier = {
					factor = 0.5
					opinion = {
						target = root.religious_head
						value >= 75
					}
				}
			}
			save_scope_as = epicenter_ruler
		}
	}
}

# --- Founder spawn dispatcher (any scope) ---
# Calls the matching per-heresy founder template based on scope:heresy_faith
# and the resurgence stage. Saves scope:founder at scope:birth_location.
#
# Stage logic (named historical heresies):
#   first outbreak:                spawn the primary historical figure
#   second outbreak (resurgence):  spawn the named secondary historical figure
#   third+ outbreak:               spawn the per-heresy anonymous resurgence
#
# Always-anonymous heresies (Paulician, Iconoclast, Adoptionist, Messalian) always use their single anonymous template.
pam_heresy_dispatch_founder_spawn_effect = {
	if = {
		limit = { scope:heresy_faith = faith:lollard }
		if = {
			limit = { exists = scope:is_resurgence }
			if = {
				limit = { NOT = { exists = global_var:pam_heresy_lollard_secondary_fired } }
				pam_heresy_spawn_lollard_secondary_founder_effect = yes
				set_global_variable = { name = pam_heresy_lollard_secondary_fired value = yes }
			}
			else = {
				pam_heresy_spawn_lollard_resurgence_founder_effect = yes
			}
		}
		else = {
			pam_heresy_spawn_lollard_founder_effect = yes
		}
	}
	else_if = {
		limit = { scope:heresy_faith = faith:hussite }
		if = {
			limit = { exists = scope:is_resurgence }
			if = {
				limit = { NOT = { exists = global_var:pam_heresy_hussite_secondary_fired } }
				pam_heresy_spawn_hussite_secondary_founder_effect = yes
				set_global_variable = { name = pam_heresy_hussite_secondary_fired value = yes }
			}
			else = {
				pam_heresy_spawn_hussite_resurgence_founder_effect = yes
			}
		}
		else = {
			pam_heresy_spawn_hussite_founder_effect = yes
		}
	}
	else_if = {
		limit = { scope:heresy_faith = faith:joachimite }
		if = {
			limit = { exists = scope:is_resurgence }
			if = {
				limit = { NOT = { exists = global_var:pam_heresy_joachimite_secondary_fired } }
				pam_heresy_spawn_joachimite_secondary_founder_effect = yes
				set_global_variable = { name = pam_heresy_joachimite_secondary_fired value = yes }
			}
			else = {
				pam_heresy_spawn_joachimite_resurgence_founder_effect = yes
			}
		}
		else = {
			pam_heresy_spawn_joachimite_founder_effect = yes
		}
	}
	else_if = {
		limit = { scope:heresy_faith = faith:cathar }
		if = {
			limit = { exists = scope:is_resurgence }
			if = {
				limit = { NOT = { exists = global_var:pam_heresy_cathar_secondary_fired } }
				pam_heresy_spawn_cathar_secondary_founder_effect = yes
				set_global_variable = { name = pam_heresy_cathar_secondary_fired value = yes }
			}
			else = {
				pam_heresy_spawn_cathar_resurgence_founder_effect = yes
			}
		}
		else = {
			pam_heresy_spawn_cathar_founder_effect = yes
		}
	}
	else_if = {
		limit = { scope:heresy_faith = faith:waldensian }
		if = {
			limit = { exists = scope:is_resurgence }
			if = {
				limit = { NOT = { exists = global_var:pam_heresy_waldensian_secondary_fired } }
				pam_heresy_spawn_waldensian_secondary_founder_effect = yes
				set_global_variable = { name = pam_heresy_waldensian_secondary_fired value = yes }
			}
			else = {
				pam_heresy_spawn_waldensian_resurgence_founder_effect = yes
			}
		}
		else = {
			pam_heresy_spawn_waldensian_founder_effect = yes
		}
	}
	else_if = {
		limit = { scope:heresy_faith = faith:bogomilist }
		if = {
			limit = { exists = scope:is_resurgence }
			if = {
				limit = { NOT = { exists = global_var:pam_heresy_bogomilist_secondary_fired } }
				pam_heresy_spawn_bogomilist_secondary_founder_effect = yes
				set_global_variable = { name = pam_heresy_bogomilist_secondary_fired value = yes }
			}
			else = {
				pam_heresy_spawn_bogomilist_resurgence_founder_effect = yes
			}
		}
		else = {
			pam_heresy_spawn_bogomilist_founder_effect = yes
		}
	}
	else_if = {
		limit = { scope:heresy_faith = faith:paulician }
		pam_heresy_spawn_paulician_founder_effect = yes
	}
	else_if = {
		limit = { scope:heresy_faith = faith:iconoclast }
		pam_heresy_spawn_iconoclast_founder_effect = yes
	}
	else_if = {
		limit = { scope:heresy_faith = faith:adoptionist }
		pam_heresy_spawn_adoptionist_founder_effect = yes
	}
	else_if = {
		limit = { scope:heresy_faith = faith:messalian }
		pam_heresy_spawn_messalian_founder_effect = yes
	}
}

# --- Per-heresy 50-year cooldown setter (faith scope on origin_faith) ---
pam_heresy_set_per_heresy_cooldown_effect = {
	if = {
		limit = { scope:heresy_faith = faith:lollard }
		set_global_variable = { name = pam_heresy_lollard_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:hussite }
		set_global_variable = { name = pam_heresy_hussite_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:joachimite }
		set_global_variable = { name = pam_heresy_joachimite_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:cathar }
		set_global_variable = { name = pam_heresy_cathar_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:waldensian }
		set_global_variable = { name = pam_heresy_waldensian_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:bogomilist }
		set_global_variable = { name = pam_heresy_bogomilist_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:paulician }
		set_global_variable = { name = pam_heresy_paulician_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:iconoclast }
		set_global_variable = { name = pam_heresy_iconoclast_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:adoptionist }
		set_global_variable = { name = pam_heresy_adoptionist_cooldown value = yes years = 50 }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:messalian }
		set_global_variable = { name = pam_heresy_messalian_cooldown value = yes years = 50 }
	}
}

# --- Pre-declaration setup (faith scope) ---
pam_heresy_c3_pre_declaration_setup_effect = {
	scope:founder = {
		pam_heresy_dispatch_create_pre_declaration_rite_effect = yes
	}

	# Save scope:source_rite so downstream spread helpers filter by the parent-faith mainline rite
	scope:origin_faith.main_rite = { save_scope_as = source_rite }

	# Only the rite splits off
	if = {
		limit = {
			exists = scope:new_rite
			exists = scope:epicenter_ruler.capital_county
		}
		scope:epicenter_ruler.capital_county = {
			set_county_rite = scope:new_rite
		}
		scope:epicenter_ruler.capital_county = {
			every_neighboring_county = {
				limit = {
					faith = scope:origin_faith
					holder.faith ?= scope:origin_faith
				}
				set_county_rite = scope:new_rite
			}
		}
	}
}

# create_rite_from_type takes a literal rite type key, so dispatch on heresy_faith.
pam_heresy_dispatch_create_pre_declaration_rite_effect = {
	if = {
		limit = { scope:heresy_faith = faith:lollard }
		create_rite_from_type = { type = lollard_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:hussite }
		create_rite_from_type = { type = hussite_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:joachimite }
		create_rite_from_type = { type = joachimite_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:cathar }
		create_rite_from_type = { type = cathar_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:waldensian }
		create_rite_from_type = { type = waldensian_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:bogomilist }
		create_rite_from_type = { type = bogomilist_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:paulician }
		create_rite_from_type = { type = paulician_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:iconoclast }
		create_rite_from_type = { type = iconoclast_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:adoptionist }
		create_rite_from_type = { type = adoptionist_rite save_scope_as = new_rite convert = yes }
	}
	else_if = {
		limit = { scope:heresy_faith = faith:messalian }
		create_rite_from_type = { type = messalian_rite save_scope_as = new_rite convert = yes }
	}
}

# --- Already-declared setup (faith scope) ---
pam_heresy_c3_already_declared_setup_effect = {
	# A heresy already declared at game start never passed through the bull that flips its rite type's convert = no.
	scope:heresy_faith.main_rite = {
		set_can_convert_to_rite = yes
	}
	scope:founder = {
		set_character_faith_with_conversion = scope:heresy_faith
	}

	if = {
		limit = { exists = scope:epicenter_ruler.capital_county }
		scope:epicenter_ruler.capital_county = {
			set_county_faith = scope:heresy_faith
		}
		scope:epicenter_ruler.capital_county = {
			every_neighboring_county = {
				limit = {
					faith = scope:origin_faith
				}
				set_county_faith = scope:heresy_faith
			}
		}
	}
}

pam_seek_communion_reconcile_faith_effect = {
	custom_tooltip = pam_seek_communion_reconcile_faith_effect_tt
	faith = {
		if = {
			limit = { NOT = { has_doctrine = special_doctrine_ecumenical_christian } }
			add_doctrine = special_doctrine_ecumenical_christian
		}
	}
	custom_tooltip = {
		text = pam_seek_communion_absolve_faith_tt
		faith = {
			every_faith_character = {
				limit = {
					OR = {
						has_trait = heresiarch
						has_trait = excommunicated
					}
				}
				if = {
					limit = { has_trait = heresiarch }
					remove_trait = heresiarch
				}
				else = {
					remove_trait = excommunicated
				}
			}
		}
	}
}
