﻿spar_with_knight_interaction = {
	icon = icon_combat
	interface_priority = 30
	common_interaction = yes
	category = interaction_category_friendly
	ai_min_reply_days = 0
	ai_max_reply_days = 0
	popup_on_receive = yes
	pause_on_receive = yes
	desc = spar_with_knight_interaction_desc

	greeting = positive
	notification_text = REQUEST_SPARRING_TEXT

	is_shown = {
		scope:actor = {
			OR = {
				culture = {
					has_cultural_parameter = can_use_sparring_duel
				}
				top_participant_group:dynastic_cycle ?= {
					participant_group_type = expansion_movement
				}				
			}
		}
		scope:recipient = {
			is_knight_of = scope:actor
		}
		# Can't duel yourself.
		scope:actor != scope:recipient
	}

	is_valid_showing_failures_only = {
		scope:actor = { can_start_single_combat_trigger = yes }
		scope:actor = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:actor } }
		# Scope:recipient must be able to fight personally.
		scope:recipient = { can_start_single_combat_trigger = yes }
		# Scope:recipient must not be banned from single combat.
		scope:recipient = {
			custom_description = {
				text = fp1_tbc_recipient_banned_from_combat
				can_start_single_combat_banned_checks_trigger = no
			}
		}
		# Neither of the characters can be imprisoned.
		scope:actor = { is_imprisoned = no }
		scope:recipient = { is_imprisoned = no }
		
		scope:actor = { is_at_war = no }
		scope:recipient = { is_at_war = no }
	}

	can_send = {
		scope:actor = {
			custom_description = {
				text = "character_interactions_hostile_actions_disabled_delay"
				NOT = { has_character_flag = flag_hostile_actions_disabled_delay }
			}
		}
	}
	
	cost = { prestige = medium_prestige_value }
	cooldown = { years = 5 }
	cooldown_against_recipient = { years = 10 }

	on_send = {
		scope:actor = {
			add_character_flag = {
				flag = flag_hostile_actions_disabled_delay
				days = 10
			}
		}
	}

	on_accept = {
		# Set up the bout immediately.
		## First inform.
		scope:actor = {
			custom_tooltip = challenge_to_single_combat_interaction.enter_non_lethal_bout.tt
			custom_tooltip = spar_with_knight_interaction.effect.tt
			custom_tooltip = spar_with_knight_interaction.negative_effect.tt
		}
		scope:recipient = {
			custom_tooltip = spar_with_knight_interaction.effect.tt
			custom_tooltip = spar_with_knight_interaction.negative_effect.tt
		}
		## Finally, begin.
		configure_start_single_combat_effect = {
			SC_INITIATOR = scope:actor
			SC_ATTACKER = scope:actor
			SC_DEFENDER = scope:recipient
			FATALITY = no
			FIXED = no
			LOCALE = army_camp
			OUTPUT_EVENT = culture_tradition_events.0001
			INVALIDATION_EVENT = perk_interaction.0102
		}
	}

	ai_accept = {
		base = 10 # Try to make it 0 for most interactions
		
		modifier = {
			desc = CTSC_RELATIVE_PROWESS
			scope:recipient.prowess < scope:actor.prowess
			add = {
				value = scope:actor.prowess
				subtract = scope:recipient.prowess
				multiply = -2
			}
		}
		
		# Personality values
		ai_value_modifier = {
			who = scope:recipient
			ai_boldness = 0.5
			ai_honor = {
				if = {
					limit = {
						scope:recipient = {
							ai_honor > 0
						}
					}
					value = 0.25
				}
			}
		}
		modifier = {
			desc = AI_REFUSAL_WOUNDED
			scope:recipient = {
				OR = {
					has_trait = wounded 
					has_trait = maimed
				}
			}
			add = -200
		}
	}

	# AI
	ai_potential = {
		culture = {
			has_cultural_parameter = can_use_sparring_duel
		}
		NOT = { has_trait = craven }
		is_imprisoned = no
		can_start_single_combat_trigger = yes
		number_of_knights > 0
	}
	
	ai_target_quick_trigger = {
		adult = yes
	}
	ai_targets = {
		ai_recipients = vassals
		max = 10
	}
	ai_targets = {
		ai_recipients = courtiers
		max = 10
	}

	ai_frequency_by_tier = {
		barony = 0
		county = 72
		duchy = 72
		kingdom = 36
		empire = 36
		hegemony = 36
	}

	ai_will_do = {
		base = -25
		
		# Factor for personality (excluding realism).
		modifier = {
			add = {
				value = ai_boldness
				multiply = 1
			}
		}
		modifier = {
			add = {
				value = ai_energy
				multiply = 0.5
			}
		}
		modifier = {
			add = -50
			prowess <= low_skill_rating
		}
		modifier = {
			factor = 0
			OR = {
				has_trait = wounded 
				has_trait = maimed
			}
		}
	}
}


#Appointing a Podesta over a Commune - Turning a one county holder into a Republican Vassal
#Local culture must have the parameter, as does the granting character.
#Recipient does not need to have local culture.
appoint_podesta_interaction = {
	icon = grant_titles_interaction
	interface_priority = 30
	common_interaction = yes
	category = interaction_category_vassal
	ai_min_reply_days = 0
	ai_max_reply_days = 0
	popup_on_receive = yes
	pause_on_receive = yes
	desc = appoint_podesta_desc

	greeting = positive
	notification_text = REQUEST_REPUBLIC_TEXT

	is_shown = {
		scope:actor != scope:recipient # Can't make yourself a Podesta.
		scope:actor = {
			culture = {
				has_cultural_parameter = can_make_republican_vassals
			}
			any_held_title = {
				count > 1
			}
		}
		scope:recipient = {
			is_ai = yes
			is_landed = yes
			target_is_liege_or_above = scope:actor
			NOR = { 
				government_has_flag = government_is_republic 
				government_has_flag = government_is_prepublic 
				government_has_flag = government_is_urepublic 
			}
			
		}
	}

	is_valid_showing_failures_only = {
		scope:recipient = { can_be_granted_titles_by = { RULER = scope:actor } }
		NOT = { scope:actor = { is_at_war_with = scope:recipient } }

		custom_description = {
			text = too_many_republics
			scope:actor = {
				any_vassal = {
					count < 4 #Use Script Value
					highest_held_title_tier >= tier_county
					government_has_flag = government_is_republic
				}
			}
		}

		
		scope:recipient = {
			target_is_liege_or_above = scope:actor
			NOR = { 
				government_has_flag = government_is_republic 
				government_has_flag = government_is_prepublic 
				government_has_flag = government_is_urepublic 
			}
			is_claimant = no

			custom_description = {
				text = must_be_one_county_count
				any_held_title = {
					count = 1
					title_tier = county
				}
			}

			custom_description = {
				text = must_not_have_landed_relatives
				NOT = {
					any_close_or_extended_family_member = {
						is_landed_or_landless_administrative = yes
					}
				}
			}
			
			custom_description = {
				text = must_not_be_heir_to_any_title
				scope:recipient = {
					any_heir_title = {
						count < 1
						tier >= tier_county
					}
				}
			}

			custom_description = {	#The county must be developed or have at least one city
				text = county_must_have_city
				any_held_title = {
					count = 1
					title_tier = county
					OR = {
						any_county_province = {
							has_holding_type = city_holding
						}
						development_level > 20
					}
				}
			}
			custom_description = { #County must be of a culture that has the tradition parameter
				text = county_must_have_culture
				any_held_title = {
					count = 1
					title_tier = county
					OR = {
						any_county_province = {
							culture = {
								has_cultural_parameter = can_make_republican_vassals
							}
						}
						OR = { 
							government_has_flag = government_is_prepublic 
							government_has_flag = government_is_urepublic 
						}
					}
				}
			}			
		}

		trigger_if = {
			limit = {
				scope:recipient = {
					is_ruler = no
				}
			}
			scope:recipient = {
				is_imprisoned = no
			}
		}
	}

	cost = { prestige = minor_prestige_value }
	cooldown = { years = 5 }
	cooldown_against_recipient = { years = 10 }

	on_accept = {
		scope:actor = {
			hidden_effect = {
				send_interface_toast = {
					type = event_toast_effect_neutral
					title = appoint_podesta_interaction_notification

					left_icon = scope:actor					
					right_icon = scope:recipient
					if = {
						limit = {
							scope:actor	= { government_has_flag = government_is_urepublic }
						}
						scope:recipient = {
							show_as_tooltip = {
								change_government = urbanrepublic_government
								create_title_and_vassal_change = {
									type = returned
									save_scope_as = change
									add_claim_on_loss = no
								}
								primary_title = { 
									add_to_global_variable_list = {
										name = urepublic_list
										target = prev
									}
								}
								every_vassal = {
									limit = {
										government_has_flag = government_is_republic
									}
									every_held_title = { 
										change_title_holder = {
											holder = scope:recipient
											change = scope:change
											take_baronies = yes
										}
									}
								}
								resolve_title_and_vassal_change = scope:change
							}
						}
					}
					else_if = {
						limit = {
							scope:actor	= { government_has_flag = government_is_prepublic }
						}
						scope:recipient = {
							show_as_tooltip = {
								change_government = peasantrepublic_government
								create_title_and_vassal_change = {
									type = returned
									save_scope_as = change
									add_claim_on_loss = no
								}
								primary_title = { 
									add_to_global_variable_list = {
										name = prepublic_list
										target = prev
									}
								}
								every_vassal = {
									limit = {
										government_has_flag = government_is_republic
									}
									every_held_title = { 
										change_title_holder = {
											holder = scope:recipient
											change = scope:change
											take_baronies = yes
										}
									}
								}
								resolve_title_and_vassal_change = scope:change
							}
						}
					}
					else = {
						scope:recipient = {
							show_as_tooltip = {
								change_government = republic_government
								create_title_and_vassal_change = {
									type = returned
									save_scope_as = change
									add_claim_on_loss = no
								}
								every_vassal = {
									limit = {
										government_has_flag = government_is_republic
									}
									every_held_title = { 
										change_title_holder = {
											holder = scope:recipient
											change = scope:change
											take_baronies = yes
										}
									}
								}
								resolve_title_and_vassal_change = scope:change
							}
						}
					}
				}
			}
		}
		scope:recipient = {
			change_government = republic_government
			create_title_and_vassal_change = {
				type = returned
				save_scope_as = change
				add_claim_on_loss = no
			}
			every_vassal = {
				limit = {
					government_has_flag = government_is_republic
				}
				every_held_title = { 
					change_title_holder = {
						holder = scope:recipient
						change = scope:change
						take_baronies = yes
					}
				}
			}
			resolve_title_and_vassal_change = scope:change
		}

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

	auto_accept = yes

	# AI
	ai_potential = {
		culture = {
			has_cultural_parameter = can_make_republican_vassals
			has_cultural_era_or_later = culture_era_high_medieval
		}
		primary_title.tier > tier_county
	}
	
	ai_target_quick_trigger = {
		adult = yes
	}
	ai_targets = {
		ai_recipients = vassals
	}

	ai_frequency_by_tier = {
		barony = 0
		county = 0
		duchy = 240
		kingdom = 60
		empire = 60
		hegemony = 60
	}

	ai_will_do = {
		base = 100
	}
}
