6048 lines
140 KiB
Text
6048 lines
140 KiB
Text
#Interactions relating to tributary relationship management
|
|
|
|
### Become Tributary - bilateral
|
|
# actor = offerer / potential tributary
|
|
# recipient = receiver / potential suzerain
|
|
|
|
become_tributary_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = no
|
|
icon = become_tributary_interaction
|
|
|
|
desc = become_tributary_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:recipient = {
|
|
is_independent_ruler = yes # while it's possible for tributaries to have their own tributaries, it should not be possible to create a tributary relationship with a non-independent ruler
|
|
NOR = {
|
|
this = scope:actor
|
|
this = scope:actor.suzerain
|
|
top_suzerain = scope:actor
|
|
}
|
|
can_have_tributaries_trigger = yes
|
|
}
|
|
scope:actor = {
|
|
trigger_if = {
|
|
limit = { is_ai = yes }
|
|
current_military_strength < scope:recipient.one_and_a_half_times_current_military_strength
|
|
primary_title.tier < scope:recipient.primary_title.tier
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
#These triggers need to match the Tribute Mission Decision
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = { primary_title.tier = tier_hegemony }
|
|
}
|
|
custom_tooltip = {
|
|
text = become_tributary_interaction_hegemony_not_neighbor_tt
|
|
scope:actor = {
|
|
OR = {
|
|
is_tributary_or_independent_neighbor_of_hegemon_trigger = { HEGEMON = h_china }
|
|
is_tributary_or_independent_neighbor_of_hegemon_trigger = { HEGEMON = h_roman_empire }
|
|
is_tributary_or_independent_neighbor_of_hegemon_trigger = { HEGEMON = h_eastern_roman_empire }
|
|
is_tributary_or_independent_neighbor_of_hegemon_trigger = { HEGEMON = h_dar_al_islam }
|
|
is_tributary_or_independent_neighbor_of_hegemon_trigger = { HEGEMON = h_india }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Mandalas can into Mandalas and Tributaries
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = { government_has_flag = government_is_mandala }
|
|
scope:actor = {
|
|
OR = {
|
|
government_has_flag = government_is_tribal
|
|
government_has_flag = government_is_mandala
|
|
}
|
|
}
|
|
}
|
|
always = yes
|
|
}
|
|
#Rulers who aren't Mandala or Tribal should really only be interested if you're big enough
|
|
trigger_else = {
|
|
custom_tooltip = {
|
|
text = offer_tributarization_interaction_aibehavior_not_higher_rank
|
|
scope:recipient.highest_held_title_tier >= scope:actor.highest_held_title_tier
|
|
}
|
|
}
|
|
scope:actor = {
|
|
is_physically_able = yes
|
|
is_travelling = no
|
|
NOT = { exists = involved_activity }
|
|
is_confederation_member = no
|
|
is_at_war = no
|
|
}
|
|
}
|
|
|
|
needs_confirmation = {
|
|
scope:recipient = { highest_held_title_tier < tier_hegemony } # acknowledging a hegemon requires a tribute mission; open the decision UI instead of confirming acceptance
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = BECOME_TRIBUTARY_INTERACTION_NOTIFICATION
|
|
|
|
# Low starting obligations
|
|
send_option = {
|
|
flag = low_obligations
|
|
localization = low_tributary_obligations
|
|
}
|
|
|
|
# Medium starting obligations
|
|
send_option = {
|
|
flag = normal_obligations
|
|
localization = normal_tributary_obligations
|
|
starts_enabled = { always = yes }
|
|
}
|
|
|
|
# High starting obligations
|
|
send_option = {
|
|
flag = high_obligations
|
|
localization = high_tributary_obligations
|
|
}
|
|
|
|
send_options_exclusive = yes
|
|
|
|
on_send = {
|
|
if = {
|
|
limit = { scope:recipient = { highest_held_title_tier >= tier_hegemony } }
|
|
if = {
|
|
limit = { scope:recipient.primary_title = title:h_china }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_china
|
|
player = scope:actor
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:recipient.primary_title = title:h_roman_empire }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_roman_empire
|
|
player = scope:actor
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:recipient.primary_title = title:h_eastern_roman_empire }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_eastern_roman_empire
|
|
player = scope:actor
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:recipient.primary_title = title:h_dar_al_islam }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_dar_al_islam
|
|
player = scope:actor
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:recipient.primary_title = title:h_india }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_india
|
|
player = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
if = {
|
|
limit = { scope:recipient = { highest_held_title_tier < tier_hegemony } }
|
|
scope:actor = {
|
|
if = {
|
|
limit = { is_tributary = yes }
|
|
mandala_end_tributary_with_notification_effect = yes
|
|
}
|
|
}
|
|
start_tributary_interaction_effect = {
|
|
TRIBUTARY = scope:actor
|
|
SUZERAIN = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
trigger_event = char_interaction.0360
|
|
}
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { scope:high_obligations = yes }
|
|
add_opinion = {
|
|
modifier = tributary_volunteered_opinion
|
|
target = scope:actor
|
|
opinion = 20
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:normal_obligations = yes }
|
|
add_opinion = {
|
|
modifier = tributary_volunteered_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
|
|
consume_all_criminal_reasons_effect = {
|
|
LIEGE = scope:recipient
|
|
CRIMINAL = scope:actor
|
|
}
|
|
}
|
|
}
|
|
else = {} # Do nothing if the recipient is hegemony-tier or higher; these require a tribute mission to establish
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
trigger_event = char_interaction.0361
|
|
}
|
|
}
|
|
|
|
is_available = {
|
|
NOT = { government_has_flag = cannot_be_vassal_or_liege }
|
|
top_liege = this # You have to be independent - This check exists to prevent a lot of edge-cases where you can change liege
|
|
is_confederation_member = no
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers_including_tributary_borders
|
|
max = 5
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = neighboring_top_overlords_connected_by_land
|
|
}
|
|
|
|
# this might appear fairly frequent but is necessary in order to ensure AI can respond to sudden threats on their borders
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 6
|
|
duchy = 6
|
|
kingdom = 0
|
|
empire = 0
|
|
hegemony = 0
|
|
}
|
|
|
|
force_notification = yes
|
|
|
|
ai_will_do = {
|
|
base = -50
|
|
#MINOR MODIFIERS
|
|
ai_military_threat_modifier_with_cbs = {
|
|
SENDER = scope:actor
|
|
RECEIVER = scope:recipient
|
|
MULTIPLIER = 1
|
|
}
|
|
#Obedience
|
|
modifier = {
|
|
is_obedient_to = scope:recipient
|
|
add = 40
|
|
desc = obedient_interaction_reason
|
|
}
|
|
# Rivalry modifier
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
has_relation_rival = scope:recipient
|
|
NOT = { has_relation_nemesis = scope:recipient }
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
# Nemesis modifier
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
has_relation_nemesis = scope:recipient
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
# Different faith, no pluralism
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOR = { # Of two different faiths AND the potential vassal's faith is not pluralistic.
|
|
faith = scope:recipient.faith
|
|
faith = { has_doctrine = doctrine_pluralism_pluralistic }
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -25
|
|
if = {
|
|
limit = {
|
|
scope:actor.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:recipient.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:recipient.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
}
|
|
}
|
|
# Cultural Acceptance
|
|
modifier = {
|
|
scope:actor = {
|
|
NOT = { # cultural condition below doesn't have to apply if both actor and recipient have nomadic_philosophy
|
|
has_trait = nomadic_philosophy
|
|
scope:recipient = { has_trait = nomadic_philosophy }
|
|
}
|
|
NOT = { has_same_culture_as = scope:recipient }
|
|
culture = {
|
|
cultural_acceptance = { target = scope:recipient.culture value < 50 }
|
|
}
|
|
}
|
|
add = {
|
|
add = -10
|
|
if = {
|
|
limit = { scope:actor.culture = { has_cultural_pillar = ethos_bellicose } }
|
|
add = -10
|
|
}
|
|
}
|
|
desc = cultural_acceptance_interaction_reason
|
|
}
|
|
# Same language
|
|
modifier = {
|
|
add = 5
|
|
desc = speaks_same_language_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
knows_language_of_culture = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
|
|
### MANDALA ###
|
|
#Added threshold for Mandalas who already are Tributaries
|
|
modifier = {
|
|
scope:recipient = { is_tributary = yes }
|
|
NOT = { scope:recipient.suzerain = scope:actor }
|
|
scope:recipient.suzerain = { primary_title.tier = tier_duchy }
|
|
add = -25
|
|
desc = already_tributary_threshold
|
|
}
|
|
modifier = {
|
|
scope:recipient = { is_tributary = yes }
|
|
NOT = { scope:recipient.suzerain = scope:actor }
|
|
scope:recipient.suzerain = { primary_title.tier = tier_kingdom }
|
|
add = -50
|
|
desc = already_tributary_threshold
|
|
}
|
|
modifier = {
|
|
scope:recipient = { is_tributary = yes }
|
|
NOT = { scope:recipient.suzerain = scope:actor }
|
|
scope:recipient.suzerain = { primary_title.tier >= tier_empire }
|
|
add = -75
|
|
desc = already_tributary_threshold
|
|
}
|
|
#A devaraja should never willingly _offer_ to become a tributary
|
|
modifier = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_mandala
|
|
OR = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
has_mandala_aspect_trigger = yes
|
|
has_variable = mandala_godking
|
|
}
|
|
}
|
|
add = -1000
|
|
}
|
|
#I am a Tribal! ... and you're a Mandala
|
|
modifier = {
|
|
scope:actor = { government_has_flag = government_is_tribal }
|
|
scope:recipient = { government_has_flag = government_is_mandala }
|
|
add = 30
|
|
desc = actor_is_a_tribal_government
|
|
}
|
|
#Mandala Piety Level - this is only checked if you are not a Devaraja/haven't got a capital temple complex - Otherwise we use Radiance
|
|
mandala_devaraja_piety_level_add_weight_modifier = { DEVARAJA = scope:recipient }
|
|
#Recipient Radiance - Radiance Value x2
|
|
modifier = {
|
|
scope:recipient = { has_unruined_mandala_capital_trigger = yes }
|
|
add = {
|
|
value = scope:recipient.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
desc = recipient_positive_mandala_radiance
|
|
}
|
|
#Tributary Realm Size
|
|
subject_realm_size_lose_weight_modifier = {
|
|
DEVARAJA = scope:actor
|
|
SUBJECT = scope:recipient
|
|
}
|
|
#Devaraja Mandala Capital
|
|
mandala_devaraja_capital_add_weight_modifier = {
|
|
DEVARAJA = scope:actor
|
|
TRIBUTARY = scope:recipient
|
|
}
|
|
#Are they independent but a neighboring Mandala more Radiant than you?
|
|
#We reduce acceptance by the radiance difference x2
|
|
modifier = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = { has_unruined_mandala_capital_trigger = yes }
|
|
scope:actor = {
|
|
is_tributary = no
|
|
OR = {
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
OR = {
|
|
any_neighboring_top_liege_realm_owner = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
government_has_flag = government_is_mandala
|
|
NOR = {
|
|
this = scope:recipient
|
|
this = scope:actor
|
|
}
|
|
save_temporary_scope_as = suzerain_comparison
|
|
}
|
|
any_neighboring_top_suzerain_realm_owner = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
government_has_flag = government_is_mandala
|
|
NOR = {
|
|
this = scope:recipient
|
|
this = scope:actor
|
|
}
|
|
save_temporary_scope_as = suzerain_comparison
|
|
}
|
|
}
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
add = {
|
|
#Double it as we would with your own radiance impact above and reduce acceptance by that value
|
|
value = {
|
|
value = scope:suzerain_comparison.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
multiply = -1
|
|
}
|
|
desc = other_devaraja_radiance
|
|
}
|
|
#Prosperity Decree
|
|
modifier = {
|
|
desc = is_prosperity_mandala_tributary
|
|
scope:actor = {
|
|
is_tributary = yes
|
|
suzerain = { has_realm_law_flag = tributaries_less_likely_to_break_free }
|
|
}
|
|
add = 15
|
|
}
|
|
#SEA legacy
|
|
modifier = {
|
|
desc = tgp_sea_legacy_2_modifier_desc
|
|
scope:recipient = {
|
|
dynasty ?= {
|
|
has_dynasty_perk = tgp_sea_legacy_2
|
|
}
|
|
}
|
|
add = tgp_sea_legacy_tributary_acceptance_value
|
|
}
|
|
# I am higher rank than you
|
|
modifier = {
|
|
desc = tributary_interaction_aibehavior_recipient_tier_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
highest_held_title_tier > scope:recipient.highest_held_title_tier
|
|
}
|
|
}
|
|
add = {
|
|
value = scope:actor.highest_held_title_tier
|
|
subtract = scope:recipient.highest_held_title_tier
|
|
multiply = 50
|
|
multiply = -1
|
|
}
|
|
}
|
|
# Same Faith and Actor is a god King
|
|
modifier = {
|
|
desc = embrace_as_tributary_interaction_same_faith
|
|
scope:recipient = {
|
|
faith = scope:actor.faith
|
|
has_unruined_mandala_capital_trigger = yes
|
|
}
|
|
add = {
|
|
value = 10
|
|
}
|
|
}
|
|
# Different faith, no pluralism.
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
faith = {
|
|
NOR = { # Of two different faiths AND the potential tributary's faith is not pluralistic
|
|
this = scope:actor.faith
|
|
has_doctrine = doctrine_pluralism_pluralistic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -25
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
}
|
|
}
|
|
# Different religion Family - We prefer god kings to be vaguely within our own world view
|
|
modifier = {
|
|
desc = embrace_as_tributary_interaction_other_religion_family
|
|
scope:actor = {
|
|
NOT = { government_has_flag = government_is_wanua }
|
|
}
|
|
scope:recipient.faith.religion = {
|
|
switch = {
|
|
trigger = is_in_family
|
|
rf_pagan = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_pagan } }
|
|
}
|
|
rf_sinitic = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_sinitic } }
|
|
}
|
|
rf_eastern = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_eastern } }
|
|
}
|
|
rf_abrahamic = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_abrahamic } }
|
|
}
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
# They are not Mandalas nor Tribes
|
|
modifier = {
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOR = {
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -50
|
|
#Would cause a lot of issues
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
OR = {
|
|
government_allows = administrative
|
|
government_is_japanese_trigger = yes
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
}
|
|
subtract = 950 #Some governments are especially unlikely to agree
|
|
}
|
|
#Not radiant enough
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_mandala
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value <= 40
|
|
}
|
|
}
|
|
subtract = 100
|
|
}
|
|
}
|
|
}
|
|
#Far away
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
trigger_if = { #Islands we can get farther away
|
|
limit = {
|
|
scope:actor.capital_county = { is_coastal_county = yes }
|
|
any_sub_realm_county = { is_coastal_county = yes }
|
|
}
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= squared_distance_huge } }
|
|
}
|
|
trigger_else = { #Inland is harder
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= squared_distance_major } }
|
|
}
|
|
}
|
|
add = -250
|
|
}
|
|
#Legitimacy
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -15
|
|
scope:recipient = {
|
|
has_legitimacy_flag = slightly_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -25
|
|
scope:recipient = {
|
|
has_legitimacy_flag = reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -50
|
|
scope:recipient = {
|
|
has_legitimacy_flag = very_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -75
|
|
scope:recipient = {
|
|
has_legitimacy_flag = massively_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 25
|
|
scope:recipient = {
|
|
has_legitimacy_flag = increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 50
|
|
scope:recipient = {
|
|
has_legitimacy_flag = very_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 75
|
|
scope:recipient = {
|
|
has_legitimacy_flag = extra_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
# OPINION INFLUENCE
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
who = scope:actor
|
|
opinion_target = scope:recipient
|
|
multiplier = 1
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 5
|
|
ai_max_reply_days = 10
|
|
|
|
auto_accept = { scope:recipient = { highest_held_title_tier >= tier_hegemony } } # Hegemons always "accepts", but this only opens the Tribute Mission UI
|
|
|
|
ai_accept = {
|
|
base = 50
|
|
|
|
modifier = {
|
|
desc = interaction_is_nomadic
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
add = 100
|
|
}
|
|
|
|
modifier = { # Can't flee the conqueror this way
|
|
add = -1000
|
|
desc = NO_FRIVOLOUS_ACTIVITIES_REASON
|
|
scope:actor = { has_variable = conqueror }
|
|
}
|
|
|
|
modifier = { # Wide difference in rank
|
|
desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
tier_difference = {
|
|
target = scope:recipient
|
|
value > 1
|
|
}
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
modifier = { # Distant Realm.
|
|
desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
|
|
}
|
|
}
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value < squared_distance_major } }
|
|
}
|
|
add = -15
|
|
}
|
|
modifier = { # Remote Realm.
|
|
desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
|
|
}
|
|
}
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= squared_distance_major } }
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
# MINOR
|
|
modifier = { # Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
modifier = { # Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { # Same Dynasty modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
|
|
# PERSONALITY
|
|
ai_value_modifier = {
|
|
ai_greed = 0.75
|
|
min = 0
|
|
}
|
|
|
|
# OPINION INFLUENCE
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
trigger = {
|
|
NOT = {
|
|
scope:recipient = { government_has_flag = government_is_mandala }
|
|
}
|
|
}
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1
|
|
}
|
|
|
|
# CONTRACT OPTIONS
|
|
modifier = {
|
|
add = -25
|
|
scope:low_obligations = yes
|
|
desc = CONTRACT_LOW_TRIBUTARY_TAXES_REASON
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
scope:high_obligations = yes
|
|
desc = CONTRACT_HIGH_TRIBUTARY_TAXES_REASON
|
|
}
|
|
}
|
|
}
|
|
|
|
### Demand Tributary - bilateral
|
|
# actor = offerer / potential suzerain
|
|
# recipient = receiver / potential tributary
|
|
|
|
demand_tributary_interaction = {
|
|
category = interaction_category_diplomacy
|
|
common_interaction = yes
|
|
icon = demand_tributary_interaction
|
|
|
|
desc = demand_tributary_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
NOT = {
|
|
this = scope:recipient
|
|
top_suzerain = scope:recipient.top_suzerain # ensures the actor and recipient is not already in the same "suzerain bloc"
|
|
}
|
|
can_get_tributaries_peacefully_trigger = yes
|
|
|
|
highest_held_title_tier < tier_hegemony # hegemonies get tributaries from exacting tribute
|
|
|
|
#Mandala Embraces; not Demand
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = { government_has_flag = government_is_mandala }
|
|
}
|
|
always = no
|
|
}
|
|
trigger_else = { can_get_tributaries_peacefully_trigger = yes }
|
|
#Should be neighboring to increase growth organically
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:recipient
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
is_ai = yes
|
|
}
|
|
current_military_strength >= scope:recipient.one_and_a_half_times_current_military_strength
|
|
primary_title.tier >= scope:recipient.primary_title.tier
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
highest_held_title_tier >= tier_county
|
|
is_independent_ruler = yes # target cannot be a vassal
|
|
NOR = {
|
|
government_has_flag = cannot_be_vassal_or_liege
|
|
government_has_flag = government_is_mandala
|
|
}
|
|
}
|
|
# Temujin cannot make Jamukha his subject once he leaves him
|
|
NOT = {
|
|
scope:actor = {
|
|
has_variable = had_mpo_temujin_flavor_0010
|
|
var:had_mpo_temujin_flavor_0010 ?= scope:recipient
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
NOT = { has_truce = scope:actor }
|
|
is_physically_able = yes
|
|
is_travelling = no
|
|
NOT = { exists = involved_activity }
|
|
}
|
|
scope:recipient = {
|
|
is_tributary = no
|
|
is_at_war = no
|
|
custom_tooltip = {
|
|
text = demand_tributary_interaction_cooldown_active_tt
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
modifier = tributary_demanded_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
is_confederation_member = no
|
|
}
|
|
scope:actor = {
|
|
custom_tooltip = {
|
|
text = mpo_interaction_not_neighbouring_tt
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
prestige = minor_prestige_value
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = DEMAND_TRIBUTARY_INTERACTION_NOTIFICATION
|
|
|
|
on_accept = {
|
|
start_tributary_interaction_effect = {
|
|
TRIBUTARY = scope:recipient
|
|
SUZERAIN = scope:actor
|
|
}
|
|
scope:actor = {
|
|
trigger_event = char_interaction.0362
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
modifier = tributary_demanded_opinion # this opinion also acts as a built-in cooldown
|
|
target = scope:actor
|
|
}
|
|
}
|
|
consume_all_criminal_reasons_effect = {
|
|
LIEGE = scope:actor
|
|
CRIMINAL = scope:recipient
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
modifier = tributary_demanded_opinion # this opinion also acts as a built-in cooldown
|
|
target = scope:actor
|
|
}
|
|
custom_tooltip = demand_tributary_interaction_cooldown_tt
|
|
}
|
|
scope:actor = {
|
|
trigger_event = char_interaction.0363
|
|
if = {
|
|
limit = { highest_held_title_tier >= tier_hegemony }
|
|
add_legitimacy = -50
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_maybe = yes
|
|
|
|
ai_potential = {
|
|
highest_held_title_tier > 1 # at least a count-level ruler
|
|
is_independent_ruler = yes
|
|
|
|
# Hegemonic Tributary AIs never proactively demand tributaries, they wait for offers instead
|
|
NOT = { highest_held_title_tier >= tier_hegemony }
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers_including_tributary_borders
|
|
max = 5
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 12
|
|
duchy = 4
|
|
kingdom = 4
|
|
empire = 4
|
|
hegemony = 4
|
|
}
|
|
|
|
force_notification = yes
|
|
|
|
ai_will_do = { # AI will often do this to valid targets that aren't a military threat to them, especially if they're rich
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = {
|
|
add = scope:recipient.gold
|
|
divide = 10
|
|
max = 100
|
|
}
|
|
desc = accumulated_wealth_reason
|
|
}
|
|
|
|
ai_military_threat_modifier_with_cbs = {
|
|
SENDER = scope:actor
|
|
RECEIVER = scope:recipient
|
|
MULTIPLIER = -1
|
|
}
|
|
|
|
modifier = {
|
|
scope:recipient = { is_obedient_to = scope:actor }
|
|
add = 40
|
|
desc = obedient_interaction_reason
|
|
}
|
|
|
|
modifier = { # Generally don't try to tributarize those of higher rank than you
|
|
trigger = {
|
|
"scope:recipient.tier_difference(scope:actor)" > 1
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
modifier = { # Generally don't try to tributarize those of higher dominance than you
|
|
trigger = {
|
|
scope:recipient.dominance_value > scope:actor.dominance_value
|
|
}
|
|
add = -30
|
|
}
|
|
|
|
modifier = { # Remote Realm.
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
|
|
}
|
|
}
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= squared_distance_major } }
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = {
|
|
trigger = {
|
|
scope:recipient = { government_has_flag = government_is_true_herder }
|
|
}
|
|
add = 1000
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 5
|
|
ai_max_reply_days = 10
|
|
|
|
auto_accept = {
|
|
custom_tooltip = {
|
|
text = scheme_agent_aptitude.is_herder
|
|
scope:recipient = { government_has_flag = government_is_true_herder }
|
|
}
|
|
}
|
|
|
|
ai_accept = {
|
|
base = -60
|
|
|
|
modifier = { # Hegemonic Tributaries are gentler and kinder
|
|
trigger = {
|
|
scope:actor = { highest_held_title_tier >= tier_hegemony }
|
|
}
|
|
add = 100
|
|
desc = tributary_interaction_aibehavior_actor_hegemon_tier_tt
|
|
}
|
|
|
|
modifier = { # Special case for Confucian-style governments towards China
|
|
scope:actor = {
|
|
primary_title = title:h_china
|
|
}
|
|
government_has_flag = government_is_meritocratic
|
|
add = 25
|
|
desc = tributary_interaction_aibehavior_recipient_confucian_government_tt
|
|
}
|
|
|
|
modifier = { # Perk boost
|
|
desc = offer_vassalization_true_ruler_perk_tt
|
|
trigger = {
|
|
scope:actor = { has_perk = true_ruler_perk }
|
|
}
|
|
add = true_ruler_value
|
|
}
|
|
|
|
#Yurt bonuses
|
|
modifier = {
|
|
desc = tributary_yurt_02_domicile_building
|
|
trigger = {
|
|
scope:actor.domicile ?= { has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_1 }
|
|
}
|
|
add = 5
|
|
}
|
|
|
|
modifier = {
|
|
desc = tributary_yurt_02_domicile_building
|
|
trigger = {
|
|
scope:actor.domicile ?= { has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_2 }
|
|
}
|
|
add = 10
|
|
}
|
|
|
|
modifier = {
|
|
desc = tributary_yurt_02_domicile_building
|
|
trigger = {
|
|
scope:actor.domicile ?= { has_domicile_parameter = nomad_yurt_increased_tributary_acceptance_lvl_3 }
|
|
}
|
|
add = 15
|
|
}
|
|
|
|
modifier = { # the bolder they are, the less likely they will agree to this and vice versa
|
|
NOT = { ai_boldness = 0 }
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 2
|
|
}
|
|
desc = TRIBUTARY_BOLDNESS_REASON
|
|
}
|
|
|
|
modifier = { # the greedier they are, the less likely they will agree to this
|
|
ai_greed > 0
|
|
add = {
|
|
value = ai_greed
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_GREED_REASON
|
|
}
|
|
|
|
modifier = {
|
|
is_obedient_to = scope:actor
|
|
add = 40
|
|
desc = obedient_interaction_reason
|
|
}
|
|
|
|
modifier = {
|
|
scope:actor = { is_gurkhan = yes }
|
|
scope:recipient = { government_has_flag = government_is_nomadic }
|
|
add = 20
|
|
desc = gurkhan_interaction_reason
|
|
}
|
|
|
|
# Easier to make Tributaries during the Zud season
|
|
modifier = {
|
|
any_character_situation = {
|
|
any_situation_sub_region = {
|
|
has_sub_region_phase_parameter = the_great_steppe_easier_tributaries
|
|
any_situation_sub_region_participant_group = {
|
|
participant_group_type = nomad_rulers_capital
|
|
participant_group_has_character = scope:actor
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = { government_has_flag = government_is_nomadic }
|
|
add = 25
|
|
desc = zud_season_reason
|
|
}
|
|
|
|
# if the actor is a major threat to the recipient they're more likely to accept
|
|
ai_military_threat_modifier_with_cbs = {
|
|
SENDER = scope:recipient
|
|
RECEIVER = scope:actor
|
|
MULTIPLIER = 1
|
|
}
|
|
|
|
modifier = { # They are a King
|
|
desc = tributary_interaction_aibehavior_recipient_tier_tt
|
|
trigger = {
|
|
scope:recipient = { highest_held_title_tier = tier_kingdom }
|
|
}
|
|
add = -100
|
|
}
|
|
|
|
modifier = { # They are an Emperor or greater
|
|
desc = tributary_interaction_aibehavior_recipient_tier_tt
|
|
trigger = {
|
|
scope:recipient = { highest_held_title_tier >= tier_empire }
|
|
}
|
|
add = -200
|
|
}
|
|
|
|
modifier = { # Recipient has higher Dominance than the actor
|
|
desc = demand_tributary_interaction_aibehavior_dominance_tt
|
|
trigger = {
|
|
scope:actor = { government_has_flag = government_is_nomadic }
|
|
scope:recipient = { government_has_flag = government_is_nomadic }
|
|
scope:recipient.dominance_value > scope:actor.dominance_value
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
modifier = { # Actor has higher Dominance than the recipient
|
|
desc = demand_tributary_interaction_aibehavior_dominance_tt
|
|
trigger = {
|
|
scope:actor = { government_has_flag = government_is_nomadic }
|
|
scope:recipient = { government_has_flag = government_is_nomadic }
|
|
scope:actor.dominance_value > scope:recipient.dominance_value
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
modifier = { # Actor is a Meritocratic Khanate trying to tributarize a Nomad
|
|
desc = demand_tributary_interaction_steppe_admin
|
|
trigger = {
|
|
scope:actor = { government_has_flag = government_is_steppe_admin }
|
|
scope:recipient = { government_has_flag = government_is_nomadic }
|
|
}
|
|
add = 60 # This offsets base reluctance
|
|
}
|
|
|
|
# Non-nomadic
|
|
modifier = {
|
|
desc = AI_FILTHY_HORSE_LORD_REASON
|
|
trigger = {
|
|
scope:actor = { government_has_flag = government_is_nomadic }
|
|
scope:recipient = {
|
|
NOT = { government_has_flag = government_is_nomadic }
|
|
}
|
|
}
|
|
add = {
|
|
value = -50
|
|
if = {
|
|
limit = {
|
|
scope:recipient = { government_has_flag = government_is_tribal }
|
|
}
|
|
multiply = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# MINOR
|
|
modifier = { # Rivalry modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { # Nemesis modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -200
|
|
}
|
|
modifier = { # Same Dynasty modifier.
|
|
desc = offer_vassalization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
modifier = { # Different faith, no pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = { # faith condition below doesn't have to apply if both actor and recipient have nomadic_philosophy
|
|
has_trait = nomadic_philosophy
|
|
scope:recipient = { has_trait = nomadic_philosophy }
|
|
}
|
|
faith = {
|
|
NOR = { # Of two different faiths AND the potential vassal's faith is not pluralistic
|
|
this = scope:recipient.faith
|
|
has_doctrine = doctrine_pluralism_pluralistic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -25
|
|
if = {
|
|
limit = {
|
|
scope:actor.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:recipient.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:recipient.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Encircled
|
|
desc = offer_vassalization_interaction_aibehavior_encircled_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_neighboring_top_suzerain_realm_owner = {
|
|
this != scope:actor
|
|
}
|
|
}
|
|
NOT = {
|
|
any_realm_county = { is_coastal_county = yes }
|
|
}
|
|
}
|
|
}
|
|
add = 30
|
|
}
|
|
|
|
modifier = { # Cultural Acceptance
|
|
scope:actor = {
|
|
NOT = { # cultural condition below doesn't have to apply if both actor and recipient have nomadic_philosophy
|
|
has_trait = nomadic_philosophy
|
|
scope:recipient = { has_trait = nomadic_philosophy }
|
|
}
|
|
NOT = { has_same_culture_as = scope:recipient }
|
|
culture = {
|
|
cultural_acceptance = { target = scope:recipient.culture value < 50 }
|
|
}
|
|
}
|
|
add = {
|
|
add = -10
|
|
if = {
|
|
limit = { scope:actor.culture = { has_cultural_pillar = ethos_bellicose } }
|
|
add = -10
|
|
}
|
|
}
|
|
desc = cultural_acceptance_interaction_reason
|
|
}
|
|
|
|
modifier = { # Same language
|
|
add = 5
|
|
desc = speaks_same_language_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
knows_language_of_culture = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
|
|
#Legitimacy
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -15
|
|
scope:actor = {
|
|
has_legitimacy_flag = slightly_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -25
|
|
scope:actor = {
|
|
has_legitimacy_flag = reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -50
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -75
|
|
scope:actor = {
|
|
has_legitimacy_flag = massively_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 25
|
|
scope:actor = {
|
|
has_legitimacy_flag = increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 50
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 75
|
|
scope:actor = {
|
|
has_legitimacy_flag = extra_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
|
|
# OPINION INFLUENCE
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1
|
|
}
|
|
|
|
#Severed head acceptance
|
|
modifier = {
|
|
add = 200
|
|
scope:actor = {
|
|
has_variable = severed_head_vassalization
|
|
var:severed_head_vassalization = {
|
|
this = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
### Cease Paying Tribute - unilateral
|
|
### Name referenced in code! Don't change it without notification!
|
|
# actor = tributary
|
|
# recipient = suzerain
|
|
|
|
cease_paying_tribute_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = yes
|
|
use_diplomatic_range = no
|
|
icon = cease_paying_tributary_interaction
|
|
|
|
desc = cease_paying_tribute_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
this != scope:recipient
|
|
suzerain = scope:recipient
|
|
is_tributary = yes
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
is_physically_able = yes
|
|
is_travelling = no
|
|
NOT = { exists = involved_activity }
|
|
trigger_if = {
|
|
limit = {
|
|
OR = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:recipient
|
|
}
|
|
scope:recipient = {
|
|
is_landed = no
|
|
}
|
|
}
|
|
}
|
|
NOT = { has_truce = scope:recipient }
|
|
}
|
|
trigger_else = {
|
|
NOT = { has_truce = scope:recipient }
|
|
subject_can_break_tributary = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
prestige = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:recipient
|
|
}
|
|
scope:recipient = {
|
|
is_landed = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = minor_prestige_value
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = yes
|
|
on_accept = {
|
|
scope:actor = {
|
|
end_tributary = yes
|
|
if = {
|
|
limit = {
|
|
scope:recipient = { government_has_flag = government_is_mandala }
|
|
}
|
|
add_opinion = {
|
|
modifier = tributary_ceased_payments_opinion
|
|
target = scope:recipient
|
|
opinion = -100
|
|
}
|
|
}
|
|
|
|
}
|
|
scope:recipient = {
|
|
# Losing legitimacy if you are the Chinese Hegemon in the Dynastic Cycle Instability phase
|
|
if = {
|
|
limit = {
|
|
top_participant_group:dynastic_cycle ?= {
|
|
has_participant_group_parameter = dynastic_cycle_external_tributaries_vassals_increased_independence_desire
|
|
}
|
|
}
|
|
add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_loss }
|
|
}
|
|
|
|
#Some cooldown for Mandala rulers
|
|
if = {
|
|
limit = { government_has_flag = government_is_mandala }
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
set_variable = {
|
|
name = tributary_recently_ceased
|
|
years = 1
|
|
}
|
|
}
|
|
else = {
|
|
set_variable = {
|
|
name = tributary_recently_ceased
|
|
months = 6
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
trigger_event = {
|
|
id = char_interaction.0370
|
|
days = 14 # we delay the response from the AI for 2 weeks to make it feel more like a "diplomacy response"
|
|
}
|
|
}
|
|
else = {
|
|
trigger_event = char_interaction.0370
|
|
}
|
|
|
|
add_opinion = {
|
|
modifier = tributary_ceased_payments_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
is_at_war = no
|
|
is_migrating = no
|
|
trigger_if = {
|
|
limit = {
|
|
suzerain = {
|
|
highest_held_title_tier >= tier_hegemony
|
|
}
|
|
}
|
|
subject_standing < 20
|
|
}
|
|
suzerain = {
|
|
is_migrating = no
|
|
|
|
OR = {
|
|
is_landed = no
|
|
NOT = { # disconnected tributaries can always do this, even herders
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = root
|
|
}
|
|
}
|
|
AND = {
|
|
NOT = { root = { government_has_flag = government_is_true_herder } }
|
|
trigger_if = { # Obedience is a hard blocker, but only if suzerain is landed
|
|
limit = {
|
|
is_landed = yes
|
|
}
|
|
root = { is_obedient = no }
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
any_character_situation = {
|
|
situation_type = dynastic_cycle
|
|
}
|
|
}
|
|
OR = {
|
|
root.subject_standing <= 0
|
|
any_character_situation = {
|
|
situation_type = dynastic_cycle
|
|
OR = {
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability_conquest
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = suzerain
|
|
}
|
|
|
|
# this must be 12 (1 year) in order to ensure the integrity of the UI-visualized chance the tributary will break the contract
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 12
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
|
|
# visualized in the UI as the annual chance the tributary will break the contract, based on a percentage chance per year
|
|
ai_will_do = {
|
|
base = 0
|
|
#Base
|
|
modifier = {
|
|
NOT = {
|
|
suzerain = { government_has_flag = government_is_mandala }
|
|
}
|
|
add = -25
|
|
desc = base_with_value
|
|
}
|
|
|
|
# if the actor is sufficiently scared of the recipient they're way less likely to do this
|
|
ai_military_threat_modifier = {
|
|
SENDER = scope:actor
|
|
RECEIVER = scope:recipient
|
|
MULTIPLIER = -2
|
|
}
|
|
|
|
### Nomad
|
|
modifier = {
|
|
scope:recipient = { exists = obedience_target }
|
|
add = {
|
|
add = obedience_value
|
|
subtract = obedience_threshold
|
|
multiply = -1
|
|
max = obedience_threshold
|
|
min = {
|
|
value = obedience_threshold
|
|
multiply = -1
|
|
}
|
|
}
|
|
desc = obedience_value_reason
|
|
}
|
|
|
|
modifier = {
|
|
scope:recipient = {
|
|
has_variable = temp_tributary_protection
|
|
}
|
|
add = -150
|
|
desc = temp_tributary_protection_reason
|
|
}
|
|
|
|
modifier = {
|
|
dominance_value > suzerain.dominance_value
|
|
add = 30
|
|
desc = cease_tribute_higher_dominance_reason
|
|
}
|
|
|
|
modifier = {
|
|
suzerain = {
|
|
any_memory = {
|
|
has_memory_type = nomad_showed_weakness_in_war
|
|
memory_age_years < 5
|
|
}
|
|
}
|
|
add = 30
|
|
desc = cease_tribute_showed_weakness_in_war_reason
|
|
}
|
|
|
|
modifier = {
|
|
any_memory = {
|
|
has_memory_type = suzerain_defended_me_in_war
|
|
has_memory_participant = root.suzerain
|
|
memory_age_years < 10
|
|
}
|
|
add = -100
|
|
desc = cease_tribute_defended_me_in_war_reason
|
|
}
|
|
|
|
modifier = {
|
|
suzerain = {
|
|
any_memory = {
|
|
has_memory_type = had_chaotic_kurultai_succession
|
|
memory_age_years < 5
|
|
}
|
|
}
|
|
add = 30
|
|
desc = cease_tribute_had_chaotic_kurultai_succession_reason
|
|
}
|
|
#General Modifiers
|
|
#Is the Tributary Connected?
|
|
modifier = {
|
|
scope:recipient = {
|
|
trigger_if = { #Mandalas, China, Wanua, and Meritocratic realms can keep overseas tributaries, if they are coastal.
|
|
limit = {
|
|
scope:actor = {
|
|
OR = {
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_celestial
|
|
government_has_flag = government_is_wanua
|
|
government_has_flag = government_is_meritocratic
|
|
}
|
|
}
|
|
}
|
|
NOR = {
|
|
scope:recipient.capital_county = { is_coastal_county = yes }
|
|
any_sub_realm_county = { is_coastal_county = yes }
|
|
any_tributary = {
|
|
any_sub_realm_county = { is_coastal_county = yes }
|
|
}
|
|
}
|
|
}
|
|
NOT = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
add = 1000
|
|
desc = cease_tribute_disconnected_suzerain
|
|
}
|
|
#Is the suzerain landless?
|
|
modifier = {
|
|
scope:recipient = {
|
|
is_landed = no
|
|
is_migrating = no
|
|
is_at_war = no
|
|
}
|
|
add = 10000
|
|
desc = cease_tribute_landless_suzerain
|
|
}
|
|
#Subject Standing
|
|
modifier = {
|
|
subject_standing >= 0 # applied only if the subject contract uses Subject Standing
|
|
add = { # every point of subject standing reduces the chance by 5
|
|
add = subject_standing
|
|
multiply = -5
|
|
}
|
|
desc = ai_will_do_debug
|
|
}
|
|
# TGP Dynastic Cycle in Instability phase
|
|
modifier = {
|
|
desc = "FACTION_REASON_DYNASTIC_CYCLE_INSTABILITY"
|
|
add = 25
|
|
scope:recipient = {
|
|
top_participant_group:dynastic_cycle ?= {
|
|
has_participant_group_parameter = dynastic_cycle_external_tributaries_vassals_increased_independence_desire
|
|
}
|
|
}
|
|
}
|
|
|
|
#Legitimacy
|
|
modifier = {
|
|
desc = "RECIPIENT_LOW_LEGITIMACY_REASON"
|
|
add = 75
|
|
scope:recipient = {
|
|
has_legitimacy_flag = massively_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "RECIPIENT_LOW_LEGITIMACY_REASON"
|
|
add = 50
|
|
scope:recipient = {
|
|
has_legitimacy_flag = very_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "RECIPIENT_LOW_LEGITIMACY_REASON"
|
|
add = 25
|
|
scope:recipient = {
|
|
has_legitimacy_flag = reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "RECIPIENT_LOW_LEGITIMACY_REASON"
|
|
add = 15
|
|
scope:recipient = {
|
|
has_legitimacy_flag = slightly_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "RECIPIENT_HIGH_LEGITIMACY_REASON"
|
|
add = -25
|
|
scope:recipient = {
|
|
has_legitimacy_flag = increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "RECIPIENT_HIGH_LEGITIMACY_REASON"
|
|
add = -50
|
|
scope:recipient = {
|
|
has_legitimacy_flag = very_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "RECIPIENT_HIGH_LEGITIMACY_REASON"
|
|
add = -75
|
|
scope:recipient = {
|
|
has_legitimacy_flag = extra_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
### MANDALA ###
|
|
#I am a Tribal!
|
|
modifier = {
|
|
scope:recipient = { government_has_flag = government_is_mandala }
|
|
scope:actor = { government_has_flag = government_is_tribal }
|
|
add = -20
|
|
desc = actor_is_a_tribal_government
|
|
}
|
|
#Your Radiance
|
|
#Radiance Value x2
|
|
modifier = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_mandala
|
|
has_unruined_mandala_capital_trigger = yes
|
|
}
|
|
add = {
|
|
value = {
|
|
value = scope:recipient.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
multiply = -1
|
|
}
|
|
desc = recipient_negative_mandala_radiance
|
|
}
|
|
#You're Prosperity
|
|
modifier = {
|
|
desc = is_prosperity_mandala_tributary
|
|
scope:recipient = { has_realm_law_flag = tributaries_less_likely_to_break_free }
|
|
add = -15
|
|
}
|
|
#Mandala Piety Level - This is only checked if you are not a Devaraja/haven't got a capital temple complex - Otherwise we use Radiance
|
|
mandala_devaraja_piety_level_remove_weight_modifier = { DEVARAJA = scope:recipient }
|
|
#Tributary Realm Size
|
|
subject_realm_size_add_weight_modifier = {
|
|
DEVARAJA = scope:recipient
|
|
SUBJECT = scope:actor
|
|
}
|
|
|
|
##Radience of other potential Suzerains is not calculated here since they can directly ask the tributary to switch over to them.
|
|
|
|
#Pacing for Mandala Suzerains
|
|
modifier = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_mandala
|
|
has_variable = tributary_recently_ceased
|
|
}
|
|
factor = 0.1
|
|
}
|
|
#You're Disbelieved, son
|
|
modifier = {
|
|
suzerain = { has_character_modifier = disbelieved_mandala_modifier }
|
|
add = 40
|
|
desc = is_disbelieved_mandala
|
|
}
|
|
#SEA Legacy
|
|
modifier = {
|
|
desc = tgp_sea_legacy_2_modifier_desc
|
|
scope:recipient = {
|
|
dynasty ?= {
|
|
has_dynasty_perk = tgp_sea_legacy_2
|
|
}
|
|
}
|
|
add = {
|
|
value = {
|
|
value = tgp_sea_legacy_tributary_acceptance_value
|
|
multiply = -1
|
|
}
|
|
}
|
|
}
|
|
# I am higher rank than you
|
|
modifier = {
|
|
desc = tributary_interaction_aibehavior_actor_tier_tt
|
|
scope:actor = { highest_held_title_tier > scope:recipient.highest_held_title_tier }
|
|
add = {
|
|
value = scope:actor.highest_held_title_tier
|
|
subtract = scope:recipient.highest_held_title_tier
|
|
multiply = 50
|
|
}
|
|
}
|
|
# I have a Capital Temple Complex of my own (I am also a God King)
|
|
modifier = {
|
|
desc = tributary_interaction_aibehavior_actor_capital_complex
|
|
scope:recipient = { government_has_flag = government_is_mandala }
|
|
scope:actor = {
|
|
government_has_flag = government_is_mandala
|
|
capital_province = {
|
|
has_building_with_flag = mandala_capital_building
|
|
has_ruined_great_building = no
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
#AI Godkings should NOT want to be subjects
|
|
modifier = {
|
|
has_variable = mandala_godking
|
|
add = 100
|
|
desc = mandala_ai_godking_modifier
|
|
}
|
|
# Same Faith and Recipient is a God King
|
|
modifier = {
|
|
desc = tributary_interaction_aibehavior_recipient_same_faith
|
|
scope:recipient = {
|
|
government_has_flag = government_is_mandala
|
|
faith = scope:actor.faith
|
|
capital_province = {
|
|
has_building_with_flag = mandala_capital_building
|
|
has_ruined_great_building = no
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
# Different religion Family - We prefer god kings to be vaguely within our own world view
|
|
modifier = {
|
|
desc = tributary_interaction_aibehavior_recipient_other_religion_family
|
|
scope:actor = {
|
|
NOT = { government_has_flag = government_is_wanua }
|
|
}
|
|
scope:recipient.faith.religion = {
|
|
switch = {
|
|
trigger = is_in_family
|
|
rf_pagan = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_pagan } }
|
|
}
|
|
rf_sinitic = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_sinitic } }
|
|
}
|
|
rf_eastern = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_eastern } }
|
|
}
|
|
rf_abrahamic = {
|
|
scope:actor.faith.religion = { NOT = { is_in_family = rf_abrahamic } }
|
|
}
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
###
|
|
# Rivalry modifier.
|
|
modifier = {
|
|
desc = embrace_tributarization_interaction_aibehavior_rival_tt
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
add = 30
|
|
}
|
|
# Nemesis modifier.
|
|
modifier = {
|
|
desc = embrace_tributarization_interaction_aibehavior_nemesis_tt
|
|
scope:recipient = { has_relation_nemesis = scope:actor }
|
|
add = 50
|
|
}
|
|
# OPINION INFLUENCE
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
who = scope:actor
|
|
opinion_target = scope:recipient
|
|
multiplier = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
### Release Tributary - unilateral
|
|
# actor = suzerain
|
|
# recipient = tributary
|
|
|
|
release_tributary_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = no
|
|
icon = release_tributary_interaction
|
|
|
|
desc = release_tributary_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:recipient = {
|
|
this != scope:actor
|
|
suzerain = scope:actor
|
|
OR = { # AI should only ever consider releasing unruly subjects
|
|
scope:actor = { is_ai = no }
|
|
NOT = { is_obedient_to = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
#scope:recipient = {
|
|
# trigger_if = {
|
|
# limit = { subject_standing >= 0 }
|
|
# subject_standing = 0
|
|
# }
|
|
#}
|
|
}
|
|
|
|
cost = {
|
|
prestige = {
|
|
value = minor_prestige_value
|
|
if = {
|
|
limit = {
|
|
scope:actor = { government_has_flag = government_is_mandala }
|
|
}
|
|
multiply = 0
|
|
}
|
|
}
|
|
piety = {
|
|
value = medium_piety_value
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
NOT = { government_has_flag = government_is_mandala }
|
|
}
|
|
}
|
|
multiply = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = yes
|
|
on_accept = {
|
|
scope:recipient = {
|
|
end_tributary = yes
|
|
save_scope_as = tributary_loc
|
|
scope:actor = { save_scope_as = suzerain_loc }
|
|
add_truce_both_ways = {
|
|
character = scope:actor
|
|
years = 5
|
|
override = yes
|
|
name = TRUCE_TRIBUTARY_STOPPED
|
|
}
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = tributary_released_opinion
|
|
opinion = 25
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:actor = { government_has_flag = government_is_mandala }
|
|
}
|
|
set_variable = {
|
|
name = recent_mandala_suzerain
|
|
value = scope:actor
|
|
years = 5
|
|
}
|
|
}
|
|
trigger_event = char_interaction.0380
|
|
}
|
|
}
|
|
}
|
|
|
|
### Release as Tributary - unilateral
|
|
# actor = suzerain
|
|
# recipient = tributary
|
|
|
|
release_as_tributary_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = no
|
|
icon = release_as_tributary
|
|
interface_priority = 4
|
|
|
|
desc = release_as_tributary_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_wanua
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_vassal_of = scope:actor
|
|
highest_held_title_tier >= tier_county
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
is_independent_ruler = yes
|
|
is_at_war = no
|
|
}
|
|
}
|
|
|
|
auto_accept = yes
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = release_as_tributary_interaction_toast
|
|
left_icon = scope:actor
|
|
right_icon = scope:recipient
|
|
|
|
custom_tooltip = release_as_tributary_interaction_toast_desc
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = granted_independence_opinion
|
|
opinion = 10
|
|
}
|
|
create_title_and_vassal_change = {
|
|
type = independency
|
|
save_scope_as = change
|
|
add_claim_on_loss = yes
|
|
}
|
|
becomes_independent = {
|
|
change = scope:change
|
|
}
|
|
|
|
resolve_title_and_vassal_change = scope:change
|
|
}
|
|
start_tributary_interaction_effect = {
|
|
SUZERAIN = scope:actor
|
|
TRIBUTARY = scope:recipient
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
OR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_wanua
|
|
}
|
|
this = top_liege
|
|
vassal_count > vassal_limit
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = vassals
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 0
|
|
duchy = 36
|
|
kingdom = 4
|
|
empire = 4
|
|
hegemony = 4
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
modifier = {
|
|
scope:recipient = { # Only on your borders
|
|
any_held_title = {
|
|
tier = tier_county
|
|
is_coastal_county = yes
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
scope:recipient = { # Only on your borders
|
|
any_held_title = {
|
|
tier = tier_county
|
|
any_neighboring_county = {
|
|
holder.top_liege != scope:recipient.top_liege
|
|
}
|
|
}
|
|
}
|
|
add = 100
|
|
}
|
|
}
|
|
}
|
|
|
|
exact_tribute_interaction = {
|
|
category = interaction_category_vassal
|
|
icon = demand_tributary_interaction
|
|
|
|
ai_maybe = yes
|
|
ai_min_reply_days = 4
|
|
ai_max_reply_days = 9
|
|
can_send_despite_rejection = yes
|
|
popup_on_receive = yes
|
|
common_interaction = no
|
|
|
|
interface_priority = 4
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 12
|
|
duchy = 9
|
|
kingdom = 6
|
|
empire = 6
|
|
hegemony = 6
|
|
}
|
|
|
|
desc = exact_tribute_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:recipient = { is_ai = yes }
|
|
scope:actor = {
|
|
OR = {
|
|
highest_held_title_tier >= tier_hegemony
|
|
AND = {
|
|
government_has_flag = government_is_mandala
|
|
scope:recipient = { is_tributary_of = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = {
|
|
is_available_adult = yes
|
|
#Has recently gone on a Tribute Mission (to you)
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_recently_tribute_missioned_tt
|
|
NOT = { var:tribute_mission_grace ?= scope:actor }
|
|
}
|
|
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
highest_held_title_tier >= tier_hegemony
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
trigger_if = {
|
|
limit = { is_tributary_of = scope:actor }
|
|
subject_standing < exact_tribute_subject_standing_value
|
|
}
|
|
trigger_else = {
|
|
is_independent_ruler = yes
|
|
highest_held_title_tier < tier_hegemony
|
|
is_tributary = no
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_hegemony_not_neighbor_tt
|
|
any_neighboring_realm_with_tributaries_owner = { this = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
scope:actor = { government_has_flag = government_is_mandala }
|
|
scope:recipient = { is_tributary_of = scope:actor }
|
|
}
|
|
|
|
#Has something to offer as Tribute Mission
|
|
trigger_if = {
|
|
limit = {
|
|
NOR = {
|
|
var:declined_requested_tribute_recently ?= scope:actor
|
|
var:requested_tribute_mission ?= scope:actor
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_no_tribute_tt
|
|
OR = {
|
|
has_gold_tribute_trigger = yes
|
|
has_herd_tribute_trigger = yes
|
|
has_artifact_tribute_trigger = yes
|
|
AND = {
|
|
any_courtier_or_guest = {
|
|
can_become_concubine_of_character_valid_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
scope:actor = {
|
|
allowed_more_concubines = yes
|
|
is_adult = yes
|
|
}
|
|
}
|
|
AND = {
|
|
has_eunuch_tribute_trigger = yes
|
|
scope:actor = {
|
|
culture = { has_cultural_parameter = can_appoint_chief_eunuch }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Has recently refused
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_recently_refused_tt
|
|
NOT = { var:declined_requested_tribute_recently ?= scope:actor }
|
|
}
|
|
#Is already engaged
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_already_engaged_tt
|
|
NOR = {
|
|
var:requested_tribute_mission ?= scope:actor
|
|
has_variable = tribute_mission_type
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = EXACT_TRIBUTE_INTERACTION_NOTIFICATION
|
|
|
|
#Request Gold
|
|
send_option = {
|
|
flag = gold
|
|
is_valid = {
|
|
scope:recipient ?= { has_gold_tribute_trigger = yes }
|
|
}
|
|
localization = request_gold_tribute
|
|
}
|
|
|
|
#Request Herd
|
|
send_option = {
|
|
flag = herd
|
|
is_valid = {
|
|
scope:recipient ?= { has_herd_tribute_trigger = yes }
|
|
}
|
|
localization = request_herd_tribute
|
|
}
|
|
|
|
#Request Artifact
|
|
send_option = {
|
|
flag = artifact
|
|
is_valid = {
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_no_suitable_artifact_tt
|
|
has_artifact_tribute_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
localization = request_artifact_tribute
|
|
}
|
|
|
|
#Request Concubine
|
|
send_option = {
|
|
flag = concubine
|
|
is_valid = {
|
|
scope:actor = {
|
|
is_adult = yes
|
|
can_have_concubines_trigger = { CHAR = scope:actor }
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_no_suitable_concubine_tt
|
|
any_courtier_or_guest = {
|
|
can_become_concubine_of_character_valid_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
localization = request_concubine_tribute
|
|
}
|
|
|
|
#Request Eunuch
|
|
send_option = {
|
|
flag = eunuch
|
|
is_valid = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
can_employ_court_eunuchs_trigger = { CHAR = scope:actor }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_no_suitable_eunuchs_tt
|
|
has_eunuch_tribute_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
scope:actor = {
|
|
can_employ_court_eunuchs_trigger = { CHAR = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
localization = request_eunuch_tribute
|
|
}
|
|
|
|
send_options_exclusive = yes
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
if = {
|
|
limit = { is_ai = no }
|
|
trigger_event = tribute_mission.9010
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
set_variable = {
|
|
name = requested_tribute_mission
|
|
value = scope:actor
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
trigger_event = {
|
|
id = tribute_mission.9500
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
switch = {
|
|
trigger = yes
|
|
scope:gold ?= {
|
|
set_variable = {
|
|
name = requested_tribute_mission_type_gold
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
custom_tooltip = exact_tribute_interaction_gold_tt
|
|
}
|
|
scope:herd ?= {
|
|
set_variable = {
|
|
name = requested_tribute_mission_type_herd
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
custom_tooltip = exact_tribute_interaction_herd_tt
|
|
}
|
|
scope:artifact ?= {
|
|
set_variable = {
|
|
name = requested_tribute_mission_type_artifact
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
custom_tooltip = exact_tribute_interaction_artifact_tt
|
|
random_character_artifact = {
|
|
limit = { is_suitable_artifact_tribute_trigger = yes }
|
|
scope:recipient = {
|
|
set_variable = {
|
|
name = predetermined_artifact_tribute
|
|
value = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:concubine ?= {
|
|
set_variable = {
|
|
name = requested_tribute_mission_type_concubine
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
custom_tooltip = exact_tribute_interaction_concubine_tt
|
|
every_courtier_or_guest = {
|
|
limit = {
|
|
can_be_offered_as_concubine_to_character_trigger = {
|
|
GIVER = scope:recipient
|
|
CHARACTER = scope:actor
|
|
}
|
|
tribute_mission_is_available_concubine_trigger = yes
|
|
}
|
|
add_to_list = potential_concubine_tribute_list
|
|
random_in_list = {
|
|
list = potential_concubine_tribute_list
|
|
weight = {
|
|
#Let's try to make a sane choice here
|
|
base = 0
|
|
#No marginally relevant court people
|
|
modifier = {
|
|
add = 10
|
|
NOR = {
|
|
is_councillor = yes
|
|
has_any_court_position = yes
|
|
}
|
|
}
|
|
#No knights
|
|
modifier = {
|
|
add = 5
|
|
is_knight = no
|
|
}
|
|
#No inspired people?
|
|
modifier = {
|
|
add = 20
|
|
NOT = { exists = inspiration }
|
|
}
|
|
#No close family
|
|
modifier = {
|
|
add = 15
|
|
NOT = { is_close_or_extended_family_of = scope:recipient }
|
|
}
|
|
#No friends?
|
|
modifier = {
|
|
add = 20
|
|
NOT = { has_relation_friend = scope:recipient }
|
|
}
|
|
#No children
|
|
modifier = {
|
|
add = 25
|
|
NOT = { is_child_of = scope:recipient }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
set_variable = {
|
|
name = predetermined_concubine_tribute
|
|
value = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:eunuch ?= {
|
|
set_variable = {
|
|
name = requested_tribute_mission_type_eunuch
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
custom_tooltip = exact_tribute_interaction_eunuch_tt
|
|
every_courtier = {
|
|
limit = {
|
|
tribute_mission_is_available_eunuch_trigger = yes
|
|
NAND = {
|
|
faith = { has_doctrine = doctrine_theocracy_temporal }
|
|
this = scope:actor.cp:councillor_court_chaplain
|
|
}
|
|
has_any_disease_trigger = no
|
|
}
|
|
add_to_list = potential_eunuch_tribute_list
|
|
random_in_list = {
|
|
list = potential_eunuch_tribute_list
|
|
weight = {
|
|
#Let's try to make a sane choice here
|
|
base = 0
|
|
#No marginally relevant court people
|
|
modifier = {
|
|
add = 10
|
|
NOR = {
|
|
is_councillor = yes
|
|
has_any_court_position = yes
|
|
}
|
|
}
|
|
#No knights
|
|
modifier = {
|
|
add = 5
|
|
is_knight = no
|
|
}
|
|
#No inspired people?
|
|
modifier = {
|
|
add = 20
|
|
NOT = { exists = inspiration }
|
|
}
|
|
#No close family
|
|
modifier = {
|
|
add = 15
|
|
NOT = { is_close_or_extended_family_of = scope:recipient }
|
|
}
|
|
#No friends?
|
|
modifier = {
|
|
add = 20
|
|
NOT = { has_relation_friend = scope:recipient }
|
|
}
|
|
#No children
|
|
modifier = {
|
|
add = 25
|
|
NOT = { is_child_of = scope:recipient }
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
set_variable = {
|
|
name = predetermined_eunuch_tribute
|
|
value = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:actor = { government_has_flag = government_is_mandala } }
|
|
execute_decision = tribute_mission_decision_mandala
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_china }
|
|
execute_decision = tribute_mission_decision_china
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_roman_empire }
|
|
execute_decision = tribute_mission_decision_roman_empire
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_eastern_roman_empire }
|
|
execute_decision = tribute_mission_decision_eastern_roman_empire
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_dar_al_islam }
|
|
execute_decision = tribute_mission_decision_dar_al_islam
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_india }
|
|
execute_decision = tribute_mission_decision_india
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { has_legitimacy = yes }
|
|
add_legitimacy = minor_legitimacy_loss
|
|
}
|
|
set_variable = {
|
|
name = declined_requested_tribute_recently
|
|
value = scope:actor
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_opinion = {
|
|
modifier = declined_tribute_mission_opinion
|
|
opinion = -30
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_opinion = {
|
|
modifier = declined_tribute_mission_opinion
|
|
opinion = -30
|
|
target = scope:recipient
|
|
}
|
|
}
|
|
if = {
|
|
limit = { is_ai = no }
|
|
trigger_event = tribute_mission.9000
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
always = yes
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 50
|
|
modifier = {
|
|
scope:actor = { has_realm_law = mandala_decree_reverence }
|
|
factor = 2
|
|
}
|
|
modifier = {
|
|
NOT = { ai_boldness = 0 }
|
|
add = {
|
|
value = ai_boldness
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_BOLDNESS_REASON
|
|
}
|
|
modifier = {
|
|
ai_greed > 0
|
|
add = {
|
|
value = ai_greed
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_GREED_REASON
|
|
}
|
|
|
|
}
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
#Base
|
|
modifier = {
|
|
government_has_flag = government_is_mandala
|
|
add = -25
|
|
desc = base_with_value
|
|
}
|
|
modifier = { # Special case for Hegemonic Tributaries
|
|
scope:actor = {
|
|
highest_held_title_tier >= tier_hegemony
|
|
}
|
|
add = {
|
|
add = 25
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
NOT = { scope:recipient.primary_title = title:h_china }
|
|
government_has_flag = government_is_meritocratic
|
|
}
|
|
}
|
|
add = 25
|
|
}
|
|
}
|
|
desc = tributary_interaction_aibehavior_recipient_hegemon_tier_tt
|
|
}
|
|
# Unstable Phase
|
|
modifier = {
|
|
scope:actor = { highest_held_title_tier >= tier_hegemony }
|
|
situation:dynastic_cycle ?= {
|
|
OR = {
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability_conquest
|
|
}
|
|
}
|
|
add = -50
|
|
desc = tributary_interaction_aibehavior_actor_unstable_cycle_tt
|
|
}
|
|
# Stable Phase
|
|
modifier = {
|
|
scope:actor = {
|
|
highest_held_title_tier >= tier_hegemony
|
|
legitimacy_level < dynastic_cycle_legitimacy_expectation
|
|
}
|
|
situation:dynastic_cycle ?= {
|
|
NOR = {
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability_conquest
|
|
}
|
|
}
|
|
add = -25
|
|
desc = tributary_interaction_aibehavior_actor_low_legitimacy_tt
|
|
}
|
|
modifier = {
|
|
scope:actor = {
|
|
highest_held_title_tier >= tier_hegemony
|
|
legitimacy_level > dynastic_cycle_legitimacy_expectation
|
|
}
|
|
situation:dynastic_cycle ?= {
|
|
NOR = {
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability
|
|
situation_current_phase = situation_dynastic_cycle_phase_instability_conquest
|
|
}
|
|
}
|
|
add = 25
|
|
desc = tributary_interaction_aibehavior_actor_high_legitimacy_tt
|
|
}
|
|
|
|
#MINOR MODIFIERS
|
|
modifier = { # the bolder they are, the less likely they will agree to this and the more cowardly the more likely
|
|
NOT = { ai_boldness = 0 }
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_BOLDNESS_REASON
|
|
}
|
|
|
|
modifier = { # the greedier they are, the less likely they will agree to this
|
|
ai_greed > 0
|
|
add = {
|
|
value = ai_greed
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_GREED_REASON
|
|
}
|
|
modifier = { # Rivalry modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
modifier = { # Nemesis modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { # Same Dynasty modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
#Prosperity Mandala
|
|
modifier = {
|
|
desc = is_prosperity_mandala_tributary
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
suzerain = { has_realm_law = mandala_decree_prosperity }
|
|
}
|
|
add = 15
|
|
}
|
|
#Mandala Piety Level
|
|
#This is only checked if you are not a Devaraja/haven't got a capital temple complex - Otherwise we use Radiance
|
|
mandala_devaraja_piety_level_add_weight_modifier = { DEVARAJA = scope:actor }
|
|
|
|
#Your Radiance
|
|
modifier = {
|
|
scope:actor = { has_unruined_mandala_capital_trigger = yes }
|
|
add = {
|
|
value = scope:actor.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
desc = actor_positive_mandala_radiance
|
|
}
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1
|
|
}
|
|
|
|
# if the actor is a major threat to the recipient they're more likely to accept
|
|
ai_military_threat_modifier = {
|
|
SENDER = scope:recipient
|
|
RECEIVER = scope:actor
|
|
MULTIPLIER = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
#If the target is a player
|
|
exact_tribute_player_interaction = {
|
|
category = interaction_category_vassal
|
|
icon = demand_tributary_interaction
|
|
|
|
ai_maybe = yes
|
|
ai_min_reply_days = 4
|
|
ai_max_reply_days = 9
|
|
can_send_despite_rejection = yes
|
|
ai_accept_negotiation = yes
|
|
popup_on_receive = yes
|
|
common_interaction = yes
|
|
|
|
interface_priority = 4
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 12
|
|
duchy = 9
|
|
kingdom = 6
|
|
empire = 6
|
|
hegemony = 6
|
|
}
|
|
|
|
desc = exact_tribute_player_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:recipient = { is_ai = no }
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = { highest_held_title_tier >= tier_hegemony }
|
|
}
|
|
scope:recipient = {
|
|
trigger_if = {
|
|
limit = { is_tributary_of = scope:actor }
|
|
subject_standing < exact_tribute_subject_standing_value
|
|
}
|
|
trigger_else = {
|
|
is_tributary = no
|
|
is_independent_ruler = yes
|
|
any_neighboring_top_liege_realm_owner = { primary_title = title:h_china }
|
|
}
|
|
}
|
|
}
|
|
trigger_else = {
|
|
scope:actor = { government_has_flag = government_is_mandala }
|
|
scope:recipient = { is_tributary_of = scope:actor }
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:recipient = {
|
|
is_available_adult = yes
|
|
#Has recently gone on a Tribute Mission (to you)
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_recently_tribute_missioned_tt
|
|
NOT = { var:tribute_mission_grace ?= scope:actor }
|
|
}
|
|
#Has something to offer as Tribute Mission
|
|
trigger_if = {
|
|
limit = {
|
|
NOR = {
|
|
var:declined_requested_tribute_recently ?= scope:actor
|
|
var:requested_tribute_mission ?= scope:actor
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_no_tribute_tt
|
|
OR = {
|
|
has_gold_tribute_trigger = yes
|
|
has_herd_tribute_trigger = yes
|
|
has_artifact_tribute_trigger = yes
|
|
AND = {
|
|
any_courtier_or_guest = {
|
|
can_become_concubine_of_character_valid_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
scope:actor = { allowed_more_concubines = yes }
|
|
}
|
|
AND = {
|
|
has_eunuch_tribute_trigger = yes
|
|
scope:actor = {
|
|
culture = { has_cultural_parameter = can_appoint_chief_eunuch }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Has recently refused
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_recently_refused_tt
|
|
NOT = { var:declined_requested_tribute_recently ?= scope:actor }
|
|
}
|
|
#Is already engaged
|
|
custom_tooltip = {
|
|
text = exact_tribute_interaction_already_engaged_tt
|
|
NOR = {
|
|
var:requested_tribute_mission ?= scope:actor
|
|
has_variable = tribute_mission_type
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = EXACT_TRIBUTE_PLAYER_INTERACTION_NOTIFICATION
|
|
|
|
on_accept = {
|
|
scope:actor = {
|
|
if = {
|
|
limit = { is_ai = no }
|
|
trigger_event = tribute_mission.9010
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
set_variable = {
|
|
name = requested_tribute_mission
|
|
value = scope:actor
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
trigger_event = {
|
|
id = tribute_mission.9500
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
custom_tooltip = exact_tribute_player_interaction_accept_tt
|
|
if = {
|
|
limit = { scope:actor = { highest_held_title_tier >= tier_hegemony } }
|
|
if = {
|
|
limit = { scope:actor.primary_title = title:h_china }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_china
|
|
player = scope:recipient
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_roman_empire }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_roman_empire
|
|
player = scope:recipient
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_eastern_roman_empire }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_eastern_roman_empire
|
|
player = scope:recipient
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_dar_al_islam }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_dar_al_islam
|
|
player = scope:recipient
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor.primary_title = title:h_india }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_india
|
|
player = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:actor = { government_has_flag = government_is_mandala } }
|
|
open_view_data = {
|
|
view = decision_detail
|
|
data = decision:tribute_mission_decision_mandala
|
|
player = scope:recipient
|
|
}
|
|
}
|
|
else = {
|
|
error_log = "Exacting tribute as an invalid actor!"
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:recipient = {
|
|
add_legitimacy = minor_legitimacy_loss
|
|
set_variable = {
|
|
name = declined_requested_tribute_recently
|
|
value = scope:actor
|
|
years = requested_tribute_mission_deadline_years
|
|
}
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_opinion = {
|
|
modifier = declined_tribute_mission_opinion
|
|
opinion = -30
|
|
target = scope:recipient
|
|
}
|
|
}
|
|
if = {
|
|
limit = { is_ai = no }
|
|
trigger_event = tribute_mission.9000
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
always = yes
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 50
|
|
modifier = {
|
|
scope:actor = { has_realm_law = mandala_decree_reverence }
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
|
|
# Offer Courtier
|
|
offer_courtier_interaction = {
|
|
category = interaction_category_diplomacy
|
|
common_interaction = no
|
|
icon = courtier_interaction
|
|
interface_priority = 40
|
|
|
|
desc = offer_courtier_interaction_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = suzerain
|
|
ai_recipients = liege
|
|
ai_recipients = scripted_relations
|
|
max = 5
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 36
|
|
duchy = 36
|
|
kingdom = 36
|
|
empire = 36
|
|
hegemony = 36
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = OFFER_COURTIER_NOTIFICATION
|
|
|
|
needs_recipient_to_open = yes
|
|
|
|
populate_actor_list = {
|
|
scope:actor = {
|
|
every_courtier = {
|
|
limit = {
|
|
is_available_healthy_ai_adult = yes
|
|
NOR = {
|
|
is_consort_of = scope:actor
|
|
is_heir_of = scope:actor
|
|
AND = {
|
|
is_female = yes
|
|
patrilinear_marriage = yes
|
|
}
|
|
AND = {
|
|
is_male = yes
|
|
matrilinear_marriage = yes
|
|
}
|
|
is_diarch = yes
|
|
is_designated_diarch = yes
|
|
has_character_flag = has_been_offered_as_concubine
|
|
}
|
|
}
|
|
add_to_list = characters
|
|
}
|
|
}
|
|
}
|
|
|
|
is_shown = {
|
|
scope:actor != scope:recipient
|
|
scope:recipient = {
|
|
is_ruler = yes
|
|
NOT = { government_has_flag = government_is_true_herder }
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
custom_tooltip = {
|
|
text = offer_courtier_valid_courtier_tt
|
|
scope:actor = {
|
|
any_courtier = {
|
|
is_available_healthy_ai_adult = yes
|
|
NOR = {
|
|
is_consort_of = scope:actor
|
|
is_heir_of = scope:actor
|
|
AND = {
|
|
is_female = yes
|
|
patrilinear_marriage = yes
|
|
}
|
|
AND = {
|
|
is_male = yes
|
|
matrilinear_marriage = yes
|
|
}
|
|
is_diarch = yes
|
|
is_designated_diarch = yes
|
|
has_character_flag = has_been_offered_as_concubine
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
trigger_if = { #For adventurers we check range
|
|
limit = {
|
|
scope:actor = {
|
|
is_landless_adventurer = yes
|
|
}
|
|
}
|
|
ep3_laamp_diplo_range_trigger = {
|
|
TARGET = scope:recipient
|
|
LAAMP = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked = {
|
|
is_adult = yes
|
|
}
|
|
|
|
can_send = {
|
|
custom_tooltip = {
|
|
text = no_heirs_can_be_sent_tt
|
|
scope:secondary_actor = {
|
|
NOT = {
|
|
is_heir_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = no_spouses_can_be_sent_tt
|
|
scope:secondary_actor = {
|
|
NOT = {
|
|
is_consort_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = {
|
|
scope:actor = {
|
|
has_title = title:e_minister_of_personnel
|
|
custom_tooltip = {
|
|
text = same_realm_tt
|
|
top_liege = scope:recipient.top_liege
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
|
|
ai_accept = {
|
|
base = -10
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_good
|
|
martial >= monumentally_high_skill_rating
|
|
prowess >= extremely_high_skill_rating
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_chancellor ?= { diplomacy < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_steward ?= { stewardship < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_spymaster ?= { intrigue < monumentally_high_skill_rating }
|
|
}
|
|
has_relation_lover = scope:recipient # Shhh, don't tell anyone, of course you're 'skilled'!
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
OR = {
|
|
AND = {
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_average
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
count < 10
|
|
}
|
|
}
|
|
}
|
|
aptitude:master_of_hunt_court_position >= 4
|
|
aptitude:keeper_of_the_horses_court_position >= 4
|
|
aptitude:boyan_court_position >= 4
|
|
aptitude:siege_engineer_court_position >= 4
|
|
aptitude:yurtchi_court_position >= 4
|
|
aptitude:cherbi_court_position >= 4
|
|
aptitude:yeke_jarquchi_court_position >= 4
|
|
aptitude:foreign_emissary_court_position >= 4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = AI_INTERESTING_COURTIER_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor.prowess >= decent_skill_rating
|
|
scope:recipient.number_of_knights < scope:recipient.max_number_of_knights
|
|
desc = AI_KNIGHT_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
exists = scope:secondary_actor.inspiration
|
|
desc = AI_INSPIRED_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor = {
|
|
is_close_or_extended_family_of = scope:recipient
|
|
}
|
|
desc = AI_FAMILY_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor = {
|
|
is_consort_of = scope:recipient
|
|
}
|
|
desc = AI_SPOUSE_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor = {
|
|
has_relation_friend = scope:recipient
|
|
}
|
|
desc = AI_FRIEND_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -200
|
|
scope:secondary_actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
desc = AI_RIVAL_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
is_consort_of = scope:secondary_actor
|
|
}
|
|
}
|
|
desc = AI_SPOUSE_OF_COURTIER_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
count < 5
|
|
}
|
|
}
|
|
desc = AI_LACK_COURTIERS_REASON
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
OR = {
|
|
ai_greed <= 25
|
|
is_obedient = yes
|
|
}
|
|
OR = {
|
|
is_tributary = yes
|
|
num_of_relation_friend > 0
|
|
num_of_relation_lover > 0
|
|
}
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:recipient = {
|
|
is_tributary_of = scope:actor
|
|
OR = {
|
|
ai_greed <= -50
|
|
is_obedient_to = scope:actor
|
|
opinion = {
|
|
target = scope:actor
|
|
value >= 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
NOR = {
|
|
government_has_flag = government_is_nomadic
|
|
government_has_flag = government_is_true_herder
|
|
}
|
|
}
|
|
scope:secondary_actor = {
|
|
is_close_or_extended_family_of = scope:actor
|
|
}
|
|
}
|
|
|
|
modifier = { # The AI only offers really good characters
|
|
factor = 0
|
|
scope:secondary_actor = {
|
|
NOR = {
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_good
|
|
martial >= monumentally_high_skill_rating
|
|
prowess >= extremely_high_skill_rating
|
|
exists = inspiration
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_chancellor ?= { diplomacy < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_steward ?= { stewardship < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_spymaster ?= { intrigue < monumentally_high_skill_rating }
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
OR = {
|
|
AND = {
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_average
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
count < 10
|
|
}
|
|
}
|
|
}
|
|
aptitude:master_of_hunt_court_position >= 4
|
|
aptitude:keeper_of_the_horses_court_position >= 4
|
|
aptitude:boyan_court_position >= 4
|
|
aptitude:siege_engineer_court_position >= 4
|
|
aptitude:yurtchi_court_position >= 4
|
|
aptitude:cherbi_court_position >= 4
|
|
aptitude:yeke_jarquchi_court_position >= 4
|
|
aptitude:foreign_emissary_court_position >= 4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
has_title = title:e_minister_of_personnel
|
|
}
|
|
}
|
|
}
|
|
|
|
on_send = {
|
|
scope:secondary_actor = { # to block the same character from being offered twice
|
|
add_character_flag = {
|
|
flag = has_been_offered_as_concubine
|
|
days = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_title = title:e_minister_of_personnel
|
|
}
|
|
scope:recipient = {
|
|
top_liege = scope:actor.top_liege
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_courtier = scope:secondary_actor
|
|
scope:secondary_actor = {
|
|
every_consort = {
|
|
limit = {
|
|
is_courtier_of = scope:actor
|
|
}
|
|
scope:recipient = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
every_child = {
|
|
limit = {
|
|
is_adult = no
|
|
is_courtier_of = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:actor = {
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_has_influence
|
|
}
|
|
change_influence = {
|
|
value = scope:secondary_actor.average_of_all_skills_and_prowess
|
|
multiply = 5
|
|
if = {
|
|
limit = {
|
|
scope:secondary_actor = {
|
|
is_close_or_extended_family_of = scope:actor
|
|
}
|
|
}
|
|
add = 100
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
scope:secondary_actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = annoyed_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_courtier = scope:secondary_actor
|
|
scope:secondary_actor = {
|
|
every_consort = {
|
|
limit = {
|
|
is_courtier_of = scope:actor
|
|
}
|
|
scope:recipient = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
every_child = {
|
|
limit = {
|
|
is_adult = no
|
|
is_courtier_of = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = grateful_opinion
|
|
opinion = 10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = msg_courtier_offer_rejected_title
|
|
right_icon = scope:recipient
|
|
left_icon = scope:secondary_actor
|
|
custom_tooltip = msg_courtier_offer_rejected
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Demand Courtier
|
|
demand_courtier_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = no
|
|
icon = request_courtier_interaction
|
|
interface_priority = 45
|
|
|
|
desc = demand_courtier_interaction_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
ai_recipients = vassals
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 60
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
cooldown_against_recipient = { years = 3 }
|
|
|
|
greeting = positive
|
|
notification_text = DEMAND_COURTIER_NOTIFICATION
|
|
|
|
highlighted_reason = HIGHLIGHTED_SKILLED_COURTIER
|
|
is_highlighted = {
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
is_available_healthy_ai_adult = yes
|
|
NOR = {
|
|
is_consort_of = scope:recipient
|
|
is_heir_of = scope:recipient
|
|
AND = {
|
|
is_female = yes
|
|
patrilinear_marriage = yes
|
|
}
|
|
AND = {
|
|
is_male = yes
|
|
matrilinear_marriage = yes
|
|
}
|
|
is_diarch = yes
|
|
is_designated_diarch = yes
|
|
has_character_flag = has_been_offered_as_concubine
|
|
}
|
|
OR = {
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_good
|
|
martial >= monumentally_high_skill_rating
|
|
prowess >= extremely_high_skill_rating
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_chancellor ?= { diplomacy < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_steward ?= { stewardship < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_spymaster ?= { intrigue < monumentally_high_skill_rating }
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
OR = {
|
|
aptitude:master_of_hunt_court_position >= 4
|
|
aptitude:keeper_of_the_horses_court_position >= 4
|
|
aptitude:boyan_court_position >= 4
|
|
aptitude:siege_engineer_court_position >= 4
|
|
aptitude:yurtchi_court_position >= 4
|
|
aptitude:cherbi_court_position >= 4
|
|
aptitude:yeke_jarquchi_court_position >= 4
|
|
aptitude:foreign_emissary_court_position >= 4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
needs_recipient_to_open = yes
|
|
|
|
populate_actor_list = {
|
|
scope:recipient = {
|
|
every_courtier = {
|
|
limit = {
|
|
is_available_healthy_ai_adult = yes
|
|
NOR = {
|
|
is_consort_of = scope:recipient
|
|
is_heir_of = scope:recipient
|
|
AND = {
|
|
is_female = yes
|
|
patrilinear_marriage = yes
|
|
}
|
|
AND = {
|
|
is_male = yes
|
|
matrilinear_marriage = yes
|
|
}
|
|
is_diarch = yes
|
|
is_designated_diarch = yes
|
|
has_character_flag = has_been_offered_as_concubine
|
|
}
|
|
}
|
|
add_to_list = characters
|
|
}
|
|
}
|
|
}
|
|
|
|
is_shown = {
|
|
scope:actor != scope:recipient
|
|
scope:recipient = {
|
|
OR = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_allows = obedience
|
|
}
|
|
}
|
|
is_vassal_of = scope:actor
|
|
}
|
|
is_tributary_of = scope:actor
|
|
AND = { # Celestial has this available towards vassals
|
|
scope:actor = { government_has_flag = government_is_celestial }
|
|
liege = scope:actor
|
|
}
|
|
AND = { # The minister of personnel can use it against every ruler in the realm
|
|
scope:actor = { has_title = title:e_minister_of_personnel }
|
|
is_ruler = yes
|
|
top_liege = scope:actor.top_liege
|
|
# Except the top liege
|
|
top_liege != this
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
custom_tooltip = {
|
|
text = demand_courtier_valid_courtier_tt
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
is_available_healthy_ai_adult = yes
|
|
NOR = {
|
|
is_consort_of = scope:recipient
|
|
is_heir_of = scope:recipient
|
|
AND = {
|
|
is_female = yes
|
|
patrilinear_marriage = yes
|
|
}
|
|
AND = {
|
|
is_male = yes
|
|
matrilinear_marriage = yes
|
|
}
|
|
is_diarch = yes
|
|
is_designated_diarch = yes
|
|
has_character_flag = has_been_offered_as_concubine
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked = {
|
|
is_adult = yes
|
|
}
|
|
|
|
can_send = {
|
|
}
|
|
|
|
auto_accept = {
|
|
scope:actor = {
|
|
has_title = title:e_minister_of_personnel
|
|
custom_tooltip = {
|
|
text = same_realm_tt
|
|
top_liege = scope:recipient.top_liege
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
# Use hook
|
|
send_option = {
|
|
is_shown = { # Not available towards tributaries
|
|
scope:recipient = {
|
|
NOT = { is_tributary_of = scope:actor }
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
}
|
|
flag = hook
|
|
localization = SCHEME_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = {
|
|
has_usable_hook = scope:recipient
|
|
}
|
|
scope:recipient = {
|
|
NOT = { is_tributary_of = scope:actor }
|
|
}
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds"
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 1000
|
|
scope:recipient = {
|
|
is_obedient_to = scope:actor
|
|
}
|
|
desc = AI_OBEDIENT_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 25
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
|
|
opinion_modifier = { # Opinion Factor
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1.0
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -25
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
is_councillor = yes
|
|
has_any_court_position = yes
|
|
}
|
|
}
|
|
desc = AI_EMPLOYED_COURTIER_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -15
|
|
scope:secondary_actor = {
|
|
is_knight = yes
|
|
}
|
|
desc = AI_IS_KNIGHT_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -50
|
|
exists = scope:secondary_actor.inspiration
|
|
desc = AI_INSPIRED_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -25
|
|
scope:secondary_actor = {
|
|
is_close_or_extended_family_of = scope:recipient
|
|
}
|
|
desc = AI_FAMILY_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -50
|
|
scope:secondary_actor = {
|
|
has_relation_friend = scope:recipient
|
|
}
|
|
desc = AI_FRIEND_REASON
|
|
}
|
|
|
|
# Used a hook
|
|
modifier = {
|
|
add = 100
|
|
scope:hook ?= yes
|
|
desc = SCHEME_WEAK_HOOK_USED
|
|
}
|
|
|
|
modifier = {
|
|
add = 1000
|
|
scope:secondary_actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
desc = AI_RIVAL_REASON
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
ai_greed >= 0
|
|
any_tributary = { }
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_good
|
|
martial >= monumentally_high_skill_rating
|
|
prowess >= extremely_high_skill_rating
|
|
exists = inspiration
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_chancellor ?= { diplomacy < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_steward ?= { stewardship < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_spymaster ?= { intrigue < monumentally_high_skill_rating }
|
|
}
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_allows = obedience
|
|
}
|
|
}
|
|
OR = {
|
|
AND = {
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_average
|
|
scope:actor = {
|
|
any_courtier = {
|
|
count < 10
|
|
}
|
|
}
|
|
}
|
|
aptitude:master_of_hunt_court_position >= 4
|
|
aptitude:keeper_of_the_horses_court_position >= 4
|
|
aptitude:boyan_court_position >= 4
|
|
aptitude:siege_engineer_court_position >= 4
|
|
aptitude:yurtchi_court_position >= 4
|
|
aptitude:cherbi_court_position >= 4
|
|
aptitude:yeke_jarquchi_court_position >= 4
|
|
aptitude:foreign_emissary_court_position >= 4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
factor = 0
|
|
scope:actor = {
|
|
has_title = title:e_minister_of_personnel
|
|
}
|
|
}
|
|
}
|
|
|
|
on_send = {
|
|
scope:secondary_actor = { # to block the same character from being offered twice
|
|
add_character_flag = {
|
|
flag = has_been_offered_as_concubine
|
|
days = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_title = title:e_minister_of_personnel
|
|
}
|
|
scope:recipient = {
|
|
top_liege = scope:actor.top_liege
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_courtier = scope:secondary_actor
|
|
scope:secondary_actor = {
|
|
every_consort = {
|
|
limit = {
|
|
is_courtier_of = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
every_child = {
|
|
limit = {
|
|
is_adult = no
|
|
is_courtier_of = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
scope:secondary_actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = annoyed_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_courtier = scope:secondary_actor
|
|
scope:secondary_actor = {
|
|
every_consort = {
|
|
limit = {
|
|
is_courtier_of = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
every_child = {
|
|
limit = {
|
|
is_adult = no
|
|
is_courtier_of = scope:recipient
|
|
}
|
|
scope:actor = {
|
|
add_courtier = prev
|
|
}
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = pleased_opinion
|
|
opinion = 20
|
|
}
|
|
# Use Hook
|
|
if = {
|
|
limit = { scope:hook = yes }
|
|
use_hook = scope:recipient
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = upset_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = msg_courtier_demand_rejected_title
|
|
right_icon = scope:recipient
|
|
left_icon = scope:secondary_actor
|
|
custom_tooltip = msg_courtier_demand_rejected
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = upset_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Demand Concubine
|
|
demand_concubine_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = no
|
|
icon = request_concubine_interaction
|
|
interface_priority = 44
|
|
|
|
desc = demand_concubine_interaction_desc
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
ai_recipients = vassals
|
|
}
|
|
ai_target_quick_trigger = {
|
|
adult = yes
|
|
}
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 0
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
cooldown_against_recipient = { years = 3 }
|
|
|
|
greeting = positive
|
|
notification_text = DEMAND_CONCUBINE_NOTIFICATION
|
|
|
|
needs_recipient_to_open = yes
|
|
|
|
populate_actor_list = {
|
|
scope:recipient = {
|
|
every_courtier = {
|
|
limit = {
|
|
is_physically_able_adult = yes
|
|
is_ruler = no
|
|
could_marry_character_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
add_to_list = characters
|
|
}
|
|
}
|
|
}
|
|
|
|
is_shown = {
|
|
scope:actor != scope:recipient
|
|
scope:actor = {
|
|
allowed_concubines = yes
|
|
NOR = { # We expect scope:actor to Exact Tribute for this purpose when Merit- or Mandala-based instead
|
|
government_has_flag = government_has_merit
|
|
government_has_flag = government_is_mandala
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
OR = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
is_vassal_of = scope:actor
|
|
}
|
|
is_tributary_of = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
allowed_more_concubines = yes
|
|
is_physically_able_adult = yes
|
|
}
|
|
custom_tooltip = {
|
|
text = must_have_valid_concubine_tt
|
|
scope:recipient = {
|
|
any_courtier = {
|
|
is_physically_able_adult = yes
|
|
is_ruler = no
|
|
could_marry_character_trigger = { CHARACTER = scope:actor }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
can_be_picked = {
|
|
is_adult = yes
|
|
}
|
|
|
|
can_send = {
|
|
}
|
|
|
|
auto_accept = no
|
|
|
|
ai_accept = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 1000
|
|
scope:recipient = {
|
|
is_obedient_to = scope:actor
|
|
}
|
|
desc = AI_OBEDIENT_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 25
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 1
|
|
}
|
|
}
|
|
desc = INTIMIDATED_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 50
|
|
scope:recipient = {
|
|
has_dread_level_towards = {
|
|
target = scope:actor
|
|
level = 2
|
|
}
|
|
}
|
|
desc = COWED_REASON
|
|
}
|
|
|
|
opinion_modifier = { # Opinion Factor
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1.0
|
|
desc = AI_OPINION_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -25
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
is_councillor = yes
|
|
has_any_court_position = yes
|
|
}
|
|
}
|
|
desc = AI_EMPLOYED_COURTIER_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -15
|
|
scope:secondary_actor = {
|
|
is_knight = yes
|
|
}
|
|
desc = AI_IS_KNIGHT_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -50
|
|
exists = scope:secondary_actor.inspiration
|
|
desc = AI_INSPIRED_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -25
|
|
scope:secondary_actor = {
|
|
is_close_or_extended_family_of = scope:recipient
|
|
}
|
|
desc = AI_FAMILY_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -50
|
|
scope:secondary_actor = {
|
|
has_relation_friend = scope:recipient
|
|
}
|
|
desc = AI_FRIEND_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -50
|
|
scope:secondary_actor = {
|
|
is_consort_of = scope:recipient
|
|
}
|
|
desc = AI_SPOUSE_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = -50
|
|
scope:secondary_actor = {
|
|
is_child_of = scope:recipient
|
|
}
|
|
desc = AI_CHILD_REASON
|
|
}
|
|
|
|
modifier = {
|
|
add = 1000
|
|
scope:secondary_actor = {
|
|
has_relation_rival = scope:recipient
|
|
}
|
|
desc = AI_RIVAL_REASON
|
|
}
|
|
}
|
|
|
|
ai_potential = {
|
|
OR = {
|
|
has_trait = lustful
|
|
ai_honor <= 0
|
|
}
|
|
any_tributary = { }
|
|
}
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = 100
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
sum_of_all_skills_value >= sum_of_all_skills_threshold_good
|
|
martial >= monumentally_high_skill_rating
|
|
prowess >= extremely_high_skill_rating
|
|
exists = inspiration
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_chancellor ?= { diplomacy < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_steward ?= { stewardship < monumentally_high_skill_rating }
|
|
}
|
|
AND = {
|
|
diplomacy >= monumentally_high_skill_rating
|
|
scope:actor.cp:councillor_spymaster ?= { intrigue < monumentally_high_skill_rating }
|
|
}
|
|
has_conventionally_attractive_trigger = yes
|
|
num_of_good_genetic_traits > 1
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:recipient = {
|
|
OR = {
|
|
has_relation_friend = scope:actor
|
|
has_relation_lover = scope:actor
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
factor = 0
|
|
scope:secondary_actor = {
|
|
OR = {
|
|
has_conventionally_ugly_trigger = yes
|
|
age >= 30
|
|
is_visibly_fertile = no
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
on_send = {
|
|
scope:secondary_actor = { # to block the same character from being offered twice
|
|
add_character_flag = {
|
|
flag = has_been_offered_as_concubine
|
|
days = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
on_accept = {
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
scope:secondary_actor = {
|
|
NOR = {
|
|
is_consort_of = scope:recipient
|
|
is_close_or_extended_family_of = scope:recipient
|
|
}
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = upset_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
else = {
|
|
scope:secondary_actor = { save_scope_as = relationship_reason_involved_character }
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_demanded_concubine
|
|
CHARACTER = scope:actor
|
|
OPINION = 0
|
|
}
|
|
add_opinion = {
|
|
target = scope:actor
|
|
modifier = upset_opinion
|
|
opinion = -50
|
|
}
|
|
clear_saved_scope = secondary_actor
|
|
}
|
|
}
|
|
demand_concubine_interaction_on_accept_effect = yes
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = msg_concubine_demand_rejected_title
|
|
right_icon = scope:recipient
|
|
left_icon = scope:secondary_actor
|
|
custom_tooltip = msg_courtier_demand_rejected
|
|
}
|
|
}
|
|
scope:actor = {
|
|
add_opinion = {
|
|
target = scope:recipient
|
|
modifier = upset_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
### Offer Tributary Status - bilateral
|
|
# actor = suzerain
|
|
# recipient = tributary
|
|
|
|
offer_tributary_status_interaction = { #Embrace as Tributary
|
|
category = interaction_category_vassal
|
|
common_interaction = yes
|
|
icon = icon_liege
|
|
|
|
desc = offer_tributary_status_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_allows = ask_for_tribute #Mandala Government
|
|
is_landed = yes
|
|
NOT = {
|
|
this = scope:recipient
|
|
top_suzerain = scope:recipient.top_suzerain # ensures the actor and recipient is not already in the same "suzerain bloc"
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
this != scope:actor
|
|
is_independent_ruler = yes # target cannot be a vassal
|
|
is_landed = yes
|
|
NOT = { government_has_flag = cannot_be_vassal_or_liege }
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
NOT = { has_truce = scope:actor }
|
|
is_physically_able = yes
|
|
custom_tooltip = {
|
|
text = offer_tributary_status_interaction_cant_use_tributaries_tt
|
|
can_have_tributaries_trigger = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
trigger_if = {
|
|
limit = { is_tributary = yes }
|
|
NOT = { scope:actor = scope:recipient.suzerain }
|
|
custom_tooltip = {
|
|
text = offer_tributary_status_interaction_tributary_was_recently_subjugated
|
|
NOT = { has_truce = scope:recipient.suzerain }
|
|
}
|
|
}
|
|
trigger_else = { is_tributary = no }
|
|
custom_tooltip = {
|
|
text = offer_tributary_status_interaction_cooldown_active_tt
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
modifier = tributary_request_denied_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = offer_tributary_status_interaction_warred_cooldown_active_tt
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
modifier = warred_into_submission_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
trigger_if = {
|
|
limit = { government_has_flag = government_is_celestial }
|
|
highest_held_title_tier <= tier_duchy
|
|
}
|
|
trigger_else = { highest_held_title_tier < tier_hegemony } #Hegemons bow to one
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
piety = {
|
|
value = {
|
|
value = {
|
|
value = minor_piety_value
|
|
divide = 2
|
|
}
|
|
multiply = scope:actor.primary_title.tier
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
has_opinion_modifier = {
|
|
modifier = tributary_ceased_payments_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
multiply = activity_cost_scale_by_era
|
|
}
|
|
#Mandala Godking AI
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_variable = mandala_godking
|
|
is_ai = yes
|
|
}
|
|
}
|
|
multiply = 0.25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = OFFER_TRIBUTARY_STATUS_INTERACTION_NOTIFICATION
|
|
|
|
# Low starting obligations
|
|
send_option = {
|
|
flag = low_obligations
|
|
localization = low_tributary_obligations
|
|
starts_enabled = {
|
|
scope:actor = { is_ai = yes }
|
|
}
|
|
}
|
|
|
|
# Medium starting obligations
|
|
send_option = {
|
|
flag = normal_obligations
|
|
localization = normal_tributary_obligations
|
|
starts_enabled = {
|
|
scope:actor = { is_ai = no }
|
|
}
|
|
is_valid = {
|
|
scope:actor = { is_ai = no }
|
|
}
|
|
}
|
|
|
|
# High starting obligations
|
|
send_option = {
|
|
flag = high_obligations
|
|
localization = high_tributary_obligations
|
|
is_valid = {
|
|
scope:actor = { is_ai = no }
|
|
}
|
|
}
|
|
|
|
send_options_exclusive = yes
|
|
|
|
on_accept = {
|
|
#They have a Suzerain? Uh-oh
|
|
if = {
|
|
limit = {
|
|
scope:recipient = { is_tributary = yes }
|
|
}
|
|
show_as_tooltip = {
|
|
scope:recipient = {
|
|
end_tributary = yes
|
|
}
|
|
random_list = {
|
|
50 = {
|
|
show_chance = no
|
|
desc = offer_tributary_status_interaction_suzerain_intervene.t
|
|
custom_tooltip = offer_tributary_status_interaction_suzerain_starts_war_tt
|
|
}
|
|
50 = {
|
|
show_chance = no
|
|
desc = offer_tributary_status_interaction_suzerain_nothing.t
|
|
mandala_embrace_tributary_effect = yes
|
|
}
|
|
}
|
|
}
|
|
#Trigger the Suzerain
|
|
scope:recipient.suzerain = { trigger_event = tgp_east_asia_interaction_events.0030 }
|
|
}
|
|
#No Suzerain? No problem!
|
|
else = {
|
|
mandala_embrace_tributary_effect = yes
|
|
}
|
|
#Drop the Confederation pls
|
|
scope:recipient = {
|
|
if = {
|
|
limit = {
|
|
is_confederation_member = yes
|
|
confederation ?= { is_house_based = no }
|
|
}
|
|
confederation = { remove_confederation_member = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
trigger_event = char_interaction.0363
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
modifier = tributary_request_denied_opinion # this opinion also acts as a built-in cooldown
|
|
target = scope:actor
|
|
years = 3
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_maybe = yes
|
|
|
|
ai_potential = {
|
|
is_independent_ruler = yes
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = neighboring_rulers_including_tributary_borders
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 24
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
|
|
force_notification = yes
|
|
|
|
ai_will_do = {
|
|
base = 0
|
|
|
|
modifier = {
|
|
add = {
|
|
add = scope:recipient.gold
|
|
divide = 10
|
|
max = 100
|
|
}
|
|
desc = accumulated_wealth_reason
|
|
}
|
|
|
|
ai_military_threat_modifier = { SENDER = scope:actor RECEIVER = scope:recipient MULTIPLIER = -1 }
|
|
|
|
modifier = { # Generally don't try to tributarize those of higher rank than you
|
|
trigger = {
|
|
"scope:recipient.tier_difference(scope:actor)" > 1
|
|
}
|
|
add = -20
|
|
}
|
|
|
|
modifier = { # Generally don't try to tributarize those of higher piety_level than you
|
|
trigger = {
|
|
scope:recipient.piety_level > scope:actor.piety_level
|
|
}
|
|
add = -30
|
|
}
|
|
|
|
modifier = { # Remote Realm.
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
|
|
}
|
|
}
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= squared_distance_major } }
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
modifier = { # Remote Realm.
|
|
trigger = {
|
|
NOT = {
|
|
scope:recipient = {
|
|
any_land_neighboring_realm_with_tributaries_owner = {
|
|
this = scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
|
|
#Generally don't try to Tributarize those larger than you
|
|
modifier = {
|
|
trigger = {
|
|
scope:actor.realm_size < scope:recipient.realm_size
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 5
|
|
ai_max_reply_days = 10
|
|
|
|
ai_accept = {
|
|
base = -50
|
|
#I am a Tribal!
|
|
modifier = {
|
|
scope:recipient = { government_has_flag = government_is_tribal }
|
|
add = 30
|
|
desc = recipient_is_a_tribal_government
|
|
}
|
|
#... but I am in a confederation
|
|
modifier = {
|
|
scope:recipient = { is_confederation_member = yes }
|
|
add = -50
|
|
desc = recipient_is_in_a_confederation
|
|
}
|
|
|
|
#Your Radiance
|
|
#Radiance Value x2
|
|
modifier = {
|
|
scope:actor = { has_unruined_mandala_capital_trigger = yes }
|
|
add = {
|
|
value = scope:actor.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
desc = actor_positive_mandala_radiance
|
|
}
|
|
#Are they independent but a neighboring Mandala more Radiant than you?
|
|
#We reduce acceptance by the radience difference x2
|
|
modifier = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:actor = { has_unruined_mandala_capital_trigger = yes }
|
|
scope:recipient = {
|
|
is_tributary = no
|
|
OR = {
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
OR = {
|
|
any_neighboring_top_liege_realm_owner = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
government_has_flag = government_is_mandala
|
|
NOR = {
|
|
this = scope:actor
|
|
this = scope:recipient
|
|
}
|
|
save_temporary_scope_as = suzerain_comparison
|
|
}
|
|
any_neighboring_top_suzerain_realm_owner ?= {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
government_has_flag = government_is_mandala
|
|
NOR = {
|
|
this = scope:actor
|
|
this = scope:recipient
|
|
}
|
|
save_temporary_scope_as = suzerain_comparison
|
|
}
|
|
}
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
add = {
|
|
#Double it as we would with your own radiance impact above and reduce acceptance by that value
|
|
value = {
|
|
value = scope:suzerain_comparison.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
multiply = -1
|
|
}
|
|
desc = other_devaraja_radiance
|
|
}
|
|
#Is their current Devaraja Suzerain more Radiant than you?
|
|
#We reduce acceptance by the radiance difference x2
|
|
modifier = {
|
|
trigger_if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
overlord = {
|
|
government_has_flag = government_is_mandala
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value > 0
|
|
}
|
|
}
|
|
scope:actor = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
}
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
add = {
|
|
#Double it as we would with your own radiance impact above and reduce acceptance by that value
|
|
value = {
|
|
value = scope:recipient.overlord.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
multiply = -1
|
|
}
|
|
desc = devaraja_overlord_radiance
|
|
}
|
|
|
|
modifier = {
|
|
desc = is_prosperity_mandala_tributary
|
|
scope:recipient = {
|
|
is_tributary = yes
|
|
suzerain = { has_realm_law_flag = tributaries_less_likely_to_break_free }
|
|
}
|
|
add = 15
|
|
}
|
|
|
|
#
|
|
modifier = {
|
|
desc = tgp_sea_legacy_2_modifier_desc
|
|
scope:actor = {
|
|
dynasty ?= {
|
|
has_dynasty_perk = tgp_sea_legacy_2
|
|
}
|
|
}
|
|
add = tgp_sea_legacy_tributary_acceptance_value
|
|
}
|
|
|
|
#Mandala Piety Level
|
|
#This is only checked if you are not a Devaraja/haven't got a capital temple complex - Otherwise we use Radiance
|
|
mandala_devaraja_piety_level_add_weight_modifier = { DEVARAJA = scope:actor }
|
|
|
|
#Tributary Realm Size
|
|
subject_realm_size_lose_weight_modifier = {
|
|
DEVARAJA = scope:actor
|
|
SUBJECT = scope:recipient
|
|
}
|
|
|
|
ai_military_threat_modifier = { SENDER = scope:recipient RECEIVER = scope:actor MULTIPLIER = 1 } # if the actor is a major threat to the recipient they're more likely to accept
|
|
|
|
modifier = { # I have a Capital Temple Complex of my own (I am also a God King)
|
|
desc = tributary_interaction_aibehavior_recipient_capital_complex
|
|
trigger = {
|
|
scope:recipient.capital_province ?= {
|
|
has_building_with_flag = mandala_capital_building
|
|
has_ruined_great_building = no
|
|
}
|
|
}
|
|
add = -200
|
|
}
|
|
|
|
modifier = { # I am higher rank than you
|
|
desc = tributary_interaction_aibehavior_recipient_tier_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
highest_held_title_tier > scope:actor.highest_held_title_tier
|
|
}
|
|
}
|
|
add = {
|
|
value = scope:recipient.highest_held_title_tier
|
|
subtract = scope:actor.highest_held_title_tier
|
|
multiply = 50
|
|
multiply = -1
|
|
}
|
|
}
|
|
|
|
modifier = { # Same Faith and Actor is a god King
|
|
desc = embrace_as_tributary_interaction_same_faith
|
|
trigger = {
|
|
scope:actor.faith = scope:recipient.faith
|
|
scope:actor.capital_province = {
|
|
has_building_with_flag = mandala_capital_building
|
|
has_ruined_great_building = no
|
|
}
|
|
}
|
|
add = {
|
|
value = 10
|
|
}
|
|
}
|
|
|
|
modifier = { # Different faith, no pluralism.
|
|
desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
faith = {
|
|
NOR = { # Of two different faiths AND the potential tributary's faith is not pluralistic
|
|
this = scope:actor.faith
|
|
has_doctrine = doctrine_pluralism_pluralistic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -25
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:recipient.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:actor.faith
|
|
value >= faith_evil_level
|
|
}
|
|
}
|
|
}
|
|
add = -25
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Different religion Family - We prefer god kings to be vaguely within our own world view
|
|
desc = embrace_as_tributary_interaction_other_religion_family
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = { government_has_flag = government_is_wanua }
|
|
}
|
|
scope:actor.faith.religion = {
|
|
switch = {
|
|
trigger = is_in_family
|
|
rf_pagan = {
|
|
scope:recipient.faith.religion = { NOT = { is_in_family = rf_pagan } }
|
|
}
|
|
rf_sinitic = {
|
|
scope:recipient.faith.religion = { NOT = { is_in_family = rf_sinitic } }
|
|
}
|
|
rf_eastern = {
|
|
scope:recipient.faith.religion = { NOT = { is_in_family = rf_eastern } }
|
|
}
|
|
rf_abrahamic = {
|
|
scope:recipient.faith.religion = { NOT = { is_in_family = rf_abrahamic } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add = {
|
|
value = -25
|
|
if = {
|
|
limit = {
|
|
government_has_flag = government_is_theocracy
|
|
}
|
|
subtract = 975 #Bishops, popes, etc, feel more strongly about this.
|
|
}
|
|
}
|
|
}
|
|
# They are not Mandalas nor Tribes
|
|
modifier = {
|
|
desc = embrace_as_tributary_interaction_wrong_government
|
|
scope:recipient = {
|
|
NOR = {
|
|
government_has_flag = government_is_mandala
|
|
government_has_flag = government_is_tribal
|
|
}
|
|
}
|
|
add = {
|
|
value = -50
|
|
if = {
|
|
limit = {
|
|
scope:recipient = {
|
|
OR = {
|
|
government_allows = administrative
|
|
government_has_flag = government_is_nomadic
|
|
}
|
|
}
|
|
#If you're radiant enough...
|
|
scope:actor = {
|
|
trigger_if = {
|
|
limit = { has_unruined_mandala_capital_trigger = yes }
|
|
mandala_radiance_value < 80
|
|
}
|
|
}
|
|
}
|
|
subtract = 950 #Some governments are especially unlikely to agree
|
|
}
|
|
#Not radiant enough
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value <= 40
|
|
}
|
|
}
|
|
subtract = 100
|
|
}
|
|
}
|
|
}
|
|
#We single out Japan specifically
|
|
modifier = {
|
|
desc = embrace_as_tributary_interaction_wrong_government
|
|
scope:recipient = { government_is_japanese_trigger = yes }
|
|
add = -1000
|
|
}
|
|
#Far away
|
|
modifier = {
|
|
desc = offer_vassalization_interaction_aibehavior_remoterealm_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = {
|
|
OR = {
|
|
this = scope:actor
|
|
top_overlord ?= scope:actor
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_if = { #Islands we can get farther away
|
|
limit = {
|
|
scope:recipient.capital_county ?= { is_coastal_county = yes }
|
|
any_sub_realm_county = { is_coastal_county = yes }
|
|
}
|
|
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= squared_distance_huge } }
|
|
}
|
|
trigger_else = { #Inland is harder
|
|
scope:recipient.capital_province ?= { squared_distance = { target = scope:actor.capital_province value >= squared_distance_major } }
|
|
}
|
|
}
|
|
add = -250
|
|
}
|
|
|
|
#Monotheist targets really shouldn't want to... unless you're Radiant enough
|
|
modifier = {
|
|
scope:recipient = {
|
|
faith = { has_doctrine = doctrine_monotheist }
|
|
}
|
|
#If you're radiant enough...
|
|
scope:actor = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value < 25
|
|
}
|
|
add = -200
|
|
desc = they_are_monotheist
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
faith = { has_doctrine = doctrine_monotheist }
|
|
}
|
|
#If you're radiant enough...
|
|
scope:actor = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value >= 25
|
|
mandala_radiance_value < 50
|
|
}
|
|
add = -175
|
|
desc = they_are_monotheist
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
faith = { has_doctrine = doctrine_monotheist }
|
|
}
|
|
#If you're radiant enough...
|
|
scope:actor = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value >= 75
|
|
mandala_radiance_value < 100
|
|
}
|
|
add = -150
|
|
desc = they_are_monotheist
|
|
}
|
|
modifier = {
|
|
scope:recipient = {
|
|
faith = { has_doctrine = doctrine_monotheist }
|
|
}
|
|
#If you're radiant enough...
|
|
scope:actor = {
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value >= 100
|
|
}
|
|
add = -100
|
|
desc = they_are_monotheist
|
|
}
|
|
|
|
### MANDALA ###
|
|
#Added threshold for Mandalas who already are Tributaries
|
|
modifier = {
|
|
scope:recipient = { is_tributary = yes }
|
|
NOT = { scope:recipient.suzerain = scope:actor }
|
|
add = {
|
|
value = 0
|
|
if = {
|
|
limit = {
|
|
scope:recipient.suzerain = { has_unruined_mandala_capital_trigger = yes }
|
|
}
|
|
subtract = {
|
|
value = scope:recipient.mandala_radiance_value
|
|
multiply = 3
|
|
}
|
|
}
|
|
else = { add = -15 }
|
|
max = -10
|
|
}
|
|
desc = already_tributary_threshold_duchy_suzerain
|
|
}
|
|
|
|
#AI Godkings should NOT want to become subjects
|
|
modifier = {
|
|
has_variable = mandala_godking
|
|
add = -1000
|
|
desc = mandala_ai_godking_modifier
|
|
}
|
|
|
|
#MINOR MODIFIERS
|
|
modifier = { # the bolder they are, the less likely they will agree to this and the more cowardly the more likely
|
|
NOT = { ai_boldness = 0 }
|
|
add = {
|
|
value = ai_boldness
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_BOLDNESS_REASON
|
|
}
|
|
|
|
modifier = { # the greedier they are, the less likely they will agree to this
|
|
ai_greed > 0
|
|
add = {
|
|
value = ai_greed
|
|
multiply = -1
|
|
divide = 4
|
|
}
|
|
desc = TRIBUTARY_GREED_REASON
|
|
}
|
|
modifier = { # Rivalry modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -30
|
|
}
|
|
modifier = { # Nemesis modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { # Same Dynasty modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
|
|
modifier = { # Cultural Acceptance
|
|
add = -5
|
|
desc = cultural_acceptance_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = { # cultural condition below doesn't have to apply if both actor and recipient have nomadic_philosophy
|
|
has_trait = nomadic_philosophy
|
|
scope:recipient = { has_trait = nomadic_philosophy }
|
|
}
|
|
NOT = { has_same_culture_as = scope:recipient }
|
|
culture = {
|
|
cultural_acceptance = { target = scope:recipient.culture value < 50 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Same language
|
|
add = 5
|
|
desc = speaks_same_language_interaction_reason
|
|
trigger = {
|
|
scope:actor = {
|
|
knows_language_of_culture = scope:recipient.culture
|
|
}
|
|
}
|
|
}
|
|
|
|
modifier = { # Encircled
|
|
desc = offer_vassalization_interaction_aibehavior_encircled_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = { this != scope:actor }
|
|
}
|
|
NOT = {
|
|
any_realm_county = { is_coastal_county = yes }
|
|
}
|
|
}
|
|
}
|
|
add = 20
|
|
}
|
|
|
|
#Mandala Obligation level matters
|
|
modifier = {
|
|
trigger_if = {
|
|
limit = { exists = scope:low_obligations }
|
|
scope:low_obligations = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
add = 15
|
|
desc = proposed_obligation_level_low
|
|
}
|
|
modifier = {
|
|
trigger_if = {
|
|
limit = { exists = scope:high_obligations }
|
|
scope:high_obligations = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
add = -30
|
|
desc = proposed_obligation_level_high
|
|
}
|
|
|
|
#Legitimacy
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -15
|
|
scope:actor = {
|
|
has_legitimacy_flag = slightly_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -25
|
|
scope:actor = {
|
|
has_legitimacy_flag = reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -50
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "LOW_LEGITIMACY_REASON"
|
|
add = -75
|
|
scope:actor = {
|
|
has_legitimacy_flag = massively_reduced_tributarization_acceptance
|
|
}
|
|
}
|
|
|
|
# HIGH LEGITIMACY
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 25
|
|
scope:actor = {
|
|
has_legitimacy_flag = increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 50
|
|
scope:actor = {
|
|
has_legitimacy_flag = very_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
modifier = {
|
|
desc = "HIGH_LEGITIMACY_REASON"
|
|
add = 75
|
|
scope:actor = {
|
|
has_legitimacy_flag = extra_increased_tributarization_acceptance
|
|
}
|
|
}
|
|
|
|
|
|
# OPINION INFLUENCE
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
### Reassert Tributary - unilateral
|
|
# actor = suzerain
|
|
# recipient = tributary
|
|
|
|
reassert_tributary_interaction = {
|
|
category = interaction_category_vassal
|
|
common_interaction = yes
|
|
icon = icon_liege
|
|
|
|
desc = reassert_tributary_interaction_desc
|
|
|
|
is_shown = {
|
|
scope:actor = {
|
|
government_has_flag = government_is_mandala
|
|
}
|
|
scope:recipient = {
|
|
is_tributary_of = scope:actor
|
|
is_ai = yes
|
|
cease_tribute_payments_ai_chance > 0
|
|
}
|
|
}
|
|
|
|
is_valid_showing_failures_only = {
|
|
scope:actor = {
|
|
is_physically_able = yes
|
|
}
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = reassert_tributary_interaction_cooldown_active_tt
|
|
NOT = {
|
|
has_opinion_modifier = {
|
|
modifier = reassertion_request_denied_opinion
|
|
target = scope:actor
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = reassert_tributary_interaction_reasserted_recently_tt
|
|
NOT = { has_variable = tributary_has_been_reasserted_recently }
|
|
}
|
|
}
|
|
}
|
|
|
|
cost = {
|
|
piety = {
|
|
value = minor_piety_value
|
|
multiply = activity_cost_scale_by_era
|
|
#Mandala Godking AI
|
|
if = {
|
|
limit = {
|
|
scope:actor = {
|
|
has_variable = mandala_godking
|
|
is_ai = yes
|
|
}
|
|
}
|
|
multiply = 0.25
|
|
}
|
|
}
|
|
}
|
|
|
|
greeting = positive
|
|
notification_text = OFFER_TRIBUTARY_STATUS_INTERACTION_NOTIFICATION
|
|
|
|
#Lower Obligations
|
|
##Taxes
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
OR = {
|
|
vassal_contract_obligation_level:mandala_government_taxes = 1
|
|
vassal_contract_obligation_level:mandala_government_taxes = 0
|
|
}
|
|
}
|
|
}
|
|
is_valid = {
|
|
custom_tooltip = {
|
|
text = ALREADY_LOWEST_TAX_OBLIGATION
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_taxes = 1
|
|
}
|
|
}
|
|
}
|
|
flag = decrease_tax_obligation_1
|
|
localization = DECREASE_TAX_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_taxes = 2
|
|
}
|
|
}
|
|
flag = decrease_tax_obligation_2
|
|
localization = DECREASE_TAX_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_taxes = 3
|
|
}
|
|
}
|
|
flag = decrease_tax_obligation_3
|
|
localization = DECREASE_TAX_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_taxes = 4
|
|
}
|
|
}
|
|
flag = decrease_tax_obligation_4
|
|
localization = DECREASE_TAX_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_taxes = 5
|
|
}
|
|
}
|
|
flag = decrease_tax_obligation_5
|
|
localization = DECREASE_TAX_OBLIGATIONS
|
|
}
|
|
|
|
##Piety
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
has_subject_contract_group = tributary_mandala
|
|
OR = {
|
|
vassal_contract_obligation_level:mandala_government_piety = 1
|
|
vassal_contract_obligation_level:mandala_government_piety = 0
|
|
}
|
|
}
|
|
}
|
|
is_valid = {
|
|
custom_tooltip = {
|
|
text = ALREADY_LOWEST_PIETY_OBLIGATION
|
|
scope:recipient = {
|
|
has_subject_contract_group = tributary_mandala
|
|
vassal_contract_obligation_level:mandala_government_piety = 1
|
|
}
|
|
}
|
|
}
|
|
flag = decrease_piety_obligation_1
|
|
localization = DECREASE_PIETY_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
has_subject_contract_group = tributary_mandala
|
|
vassal_contract_obligation_level:mandala_government_piety = 2
|
|
}
|
|
}
|
|
flag = decrease_piety_obligation_2
|
|
localization = DECREASE_PIETY_OBLIGATIONS
|
|
}
|
|
|
|
##Prestige
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
OR = {
|
|
vassal_contract_obligation_level:mandala_government_prestige = 1
|
|
vassal_contract_obligation_level:mandala_government_prestige = 0
|
|
}
|
|
}
|
|
}
|
|
is_valid = {
|
|
custom_tooltip = {
|
|
text = ALREADY_LOWEST_PRESTIGE_OBLIGATION
|
|
scope:recipient = {
|
|
has_subject_contract_group = tributary_mandala
|
|
vassal_contract_obligation_level:mandala_government_prestige = 1
|
|
}
|
|
}
|
|
}
|
|
flag = decrease_prestige_obligation_1
|
|
localization = DECREASE_PRESTIGE_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
vassal_contract_obligation_level:mandala_government_prestige = 2
|
|
}
|
|
}
|
|
flag = decrease_prestige_obligation_2
|
|
localization = DECREASE_PRESTIGE_OBLIGATIONS
|
|
}
|
|
|
|
##Levies
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
OR = {
|
|
vassal_contract_obligation_level:mandala_government_levies = 1
|
|
vassal_contract_obligation_level:mandala_government_levies = 0
|
|
}
|
|
}
|
|
}
|
|
is_valid = {
|
|
custom_tooltip = {
|
|
text = ALREADY_LOWEST_LEVY_OBLIGATION
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_levies = 1
|
|
}
|
|
}
|
|
}
|
|
flag = decrease_levy_obligation_1
|
|
localization = DECREASE_LEVY_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_levies = 2
|
|
}
|
|
}
|
|
flag = decrease_levy_obligation_2
|
|
localization = DECREASE_LEVY_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_levies = 3
|
|
}
|
|
}
|
|
flag = decrease_levy_obligation_3
|
|
localization = DECREASE_LEVY_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_levies = 4
|
|
}
|
|
}
|
|
flag = decrease_levy_obligation_4
|
|
localization = DECREASE_LEVY_OBLIGATIONS
|
|
}
|
|
send_option = {
|
|
is_shown = {
|
|
scope:recipient = {
|
|
OR = {
|
|
has_subject_contract_group = tributary_mandala
|
|
has_subject_contract_group = tributary_mandala_tribal
|
|
}
|
|
vassal_contract_obligation_level:mandala_government_levies = 5
|
|
}
|
|
}
|
|
flag = decrease_levy_obligation_5
|
|
localization = DECREASE_LEVY_OBLIGATIONS
|
|
}
|
|
|
|
#Dread
|
|
send_option = {
|
|
is_valid = {
|
|
scope:actor = { dread >= high_dread }
|
|
}
|
|
flag = dread
|
|
localization = GENERIC_USE_DREAD
|
|
}
|
|
|
|
#Strong Hook
|
|
send_option = {
|
|
is_shown = {
|
|
NOT = {
|
|
scope:actor = {
|
|
house = { has_house_head_parameter = unlock_weak_hooks_to_reassert_tributaries }
|
|
}
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:actor = { has_strong_usable_hook = scope:recipient }
|
|
}
|
|
flag = hook
|
|
localization = GENERIC_USE_STRONG_HOOK
|
|
}
|
|
should_use_extra_icon = {
|
|
scope:actor = { has_strong_usable_hook = scope:recipient }
|
|
}
|
|
extra_icon = "gfx/interface/icons/character_interactions/hook_strong.dds"
|
|
|
|
#Any Hook
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = {
|
|
house = { has_house_head_parameter = unlock_weak_hooks_to_reassert_tributaries }
|
|
}
|
|
}
|
|
is_valid = {
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
flag = any_hook
|
|
localization = GENERIC_USE_HOOK
|
|
}
|
|
|
|
#Pay Piety
|
|
send_option = {
|
|
is_shown = {
|
|
scope:actor = { has_realm_law_flag = can_use_piety_to_reassert_tributary }
|
|
}
|
|
is_valid = {
|
|
scope:actor.piety >= piety_bribe_value
|
|
}
|
|
flag = pay_piety
|
|
localization = PAY_PIETY
|
|
current_description = {
|
|
# Triggered desc so that we don't get a weird double tooltip.
|
|
triggered_desc = {
|
|
trigger = { scope:actor.piety >= piety_bribe_value }
|
|
desc = SCHEME_AGENT_PIETY_VALID
|
|
}
|
|
}
|
|
}
|
|
|
|
send_options_exclusive = no
|
|
|
|
on_accept = {
|
|
scope:recipient = {
|
|
custom_tooltip = {
|
|
text = reassert_tributary_interaction_effect_tt
|
|
set_variable = {
|
|
name = tributary_has_been_reasserted_recently
|
|
value = flag:yes
|
|
months = reassert_stickiness_months
|
|
}
|
|
}
|
|
}
|
|
|
|
#LOWER OBLIGATIONS
|
|
##Taxes
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
scope:decrease_tax_obligation_1 = yes
|
|
scope:decrease_tax_obligation_2 = yes
|
|
scope:decrease_tax_obligation_3 = yes
|
|
scope:decrease_tax_obligation_4 = yes
|
|
scope:decrease_tax_obligation_5 = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_taxes = 5 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_taxes
|
|
level = 4
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_taxes = 4 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_taxes
|
|
level = 3
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_taxes = 3 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_taxes
|
|
level = 2
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_taxes = 2 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_taxes
|
|
level = 1
|
|
}
|
|
}
|
|
else = {
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_taxes
|
|
level = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
##Piety
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
scope:decrease_piety_obligation_1 = yes
|
|
scope:decrease_piety_obligation_2 = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_piety = 2 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_piety
|
|
level = 1
|
|
}
|
|
}
|
|
else = {
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_piety
|
|
level = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
##Prestige
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
scope:decrease_prestige_obligation_1 = yes
|
|
scope:decrease_prestige_obligation_2 = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_prestige = 2 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_prestige
|
|
level = 1
|
|
}
|
|
}
|
|
else = {
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_prestige
|
|
level = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
##Levies
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
scope:decrease_levy_obligation_1 = yes
|
|
scope:decrease_levy_obligation_2 = yes
|
|
scope:decrease_levy_obligation_3 = yes
|
|
scope:decrease_levy_obligation_4 = yes
|
|
scope:decrease_levy_obligation_5 = yes
|
|
}
|
|
}
|
|
scope:recipient = {
|
|
if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_levies = 5 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_levies
|
|
level = 4
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_levies = 4 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_levies
|
|
level = 3
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_levies = 3 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_levies
|
|
level = 2
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { vassal_contract_obligation_level:mandala_government_levies = 2 }
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_levies
|
|
level = 1
|
|
}
|
|
}
|
|
else = {
|
|
tributary_contract_set_obligation_level = {
|
|
type = mandala_government_levies
|
|
level = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Strong hook
|
|
if = {
|
|
limit = {
|
|
scope:hook = yes
|
|
scope:actor = { has_strong_usable_hook = scope:recipient }
|
|
}
|
|
scope:actor = {
|
|
use_hook = scope:recipient
|
|
}
|
|
}
|
|
#Weak Hook
|
|
if = {
|
|
limit = {
|
|
scope:any_hook = yes
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
scope:actor = {
|
|
use_hook = scope:recipient
|
|
}
|
|
}
|
|
#Dread
|
|
if = {
|
|
limit = { scope:dread = yes }
|
|
scope:actor = {
|
|
add_piety = minor_piety_loss
|
|
}
|
|
scope:recipient = {
|
|
add_opinion = {
|
|
modifier = intimidated_tributary_opinion
|
|
target = scope:actor
|
|
opinion = -20
|
|
}
|
|
}
|
|
}
|
|
#Piety
|
|
if = {
|
|
limit = { scope:pay_piety = yes }
|
|
scope:actor = {
|
|
add_piety = {
|
|
value = {
|
|
add = piety_bribe_half_value
|
|
multiply = -1
|
|
}
|
|
}
|
|
}
|
|
scope:recipient = { add_piety = piety_bribe_half_value }
|
|
}
|
|
|
|
#Look ma', no hands!
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
scope:decrease_tax_obligation_1 = yes
|
|
scope:decrease_tax_obligation_2 = yes
|
|
scope:decrease_tax_obligation_3 = yes
|
|
scope:decrease_tax_obligation_4 = yes
|
|
scope:decrease_tax_obligation_5 = yes
|
|
scope:decrease_piety_obligation_1 = yes
|
|
scope:decrease_piety_obligation_2 = yes
|
|
scope:decrease_prestige_obligation_1 = yes
|
|
scope:decrease_prestige_obligation_2 = yes
|
|
scope:decrease_levy_obligation_1 = yes
|
|
scope:decrease_levy_obligation_2 = yes
|
|
scope:decrease_levy_obligation_3 = yes
|
|
scope:decrease_levy_obligation_4 = yes
|
|
scope:decrease_levy_obligation_5 = yes
|
|
scope:hook = yes
|
|
scope:dread = yes
|
|
scope:any_hook = yes
|
|
scope:pay_piety = yes
|
|
}
|
|
}
|
|
#You're quite the smooth-talker huh
|
|
show_as_tooltip = {
|
|
scope:actor.dynasty ?= {
|
|
add_dynasty_prestige = {
|
|
value = miniscule_dynasty_prestige_value
|
|
divide = 2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:actor = {
|
|
trigger_event = tgp_east_asia_interaction_events.0020
|
|
}
|
|
|
|
}
|
|
|
|
on_decline = {
|
|
scope:actor = {
|
|
show_as_tooltip = { add_prestige = medium_prestige_loss }
|
|
trigger_event = tgp_east_asia_interaction_events.0025
|
|
}
|
|
scope:recipient = {
|
|
show_as_tooltip = {
|
|
add_opinion = {
|
|
modifier = reassertion_request_denied_opinion # this opinion also acts as a built-in cooldown
|
|
target = scope:actor
|
|
opinion = -20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
auto_accept = {
|
|
switch = {
|
|
trigger = always
|
|
scope:any_hook = {
|
|
custom_description = {
|
|
text = "spending_hook"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
OR = {
|
|
AND = {
|
|
scope:hook = yes
|
|
scope:actor = { has_strong_usable_hook = scope:recipient }
|
|
}
|
|
AND = {
|
|
scope:any_hook = yes
|
|
scope:actor = { has_usable_hook = scope:recipient }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:dread = {
|
|
custom_description = {
|
|
text = "leverage_dread_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:dread = yes
|
|
}
|
|
}
|
|
scope:pay_piety = {
|
|
custom_description = {
|
|
text = "pay_piety_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:pay_piety = yes
|
|
}
|
|
}
|
|
scope:decrease_tax_obligation_1 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_tax_obligation_1 = yes
|
|
}
|
|
}
|
|
scope:decrease_tax_obligation_2 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_tax_obligation_2 = yes
|
|
}
|
|
}
|
|
scope:decrease_tax_obligation_3 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_tax_obligation_3 = yes
|
|
}
|
|
}
|
|
scope:decrease_tax_obligation_4 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_tax_obligation_4 = yes
|
|
}
|
|
}
|
|
scope:decrease_tax_obligation_5 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_tax_obligation_5 = yes
|
|
}
|
|
}
|
|
scope:decrease_piety_obligation_1 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_piety_obligation_1 = yes
|
|
}
|
|
}
|
|
scope:decrease_piety_obligation_2 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_prestige_obligation_2 = yes
|
|
}
|
|
}
|
|
scope:decrease_levy_obligation_1 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_levy_obligation_1 = yes
|
|
}
|
|
}
|
|
scope:decrease_levy_obligation_2 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_levy_obligation_2 = yes
|
|
}
|
|
}
|
|
scope:decrease_levy_obligation_3 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_levy_obligation_3 = yes
|
|
}
|
|
}
|
|
scope:decrease_levy_obligation_4 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_levy_obligation_4 = yes
|
|
}
|
|
}
|
|
scope:decrease_levy_obligation_5 = {
|
|
custom_description = {
|
|
text = "reduce_obligation_tt"
|
|
subject = scope:actor
|
|
object = scope:recipient
|
|
scope:decrease_levy_obligation_5 = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_maybe = yes
|
|
|
|
ai_potential = {
|
|
government_has_flag = government_is_mandala
|
|
}
|
|
|
|
ai_targets = {
|
|
ai_recipients = tributaries
|
|
}
|
|
|
|
ai_frequency_by_tier = {
|
|
barony = 0
|
|
county = 36
|
|
duchy = 12
|
|
kingdom = 12
|
|
empire = 12
|
|
hegemony = 12
|
|
}
|
|
|
|
force_notification = yes
|
|
|
|
ai_will_do = { # AI will often do this to valid targets that aren't a military threat to them, especially if they're rich
|
|
base = 50
|
|
|
|
modifier = { # Remote Realm.
|
|
trigger = {
|
|
scope:actor = {
|
|
NOT = {
|
|
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
|
|
}
|
|
}
|
|
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= squared_distance_major } }
|
|
}
|
|
add = -25
|
|
}
|
|
}
|
|
|
|
ai_min_reply_days = 3
|
|
ai_max_reply_days = 7
|
|
|
|
ai_accept = {
|
|
base = -100
|
|
|
|
ai_military_threat_modifier = { SENDER = scope:recipient RECEIVER = scope:actor MULTIPLIER = 1 } # if the actor is a major threat to the recipient they're more likely to accept
|
|
|
|
# MINOR
|
|
modifier = { # Rivalry modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_rival_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_rival = scope:actor
|
|
NOT = { has_relation_nemesis = scope:actor }
|
|
}
|
|
}
|
|
add = -10
|
|
}
|
|
modifier = { # Nemesis modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_nemesis_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
has_relation_nemesis = scope:actor
|
|
}
|
|
}
|
|
add = -100
|
|
}
|
|
modifier = { # Same Dynasty modifier.
|
|
desc = embrace_tributarization_interaction_aibehavior_dynasty_tt
|
|
trigger = {
|
|
scope:recipient = {
|
|
dynasty = scope:actor.dynasty
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
|
|
modifier = {
|
|
suzerain = {
|
|
government_has_flag = government_is_mandala
|
|
has_unruined_mandala_capital_trigger = yes
|
|
mandala_radiance_value > 0
|
|
}
|
|
add = {
|
|
value = suzerain.mandala_radiance_value
|
|
multiply = 2
|
|
}
|
|
desc = devaraja_overlord_radiance
|
|
}
|
|
|
|
#Devaraja Piety Level
|
|
mandala_devaraja_piety_level_add_weight_modifier = { DEVARAJA = scope:actor }
|
|
|
|
#Tributary Realm Size
|
|
subject_realm_size_lose_weight_modifier = {
|
|
DEVARAJA = scope:actor
|
|
SUBJECT = scope:recipient
|
|
}
|
|
|
|
#Devaraja Mandala Capital
|
|
mandala_devaraja_capital_add_weight_modifier = {
|
|
DEVARAJA = scope:actor
|
|
TRIBUTARY = scope:recipient
|
|
}
|
|
|
|
# OPINION INFLUENCE
|
|
opinion_modifier = { # Compare Opinion modifier.
|
|
who = scope:recipient
|
|
opinion_target = scope:actor
|
|
multiplier = 1
|
|
}
|
|
}
|
|
}
|