# IDs JD.2000-JD.2503

namespace = JD

#####################
# Hostage CB Events #
#####################
character_event = { # The target receives an event
	id = JD.2000
	desc = EVTDESC_JD_2000
	picture = GFX_evt_into_the_dungeon
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	trigger = {
		war_with = FROM
	}

	immediate = {
		any_realm_character = {
			limit = {
				is_landed = no

				OR = {
					is_friend = FROM
					is_married = FROM
					is_consort = FROM
					is_close_relative = FROM
					dynasty = FROM
				}

				OR = {
					prisoner = yes

					has_opinion_modifier = {
						name = opinion_forced_consort
						who = ROOT
					}
				}
			}

			diplomatic_immunity = yes
		}

		random_realm_character = {
			limit = {
				is_landed = no

				OR = {
					is_friend = FROM
					is_married = FROM
					is_consort = FROM
					is_close_relative = FROM
					dynasty = FROM
				}

				OR = {
					prisoner = yes

					has_opinion_modifier = {
						name = opinion_forced_consort
						who = ROOT
					}
				}
			}

			save_event_target_as = chosen_captive
		}
	}

	option = { # Offer to end the war by sending back the captives
		name = EVTOPTA_JD_2000

		trigger = {
			event_target:chosen_captive = { is_alive = yes }
		}

		FROM = { character_event = { id = JD.2001 } }

		ai_chance = {
			factor = 20

			mult_modifier = {
				factor = 2
				trait = craven
			}
			mult_modifier = {
				factor = 2
				trait = content
			}
			mult_modifier = {
				factor = 2
				trait = kind
			}
		}
	}

	option = { # Kill one captive
		name = EVTOPTB_JD_2000

		trigger = {
			event_target:chosen_captive = { is_alive = yes }
		}

		tooltip = {
			event_target:chosen_captive = {
				show_scope_change = no

				death = {
					death_reason = death_execution_beheading
					killer = ROOT
				}
			}
		}

		FROM = { character_event = { id = JD.2004 } }

		prestige = 100

		ai_chance = {
			factor = 40

			trigger = {
				event_target:chosen_captive = {
					NOR = {
						is_friend = ROOT
						is_lover = ROOT
						is_close_relative = ROOT
					}
				}
			}
		}
	}

	option = { # Kill ALL captives!!
		name = EVTOPTC_JD_2000

		trigger = {
			any_realm_character = {
				count >= 2

				is_landed = no

				OR = {
					is_friend = FROM
					is_married = FROM
					is_consort = FROM
					is_close_relative = FROM
					dynasty = FROM
				}

				OR = {
					prisoner = yes

					has_opinion_modifier = {
						name = opinion_forced_consort
						who = ROOT
					}
				}
			}
		}

		any_realm_character = {
			limit = {
				is_landed = no

				OR = {
					is_friend = FROM
					is_married = FROM
					is_consort = FROM
					is_close_relative = FROM
					dynasty = FROM
				}

				OR = {
					prisoner = yes

					has_opinion_modifier = {
						name = opinion_forced_consort
						who = ROOT
					}
				}
			}

			death = {
				death_reason = death_execution_beheading
				killer = ROOT
			}
		}

		FROM = { character_event = { id = JD.2005 } }

		prestige = 200

		ai_chance = {
			factor = 5

			mult_modifier = {
				factor = 5
				trait = cruel
			}
			mult_modifier = {
				factor = 5
				trait = arbitrary
			}
			mult_modifier = {
				factor = 5
				trait = lunatic
			}
			mult_modifier = {
				factor = 5
				trait = possessed
			}
			mult_modifier = {
				factor = 5
				is_rival = FROM
			}
		}
	}

	option = { # Do nothing, war continues normally
		name = EVTOPTD_JD_2000

		ai_chance = { factor = 35 }
	}

	after = {
		hidden_effect = {
			any_realm_character = {
				limit = {
					is_landed = no

					OR = {
						is_friend = FROM
						is_married = FROM
						is_consort = FROM
						is_close_relative = FROM
						dynasty = FROM
					}

					OR = {
						prisoner = yes

						has_opinion_modifier = {
							name = opinion_forced_consort
							who = ROOT
						}
					}
				}

				diplomatic_immunity = no
			}
		}
	}
}

character_event = { # Captives released, end war?
	id = JD.2001
	desc = EVTDESC_JD_2001
	picture = GFX_evt_emissary
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	option = { # Accept offer
		name = EVTOPTA_JD_2001

		FROM = {
			show_scope_change = no

			character_event = { id = JD.2002 }

			any_realm_character = {
				show_scope_change = no

				limit = {
					is_landed = no

					OR = {
						is_friend = FROM
						is_married = FROM
						is_consort = FROM
						is_close_relative = FROM
						dynasty = FROM
					}

					OR = {
						prisoner = yes

						has_opinion_modifier = {
							name = opinion_forced_consort
							who = PREV
						}
					}
				}

				hidden_effect = {
					if = { # Concubines are released...
						limit = {
							is_consort = yes
							consort = { same_realm = PREV } # ...if they are taken by someone in the same realm of your target
						}

						consort = { remove_consort = PREV }
					}
					else_if = {
						limit = { # Marriages are annuled
							is_married = yes
							any_spouse = { same_realm = PREV }
						}

						remove_spouse = yes
					}
				}

				if = { # Release prisoners
					limit = { prisoner = yes }
					imprison = no
				}

				if = { # Move to the saviours court...
					limit = {
						trigger_if = { # ...unless you are a concubine to a ruler ...
							limit = { is_consort = yes }
							consort = { is_ruler = no }
						}
						trigger_else_if = { # ...or the wife to a ruler
							limit = { is_married = yes }
							spouse = { is_ruler = no }
						}
					}

					move_character = ROOT
				}

				opinion = {
					name = opinion_my_saviour
					who = ROOT
					years = 100
				}
			}
		}

		any_war = {
			limit = {
				attacker = { character = ROOT }
				defender = { character = FROM }
			}

			end_war = invalid
		}

		ai_chance = {
			factor = 80

			mult_modifier = {
				factor = 2
				trait = craven
			}
			mult_modifier = {
				factor = 2
				trait = content
			}
			mult_modifier = {
				factor = 2
				trait = kind
			}
		}
	}

	option = { # Reject offer
		name = EVTOPTB_JD_2001

		FROM = { character_event = { id = JD.2003 } }

		prestige = -100

		ai_chance = {
			factor = 20

			mult_modifier = {
				factor = 2
				trait = arbitrary
			}
		}
	}
}

character_event = { # Informed of acceptance
	id = JD.2002
	desc = EVTDESC_JD_2002
	picture = GFX_evt_carriage_default
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	ai = no

	option = {
		name = EVTOPTA_JD_2002
	}
}

character_event = { # Informed of denial
	id = JD.2003
	desc = EVTDESC_JD_2003
	picture = GFX_evt_lunatic
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	option = { # War contines
		name = EVTOPTA_JD_2003

		ai_chance = {
			factor = 60

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

	option = { # Execute prisoners
		name = EVTOPTB_JD_2003

		trigger = {
			any_realm_character = {
				is_landed = no

				OR = {
					is_friend = FROM
					is_married = FROM
					is_consort = FROM
					is_close_relative = FROM
					dynasty = FROM
				}

				OR = {
					prisoner = yes

					has_opinion_modifier = {
						name = opinion_forced_consort
						who = ROOT
					}
				}
			}
		}

		any_realm_character = {
			show_scope_change = no

			limit = {
				is_ruler = no

				OR = {
					is_friend = FROM
					is_married = FROM
					is_consort = FROM
					is_close_relative = FROM
					dynasty = FROM
				}

				OR = {
					prisoner = yes

					has_opinion_modifier = {
						name = opinion_forced_consort
						who = ROOT
					}
				}
			}

			death = {
				death_reason = death_execution_beheading
				killer = ROOT
			}
		}

		FROM = { character_event = { id = JD.2005 } }

		prestige = 100

		ai_chance = {
			factor = 40

			mult_modifier = {
				factor = 2
				trait = cruel
			}
			mult_modifier = {
				factor = 2
				trait = wroth
			}
		}
	}
}

character_event = { # Informed of execution
	id = JD.2004
	desc = EVTDESC_JD_2004
	picture = GFX_evt_beheading
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	option = {
		name = EVTOPTA_JD_2004

		event_target:chosen_captive = {
			show_scope_change = no

			if = {
				limit = {
					NOT = {
						has_opinion_modifier = {
							name = opinion_my_saviour
							who = ROOT
						}
					}
				}

				death = {
					death_reason = death_execution_beheading
					killer = FROM
				}
			}
		}
	}
}

character_event = { # Informed of mass execution
	id = JD.2005
	desc = EVTDESC_JD_2005
	picture = GFX_evt_beheading
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	ai = no

	option = {
		name = EVTOPTA_JD_2005
	}
}

#############################################
# Strengthen Religion Opportunity CB Events #
#############################################

character_event = { # Religious Liberation
	id = JD.2100
	desc = EVTDESC_JD_2100
	picture = GFX_evt_religious_exultation
	border = GFX_event_normal_frame_religion

	is_triggered_only = yes # on_yearly_pulse, random_events

	has_dlc = "Jade Dragon"
	only_independent = yes

	trigger = {
		NOR = {
			has_game_rule = {
				name = jade_dragon_cbs
				value = off
			}

			trait = cynical
			has_character_flag = had_liberate_opportunity
			has_character_flag = declined_liberate_opportunity
		}

		is_nomadic = no
		mercenary = no
		pacifist = no

		any_neighbor_independent_ruler = {								# You need to neighbour a ruler
			NOT = { religion = ROOT }									# ... who is NOT of your religion

			any_realm_province = {										# ... and has any province in their realm...
				religion = ROOT											# ... that is of your religion...
				held_under_PREV = yes

				kingdom = {												# ... and a De Jure part of a Kingdom, created or not...
					any_de_jure_vassal_title = {						# ... which contains any title...
						tier = COUNT									# ... of Count tier...

						holder_scope = {								# ... that is in the same realm as the Top Liege of the neighbor
							same_realm = PREVPREVPREVPREV				# ... Province's holder...
						}

						location = {									# ... and where the associated province...
							any_neighbor_province = {					# ... has a neighboring province...
								owner = {								# ... whose holder...
									top_liege = {						# ... has a Top Liege...
										character = ROOT				# ... who is you!
									}
								}
							}
						}
					}
				}
			}
		}
	}

	weight_multiplier = {
		factor = 1

		mult_modifier = {
			factor = 3
			trait = zealous
		}
		mult_modifier = {
			factor = 0.25
			lower_real_tier_than = KING
		}
	}

	immediate = {
		random_neighbor_independent_ruler = {
			limit = {
				NOT = { religion = ROOT }

				any_realm_province = {
					religion = ROOT
					held_under_PREV = yes

					kingdom = {
						any_de_jure_vassal_title = {
							tier = COUNT

							holder_scope = {
								same_realm = PREVPREVPREVPREV
							}

							location = {
								any_neighbor_province = {
									top_liege = {
										character = ROOT
									}
								}
							}
						}
					}
				}
			}
			save_event_target_as = liberate_target
		}
	}

	option = {
		name = EVTOPTA_JD_2100

		custom_tooltip = { text = cb_opportunity_liberate }

		set_character_flag = had_liberate_opportunity
	}

	option = {
		name = EVTOPTB_JD_2100

		custom_tooltip = { text = cb_opportunity_liberate_deny }

		set_character_flag = declined_liberate_opportunity

		ai_chance = { factor = 0 }
	}
}

###########################
# New Tributary CB Events #
###########################

character_event = {
	id = JD.2200
	desc = EVTDESC_JD_2200
	picture = GFX_evt_throne_room

	is_triggered_only = yes # tributary_independence_normal, jd_decisions.txt

	ai = no

	option = {
		name = EVTOPTA_JD_2200
	}
}


#################################
# Tributary CB Surrender Events #
#################################

character_event = {
	id = JD.2500
	desc = evt_DESC_JD_2500
	picture = GFX_evt_council

	is_triggered_only = yes

	option = { # We shall surrender now and save our people
		name = evt_OPTA_JD_2500

		event_target:tribute_war_suzerain = {
			show_scope_change = no

			letter_event = {
				id = JD.2501
				days = 1
				tooltip = surrender_tributary_event_tt
			}
		}

		ai_chance = {
			factor = 10

			trigger = {
				is_tributary = no

				relative_power_including_allies_defender = {
					who = event_target:tribute_war_suzerain
					power < 1.5
				}

				NOR = {
					trait = lunatic
					trait = possessed
					trait = proud
					trait = stubborn


					event_target:tribute_war_suzerain = {
						any_war = {
							NOR = {
								any_attacker = { character = ROOT }
								any_defender = { character = ROOT }
							}
						}
					}
				}
			}

			mult_modifier = {
				factor = 2

				OR = {
					trait = craven
					trait = content
				}
			}
			mult_modifier = {
				factor = 1.5

				relative_power_including_allies_defender = {
					who = event_target:tribute_war_suzerain
					power < 0.25
				}
			}
			mult_modifier = {
				factor = 1.5

				relative_power_including_allies_defender = {
					who = event_target:tribute_war_suzerain
					power < 0.5
				}
			}
			mult_modifier = {
				factor = 1.5

				relative_power_including_allies_defender = {
					who = event_target:tribute_war_suzerain
					power < 0.75
				}
			}
			mult_modifier = {
				factor = 1.5

				relative_power_including_allies_defender = {
					who = event_target:tribute_war_suzerain
					power < 0.9
				}
			}
		}
	}

	option = { # We will not give in so easily!
		name = evt_OPTB_JD_2500

		ai_chance = { factor = 90 }
	}
}

# The target of your tributary war surrenders
letter_event = {
	id = JD.2501
	desc = evt_DESC_JD_2501

	is_triggered_only = yes

	trigger = { event_target:tribute_war_target = { is_alive = yes } }

	option = { # A wise decision
		name = evt_OPTA_JD_2501

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

		if = {
			limit = { is_nomadic = yes }

			clan_title = {
				show_scope_change = no

				ROOT = {
					show_scope_change = no

					any_vassal = {
						show_scope_change = no

						limit = { is_nomadic = yes }

						clan_title = {
							show_scope_change = no

							clan_opinion = {
								name = won_tributary_war
								who = PREVPREVPREV
								years = 3
							}
						}
					}
				}
			}
		}
		else_if = {
			limit = { is_tribal = yes }

			any_vassal = {
				show_scope_change = no

				limit = { is_tribal = yes }

				opinion = {
					name = won_tributary_war
					who = ROOT
					years = 3
				}
			}
		}

		FROM = { letter_event = { id = JD.2502 } }

		tooltip = {
			event_target:tribute_war_target = {
				# show_scope_change = no

				prestige = -50

				if = {
					limit = { is_tributary = yes }
					remove_tributary = suzerain
				}

				trigger_switch = {
					on_trigger = has_character_flag

					surrender_tributary_permanent_cb = {
						event_target:tribute_war_suzerain = {
							show_scope_change = no

							make_tributary = {
								who = event_target:tribute_war_target
								tributary_type = permanent
							}
						}

						opinion = {
							name = opinion_forced_tributary
							who = ROOT
							years = 15
						}
					}

					surrender_tributary_nomad_cb = {
						event_target:tribute_war_suzerain = {
							show_scope_change = no

							make_tributary = {
								who = event_target:tribute_war_target
								tributary_type = nomadic
							}
						}
					}

					surrender_tributary_cb = {
						event_target:tribute_war_suzerain = {
							show_scope_change = no

							make_tributary = {
								who = event_target:tribute_war_target
								percentage = 0.4
							}
						}
					}
				}
			}
		}

		ai_chance = {
			factor = 70

			trigger = {
				NOR = {
					trait = lunatic
					trait = possessed
				}
			}

			mult_modifier = {
				factor = 0.1
				trait = cruel
			}
			mult_modifier = {
				factor = 0.5
				trait = proud
			}
			mult_modifier = {
				factor = 0.3
				is_nomadic = yes
			}
		}
	}

	option = { # Haha let them cower as we pillage their lands
		name = evt_OPTB_JD_2501

		prestige = 20

		hidden_effect = {
			FROM = {
				clr_character_flag = surrender_tributary_permanent_cb
				clr_character_flag = surrender_tributary_nomad_cb
				clr_character_flag = surrender_tributary_cb

				letter_event = { id = JD.2503 }
			}
		}

		ai_chance = {
			factor = 30

			mult_modifier = {
				factor = 2
				trait = humble
			}
			mult_modifier = {
				factor = 5
				trait = content
			}
			mult_modifier = {
				factor = 2
				is_smart_trigger = yes
			}
			mult_modifier = {
				factor = 2
				trait = kind
			}
			mult_modifier = {
				factor = 3

				relative_power_including_allies_attacker = {
					who = FROM
					power < 1.5
				}
			}
		}
	}
}

# Your surrender was accepted
letter_event = {
	id = JD.2502
	desc = evt_DESC_JD_2502

	is_triggered_only = yes

	option = {
		name = evt_OPTA_JD_2502

		prestige = -50

		if = {
			limit = { is_tributary = yes }
			remove_tributary = suzerain
		}

		trigger_switch = {
			on_trigger = has_character_flag

			surrender_tributary_permanent_cb = {
				event_target:tribute_war_suzerain = {
					show_scope_change = no

					make_tributary = {
						who = event_target:tribute_war_target
						tributary_type = permanent
					}

					opinion = {
						name = opinion_forced_tributary
						who = event_target:tribute_war_suzerain
						years = 15
					}

					hidden_effect = {
						any_war = {
							limit = {
								using_cb = tributary_permanent_cb
								defender = { character = event_target:tribute_war_target }
							}

							end_war = invalid
						}
					}
				}
			}

			surrender_tributary_nomad_cb = {
				event_target:tribute_war_suzerain = {
					show_scope_change = no

					make_tributary = {
						who = event_target:tribute_war_target
						tributary_type = nomadic
					}

					hidden_effect = {
						any_war = {
							limit = {
								using_cb = tributary_nomad_cb
								defender = { character = event_target:tribute_war_target }
							}

							end_war = invalid
						}
					}
				}
			}

			surrender_tributary_cb = {
				event_target:tribute_war_suzerain = {
					show_scope_change = no

					make_tributary = {
						who = event_target:tribute_war_target
						percentage = 0.4
					}

					hidden_effect = {
						any_war = {
							limit = {
								using_cb = tributary_cb
								defender = { character = event_target:tribute_war_target }
							}

							end_war = invalid
						}
					}
				}
			}
		}

		clr_character_flag = surrender_tributary_permanent_cb
		clr_character_flag = surrender_tributary_nomad_cb
		clr_character_flag = surrender_tributary_cb
	}
}

# Your surrender was declined
letter_event = {
	id = JD.2503
	desc = evt_DESC_JD_2503

	is_triggered_only = yes

	ai = no

	option = { # Then we fight!
		name = evt_OPTA_JD_2503
	}
}