N3OW/common/scripted_triggers/00_scheme_triggers.txt

931 lines
24 KiB
Text

diplomacy_scheme_trigger = {
OR = {
scheme_type = befriend
scheme_type = sway
scheme_type = courting
}
}
intrigue_scheme_trigger = {
OR = {
scheme_type = murder
scheme_type = abduct
scheme_type = fabricate_hook
scheme_type = steal_back_artifact
}
}
# Should be synced with the schemes listed in can_start_hostile_scheme_against_trigger.
hostile_scheme_trigger = {
OR = {
scheme_type = murder
scheme_type = abduct
scheme_type = claim_throne
scheme_type = fabricate_hook
scheme_type = steal_back_artifact
}
}
friendly_scheme_trigger = {
OR = {
scheme_type = seduce
scheme_type = befriend
scheme_type = sway
scheme_type = courting
}
}
# Should be synced with the schemes listed in hostile_scheme_trigger.
can_start_hostile_scheme_against_trigger = {
OR = {
can_start_scheme = {
type = murder
target_character = $TARGET$
}
can_start_scheme = {
type = abduct
target_character = $TARGET$
}
can_start_scheme = {
type = claim_throne
target_character = $TARGET$
}
can_start_scheme = {
type = fabricate_hook
target_character = $TARGET$
}
can_start_scheme = {
type = steal_back_artifact
target_character = $TARGET$
}
}
}
agent_valid_to_be_discovered_by_spymaster = {
trigger_if = {
limit = {
exists = scope:target.court_owner.cp:councillor_spymaster
}
NOT = {
this = scope:target.court_owner.cp:councillor_spymaster
}
}
NOT = {
has_character_flag = free_to_scheme
}
trigger_if = {
limit = {
exists = scope:target.court_owner
}
NOR = {
reverse_has_opinion_modifier = {
target = scope:target.court_owner
modifier = scheming_against_me
}
reverse_has_opinion_modifier = {
target = scope:target.court_owner
modifier = schemed_against_me
}
}
}
}
personal_scheme_should_not_evaluate_tier_differences_trigger = {
# Your spouse doesn't care if you're a different rank than them.
scope:owner = {
NOT = { is_consort_of = scope:target }
}
# And laamps are never bothered either way.
scope:owner = { is_landless_adventurer = no }
scope:target = { is_landless_adventurer = no }
}
personal_scheme_success_compare_target_liege_tier_trigger = {
is_landed_or_landless_administrative = no
exists = liege
OR = {
is_spouse_of = liege
is_close_family_of = liege
dynasty = liege.dynasty
}
}
is_good_familial_murder_target_trigger = {
root = {
can_start_scheme = {
target_character = prev
type = murder
}
OR = {
AND = { # Psychopaths ignore opinion...
ai_greed >= very_high_positive_ai_value
ai_compassion <= very_high_negative_ai_value
has_trait = sadistic # Make sadistic people able to murder their own children
}
AND = { # Very greedy and non-compassionate characters almost ignore opinion...
ai_greed >= very_high_positive_ai_value
ai_compassion <= high_negative_ai_value
opinion = {
target = prev
value <= medium_positive_opinion
}
}
AND = { # Significantly greedy and non-compassionate characters can murder even at positive opinion
ai_greed >= high_positive_ai_value
ai_compassion < 0
opinion = {
target = prev
value <= low_positive_opinion
}
}
AND = { # Somewhat greedy characters can murder people they just barely dislike...
ai_greed >= medium_positive_ai_value
opinion = {
target = prev
value <= low_negative_opinion
}
}
AND = { # Otherwise, their opinion must be rather poor...
opinion = {
target = prev
value <= medium_negative_opinion
}
}
}
}
NOR = {
has_opinion_modifier = {
modifier = received_title_county
target = root
}
has_opinion_modifier = {
modifier = received_title_duchy
target = root
}
has_opinion_modifier = {
modifier = received_title_kingdom
target = root
}
has_opinion_modifier = {
modifier = received_title_empire
target = root
}
}
#is a valid murder target if scheme owner is in line of succession to any of target's titles or at least 3rd in line of succession to any titles the target is 1st to inherit
OR = {
any_held_title = {
tier >= root.highest_held_title_tier
place_in_line_of_succession = {
target = root
value <= {
value = 2
if = {
limit = { root.highest_held_title_tier > tier_barony }
add = 1
}
}
}
}
any_heir_title = {
NOT = { holder = root }
tier >= root.highest_held_title_tier
place_in_line_of_succession = {
target = root
value <= {
value = 2
if = {
limit = { root.highest_held_title_tier > tier_barony }
add = 1
}
}
}
}
}
}
# This trigger is a bit contrived in some way to ensure absolutely everyone gets evaluated without any early-outing
# It should always return true
# We use "count = all" and trigger_ifs to ensure that all have to be evaluated, and that all return
build_murder_targets_trigger = {
any_relation = { # Rivals are good targets for murder schemes
type = rival
count = all
trigger_if = {
limit = {
root = {
ai_honor <= low_positive_ai_value
can_start_scheme = {
target_character = prev
type = murder
}
}
}
add_to_temporary_list = murder_targets
}
}
any_relation = { # Same with nemeses
type = nemesis
count = all
trigger_if = {
limit = {
root = {
ai_honor <= medium_positive_ai_value
can_start_scheme = {
target_character = prev
type = murder
}
}
}
add_to_temporary_list = murder_targets
}
}
trigger_if = { # Greedy people have no qualms murdering their way up the succession...
limit = {
ai_greed >= low_positive_ai_value
exists = dynasty
}
dynasty = {
any_dynasty_member = {
count = all
trigger_if = {
limit = {
is_good_familial_murder_target_trigger = yes
}
add_to_temporary_list = murder_targets
}
}
}
any_close_or_extended_family_member = {
count = all
trigger_if = {
limit = {
NOT = { is_in_list = murder_targets }
is_good_familial_murder_target_trigger = yes
}
add_to_temporary_list = murder_targets
}
}
}
trigger_if = { # Greedy people want to murder their liege's high aptitude tax collector...
limit = {
ai_greed >= low_positive_ai_value
is_independent_ruler = no
exists = liege
liege = {
any_tax_collector = {
any_tax_collector_vassal = {
this = root
}
check_tax_collector_aptitude = {
CHARACTER = this
VALUE >= 4
}
add_to_temporary_list = murder_targets
}
}
}
}
trigger_if = { # Some Clan members want to murder Extolled people out of pure spite and malice
limit = {
ai_greed >= 0
ai_vengefulness >= 0
ai_compassion <= medium_negative_ai_value
house.house_head ?= {
is_ruler = yes
government_has_flag = government_is_clan
}
ai_wants_low_unity = yes
}
house = {
any_house_member = {
has_trait = extolled
add_to_temporary_list = murder_targets
}
}
}
any_consort = { # Unfaithful spouses
trigger_if = {
limit = {
root = {
ai_compassion <= 0
can_start_scheme = {
target_character = prev
type = murder
}
}
exposed_cheating_on_spouse_trigger = { SPOUSE = root }
add_to_temporary_list = murder_targets
}
}
}
trigger_if = { # Certain vassals will plot against their liege under certain conditions
limit = {
highest_held_title_tier > tier_barony
exists = liege
liege = {
tyranny >= medium_tyranny
}
opinion = {
target = liege
value <= high_negative_opinion
}
ai_rationality >= medium_positive_ai_value
}
liege = {
add_to_temporary_list = murder_targets
}
}
trigger_if = { # Murdering troublesome claimants is something you want to do...
limit = {
is_playable_character = yes
primary_title.tier >= tier_duchy
any_targeting_faction = {
faction_is_type = claimant_faction
special_character = {
add_to_temporary_list = murder_targets
}
}
}
}
trigger_if = { # Paranoid characters want to murder claimants to their titles
limit = {
has_trait = paranoid
ai_compassion <= low_negative_ai_value
ai_rationality <= 0
is_playable_character = yes
primary_title.tier >= tier_duchy
any_held_title = {
any_claimant = {
add_to_temporary_list = murder_targets
}
}
}
}
any_spouse = { # Murder infertile spouses if you've yet to have an heir (and you're heartless...)
trigger_if = {
limit = {
root = {
is_playable_character = yes
ai_compassion <= 0
ai_honor <= 0
fertility > 0.1
NOT = {
any_child = {
is_heir_of = root
}
}
can_start_scheme = {
target_character = prev
type = murder
}
}
is_ai = yes
fertility < 0.1
add_to_temporary_list = murder_targets
}
}
}
}
scheme_is_still_valid_trigger = {
scope:target = {
OR = {
exists = location
in_diplomatic_range = scope:owner
}
}
}
can_use_befriend_scheme_trigger = {
OR = {
has_perk = befriend_perk
AND = {
exists = dynasty
dynasty = {
has_dynasty_perk = fp1_adventure_legacy_5
}
target_is_vassal_or_below = $TARGET$
}
culture = { has_cultural_parameter = automatic_befriend_access }
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = struggle_unlocks_befriend_schemes_for_everyone
}
AND = {
government_has_flag = government_is_clan
is_in_same_clan_as_trigger = { CHARACTER = $TARGET$ }
house = { has_house_unity_stage = harmonious }
}
government_has_flag = government_is_nomadic
}
}
# Need to separate travel triggers from rest
can_seduce_scheme_trigger = {
$OWNER$ = {
is_adult = yes
is_imprisoned = no
OR = {
is_ai = no #Players may override their character's sexuality for the purposes of cynical seductions.
is_attracted_to_gender_of = $TARGET$
}
is_below_ai_lover_soft_cap_trigger = yes
NOR = {
has_trait = celibate
has_character_flag = is_party_baron
has_relation_lover = $TARGET$
guaranteed_under_20_incest_rejection_trigger = {
TARGET = $TARGET$
SEDUCER = $OWNER$
}
AND = {
has_character_modifier = rejected_from_marriage_bed_modifier
is_spouse_of = $TARGET$
}
}
}
$TARGET$ = {
is_adult = yes
is_imprisoned = no
is_attracted_to_gender_of = $OWNER$
NOR = {
has_character_flag = block_seduce_attempts
has_trait = intellect_bad_3
has_trait = incapable
has_trait = celibate
has_opinion_modifier = {
modifier = seduce_permanent_blocker_opinion
target = $OWNER$
}
has_opinion_modifier = {
modifier = seduce_regular_cooldown_opinion
target = $OWNER$
}
}
OR = {
exists = location
in_diplomatic_range = $OWNER$
}
trigger_if = {
limit = {
$OWNER$ = { is_ai = yes }
}
is_below_ai_lover_soft_cap_trigger = yes
trigger_if = { # Block AI from seducing lowborn nobodies in the players court
limit = {
liege ?= { is_ai = no }
NOR = {
is_courtier_of = $OWNER$
is_foreign_court_or_pool_guest_of = $OWNER$
}
}
OR = {
is_lowborn = no
is_playable_character = yes
}
}
trigger_if = { #So players don't get spammed by AI seduction
limit = { is_ai = no }
NOT = {
any_targeting_scheme = { scheme_type = seduce }
}
}
}
}
}
##################################################
# Scheme Ending Triggers
# Is this a scheme to kill someone who could be conceivably saved by something unexpected?
is_savable_murder_scheme_trigger = {
OR = {
scheme_type = murder
scheme_type = laamp_base_3011_contract_scheme
}
}
# Could & would this lover of $TARGET$
available_lover_to_sacrifice_in_murder_trigger = {
is_ruler = no
is_available_ai_adult = yes
# Filter out lovers that don't actually like you at all.
NOT = { has_trait = disloyal }
OR = {
has_trait = loyal
opinion = {
target = $TARGET$
# And frankly this is being generous.
value >= 1
}
}
}
##################################################
# Murder Intercept Triggers
# Would this character slack off from their task of guarding scope:target?
bodyguard_will_actually_do_job_trigger = {
# Basically functional.
is_ruler = no
is_physically_able_ai_adult = yes
# Can't hate their charge.
save_temporary_scope_as = char_temp
NOR = {
# Require that they don't hate their liege.
has_relation_rival = scope:target
opinion = {
target = scope:target
value <= high_negative_opinion
}
# Can't be directly involved with the scheme either.
scope:scheme = {
any_scheme_agent_character = { this = scope:char_temp }
}
scope:owner = scope:char_temp
}
}
foodtaster_will_actually_do_job_trigger = {
# Basically functional.
is_ruler = no
is_physically_able_ai_adult = yes
# Can't be directly involved with the scheme.
## We're a bit pickier here, since food tasters can't just slack off from their duties like bodyguards or cupbearers arguably can.
### You eat the food or you don't, so if you don't, you really must've planned ahead to look like you did.
save_temporary_scope_as = char_temp
NOR = {
scope:scheme = {
any_scheme_agent_character = { this = scope:char_temp }
}
scope:owner = scope:char_temp
}
}
cupbearer_will_actually_do_job_trigger = {
# Basically functional.
is_physically_able_ai_adult = yes
# Can't hate their charge.
save_temporary_scope_as = char_temp
NOR = {
# Require that they don't hate their liege.
has_relation_rival = scope:target
opinion = {
target = scope:target
value <= high_negative_opinion
}
# Can't be directly involved with the scheme either.
scope:scheme = {
any_scheme_agent_character = { this = scope:char_temp }
}
scope:owner = scope:char_temp
}
}
##################################################
# Scheme Animation Triggers
should_use_amorous_scheme_animation_trigger = {
OR = {
scheme_type = seduce
scheme_type = elope
scheme_type = courting
}
}
##################################################
# Agent Invite Triggers
would_agent_accept_petty_bribes_against_target_trigger = {
exists = scope:scheme
trigger_if = {
limit = {
exists = scope:scheme.scheme_target_character
}
NOT = {
scope:recipient = { is_parent_of = scope:scheme.scheme_target_character }
}
}
trigger_if = {
limit = {
exists = scope:scheme.scheme_target_title
}
NOT = {
scope:recipient = { is_parent_of = scope:scheme.scheme_target_title.holder }
}
}
}
would_actor_consider_dramatic_enticement_trigger = {
scope:actor = {
OR = {
is_ai = no
has_trait = humble
has_trait = content
has_trait = profligate
AND = {
has_trait = vengeful
has_relation_rival = scope:recipient
}
AND = {
has_trait = impatient
NOR = {
has_trait = arrogant
has_trait = ambitious
}
}
}
}
}
actor_has_valid_de_jure_enticement_county_trigger = {
holder = scope:actor
tier = tier_county
NOT = { this = scope:actor.capital_county }
}
actor_has_valid_claimed_enticement_county_trigger = {
holder = scope:actor
tier = tier_county
NOT = { this = scope:actor.capital_county }
}
##################################################
# Can Add Agent to Scheme Triggers
is_valid_agent_standard_trigger = {
# The usual standard restrictions.
is_adult = yes
is_imprisoned = no
# Can't be an existing agent in any scheme.
save_temporary_scope_as = char_temp
scope:owner = {
NOT = {
any_scheme = {
any_scheme_agent_character = { this = scope:char_temp }
}
}
}
}
char_can_fit_into_scheme_trigger = {
save_temporary_scope_as = char_temp
$SCHEME$ = {
any_scheme_agent_slot = {
is_filled = no
save_temporary_scope_as = slot_temp
}
scope:char_temp = { is_valid_as_agent_in_slot = scope:slot_temp }
}
}
##################################################
# Scheme APA Triggers
scheme_apa_apply_modifier_plus_secrecy_trigger = {
#TODO_CD_EP3_ERCC; ask for scheme secrecy trigger.
scheme_apa_apply_modifier_trigger = { MODIFIER = $MODIFIER$ }
}
scheme_apa_apply_modifier_trigger = {
NOR = {
has_variable = scheme_pulse_action_on_cooldown
has_scheme_modifier = $MODIFIER$
}
}
scheme_apa_apply_positive_progress_trigger = {
NOT = { has_variable = scheme_pulse_action_on_cooldown }
# How many days in before we want to allow progress gains?
scheme_duration_days >= 365
}
scheme_apa_apply_negative_progress_trigger = {
NOT = { has_variable = scheme_pulse_action_on_cooldown }
save_temporary_scope_as = scheme
scheme_progress > scheme_progress_33
}
##################################################
# Agent Availability Triggers
can_have_agent_hitman_trigger = { always = yes }
can_have_agent_assassin_trigger = { always = yes }
can_have_agent_lookout_trigger = { always = yes }
can_have_agent_infiltrator_trigger = { always = yes }
can_have_agent_footpad_trigger = { always = yes }
can_have_agent_alibi_trigger = { always = yes }
can_have_agent_thug_trigger = { always = yes }
can_have_agent_comrade_in_arms_trigger = { always = yes }
can_have_agent_socialite_trigger = { always = yes }
can_have_agent_musician_trigger = { always = yes }
can_have_agent_tumbler_trigger = { always = yes }
can_have_agent_poet_trigger = { always = yes }
can_have_agent_gabbler_trigger = { always = yes }
can_have_agent_shill_trigger = { always = yes }
can_have_agent_diplomat_trigger = { always = yes }
can_have_agent_justiciar_trigger = { always = yes }
can_have_agent_justiciar_speed_trigger = { always = yes }
can_have_agent_scribe_trigger = { always = yes }
can_have_agent_cleric_trigger = { always = yes }
can_have_agent_theologian_trigger = { always = yes }
can_have_agent_herald_trigger = { always = yes }
can_have_agent_wolf_hunter_trigger = { always = yes }
can_have_agent_thief_trigger = { always = yes }
can_have_agent_tutor_trigger = { always = yes }
can_have_agent_poisoner_trigger = {
domicile ?= { has_domicile_parameter = camp_unlocks_poisoner_scheme_agents }
}
can_have_agent_muscle_trigger = { always = yes }
can_have_agent_drillmaster_trigger = { always = yes }
can_have_agent_tracker_trigger = { always = yes }
can_have_agent_physic_trigger = { always = yes }
can_have_agent_smith_trigger = { always = yes }
can_have_agent_ambusher_trigger = { always = yes }
can_have_agent_bodyguard_trigger = { always = yes }
can_have_agent_scout_trigger = { always = yes }
can_have_agent_outrider_trigger = { always = yes }
can_have_agent_bookkeeper_trigger = { always = yes }
can_have_agent_bailiff_trigger = { always = yes }
can_have_agent_draughtsman_trigger = { always = yes }
can_have_agent_planner_trigger = { always = yes }
can_have_agent_supplier_trigger = { always = yes }
can_have_agent_outcast_trigger = { always = yes }
can_have_agent_wrangler_trigger = { always = yes }
can_have_agent_decoy_trigger = { always = yes }
can_have_agent_eunuch_trigger = { always = yes }
can_have_agent_wrangler_speed_trigger = { always = yes }
can_have_agent_theologian_success_trigger = { always = yes }
can_have_agent_cleric_success_trigger = { always = yes }
can_have_agent_lookout_success_trigger = { always = yes }
can_have_agent_lookout_speed_trigger = { always = yes }
##################################################
# Countermeasure Triggers
# Does a specific countermeasure apply to you?
countermeasure_parametre_applies_againt_char_trigger = {
$SCHEME_TARGET$.host ?= {
has_scheme_countermeasure_parameter = $PARAMETER$
# Don't apply countermeasures vs. ourselves.
NOT = { this = $SCHEME_OWNER$ }
# And if the countermeasure only affects the host, then restrict it.
trigger_if = {
limit = { has_scheme_countermeasure_parameter = countermeasure_only_affects_court_holder }
this = $SCHEME_TARGET$
}
}
}
# Can a character adopt defensive measures against hostile schemes?
can_set_own_countermeasures_trigger = {
custom_tooltip = {
OR = {
# You can only set them for your home court.
host = prev
# And then we use this in here so we can valid
## ... valid what, Ewan? _What can we valid_? You never finished your sentence and now we will never know.
is_ruler = no
}
text = can_set_own_countermeasures_trigger.tt
}
}
# Used in scripted modifiers to determine if the AI should be deploying countermeasures that reduce secrecy or generally affect success chance.
should_ai_take_preemptive_countermeasures_trigger = {
# Don't do this if we've already deployed countermeasures.
NOT = { has_scheme_countermeasure_parameter = has_any_countermeasure_active }
any_targeting_scheme = {
# Make sure we'd need to do this at all.
has_variable = apply_countermeasures
# And we don't want to face schemes that're already at a later stage.
is_scheme_exposed = no
# Buuuut also give them their grace period to get started.
has_variable = secrecy_grace_period
var:secrecy_grace_period <= 0
}
}
##################################################
# Countermeasure Access Triggers
# This trigger means that a character will only ever have access to the best version of a given countermeasure.
## Please note that some tiers may be inaccessible: they're set up so they can be hooked in to stuff, but we haven't assigned them all out straight away.
## Use them if you want them but don't feel obligated, basically.
scheme_countermeasure_access_select_best_tier_trigger = {
save_temporary_scope_value_as = {
name = checked_tier
value = $TIER$
}
trigger_if = {
limit = { scheme_countermeasure_access_t4_$COUNTERMEASURE$_trigger = yes }
scope:checked_tier = 4
}
trigger_else_if = {
limit = { scheme_countermeasure_access_t3_$COUNTERMEASURE$_trigger = yes }
scope:checked_tier = 3
}
trigger_else_if = {
limit = { scheme_countermeasure_access_t2_$COUNTERMEASURE$_trigger = yes }
scope:checked_tier = 2
}
trigger_else = { scope:checked_tier = 1 }
}
# Can this character access the higher tiers of the Bounties for Whispers countermeasure?
scheme_countermeasure_access_t2_bounties_for_whispers_trigger = {
OR = {
has_trait_with_flag = trait_unlocks_t2_countermeasures
culture = { has_cultural_parameter = cultrad_unlocks_t2_countermeasures }
}
}
scheme_countermeasure_access_t3_bounties_for_whispers_trigger = {
always = no
}
scheme_countermeasure_access_t4_bounties_for_whispers_trigger = {
OR = {
culture = { has_cultural_parameter = cultrad_unlocks_t4_bounties_for_whispers }
faith = { has_doctrine_parameter = tenet_unlocks_t4_bounties_for_whispers }
}
}
# Can this character access the higher tiers of the Arbitrary Arrests countermeasure?
scheme_countermeasure_access_t2_arbitrary_arrests_trigger = {
OR = {
has_trait_with_flag = trait_unlocks_t2_countermeasures
has_trait_with_flag = trait_unlocks_t2_arbitrary_arrests
culture = { has_cultural_parameter = cultrad_unlocks_t2_countermeasures }
}
}
scheme_countermeasure_access_t3_arbitrary_arrests_trigger = {
culture = { has_cultural_parameter = cultrad_unlocks_t3_arbitrary_arrests }
}
scheme_countermeasure_access_t4_arbitrary_arrests_trigger = {
always = no
}
# Can this character access the higher tiers of the Strengthen Sentries countermeasure?
scheme_countermeasure_access_t2_strengthen_sentries_trigger = {
OR = {
has_trait_with_flag = trait_unlocks_t2_countermeasures
culture = { has_cultural_parameter = cultrad_unlocks_t2_countermeasures }
}
}
scheme_countermeasure_access_t3_strengthen_sentries_trigger = {
culture = { has_cultural_parameter = cultrad_unlocks_t3_strengthen_sentries }
}
scheme_countermeasure_access_t4_strengthen_sentries_trigger = {
always = no
}
# Can this character access the higher tiers of the Redouble Guards countermeasure?
scheme_countermeasure_access_t2_redouble_guards_trigger = {
OR = {
has_trait_with_flag = trait_unlocks_t2_countermeasures
culture = {
OR = {
has_cultural_parameter = cultrad_unlocks_t2_countermeasures
has_cultural_parameter = cultrad_unlocks_t2_redouble_guards
}
}
}
}
scheme_countermeasure_access_t3_redouble_guards_trigger = {
culture = { has_cultural_parameter = cultrad_unlocks_t3_redouble_guards }
}
scheme_countermeasure_access_t4_redouble_guards_trigger = {
always = no
}
# Can this character access the higher tiers of the Withdraw from View countermeasure?
scheme_countermeasure_access_t2_withdraw_from_view_trigger = {
OR = {
OR = {
has_trait_with_flag = trait_unlocks_t2_countermeasures
culture = { has_cultural_parameter = cultrad_unlocks_t2_countermeasures }
}
has_trait_with_flag = trait_unlocks_t2_withdraw_from_view
}
}
scheme_countermeasure_access_t3_withdraw_from_view_trigger = {
OR = {
has_trait_with_flag = trait_unlocks_t3_withdraw_from_view
faith = { has_doctrine_parameter = tenet_unlocks_t3_withdraw_from_view }
}
}
scheme_countermeasure_access_t4_withdraw_from_view_trigger = {
has_trait_with_flag = trait_unlocks_t4_withdraw_from_view
}
scheme_generic_ai_blocker_trigger = {
any_scheme = {
OR = {
scheme_type = befriend
scheme_type = sway
scheme_type = seduce
scheme_type = courting
scheme_type = elope
scheme_type = learn_language
scheme_type = teach_governor
}
}
}