#Interactions relating to the head of the house

call_house_member_to_war_interaction = {
	category = interaction_category_diplomacy
	icon = alliance
	

	interface_priority = 60

	desc = call_house_member_to_war_interaction_desc
	
	interface = call_ally
	special_interaction = call_ally_interaction
	popup_on_receive = yes
	pause_on_receive = yes
	
	notification_text = CALL_HOUSE_MEMBER_NOTIFICATION
	
	is_shown = {
		NOT = { scope:recipient = scope:actor }

		scope:actor = {
			OR = {
				is_house_head = yes
				AND = {
					exists = dynasty
					# DLC checking
					has_fp2_dlc_trigger = yes
					# Standard check
					dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 }
				}
			}
			religion = scope:recipient.religion
			house = scope:recipient.house
			any_character_war = {
				is_war_leader = scope:actor
			}
		}

		scope:recipient = {
			is_playable_character = yes
		}

		scope:recipient = {
			NOT = {
				target_is_liege_or_above = scope:actor
			}
		}
	}
	
	has_valid_target = {
		exists = scope:target
	}
	
	has_valid_target_showing_failures_only = {
		scope:target = {
			is_war_leader = scope:actor
		}
		joiner_not_already_in_another_war_with_any_target_war_participants_trigger = {
			WARRIOR = scope:actor
			JOINER = scope:recipient
		}
	}

	is_valid_showing_failures_only = {
		custom_description = {
			text = "is_already_in_all_wars"
			scope:actor = {
				any_character_war = {
					NOR = {
						is_participant = scope:recipient
						was_called = scope:recipient
					}
					OR = {
						primary_attacker = scope:actor
						primary_defender = scope:actor
					}
				}
			}
		}
	}

	can_be_picked = {
		can_join_war_liege_vassal_check_trigger = { WARRIOR = scope:actor JOINER = scope:recipient }
	}

	on_auto_accept = {
		scope:recipient = {
			trigger_event = call_ally.0001
		}
	}
	
	on_accept = {
		call_house_member_to_war_interaction_effect = yes

		save_scope_value_as = {
			name = call_house_member_to_war_interaction
			value = yes
		}

		if = {
			limit = {
				exists = scope:target
			}

			scope:actor = {
				trigger_event = call_ally.0100
			}
		}

		scope:actor = {
			if = {
				limit = { NOT = {  is_house_head = yes } }
				add_prestige = medium_prestige_loss
			}
		}

		# If the Dynasty has the Unity Legacy perk, the recipient is rewarded with some Prestige
		if = {
			limit = { scope:actor.dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 } }
			scope:recipient = {	add_prestige = medium_prestige_gain	}
		}
	}
	
	on_decline = {
		#The war could theoretically end on the day the decline is sent
		if = {
			limit = {
				exists = scope:target
			}

			scope:target = {
				if = {
					limit = {
						is_attacker = scope:actor
					}
					scope:actor = {
						add_opinion = {
							modifier = rejected_call_to_offensive_war
							target = scope:recipient
						}
					}
				}
				else = {
					scope:actor = {
						add_opinion = {
							modifier = rejected_call_to_defensive_war
							target = scope:recipient
						}
					}
				}
				scope:actor = {
					trigger_event = call_ally.0101
				}
			}

			# If we're a clan this interaction affects unity
			refuse_call_to_arms_add_clan_unity_effect = yes
		}
	}
	
	ai_accept = {
		base = 20

		modifier = {  # Refuse call to conflicts of little benefit
			add = -1000
			desc = WONT_FIGHT_MEANINGLESS_REASON
			trigger_if = {
				limit = { exists = scope:target }
				scope:target = { using_cb = fp2_border_raid }
				scope:recipient = { # Unless they like going on raids
					NOR = {
						has_trait = viking
						has_trait = reaver
					}
				}
			}
			trigger_else = { always = no }
		}

		modifier = {  # Refuse call against Heir
			add = -1000
			exists = scope:recipient.player_heir
			trigger_if = {
				limit = { scope:target.casus_belli.primary_defender = scope:actor }
				scope:target.casus_belli.primary_attacker = scope:recipient.player_heir
			}
			trigger_else = {
				scope:target.casus_belli.primary_defender = scope:recipient.player_heir
			}
			desc = WONT_FIGHT_HEIR_REASON
		}

		modifier = {  # Refuse call against Spouse
			add = -1000
			scope:recipient = {
				trigger_if = {
					limit = { scope:target.casus_belli.primary_defender = scope:actor }
					any_spouse = {
						this = scope:target.casus_belli.primary_attacker
					}
				}
				trigger_else = {
					any_spouse = {
						this = scope:target.casus_belli.primary_defender
					}
				}
				
			}
			desc = WONT_FIGHT_SPOUSE_REASON
		}

		opinion_modifier = { # Opinion Factor
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 1.0
			desc = AI_OPINION_REASON
		}

		# Honor factor
		ai_value_modifier = {
			ai_honor = 1
			min = 0
		}

		modifier = {  # Tends to join defensive wars
			add = 50
			scope:target.casus_belli.primary_defender = scope:actor
			desc = DEFENSIVE_WAR_REASON
		}

		compare_modifier = { # Likes fighting infidels
			trigger = {
				scope:recipient.faith = scope:actor.faith
				OR = {
					AND = {
						scope:target.casus_belli.primary_attacker = {
							this = scope:actor
							faith = {
								faith_hostility_level = {
									target = scope:target.casus_belli.primary_defender.faith
									value >= religious_cb_enabled_hostility_level
								}
							}
						}
					}
					AND = {
						scope:target.casus_belli.primary_defender = {
							this = scope:actor
							faith = {
								faith_hostility_level = {
									target = scope:target.casus_belli.primary_defender.faith
									value >= religious_cb_enabled_hostility_level
								}
							}
						}
					}
				}
			}
			target = scope:recipient
			value = ai_zeal
			desc = "ZEAL_AGAINST_INFIDELS"
			min = 0
			multiplier = 0.5
		}

		modifier = {  # Reluctant to attack another ally
			add = -50
			scope:target.casus_belli.primary_attacker = scope:actor
			scope:recipient = {
				is_allied_to = scope:target.casus_belli.primary_defender
			}
			desc = ATTACK_ON_ALLY_REASON
		}

		modifier = {  # Reluctant to defend against another ally
			add = -25
			scope:target.casus_belli.primary_defender = scope:actor
			scope:recipient = {
				is_allied_to = scope:target.casus_belli.primary_attacker
			}
			desc = WAR_WITH_ALLY_REASON
		}

		modifier = {  # Reluctant to join wars against religious brethren.
			add = -50
			NOT = { scope:recipient.faith = scope:actor.faith }
			scope:target.casus_belli.primary_attacker = scope:actor
			scope:target.casus_belli.primary_defender.faith = scope:recipient.faith
			scope:target.casus_belli.war = {
				OR = {
					using_cb = minor_religious_war
					using_cb = religious_war
					using_cb = major_religious_war
					using_cb = undirected_great_holy_war
					using_cb = directed_great_holy_war
				}
			}
			desc = WONT_ATTACK_RELIGIOUS_BRETHREN_REASON
		}

		modifier = { # Happy to gain Prestige thanks to the Unity perk
			add = 50
			dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 }
			desc = "UNITY_PERK_BONUS"
		}

		fp3_struggle_resist_allied_wars_modifier = yes
	}

	auto_accept = {
		custom_description = {
			text = "spending_hook"
			subject = scope:actor
			object = scope:recipient
			scope:hook = yes
		}
	}

	send_option = {
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = SCHEME_HOOK
	}
	should_use_extra_icon = {
		scope:actor = { has_usable_hook = scope:recipient }
	}
	extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"

	send_options_exclusive = no
}


#Head legitimizes child or actor requests from head to legitimize
legitimize_bastard_interaction = {
	category = interaction_category_diplomacy
	special_interaction = legitimize_bastard
	icon = legitimized_bastard

	greeting = positive
	notification_text = ASK_TO_legitimize_bastard_interaction

	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:actor.house.house_head = scope:actor }
				desc = legitimize_bastard_interaction_desc_house_head
			}
			desc = legitimize_bastard_interaction_desc_not_house_head
		}
	}

	is_shown = {
		scope:actor.house.house_head.faith = {
			has_doctrine_parameter = bastards_legitimize
		}
		scope:actor.faith = {
			has_doctrine_parameter = bastards_legitimize
		}
		scope:secondary_recipient = {
			faith = {
				has_doctrine_parameter = bastards_legitimize
			}
			has_trait = bastard
			OR = {
				father = scope:actor
				mother = scope:actor
				scope:actor.house.house_head = scope:actor
			}
			OR = {
				house = scope:actor.house
				AND = {
					OR = {
						father.house = scope:actor.house
						mother.house = scope:actor.house
					}
					has_dynasty = no
				}
			}
		}
		scope:actor = {
			is_lowborn = no
			is_concubine = no
		}
		scope:recipient = { is_busy_in_events_localised = yes }
	}

	is_valid_showing_failures_only = {
		
	}

	cost = {
		prestige = {
			value = bastard_legitimization_prestige_cost
		}
	}

	ai_accept = {
		base = -50

		modifier = {
			trigger = {
				NOT = { scope:actor = scope:actor.house.house_head }
			}
			add = {
				value = scope:actor.prestige_level
				multiply = 20
			}
			desc = PRESTIGOUS_IN_OUR_HOUSE
		}

		modifier = {
			trigger = {
				always = scope:hook
			}
			add = 100
			desc = SCHEME_WEAK_HOOK_USED
		}

		opinion_modifier = {
			trigger = {
				NOT = { scope:actor = scope:actor.house.house_head }
			}
			who = scope:recipient
			opinion_target = scope:actor
			multiplier = 1
		}

		opinion_modifier = {
			trigger = {
				NOT = { scope:actor = scope:actor.house.house_head }
			}
			who = scope:recipient
			opinion_target = scope:secondary_recipient
			multiplier = 0.25
		}
		
		modifier = {
			add = intimidated_reason_value
			scope:recipient = {
				target_is_liege_or_above = scope:actor
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_reason_value
			scope:recipient = {
				target_is_liege_or_above = scope:actor
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}
		
		modifier = {
			add = intimidated_external_reason_value
			scope:recipient = {
				NOT = { target_is_liege_or_above = scope:actor }
				has_dread_level_towards = {
					target = scope:actor
					level = 1
				}
			}
			desc = INTIMIDATED_REASON
		}
		modifier = {
			add = cowed_external_reason_value
			scope:recipient = {
				NOT = { target_is_liege_or_above = scope:actor }
				has_dread_level_towards = {
					target = scope:actor
					level = 2
				}
			}
			desc = COWED_REASON
		}

		# Unity modifiers
		evaluate_action_decreasing_house_unity = {
			VALUE = 100
		}
	}

	auto_accept = {
		OR = {
			scope:actor = scope:actor.house.house_head
			AND = {
				always = scope:hook
				scope:actor = { has_strong_hook = scope:recipient }
			}
		}
	}
	
	on_accept = {
		scope:actor = {
			stress_impact = {
				arrogant = minor_stress_impact_gain
			}

			legitimize_bastard_interaction_opinions_effect = {
				BASTARD = scope:secondary_recipient
				HOUSE_HEAD = scope:actor.house.house_head
				LEGITIMIZER = scope:actor
			}

			if = {
				limit = { always = scope:hook }
				scope:actor = {
					use_hook = scope:recipient
				}
			}
		}

		# If we're a clan this interaction affects unity
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = miniscule_unity_loss
			DESC = clan_unity_bastardry.desc
			REVERSE_NON_HOUSE_TARGET = no
		}		
	}

	on_decline = {
		scope:actor = {
			send_interface_toast = {
				type = event_toast_effect_bad
				title = legitimize_bastard_interaction_decline_notification

				left_icon = scope:actor.house.house_head					
				right_icon = scope:secondary_recipient
			}
		}

		# If we're a clan this interaction affects unity
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = miniscule_unity_gain
			DESC = clan_unity_bastardry_refusal.desc
			REVERSE_NON_HOUSE_TARGET = no
		}		
	}

	send_option = {
		is_shown = {
			NOT = { scope:actor = scope:recipient }
		}
		is_valid = {
			scope:actor = {
				has_usable_hook = scope:recipient
			}
		}
		flag = hook
		localization = SCHEME_HOOK
	}
	should_use_extra_icon = {
		scope:actor = { has_usable_hook = scope:recipient }
	}
	extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"

	send_options_exclusive = no
}

accuse_of_decandence_interaction = {
	icon = antagonistic
	category = interaction_category_clan
	interface_priority = 60
	common_interaction = yes
	
	cooldown = { years = 3 }

	desc = accuse_of_decandence_interaction_desc
	
	is_shown = {
		scope:actor = { government_has_flag = government_is_clan }
		NOT = { scope:recipient = scope:actor }
		scope:actor.house.house_head ?= scope:actor
		scope:recipient.house ?= scope:actor.house
		scope:recipient = {
			NOT = {
				has_trait = decadent
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = { is_adult = yes }
		scope:recipient = { NOT = { has_strong_hook = scope:actor } }
		custom_tooltip = {
			text = cannot_take_overt_hostile_actions_against_diarch.tt
			NOT = { scope:recipient ?= scope:actor.diarch }
		}
	}

	on_auto_accept = {
		scope:recipient = {
			trigger_event = char_interaction.0041
		}
	}
	
	on_accept = {
		scope:actor = {
			stress_impact = {
				forgiving = minor_stress_impact_gain
				compassionate = minor_stress_impact_gain
			}
			send_interface_toast = {
				type = event_toast_effect_neutral
				title = accuse_of_decandence_interaction_notification

				left_icon = scope:actor					
				right_icon = scope:recipient

				scope:recipient = {
					add_stress = major_stress_gain
					if = {
						limit = {
							has_trait = extolled
						}
						remove_trait = extolled
					}
					else = {
						add_trait = decadent
					}
					add_opinion = {
						modifier = accused_of_decadence_opinion
						target = scope:actor
					}
				}
			}
		}

		# If we're a clan this interaction affects unity
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = major_unity_loss
			DESC = clan_unity_decadence.desc
			REVERSE_NON_HOUSE_TARGET = no
		}		
	}

	cost = {
		piety = {
			value = {
				add = minor_piety_value
				if = {
					limit = {
						scope:recipient = {
							num_virtuous_traits > 0
						}
					}
					add = {
						value = minor_piety_value
						multiply = scope:recipient.num_virtuous_traits
					}
				}
				if = {
					limit = {
						scope:recipient = {
							num_sinful_traits > 0
						}
					}
					add = {
						value = minor_piety_value
						multiply = 0.5
						multiply = scope:recipient.num_sinful_traits
						min = 10
					}
				}
			}
		}
	}
	
	auto_accept = yes

	ai_potential = {
		is_at_war = no
		government_has_flag = government_is_clan
		house.house_head ?= this
		is_adult = yes
		NOT = {
			has_trait = forgiving
		}
	}
	
	ai_targets = {
		ai_recipients = dynasty
		max = 30
	}
	
	ai_targets = {
		ai_recipients = vassals
	}
	
	ai_frequency = 36
	
	ai_will_do = {
		base = 0
		
		modifier = {
			add = 100
			scope:recipient = {
				OR = {
					has_relation_rival = scope:actor
					has_relation_nemesis = scope:actor
				}
			}
		}
		
		modifier = {
			add = 50
			scope:actor = {
				ai_wants_low_unity = yes
				NOT = { house ?= { has_house_unity_stage = antagonistic } }
			}
			scope:recipient = {
				num_sinful_traits >= 1
			}
		}
		
		modifier = {
			add = 100
			scope:actor = {
				ai_wants_low_unity = yes
				NOT = { house ?= { has_house_unity_stage = antagonistic } }
			}
			scope:recipient = {
				num_sinful_traits >= 2
			}
		}
		
		modifier = {
			add = 20
			scope:actor = {
				ai_wants_low_unity = yes
				NOT = { house ?= { has_house_unity_stage = antagonistic } }
			}
			scope:recipient = {
				number_of_opposing_personality_traits = {
					target = scope:actor
					value >= 1
				}
			}
		}
		
		modifier = {
			add = 100
			scope:actor = {
				ai_wants_low_unity = yes
				NOT = { house ?= { has_house_unity_stage = antagonistic } }
			}
			scope:recipient = {
				number_of_opposing_personality_traits = {
					target = scope:actor
					value >= 2
				}
			}
		}
		
		modifier = {
			add = 50
			scope:actor = {
				ai_wants_low_unity = yes
				NOT = { house ?= { has_house_unity_stage = antagonistic } }
			}
			OR = {
				AND = {
					scope:recipient = {
						has_trait = incestuous
					}
					NOT = { is_incestuous_trigger = yes }
					trait_is_criminal_in_faith_trigger = { TRAIT = incestuous FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
				AND = {
					scope:recipient = {
						has_trait = kinslayer
					}
					NOT = { has_trait = kinslayer }
				}
				AND = {
					scope:recipient = {
						has_trait = adulterer
					}
					NOR = {
						has_trait = adulterer
						has_trait = fornicator
					}
					trait_is_criminal_in_faith_trigger = { TRAIT = adulterer FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
				AND = {
					scope:recipient = {
						has_trait = fornicator
					}
					NOR = {
						has_trait = adulterer
						has_trait = fornicator
					}
					trait_is_criminal_in_faith_trigger = { TRAIT = fornicator FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
				AND = {
					scope:recipient = {
						has_trait = deviant
					}
					NOT = {
						is_deviant_trigger = yes
					}
					trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
				AND = {
					scope:recipient = {
						has_trait = witch
					}
					NOT = {
						is_witch_trigger = yes
					}
					trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
				AND = {
					scope:recipient = {
						has_trait = sodomite
					}
					NOR = {
						has_trait = sodomite
						any_secret = {
							secret_type = secret_homosexual
						}
					}
					trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
				AND = {
					scope:recipient = {
						has_trait = cannibal
					}
					NOT = {
						is_cannibal_trigger = yes
					}
					trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient }
				}
			}
		}
		
		modifier = {
			factor = 0.25
			scope:recipient = {
				is_powerful_vassal_of = scope:actor
			}
		}
		
		modifier = {
			factor = 0
			scope:recipient = {
				OR = {
					has_relation_friend = scope:actor
					has_relation_best_friend = scope:actor
				}
			}
		}
		
		modifier = {
			factor = 0
			scope:recipient = {
				is_primary_heir_of = scope:actor
			}
		}
	}
}

extoll_virtuousness_interaction = {
	icon = unity_harmonious
	category = interaction_category_clan
	interface_priority = 60
	common_interaction = yes
	
	cooldown = { years = 3 }

	desc = extoll_virtuousness_interaction_desc
	
	is_shown = {
		scope:actor = { government_has_flag = government_is_clan }
		NOT = { scope:recipient = scope:actor }
		scope:actor.house.house_head ?= scope:actor
		scope:recipient.house ?= scope:actor.house
		scope:recipient = {
			NOT = {
				has_trait = extolled
			}
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = { is_adult = yes }
	}

	on_auto_accept = {
		scope:recipient = {
			trigger_event = char_interaction.0042
		}
	}
	
	on_accept = {
		scope:actor = {
			stress_impact = {
				sadistic = minor_stress_impact_gain
				callous = minor_stress_impact_gain
			}
			send_interface_toast = {
				type = event_toast_effect_neutral
				title = extoll_interaction_notification

				left_icon = scope:actor					
				right_icon = scope:recipient

				scope:recipient = {
					if = {
						limit = {
							has_trait = decadent
						}
						remove_trait = decadent
					}
					else = {
						add_trait = extolled
					}
					add_opinion = {
						modifier = extolled_virtue_opinion
						target = scope:actor
					}
				}
			}
		}

		# If we're a clan this interaction affects unity
		add_clan_unity_interaction_effect = {
			CHARACTER = scope:actor
			TARGET = scope:recipient
			VALUE = major_unity_gain
			DESC = clan_unity_extolled.desc
			REVERSE_NON_HOUSE_TARGET = no
		}		
	}

	cost = {
		piety = {
			value = {
				add = medium_piety_value
				if = {
					limit = {
						scope:recipient = {
							num_sinful_traits > 0
						}
					}
					add = {
						value = medium_piety_value
						multiply = scope:recipient.num_sinful_traits
					}
				}
				if = {
					limit = {
						scope:recipient = {
							num_virtuous_traits > 0
						}
					}
					add = {
						value = medium_piety_value
						multiply = 0.5
						multiply = scope:recipient.num_virtuous_traits
						min = 10
					}
				}
			}
		}
	}
	
	auto_accept = yes

	ai_potential = {
		is_at_war = no
		government_has_flag = government_is_clan
		house.house_head ?= this
		is_adult = yes
		NOT = {
			has_trait = paranoid
		}
	}
	
	ai_targets = {
		ai_recipients = dynasty
		max = 30
	}
	
	ai_targets = {
		ai_recipients = vassals
	}
	
	ai_frequency = 36
	
	ai_will_do = {
		base = 0
		
		modifier = {
			add = 100
			scope:actor = {
				NOT = { ai_wants_low_unity = yes }
			}
			scope:recipient = {
				OR = {
					has_relation_friend = scope:actor
					has_relation_best_friend = scope:actor
					is_primary_heir_of = scope:actor
				}
			}
		}
		
		modifier = {
			add = 50
			scope:actor = {
				ai_wants_high_unity = yes
				NOT = { house ?= { has_house_unity_stage = harmonious } }
			}
			scope:recipient = {
				num_virtuous_traits >= 1
			}
		}
		
		modifier = {
			add = 100
			scope:actor = {
				ai_wants_high_unity = yes
				NOT = { house ?= { has_house_unity_stage = harmonious } }
			}
			scope:recipient = {
				num_virtuous_traits >= 2
			}
		}
		
		modifier = {
			add = 20
			scope:actor = {
				ai_wants_high_unity = yes
				NOT = { house ?= { has_house_unity_stage = harmonious } }
			}
			scope:recipient = {
				number_of_personality_traits_in_common = {
					target = scope:actor
					value >= 1
				}
			}
		}
		
		modifier = {
			add = 100
			scope:actor = {
				ai_wants_high_unity = yes
				NOT = { house ?= { has_house_unity_stage = harmonious } }
			}
			scope:recipient = {
				number_of_personality_traits_in_common = {
					target = scope:actor
					value >= 2
				}
			}
		}
		
		modifier = {
			factor = 1.5
			scope:recipient = {
				is_vassal_of = scope:actor
			}
		}
		
		modifier = {
			factor = 0
			scope:recipient = {
				OR = {
					has_relation_rival = scope:actor
					has_relation_nemesis = scope:actor
				}
			}
		}
	}
}
