#Character interactions relating to schemes start_murder_interaction = { icon = icon_scheme_murder common_interaction = yes interface_priority = 90 category = interaction_category_hostile ignores_pending_interaction_block = yes scheme = murder send_name = START_SCHEME is_shown = { exists = scope:puppet_or_actor scope:recipient != scope:puppet_or_actor NAND = { # Game Rules! has_game_rule = no_players_multiplayer_murder_schemes scope:actor = { is_ai = no } scope:recipient = { is_ai = no } } NAND = { has_game_rule = no_player_families_multiplayer_murder_schemes scope:actor = { is_ai = no } scope:recipient = { OR = { is_ai = no any_close_family_member = { AND = { is_ai = no this != scope:actor } } } } } } is_valid_showing_failures_only = { scope:puppet_or_actor = { can_start_scheme = { type = murder target_character = scope:recipient } } scope:recipient = { NOT = { has_strong_hook = scope:puppet_or_actor } } trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } trigger_if = { limit = { scope:puppet_or_actor = { has_variable = no_scheming_allowed_var } } custom_tooltip = { text = no_scheming_allowed_var_tt scope:puppet_or_actor.var:no_scheming_allowed_var != scope:recipient } } } desc = { triggered_desc = { trigger = { scope:puppet_or_actor = { can_start_scheme = { type = murder target_character = scope:recipient } } } desc = scheme_interaction_tt_murder_approved } } # Scheme Starter Packages options_heading = schemes.t.agent_packages send_options_exclusive = yes ## Balanced agents. send_option = { flag = agent_focus_balance current_description = start_murder_interaction.tt.agent_focus_balance } ## Focused on Success Chance. send_option = { flag = agent_focus_success current_description = start_murder_interaction.tt.agent_focus_success } ## Focused on Speed. send_option = { flag = agent_focus_speed current_description = start_murder_interaction.tt.agent_focus_speed } ## Focused on Secrecy. send_option = { flag = agent_focus_secrecy current_description = start_murder_interaction.tt.agent_focus_secrecy } on_send = { scope:puppet_or_actor = { if = { limit = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } } change_spiritual_fulfillment = major_spiritual_fulfillment_loss } } } on_accept = { scope:puppet_or_actor = { if = { # Only get stressed/SP penalties if you don't have the parameter limit = { NOT = { has_fulfillment_parameter = sp_murder_yields_no_sp_or_stress_loss } } stress_and_fulfillment_impact = { compassionate = major_stress_impact_gain honest = medium_stress_impact_gain just = medium_stress_impact_gain } } send_interface_toast = { type = event_toast_effect_neutral title = start_murder_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient # Success. if = { limit = { scope:agent_focus_success ?= yes } begin_scheme_with_agents_effect = { SCHEME_TYPE = murder TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Success. AGENT_1 = agent_assassin AGENT_2 = agent_assassin AGENT_3 = agent_thug # Speed. AGENT_4 = agent_infiltrator # Secrecy. AGENT_5 = agent_alibi } } # Speed. else_if = { limit = { scope:agent_focus_speed ?= yes } begin_scheme_with_agents_effect = { SCHEME_TYPE = murder TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Speed. AGENT_1 = agent_infiltrator AGENT_2 = agent_infiltrator AGENT_3 = agent_footpad # Success. AGENT_4 = agent_assassin # Secrecy. AGENT_5 = agent_alibi } } # Secrecy. else_if = { limit = { scope:agent_focus_secrecy ?= yes } begin_scheme_with_agents_effect = { SCHEME_TYPE = murder TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Secrecy. AGENT_1 = agent_alibi AGENT_2 = agent_alibi AGENT_3 = agent_lookout # Success. AGENT_4 = agent_assassin # Speed. AGENT_5 = agent_infiltrator } } # Balanced. else = { begin_scheme_with_agents_effect = { SCHEME_TYPE = murder TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Success. AGENT_1 = agent_assassin AGENT_2 = agent_assassin # Speed. AGENT_3 = agent_infiltrator AGENT_4 = agent_footpad # Secrecy. AGENT_5 = agent_alibi } } } # Plus any on_start modifiers we may need. if = { limit = { var:feast_events_ewan_0001_bonus_value ?= scope:recipient } # Hand over the modifier. random_scheme = { type = murder limit = { scheme_target_character = scope:recipient } add_scheme_modifier = { type = feast_learnt_habits_modifier } } # Remove the variable now that we're done with it. remove_variable = feast_events_ewan_0001_bonus_value } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = start_murder_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } } auto_accept = yes # AI for murders is handled in event murder_scheme_maintenance.1, fired from the five_year_playable_pulse } start_abduct = { icon = icon_scheme_abduct interface_priority = 70 category = interaction_category_hostile send_name = START_SCHEME scheme = abduct ignores_pending_interaction_block = yes is_available = { trigger_if = { limit = { is_ai = yes } is_diarch = yes liege ?= { has_diarchy_active_parameter = diarchy_is_co_rulership } ai_diarch_would_maim_execute_superior_if_got_chance_trigger = { LIEGE = liege } } } is_shown = { scope:puppet_or_actor ?= { OR = { has_perk = kidnapper_perk # Scheme unlocked by the Kidnapper Perk domicile ?= { has_domicile_parameter = camp_unlocks_abduct_scheme } # AND = { # any_character_struggle = { # involvement = involved # has_struggle_phase_parameter = unlocks_abduct_for_all # is_secondary_character_involvement_involved_trigger = { # CHAR = scope:recipient # } # } # } } } NOR = { scope:recipient = scope:puppet_or_actor scope:recipient = { is_imprisoned_by = scope:puppet_or_actor } } #exists = scope:recipient.court_owner NAND = { # Game Rules! has_game_rule = no_players_multiplayer_murder_schemes scope:actor = { is_ai = no } scope:recipient = { is_ai = no } } NAND = { has_game_rule = no_player_families_multiplayer_murder_schemes scope:actor = { is_ai = no } scope:recipient = { OR = { is_ai = no any_close_family_member = { AND = { is_ai = no this != scope:actor } } } } } } is_valid_showing_failures_only = { scope:puppet_or_actor = { can_start_scheme = { type = abduct target_character = scope:recipient } } scope:recipient = { NOT = { has_strong_hook = scope:puppet_or_actor } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } trigger_if = { limit = { scope:puppet_or_actor = { has_variable = no_scheming_allowed_var } } custom_tooltip = { text = no_scheming_allowed_var_tt scope:puppet_or_actor.var:no_scheming_allowed_var != scope:recipient } } } desc = { triggered_desc = { trigger = { scope:puppet_or_actor = { can_start_scheme = { type = abduct target_character = scope:recipient } } } desc = scheme_interaction_tt_abduct_approved } } # Scheme Starter Packages options_heading = schemes.t.agent_packages send_options_exclusive = yes ## Balanced agents. send_option = { flag = agent_focus_balance current_description = start_abduct.tt.agent_focus_balance } ## Focused on Success Chance. send_option = { flag = agent_focus_success current_description = start_abduct.tt.agent_focus_success } ## Focused on Speed. send_option = { flag = agent_focus_speed current_description = start_abduct.tt.agent_focus_speed } ## Focused on Secrecy. send_option = { flag = agent_focus_secrecy current_description = start_abduct.tt.agent_focus_secrecy } on_send = { scope:puppet_or_actor = { if = { limit = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } } change_spiritual_fulfillment = medium_spiritual_fulfillment_loss } } } on_accept = { scope:puppet_or_actor = { # Only get stressed/SP penalties if you don't have the parameter if = { limit = { NOT = { sp_hostile_schemes_except_murder_no_stress_or_fulfillment_trigger = yes } } stress_and_fulfillment_impact = { compassionate = medium_stress_impact_gain honest = minor_stress_impact_gain just = minor_stress_impact_gain } } send_interface_toast = { type = event_toast_effect_neutral title = start_abduct_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient # Success. if = { limit = { scope:agent_focus_success ?= yes } begin_scheme_with_agents_effect = { SCHEME_TYPE = abduct TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Success. AGENT_1 = agent_thug AGENT_2 = agent_thug AGENT_3 = agent_muscle # Speed. AGENT_4 = agent_footpad # Secrecy. AGENT_5 = agent_lookout } } # Speed. else_if = { limit = { scope:agent_focus_speed ?= yes } begin_scheme_with_agents_effect = { SCHEME_TYPE = abduct TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Speed. AGENT_1 = agent_footpad AGENT_2 = agent_footpad AGENT_3 = agent_infiltrator # Success. AGENT_4 = agent_thug # Secrecy. AGENT_5 = agent_lookout } } # Secrecy. else_if = { limit = { scope:agent_focus_secrecy ?= yes } begin_scheme_with_agents_effect = { SCHEME_TYPE = abduct TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Secrecy. AGENT_1 = agent_lookout AGENT_2 = agent_lookout AGENT_3 = agent_decoy # Success. AGENT_4 = agent_thug # Speed. AGENT_5 = agent_footpad } } # Balanced. else = { begin_scheme_with_agents_effect = { SCHEME_TYPE = abduct TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient # Success. AGENT_1 = agent_thug AGENT_2 = agent_muscle # Speed. AGENT_3 = agent_footpad AGENT_4 = agent_infiltrator # Secrecy. AGENT_5 = agent_lookout } } } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = start_abduct_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } scope:puppet_or_actor = { save_scope_as = owner } scope:recipient = { save_scope_as = target} abduction_rivalry_progress_tooltip_forecast_effect = yes } ai_targets = { ai_recipients = liege } ai_frequency_by_tier = { barony = 0 county = 60 duchy = 60 kingdom = 60 empire = 0 hegemony = 0 } ai_will_do = { # They shouldn't always do this. base = -100 # Obvious factor. opinion_modifier = { opinion_target = scope:recipient multiplier = -1 } ai_value_modifier = { ai_honor = -1 } # Traits. ## Disloyal. modifier = { add = 100 has_trait = disloyal } ## Ambitious. modifier = { add = 75 has_trait = ambitious } ## Arrogant. modifier = { add = 25 has_trait = arrogant } ## Fickle. modifier = { add = 25 has_trait = fickle } ## Callous. modifier = { add = 25 has_trait = callous } ## Compassionate. modifier = { add = -50 has_trait = compassionate } ## Humble. modifier = { add = -50 has_trait = humble } ## Content. modifier = { add = -100 has_trait = content } ## Loyal. modifier = { add = -300 has_trait = loyal } # Time as a diarch — the longer they've been waiting, the more eager they are. modifier = { add = { value = years_as_diarch multiply = 2 } always = yes } #Promised to abstain from sin modifier = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } factor = 0.1 } } auto_accept = yes } end_scheme = { special_interaction = remove_scheme_interaction use_diplomatic_range = no hidden = yes on_accept = { scope:scheme = { end_scheme = yes } } auto_accept = yes ignores_pending_interaction_block = yes } befriend_interaction = { icon = icon_scheme_befriend category = interaction_category_friendly interface_priority = 90 scheme = befriend send_name = START_SCHEME ignores_pending_interaction_block = yes ai_targets = { ai_recipients = liege ai_recipients = neighboring_rulers } ai_targets = { ai_recipients = vassals ai_recipients = peer_vassals chance = 0.25 } ai_frequency_by_tier = { barony = 0 county = 72 duchy = 24 kingdom = 12 empire = 12 hegemony = 12 } is_available = { trigger_if = { limit = { is_ai = yes } OR = { has_perk = befriend_perk # Unlocked by the Befriend Perk culture ?= { has_cultural_parameter = automatic_befriend_access } # any_character_struggle = { # involvement = involved # has_struggle_phase_parameter = struggle_unlocks_befriend_schemes_for_everyone # } house ?= { has_house_aspiration_parameter = aspect_of_serenity } dynasty ?= { has_dynasty_perk = fp1_adventure_legacy_5 } } NOR = { has_trait = shy has_trait = callous AND = { # No one cares about City barons is_lowborn = yes primary_title.tier <= tier_barony } any_scheme = { OR = { scheme_type = befriend #scheme_type = sway # We allow the AI to override Sway with Befriend scheme_type = seduce scheme_type = courting scheme_type = elope scheme_type = learn_language scheme_type = teach_governor } } } } } is_shown = { scope:puppet_or_actor ?= { can_use_befriend_scheme_trigger = { TARGET = scope:recipient } } scope:puppet_or_actor != scope:recipient } is_valid_showing_failures_only = { scope:puppet_or_actor = { can_start_scheme = { type = befriend target_character = scope:recipient } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } trigger_if = { limit = { scope:is_puppet_action ?= yes } scope:puppet_or_actor = { prestige >= befriend_interaction_cost_value } } } cost = { prestige = { value = befriend_interaction_cost_value if = { limit = { scope:is_puppet_action ?= yes } multiply = 0 } } } desc = { triggered_desc = { trigger = { scope:puppet_or_actor = { NOT = { is_at_war_with = scope:recipient } can_start_scheme = { type = befriend target_character = scope:recipient } } } desc = scheme_interaction_tt_befriend_approved } } on_accept = { if = { limit = { scope:is_puppet_action ?= yes } scope:puppet_or_actor = { if = { limit = { befriend_interaction_cost_value > 0 } add_prestige = { value = { add = befriend_interaction_cost_value max = prestige multiply = -1 } } } } } scope:puppet_or_actor = { send_interface_toast = { type = event_toast_effect_neutral title = befriend_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient begin_scheme_basic_effect = { SCHEME_TYPE = befriend TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient } } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = befriend_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } if = { #Stubborness effect limit = { scope:recipient = { has_trait = stubborn } } scope:puppet_or_actor = { random_scheme = { type = befriend limit = { scheme_target_character = scope:recipient } scheme_target_character = { random_list = { 20 = { set_variable = { name = recipient_stubborness_scheme value = -5 } } 20 = { set_variable = { name = recipient_stubborness_scheme value = -10 } } 20 = { set_variable = { name = recipient_stubborness_scheme value = -15 } } 20 = { set_variable = { name = recipient_stubborness_scheme value = -20 } } 20 = { set_variable = { name = recipient_stubborness_scheme value = -25 } } } } } } } } auto_accept = yes ai_will_do = { base = 50 modifier = { # Try to befriend those who you might want to vassalize add = 30 scope:puppet_or_actor = { top_liege = this primary_title.tier >= tier_county NOT = { any_targeting_faction = { OR = { faction_is_type = liberty_faction faction_is_type = claimant_faction faction_is_type = independence_faction } } } } scope:recipient = { top_liege = this is_playable_character = yes primary_title.tier < scope:puppet_or_actor.primary_title.tier OR = { faith.religion = scope:puppet_or_actor.faith.religion AND = { rite = { rite_has_doctrine = doctrine_pluralism_pluralistic } scope:puppet_or_actor.rite = { rite_has_doctrine = doctrine_pluralism_pluralistic } } } } } modifier = { factor = 0.1 scope:puppet_or_actor = { opinion = { target = scope:recipient value < -50 } } } modifier = { factor = 0.1 scope:recipient = { opinion = { target = scope:puppet_or_actor value > 50 } } } modifier = { factor = 0.5 scope:recipient = { number_of_personality_traits_in_common = { target = scope:puppet_or_actor value < 2 } } } modifier = { factor = 0.1 scope:recipient = { number_of_personality_traits_in_common = { target = scope:puppet_or_actor value < 1 } } } # Struggle # modifier = { # scope:puppet_or_actor = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_friend_lover_with_character # } # } # scope:recipient = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_friend_lover_with_character # } # } # add = { # value = 0 # if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_deescalation # trait_compatibility = { # target = scope:recipient # value >= low_positive_trait_compatibility # } # } # scope:recipient = { # has_character_flag = agenda_towards_deescalation # } # } # add = 200 # } # else_if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_deescalation # trait_compatibility = { # target = scope:recipient # value >= low_positive_trait_compatibility # } # } # } # add = 50 # } # else_if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_escalation # } # } # add = -200 # } # else = { # add = 10 # } # } # } modifier = { factor = 25 OR = { has_focus = diplomacy_family_focus house ?= { has_house_aspiration_parameter = aspect_of_serenity } } } modifier = { factor = 2 scope:recipient.liege = scope:puppet_or_actor } modifier = { factor = 0.5 scope:recipient.faith != scope:puppet_or_actor.faith } modifier = { factor = 0.25 scope:puppet_or_actor = { is_ruler = yes tier_difference = { target = scope:recipient value > 2 } } } modifier = { factor = 0.35 scope:puppet_or_actor = { has_personality_malicious_trigger = yes } } modifier = { factor = 2 scope:puppet_or_actor = { OR = { has_trait = gregarious has_trait = diplomat has_trait = family_first has_trait = august } } } modifier = { factor = 1.5 scope:puppet_or_actor = { num_of_relation_friend < 3 } } modifier = { #Better to Court rather than befriend. factor = 0.25 scope:puppet_or_actor = { is_spouse_of = scope:recipient } } modifier = { factor = 0.75 scope:recipient = { is_child_of = scope:puppet_or_actor } } modifier = { factor = 2 scope:puppet_or_actor = { is_child_of = scope:recipient } } modifier = { factor = 2 scope:puppet_or_actor = { #Friends of friends any_relation = { type = friend any_relation = { type = friend this = scope:recipient } } } } modifier = { factor = 0.25 scope:recipient = { any_claim = { this = scope:puppet_or_actor.primary_title } } } } } seduce_interaction = { icon = icon_scheme_seduce category = interaction_category_friendly interface_priority = 45 scheme = seduce common_interaction = no send_name = START_SCHEME ignores_pending_interaction_block = yes ai_targets = { ai_recipients = family max = 2 } ai_targets = { ai_recipients = guests ai_recipients = courtiers max = 10 } ai_targets = { ai_recipients = neighboring_rulers max = 5 } ai_targets = { ai_recipients = vassals max = 5 } ai_targets = { ai_recipients = peer_vassals max = 5 } # We don't want this to grow ludicrously large in big realms ai_targets = { ai_recipients = realm_characters max = 10 } ai_target_quick_trigger = { adult = yes attracted_to_owner = yes owner_attracted = yes } ai_frequency_by_tier = { barony = 0 county = 72 duchy = 36 kingdom = 12 empire = 12 hegemony = 12 } is_available = { trigger_if = { limit = { is_ai = yes } is_adult = yes NOR = { has_trait = chaste AND = { # No one cares about City barons is_lowborn = yes primary_title.tier <= tier_barony } has_trait = celibate primary_title ?= { is_mercenary_company = yes } scheme_generic_ai_blocker_trigger = yes has_character_modifier = clerical_chastity_vow_modifier } might_cheat_on_every_partner_trigger = yes } } is_shown = { scope:puppet_or_actor ?= { is_adult = yes } scope:puppet_or_actor != scope:recipient scope:recipient = { is_adult = yes } # Avoid seducing lowborn nobodies in foreign courts trigger_if = { limit = { scope:actor = { is_ai = yes } } NOT = { scope:recipient = { is_lowborn = yes is_playable_character = no NOR = { is_courtier_of = scope:puppet_or_actor is_foreign_court_or_pool_guest_of = scope:puppet_or_actor } } } } scope:puppet_or_actor ?= { # Some early filtering for the AI to focus it towards fruitful seductions trigger_if = { limit = { scope:actor = { is_ai = yes } } trigger_if = { # Deviants will seduce anyone limit = { is_deviant_trigger = yes } } trigger_else_if = { # It's always fine to seduce your spouse limit = { scope:recipient = { is_consort_of = scope:puppet_or_actor } } } trigger_else_if = { # If the target is a close family member, only certain AI's will seduce much older members limit = { ai_rationality <= -50 is_close_family_of = scope:recipient OR = { has_trait = lustful has_trait = rakish is_incestuous_trigger = yes has_opinion_modifier = { modifier = childhood_crush target = scope:recipient } } } scope:recipient.age <= scope:puppet_or_actor.age_plus_25 } trigger_else_if = { # Lustful/seduction-focused characters have a wider range limit = { OR = { has_trait = lustful has_focus = intrigue_temptation_focus has_trait = rakish } } OR = { scope:recipient.age <= scope:puppet_or_actor.age_plus_10 AND = { # Seducing your vassals/liege/realm priest is good realm management, AND drama! has_focus = intrigue_temptation_focus OR = { scope:recipient = { is_vassal_of = scope:puppet_or_actor } liege ?= scope:recipient scope:recipient = { is_theocratic_lessee = yes is_courtier_of = scope:puppet_or_actor } } } } trigger_if = { # The AI should focus on bastard-producing seductions, it's more dramatic limit = { is_male = yes scope:recipient = { is_female = yes } } scope:recipient.age <= scope:recipient.marriage_female_fertility_cutoff_age_value } } trigger_else_if = { # Male characters with no children that are seducing women want to produce bastards limit = { is_male = yes scope:recipient = { is_female = yes } any_child = { count <= 1 } } scope:recipient.age <= scope:puppet_or_actor.age_plus_5 scope:recipient.age <= scope:recipient.marriage_female_fertility_cutoff_age_value } trigger_else = { # Otherwise, try to not seduce with *too* large an age gap scope:recipient.age <= scope:puppet_or_actor.age_plus_5 scope:recipient.age >= scope:puppet_or_actor.age_minus_10 } } trigger_else = { } } } is_valid_showing_failures_only = { scope:puppet_or_actor = { NOT = { is_at_war_with = scope:recipient } can_start_scheme = { type = seduce target_character = scope:recipient } custom_tooltip = { text = clerical_chastity_vow_blocks_scheme_tt NOT = { has_character_modifier = clerical_chastity_vow_modifier } } } trigger_if = { limit = { scope:recipient = { exists = primary_spouse } } scope:recipient = { primary_spouse = { NOT = { has_strong_hook = scope:puppet_or_actor } } } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } } desc = scheme_interaction_tt_seduce_approved on_send = { scope:puppet_or_actor = { if = { limit = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } } change_spiritual_fulfillment = medium_spiritual_fulfillment_loss } } } on_accept = { scope:puppet_or_actor = { send_interface_toast = { type = event_toast_effect_neutral title = seduce_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient begin_scheme_basic_effect = { SCHEME_TYPE = seduce TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient } seduce_interaction_stress_effect = yes } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = seduce_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } scope:puppet_or_actor = { if = { limit = { NOT = { is_attracted_to_gender_of = scope:recipient } } custom_tooltip = scheme_interaction_tt_wrong_gender_no_lover } } } auto_accept = yes ai_will_do = { base = 5 modifier = { add = -50 scope:puppet_or_actor = { primary_spouse ?= { has_strong_hook = scope:puppet_or_actor } } } modifier = { add = 50 scope:puppet_or_actor = { has_focus = intrigue_temptation_focus } } modifier = { add = 50 scope:puppet_or_actor = { has_opinion_modifier = { modifier = childhood_crush target = scope:recipient } } } modifier = { add = 25 exists = scope:puppet_or_actor.dynasty scope:puppet_or_actor.dynasty = { has_dynasty_perk = fp1_adventure_legacy_2 } } modifier = { # Focus on befriending if that's the path you've chosen add = -50 scope:puppet_or_actor = { has_perk = befriend_perk } } modifier = { # Non-lustful clergy tend to not seduce add = -25 scope:puppet_or_actor = { is_clergy = yes rite = { NOT = { rite_has_parameter = clergy_can_marry } } NOR = { has_trait = lustful has_focus = intrigue_temptation_focus } } } modifier = { # Seducing your unmarried courtiers is good for producing bastards, which the AI will want to do if they have few heirs add = 10 scope:puppet_or_actor = { any_child = { count <= 1 } } scope:recipient = { is_married = no fertility > low_fertility OR = { is_courtier_of = scope:puppet_or_actor is_pool_guest_of = scope:puppet_or_actor } } } modifier = { add = 30 scope:puppet_or_actor = { has_trait = lustful } } modifier = { # ( ͡° ͜ʖ ͡°) add = 50 scope:puppet_or_actor = { is_close_or_extended_family_of = scope:recipient is_deviant_trigger = yes } scope:recipient = { OR = { is_deviant_trigger = yes has_trait = lustful } } } modifier = { add = 25 scope:puppet_or_actor = { is_close_or_extended_family_of = scope:recipient is_deviant_trigger = yes } scope:recipient = { NOR = { is_deviant_trigger = yes has_trait = lustful } } } modifier = { add = 50 scope:puppet_or_actor = { is_close_or_extended_family_of = scope:recipient rite = { rite_has_tenet = tenet_divine_marriage } } } modifier = { # Seducing the spouse of your rival is good drama... add = 25 scope:recipient = { primary_spouse ?= { OR = { has_relation_rival = scope:puppet_or_actor has_relation_nemesis = scope:puppet_or_actor } } } } modifier = { add = -20 scope:puppet_or_actor = { NOR = { has_trait = lustful has_trait = arbitrary is_deviant_trigger = yes rite = { rite_has_tenet = tenet_divine_marriage } has_perk = subtle_desire_perk } } scope:recipient = { is_close_family_of = scope:puppet_or_actor } } modifier = { # Seducing someone's spouse is not a clever prospect for most characters, so lowering the attractiveness a bit add = -20 scope:recipient = { is_married = yes primary_spouse != scope:puppet_or_actor } scope:puppet_or_actor = { NOR = { has_trait = lustful has_focus = intrigue_temptation_focus } } } modifier = { # Try to avoid aggressive seduction unless you're geared for it add = -10 scope:puppet_or_actor = { NOR = { has_trait = lustful has_focus = intrigue_temptation_focus } } scope:recipient = { is_lowborn = no NOT = { is_pool_guest_of = scope:puppet_or_actor } } } # Struggle # modifier = { # scope:recipient = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_friend_lover_with_character # } # } # scope:puppet_or_actor = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_friend_lover_with_character # } # } # add = { # value = 0 # if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_deescalation # trait_compatibility = { # target = scope:recipient # value >= low_positive_trait_compatibility # } # } # scope:recipient = { # has_character_flag = agenda_towards_deescalation # } # } # add = 50 # } # else_if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_escalation # } # } # add = -200 # } # else = { # add = 5 # } # } # } modifier = { factor = 1.25 scope:recipient = { number_of_personality_traits_in_common = { target = scope:puppet_or_actor value >= 1 } } } modifier = { factor = 1.5 scope:recipient = { number_of_personality_traits_in_common = { target = scope:puppet_or_actor value >= 2 } } } modifier = { factor = 2 scope:recipient = { number_of_personality_traits_in_common = { target = scope:puppet_or_actor value >= 3 } } } modifier = { factor = 1.5 scope:recipient = { is_playable_character = yes } } modifier = { # Target the player less aggressively factor = 0.5 scope:recipient = { OR = { is_ai = no any_consort = { is_ai = no } } } } modifier = { factor = 1.25 scope:recipient = { OR = { has_trait = lustful has_trait = beauty_good } } } modifier = { # Try to avoid 0% success chance factor = { value = 0.1 if = { limit = { scope:recipient = { opinion = { target = scope:puppet_or_actor value < -15 } } } value = 0 } } scope:recipient = { opinion = { target = scope:puppet_or_actor value < -5 } } } modifier = { # Try to avoid 0% success chance factor = 0.1 scope:recipient = { number_of_opposing_personality_traits = { target = scope:puppet_or_actor value >= 1 } } } modifier = { factor = 0.75 scope:recipient = { is_lowborn = yes } } modifier = { # Barons tend to not seduce anyone landed above them factor = 0.1 scope:puppet_or_actor = { is_playable_character = yes primary_title = { tier = tier_barony } } scope:recipient = { OR = { AND = { is_playable_character = yes primary_title = { tier > tier_barony } } any_spouse = { is_playable_character = yes primary_title = { tier > tier_barony } } } } } modifier = { factor = 0.2 scope:recipient = { is_ai = yes any_targeting_scheme = { scheme_type = seduce } } } modifier = { # factor = 0.1 scope:recipient = { is_ai = yes has_trait = chaste } } modifier = { factor = 0 scope:recipient = { is_ai = yes any_relation = { type = soulmate } } } modifier = { # Family Feud add = 50 scope:puppet_or_actor = { house_has_feud_relation_with_trigger = { TARGET = scope:recipient } } } #Promised to abstain from sin modifier = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } factor = 0.1 } } } court_interaction = { icon = icon_scheme_romance category = interaction_category_friendly send_name = START_SCHEME interface_priority = 40 scheme = courting ignores_pending_interaction_block = yes ai_targets = { ai_recipients = spouses ai_recipients = neighboring_rulers } ai_targets = { ai_recipients = vassals max = 5 } ai_targets = { ai_recipients = peer_vassals max = 5 } ai_targets = { ai_recipients = family max = 5 } ai_targets = { ai_recipients = realm_characters max = 30 } ai_target_quick_trigger = { adult = yes attracted_to_owner = yes owner_attracted = yes } ai_frequency_by_tier = { barony = 0 county = 72 duchy = 36 kingdom = 12 empire = 12 hegemony = 12 } is_available = { trigger_if = { limit = { is_ai = yes } highest_held_title_tier > tier_barony trigger_if = { limit = { NOR = { culture ?= { has_cultural_parameter = ai_romance_scheme_increase } # AND = { # has_character_flag = agenda_towards_deescalation # any_character_struggle = { # involvement = involved # phase_has_catalyst = catalyst_became_best_friend_soulmate_with_very_important_character # is_struggle_type = iberian_struggle # } # } } } ai_honor >= high_positive_ai_value ai_compassion >= low_positive_ai_value } is_adult = yes NOR = { has_trait = chaste AND = { # No one cared about City barons is_lowborn = yes primary_title.tier <= tier_barony } has_trait = celibate scheme_generic_ai_blocker_trigger = yes } } } is_shown = { scope:puppet_or_actor ?= { this != scope:recipient is_adult = yes #Some asexuality handling trigger_if = { limit = { has_sexuality = asexual } trigger_if = { limit = { scope:actor = { is_ai = yes } } always = no } trigger_else = { scope:recipient = { is_consort_of = scope:puppet_or_actor } } } # Some early filtering for the AI to focus it towards fruitful romance trigger_if = { limit = { scope:actor = { is_ai = yes } } trigger_if = { # Deviants will romance anyone limit = { is_deviant_trigger = yes } } trigger_else_if = { # It's always fine to romance your spouse limit = { scope:recipient = { is_consort_of = scope:puppet_or_actor } } } trigger_else_if = { # If the target is a close family member, only certain AI's will romance much older members limit = { ai_rationality <= -50 is_close_family_of = scope:recipient OR = { has_trait = lustful has_trait = rakish is_incestuous_trigger = yes has_opinion_modifier = { modifier = childhood_crush target = scope:recipient } } } scope:recipient.age <= scope:puppet_or_actor.age_plus_25 } trigger_else_if = { # Lustful/seduction-focused characters have a wider range limit = { OR = { has_trait = lustful has_focus = intrigue_temptation_focus has_trait = rakish } } OR = { scope:recipient.age <= scope:puppet_or_actor.age_plus_10 AND = { # Romancing your vassals/liege/realm priest is good realm management, AND drama! has_focus = intrigue_temptation_focus OR = { scope:recipient = { is_vassal_of = scope:puppet_or_actor } liege ?= scope:recipient scope:recipient = { is_theocratic_lessee = yes is_courtier_of = scope:puppet_or_actor } } } } trigger_if = { # The AI should focus on bastard-producing romances, it's more dramatic limit = { is_male = yes scope:recipient = { is_female = yes } } scope:recipient.age <= scope:recipient.marriage_female_fertility_cutoff_age_value } } trigger_else_if = { # Male characters with no children that are romancing women want to produce children limit = { is_male = yes scope:recipient = { is_female = yes } any_child = { count <= 1 } } scope:recipient.age <= scope:puppet_or_actor.age_plus_5 scope:recipient.age <= scope:recipient.marriage_female_fertility_cutoff_age_value } trigger_else = { # Otherwise, try to not seduce with *too* large an age gap scope:recipient.age <= scope:puppet_or_actor.age_plus_5 scope:recipient.age >= scope:puppet_or_actor.age_minus_10 } } trigger_else = { } } scope:recipient = { is_adult = yes is_attracted_to_gender_of = scope:puppet_or_actor } } is_valid_showing_failures_only = { scope:puppet_or_actor = { NOT = { is_at_war_with = scope:recipient } can_start_scheme = { type = courting target_character = scope:recipient } custom_tooltip = { text = clerical_chastity_vow_blocks_scheme_tt NOT = { has_character_modifier = clerical_chastity_vow_modifier } } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } } desc = scheme_interaction_tt_courtship_approved on_send = { scope:puppet_or_actor = { if = { limit = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } } change_spiritual_fulfillment = medium_spiritual_fulfillment_loss } } } on_accept = { scope:puppet_or_actor = { # If you already have a soulmate, they get very mad every_relation = { type = soulmate limit = { soulmate_relation_is_exclusive_trigger = yes } add_opinion = { modifier = betrayed_our_promise target = scope:puppet_or_actor } } } scope:puppet_or_actor = { send_interface_toast = { type = event_toast_effect_neutral title = court_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient begin_scheme_basic_effect = { SCHEME_TYPE = courting TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient } show_as_tooltip = { # If you already have a soulmate, they get very mad every_relation = { type = soulmate limit = { soulmate_relation_is_exclusive_trigger = yes } add_opinion = { modifier = betrayed_our_promise target = scope:puppet_or_actor } } } } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = court_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } scope:recipient = { if = { limit = { is_ai = no } add_character_flag = { flag = courting_cooldown years = 5 } } } } auto_accept = yes ai_will_do = { base = 0 # Struggle # modifier = { # scope:puppet_or_actor = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_best_friend_soulmate_with_very_important_character # } # } # scope:recipient = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_best_friend_soulmate_with_very_important_character # } # } # add = { # value = 0 # if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_deescalation # } # scope:recipient = { # has_character_flag = agenda_towards_deescalation # } # } # add = 25 # } # else_if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_escalation # } # } # add = -200 # } # else = { # add = 5 # } # } # } # modifier = { # Motivate AI's to use it on catalyst providers exclusively # add = -50 # scope:puppet_or_actor = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_best_friend_soulmate_with_very_important_character # } # } # scope:recipient = { # NOT = { # any_character_struggle = { # involvement = involved # is_struggle_type = iberian_struggle # phase_has_catalyst = catalyst_became_best_friend_soulmate_with_very_important_character # } # } # } # } opinion_modifier = { opinion_target = scope:recipient multiplier = 0.4 } compatibility_modifier = { compatibility_target = scope:recipient multiplier = 1 max = court_scheme_max_compatability_value } modifier = { factor = 25 culture = { has_cultural_parameter = ai_romance_scheme_increase } } modifier = { factor = 25 has_focus = martial_chivalry_focus } modifier = { add = 50 scope:puppet_or_actor = { has_opinion_modifier = { modifier = childhood_crush target = scope:recipient } } } modifier = { add = -50 scope:puppet_or_actor = { is_close_family_of = scope:recipient NOR = { is_deviant_trigger = yes has_trait = lustful } } } modifier = { factor = 3 scope:recipient = { OR = { is_playable_character = yes any_spouse = { is_playable_character = yes } } } } modifier = { factor = 1.25 scope:recipient = { has_trait = beauty_good } } modifier = { # Try to avoid 0% success chance factor = { value = 0.1 if = { limit = { scope:recipient = { opinion = { target = scope:puppet_or_actor value < -20 } } } value = 0 } } scope:recipient = { opinion = { target = scope:puppet_or_actor value < 0 } } } modifier = { factor = 0.2 scope:recipient = { is_ai = yes any_targeting_scheme = { scheme_type = courting } } } modifier = { factor = 0.1 scope:recipient = { any_relation = { type = soulmate } } } modifier = { factor = 0.1 scope:recipient = { is_lowborn = yes is_married = no } } modifier = { # Clergy sworn to celibacy don't partake in courtly love factor = 0 scope:puppet_or_actor = { is_clergy = yes rite = { NOT = { rite_has_parameter = clergy_can_marry } } NOT = { has_trait = lustful } } } #Promised to abstain from sin modifier = { OR = { has_character_modifier = pam_granted_indulgences_modifier has_character_modifier = pam_granted_indulgences_modifier_small } factor = 0.1 } } } sway_interaction = { icon = icon_scheme_sway category = interaction_category_friendly common_interaction = yes send_name = START_SCHEME interface_priority = 75 scheme = sway ignores_pending_interaction_block = yes ai_targets = { ai_recipients = liege ai_recipients = neighboring_rulers max = 10 } ai_targets = { ai_recipients = vassals ai_recipients = peer_vassals max = 10 } ai_targets = { ai_recipients = councillors } ai_frequency_by_tier = { barony = 0 county = 120 duchy = 24 kingdom = 6 empire = 6 hegemony = 6 } is_available = { trigger_if = { limit = { is_ai = yes } NOR = { primary_title ?= { is_mercenary_company = yes } scheme_generic_ai_blocker_trigger = yes } #Don't override Befriend with Sway? trigger_if = { limit = { OR = { AND = { has_royal_court = yes court_grandeur_current_level >= 10 has_court_type = court_diplomatic has_dlc_feature = royal_court } AND = { has_royal_court = yes court_grandeur_current_level >= 10 dynasty ?= { has_dynasty_perk = glory_legacy_5 } has_court_type = court_diplomatic has_dlc_feature = royal_court } } } always = yes } trigger_else = { NOT = { any_scheme = { scheme_type = befriend } } } } } is_shown = { exists = scope:puppet_or_actor scope:puppet_or_actor != scope:recipient trigger_if = { limit = { scope:actor = { is_ai = yes } } scope:recipient = { trigger_if = { # The unlanded are only worth it as realm priest, spymaster, or a clan's tax collector limit = { is_ruler = no } OR = { is_theocratic_lessee = yes has_council_position = councillor_spymaster AND = { is_tax_collector = yes scope:puppet_or_actor = { government_has_flag = government_is_clan } } } } trigger_else = { # Only rulers have a tier or a government to judge trigger_if = { # Barons are only worth the effort on the council limit = { primary_title.tier = tier_barony } is_councillor = yes } trigger_if = { # Leave independent kings and above to diplomacy proper limit = { is_independent_ruler = yes } OR = { primary_title.tier < tier_kingdom is_playable_character = no } } NOT = { government_has_flag = government_is_herder } } trigger_if = { # Only the forgiving court a rival limit = { scope:puppet_or_actor = { has_relation_rival = scope:recipient } } scope:puppet_or_actor = { has_trait = forgiving } } opinion = { # Opinion last: it is the dearest check here target = scope:puppet_or_actor value < 100 } } } } is_valid_showing_failures_only = { scope:puppet_or_actor = { can_start_scheme = { type = sway target_character = scope:recipient } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } } desc = scheme_interaction_tt_sway_approved on_accept = { scope:puppet_or_actor = { send_interface_toast = { type = event_toast_effect_neutral title = sway_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient begin_scheme_basic_effect = { SCHEME_TYPE = sway TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient } } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = sway_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } } auto_accept = yes ai_will_do = { base = 10 modifier = { # Prefer seducing if you've got the focus for it add = -20 scope:puppet_or_actor = { has_focus = intrigue_temptation_focus } } modifier = { add = 10 scope:recipient = { is_vassal_of = scope:puppet_or_actor } } modifier = { # Try to sway those who you might want to vassalize add = 30 scope:puppet_or_actor = { top_liege = this primary_title.tier >= tier_county NOT = { any_targeting_faction = { OR = { faction_is_type = liberty_faction faction_is_type = claimant_faction faction_is_type = independence_faction } } } } scope:recipient = { top_liege = this is_playable_character = yes primary_title.tier < scope:puppet_or_actor.primary_title.tier OR = { faith.religion = scope:puppet_or_actor.faith.religion AND = { rite = { rite_has_doctrine = doctrine_pluralism_pluralistic } scope:puppet_or_actor.rite = { rite_has_doctrine = doctrine_pluralism_pluralistic } } } } } modifier = { add = 10 scope:recipient = { joined_faction ?= { faction_target = scope:puppet_or_actor faction_is_type = liberty_faction faction_is_at_war = no } } } modifier = { add = 20 scope:recipient = { joined_faction ?= { faction_target = scope:puppet_or_actor faction_is_type = claimant_faction faction_is_at_war = no } } } modifier = { add = 30 scope:recipient = { joined_faction ?= { faction_target = scope:puppet_or_actor faction_is_type = independence_faction faction_is_at_war = no } } } modifier = { factor = 2 scope:recipient = { is_a_faction_leader = yes is_vassal_of = scope:puppet_or_actor } } modifier = { factor = 3 scope:recipient = { is_vassal_of = scope:puppet_or_actor opinion = { target = scope:puppet_or_actor value < 0 } } } modifier = { factor = 4 scope:recipient = { is_powerful_vassal_of = scope:puppet_or_actor opinion = { target = scope:puppet_or_actor value < 0 } } } modifier = { factor = 0.5 scope:recipient.faith != scope:puppet_or_actor.faith } modifier = { factor = 0.25 scope:puppet_or_actor = { is_ruler = yes tier_difference = { target = scope:recipient value > 2 } } scope:recipient = { is_theocratic_lessee = no } } modifier = { factor = 0.5 scope:puppet_or_actor = { has_personality_malicious_trigger = yes } } modifier = { factor = 2 scope:puppet_or_actor = { OR = { has_trait = gregarious has_trait = diplomat has_trait = family_first has_trait = august } } } modifier = { factor = 0.75 scope:recipient = { is_child_of = scope:puppet_or_actor } } modifier = { factor = 2 scope:puppet_or_actor = { is_child_of = scope:recipient } } modifier = { factor = 0.25 scope:recipient = { any_claim = { this = scope:puppet_or_actor.primary_title } } } modifier = { # Butter up the realm priest factor = 10 scope:recipient = { is_theocratic_lessee = yes opinion = { target = scope:puppet_or_actor value <= 50 } } } modifier = { # Try to make your tax collectors like you factor = 10 scope:puppet_or_actor = { government_has_flag = government_is_clan } scope:recipient = { is_tax_collector = yes opinion = { target = scope:puppet_or_actor value <= 50 } } } } } learn_language_interaction = { icon = icon_scheme_learn_language category = interaction_category_friendly common_interaction = yes send_name = START_SCHEME interface_priority = 42 scheme = learn_language ignores_pending_interaction_block = yes ai_targets = { ai_recipients = liege ai_recipients = spouses ai_recipients = scripted_relations ai_recipients = suzerain ai_recipients = top_suzerain ai_recipients = activity_host ai_recipients = war_allies } ai_targets = { ai_recipients = vassals ai_recipients = peer_vassals ai_recipients = tributaries max = 10 } ai_targets = { ai_recipients = neighboring_rulers max = 5 } ai_frequency_by_tier = { barony = 0 county = 72 duchy = 48 kingdom = 12 empire = 12 hegemony = 12 } is_available = { trigger_if = { limit = { is_ai = yes } primary_title.tier >= tier_county NOR = { has_trait = paranoid has_trait = lazy primary_title ?= { is_mercenary_company = yes } scheme_generic_ai_blocker_trigger = yes } } } is_shown = { scope:puppet_or_actor ?= { NOT = { culture = { has_same_culture_language = scope:recipient.culture } } } scope:puppet_or_actor != scope:recipient } is_valid_showing_failures_only = { scope:puppet_or_actor = { can_start_scheme = { type = learn_language target_character = scope:recipient } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } } desc = scheme_interaction_tt_learn_language_approved on_accept = { scope:puppet_or_actor = { send_interface_toast = { type = event_toast_effect_neutral title = learn_language_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient begin_scheme_basic_effect = { SCHEME_TYPE = learn_language TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient } } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = learn_language_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } } auto_accept = yes ai_will_do = { base = 0 # Struggle # modifier = { # scope:recipient = { # any_character_struggle = { # involvement = involved # phase_has_catalyst = catalyst_learned_new_language_important # } # } # scope:puppet_or_actor = { # any_character_struggle = { # involvement = involved # phase_has_catalyst = catalyst_learned_new_language_important # } # } # add = { # value = 0 # if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_deescalation # } # } # add = 100 # } # else_if = { # limit = { # scope:puppet_or_actor = { # has_character_flag = agenda_towards_escalation # } # } # add = -50 # } # } # } modifier = { # Focus on befriending if that's the path you've chosen add = -50 scope:puppet_or_actor = { has_perk = befriend_perk } } modifier = { # Prefer seducing if you've got the focus for it add = -20 scope:puppet_or_actor = { has_focus = intrigue_temptation_focus } } modifier = { add = 50 scope:puppet_or_actor = { has_perk = open_minded_perk } } modifier = { add = 50 scope:puppet_or_actor = { culture = { has_cultural_parameter = rulers_want_to_learn_languages_of_coreligionists } } scope:puppet_or_actor.religion = scope:recipient.religion } modifier = { add = 25 scope:puppet_or_actor = { has_trait = curious } } modifier = { add = 50 scope:puppet_or_actor = { is_adult = no } } modifier = { add = 25 scope:recipient = { has_relation_friend = scope:puppet_or_actor } } modifier = { add = 25 scope:recipient = { has_relation_lover = scope:puppet_or_actor } } modifier = { add = 10 scope:recipient = { has_relation_potential_friend = scope:puppet_or_actor } } modifier = { add = 5 scope:recipient = { is_close_family_of = scope:puppet_or_actor is_ruler = yes } } modifier = { # Muslims want to learn arabic add = 25 scope:puppet_or_actor = { faith.religion = religion:islam_religion NOT = { knows_language = language_arabic } } scope:recipient = { culture = { has_cultural_pillar = language_arabic } } } modifier = { # Catholic clergy/pious people want to learn latin add = 50 scope:puppet_or_actor = { religion = religion:catholic_religion OR = { has_trait = zealous has_trait = humble is_clergy = yes } NOT = { knows_language = language_latin } } scope:recipient = { culture = { has_cultural_pillar = language_latin } } } modifier = { # Catholic clergy/pious people want to learn Italian add = 50 scope:puppet_or_actor = { religion = religion:catholic_religion OR = { has_trait = zealous has_trait = humble is_clergy = yes } NOT = { knows_language = language_italian } } scope:recipient = { culture = { has_cultural_pillar = language_italian } } } modifier = { # Clergy/pious people want to learn their HoF's language add = 50 scope:puppet_or_actor = { exists = faith.religious_head OR = { has_trait = zealous is_clergy = yes } NOT = { knows_language_of_culture = scope:puppet_or_actor.faith.religious_head.culture } } scope:recipient = { knows_language_of_culture = scope:puppet_or_actor.faith.religious_head.culture } } modifier = { # Coptic/Orthodox clergy/pious people want to learn greek add = 50 scope:puppet_or_actor = { OR = { faith.religion = religion:eastern_orthodox_religion faith.religion = religion:oriental_orthodox_religion } OR = { has_trait = zealous has_trait = humble is_clergy = yes } NOT = { knows_language = language_greek } } scope:recipient = { culture = { has_cultural_pillar = language_greek } } } # modifier = { # Nestorian clergy/pious people want to learn aramaic # add = 50 # scope:puppet_or_actor = { # faith = faith:nestorian # OR = { # has_trait = zealous # has_trait = humble # is_clergy = yes # } # NOT = { # knows_language = language_aramaic # } # } # scope:recipient = { # culture = { # has_cultural_pillar = language_aramaic # } # } # } modifier = { add = 20 scope:puppet_or_actor = { has_focus = diplomacy_foreign_affairs_focus any_neighboring_realm_same_rank_owner = { this = scope:recipient } } } modifier = { add = 20 scope:puppet_or_actor = { OR = { has_focus = learning_scholarship_focus has_focus = stewardship_duty_focus } } scope:recipient = { is_vassal_of = scope:puppet_or_actor } } modifier = { add = 10 exists = scope:puppet_or_actor.capital_county scope:recipient.culture = { has_same_culture_language = scope:puppet_or_actor.capital_county.culture } } modifier = { add = 100 scope:puppet_or_actor.culture = { has_cultural_tradition = tradition_loyal_soldiers } top_liege != this scope:puppet_or_actor = { liege = scope:recipient } } modifier = { factor = 2 scope:recipient = { is_powerful_vassal_of = scope:puppet_or_actor } } modifier = { factor = 2 scope:puppet_or_actor = { learning >= 12 } } modifier = { factor = 0.5 scope:puppet_or_actor = { learning <= 6 } } modifier = { factor = 0 scope:puppet_or_actor.num_of_known_languages >= 5 scope:puppet_or_actor = { NOR = { has_perk = pedagogy_perk has_trait = intellect_good_2 has_trait = intellect_good_3 age < 25 } } } modifier = { factor = 0 scope:puppet_or_actor.num_of_known_languages >= language_soft_cap } } } study_faith_interaction = { icon = icon_scheme_study_faith category = interaction_category_friendly common_interaction = yes send_name = START_SCHEME interface_priority = 42 scheme = study_faith ai_targets = { ai_recipients = liege ai_recipients = spouses ai_recipients = scripted_relations ai_recipients = suzerain ai_recipients = top_suzerain ai_recipients = activity_host ai_recipients = war_allies } ai_targets = { ai_recipients = vassals ai_recipients = peer_vassals ai_recipients = tributaries max = 10 } ai_targets = { ai_recipients = neighboring_rulers max = 5 } ai_frequency_by_tier = { barony = 0 county = 144 duchy = 60 kingdom = 36 empire = 36 hegemony = 36 } is_available = { trigger_if = { limit = { is_ai = yes } NOR = { has_trait = paranoid has_trait = lazy primary_title ?= { is_mercenary_company = yes } scheme_generic_ai_blocker_trigger = yes } } } is_shown = { scope:puppet_or_actor ?= { faith != scope:recipient.faith } scope:puppet_or_actor != scope:recipient } is_valid_showing_failures_only = { trigger_if = { limit = { scope:is_puppet_action ?= yes scope:actor = scope:recipient } custom_tooltip = { text = study_faith_nothing_left_to_learn_tt_puppet_self scope:puppet_or_actor = { study_faith_has_anything_to_learn_trigger = { RITE = scope:recipient.rite } } } } trigger_else = { custom_tooltip = { text = study_faith_nothing_left_to_learn_tt scope:puppet_or_actor = { study_faith_has_anything_to_learn_trigger = { RITE = scope:recipient.rite } } } } scope:puppet_or_actor = { can_start_scheme = { type = study_faith target_character = scope:recipient } } #limit range for landless adventurers trigger_if = { limit = { scope:puppet_or_actor = { has_government = landless_adventurer_government } } #Has to be used instead of diplo range checks in laamp to landed interactions ep3_laamp_diplo_range_trigger = { TARGET = scope:recipient LAAMP = scope:puppet_or_actor } } trigger_if = { limit = { scope:is_puppet_action ?= yes } scope:puppet_or_actor = { piety >= medium_piety_value } } } desc = { first_valid = { triggered_desc = { trigger = { scope:is_puppet_action ?= yes scope:actor = scope:recipient } desc = scheme_interaction_tt_study_faith_approved_puppet_self } desc = scheme_interaction_tt_study_faith_approved } } notification_text = study_faith_interaction_notification_int cost = { piety = { value = medium_piety_value if = { limit = { scope:is_puppet_action ?= yes } multiply = 0 } } } send_option = { flag = study_faith_ask_directly current_description = { first_valid = { triggered_desc = { trigger = { scope:is_puppet_action ?= yes scope:actor = scope:recipient } desc = study_faith_interaction.tt.ask_directly_puppet_self } desc = study_faith_interaction.tt.ask_directly } } } send_option = { flag = study_faith_ask_for_emissary current_description = { first_valid = { triggered_desc = { trigger = { scope:is_puppet_action ?= yes scope:actor = scope:recipient } desc = study_faith_interaction.tt.ask_for_emissary_puppet_self } desc = study_faith_interaction.tt.ask_for_emissary } } } send_option = { flag = study_faith_study_from_afar is_valid = { custom_tooltip = { text = can_only_be_learned_in_person_tt scope:recipient.faith = { NOT = { has_doctrine_parameter = can_only_be_learned_in_person } } } } current_description = { first_valid = { triggered_desc = { trigger = { scope:is_puppet_action ?= yes scope:actor = scope:recipient } desc = study_faith_interaction.tt.study_from_afar_puppet_self } desc = study_faith_interaction.tt.study_from_afar } } } auto_accept = { scope:study_faith_study_from_afar = yes } on_accept = { if = { limit = { scope:is_puppet_action ?= yes } scope:puppet_or_actor = { add_piety = { value = { add = medium_piety_value max = piety multiply = -1 } } } } scope:puppet_or_actor = { send_interface_toast = { type = event_toast_effect_neutral title = study_faith_interaction_notification left_icon = scope:puppet_or_actor right_icon = scope:recipient begin_scheme_basic_effect = { SCHEME_TYPE = study_faith TARGET_TYPE = target_character TARGET_SCOPE = scope:recipient } scope:new_scheme ?= { if = { limit = { scope:study_faith_ask_directly = yes } add_scheme_modifier = { type = study_faith_ask_directly_modifier } } else_if = { limit = { scope:study_faith_ask_for_emissary = yes } add_scheme_modifier = { type = study_faith_ask_for_emissary_modifier } } else_if = { limit = { scope:study_faith_study_from_afar = yes } add_scheme_modifier = { type = study_faith_study_from_afar_modifier } } } } } if = { limit = { scope:is_puppet_action ?= yes scope:actor != scope:recipient } scope:actor = { send_interface_toast = { type = event_toast_effect_neutral title = study_faith_interaction_notification_puppeteer left_icon = scope:puppet_or_actor right_icon = scope:recipient } } } if = { limit = { scope:study_faith_ask_directly = yes scope:is_puppet_action ?= yes scope:actor = scope:recipient } custom_label = study_faith_interaction.accept.study_faith_ask_directly_puppet_self } else_if = { limit = { scope:study_faith_ask_directly = yes } custom_label = study_faith_interaction.accept.study_faith_ask_directly } else_if = { limit = { scope:study_faith_ask_for_emissary = yes scope:is_puppet_action ?= yes scope:actor = scope:recipient } custom_label = study_faith_interaction.accept.study_faith_ask_for_emissary_puppet_self } else_if = { limit = { scope:study_faith_ask_for_emissary = yes } custom_label = study_faith_interaction.accept.study_faith_ask_for_emissary } else_if = { limit = { scope:study_faith_study_from_afar = yes scope:is_puppet_action ?= yes scope:actor = scope:recipient } custom_label = study_faith_interaction.accept.study_faith_study_from_afar_puppet_self } else_if = { limit = { scope:study_faith_study_from_afar = yes } custom_label = study_faith_interaction.accept.study_faith_study_from_afar } } ai_accept = { base = 0 modifier = { add = 25 scope:puppet_or_actor = { has_perk = theologian_perk } desc = study_faith_interaction.ai_accept.theologian_perk } modifier = { add = 25 scope:recipient = { has_trait = curious } desc = study_faith_interaction.ai_accept.curious } modifier = { add = 25 scope:recipient = { has_relation_friend = scope:puppet_or_actor } desc = WE_ARE_FRIENDS } modifier = { add = 25 scope:recipient = { has_relation_lover = scope:puppet_or_actor } desc = WE_ARE_LOVERS } modifier = { add = 25 scope:recipient = { is_close_family_of = scope:puppet_or_actor is_ruler = yes } desc = study_faith_interaction.ai_accept.close_family_ruler } opinion_modifier = { # Opinion Factor who = scope:recipient opinion_target = scope:puppet_or_actor multiplier = 0.5 desc = AI_OPINION_REASON } modifier = { add = -30 scope:recipient.faith = { faith_hostility_level = { target = scope:puppet_or_actor.faith value = faith_evil_level } } desc = study_faith_interaction.ai_accept.evil_faith } modifier = { add = -15 scope:recipient.faith = { faith_hostility_level = { target = scope:puppet_or_actor.faith value = faith_hostile_level } } desc = study_faith_interaction.ai_accept.hostile_faith } modifier = { add = 5 scope:recipient.faith = { faith_hostility_level = { target = scope:puppet_or_actor.faith value = faith_astray_level } } desc = study_faith_interaction.ai_accept.astray_faith } modifier = { add = 25 scope:recipient.faith = { faith_hostility_level = { target = scope:puppet_or_actor.faith value = faith_fully_accepted_level } } desc = study_faith_interaction.ai_accept.accepted_faith } modifier = { add = 60 scope:study_faith_ask_for_emissary = yes desc = study_faith_interaction.ai_accept.ask_for_emissary } } ai_will_do = { base = 0 modifier = { # Focus on befriending if that's the path you've chosen add = -50 scope:puppet_or_actor = { has_perk = befriend_perk } } modifier = { # Prefer seducing if you've got the focus for it add = -20 scope:puppet_or_actor = { has_focus = intrigue_temptation_focus } } modifier = { add = 35 scope:puppet_or_actor = { has_focus = learning_theology_focus } } modifier = { add = 35 scope:puppet_or_actor = { has_perk = theologian_perk } } modifier = { add = 25 scope:puppet_or_actor = { has_perk = open_minded_perk } } modifier = { add = 25 scope:puppet_or_actor = { has_trait = curious } } modifier = { add = 25 scope:recipient = { has_relation_friend = scope:puppet_or_actor } } modifier = { add = 25 scope:recipient = { has_relation_lover = scope:puppet_or_actor } } modifier = { add = 10 scope:recipient = { has_relation_potential_friend = scope:puppet_or_actor } } modifier = { add = 25 scope:recipient = { is_close_family_of = scope:puppet_or_actor is_ruler = yes } } modifier = { add = 20 scope:puppet_or_actor = { has_focus = diplomacy_foreign_affairs_focus any_neighboring_realm_same_rank_owner = { this = scope:recipient } } } modifier = { add = 20 scope:puppet_or_actor = { has_focus = stewardship_duty_focus } scope:recipient = { is_vassal_of = scope:puppet_or_actor } } modifier = { add = 10 exists = scope:puppet_or_actor.capital_county scope:recipient.faith = scope:puppet_or_actor.capital_county.faith } modifier = { factor = 2 scope:recipient = { is_powerful_vassal_of = scope:puppet_or_actor } } modifier = { factor = 2 scope:puppet_or_actor = { learning >= 12 } } modifier = { factor = 0.5 scope:puppet_or_actor = { learning <= 6 } } } }