namespace = Plus

#reserved Plus.4000 to Plus.4049
#reserved Plus.4551 to Plus 4599

#######################################
# TRIBUTARY EVENTS
# Written by Vukica
#######################################

## DEMAND TRIBUTARY EVENT CHAIN
# Bounce event, to place Attacker in FROM scope
character_event = {
	id = Plus.4000

	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = { letter_event = { id = Plus.4001 } }
	}
}

# FROM: Attacker, ROOT: Defender
# Demand tribute event
letter_event = {
	id = Plus.4001
	desc = EVTDESC_Plus_4000
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	option = { # Accept becoming tributary
		name = EVTOPT_Plus_4000A

		FROM = {
			letter_event = {
				id = Plus.4002
				days = 3
			}
		}

		if = {
			limit = {
				prisoner = yes
				host = { character = FROM }
			}

			imprison = no
		}

		ai_chance = {
			factor = 20

			trigger = {
				NOR = {
					trait = lunatic # Lunatic goes to war
					trait = rabies # Lunatic goes to war
					trait = brave # Brave goes to war

					# Pride goeth before fall
					has_nickname = nick_the_hammer
					has_nickname = nick_the_conqueror
					has_nickname = nick_the_victorious
					has_nickname = nick_the_brave
					has_nickname = nick_the_fearless
					has_nickname = nick_the_glorious
					has_nickname = nick_the_ruthless
					has_nickname = nick_the_destroyer
					has_nickname = nick_the_strong
					has_nickname = nick_the_magnanimous
					has_nickname = nick_the_ironside
					has_nickname = nick_the_lion
					has_nickname = nick_the_lionheart
					has_nickname = nick_the_great
					trait = proud
					trait = ambitious
				}
			}

			mult_modifier = { # Have less than half strength of attacker
				factor = 2
				relative_power_including_allies_defender = { who = FROM power < 0.5 }
			}

			mult_modifier = { # Have less than third strength of attacker
				factor = 2
				relative_power_including_allies_defender = { who = FROM power < 0.33 }
			}

			mult_modifier = { # Have less than tenth strength of attacker
				factor = 2
				relative_power_including_allies_defender = { who = FROM power < 0.1 }
			}

			mult_modifier = { # Craven
				factor = 2
				trait = craven
			}

			mult_modifier = { # Already defending
				factor = 2
				is_primary_war_defender = yes
			}

			mult_modifier = { # I'm an emperor
				factor = 0.1
				real_tier = EMPEROR
			}

			mult_modifier = { # I'm a king
				factor = 0.1
				real_tier = KING
			}

			mult_modifier = {
				factor = 0.5
				is_nomadic = yes
			}

			mult_modifier = {
				factor = 0.5
				is_tribal = yes
				FROM = { is_nomadic = no }
			}

			mult_modifier = {
				factor = 2

				wealth < 50
				is_republic = yes
			}

			mult_modifier = {
				factor = 5

				wealth < 50
				FROM = { is_nomadic = yes }
			}
		}
	}

	option = { # Refuse, go to war
		name = EVTOPT_Plus_4000B

		trigger = {
			prisoner = no
			host = {
				NOT = { character = FROM }
			}
		}

		FROM = {
			letter_event = {
				id = Plus.4003
				days = 3
			}
		}

		ai_chance = {
			factor = 70

			trigger = {
				# Can't affort a war
				NOT = { has_character_modifier = ai_austerity }
			}

			mult_modifier = { # Craven
				factor = 0.5
				trait = craven
			}

			mult_modifier = { # Attacker is craven
				factor = 2
				FROM = { trait = craven }
			}

			mult_modifier = { # Similar power
				factor = 2
				relative_power_including_allies_defender = { who = FROM power >= 0.75 }
			}

			mult_modifier = {
				factor = 4
				NOT = { religion_group = FROM }
			}

			mult_modifier = {
				factor = 2
				NOT = { de_jure_liege = FROM }
			}
		}
	}

	option = { # Can't we make a deal?
		name = EVTOPT_Plus_4000C

		trigger = {
			wealth >= 50

			trigger_if = {
				limit = { prisoner = yes }
				host = { NOT = { character = FROM } }
			}
		}

		FROM = {
			letter_event = {
				id = Plus.4004
				days = 3
			}
		}

		ai_chance = {
			factor = 10

			trigger = {
				# Can't fund this
				NOT = { has_character_modifier = ai_austerity }
			}

			mult_modifier = { # We can pay
				factor = 10
				is_republic = yes
			}

			mult_modifier = { # You look too big
				factor = 4

				wealth >= 200
				relative_power_including_allies_defender = { who = FROM power < 0.5 }
			}
		}
	}
}

# FROM: Defender, ROOT: Attacker
# Accepted tributary status
letter_event = {
	id = Plus.4002
	desc = EVTDESC_Plus_4002
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	immediate = {
		FROM = {
			save_event_target_as = target_loser

			trigger_switch = {
				on_trigger = real_tier

				COUNT = { prestige = -50 }
				DUKE = { prestige = -100 }
				KING = { prestige = -150 }
				EMPEROR = { prestige = -200 }
			}

			imperial_decadence_plus_1_effect = yes
			pf_glory_minus2_effect = yes

			custom_tooltip = {
				text = REMOVE_PREVIOUS_SUZERAIN

				any_suzerain = {
					event_target:target_loser = {
						remove_tributary = PREV
					}
				}
			}
		}

		if = {
			limit = { FROM = { tier = count } }
			prestige = 50
		}
		if = {
			limit = { FROM = { tier = duke } }
			prestige = 100
		}
		if = {
			limit = { FROM = { tier = king } }
			prestige = 150
		}
		if = {
			limit = { FROM = { tier = emperor } }
			prestige = 200
		}

		add_character_modifier = {
			name = victory_timer
			days = 1
			hidden = yes
		}

		pf_glory_plus2_effect = yes

		if = {
			limit = { is_nomadic = yes}

			make_tributary = {
				who = FROM
				tributary_type = nomadic
			}
		}
		else = {
			make_tributary = {
				who = FROM
				tributary_type = voluntary
			}
		}

		if  = {
			limit = { uses_decadence = yes }
			decadence = -10
		}

		if  = {
			limit = { is_nomadic = yes }

			clan_title = {
				ROOT = {
					any_vassal = {
						limit = { is_nomadic = yes }

						clan_title = {
							clan_opinion = {
								name = won_tributary_war
								who = PREVPREVPREV
								years = 5
							}
						}
					}
				}
			}
		}

		if  = {
			limit = { is_tribal = yes }

			any_vassal = {
				limit = { is_tribal = yes }

				opinion = {
					name = won_tributary_war
					who = PREV
					years = 5
				}
			}
		}
	}

	option = { # Excellent
		name = EVTOPT_Plus_4002A

		clr_character_flag = trying_to_gain_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}
	}
}

# FROM: Defender, ROOT: Attacker
# Go to war!
letter_event = {
	id = Plus.4003
	desc = EVTDESC_Plus_4003
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	option = { # Declare war!
		name = EVTOPT_Plus_4003A

		war = {
			target = FROM
			casus_belli = tributary_cb
		}

		clr_character_flag = trying_to_gain_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}

		ai_chance = {
			factor = 80

			mult_modifier = {
				factor = 0.2
				trait = craven
			}
		}
	}

	option = { # I was bluffing.
		name = EVTOPT_Plus_4003B

		prestige = -100

		random = {
			chance = 25
			add_trait_fully_craven_effect = yes
		}

		clr_character_flag = trying_to_gain_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 10
			hidden = yes
		}

		FROM = {
			letter_event = {
				id = Plus.4005
				days = 3
			}
		}

		ai_chance = {
			factor = 20

			mult_modifier = {
				factor = 2
				trait = craven
			}

			mult_modifier = { # Already defending
				factor = 2
				is_primary_war_defender = yes
			}
		}
	}
}

# FROM: Defender, ROOT: Attacker
# Offered money instead
letter_event = {
	id = Plus.4004
	desc = EVTDESC_Plus_4004
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	option = { # Agreed
		name = EVTOPT_Plus_4004A

		transfer_scaled_wealth = {
			from = FROM
			value = 0.75
			min = 25
		}

		prestige = 100

		FROM = {
			opinion = {
				name = opinion_paid_tribute
				who = ROOT
				years = 5
			}

			letter_event = {
				id = Plus.4006
				days = 3
			}
		}

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}

		clr_character_flag = trying_to_gain_tributary

		ai_chance = {
			factor = 75

			trigger = {
				NOR = {
					trait = lunatic # Lunatic goes to war
					trait = rabies # Lunatic goes to war
					trait = brave # Brave goes to war

					# Pride goeth before fall
					has_nickname = nick_the_hammer
					has_nickname = nick_the_conqueror
					has_nickname = nick_the_victorious
					has_nickname = nick_the_brave
					has_nickname = nick_the_fearless
					has_nickname = nick_the_glorious
					has_nickname = nick_the_ruthless
					has_nickname = nick_the_destroyer
					has_nickname = nick_the_strong
					has_nickname = nick_the_magnanimous
					has_nickname = nick_the_ironside
					has_nickname = nick_the_lion
					has_nickname = nick_the_lionheart
					has_nickname = nick_the_great
					trait = proud
					trait = ambitious
				}
			}

			mult_modifier = { # Craven
				factor = 2
				trait = craven
			}

			mult_modifier = { # Already defending
				factor = 2
				is_primary_war_defender = yes
			}
		}
	}

	option = { # Nice try.
		name = EVTOPT_Plus_4004B

		war = {
			target = FROM
			casus_belli = tributary_cb
		}

		clr_character_flag = trying_to_gain_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}

		ai_chance = {
			factor = 25

			mult_modifier = { # Have more than twice the strength
				factor = 2
				relative_power_including_allies_attacker = { who = FROM power >= 2 }
			}

			mult_modifier = { # Have three times the strength
				factor = 2
				relative_power_including_allies_attacker = { who = FROM power >= 3 }
			}

			mult_modifier = { # Get it while it's hots
				factor = 2
				FROM = { is_primary_war_defender = yes }
			}
		}
	}
}

# FROM: Attacker, ROOT: Defender
# Attacker decides not to declare war after all.
letter_event = {
	id = Plus.4005
	desc = EVTDESC_Plus_4005
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	ai = no

	option = { # Excellent
		name = EVTOPT_Plus_4005A
	}
}

# FROM: Attacker, ROOT: Defender
# Attacker decides to accept the deal
letter_event = {
	id = Plus.4006
	desc = EVTDESC_Plus_4006
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	ai = no

	option = { # Excellent
		name = EVTOPT_Plus_4006A
	}
}

# Tributes for AI
character_event = {
	id = Plus.4010

	hide_window = yes
	is_triggered_only = yes

	only_independent = yes
	has_dlc = "Horse Lords"
	war = no
	prisoner = no
	ai = yes

	trigger = {
		# Let's limit this for ai to kings and duke
		higher_real_tier_than = COUNT

		# Limit to large realms
		OR = {
			realm_size >= 100
			is_nomadic = yes
		}

		is_tributary = no
		mercenary = no
		has_regent = no

		NOR = {
			has_character_modifier = holy_truce_timer
			has_character_modifier = tributary_timer
			has_character_flag = trying_to_gain_tributary
			any_war = { using_cb = tributary_cb }
		}
	}

	immediate = {
		random_list =  {
			90 = { } # Nothing

			10 = {
				trigger = {
					trigger_if = {
						limit = { is_tribal = yes }

						trigger_if = {
							limit = { trait = ambitious }
							martial >= 8
						}
						trigger_else = {
							martial >= 15
						}

						NOT = { trait = content }
					}
				}

				mult_modifier = {
					factor = 5
					is_nomadic = yes
				}

				mult_modifier = {
					factor = 4
					trait = greedy
				}

				mult_modifier = {
					factor = 0.1
					trait = content
				}

				random_neighbor_independent_ruler = {
					limit = {
						realm_size < 35
						realm_size >= 8
						relative_power_including_allies_defender = { who = ROOT power < 0.6 }

						ROOT = {
							OR = {
								is_nomadic = yes
								religion_group = PREV
							}

							NOT = { rightful_religious_head = PREV }
						}

						# Non-nomad AI will not target nomads or tribals (they have no money anyhow)
						trigger_if = {
							limit = { ROOT = { is_nomadic = no } }

							yearly_income >= 50
							is_nomadic = no
							is_tribal = no
						}

						NAND = {
							religion_group = pagan_group
							religion = ROOT
						}

						NAND = {
							holy_order = yes
							religion = ROOT
						}

						NOR = {
							is_allied_with = ROOT
							higher_real_tier_than = ROOT
							pays_tribute_to = ROOT
							is_tributary = no
							has_non_aggression_pact_with = ROOT
							reverse_has_truce = ROOT
							any_liege = { pays_tribute_to = ROOT }
							any_war = { using_cb = tributary_cb }
						}
					}

					log = "Tributary event chain started, attacker is [Root.GetBestName], defender is [This.GetBestName]"

					letter_event = {
						id = Plus.4001
						days = 3
					}
				}

				set_character_flag = trying_to_gain_tributary
			}
		}
	}
}

## VASSALISE TRIBUTARY EVENT CHAIN

# Bounce event, to place Attacker in FROM scope
character_event = {
	id = Plus.4020

	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = {
			letter_event = { id = Plus.4021 }
		}
	}
}

# FROM: Attacker, ROOT: Defender
# Demand vassalization
letter_event = {
	id = Plus.4021
	desc = EVTDESC_Plus_4021
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	option = { # Accept being vassalized
		name = EVTOPT_Plus_4000A

		FROM = {
			letter_event = {
				id = Plus.4022
				days = 3
			}
		}

		if = {
			limit = {
				prisoner = yes
				host = { character = FROM }
			}

			imprison = no
		}

		ai_chance = {
			factor = 20

			trigger = {
				NOR = {
					trait = lunatic # Lunatic goes to war
					trait = rabies # Lunatic goes to war
					trait = brave # Brave goes to war

					# Pride goeth before fall
					has_nickname = nick_the_hammer
					has_nickname = nick_the_conqueror
					has_nickname = nick_the_victorious
					has_nickname = nick_the_brave
					has_nickname = nick_the_fearless
					has_nickname = nick_the_glorious
					has_nickname = nick_the_ruthless
					has_nickname = nick_the_destroyer
					has_nickname = nick_the_strong
					has_nickname = nick_the_magnanimous
					has_nickname = nick_the_ironside
					has_nickname = nick_the_lion
					has_nickname = nick_the_lionheart
					has_nickname = nick_the_great
					trait = proud
					trait = ambitious
				}
			}

			mult_modifier = { #have less than half strength of attacker
				factor = 2
				NOT = { relative_power_including_allies_defender = { who = FROM power = 0.5 } }
			}

			mult_modifier = { #have less than third strength of attacker
				factor = 2
				NOT = { relative_power_including_allies_defender = { who = FROM power = 0.33 } }
			}

			mult_modifier = { #have less than tenth strength of attacker
				factor = 2
				NOT = { relative_power_including_allies_defender = { who = FROM power = 0.1 } }
			}

			mult_modifier = { #craven
				factor = 2
				trait = craven
			}

			mult_modifier = { #already defending
				factor = 2
				is_primary_war_defender = yes
			}

			mult_modifier = { #I'm an emperor
				factor = 0.1
				tier = EMPEROR
			}

			mult_modifier = { #I'm a king
				factor = 0.1
				tier = KING
			}

			mult_modifier = {
				factor = 0.5
				is_nomadic = yes
			}

			mult_modifier = {
				factor = 0.5
				is_tribal = yes
			}

			mult_modifier = {
				factor = 2
				NOT = { wealth = 50 }
				is_republic = yes
			}

			mult_modifier = {
				factor = 0.5
				primary_title = { check_variable = { which = tributary_years value < 50 } }
			}

			mult_modifier = {
				factor = 1.1
				primary_title = { check_variable = { which = tributary_years value < 50 } }
			}

			mult_modifier = {
				factor = 1.1
				primary_title = { check_variable = { which = tributary_years value >= 60 } }
			}

			mult_modifier = {
				factor = 1.1
				primary_title = { check_variable = { which = tributary_years value >= 70 } }
			}

			mult_modifier = {
				factor = 1.1
				primary_title = { check_variable = { which = tributary_years value >= 80 } }
			}

			mult_modifier = {
				factor = 1.1
				primary_title = { check_variable = { which = tributary_years value >= 90 } }
			}

			mult_modifier = {
				factor = 1.1
				primary_title = { check_variable = { which = tributary_years value >= 100 } }
			}
		}
	}

	option = { # Refuse, go to war
		name = EVTOPT_Plus_4000B

		trigger = {
			prisoner = no
			host = {
				NOT = { character = FROM }
			}
		}

		FROM = {
			letter_event = {
				id = Plus.4023
				days = 3
			}
		}

		ai_chance = {
			factor = 70

			mult_modifier = { # Craven
				factor = 0.5
				trait = craven
			}

			mult_modifier = { # Attacker is craven
				factor = 2
				FROM = { trait = craven }
			}

			mult_modifier = { # Similar power
				factor = 2
				relative_power_including_allies_defender = { who = FROM power >= 0.75 }
			}

			mult_modifier = {
				factor = 4
				NOT = { religion_group = FROM }
			}

			mult_modifier = {
				factor = 2
				NOT = { de_jure_liege = FROM }
			}
		}
	}

	option = { # Can't we make a deal?
		name = EVTOPT_Plus_4000C

		trigger = {
			wealth = 50

			trigger_if = {
				limit = { prisoner = yes }
				host = { NOT = { character = FROM } }
			}
		}

		FROM = {
			letter_event = {
				id = Plus.4024
				days = 3
			}
		}

		ai_chance = {
			factor = 10

			mult_modifier = { # We can pay
				factor = 10
				is_republic = yes
			}

			mult_modifier = { # You look too big
				factor = 4

				wealth >= 200
				relative_power_including_allies_defender = { who = FROM power < 0.5 }
			}

			# Not ready yet for this
			mult_modifier = {
				factor = 2
				primary_title = { check_variable = { which = tributary_years value < 50 } }
			}
		}
	}
}

# FROM: Defender, ROOT: Attacker
# Accepted vassalization
letter_event = {
	id = Plus.4022
	desc = EVTDESC_Plus_4022
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	immediate = {
		remove_tributary = FROM

		FROM = {
			save_event_target_as = target_loser
			prestige = -100
			imperial_decadence_plus_1_effect = yes
			pf_glory_minus2_effect = yes
			set_defacto_liege = PREV
		}

		prestige = 100

		add_character_modifier = {
			name = victory_timer
			days = 1
			hidden = yes
		}

		pf_glory_plus2_effect = yes

		if  = {
			limit = { uses_decadence = yes }
			decadence = -10
		}
	}

	option = { # Excellent
		name = EVTOPT_Plus_4002A

		clr_character_flag = trying_to_vassalize_tributary
	}
}

# FROM: Defender, ROOT: Attacker
# Go to war!
letter_event = {
	id = Plus.4023
	desc = EVTDESC_Plus_4003
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	option = { # Declare war!
		name = EVTOPT_Plus_4003A

		remove_tributary = FROM

		war = {
			target = FROM
			casus_belli = force_vassalization
		}

		clr_character_flag = trying_to_vassalize_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}

		ai_chance = {
			factor = 50

			mult_modifier = {
				factor = 0.2
				trait = craven
			}
		}
	}

	option = { # I was bluffing.
		name = EVTOPT_Plus_4003B

		prestige = -100

		random = {
			chance = 5
			add_trait_fully_craven_effect = yes
		}

		clr_character_flag = trying_to_vassalize_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 2
			hidden = yes
		}

		FROM = {
			letter_event = {
				id = Plus.4025
				days = 3
			}
		}

		ai_chance = {
			factor = 50

			mult_modifier = {
				factor = 2
				trait = craven
			}

			mult_modifier = { # Already defending
				factor = 2
				is_primary_war_defender = yes
			}
		}
	}
}

# FROM: Defender, ROOT: Attacker
# Offered money instead
letter_event = {
	id = Plus.4024
	desc = EVTDESC_Plus_4004
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	option = { # Agreed
		name = EVTOPT_Plus_4004A

		ai_chance = {
			factor = 75

			trigger = {
				NOR = {
					trait = lunatic # Lunatic goes to war
					trait = rabies # Lunatic goes to war
					trait = brave # Brave goes to war

					# Pride goeth before fall
					has_nickname = nick_the_hammer
					has_nickname = nick_the_conqueror
					has_nickname = nick_the_victorious
					has_nickname = nick_the_brave
					has_nickname = nick_the_fearless
					has_nickname = nick_the_glorious
					has_nickname = nick_the_ruthless
					has_nickname = nick_the_destroyer
					has_nickname = nick_the_strong
					has_nickname = nick_the_magnanimous
					has_nickname = nick_the_ironside
					has_nickname = nick_the_lion
					has_nickname = nick_the_lionheart
					has_nickname = nick_the_great
					trait = proud
					trait = ambitious
				}
			}

			mult_modifier = { # Craven
				factor = 2
				trait = craven
			}

			mult_modifier = { # Already defending
				factor = 2
				is_primary_war_defender = yes
			}
		}

		transfer_scaled_wealth = {
			from = FROM
			value = 0.75
			min = 25
		}

		prestige = 100

		FROM = {
			opinion = {
				name = opinion_paid_tribute
				who = ROOT
				years = 5
			}

			letter_event = {
				id = Plus.4026
				days = 3
			}
		}

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}

		clr_character_flag = trying_to_vassalize_tributary
	}

	option = { # Nice try.
		name = EVTOPT_Plus_4004B

		remove_tributary = FROM

		war = {
			target = FROM
			casus_belli = force_vassalization
		}

		clr_character_flag = trying_to_vassalize_tributary

		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}

		ai_chance = {
			factor = 25

			mult_modifier = { # Have more than twice the strength
				factor = 2
				relative_power_including_allies_attacker = { who = FROM power >= 2 }
			}

			mult_modifier = { # Have three times the strength
				factor = 2
				relative_power_including_allies_attacker = { who = FROM power >= 3 }
			}

			mult_modifier = { # Get it while it's hot
				factor = 2
				FROM = { is_primary_war_defender = yes }
			}
		}
	}
}

# FROM: Attacker, ROOT: Defender
# Attacker decides not to declare war after all.
letter_event = {
	id = Plus.4025
	desc = EVTDESC_Plus_4005
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	ai = no

	option = { # Excellent
		name = EVTOPT_Plus_4005A
	}
}

# FROM: Attacker, ROOT: Defender
# Attacker decides to accept the deal
letter_event = {
	id = Plus.4026
	desc = EVTDESC_Plus_4006
	border = GFX_event_letter_frame_war

	is_triggered_only = yes

	ai = no

	option = { # Excellent
		name = EVTOPT_Plus_4006A
	}
}

# Vassalization for AI
character_event = {
	id = Plus.4030

	is_triggered_only = yes
	hide_window = yes

	only_independent = yes
	has_dlc = "Horse Lords"
	war = no
	prisoner = no
	ai = yes

	trigger = {
		# Let's limit this for ai to kings and emperors
		higher_real_tier_than = DUKE

		# Limit to large realms
		realm_size >= 100

		is_tributary = no
		mercenary = no
		has_regent = no

		NOR = {
			has_character_modifier = holy_truce_timer
			has_character_modifier = tributary_timer
			has_character_flag = trying_to_vassalize_tributary
			any_war = { using_cb = force_vassalization }
		}

		any_tributary = {
			OR = {
				is_tributary = { type = forced }
				is_tributary = { type = voluntary }
			}

			primary_title = {
				lower_real_tier_than = ROOT
				check_variable = { which = tributary_years value >= 50 } # AI won't try this before 50 years have passed
			}

			ROOT = {
				trigger_if = {
					limit = { real_tier = DUKE }
					prestige >= 500
				}
				trigger_else_if = {
					limit = { real_tier = KING }

					trigger_if = {
						limit = { PREV = { real_tier = COUNT } }
						prestige >= 600
					}
					trigger_else_if = {
						limit = { PREV = { real_tier = DUKE } }
						prestige >= 1200
					}
				}
				trigger_else_if = {
					limit = { real_tier = EMPEROR }

					trigger_if = {
						limit = { PREV = { real_tier = COUNT } }
						prestige >= 500
					}
					trigger_else_if = {
						limit = { PREV = { real_tier = DUKE } }
						prestige >= 1000
					}
					trigger_else_if = {
						limit = { PREV = { real_tier = KING } }
						prestige >= 2000
					}
				}
			}
		}
	}

	immediate = {
		random_list =  {
			90 = { } # Nothing

			10 = {
				trigger = {
					trigger_if = {
						limit = { is_tribal = yes }

						trigger_if = {
							limit = { trait = ambitious }
							martial >= 8
						}
						trigger_else = {
							martial >= 15
						}

						NOT = { trait = content }
					}
				}

				mult_modifier = {
					factor = 4
					ROOT = { trait = greedy }
				}

				mult_modifier = {
					factor = 0.1
					trait = content
				}

				random_tributary = {
					limit = {
						OR = {
							is_tributary = { type = forced }
							is_tributary = { type = voluntary }
						}

						primary_title = {
							lower_real_tier_than = ROOT
							check_variable = { which = tributary_years value >= 50 } # AI won't try this before 50 years have passed
						}
					}

					log = "Vassalization event chain started, attacker is [Root.GetBestName], defender is [This.GetBestName]"

					ROOT = {
						if = {
							limit = { real_tier = DUKE }
							prestige = -500
						}
						else_if = {
							limit = { real_tier = KING }

							if = {
								limit = { PREV = { real_tier = COUNT } }
								prestige = -600
							}
							else_if = {
								limit = { PREV = { real_tier = DUKE } }
								prestige = -1200
							}
						}
						else_if = {
							limit = { real_tier = EMPEROR }

							if = {
								limit = { PREV = { real_tier = COUNT } }
								prestige = -500
							}
							else_if = {
								limit = { PREV = { real_tier = DUKE } }
								prestige = -1000
							}
							else_if = {
								limit = { PREV = { real_tier = KING } }
								prestige = -2000
							}
						}
					}

					letter_event = {
						id = Plus.4021
						days = 3
					}
				}

				set_character_flag = trying_to_vassalize_tributary
			}
		}
	}
}

## SEEK PROTECTION EVENT CHAIN

# Bounce event, to place Seeker in FROM scope
character_event = {
	id = Plus.4040

	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = {
			letter_event = { id = Plus.4041 }
		}
	}
}

# FROM: Seeker, ROOT: Protector
# Seek protection event
letter_event = {
	id = Plus.4041
	desc = EVTDESC_Plus_4041
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	option = { # Accept tribute
		name = EVTOPT_Plus_4041A

		FROM = {
			letter_event = {
				id = Plus.4042
				days = 3
			}
		}

		ai_chance = {
			factor = 45

			mult_modifier = {
				factor = 0.2
				de_jure_vassal_or_below = FROM
			}
		}
	}

	option = { # You're not worth it!
		name = EVTOPT_Plus_4003B

		FROM = {
			letter_event = {
				id = Plus.4043
				days = 3
			}
		}

		ai_chance = {
			factor = 15

			mult_modifier = {
				factor = 5
				relative_power = { who = FROM power >= 10 } # i.e. someone who can't defend themselves
			}
		}
	}

	option = { # No, but if you pay me now I can offer you a NAP.
		name = EVTOPT_Plus_4041C

		FROM = {
			letter_event = {
				id = Plus.4044
				days = 3
			}
		}

		ai_chance = {
			factor = 25

			mult_modifier = {
				factor = 2
				wealth < 100
			}
		}
	}
}

# FROM: Protecor, ROOT: Seeker
# Accepted tributary
letter_event = {
	id = Plus.4042
	desc = EVTDESC_Plus_4042
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	immediate = {
		FROM = {
			make_tributary = {
				who = ROOT
				tributary_type = protectorate
			}
		}
	}

	option = { # Excellent
		name = EVTOPT_Plus_4002A

		clr_character_flag = seeking_protection
	}
}

# FROM: Protecor, ROOT: Seeker
# Declined tributary
letter_event = {
	id = Plus.4043
	desc = EVTDESC_Plus_4043
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	option = { # CURSEEEES!
		name = EVTOPT_Plus_4005A

		clr_character_flag = seeking_protection
	}
}

# FROM: Protector, ROOT: Seeker
# Offered NAP instead
letter_event = {
	id = Plus.4044
	desc = EVTDESC_Plus_4044
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	option = { # That works too
		name = EVTOPT_Plus_4004A

		tooltip = {
			transfer_scaled_wealth = {
				to = FROM
				value = 0.75
				min = 25
			}

			opinion = {
				name = opinion_paid_tribute
				who = FROM
				years = 5
			}
		}

		FROM = {
			letter_event = {
				id = Plus.4045
				days = 3
			}
		}

		ai_chance = {
			factor = 10

			trigger = {
				scaled_wealth = {
					value = 0.80
					min = 30
				}

				NOT = { has_character_modifier = ai_austerity }
			}

			mult_modifier = {
				factor = 5
				relative_power = { who = FROM power >= 0.2 } # Strong neighbour, we better protect ourselves
			}

			mult_modifier = {
				factor = 5
				relative_power = { who = FROM power >= 0.1 } # Strong neighbour, we better protect ourselves
			}
		}
	}

	option = { # Not good enough
		name = EVTOPT_Plus_4004B

		FROM = {
			letter_event = {
				id = Plus.4046
				days = 3
			}
		}

		ai_chance = { factor = 75 }
	}
}

# FROM: Seeker, ROOT: Protecor
# Protection seeker accepted NAP
letter_event = {
	id = Plus.4045
	desc = EVTDESC_Plus_4045
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	immediate = {
		FROM = {
			clr_character_flag = seeking_protection

			transfer_scaled_wealth = {
				to = ROOT
				value = 0.75
				min = 25
			}

			opinion = {
				name = opinion_paid_tribute
				who = ROOT
				years = 5
			}
		}
	}

	option = { # Excellent
		name = EVTOPT_Plus_4002A
	}
}

# FROM: Seeker, ROOT: Protecor
# Protection seeker rejected NAP
letter_event = {
	id = Plus.4046
	desc = EVTDESC_Plus_4046
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	immediate = {
		FROM = { clr_character_flag = seeking_protection }
	}

	option = { # Too bad.
		name = EVTOPTA_Plus_1327
	}
}

## RELEASE VASSAL AS PROTECTORATE EVENT CHAIN
# Bounce event, to place Liege in FROM scope
character_event = {
	id = Plus.4551

	is_triggered_only = yes
	hide_window = yes

	immediate = {
		FROM = {
			letter_event = { id = Plus.4552 }
		}
	}
}

# FROM: Liege, ROOT: Vassal
# Offer release.
letter_event = {
	id = Plus.4552
	desc = EVTDESC_Plus_4552
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	option = { # Accept to become protectorate
		name = EVTOPT_Plus_4041A

		FROM = {
			letter_event = {
				id = Plus.4553
				days = 3
			}
		}

		ai_chance = {
			factor = 100

			mult_modifier = {
				factor = 2
				real_tier = KING
			}

			mult_modifier = {
				factor = 2

				real_tier = DUKE
				num_of_duke_titles >= 2
			}

			mult_modifier = {
				factor = 4
				num_of_king_titles >= 2
			}
		}
	}

	option = { # Reject
		name = EVTOPTB_Plus_4552

		FROM = {
			letter_event = {
				id = Plus.4554
				days = 3
			}
		}

		ai_chance = {
			factor = 20

			mult_modifier = {
				factor = 5
				num_of_duke_titles < 2
			}
		}
	}
}

# FROM: Vassal, ROOT: Liege
# Accepted becoming protectorate
letter_event = {
	id = Plus.4553
	desc = EVTDESC_Plus_4553
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	immediate = {
		FROM = {
			set_defacto_liege = THIS

			opinion = {
				name = opinion_granted_independence
				who = FROM
				years = 5
			}
		}

		make_tributary = {
			who = FROM
			tributary_type = protectorate
		}

		add_character_modifier = {
			name = tributary_timer
			years = 2
			hidden = yes
		}
	}

	option = { # Excellent
		name = EVTOPT_Plus_4002A
	}
}

# FROM: Vassal, ROOT: Liege
# Rejected becoming protectorate
letter_event = {
	id = Plus.4554
	desc = EVTDESC_Plus_4554
	border = GFX_event_letter_frame_diplomacy

	is_triggered_only = yes

	immediate = {
		add_character_modifier = {
			name = tributary_timer
			years = 1
			hidden = yes
		}
	}

	option = { # CURSES
		name = EVTOPT_Plus_4005A
	}
}