N3OW/common/character_interactions/00_fp3_interactions.txt
2026-10-30 21:04:18 +01:00

2518 lines
60 KiB
Text

# As a Supporter, demand that a Muslim ruler recognize your authority
# Success makes the Strengthen the Caliphate struggle decision easier to take
#fp3_demand_submission_interaction = {
# icon = demand_submission
# category = interaction_category_religion
# popup_on_receive = yes
# pause_on_receive = yes
# can_send_despite_rejection = yes
# ai_maybe = yes
# desc = fp3_demand_submission_interaction_desc
#
# greeting = positive
# notification_text = DEMAND_SUBMISSION_NOTIFICATION
#
# is_available = {
# trigger_if = {
# limit = { is_ai = yes }
# is_physically_able = yes
# }
# }
#
# is_shown = {
# scope:actor != scope:recipient
# struggle:persian_struggle ?= { has_struggle_phase_parameter = demand_submission_interaction_unlocked }
# scope:actor = { has_title = title:d_sunni }
# scope:recipient = {
# faith.religious_head ?= scope:actor
# has_trait = fp3_struggle_supporter
# any_character_struggle = { this = struggle:persian_struggle }
# }
# }
#
# cooldown_against_recipient = { years = 10 }
#
# ai_min_reply_days = 2
# ai_max_reply_days = 7
#
# ai_accept = {
# base = 0
# # This is more flavorful than "base acceptance"
# modifier = {
# desc = DEMAND_SUBMISSION_I_AM_HEAD_OF_FAITH
# add = 50
# }
# ## Piety
# # How pious are you?
# modifier = {
# # (Stolen shamelessly from piety_level_affects_vassalage_acceptance)
# add = {
# value = {
# value = -1
# add = scope:actor.piety_level
# }
# multiply = 10
# }
# desc = I_AM_PIOUS
# # Only matters if they aren't cynical
# NOT = { scope:recipient = { has_trait = cynical } }
# }
# # Are they cynical/zealous?
# modifier = {
# desc = ASK_FOR_CONVERSION_RECIPIENT_IS_CYNICAL
# add = -30
# scope:recipient = {
# has_trait = cynical
# }
# }
# modifier = {
# desc = ASK_FOR_CONVERSION_RECIPIENT_IS_ZEALOUS
# add = 20
# scope:recipient = { has_trait = zealous }
# }
# # Are you giving them extra piety?
# modifier = {
# add = 30
# desc = STRUGGLE_MARRIAGE_ACCEPTANCE_USING_PIETY_AS_CURRENCY
# scope:piety_cost_reduction ?= yes
# }
# ## Opinion
# # Do they like you?
# opinion_modifier = {
# who = scope:recipient
# opinion_target = scope:actor
# multiplier = 0.25
# desc = AI_OPINION_REASON
# }
# ## Personality
# # Are they ambitious?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_AMBITIOUS
# add = -30
# scope:recipient = { has_trait = ambitious }
# }
# # Are they content?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_CONTENT
# add = 10
# scope:recipient = { has_trait = content }
# }
# # Are they stubborn?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_STUBBORN
# add = -10
# scope:recipient = { has_trait = stubborn }
# }
# # Are they arrogant?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_ARROGANT
# add = -10
# scope:recipient = { has_trait = arrogant }
# }
# # Are they humble?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_HUMBLE
# add = 10
# scope:recipient = { has_trait = humble }
# }
# # Are they trusting?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_TRUSTING
# add = 10
# scope:recipient = { has_trait = trusting }
# }
# # Are they paranoid?
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_PARANOID
# add = -20
# scope:recipient = { has_trait = paranoid }
# }
# # Are they loyal?
# # Independent rulers should rarely have this trait, but if your predecessor installed a puppet and died, then this makes it easier to demand submission from the puppet
# modifier = {
# desc = DEMAND_SUBMISSION_RECIPIENT_IS_LOYAL
# add = 20
# scope:recipient = { has_trait = loyal }
# }
# ## Realm
# # Are you stronger/weaker than them?
# modifier = {
# add = {
# value = 1
# subtract = {
# value = scope:recipient.max_military_strength # For foreign diplomacy, consider recipients max
# divide = { value = scope:actor.current_military_strength min = 1 }
# }
# multiply = 10
# }
# desc = offer_vassalization_interaction_aibehavior_power_tt
# }
# # Reign duration
# modifier = {
# add = {
# value = scope:actor.primary_title.title_held_years
# subtract = 21
# max = 20
# }
# desc = DEMAND_SUBMISSION_SHORT_REIGN
# }
# ## Dread
# modifier = {
# add = intimidated_halved_reason_value
# scope:recipient = {
# has_dread_level_towards = {
# target = scope:actor
# level = 1
# }
# }
# desc = INTIMIDATED_REASON
# }
# modifier = {
# add = cowed_halved_reason_value
# scope:recipient = {
# has_dread_level_towards = {
# target = scope:actor
# level = 2
# }
# }
# desc = COWED_REASON
# }
# }
#
# on_accept = {
# scope:actor = {
# if = {
# limit = { scope:piety_cost_reduction ?= yes }
# add_piety = massive_piety_loss
# }
# add_hook = {
# target = scope:recipient
# type = caliphal_submission_hook
# }
# if = {
# limit = { has_variable = last_explicit_defied_caliph }
# remove_variable = last_explicit_defied_caliph
# }
# trigger_event = fp3_misc_decisions.0010 # Letter event informing player of success
# }
# scope:recipient = {
# if = {
# limit = { scope:piety_cost_reduction ?= yes }
# add_piety = massive_piety_gain
# }
# }
#
# # If we're a clan this interaction affects unity
# add_clan_unity_interaction_effect = {
# CHARACTER = scope:actor
# TARGET = scope:recipient
# VALUE = medium_unity_gain
# DESC = clan_unity_forment_revolt.desc
# REVERSE_NON_HOUSE_TARGET = no
# }
# }
#
# on_decline = {
# scope:recipient = {
# custom_tooltip = DEMAND_SUBMISSION_INSTALL_LOYALIST_WARNING
# add_piety = medium_piety_loss
# remove_trait = fp3_struggle_supporter
# add_trait_force_tooltip = fp3_struggle_detractor
# # This is for the install loyalist CB discount
# set_variable = {
# name = last_explicit_defied_caliph
# value = scope:actor
# years = 30
# }
# }
# scope:actor = {
# trigger_event = fp3_misc_decisions.0011 # Letter event informing player of failure
# }
#
# # If we're a clan this interaction affects unity
# add_clan_unity_interaction_effect = {
# CHARACTER = scope:actor
# TARGET = scope:recipient
# VALUE = medium_unity_loss
# DESC = clan_unity_forment_revolt.desc
# REVERSE_NON_HOUSE_TARGET = no
# }
# }
#
# # Use piety to increase acceptance
# send_option = {
# flag = piety_cost_reduction
# localization = TRADE_PIETY_FOR_BETTER_AI_ACCEPTANCE
# }
# send_options_exclusive = no
#
# ai_targets = {
# ai_recipients = neighboring_rulers
# }
#
# ai_frequency_by_tier = {
# barony = 0
# county = 0
# duchy = 0
# kingdom = 12
# empire = 12
# hegemony = 12
# }
#
# # Very similar to ai_accept, but ignores effects that are < 10 in value for brevity's sake
# ai_will_do = {
# # The caliph generally _wants_ to be chucking these out all over the place.
# ## Basically, the more rulers submit to their authority, the better.
# ### Subs over drubs, as it were.
# base = 100
# # Will demand rulers who were installed via the puppet CB
# modifier = {
# add = 200
# scope:recipient = {
# has_trait = loyal
# scope:actor = { has_hook = prev }
# }
# }
# modifier = {
# add = {
# value = {
# value = -1
# add = scope:actor.piety_level
# }
# multiply = 10
# }
# NOT = { scope:recipient = { has_trait = cynical } }
# }
# modifier = {
# add = -30
# scope:recipient = {
# has_trait = cynical
# }
# }
# modifier = {
# add = 20
# scope:recipient = { has_trait = zealous }
# }
# opinion_modifier = {
# who = scope:recipient
# opinion_target = scope:actor
# multiplier = 0.25
# }
# modifier = {
# add = -30
# scope:recipient = { has_trait = ambitious }
# }
# modifier = {
# add = {
# value = 1
# subtract = {
# value = scope:recipient.max_military_strength
# divide = { value = scope:actor.current_military_strength min = 1 }
# }
# multiply = 10
# }
# }
# # Reign duration
# modifier = {
# add = {
# value = scope:actor.primary_title.title_held_years
# subtract = 21
# max = 20
# }
# }
# ## Dread
# modifier = {
# add = intimidated_halved_reason_value
# scope:recipient = {
# has_dread_level_towards = {
# target = scope:actor
# level = 1
# }
# }
# }
# modifier = {
# add = cowed_halved_reason_value
# scope:recipient = {
# has_dread_level_towards = {
# target = scope:actor
# level = 2
# }
# }
# }
# }
#}
#
####################################
## Request Turkic invasion (can_request_incursion_interaction)
## By Hugo Cortell
####################################
#fp3_request_turkic_invasion_interaction = {
# interface_priority = 100
# common_interaction = yes
# category = interaction_category_hostile
# cooldown_against_recipient = { years = 2 }
#
# icon = request_mercenary
# desc = fp3_request_turkic_invasion_interaction_desc
#
# is_available = {
# OR = {
# AND = {
# has_trait = fp3_struggle_detractor
# any_character_struggle = { is_struggle_type = persian_struggle }
# }
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# trigger_if = {
# limit = { is_ai = yes }
# ai_greed <= 25
# OR = {
# has_trait = fp3_struggle_detractor
# AND = {
# vassal_contract_has_flag = celestial_military_appointment
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# }
# NOT = { culture = { has_cultural_pillar = heritage_turkic } }
# ai_has_builder_or_pious_builder_personality = no
# is_at_war = no
# }
# }
#
# is_shown = {
# scope:recipient = {
# is_playable_character = yes
# is_landed = yes
# trigger_if = {
# limit = {
# scope:actor = {
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# }
# top_liege = scope:actor.top_liege
# }
# trigger_else = {
# OR = {
# any_character_struggle = { is_struggle_type = persian_struggle }
# title:d_sunni.holder ?= this
# }
# top_liege ?= this
#
# }
# is_ai = yes
# }
# scope:actor != scope:recipient
# }
#
# is_valid_showing_failures_only = {
# }
#
# populate_recipient_list = {
# scope:actor.top_liege = {
# every_independent_ruler = {
# limit = {
# is_ai = yes
# is_landed = yes
# is_physically_able = yes
# has_raised_armies = no
# is_at_war = no
# in_diplomatic_range = scope:actor
# highest_held_title_tier >= tier_county
# NOR = {
# is_allied_to = scope:recipient
# has_truce = scope:recipient
# this = scope:actor
# this = scope:recipient
# is_tributary_of = scope:recipient.top_liege
# }
# OR = {
# trigger_if = {
# limit = {
# NOT = {
# scope:actor = {
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# }
# }
# government_has_flag = government_is_clan
# }
# government_has_flag = government_is_tribal
# government_has_flag = government_is_nomadic
# government_has_flag = government_is_wanua
# government_has_flag = government_is_landless_adventurer
# }
# trigger_if = {
# limit = {
# scope:actor = {
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# }
# any_neighboring_top_liege_realm = {
# OR = {
# title:h_china ?= this
# any_title_to_title_neighboring_empire = {
# title:h_china ?= hegemony
# }
# }
# }
# }
# trigger_else = {
# culture = {
# OR = {
# has_cultural_pillar = heritage_turkic
# has_cultural_pillar = heritage_mongolic
# }
# }
# }
# }
# add_to_list = characters
# }
# }
# }
#
# send_options_exclusive = no
#
# send_option = {
# flag = war_support
# localization = fp3_request_turkic_invasion_interaction_option_join_war
# current_description = fp3_request_turkic_invasion_interaction_option_join_war_desc
# is_shown = { exists = scope:secondary_recipient }
# is_valid = {
# scope:actor = {
# NOR = {
# is_at_war_with = scope:recipient
# is_allied_to = scope:recipient
# has_truce = scope:recipient
# }
# tgp_is_hegemon_or_below_in_dynastic_cycle_trigger = no
# }
# }
# }
#
# send_option = {
# flag = financial_support
# localization = fp3_request_turkic_invasion_interaction_option_more_gold
# current_description = fp3_request_turkic_invasion_interaction_option_more_gold_desc
# is_shown = { exists = scope:secondary_recipient }
# is_valid = {
# custom_description = {
# text = fp3_please_dont_give_me_negative_gold
# fp3_request_invasion_troop_value_estimate > 0
# }
# }
# }
#
# cost = {
# gold = {
# value = {
# value = scope:secondary_recipient.max_military_strength
# divide = 20
# round = yes
# }
# add = {
# if = {
# limit = { scope:financial_support = yes }
# add = fp3_request_invasion_troop_value_estimate
# }
# }
# if = {
# limit = {
# scope:recipient = { has_title = title:d_sunni }
# struggle:persian_struggle = { has_struggle_phase_parameter = cheaper_incursions_vs_caliph }
# }
# divide = 2
# }
# }
# }
#
# on_accept = {
# if = {
# limit = { exists = scope:secondary_recipient }
#
# scope:recipient = {
# if = {
# limit = {
# scope:actor = {
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# }
# capital_county = {
# save_scope_as = invasion_target_title
# }
# }
# else = {
# if = {
# limit = {
# any_realm_county = {
# this != scope:recipient.capital_county
# any_neighboring_county = { holder.top_liege = scope:secondary_recipient.top_liege }
# any_county_province = { geographical_region = world_persian_empire }
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# }
# random_realm_county = {
# limit = {
# this != scope:recipient.capital_county
# any_neighboring_county = { holder.top_liege = scope:secondary_recipient.top_liege }
# any_county_province = { geographical_region = world_persian_empire }
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# save_scope_as = invasion_target_title
# }
# }
# else_if = {
# limit = {
# any_realm_county = {
# this != scope:recipient.capital_county
# any_neighboring_county = {
# any_county_province = { geographical_region = world_persian_empire }
# holder.top_liege != prev.holder.top_liege
# }
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# }
# random_realm_county = {
# limit = {
# this != scope:recipient.capital_county
# any_neighboring_county = {
# any_county_province = { geographical_region = world_persian_empire }
# holder.top_liege != prev.holder.top_liege
# }
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# save_scope_as = invasion_target_title
# }
# }
# else_if = {
# limit = {
# any_realm_county = {
# this != scope:recipient.capital_county
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# }
# random_realm_county = {
# limit = {
# this != scope:recipient.capital_county
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# save_scope_as = invasion_target_title
# }
# }
# else_if = {
# limit = {
# any_realm_county = {
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# }
# random_realm_county = {
# limit = {
# NOR = {
# holder = scope:actor
# holder = { is_vassal_or_below_of = scope:actor }
# }
# }
# save_scope_as = invasion_target_title
# }
# }
# else = {
# random_realm_county = { save_scope_as = invasion_target_title }
# }
# }
#
# scope:invasion_target_title.duchy = { save_scope_as = text_title }
#
# hidden_effect = { # Not worth cluttering the UI with
# add_opinion = {
# modifier = fp3_incited_conflict
# target = scope:actor
# }
# add_opinion = {
# modifier = declared_war
# target = scope:secondary_recipient
# }
# }
# }
#
# scope:secondary_recipient = {
# add_gold = {
# value = {
# value = scope:secondary_recipient.max_military_strength
# divide = 20
# round = yes
# }
# add = {
# if = {
# limit = { scope:financial_support = yes }
# add = fp3_request_invasion_troop_value_estimate
# }
# }
# if = {
# limit = {
# scope:recipient = { has_title = title:d_sunni }
# struggle:persian_struggle = { has_struggle_phase_parameter = cheaper_incursions_vs_caliph }
# }
# divide = 2
# }
# }
# start_war = {
# casus_belli = fp3_turkic_invasion_cb
# target = scope:recipient
# target_title = scope:invasion_target_title.duchy
# }
# custom_tooltip = fp3_turkic_invasion_cb_result_tt
# if = {
# limit = {
# scope:financial_support = yes
# }
# trigger_event = fp3_misc_decisions.0006
# if = {
# limit = {
# has_mpo_dlc_trigger = yes
# }
# show_as_tooltip = {
# spawn_army = {
# men_at_arms = {
# type = horse_archers
# stacks = fp3_request_invasion_troop_value_bonus_troops
# }
# men_at_arms = {
# type = steppe_raiders
# stacks = fp3_request_invasion_troop_value_bonus_troops
# }
# men_at_arms = {
# type = light_horsemen
# stacks = fp3_request_invasion_troop_value_bonus_troops
# }
# men_at_arms = {
# type = nomadic_riders
# stacks = fp3_request_invasion_troop_value_bonus_levy_nomads
# }
# location = capital_province
# uses_supply = yes
# inheritable = no
# name = turkic_tribal_event_troops
# }
# }
# }
# else = {
# show_as_tooltip = {
# spawn_army = {
# men_at_arms = {
# type = horse_archers
# stacks = fp3_request_invasion_troop_value_bonus_troops
# }
# men_at_arms = {
# type = light_horsemen
# stacks = fp3_request_invasion_troop_value_bonus_troops
# }
# levies = fp3_request_invasion_troop_value_bonus_levy_troops
# location = capital_province
# uses_supply = yes
# inheritable = no
# name = turkic_tribal_event_troops
# }
# }
# }
# }
# if = {
# limit = { scope:war_support = yes }
# custom_tooltip = fp3_request_turkic_invasion_interaction_option_join_war_outcome_tooltip
# trigger_event = fp3_misc_decisions.0005
# }
# }
#
# scope:actor = {
# hidden_effect = {
# send_interface_toast = {
# type = event_toast_effect_good
# title = fp3_request_turkic_invasion_interaction_accept_notification.t
# left_icon = scope:secondary_recipient
# right_icon = scope:recipient
#
# show_as_tooltip = {
# custom_tooltip = fp3_request_turkic_invasion_interaction_accept_notification.desc
# }
# }
# }
# if = {
# limit = {
# top_participant_group:dynastic_cycle ?= {
# participant_group_type = expansion_movement
# }
# }
# add_secret = {
# target = scope:recipient
# type = secret_request_incursion
# }
# scope:secondary_recipient = {
# add_secret = {
# target = scope:recipient
# type = secret_request_incursion
# }
# }
# }
# }
#
# scope:recipient = {
# add_character_flag = {
# flag = incursion_ai_pacing
# years = 5
# }
# hidden_effect = {
# send_interface_toast = {
# type = event_toast_effect_bad
# title = fp3_request_turkic_invasion_interaction_accept_notification.t
# left_icon = scope:secondary_recipient
# right_icon = scope:actor
#
# show_as_tooltip = {
# custom_tooltip = fp3_request_turkic_invasion_interaction_accept_target_notification.desc
# }
# }
# }
# }
# }
# }
#
# use_diplomatic_range = yes
#
# ai_accept = {
# base = 0
#
# # Relationships: actor -> recipient / We avoid more relationship checks for balance reasons (and because important decisions tend to care little for relationships)
# modifier = { # Rivalry modifier.
# desc = offer_vassalization_interaction_aibehavior_rival_tt_2
# trigger = {
# scope:secondary_recipient = {
# has_relation_rival = scope:actor
# NOT = { has_relation_nemesis = scope:actor }
# }
# }
# add = -10
# }
# modifier = { # Nemesis modifier.
# desc = offer_vassalization_interaction_aibehavior_nemesis_tt_2
# trigger = {
# scope:secondary_recipient = {
# has_relation_nemesis = scope:actor
# }
# }
# add = -100
# }
# modifier = { # Same Dynasty modifier.
# desc = offer_vassalization_interaction_aibehavior_dynasty_tt_2
# trigger = {
# scope:secondary_recipient = {
# dynasty = scope:actor.dynasty
# }
# }
# add = 10
# }
#
# # Compare Opinion modifier
# opinion_modifier = {
# who = scope:secondary_recipient
# opinion_target = scope:actor
# multiplier = 0.25
# }
#
# # Pledged to help in invasion
# modifier = {
# add = {
# value = scope:actor.max_military_strength
# divide = 70
# round = yes
# }
# desc = HAS_YOUR_SUPPORT_REASON
# scope:war_support = yes
# }
#
# # Relative power (taken from PT interaction)
# modifier = { # A lot less levies than scope:secondary_recipient
# add = -100
# scope:secondary_recipient.max_military_strength <= scope:recipient.purchase_truce_interaction_recipient_far_weaker_value
# desc = fp3_RTI_AI_RECIPIENT_IS_MUCH_WEAKER
# }
# modifier = { # Few less levies than scope:secondary_recipient
# add = -75
# scope:secondary_recipient.max_military_strength > scope:recipient.purchase_truce_interaction_recipient_far_weaker_value
# scope:secondary_recipient.max_military_strength <= scope:recipient.purchase_truce_interaction_recipient_somewhat_weaker_value
# desc = fp3_RTI_AI_RECIPIENT_IS_SOMEWHAT_WEAKER
# }
# modifier = { # Roughly equal levies with scope:secondary_recipient
# add = 10
# scope:secondary_recipient.max_military_strength > scope:recipient.purchase_truce_interaction_recipient_somewhat_weaker_value
# scope:secondary_recipient.max_military_strength <= scope:recipient.purchase_truce_interaction_recipient_somewhat_stronger_value
# desc = fp3_RTI_AI_RECIPIENT_IS_ROUGHLY_EQUAL
# }
# modifier = { # More levies than scope:secondary_recipient
# add = 50
# scope:secondary_recipient.max_military_strength > scope:recipient.purchase_truce_interaction_recipient_somewhat_stronger_value
# scope:secondary_recipient.max_military_strength <= scope:recipient.purchase_truce_interaction_recipient_far_stronger_value
# desc = fp3_RTI_AI_RECIPIENT_IS_SOMEWHAT_STRONGER
# }
# modifier = { # Many more levies than scope:secondary_recipient
# add = 75
# scope:secondary_recipient.max_military_strength > scope:recipient.purchase_truce_interaction_recipient_far_stronger_value
# desc = fp3_RTI_AI_RECIPIENT_IS_MUCH_STRONGER
# }
#
# # AI who are in debt will take whatever windfalls they can.
# modifier = {
# add = {
# value = scope:secondary_recipient.debt_level
# add = 1 # Our first level is 0, so we add one to always get a positive number.
# multiply = 10
# }
# debt_level >= 0
# desc = PT_AI_IS_IN_DEBT
# }
#
# # Pacifist AI don't like raiding
# modifier = {
# add = -25
# scope:secondary_recipient.faith = { has_doctrine_parameter = pacifist }
# desc = PT_AI_IS_PACIFIST_FAITH_2
# }
# modifier = {
# add = -25
# scope:secondary_recipient.culture = { has_cultural_parameter = reduced_cost_for_conversion_to_pacifist_faith }
# desc = PT_AI_IS_PACIFIST_CULTURE_2
# }
# # Distance
# modifier = {
# add = -25
# "scope:secondary_recipient.capital_province.squared_distance(scope:recipient.capital_province)" >= squared_distance_medium
# "scope:secondary_recipient.capital_province.squared_distance(scope:recipient.capital_province)" < squared_distance_almost_massive
# desc = PT_AI_IS_FAR_AWAY
# }
# modifier = {
# add = -75
# "scope:secondary_recipient.capital_province.squared_distance(scope:recipient.capital_province)" >= squared_distance_almost_massive
# desc = PT_AI_IS_VERY_FAR_AWAY
# }
# modifier = {
# add = 20
# exists = scope:actor.var:movement_power
# scope:actor.var:movement_power >= very_high_movement_power_value
# desc = ACTOR_HIGH_MOVEMENT_POWER
# }
#
# # Offered proportional gold
# modifier = {
# add = 85
# scope:financial_support = yes
# desc = GOLD_REASON
# }
#
# # AI value mod
# ai_value_modifier = {
# ai_greed = 0.5
# ai_boldness = 0.25
# min = 0
# max = 25
# }
# }
# can_send_despite_rejection = no
# ai_frequency_by_tier = {
# barony = 0
# county = 72
# duchy = 72
# kingdom = 36
# empire = 24
# hegemony = 24
# }
# ai_targets = {
# ai_recipients = neighboring_rulers
# ai_recipients = liege
# }
# ai_will_do = {
# base = 0
#
# modifier = {
# add = 50
# scope:recipient = {
# has_trait = fp3_struggle_supporter
# scope:recipient.max_military_strength >= scope:actor.max_military_strength
# }
# }
#
# modifier = {
# add = 50
# title:d_sunni.holder ?= scope:recipient
# }
#
# modifier = {
# add = 100
# scope:recipient = {
# has_relation_rival = scope:actor
# }
# }
#
# modifier = {
# factor = 0.1
# scope:actor.liege ?= scope:recipient
# }
#
# modifier = {
# factor = 0
# scope:recipient = {
# has_character_flag = incursion_ai_pacing
# }
# }
#
# modifier = {
# factor = 0
# scope:recipient = {
# is_at_war = yes
# is_ai = no
# }
# }
#
# modifier = {
# factor = 0
# scope:recipient = {
# is_ai = no
# is_liege_or_above_of = scope:actor
# }
# }
#
# modifier = {
# factor = 0
# scope:recipient = {
# OR = {
# has_relation_friend = scope:actor
# has_relation_lover = scope:actor
# opinion = {
# target = scope:actor
# value >= 45
# }
# }
# }
# }
# }
#}
#
####################################
## Challenge House Head
## By Hugo Cortell
## Reworked by Joe Parkin
####################################
#fp3_challenge_house_head_interaction = {
# icon = house_unity_sword
# category = interaction_category_hostile
# common_interaction = no
# ai_min_reply_days = 4
# ai_max_reply_days = 9
# popup_on_receive = yes
# pause_on_receive = yes
# use_diplomatic_range = no
#
# interface_priority = 107
#
# desc = fp3_challenge_house_head_interaction_desc
#
# notification_text = {
# first_valid = {
# triggered_desc = {
# trigger = { scope:diplomacy = yes }
# desc = fp3_challenge_house_head_interaction_notification_diplomacy
# }
# desc = fp3_challenge_house_head_interaction_notification
# }
# }
#
# greeting = positive
#
# ai_maybe = yes
#
# cooldown_against_recipient = { years = 10 }
#
# is_available = {
# OR = {
# government_has_flag = government_is_clan
# government_is_japanese_trigger = yes
# }
# trigger_if = {
# limit = { is_ai = yes }
# is_house_head = no
# is_physically_able = yes
# }
# }
#
# is_shown = {
# has_fp3_dlc_trigger = yes
# scope:actor = {
# this != scope:recipient
# house ?= {
# house_head ?= scope:recipient
# OR = {
# has_house_unity_parameter = unity_can_challenge_house_head
# house_head ?= { government_is_japanese_trigger = yes }
# scope:actor = {
# any_character_struggle = { has_struggle_phase_parameter = unlocks_challenge_house_head_for_clans }
# }
# }
# }
# }
# }
#
# is_valid_showing_failures_only = {
# scope:actor = {
# is_at_war = no
# is_available_adult = yes
# }
# scope:recipient = {
# is_at_war = no
# is_available_adult = yes
# # Stop challenges from barons and counts against kings
# custom_tooltip = {
# text = fp3_challenge_house_head_interaction_tier_tt
# tier_difference = {
# target = scope:actor
# value <= 1
# }
# }
# # Give some respite after a recent challenge
# custom_tooltip = {
# text = fp3_challenge_house_head_interaction_recent_tt
# NOT = { has_character_flag = fp3_challenge_house_head_recent_flag }
# }
# tgp_is_ceremonial_liege_trigger = no
# }
# }
#
# auto_accept = {
# trigger_if = {
# limit = {
# scope:recipient = { is_ruler = no }
# }
# scope:recipient = { is_ruler = no }
# }
# trigger_else_if = {
# limit = { scope:hook = yes }
# custom_description = {
# text = "spending_hook"
# subject = scope:actor
# object = scope:recipient
# scope:hook = yes
# }
# }
# trigger_else_if = {
# limit = {
# scope:recipient = { is_vassal_or_below_of = scope:actor }
# }
# scope:recipient = { is_vassal_or_below_of = scope:actor }
# }
# trigger_else_if = {
# limit = {
# scope:actor = { is_heir_of = scope:recipient }
# }
# custom_tooltip = {
# text = fp3_challenge_house_head_interaction_heir_bonus_desc
# scope:actor = { is_heir_of = scope:recipient }
# }
# }
# trigger_else = { always = no }
# }
#
# can_send = {
# scope:actor = {
# # Do not allow house heads who accepted a challenge to ping pong back and forth
# custom_tooltip = {
# text = fp3_challenge_house_head_interaction_accepted_tt
# NOT = { has_character_flag = accepted_house_head_challenge_flag }
# }
# }
# scope:recipient = {
# # Do not allow multiple challenges at the same time
# custom_tooltip = {
# text = fp3_challenge_house_head_interaction_ongoing_tt
# NOT = { has_character_flag = ongoing_house_head_challenge_flag }
# }
# }
# }
#
# on_send = {
# scope:recipient = {
# add_character_flag = { # stop multiple challenges at same time
# flag = ongoing_house_head_challenge_flag
# months = 1
# }
# add_character_flag = { # stop AI constantly challenging players
# flag = ai_cooldown_house_head_challenge_flag
# years = 5
# }
# }
# }
#
# on_accept = {
# scope:recipient = { save_scope_as = house_head }
# if = {
# limit = {
# OR = {
# scope:recipient = { is_vassal_or_below_of = scope:actor }
# scope:recipient = { is_ruler = no }
# }
# }
# scope:actor.house = { set_house_head = scope:actor }
# }
# else = {
# scope:actor = {
# save_scope_as = house_challenger
# if = { # Hook consumption
# limit = { scope:hook = yes }
# use_hook = scope:house_head
# }
# if = {
# limit = { scope:diplomacy = yes }
# custom_tooltip = fp3_challenge_house_head_interaction_tooltip_actor.diplomacy
# trigger_event = fp3_misc_decisions.0026
# scope:house_head = { custom_tooltip = fp3_challenge_house_head_interaction_tooltip_recipient.diplomacy }
# house = {
# add_clan_unity_interaction_effect = {
# CHARACTER = scope:house_challenger
# TARGET = scope:house_head
# VALUE = minor_unity_loss
# DESC = clan_unity_challenged_to_duel.desc
# REVERSE_NON_HOUSE_TARGET = yes
# }
# }
# }
# else = {
# if = {
# limit = { scope:lethal = no }
# custom_tooltip = fp3_challenge_house_head_interaction_tooltip_actor.a
# scope:house_head = { custom_tooltip = fp3_challenge_house_head_interaction_tooltip_recipient.b }
# house = {
# add_clan_unity_interaction_effect = {
# CHARACTER = scope:house_challenger
# TARGET = scope:house_head
# VALUE = minor_unity_loss
# DESC = clan_unity_challenged_to_duel.desc
# REVERSE_NON_HOUSE_TARGET = yes
# }
# }
# }
# else = {
# custom_tooltip = fp3_challenge_house_head_interaction_tooltip_actor.a.lethal
# scope:house_head = { custom_tooltip = fp3_challenge_house_head_interaction_tooltip_recipient.b.lethal }
# house = {
# add_clan_unity_interaction_effect = {
# CHARACTER = scope:house_challenger
# TARGET = scope:house_head
# VALUE = major_unity_loss
# DESC = clan_unity_challenged_to_duel.desc
# REVERSE_NON_HOUSE_TARGET = yes
# }
# }
# }
# # Admin Japanese can duel, but it is frowned upon
# scope:actor = {
# custom_description_no_bullet = {
# text = challenge_house_head_japanese_admin
# }
# if = {
# limit = {
# government_is_japanese_trigger = yes
# tgp_soryo_or_bushido_trigger = no
# }
# if = {
# limit = { scope:lethal = no }
# add_prestige = medium_prestige_loss
# }
# else = {
# add_prestige = major_prestige_loss
# add_prestige_level = -1
# }
# }
# }
# trigger_event = fp3_misc_decisions.0022
# }
# }
# if = {
# limit = { scope:diplomacy = no }
# if = {
# limit = { scope:lethal = no }
# custom_tooltip = fp3_challenge_house_head_interaction_duel_tooltip_warning
# }
# else = { custom_tooltip = fp3_challenge_house_head_interaction_duel_tooltip_warning_lethal }
# }
# }
# }
#
# on_decline = { # Get letter of rejection, to further escalate the situation if the player wills it
# scope:actor = { trigger_event = fp3_misc_decisions.0025 }
# scope:recipient = {
# add_prestige = major_prestige_loss
# remove_character_flag = ongoing_house_head_challenge_flag
# }
# }
#
# send_option = {
# flag = diplomacy
# localization = CHALLENGE_HOUSE_HEAD_DIPLOMACY_DUEL
# starts_enabled = {
# scope:actor = { tgp_soryo_or_bushido_trigger = no }
# }
# is_valid = {
# custom_tooltip = {
# text = CHALLENGE_HOUSE_HEAD_LETHAL_DUEL_INVALID_TT
# NOT = { scope:lethal = yes }
# }
# }
# }
# send_option = {
# flag = lethal
# localization = CHALLENGE_HOUSE_HEAD_LETHAL_DUEL
# is_valid = {
# scope:actor = {
# has_relation_rival = scope:recipient
# trigger_if = {
# limit = { government_is_japanese_trigger = yes }
# tgp_soryo_or_bushido_trigger = yes
# scope:recipient = { tgp_soryo_or_bushido_trigger = yes }
# }
# }
# custom_tooltip = {
# text = CHALLENGE_HOUSE_HEAD_LETHAL_DUEL_INVALID_TT
# NOT = { scope:diplomacy = yes }
# }
# }
# }
# send_option = {
# flag = hook
# localization = GENERIC_SPEND_A_HOOK
# is_valid = {
# scope:actor = { has_usable_hook = scope:recipient }
# }
# }
# 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
#
# # AI
# ai_accept = {
# base = 25
# modifier = {
# add = -50
# scope:lethal = yes
# desc = AI_AVOID_LETHAL_DUEL
# }
# modifier = {
# add = 15
# scope:recipient = { has_trait = ambitious }
# desc = INTERACTION_AMBITIOUS
# }
# modifier = {
# add = 25
# scope:recipient = { has_trait = brave }
# desc = INTERACTION_BRAVE
# }
# modifier = {
# add = {
# value = -25
# if = {
# limit = { scope:lethal = yes }
# multiply = 2
# }
# }
# scope:recipient = { has_trait = craven }
# desc = INTERACTION_CRAVEN
# }
# modifier = {
# scope:recipient.ai_greed != 0
# add = { # Greedy people won't risk a position of power, even if their prestige suffers
# value = scope:recipient.ai_greed
# multiply = -1
# max = 35
# min = -35
# }
# desc = AI_VALUE_MODIFIER_GREED
# }
# modifier = {
# scope:recipient.ai_honor != 0
# add = {
# value = scope:recipient.ai_honor
# max = 75
# min = -35
# }
# desc = AI_VALUE_MODIFIER_HONOR
# }
# modifier = {
# scope:recipient.ai_energy != 0
# add = {
# value = scope:recipient.ai_energy
# max = 10
# min = -10
# }
# desc = AI_VALUE_MODIFIER_ENERGY
# }
# modifier = {
# NOT = { scope:diplomacy = yes }
# add = {
# value = scope:recipient.prowess
# subtract = scope:actor.prowess
# multiply = 2
# }
# desc = CTSC_RELATIVE_PROWESS
# }
# modifier = {
# scope:lethal = yes
# scope:recipient = {
# OR = {
# is_parent_of = scope:actor
# is_child_of = scope:actor
# }
# NOT = { has_relation_rival = scope:actor }
# }
# factor = 0.5
# desc = AI_AVOID_LETHAL_DUEL_WITH_FAMILY
# }
# modifier = {
# NOT = { scope:diplomacy = yes }
# scope:recipient = {
# government_is_japanese_trigger = yes
# tgp_soryo_or_bushido_trigger = no
# }
# factor = 0.5
# desc = AI_NOT_SORYO_OR_BUSHIDO
# }
# opinion_modifier = {
# opinion_target = scope:actor
# multiplier = 0.5
# }
# }
#
# ai_frequency_by_tier = {
# barony = 0
# county = 36
# duchy = 24
# kingdom = 6
# empire = 1
# hegemony = 1
# }
#
# ai_target_quick_trigger = {
# adult = yes
# }
#
# ai_targets = {
# ai_recipients = dynasty
# ai_recipients = family
# max = 10
# }
#
# ai_targets = {
# ai_recipients = liege
# ai_recipients = head_of_faith
# ai_recipients = hooked_characters
# ai_recipients = scripted_relations
# }
#
# ai_targets = {
# ai_recipients = peer_vassals
# ai_recipients = vassals
# ai_recipients = neighboring_rulers
# max = 30
# }
#
# ai_will_do = {
# base = 5
# # Base requirements for AI
# modifier = {
# add = -1000
# AND = {
# NOT = {
# scope:recipient = { is_vassal_or_below_of = scope:actor }
# }
# OR = {
# AND = {
# top_liege = this
# highest_held_title_tier >= scope:recipient.highest_held_title_tier
# }
# is_powerful_vassal = yes
# is_close_or_extended_family_of = scope:recipient
# opinion = {
# target = scope:recipient
# value >= 25
# }
# }
# }
# }
# # Tiers
# modifier = {
# add = 10
# piety_level >= scope:recipient.piety_level
# }
# modifier = {
# add = 10
# prestige_level >= scope:recipient.prestige_level
# }
# modifier = {
# add = 10
# highest_held_title_tier >= scope:recipient.highest_held_title_tier
# }
# # Traits
# modifier = {
# add = 30
# has_trait = ambitious
# }
# modifier = {
# add = 30
# has_trait = brave
# }
# modifier = {
# add = -30
# has_trait = craven
# }
# # Dread
# modifier = {
# add = -25
# has_dread_level_towards = {
# target = scope:recipient
# level >= 1
# }
# }
# modifier = {
# add = -25
# has_dread_level_towards = {
# target = scope:recipient
# level >= 2
# }
# }
# # Personality
# modifier = {
# ai_boldness > 0
# add = {
# value = ai_boldness
# divide = 2
# min = 1
# }
# }
# modifier = {
# ai_greed >= 50
# add = {
# value = ai_greed
# divide = 2
# }
# }
# modifier = {
# ai_sociability = 100
# add = 10
# }
# # Higher in stature
# modifier = {
# is_independent_ruler = yes
# scope:recipient = { is_independent_ruler = no }
# add = 1000
# }
# modifier = {
# highest_held_title_tier > scope:recipient.highest_held_title_tier
# scope:recipient = { is_independent_ruler = no }
# add = {
# value = highest_held_title_tier
# add = scope:recipient.highest_held_title_tier
# multiply = 10
# }
# }
# modifier = {
# scope:recipient = { is_vassal_or_below_of = scope:actor }
# add = 500
# }
# # Remove non dominant gender
# modifier = {
# scope:actor = { is_faith_dominant_gender = yes }
# scope:recipient = { is_faith_dominant_gender = no }
# factor = 2
# }
# # Stop AI constantly challenging players
# modifier = {
# scope:recipient = { has_character_flag = ai_cooldown_house_head_challenge_flag }
# factor = 0
# }
# # Stop AI game-overing players
# modifier = {
# scope:recipient = {
# trigger_if = {
# limit = { is_ai = no }
# is_landed = no
# any_held_title = { is_noble_family_title = yes }
# }
# }
# factor = 0
# }
# }
#}
#
#
####################################
## Change struggle allegiance
####################################
#fp3_change_allegiance = {
# interface_priority = 30
# category = interaction_category_diplomacy
# common_interaction = yes
# desc = {
# first_valid = {
# # Become a supporter.
# triggered_desc = {
# trigger = {
# scope:actor = { has_trait = fp3_struggle_supporter }
# }
# desc = fp3_change_allegiance.desc.actor_is_supporter
# }
# # Become a detractor.
# triggered_desc = {
# trigger = {
# scope:actor = { has_trait = fp3_struggle_detractor }
# }
# desc = fp3_change_allegiance.desc.actor_is_detractor
# }
# desc = fp3_change_allegiance.desc.fallback
# }
# }
# icon = change_allegiance
#
# greeting = positive
# notification_text = fp3_change_allegiance_notification
#
# 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
#
# ai_maybe = yes
#
# is_available = {
# any_character_struggle = { is_struggle_type = persian_struggle }
# trigger_if = {
# limit = { is_ai = yes }
# OR = {
# has_trait = fp3_struggle_detractor
# has_trait = fp3_struggle_supporter
# }
# primary_title.tier >= tier_duchy
# }
# }
#
# is_shown = {
# has_fp3_dlc_trigger = yes
# # There has to be a caliph around to sway on.
# ## Arguably narratively not, but mechanically, everything will break if we don't.
# exists = title:d_sunni.holder
# scope:recipient != scope:actor
# scope:actor = {
# OR = {
# # Detractors are made from supporters.
# AND = {
# has_trait = fp3_struggle_detractor
# scope:recipient = { has_trait = fp3_struggle_supporter }
# }
# # Supporters are made from detractors.
# AND = {
# has_trait = fp3_struggle_supporter
# scope:recipient = { has_trait = fp3_struggle_detractor }
# }
# # Neutrals can be asked either way, should they exist.
# AND = {
# OR = {
# has_trait = fp3_struggle_detractor
# has_trait = fp3_struggle_supporter
# }
# scope:recipient = {
# NOR = {
# has_trait = fp3_struggle_detractor
# has_trait = fp3_struggle_supporter
# }
# }
# }
# }
# }
# scope:recipient = {
# any_character_struggle = { is_struggle_type = persian_struggle }
# # You cannot ask the Caliph!
# NOT = { this = title:d_sunni.holder }
# }
# }
#
# is_valid_showing_failures_only = {
# scope:recipient = {
# # We want to disable some stuff for supporters who can't be persuaded away from the caliph.
# trigger_if = {
# limit = { has_trait = fp3_struggle_supporter }
# # Can't be allied to the caliph.
# NOT = { is_allied_to = title:d_sunni.holder }
# # Can't be strong hooked _by_ the caliph.
# NOT = {
# title:d_sunni.holder = { has_strong_hook = prev }
# }
# # Can't have only recently changed to become a supporter.
# custom_tooltip = {
# text = fp3_change_allegiance.tt.recently_voluntarily_became_supporter
# OR = {
# NOT = { has_variable = last_explicit_friday_prayer_caliph }
# NOT = { var:last_explicit_friday_prayer_caliph = title:d_sunni.holder }
# }
# }
# }
# # Likewise, some circumstances can force them to stay as a detractor.
# trigger_if = {
# limit = { has_trait = fp3_struggle_detractor }
# # Can't have only recently changed to become a detractor.
# custom_tooltip = {
# text = fp3_change_allegiance.tt.recently_voluntarily_became_detractor
# OR = {
# NOT = { has_variable = last_explicit_friday_prayer_caliph }
# NOT = { var:last_explicit_friday_prayer_caliph = title:d_sunni.holder }
# }
# }
# # Can't have been forced into becoming a detractor by the caliph overstepping.
# custom_tooltip = {
# text = fp3_change_allegiance.tt.recently_forced_to_detractor
# OR = {
# NOT = { has_variable = last_explicit_defied_caliph }
# NOT = { var:last_explicit_defied_caliph = title:d_sunni.holder }
# }
# }
# }
# # Plus some general stuff.
# is_at_war = no
# # Can't have recently been convinced to change their minds.
# custom_tooltip = {
# text = fp3_change_allegiance.tt.recently_changed_mind
# NOT = { has_character_flag = fp3_change_allegiance_recipient_cooldown }
# }
# custom_tooltip = {
# text = fp3_change_allegiance.tt.recently_refused
# NOT = { has_character_flag = fp3_change_allegiance_refused_cooldown }
# }
# # They must be an orthodox Sunni.
# custom_tooltip = {
# text = fp3_change_allegiance.tt.hof_is_d_sunni
# faith.religious_head ?= title:d_sunni.holder
# }
# }
# scope:actor = { is_available_adult = yes }
# }
#
# auto_accept = {
# custom_description = {
# text = "spending_hook"
# subject = scope:actor
# object = scope:recipient
# scope:hook = yes
# }
# }
#
# ai_accept = {
# base = 0
#
# # Those who already have a stance are more set in their ways.
# ## Detractors
# modifier = {
# add = -25
# scope:actor = { has_trait = fp3_struggle_supporter }
# scope:recipient = { has_trait = fp3_struggle_detractor }
# desc = INTERACTION_DETRACTOR
# }
# ## Supporters
# modifier = {
# add = -25
# scope:actor = { has_trait = fp3_struggle_detractor }
# scope:recipient = { has_trait = fp3_struggle_supporter }
# desc = INTERACTION_SUPPORTER
# }
#
# # Opinions
# ## Opinion of you
# opinion_modifier = {
# who = scope:recipient
# opinion_target = scope:actor
# multiplier = {
# value = 1
# # Despawn this if you're not the caliph.
# if = {
# limit = { scope:actor = title:d_sunni.holder }
# multiply = 0
# }
# }
# }
# ## Opinion of the caliph
# opinion_modifier = {
# who = scope:recipient
# opinion_target = title:d_sunni.holder
# multiplier = {
# value = 0.5
# # If you're the caliph, you can take the full amount.
# if = {
# limit = { scope:actor = title:d_sunni.holder }
# add = 0.5
# }
# }
# }
# # Traits.
# ## Become supporter.
# ### ++ Zealous.
# modifier = {
# add = 25
# desc = ASK_FOR_CONVERSION_RECIPIENT_IS_ZEALOUS
# scope:actor = { has_trait = fp3_struggle_supporter }
# scope:recipient = { has_trait = zealous }
# }
# ## Become detractor.
# ### -- Cynical.
# modifier = {
# add = 25
# desc = ASK_FOR_CONVERSION_RECIPIENT_IS_CYNICAL
# scope:actor = { has_trait = fp3_struggle_detractor }
# scope:recipient = { has_trait = cynical }
# }
# ## Neutral.
# ### ++ Fickle.
# modifier = {
# add = 25
# desc = ASK_FOR_CONVERSION_RECIPIENT_IS_FICKLE
# scope:recipient = { has_trait = fickle }
# }
# ### + Disloyal.
# modifier = {
# add = 15
# desc = HAS_LOYAL_TRAIT
# scope:recipient = { has_trait = disloyal }
# }
# ### - Loyal.
# modifier = {
# add = 15
# desc = HAS_DISLOYAL_TRAIT
# scope:recipient = { has_trait = loyal }
# }
# ### -- Stubborn.
# modifier = {
# add = 25
# desc = ASK_FOR_CONVERSION_RECIPIENT_IS_STUBBORN
# scope:recipient = { has_trait = stubborn }
# }
# # Diplomacy
# ## Scope:actor's for convincing
# modifier = {
# add = {
# value = scope:actor.diplomacy
# multiply = 5
# }
# desc = INTERACTION_DIPLOMACY_ACTOR
# }
# ## Scope:recipient's for resisting
# modifier = {
# add = {
# value = scope:recipient.diplomacy
# multiply = -3
# }
# desc = INTERACTION_DIPLOMACY_RECIPIENT
# }
# }
#
# cost = {
# prestige = medium_prestige_value
# }
#
# # Use hook
# send_option = {
# flag = hook
# is_valid = {
# scope:actor = {
# has_usable_hook = scope:recipient
# }
# }
# localization = GENERIC_SPEND_A_HOOK
# }
#
# on_accept = {
# # Use our hook if we have to.
# 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 = medium_unity_gain
# DESC = clan_unity_changed_alignment.desc
# REVERSE_NON_HOUSE_TARGET = no
# }
# # Run the actual effects.
# scope:actor = {
# send_interface_toast = {
# type = event_toast_effect_good
# title = recipient_joined_your_side_title
# left_icon = scope:recipient
#
# scope:recipient = {
# if = {
# limit = { scope:actor = { has_trait = fp3_struggle_detractor } }
# if = {
# limit = { has_trait = fp3_struggle_supporter }
# remove_trait = fp3_struggle_supporter
# }
# add_trait_force_tooltip = fp3_struggle_detractor
#
# # Catalyst
# hidden_effect = {
# if = {
# limit = {
# scope:actor = {
# any_character_struggle = {
# involvement = involved
# phase_has_catalyst = catalyst_turn_supporter_into_detractor
# }
# }
# }
# every_character_struggle = {
# involvement = involved
# activate_struggle_catalyst = {
# catalyst = catalyst_turn_supporter_into_detractor
# character = scope:actor
# }
# log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_turn_supporter_into_detractor }
# }
# }
# }
# }
# else = {
# if = {
# limit = { has_trait = fp3_struggle_detractor }
# remove_trait = fp3_struggle_detractor
# }
# add_trait_force_tooltip = fp3_struggle_supporter
#
# # Catalyst
# hidden_effect = {
# if = {
# limit = {
# scope:actor = {
# any_character_struggle = {
# involvement = involved
# phase_has_catalyst = catalyst_turn_detractor_into_supporter
# }
# }
# }
# every_character_struggle = {
# involvement = involved
# activate_struggle_catalyst = {
# catalyst = catalyst_turn_detractor_into_supporter
# character = scope:actor
# }
# log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_turn_detractor_into_supporter }
# }
# }
# }
# }
# }
# }
# }
# # Aaaaand flag scope:recipient as on cooldown for a while.
# scope:recipient = {
# set_variable = {
# name = fp3_change_allegiance_recipient_cooldown
# years = 20
# }
# }
# }
#
# on_decline = {
# add_clan_unity_interaction_effect = {
# CHARACTER = scope:actor
# TARGET = scope:recipient
# VALUE = medium_unity_loss
# DESC = clan_unity_refused_alignment.desc
# REVERSE_NON_HOUSE_TARGET = no
# }
# scope:actor = {
# if = {
# limit = {
# scope:actor = { has_trait = fp3_struggle_detractor }
# }
# send_interface_toast = {
# type = event_toast_effect_bad
# title = recipient_refused_to_join_your_side_title
# left_icon = scope:recipient
# progress_towards_rival_effect = {
# REASON = rival_rejected_switching_to_struggle_detractor
# CHARACTER = scope:recipient
# OPINION = default_rival_opinion
# }
# }
# }
# else = {
# send_interface_toast = {
# type = event_toast_effect_bad
# title = recipient_refused_to_join_your_side_title
# left_icon = scope:recipient
# progress_towards_rival_effect = {
# REASON = rival_rejected_switching_to_struggle_supporter
# CHARACTER = scope:recipient
# OPINION = default_rival_opinion
# }
# }
# }
# }
# scope:recipient = {
# set_variable = {
# name = fp3_change_allegiance_refused_cooldown
# years = 20
# }
# }
# }
# ai_frequency_by_tier = {
# barony = 0
# county = 0
# duchy = 120
# kingdom = 120
# empire = 120
# hegemony = 120
# }
#
# ai_targets = {
# ai_recipients = liege
# ai_recipients = neighboring_rulers
# ai_recipients = peer_vassals
# ai_recipients = vassals
# ai_recipients = top_realm_domicile_owners
# max = 10
# }
#
# ai_will_do = {
# base = -50 # Let's limit it to specific character to avoid pure chaos
#
# ###############
# ## BASE
# ###############
#
# # AI Values
# ## Detractors run off of lacking zeal
# modifier = {
# add = {
# value = ai_zeal
# multiply = -2
# }
# has_trait = fp3_struggle_detractor
# ai_zeal <= -1
# }
# ## Supporters run off of turbo-charged zeal
# modifier = {
# add = {
# value = ai_zeal
# multiply = 2
# }
# has_trait = fp3_struggle_supporter
# ai_zeal >= 1
# }
#
# # The caliph wants to use this all the time.
# modifier = {
# has_title = title:d_sunni
# add = 200
# }
#
# ###############
# ## TRAITS
# ###############
#
# # schemer
# modifier = {
# add = 15
# has_trait = schemer
# }
#
# # theologian
# modifier = {
# add = 25
# has_trait = theologian
# }
#
# # intrigue education
# modifier = {
# add = 15
# has_trait = education_intrigue
# }
#
# # learning education
# modifier = {
# add = 25
# has_trait = education_learning
# }
#
# ################
# ## RELATIONSHIP
# ################
#
# # more likely to do it against friend and lover
# modifier = {
# add = 50
# scope:recipient = {
# OR = {
# has_relation_friend = scope:actor
# has_relation_lover = scope:actor
# has_relation_soulmate = scope:actor
# has_relation_best_friend = scope:actor
# }
# }
# }
#
# # boost against liege for Ambitious
# modifier = {
# add = 50
# scope:actor = {
# has_trait = ambitious
# is_vassal_of = scope:recipient
# }
# }
#
# # never target your rivals
# modifier = {
# add = -1000
# scope:recipient = {
# OR = {
# has_relation_rival = scope:actor
# has_relation_nemesis = scope:actor
# }
# }
# }
#
# ################
# ## STRUGGLE
# ################
#
# modifier = {
# add = 100
# OR = {
# AND = {
# scope:recipient = { has_trait = fp3_struggle_supporter }
# scope:actor = {
# has_trait = fp3_struggle_detractor
# any_character_struggle = {
# involvement = involved
# phase_has_catalyst = catalyst_turn_supporter_into_detractor
# }
# }
# }
# AND = {
# scope:recipient = { has_trait = fp3_struggle_detractor }
# scope:actor = {
# has_trait = fp3_struggle_supporter
# any_character_struggle = {
# involvement = involved
# phase_has_catalyst = catalyst_turn_detractor_into_supporter
# }
# }
# }
# }
# }
# }
#}
#
#
####################################
## Request honorary titles
####################################
#fp3_request_honorary_titles_interaction = {
# interface_priority = 30
# category = interaction_category_religion
# common_interaction = yes
# desc = fp3_request_honorary_titles_interaction_desc
# icon = honorary_titles
#
# greeting = positive
#
# auto_accept = yes
#
# cooldown = { years = 10 }
#
# cost = {
# piety = {
# value = major_piety_value
# if = {
# limit = { # cheaper for the actual liege
# scope:actor = {
# any_vassal = {
# any_held_title = {
# this = title:d_sunni
# }
# }
# }
# }
# subtract = medium_piety_value
# }
# }
# }
#
# is_available = {
# trigger_if = {
# limit = { is_ai = yes }
# any_vassal = {
# any_held_title = {
# this = title:d_sunni
# }
# }
# }
# }
#
# is_shown = {
# fp3_reward_from_vassalization_ending = yes
# }
#
# is_valid = {
# # honorary titles should be unique
# custom_tooltip = {
# text = one_of_the_title_is_available_tt
# scope:actor = {
# house ?= {
# NAND = {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_intrigue_modifier
# }
# any_house_member = {
# has_character_modifier = fp3_honorary_title_scholarship_modifier
# }
#
# any_house_member = {
# has_character_modifier = fp3_honorary_title_stewardship_modifier
# }
# any_house_member = {
# has_character_modifier = fp3_honorary_title_diplomacy_modifier
# }
# any_house_member = {
# has_character_modifier = fp3_honorary_title_piety_modifier
# }
# any_house_member = {
# has_character_modifier = fp3_honorary_title_prestige_modifier
# }
# any_house_member = {
# has_character_modifier = fp3_honorary_title_martial_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = intrigue_option
# localization = fp3_honorary_title_intrigue_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_intrigue_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = scholarship_option
# localization = fp3_honorary_title_scholarship_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_scholarship_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = stewardship_option
# localization = fp3_honorary_title_stewardship_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_stewardship_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = diplomacy_option
# localization = fp3_honorary_title_diplomacy_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_diplomacy_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = piety_option
# localization = fp3_honorary_title_piety_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_piety_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = prestige_option
# localization = fp3_honorary_title_prestige_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_prestige_modifier
# }
# }
# }
# }
# }
# }
#
# send_option = {
# flag = martial_option
# localization = fp3_honorary_title_martial_modifier
# is_valid = {
# NOT = {
# scope:actor = {
# house ?= {
# any_house_member = {
# has_character_modifier = fp3_honorary_title_martial_modifier
# }
# }
# }
# }
# }
# }
#
# on_accept = {
# scope:actor = {
# send_interface_toast = {
# type = event_toast_effect_good
# title = new_honorary_title_acquired_title
# left_icon = scope:recipient
#
# switch = {
# trigger = yes
# scope:intrigue_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_intrigue_modifier
# }
# }
# scope:scholarship_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_scholarship_modifier
# }
# }
# scope:stewardship_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_stewardship_modifier
# }
# }
# scope:diplomacy_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_diplomacy_modifier
# }
# }
# scope:piety_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_piety_modifier
# }
# }
# scope:prestige_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_prestige_modifier
# }
# }
# scope:martial_option = {
# add_character_modifier = {
# modifier = fp3_honorary_title_martial_modifier
# }
# }
# }
# }
# }
# }
#
# ai_frequency_by_tier = {
# barony = 0
# county = 0
# duchy = 0
# kingdom = 60
# empire = 60
# hegemony = 60
# }
#
# ai_targets = {
# ai_recipients = vassals
# }
#
# ai_will_do = {
# base = 100
# }
#}
#
#
####################################
## Request house unity interference
####################################
#fp3_request_house_unity_change_interaction = {
# interface_priority = 30
# category = interaction_category_religion
# common_interaction = yes
# desc = fp3_request_house_unity_change_interaction_desc
# icon = unity_harmonious
#
# greeting = positive
#
#
# auto_accept = yes
#
# cooldown = { years = 10 }
#
# cost = {
# piety = medium_piety_value
# }
#
# is_available = {
# government_has_flag = government_is_clan
# trigger_if = {
# limit = { is_ai = yes }
# any_vassal = {
# any_held_title = {
# this = title:d_sunni
# }
# }
# }
# }
#
# is_shown = {
# fp3_reward_from_vassalization_ending = yes
# }
#
# is_valid = {
# # only valid for the actual liege
# custom_tooltip = {
# text = you_are_the_liege_of_the_caliph_tt
# scope:actor = {
# is_liege_or_above_of = scope:recipient
# }
# scope:recipient = {
# any_held_title = {
# this = title:d_sunni
# }
# }
# }
# }
#
# send_option = {
# flag = unity_gain
# localization = INCREASE_HOUSE_UNITY
# starts_enabled = { always = yes }
# }
#
# send_option = {
# flag = unity_loss
# localization = DECREASE_HOUSE_UNITY
# }
#
# on_accept = {
# scope:recipient = { save_scope_as = unity_target }
# scope:actor = {
# save_scope_as = unity_character
# house = {
# add_unity_value = {
# value = {
# if = {
# limit = { scope:unity_gain = yes }
# add = medium_unity_gain
# }
# else_if = {
# limit = { scope:unity_loss = yes }
# add = medium_unity_loss
# }
# }
# character = scope:actor
# desc = clan_unity_caliph_interfered_with_unity.desc
# }
# }
# }
# }
#
# ai_frequency_by_tier = {
# barony = 0
# county = 0
# duchy = 0
# kingdom = 60
# empire = 60
# hegemony = 60
# }
#
# ai_targets = {
# # For the AI, we limit it to neighboring_rulers
# ai_recipients = vassals
# }
#
# ai_will_do = {
# base = 100
# }
#}