revert Alignment
This commit is contained in:
Vannifar 2026-04-25 10:02:11 +02:00
parent 15a5108e23
commit c4b6d9bdeb
250 changed files with 11067 additions and 16365 deletions

View file

@ -3760,7 +3760,7 @@ join_war_interaction = {
}
scope:recipient = {
show_as_tooltip = {
if = { # if war leader is AI, will directly increase friendship for contributing
if = {
limit = {
is_ai = yes
}
@ -3770,7 +3770,7 @@ join_war_interaction = {
REASON = friend_alliance
}
}
else = { # otherwise will create potential friendship
else = {
hidden_effect = { #To nudge friendship
if = {
limit = {
@ -4058,7 +4058,6 @@ join_vassal_war_interaction = {
}
any_in_list = {
list = target_titles
tier <= tier_duchy
count = 1
}

View file

@ -36,7 +36,7 @@ ce1_ask_to_promote_legend_interaction = {
scope:recipient.dynasty = scope:actor.dynasty
scope:recipient = { knows_language_of_culture = scope:actor.culture }
scope:actor = {
has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:recipient }
has_friendly_relationship_with_character_trigger = { CHARACTER = scope:recipient }
}
scope:recipient = {
any_character_to_title_neighboring_county = {

View file

@ -650,14 +650,7 @@ offer_vassalization_interaction = {
character_is_realm_neighbor = scope:recipient
}
}
scope:recipient = {
# landless ruler count as within realm
trigger_if = {
limit = { is_landed = no }
NOT = { capital_county.holder = { target_is_same_character_or_above = scope:actor } }
}
capital_province = { squared_distance = { target = scope:actor.capital_province value < 200000 } }
}
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value < 200000 } }
}
add = -250
}
@ -669,14 +662,7 @@ offer_vassalization_interaction = {
character_is_realm_neighbor = scope:recipient
}
}
scope:recipient = {
# landless ruler count as within realm
trigger_if = {
limit = { is_landed = no }
NOT = { capital_county.holder = { target_is_same_character_or_above = scope:actor } }
}
capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
}
scope:recipient.capital_province = { squared_distance = { target = scope:actor.capital_province value >= 200000 } }
}
add = -500
}
@ -1544,13 +1530,8 @@ offer_fealty_interaction = {
NOT = {
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
}
# landless ruler count as within realm
trigger_if = {
limit = { is_landed = no }
NOT = { capital_county.holder = { target_is_same_character_or_above = scope:actor } }
}
capital_province = { squared_distance = { target = scope:recipient.capital_province value < 200000 } }
}
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value < 200000 } }
}
add = -15
}
@ -1561,13 +1542,14 @@ offer_fealty_interaction = {
NOT = {
any_neighboring_top_liege_realm_owner = { this = scope:recipient }
}
# landless ruler count as within realm
trigger_if = {
limit = { is_landed = no }
NOT = { capital_county.holder = { target_is_same_character_or_above = scope:actor } }
}
capital_province = { squared_distance = { target = scope:recipient.capital_province value >= 200000 } }
}
trigger_if = {
limit = {
exists = scope:recipient.suzerain
scope:recipient.suzerain != scope:actor
}
}
scope:actor.capital_province = { squared_distance = { target = scope:recipient.capital_province value >= 200000 } }
}
add = -25
}

View file

@ -122,7 +122,9 @@ ai_cultural_hybridization_interaction = {
sub_realm_size >= 4
is_physically_able_adult = yes
is_at_war = no
game_rule_can_create_hybird_culture_trigger = yes
NOT = {
has_game_rule = none_hybrid_culture_ai_frequency
}
}
is_shown = {
@ -214,6 +216,11 @@ ai_cultural_hybridization_interaction = {
has_game_rule = less_common_hybrid_culture_ai_frequency
}
modifier = {
factor = 0
exists = global_var:has_ai_hybrid_event_cooldown
}
modifier = {
factor = 0
culture = {

View file

@ -1577,16 +1577,11 @@ diarch_imprison_interaction = {
on_decline = {
scope:actor = {
save_scope_as = use_strife_not_tyranny
imprison_HoF_consequences_effect = yes
imprison_tyranny_effect = yes
}
# Do we want a war or an escape?
scope:recipient = {
add_opinion = {
target = scope:actor
modifier = attempted_imprisonment_opinion
}
# If target is count or higher, we want the option to start a war.
if = {
limit = {
@ -1604,11 +1599,6 @@ diarch_imprison_interaction = {
diarch_declare_recipient_criminal_effect = yes
}
50 = {
trigger = {
scope:actor = {
is_landed = yes # consistent with char_interaction.0283
}
}
show_chance = no
desc = char_interaction.0263.result.war
scope:recipient = {
@ -5020,14 +5010,10 @@ diarch_coup_liege_interaction = {
scope:recipient = scope:actor.liege
}
}
scope:recipient = {
save_scope_as = secondary_recipient
}
scope:recipient = { save_scope_as = secondary_recipient }
}
# Always make sure we're targeting your liege as the recipient for UX consistency.
scope:actor.liege = {
save_scope_as = recipient
}
scope:actor.liege = { save_scope_as = recipient }
}
is_shown = {
@ -5042,11 +5028,12 @@ diarch_coup_liege_interaction = {
is_designated_diarch = yes
}
}
# secondary_recipient is always saved whenever you use it on anyone who isn't yourself or your liege, so we use this fact to validate it after the redirect, otherwise it will show up on every other ruler in the game
trigger_if = {
limit = {
exists = scope:secondary_recipient
}
# Valid on vassals of your liege or your liege themselves.
## More complex triggers don't generally work because redirect brings the interaction back to targeting the liege as scope:recipient, so we're left with this.
### Don't try to improve it, it's not worth it, but if you _do_, then test your changes thoroughly.
#### When this breaks (which it does easily), it tends to mean the interaction shows up as valid against _every_ other character in diplomatic range.
OR = {
scope:recipient = scope:actor.liege
scope:secondary_recipient.liege ?= scope:actor.liege
}
}
@ -5269,18 +5256,12 @@ diarch_coup_liege_interaction = {
# Opinion.
## Of scope:actor.
opinion_modifier = {
trigger = {
exists = scope:secondary_recipient # because the secondary_recipient hasn't been chosen when the interaction is initialized
}
who = scope:secondary_recipient
opinion_target = scope:actor
multiplier = 1
}
## Of scope:recipient.
opinion_modifier = {
trigger = {
exists = scope:secondary_recipient
}
who = scope:secondary_recipient
opinion_target = scope:recipient
multiplier = -0.5
@ -5288,9 +5269,6 @@ diarch_coup_liege_interaction = {
# Personality.
## Values.
ai_value_modifier = {
trigger = {
exists = scope:secondary_recipient
}
who = scope:secondary_recipient
ai_honor = -1
ai_boldness = 0.25
@ -5300,69 +5278,68 @@ diarch_coup_liege_interaction = {
modifier = {
add = diarch_ai_desire_plus_3_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.disloyal
scope:secondary_recipient ?= { has_trait = disloyal }
scope:secondary_recipient = { has_trait = disloyal }
}
### +++ Ambitious.
modifier = {
add = diarch_ai_desire_plus_3_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.ambitious
scope:secondary_recipient ?= { has_trait = ambitious }
scope:secondary_recipient = { has_trait = ambitious }
}
### ++ Arbitrary.
modifier = {
add = diarch_ai_desire_plus_2_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.arbitrary
scope:secondary_recipient ?= { has_trait = arbitrary }
scope:secondary_recipient = { has_trait = arbitrary }
}
### + Fickle.
modifier = {
add = diarch_ai_desire_plus_1_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.fickle
scope:secondary_recipient ?= { has_trait = fickle }
scope:secondary_recipient = { has_trait = fickle }
}
### - Stubborn.
modifier = {
add = diarch_ai_desire_minus_1_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.stubborn
scope:secondary_recipient ?= { has_trait = stubborn }
scope:secondary_recipient = { has_trait = stubborn }
}
### -- Just.
modifier = {
add = diarch_ai_desire_minus_2_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.just
scope:secondary_recipient ?= { has_trait = just }
scope:secondary_recipient = { has_trait = just }
}
### --- Content.
modifier = {
add = diarch_ai_desire_minus_3_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.content
scope:secondary_recipient ?= { has_trait = content }
scope:secondary_recipient = { has_trait = content }
}
### --- Loyal.
modifier = {
add = diarch_ai_desire_minus_3_value
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook.tt.has_trait.loyal
scope:secondary_recipient ?= { has_trait = loyal }
scope:secondary_recipient = { has_trait = loyal }
}
# Hooks.
## Weak hooks are happy to have you in power.
modifier = {
add = 25
scope:secondary_recipient ?= { has_weak_hook = scope:actor }
scope:secondary_recipient = { has_weak_hook = scope:actor }
}
## Strong hooks are *very* happy to have you in power.
modifier = {
add = 75
scope:secondary_recipient ?= { has_strong_hook = scope:actor }
scope:secondary_recipient = { has_strong_hook = scope:actor }
}
## And conversely, don't want you to coup scope:recipient if they've already got a strong hook on them.
modifier = {
add = -100
scope:secondary_recipient ?= { has_strong_hook = scope:recipient }
scope:secondary_recipient = { has_strong_hook = scope:recipient }
}
## Loyalty hooks stop the AI signing up.
modifier = {
exists = scope:secondary_recipient
add = -1000
desc = diarch_coup_liege_interaction.tt.liege_has_loyalty_hook
diarch_loyalty_due_to_hook_trigger = {
@ -5378,12 +5355,12 @@ diarch_coup_liege_interaction = {
# Reduce the malus a little if also allied to scope:actor.
if = {
limit = {
scope:secondary_recipient ?= { is_allied_to = scope:actor }
scope:secondary_recipient = { is_allied_to = scope:actor }
}
add = 50
}
}
scope:secondary_recipient ?= { is_allied_to = scope:recipient }
scope:secondary_recipient = { is_allied_to = scope:recipient }
}
## Heirs don't generally want to betray scope:recipient, as they'll lose out.
modifier = {
@ -7019,11 +6996,9 @@ diarch_swing_scales_currency_interaction = {
scope:actor.var:movement_power_individual >= decent_movement_power_value
}
is_shown = {
exists = scope:actor.var:movement_power_individual
scope:actor = {
government_has_flag = government_is_celestial
is_diarch_of_target = scope:recipient
exists = var:movement_power_individual
}
scope:recipient = { government_has_flag = government_is_celestial }
}
@ -8605,7 +8580,7 @@ liege_dismiss_vizier_interaction = {
declare_me_regent_interaction = {
category = interaction_category_diarch
icon = icon_declare_me_regent
filter_tags = { admin_liege }
filter_tags = { admin_liege rep_liege }
desc = declare_me_regent_interaction_desc
notification_text = DECLARE_ME_REGENT_PROPOSAL
@ -9218,24 +9193,14 @@ appoint_vizier_interaction = {
NOT = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
# We perform this upon ourselves or our (probable) candidates.
trigger_if = {
limit = {
exists = scope:secondary_recipient
}
scope:secondary_recipient = {
is_valid_basic_candidate_for_vizier_trigger = yes
OR = {
is_courtier_of = scope:actor
AND = {
highest_held_title_tier = tier_barony
liege = scope:actor
}
}
}
}
trigger_else = {
scope:recipient = {
scope:recipient = {
OR = {
this = scope:actor
is_courtier_of = scope:actor
AND = {
highest_held_title_tier = tier_barony
liege = scope:actor
}
}
}
}
@ -9262,14 +9227,6 @@ appoint_vizier_interaction = {
populate_recipient_list = { sort_vizier_candidates_to_list_effect = yes }
redirect = {
if = {
limit = { scope:recipient != scope:actor }
scope:recipient = { save_scope_as = secondary_recipient }
scope:actor = { save_scope_as = recipient }
}
}
cost = {
prestige = major_prestige_value
renown = {

View file

@ -14,8 +14,6 @@ invite_agent_to_scheme_interaction = {
always = scope:mandala_trickster
always = scope:gift
always = scope:gift_significant
always = scope:treasury
always = scope:treasury_significant
always = scope:offer_hook
always = scope:offer_hook_strong
always = scope:hook
@ -47,8 +45,6 @@ invite_agent_to_scheme_interaction = {
always = scope:mandala_trickster
always = scope:gift
always = scope:gift_significant
always = scope:treasury
always = scope:treasury_significant
always = scope:offer_hook
always = scope:offer_hook_strong
always = scope:hook
@ -91,22 +87,6 @@ invite_agent_to_scheme_interaction = {
}
stress_impact = { greedy = medium_stress_impact_gain }
}
# Treasury Bribe
if = {
limit = { always = scope:treasury }
pay_treasury_to_gold = {
value = bribe_value
target = scope:recipient
}
}
# Big Treasury Bribe
if = {
limit = { always = scope:treasury_significant }
pay_treasury_to_gold = {
value = greater_bribe_value
target = scope:recipient
}
}
# Offer Hook
if = {
limit = { always = scope:offer_hook }
@ -469,12 +449,6 @@ invite_agent_to_scheme_interaction = {
send_option = {
flag = gift
is_shown = {
NOT = {
scope:actor = {
has_treasury = yes
has_title = title:e_minister_censor
}
}
# We don't show bribes for schemes where agents will always auto-accept or else deny.
NAND = {
scope:scheme = { is_scheme_category = contract }
@ -502,12 +476,6 @@ invite_agent_to_scheme_interaction = {
send_option = {
flag = gift_significant
is_shown = {
NOT = {
scope:actor = {
has_treasury = yes
has_title = title:e_minister_censor
}
}
# We don't show bribes for schemes where agents will always auto-accept or else deny.
NAND = {
scope:scheme = { is_scheme_category = contract }
@ -531,68 +499,6 @@ invite_agent_to_scheme_interaction = {
}
}
}
## Treasury
send_option = {
flag = treasury
is_shown = {
scope:actor = {
has_treasury = yes
has_title = title:e_minister_censor
}
# We don't show bribes for schemes where agents will always auto-accept or else deny.
NAND = {
scope:scheme = { is_scheme_category = contract }
scope:recipient = { is_courtier_of = scope:actor }
}
}
is_valid = {
scope:actor.treasury >= bribe_value
custom_tooltip = {
text = offer_gold.tt.cannot_offer_both_bribes
scope:treasury_significant = no
}
would_agent_accept_petty_bribes_against_target_trigger = yes
}
localization = SCHEME_AGENT_TREASURY_BRIBE
current_description = {
# Triggered desc so that we don't get a weird double tooltip.
triggered_desc = {
trigger = { scope:actor.treasury >= bribe_value }
desc = SCHEME_AGENT_TREASURY_BRIBE_VALID
}
}
}
## Even more treasury
send_option = {
flag = treasury_significant
is_shown = {
scope:actor = {
has_treasury = yes
has_title = title:e_minister_censor
}
# We don't show bribes for schemes where agents will always auto-accept or else deny.
NAND = {
scope:scheme = { is_scheme_category = contract }
scope:recipient = { is_courtier_of = scope:actor }
}
}
is_valid = {
scope:actor.treasury >= greater_bribe_value
custom_tooltip = {
text = offer_gold.tt.cannot_offer_both_bribes
scope:treasury = no
}
would_agent_accept_petty_bribes_against_target_trigger = yes
}
localization = SCHEME_AGENT_TREASURY_SIGNIFICANT_BRIBE
current_description = {
# Triggered desc so that we don't get a weird double tooltip.
triggered_desc = {
trigger = { scope:actor.treasury >= greater_bribe_value }
desc = SCHEME_AGENT_TREASURY_SIGNIFICANT_VALID
}
}
}
## Offer a hook
send_option = {
flag = offer_hook

File diff suppressed because it is too large Load diff

View file

@ -15,8 +15,7 @@
is_shown = {
scope:recipient = {
this != scope:actor
liege = scope:actor
is_tributary = no # this excludes tributary contracts by default
liege ?= scope:actor # this excludes tributary contracts by default
is_ruler = yes
vassal_contract_has_modifiable_obligations = yes
NOT = { government_allows = administrative }
@ -340,14 +339,12 @@ vassal_modify_vassal_contract_interaction = {
is_shown = {
scope:recipient = {
liege = scope:actor
top_liege != this
this != scope:actor
is_tributary = no # this excludes tributary contracts by default
liege ?= scope:actor # this excludes tributary contracts by default
vassal_contract_has_modifiable_obligations = yes
NOR = {
government_allows = administrative
government_has_flag = government_is_nomadic
}
NOT = { government_allows = administrative }
NOT = { government_has_flag = government_is_nomadic }
}
}
@ -598,11 +595,10 @@ ai_only_liege_modify_vassal_contract_interaction = {
}
scope:recipient = {
this != scope:actor
liege = scope:actor
NOT = {
has_strong_hook = scope:actor
}
is_tributary = no # this excludes tributary contracts by default
liege ?= scope:actor # this excludes tributary contracts by default
is_ruler = yes
vassal_contract_can_be_modified_trigger = yes
does_ai_liege_in_vassal_contract_desire_obligation_change = yes
@ -687,11 +683,10 @@ ai_only_liege_modify_vassal_contract_admin_province_interaction = {
}
scope:recipient = {
this != scope:actor
liege = scope:actor
is_tributary = no
NOT = {
has_strong_hook = scope:actor
}
liege ?= scope:actor # this excludes tributary contracts by default
is_ruler = yes
government_has_flag = government_uses_admin_province_obligations
@ -753,11 +748,10 @@ ai_only_vassal_modify_vassal_contract_interaction = {
has_usable_hook = scope:recipient
vassal_contract_can_be_modified_trigger = yes
does_ai_vassal_in_vassal_contract_desire_obligation_change = yes
is_tributary = no # this excludes tributary contracts by default
liege = scope:recipient
}
scope:recipient = {
this != scope:actor
liege ?= scope:actor # this excludes tributary contracts by default
is_ruler = yes
NOT = {
has_strong_hook = scope:actor
@ -830,12 +824,11 @@ admin_liege_modify_vassal_contract_interaction = {
is_shown = {
scope:recipient = {
this != scope:actor
liege = scope:actor
OR = {
is_landed = yes
is_councillor_of = scope:actor.top_liege
}
is_tributary = no # this excludes tributary contracts by default
liege ?= scope:actor # this excludes tributary contracts by default
is_ruler = yes
vassal_contract_has_modifiable_obligations = yes
government_allows = administrative
@ -1024,6 +1017,7 @@ admin_liege_modify_vassal_contract_interaction = {
government_has_flag = government_is_celestial
scope:obligation.vassal_contract_type = vassal_contract:celestial_provinces
}
if = {
limit = {
OR = {
@ -1046,51 +1040,6 @@ admin_liege_modify_vassal_contract_interaction = {
add_realm_law_skip_effects = celestial_appointment_succession_law
}
}
# Update the succession law for meritocratic province types if applicable - That way, we don't have to wait until the current law invalidates.
else_if = {
limit = {
government_has_flag = government_is_meritocratic
scope:obligation.vassal_contract_type = vassal_contract:meritocratic_provinces
}
if = {
limit = {
vassal_contract_has_flag = meritocratic_province_military
NOT = { has_realm_law = meritocratic_military_appointment_succession_law }
}
add_realm_law_skip_effects = meritocratic_military_appointment_succession_law
}
else_if = {
limit = {
OR = {
vassal_contract_has_flag = meritocratic_province_standard
vassal_contract_has_flag = meritocratic_province_industrial
}
NOT = { has_realm_law = meritocratic_appointment_succession_law }
}
add_realm_law_skip_effects = meritocratic_appointment_succession_law
}
}
# Update the succession law for japanese province types if applicable - That way, we don't have to wait until the current law invalidates.
else_if = {
limit = {
government_has_flag = government_is_japanese_administrative
scope:obligation.vassal_contract_type = vassal_contract:japan_administrative_provinces
}
if = {
limit = {
NOT = { vassal_contract_has_flag = japan_administrative_military_appointment }
NOT = { has_realm_law = japanese_appointment_succession_law }
}
add_realm_law_skip_effects = japanese_appointment_succession_law
}
else_if = {
limit = {
vassal_contract_has_flag = japan_administrative_military_appointment
NOT = { has_realm_law = japanese_military_appointment_succession_law }
}
add_realm_law_skip_effects = japanese_military_appointment_succession_law
}
}
}
}
}
@ -1111,7 +1060,7 @@ admin_vassal_modify_vassal_contract_interaction = {
common_interaction = yes
icon = icon_contract_modification_single
filter_tags = { admin_liege }
filter_tags = { admin_liege rep_liege }
send_name = "admin_vassal_modify_vassal_contract_interaction_send"
desc = admin_vassal_modify_vassal_contract_interaction_desc
@ -1120,8 +1069,7 @@ admin_vassal_modify_vassal_contract_interaction = {
scope:actor = {
top_liege != this
this != scope:recipient
liege = scope:recipient
is_tributary = no # this excludes tributary contracts by default
liege ?= scope:recipient # this excludes tributary contracts by default
vassal_contract_has_modifiable_obligations = yes
government_allows = administrative
tgp_is_ceremonial_liege_trigger = no
@ -1287,51 +1235,6 @@ admin_vassal_modify_vassal_contract_interaction = {
add_realm_law_skip_effects = celestial_appointment_succession_law
}
}
# Update the succession law for meritocratic province types if applicable - That way, we don't have to wait until the current law invalidates.
else_if = {
limit = {
government_has_flag = government_is_meritocratic
scope:obligation.vassal_contract_type = vassal_contract:meritocratic_provinces
}
if = {
limit = {
vassal_contract_has_flag = meritocratic_province_military
NOT = { has_realm_law = meritocratic_military_appointment_succession_law }
}
add_realm_law_skip_effects = meritocratic_military_appointment_succession_law
}
else_if = {
limit = {
OR = {
vassal_contract_has_flag = meritocratic_province_standard
vassal_contract_has_flag = meritocratic_province_industrial
}
NOT = { has_realm_law = meritocratic_appointment_succession_law }
}
add_realm_law_skip_effects = meritocratic_appointment_succession_law
}
}
# Update the succession law for japanese province types if applicable - That way, we don't have to wait until the current law invalidates.
else_if = {
limit = {
government_has_flag = government_is_japanese_administrative
scope:obligation.vassal_contract_type = vassal_contract:japan_administrative_provinces
}
if = {
limit = {
NOT = { vassal_contract_has_flag = japan_administrative_military_appointment }
NOT = { has_realm_law = japanese_appointment_succession_law }
}
add_realm_law_skip_effects = japanese_appointment_succession_law
}
else_if = {
limit = {
vassal_contract_has_flag = japan_administrative_military_appointment
NOT = { has_realm_law = japanese_military_appointment_succession_law }
}
add_realm_law_skip_effects = japanese_military_appointment_succession_law
}
}
}
}
}
@ -1524,9 +1427,8 @@ nomad_liege_modify_vassal_contract_interaction = {
is_shown = {
scope:recipient = {
this != scope:actor
liege = scope:actor
is_tributary = no # this excludes tributary contracts by default
NOT = { this = scope:actor }
liege ?= scope:actor # this excludes tributary contracts by default
is_ruler = yes
vassal_contract_has_modifiable_obligations = yes
government_has_flag = government_is_nomadic
@ -1790,9 +1692,8 @@ nomad_vassal_modify_vassal_contract_interaction = {
is_shown = {
scope:recipient = {
is_independent_ruler = no
this != scope:actor
liege = scope:actor
is_tributary = no # this excludes tributary contracts by default
NOT = { this = scope:actor }
liege ?= scope:actor # this excludes tributary contracts by default
vassal_contract_has_modifiable_obligations = yes
government_has_flag = government_is_nomadic
}
@ -1973,7 +1874,7 @@ suzerain_modify_tributary_contract_interaction = {
scope:recipient = {
is_tributary_of = scope:actor # excludes vassals by default
subject_contract_has_modifiable_obligations = yes
NOT = { government_has_flag = government_is_herder }
NOT = { government_has_flag = government_is_true_herder }
}
}

File diff suppressed because it is too large Load diff

View file

@ -2234,7 +2234,7 @@ seek_indulgences_interaction = {
trigger_if = {
limit = {
has_trait = kinslayer_3
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_3 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_3 GENDER_CHARACTER = scope:actor }
}
gold >= seek_indulgences_major_criminal_trait_value
}
@ -2243,19 +2243,19 @@ seek_indulgences_interaction = {
OR = {
AND = {
has_trait = kinslayer_2
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_2 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_2 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = witch
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:witch GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = witch GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = deviant
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:deviant GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = deviant GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = sodomite
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:sodomite GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = sodomite GENDER_CHARACTER = scope:actor }
}
}
}
@ -2266,15 +2266,15 @@ seek_indulgences_interaction = {
OR = {
AND = {
has_trait = kinslayer_1
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_1 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_1 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = fornicator
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:fornicator GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = fornicator GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = adulterer
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:adulterer GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = adulterer GENDER_CHARACTER = scope:actor }
}
}
}
@ -4089,7 +4089,7 @@ take_vows_interaction = {
if = {
limit = {
house = {
has_house_aspiration_parameter = humility_take_the_vows_bonus
has_house_power_parameter = humility_take_the_vows_bonus
}
}
add_piety_experience = 100
@ -5426,11 +5426,11 @@ hof_ask_for_gold_interaction = {
OR = {
AND = {
has_trait = fornicator
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:fornicator GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = fornicator GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = adulterer
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:adulterer GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = adulterer GENDER_CHARACTER = scope:actor }
}
}
}
@ -5460,15 +5460,15 @@ hof_ask_for_gold_interaction = {
OR = {
AND = {
has_trait = kinslayer_1
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_1 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_1 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = kinslayer_2
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_2 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_2 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = kinslayer_3
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_3 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_3 GENDER_CHARACTER = scope:actor }
}
}
}
@ -6255,11 +6255,11 @@ hof_ask_for_claim_interaction = {
OR = {
AND = {
has_trait = fornicator
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:fornicator GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = fornicator GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = adulterer
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:adulterer GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = adulterer GENDER_CHARACTER = scope:actor }
}
}
}
@ -6272,11 +6272,11 @@ hof_ask_for_claim_interaction = {
OR = {
AND = {
has_trait = fornicator
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:fornicator GENDER_CHARACTER = scope:secondary_recipient }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = fornicator GENDER_CHARACTER = scope:secondary_recipient }
}
AND = {
has_trait = adulterer
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:adulterer GENDER_CHARACTER = scope:secondary_recipient }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = adulterer GENDER_CHARACTER = scope:secondary_recipient }
}
}
}
@ -6323,15 +6323,15 @@ hof_ask_for_claim_interaction = {
OR = {
AND = {
has_trait = kinslayer_1
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_1 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_1 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = kinslayer_2
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_2 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_2 GENDER_CHARACTER = scope:actor }
}
AND = {
has_trait = kinslayer_3
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_3 GENDER_CHARACTER = scope:actor }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_3 GENDER_CHARACTER = scope:actor }
}
}
}
@ -6344,15 +6344,15 @@ hof_ask_for_claim_interaction = {
OR = {
AND = {
has_trait = kinslayer_1
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_1 GENDER_CHARACTER = scope:secondary_recipient }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_1 GENDER_CHARACTER = scope:secondary_recipient }
}
AND = {
has_trait = kinslayer_2
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_2 GENDER_CHARACTER = scope:secondary_recipient }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_2 GENDER_CHARACTER = scope:secondary_recipient }
}
AND = {
has_trait = kinslayer_3
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = trait:kinslayer_3 GENDER_CHARACTER = scope:secondary_recipient }
trait_is_shunned_or_criminal_in_faith_trigger = { FAITH = faith TRAIT = kinslayer_3 GENDER_CHARACTER = scope:secondary_recipient }
}
}
}

View file

@ -738,7 +738,7 @@ befriend_interaction = {
involvement = involved
has_struggle_phase_parameter = struggle_unlocks_befriend_schemes_for_everyone
}
house ?= { has_house_aspiration_parameter = aspect_of_serenity }
house ?= { has_house_power_parameter = aspect_of_serenity }
}
NOR = {
has_trait = shy
@ -903,7 +903,7 @@ befriend_interaction = {
factor = 25
OR = {
has_focus = diplomacy_family_focus
house ?= { has_house_aspiration_parameter = aspect_of_serenity }
house ?= { has_house_power_parameter = aspect_of_serenity }
}
}
@ -1388,7 +1388,7 @@ seduce_interaction = {
}
}
modifier = { # Try to avoid aggressive seduction unless you're geared for it
modifier = { # Try to avoid agressive seduction unless you're geared for it
add = -10
scope:actor = {
NOR = {

View file

@ -416,19 +416,31 @@ appoint_podesta_interaction = {
}
resolve_title_and_vassal_change = scope:change
}
every_vassal = {
limit = {
government_has_flag = government_is_republic
}
}
else = {
scope:recipient = {
show_as_tooltip = {
change_government = republic_government
create_title_and_vassal_change = {
type = returned
save_scope_as = change
add_claim_on_loss = no
}
every_held_title = {
change_title_holder = {
holder = scope:recipient
change = scope:change
take_baronies = yes
every_vassal = {
limit = {
government_has_flag = government_is_republic
}
every_held_title = {
change_title_holder = {
holder = scope:recipient
change = scope:change
take_baronies = yes
}
}
}
resolve_title_and_vassal_change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
}
}

View file

@ -182,23 +182,27 @@
}
}
scope:target ?= {
if = {
limit = {
if = {
limit = {
scope:target = {
title_province = {
geographical_region = geographical_region:mpo_region_permafrost
}
}
if = {
limit = { has_county_modifier = mpo_siberian_permafrost_modifier }
remove_county_modifier = mpo_siberian_permafrost_modifier
}
if = {
limit = {
scope:target = { has_county_modifier = mpo_siberian_permafrost_modifier }
}
else_if = {
limit = { has_county_modifier = mpo_siberian_permafrost_modifier_bad }
remove_county_modifier = mpo_siberian_permafrost_modifier_bad
scope:target = { remove_county_modifier = mpo_siberian_permafrost_modifier }
}
else_if = {
limit = {
scope:target = { has_county_modifier = mpo_siberian_permafrost_modifier_bad }
}
}
}
scope:target = { remove_county_modifier = mpo_siberian_permafrost_modifier_bad }
}
}
}
}
}
@ -360,7 +364,29 @@ tribalize_holding_interaction = {
scope:target.title_province = {
set_holding_type = tribal_holding
}
}
}
if = {
limit = {
scope:target = {
title_province = {
geographical_region = geographical_region:mpo_region_permafrost
}
}
}
if = {
limit = {
scope:target = { has_county_modifier = mpo_siberian_permafrost_modifier }
}
scope:target = { remove_county_modifier = mpo_siberian_permafrost_modifier }
}
else_if = {
limit = {
scope:target = { has_county_modifier = mpo_siberian_permafrost_modifier_bad }
}
scope:target = { remove_county_modifier = mpo_siberian_permafrost_modifier_bad }
}
}
}
}
}
@ -821,7 +847,7 @@ turn_subject_into_mandala_interaction = {
scope:actor = { is_at_war = no }
custom_tooltip = {
text = cannot_take_overt_hostile_actions_against_diarch.tt
NOT = { scope:actor.diarch ?= scope:recipient }
NOT = { scope:recipient ?= scope:actor.diarch }
}
custom_tooltip = {
text = head_of_faith_unable_to_change_government_desc
@ -912,16 +938,6 @@ turn_subject_into_mandala_interaction = {
scope:recipient = { highest_held_title_tier >= tier_kingdom }
gold >= 2000
}
modifier = {
scope:recipient.capital_county.title_province = {
NOR = {
has_holding_type = temple_citadel_holding
has_holding_type = church_holding
has_holding_type = castle_holding
}
}
factor = 0
}
}
ai_accept = {

View file

@ -12,6 +12,13 @@ become_tributary_interaction = {
desc = become_tributary_interaction_desc
is_shown = {
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
}
}
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 = {
@ -21,13 +28,6 @@ become_tributary_interaction = {
}
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 = {
@ -76,6 +76,22 @@ become_tributary_interaction = {
is_confederation_member = no
is_at_war = no
}
trigger_if = {
limit = { scope:recipient = title:h_china.holder }
scope:actor = {
custom_tooltip = {
text = neighbor_is_china
is_tributary = no
is_independent_ruler = yes
OR = {
has_variable = wants_to_become_tributary_of_china
any_neighboring_and_across_water_top_liege_realm_owner = {
primary_title = title:h_china
}
}
}
}
}
}
needs_confirmation = {
@ -1273,7 +1289,8 @@ demand_tributary_interaction = {
scope:recipient = {
NOT = {
any_neighboring_top_suzerain_realm_owner = {
this != scope:actor
exists = this
NOT = { this = scope:actor }
}
}
NOT = {
@ -2003,7 +2020,6 @@ release_tributary_interaction = {
add_truce_both_ways = {
character = scope:actor
years = 5
override = yes
name = TRUCE_TRIBUTARY_STOPPED
}
add_opinion = {
@ -2154,7 +2170,7 @@ exact_tribute_interaction = {
ai_max_reply_days = 9
can_send_despite_rejection = yes
popup_on_receive = yes
common_interaction = no
common_interaction = yes
interface_priority = 4
@ -2212,7 +2228,9 @@ exact_tribute_interaction = {
is_tributary = no
custom_tooltip = {
text = exact_tribute_interaction_hegemony_not_neighbor_tt
any_neighboring_realm_with_tributaries_owner = { this = scope:actor }
any_neighboring_and_across_water_top_liege_realm_owner = {
this = scope:actor
}
}
}
}
@ -2414,7 +2432,9 @@ exact_tribute_interaction = {
GIVER = scope:recipient
CHARACTER = scope:actor
}
tribute_mission_is_available_concubine_trigger = yes
is_adult = yes
has_any_disease_trigger = no
has_easily_mocked_physical_attribute_trigger = no
}
add_to_list = potential_concubine_tribute_list
random_in_list = {
@ -3442,7 +3462,7 @@ offer_courtier_interaction = {
add_opinion = {
target = scope:recipient
modifier = annoyed_opinion
opinion = -10
opinion = 10
}
}
scope:recipient = {

View file

@ -2,7 +2,7 @@
grant_vassal_interaction = {
category = interaction_category_vassal
common_interaction = no
common_interaction = yes
interface = transfer_vassal
icon = icon_vassal
@ -1393,17 +1393,24 @@ create_claimant_faction_against_interaction = {
exists = scope:recipient
exists = scope:landed_title
scope:recipient = {
tgp_is_any_minister = yes
OR = {
has_title = title:e_minister_chancellor
has_title = title:e_minister_censor
has_title = title:e_minister_grand_marshal
has_title = title:e_minister_of_personnel
has_title = title:e_minister_of_revenue
has_title = title:e_minister_of_rites
has_title = title:e_minister_of_war
has_title = title:e_minister_of_justice
has_title = title:e_minister_of_works
}
}
}
scope:recipient = {
custom_description = {
text = target_is_a_minister_desc
subject = this
any_held_title = {
tgp_is_minister_title = yes
de_jure_liege ?= scope:landed_title
}
scope:landed_title = { this = title:h_china }
}
}
}
@ -1674,7 +1681,10 @@ force_onto_council = {
NAND = {
has_council_position = councillor_court_chaplain
faith = {
has_doctrine_parameter = clerical_appointment_fixed
OR = {
has_doctrine = doctrine_clerical_succession_temporal_fixed_appointment
has_doctrine = doctrine_clerical_succession_spiritual_fixed_appointment
}
}
}
}
@ -2281,7 +2291,7 @@ ask_for_pardon_interaction = {
first_valid = {
triggered_desc = {
trigger = {
scope:actor.top_liege != scope:recipient
scope:actor != scope:recipient.liege
}
desc = ask_for_pardon_interaction_minister_desc
}
@ -2322,9 +2332,7 @@ ask_for_pardon_interaction = {
is_highlighted = {
OR = {
scope:actor = {
has_usable_hook = scope:recipient
}
has_usable_hook = scope:recipient
AND = {
scope:recipient = {
has_title = title:e_minister_of_justice
@ -4000,7 +4008,6 @@ grant_court_position = {
scope:recipient = {
liege ?= scope:actor
tgp_is_ceremonial_liege_trigger = no
NOT = { has_character_flag = travel_option_added_character }
}
}

View file

@ -114,9 +114,7 @@
NOT = { has_strong_hook = scope:actor }
trigger_if = {
limit = { is_imprisoned = yes }
NOT = {
imprisoner = scope:actor
}
imprisoner != scope:actor
}
}
scope:actor = {

View file

@ -3411,11 +3411,7 @@ contract_assistance_interaction = {
greedy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
custom_description_no_bullet = {
text = contract_assistance_interaction_condition_tt
subject = scope:recipient
object = scope:actor
}
custom_tooltip = contract_assistance_interaction_condition_tt
show_as_tooltip = {
pay_short_term_gold = {
target = scope:actor
@ -4000,11 +3996,7 @@ request_contract_assistance_interaction = {
greedy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
custom_description_no_bullet = {
text = contract_assistance_interaction_condition_tt
subject = scope:actor
object = scope:recipient
}
custom_tooltip = request_contract_assistance_interaction_condition_tt
show_as_tooltip = {
pay_short_term_gold = {
target = scope:recipient
@ -4786,8 +4778,8 @@ bargain_fealty_interaction = {
top_liege = this
is_at_war = yes
any_character_war = {
is_war_leader = scope:actor
primary_defender = scope:actor
is_war_leader = prev
primary_defender = prev
}
trigger_if = {
limit = {
@ -4807,36 +4799,24 @@ bargain_fealty_interaction = {
}
}
}
# Recipient is not at war with Actor
scope:recipient = {
NOT = { this = scope:actor }
any_neighboring_and_across_water_top_liege_realm_owner = { this = scope:actor }
primary_title = { is_mercenary_company = no }
NOR = {
this = scope:actor
is_at_war_with = scope:actor
}
}
}
is_valid_showing_failures_only = {
scope:actor = {
custom_tooltip = {
text = bargain_fealty_interaction_valid_tt
any_character_war = {
is_war_leader = scope:actor
primary_defender = scope:actor
NOT = { using_cb = fp2_border_raid }
NOT = { using_cb = county_struggle_cb }
}
}
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = unlocks_bargain_fealty_interaction
}
}
scope:recipient = {
custom_tooltip = {
text = bargain_fealty_interaction_neighbor_tt
any_neighboring_and_across_water_top_liege_realm_owner = { this = scope:actor }
}
# Recipient is not at war with Actor
NOT = { is_at_war_with = scope:actor }
}
}
can_be_picked = {
@ -4861,45 +4841,45 @@ bargain_fealty_interaction = {
}
}
can_send = {
exists = scope:target
}
on_accept = {
scope:target = {
# Add Recipient to Actor's war
hidden_effect = { set_called_to = scope:recipient }
add_defender = scope:recipient
}
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
}
scope:actor = {
change_liege = {
liege = scope:recipient
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
# Actor effects
scope:actor = {
stress_impact = {
arrogant = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
}
# Recipient effects
scope:recipient = {
stress_impact = {
greedy = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
}
if = {
limit = {
NOT = { exists = scope:target }
limit = { exists = scope:target }
# Add Recipient to Actor's war
scope:target = {
hidden_effect = { set_called_to = scope:recipient }
if = {
limit = { is_attacker = scope:actor }
add_attacker = scope:recipient
}
else = { add_defender = scope:recipient }
}
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
}
scope:actor = {
change_liege = {
liege = scope:recipient
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
# Actor effects
scope:actor = {
stress_impact = {
arrogant = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
}
# Recipient effects
scope:recipient = {
stress_impact = {
greedy = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
}
}
else = {
scope:actor = {
send_interface_toast = {
type = event_toast_effect_neutral
@ -5397,7 +5377,7 @@ invite_foreign_ruler_to = {
# is_imprisoned = no
# # Matches the regular minimum triggers.
# any_character_struggle = { involvement = involved }
# short_term_gold > standard_activity_base_cost
# short_term_gold > standard_activity_cost
#}
#
#ai_target_quick_trigger = { adult = yes }

View file

@ -168,18 +168,21 @@ purchase_land_interaction = {
}
is_valid_showing_failures_only = {
scope:actor = { top_liege = this }
scope:actor = {
top_liege = this
prestige_level >= 2
NOR = {
}
scope:actor = {
NOT = {
has_trait = gallowsbait
}
}
scope:actor = {
NOT = {
has_trait = gallivanter
}
}
scope:recipient = {
is_at_war = no
NOT = { has_strong_hook = scope:actor }
}
scope:recipient = { is_at_war = no }
trigger_if = { # Can't purchase Baronies
limit = {
scope:target ?= { tier = tier_barony }
@ -237,6 +240,9 @@ purchase_land_interaction = {
always = no
}
}
scope:recipient = {
NOT = { has_strong_hook = scope:actor }
}
#Has to be used instead of diplo range checks in laamp to landed interactions
ep3_laamp_diplo_range_trigger = {
TARGET = scope:recipient
@ -314,7 +320,9 @@ purchase_land_interaction = {
multiply = 0.5
}
if = {
limit = { scope:offer_gold = yes }
limit = {
scope:offer_gold = yes
}
multiply = 2
}
}
@ -338,9 +346,7 @@ purchase_land_interaction = {
}
}
}
show_as_tooltip = {
scope:actor = { purchase_land_interaction_effect = yes }
}
show_as_tooltip = { purchase_land_interaction_shortened_effect = yes }
if = {
limit = { always = scope:hook }
scope:actor = { use_hook = scope:recipient }
@ -2004,7 +2010,10 @@ negotiate_settlement_interaction = {
any_claim = {
OR = {
holder ?= {
target_is_same_character_or_above = scope:actor
OR = {
this = scope:actor
target_is_liege_or_above = scope:actor
}
}
target_is_de_jure_liege_or_above = scope:actor.primary_title
}
@ -4792,11 +4801,6 @@ hire_laamp_mercenaries_interaction = {
is_ai = yes
}
scope:recipient.current_military_strength >= 100
scope:recipient = {
NOT = {
has_character_flag = ai_hire_blocker
}
}
}
}
}
@ -4918,20 +4922,9 @@ hire_laamp_mercenaries_interaction = {
}
}
scope:actor = {
if = {
limit = {
has_treasury = no
}
pay_short_term_gold = {
target = scope:recipient
gold = ep3_hire_laamp_mercs_cost_value
}
}
else = {
pay_short_term_treasury = {
target = scope:recipient
treasury = ep3_hire_laamp_mercs_cost_value
}
pay_short_term_gold = {
target = scope:recipient
gold = ep3_hire_laamp_mercs_cost_value
}
add_to_variable_list = {
name = hired_mercenaries
@ -4952,10 +4945,7 @@ hire_laamp_mercenaries_interaction = {
}
}
scope:recipient = {
set_variable = {
name = joined_as_mercenary
value = scope:actor
}
add_character_flag = joined_as_mercenary
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:actor
@ -5675,7 +5665,10 @@ evict_adventurer_interaction = {
scope:recipient = {
# Adventurer must be in the subrealm
domicile.domicile_location.county.holder ?= {
target_is_same_character_or_above = scope:actor
OR = {
this = scope:actor
any_liege_or_above = { this ?= scope:actor }
}
}
}
# AI should not against hired adventurers
@ -5716,7 +5709,10 @@ evict_adventurer_interaction = {
every_character_task_contract = {
limit = {
task_contract_location.county.holder = {
target_is_same_character_or_above = scope:actor
OR = {
this = scope:actor
any_liege_or_above = { this = scope:actor }
}
}
}
invalidate_contract = yes
@ -5737,14 +5733,14 @@ evict_adventurer_interaction = {
modifier = demanded_eviction_opinion
}
custom_tooltip = evict_adventurer_contracts_tt
custom_description_no_bullet = {
text = evict_adventurer_consequences_tt
object = scope:actor
subject = scope:recipient
}
custom_tooltip = evict_adventurer_casus_belli_tt
}
scope:actor = {
custom_description_no_bullet = {
text = evict_adventurer_consequences_tt
object = scope:recipient
subject = scope:actor
}
custom_tooltip = evict_adventurer_casus_belli_tt
show_as_tooltip = {
add_opinion = {
target = scope:recipient
@ -5839,10 +5835,6 @@ evict_adventurer_interaction = {
target = scope:recipient
}
}
modifier = {
add = 100
has_imprisonment_reason = scope:recipient
}
modifier = {
add = {
if = {

View file

@ -369,7 +369,9 @@
scope:recipient = {
NOT = {
any_land_neighboring_realm_with_tributaries_owner = {
this != scope:actor
NOT = {
this = scope:actor
}
}
}
NOT = {
@ -2629,43 +2631,7 @@ migration_interaction = {
value = scope:target_title
}
}
if = {
limit = {
OR = {
has_variable = crowned_king_var
has_variable = crowned_emperor_var
}
}
set_variable = {
name = nomad_migration_preserve_coronation
value = yes
}
}
if = {
limit = {
highest_held_title_tier = tier_duchy
}
add_character_modifier = {
modifier = mpo_migrating_accolade_duke_modifier
}
}
else_if = {
limit = {
highest_held_title_tier = tier_kingdom
}
add_character_modifier = {
modifier = mpo_migrating_accolade_king_modifier
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_empire
}
add_character_modifier = {
modifier = mpo_migrating_accolade_emperor_modifier
}
}
# Save your old lands
save_scope_as = old_holder
capital_county = { save_scope_as = old_capital_county }
@ -2750,6 +2716,17 @@ migration_interaction = {
migration_set_obedient_vassal_effect = yes
}
}
# Player and non obedient vassals get turned into Tributaries instead
every_vassal = {
limit = {
exists = scope:target_title
OR = {
NOT = { is_obedient_to = scope:actor }
is_ai = no
}
}
break_subject_contract_and_establish_tributary_effect = { SUZERAIN = scope:actor TRIBUTARY = prev }
}
# Migration travel is handled by code
}
}
@ -2774,44 +2751,6 @@ migration_interaction = {
}
}
}
scope:actor = {
if = {
limit = {
OR = {
has_variable = crowned_king_var
has_variable = crowned_emperor_var
}
}
set_variable = {
name = nomad_migration_preserve_coronation
value = yes
}
}
if = {
limit = {
highest_held_title_tier = tier_duchy
}
add_character_modifier = {
modifier = mpo_migrating_accolade_duke_modifier
}
}
else_if = {
limit = {
highest_held_title_tier = tier_kingdom
}
add_character_modifier = {
modifier = mpo_migrating_accolade_king_modifier
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_empire
}
add_character_modifier = {
modifier = mpo_migrating_accolade_emperor_modifier
}
}
}
# Migration wars are handled by code
scope:actor = {
if = {
@ -3393,7 +3332,9 @@ migration_interaction = {
}
AND = {
tier = tier_county
any_county_province_epidemic = {
any_county_province = {
any_province_epidemic = {
}
}
}
}
@ -7775,9 +7716,7 @@ mpo_retrieve_land_from_herder_interaction = {
desc = YOU_ARE_AN_ADVENTURER_REASON
}
modifier = {
scope:recipient = {
is_tributary = yes
}
exists = scope:actor.suzerain
add = -25
desc = ADVENTURER_SUZERAIN_REASON
}
@ -7836,7 +7775,6 @@ mpo_vassal_to_tributary_interaction = {
is_valid_showing_failures_only = {
scope:recipient = {
is_imprisoned = no
is_independent_ruler = yes
}
scope:actor = {
is_imprisoned = no
@ -8831,7 +8769,9 @@ mpo_offer_submission_or_ruin = {
scope:recipient = {
NOT = {
any_neighboring_top_liege_realm_owner = {
this != scope:actor
NOT = {
this = scope:actor
}
}
}
NOT = {

View file

@ -382,7 +382,8 @@ tribute_mission_concubine_interaction = {
GIVER = scope:actor
CHARACTER = scope:actor.overlord
}
tribute_mission_is_available_concubine_trigger = yes
has_any_disease_trigger = no
has_easily_mocked_physical_attribute_trigger = no
}
add_to_list = characters
}