# Events for the Coronation activity
namespace = ach_coronation

################################################################################################################################
## Coronation Activity System Events
## 0000-0010
## by Jay Zaborowski
################################
# ach_coronation.0001 - Enter passive state - you arrived, establish the mood
# ach_coronation.0010 - The HoF arrives

######################
# Enter passive state - you arrived, establish the mood
# 0001
ach_coronation.0001 = {
	type = activity_event
	title = ach_coronation.0001.t
	desc = {
		# Opening
		first_valid = {
			triggered_desc = {
				trigger = { location = this.capital_province }
				desc = ach_coronation.0001.notravel
			}
			desc = ach_coronation.0001.travel
		}

		# Intro
		first_valid = {
			# You are the Host
			triggered_desc = {
				trigger = { this = scope:host }
				desc = {
					first_valid = {
						triggered_desc = {
							trigger = {
								scope:host = { primary_title = title:e_hre }
								this = scope:host
							}
							desc = ach_coronation.0001.intro.hre_host
						}
						triggered_desc = {
							trigger = {
								scope:host = { primary_title = title:e_byzantium }
								this = scope:host
							}
							desc = ach_coronation.0001.intro.byzantine_host
						}
						triggered_desc = {
							trigger = {
								this = scope:host
								location = this.capital_province
							}
							desc = ach_coronation.0001.intro.notravel_host
						}
						desc = ach_coronation.0001.intro.host
					}
				}
			}
			# You are a Guest
			triggered_desc = {
				trigger = { this != scope:host }
				desc = {
					first_valid = {
						triggered_desc = {
							trigger = {
								scope:host = { primary_title = title:e_hre }
							}
							desc = ach_coronation.0001.intro.hre
						}
						triggered_desc = {
							trigger = {
								scope:host = { primary_title = title:e_byzantium }
							}
							desc = ach_coronation.0001.intro.byzantine
						}
					}
				}
			}
		}

		# Ending
		first_valid = {
			# Host - Eccentric (so that it matches the rest of the loc)
			triggered_desc = {
				trigger = {
					this = scope:host
					has_trait = eccentric
				}
				desc = ach_coronation.0001.ending.host_eccentric
			}
			# Host
			triggered_desc = {
				trigger = { this = scope:host }
				desc = {
					random_valid = {
						triggered_desc = {
							trigger = {
								has_trait = cynical
								OR = {
									scope:priest ?= { is_important_hof_trigger = yes }
									faith = { has_doctrine_parameter = theocratic_coronation } # To give something to complain about
								}
							}
							desc = {
								first_valid = {
									triggered_desc = {
										trigger = { scope:priest ?= { is_important_hof_trigger = yes } }
										desc = ach_coronation.0001.ending.host_cynical_hof
									}
									triggered_desc = {
										trigger = { faith = { has_doctrine_parameter = theocratic_coronation } }
										desc = ach_coronation.0001.ending.host_cynical
									}
								}
							}
						}
						triggered_desc = {
							trigger = { has_trait = impatient }
							desc = ach_coronation.0001.ending.host_impatient
						}
						triggered_desc = {
							trigger = { has_trait = just }
							desc = ach_coronation.0001.ending.host_just
						}
						triggered_desc = {
							trigger = { has_trait = ambitious }
							desc = ach_coronation.0001.ending.host_ambitious
						}
						triggered_desc = {
							trigger = { has_trait = compassionate }
							desc = ach_coronation.0001.ending.host_compassionate
						}
						triggered_desc = {
							trigger = { has_trait = trusting }
							desc = ach_coronation.0001.ending.host_trusting
						}
						triggered_desc = {
							trigger = { has_trait = paranoid }
							desc = ach_coronation.0001.ending.host_paranoid
						}
						triggered_desc = {
							trigger = { has_trait = zealous }
							desc = ach_coronation.0001.ending.host_zealous
						}
						triggered_desc = {
							trigger = { has_trait = content }
							desc = ach_coronation.0001.ending.host_content
						}
						triggered_desc = {
							trigger = { has_trait = gregarious }
							desc = ach_coronation.0001.ending.host_gregarious
						}
						triggered_desc = {
							trigger = { has_trait = craven }
							desc = ach_coronation.0001.ending.host_craven
						}
						triggered_desc = {
							trigger = { has_trait = shy }
							desc = ach_coronation.0001.ending.host_shy
						}
						triggered_desc = {
							trigger = { has_trait = arrogant }
							desc = ach_coronation.0001.ending.host_arrogant
						}
						triggered_desc = {
							trigger = {
								OR = {
									has_trait = calm
									has_trait = lazy
								}
							}
							desc = ach_coronation.0001.ending.host_calm
						}
						triggered_desc = {
							trigger = { has_trait = gluttonous }
							desc = ach_coronation.0001.ending.host_gluttonous
						}
						triggered_desc = {
							trigger = { has_trait = arbitrary }
							desc = ach_coronation.0001.ending.host_arbitrary
						}
						desc = ach_coronation.0001.ending.host_neutral
					}
				}
			}
			# Guest
			triggered_desc = {
				trigger = { this != scope:host }
				desc = {
					first_valid = {
						triggered_desc = {
							trigger = { scope:host = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } } }
							desc = ach_coronation.0001.ending.hostile_host
						}
						triggered_desc = {
							trigger = { scope:host = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } } }
							desc = ach_coronation.0001.ending.friendly_host
						}
						desc = ach_coronation.0001.ending.neutral_host
					}
				}
			}
		}
	}

	center_portrait = {
		character = scope:host
		animation = idle
		camera = camera_center_large
	}

	lower_left_portrait = {
		character = root
		trigger = { this != scope:host }
	}
	lower_center_portrait = {
		character = scope:priest
		trigger = {
			this != scope:host
			scope:host.involved_activity ?= {
				has_activity_option = {
					category = special_type
					option = coronation_type_anointment
				}
			}
		}
	}

	theme = coronation_activity

	override_background = {
		reference = throne_room
	}

	immediate = {
		play_music_cue = mx_cue_majesty
		involved_activity = {
			activity_host = { save_scope_as = host }
			var:officiator ?= { save_scope_as = priest }
			if = {
				limit = {
					has_activity_option = {
						category = special_type
						option = coronation_type_anointment
					}
				}
				scope:host.faith.religious_head = { save_scope_as = priest }
			}
		}
		# Send out the papal fanfare
		if = {
			limit = {
				# Is the host's religious head
				scope:host.faith.religious_head ?= this
				# The HoF actually matters for the ceremony
				scope:activity = {
					has_activity_option = {
						category = special_type
						option = coronation_type_anointment
					}
				}
				#HoF doesn't own or live there
				scope:activity.activity_location.county = {
					OR = {
						holder = scope:host
						holder = {
							any_liege_or_above = {
								this = scope:host
							}
						}
					}
					NOR = {
						holder = scope:priest
						holder = {
							any_liege_or_above = {
								this = scope:priest
							}
						}
					}
				}
				#tricksy patriarch
				trigger_if = {
					limit = {
						scope:priest = {
							is_landed = no
							liege ?= scope:host
						}
					}
					NOT = {
						scope:activity.activity_location.county = scope:host.capital_county
					}
				}
			}
			save_scope_as = hof
			coronation_hof_visit_effect = yes
			involved_activity = {
				every_attending_character = {
					limit = {
						OR = {
							# Only bother for player's and the Host
							is_ai = no
							this = scope:host
							# And anyone who might want to beg the pope for pardon
							has_trait = excommunicated
						}
					}
					trigger_event = ach_coronation.0010
				}
			}
		}
		scope:host = {
			if = {
				limit = {
					any_targeting_faction = {
						count > 1
					}
					any_targeting_faction = {
						OR = {
							faction_power >= 200
							discontent_per_month > 0
							trigger_if = {
								limit = {
									discontent_per_month > 0
								}
								months_until_max_discontent <= 8
							}
							AND = {
								OR = {
									faction_is_type = nation_fracturing_faction
									faction_is_type = claimant_faction
								}
								faction_power >= 100
							}
						}
					}
				}
				custom_tooltip = magnificence_badly_reduced_by_factions_tt
			}
			else_if = {
				limit = {
					any_targeting_faction = {
						count = 1
					}
					any_targeting_faction = {
						OR = {
							faction_power >= 200
							discontent_per_month > 0
							trigger_if = {
								limit = {
									discontent_per_month > 0
								}
								months_until_max_discontent <= 8
							}
							AND = {
								OR = {
									faction_is_type = nation_fracturing_faction
									faction_is_type = claimant_faction
								}
								faction_power >= 100
							}
						}
					}
				}
				custom_tooltip = magnificence_badly_reduced_by_faction_tt
			}
			else_if = {
				limit = {
					any_targeting_faction = {
						count > 1
					}
				}
				custom_tooltip = magnificence_reduced_by_factions_tt
			}
			else_if = {
				limit = {
					any_targeting_faction = {
						count = 1
					}
				}
				custom_tooltip = magnificence_reduced_by_faction_tt
			}
		}
		if = {
			limit = {
				this = scope:host
				involved_activity = { var:activity_special_type_progression >= 50 }
			}
			scope:host.dynasty = { add_dynasty_prestige = minor_dynasty_prestige_gain }
		}
		else_if = {
			limit = {
				this = scope:host
				involved_activity = { var:activity_special_type_progression >= 25 }
			}
			scope:host.dynasty = { add_dynasty_prestige = miniscule_dynasty_prestige_gain }
		}
	}

	option = {
		name = {
			trigger = {
				NOT = { this = scope:host }
				opinion = {
					target = scope:host
					value < 0
				}
			}
			text = ach_coronation.0001.a.bad
		}
		name = {
			trigger = {
				NOT = { this = scope:host }
				opinion = {
					target = scope:host
					value >= 0
				}
			}
			text = ach_coronation.0001.a.good
		}
		name = {
			trigger = {
				this = scope:host
				has_trait = eccentric
			}
			text = ach_coronation.0001.a.eccentric
		}
		name = {
			trigger = {
				this = scope:host
				NOT = { has_trait = eccentric }
			}
			text = ach_coronation.0001.a
		}
	}
}

######################
# The HoF Arrives
# 0010
scripted_trigger ach_coronation_0010_appropriate_hof_follower = {
	# Find a clergy member of the hof's religion
	faith.religion = scope:hof.faith.religion
	this != scope:hof
	this != scope:host
	this != scope:greeter
	# Who isn't the player
	is_physically_able_ai = yes
}

scripted_trigger ach_coronation_0010_friendly_hof_and_host = {
	scope:host = {
		OR = {
			has_any_good_relationship_with_character_trigger = { CHARACTER = scope:hof }
			reverse_opinion = {
				target = scope:hof
				value > medium_positive_opinion
			}
		}
	}
}

scripted_trigger ach_coronation_0010_hostile_hof_and_host = {
	OR = {
		scope:host = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:hof } }
		reverse_opinion = {
			target = scope:hof
			value < medium_negative_opinion
		}
	}
}

scripted_effect ach_coronation_0010_choose_greeters = {
	# Barons are underutilized and it is *their* city, and the Host is probably busy, so they get to meet the HoF
	if = {
		limit = { scope:coronation_site.barony.holder != scope:host }
		scope:coronation_site.barony.holder = { save_scope_as = greeter }
	}
	# If the host owns the province we still want the world to feel lively, try the local count instead
	else_if = {
		limit = { scope:coronation_site.barony.county.holder != scope:host }
		scope:coronation_site.barony.holder = { save_scope_as = greeter }
	}
	# If all else fails, the Host gets to be the greeter
	else = {
		limit = { scope:host.location = scope:coronation_site }
		scope:host = { save_scope_as = greeter }
	}

	if = {
		limit = {
			# Grab the greeter's court chaplain if they exist
			exists = scope:greeter.cp:councillor_court_chaplain
			# Make sure it isn't the player
			scope:greeter.cp:councillor_court_chaplain = { is_physically_able_ai = yes } 
		}
		scope:greeter.cp:councillor_court_chaplain = { save_scope_as = greeter_2 }
	}
	else = {
		involved_activity = {
			ordered_attending_character = {
				# Grab the most zealous priest of the hof's religion at the activity
				limit = {
					ach_coronation_0010_appropriate_hof_follower = yes
					is_clergy = yes
				}
				# Or any valid follower of their religion
				alternative_limit = {
					ach_coronation_0010_appropriate_hof_follower = yes
				}
				# Fallback
				alternative_limit = {
					this != scope:host
					this != scope:hof
					this != scope:greeter
				}
				order_by = ai_zeal
				save_scope_as = greeter_2
			}
		}
	}
}

ach_coronation.0010 = {
	type = activity_event
	title = ach_coronation.0010.t
	desc = { # Should have a lot of variety for different pope-analities
		desc = ach_coronation.0010.desc.desc_opening
		first_valid = {
			triggered_desc = {
				trigger = { this = scope:greeter }
				desc = ach_coronation.0010.desc.desc_greeting.first_person
			}
			triggered_desc = {
				trigger = { this = scope:host }
				desc = ach_coronation.0010.desc.desc_greeting.host
			}
			desc = ach_coronation.0010.desc.desc_greeting.baron
		}
		random_valid = {
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = generous
							has_trait = profligate
							ai_greed < medium_negative_greed
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_first.generous
			}
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = greedy
							has_trait = avaricious
							ai_greed > medium_positive_greed
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_first.greedy
			}
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = compassionate
							ai_compassion > medium_positive_compassion
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_first.compassionate
			}
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = cynical
							ai_zeal < medium_negative_zeal
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_first.cynical
			}
			desc = ach_coronation.0010.desc.desc_first
		}
		random_valid = {
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = zealous
							ai_zeal > medium_positive_zeal
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_second.zealous
			}
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = wrathful
							has_trait = irritable
							has_trait = vengeful
							ai_vengefulness > medium_positive_vengefulness
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_second.wrathful
			}
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = lustful
							has_trait = rakish
							is_incestuous_trigger = yes
							is_deviant_trigger = yes
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_second.lustful
			}
			triggered_desc = {
				trigger = {
					scope:hof = { has_trait = gluttonous }
				}
				desc = ach_coronation.0010.desc.desc_second.gluttonous
			}
			triggered_desc = {
				trigger = {
					scope:hof = {
						OR = {
							has_trait = giant
							has_trait = strong
							has_trait = physique_good_3
							has_trait = physique_good_2
						}
					}
				}
				desc = ach_coronation.0010.desc.desc_second.strong
			}
			desc = ach_coronation.0010.desc.desc_second
		}
		first_valid = {
			# Universal
			triggered_desc = {
				trigger = { scope:hof.faith = { fervor <= 30 } }
				desc = ach_coronation.0010.desc.desc_ending.low_fervor
			}
			# Host
			triggered_desc = {
				trigger = { this = scope:host }
				desc = {
					first_valid = {
						triggered_desc = {
							trigger = { has_trait = excommunicated }
							desc = ach_coronation.0010.desc.desc_ending.excommunicated_first_person
						}
						triggered_desc = {
							trigger = {
								ach_coronation_0010_friendly_hof_and_host = yes
								scope:hof = {
									opinion = {
										target = root
										value >= high_positive_opinion
									}
								}
							}
							desc = ach_coronation.0010.desc.desc_ending.opinion_very_good_first_person
						}
						triggered_desc = {
							trigger = { ach_coronation_0010_friendly_hof_and_host = yes }
							desc = ach_coronation.0010.desc.desc_ending.opinion_good_first_person
						}
						triggered_desc = {
							trigger = { ach_coronation_0010_hostile_hof_and_host = yes }
							desc = ach_coronation.0010.desc.desc_ending.opinion_bad_first_person
						}
						desc = ach_coronation.0010.desc.desc_ending.neutral_first_person
					}
				}
			}
			# Guest
			triggered_desc = {
				trigger = { this != scope:host }
				desc = {
					first_valid = {
						triggered_desc = {
							trigger = { scope:host = { has_trait = excommunicated } }
							desc = ach_coronation.0010.desc.desc_ending.excommunicated
						}
						triggered_desc = {
							trigger = {
								ach_coronation_0010_friendly_hof_and_host = yes
								scope:hof = {
									opinion = {
										target = scope:host
										value >= high_positive_opinion
									}
								}
							}
							desc = ach_coronation.0010.desc.desc_ending.opinion_very_good
						}
						triggered_desc = {
							trigger = { ach_coronation_0010_friendly_hof_and_host = yes }
							desc = ach_coronation.0010.desc.desc_ending.opinion_good
						}
						triggered_desc = {
							trigger = { ach_coronation_0010_hostile_hof_and_host = yes }
							desc = ach_coronation.0010.desc.desc_ending.opinion_bad
						}
						desc = ach_coronation.0010.desc.desc_ending.neutral
					}
				}
			}
		}
	}

	left_portrait = {
		character = scope:greeter_2
		animation = horse_conversing_right
		camera = camera_event_horse_left_facing_left_far
	}

	center_portrait = {
		character = scope:greeter
		animation = horse_conversing_left
		camera = camera_event_horse_left_facing_left_very_far
	}

	right_portrait = {
		character = scope:hof
		# Are they the type to wave at peasants?
		triggered_animation = {
			trigger = { ai_compassion >= medium_positive_compassion }
			animation = jockey_wave
		}
		triggered_animation = {
			trigger = { always = yes }
			animation = jockey_idle
		}
		camera = camera_event_horse_right_facing_left_close
	}

	theme = coronation_activity

	override_background = {
		reference = market
	}
	override_effect_2d = {
		reference = legend_glow
	}

	# Horse and crowd noises instead of normal activity ones
	override_sound = { reference = "event:/DLC/EP3/SFX/Events/Event_Moments/ep3_evn_eventmoment_chariot_race_pivotal_moment" }

	immediate = {
		# Make it sound momentous
		play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Tournaments/ep2_event_grand_tournament_win"
		play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Byzantine_Flavor/ep3_mx_sting_byzantineflavor_hold_triumph"

		involved_activity.var:officiator ?= { save_scope_as = hof }
		scope:hof.location = { save_scope_as = coronation_site }

		hidden_effect = { ach_coronation_0010_choose_greeters = yes }
		show_as_tooltip = { coronation_hof_visit_effect = yes }
	}

	option = { # Beg him to unexcommunicate you
		name = ach_coronation.0010.a
		trigger = {
			has_trait = excommunicated
			faith.religious_head = scope:hof
			# Not getting off so easy
			this != scope:host
		}
		trait = excommunicated

		duel = {
			skill = diplomacy
			target = scope:hof
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				modifier = { # I got a soft spot and not much hate in my heart
					add = 20
					scope:hof = {
						ai_compassion >= high_positive_compassion
						opinion = {
							value >= low_negative_opinion
							target = root
						}
					}
				}
				modifier = {
					add = 5
					scope:hof = { has_trait = generous }
				}
				modifier = {
					factor = 2
					scope:hof = { has_trait = forgiving }
				}
				modifier = {
					factor = 0.5
					scope:hof = { has_trait = vengeful }
				}
				min = 5
				desc = ach_coronation.0010.a.tt.success
				send_interface_toast = {
					title = ach_coronation.0010.a.tt.success
					left_icon = scope:hof
					remove_trait = excommunicated
					stress_impact = {
						base = major_stress_loss
						arrogant = minor_stress_loss
						zealous = major_stress_loss
					}
					hidden_effect = {
						add_opinion = {
							target = scope:hof
							modifier = grateful_opinion
							opinion = 30
						}
					}
				}
				
			}
			50 = { # They ignore you
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				modifier = {
					add = 5
					has_trait = arrogant
				}
				opinion_modifier = {
					who = scope:hof
					opinion_target = scope:host
					multiplier = 0.5
				}
				min = 5
				desc = ach_coronation.0010.a.tt.failure
				send_interface_toast = {
					title = ach_coronation.0010.a.tt.failure
					left_icon = scope:hof
					add_prestige = minor_prestige_loss
					if = {
						limit = { is_ai = yes }
					}
					stress_impact = {
						base = minor_stress_gain
						shy = minor_stress_loss # Honestly? Thank HighGod
					}
				}
			}
			20 = { # They're offended you even asked
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				modifier = {
					add = 20
					OR = {
						has_trait = shy
						has_trait = reclusive
					}
				}
				modifier = {
					add = 5
					has_trait = impatient
				}
				opinion_modifier = {
					who = scope:hof
					opinion_target = root
					multiplier = -1
				}
				modifier = {
					factor = 1.5
					has_trait = wrathful
				}
				min = 5
				desc = ach_coronation.0010.a.tt.anger
				send_interface_toast = {
					title = ach_coronation.0010.a.tt.anger
					left_icon = scope:hof
					reverse_add_opinion = {
						target = scope:hof
						modifier = annoyed_opinion
						opinion = -30
					}
					add_prestige = minor_prestige_loss
					stress_impact = {
						base = medium_stress_gain
						arrogant = minor_stress_gain
						zealous = minor_stress_gain
						cynical = medium_stress_loss # Got one good thing out of it at least
					}
				}
			}
		}
		ai_chance = {
			base = 150
			modifier = {
				has_trait = shy
				factor = 0.5
			}
			modifier = {
				has_trait = zealous
				factor = 0.5
			}
			modifier = {
				has_trait = gregarious
				factor = 2
			}
			modifier = {
				has_trait = cynical
				factor = 2
			}
			# More likely if skilled at diplomacy
			modifier = {
				diplomacy > medium_skill_rating
				factor = 2
			}
			# Less likely if not
			modifier = {
				diplomacy <= medium_skill_rating
				factor = 0.5
			}
			# Way less likely if way not
			modifier = {
				diplomacy <= low_skill_rating
				# Unless you have zero ability to conceive your own diplomatic inferiority
				NOT = { has_trait = arrogant }
				factor = 0.5
			}
		}
	}

	option = { # "Neat"
		name = {
			text = {
				first_valid = {
					triggered_desc = {
						trigger = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:hof } }
						desc = ach_coronation.0010.b.rival
					}
					triggered_desc = {
						trigger = { has_relation_lover = scope:hof }
						desc = ach_coronation.0010.b.lover
					}
					triggered_desc = {
						trigger = { has_any_good_relationship_with_character_trigger = { CHARACTER = scope:hof } }
						desc = ach_coronation.0010.b.friend
					}
					triggered_desc = {
						trigger = { faith.religion != scope:hof.faith.religion }
						desc = ach_coronation.0010.b.heathen
					}
					triggered_desc = {
						trigger = { faith != scope:hof.faith }
						desc = ach_coronation.0010.b.heretic
					}
					triggered_desc = {
						trigger = {
							OR = {
								is_witch_trigger = yes
								# Also fits if you're hiding your faith
								any_secret = {
									secret_type = secret_crypto_religionist
								}
							}
						}
						desc = ach_coronation.0010.b.witch
					}
					triggered_desc = {
						trigger = { has_trait = cynical }
						desc = ach_coronation.0010.b.cynical
					}
					triggered_desc = {
						trigger = { has_trait = zealous }
						desc = ach_coronation.0010.b.zealous
					}
					desc = ach_coronation.0010.b
				}
			}
		}
		if = {
			limit = { this = scope:host }
			custom_tooltip = ach_coronation_0010_hof_desc_host.tt
		}
		else = {
			custom_tooltip = ach_coronation_0010_hof_desc_guest.tt
		}
		ai_chance = {
			base = 100
		}
	}
}

####################################
# Random coronation events
# 0011-0499
## by Jay Zaborowski
####################################
# ach_coronation.0011 - Host: You see some potential plotters whispering
# ach_coronation.0012 - Host: Vassals squabble over coronation roles
# ach_coronation.0013 - Host: You eavesdrop on some peasants
# ach_coronation.0014 - Guest: Opportunity to cause a crowd crush
# ach_coronation.0015 - Host: There is a crowd crush
# ach_coronation.0016 - Guest: You present your host a gift
# ach_coronation.0017 - Guest: faith_warrior reacts to the coronation of a non-crusader_king
# ach_coronation.0018 - Guest: Close family member of Host sees opportunity
# ach_coronation.0020 - Host: Close family member helps manage the coronation
# ach_coronation.0022 - Guest: An ongoing plague has shaken a zealous guest
# ach_coronation.0023 - Host: An exotic foreign warrior pledges themselves to you
# ach_coronation.0025 - Open up drinks to the locals
# ach_coronation.0027 - A guest offers some hashish
# ach_coronation.0028 - Host: Drinking contest with a detractor
# ach_coronation.0029 - Host: Guests offer to help get a hunt going

######################
# Host: You see some potential plotters whispering
# 0011
scripted_trigger ach_coronation_0011_eligible_vassal_trigger = {
	is_physically_able_ai_adult = yes
	is_vassal_of = involved_activity.activity_host
	trigger_if = { # Should be someone you'd actually suspect
		limit = {
			scope:host = { # But what if they're in on it?
				NOT = { has_trait = paranoid }
			}
		}
		NOR = {
			has_any_best_good_relationship_with_character_trigger = { CHARACTER = root }
			has_trait = loyal
		}
	}
}

scripted_trigger ach_coronation_0011_is_suitable_active_scheme_trigger = {
	is_scheme_exposed = no
	hostile_scheme_trigger = yes
	scheme_target_character = { is_participant_in_activity = involved_activity }
}

scripted_effect ach_coronation_0011_coward_setup_effect = {
	save_scope_as = coward
	if = { # If the plotter has a scheme and the coward's in on it, grab that
		limit = {
			scope:hostile_scheme ?= {
				any_scheme_agent_character = { this = scope:coward }
			}
		}
		scope:hostile_scheme = {
			save_scope_as = coward_scheme
		}
	}
	else_if = { # If the coward has a scheme of their own, grab that
		limit = {
			any_scheme = {
				ach_coronation_0011_is_suitable_active_scheme_trigger = yes
			}
		}
		random_scheme = {
			limit = { # Grab any targetting the Host
				ach_coronation_0011_is_suitable_active_scheme_trigger = yes
				scheme_target_character = scope:host
			}
			alternative_limit = { # Else just one targetting someone at the activity
				ach_coronation_0011_is_suitable_active_scheme_trigger = yes
			}
			save_scope_as = coward_scheme
		}
	}
	else = { # If there is no scheme, they will babble about whatever skeleton they have in their closet
		if = {
			limit = { # If they don't have a secret, generate one
				NOT = {
					any_secret = { NOT = { is_known_by = scope:host } }
				}
			}
			hidden_effect = { give_random_likely_secret_effect = yes }
		}
		random_secret = {
			limit = { NOT = { is_known_by = scope:host } }
			save_scope_as = uncovered_secret
		}
	}
}

ach_coronation.0011 = {
	type = activity_event
	title = ach_coronation.0011.t
	desc = ach_coronation.0011.desc

	left_portrait = {
		character = root
		animation = eavesdrop
		camera = camera_event_very_left
	}

	right_portrait = {
		character = scope:plotter
		animation = dismissal
		camera = camera_event_center_pointing_left
	}

	center_portrait = {
		character = scope:coward
		animation = worry
	}

	cooldown = { years = 1 }

	theme = coronation_activity

	override_background = { reference = throne_room }

	trigger = {
		involved_activity = {
			any_attending_character = {
				ach_coronation_0011_eligible_vassal_trigger = yes
				count >= 2
			}
		}
	}

	immediate = {
		involved_activity = {
			activity_host = { save_scope_as = host }
			# Grab a likely ringleader
			random_attending_character = {
				limit = {
					is_powerful_vassal = yes
					ach_coronation_0011_eligible_vassal_trigger = yes
					any_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes }
				}
				alternative_limit = {
					is_powerful_vassal = yes
					ach_coronation_0011_eligible_vassal_trigger = yes
				}
				alternative_limit = {
					ach_coronation_0011_eligible_vassal_trigger = yes
				}
				weight = {
					base = 1
					
					ach_likely_plotter_modifier = yes

					modifier = { # Weighted up if there is actually a scheme against a guest
						any_targeting_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes }
						factor = {
							value = 2
							if = { # And ofc if that guest is you
								limit = { any_targeting_scheme = { scheme_target_character = scope:host } }
								add = 1
							}
						}
					}
				}
				if = {
					limit = {
						any_scheme = {
							ach_coronation_0011_is_suitable_active_scheme_trigger = yes
						}
					}
					random_scheme = {
						limit = {
							ach_coronation_0011_is_suitable_active_scheme_trigger = yes
							scheme_target_character = scope:host
						}
						alternative_limit = {
							ach_coronation_0011_is_suitable_active_scheme_trigger = yes
						}
						save_scope_as = hostile_scheme
					}
				}
				save_scope_as = plotter
			}
			# Grab a likely weak-link
			random_attending_character = {
				limit = {
					NOT = { this = scope:plotter }
					ach_coronation_0011_eligible_vassal_trigger = yes
					OR = {
						any_scheme = { ach_coronation_0011_is_suitable_active_scheme_trigger = yes }
						has_any_secrets = yes # Grab someone with secrets if possible
					}
				}
				alternative_limit = {
					NOT = { this = scope:plotter }
					ach_coronation_0011_eligible_vassal_trigger = yes
				}
				weight = {
					base = 1

					ach_unlikely_plotter_modifier = yes

					modifier = { # Grab them if they are actually an agent against you
						scope:hostile_scheme ?= {
							any_scheme_agent_character = { this = root }
						}
						factor = 4
					}
				}
				ach_coronation_0011_coward_setup_effect = yes
			}
		}
	}

	option = { # Break the coward
		name = ach_coronation.0011.b
		skill = intrigue
		flavor = ach_coronation.0011.b.flavor
		custom_tooltip = ach_coronation.0011.b.tt
		trigger = {
			intrigue >= very_high_skill_rating
		}
		
		hidden_effect = {
			if = {
				limit = { exists = scope:coward_scheme }
				send_interface_toast = {
					type = event_toast_effect_good
					title = ach_coronation.0011.coward.success
					left_icon = root
					right_icon = scope:coward
					scope:coward_scheme = {
						expose_scheme = yes
					}
				}
			}
			else = {
				send_interface_toast = {
					type = event_toast_effect_good
					title = ach_coronation.0011.coward.success
					left_icon = root
					right_icon = scope:coward
					scope:uncovered_secret = {
						reveal_to = root
					}
				}
			}
		}

		if = {
			limit = {
				can_add_hook = {
					target = scope:host
					type = manipulation_hook
				}
			}
			add_hook = {
				type = manipulation_hook
				target = scope:host
			}
		}
		scope:coward = {
			add_opinion = { 
				target = root
				modifier = scared_opinion
				opinion = -20
			}
			add_stress = major_stress_gain
			add_prestige = minor_prestige_loss
		}

		stress_impact = {
			sadistic = medium_stress_loss
			trusting = medium_stress_gain
			compassionate = medium_stress_gain
		}

		ai_chance = {
			base = 100
			modifier = {
				add = {
					value = 0
					add = intrigue
					multiply = 5
				}
			}
			opinion_modifier = {
				opinion_target = scope:coward
				multiplier = -1
			}
			modifier = {
				OR = {
					has_trait = compassionate
					has_any_good_relationship_with_character_trigger = { CHARACTER = scope:coward }
				}
				factor = 0
			}
			modifier = {
				has_trait = sadistic
				factor = 2.5
			}
			modifier = {
				has_trait = callous
				factor = 2
			}
			modifier = {
				has_trait = schemer
				factor = 2
			}
			modifier = {
				has_trait = trusting
				factor = 0.5
			}
			modifier = {
				has_trait = compassionate
				factor = 0.5
			}
		}
	}
	
	option = { # Arrest the traitors!
		name = {
			trigger = { has_trait = paranoid }
			text = ach_coronation.0011.c.paranoid
		}
		name = {
			trigger = { has_trait = wrathful }
			text = ach_coronation.0011.c.wrathful
		}
		name = ach_coronation.0011.c
		trait = paranoid
		trait = arbitrary

		trigger = {
			OR = {
				has_trait = paranoid
				has_trait = arbitrary
				has_activity_intent = coronation_weaken_detractors
			}
		}

		imprison_character_effect = {
			IMPRISONER = root
			TARGET = scope:plotter
		}
		imprison_character_effect = {
			IMPRISONER = root
			TARGET = scope:coward
		}

		add_dread = medium_dread_gain
		if = {
			limit = {
				scope:activity = {
					any_attending_character = {
						is_vassal_of = root
						has_vassal_stance = belligerent
						NOT = { is_in_guest_subset = { name = detractor } }
						NOR = {
							this = scope:plotter
							this = scope:coward
						}
					}
				}
			}
			coronation_weaken_detractors_opinion_effect = yes
		}

		stress_impact = {
			wrathful = medium_stress_loss
			arbitrary = medium_stress_loss
			paranoid = major_stress_loss
			just = major_stress_gain
			calm = major_stress_gain
		}

		ai_chance = {
			base = 0
			modifier = {
				add = {
					value = 0
					add = intrigue
					multiply = 5
				}
			}
			opinion_modifier = {
				opinion_target = scope:plotter
				multiplier = -1
			}
			modifier = {
				has_trait = irritable
				add = 25
			}
			modifier = {
				has_trait = wrathful
				add = 25
			}
			modifier = {
				has_trait = arbitrary
				add = 25
			}
			modifier = {
				has_trait = paranoid
				add = 50
			}
			modifier = {
				has_trait = calm
				factor = 0.5
			}
			modifier = {
				OR = {
					has_trait = just
					has_trait = compassionate
					has_any_good_relationship_with_character_trigger = { CHARACTER = scope:plotter }
				}
				factor = 0
			}
		}
	}
	
	option = { # Catch HerHim in a lie!
		name = ach_coronation.0011.a
		skill = intrigue

		reverse_add_opinion = {
			target = scope:plotter
			modifier = insult_opinion
			opinion = -20
		}

		duel = {
			skill = intrigue
			target = scope:plotter
			20 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 1
					min = -19
				}
				desc = ach_coronation.0011.a.success
				custom_tooltip = ach_coronation.0011.a.success.tt
				hidden_effect = {
					if = {
						limit = { exists = scope:hostile_scheme }
						send_interface_toast = {
							type = event_toast_effect_good
							title = ach_coronation.0011.scheme.plotter.toast
							left_icon = root
							right_icon = scope:plotter

							scope:hostile_scheme = { expose_scheme = yes }
						}
					}
					else = {
						send_interface_toast = {
							type = event_toast_effect_good
							title = ach_coronation.0011.false.toast
							left_icon = root
							right_icon = scope:plotter

							add_prestige = minor_prestige_loss
						}
					}
				}
			}
			10 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
					min = -9
				}
				desc = ach_coronation.0011.a.failure
				send_interface_toast = {
					type = event_toast_effect_good
					title = ach_coronation.0011.false.toast
					left_icon = root
					right_icon = scope:plotter

					add_prestige = minor_prestige_loss
				}
			}
		}

		stress_impact = {
			trusting = medium_stress_gain
			paranoid = medium_stress_loss
		}

		ai_chance = {
			base = 150
			modifier = { 
				intrigue <= mediocre_skill_rating
				add = -50
			}
			modifier = {
				has_trait = paranoid
				factor = 2
			}
			# Don't weight up by a crazy amount - it's already high
			modifier = {
				has_trait = schemer
				factor = 1.25
			}
			modifier = {
				has_trait = diligent
				factor = 1.25
			}
			modifier = {
				OR = {
					intrigue <= low_skill_rating
					has_trait = trusting
				}
				factor = 0
			}
		}
	}

	option = { # Move on
		name = ach_coronation.0011.d

		if = {
			limit = { has_trait = paranoid }
			add_character_modifier = {
				modifier = ach_coronation_trusts_nobody_modifier
				years = 10
			}
		}
		else_if = {
			limit = { has_trait = trusting }
			add_character_modifier = {
				modifier = ach_coronation_blissful_ignorance_modifier
				years = 10
			}
		}

		reverse_add_opinion = {
			target = scope:plotter
			modifier = relieved_opinion
			opinion = 10
		}
		reverse_add_opinion = {
			target = scope:coward
			modifier = relieved_opinion
			opinion = 10
		}

		stress_impact = {
			# This is somewhat worrying
			base = minor_stress_gain
			# Doesn't actually care
			lazy = minor_stress_loss
			trusting = minor_stress_loss
			# Really really cares
			paranoid = major_stress_gain
		}

		ai_chance = {
			base = 75
			opinion_modifier = {
				opinion_target = scope:plotter
			}
			modifier = {
				OR = {
					has_trait = paranoid
					has_trait = deceitful
					has_intrigue_lifestyle_trait_trigger = yes
				}
				factor = 0.1
			}
			modifier = {
				has_trait = trusting
				factor = 2
			}
			modifier = {
				has_trait = lazy
				factor = 2
			}
			modifier = {
				has_trait = schemer
				factor = 0.5
			}
		}
	}
}

######################
# Host: Vassals squabble over coronation roles
# 0012
scripted_effect get_random_coronation_object = {
	# Decided here so the loc is consistent between the description and the options
	random_list = {
		# Cultural objects - weighted higher since they're more interesting
		10 = {
			trigger = {
				OR = {
					has_culture = culture:irish
					has_title = title:k_ireland
				}
			}
			set_variable = {
				name = random_coronation_object
				value = flag:white_rod
			}
		}
		10 = {
			trigger = { has_title = title:e_hre }
			set_variable = {
				name = random_coronation_object
				value = flag:coronation_cloak
			}
		}
		10 = {
			trigger = { any_equipped_character_artifact = { artifact_slot_type = regalia } }
			set_variable = {
				name = random_coronation_object
				value = flag:equipped_regalia
			}
		}
		1 = {
			trigger = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } }
			set_variable = {
				name = random_coronation_object
				value = flag:apostolic_cross
			}
		}
		1 = {
			trigger = {
				faith = {
					NOR = {
						has_doctrine_parameter = unreformed_syncretic_actor_opinion_active
						has_doctrine_parameter = unreformed
					}
				}
			}
			set_variable = {
				name = random_coronation_object
				value = flag:royal_religioustext
			}
		}
		1 = {
			set_variable = {
				name = random_coronation_object
				value = flag:sceptre_and_orb
			}
		}
		1 = {
			set_variable = {
				name = random_coronation_object
				value = flag:coronation_spoon
			}
		}
		1 = {
			set_variable = {
				name = random_coronation_object
				value = flag:coronation_sword
			}
		}
		1 = {
			set_variable = {
				name = random_coronation_object
				value = flag:coronation_rings
			}
		}
	}
}

scripted_trigger is_eligible_random_squabbler = {
	location = root.location
	is_physically_able_ai_adult = yes
	NOR = {
		this = root
		involved_activity.var:officiator ?= this
	}
	OR = {
		AND = {
			is_vassal_of = root
			highest_held_title_tier >= tier_county
		}
		is_close_family_of = root
		is_councillor_of = root
		AND = {
			is_allied_to = root
			highest_held_title_tier >= tier_county
		}
	}
}

scripted_trigger ach_coronation_0012_mutual_enmity = {
	save_temporary_scope_as = squabbler_temp
	scope:activity = {
		any_attending_character = {
			NOT = {
				this = scope:squabbler_temp
			}
			is_eligible_random_squabbler = yes
			#Check that they don't love each other
			opinion = {
				target = scope:squabbler_temp
				value <= 20
			}
			reverse_opinion = {
				target = scope:squabbler_temp
				value <= 20
			}
		}
	}
}

ach_coronation.0012 = {
	type = activity_event
	title = ach_coronation.0012.t
	desc = ach_coronation.0012.desc

	left_portrait = {
		character = root
		animation = disapproval
	}

	center_portrait = {
		character = scope:first
		animation = debating
	}

	right_portrait = {
		character = scope:second
		animation = rage
	}

	cooldown = { years = 1 }

	theme = coronation_activity

	override_background = { reference = study }

	trigger = {
		involved_activity = {
			has_current_phase = coronation_phase_preparations
			any_attending_character = {
				is_eligible_random_squabbler = yes
				count >= 1
				ach_coronation_0012_mutual_enmity = yes
			}
		}
	}

	immediate = {
		get_random_coronation_object = yes
		involved_activity = {
			activity_host = { save_scope_as = host }
			random_attending_character = { # Grab two random attendees to be used in loc
				limit = {
					is_eligible_random_squabbler = yes
					highest_held_title_tier >= tier_duchy
					ach_coronation_0012_mutual_enmity = yes
				}
				alternative_limit = {
					is_eligible_random_squabbler = yes
					save_temporary_scope_as = squabbler_temp
					ach_coronation_0012_mutual_enmity = yes
				}
				weight = {
					base = 1

					ach_squabbler_modifier = yes

					# Try to get someone who has a rivalry with another vassal already if possible
					modifier = {
						factor = 4
						any_relation = {
							type = rival
							is_participant_in_activity = scope:activity
							is_eligible_random_squabbler = yes
							is_vassal_of = scope:host
						}
					}
				}
				save_scope_as = first
			}
			random_attending_character = {
				limit = { 
					is_eligible_random_squabbler = yes
					this != scope:first
					# Try and get the rival of the first character
					has_relation_rival = scope:first
					highest_held_title_tier >= tier_duchy
					ach_coronation_0012_mutual_enmity = yes
				}
				alternative_limit = { 
					is_eligible_random_squabbler = yes
					this != scope:first
					# Try and get the rival of the first character
					has_relation_rival = scope:first
					ach_coronation_0012_mutual_enmity = yes
				}
				alternative_limit = {
					is_eligible_random_squabbler = yes
					this != scope:first
					highest_held_title_tier >= tier_duchy
					ach_coronation_0012_mutual_enmity = yes
				}
				alternative_limit = {
					is_eligible_random_squabbler = yes
					this != scope:first
					ach_coronation_0012_mutual_enmity = yes
				}
				weight = {
					base = 1

					ach_squabbler_modifier = yes

					# Prefer those who hate the first vassal
					opinion_modifier = {
						opinion_target = scope:first
						multiplier = -0.01
					}
					# And those likewise hated by
					opinion_modifier = {
						who = scope:first
						opinion_target = this
						multiplier = -0.01
					}
					# And a final boost if they have any sort of negative relationship, just in case
					modifier = {
						factor = 2
						has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:first }
					}
				}
				save_scope_as = second
			}
		}
	}

	option = { # Vassal 1 is my favorite!
		name = ach_coronation.0012.a

		coronation_move_towards_supporter_effect = { CHARACTER = scope:first }
		coronation_move_towards_detractor_effect = { CHARACTER = scope:second }
		scope:first = {
			add_opinion = {
				target = root
				modifier = grateful_opinion
				opinion = 40
			}
			add_prestige = medium_prestige_gain
		}
		scope:second = {
			add_opinion = {
				target = root
				modifier = insulted_opinion
				opinion = -20
			}
			add_prestige = medium_prestige_loss
			hidden_effect = {
				if = {
					limit = {
						is_ai = yes
						scope:first = {
							is_ai = yes
						}
					}
					progress_towards_rival_effect = {
						REASON = rival_stole_coronation_role
						CHARACTER = scope:first
						OPINION = -40
					}
				}
			}
		}

		stress_impact = {
			fickle = minor_stress_gain
		}

		ai_chance = {
			base = 0
			opinion_modifier = {
				opinion_target = scope:first
			}
			opinion_modifier = {
				opinion_target = scope:second
				multiplier = -1
			}
			modifier = {
				has_trait = fickle
				factor = 0.5
			}
		}
	}

	option = { # Vassal 2 so 2 deserves my support!
		name = ach_coronation.0012.b
		coronation_move_towards_supporter_effect = { CHARACTER = scope:second }
		coronation_move_towards_detractor_effect = { CHARACTER = scope:first }
		scope:second = {
			add_opinion = {
				target = root
				modifier = grateful_opinion
				opinion = 40
			}
			add_prestige = medium_prestige_gain
		}
		scope:first = {
			add_opinion = {
				target = root
				modifier = insulted_opinion
				opinion = -20
			}
			add_prestige = medium_prestige_loss

			hidden_effect = {
				if = {
					limit = {
						is_ai = yes
						scope:second = {
							is_ai = yes
						}
					}
					progress_towards_rival_effect = {
						REASON = rival_stole_coronation_role
						CHARACTER = scope:second
						OPINION = -40
					}
				}
			}
		}

		stress_impact = {
			fickle = minor_stress_gain
		}

		ai_chance = {
			base = 0
			opinion_modifier = {
				opinion_target = scope:second
			}
			opinion_modifier = {
				opinion_target = scope:first
				multiplier = -1
			}
			modifier = {
				has_trait = fickle
				factor = 0.5
			}
		}
	}

	option = { # You can both do it together!
		name = ach_coronation.0012.c
		flavor = ach_coronation.0012.c.flavor
		trigger = {
			NOR = {
				has_trait = diplomatic_court
				trigger_if = {
					limit = { has_royal_court = yes }
					court_grandeur_current_level >= 8
				}
			}
		}

		duel = {
			skill = diplomacy
			value = 10
			50 = {
				desc = ach_coronation.0012.c.tt.success
				compare_modifier = {
					 value = scope:duel_value
					 multiplier = 1.5
					 min = -49
				}
				send_interface_toast = {
					type = event_toast_effect_good
					title = ach_coronation.0012.c.tt.success
					left_icon = root
					custom_tooltip = coronation_tt_positive_tiny
					scope:activity = { activity_special_type_progression_tiny = yes }
					add_diplomacy_lifestyle_xp = medium_lifestyle_experience
				}
				coronation_add_magnificence_log_effect = {
        		    VALUE = flag:positive_tiny
        		    CHAR = root
        		}
			}
			50 = {
				desc = ach_coronation.0012.c.tt.failure
				compare_modifier = {
					 value = scope:duel_value
					 multiplier = -1.5
					 min = -49
				}
				send_interface_toast = {
					type = event_toast_effect_bad
					title = ach_coronation.0012.c.tt.failure
					left_icon = root
					add_prestige = minor_prestige_loss
				}
				scope:first = {
					if = {
						limit = {
							can_set_relation_rival_trigger = { CHARACTER = scope:second }
							is_ai = yes
							scope:second = { is_ai = yes }
						}
						set_relation_rival = {
							target = scope:second
							reason = rival_ruined_coronation_role
						}
					}
				}
			}
		}

		stress_impact = {
			craven = minor_stress_loss
			fickle = minor_stress_loss
		}

		ai_chance = {
			base = 0
			modifier = {
				add = 25
				OR = {
					has_trait = craven
					has_trait = fickle
				}
			}
			modifier = {
				add = 50
				AND = {
					opinion = {
						target = scope:first
						value >= low_positive_opinion
					}
					opinion = {
						target = scope:second
						value >= low_positive_opinion
					}
				}
			}
			opinion_modifier = {
				opinion_target = scope:first
				multiplier = 0.5
			}
			opinion_modifier = {
				opinion_target = scope:second
				multiplier = 0.5
			}
			modifier = {
				factor = 0
				diplomacy < low_skill_rating
			}
		}
	}

	option = { # I have the perfect idea!
		name = ach_coronation.0012.d
		flavor = ach_coronation.0012.d.flavor
		trigger = {
			OR = {
				has_trait = diplomatic_court
				trigger_if = { # This ain't your first rodeo
					limit = { has_royal_court = yes }
					court_grandeur_current_level >= 8
				}
			}
		}
		trait = diplomatic_court_1
		# Legitimacy gets a lil bump
		add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_gain }
		# And the activity gets a small bump as well
		custom_tooltip = coronation_tt_positive_medium
		scope:activity = {
			activity_special_type_progression_medium = yes
			add_activity_log_entry = {
				key = coronation_elaborate_ceremony_log
				score = 25
				tags = { positive }
				character = scope:first
				target = scope:second
			}
		}

		scope:first = {
			add_opinion = {
				target = root
				modifier = impressed_opinion
				opinion = 20
			}
		}
		scope:second = {
			add_opinion = {
				target = root
				modifier = impressed_opinion
				opinion = 20
			}
		}

		stress_impact = {
			arrogant = medium_stress_loss
		}

		ai_chance = {
			base = 150
			modifier = {
				AND = {
					opinion = {
						target = scope:first
						value <= low_negative_opinion
					}
					opinion = {
						target = scope:second
						value <= low_negative_opinion
					}
				}
				add = -50
			}
			modifier = {
				has_trait = arrogant
				factor = 1.5
			}
			modifier = {
				AND = {
					opinion = {
						target = scope:first
						value < medium_negative_opinion
					}
					opinion = {
						target = scope:second
						value < medium_negative_opinion
					}
				}
				factor = 0.5
			}
		}
	}

	option = { # Neither of you are worthy of touching my random_coronation_object!
		name = ach_coronation.0012.e

		scope:first = {
			add_opinion = {
				target = root
				modifier = insulted_opinion
				opinion = -10
			}
		}
		scope:second = {
			add_opinion = {
				target = root
				modifier = insulted_opinion
				opinion = -10
			}
		}
		
		add_character_modifier = {
			modifier = ach_imperious_modifier
			years = 5
		}
		add_prestige = minor_prestige_gain

		stress_impact = {
			impatient = minor_stress_loss
			lazy = minor_stress_loss
			arrogant = minor_stress_loss
		}

		ai_chance = {
			base = 50
			modifier = {
				add = 50
				AND = {
					opinion = {
						target = scope:first
						value >= low_positive_opinion
					}
					opinion = {
						target = scope:second
						value >= low_positive_opinion
					}
				}
			}
			modifier = {
				add = -50
				AND = {
					opinion = {
						target = scope:first
						value <= low_positive_opinion
					}
					opinion = {
						target = scope:second
						value <= low_positive_opinion
					}
				}
			}
			modifier = {
				OR = {
					has_trait = impatient
					has_trait = lazy
					has_trait = callous
					has_trait = arrogant
					has_trait = wrathful
				}
				factor = 1.5
			}
			opinion_modifier = {
				opinion_target = scope:first
				multiplier = 0.5
			}
			opinion_modifier = {
				opinion_target = scope:second
				multiplier = 0.5
			}
		}
	}
}

######################
# Host: You eavesdrop on some peasants
# 0013
scripted_trigger ach_coronation_0013_claimant_trigger = {
	# Shouldn't be friendly
	has_any_good_relationship_with_root_trigger = no
	is_alive = yes
	is_adult = yes
	NOT = { is_courtier_of = scope:host }
	# Don't include your kids (unless you hate the little bastards)
	trigger_if = {
		limit = { has_any_bad_relationship_with_root_trigger = no }
		NOT = { is_child_of = scope:host }
	}
}

scripted_effect ach_coronation_0013_get_eligible_pretender_effect = {
	scope:host = {
		if = {
			limit = {
				any_held_title = {
					any_claimant = { ach_coronation_0013_claimant_trigger = yes }
				}
			}
			random_held_title = {
				# Prefer strong claimants (Who you're thus more likely to also hate)
				limit = {
					any_claimant = {
						has_strong_claim_on = prev
						ach_coronation_0013_claimant_trigger = yes
					}
				}
				alternative_limit = {
					any_claimant = { ach_coronation_0013_claimant_trigger = yes }
				}
				weight = {
					# Prefer primary title
					modifier = {
						this = scope:host.primary_title
						factor = 4
					}
					# Prefer higher tier titles
					modifier = { factor = tier }
				}
				random_claimant = {
					limit = { ach_coronation_0013_claimant_trigger = yes }
					save_scope_as = claimant
				}
			}
		}
	}
}

scripted_effect ach_coronation_0013_get_gossip_type_effect = {
	random_list = {
		# More likely to get nice modifiers
		200 = {
			save_scope_value_as = {
				name = gossip_type
				value = flag:nice
			}
			# Unless you're a tyrant (but some people still like tyrants)
			modifier = {
				add = {
					value = tyranny
					multiply = -1
				}
			}
		}
		100 = {
			save_scope_value_as = {
				name = gossip_type
				value = flag:mean
			}
			modifier = {
				add = {
					value = tyranny
				}
			}
		}
	}
}

ach_coronation.0013 = {
	type = activity_event
	title = ach_coronation.0013.t
	desc = {
		desc = ach_coronation.0013.intro
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:rain_day }
				desc = ach_coronation.0013.desc_opening.rainy_day
			}
			desc = ach_coronation.0013.desc_opening.dry_day
		}
		desc = ach_coronation.0013.desc_opening
		first_valid = {
			triggered_desc = {
				trigger = { scope:gossip_type = flag:mean }
				desc = {
					random_valid = {
						desc = ach_coronation.0013.desc_conversation.mean.1
						desc = ach_coronation.0013.desc_conversation.mean.2
						desc = ach_coronation.0013.desc_conversation.mean.3
						desc = {
							desc = ach_coronation.0013.desc_conversation.mean.4
							first_valid = {
								triggered_desc = {
									trigger = { has_trait = lustful }
									desc = ach_coronation.0013.desc_conversation.mean.4.lustful.host
								}
								triggered_desc = {
									trigger = { has_trait = chaste }
									desc = ach_coronation.0013.desc_conversation.mean.4.chaste
								}
								desc = ach_coronation.0013.desc_conversation.mean.4.not_lustful
							}
						}
						desc = ach_coronation.0013.desc_conversation.mean.5
					}
				}
			}
			triggered_desc = {
				trigger = { scope:gossip_type = flag:nice }
				desc = {
					random_valid = {
						desc = ach_coronation.0013.desc_conversation.nice.1
						desc = ach_coronation.0013.desc_conversation.nice.2
						desc = ach_coronation.0013.desc_conversation.nice.3
						desc = ach_coronation.0013.desc_conversation.nice.4
						triggered_desc = {
							trigger = { exists = scope:claimant }
							desc = ach_coronation.0013.desc_conversation.nice.5
						}
					}
				}
			}
		}
	}

	left_portrait = {
		character = root
		animation = interested
		camera = camera_event_table_center_background

		triggered_animation = {
			trigger = { scope:gossip_type = flag:mean }
			animation = shock
		}
		triggered_animation = {
			trigger = { scope:gossip_type = flag:nice }
			animation = happiness
		}
	}

	center_portrait = {
		character = scope:peasant
		animation = wedding_drunk
		camera = camera_event_table_left_2
		hide_info = yes
	}

	right_portrait = {
		character = scope:peasant_2
		animation = drink
		camera = camera_event_table_right_far_2
		hide_info = yes
	}

	cooldown = { years = 1 }

	theme = coronation_activity

	override_background = { reference = alley_day }

	override_effect_2d = {
		trigger = { exists = scope:rain_day }
		reference = rain	
	}
	
	trigger = {
		OR = {
			involved_activity.var:activity_special_type_progression < 25
			location.county = { county_control < 25 }
		}
		#V Serious roots
		NOR = {
			coronation_host_east_asian_trigger = yes
			highest_held_title_tier > tier_empire
		}
	}

	# Peasants are less likely to spread rumors about rulers they fear
	weight_multiplier = {
		base = 1
		compare_modifier = {
			value = dread
			multiplier = -0.01
			# But sometimes you drink a bit too much with the lads and get y'allselves killed. Opsec, people!
			min = -0.9
		}
	}

	immediate = {
		save_scope_as = host
		involved_activity = {
			activity_location.barony.holder = {
				save_scope_as = baron
			}
		}

		# Generate some gossipy peasants
		create_character = {
			location = root.location
			template = drunken_peasant_character
			culture = root.location.county.culture
			faith = root.location.county.faith
			save_scope_as = peasant
			after_creation = { # To make sure they fit the event window
				if = {
					limit = { has_trait = giant }
					remove_trait = giant
				}
				if = {
					limit = { has_trait = dwarf }
					remove_trait = dwarf
				}
			}
		}
		create_character = {
			location = root.location
			template = drunken_peasant_character
			culture = root.location.county.culture
			faith = root.location.county.faith
			save_scope_as = peasant_2
			after_creation = {
				if = {
					limit = { has_trait = giant }
					remove_trait = giant
				}
				if = {
					limit = { has_trait = dwarf }
					remove_trait = dwarf
				}
			}
		}

		# And stuff for loc
		random_dummy_gender_effect = yes
		random_rain_snow_chance_effect = yes
		ach_coronation_0013_get_eligible_pretender_effect = yes
		ach_coronation_0013_get_gossip_type_effect = yes
	}

	option = { # Weaken Detractors: Focus them on your opponents
		name = ach_coronation.0013.a.weaken_detractors
		reason = activity_intent
		flavor = ach_coronation.0013.a.weaken_detractors.flavor
		add_internal_flag = special

		trigger = {
			has_activity_intent = coronation_weaken_detractors
			involved_activity = {
				any_guest_subset = { # There are actually enough people to do this to
					name = detractor
					count >= 2
				}
			}
		}

		custom_tooltip = two_detractors_get_negative_rumors_tt

		hidden_effect = {
			involved_activity = {
				random_guest_subset = {
					name = detractor
					weight = {
						base = 1
						is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
						is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }

						# Less likely to get rumors to stick on proper political operators
						modifier = {
							add = {
								value = intrigue
								multiply = -5
							}
							add = {
								value = diplomacy
								multiply = -5
							}
						}
					}
					add_character_modifier = {
						modifier = ach_negative_rumors_modifier
						years = 5
					}
					save_scope_as = detractor_1
				}
				random_guest_subset = {
					name = detractor
					weight = {
						base = 1
						is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
						is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
						
						# Less likely to get rumors to stick on proper political operators
						modifier = {
							add = {
								value = intrigue
								multiply = -5
							}
							add = {
								value = diplomacy
								multiply = -5
							}
						}
					}
					add_character_modifier = {
						modifier = ach_negative_rumors_modifier
						years = 5
					}
					save_scope_as = detractor_2
				}
			}
			send_interface_toast = {
				title = ach_coronation.0013.a.weaken_detractors.tt
				left_icon = scope:detractor_1
				right_icon = scope:detractor_2
				
				scope:detractor_1 = {
					add_character_modifier = {
						modifier = ach_negative_rumors_modifier
						years = 5
					}
				}
				scope:detractor_2 = {
					add_character_modifier = {
						modifier = ach_negative_rumors_modifier
						years = 5
					}
				}
			}
		}

		remove_short_term_gold = minor_gold_value

		highlight_portrait = scope:peasant
		highlight_portrait = scope:peasant_2

		coronation_weaken_detractors_opinion_effect = yes

		stress_impact = {
			arrogant = minor_stress_gain # Talking to peasants
			shy = minor_stress_gain # Talking to anyone
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_rationality = 1
			}
			modifier = {
				has_trait = arrogant
				add = -25
			}
			modifier = {
				has_trait = shy
				add = -25
			}
			modifier = {
				has_trait = greedy
				add = -25
			}
			modifier = {
				has_trait = profligate
				add = 25
			}
			modifier = {
				has_trait = generous
				add = 25
			}
			modifier = {
				has_trait = lifestyle_reveler
				add = 25
			}
			modifier = {
				has_trait = gregarious
				factor = 2
			}
			modifier = {
				has_trait = schemer
				factor = 2
			}
			modifier = {
				has_trait = honest
				factor = 0.5
			}
		}
	}

	option = { # Host: Do they have any idea who you are!?
		name = ach_coronation.0013.c
		trigger = {
			scope:gossip_type = flag:mean
		}
		skill = diplomacy

		duel = {
			skills = { diplomacy prowess }
			value = medium_skill_rating
			# you manage to win them over
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				desc = ach_coronation.0013.c.tt.success
				send_interface_toast = {
					title = ach_coronation.0013.c.tt.success
					left_icon = root
					add_prestige = medium_prestige_gain
					custom_tooltip = coronation_tt_positive_tiny
					scope:activity = { activity_special_type_progression_tiny = yes }
				}
				coronation_add_magnificence_log_effect = {
					VALUE = flag:positive_tiny
					CHAR = root
				}
			}
			# The rumors spread further
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				desc = ach_coronation.0013.c.tt.failure
				send_interface_toast = {	
					title = ach_coronation.0013.c.tt.failure
					left_icon = root
					add_prestige = minor_prestige_loss
					add_dread = minor_dread_loss
					add_character_modifier = {
						modifier = ach_negative_rumors_modifier
						years = 5
					}
				}
			}
		}

		stress_impact = {
			forgiving = minor_stress_gain
			just = minor_stress_loss
			wrathful = minor_stress_loss
			vengeful = minor_stress_loss
		}

		ai_chance = {
			base = 10
			modifier = {
				has_trait = wrathful
				add = 25
			}
			ai_value_modifier = {
				ai_boldness = 0.5
				ai_sociability = 0.5
			}
		}
	}

	option = { # Set the guards on them
		name = ach_coronation.0013.b
		trigger = { scope:gossip_type = flag:mean }

		add_character_modifier = {
			modifier = ach_negative_rumors_modifier
			years = 5
		}

		rightfully_imprison_character_less_verbose_effect = {
			TARGET = scope:peasant
			IMPRISONER = root
		}
		rightfully_imprison_character_less_verbose_effect = {
			TARGET = scope:peasant_2
			IMPRISONER = root
		}

		add_tyranny = minor_tyranny_gain
		add_dread = minor_dread_gain
		root.location = {
			add_province_modifier = {
				modifier = ach_arrested_rumormongers_modifier
				years = 5
			}
		}
		add_character_modifier = {
			modifier = ach_arrested_rumormongers_character_modifier
			years = 5
		}

		highlight_portrait = scope:peasant

		stress_impact = {
			forgiving = medium_stress_gain
			compassionate = minor_stress_gain
			calm = miniscule_stress_gain
			irritable = minor_stress_loss
			wrathful = medium_stress_loss
			vengeful = medium_stress_loss
		}

		ai_chance = {
			base = 20
			modifier = {
				has_trait = wrathful
				add = 25
			}
			modifier = {
				has_trait = vengeful
				add = 50
			}
			ai_value_modifier = {
				ai_boldness = 1
				ai_energy = 1
				ai_compassion = -1
			}
		}
	}

	option = { # Join them
		name = ach_coronation.0013.d
		trigger = { scope:gossip_type = flag:nice }

		add_character_modifier = {
			modifier = ach_positive_rumors_modifier
			years = 10
		}
		if = {
			limit = {
				has_trait = lifestyle_reveler
				has_trait_xp = {
					trait = lifestyle_reveler
					value < 100
				}
			}
			add_trait_xp = {
				trait = lifestyle_reveler
				value = 10
			}
		}
		else = {
			random = {
				chance = 25
				if = {
					limit = {
						NOT = { has_trait = lifestyle_reveler }
					}
					add_trait = lifestyle_reveler
				}
			}
		}

		add_prestige = minor_prestige_loss

		highlight_portrait = scope:peasant
		highlight_portrait = scope:peasant_2

		stress_impact = {
			base = medium_stress_loss
			gregarious = minor_stress_loss
			lifestyle_reveler = minor_stress_loss
			shy = major_stress_gain
			arrogant = major_stress_gain
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_sociability = 1
			}
		}
	}

	option = { # Who cares?
		name = ach_coronation.0013.e
		name = {
			trigger = { scope:gossip_type = flag:mean }
			text = ach_coronation.0013.e.disagrees
		}
		flavor = {
			first_valid = {
				triggered_desc = {
					trigger = {
						scope:gossip_type = flag:mean
					}
					desc = ach_coronation.0013.e.flavor.mean
				}
				desc = ach_coronation.0013.e.flavor.nice
			}
		}

		if = {
			limit = { scope:gossip_type = flag:nice }
			add_character_modifier = {
				modifier = ach_positive_rumors_modifier
				years = 5
			}
			stress_impact = {
				base = minor_stress_loss
			}
		}
		else = {
			add_character_modifier = {
				modifier = ach_negative_rumors_modifier
				years = 5
			}
			stress_impact = {
				base = minor_stress_loss
				vengeful = medium_stress_gain
				wrathful = minor_stress_gain
				forgiving = medium_stress_loss
			}
		}

		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_boldness = -0.5
				ai_sociability = -0.5
				ai_energy = -0.5
			}
		}
	}

	after = {
		if = {
			limit = {
				scope:peasant = { is_imprisoned = no }
			}
			hidden_effect = {
				scope:peasant = { silent_disappearance_effect = yes }
				scope:peasant_2 = { silent_disappearance_effect = yes }
			}
		}
	}
}

######################
# Guest: Yell fire
# 0014
scripted_trigger ach_coronation_0014_random_attendee_trigger = {
	NOR = {
		this = scope:host
		this = scope:crush_initiator
		involved_activity.var:officiator ?= this
	}
	is_available_in_activity_trigger = yes
}

scripted_effect ach_coronation_0015_crushed_guest_effect = {
	involved_activity = {
		# Wound X characters and kill Y %
		while = {
			count = $COUNT$
			random_attending_character = {
				limit = {
					ach_coronation_0014_random_attendee_trigger = yes
					NOT = { is_in_list = in_crowd_crush }
				}
				add_to_list = in_crowd_crush
				increase_wounds_effect = { REASON = crowd_stampede }
				create_character_memory = {
					type = injured_in_crowd_crush_at_coronation_memory
					participants = {
						coronation_host = scope:host
					}
				}

				random = {
					chance = $DEATH_CHANCE$
					death = { death_reason = death_crowd_stampede }
				}
			}
		}
		# Add the stampede modifier
		root.location = {
			if = {
				limit = {
					NOT = { has_province_modifier = ach_coronation_stampede_modifier }
				}
				add_province_modifier = { modifier = ach_coronation_stampede_modifier years = 5 }
				county = { change_county_control = minor_county_control_loss }
			}
		}
	}
}

# Crowd crush effects used in tooltips in 0014 and the effects of 0015
scripted_effect ach_coronation_0015_minor_crush_effect = {
	custom_tooltip = few_guests_wounded
	hidden_effect = { ach_coronation_0015_crushed_guest_effect = { COUNT = 2 DEATH_CHANCE = 0 } }
}
scripted_effect ach_coronation_0015_medium_crush_effect = {
	custom_tooltip = many_guests_wounded
	hidden_effect = { ach_coronation_0015_crushed_guest_effect = { COUNT = 8 DEATH_CHANCE = 0 } }
}
scripted_effect ach_coronation_0015_major_crush_effect = {
	custom_tooltip = many_guests_wounded_or_killed
	hidden_effect = { ach_coronation_0015_crushed_guest_effect = { COUNT = 12 DEATH_CHANCE = 4 } }
}

ach_coronation.0014 = {
	type = activity_event
	title = ach_coronation.0014.t
	desc = {
		desc = ach_coronation.0014.desc
		first_valid = {
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:rain }
				desc = ach_coronation.0014.desc.weather.rain
			}
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:generic_indoors }
				desc = ach_coronation.0014.desc.weather.indoors
			}
			desc = ach_coronation.0014.desc.weather.clear
		}
		first_valid = {
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:rain }
				desc = ach_coronation.0014.desc.reason.rain
			}
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:local_discontent }
				desc = ach_coronation.0014.desc.reason.local_discontent
			}
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:low_control }
				desc = ach_coronation.0014.desc.reason.low_control
			}
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:generic_indoors }
				desc = ach_coronation.0014.desc.reason.generic_indoors
			}
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:generic_outdoors }
				desc = ach_coronation.0014.desc.reason.generic_outdoors
			}
		}
		first_valid = {
			triggered_desc = {
				trigger = {
					culture = { has_cultural_pillar = language_greek }
					OR = {
						has_title = title:e_byzantium
						top_liege = {
							has_title = title:e_byzantium
						}
					}
				}
				desc = ach_coronation.0014.desc.ending.byzantine
			}
			triggered_desc = {
				desc = ach_coronation.0014.desc.ending
			}
		}
		first_valid = {
			triggered_desc = {
				trigger = { scope:crush_scenario = flag:generic_indoors }
				desc = ach_coronation.0014.desc.ending.indoors
			}
			desc = ach_coronation.0014.desc.ending.outdoors
		}
	}

	left_portrait = {
		character = root
		animation = thinking
	}

	center_portrait = {
		character = scope:peasant
		animation = rage
		camera = camera_event_center_pointing_right
		hide_info = yes
	}

	right_portrait = {
		character = scope:guard
		animation = threatening
		camera = camera_event_right_pointing_right
		hide_info = yes
	}

	lower_left_portrait = {
		character = scope:first
	}

	cooldown = { years = 10 }

	theme = coronation_activity

	override_background = {
		trigger = { scope:crush_scenario = flag:generic_indoors }
		reference = throne_room
	}
	override_background = { reference = alley_day }

	override_effect_2d = {
		trigger = {
			exists = scope:rain_day
			NOT = { scope:crush_scenario = flag:generic_indoors }
		}
		reference = rain	
	}

	trigger = {
		involved_activity = {
			activity_host != root
			# Coronation Splendor is low
			var:activity_special_type_progression < 25
			OR = {
				# County has low control
				activity_location.county = { county_control < low_county_control_limit }
				# County is part of a faction
				activity_host = {
					any_targeting_faction = {
						any_faction_county_member = {
							this = scope:activity.activity_location.county
						}
					}
				}
				# There are many powerful detractors
				any_guest_subset = {
					name = detractor
					OR = { # Is a threat to the host
						AND = {
							liege = involved_activity.activity_host
							is_powerful_vassal = yes
						}
						highest_held_title_tier >= involved_activity.activity_host.highest_held_title_tier
						current_military_strength > involved_activity.activity_host.current_military_strength
					}
					count >= 4
				}
			}
		}

		# You have a reason to do this, or at least consider it
		coronation_hostile_to_host_trigger = yes

		involved_activity = {
			# There are enough people to be impacted by a crush
			any_attending_character = {
				is_physically_able_ai = yes
				this != root
				count >= 12
			}
			# There is a character we can use for the arrival
			any_attending_character = {
				is_landed = yes
				location = involved_activity.activity_location
				NOR = {
					this = involved_activity.activity_host
					this = root
					involved_activity.var:officiator ?= this
				}
				is_available_in_activity_trigger = yes
			}
			# Once per activity
			NOT = { has_variable = crowd_crush_happened }
		}
	}

	weight_multiplier = {
		base = 1
		# More likely if the coronation isn't going great
		modifier = {
			involved_activity = {
				any_guest_subset = {
					name = detractor
					OR = {
						# Is a powerful vassal
						AND = {
							liege = scope:host
							is_powerful_vassal = yes
						}
						# Or a threat to the host
						highest_held_title_tier >= scope:host.highest_held_title_tier
					}
					count >= 3
				}
			}
			add = 1
		}
		modifier = {
			involved_activity = {
				any_guest_subset = {
					name = detractor
					OR = {
						# Is a powerful vassal
						AND = {
							liege = scope:host
							is_powerful_vassal = yes
						}
						# Or a threat to the host
						highest_held_title_tier >= scope:host.highest_held_title_tier
					}
					count >= 5
				}
			}
			add = 1
		}
		modifier = {
			involved_activity = {
				any_guest_subset = {
					name = detractor
					OR = {
						# Is a powerful vassal
						AND = {
							liege = scope:host
							is_powerful_vassal = yes
						}
						# Or a threat to the host
						highest_held_title_tier >= scope:host.highest_held_title_tier
					}
					count >= 7
				}
			}
			add = 1
		}
	}

	immediate = {
		save_scope_as = crush_initiator

		involved_activity = {
			activity_host = { save_scope_as = host }

			# Grab a random landed attendee to be used in loc
			random_attending_character = {
				limit = {
					ach_coronation_0014_random_attendee_trigger = yes
					is_landed = yes
				}
				weight = {
					base = 1
					modifier = { factor = highest_held_title_tier } # Grab someone important
				}
				save_scope_as = first
			}
		}

		# Generate a bodyguard
		create_character = {
			location = root.location
			template = soldier_friend_character
			culture = scope:first.culture
			faith = scope:first.faith
			save_scope_as = guard
		}
		create_character = {
			location = root.location
			template = servant_character
			culture = root.location.county.culture
			faith = root.location.county.faith
			save_scope_as = peasant
		}

		random_rain_snow_chance_effect = yes

		# Choose a scenario
		random_list = {
			1 = {
				trigger = { exists = scope:rain_day }
				save_scope_value_as = {
					name = crush_scenario
					value = flag:rain
				}
			}
			1 = {
				save_scope_value_as = {
					name = crush_scenario
					value = flag:generic_indoors
				}
			}
			1 = {
				save_scope_value_as = {
					name = crush_scenario
					value = flag:generic_outdoors
				}
			}
			# Prefer non-generic ones
			4 = {
				trigger = {
					scope:host = {
						any_targeting_faction = {
							any_faction_county_member = {
								this = scope:activity.activity_location.county
							}
						}
					}
				}
				save_scope_value_as = {
					name = crush_scenario
					value = flag:local_discontent
				}
			}
			4 = {
				trigger = {
					location.county = { county_control < low_county_control_limit }
				}
				save_scope_value_as = {
					name = crush_scenario
					value = flag:low_control
				}
			}
		}
	}

	option = { # Yell fire
		name = {
			trigger = { scope:crush_scenario = flag:generic_indoors }
			text = ach_coronation.0014.a.indoors
		}
		name = ach_coronation.0014.a.outdoors
		add_internal_flag = dangerous

		duel = {
			skill = intrigue
			value = very_high_skill_rating
			# You spark a riot.
			35 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = ach_coronation.0014.a.tt.success

				if = {
					limit = {
						scope:crush_scenario != flag:generic_indoors
					}
					custom_tooltip = ach_coronation.0014.a.rock
					hidden_effect = {
						scope:first = { increase_wounds_effect = { REASON = fight } }
					}
				}
				else = {
					scope:first = { increase_wounds_effect = { REASON = fight } }
				}

				# Effect is fired from the host event
				hidden_effect = {
					scope:host = {
						trigger_event = ach_coronation.0015
					}
					involved_activity = {
						set_variable = {
							name = crowd_crush_happened
						}
					}
				}

				custom_description_no_bullet = {
					text = if_host_calms_crowd_desc
					object = scope:host
				}
				show_as_tooltip = { ach_coronation_0015_minor_crush_effect = yes }
				custom_tooltip = ach_coronation.0014.a.tt.host.success
				
				custom_description_no_bullet = {
					text = if_crush_happens_desc
					object = scope:host
				}
				custom_tooltip = many_guests_may_be_wounded_or_killed
				custom_tooltip = ach_coronation.0014.a.tt.host.failure.magnificence
				custom_tooltip = ach_coronation.0014.a.tt.host.failure.host
				custom_tooltip = ach_coronation.0014.a.tt.host.failure.crackdown
			}
			# Nobody notices
			65 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 10
				desc = ach_coronation.0014.a.tt.failure
				send_interface_toast = {
					title = ach_coronation.0014.a.tt.failure
					desc = {
						desc = ach_coronation.0014.a.tt.failure
						triggered_desc = {
							trigger = { scope:crush_scenario = flag:generic_indoors }
							desc = ach_coronation.0014.a.tt.failure.indoors
						}
					}
				}
			}
		}

		ai_chance = {
			base = 25
			# More likely if you actually have a chance
			modifier = {
				intrigue > high_skill_rating
				add = 25
			}
			modifier = {
				intrigue > very_high_skill_rating
				add = 50
			}
			modifier = {
				has_trait = schemer
				add = 25
			}
			modifier = {
				has_trait = callous
				add = 25
			}
			modifier = {
				has_trait = sadistic
				factor = 2
			}
		}
		stress_impact = {
			sadistic = medium_stress_impact_loss
			callous = minor_stress_impact_loss
			honest = minor_stress_impact_gain
			content = minor_stress_impact_gain
			just = medium_stress_impact_gain
			compassionate = massive_stress_gain
		}
	}
	
	option = { # These crowds could be useful...
		name = ach_coronation.0014.b
		trigger = {
			custom_tooltip = {
				text = ach_coronation.0014.b.tt
				OR = {
					intrigue >= very_high_skill_rating
					has_trait = deceitful
					has_trait = schemer
				}
			}
		}
		show_as_unavailable = { always = yes }
		skill = intrigue
		trait = schemer
		trait = deceitful

		add_character_modifier = {
			modifier = ach_useful_crowds_modifier
			years = 5
		}

		ai_chance = {
			base = 150
		}
	}
	
	option = { # Go schmooze with the oncoming lord instead
		name = ach_coronation.0014.c
		reverse_add_opinion = {
			modifier = charmed_opinion
			opinion = 10
			target = scope:first
		}

		ai_chance = {
			base = 100
		}
	}

	after = {
		hidden_effect = {
			scope:guard = { silent_disappearance_effect = yes }
			scope:peasant = { silent_disappearance_effect = yes }
		}
	}
}

######################
# Host: There is a crowd crush
# 0015
ach_coronation.0015 = {
	type = activity_event
	title = ach_coronation.0015.t
	desc = ach_coronation.0015.desc

	left_portrait = {
		character = root
		animation = fear
	}

	center_portrait = {
		character = scope:peasant
		animation = rage
		camera = camera_event_crowd
		hide_info = yes
	}

	right_portrait = {
		character = scope:filthy_peasant
		animation = beg
		camera = camera_event_ground
		hide_info = yes
	}

	cooldown = { years = 10 }

	theme = coronation_activity

	override_background = {
		trigger = {
			location.county.holder = {
				government_has_flag = government_is_tribal
			}
		}
		reference = market_tribal
	}
	override_background = { reference = alley_day }

	override_effect_2d = {
		trigger = { exists = scope:rain_day }
		reference = rain	
	}

	trigger = {
		involved_activity = {
			# Once per activity
			NOT = { has_variable = crowd_crush_happened }
		}
	}

	immediate = {
		create_character = {
			location = root.location
			template = diseased_peasant_character
			culture = root.location.county.culture
			faith = root.location.county.faith
			save_scope_as = filthy_peasant
		}
		create_character = {
			location = root.location
			template = servant_character
			culture = root.location.county.culture
			faith = root.location.county.faith
			save_scope_as = peasant
		}
		
		ach_coronation_0015_minor_crush_effect = yes

		custom_tooltip = ach_coronation.0015.has_happened
	}

	option = { # Diplomacy Challenge - Talk them down
		name = {
			trigger = { has_trait = august }
			text = ach_coronation.0015.a.august
		}
		name = ach_coronation.0015.a
		trigger = { diplomacy >= low_skill_rating }
		show_as_unavailable = { always = yes }
		skill = diplomacy
		trait = august

		duel = {
			skill = diplomacy
			value = medium_skill_rating
			# Your speech stuns the crowd to awed silence
			10 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 2
					min = -49
				}
				modifier = {
					diplomacy >= high_skill_rating
					add = 10
				}
				modifier = {
					has_trait = diplomat
					add = 20
				}

				desc = ach_coronation.0015.a.tt.critical_success

				custom_tooltip = coronation_tt_positive_major
				scope:activity = { activity_special_type_progression_major = yes }
				coronation_add_magnificence_log_effect = {
					VALUE = flag:positive_major
					CHAR = root
				}

				# The commoners will remember this
				add_character_modifier = { modifier = ach_awed_peasantry_modifier years = 10 }

				# You'll also remember this
				create_character_memory = { type = calmed_the_crowd_memory }

				show_as_tooltip = {
					add_diplomacy_lifestyle_perk_points = 1
				}

				hidden_effect = {
					send_interface_toast = {
						title = ach_coronation.0015.a.tt.critical_success
						custom_tooltip = ach_coronation.0015.a.tt.critical_success.desc
						left_icon = root
						type = event_toast_effect_good

						# Everyone is very impressed
						add_diplomacy_lifestyle_perk_points = 1
						custom_tooltip = {
							text = coronation_tt_positive_major
							scope:activity = { activity_special_type_progression_major = yes }
						}
						scope:activity = {
							every_attending_character = {
								limit = {
									this != root
									this != scope:crush_initiator
								}
								add_opinion = {
									target = root
									modifier = impressed_opinion
									opinion = 10
								}
								custom = custom.every_activity_guest
							}
						}
					}

					# Remove the stampede modifier early
					root.location.county = {
						remove_county_modifier = ach_coronation_stampede_modifier
					}
					# Inform the initiator they failed in a critical persuasian
					scope:crush_initiator = {
						send_interface_toast = {
							title = ach_coronation.0015.a.tt.initiator.critical_failure
							custom_tooltip = ach_coronation.0015.a.tt.initiator.critical_failure.desc
							left_icon = root
							right_icon = scope:host

							stress_impact = {
								base = medium_stress_impact_gain
								irritable = medium_stress_impact_gain
							}

							show_as_tooltip = {
								scope:host = {
									custom_tooltip = {
										text = coronation_tt_positive_major
										scope:activity = { activity_special_type_progression_major = yes }
									}
									add_diplomacy_lifestyle_perk_points = 1
								}
								scope:activity = {
									every_attending_character = {
										limit = {
											this != scope:host
											this != scope:crush_initiator
										}
										add_opinion = {
											target = scope:host
											modifier = impressed_opinion
											opinion = 10
										}
										custom = custom.every_activity_guest
									}
								}
							}
						}
					}
				}
			}
			# Your speech calms the people
			40 = {
				# If you have the August trait (and higher than low_skill_rating), critical success is free
				trigger = { NOT = { has_trait = august } }
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				modifier = {
					has_trait = diplomat
					add = 30
				}

				desc = ach_coronation.0015.a.tt.success

				ach_coronation_0015_minor_crush_effect = yes

				# You'll remember this
				create_character_memory = { type = calmed_the_crowd_memory }

				custom_tooltip = coronation_tt_positive_medium
				scope:activity = { activity_special_type_progression_medium = yes }
				coronation_add_magnificence_log_effect = {
					VALUE = flag:positive_medium
					CHAR = root
				}

				hidden_effect = {
					send_interface_toast = {
						title = ach_coronation.0015.a.tt.success
						custom_tooltip = ach_coronation.0015.a.tt.success.desc
						left_icon = root
						type = event_toast_effect_good

						# Everyone is impressed
						custom_tooltip = coronation_tt_positive_medium
						scope:activity = {
							activity_special_type_progression_medium = yes
						}
					}

					# Inform the initiator they failed
					scope:crush_initiator = {
						send_interface_toast = {
							title = ach_coronation.0015.a.tt.initiator.failure
							custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.desc
							left_icon = root
							right_icon = scope:host

							scope:host = {
								custom_tooltip = coronation_tt_positive_medium
							}
						}
					}
				}
			}
			# The fools do not listen
			40 = {
				# If you have the August trait (and higher than low_skill_rating), critical success is free
				trigger = { NOT = { has_trait = august } }
				compare_modifier = {
					value = scope:duel_value
					multiplier = -4
					min = -49
				}
				modifier = { # Hard to ignore
					has_trait = august
					add = -20
				}
				modifier = { # Hard to get people to listen
					OR = {
						has_trait = stuttering
						has_trait = lisping
					}
					add = 10
				}

				desc = ach_coronation.0015.a.tt.failure

				ach_coronation_0015_medium_crush_effect = yes

				custom_tooltip = coronation_tt_negative
				scope:activity = { activity_special_type_progression_negative = yes }
				coronation_add_magnificence_log_effect = {
					VALUE = flag:negative
					CHAR = root
				}

				hidden_effect = {
					send_interface_toast = {
						title = ach_coronation.0015.a.tt.failure.title
						desc = ach_coronation.0015.a.tt.failure
						left_icon = root
						type = event_toast_effect_bad

						stress_impact = {
							base = medium_stress_impact_gain
							irritable = medium_stress_impact_gain
						}

						custom_tooltip = coronation_tt_negative
					}

					# Inform the initiator they succeeded
					scope:crush_initiator = {
						send_interface_toast = {
							title = ach_coronation.0015.a.tt.initiator.success
							desc = ach_coronation.0015.a.tt.initiator.success.desc
							left_icon = root
							right_icon = scope:host

							show_as_tooltip = {
								scope:host = {
									stress_impact = {
										base = medium_stress_impact_gain
										irritable = medium_stress_impact_gain
									}

									custom_tooltip = coronation_tt_negative
								}
							}
						}
					}
				}
			}
		}
		if = {
			limit = { exists = scope:new_memory }
			scope:new_memory = {
				set_variable = {
					name = memory_location
					value = root.location
				}
			}
		}

		stress_impact = {
			callous = minor_stress_impact_gain # Doesn't care
			shy = minor_stress_impact_gain # Talk to people!?
		}

		ai_chance = {
			base = 200
			modifier = {
				add = -25
				has_trait = callous
			}
			modifier = {
				add = -25
				has_trait = shy
			}
			modifier = {
				add = -50
				has_trait = sadistic
			}
			modifier = {
				add = 25
				has_trait = calm
			}
			modifier = {
				add = 50
				has_trait = compassionate
			}
			modifier = {
				add = 50
				has_trait = gregarious
			}
		}
	}

	option = { # Physician / Learning - Tend to the wounded
		name = ach_coronation.0015.b
		flavor = ach_coronation.0015.b.flavor
		trigger = {
			OR = {
				learning >= high_skill_rating
				has_trait = lifestyle_physician
			}
		}
		skill = learning
		trait = lifestyle_physician

		random = {
			chance = 25
			custom_tooltip = coronation_tt_negative
			scope:activity = { activity_special_type_progression_negative = yes }
			coronation_add_magnificence_log_effect = {
				VALUE = flag:negative
				CHAR = root
			}
		}

		add_piety = major_piety_gain
		add_learning_lifestyle_xp = medium_lifestyle_experience

		show_as_tooltip = {
			scope:activity = {
				every_attending_character = {
					limit =  { is_ai = yes }
					custom = every_wounded_guest_in_crowd_scope_tt
					show_as_tooltip = {
						add_character_modifier = {
							modifier = ach_coronation_treated_wound_modifier
							years = 5
						}
						add_opinion = {
							target = root
							modifier = thankful_opinion
							opinion = 20
						}
					}
				}
			}
		}

		hidden_effect = {
			every_in_list = {
				list = in_crowd_crush
				add_opinion = {
					target = root
					modifier = thankful_opinion
					opinion = 20
				}
				add_character_modifier = {
					modifier = ach_coronation_treated_wound_modifier
					years = 5
				}
			}
			# Inform the initiator they failed
			scope:crush_initiator = {
				send_interface_toast = {
					title = ach_coronation.0015.a.tt.initiator.failure
					custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.physician.desc
					left_icon = root
					right_icon = scope:host

					show_as_tooltip = {
						scope:host = {
							custom_tooltip = coronation_tt_positive_medium

							add_piety = major_piety_gain
						}
					}
				}
			}
		}

		stress_impact = {
			arrogant = medium_stress_impact_gain # "Peasant blood? On *my* hands?"
			sadistic = medium_stress_impact_gain # "No wait this is great let's just watch"
			compassionate = major_stress_impact_loss # "Mass casualty events are bad :(((" ~ local buzzkill
		}

		ai_chance = {
			base = 300
			modifier = {
				add = 100
				has_trait = compassionate
			}
			modifier = {
				add = -100
				has_trait = sadistic
			}
			modifier = {
				add = -100
				has_trait = arrogant
			}
		}
	}

	option = { # Set the guards on them!
		name = {
			trigger = { primary_title = { has_variable = founded_varangian_guard } }
			text = ach_coronation.0015.d.byzantines
		}
		name = ach_coronation.0015.d
		trait = overseer
		add_internal_flag = dangerous

		add_dread = miniscule_dread_gain

		random_list = {
			1 = { # The soldiers go too far
				ach_coronation_0015_major_crush_effect = yes
				add_tyranny = medium_tyranny_gain

				hidden_effect = {
					# Inform the initiator they succeeded
					scope:crush_initiator = {
						send_interface_toast = {
							title = ach_coronation.0015.a.tt.initiator.critical_success
							custom_tooltip = ach_coronation.0015.a.tt.initiator.critical_success.desc
							left_icon = root
							right_icon = scope:host

							show_as_tooltip = {
								scope:host = {
									ach_coronation_0015_major_crush_effect = yes
									add_tyranny = medium_tyranny_gain
									add_dread = miniscule_dread_gain
								}
							}
						}
					}
				}
			}
			2 = { # The soldiers kill a bunch of people but restore order
				ach_coronation_0015_medium_crush_effect = yes
				add_tyranny = minor_tyranny_gain

				hidden_effect = {
					# Inform the initiator they failed
					scope:crush_initiator = {
						send_interface_toast = {
							title = ach_coronation.0015.a.tt.initiator.failure
							custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.crackdown.desc
							left_icon = root
							right_icon = scope:host

							show_as_tooltip = {
								scope:host = {
									ach_coronation_0015_medium_crush_effect = yes
									add_dread = miniscule_dread_gain
									add_character_modifier = {
										modifier = ach_coronation_crackdown_character_modifier
										years = 5
									}
								}
							}
						}
					}
				}
			}
			3 = { # The crowds disperse before many are killed
				ach_coronation_0015_minor_crush_effect = yes

				hidden_effect = {
					# Inform the initiator they failed
					scope:crush_initiator = {
						send_interface_toast = {
							title = ach_coronation.0015.a.tt.initiator.failure
							custom_tooltip = ach_coronation.0015.a.tt.initiator.failure.crackdown.desc
							left_icon = root
							right_icon = scope:host

							show_as_tooltip = {
								scope:host = {
									ach_coronation_0015_minor_crush_effect = yes
									add_character_modifier = {
										modifier = ach_coronation_crackdown_character_modifier
										years = 5
									}
									add_dread = miniscule_dread_gain
								}
							}
						}
					}
				}
			}
		}

		if = {
			limit = {
				NOT = { has_trait = overseer }
			}
			custom_tooltip = coronation_tt_negative
			scope:activity = { activity_special_type_progression_negative = yes }
			coronation_add_magnificence_log_effect = {
				VALUE = flag:negative
				CHAR = root
			}
		}
		else = {
			custom_tooltip = because_you_have_overseer_tt
		}

		add_character_modifier = {
			modifier = ach_coronation_crackdown_character_modifier
			years = 5
		}
		root.location = {
			add_province_modifier = {
				modifier = ach_coronation_crackdown_modifier
				years = 5
			}
			county = {
				change_development_progress = medium_development_progress_loss
			}
		}

		stress_impact = {
			compassionate = medium_stress_impact_gain
			arrogant = minor_stress_impact_loss # Loves calling guards on the commons
			# Loves seeing guards beat people
			callous = medium_stress_impact_loss
			sadistic = medium_stress_impact_loss
			overseer = minor_stress_impact_loss
		}
		
		ai_chance = {
			base = 100
			modifier = {
				add = -50
				has_trait = compassionate
			}
			modifier = {
				add = 25
				has_trait = arbitrary
			}
			modifier = {
				add = 25
				has_trait = arrogant
			}
			modifier = {
				add = 50
				has_trait = sadistic
			}
			modifier = {
				add = 50
				has_trait = callous
			}
			modifier = {
				add = 50
				has_trait = overseer
			}
		}
	}

	option = { # Getting coronated - Who cares
		name = ach_coronation.0015.e

		random = {
			chance = 50
			custom_tooltip = coronation_tt_negative
			scope:activity = { activity_special_type_progression_negative = yes }
			coronation_add_magnificence_log_effect = {
				VALUE = flag:negative
				CHAR = root
			}
		}

		ach_coronation_0015_medium_crush_effect = yes
		add_prestige = minor_prestige_loss

		hidden_effect = {
			# Inform the initiator they succeeded
			scope:crush_initiator = {
				send_interface_toast = {
					title = ach_coronation.0015.a.tt.initiator.success
					custom_tooltip = ach_coronation.0015.a.tt.initiator.success.desc
					left_icon = root
					right_icon = scope:host

					show_as_tooltip = {
						scope:host = {
							stress_impact = {
								base = medium_stress_impact_gain
								irritable = medium_stress_impact_gain
							}

							add_prestige = minor_prestige_loss
							add_piety = minor_piety_loss

							custom_tooltip = coronation_tt_negative
						}
					}
				}
			}
		}

		stress_impact = {
			arrogant = minor_stress_impact_loss
			callous = minor_stress_impact_loss
			sadistic = medium_stress_impact_loss
			craven = medium_stress_impact_loss
			brave = medium_stress_impact_gain
			compassionate = medium_stress_impact_gain
		}

		ai_chance = {
			base = 100
			modifier = {
				add = -50
				has_trait = compassionate
			}
			modifier = {
				add = -50
				has_trait = brave
			}
			modifier = {
				add = 25
				has_trait = craven
			}
			modifier = {
				add = 25
				has_trait = sadistic
			}
			modifier = {
				add = 25
				has_trait = callous
			}
			modifier = {
				add = 25
				has_trait = arrogant
			}
		}
	}

	after = {
		hidden_effect = {
			scope:peasant = { silent_disappearance_effect = yes }
			scope:filthy_peasant = { silent_disappearance_effect = yes }
		}
	}
}

######################
# Guest: You present your host a gift
# 0016
scripted_trigger ach_coronation_0016_eligible_artifact = {
	NOR = {
		artifact_slot_type = helmet
		artifact_slot_type = regalia
		has_variable = banner_house
		has_variable = banner_dynasty
		has_variable = 1025_treasure_map
	}
	artifact_durability > 10
}

scripted_trigger ach_coronation_0016_can_be_swayed_trigger = {
	NOR = {
		is_in_guest_subset = { name = detractor }
		is_in_guest_subset = { name = supporter }
	}
	is_ai = yes
	is_vassal_of = involved_activity.activity_host
	NOR = {
		has_trait = disloyal
		has_trait = loyal
	}
}

scripted_effect liege_reward_effect = {
	switch = {
		trigger = has_activity_intent
		coronation_bear_witness = {
			if = {
				limit = {
					has_legitimacy = yes
				}
				add_legitimacy = minor_legitimacy_gain
			}
			else_if = {
				limit = {
					government_allows = administrative
					top_liege = involved_activity.activity_host
				}
				change_influence = medium_influence_gain
			}
			else = {
				add_prestige = medium_prestige_gain
			}
		}
		coronation_offer_support = {
			reverse_add_opinion = {
				target = scope:host
				modifier = thankful_opinion
				opinion = 30
				years = 10
			}
			custom_tooltip = {
				text = coronation_tt_positive_medium
				scope:activity = { activity_special_type_progression_medium = yes }
			}
			coronation_add_magnificence_log_effect = {
        	    VALUE = flag:positive
        	    CHAR = root
        	}
		}
		coronation_advocate_domain = {
			capital_county = {
				add_county_modifier = {
					modifier = ach_liege_subsidies_modifier
					years = 10
				}
			}
		}
		coronation_profess_rights = {
			if = {
				limit = {
					can_add_hook = {
						target = scope:host
						type = favor_hook
					}
				}
				random = {
					chance = 33
					add_hook = {
						target = scope:host
						type = favor_hook
					}
				}
			}
			else = {
				reverse_add_opinion = {
					target = scope:host
					modifier = thankful_opinion
					opinion = 10
					years = 10
				}
				if = {
					limit = {
						has_lifestyle = stewardship_lifestyle
					}
					add_stewardship_lifestyle_xp = minor_lifestyle_xp
				}
				else = {
					add_diplomacy_lifestyle_xp = minor_lifestyle_xp
				}
			}
		}
		coronation_seize_advantages = {
			if = {
				limit = {
					government_allows = administrative
					top_liege = involved_activity.activity_host
				}
				change_influence = medium_influence_gain
			}
			else = {
				add_prestige = medium_prestige_gain
			}
		}
	}
	if = {
		limit = {
			NOT = {
				has_activity_intent = coronation_offer_support
			}
		}
		reverse_add_opinion = {
			modifier = grateful_opinion
			target = scope:host
			opinion = 15
		}
	}
	
	custom_tooltip = ach_coronation.0016.reward.tt
}

ach_coronation.0016 = {
	type = activity_event
	title = ach_coronation.0016.t
	desc = ach_coronation.0016.desc
	theme = coronation_activity

	left_portrait = {
		character = root
		animation = obsequious_bow
	}

	right_portrait = {
		character = scope:host
		animation = interested
	}

	artifact = {
		trigger = { exists = scope:gifted_artifact }
		target = scope:gifted_artifact
		position = lower_center_portrait
	}

	cooldown = { years = 1 }

	override_background = { reference = throne_room }

	trigger = {
		is_physically_able = yes
		involved_activity = {
			activity_host = {
				this != root
				is_ai = yes
			}
			any_attending_character = {
				ach_coronation_0016_can_be_swayed_trigger = yes
				this != root
			}
		}

		NOR = {
			trigger_if = {
				limit = {
					is_ai = yes
				}
				is_in_guest_subset = { name = detractor }
			}
			trigger_else = {
				involved_activity = {
					is_target_in_variable_list = {
						name = major_detractor
						target = root 
					}
				}
			}
			has_activity_intent = coronation_disrupt_loyalists
		}
	}

	immediate = {
		involved_activity = {
			activity_host = { save_scope_as = host }
			ordered_attending_character = {
				limit = {
					ach_coronation_0016_can_be_swayed_trigger = yes
					this != root
				}
				order_by = {
					value = 0
					add = "opinion(root)"
					subtract = "opinion(scope:host)"
					if = { # Prefer powerful vassals
						limit = { is_powerful_vassal = no }
						multiply = 0.75
					}
				}
				save_scope_as = detractor
			}
		}

		if = {
			limit = {
				any_character_artifact = {
					ach_coronation_0016_eligible_artifact = yes
				}
			}
			ordered_character_artifact = { # Try and give away the worst one first
				order_by = {
					value = 1
					if = {
						limit = {
							is_equipped = no
						}
						add = 100
					}
					if = {
						limit = {
							rarity = common
						}
						add = 15
					}
					if = {
						limit = {
							rarity = masterwork
						}
						add = 10
					}
					if = {
						limit = {
							rarity = famed
						}
						add = 5
					}
					if = {
						limit = {
							NOT = { creator = root }
						}
						add = 10
					}
				}
				save_scope_as = gifted_artifact
			}
		}
	}
	
	option = { # A: Martial - Promise Troops
		name = ach_coronation.0016.a.martial
		trigger = {
			highest_skill = martial
			martial >= good_skill_level
		}

		scope:host = {
			if = {
				limit = {
					root = { government_has_flag = government_is_nomadic }
				}
				spawn_army = {
					name = event_troop_default_name
					location = capital_province
					inheritable = no
					men_at_arms = {
						type = nomadic_riders
						stacks = {
							value = gok_nomadic_riders_small_value
							divide = 6
						}
					}
					men_at_arms = {
						type = steppe_raiders
						stacks = 2
					}
				}
			}
			else = {
				spawn_army = {
					name = event_troop_default_name
					location = capital_province
					inheritable = no
					levies = {
						add = max_military_strength
						multiply = 0.20
					}
					men_at_arms = {
						type = pikemen_unit
						stacks = 2
					}
				}
			}
		}
		if = {
			limit = {
				government_has_flag = government_is_nomadic
			}
			add_character_modifier = {
				modifier = ach_coronation_expended_resources_martial_nomad_modifier
				years = 5
			}
		}
		else = {
			add_character_modifier = {
				modifier = ach_coronation_expended_resources_martial_modifier
				years = 5
			}
		}
		add_martial_lifestyle_xp = minor_lifestyle_xp
		
		liege_reward_effect = yes

		ai_chance = {
			base = 100
		}
	}
	
	option = { # A: Stewardship - Organize Donations
		name = ach_coronation.0016.a.stewardship
		trigger = {
			highest_skill = stewardship
			stewardship >= good_skill_level
		}
		
		if = {
			limit = { has_trait = greedy }
			# Custom tooltip since flavor text isn't triggerable
			custom_tooltip = ach_coronation.0016.a.stewardship.greedy.tt
		}
		else = {
			pay_short_term_gold = {
				target = scope:host
				gold = tiny_gold_value
			}
		}
		involved_activity = {
			every_attending_character = {
				limit = {
					is_ai = yes
					this != root
					is_vassal_or_below_of = scope:host
					NOT = { has_trait = disloyal }
				}
				custom = every_non_disloyal_vassal_attendee_tt
				pay_short_term_gold = {
					target = scope:host
					gold = tiny_gold_value
				}
				add_opinion = {
					target = root
					modifier = annoyed_opinion
					opinion = -10
				}
			}
		}
		liege_reward_effect = yes

		ai_chance = {
			base = 100
		}
	}

	option = { # A: Diplomacy - Turn a Detractor
		name = ach_coronation.0016.a.diplomacy
		trigger = {
			highest_skill = diplomacy
			diplomacy >= good_skill_level
			exists = scope:detractor
		}

		involved_activity = {
			every_attending_character = {
				custom = every_detractor_tt
				limit = { is_in_guest_subset = { name = detractor } }
				add_opinion = {
					target = root
					modifier = annoyed_opinion
					opinion = -15
				}
			}
		}
		coronation_move_towards_supporter_effect = { CHARACTER = scope:detractor }
		scope:detractor = {
			add_opinion = {
				target = scope:host
				modifier = impressed_opinion
				opinion = 20
			}
		}
		liege_reward_effect = yes
	}
	
	option = { # A: Intrigue - Offer Spies
		name = ach_coronation.0016.a.intrigue
		trigger = {
			highest_skill = intrigue
			intrigue >= good_skill_level
		}

		scope:host = {
			add_character_modifier = {
				modifier = ach_coronation_little_birds_modifier
				years = 5
			}
			if = {
				limit = { has_trait = paranoid }
				add_stress = medium_stress_loss
			}
		}
		add_character_modifier = {
			modifier = ach_coronation_expended_resources_intrigue_modifier
			years = 5
		}
		liege_reward_effect = yes
		add_intrigue_lifestyle_xp = minor_lifestyle_xp

		ai_chance = {
			base = 100
			modifier = {
				has_trait = schemer
				add = 25
			}
		}
	}
	
	option = { # A: Learning - Appeal to Church
		name = ach_coronation.0016.a.learning
		trigger = {
			highest_skill = learning
			learning >= good_skill_level
		}

		scope:host = {
			add_character_modifier = {
				modifier = ach_coronation_theocratic_allies_modifier
				years = 5
			}
		}
		liege_reward_effect = yes
		add_piety = medium_piety_loss

		ai_chance = {
			base = 100
			modifier = {
				has_trait = zealous
				add = 50
			}
		}
	}
	
	option = { # A: Fallback - Become Loyal and give a hook
		name = ach_coronation.0016.a.loyal

		trigger = {
			NOR = {
				martial >= good_skill_level
				stewardship >= good_skill_level
				diplomacy >= good_skill_level
				intrigue >= good_skill_level
				learning >= good_skill_level
			}
			NOR = {
				has_trait = loyal
				has_trait = disloyal
			}
		}

		add_trait = loyal
		scope:host = {	
			add_hook = {
				type = loyalty_hook
				target = root
			}
		}
		liege_reward_effect = yes

		ai_chance = {
			base = 100
			modifier = {
				has_trait = ambitious
				add = 75
			}
			modifier = {
				has_trait = content
				add = 75
			}
			modifier = {
				has_trait = lazy
				add = 50
			}
		}
		stress_impact = {
			base = minor_stress_impact_gain
			ambitious = medium_stress_impact_gain
			content = medium_stress_impact_loss
			lazy = medium_stress_impact_loss
		}
	}
	option = { # B: Host has Impress Attendees
		name = ach_coronation.0016.b.impress_attendees
		name = {
			trigger = {
				OR = {
					has_trait = lifestyle_poet
					has_court_position = court_musician_court_position
					has_court_position = court_poet_court_position
				}
			}
			text = ach_coronation.0016.b.impress_attendees.writer
		}
		trigger = {
			scope:host = { has_activity_intent = coronation_impress_attendees }
			prestige_level >= high_prestige_level
		}
		involved_activity = {
			every_attending_character = {
				custom = activity_every_attendee_tt
				add_opinion = {
					target = scope:host
					modifier = impressed_opinion
					opinion = 10
				}
			}
		}
		reason = prestige_level
		reason = host_activity_intent

		liege_reward_effect = yes
		if = {
			limit = {
				NOT = {
					has_activity_intent = coronation_seize_advantages
				}
			}
			add_prestige = medium_prestige_loss
		}
		else = {
			add_stress = minor_stress_gain
		}
	}
	
	option = { # B: Host has Embrace Supporters
		name = ach_coronation.0016.b.bonds
		trigger = {
			scope:host = { has_activity_intent = coronation_embrace_supporters }
			OR = {
				diplomacy > medium_skill_rating
				has_trait = gregarious
			}
			is_in_guest_subset = { name = supporter }
		}
		reason = host_activity_intent
		scope:host = {
			add_prestige = minor_prestige_gain
		}
		liege_reward_effect = yes
		involved_activity = {
			every_attending_character = {
				custom =  every_supporter_activity
				limit = { is_in_guest_subset = { name = supporter } }
				add_prestige = minor_prestige_gain
			}
		}
		if = {
			limit = {
				NOT = {
					has_activity_intent = coronation_seize_advantages
				}
			}
			add_prestige = medium_prestige_loss
		}
		else = {
			add_stress = minor_stress_gain
		}
	}
	
	option = { # C: Give artifact
		name = ach_coronation.0016.c.artifact
		trigger = { exists = scope:gifted_artifact }

		scope:gifted_artifact = {
			set_variable = {
				name = suppress_artifact_notifications
				value = yes
				days = 1
			}
			set_variable = { 
				name = gifted_artifact 
				value = yes
				days = 1825
			}
			set_owner = {
				target = scope:host
				history = {
					location = root.location
					actor = root
					recipient = scope:host
					type = given
				}
			}
		}
		liege_reward_effect = yes
		if = {
			limit = {
				scope:gifted_artifact = {
					OR = {
						rarity = illustrious
						rarity = famed
					}
				}
			}
			dynasty ?= {
				add_dynasty_prestige = minor_dynasty_prestige_gain
			}
		}
		else_if = {
			limit = {
				scope:gifted_artifact = {
					rarity = masterwork
				}
			}
			dynasty ?= {
				add_dynasty_prestige = miniscule_dynasty_prestige_gain
			}
		}
		

		ai_chance = {
			base = 100
			modifier = {
				has_trait = greedy
				add = -25
			}
			modifier = {
				has_trait = avaricious
				add = -25
			}
			modifier = {
				has_trait = disloyal
				add = -50
			}
			modifier = {
				has_trait = loyal
				add = 50
			}
		}
		stress_impact = {
			greedy = minor_stress_impact_gain
			avaricious = minor_stress_impact_gain
			disloyal = medium_stress_impact_gain
			loyal = medium_stress_impact_loss
		}
	}
	
	option = { # C: Fallback: Give gold
		name = ach_coronation.0016.c.gold

		trigger = {
			NOT = { exists = scope:gifted_artifact }
		}

		pay_short_term_gold = {
			gold = medium_gold_value
			target = scope:host
		}
		liege_reward_effect = yes

		ai_chance = {
			base = 100
			# More likely if you actually have a chance
			modifier = {
				has_trait = avaricious
				add = -50
			}
			modifier = {
				has_trait = generous
				add = 25
			}
			modifier = {
				has_trait = greedy
				add = -25
			}
			modifier = {
				has_trait = loyal
				add = 50
			}
			modifier = {
				has_trait = disloyal
				add = -50
			}
			modifier = {
				has_trait = improvident
				add = 50
			}
		}
		stress_impact = {
			generous = minor_stress_impact_loss
			greedy = minor_stress_impact_gain
			avaricious = minor_stress_impact_gain
			improvident = medium_stress_impact_loss
			loyal = medium_stress_impact_loss
			disloyal = medium_stress_impact_gain
		}
	}
	
	option = { # D: I'm good, thanks
		name = {
			trigger = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:host } }
			text = ach_coronation.0016.d.hate
		}
		name = ach_coronation.0016.d

		if = {
			limit = {
				has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:host }
			}
			reverse_add_opinion = {
				target = scope:host
				modifier = insulted_opinion 
				opinion = -5
			}
		}

		ai_chance = {
			base = 100
			# More likely if you actually have a chance
			modifier = {
				has_trait = greedy
				add = 25
			}
			modifier = {
				has_trait = disloyal
				add = 25
			}
			modifier = {
				has_trait = loyal
				add = -25
			}
		}
		stress_impact = {
			greedy = minor_stress_impact_loss
			disloyal = minor_stress_impact_loss
			loyal = minor_stress_impact_gain
		}
	}
}

######################
# Guest: faith_warrior reacts to the coronation of a non-crusader_king
# by Jay Zaborowski
# 0017
scripted_trigger ach_coronation_0017_crusader_trigger = {
	OR = {
		has_trait = faith_warrior
		has_trait = crusader_king
	}
}

ach_coronation.0017 = {
	type = activity_event
	title = ach_coronation.0017.t
	desc = {
		desc = ach_coronation.0017.desc
		first_valid = {
			triggered_desc = { # You're the host and not in immediate danger
				trigger = {
					scope:guest = { ach_coronation_0017_crusader_trigger = yes }
				}
				desc = ach_coronation.0017.ending.crusader
			}
			desc = ach_coronation.0017.ending.civilian
		}
	}

	left_portrait = {
		character = root
		animation = dismissal
		camera = camera_event_group_talking_left_left
	}

	center_portrait = {
		character = scope:guest
		animation = interested_left
		camera = camera_event_group_talking_left_center
	}

	right_portrait = {
		character = scope:host
		animation = prayer
		camera = camera_event_kneeling
	}

	theme = coronation_activity

	cooldown = { years = 1 }

	override_background = {
		reference = temple
	}

	trigger = {
		# Crusades are a thing
		religion = {
			exists = var:variable_ghw_unlocked
		}
		# You're some brand of crusader
		ach_coronation_0017_crusader_trigger = yes
		involved_activity = {
			# This beta-ruler dork is not
			activity_host = {
				is_ai = yes
				religion = root.religion
				# Can be a Faith Warrior but isn't
				can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this }
				ach_coronation_0017_crusader_trigger = no
				# And is of fighting age
				is_adult = yes
				is_old_character = no
			}
			# Make sure there's actually someone to talk to
			any_attending_character = {
				is_available_in_activity_trigger = yes
				this != root
				this != involved_activity.activity_host
			}
		}
	}

	immediate = {
		involved_activity = {
			activity_host = { save_scope_as = host }
			random_attending_character = {
				limit = {
					is_available_in_activity_trigger = yes
					this != root
					this != scope:host
				}
				weight = {
					base = 1
					# Prefer interesting characters
					modifier = {
						add = 10
						is_of_major_interest_to_root_trigger = yes
					}
					modifier = {
						add = 5
						is_of_minor_interest_to_root_trigger = yes
					}
					# Prefer pot-stirrers
					modifier = {
						OR = {
							has_trait = deceitful
							has_trait = education_intrigue
							has_trait = schemer
							has_activity_intent = coronation_disrupt_loyalists
							AND = {
								is_ai = yes
								is_in_guest_subset = { name = detractor }
							}
						}
						add = 10
					}
					# And someone who's willing to talk to you
					opinion_modifier = {
						opinion_target = root
						multiplier = 0.5
					}
					# And who's willing to talk trash about the Host
					opinion_modifier = {
						opinion_target = scope:host
						multiplier = -1
					}
					# And who isn't also a crusader
					modifier = {
						factor = 0.5
						ach_coronation_0017_crusader_trigger = yes
					}
				}
				save_scope_as = guest
			}
		}
	}

	option = { # Offer Support - You give an endorsement
		name = {
			trigger = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } }
			text = ach_coronation.0017.a.christian
		}
		name = ach_coronation.0017.a

		trigger = {
			has_activity_intent = coronation_offer_support
			prestige_level >= 3
		}
		show_as_unavailable = { has_activity_intent = coronation_offer_support }
		reason = activity_intent
		add_internal_flag = special

		add_prestige = medium_prestige_gain # Good publicity
		add_piety = medium_piety_loss

		scope:host = {
			add_opinion = {
				target = root
				modifier = appreciation_opinion
				opinion = 20
			}
			if = {
				limit = {
					opinion = {
						target = root
						value > 20
					}
					OR = {
						is_ai = yes
						AND = {
							root = { is_ai = no }
							is_ai = no
						}
					}
				}
				progress_towards_friend_effect = {
					REASON = friend_crusader_endorsement
					CHARACTER = root
					OPINION = 0
				}
			}
			else = {
				add_opinion = {
					target = root
					modifier = friendliness_opinion
					opinion = 20
				}
			}
			add_prestige = major_prestige_gain
			add_piety = medium_piety_gain
		}

		involved_activity = {
			every_attending_character = {
				limit = {
					is_vassal_of = scope:host
					has_vassal_stance = zealot
					# They don't know what it's really like out there, man
					ach_coronation_0017_crusader_trigger = no
				}
				custom = every_zealot_vassal_guest_tt
				add_opinion = {
					target = scope:host
					modifier = crusader_endorsement_opinion
				}
			}
			every_attending_character = {
				limit = {
					# Thinks this is sort of denigrating
					ach_coronation_0017_crusader_trigger = yes
					this != root
				}
				custom = every_faith_warrior_guest_tt
				add_opinion = {
					target = root
					modifier = crusader_sellout_opinion
				}
			}
		}

		ai_chance = {
			base = 200 # Offer Support means they probably want to do this
			opinion_modifier = {
				opinion_target = scope:host
			}
			# Cynical character's are less likely to do this
			modifier = {
				has_trait = cynical
				factor = {
					value = 0.5 # But hey, politics
					# But some still won't misrepresent themselves
					if = {
						limit = { has_trait = honest }
						add = -0.5
					}
					# "What do you mean I was in it for the money? Me?"
					if = {
						limit = {
							OR = {
								has_trait = deceitful
								has_trait = schemer
							}
						}
						add = 0.5
					}
				}
			}
		}
	}

	option = { # Disrupt Loyalists - You publicly shame HerHim
		name = ach_coronation.0017.b

		trigger = {
			piety_level >= scope:host.piety_level
			has_activity_intent = coronation_disrupt_loyalists
		}
		show_as_unavailable = { has_activity_intent = coronation_disrupt_loyalists }
		reason = activity_intent
		custom_tooltip = available_because_piety_vs_host_tt

		add_prestige = medium_prestige_gain
		add_piety = major_piety_gain

		involved_activity = {
			every_attending_character = {
				limit = {
					is_vassal_of = scope:host
					has_vassal_stance = zealot
				}
				custom = every_zealot_vassal_guest_tt
				add_opinion = {
					target = scope:host
					modifier = impious_opinion 
					opinion = -15
				}
			}
		}
		scope:host = {
			add_opinion = {
				target = root
				modifier = shamed_me_opinion 
				opinion = -25
			}
			add_prestige = medium_prestige_loss
			add_piety = medium_piety_loss
		}

		ai_chance = {
			base = 0
			opinion_modifier = {
				opinion_target = scope:host
				multiplier = -1
			}
			# Far more likely if Arrogant or Wrathful and they dislike the person
			modifier = {
				OR = {
					has_trait = arrogant
					has_trait = wrathful
				}
				opinion = {
					target = root
					value < 0
				}
				factor = 2
			}
			# Opinion matters more than these but might tip the scales
			modifier = {
				has_trait = zealous
				add = 15
			}
			# Far less likely in general
			modifier = {
				has_trait = shy
				factor = 0.5
			}
			modifier = {
				has_trait = humble
				factor = 0.5
			}
			modifier = {
				has_trait = calm
				factor = 0.5
			}
			modifier = {
				has_trait = compassionate
				factor = 0.5
			}
			# Cynical characters might just refuse to even think of it
			modifier = {
				has_trait = cynical
				factor = {
					value = 0 # Would never
					# Would consider lying for clout
					if = {
						limit = {
							intrigue >= low_skill_rating
							NOT = { has_trait = honest }
						}
						add = 0.5
					}
					# Would actually *looove* to lie about, like, anything really
					if = {
						limit = {
							OR = {
								has_trait = deceitful
								has_trait = schemer
							}
							# But probably won't if they're chill
							opinion = {
								target = root
								value > low_positive_opinion
							}
						}
						multiply = 4
					}
				}
			}
		}
		stress_impact = {
			# Doesn't care that much, but can be doing this cynically
			cynical = minor_stress_impact_gain
			# Doesn't like the attention
			shy = minor_stress_impact_gain
			humble = medium_stress_impact_gain
			# Conflict-averse
			calm = minor_stress_impact_gain
			compassionate = medium_stress_impact_gain
			# Not so much
			arrogant = medium_stress_impact_loss
			wrathful = medium_stress_impact_loss
			zealous = minor_stress_impact_loss
		}
	}

	option = { # Bah, I shall focus on prayer
		name = ach_coronation.0017.c

		add_piety = medium_piety_gain
		add_character_modifier = {
			modifier = ach_focusing_on_prayer_modifier
			years = 5
		}
		stress_impact = {
			# Is annoyed by it
			base = medium_stress_impact_gain
			# Does *not* want to pray, actually
			cynical = major_stress_impact_gain
			# Is *very* annoyed by it
			arrogant = minor_stress_impact_gain
			# But it's not all bad
			humble = minor_stress_impact_loss # Because I don't care *that* much
			zealous = minor_stress_impact_loss # Because I love prayer
			shy = minor_stress_impact_loss # Because if I pray you'll shut up
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = arrogant
				factor = 0.5
			}
			modifier = {
				has_trait = humble
				factor = 2
			}
			modifier = {
				has_trait = zealous
				factor = 2
			}
			modifier = {
				has_trait = shy
				factor = 2
			}
			modifier = {
				has_trait = cynical
				factor = 0
			}
		}
	}

	option = { # It's not a competition, fool!
		name = ach_coronation.0017.d
		name = {
			trigger = {
				OR = {
					has_trait = cynical
					has_trait = humble
					has_trait = shy
				}
				NOT = { has_trait = arrogant }
			}
			text = ach_coronation.0017.d.cynical # Literally who cares
		}

		# Not making a big deal of it is respected
		add_prestige = minor_prestige_gain
		add_piety = minor_piety_gain
		scope:guest = {
			add_opinion = {
				target = root
				modifier = respect_opinion 
				opinion = 10
			}
		}

		stress_impact = {
			# No Zealot impact because the player can interpret this either way
			arrogant = medium_stress_impact_gain # You *do* deserve it more
			humble = medium_stress_impact_loss
			shy = medium_stress_impact_loss # Actually it's sort of nice
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = arrogant
				factor = 0.5
			}
			modifier = {
				has_trait = humble
				factor = 2
			}
			modifier = {
				has_trait = shy
				factor = 2
			}
		}
	}
}

######################
# Guest: Close family member of Host sees opportunity
# 0018
scripted_trigger ach_coronation_0018_eligible_family_member_trigger = {
	#You can't just give stress and stuff to players
	is_ai = yes
	is_available_in_activity_trigger = yes
	this != scope:host
	is_close_or_extended_family_of = scope:host
	NOT = { has_trait = disloyal }
	trigger_if = { # For ach_coronation.0020
		limit = { is_ai = yes }
		opinion = {
			target = scope:host
			value >= low_positive_opinion
		}
	}
}

scripted_trigger ach_coronation_0018_grantable_title_trigger = {
	tier = tier_county
	this != scope:host.capital_county
}

scripted_effect ach_coronation_0018_choose_title_effect = {
	scope:host = {
		random_held_title = {
			limit = { ach_coronation_0018_grantable_title_trigger = yes }
			weight = {
				base = 100
				# Prefer worse titles
				modifier = {
					add = {
						value = development_level
						multiply = -1
					}
				}
				# Even more if it's some backwards other-language hellhole
				modifier = {
					culture != scope:host.culture
					factor = 2
				}
				modifier = {
					faith != scope:host.faith
					factor = 2
				}
			}
			save_scope_as = grantable_title
		}
	}
}

ach_coronation.0018 = {
	type = activity_event
	title = ach_coronation.0018.t
	desc = {
		desc = ach_coronation.0018.desc
		first_valid = {
			triggered_desc = { # There's a Seneschal
				trigger = {
					scope:servant_boss = { has_court_position = seneschal_court_position }
				}
				desc = ach_coronation.0018.desc.seneschal
			}
			triggered_desc = { # There's a Steward
				trigger = {
					scope:servant_boss = { has_council_position = councillor_steward }
				}
				desc = ach_coronation.0018.desc.steward
			}
			triggered_desc = { # There is no Seneschal or Steward
				trigger = { NOT = { exists = scope:servant_boss } }
				desc = ach_coronation.0018.desc.fallback
			}
		}
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:servant_boss }
				desc = ach_coronation.0018.desc.ending.servant_boss
			}
			desc = ach_coronation.0018.desc.ending.no_servant_boss
		}
	}

	left_portrait = {
		character = root
		animation = thinking
		camera = camera_event_left
	}

	center_portrait = {
		character = scope:servant
		triggered_animation = {
			trigger = { exists = scope:servant_boss }
			animation = throne_room_messenger_3
		}
		animation = stress
		camera = camera_event_right_pointing_left_fov50
		hide_info = yes
	}

	right_portrait = {
		character = scope:servant_boss
		animation = stress
		camera = camera_event_very_right_fov50
	}

	lower_left_portrait = {
		character = scope:host
	}

	weight_multiplier = {
		base = 1
		# Far more likely if there is no Seneschal
		modifier = {
			NOT = { exists = court_position:seneschal_court_position }
			factor = 3
		}
		# If there is a Seneschal than low Aptitude raises likeliness
		activity_court_position_aptitude_negative_modifier = { LIEGE = root POS = seneschal }
	}
	
	theme = coronation_activity

	cooldown = { years = 1 }
	override_background = {
		trigger = {
			#Do not want generic courtyard calling up Constantinople for this one
			location.county = title:c_byzantion
		}
		reference = bp2_courtyard
	}
	override_background = {
		reference = courtyard
	}

	override_effect_2d = {
		trigger = { exists = scope:rain_day }
		reference = rain
	}

	trigger = {
		ach_coronation_0018_eligible_family_member_trigger = yes
		coronation_hostile_to_host_trigger = no
		involved_activity = {
			activity_host = {
				# Don't potentially screw over a player Seneschal
				trigger_if = {
					limit = { exists = court_position:seneschal_court_position }
					court_position:seneschal_court_position = { is_ai = yes }
				}
				# If we need a Steward but they're absent, make sure they're not a player so we can teleport them
				trigger_else = {
					cp:councillor_steward ?= { is_ai = yes }
				}
			}
		}
	}

	immediate = {
		# For the event art
		create_character = {
			save_scope_as = servant
			employer = involved_activity.activity_host
			template = servant_character
			gender_female_chance = root_faith_dominant_gender_adjusted_female_chance
		}
		random_rain_snow_chance_effect = yes

		involved_activity = {
			hidden_effect = {
				if = { # Grab a secret for the opt-out option
					limit = {
						any_attending_character = {
							this != root
							is_available_in_activity_trigger = yes
							any_secret = {
								NOT = { is_known_by = root }
							}
						}
					}
					random_attending_character = {
						limit = {
							this != root
							is_available_in_activity_trigger = yes
							any_secret = {
								NOT = { is_known_by = root }
							}
						}
						save_scope_as = secret_holder
						random_secret = {
							limit = { NOT = { is_known_by = root } }
							save_scope_as = secret_to_reveal
						}
					}
				}
				else = { # Create one if you can't find one
					random_attending_character = {
						limit = {
							this != root
							is_available_in_activity_trigger = yes
						}

						weight = {
							base = 1
							# Prefer interesting characters (but not by too much)
							modifier = {
								add = 4
								is_of_major_interest_to_root_trigger = yes
							}
							modifier = {
								add = 2
								is_of_minor_interest_to_root_trigger = yes
							}
						}

						give_random_likely_secret_effect = yes
						save_scope_as = secret_holder
						random_secret = {
							limit = { NOT = { is_known_by = root } }
							save_scope_as = secret_to_reveal
						}
					}
				}
				activity_host = {
					save_scope_as = host
					if = { # If the Seneschal exists and isn't AI then they're the Servant Boss
						limit = {
							court_position:seneschal_court_position ?= { is_ai = yes }
						}
						court_position:seneschal_court_position = { save_scope_as = servant_boss }
					}
					else = { # Else it's the Steward
						cp:councillor_steward = {
							save_scope_as = servant_boss
						}
					}
				}
				scope:servant_boss = {
					if = { # Teleport them if they're not at the coronation
						limit = { location != scope:host.involved_activity.activity_location }
						set_location = { location = scope:host.involved_activity.activity_location }
					}
					if = { # And add them to the activity if they're not in it
						limit = { can_join_activity = scope:host.involved_activity }
						add_to_activity_without_travel = scope:host.involved_activity
					}
				}
			}
		}
	}

	option = { # A: Seize Advantages | Offer Support: Take charge of the servants
		name = ach_coronation.0018.a.intent
		reason = activity_intent
		add_internal_flag = special

		trigger = {
			OR = {
				has_activity_intent = coronation_seize_advantages
				has_activity_intent = coronation_offer_support
			}
		}

		if = {
			limit = { has_trait = diligent }
			custom_tooltip = because_you_have_diligent_tt
		}
		else = {
			add_character_modifier = {
				modifier = exhausted_modifier
				years = 10
			}
		}

		duel = {
			skill = stewardship
			value = average_skill_rating
			8 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 2
				}
				desc = ach_coronation.0018.a.tt_success
				
				custom_tooltip = ach_can_refuse_reward

				if = { # Offer a title
					limit = { # Host has a title to give
						scope:host = {
							any_held_title = { ach_coronation_0018_grantable_title_trigger = yes }
							# And doesn't hate you
							NOR = {
								opinion = {
									target = scope:host
									value <= medium_negative_opinion
								}
								has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
							}
						}
						# Host can actually give you the title
						can_be_granted_titles_by = { RULER = scope:host }
						# Host isn't giving a vassal more land just for being mildly helpful
						is_landed = no
					}

					custom_tooltip = ach_coronation.0018.a.tt.vassal

					hidden_effect = {
						save_scope_value_as = {
							name = reward_type
							value = flag:title
						}
					}
				}
				else_if = { # Offer the Seneschal spot
					limit = {
						scope:host = {
							can_appoint_char_to_court_position = {
								CHAR = scope:host
								COURT_POS = seneschal_court_position
							}
						}
					}

					show_as_tooltip = {
						court_position_grant_effect = {
							POS = seneschal
							EMPLOYER = scope:host
							CANDIDATE = root
						}
					}

					hidden_effect = {
						save_scope_value_as = {
							name = reward_type
							value = flag:court_position
						}
					}
				}
				else = { # Give public praise
					show_as_tooltip = {
						add_prestige = medium_prestige_gain
						
						involved_activity = {
							every_attending_character = {
								limit = {
									this != root
									this != scope:host
								}
								custom = every_guest_scope_tt
								add_opinion = {
									target = root
									modifier = impressed_opinion
									opinion = 10
								}
							}
						}
					}

					hidden_effect = {
						save_scope_value_as = {
							name = reward_type
							value = flag:praise
						}
					}
				}

				send_interface_toast = {
					title = ach_coronation.0018.a.tt_success
					reverse_add_opinion = {
						modifier = helpful_opinion
						target = scope:host
						opinion = 15
					}
					hidden_effect = {
						# Player gets a chance to refuse the reward
						trigger_event = ach_coronation.0019
					}
				}
			}
			12 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -2
					min = -9
				}
				desc = ach_coronation.0018.a.tt_failure
				send_interface_toast = {
					title = ach_coronation.0018.a.tt_failure
					stress_impact = {   
						base = medium_stress_impact_gain
						arrogant = minor_stress_impact_gain
					}
				}
			}
		}
		stress_impact = {
			base = minor_stress_impact_gain
			arrogant = minor_stress_impact_gain
			lazy = medium_stress_impact_gain
			diligent = medium_stress_impact_loss
		}

		ai_chance = {
			base = 150
			modifier = {
				has_trait = diligent
				add = 100
			}
			modifier = {
				has_trait = lazy
				add = -50
			}
			modifier = {
				has_trait = arrogant
				add = -25
			}
		}
	}

	option = { # A: Try to help with preparations
		name = ach_coronation.0018.a
		skill = stewardship

		highlight_portrait = scope:servant_boss

		trigger = {
			NOR = {
				has_activity_intent = coronation_seize_advantages
				has_activity_intent = coronation_offer_support
			}
		}

		if = {
			limit = {
				NOT = { has_trait = diligent }
			}
			add_character_modifier = {
				modifier = exhausted_modifier
				years = 10
			}
		}

		# Does servant_boss	feel like you did them a solid or tried to steal their job?
		if = {
			limit = {
				exists = scope:servant_boss
			}
			if = {
				limit = { # You're diplomatic and smooth things over
					OR = {
						has_trait = gregarious
						has_trait = diplomat
					}
				}
				custom_tooltip = ach_coronation.0018.diplomacy_trait.tt
				send_interface_toast = {
					title = ach_coronation.0018.d.pleased_servant_boss
					left_icon = scope:servant_boss
					reverse_add_opinion = {
						modifier = thankful_opinion
						target = scope:servant_boss
						opinion = 25
					}
				}
			}
			else_if = {
				limit = { # They're not the type of person to perceive this as a slight
					scope:servant_boss = {
						NOR = {
							has_trait = arrogant
							has_trait = ambitious
							has_trait = diligent
							has_trait = vengeful
						}
					}
				}
				send_interface_toast = {
					title = ach_coronation.0018.d.pleased_servant_boss
					left_icon = scope:servant_boss
					reverse_add_opinion = {
						modifier = thankful_opinion
						target = scope:servant_boss
						opinion = 20
					}
				}
			}
			else = { # Else they get annoyed
				custom_tooltip = ach_coronation.0018.d.annoyed_servant_boss
				send_interface_toast = {
					title = ach_coronation.0018.d.annoyed_servant_boss
					left_icon = scope:servant_boss
					reverse_add_opinion = {
						modifier = annoyed_opinion
						target = scope:servant_boss
						opinion = -20
					}
				}
			}
		}

		duel = {
			skill = stewardship
			value = average_skill_rating
			8 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 2
				}
				desc = ach_coronation.0018.a.tt_success
				send_interface_toast = {
					title = ach_coronation.0018.a.tt_success
					scope:host = {
						add_opinion = {
							modifier = helpful_opinion
							target = root
							opinion = 15
						}
					}
				}
			}
			12 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -2
					min = -9
				}
				desc = ach_coronation.0018.a.tt_failure
				send_interface_toast = {
					title = ach_coronation.0018.a.tt_failure
					stress_impact = {
						base = minor_stress_impact_gain
						arrogant = minor_stress_impact_gain
					}
				}
			}
		}

		stress_impact = {
			# Work is hard
			base = minor_stress_impact_gain
			# But not for some
			diligent = medium_stress_impact_loss
			# And for others it's worth it
			ambitious = minor_stress_impact_loss
			# Doesn't want the clout
			content = minor_stress_impact_gain
			# This sounds a lot like labor
			arrogant = minor_stress_impact_gain
			lazy = medium_stress_impact_gain
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = diligent
				add = 25
			}
			modifier = {
				has_trait = ambitious
				add = 25
			}
			modifier = {
				has_trait = content
				add = -25
			}
			modifier = {
				has_trait = arrogant
				add = -25
			}
			modifier = {
				has_trait = lazy
				add = -50
			}
		}
	}

	option = { # B: Gossip with the servants instead
		name = ach_coronation.0018.b
		skill = intrigue

		highlight_portrait = scope:servant

		duel = {
			skill = intrigue
			value = average_skill_rating
			75 = {
				desc = ach_coronation.0018.b.tt.gossip_with_servants
				compare_modifier = {
					value = scope:duel_value
					multiplier = 5
				}
				show_chance = no
				send_interface_toast = {
					title = ach_coronation.0018.b.tt.gossip_with_servants
					left_icon = root
					add_character_modifier = {
						modifier = ach_coronation_gossips_with_servants_modifier
						years = 5
					}
				}
			}
			25 = {	
				compare_modifier = {
					value = scope:duel_value
					multiplier = -5
				}
				min = 10
				show_chance = no
				desc = ach_coronation.0018.b.tt.secret_unknown_desc
				custom_tooltip = ach_coronation.0018.b.tt.secret_unknown
				hidden_effect = {
					send_interface_toast = {
						title = ach_coronation.0018.b.tt.secret
						left_icon = root
						scope:secret_to_reveal = {
							expose_secret = root
						}
					}
				}
			}
		}
		stress_impact = {
			gregarious = minor_stress_impact_loss
			# Sitting around and talking sucks, actually
			impatient = minor_stress_impact_gain
			shy = minor_stress_impact_gain
			diligent = minor_stress_impact_gain
			# Doesn't want to talk to poors
			arrogant = medium_stress_impact_gain
			# Looooves gossip
			schemer = medium_stress_impact_loss
			deceitful = medium_stress_impact_loss
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = lazy
				add = 25
			}
			modifier = {
				has_trait = gregarious
				add = 25
			}
			modifier = {
				has_trait = impatient
				factor = 0.5
			}
			modifier = {
				has_trait = diligent
				NOR = { # Only wasting time if gossiping isn't your whole deal
					has_trait = education_intrigue
					has_trait = deceitful
					has_trait = schemer
				}
				factor = 0.5
			}
			modifier = {
				has_trait = shy
				factor = 0.5
			}
			modifier = {
				has_trait = arrogant
				factor = 0.5
			}
			modifier = {
				OR = {
					has_trait = education_intrigue
					has_trait = deceitful
					has_trait = schemer
				}
				factor = 2
			}
		}
	}

	option = { # C: Stewardship Lifestyle: Study the ceremony
		name = ach_coronation.0018.c
		trigger = {
			has_lifestyle = stewardship_lifestyle
		}
		skill = stewardship
		reason = lifestyle

		highlight_portrait = scope:servant
		highlight_portrait = scope:servant_boss

		add_stewardship_lifestyle_xp = minor_lifestyle_xp
		add_character_modifier = {
			modifier = ach_coronation_studying_ceremony_modifier
			years = 5
		}

		stress_impact = {
			diligent = minor_stress_impact_loss
			# Super down for not talking
			shy = minor_stress_impact_loss
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = diligent
				add = 25
			}
			modifier = {
				has_trait = shy
				add = 25
			}
		}
	}

	option = { # D: Just chill
		name = ach_coronation.0018.d

		highlight_portrait = root

		stress_impact = {
			base = medium_stress_impact_loss
			# Wants to do something
			diligent = minor_stress_impact_gain
			# Who really wants Host's approval?
			content = minor_stress_impact_loss
			# Super down for not talking
			shy = minor_stress_impact_loss
			# Doing *absolutely* nothing is based
			lazy = medium_stress_impact_loss
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = content
				add = 25
			}
			modifier = {
				has_trait = shy
				add = 25
			}
			modifier = {
				has_trait = lazy
				add = 50
			}
			modifier = {
				has_trait = diligent
				factor = 0.5
			}
		}
	}

	after = {
		hidden_effect = {
			scope:servant = { silent_disappearance_effect = yes }
		}
	}
}

ach_coronation.0019 = {
	type = letter_event
	opening = {
		desc = ach_coronation.0019.opening
	}
	desc = {
		# Opening
		desc = ach_coronation.0019.desc
		first_valid = {
			triggered_desc = {
				trigger = { scope:reward_type = flag:title }
				desc = ach_coronation.0019.desc.title
			}
			triggered_desc = {
				trigger = { scope:reward_type = flag:court_position }
				desc = ach_coronation.0019.desc.court_position
			}
			desc = ach_coronation.0019.desc.praise
		}
	}

	sender = scope:host

	immediate = { ach_coronation_0018_choose_title_effect = yes }

	option = { # Accept
		name = ach_coronation.0019.a

		switch = {
			trigger = scope:reward_type
			flag:title = {
				create_title_and_vassal_change = {
					type = granted
					save_scope_as = change
					add_claim_on_loss = no
				}
				scope:grantable_title = {
					change_title_holder = {
						holder = root
						change = scope:change
					}
				}
				resolve_title_and_vassal_change = scope:change

				custom_tooltip = {
					text = your_title_cannot_be_revoked_10_tt
					root = {
						add_character_flag = {
							flag = titles_protected
							years = 10
						}
					}
				}
			}
			flag:court_position = {
				court_position_grant_effect = {
					POS = seneschal
					EMPLOYER = scope:host
					CANDIDATE = root
				}
				if = {
					limit = {
						scope:servant_boss = { has_court_position = seneschal_court_position }
						OR = {
							scope:servant_boss = { is_ai = yes }
							AND = {
								scope:servant_boss = {
									is_ai = no
								}
								is_ai = no
							}
						}
					}
					scope:servant_boss = {
						progress_towards_rival_effect = {
							REASON = rival_jealousy_at_court
							CHARACTER = root
							OPINION = -30
						}
					}
				}
			}
			flag:praise = {
				add_prestige = medium_prestige_gain
				
				involved_activity = {
					every_attending_character = {
						limit = {
							this != root
							this != scope:host
						}
						custom = every_guest_scope_tt
						add_opinion = {
							target = root
							modifier = impressed_opinion
							opinion = 10
						}
					}
				}
			}
		}

		ai_chance = {
			base = 150
			modifier = {
				add = -50
				scope:reward_type = flag:title
				has_trait = content
			}
			modifier = {
				add = -50
				scope:reward_type = flag:court_position
				has_trait = lazy
			}
			modifier = {
				add = -50
				scope:reward_type = flag:praise
				has_trait = shy
			}
		}
	}

	option = { # Ask for gold instead
		name = ach_coronation.0019.b
		trigger = {
			scope:host = { is_ai = yes } # The player doesn't need a multi-event back and forth over this
		}
		scope:host = {
			add_opinion = {
				target = root
				modifier = disappointed_opinion
				opinion = -10
			}
			pay_short_term_gold = {
				gold = minor_gold_value
				target = root
			}
		}

		ai_chance = {
			base = 50
			modifier = {
				add = 50
				scope:reward_type = flag:praise
				has_trait = greedy # No money in praise
			}
			modifier = {
				add = 50
				scope:reward_type = flag:praise
				has_activity_intent = coronation_seize_advantages
			}
		}
	}

	option = { # Their friendship is enough
		name = ach_coronation.0019.c
		if = {
			limit = {
				reverse_opinion = {
					target = scope:host
					value > 20
				}
				OR = {
					scope:host = { is_ai = yes }
					AND = {
						scope:host = { is_ai = no }
						is_ai = no
					}
				}
			}
			progress_towards_friend_effect = {
				CHARACTER = scope:host
				REASON = friend_supported_host_during_coronation
				OPINION = default_friend_opinion
			}
		}
		else = {
			reverse_add_opinion = {
				target = scope:host
				modifier = friendliness_opinion
				opinion = 25
			}
		}

		ai_chance = {
			base = 0
			modifier = {
				add = 100
				has_trait = humble
			}
			modifier = {
				add = 50
				scope:reward_type = flag:praise
				has_trait = shy
			}
			modifier = {
				add = 50
				has_activity_intent = coronation_offer_support
			}
		}
	}
}

######################
# Host: Close family member helps manage the coronation
# by Jay Zaborowski
# 0020
ach_coronation.0020 = {
	type = activity_event
	title = ach_coronation.0020.t
	desc = ach_coronation.0020.desc

	left_portrait = {
		character = scope:annoying_servant
		animation = stunned
		camera = camera_event_very_right_pointing_very_left
		hide_info = yes
	}

	center_portrait = {
		character = scope:helpful_family
		animation = stayback
		camera = camera_event_right_pointing_very_right
	}

	right_portrait = {
		character = scope:host
		triggered_animation = {
			trigger = { OR = { scope:host.religion = religion:eastern_orthodox_religion scope:host.religion = religion:catholic_religion scope:host.religion = religion:protestant_religion } }
			animation = emotion_thinking_scepter
		}
		triggered_animation = {
			trigger = { NOT = { OR = { scope:host.religion = religion:eastern_orthodox_religion scope:host.religion = religion:catholic_religion scope:host.religion = religion:protestant_religion } } }
			animation = thinking
		}	
		camera = camera_event_very_left_pointing_right
	}

	theme = coronation_activity

	cooldown = { years = 1 }

	override_background = {
		reference = corridor_day
	}

	trigger = {
		involved_activity = {
			any_attending_character = {
				ach_coronation_0018_eligible_family_member_trigger = yes
			}
		}
	}

	immediate = {
		involved_activity = {
			activity_host = { save_scope_as = host }
			random_attending_character = {
				limit = {
					ach_coronation_0018_eligible_family_member_trigger = yes
				}
				weight = {
					base = 1
					opinion_modifier = {
						opinion_target = scope:host
						multiplier = 0.25
					}
					modifier = {
						add = sum_of_all_skills_value
					}
					modifier = { # Prefer close family
						is_close_family_of = root
						add = 20
					}
					modifier = {
						has_trait = ambitious
						add = 10
					}
					modifier = {
						has_trait = diligent
						add = 10
					}
					# If making them a vassal is on the table, try and get someone who is eligible
					modifier = {
						trigger_if = {
							limit = {
								root = {
									has_activity_intent = coronation_embrace_supporters
									any_held_title = { ach_coronation_0018_grantable_title_trigger = yes }
								}
								NOT = { can_be_granted_titles_by = { RULER = root } }
							}
						}
						factor = 0.1
					}
				}
				save_scope_as = helpful_family
				add_character_modifier = {
					modifier = exhausted_modifier
					years = 10
				}
				if = {
					limit = {
						has_trait = diligent
					}
					add_stress = minor_stress_gain
				}
				else = {
					add_stress = major_stress_gain
				}
			}
		}

		ach_coronation_0018_choose_title_effect = yes

		if = { # Grab a courtier for the background
			limit = {
				any_courtier_or_guest = {
					this != scope:helpful_family
					this != root
					is_available_in_activity_trigger = yes
				}
			}
			random_courtier_or_guest = {
				limit = {
					this != scope:helpful_family
					this != root
					is_available_in_activity_trigger = yes
				}
				save_scope_as = annoying_servant
			}
		}
		else_if = { # If there wasn't one grab a pool char
			limit = {
				any_pool_character = {
					province = involved_activity.activity_location
					this != scope:helpful_family
					this != root
					is_available_in_activity_trigger = yes
				}
			}
			random_pool_character = {
				province = involved_activity.activity_location
				limit = {
					this != scope:helpful_family
					this != root
					is_available_in_activity_trigger = yes
				}
				save_scope_as = annoying_servant
			}
		}
		else = { # Else, make one
			create_character = {
				save_scope_as = annoying_servant
				employer = root
				template = servant_character
				gender_female_chance = root_faith_dominant_gender_adjusted_female_chance
			}
			add_character_flag = created_character_ach_coronation_0020
		}
	}

	option = { # A: Embrace Supporters: They would be a loyal vassal!
		name = ach_coronation.0020.a
		reason = activity_intent
		add_internal_flag = special

		trigger = {
			has_activity_intent = coronation_embrace_supporters
			exists = scope:grantable_title
			scope:helpful_family = {
				can_be_granted_titles_by = { RULER = root }
			}
		}
		show_as_unavailable = {
			AND = {
				has_activity_intent = coronation_embrace_supporters
				exists = scope:grantable_title
			}
		}

		create_title_and_vassal_change = {
			type = granted
			save_scope_as = change
			add_claim_on_loss = no
		}
		scope:grantable_title = {
			change_title_holder = {
				holder = scope:helpful_family
				change = scope:change
			}
		}
		resolve_title_and_vassal_change = scope:change

		coronation_move_towards_supporter_effect = { CHARACTER = scope:helpful_family }

		custom_tooltip = {
			text = character_title_cannot_be_revoked_tt
			scope:helpful_family = {
				add_character_flag = {
					flag = titles_protected
					years = 10
				}
			}
		}

		scope:helpful_family = {
			add_trait = loyal
			add_opinion = {
				modifier = loyalty_opinion
				target = scope:host
				opinion = 25
			}
		}
		add_hook = {
			target = scope:helpful_family
			type = loyalty_hook
		}

		coronation_embrace_supporters_opinion_effect = yes
	}

	option = { # B: Family First: This is how we do things in my dynasty!
		name = ach_coronation.0020.b
		trait = family_first

		trigger = { has_trait = family_first }
		show_as_unavailable = { always = yes }

		every_close_family_member = {
			custom = every_family_member_tt
			limit = {
				NOT = { this = root }
			}
			add_opinion = {
				target = root
				modifier = love_opinion
				opinion = 20
			}
		}
		dynasty ?= {
			add_dynasty_modifier = {
				modifier = ach_familial_support_modifier
				years = 10
			}
		}
	}
	
	option = { # C: They truly are a great GetRelationToMe
		name = ach_coronation.0020.c
		if = {
			limit = {
				can_set_relation_potential_friend_trigger = { CHARACTER = scope:helpful_family }
				reverse_opinion = {
					target = scope:helpful_family
					value > 20
				}
				OR = {
					scope:helpful_family = { is_ai = yes }
					AND = {
						scope:helpful_family = { is_ai = no }
						is_ai = no
					}
				}
			}
			set_relation_potential_friend = scope:helpful_family
		}
		coronation_move_towards_supporter_effect = { CHARACTER = scope:helpful_family }
		scope:helpful_family = {
			add_opinion = {
				target = root
				modifier = love_opinion
				opinion = 20
			}
		}
	}
	
	option = { # D: They're a model for all my subjects
		name = ach_coronation.0020.d
		add_prestige = minor_prestige_gain
	}

	after = {
		add_stress = medium_stress_loss
		if = {
			limit = { has_character_flag = created_character_ach_coronation_0020 }
			hidden_effect = {
				scope:annoying_servant = { silent_disappearance_effect = yes }
				remove_character_flag = created_character_ach_coronation_0020
			}
		}
	}
}

######################
# Guest: An ongoing plague has shaken a zealous guest
# by Jay Zaborowski
# 0022
scripted_trigger ach_coronation_0022_valid_zealot_trigger = {
	is_ai = yes
	faith = scope:host.faith
	highest_held_title_tier >= tier_county
	OR = {
		has_trait = zealous
		trigger_if = {
			limit = { is_vassal_or_below_of = scope:host }
			has_vassal_stance = zealot
		}
	}
	NOR = {
		this = scope:host
		this = root
		has_trait = cynical
		has_trait = loyal
		# Don't want anyone who wouldn't listen to you
		has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
	}
}

scripted_trigger ach_coronation_0022_loose_zealot_trigger = {
	is_ai = yes
	faith = involved_activity.activity_host.faith
	highest_held_title_tier >= tier_county
	OR = {
		ai_zeal >= low_positive_ai_value
		has_trait = zealous
		trigger_if = {
			limit = { is_vassal_or_below_of = involved_activity.activity_host }
			has_vassal_stance = zealot
		}
		has_trait = lifestyle_mystic
		has_trait = paranoid
		has_trait = craven
		has_trait = devoted
	}
	NOR = {
		this = involved_activity.activity_host
		this = root
		has_trait = cynical
		# Don't want anyone who wouldn't listen to you
		has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
	}
}

ach_coronation.0022 = {
	type = activity_event
	title = ach_coronation.0022.t
	desc = {
		desc = ach_coronation.0022.desc
		first_valid = {
			triggered_desc = {
				trigger = { scope:host = { primary_title = title:e_byzantium } }
				desc = ach_coronation.0022.desc.whisper.byzantine
			}
			triggered_desc = {
				trigger = { scope:host = { primary_title = title:e_hre } }
				desc = ach_coronation.0022.desc.whisper.hre
			}
			triggered_desc = {
				trigger = { scope:host = { num_sinful_traits >= 2 } }
				desc = ach_coronation.0022.desc.whisper.sinner
			}
			triggered_desc = {
				trigger = { scope:host.culture = { has_innovation = innovation_divine_right } }
				desc = ach_coronation.0022.desc.whisper.divine_right
			}
			desc = ach_coronation.0022.desc.whisper.fallback
		}
		desc = ach_coronation.0022.desc.ending
	}
	theme = coronation_activity

	override_background = {
		reference = temple
	}

	cooldown = { years = 1 }

	left_portrait = {
		character = root
		triggered_animation = {
			trigger = { has_activity_intent = coronation_disrupt_loyalists }
			animation = interested
		}
		animation = thinking
	}
	right_portrait = {
		character = scope:zealot
		animation = prayer
		camera = camera_event_very_right_close
	}

	trigger = {
		involved_activity = {
			activity_host = {
				save_temporary_scope_as = host_temp
				is_ai = yes
				# Ongoing plague
				any_sub_realm_county = {
					count >= 3
					any_county_province = {
						any_province_epidemic = {
							count >= 1
							outbreak_intensity > minor
						}
					}
				}
			}
			any_attending_character = {
				ach_coronation_0022_loose_zealot_trigger = yes
			}
		}
	}

	weight_multiplier = {
		base = 1
		modifier = {
			has_activity_intent = coronation_disrupt_loyalists
			factor = 2
		}
		modifier = {
			has_activity_intent = coronation_offer_support
			factor = 2
		}
		modifier = {
			involved_activity = {
				activity_host = {
					# Ongoing plague
					any_sub_realm_county = {
						count >= 10
						any_county_province = {
							any_province_epidemic = {
								count >= 1
								outbreak_intensity > minor
							}
						}
					}
				}
			}
			factor = 2
		}
		modifier = {
			involved_activity = {
				activity_host = {
					# Ongoing plague
					any_sub_realm_county = {
						count >= 3
						any_county_province = {
							any_province_epidemic = {
								count >= 1
								outbreak_intensity > major
							}
						}
					}
				}
			}
			factor = 2
		}
		modifier = {
			involved_activity = {
				activity_location = {
					any_province_epidemic = {
						count >= 1
						outbreak_intensity > minor
					}
				}
			}
			factor = 2
		}
	}

	immediate = {
		involved_activity = {
			activity_host = {
				save_scope_as = host
				# Get the ongoing plague
				if = {
					limit = {
						any_sub_realm_county = {
							count >= 4
							any_county_province = {
								any_province_epidemic = {
									count >= 1
									outbreak_intensity = apocalyptic
								}
							}
						}
					}
					get_random_realm_epidemic = { INTENSITY = apocalyptic }
				}
				else = {
					get_random_realm_epidemic = { INTENSITY = major }
				}
				# Get the Faction if that's part of it
				if = {
					limit = {
						root = { has_activity_intent = coronation_disrupt_loyalists }
					}
					random_targeting_faction = {
						limit = {
							any_faction_member = { this = root }
							#Won't join a bunch of heretics
							trigger_if = {
								limit = { faction_is_type = claimant_faction }
								special_character.faith ?= scope:host.faith
							}
							trigger_if = {
								limit = { faction_is_type = populist_faction }
								var:faction_faith ?= scope:host.faith
							}
						}
						save_scope_as = faction
					}
				}
			}

			# Grab yer zealot
			random_attending_character = {
				# Try and get someone who can join the faction if that's relevant
				limit = {
					exists = scope:faction
					can_join_faction = scope:faction
					ach_coronation_0022_valid_zealot_trigger = yes
				}
				alternative_limit = {
					ach_coronation_0022_valid_zealot_trigger = yes
				}
				alternative_limit = {
					ach_coronation_0022_loose_zealot_trigger = yes
				}
				weight = {
					base = 1
					# Prefer vassals
					modifier = {
						add = {
							value = 5
							if = {
								limit = { is_powerful_vassal_of = scope:host }
								add = 10
							}
						}
						is_vassal_of = scope:host
					}
					# Prefer interesting characters
					modifier = {
						add = 10
						is_of_major_interest_to_root_trigger = yes
					}
					modifier = {
						add = 5
						is_of_minor_interest_to_root_trigger = yes
					}
					# Who would also likely be afeared
					modifier = {
						add = 5
						has_trait = craven
					}
					# And not those who wouldn't be
					modifier = {
						add = -15
						has_trait = brave
					}
					# Clergy members are also nice
					modifier = {
						add = 5
						is_clergy = yes
					}
					# As are Zealot Vassal Stancers
					modifier = {
						add = 5
						is_vassal_of = scope:host
						has_vassal_stance = zealot
					}
					# Weightings for zealotry
					modifier = {
						add = {
							value = ai_zeal
							multiply = 0.2 # Don't want it to overwhelm other factors
						}
					}
					# Prefer rulers who already dislike the host
					opinion_modifier = {
						opinion_target = scope:host
						multiplier = -0.2 # Don't want it to overwhelm other factors
					}
				}
				save_scope_as = zealot
				assign_quirk_effect = yes
			}
		}
	}

	option = { # This is that bastard host's fault!
		name = ach_coronation.0022.a.coronation_disrupt_loyalists
		trigger = {
			has_activity_intent = coronation_disrupt_loyalists
			exists = scope:faction
			scope:zealot = {
				can_join_faction = scope:faction
				opinion = {
					target = scope:host
					value <= 60
				}
			}
		}
		custom_tooltip = available_because_intent_tt
		flavor = ach_coronation.0022.a.coronation_disrupt_loyalists.flavor
		reason = activity_intent
		skill = diplomacy

		add_piety = medium_piety_loss
		reverse_add_opinion = {
			target = scope:host
			modifier = opposition_opinion
			opinion = -20
		}

		duel = {
			skills = { diplomacy learning }
			target = scope:zealot
			50 = { # You convert them!
				desc = ach_coronation.0022.a.coronation_disrupt_loyalists.success
				compare_modifier = {
					value = scope:duel_value
					multiplier = 0.5
				}
				modifier = {
					has_perk = theologian_perk
					add = 25
				}
				modifier = {
					has_trait = zealous
					add = 25
				}
				modifier = {
					scope:zealot = {
						opinion = {
							target = scope:host
							value < -50
						}
					}
					add = 25
				}
				modifier = {
					scope:zealot = {
						opinion = {
							target = scope:host
							value < 0
						}
					}
					add = 15
				}
				send_interface_toast = {
					title = ach_coronation.0022.a.coronation_disrupt_loyalists.success
					left_icon = root
					right_icon = scope:zealot

					scope:zealot = { join_faction = scope:faction }
					coronation_move_towards_detractor_effect = { CHARACTER = scope:zealot }
				}
			}
			50 = { # You fail
				desc = ach_coronation.0022.a.coronation_disrupt_loyalists.failure
				compare_modifier = {
					value = scope:duel_value
					multiplier = -0.5
				}
				modifier = {
					scope:zealot = {
						opinion = {
							target = scope:host
							value > 0
						}
					}
					add = 25
				}
				modifier = {
					scope:zealot = {
						opinion = {
							target = scope:host
							value > 30
						}
					}
					add = 25
				}
				send_interface_toast = {
					title = ach_coronation.0022.a.coronation_disrupt_loyalists.failure
					left_icon = root
					right_icon = scope:zealot

					reverse_add_opinion = {
						target = scope:zealot
						modifier = outraged_opinion
						opinion = -20
					}
				}
			}
		}

		ai_chance = {
			base = 150
			modifier = {
				has_trait = disloyal
				add = 50
			}
			modifier = {
				has_trait = schemer
				add = 50
			}
		}
	}
	option = { # It's not our goodly Host's fault!
		name = ach_coronation.0022.a.offer_support
		trigger = { has_activity_intent = coronation_offer_support }
		custom_tooltip = available_because_intent_tt
		flavor = ach_coronation.0022.a.offer_support.flavor

		add_piety = medium_piety_loss

		duel = {
			skills = { diplomacy learning }
			target = scope:zealot
			50 = { # They are more loyal than ever
				desc = ach_coronation.0022.a.offer_support.success
				compare_modifier = {
					value = scope:duel_value
					multiplier = 0.5
				}
				modifier = {
					has_perk = theologian_perk
					add = 25
				}
				modifier = {
					has_trait = zealous
					add = 25
				}
				send_interface_toast = {
					title = ach_coronation.0022.a.offer_support.success
					left_icon = root
					right_icon = scope:zealot

					random = {
						chance = 20
						scope:zealot = {
							add_trait = loyal
						}
					}

					reverse_add_opinion = {
						target = scope:zealot
						modifier = comforted_opinion
						opinion = 10
					}
					reverse_add_opinion = {
						target = scope:host
						modifier = helpful_opinion
						opinion = 20
					}
					scope:zealot = {
						add_opinion = {
							target = scope:host
							modifier = loyalty_opinion
							opinion = 30
						}
					}
					coronation_move_towards_supporter_effect = { CHARACTER = scope:zealot }
				}
			}
			50 = { # You fail
				desc = ach_coronation.0022.a.offer_support.failure
				compare_modifier = {
					value = scope:duel_value
					multiplier = -0.5
				}
				send_interface_toast = {
					title = ach_coronation.0022.a.offer_support.failure
					left_icon = root
					right_icon = scope:zealot

					reverse_add_opinion = {
						target = scope:zealot
						modifier = annoyed_opinion
						opinion = -20
					}
					coronation_move_towards_detractor_effect = { CHARACTER = scope:zealot }
				}
			}
		}
		stress_impact = {
			fickle = minor_stress_impact_gain
		}
		ai_chance = {
			base = 150
			modifier = {
				has_trait = loyal
				add = 50
			}
		}
	}
	option = { # Pray with HerHim
		name = ach_coronation.0022.b
		trigger = {
			root.faith.religion ?= scope:zealot.faith.religion
		}
		show_as_unavailable = { always = yes }
		reason = faith
		trait = zealous

		custom_tooltip = available_because_of_shared_religion_tt

		add_piety = medium_piety_gain
		if = {
			limit = {
				scope:zealot = {
					opinion = {
						target = root
						value > 0
					}
				}
				OR = {
					scope:zealot = { is_ai = yes }
					AND = {
						scope:zealot = { is_ai = no }
						is_ai = no
					}
				}
			}
			progress_towards_friend_effect = {
				CHARACTER = scope:zealot
				OPINION = 20
				REASON = friend_religious_comfort
			}
		}
		else = {
			reverse_add_opinion = {
				target = scope:zealot
				modifier = kindness_opinion
				opinion = 20
			}
		}
		

		stress_impact = {
			cynical = medium_stress_impact_gain
			zealous = medium_stress_impact_loss
			compassionate = minor_stress_impact_loss
			callous = medium_stress_impact_gain
			sadistic = medium_stress_impact_gain
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = zealous
				add = 100
			}
			modifier = {
				has_trait = compassionate
				add = 50
			}
			modifier = {
				has_trait = sadistic
				add = -25
			}
			modifier = {
				has_trait = callous
				add = -100
			}
			modifier = {
				OR = {
					has_trait = cynical
					has_trait = callous
					has_trait = sadistic
				}
				factor = 0
			}
		}
	}
	option = { # I'm not getting near anyone rn, thanks
		name = ach_coronation.0022.d
		flavor = ach_coronation.0022.d.flavor

		add_character_modifier = {
			modifier = ach_social_distancing_modifier
			years = 4
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_gain
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = cynical
				add = 25
			}
			modifier = {
				has_trait = shy
				add = 25
			}
			modifier = {
				has_trait = paranoid
				add = 25
			}
			modifier = {
				has_trait = trusting
				add = -25
			}
			modifier = {
				has_trait = callous
				add = -25
			}
			modifier = {
				has_trait = gregarious
				add = -25
			}
		}
	}
}

######################
# Host: An exotic foreign warrior pledges themselves to you
# by Jay Zaborowski
# 0023
scripted_trigger ach_coronation_0023_foreign_holder_trigger = {
	NOR = {
		# Make sure they're from afar
		in_diplomatic_range = prev
		# And suitably foreign
		faith = prev.faith
		culture = prev.culture
	}
	save_temporary_scope_as = foreign_ruler_temp
	prev = {
		# They're not that exotic if you already rule a bunch of them
		any_realm_county = {
			NOR = {
				faith = scope:foreign_ruler_temp.faith
				culture = scope:foreign_ruler_temp.culture
			}
		}
	}
}

scripted_trigger ach_coronation_0023_eligible_clergy_trigger = {
	is_available_in_activity_trigger = yes
	faith = involved_activity.activity_host.faith
}

scripted_effect ach_coronation_0023_generic_acceptance_effect = {
	if = {
		limit = {
			faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
		}
		# Fundamentalists won't be happy about this
		every_vassal = {
			limit = {
				faith = root.faith
				has_vassal_stance = zealot
			}
			custom = every_zealot_vassal
			add_opinion = {
				target = root
				modifier = fp1_honoured_heathen_opinion
				opinion = -10
			}
		}
		add_piety = medium_piety_loss
		if = {
			limit = { has_trait = zealous }
			stress_impact = {
				zealous = medium_stress_impact_gain
			}
		}
	}
	culture = {
		change_cultural_acceptance = {
			target = scope:foreign_warrior.culture
			value = low_positive_culture_acceptance
			desc = cultural_acceptance_gain_accepted_foreign_warrior
		}
	}

	stress_impact = {
		trusting = medium_stress_loss # Trusts this strange foreigner implicitly
		paranoid = medium_stress_loss # Is very happy to have less incompetent guards
	}
}

ach_coronation.0023 = {
	type = activity_event
	title = ach_coronation.0023.t
	desc = {
		desc = ach_coronation.0023.desc
		first_valid = {
			triggered_desc = {
				trigger = {
					exists = scope:clergy
					scope:clergy.faith = {
						NOT = { has_doctrine = doctrine_pluralism_pluralistic }
					}
				}
				desc = ach_coronation.0023.desc.clergy.angry
			}
			triggered_desc = {
				trigger = {
					exists = scope:clergy
				}
				desc = ach_coronation.0023.desc.clergy
			}
		}
	}

	left_portrait = {
		character = root
		animation = thinking
		camera = camera_event_very_left
	}

	center_portrait = {
		character = scope:foreign_warrior
		animation = obsequious_bow
		camera = camera_event_center_pointing_left
	}

	right_portrait = {
		trigger = { exists = scope:clergy }
		triggered_animation = {
			trigger = {
				scope:clergy.faith = {
					NOT = { has_doctrine = doctrine_pluralism_pluralistic }
				}
			}
			animation = disapproval
		}
		animation = interested
		character = scope:clergy
	}

	cooldown = { years = 1 }
	
	theme = coronation_activity

	override_background = {
		reference = throne_room
	}

	trigger = {
		has_activity_intent = coronation_embrace_supporters
		any_independent_ruler = { ach_coronation_0023_foreign_holder_trigger = yes }
		involved_activity = {
			any_attending_character = {
				ach_coronation_0023_eligible_clergy_trigger = yes
				is_vassal_or_below_of = root
				OR = {
					is_clergy = yes
					has_trait = devoted
					is_theocratic_lessee = yes
					government_has_flag = government_is_theocracy
				}
			}
		}
	}

	# Exotic warriors won't be attracted by lords who aren't some level of famous
	weight_multiplier = {
		base = 0
		# Court Grandeur attracts adventurers
		modifier = {
			has_royal_court = yes
			court_grandeur_current_level > 2
			add = {
				value = court_grandeur_current_level
				divide = 4
			}
		}
		modifier = {
			prestige_level > 2
			add = {
				value = prestige_level
				divide = 2
			}
		}
	}

	immediate = {
		# Get a foreign court for the warrior to arrive from
		random_independent_ruler = {
			# Make sure they're from afar
			limit = { ach_coronation_0023_foreign_holder_trigger = yes }
			weight = {
				base = 1
				# Like, really afar
				modifier = {
					add = 1000
					capital_province = {
						squared_distance = {
							target = root.capital_province
							value >= squared_distance_massive
						}
					}
				}
				# More militaristic cultures with cool warrior folks are preferred
				modifier = {
					add = 500
					culture = {
						OR = {
							has_cultural_pillar = ethos_stoic
							has_cultural_pillar = ethos_bellicose
							has_cultural_parameter = wanderers_gain_extra_combat_skills
							has_cultural_parameter = high_prowess_ignores_knight_restrictions
							has_cultural_parameter = prowess_from_martial_education
							has_cultural_parameter = martial_education_more_valued
							has_cultural_parameter = strong_traits_more_valued
						}
					}
				}
				# Cultures that don't tend to like foreigners are not
				modifier = {
					add = -500
					culture = {
						OR = {
							has_cultural_parameter = courtiers_less_likely_to_leave_same_culture_court
							has_cultural_parameter = dislikes_marrying_outside_of_culture
						}
					}
				}
			}
			save_scope_as = foreign_ruler
		}

		# Create your new BFF
		create_character = {
			template = bp1_yearly_2021_martial_person_template
			location = root.location
			faith = scope:foreign_ruler.faith
			culture = scope:foreign_ruler.culture
			trait = loyal
			save_scope_as = foreign_warrior
		}
		scope:foreign_warrior = {
			hidden_effect = {
				# Give them an opinion bump so they don't hate you
				add_opinion = {
					target = root
					modifier = impressed_opinion
					opinion = 30
				}
				# And make sure they speak your language
				learn_language_of_culture = root.culture
				# Add them now so the can_appoint triggers work
				add_courtier = scope:foreign_warrior
			}
		}

		# Grab a clergy person to be angry (or curious)
		involved_activity = {
			random_attending_character = {
				limit = { # Grab the Court Chaplain if they're attending
					ach_coronation_0023_eligible_clergy_trigger = yes
					has_council_position = councillor_court_chaplain
					is_councillor_of = root
				}
				alternative_limit = { # Any Zealot vassal if not
					ach_coronation_0023_eligible_clergy_trigger = yes
					is_vassal_of = root
					has_vassal_stance = zealot
				}
				alternative_limit = { # Find any sort of clergy-type as a fallback
					ach_coronation_0023_eligible_clergy_trigger = yes
					is_vassal_or_below_of = root
					OR = {
						is_clergy = yes
						has_trait = devoted
						is_theocratic_lessee = yes
						government_has_flag = government_is_theocracy
					}
				}
				save_scope_as = clergy
			}
		}

		ordered_court_position_holder = {
			type = bodyguard_court_position
			order_by = { # Get the worst bodyguard you have
				value = 0
				subtract = "aptitude(bodyguard_court_position)"
			}
			save_scope_as = worst_bodyguard
		}
	}

	option = { # Make them your bodyguard
		name = ach_coronation.0023.a

		trigger = {
			can_employ_court_position_type = bodyguard_court_position
			any_court_position_holder = {
				type = bodyguard_court_position
				has_court_position = bodyguard_court_position
				count < 2
			}
		}

		court_position_grant_effect = { POS = bodyguard CANDIDATE = scope:foreign_warrior EMPLOYER = root }

		scope:foreign_warrior = {
			add_opinion = {
				modifier = hired_me_opinion
				target = root
				opinion = 30
			}
			hidden_effect = {
				add_prestige = medium_prestige_gain
			}
		}

		ach_coronation_0023_generic_acceptance_effect = yes

		ai_chance = {
			base = 100
			opinion_modifier = {
				trigger = { exists = scope:worst_bodyguard }
				who = scope:worst_bodyguard
				opinion_target = root
				multiplier = -1
			}
			# Faith modifiers
			modifier = { 
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
				NOT = { has_trait = cynical }
				add = -50
			}
			modifier = { 
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
				has_trait = zealous
				factor = 0
			}
			# If you have a Champion slot then make them that instead of replacing
			modifier = {
				employs_court_position = bodyguard_court_position
				NOT = { employs_court_position = champion_court_position }
				factor = 0
			}
		}
	}

	option = { # Make them your Champion
		name = ach_coronation.0023.b

		trigger = {
			can_employ_court_position_type = champion_court_position
			NOT = { employs_court_position = champion_court_position }
		}

		if = {
			limit = {
				can_employ_court_position_type = champion_court_position
				NOT = { employs_court_position = champion_court_position }
			}
			court_position_grant_effect = { POS = champion CANDIDATE = scope:foreign_warrior EMPLOYER = root }
		}

		scope:foreign_warrior = { # Grant the position
			add_opinion = {
				modifier = hired_me_opinion
				target = root
				opinion = 30
			}
			hidden_effect = {
				add_prestige = medium_prestige_gain
			}
		}

		ach_coronation_0023_generic_acceptance_effect = yes

		ai_chance = {
			base = 100
			opinion_modifier = {
				trigger = {
					employs_court_position = champion_court_position
				}
				who = court_position:champion_court_position
				opinion_target = root
				multiplier = -1
			}
			# Faith modifiers
			modifier = { 
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
				NOT = { has_trait = cynical }
				add = -50
			}
			modifier = { 
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
				has_trait = zealous
				factor = 0
			}
		}
	}

	option = { # Courtier fallback
		name = ach_coronation.0023.c

		trigger = {
			NOR = {
				can_employ_court_position_type = bodyguard_court_position
				can_employ_court_position_type = champion_court_position
			}
		}

		ach_coronation_0023_generic_acceptance_effect = yes

		add_courtier = scope:foreign_warrior

		ai_chance = {
			base = 100
			# Faith modifiers
			modifier = { 
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
				NOT = { has_trait = cynical }
				add = -50
			}
			modifier = { 
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
				has_trait = zealous
				factor = 0
			}
		}
	}

	option = { # Reject them
		name = ach_coronation.0023.d

		if = {
			limit = {
				faith = { NOT = { has_doctrine = doctrine_pluralism_pluralistic } }
			}
			every_vassal = {
				limit = {
					faith = root.faith
					has_vassal_stance = zealot
				}
				custom = every_zealot_vassal
				add_opinion = {
					target = root
					modifier = respect_opinion
					opinion = 10
				}
			}
			if = {
				limit = {
					exists = scope:clergy
				}
				reverse_add_opinion = {
					target = scope:clergy
					modifier = grateful_opinion
					opinion = 20
				}
			}
		}

		hidden_effect = {
			scope:foreign_warrior = { silent_disappearance_effect = yes }
		}

		ai_chance = {
			base = 100
		}
	}
}

######################
# Open up drinks to the locals 
# by Jay Zaborowski
# 0025
ach_coronation.0025 = {
	type = activity_event
	title = ach_coronation.0025.t
	desc = {
		desc = ach_coronation.0025.desc
		first_valid = {
			triggered_desc = {
				trigger = { root = scope:host }
				desc = ach_coronation.0025.desc.host
			}
			desc = ach_coronation.0025.desc.guest
		}
	}

	left_portrait = {
		character = root
		animation = thinking
	}

	center_portrait = {
		trigger = {
			root != scope:host
		}
		character = scope:host
		animation = scepter
	}

	right_portrait = {
		trigger = {
			scope:baron != scope:host
			root != scope:baron
		}
		character = scope:baron
		animation = thinking
	}

	theme = feast_activity

	cooldown = { years = 1 }

	override_background = {
		reference = garden
	}

	trigger = {
		OR = {
			has_activity_intent = coronation_offer_support
			has_activity_intent = coronation_impress_attendees
		}
		involved_activity = {
			activity_location = {
				# Has a settlement
				has_holding = yes
				# Has locals
				NOR = {
					has_holding_type = nomad_holding
					has_holding_type = herder_holding
				}
				# The barony has willing drinkers
				barony.holder = {
					faith_forbids_alcohol_trigger = no
					faith = prev.county.faith
					trigger_if = {
						limit = { is_ai = no }
						this = root
					}
				}
			}
			# And a willing host
			activity_host = { faith_forbids_alcohol_trigger = no }
		}
		# And a willing you
		faith_forbids_alcohol_trigger = no
	}

	immediate = {
		involved_activity = {
			activity_host = { save_scope_as = host }
			activity_location = {
				save_scope_as = feast_location
				barony.holder = { save_scope_as = baron }
			}
		}
	}

	weight_multiplier = {
		base = 1
		modifier = {
			OR = {
				has_trait = drunkard
				has_trait = lifestyle_reveler
			}
			add = 2
		}
		modifier = {
			involved_activity.activity_host = {
				OR = {
					has_trait = drunkard
					has_trait = lifestyle_reveler
				}
			}
			add = 2
		}
	}

	option = { # You'll pay for it
		name = ach_coronation.0025.a
		trigger = {
			short_term_gold >= medium_gold_value
		}
		show_as_unavailable = { always = yes }

		remove_short_term_gold = medium_gold_value

		involved_activity.activity_location = {
			add_province_modifier = { modifier = ach_drunk_province_1_modifier years = 1 }
		}

		if = {
			limit = {
				this != scope:host
			}
			reverse_add_opinion = {
				target = scope:host
				modifier = grateful_opinion
				opinion = 20
			}
		}

		scope:host = {
			every_vassal = {
				limit = {
					has_vassal_stance = courtly
					NOT = {
						this = root
					}
				}
				custom = every_courtly_vassal
				add_opinion = {
					target = root
					modifier = respect_opinion
					opinion = 5
				}
			}
		}

		custom_tooltip = coronation_tt_positive_medium
		involved_activity = { activity_special_type_progression_medium = yes }
		coronation_add_magnificence_log_effect = {
            VALUE = flag:positive_medium
            CHAR = root
        }

		stress_impact = {
			base = medium_stress_impact_loss
			temperate = medium_stress_impact_gain # Doesn't partake
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = temperate
				factor = 0.5
			}
		}
	}

	option = { # Drunkard / Reveler: We should *both* pay for it!
		name = ach_coronation.0025.b
		flavor = ach_coronation.0025.b.flavor
		trigger = {
			custom_tooltip = {
				text = ach_coronation.0025.b.tt
				short_term_gold >= minor_gold_value
				OR = {
					has_trait = drunkard
					has_trait = lifestyle_reveler
				}
				scope:baron != root # Only available if there's a local baron to go splitsies
				scope:baron != scope:host # And if they're not the Host
			}
		}
		show_as_unavailable = {
			scope:baron != root
			scope:baron != scope:host
		}
		trait = drunkard
		trait = lifestyle_reveler

		duel = {
			skill = diplomacy
			target = scope:baron
			40 = { # The Baron agrees to pay
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}

				desc = ach_coronation.0025.b.tt.success

				involved_activity.activity_location = {
					add_province_modifier = { modifier = ach_drunk_province_2_modifier years = 1 }
				}

				scope:baron = {
					remove_short_term_gold = root.minor_gold_value
					hidden_effect = { add_prestige = medium_prestige_gain }
				}
				remove_short_term_gold = minor_gold_value

				if = {
					limit = { this != scope:host }
					scope:host = {
						add_opinion = {
							target = root
							modifier = grateful_opinion
							opinion = 10
						}
						add_opinion = {
							target = scope:baron
							modifier = grateful_opinion
							opinion = 10
						}
						hidden_effect = {
							add_prestige = medium_prestige_gain
						}
					}
				}

				send_interface_toast = {
					title = ach_coronation.0025.b.tt.success
					left_icon = scope:baron

					if = {
						limit = {
							has_trait = lifestyle_reveler
						}
						add_trait_xp = {
							trait = lifestyle_reveler
							value = {
								integer_range = {
									min = small_lifestyle_random_xp_low
									max = small_lifestyle_random_xp_high
								}
							}
						}
					}

					add_prestige = medium_prestige_gain
					if = {
						limit = {
							OR = {
								root = { is_ai = no }
							}
							scope:activity = {
								is_target_in_variable_list = {
									name = major_supporter
									target = root
								}
							}
						}
						scope:host = {
							custom_tooltip = coronation_tt_positive_medium
							involved_activity = { activity_special_type_progression_medium = yes }
						}
						coronation_add_magnificence_log_effect = {
        				    VALUE = flag:positive_medium
        				    CHAR = root
        				}
					}

					stress_impact = {
						base = medium_stress_impact_loss
						temperate = medium_stress_impact_gain # Doesn't partake
					}
				}

				create_character_memory = {
					type = got_the_city_drunk_memory
					participants = {
						coronation_host = scope:host
						baron = scope:baron
					}
				}
				# Used in loc
				scope:new_memory = {
					save_scope_as = drunk_city_memory
				}
				scope:drunk_city_memory = {
					#set_variable = {
						#name = drunk_city_location
						#value = scope:feast_location
					#}
					set_variable = {
						name = drunk_city_location
						value = scope:feast_location
					}
					if = { #startup error suppression
						limit = { has_variable = drunk_city_location }
					}
				}
			}
			60 = { # The Baron refuses your *extremely* awesome idea
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				desc = ach_coronation.0025.b.tt.failure
				send_interface_toast = {	
					title = ach_coronation.0025.b.tt.failure
					left_icon = scope:baron

					scope:baron = { # Very lame of them
						add_prestige = minor_prestige_loss
					}
					hidden_effect = {
						add_opinion = {
							target = scope:baron
							modifier = disappointed_opinion
							opinion = -10
						}
					}

					stress_impact = { # Disappointment
						drunkard = minor_stress_impact_gain
						lifestyle_reveler = minor_stress_impact_gain
					}
				}
			}
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = drunkard
				add = 50
			}
			modifier = {
				has_trait = lifestyle_reveler
				add = 50
			}
		}
	}

	option = { # Just focus on having fun
		name = ach_coronation.0025.c
		name = {
			trigger = {
				has_trait = temperate
			}
			text = ach_coronation.0025.c.temperate
		}
		flavor = ach_coronation.0025.c.flavor

		# Stress loss
		stress_impact = {
			base = minor_stress_impact_loss
			drunkard = minor_stress_impact_gain
			lifestyle_reveler = minor_stress_impact_gain
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = temperate
				factor = 2
			}
		}
	}
}

######################
# Host: Struggle to hide a cold so that your tribal vassals don't take it as an omen
# by Jay Zaborowski
# 0026
ach_coronation.0026 = {
	type = activity_event
	title = ach_coronation.0026.t
	desc = ach_coronation.0026.desc

	left_portrait = {
		character = scope:second
		animation = dancing
		camera = camera_event_very_left_fov35
	}

	center_portrait = { 
		character = root
		animation = stress
		camera = camera_event_center_very_large
	}

	right_portrait = {
		character = scope:vassal
		animation = toast_goblet
		camera = camera_event_very_right_fov35
	}

	theme = feast_activity

	cooldown = { years = 1 }

	trigger = {
		can_contract_disease_trigger = { DISEASE = ill }
		government_has_flag = government_is_tribal
		involved_activity = {
			any_attending_character = {
				government_has_flag = government_is_tribal
				coronation_hostile_to_host_trigger = no
				can_add_hook = {
					target = root
					type = favor_hook
				}
			}
		}
	}

	immediate = {
		involved_activity = {
			random_attending_character = {
				limit = {
					government_has_flag = government_is_tribal
					coronation_hostile_to_host_trigger = no
					can_add_hook = {
						target = root
						type = favor_hook
					}
				}
				weight = {
					base = 1
					# Prefer vassals
					modifier = {
						add = {
							value = 5
							if = {
								limit = { is_powerful_vassal_of = root }
								add = 10
							}
						}
						is_vassal_of = root
					}
					# Prefer interesting characters
					modifier = {
						add = 10
						is_of_major_interest_to_root_trigger = yes
					}
					modifier = {
						add = 5
						is_of_minor_interest_to_root_trigger = yes
					}
					# Try and get someone who'd be willing to help you out
					opinion_modifier = {
						opinion_target = root
						multiplier = 0.25
					}
				}
				save_scope_as = vassal
			}
			random_attending_character = {
				limit = {
					NOR = {
						this = root
						this = scope:vassal
					}
				}
				save_scope_as = second
			}
		}
	}

	option = { # Hold it in hold it in hold it in
		name = ach_coronation.0026.a

		custom_tooltip = ach_coronation.0026.a.tt

		random_list = {
			40 = { # Your vassals notice you're sick
				desc = ach_coronation.0026.a.tt.sick.failure
				send_interface_toast = {
					title = ach_coronation.0026.a.tt.sick.failure
					left_icon = root

					add_prestige = minor_prestige_loss

					contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }

					custom_tooltip = coronation_tt_negative
					involved_activity = { activity_special_type_progression_negative = yes }
					coronation_add_magnificence_log_effect = {
						VALUE = flag:negative
						CHAR = root
					}
				}
			}
			40 = { # Nobody notices
				desc = ach_coronation.0026.a.tt.sick.success
				send_interface_toast = {
					title = ach_coronation.0026.a.tt.sick.success
					left_icon = root

					reverse_add_opinion = {
						target = scope:vassal
						modifier = feast_had_good_time_together_opinion
						opinion = 15
					}

					contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
				}
			}
			20 = { # The feeling's pass
				desc = ach_coronation.0026.a.tt.critical_success
				send_interface_toast = {
					title = ach_coronation.0026.a.tt.critical_success

					reverse_add_opinion = {
						target = scope:vassal
						modifier = feast_had_good_time_together_opinion
						opinion = 15
					}

					stress_impact = {
						base = minor_stress_loss
					}
				}
			}
		}
	}

	option = { # Vassal, help me!
		name = ach_coronation.0026.b

		custom_tooltip = ach_coronation.0026.b.tt

		random = {
			chance = 50
			contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
		}

		hidden_effect = {
			add_opinion = {
				target = scope:vassal
				modifier = grateful_opinion
				opinion = 15
			}
		}
		scope:vassal = {
			add_hook = {
				target = root
				type = favor_hook
			}
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = arrogant
				factor = 0.5
			}
			modifier = {
				has_trait = shy
				factor = 0.5
			}
		}
	}

	option = { # Bail on the feast
		name = ach_coronation.0026.c

		flavor = ach_coronation.0026.c.flavor

		random = {
			chance = 25
			contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
		}

		every_vassal = {
			limit = {
				OR = {
					government_has_flag = government_is_tribal
					government_has_flag = government_is_nomadic
				}
			}
			custom = custom.every_tribal_nomadic_vassal
			add_opinion = {
				target = root
				modifier = opinion_acting_strange
				opinion = -10
			}
		}

		ai_chance = {
			base = 100
			modifier = {
				has_trait = arrogant
				factor = 0.5
			}
			modifier = {
				has_trait = stubborn
				factor = 0.5
			}
		}
	}
}

######################
# An attendee brings some hashish
# by Jay Zaborowski
# 0027
scripted_trigger can_be_hashishiyah_ignoring_region_trigger = {
	# You meet all the Hashishiyah triggers besides geographic_region
	is_adult = yes
	NOR = {
		has_trait = drunkard
		has_trait = hashishiyah
		has_trait = temperate
	}
	NAND = {
		faith = { trait_is_sin = hashishiyah }
		has_trait = zealous
	}
}

scripted_trigger eligible_to_join_stoner_trigger = {
	is_available_in_activity_trigger = yes
	OR = {
		has_trait = hashishiyah
		can_be_hashishiyah_ignoring_region_trigger = yes
	}
}

ach_coronation.0027 = {
	type = activity_event
	title = ach_coronation.0027.t
	desc = {
		desc = ach_coronation.0027.desc
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:stoner = {
						OR = {
							has_trait = faith_warrior
							has_trait = crusader_king
						}
					}
				}
				desc = ach_coronation.0027.desc.char.crusader
			}
			triggered_desc = {
				trigger = {
					scope:stoner = {
						has_trait = varangian
						exists = title:e_byzantium.holder
					}
				}
				desc = ach_coronation.0027.desc.char.varangian
			}
			desc = ach_coronation.0027.desc.char.other
		}
	}

	left_portrait = { 
		character = root
		animation = interested
	}

	center_portrait = { 
		character = scope:partaker
		animation = interested_left
	}

	right_portrait = { 
		character = scope:stoner
		animation = wedding_drunk
	}

	cooldown = { years = 1 }
	
	theme = feast_activity

	trigger = {
		OR = { # If you can't normally be a Hashishiyah, look for some exceptions
			can_be_hashishiyah = yes
			AND = { # If a European Christian, the crusades are going on
				location = { geographical_region = world_europe }
				religion = {
					this = religion:christianity_religion
					exists = var:variable_ghw_unlocked
				}
			}
			AND = { # If in Scandinavia, you have access to Varangians and they still exist
				location = { geographical_region = world_europe_north }
				title:e_byzantium ?= { has_variable = founded_varangian_guard }
				OR = {
					culture = { has_cultural_pillar = heritage_north_germanic }
					dynasty ?= { has_dynasty_perk = fp1_adventure_legacy_1 }
				}
			}
		}
		involved_activity = {
			any_attending_character = {
				eligible_to_join_stoner_trigger = yes
				this != root
				count > 1 # In case the Stoner also meets the trigger
			}
		}
	}

	weight_multiplier = {
		base = 1
		modifier = {
			factor = 2
			OR = {
				can_be_hashishiyah_ignoring_region_trigger = yes
				has_trait = hashishiyah
			}
		}
		modifier = {
			factor = 2
			involved_activity = {
				any_attending_character = {
					has_trait = hashishiyah
				}
			}
		}
		modifier = {
			factor = 3
			faith = {
				has_variable = variable_ghw_cooldown # There was a recent crusade
				religion = { this = religion:christianity_religion }
			}
		}
	}

	immediate = {
		play_music_cue = "middleeasterncourt_cue"
		involved_activity = {
			random_attending_character = {
				limit = {
					this != root
					this != prev.activity_host
					is_ai = yes
					is_available_in_activity_trigger = yes
					has_trait = hashishiyah
				}
				alternative_limit = {
					this != root
					this != prev.activity_host
					is_ai = yes
					is_available_in_activity_trigger = yes
					can_be_hashishiyah_ignoring_region_trigger = yes
					OR = {
						can_be_hashishiyah = yes
						can_be_hashishiyah_ignoring_region_trigger = yes
					}
					OR = {
						has_trait = faith_warrior
						has_trait = crusader_king
						has_trait = varangian
					}
				}
				save_scope_as = stoner
			}

			root = {
				if = { # If the stoner does not exist, generate a...
					limit = { NOT = { exists = scope:stoner } }
					if = { # Varangian (if you're Scandinavian)
						limit = {
							location = { geographical_region = world_europe_north }
							title:e_byzantium ?= { has_variable = founded_varangian_guard }
							OR = {
								culture = { has_cultural_pillar = heritage_north_germanic } 
								dynasty = { has_dynasty_perk = fp1_adventure_legacy_1 }
							}
						}
						create_character = {
							save_scope_as = stoner
							culture = root.culture
							faith = root.faith
							location = root.location
							template = varangian_template
							trait = hashishiyah
						}
						title:e_byzantium.holder.culture = { save_scope_as = emperor_culture }
					}
					else_if = { # Crusader (if you're Christian)
						limit = {
							location = { geographical_region = world_europe }
							faith = { has_variable = variable_ghw_cooldown }
							OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
						}
						create_character = {
							save_scope_as = stoner
							culture = root.culture
							faith = root.faith
							location = root.location
							template = knight
							trait = hashishiyah
							trait = faith_warrior
						}
					}
					else = { # Some Reveler type of person
						create_character = {
							save_scope_as = stoner
							culture = root.culture
							faith = root.faith
							location = root.location
							template = diplomacy_court_position_holder_template
							trait = hashishiyah
							trait = lifestyle_traveler
						}
					}
					scope:stoner = {
						add_to_activity = root.involved_activity
					}
					add_character_flag = created_character_ach_coronation_0027
				}
			}

			random_attending_character = {
				limit = {
					eligible_to_join_stoner_trigger = yes
					has_trait = hashishiyah
					this != scope:stoner
					this != root
				}
				alternative_limit = {
					eligible_to_join_stoner_trigger = yes
					this != scope:stoner
					this != root
				}
				save_scope_as = partaker
			}
		}
	}

	option = { # If Hashish is not available, purchase a supply
		name = ach_coronation.0027.a
		trigger = {
			NOT = { has_trait = hashishiyah } # You aren't already a Hashishiyah
			can_be_hashishiyah = no # You can't be a Hashishiyah
			can_be_hashishiyah_ignoring_region_trigger = yes # But only because of your region
		}

		reverse_add_opinion = {
			target = scope:stoner
			modifier = purchased_hashish_opinion
			opinion = 20
		}

		pay_short_term_gold = {
			target = scope:stoner
			gold = medium_gold_value
		}

		add_character_modifier = {
			modifier = ach_secret_stash_modifier
			years = 4
		}

		random = {
			chance = 20
			add_trait = hashishiyah
		}

		if = {
			limit = {
				faith = { trait_is_sin = hashishiyah }
			}
			add_piety = major_piety_loss
			stress_impact = {
				zealous = major_stress_impact_gain
				cynical = minor_stress_impact_loss
			}
		}
		else_if = {
			limit = {
				faith = { trait_is_virtue = hashishiyah }
			}
			add_piety = minor_piety_gain
			stress_impact = {
				cynical = medium_stress_impact_gain
				zealous = minor_stress_impact_loss
			}
		}

		stress_impact = {
			greedy = minor_stress_impact_gain
			avaricious = minor_stress_impact_gain
			temperate = medium_stress_impact_gain
		}
		
		ai_chance = {
			modifier = {
				OR = {
					has_trait = lifestyle_reveler
					has_trait = gluttonous
					has_trait = gregarious
				}
				factor = 2
			}
			base = 100
			modifier = {
				OR = {
					has_trait = greedy
					has_trait = avaricious
				}
				factor = 0.5
			}
			modifier = {
				has_trait = temperate
				factor = 0
			}
		}
	}

	option = { # Join in
		name = ach_coronation.0027.b
		name = {
			trigger = { has_trait = hashishiyah }
			text = ach_coronation.0027.b.hashishiyah
		}
		trait = hashishiyah

		reverse_add_opinion = {
			target = scope:stoner
			modifier = camp_party_reveled_opinion
			opinion = 10
		}
		reverse_add_opinion = {
			target = scope:partaker
			modifier = camp_party_reveled_opinion
			opinion = 10
		}

		if = {
			limit = {
				has_trait = lifestyle_reveler
			}
			add_trait_xp = {
				trait = lifestyle_reveler
				value = 5
			}
		}

		if = { # You already love hashish - let's be smoke buddies!
			limit = { has_trait = hashishiyah }
			if = {
				limit = {
					reverse_opinion = {
						target = scope:stoner
						value > 0
					}
					OR = {
						scope:stoner = { is_ai = yes }
						AND = {
							scope:stoner = { is_ai = no }
							is_ai = no
						}
					}
				}
				set_relation_friend = {
					target = scope:stoner
					reason = friend_got_high_together
				}
			}
			else = {
				reverse_add_opinion = {
					target = scope:stoner
					modifier = pleased_opinion
					opinion = 30
				}
			}
		}
		else_if = { # Else, if Hashish is available, chance to become a Hashiyah
			limit = {
				can_be_hashishiyah = yes # You can be a Hahishiyah
			}
			random = {
				chance = 20
				add_trait = hashishiyah
			}
		}

		add_character_modifier = {
			modifier = stress_hashish_stupor
			years = 1
		}

		if = {
			limit = {
				faith = { trait_is_sin = hashishiyah }
			}
			add_piety = minor_piety_loss
			stress_impact = {
				zealous = medium_stress_impact_gain
				cynical = minor_stress_impact_loss
			}
		}
		else_if = {
			limit = {
				faith = { trait_is_virtue = hashishiyah }
			}
			add_piety = minor_piety_gain
			stress_impact = {
				cynical = medium_stress_impact_gain
				zealous = minor_stress_impact_loss
			}
		}

		stress_impact = {
			base = medium_stress_impact_loss
			temperate = medium_stress_impact_gain
			shy = minor_stress_impact_gain
			hashishiyah = minor_stress_impact_loss # Bonus stress loss if you're already a fan
		}
		
		ai_chance = {
			base = 100
			modifier = {
				NOT = { has_trait = cynical }
				faith = { trait_is_virtue = hashishiyah }
				factor = 2
			}
			modifier = {
				OR = {
					has_trait = lifestyle_reveler
					has_trait = gluttonous
					has_trait = gregarious
				}
				factor = 2
			}
			modifier = {
				has_trait = shy
				factor = 0.5
			}
		}
	}

	option = { # Host: Get this person out of here - drugs are bad!!!
		name = ach_coronation.0027.c

		trigger = {
			this = involved_activity.activity_host
		}

		add_prestige = medium_prestige_gain

		reverse_add_opinion = {
			target = scope:stoner
			modifier = angry_opinion
			opinion = -25
		}
		reverse_add_opinion = {
			target = scope:partaker
			modifier = disappointed_opinion
			opinion = -10
		}

		scope:stoner = { remove_from_activity = involved_activity }

		if = {
			limit = {
				faith = { trait_is_sin = hashishiyah }
			}
			add_piety = medium_piety_gain
			stress_impact = {
				cynical = minor_stress_impact_gain
				zealous = medium_stress_impact_loss
			}
		}
		else_if = {
			limit = {
				faith = { trait_is_virtue = hashishiyah }
			}
			add_piety = medium_piety_loss
			stress_impact = {
				zealous = minor_stress_impact_gain
				cynical = medium_stress_impact_loss
			}
		}

		stress_impact = {
			gregarious = minor_stress_impact_gain
			lifestyle_reveler = minor_stress_impact_gain
			hashishiyah = major_stress_impact_gain
		}
		
		ai_chance = {
			base = 50
			modifier = {
				has_trait = zealous
				faith = { trait_is_sin = hashishiyah }
				factor = 4
			}
			modifier = {
				has_trait = cynical
				faith = { trait_is_virtue = hashishiyah }
				factor = 4
			}
		}
	}

	option = { # I'm good
		name = ach_coronation.0027.d
		flavor = {
			triggered_desc = {
				trigger = { this = involved_activity.activity_host }
				desc = ach_coronation.0027.d.host
			}
		}

		if = {
			limit = { this = involved_activity.activity_host }
			custom_tooltip = coronation_tt_positive_tiny
			involved_activity = { activity_special_type_progression_miniscule = yes }
			coronation_add_magnificence_log_effect = {
        	    VALUE = flag:positive_miniscule
        	    CHAR = root
        	}
		}
		else = {
			add_prestige = minor_prestige_gain
		}

		if = {
			limit = {
				faith = { trait_is_sin = hashishiyah }
			}
			add_piety = minor_piety_gain
		}
		else_if = {
			limit = {
				faith = { trait_is_virtue = hashishiyah }
			}
			add_piety = minor_piety_loss
		}

		stress_impact = {
			lifestyle_reveler = minor_stress_impact_gain
			gregarious = minor_stress_impact_gain
			temperate = minor_stress_impact_loss
			hashishiyah = medium_stress_impact_gain
		}
		
		ai_chance = {
			base = 100
			modifier = {
				has_trait = temperate
				NOT = { has_trait = hashishiyah }
				factor = 2
			}
			modifier = {
				OR = {
					has_trait = lifestyle_reveler
					has_trait = gluttonous
				}
				factor = 0.5
			}
			modifier = {
				has_trait = hashishiyah
				factor = 0.25
			}
		}
	}

	after = {
		if = {
			limit = {
				has_character_flag = created_character_ach_coronation_0027
				scope:stoner = { NOT = { has_relation_friend = root } }
			}
			hidden_effect = {
				scope:stoner = { silent_disappearance_effect = yes }
			}
		}
	}
}


######################
# Host: Drinking contest with a detractor
# by Jay Zaborowski
# 0028
scripted_effect ach_coronation_0028_success_effect = {
	add_prestige = minor_prestige_gain

	custom_tooltip = coronation_tt_positive_medium
	involved_activity = { activity_special_type_progression_medium = yes }
	coronation_add_magnificence_log_effect = {
        VALUE = flag:positive_medium
        CHAR = root
    }

	if = {
		limit = { has_activity_intent = coronation_impress_attendees }
		every_vassal = {
			limit = {
				OR = {
					government_has_flag = government_is_tribal
					government_has_flag = government_is_nomadic
				}
			}

			custom = custom.every_tribal_nomadic_vassal

			add_opinion = {
				target = root
				modifier = impressed_opinion
				opinion = 10
			}
		}
	}
	else_if = {
		limit = { has_activity_intent = coronation_weaken_detractors }
		every_vassal = {
			limit = {
				OR = {
					government_has_flag = government_is_tribal
					government_has_flag = government_is_nomadic
				}
			}

			custom = custom.every_tribal_nomadic_vassal

			add_opinion = {
				target = scope:drinker
				modifier = failure_opinion
				opinion = -15
			}
		}
	}

	create_character_memory = {
		type = defeated_detractor_in_drinking_contest_memory
		participants = {
			detractor = scope:drinker
		}
	}
}

ach_coronation.0028 = {
	type = activity_event
	title = ach_coronation.0028.t
	desc = ach_coronation.0028.desc

	left_portrait = { 
		character = root
		animation = disapproval
		camera = camera_event_left_pointing_back_fov20
	}

	center_portrait = { 
		character = scope:drinker
		animation = rage
		camera = camera_event_center_pointing_forward_fov35
	}

	right_portrait = { 
		character = scope:onlooker
		animation = interested
		camera = camera_event_very_right_forward_fov30
	}
	
	theme = feast_activity

	cooldown = { years = 1 }

	trigger = {
		OR = {
			has_activity_intent = coronation_impress_attendees
			has_activity_intent = coronation_weaken_detractors
		}
		government_has_flag = government_is_tribal
		faith_forbids_alcohol_trigger = no
		involved_activity = {
			any_guest_subset = {
				name = detractor
				is_available_in_activity_trigger = yes
				faith_forbids_alcohol_trigger = no
			}
		}
	}

	immediate = {
		# Grab the highest prowess Detractor
		involved_activity = {
			random_guest_subset = {
				name = detractor
				limit = {
					is_available_in_activity_trigger = yes
					faith_forbids_alcohol_trigger = no
				}
				weight = {
					base = 1
					is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
					is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }

					modifier = {
						add = {
							value = prowess
							multiply = 5
						}
					}
					modifier = {
						has_trait = temperate
						factor = 0.5
					}
					modifier = {
						has_trait = drunkard
						factor = 1.5
					}
				}
				save_scope_as = drinker
			}
			random_attending_character = {
				limit = {
					this != root
					this != scope:drinker
					is_available_in_activity_trigger = yes
					faith_forbids_alcohol_trigger = no
				}
				save_scope_as = onlooker
			}
		}
	}

	option = { # I'll outdrink them all!
		name = ach_coronation.0028.a
		skill = prowess

		duel = {
			skills = { prowess }
			target = scope:drinker
			50 = { # Drink them under the table
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
				}
				modifier = {
					add = 10
					has_trait = drunkard
				}
				modifier = {
					factor = 1.5
					health > scope:drinker.health
				}
				modifier = { # Chonky people can take their alcohol better
					factor = 1.5
					current_weight > scope:drinker.current_weight
				}

				desc = ach_coronation.0028.a.win

				scope:drinker = {
					if = {
						limit = { has_activity_intent = coronation_weaken_detractors }
						add_prestige = major_prestige_loss
					}
					else = {
						add_prestige = medium_prestige_loss
					}
				}

				send_interface_toast = {
					title = ach_coronation.0028.a.win
					type = event_toast_effect_good
					left_icon = root
					right_icon = scope:drinker

					ach_coronation_0028_success_effect = yes
				}
			}
			50 = { # You fail
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
				}
				modifier = {
					add = 10
					scope:drinker = { has_trait = drunkard }
				}
				modifier = {
					factor = 1.5
					health < scope:drinker.health
				}
				modifier = {
					factor = 1.5
					current_weight < scope:drinker.current_weight
				}

				desc = ach_coronation.0028.a.lose

				scope:drinker = { add_prestige = minor_prestige_gain }

				send_interface_toast = {
					title = ach_coronation.0028.a.lose
					type = event_toast_effect_good
					left_icon = root
					right_icon = scope:drinker

					add_prestige = medium_prestige_loss

					every_vassal = {
						limit = {
							OR = {
								government_has_flag = government_is_tribal
								government_has_flag = government_is_nomadic
							}
						}
						custom = custom.every_tribal_nomadic_vassal
						add_opinion = {
							target = root
							modifier = unimpressed_opinion
							opinion = -10
						}
					}
				}
			}
		}

		random = {
			chance = 5
			add_trait = drunkard
		}
		
		stress_impact = {
			drunkard = medium_stress_impact_loss
			lifestyle_reveler = minor_stress_impact_loss
			gregarious = minor_stress_impact_loss
			temperate = minor_stress_impact_gain
		}

		ai_chance = {
			base = 75
			ai_value_modifier = {
				ai_sociability = 1
			}
			modifier = {
				factor = 1.5
				OR = {
					has_trait = gregarious
					has_trait = drunkard
					has_trait = gluttonous
				}
			}
			modifier = {
				factor = 0.5
				has_trait = temperate
			}
		}
	}

	option = { # Maybe if I slipped something into HerHis drink...
		name = ach_coronation.0028.b
		skill = intrigue

		duel = {
			skill = intrigue
			value = 12
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}

				desc = ach_coronation.0028.b.win

				scope:drinker = {
					if = {
						limit = { has_activity_intent = coronation_weaken_detractors }
						add_prestige = major_prestige_loss
					}
					else = {
						add_prestige = medium_prestige_loss
					}
				}

				send_interface_toast = {
					title = ach_coronation.0028.b.win
					type = event_toast_effect_good
					left_icon = root
					right_icon = scope:drinker

					ach_coronation_0028_success_effect = yes
				}
			}
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}

				scope:drinker = {
					add_opinion = {
						target = root
						modifier = tried_to_poison_me_opinion
						opinion = -40
					}
					if = {
						limit = {
							OR = {
								is_ai = yes
								AND = {
									root = {
										is_ai = no
									}
									is_ai = no
								}
							}
						}
						progress_towards_rival_effect = {
							REASON = rival_tried_to_poison
							CHARACTER = root
							OPINION = 0
						}
					}
				}
				coronation_move_towards_detractor_effect = { CHARACTER = scope:drinker }

				desc = ach_coronation.0028.b.lose

				send_interface_toast = {
					title = ach_coronation.0028.b.lose
					type = event_toast_effect_good
					left_icon = root
					right_icon = scope:drinker

					custom_tooltip = coronation_tt_negative
					involved_activity = { activity_special_type_progression_negative = yes }
					coronation_add_magnificence_log_effect = {
						VALUE = flag:negative
						CHAR = root
					}

					every_vassal = {
						limit = {
							OR = {
								government_has_flag = government_is_tribal
								government_has_flag = government_is_nomadic
							}
						}
						custom = custom.every_tribal_nomadic_vassal
						add_opinion = {
							target = root
							modifier = dishonorable_liege_opinion
							opinion = -20
						}
					}
				}
				create_character_memory = {
					type = was_caught_cheating_in_drinking_contest_memory
					participants = {
						detractor = scope:drinker
					}
				}
			}
		}

		scope:drinker = {
			if = {
				limit = {
					can_contract_disease_trigger = { DISEASE = ill }
				}
				random = {
					chance = {
						value = 50
						add = {
							value = prowess
							multiply = -1
						}
					}
					contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
				}
			}
		}
		
		stress_impact = {
			honest = massive_stress_impact_gain
			just = medium_stress_impact_gain
			temperate = minor_stress_impact_gain
		}

		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_honor = -1
			}

			opinion_modifier = { opinion_target = scope:drinker }

			modifier = {
				factor = 0
				OR = {
					intrigue <= 8
					ai_honor >= low_positive_ai_value
				}
			}
		}
	}

	option = { # I'll be fine
		name = ach_coronation.0028.c

		scope:drinker = {
			add_opinion = {
				target = root
				modifier = disappointed_opinion
				opinion = -10
			}
		}

		add_legitimacy = minor_legitimacy_loss

		stress_impact = {
			temperate = minor_stress_impact_loss
			drunkard = medium_stress_impact_gain
			lifestyle_reveler = minor_stress_impact_gain
		}

		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_sociability = -1
			}
			modifier = {
				factor = 2
				has_trait = temperate
			}
		}
	}
}

######################
# Host: Guests offer to help get a hunt going
# by Jay Zaborowski
# 0029
scripted_trigger ach_coronation_0029_friend_trigger = {
	this != involved_activity.activity_host
	is_available_in_activity_trigger = yes
	can_hunt_trigger = yes
	is_vegetarian_trigger = no
	likes_character_trigger = { CHARACTER = involved_activity.activity_host }
}

ach_coronation.0029 = {
	type = activity_event
	title = ach_coronation.0029.t
	desc = ach_coronation.0029.desc

	left_portrait = { 
		character = root
		animation = thinking
		camera = camera_event_table_left
	}

	center_portrait = { 
		character = scope:second
		triggered_animation = {
			trigger = { use_goblet_in_tavern_trigger = yes }
			animation = drink_goblet
		}
		triggered_animation = {
			trigger = { use_goblet_in_tavern_trigger = no }
			animation = drink
		}
		camera = camera_event_table_center
	}

	right_portrait = { 
		character = scope:first
		triggered_animation = {
			trigger = { use_goblet_in_tavern_trigger = yes }
			animation = toast_goblet
		}
		triggered_animation = {
			trigger = { use_goblet_in_tavern_trigger = no }
			animation = toast
		}
		camera = camera_event_table_right_far
	}
	
	theme = feast_activity

	cooldown = { years = 1 }

	trigger = {
		OR = {
			has_activity_intent = coronation_impress_attendees
			has_activity_intent = coronation_embrace_supporters
			has_activity_intent = coronation_exalt_crown
		}
		has_trait = lifestyle_hunter
		is_vegetarian_trigger = no
		involved_activity = {
			any_attending_character = {
				ach_coronation_0029_friend_trigger = yes
				count >= 2
			}
		}
	}
	
	weight_multiplier = {
		base = 1
		modifier = {
			has_trait = lifestyle_hunter
			has_trait_xp = {
				trait = lifestyle_hunter
				track = hunter
				value >= 50
			}
			add = 1
		}
		modifier = {
			has_trait = lifestyle_hunter
			has_trait_xp = {
				trait = lifestyle_hunter
				track = hunter
				value = 100
			}
			add = 1
		}
	}

	immediate = {
		involved_activity = {
			activity_host = { save_scope_as = host }
			random_attending_character = {
				limit = { # Is your buddy and a hunter
					ach_coronation_0029_friend_trigger = yes
					has_trait = lifestyle_hunter
					has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
				}
				alternative_limit = { # Or one of those, at least
					ach_coronation_0029_friend_trigger = yes
					OR = {
						has_trait = lifestyle_hunter
						has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
					}
				}
				alternative_limit = { # Or exists, at least
					ach_coronation_0029_friend_trigger = yes
				}
				weight = {
					base = 1

					modifier = {
						has_trait = lifestyle_hunter
						add = 4
					}
					modifier = {
						add = 1
						reverse_opinion = {
							target = root
							value > 0
						}
					}
					modifier = {
						add = 2
						reverse_opinion = {
							target = root
							value > 20
						}
					}
					modifier = {
						add = 3
						reverse_opinion = {
							target = root
							value > 40
						}
					}
					modifier = {
						add = 5
						reverse_opinion = {
							target = root
							value > 60
						}
					}
					modifier = {
						add = 8
						reverse_opinion = {
							target = root
							value > 80
						}
					}
				}
				save_scope_as = first
			}
			random_attending_character = {
				limit = {
					ach_coronation_0029_friend_trigger = yes
					this != scope:first
					has_trait = lifestyle_hunter
					has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
				}
				alternative_limit = {
					ach_coronation_0029_friend_trigger = yes
					this != scope:first
					OR = {
						has_trait = lifestyle_hunter
						has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
					}
				}
				alternative_limit = {
					ach_coronation_0029_friend_trigger = yes
					this != scope:first
				}
				weight = {
					base = 1

					modifier = {
						has_trait = lifestyle_hunter
						add = 4
					}
					modifier = {
						add = 1
						reverse_opinion = {
							target = root
							value > 0
						}
					}
					modifier = {
						add = 2
						reverse_opinion = {
							target = root
							value > 20
						}
					}
					modifier = {
						add = 3
						reverse_opinion = {
							target = root
							value > 40
						}
					}
					modifier = {
						add = 5
						reverse_opinion = {
							target = root
							value > 60
						}
					}
					modifier = {
						add = 8
						reverse_opinion = {
							target = root
							value > 80
						}
					}
				}
				save_scope_as = second
			}
		}
	}

	option = { # Let's get a Hunt ready
		name = ach_coronation.0029.a

		reason = activity_intent

		flavor = {
			first_valid = {
				triggered_desc = {
					trigger = { has_activity_intent = coronation_impress_attendees }
					desc = ach_coronation.0029.a.flavor.impress_attendees
				}
				triggered_desc = {
					trigger = { has_activity_intent = coronation_embrace_supporters }
					desc = ach_coronation.0029.a.flavor.embrace_supporters
				}
				triggered_desc = {
					trigger = { has_activity_intent = coronation_exalt_crown }
					desc = ach_coronation.0029.a.flavor.exalt_crown
				}
			}
		}
		
		switch = {
			trigger = has_activity_intent
			coronation_impress_attendees = {
				custom_tooltip = ach_coronation.0029.a.impressive_hunt
				add_character_flag = impressive_hunt
			}
			coronation_embrace_supporters = {
				custom_tooltip = ach_coronation.0029.a.personal_hunt
				add_character_flag = personal_hunt
			}
			coronation_exalt_crown = {
				custom_tooltip = ach_coronation.0029.a.glorious_hunt
				add_character_flag = glorious_hunt
			}
		}
	}

	option = { # Want to try falconry?
		name = ach_coronation.0029.b
		trigger = { has_dlc_feature = tours_and_tournaments }
		
		flavor = ach_coronation.0029.b.flavor

		custom_tooltip = ach_coronation.0029.b.free_falconry
		add_character_flag = free_falconry
	}

	option = { # Is Temperance not a virtue?
		name = {
			trigger = {
				faith = { trait_is_virtue = temperate }
				NOR = {
					has_trait = gluttonous
					has_trait = cynical
				}
			}
			text = ach_coronation.0029.c.virtuous
		}
		name = ach_coronation.0029.c

		if = {
			limit = {
				faith = { trait_is_virtue = temperate }
				NOR = {
					has_trait = gluttonous
					has_trait = cynical
				}
			}
			custom_tooltip = ach_coronation.0029.c.virtuous.tt
			
			add_piety = medium_piety_gain

			every_vassal = {
				limit = {
					has_vassal_stance = zealot
				}
				custom = every_zealot_vassal
				add_opinion = {
					modifier = pious_opinion
					target = root
					opinion = 5
				}
			}
		}
		else = {
			add_prestige = minor_prestige_gain
		}

		ai_chance = {
			base = 150
		}
	}
}
