﻿declare_war_interaction = {
	category = interaction_category_diplomacy
	common_interaction = yes
	special_interaction = declare_war_interaction
	interface = declare_war
	interface_priority = 70
	popup_on_receive = yes
	pause_on_receive = no # this is handled by the interface instead

	desc = declare_war_desc

	is_shown = {
		scope:recipient != scope:actor
		scope:recipient = {
			is_playable_character = yes
		}
		scope:actor = {
			NOT = {
				is_at_war_with = scope:recipient
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:actor = {
			custom_tooltip = {
				text = sworn_peace_tt
				NOT = { has_character_flag = sworn_peace }
			}
			NOT = { has_trait = incapable }
			can_attack_in_hierarchy = scope:recipient
			trigger_if = {
				limit = {
					NOT = {
						government_has_flag = can_start_war_with_raised_troops
					}
				}
				NOT = {
					has_raised_armies = yes
				}
			}
			trigger_else = {
				custom_description = {
					text = army_blocks_defender_army
					NOT = {
						any_army = {
							location.county.holder ?= scope:recipient
						}
					}
				}
			}
			has_any_display_cb_on = scope:recipient
			NOT = {
				is_allied_in_war = scope:recipient
			}
			custom_description = {
				text = "is_not_bankrupt"
				is_in_debt = no
			}
			NOT = {
				custom_description = {
					text = "is_in_an_activity"
					exists = involved_activity
				}
			}
			trigger_if = {
				limit = {
					culture = { has_cultural_parameter = cannot_attack_allies }
				}
				NOT = {
					is_allied_to = scope:recipient
				}
			}
			trigger_if = {
				limit = {
					culture = { has_cultural_parameter = cannot_attack_truces }
				}
				NOT = {
					has_truce = scope:recipient
				}
			}
			is_imprisoned = no
			trigger_if = {
				limit = {
					has_variable_list = subjugation_offer_under_consideration
				}
				custom_description = {
					text = is_not_considering_offer_of_subjugation
					NOT = {
						is_target_in_variable_list = {
							name = subjugation_offer_under_consideration
							target = scope:recipient
						}
					}
				}
			}
			trigger_if = {
				limit = {
					has_realm_law = japanese_bureaucracy_3
					this != top_liege
				}
				custom_tooltip = {
					text = non_admin_vassal_japanese_bureaucracy_3
					government_allows = administrative
				}
			}
		}
		scope:recipient = {
			custom_tooltip = {
				text = is_a_herder_recipient_tt
				NOT = { government_has_flag = government_is_true_herder } # herders can't fight
			}
			NOT = { is_tributary_of_suzerain_or_above = scope:actor } # can't fight your tributaries or your tributaries' tributaries
			NOT = { has_strong_hook = scope:actor }
			trigger_if = {
				limit = { is_imprisoned = yes }
				imprisoner != scope:actor
			}
		}
		scope:actor = {
			trigger_if = {
				limit = {
					NOT = { government_allows = administrative }
					liege ?= {
						has_realm_law_flag = vassal_all_wars_banned_permanent
						this != scope:actor
					}
				}
				custom_tooltip = {
					text = admin_all_vassal_wars_banned
					always = no
				}
			}
			trigger_if = {
				limit = {
					government_allows = administrative
					top_liege = scope:recipient.top_liege
					scope:recipient = { government_allows = administrative }
					top_liege != scope:recipient
					NOT = {
						top_participant_group:dynastic_cycle ?= {
							has_participant_group_parameter = dynastic_cycle_vassal_internal_wars_allowed
						}
					}
				}
				custom_tooltip = {
					text = admin_cannot_declare_internal_wars
					always = no
				}
			}
			trigger_if = { # Admin - Laws only allow frontier and naval themes to declare war
				limit = {
					government_allows = administrative
					top_liege != this
					top_liege = {
						this != scope:recipient.top_liege
						has_realm_law_flag = admin_vassal_wars_restricted
					}
				}
				custom_tooltip = {
					text = admin_all_vassal_wars_banned
					OR = {
						vassal_contract_has_flag = admin_theme_frontier
						vassal_contract_has_flag = admin_theme_naval
					}
				}
			}
			trigger_if = { # Admin - Laws only allow frontier and naval themes to declare war IF they have permission
				limit = {
					government_allows = administrative
					OR = {
						vassal_contract_has_flag = admin_theme_frontier
						vassal_contract_has_flag = admin_theme_naval
					}
					top_liege = {
						this != scope:recipient.top_liege
						has_realm_law_flag = admin_vassal_wars_permission_only
						NOT = { has_realm_law_flag = admin_vassal_wars_banned }
					}
				}
				custom_tooltip = {
					text = admin_vassal_wars_permission_only_desc
					has_variable = admin_permission_to_declare_war
				}
			}
			trigger_if = { # Admin - Laws prevent all vassals from declaring war
				limit = {
					government_allows = administrative
					OR = {
						vassal_contract_has_flag = admin_theme_frontier
						vassal_contract_has_flag = admin_theme_naval
					}
					top_liege = {
						this != scope:recipient.top_liege
						has_realm_law_flag = admin_vassal_wars_banned
					}
				}
				custom_tooltip = {
					text = admin_all_vassal_wars_banned
					always = no
				}
			}
			trigger_if = {
				limit = {
					scope:recipient = {
						OR = {
							has_subject_contract_group = tributary_celestial
							has_subject_contract_group = tributary_hegemonic
						}
					}
					is_independent_ruler = no # to avoid duplicating tooltips already applying to the top_liege
				}
				NOT = {
					scope:recipient = {
						is_tributary_of = scope:actor.top_liege
					}
				}
			}
		}
		scope:actor = {
			trigger_if = {
				limit = { has_government = landless_adventurer_government }
				custom_tooltip = {
					text = camp_located_in_defender_realm.tt
					domicile.domicile_location.county.holder = {
						NOR = {
							this = scope:recipient
							any_liege_or_above = { this = scope:recipient }
						}
					}
				}
			}
		}
		trigger_if = {
			limit = {
				scope:actor = {
					is_confederation_member = yes
				}
			}
			NOT = {
				scope:recipient = {
					is_member_of_confederation = scope:actor.confederation
				}
			}
		}
	}

	has_valid_target_showing_failures_only = {
		custom_description = {
			text = "declare_war_hook_on_liege"
			OR = {
				war_declarer_needs_hook_on_liege = no
				always = scope:hook
			}
		}
		scope:actor = {
			NOR = {
				is_at_war_with = scope:recipient
				custom_description = { #A vassal cannot go to war against someone their Liege is already at war with
					text = liege_is_at_war_with_recipient
					object = scope:recipient
					liege = {
						is_at_war_with = scope:recipient
					}
				}
			}
		}
	}

	send_options_exclusive = no
	send_option = {
		is_shown = {
			war_declarer_needs_hook_on_liege = yes
		}
		is_valid = {
			scope:actor = {
				has_usable_hook = liege
			}
		}
		flag = hook
		localization = WAR_LIEGE_HOOK
		can_invalidate_interaction = yes
	}
	should_use_extra_icon = {
		war_declarer_needs_hook_on_liege = yes
		scope:actor = { has_usable_hook = liege }
	}
	extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
	
	on_accept = {
		scope:actor = {
			#Feedback!
			hidden_effect = {
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = declare_war_interaction_notification

					left_icon = scope:actor					
					right_icon = scope:recipient

					custom_tooltip = declare_war_interaction_notification_tooltip

					show_as_tooltip = {
						if = {
							limit = { always = scope:hook }
							use_hook = liege
						}
					}
				}
			}

			#Has the instigator promised a vassal a war (vassal.2601)?
			if = {
				limit = {
					exists = var:promised_war
					var:promised_war = {
						is_alive = yes
						this != scope:recipient
					}
				}
				trigger_event = {
					id = vassal.2610
					days = { 7 10 }
				}
			}

			if = {
				limit = { always = scope:hook }
				use_hook = liege
			}

			#Send break up event if they are your lover
			if = {
				limit = {
					has_relation_lover = scope:recipient
					NOT = { has_relation_rival = scope:recipient } #To enable really strange love stories
					any_character_war = {
						casus_belli = {
							primary_attacker = scope:actor
							primary_defender = scope:recipient
							any_target_title = { }
						}
					}
				}
				scope:recipient = {
					trigger_event = {
						id = lover.0103
						days = { 14 30 }
					}
				}
			}

			#Invalidate any wars your vassals have going against recipient atm
			scope:recipient = {
				if = {
					limit = {
						any_character_war = {
							primary_attacker = {
								is_vassal_or_below_of = scope:actor
								trigger_if = { #Ai should never invalidate a player's war!
									limit = {
										this = { is_ai = no }
									}
									scope:actor = {
										is_ai = no
									}
								}
							}
						}
					}
					every_character_war = {
						limit = {
							primary_attacker = {
								is_vassal_or_below_of = scope:actor
								trigger_if = { #Ai should never invalidate a player's war!
									limit = {
										this = { is_ai = no }
									}
									scope:actor = {
										is_ai = no
									}
								}
							}
						}
						show_as_tooltip = { end_war = invalidated } #Actually ended in the event
						primary_attacker = { trigger_event = war_event.1001 }
					}
				}
			}
			#Notify defender's vassals if the war is targeting one or more of their titles
			scope:recipient = {
				if = {
					limit = {
						any_vassal = {
							save_temporary_scope_as = attacked_vassal
							any_character_war = {
								casus_belli = {
									primary_attacker = scope:actor
									primary_defender = scope:recipient
									any_target_title = {
										holder = {
											OR = {
												this = scope:attacked_vassal
												is_vassal_or_below_of = scope:attacked_vassal
											}
										}
									}
								}
							}
						}
					}
					every_vassal = {
						save_temporary_scope_as = attacked_vassal
						limit = {
							any_character_war = {
								casus_belli = {
									primary_attacker = scope:actor
									primary_defender = scope:recipient
									any_target_title = {
										holder = {
											OR = {
												this = scope:attacked_vassal
												is_vassal_or_below_of = scope:attacked_vassal
											}
										}
									}
								}
							}
						}
						send_interface_toast = {
							type = msg_war_declared_on_liege
							title = declare_war_interaction_notification

							left_icon = scope:actor					
							right_icon = scope:recipient

							custom_tooltip = declare_war_interaction_notification_tooltip
						}
					}
				}
			}
			
			# If you are admin and had permission to start war, spend said permission
			if = {
				limit = {
					has_variable = admin_permission_to_declare_war
				}
				remove_variable = admin_permission_to_declare_war
			}
		}
	}
	
	auto_accept = yes
}

end_war_attacker_victory_interaction = {
	special_interaction = end_war_attacker_victory_interaction
	hidden = yes
	use_diplomatic_range = no
	secondary_scopes_optional = yes

	ai_targets = {
		ai_recipients = primary_war_enemies
	}

	ai_frequency_by_tier = {
		barony = 0
		county = 1
		duchy = 1
		kingdom = 1
		empire = 1
		hegemony = 1
	}

	# Depending on who was the attacker, we need to send a different notification message to the recipient.
	notification_text = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:recipient = {
						any_character_war = {
							casus_belli = {
								primary_attacker = scope:actor
							}
						}
					}
				}
				desc = end_war_attacker_victory_attacker_desc
			}
			desc = end_war_attacker_victory_defender_desc
		}
	}

	populate_actor_list = {
		scope:actor = {
			every_close_family_member = {
				limit = {
					# Unlanded, at sender's court, child/sibling/nibling/grandchild
					bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:actor }
				}
				add_to_list = characters
			}
		}
	}

	populate_recipient_list = {
		scope:recipient = {
			every_close_family_member = {
				limit = {
					# Unlanded, at sender's court, child/sibling/nibling/grandchild
					bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:recipient }
				}
				add_to_list = characters
			}
		}
	}

	can_be_picked = {
		scope:war ?= {
			custom_tooltip = {
				text = hostage_exchange_invalid_for_crusade_tt
				NOR = {
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
			}
			custom_tooltip = {
				text = hostage_exchange_invalid_for_cb_tt
				bp2_hostage_exchange_invalid_cb_trigger = no
			}
		}
	}

	redirect = {
		# secondary recipient is always set, so we need to clear it
		# if can_send condition depends on the scope being empty
		clear_saved_scope = secondary_recipient
	}

	on_accept = {
		casus_belli = {
			primary_attacker = {
				save_scope_as = attacker_winner
			}
			primary_defender = {
				save_scope_as = defender_loser
			}
		}

		if = {
			limit = {
				scope:war ?= {
					using_cb = fp3_free_house_member_cb
				}
			}
		}
		else = {
			release_prisoners_of_war_effect = yes
		}

		# Hostages
		# Save scopes for clarity
		if = {
			limit = {
				scope:war ?= {
					NOR = {
						using_cb = undirected_great_holy_war
						using_cb = directed_great_holy_war
					}
					bp2_hostage_exchange_invalid_cb_trigger = no
				}
			}
			if = {
				limit = {
					exists = scope:secondary_actor
					scope:recipient = { is_landed_or_landless_administrative = yes }
				}
				hostage_depart_effect = {
					HOSTAGE = scope:secondary_actor
					WARDEN = scope:recipient
					HOME_COURT = scope:actor
				}
			}
			if = {
				limit = {
					exists = scope:secondary_recipient
					scope:actor = { is_landed_or_landless_administrative = yes }
				}
				hostage_depart_effect = {
					HOSTAGE = scope:secondary_recipient
					WARDEN = scope:actor
					HOME_COURT = scope:recipient
				}
			}
		}

		#Send notification to vassals
		hidden_effect = {
			scope:attacker_winner = {
				if = {
					limit = {
						any_vassal = {
							this != scope:defender_loser
						}
					}
					every_vassal = {
						limit = { this != scope:defender_loser }
						send_interface_toast = {
							type = msg_liege_war_ended_attacker_win
							title = war_event.notification_liege_win.t
							left_icon = scope:attacker_winner
							right_icon = scope:defender_loser
							custom_tooltip = war_event.1901
						}
					}
				}
			}
			scope:defender_loser = {
				if = {
					limit = {
						any_vassal = { this != scope:attacker_winner }
					}
					every_vassal = {
						limit = {
							this != scope:attacker_winner
						}
						send_interface_toast = {
							type = msg_liege_war_ended_attacker_win
							title = war_event.notification_liege_loss.t
							left_icon = scope:defender_loser
							right_icon = scope:attacker_winner
							custom_tooltip = war_event.1902
						}
					}
				}
			}
		}

		#Special bookmark event for Aella of Northumbria
		bookmark_867_northmen_aellas_capture_war_imprisonment_effect = yes

		end_war = attacker
	}

	on_decline = {
	}

	ai_potential = {
		is_at_war = yes
		any_character_war = {
			is_war_leader = root
			OR = {
				attacker_war_score >= 100
				AND = {
					OR = {
						attacker_war_score >= 90
						AND = {
							attacker_war_score >= 80
							root = {
								dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
							}
						}
					}
					root = {
						has_perk = peacemaker_perk
					}
					primary_defender = {
						is_ai = yes
					}
				}
				AND = {
					OR = {
						attacker_war_score >= 90
						AND = {
							attacker_war_score >= 80
							root = {
								has_perk = peacemaker_perk
							}
						}
					}
					root = {
						dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
					}
					primary_defender = {
						is_ai = yes
					}
				}
				#SENT A SCARY SEVERED HEAD AAAAHHH
				AND = {
					attacker_war_score >= 70
					primary_defender = {
						is_ai = yes
						save_temporary_scope_as = defender
					}
					root = {
						has_variable = peace_acceptance_head_scare
						var:peace_acceptance_head_scare = {
							this = scope:defender
						}
					}
				}
				primary_defender = {
					is_ai = yes
					has_variable = conqueror
				}
			}
		}
	}

	ai_will_do = {
		base = 0

		modifier = {
			scope:war = {
				primary_attacker = scope:actor
				OR = {
					attacker_war_score >= 100
					AND = {
						OR = {
							attacker_war_score >= 90
							AND = {
								attacker_war_score >= 80
								root = {
									dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
								}
							}
						}
						root = {
							has_perk = peacemaker_perk
						}
						primary_defender = {
							is_ai = yes
						}
					}
					AND = {
						OR = {
							attacker_war_score >= 90
							AND = {
								attacker_war_score >= 80
								root = {
									has_perk = peacemaker_perk
								}
							}
						}
						root = {
							dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
						}
						primary_defender = {
							is_ai = yes
						}
					}
					#SENT A SCARY SEVERED HEAD AAAAHHH
					AND = {
						attacker_war_score >= 70
						primary_defender = {
							is_ai = yes
							save_temporary_scope_as = defender
						}
						root = {
							has_variable = peace_acceptance_head_scare
							var:peace_acceptance_head_scare = {
								this = scope:defender
							}
						}
					}
					AND = {
						NOR = {
							using_cb = undirected_great_holy_war
							using_cb = mongol_invasion_war
							using_cb = mongol_realm_invasion_war
							using_cb = mpo_gok_onslaught_cb
						}
						primary_defender = {
							is_ai = yes
							has_variable = conqueror
						}
					}
				}
			}
			add = 100
		}
		modifier = {
			scope:war = {
				primary_defender = scope:actor
				attacker_war_score >= 100
				days_since_max_war_score >= 180
			}
			add = 100
		}
	}

	ai_accept = {
		base = -99

		compare_modifier = {
			target = scope:war
			value = attacker_war_score
			desc = "WARSCORE_MODIFIER"
		}
		modifier = {
			scope:war.casus_belli = {
				primary_attacker = {
					has_perk = peacemaker_perk
					this != scope:recipient
				}
			}

			add = peacemaker_value

			desc = "PEACEMAKER_PERK_MODIFIER"
		}
		modifier = {
			scope:war.casus_belli = {
				primary_attacker = {
					dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
					NOT = { this = scope:recipient }
				}
			}

			add = 10

			desc = "NOMAD_LEGACY_PERK_MODIFIER"
		}
		modifier = {
			scope:war.casus_belli = {
				primary_defender = {
					save_temporary_scope_as = defender
				}
				primary_attacker = {
					has_variable = peace_acceptance_head_scare
					var:peace_acceptance_head_scare = {
						this = scope:defender
					}
				}
				primary_defender = {
					is_ai = yes
				}
			}
			add = 30
			desc = "COWED_BY_SEVERED_HEAD_MODIFIER"
		}

		# Hostages
		modifier = {
			exists = scope:secondary_actor
			add = war_actor_hostage_value
			desc = WAR_OVERVIEW_HOSTAGE_OFFER_VALUE
		}
		modifier = {
			exists = scope:secondary_recipient
			add = war_recipient_hostage_value
			desc = WAR_OVERVIEW_HOSTAGE_DEMAND_VALUE
		}
		# The AI cannot accept the outcome, if they will lose all their land and you try to take a hostage from them
		modifier = {
			scope:war = {
				OR = {
					exists = scope:secondary_actor
					exists = scope:secondary_recipient
				}
				casus_belli = {
					any_target_title = {
						count >= 1
						add_to_temporary_list = target_titles
					}
				}
				NOT = {
					scope:recipient = {
						any_held_title = {
							tier = tier_county
							NOT = {
								any_this_title_or_de_jure_above = { is_in_list = target_titles }
							}
						}
					}
				}
			}
			add = -10000
			desc = WAR_OVERVIEW_HOSTAGE_DEMAND_BLOCKED
		}
		# This is a bit of a hidden modifier, only used to make sure we get the right icon when you force it through at 100 war score, and the opponent has more realm left
		modifier = {
			scope:war = { 
				attacker_war_score >= 100 
				OR = {
					exists = scope:secondary_actor
					exists = scope:secondary_recipient
				}
				casus_belli = {
					any_target_title = {
						count >= 1
						add_to_temporary_list = target_titles
					}
				}
				scope:recipient = {
					any_held_title = {
						tier = tier_county
						NOT = {
							any_this_title_or_de_jure_above = { is_in_list = target_titles }
						}
					}
				}
			}
			add = 1000
			desc = "WARSCORE_MODIFIER"
		}
	}

	auto_accept = {
		trigger_if = {
			limit = {
				OR = {
					scope:war = {
						attacker_war_score >= 100
					}
					AND = {
						scope:recipient = { is_ai = yes }
						primary_attacker = scope:recipient
					}
					scope:war.casus_belli = { # Conquerors know when to fold
						primary_attacker = {
							is_ai = yes
							current_military_strength >= scope:recipient.fifty_percent_more_of_current_military_strength
						}
						primary_defender = {
							is_ai = yes
							has_variable = conqueror
							this = scope:recipient
						}
					}
				}
			}
			always = yes
		}
		trigger_else = {
			always = no
		}
		# The auto accept kind of messes up the hostage interaction a bit, so we block the auto accept if they try to grab a hostage and all the opponent's land at the same time
		scope:war = {
			trigger_if = {
				limit = {
					OR = {
						exists = scope:secondary_actor
						exists = scope:secondary_recipient
					}
					casus_belli = {
						any_target_title = {
							count >= 1
							add_to_temporary_list = target_titles
						}
					}
					NOT = {
						scope:recipient = {
							any_held_title = {
								tier = tier_county
								NOT = {
									any_this_title_or_de_jure_above = { is_in_list = target_titles }
								}
							}
						}
					}
				}
				always = no
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:war = {
			has_valid_casus_belli = yes
			trigger_if = { # Cannot exchange hostages with soon to be landless
				limit = {
					OR = {
						exists = scope:secondary_actor
						exists = scope:secondary_recipient
					}
					casus_belli = {
						any_target_title = {
							count >= 1
							add_to_temporary_list = target_titles
						}
					}
				}
				custom_tooltip = {
					text = hostage_no_land_after_war_tt
					scope:recipient = {
						any_held_title = {
							title_tier = county
							NOT = {
								any_this_title_or_de_jure_above = { is_in_list = target_titles }
							}
						}
					}
				}
			}
		}
	}
}

end_war_attacker_white_peace_interaction = {

	special_interaction = end_war_white_peace_interaction
	hidden = yes
	use_diplomatic_range = no
	secondary_scopes_optional = yes
	send_name = "WHITE_PEACE_INTERACTION"

	ai_targets = {
		ai_recipients = primary_war_enemies
	}

	ai_frequency_by_tier = {
		barony = 0
		county = 12
		duchy = 12
		kingdom = 12
		empire = 12
		hegemony = 12
	}

	# Depending on who was the attacker, we need to send a different notification message to the recipient.
	notification_text = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:recipient = {
						any_character_war = {
							casus_belli = {
								primary_attacker = scope:actor
							}
						}
					}
				}
				desc = end_war_attacker_white_peace_attacker_desc
			}
			desc = end_war_attacker_white_peace_defender_desc
		}
	}
	
	redirect = {
		# secondary recipient is always set, so we need to clear it
		# if can_send condition depends on the scope being empty
		clear_saved_scope = secondary_recipient
	}

	populate_actor_list = {
		scope:actor = {
			every_close_family_member = {
				limit = {
					# Unlanded, at sender's court, child/sibling/nibling/grandchild
					bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:actor }
				}
				add_to_list = characters
			}
		}
	}

	populate_recipient_list = {
		scope:recipient = {
			every_close_family_member = {
				limit = {
					# Unlanded, at sender's court, child/sibling/nibling/grandchild
					bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:recipient }
				}
				add_to_list = characters
			}
		}
	}

	can_be_picked = {
		scope:war ?= {
			custom_tooltip = {
				text = hostage_exchange_invalid_for_crusade_tt
				NOR = {
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
			}
			custom_tooltip = {
				text = hostage_exchange_invalid_for_cb_tt
				bp2_hostage_exchange_invalid_cb_trigger = no
			}
		}
	}

	on_accept = {
		casus_belli = {
			primary_attacker = {
				save_scope_as = attacker_white_peace
			}
			primary_defender = {
				save_scope_as = defender_white_peace
			}
		}

		if = {
			limit = {
				scope:war ?= {
					using_cb = fp3_free_house_member_cb
				}
			}
		}
		else = {
			release_prisoners_of_war_effect = yes
		}

		# Hostages
		# Save scopes for clarity
		if = {
			limit = {
				scope:war ?= {
					NOR = {
						using_cb = undirected_great_holy_war
						using_cb = directed_great_holy_war
					}
					bp2_hostage_exchange_invalid_cb_trigger = no
				}
			}
			if = {
				limit = {
					exists = scope:secondary_actor
					scope:recipient = { is_landed_or_landless_administrative = yes }
				}
				hostage_depart_effect = {
					HOSTAGE = scope:secondary_actor
					WARDEN = scope:recipient
					HOME_COURT = scope:actor
				}
			}
			if = {
				limit = {
					exists = scope:secondary_recipient
					scope:actor = { is_landed_or_landless_administrative = yes }
				}
				hostage_depart_effect = {
					HOSTAGE = scope:secondary_recipient
					WARDEN = scope:actor
					HOME_COURT = scope:recipient
				}
			}
		}

		#Send notification to vassals
		hidden_effect = {
			scope:attacker_white_peace = {
				if = {
					limit = {
						any_vassal = { this != scope:defender_white_peace }
					}
					every_vassal = {
						limit = {
							this != scope:defender_white_peace
						}
						send_interface_toast = {
							type = msg_liege_war_ended_white_peace
							title = WAR_RESULTS_WHITE_PEACE
							left_icon = scope:attacker_white_peace
							right_icon = scope:defender_white_peace
							custom_tooltip = war_event.1903
						}
					}
				}
			}
			scope:defender_white_peace = {
				if = {
					limit = {
						any_vassal = { this != scope:attacker_white_peace }
					}
					every_vassal = {
						limit = {
							this != scope:attacker_white_peace
						}
						send_interface_toast = {
							type = msg_liege_war_ended_white_peace
							title = WAR_RESULTS_WHITE_PEACE
							left_icon = scope:defender_white_peace
							right_icon = scope:attacker_white_peace
							custom_tooltip = war_event.1904
						}
					}
				}
			}
		}

		end_war = white_peace
	}

	on_decline = {
	}

	ai_potential = {
		any_character_war = {
			count >= 1
			casus_belli = {
				OR = {
					primary_attacker = root
					primary_defender = root
				}
			}
		}

		trigger_if = {
			limit = {
				exists = scope:war
			}
			NOR = { # Don't send inane white peace offers to the player
				scope:war = {
					casus_belli = {
						primary_defender = root
						primary_attacker = {
							is_ai = no
						}
					}
					attacker_war_score >= 10
				}
				scope:war = {
					casus_belli = {
						primary_attacker = root
						primary_defender = {
							is_ai = no
						}
					}
					defender_war_score >= 70
				}
			}
		}
	}

	ai_will_do = {
		base = 0

		# Attacker concerned about defending in other wars
		modifier = {
			scope:war.casus_belli = {
				primary_attacker = root
			}
			scope:war = {
				war_days >= 365
				attacker_war_score <= 0
			}
			any_character_war = {
				this != scope:war
				casus_belli = {
					primary_defender = root
				}
			}
			add = {
				value = 10
				if = {
					limit = {
						scope:war = {
							attacker_war_score <= -50
						}
					}
					add = 40
				}
			}
		}

		# Attacker Greed
		ai_value_modifier = {
			ai_greed = {
				if = {
					limit = {
						scope:war.casus_belli = {
							primary_attacker = root
						}
						scope:war = {
							war_days >= 365
							attacker_war_score <= 10
						}
						ai_greed > -20
					}
					value = -0.25
				}
			}
			ai_vengefulness = {
				if = {
					limit = { ai_vengefulness > 0 }
					value = -1
				}
			}
		}

		# Defender prefers White Peace to loss
		modifier = {
			scope:war.casus_belli = {
				primary_defender = root
			}
			scope:war = {
				war_days >= 182
				defender_war_score <= 15
			}
			add = {
				value = 10
				if = {
					limit = {
						scope:war = {
							defender_war_score <= -40
						}
					}
					add = 50
				}
			}
		}

		# Defenders want to end wars that's taking too long to win
		modifier = {
			scope:war.casus_belli = {
				primary_defender = root
			}
			scope:war = {
				war_days >= 365
			}
			add = {
				value = scope:war.war_days
				divide = 30
				if = {
					limit = {
						scope:war = {
							defender_war_score > 0
						}
					}
					subtract = scope:war.defender_war_score
				}
				if = { # If you're this close, perhaps it's worth waiting a few more months for ticking warscore?
					limit = {
						scope:war = {
							defender_war_score >= 70
						}
					}
					subtract = scope:war.defender_war_score
				}
				min = 0
			}
		}

		# I'm in debt, how about a white peace? Defender
		modifier = {
			scope:war = {
				war_days >= 182
			}
			scope:war.casus_belli = {
				primary_defender = root
			}
			OR = {
				debt_level >= 1
				treasury_debt_level >= 1
			}

			add = {
				value = debt_level
				multiply = 20

				if = {
					limit = { scope:war = { defender_war_score > 0 }}
					subtract = scope:war.defender_war_score
				}
				if = { # Push through to the end, it's worth it at this point...
					limit = { scope:war = { defender_war_score >= 80 }}
					subtract = scope:war.defender_war_score
				}
				min = 0
			}
		}


		# I'm in debt, how about a white peace? Attacker
		modifier = {
			scope:war = {
				war_days >= 182
			}
			scope:war.casus_belli = {
				primary_attacker = root
			}
			OR = {
				debt_level >= 1
				treasury_debt_level >= 1
			}


			add = {
				value = debt_level
				multiply = 20

				if = {
					limit = { scope:war = { attacker_war_score > 0 }}
					subtract = scope:war.attacker_war_score
				}
				min = 0
			}
		}

		# Do not attempt white peace vs. players if you're losing
		modifier = {
			OR = {
				AND = {
					scope:war.casus_belli = {
						primary_attacker = root
						primary_defender = { is_ai = no }
					}
					scope:war = {
						defender_war_score >= 30
					}
				}
				AND = {
					scope:war.casus_belli = {
						primary_defender = root
						primary_attacker = { is_ai = no }
					}
					scope:war = {
						attacker_war_score >= 30
					}
				}
			}
			factor = 0
		}
		# Can end with hostages of equalish value
		modifier = {
			exists = scope:secondary_recipient
			exists = scope:secondary_actor
			scope:war = {
				war_days >= 365
				NOR = {
					defender_war_score >= 30
					attacker_war_score >= 30
				}
			}
			trigger_if = {
				limit = { scope:war.primary_attacker = scope:actor }
				interaction_relative_hostage_value > -10
			}
			trigger_else = { interaction_relative_hostage_value > -20 }
			add = {
				value = 0
				if = {
					limit = { interaction_relative_hostage_value < 0 }
					add = {
						value = interaction_relative_hostage_value
						multiply = -1
					}
				}
				else = { add = interaction_relative_hostage_value }
				if = {
					limit = { scope:actor.ai_boldness < 0 }
					add = {
						value = scope:actor.ai_boldness
						multiply = -0.25
					}
				}
				if = {
					limit = { scope:actor.ai_honor < 0 }
					add = {
						value = scope:actor.ai_honor
						multiply = 0.1
					}
				}
				else = {
					add = {
						value = scope:actor.ai_honor
						multiply = 0.25
					}
				}
				if = {
					limit = { scope:actor.ai_rationality < 0 }
					add = {
						value = scope:actor.ai_rationality
						multiply = 0.1
					}
				}
				else = {
					add = {
						value = scope:actor.ai_rationality
						multiply = 0.25
					}
				}
				if = {
					limit = { scope:actor.ai_greed > 0 }
					add = {
						value = scope:actor.ai_greed
						multiply = -0.1
					}
				}
				else = {
					add = {
						value = scope:actor.ai_greed
						multiply = -0.25
					}
				}
			}
		}
		# Can end with hostage demand
		modifier = {
			exists = scope:secondary_recipient
			NOT = { exists = scope:secondary_actor }
			scope:war = {
				war_days >= 365
				NOR = {
					defender_war_score >= 30
					attacker_war_score >= 30
				}
			}
			add = {
				value = 0
				add = {
					value = interaction_recipient_hostage_value
					multiply = 0.1
				}
				if = {
					limit = { scope:actor.ai_boldness < 0 }
					add = {
						value = scope:actor.ai_boldness
						multiply = -0.25
					}
				}
				if = {
					limit = { scope:actor.ai_honor < 0 }
					add = {
						value = scope:actor.ai_honor
						multiply = -0.25
					}
				}
				else = {
					add = {
						value = scope:actor.ai_honor
						multiply = 0.25
					}
				}
				if = {
					limit = { scope:actor.ai_rationality < 0 }
					add = {
						value = scope:actor.ai_rationality
						multiply = 0.25
					}
				}
				else = {
					add = {
						value = scope:actor.ai_rationality
						multiply = 0.25
					}
				}
				if = {
					limit = { scope:actor.ai_greed > 0 }
					add = {
						value = scope:actor.ai_greed
						multiply = 0.25
					}
				}
				else = {
					add = {
						value = scope:actor.ai_greed
						multiply = -0.1
					}
				}
			}
		}

		# I don't have time for this, I need to conquer
		modifier = {
			scope:war.casus_belli = {
				primary_defender = {
					this = scope:actor
					has_variable = conqueror
				}
				primary_attacker = { is_ai = yes }
			}

			add = 100
		}
	}

	ai_accept = {
		base = -30
		compare_modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_defender = scope:recipient
				}
			}
			target = scope:war
			value = attacker_war_score
			desc = "WARSCORE_MODIFIER"
		}
		compare_modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_attacker = scope:recipient
				}
			}
			target = scope:war
			value = defender_war_score
			desc = "WARSCORE_MODIFIER"
		}

		# Length of War
		compare_modifier = {
			target = scope:war
			trigger = {
				scope:war = {
					war_days >= 365
				}
			}
			value = {
				value = war_days
				divide = 91 # 40 in 10 years
			}
			desc = "WAR_LENGTH"
		}

		# I'm in debt, how about a white peace?
		modifier = {
			scope:war = {
				war_days >= 182
			}
			scope:war.casus_belli = {
				primary_defender = root
			}
			OR = {
				debt_level >= 1
				treasury_debt_level >= 1
			}


			add = {
				value = debt_level
				multiply = 20
			}
			desc = COMPLETELY_BANKRUPT
		}

		# Attacker concerned about other wars
		modifier = {
			scope:war.casus_belli = {
				primary_attacker = scope:recipient
			}
			scope:recipient = {
				any_character_war = {
					this != scope:war
					primary_defender = scope:recipient
 				}
			}
			add = 10
			
			desc = CONCERN_ABOUT_OTHER_WARS
		}

		# Vengefulness
		ai_value_modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_defender = scope:recipient
				}
			}
			ai_vengefulness = {
				if = {
					limit = {
						scope:war.casus_belli = {
							primary_defender = scope:recipient
						}
					}
					value = -0.25
				}
			}
			ai_greed = {
				if = {
					limit = {
						scope:war.casus_belli = {
							primary_attacker = scope:recipient
						}
					}
					value = -0.25
				}
			}
			ai_zeal = {
				value = -0.2
				if = {
					limit = {
						faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value = 2
							}
						}
					}
					multiply = 2
				}
				if = {
					limit = {
						faith = {
							faith_hostility_level = {
								target = scope:actor.faith
								value = 3
							}
						}
					}
					multiply = 3
				}
				if = {
					limit = {
						OR = {
							ai_zeal <= 0
							faith = {
								faith_hostility_level = {
				 					target = scope:actor.faith
									value <= 0
				 				}
				 			}
						}
					}
					value = 0
				}
			}
		}

		# Peacemaker Perk
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_defender = scope:recipient
					primary_attacker = { has_perk = peacemaker_perk }
				}
			}
			add = peacemaker_value
			
			desc = "PEACEMAKER_PERK_MODIFIER"
		}
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_attacker = scope:recipient
					primary_defender = { has_perk = peacemaker_perk }
				}
			}
			add = peacemaker_value
			
			desc = "PEACEMAKER_PERK_MODIFIER"
		}
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_defender = scope:recipient
					primary_attacker = { 
						dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
					}
				}
			}
			add = 10
			
			desc = "NOMAD_LEGACY_PERK_MODIFIER"
		}
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_attacker = scope:recipient
					primary_defender = {
						dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
					}
				}
			}
			add = 10
			
			desc = "NOMAD_LEGACY_PERK_MODIFIER"
		}
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_attacker = scope:recipient
					primary_attacker = {
						is_ai = yes
						save_temporary_scope_as = attacker
					}
					primary_defender = {
						has_variable = peace_acceptance_head_scare
						var:peace_acceptance_head_scare = {
							this = scope:attacker
						}
					}
				}
			}
			add = 30
			
			desc = "COWED_BY_SEVERED_HEAD_MODIFIER"
		}
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_defender = scope:recipient
					primary_defender = {
						is_ai = yes
						save_temporary_scope_as = defender
					}
					primary_attacker = {
						has_variable = peace_acceptance_head_scare
						var:peace_acceptance_head_scare = {
							this = scope:defender
						}
					}
				}
			}
			add = 30
			
			desc = "COWED_BY_SEVERED_HEAD_MODIFIER"
		}

		# Cultural Traditions
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_defender = scope:recipient
					primary_attacker = { culture = { has_cultural_parameter = facilitate_white_peace } }
				}
			}
			add = 10
			
			desc = "TRADITION_BONUS_WHITE_PEACE"
		}
		modifier = {
			trigger = {
				scope:war.casus_belli = {
					primary_attacker = scope:recipient
					primary_defender = { culture = { has_cultural_parameter = facilitate_white_peace } }
				}
			}
			add = 10
			
			desc = "TRADITION_BONUS_WHITE_PEACE"
		}

		# Struggles
		modifier = {
			trigger = {
				scope:actor = {
					OR = {
						any_character_struggle = {
							involvement = involved
							is_struggle_parameter_active_secondary_character_involvement_either_trigger = {
								PARAMETER = white_peace_acceptance_between_involved_or_interloper_with_region_easier
								CHAR = scope:recipient
							}
						}
						any_character_struggle = {
							involvement = interloper
							is_struggle_parameter_active_secondary_character_involvement_either_trigger = {
								PARAMETER = white_peace_acceptance_between_involved_or_interloper_with_region_easier
								CHAR = scope:recipient
							}
						}
					}
				}
			}
			add = 10

			desc = "STRUGGLE_INVOLVED_OR_INTERLOPER_PHASE_BONUS"
		}

		# GoK war
		modifier = {
			desc = WAR_OVERVIEW_WHITE_PEACE_GOK
			add = -70
			scope:war = {
				using_cb = mpo_gok_onslaught_cb
				primary_defender = scope:actor
			}
		}
		# GoK war but have counties occupied
		modifier = {
			desc = WAR_OVERVIEW_WHITE_PEACE_GOK_OCCUPATION
			add = {
				value = 0
				scope:war.primary_defender = {
					every_sub_realm_county = {
						limit = {
							county_controller = scope:war.primary_attacker
						}
						add = 2
					}
				}
				max = 200
			}
			scope:war = {
				using_cb = mpo_gok_onslaught_cb
				attacker_war_score <= 25
				primary_defender = {
					any_sub_realm_county = {
						county_controller = scope:war.primary_attacker
					}
				}
				primary_defender = scope:actor
			}
		}

		# Hostages
		modifier = {
			exists = scope:secondary_actor
			add = {
				value = war_actor_hostage_value
				multiply = 0.5
			}
			desc = WAR_OVERVIEW_WHITE_PEACE_HOSTAGE_OFFER_VALUE
		}
		modifier = {
			exists = scope:secondary_recipient
			add = {
				value = war_recipient_hostage_value
				multiply = 0.5
			}
			desc = WAR_OVERVIEW_WHITE_PEACE_HOSTAGE_DEMAND_VALUE
		}
	}
	
	is_valid_showing_failures_only = {
		exists = scope:war
		scope:war = {
			has_valid_casus_belli = yes
		}
		is_white_peace_possible = yes
	}
}

end_war_attacker_defeat_interaction = {
	special_interaction = end_war_attacker_defeat_interaction
	hidden = yes
	use_diplomatic_range = no
	secondary_scopes_optional = yes

	ai_targets = {
		ai_recipients = primary_war_enemies
	}
	
	ai_frequency_by_tier = {
		barony = 0
		county = 1
		duchy = 1
		kingdom = 1
		empire = 1
		hegemony = 1
	}
	
	# Depending on who was the attacker, we need to send a different notification message to the recipient.
	notification_text = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:recipient = {
						any_character_war = {
							casus_belli = {
								primary_attacker = scope:actor
							}
						}
					}
				}
				desc = end_war_attacker_defeat_attacker_desc
			}
			desc = end_war_attacker_defeat_defender_desc
		}
	}
	
	populate_actor_list = {
		scope:actor = {
			every_close_family_member = {
				limit = {
					# Unlanded, at sender's court, child/sibling/nibling/grandchild
					bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:actor }
				}
				add_to_list = characters
			}
		}
	}

	populate_recipient_list = {
		scope:recipient = {
			every_close_family_member = {
				limit = {
					# Unlanded, at sender's court, child/sibling/nibling/grandchild
					bp2_valid_to_offer_as_hostage_trigger = { SENDER = scope:recipient }
				}
				add_to_list = characters
			}
		}
	}

	can_be_picked = {
		scope:war ?= {
			custom_tooltip = {
				text = hostage_exchange_invalid_for_crusade_tt
				NOR = {
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
			}
			custom_tooltip = {
				text = hostage_exchange_invalid_for_cb_tt
				bp2_hostage_exchange_invalid_cb_trigger = no
			}
		}
	}

	redirect = {
		# secondary recipient is always set, so we need to clear it
		# if can_send condition depends on the scope being empty
		clear_saved_scope = secondary_recipient
	}

	on_accept = {
		casus_belli = {
			primary_attacker = {
				save_scope_as = attacker_loser
			}
			primary_defender = {
				save_scope_as = defender_winner
				set_signature_weapon_effect = yes
			}
		}

		if = {
			limit = {
				scope:war ?= {
					using_cb = fp3_free_house_member_cb
				}
			}
		}
		else = {
			release_prisoners_of_war_effect = yes
		}
		
		# Hostages
		# Save scopes for clarity
		if = {
			limit = {
				scope:war ?= {
					NOR = {
						using_cb = undirected_great_holy_war
						using_cb = directed_great_holy_war
					}
					bp2_hostage_exchange_invalid_cb_trigger = no
				}
			}
			if = {
				limit = {
					exists = scope:secondary_actor
					scope:recipient = { is_landed = yes }
				}
				hostage_depart_effect = {
					HOSTAGE = scope:secondary_actor
					WARDEN = scope:recipient
					HOME_COURT = scope:actor
				}
			}
			if = {
				limit = {
					exists = scope:secondary_recipient
					scope:actor = { is_landed = yes }
				}
				hostage_depart_effect = {
					HOSTAGE = scope:secondary_recipient
					WARDEN = scope:actor
					HOME_COURT = scope:recipient
				}
			}
		}

		#Send notification to vassals
		hidden_effect = {
			scope:attacker_loser = {
				if = {
					limit = {
						any_vassal = {
							this != scope:defender_winner
						}
					}
					every_vassal = {
						limit = {
							this != scope:defender_winner
						}
						send_interface_toast = {
							type = msg_liege_war_ended_defender_win
							title = war_event.notification_liege_loss.t
							left_icon = scope:attacker_loser
							right_icon = scope:defender_winner
							custom_tooltip = war_event.1905 
						}
					}
				}
			}
			scope:defender_winner = {
				if = {
					limit = {
						any_vassal = { this != scope:attacker_loser }
					}
					every_vassal = {
						limit = {
							this != scope:attacker_loser
						}
						send_interface_toast = {
							type = msg_liege_war_ended_defender_win
							title = war_event.notification_liege_win.t
							left_icon = scope:defender_winner
							right_icon = scope:attacker_loser
							custom_tooltip = war_event.1906 
						}
					}
				}
			}
		}

		end_war = defender
	}
	
	on_decline = {

	}
	
	ai_potential = {
		is_at_war = yes
		any_character_war = {
			is_war_leader = root
			OR = {
				defender_war_score >= 100
				AND = {
					OR = {
						attacker_war_score >= 90
						AND = {
							attacker_war_score >= 80
							root = {
								dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
							}
						}
					}
					root = {
						has_perk = peacemaker_perk
					}
					primary_defender = {
						is_ai = yes
					}
				}
				AND = {
					OR = {
						attacker_war_score >= 90
						AND = {
							attacker_war_score >= 80
							root = {
								has_perk = peacemaker_perk
							}
						}
					}
					root = {
						dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
					}
					primary_defender = {
						is_ai = yes
					}
				}
				AND = {
					defender_war_score >= 70
					primary_attacker = {
						is_ai = yes
						save_temporary_scope_as = attacker
					}
					root = {
						has_variable = peace_acceptance_head_scare
						var:peace_acceptance_head_scare = {
							this = scope:attacker
						}
					}
				}
			}
		}
	}

	ai_will_do = {
		base = 0
		
		modifier = {
			scope:war = {
				primary_defender = scope:actor
				OR = {
					defender_war_score >= 100
					AND = {
						defender_war_score >= 90
						scope:actor = {
							OR = {
								has_perk = peacemaker_perk
								culture = {
									has_cultural_parameter = can_end_defensive_wars_earlier
								}
							}
						}
						primary_attacker = {
							is_ai = yes
						}
					}
					AND = {
						defender_war_score >= 90
						scope:actor = {
							dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
						}
						primary_attacker = {
							is_ai = yes
						}
					}
					AND = {
						defender_war_score >= 70
						primary_attacker = {
							is_ai = yes
							save_temporary_scope_as = attacker
						}
						root = {
							has_variable = peace_acceptance_head_scare
							var:peace_acceptance_head_scare = {
								this = scope:attacker
							}
						}
					}
				}				
			}			
			add = 100
		}
		modifier = {
			scope:war = {
				primary_attacker = scope:actor
				defender_war_score >= 100
				days_since_max_war_score >= 180			
			}			
			add = 100
		}
	}
	
	ai_accept = {
		base = -99

		compare_modifier = {
			target = scope:war
			value = defender_war_score
			desc = "WARSCORE_MODIFIER"
		}
		modifier = {
			add = 1000
			scope:war.casus_belli = {
				primary_defender = scope:recipient
			}
			desc = "WOULD_WIN_MODIFIER"
		}
		modifier = {
			scope:war.casus_belli = {
				primary_defender = {
					has_perk = peacemaker_perk
					this != scope:recipient
				}
			}
			
			add = peacemaker_value
			
			desc = "PEACEMAKER_PERK_MODIFIER"
		}
		modifier = {
			scope:war.casus_belli = {
				primary_defender = {
					dynasty ?= { has_dynasty_perk = mpo_nomad_legacy_3 }
					NOT = { this = scope:recipient }
				}
			}
			
			add = 10
			
			desc = "NOMAD_LEGACY_PERK_MODIFIER"
		}

		modifier = {
			scope:war.casus_belli = {
				primary_attacker = {
					is_ai = yes
					save_temporary_scope_as = attacker
				}
				primary_defender = {
					has_variable = peace_acceptance_head_scare
					var:peace_acceptance_head_scare = {
						this = scope:attacker
					}
				}
			}
			add = 30
			desc = "COWED_BY_SEVERED_HEAD_MODIFIER"
		}
		modifier = {
			scope:war.casus_belli = {
				primary_defender = {
					culture = {
						has_cultural_parameter = can_end_defensive_wars_earlier
					}
					this != scope:recipient
				}
			}
			
			add = 10
			
			desc = "TRADITION_BONUS_DEFENSIVE_WARS"
		}
		# Hostages
		modifier = {
			exists = scope:secondary_actor
			add = war_actor_hostage_value
			desc = WAR_OVERVIEW_HOSTAGE_OFFER_VALUE
		}
		modifier = {
			exists = scope:secondary_recipient
			add = war_recipient_hostage_value
			desc = WAR_OVERVIEW_HOSTAGE_DEMAND_VALUE
		}
	}
	
	auto_accept = {
		OR = {
			scope:war = {
				defender_war_score >= 100
			}
			AND = {
				scope:recipient = { is_ai = yes }
				primary_defender = scope:recipient
			}
		}
	}
	
	is_valid_showing_failures_only = {
		scope:war = {
			has_valid_casus_belli = yes
		}
	}
}

view_war_interaction = {
	category = interaction_category_diplomacy
	common_interaction = yes

	special_interaction = offer_peace_interaction
	interface = offer_peace
	use_diplomatic_range = no
	ignores_pending_interaction_block = yes

	is_shown = {
		scope:actor = {
			is_at_war_with = scope:recipient
			NOT = {
				any_character_war = {
					is_war_leader = scope:actor
					is_participant = scope:recipient
				}
			}
		}
	}
	auto_accept = yes
}

offer_peace_interaction = {
	category = interaction_category_diplomacy
	common_interaction = yes
	icon = war_won_icon

	special_interaction = offer_peace_interaction
	interface = offer_peace
	use_diplomatic_range = no

	is_shown = {
		scope:actor = {
			is_at_war_with = scope:recipient		
			any_character_war = {
				is_war_leader = scope:actor
				is_participant = scope:recipient
			}
		}
	}
	auto_accept = yes
}
