N3OW/common/character_interactions/00_fp3_interactions.txt

2231 lines
51 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_shown = {
NOT = { 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_potential = {
is_physically_able = yes
}
ai_targets = {
ai_recipients = neighboring_rulers
}
ai_frequency = 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_shown = {
scope:actor = {
has_trait = fp3_struggle_detractor
any_character_struggle = { is_struggle_type = persian_struggle }
}
scope:recipient = {
is_playable_character = yes
OR = {
any_character_struggle = { is_struggle_type = persian_struggle }
title:d_sunni.holder ?= this
}
is_independent_ruler = yes
is_ai = yes
}
NOT = { 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
in_diplomatic_range = scope:actor
OR = {
government_has_flag = government_is_clan
government_has_flag = government_is_tribal
}
culture = { has_cultural_pillar = heritage_turkic }
highest_held_title_tier >= tier_county
NOR = {
is_at_war_with = scope:actor
is_at_war_with = scope:recipient
is_allied_to = scope:recipient
has_truce = scope:recipient
this = scope:actor
this = scope:recipient
}
}
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
}
}
}
}
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 = {
any_realm_county = {
NOT = { 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 = {
NOT = { 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 = {
NOT = { this = scope:recipient.capital_county }
any_neighboring_county = {
any_county_province = { geographical_region = world_persian_empire }
NOT = {
holder.top_liege = prev.holder.top_liege
}
}
NOR = {
holder = scope:actor
holder = { is_vassal_or_below_of = scope:actor }
}
}
}
random_realm_county = {
limit = {
NOT = { this = scope:recipient.capital_county }
any_neighboring_county = {
any_county_province = { geographical_region = world_persian_empire }
NOT = {
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 = {
NOT = { this = scope:recipient.capital_county }
NOR = {
holder = scope:actor
holder = { is_vassal_or_below_of = scope:actor }
}
}
}
random_realm_county = {
limit = {
NOT = { 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
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
}
}
}
}
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 = -30
}
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_opinion_active }
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
}
# 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
}
}
#auto_accept = {
# scope:recipient = { is_ai = yes }
#}
can_send_despite_rejection = no
ai_frequency = 24
ai_targets = {
ai_recipients = neighboring_rulers
ai_recipients = liege
}
ai_potential = {
has_trait = fp3_struggle_detractor
is_at_war = no
NOT = { ai_has_economical_boom_personality = yes }
ai_greed <= 25
highest_held_title_tier > tier_barony
NOT = { culture = { has_cultural_pillar = heritage_turkic } }
}
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_shown = {
has_fp3_dlc_trigger = yes
scope:actor = {
NOT = { this = scope:recipient }
government_has_flag = government_is_clan
}
scope:actor.house ?= {
house_head = scope:recipient
OR = {
has_house_unity_parameter = unity_can_challenge_house_head
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 }
}
}
}
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: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 = {
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
}
}
}
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
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 }
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 }
}
desc = AI_AVOID_LETHAL_DUEL_WITH_FAMILY
}
opinion_modifier = {
opinion_target = scope:actor
multiplier = 0.5
}
}
ai_frequency = 24
ai_target_quick_trigger = {
adult = yes
}
ai_potential = {
NOR = {
has_trait = craven
has_trait = content
}
government_has_flag = government_is_clan
is_physically_able = 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
NOR = {
AND = {
is_independent_ruler = yes
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
}
}
}
# Stop AI constantly challenging players
modifier = {
scope:recipient = { has_character_flag = ai_cooldown_house_head_challenge_flag }
add = -1000
}
# 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
}
}
}
###################################
# 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
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_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
NOT = { scope:recipient = scope:actor }
scope:actor = {
any_character_struggle = { is_struggle_type = persian_struggle }
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 = 120
ai_potential = {
primary_title.tier >= tier_duchy
OR = {
has_trait = fp3_struggle_detractor
has_trait = fp3_struggle_supporter
}
}
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 = { # todo_cd_polish add different option to pick different titles
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
any_vassal = {
any_held_title = {
this = title:d_sunni
}
}
}
subtract = medium_piety_value
}
}
}
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 = 60
ai_potential = {
any_vassal = {
any_held_title = {
this = title:d_sunni
}
}
}
ai_targets = {
# For the AI, we limit it to neighboring_rulers
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_shown = {
fp3_reward_from_vassalization_ending = yes
scope:actor = {
government_has_flag = government_is_clan
}
}
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 = root
desc = clan_unity_caliph_interfered_with_unity.desc
}
}
}
}
ai_frequency = 60
ai_potential = {
any_vassal = {
any_held_title = {
this = title:d_sunni
}
}
}
ai_targets = {
# For the AI, we limit it to neighboring_rulers
ai_recipients = vassals
}
ai_will_do = {
base = 100
}
}