#Interactions relating to the head of the house call_house_member_to_war_interaction = { category = interaction_category_diplomacy icon = alliance interface_priority = 60 desc = call_house_member_to_war_interaction_desc interface = call_ally special_interaction = call_ally_interaction popup_on_receive = yes pause_on_receive = yes notification_text = CALL_HOUSE_MEMBER_NOTIFICATION is_shown = { NOT = { scope:recipient = scope:actor } scope:actor = { OR = { is_house_head = yes AND = { exists = dynasty # DLC checking has_fp2_dlc_trigger = yes # Standard check dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 } } } religion = scope:recipient.religion house = scope:recipient.house any_character_war = { is_war_leader = scope:actor } } scope:recipient = { is_playable_character = yes } scope:recipient = { NOT = { target_is_liege_or_above = scope:actor } } } has_valid_target = { exists = scope:target } has_valid_target_showing_failures_only = { scope:target = { is_war_leader = scope:actor } joiner_not_already_in_another_war_with_any_target_war_participants_trigger = { WARRIOR = scope:actor JOINER = scope:recipient } } is_valid_showing_failures_only = { custom_description = { text = "is_already_in_all_wars" scope:actor = { any_character_war = { NOR = { is_participant = scope:recipient was_called = scope:recipient } OR = { primary_attacker = scope:actor primary_defender = scope:actor } } } } } can_be_picked = { can_join_war_liege_vassal_check_trigger = { WARRIOR = scope:actor JOINER = scope:recipient } } on_auto_accept = { scope:recipient = { trigger_event = call_ally.0001 } } on_accept = { call_house_member_to_war_interaction_effect = yes save_scope_value_as = { name = call_house_member_to_war_interaction value = yes } if = { limit = { exists = scope:target } scope:actor = { trigger_event = call_ally.0100 } } scope:actor = { if = { limit = { NOT = { is_house_head = yes } } add_prestige = medium_prestige_loss } } # If the Dynasty has the Unity Legacy perk, the recipient is rewarded with some Prestige if = { limit = { scope:actor.dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 } } scope:recipient = { add_prestige = medium_prestige_gain } } } on_decline = { #The war could theoretically end on the day the decline is sent if = { limit = { exists = scope:target } scope:target = { if = { limit = { is_attacker = scope:actor } scope:actor = { add_opinion = { modifier = rejected_call_to_offensive_war target = scope:recipient } } } else = { scope:actor = { add_opinion = { modifier = rejected_call_to_defensive_war target = scope:recipient } } } scope:actor = { trigger_event = call_ally.0101 } } # If we're a clan this interaction affects unity refuse_call_to_arms_add_clan_unity_effect = yes } } ai_accept = { base = 20 modifier = { # Refuse call to conflicts of little benefit add = -1000 desc = WONT_FIGHT_MEANINGLESS_REASON trigger_if = { limit = { exists = scope:target } scope:target = { using_cb = fp2_border_raid } scope:recipient = { # Unless they like going on raids NOR = { has_trait = viking has_trait = reaver } } } trigger_else = { always = no } } modifier = { # Refuse call against Heir add = -1000 exists = scope:recipient.player_heir trigger_if = { limit = { scope:target.casus_belli.primary_defender = scope:actor } scope:target.casus_belli.primary_attacker = scope:recipient.player_heir } trigger_else = { scope:target.casus_belli.primary_defender = scope:recipient.player_heir } desc = WONT_FIGHT_HEIR_REASON } modifier = { # Refuse call against Spouse add = -1000 scope:recipient = { trigger_if = { limit = { scope:target.casus_belli.primary_defender = scope:actor } any_spouse = { this = scope:target.casus_belli.primary_attacker } } trigger_else = { any_spouse = { this = scope:target.casus_belli.primary_defender } } } desc = WONT_FIGHT_SPOUSE_REASON } opinion_modifier = { # Opinion Factor who = scope:recipient opinion_target = scope:actor multiplier = 1.0 desc = AI_OPINION_REASON } # Honor factor ai_value_modifier = { ai_honor = 1 min = 0 } modifier = { # Tends to join defensive wars add = 50 scope:target.casus_belli.primary_defender = scope:actor desc = DEFENSIVE_WAR_REASON } compare_modifier = { # Likes fighting infidels trigger = { scope:recipient.faith = scope:actor.faith OR = { AND = { scope:target.casus_belli.primary_attacker = { this = scope:actor faith = { faith_hostility_level = { target = scope:target.casus_belli.primary_defender.faith value >= religious_cb_enabled_hostility_level } } } } AND = { scope:target.casus_belli.primary_defender = { this = scope:actor faith = { faith_hostility_level = { target = scope:target.casus_belli.primary_defender.faith value >= religious_cb_enabled_hostility_level } } } } } } target = scope:recipient value = ai_zeal desc = "ZEAL_AGAINST_INFIDELS" min = 0 multiplier = 0.5 } modifier = { # Reluctant to attack another ally add = -50 scope:target.casus_belli.primary_attacker = scope:actor scope:recipient = { is_allied_to = scope:target.casus_belli.primary_defender } desc = ATTACK_ON_ALLY_REASON } modifier = { # Reluctant to defend against another ally add = -25 scope:target.casus_belli.primary_defender = scope:actor scope:recipient = { is_allied_to = scope:target.casus_belli.primary_attacker } desc = WAR_WITH_ALLY_REASON } modifier = { # Reluctant to join wars against religious brethren. add = -50 NOT = { scope:recipient.faith = scope:actor.faith } scope:target.casus_belli.primary_attacker = scope:actor scope:target.casus_belli.primary_defender.faith = scope:recipient.faith scope:target.casus_belli.war = { OR = { using_cb = minor_religious_war using_cb = religious_war using_cb = major_religious_war using_cb = undirected_great_holy_war using_cb = directed_great_holy_war } } desc = WONT_ATTACK_RELIGIOUS_BRETHREN_REASON } modifier = { # Happy to gain Prestige thanks to the Unity perk add = 50 dynasty = { has_dynasty_perk = fp2_coterie_legacy_3 } desc = "UNITY_PERK_BONUS" } fp3_struggle_resist_allied_wars_modifier = yes } auto_accept = { custom_description = { text = "spending_hook" subject = scope:actor object = scope:recipient scope:hook = yes } } send_option = { 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 } } extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds" send_options_exclusive = no } #Head legitimizes child or actor requests from head to legitimize legitimize_bastard_interaction = { category = interaction_category_diplomacy special_interaction = legitimize_bastard icon = legitimized_bastard greeting = positive notification_text = ASK_TO_legitimize_bastard_interaction desc = { first_valid = { triggered_desc = { trigger = { scope:actor.house.house_head = scope:actor } desc = legitimize_bastard_interaction_desc_house_head } desc = legitimize_bastard_interaction_desc_not_house_head } } is_shown = { scope:actor.house.house_head.faith = { has_doctrine_parameter = bastards_legitimize } scope:actor.faith = { has_doctrine_parameter = bastards_legitimize } scope:secondary_recipient = { faith = { has_doctrine_parameter = bastards_legitimize } has_trait = bastard OR = { father = scope:actor mother = scope:actor scope:actor.house.house_head = scope:actor } OR = { house = scope:actor.house AND = { OR = { father.house = scope:actor.house mother.house = scope:actor.house } has_dynasty = no } } } scope:actor = { is_lowborn = no is_concubine = no } scope:recipient = { is_busy_in_events_localised = yes } } is_valid_showing_failures_only = { } cost = { prestige = { value = bastard_legitimization_prestige_cost } } ai_accept = { base = -50 modifier = { trigger = { NOT = { scope:actor = scope:actor.house.house_head } } add = { value = scope:actor.prestige_level multiply = 20 } desc = PRESTIGOUS_IN_OUR_HOUSE } modifier = { trigger = { always = scope:hook } add = 100 desc = SCHEME_WEAK_HOOK_USED } opinion_modifier = { trigger = { NOT = { scope:actor = scope:actor.house.house_head } } who = scope:recipient opinion_target = scope:actor multiplier = 1 } opinion_modifier = { trigger = { NOT = { scope:actor = scope:actor.house.house_head } } who = scope:recipient opinion_target = scope:secondary_recipient multiplier = 0.25 } modifier = { add = intimidated_reason_value scope:recipient = { target_is_liege_or_above = scope:actor has_dread_level_towards = { target = scope:actor level = 1 } } desc = INTIMIDATED_REASON } modifier = { add = cowed_reason_value scope:recipient = { target_is_liege_or_above = scope:actor has_dread_level_towards = { target = scope:actor level = 2 } } desc = COWED_REASON } modifier = { add = intimidated_external_reason_value scope:recipient = { NOT = { target_is_liege_or_above = scope:actor } has_dread_level_towards = { target = scope:actor level = 1 } } desc = INTIMIDATED_REASON } modifier = { add = cowed_external_reason_value scope:recipient = { NOT = { target_is_liege_or_above = scope:actor } has_dread_level_towards = { target = scope:actor level = 2 } } desc = COWED_REASON } # Unity modifiers evaluate_action_decreasing_house_unity = { VALUE = 100 } } auto_accept = { OR = { scope:actor = scope:actor.house.house_head AND = { always = scope:hook scope:actor = { has_strong_hook = scope:recipient } } } } on_accept = { scope:actor = { stress_impact = { arrogant = minor_stress_impact_gain } legitimize_bastard_interaction_opinions_effect = { BASTARD = scope:secondary_recipient HOUSE_HEAD = scope:actor.house.house_head LEGITIMIZER = scope:actor } if = { limit = { always = scope:hook } scope:actor = { use_hook = scope:recipient } } } # If we're a clan this interaction affects unity add_clan_unity_interaction_effect = { CHARACTER = scope:actor TARGET = scope:recipient VALUE = miniscule_unity_loss DESC = clan_unity_bastardry.desc REVERSE_NON_HOUSE_TARGET = no } } on_decline = { scope:actor = { send_interface_toast = { type = event_toast_effect_bad title = legitimize_bastard_interaction_decline_notification left_icon = scope:actor.house.house_head right_icon = scope:secondary_recipient } } # If we're a clan this interaction affects unity add_clan_unity_interaction_effect = { CHARACTER = scope:actor TARGET = scope:recipient VALUE = miniscule_unity_gain DESC = clan_unity_bastardry_refusal.desc REVERSE_NON_HOUSE_TARGET = no } } send_option = { is_shown = { NOT = { scope:actor = scope:recipient } } 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 } } extra_icon = "gfx/interface/icons/character_interactions/hook_icon.dds" send_options_exclusive = no } accuse_of_decandence_interaction = { icon = antagonistic category = interaction_category_clan interface_priority = 60 common_interaction = yes cooldown = { years = 3 } desc = accuse_of_decandence_interaction_desc is_shown = { scope:actor = { government_has_flag = government_is_clan } NOT = { scope:recipient = scope:actor } scope:actor.house.house_head ?= scope:actor scope:recipient.house ?= scope:actor.house scope:recipient = { NOT = { has_trait = decadent } } } is_valid_showing_failures_only = { scope:recipient = { is_adult = yes } scope:recipient = { NOT = { has_strong_hook = scope:actor } } custom_tooltip = { text = cannot_take_overt_hostile_actions_against_diarch.tt NOT = { scope:recipient ?= scope:actor.diarch } } } on_auto_accept = { scope:recipient = { trigger_event = char_interaction.0041 } } on_accept = { scope:actor = { stress_impact = { forgiving = minor_stress_impact_gain compassionate = minor_stress_impact_gain } send_interface_toast = { type = event_toast_effect_neutral title = accuse_of_decandence_interaction_notification left_icon = scope:actor right_icon = scope:recipient scope:recipient = { add_stress = major_stress_gain if = { limit = { has_trait = extolled } remove_trait = extolled } else = { add_trait = decadent } add_opinion = { modifier = accused_of_decadence_opinion target = scope:actor } } } } # If we're a clan this interaction affects unity add_clan_unity_interaction_effect = { CHARACTER = scope:actor TARGET = scope:recipient VALUE = major_unity_loss DESC = clan_unity_decadence.desc REVERSE_NON_HOUSE_TARGET = no } } cost = { piety = { value = { add = minor_piety_value if = { limit = { scope:recipient = { num_virtuous_traits > 0 } } add = { value = minor_piety_value multiply = scope:recipient.num_virtuous_traits } } if = { limit = { scope:recipient = { num_sinful_traits > 0 } } add = { value = minor_piety_value multiply = 0.5 multiply = scope:recipient.num_sinful_traits min = 10 } } } } } auto_accept = yes ai_potential = { is_at_war = no government_has_flag = government_is_clan house.house_head ?= this is_adult = yes NOT = { has_trait = forgiving } } ai_targets = { ai_recipients = dynasty max = 30 } ai_targets = { ai_recipients = vassals } ai_frequency = 36 ai_will_do = { base = 0 modifier = { add = 100 scope:recipient = { OR = { has_relation_rival = scope:actor has_relation_nemesis = scope:actor } } } modifier = { add = 50 scope:actor = { ai_wants_low_unity = yes NOT = { house ?= { has_house_unity_stage = antagonistic } } } scope:recipient = { num_sinful_traits >= 1 } } modifier = { add = 100 scope:actor = { ai_wants_low_unity = yes NOT = { house ?= { has_house_unity_stage = antagonistic } } } scope:recipient = { num_sinful_traits >= 2 } } modifier = { add = 20 scope:actor = { ai_wants_low_unity = yes NOT = { house ?= { has_house_unity_stage = antagonistic } } } scope:recipient = { number_of_opposing_personality_traits = { target = scope:actor value >= 1 } } } modifier = { add = 100 scope:actor = { ai_wants_low_unity = yes NOT = { house ?= { has_house_unity_stage = antagonistic } } } scope:recipient = { number_of_opposing_personality_traits = { target = scope:actor value >= 2 } } } modifier = { add = 50 scope:actor = { ai_wants_low_unity = yes NOT = { house ?= { has_house_unity_stage = antagonistic } } } OR = { AND = { scope:recipient = { has_trait = incestuous } NOT = { is_incestuous_trigger = yes } trait_is_criminal_in_faith_trigger = { TRAIT = incestuous FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } AND = { scope:recipient = { has_trait = kinslayer } NOT = { has_trait = kinslayer } } AND = { scope:recipient = { has_trait = adulterer } NOR = { has_trait = adulterer has_trait = fornicator } trait_is_criminal_in_faith_trigger = { TRAIT = adulterer FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } AND = { scope:recipient = { has_trait = fornicator } NOR = { has_trait = adulterer has_trait = fornicator } trait_is_criminal_in_faith_trigger = { TRAIT = fornicator FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } AND = { scope:recipient = { has_trait = deviant } NOT = { is_deviant_trigger = yes } trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } AND = { scope:recipient = { has_trait = witch } NOT = { is_witch_trigger = yes } trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } AND = { scope:recipient = { has_trait = sodomite } NOR = { has_trait = sodomite any_secret = { secret_type = secret_homosexual } } trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } AND = { scope:recipient = { has_trait = cannibal } NOT = { is_cannibal_trigger = yes } trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = scope:actor.faith GENDER_CHARACTER = scope:recipient } } } } modifier = { factor = 0.25 scope:recipient = { is_powerful_vassal_of = scope:actor } } modifier = { factor = 0 scope:recipient = { OR = { has_relation_friend = scope:actor has_relation_best_friend = scope:actor } } } modifier = { factor = 0 scope:recipient = { is_primary_heir_of = scope:actor } } } } extoll_virtuousness_interaction = { icon = unity_harmonious category = interaction_category_clan interface_priority = 60 common_interaction = yes cooldown = { years = 3 } desc = extoll_virtuousness_interaction_desc is_shown = { scope:actor = { government_has_flag = government_is_clan } NOT = { scope:recipient = scope:actor } scope:actor.house.house_head ?= scope:actor scope:recipient.house ?= scope:actor.house scope:recipient = { NOT = { has_trait = extolled } } } is_valid_showing_failures_only = { scope:recipient = { is_adult = yes } } on_auto_accept = { scope:recipient = { trigger_event = char_interaction.0042 } } on_accept = { scope:actor = { stress_impact = { sadistic = minor_stress_impact_gain callous = minor_stress_impact_gain } send_interface_toast = { type = event_toast_effect_neutral title = extoll_interaction_notification left_icon = scope:actor right_icon = scope:recipient scope:recipient = { if = { limit = { has_trait = decadent } remove_trait = decadent } else = { add_trait = extolled } add_opinion = { modifier = extolled_virtue_opinion target = scope:actor } } } } # If we're a clan this interaction affects unity add_clan_unity_interaction_effect = { CHARACTER = scope:actor TARGET = scope:recipient VALUE = major_unity_gain DESC = clan_unity_extolled.desc REVERSE_NON_HOUSE_TARGET = no } } cost = { piety = { value = { add = medium_piety_value if = { limit = { scope:recipient = { num_sinful_traits > 0 } } add = { value = medium_piety_value multiply = scope:recipient.num_sinful_traits } } if = { limit = { scope:recipient = { num_virtuous_traits > 0 } } add = { value = medium_piety_value multiply = 0.5 multiply = scope:recipient.num_virtuous_traits min = 10 } } } } } auto_accept = yes ai_potential = { is_at_war = no government_has_flag = government_is_clan house.house_head ?= this is_adult = yes NOT = { has_trait = paranoid } } ai_targets = { ai_recipients = dynasty max = 30 } ai_targets = { ai_recipients = vassals } ai_frequency = 36 ai_will_do = { base = 0 modifier = { add = 100 scope:actor = { NOT = { ai_wants_low_unity = yes } } scope:recipient = { OR = { has_relation_friend = scope:actor has_relation_best_friend = scope:actor is_primary_heir_of = scope:actor } } } modifier = { add = 50 scope:actor = { ai_wants_high_unity = yes NOT = { house ?= { has_house_unity_stage = harmonious } } } scope:recipient = { num_virtuous_traits >= 1 } } modifier = { add = 100 scope:actor = { ai_wants_high_unity = yes NOT = { house ?= { has_house_unity_stage = harmonious } } } scope:recipient = { num_virtuous_traits >= 2 } } modifier = { add = 20 scope:actor = { ai_wants_high_unity = yes NOT = { house ?= { has_house_unity_stage = harmonious } } } scope:recipient = { number_of_personality_traits_in_common = { target = scope:actor value >= 1 } } } modifier = { add = 100 scope:actor = { ai_wants_high_unity = yes NOT = { house ?= { has_house_unity_stage = harmonious } } } scope:recipient = { number_of_personality_traits_in_common = { target = scope:actor value >= 2 } } } modifier = { factor = 1.5 scope:recipient = { is_vassal_of = scope:actor } } modifier = { factor = 0 scope:recipient = { OR = { has_relation_rival = scope:actor has_relation_nemesis = scope:actor } } } } }