namespace = fp1_jomsvikings

##################################################
# #Standard Events
# 0001 - 0010	Jomsvikings offer a Retainer
# 0011 - 0020	Jomsvikings terrorise their neighbours
# 0021 - 0030	Jomsvikings send Event Troops
# 0031 - 0040	SPARE
# 0041 - 0050	Jomsvikings challenge a Dishonourable Norse Pagan Ruler to Holmgang
#
# #Special Events
# 1001 - 1010	Jomsvikings Destroyed
# 1011 - 1020	Jomsvikings Formed Autonomously
##################################################





##################################################
# #Generic Scripted Triggers

scripted_trigger fp1_pious_enough_for_jomsvikings_reward_trigger = {
	# You must share their faith.
	faith = global_var:jomsvikings_title.holder.faith
	# Piety level minimum.
	piety_level >= high_piety_level
	# Sin maximum.
	num_sinful_traits <= 1
	# Piety to spend.
	piety >= major_piety_value
	# The Grandmaster needs to not hate you also.
	global_var:jomsvikings_title.holder = {
		has_any_bad_relationship_with_root_trigger = no 
		opinion = {
			target = root
			value >= low_negative_opinion
		}
	}
}

scripted_trigger fp1_jomsvikings_exist_in_range_trigger = {
	# Do they exist at all?
	exists = global_var:jomsvikings_title
	# Are they within diplomatic range?
	exists = global_var:jomsvikings_title.holder
	in_diplomatic_range = global_var:jomsvikings_title.holder
}

##################################################
# #Standard Events

##################################################
# Jomsvikings offer a Retainer
# by Ewan Cowhig Croft
# 0001 - 0010
##################################################

#	You are rewarded for your piety with a loyal warrior.
fp1_jomsvikings.0001 = {
	type = character_event
	title = fp1_jomsvikings.0001.t
	desc = {
		desc = fp1_jomsvikings.0001.desc.intro
		# Describe scope:retainer_a.
		first_valid = {
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:zealous }
				desc = fp1_jomsvikings.0001.desc.zealous
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:wrathful }
				desc = fp1_jomsvikings.0001.desc.wrathful
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:impatient }
				desc = fp1_jomsvikings.0001.desc.impatient
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:arrogant }
				desc = fp1_jomsvikings.0001.desc.arrogant
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:brave }
				desc = fp1_jomsvikings.0001.desc.brave
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:ambitious }
				desc = fp1_jomsvikings.0001.desc.ambitious
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:diligent }
				desc = fp1_jomsvikings.0001.desc.diligent
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:gregarious }
				desc = fp1_jomsvikings.0001.desc.gregarious
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:stubborn }
				desc = fp1_jomsvikings.0001.desc.stubborn
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:fickle }
				desc = fp1_jomsvikings.0001.desc.fickle
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:vengeful }
				desc = fp1_jomsvikings.0001.desc.vengeful
			}
			triggered_desc = {
				trigger = { scope:retainer_a_descriptor = flag:viking }
				desc = fp1_jomsvikings.0001.desc.viking
			}
		}
		desc = fp1_jomsvikings.0001.desc.connector
		# Describe scope:retainer_b.
		first_valid = {
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:zealous }
				desc = fp1_jomsvikings.0001.desc.zealous
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:wrathful }
				desc = fp1_jomsvikings.0001.desc.wrathful
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:impatient }
				desc = fp1_jomsvikings.0001.desc.impatient
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:arrogant }
				desc = fp1_jomsvikings.0001.desc.arrogant
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:brave }
				desc = fp1_jomsvikings.0001.desc.brave
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:ambitious }
				desc = fp1_jomsvikings.0001.desc.ambitious
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:diligent }
				desc = fp1_jomsvikings.0001.desc.diligent
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:gregarious }
				desc = fp1_jomsvikings.0001.desc.gregarious
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:stubborn }
				desc = fp1_jomsvikings.0001.desc.stubborn
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:fickle }
				desc = fp1_jomsvikings.0001.desc.fickle
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:vengeful }
				desc = fp1_jomsvikings.0001.desc.vengeful
			}
			triggered_desc = {
				trigger = { scope:retainer_b_descriptor = flag:viking }
				desc = fp1_jomsvikings.0001.desc.viking
			}
		}
		desc = fp1_jomsvikings.0001.desc.outro
	}
	theme = faith
	left_portrait = {
		character = scope:retainer_a
		animation = personality_zealous
	}
	right_portrait = {
		character = scope:retainer_b
		animation = admiration
	}
	lower_center_portrait = scope:leader
	override_background = { reference = throne_room }

	trigger = {
		# DLC check.
		has_fp1_dlc_trigger = yes
		# The Jomsvikings must exist; check this before the usual standard checks for best efficiency.
		fp1_jomsvikings_exist_in_range_trigger = yes
		# Standard checks.
		is_available_at_peace_adult = yes
		NOT = { has_character_flag = had_event_fp1_jomsvikings_0001 }
		# You must fulfill their generic piety requirements.
		fp1_pious_enough_for_jomsvikings_reward_trigger = yes
	}

	weight_multiplier = {
		base = 1
		
		# Weight up for excess levels of piety & high levels of prestige.
		fp1_jomsvikings_approve_of_extra_piety_and_prestige_modifier = yes
	}

	immediate = {
		add_character_flag = {
			flag = had_event_fp1_jomsvikings_0001
			days = 1825
		}
		# Grab the Grandmaster.
		global_var:jomsvikings_title.holder = { save_scope_as = leader }
		# Generate a brace of possible retainers.
		## First a martial-focused character.
		create_character = {
			location = root.capital_province
			template = fp1_jomsviking_retainer_martial
			save_scope_as = retainer_a
		}
		## Then a prowess-focused character.
		create_character = {
			location = root.capital_province
			template = fp1_jomsviking_retainer_prowess
			save_scope_as = retainer_b
		}
		# Generate a descriptive string for each retainer.
		## Twelve options of 8.3% each.
		## First, retainer_a.
		scope:retainer_a = {
			random_list = {
				# Zealous
				100 = {
					trigger = { has_trait = zealous }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:zealous
					}
				}
				# Wrathful
				100 = {
					trigger = { has_trait = wrathful }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:wrathful
					}
				}
				# Impatient
				100 = {
					trigger = { has_trait = impatient }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:impatient
					}
				}
				# Arrogant
				100 = {
					trigger = { has_trait = arrogant }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:arrogant
					}
				}
				# Brave
				100 = {
					trigger = { has_trait = brave }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:brave
					}
				}
				# Ambitious
				100 = {
					trigger = { has_trait = ambitious }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:ambitious
					}
				}
				# Diligent
				100 = {
					trigger = { has_trait = diligent }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:diligent
					}
				}
				# Gregarious
				100 = {
					trigger = { has_trait = gregarious }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:gregarious
					}
				}
				# Stubborn
				100 = {
					trigger = { has_trait = stubborn }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:stubborn
					}
				}
				# Fickle
				100 = {
					trigger = { has_trait = fickle }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:fickle
					}
				}
				# Vengeful
				100 = {
					trigger = { has_trait = vengeful }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:vengeful
					}
				}
				# Viking
				100 = {
					trigger = { has_trait = viking }
					save_scope_value_as = {
						name = retainer_a_descriptor
						value = flag:viking
					}
				}
			}
		}
		## Then, retainer_b.
		scope:retainer_b = {
			random_list = {
				# Zealous
				100 = {
					trigger = {
						has_trait = zealous
						NOT = { scope:retainer_a_descriptor = flag:zealous }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:zealous
					}
				}
				# Wrathful
				100 = {
					trigger = {
						has_trait = wrathful
						NOT = { scope:retainer_a_descriptor = flag:wrathful }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:wrathful
					}
				}
				# Impatient
				100 = {
					trigger = {
						has_trait = impatient
						NOT = { scope:retainer_a_descriptor = flag:impatient }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:impatient
					}
				}
				# Arrogant
				100 = {
					trigger = {
						has_trait = arrogant
						NOT = { scope:retainer_a_descriptor = flag:arrogant }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:arrogant
					}
				}
				# Brave
				100 = {
					trigger = {
						has_trait = brave
						NOT = { scope:retainer_a_descriptor = flag:brave }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:brave
					}
				}
				# Ambitious
				100 = {
					trigger = {
						has_trait = ambitious
						NOT = { scope:retainer_a_descriptor = flag:ambitious }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:ambitious
					}
				}
				# Diligent
				100 = {
					trigger = {
						has_trait = diligent
						NOT = { scope:retainer_a_descriptor = flag:diligent }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:diligent
					}
				}
				# Gregarious
				100 = {
					trigger = {
						has_trait = gregarious
						NOT = { scope:retainer_a_descriptor = flag:gregarious }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:gregarious
					}
				}
				# Stubborn
				100 = {
					trigger = {
						has_trait = stubborn
						NOT = { scope:retainer_a_descriptor = flag:stubborn }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:stubborn
					}
				}
				# Fickle
				100 = {
					trigger = {
						has_trait = fickle
						NOT = { scope:retainer_a_descriptor = flag:fickle }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:fickle
					}
				}
				# Vengeful
				100 = {
					trigger = {
						has_trait = vengeful
						NOT = { scope:retainer_a_descriptor = flag:vengeful }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:vengeful
					}
				}
				# Viking
				100 = {
					trigger = {
						has_trait = viking
						NOT = { scope:retainer_a_descriptor = flag:viking }
					}
					save_scope_value_as = {
						name = retainer_b_descriptor
						value = flag:viking
					}
				}
			}
		}
	}

	# Scope:retainer_a looks formidable!
	option = {
		name = fp1_jomsvikings.0001.a

		# Spend the piety cost.
		add_piety = major_piety_loss
		# Gain the courtier.
		add_courtier = scope:retainer_a
		# Send the other lad packing back to the Jomsvikings.
		hidden_effect = {
			scope:leader = { add_courtier = scope:retainer_b }
		}

		stress_impact = {
			trusting = minor_stress_impact_loss
			zealous = medium_stress_impact_loss
			paranoid = medium_stress_impact_gain
			cynical = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = 0.75
				ai_sociability = 0.25
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = trusting
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = zealous
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = paranoid
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = cynical
			}
		}
	}
	
	# Scope:retainer_b shall serve me well.
	option = {
		name = fp1_jomsvikings.0001.b

		# Spend the piety cost.
		add_piety = major_piety_loss
		# Gain the courtier.
		add_courtier = scope:retainer_b
		# Send the other lad packing back to the Jomsvikings.
		hidden_effect = {
			scope:leader = { add_courtier = scope:retainer_a }
		}

		stress_impact = {
			trusting = minor_stress_impact_loss
			zealous = medium_stress_impact_loss
			paranoid = medium_stress_impact_gain
			cynical = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = 0.75
				ai_sociability = 0.25
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = trusting
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = zealous
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = paranoid
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = cynical
			}
		}
	}
	
	# I'm fine, thanks.
	option = {
		name = fp1_jomsvikings.0001.c

		# Gain a little consolation prestige.
		add_prestige = minor_prestige_gain
		# Send both lads packing.
		scope:leader = {
			hidden_effect = {
				add_courtier = scope:retainer_a
				add_courtier = scope:retainer_b
			}
		}
		# The Grandmaster considers this an insult.
		scope:leader = {
			add_opinion = {
				target = root
				modifier = insult_opinion
				opinion = -30
			}
			hidden_effect = {
				if = {
					limit = {
						can_set_relation_potential_rival_trigger = { CHARACTER = root }
					}
					set_relation_potential_rival = root
				}
			}
		}

		stress_impact = {
			paranoid = medium_stress_impact_loss
			cynical = major_stress_impact_loss
			trusting = minor_stress_impact_gain
			zealous = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = -0.5
				ai_rationality = -0.25
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = paranoid
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = cynical
			}
			modifier = {	# Weight down for stress.
				add = -10
				has_trait = trusting
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = zealous
			}
		}
	}
}

##################################################
# Jomsvikings terrorise their neighbours
# by Ewan Cowhig Croft
# 0011 - 0020
##################################################

scripted_trigger fp1_viable_target_for_jomsviking_aggression_trigger = {
	holder = root
	
	# The Jomsvikings won't pillage faithful non-reformist Asatru. Much.
	NOT = { faith = faith:norse_pagan }

	# Otherwise, they need something coastal or nearby.
	OR = {
		title_province = { is_coastal = yes }

		# TIT-25456
		any_neighboring_county = {
			save_temporary_scope_as = current_county
			exists = global_var:jomsvikings_title.holder.faith
			global_var:jomsvikings_title.holder.faith = {
				any_faith_holy_order = {
					title = global_var:jomsvikings_title
					any_leased_title = { county = scope:current_county }
				}
			}
		}
	}
}

scripted_trigger fp1_jomsviking_raid_source_one_wales_trigger = {
	this.leader.capital_province = {
		squared_distance = {
			target = scope:target_county.title_province
			value = squared_distance_small
		}
	}
}

scripted_trigger fp1_jomsviking_raid_source_one_ireland_trigger = {
	this.leader.capital_province = {
		squared_distance = {
			target = scope:target_county.title_province
			value = squared_distance_medium
		}
	}
}

scripted_trigger fp1_jomsviking_raid_source_one_france_trigger = {
	this.leader.capital_province = {
		squared_distance = {
			target = scope:target_county.title_province
			value = squared_distance_large
		}
	}
}

scripted_trigger fp1_jomsviking_raid_source_one_hre_trigger = {
	this.leader.capital_province = {
		squared_distance = {
			target = scope:target_county.title_province
			value = squared_distance_huge
		}
	}
}

#	You are singled out as a traitor/viable target.
fp1_jomsvikings.0011 = {
	type = character_event
	title = {
		first_valid = {
			# Reformed Asatruans.
			triggered_desc = {
				trigger = {
					religion = religion:germanic_religion
					faith = {
						NOT = { has_doctrine_parameter = unreformed }
					}
				}
				desc = fp1_jomsvikings.0011.t.reformed_norse
			}
			# Reformed non-Asatruans.
			triggered_desc = {
				trigger = {
					NAND = {
						religion = religion:germanic_religion
						faith = { has_doctrine_parameter = unreformed }
					}
				}
				desc = fp1_jomsvikings.0011.t.reformed_other
			}
			# Unreformed/fallback.
			desc = fp1_jomsvikings.0011.t.fallback
		}
	}
	desc = {
		desc = fp1_jomsvikings.0011.desc.intro
		# Is this an ideological raid or an economic one?
		first_valid = {
			# Ideological, reformist.
			triggered_desc = {
				trigger = {
					religion = religion:germanic_religion
					faith = {
						NOT = { has_doctrine_parameter = unreformed }
					}
				}
				desc = fp1_jomsvikings.0011.desc.ideological_reformist
			}
			# Ideological, other.
			triggered_desc = {
				trigger = {
					faith = {
						NOT = { has_doctrine_parameter = unreformed }
					}
				}
				desc = fp1_jomsvikings.0011.desc.ideological_other
			}
			# Economic.
			desc = fp1_jomsvikings.0011.desc.economic
		}
		desc = fp1_jomsvikings.0011.desc.outro
	}
	theme = war
	left_portrait = {
		character = root
		animation = shock
	}
	right_portrait = {
		character = scope:leader
		animation = rage
	}
	lower_left_portrait = scope:benefactor
	override_background = { reference = burning_building }

	trigger = {
		# DLC check.
		has_fp1_dlc_trigger = yes
		# The Jomsvikings must exist; check this before the usual standard checks for best efficiency.
		fp1_jomsvikings_exist_in_range_trigger = yes
		# Standard checks.
		is_available_at_peace_adult = yes
		NOT = { has_character_flag = had_event_fp1_jomsvikings_0011 }
		# Must not be following the unreformed version of Norse paganism.
		NOT = { faith = global_var:jomsvikings_title.holder.faith }
		# Out of fairness/for performance, restrict this to dukes & above.
		highest_held_title_tier >= tier_duchy
		# You must either hold a valid coastal province, or else border someone who hosts the Jomsvikings.
		any_sub_realm_county = { fp1_viable_target_for_jomsviking_aggression_trigger = yes }
	}

	weight_multiplier = {
		base = 1

		# Extra rage is reserved for Germanic reformists, as they're the traitoriest traitors.
		modifier = {
			add = 1
			religion = religion:germanic_religion
			faith = {
				NOT = { has_doctrine_parameter = unreformed }
			}
		}
	}

	immediate = {
		play_music_cue = "mx_cue_combat_2"
		# Set up a cooldowns.
		## Reformed Germanics get a shorter cooldown.
		if = {
			limit = {
				religion = religion:germanic_religion
				faith = {
					NOT = { has_doctrine_parameter = unreformed }
				}
			}
			add_character_flag = {
				flag = had_event_fp1_jomsvikings_0011
				days = 1825
			}
		}
		## Everyone else gets a decent breather.
		else = {
			add_character_flag = {
				flag = had_event_fp1_jomsvikings_0011
				days = 5475
			}
		}
		# Grab the Grandmaster.
		global_var:jomsvikings_title.holder = { save_scope_as = leader }
		# Flag a suitable target.
		## First, add everything to a list.
		every_sub_realm_county = {
			limit = { fp1_viable_target_for_jomsviking_aggression_trigger = yes }
			add_to_list = viable_jomsviking_targets_list
		}
		## Then, sort through that list and pick out a painful target.
		ordered_in_list = {
			list = viable_jomsviking_targets_list
			order_by = fp1_jomvsvikings_raid_value
			save_scope_as = target_county
		}
		# And an origin for the Jomsvikings.
		scope:leader.faith = {
			random_faith_holy_order = {
				limit = { leader = scope:leader }
				# Preferring something closer.
				## First, we check to see if it's even necessary to look at distance, since distance is an expensive check.
				if = {
					limit = {
						# Since this is purely for loc, we can just flat rule it out for non-players.
						root = { is_ai = no }
						# Otherwise, we're just looking to see if the Jomsvikings have more than two leased holdings.
						num_leased_titles >= 2
					}
					# Try successive distances.
					## About a Wales or so away.
					if = {
						limit = { fp1_jomsviking_raid_source_one_wales_trigger = yes }
						random_leased_title = {
							limit = { fp1_jomsviking_raid_source_one_wales_trigger = yes }
							save_scope_as = raid_source
						}
					}
					## About an Ireland away.
					if = {
						limit = { fp1_jomsviking_raid_source_one_ireland_trigger = yes }
						random_leased_title = {
							limit = { fp1_jomsviking_raid_source_one_ireland_trigger = yes }
							save_scope_as = raid_source
						}
					}
					## About a France away.
					if = {
						limit = { fp1_jomsviking_raid_source_one_france_trigger = yes }
						random_leased_title = {
							limit = { fp1_jomsviking_raid_source_one_france_trigger = yes }
							save_scope_as = raid_source
						}
					}
					## About an HRE away.
					if = {
						limit = { fp1_jomsviking_raid_source_one_hre_trigger = yes }
						random_leased_title = {
							limit = { fp1_jomsviking_raid_source_one_hre_trigger = yes }
							save_scope_as = raid_source
						}
					}
					## Still nothing? Uhhhh, sod it, just pick at random.
					else = {
						random_leased_title = { save_scope_as = raid_source }
					}
				}
				# But otherwise we just grab their capital or w/e.
				else = {
					random_leased_title = { save_scope_as = raid_source }
				}
			}
		}
		# Check to see if there's a good neighbour to import clergy from.
		## Only necessary if root is reformed, since unreformed don't have this option.
		if = {
			limit = {
				faith = {
					NOT = { has_doctrine_parameter = unreformed }
				}
			}
			random_neighboring_and_across_water_top_liege_realm_owner = {
				limit = {
					faith = root.faith
					# Filter out anyone who sincerely hates you.
					has_any_bad_relationship_with_root_trigger = no
					opinion = {
						target = root
						value >= very_high_negative_opinion
					}
				}
				save_scope_as = benefactor
			}
		}
	}

	# Try to out-strategise the pirates.
	option = {
		name = fp1_jomsvikings.0011.a

		# Martial duel to fend off the lightning assault.
		duel = {
			skill = martial
			target = scope:leader
			# You outmanoeuvre the pirates.
			## Really gotta balance in the player's favour, as the Jomsvikings tend to have OP leaders.
			60 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				desc = fp1_jomsvikings.0011.a.tt_success
				send_interface_toast = {
					title = fp1_jomsvikings.0011.a.tt_success
					left_icon = scope:leader
					# Tiny control loss.
					scope:target_county = { change_county_control = miniscule_county_control_loss }
					# Decent prestige gain for unreformed.
					if = {
						limit = {
							faith = { has_doctrine_parameter = unreformed }
						}
						add_prestige = medium_prestige_gain
					}
					# Decent piety gain for reformed.
					else = { add_piety = medium_piety_gain }
				}
			}
			# The Jomsvikings sack *everything*.
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				desc = fp1_jomsvikings.0011.a.tt_failure
				send_interface_toast = {	
					title = fp1_jomsvikings.0011.a.tt_failure
					left_icon = scope:leader
					# Colossal control loss.
					scope:target_county = { change_county_control = massive_county_control_loss }
					# Minor prestige loss for unreformed.
					if = {
						limit = {
							faith = { has_doctrine_parameter = unreformed }
						}
						add_prestige = minor_prestige_loss
					}
					# Minor piety loss for reformed.
					else = { add_piety = minor_piety_loss }
				}
			}
		}

		stress_impact = {
			diligent = minor_stress_impact_loss
			arrogant = medium_stress_impact_loss
			vengeful = major_stress_impact_loss
			lazy = minor_stress_impact_gain
			humble = medium_stress_impact_gain
			forgiving = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 0.5
				ai_vengefulness = 0.5
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = diligent
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = arrogant
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = vengeful
			}
			modifier = {	# Weight down for stress.
				add = -10
				has_trait = lazy
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = humble
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = forgiving
			}
		}
	}
	
	# Pay to import foreign clergy.
	option = {
		name = {
			trigger = { exists = scope:benefactor }
			text = fp1_jomsvikings.0011.b.benefactor
		}
		name = {
			trigger = {
				NOT = { exists = scope:benefactor }
			}
			text = fp1_jomsvikings.0011.b.fallback
		}
		# Must be some flavour of reformed for this to be an issue.
		trigger = {
			faith = {
				NOT = { has_doctrine_parameter = unreformed }
			}
			# As there's gold involved, the character should either be a player or have enough to spend.
			OR = {
				is_ai = no
				short_term_gold >= medium_gold_value
			}
		}

		# Deduct gold.
		## This goes to scope:benefactor if they exist.
		if = {
			limit = { exists = scope:benefactor }
			pay_short_term_gold = {
				target = scope:benefactor
				gold = medium_gold_value
			}
		}
		## And otherwise is just vomited into the ether.
		remove_short_term_gold = medium_gold_value
		# If they exist, improve scope:benefactor's opinion of you.
		if = {
			limit = { exists = scope:benefactor }
			reverse_add_opinion = {
				target = scope:benefactor
				modifier = pleased_opinion
				opinion = 30
			}
		}
		# Lose control, but not that much.
		scope:target_county = { change_county_control = medium_county_control_loss }

		stress_impact = {
			generous = minor_stress_impact_loss
			forgiving = minor_stress_impact_loss
			greedy = major_stress_impact_gain
			vengeful = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = -0.25
				ai_vengefulness = -0.75
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = generous
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = forgiving
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = greedy
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = vengeful
			}
		}
	}
	
	# Pay a gafol to stop the attacks.
	option = {
		name = fp1_jomsvikings.0011.c
		# The Jomsvikings will only accept tribute from non-threatening unreformeds.
		trigger = {
			faith = { has_doctrine_parameter = unreformed }
			# As there's gold involved, the character should either be a player or have enough to spend.
			OR = {
				is_ai = no
				short_term_gold >= medium_gold_value
			}
		}

		# Inform root that they won't lose any control.
		custom_tooltip = fp1_jomsvikings.0011.c.tt
		# Pay the gold straight to scope:leader.
		pay_treasury_or_gold = {
			target = scope:leader
			value = medium_treasury_or_gold_value
		}

		stress_impact = {
			generous = minor_stress_impact_loss
			forgiving = minor_stress_impact_loss
			greedy = major_stress_impact_gain
			vengeful = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = -0.25
				ai_vengefulness = -0.75
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = generous
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = forgiving
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = greedy
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = vengeful
			}
		}
	}
	
	# How is this anything but a local problem?
	option = {
		name = fp1_jomsvikings.0011.d

		# Inform root that they let the county burn.
		custom_tooltip = fp1_jomsvikings.0011.d.tt
		# Reduce control.
		scope:target_county = { change_county_control = extreme_county_control_loss }

		stress_impact = {
			lazy = medium_stress_impact_loss
			callous = medium_stress_impact_loss
			sadistic = medium_stress_impact_loss
			diligent = minor_stress_impact_gain
			compassionate = medium_stress_impact_gain
			vengeful = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_energy = -0.25
				ai_boldness = -0.25
				ai_honor = -0.5
				ai_vengefulness = -0.5
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = lazy
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = callous
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = sadistic
			}
			modifier = {	# Weight down for stress.
				add = -10
				has_trait = diligent
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = compassionate
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = vengeful
			}
		}
	}
}

##################################################
# Jomsvikings send Event Troops
# by Ewan Cowhig Croft
# 0021 - 0030
##################################################

#	The Jomsvikings offer you a force of loyal pirates.
fp1_jomsvikings.0021 = {
	type = character_event
	title = fp1_jomsvikings.0021.t
	desc = fp1_jomsvikings.0021.desc
	theme = faith
	right_portrait = {
		character = scope:leader
		animation = admiration
	}
	override_background = { reference = fp1_beached_longships }

	trigger = {
		# DLC check.
		has_fp1_dlc_trigger = yes
		# The Jomsvikings must exist; check this before the usual standard checks for best efficiency.
		fp1_jomsvikings_exist_in_range_trigger = yes
		# Standard checks.
		is_available_at_peace_adult = yes
		NOT = { has_character_flag = had_event_fp1_jomsvikings_0021 }
		# You must fulfill their generic piety requirements.
		fp1_pious_enough_for_jomsvikings_reward_trigger = yes
	}

	weight_multiplier = {
		base = 1
		
		# Weight up for excess levels of piety & high levels of prestige.
		fp1_jomsvikings_approve_of_extra_piety_and_prestige_modifier = yes
	}

	immediate = {
		add_character_flag = {
			flag = had_event_fp1_jomsvikings_0021
			days = 1825
		}
		# Grab the Grandmaster.
		global_var:jomsvikings_title.holder = { save_scope_as = leader }
	}

	# Pirates? In *my* good Asatru household? It's more likely than you'd think!
	option = {
		name = fp1_jomsvikings.0021.a

		# Spend the piety cost.
		add_piety = major_piety_loss
		# Explanatory tooltip.
		custom_tooltip = fp1_jomsvikings.0021.a.tt
		# Give the actual troops.
		spawn_army = {
			levies = 250
			men_at_arms = {
				type = jomsviking_pirates
				stacks = 4
			}
			location = root.capital_province
			origin = scope:leader.capital_province
			name = fp1_jomsvikings_event_troops
		}

		stress_impact = {
			ambitious = medium_stress_impact_loss
			zealous = medium_stress_impact_loss
			content = medium_stress_impact_gain
			cynical = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = 0.75
				ai_sociability = 0.25
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = ambitious
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = zealous
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = content
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = cynical
			}
		}
	}
	
	# Perhaps some more reputable volunteers?
	option = {
		name = fp1_jomsvikings.0021.b

		# Spend the piety cost.
		add_piety = major_piety_loss
		# Explanatory tooltip.
		custom_tooltip = fp1_jomsvikings.0021.b.tt
		# Give the actual troops.
		spawn_army = {
			levies = 250
			men_at_arms = {
				type = bondi
				stacks = 4
			}
			location = root.capital_province
			origin = scope:leader.capital_province
			name = fp1_jomsvikings_event_troops
		}

		stress_impact = {
			ambitious = medium_stress_impact_loss
			zealous = medium_stress_impact_loss
			content = medium_stress_impact_gain
			cynical = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = 0.75
				ai_sociability = 0.25
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = ambitious
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = zealous
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = content
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = cynical
			}
		}
	}
	
	# I'm fine, thanks.
	option = {
		name = fp1_jomsvikings.0021.c

		# Gain a little consolation prestige.
		add_prestige = minor_prestige_gain
		# The Grandmaster considers this an insult.
		scope:leader = {
			add_opinion = {
				target = root
				modifier = insult_opinion
				opinion = -30
			}
			hidden_effect = {
				if = {
					limit = {
						can_set_relation_potential_rival_trigger = { CHARACTER = root }
					}
					set_relation_potential_rival = root
				}
			}
		}

		stress_impact = {
			paranoid = medium_stress_impact_loss
			cynical = major_stress_impact_loss
			trusting = minor_stress_impact_gain
			zealous = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_zeal = -0.5
				ai_rationality = -0.25
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = paranoid
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = cynical
			}
			modifier = {	# Weight down for stress.
				add = -10
				has_trait = trusting
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = zealous
			}
		}
	}
}

##################################################
# Jomsvikings challenge a Dishonourable Norse Pagan Ruler to Holmgang
# by Ewan Cowhig Croft
# 0041 - 0050
##################################################

scripted_trigger fp1_majorly_irked_jomsvikings_trigger = {
	OR = {
		## Trucebreaker.
		has_character_modifier = broke_truce
		## High tyranny.
		tyranny >= high_tyranny
	}
}

#	Considering you a blight on the faith, the Grandmaster of the Jomsvikings challenges you to the death.
fp1_jomsvikings.0041 = {
	type = character_event
	title = fp1_jomsvikings.0041.t
	desc = fp1_jomsvikings.0041.desc
	theme = death
	left_portrait = {
		character = root
		# Craven characters are terrifed.
		triggered_animation = {
			trigger = { has_trait = craven }
			animation = fear
		}
		# Everyone else is just shocked.
		triggered_animation = {
			trigger = {
				NOT = { has_trait = craven }
			}
			animation = shock
		}
	}
	right_portrait = {
		character = scope:leader
		animation = rage
	}
	override_background = { reference = throne_room }

	trigger = {
		# DLC check.
		has_fp1_dlc_trigger = yes
		# The Jomsvikings must exist; check this before the usual standard checks for best efficiency.
		fp1_jomsvikings_exist_in_range_trigger = yes
		# Standard checks; make sure that scope:leader is available also.
		is_landed = yes
		is_available_at_peace_adult = yes
		global_var:jomsvikings_title.holder = { is_available_at_peace_adult = yes }
		NOT = { has_character_flag = had_event_fp1_jomsvikings_0041 }
		# Must be following the unreformed version of Norse paganism.
		faith = global_var:jomsvikings_title.holder.faith
		# Eligibility checks.
		## For holmgangs in general.
		### Root.
		can_start_single_combat_trigger = yes
		can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = global_var:jomsvikings_title.holder }
		### Scope:leader.
		global_var:jomsvikings_title.holder = {
			can_start_single_combat_trigger = yes
			# No need to check whether scope:leader is an eligible warrior, as they're already the head of a warrior order.
		}
		## Is scope:leader either actually at all competent in a fight or dumb enough to think they are?
		global_var:jomsvikings_title.holder = {
			OR = {
				prowess >= medium_scsk
				has_trait = intellect_bad
			}
		}
		# You must unequivocally a bastard for them to think you need to be removed.
		OR = {
			# Any serious reason is valid.
			fp1_majorly_irked_jomsvikings_trigger = yes
			# But a large amount of minor reasons are also good.
			calc_true_if = {
				amount >= 4
				# The sinful.
				num_sinful_traits >= 2
				has_trait = cynical
				# The shameful.
				prestige_level <= 0
				piety_level <= 0
				tyranny >= medium_tyranny
				dread >= high_dread
				# Criminals.
				## Kinslayer.
				AND = {
					has_trait = kinslayer_1
					faith = { has_doctrine_parameter = kinslaying_any_dynasty_member_crime }
				}
				AND = {
					has_trait = kinslayer_2
					faith = { has_doctrine_parameter = kinslaying_extended_family_crime }
				}
				AND = {
					has_trait = kinslayer_3
					faith = { has_doctrine_parameter = kinslaying_close_kin_crime }
				}
				## Deviant.
				AND = {
					has_trait = deviant
					faith = { has_doctrine_parameter = deviancy_illegal }
				}
				## Cannibal.
				AND = {
					has_trait = cannibal
					NOT = {
						faith = { has_doctrine_parameter = cannibalism_legal }
					}
				}
				## Sodomite.
				AND = {
					has_trait = sodomite
					faith = { has_doctrine_parameter = homosexuality_illegal }
				}
				## Incestuous.
				AND = {
					has_trait = incestuous
					NOT = {
						faith = { has_doctrine_parameter = consanguinity_unrestricted_incest }
					}
				}
				## Adulterer/Fornicator
				AND = {
					OR = {
						has_trait = adulterer
						has_trait = fornicator
					}
					trait_is_criminal_in_faith_trigger = {
						FAITH = faith
						TRAIT = adulterer
						GENDER_CHARACTER = this
					}
				}
				## Murderer.
				has_trait = murderer
				## Witch.
				AND = {
					has_trait = witch
					faith = { has_doctrine_parameter = witchcraft_illegal }
				}
			}
		}
	}

	weight_multiplier = {
		base = 1
		
		# We don't want to see this in the wild too much, so weight down against AI.
		modifier = {
			add = -0.5
			is_ai = yes
		}

		# Weight it down a bit more if you lack any of the major reasons.
		modifier = {
			add = -0.25
			fp1_majorly_irked_jomsvikings_trigger = no
		}
	}

	immediate = {
		play_music_cue = "mx_cue_murder"
		add_character_flag = {
			flag = had_event_fp1_jomsvikings_0041
			days = 7300
		}
		# Grab the Grandmaster.
		global_var:jomsvikings_title.holder = { save_scope_as = leader }
		# Rip the Grandmaster's shirt off.
		scope:leader = { add_character_flag = single_combat_stripped_to_waist }
		# Is the Grandmaster hopelessly outmatched? Try to boost them up a little if so.
		hidden_effect = {
			if = {
				limit = {
					prowess_diff = {
						target = scope:leader
						value >= 10
					}
				}
				scope:leader = {
					# Give them berserker.
					if = {
						limit = {
							NOT = { has_trait = berserker }
						}
						add_trait = berserker
					}
					# Or, failing that, raider.
					else_if = {
						limit = {
							NOT = { has_trait = viking }
						}
						add_trait = viking
					}
					# Or else just a slight base prowess boost.
					else = { add_prowess_skill = 4 }
				}
			}
		}
	}

	# I'll send you to Valhöll with a smile.
	option = {
		name = fp1_jomsvikings.0041.a

		# First, strip to the waist.
		add_character_flag = single_combat_stripped_to_waist
		# It's time to d-d-d-duel!
		custom_tooltip = fp1_jomsvikings.0041.a.tt
		configure_start_single_combat_effect = {
			SC_INITIATOR = scope:leader
			SC_ATTACKER = scope:leader
			SC_DEFENDER = root
			FATALITY = always
			FIXED = no
			LOCALE = throne_room
			OUTPUT_EVENT = fp1_jomsvikings.0043
			INVALIDATION_EVENT = fp1_jomsvikings.0042
		}
		# Show possible results.
		show_as_tooltip = {
			random_list = {
				# Root wins.
				50 = {
					show_chance = no
					desc = fp1_jomsvikings.0041.a.tt_success
					scope:leader = {
						death = {
							killer = root
							death_reason = death_duel
						}
					}
					add_prestige = major_prestige_gain
					add_kinslayer_trait_or_nothing_effect = { VICTIM = scope:leader }
				}
				# Scope:leader wins.
				50 = {
					show_chance = no
					desc = fp1_jomsvikings.0041.a.tt_failure
					death = {
						killer = scope:leader
						death_reason = death_duel
					}
					scope:leader = {
						add_prestige = major_prestige_gain
						add_kinslayer_trait_or_nothing_effect = { VICTIM = root }
					}
				}
			}
		}

		stress_impact = {
			arrogant = minor_stress_impact_loss
			brave = major_stress_impact_loss
			craven = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_honor = 0.5
				ai_vengefulness = 0.25
				ai_boldness = -0.25
			}
			modifier = {	# Weight up for stress.
				add = 10
				has_trait = arrogant
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = brave
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = craven
			}
		}
	}
	
	# You were a fool to come alone. Guards!
	option = {
		name = fp1_jomsvikings.0041.b

		# If possible, scope:leader immediately becomes your nemesis.
		if = {
			limit = {
				NOT = { has_relation_nemesis = scope:leader }
			}
			# No matter what relationship you had or didn't have, they become your nemesis.
			if = {
				limit = { has_relation_best_friend = scope:leader }
				remove_relation_best_friend = scope:leader
				set_relation_nemesis = {
					target = scope:leader
					reason = nemesis_refused_holmgang
				}
			}
			# If you have no relation or were friends, they become your rival.
			else_if = {
				limit = { has_relation_friend = scope:leader }
				remove_relation_friend = scope:leader
				set_relation_nemesis = {
					target = scope:leader
					reason = nemesis_refused_holmgang
				}
			}
			else = {
				set_relation_nemesis = {
					target = scope:leader
					reason = nemesis_refused_holmgang
				}
			}
		}
		else = {
			reverse_add_opinion = {
				target = scope:leader
				modifier = hate_opinion
				opinion = -50
			}
		}
		# You attempt to capture scope:leader.
		duel = {
			skill = martial
			target = scope:leader
			# Scope:leader is shackled & hauled off to the dungeon.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -40
				}
				desc = fp1_jomsvikings.0041.b.tt_success
				send_interface_toast = {
					title = fp1_jomsvikings.0041.b.tt_success
					left_icon = scope:leader
					# Scope:leader is tossed straight into the dungeon.
					rightfully_imprison_character_effect = {
						TARGET = scope:leader
						IMPRISONER = root
					}
					hidden_effect = {
						scope:leader = { change_prison_type = dungeon }
					}
					# You still lose a prestige level, since you're being an utter bastard.
					add_prestige_level = -1
					# But you do gain a good chunk of dread.
					add_dread = medium_dread_gain
				}
			}
			# Scope:leader effects a daring escape.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -40
				}
				desc = fp1_jomsvikings.0041.b.tt_failure
				send_interface_toast = {	
					title = fp1_jomsvikings.0041.b.tt_failure
					left_icon = scope:leader
					# You lose a prestige level *and* take heftier penalties for your dishonour.
					add_prestige_level = -1
					add_prestige = monumental_prestige_loss
				}
			}
		}

		stress_impact = {
			vengeful = medium_stress_impact_loss
			arbitrary = major_stress_impact_loss
			forgiving = medium_stress_impact_gain
			just = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_vengefulness = 0.5
				ai_honor = -0.75
			}
			modifier = {	# Weight up for stress.
				add = 20
				has_trait = vengeful
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = arbitrary
			}
			modifier = {	# Weight down for stress.
				add = -20
				has_trait = forgiving
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = just
			}
		}
	}

	# Hah, right, because I just fight any random pirate that walks into my castle?
	option = {
		name = fp1_jomsvikings.0041.c

		# If possible, scope:leader immediately becomes your rival.
		if = {
			limit = {
				NOR = {
					has_relation_rival = scope:leader
					has_relation_nemesis = scope:leader
				}
			}
			# If you were best friends, they become your nemesis.
			if = {
				limit = { has_relation_best_friend = scope:leader }
				remove_relation_best_friend = scope:leader
				set_relation_nemesis = {
					target = scope:leader
					reason = rival_refused_holmgang
				}
			}
			# If you have no relation or were friends, they become your rival.
			else_if = {
				limit = { has_relation_friend = scope:leader }
				remove_relation_friend = scope:leader
				set_relation_rival = {
					target = scope:leader
					reason = rival_refused_holmgang
				}
			}
			else = {
				set_relation_rival = {
					target = scope:leader
					reason = rival_refused_holmgang
				}
			}
		}
		else = {
			reverse_add_opinion = {
				target = scope:leader
				modifier = hate_opinion
				opinion = -50
			}
		}
		# And you take some hefty prestige penalties for your refusal.
		add_prestige_level = -1
		add_prestige = massive_prestige_loss

		stress_impact = {
			craven = major_stress_impact_loss
			arrogant = minor_stress_impact_gain
			brave = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_rationality = 0.25
				ai_vengefulness = -0.25
				ai_boldness = -0.5
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = craven
			}
			modifier = {	# Weight down for stress.
				add = -10
				has_trait = arrogant
			}
			modifier = {	# Weight down for stress.
				add = -30
				has_trait = brave
			}
		}
	}
}

#	Bout has invalidated, inform affected parties.
fp1_jomsvikings.0042 = {
	hidden = yes

	immediate = {
		# Inform root that the duel has invalidated.
		root = {
			send_interface_toast = {	
				title = fp1_jomsvikings.0042.trigger_failure
				left_icon = scope:leader
			}
		}
	}
}

#	Bout ended, sort after effects.
fp1_jomsvikings.0043 = {
	hidden = yes

	immediate = {
		# If scope:leader won, give them their prestige/clothes and apply kinslayer stuff.
		if = {
			limit = { scope:sc_victor = scope:leader }
			add_prestige = major_prestige_gain
			remove_character_flag = single_combat_stripped_to_waist
			single_combat_have_slain_kin_effect = {
				ATTACKER = scope:leader
				DEFENDER = root
			}
		}
		# Otherwise, root won.
		else = {
			# Nothing complex here, just put your shirt back on & send out the event after a small delay (for layering).
			root = {
				remove_character_flag = single_combat_stripped_to_waist
				trigger_event = {
					id = fp1_jomsvikings.0044
					days = 1
				}
			}
		}
	}
}

#	Root won the bout, process their ending.
fp1_jomsvikings.0044 = {
	type = character_event
	title = fp1_jomsvikings.0044.t
	desc = fp1_jomsvikings.0044.desc
	theme = death
	left_portrait = {
		character = root
		animation = personality_bold
	}
	right_portrait = {
		character = scope:leader
		animation = fear
	}
	override_background = { reference = throne_room }

	trigger = {
		# DLC check.
		has_fp1_dlc_trigger = yes
	}

	immediate = {
		play_music_cue = "mx_cue_combat_stinger"
		# Mention the death of scope:leader.
		show_as_tooltip = {
			scope:leader = {
				death = {
					killer = root
					death_reason = death_duel
				}
			}
		}
		# Hand out root's prestige.
		add_prestige = major_prestige_gain
		scope:leader = {
			add_character_flag = is_naked
		}
	}

	# Anyone *else* want to have a go?
	option = {
		name = fp1_jomsvikings.0044.a

		# And a fair amount of stress loss for coming through that.
		add_stress = massive_stress_loss

		# No stress impact for the standard option.
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 0.5
				ai_vengefulness = 0.25
			}
		}
	}
	
	# And the justness of my rule is proven again.
	option = {
		name = fp1_jomsvikings.0044.b
		# No point reducing tyranny if you don't have any.
		trigger = { tyranny >= 1 }

		# Get a decent tyranny reduction for your troubles.
		add_tyranny = massive_tyranny_loss

		stress_impact = {
			deceitful = major_stress_impact_loss
			arbitrary = major_stress_impact_loss
			honest = major_stress_impact_gain
			just = major_stress_impact_gain
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_rationality = 0.5
				ai_honor = -0.5
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = deceitful
			}
			modifier = {	# Weight up for stress.
				add = 30
				has_trait = arbitrary
			}
			modifier = {	# Weight down for stress.
				add = 30
				has_trait = honest
			}
			modifier = {	# Weight down for stress.
				add = 30
				has_trait = just
			}
		}
	}
	
	# This simply shows that Asatru is an unworthy faith...
	option = {
		name = fp1_jomsvikings.0044.c
		# AI doesn't use this functionality, so we don't want them taking this option.
		trigger = { is_ai = no }

		# Gain a modifier making it substantially cheaper to convert to other faiths.
		add_character_modifier = {
			modifier = fp1_jomsvikings_caused_faith_crisis_modifier
			years = 10
		}

		stress_impact = {
			cynical = major_stress_impact_loss
			zealous = major_stress_impact_gain
		}
		ai_chance = {
			# AI is banned, so this is unimportant.
			base = 0
		}
	}
	after = {
		scope:leader = {
			remove_character_flag = is_naked
		}
	}
}


##################################################
# #Special Events

##################################################
# Jomsvikings Destroyed
# by Ewan Cowhig Croft
# 1001 - 1010
##################################################

fp1_jomsvikings.1001 = {
	type = character_event
	title = fp1_jomsvikings.1001.t
	desc = {
		desc = fp1_jomsvikings.1001.desc.intro
		first_valid = {
			# If someone reformed Norse paganism, the Jomsvikings lament it.
			triggered_desc = {
				trigger = {
					religion:germanic_religion = {
						any_faith = {
							NOT = { has_doctrine_parameter = unreformed }
						}
					}
				}
				desc = fp1_jomsvikings.1001.desc.reformed_asatru_exists
			}
			# Otherwise, just a general big RIP.
			desc = fp1_jomsvikings.1001.desc.fallback
		}
		desc = fp1_jomsvikings.1001.desc.outro
	}
	theme = faith
	override_background = { reference = fp1_tribal_temple }
	left_portrait = {
		character = scope:leader
		animation = shame
	}

	trigger = {
		# DLC check.
		has_fp1_dlc_trigger = yes
	}

	immediate = {
		# Huehuehue.
		play_music_cue = "mx_cue_peace_ensues"
		custom_tooltip = fp1_jomsvikings.1001.holy_order_destroyed
	}

	# The gods forsake us!
	option = {
		name = fp1_jomsvikings.1001.a
		trigger = { faith = faith:norse_pagan }

		# No more benefits for pious Norse pagans.
		custom_tooltip = fp1_jomsvikings.1001.a.tt

		# No stress for a notification event.
		ai_chance = {
			# Notification event needs no AI chance.
			base = 100
		}
	}
	
	# Good riddance to bad rubbish!
	option = {
		name = fp1_jomsvikings.1001.b
		trigger = {
			NOT = { faith = faith:norse_pagan }
		}

		# No more Jomsviking piracy!
		custom_tooltip = fp1_jomsvikings.1001.b.tt

		# No stress for a notification event.
		ai_chance = {
			# Notification event needs no AI chance.
			base = 100
		}
	}
	
	# Yhomz-who?
	option = {
		name = fp1_jomsvikings.1001.c
		trigger = {
			NOT = { faith = faith:norse_pagan }
		}

		# No more Jomsviking piracy!
		custom_tooltip = fp1_jomsvikings.1001.c.tt

		# No stress for a notification event.
		ai_chance = {
			# Notification event needs no AI chance.
			base = 100
		}
	}
}


##################################################
# Jomsvikings Formed Autonomously
# by Ewan Cowhig Croft
# 1011 - 1020
##################################################

#	The Jomsvikings are founded automagically.
fp1_jomsvikings.1011 = {
	scope = none
	hidden = yes

	# Trigger block handled in yearly_on_actions.

	immediate = {
		# Collate eligible targets in the region.
		every_county_in_region = {
			region = dlc_fp1_region_non_scandinavian_southern_baltic
			limit = {
				holder = { fp1_ruler_eligible_for_jomsviking_coup = yes }
			}
			add_to_list = jomsvikings_coup_targets_list
		}
		# Sort through to pick the best.
		ordered_in_list = {
			list = jomsvikings_coup_targets_list
			order_by = fp1_jomsvikings_coup_priority_value
			save_scope_as = coup_target
		}
		## Grab the soon-to-be former holder for loc.
		scope:coup_target.holder = { save_scope_as = victim }
		# Transfer the target title to its new owner.
		## First, create said-owner.
		create_character = {
			template = fp1_jomsviking_bigwig
			location = scope:coup_target.title_province
			save_scope_as = founder
		}
		## Second, give that owner the actual title.
		create_title_and_vassal_change = {
			type = conquest
			save_scope_as = change
			add_claim_on_loss = yes
		}
		scope:coup_target = {
			change_title_holder = {
				holder = scope:founder
				change = scope:change
			}
		}
		resolve_title_and_vassal_change = scope:change
		## Third, give scope:founder their independence if they lacked it.
		scope:founder = {
			if = {
				limit = { top_liege != this }
				create_title_and_vassal_change = {
					type = independency
					save_scope_as = change
				}
				change_liege_or_become_independent = {
					CHANGE = scope:change
					VASSAL = this
				}
				resolve_title_and_vassal_change = scope:change
			}
		}
		## Fourth, give the owner some event troops & cash to keep them afloat.
		scope:founder = {
			spawn_army = {
				levies = { add = 1000 }
				inheritable = yes
				uses_supply = yes
				location = scope:coup_target.title_province
				name = fp1_jomsvikings_event_troops
			}
			forge_the_jomsvikings_maa_reward_effect = yes
		}
		# Create the Jomsvikings.
		scope:founder = { forge_the_jomsvikings_scripted_effect = yes }
		# Send out notification events.
		save_scope_value_as = {
			name = jomsvikings_autofounded
			value = yes
		}
		every_player = {
			limit = {
				OR = {
					religion = religion:germanic_religion
					save_temporary_scope_as = neighbouring_players
					scope:founder = {
						any_neighboring_and_across_water_top_liege_realm_owner = { this = scope:neighbouring_players }
					}
				}
				# No need to exempt scope:founder, as they're always an AI in this variant.
			}
			trigger_event = fp1_major_decisions.0033
		}
	}
}
