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