N3OW/events/dlc/bp1/bp1_filippa_yearly_events.txt
2026-05-23 20:45:31 -04:00

4763 lines
120 KiB
Text

namespace = bp1_yearly
####
# bp1_yearly.2020 - A consort attempts to influence you into changing your heir
# bp1_yearly.2030 - Mopey consort wants some guidance
# bp1_yearly.2040 - Two consorts are disagreeing
# bp1_yearly.2050 - Friendly consorts want to start a study circle
# bp1_yearly.2060 - Friendly consorts want to tutor other consort's child
# bp1_yearly.2070 - Childless older soulmate spouse ponders your relationship
#
####
##################################################
# #A spouse/consort attempts to influence you into changing your heir
# by Filippa Gannholm Kirsten
# #bp1_yearly.2020-2023
##################################################
scripted_trigger bp1_yearly_2020_relevant_consort_trigger = {
is_available_ai_adult = yes
NOT = { has_relation_rival = root }
any_child = {
NOT = {
this = { is_primary_heir_of = root }
}
}
any_child = {
count > 0
bp1_yearly_2020_relevant_child_trigger = yes
}
}
scripted_trigger bp1_yearly_2020_relevant_child_trigger = {
age >= 13
is_available_child = yes
NOT = { has_relation_rival = root }
trigger_if = {
limit = {
root = {
has_realm_law = male_only_law
}
}
is_male = yes
}
trigger_else_if = {
limit = {
root = {
has_realm_law = female_only_law
}
}
is_female = yes
}
trigger_else = {
always = yes
}
}
scripted_effect bp1_yearly_2020_duel_effect = {
duel = {
skill = $SKILL$
target = scope:bp1_yearly_2020_target
#They brute force kill the rival/nemesis
25 = {
modifier = {
$SKILL$ = martial
factor = 0.5
}
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { intrigue > martial }
}
scope:bp1_yearly_2020_target = {
death = {
death_reason = death_murder
killer = scope:bp1_yearly_2020_influencing_partner
}
}
}
else = {
scope:bp1_yearly_2020_target = {
death = {
death_reason = death_defenestration
killer = scope:bp1_yearly_2020_influencing_partner
}
}
}
#Set designated heir-event
root = {
add_character_flag = bp1_yearly_2020_target_killed
trigger_event = {
id = bp1_yearly.2023
days = { 2 5 }
}
}
}
#They are imprisoned by the rival/nemesis
25 = {
#Needs to have a prison to imprison
trigger = {
scope:bp1_yearly_2020_target = {
is_landed = yes
}
}
#To block narration-breaking notification events
scope:bp1_yearly_2020_influencing_partner = {
add_character_flag = {
flag = bp1_yearly_2020_block_imprisonment_event
days = 1
}
}
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2020_influencing_partner IMPRISONER = scope:bp1_yearly_2020_target }
#Imprisonment letter
root = {
trigger_event = {
id = bp1_yearly.2022
days = 3
}
}
}
#They are killed by the rival/nemesis
25 = {
scope:bp1_yearly_2020_influencing_partner = {
death = {
death_reason = death_defenestration
killer = scope:bp1_yearly_2020_target
}
}
#Death letter
root = {
trigger_event = {
id = bp1_yearly.2022
days = 3
}
}
}
}
}
scripted_effect bp1_yearly_2020_chance_of_murderous_partner_effect = {
$MURDEROUS_PARTNER$ = {
random_list = {
#Attempt to murder heir
25 = {
trigger = {
OR = {
has_trait = vengeful
has_trait = deceitful
has_trait = sadistic
has_trait = ambitious
has_trait = wrathful
}
can_start_scheme = {
type = murder
target_character = root.player_heir
}
}
#If they killed our rival/nemesis we probably deserve some payback
modifier = {
has_character_flag = bp1_yearly_2020_target_killed
factor = 2
}
#If we took the person option but didn't pick anyone, they can sort of understand
modifier = {
NOT = { exists = scope:bp1_yearly_2021_new_courtier }
factor = 1.25
}
#MURDER VENGEANCE reeee
start_scheme = {
type = murder
target_character = root.player_heir
}
}
50 = {
modifier = {
NOR = {
has_character_flag = bp1_yearly_2020_target_killed
exists = scope:bp1_yearly_2021_new_courtier
}
factor = 1.5
}
#Do nothing
}
}
}
}
scripted_trigger bp1_yearly_2020_landed_partners_parent_trigger = {
is_available_ai_adult = yes
is_at_war = no
is_landed = yes
opinion = {
target = scope:bp1_yearly_2020_influencing_partner
value >= 0
}
}
scripted_effect bp1_yearly_2020_rival_nemesis_progress_effect = {
$PERSON$ = {
save_temporary_scope_as = new_heir_parent
}
if = {
limit = {
OR = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:new_heir_parent }
can_set_relation_rival_trigger = { CHARACTER = scope:new_heir_parent }
}
}
progress_towards_rival_effect = { CHARACTER = scope:new_heir_parent OPINION = default_rival_opinion REASON = rival_succession_scheme }
}
else_if = {
limit = {
NOR = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:new_heir_parent }
can_set_relation_rival_trigger = { CHARACTER = scope:new_heir_parent }
}
can_set_relation_nemesis_trigger = { CHARACTER = scope:new_heir_parent }
}
set_relation_nemesis = {
reason = nemesis_heir_ousted
copy_reason = rival
target = scope:new_heir_parent
}
}
}
scripted_effect bp1_yearly_2020_heir_change_opinions_effect = {
reverse_add_opinion = {
target = root.player_heir
modifier = primary_heir_replaced_opinion
opinion = -50
}
#Apply opinion & rivalry to the appropriate opposite-sex biological parent
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_female = yes }
}
if = {
limit = {
exists = root.player_heir.mother
root.player_heir.mother = { is_alive = yes }
}
root.player_heir.mother = {
add_opinion = {
target = root
modifier = parent_primary_heir_replaced_opinion
opinion = -50
}
save_scope_as = bp1_yearly_2020_scorned_parent
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = yes }
}
bp1_yearly_2020_rival_nemesis_progress_effect = { PERSON = scope:bp1_yearly_2020_influencing_partner }
}
}
}
}
else_if = {
limit = {
exists = root.player_heir.father
root.player_heir.father = { is_alive = yes }
}
root.player_heir.father = {
add_opinion = {
target = root
modifier = parent_primary_heir_replaced_opinion
opinion = -50
}
save_scope_as = bp1_yearly_2020_scorned_parent
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = yes }
}
bp1_yearly_2020_rival_nemesis_progress_effect = { PERSON = scope:bp1_yearly_2020_influencing_partner }
}
}
}
reverse_add_opinion = {
target = scope:bp1_yearly_2020_child_to_become_heir
modifier = pleased_opinion
opinion = 50
}
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = yes }
}
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partner
modifier = pleased_opinion
opinion = 50
}
}
}
bp1_yearly.2020 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2020.t
desc = bp1_yearly.2020.desc
theme = family
override_background = { reference = council_chamber }
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = paranoid
}
animation = paranoia
}
animation = worry
}
right_portrait = {
character = scope:bp1_yearly_2020_influencing_partner
animation = personality_greedy
}
lower_center_portrait = {
character = scope:bp1_yearly_2020_child_to_become_heir
}
lower_right_portrait = {
trigger = { exists = scope:bp1_yearly_2020_influencing_partners_parent }
character = scope:bp1_yearly_2020_influencing_partners_parent
}
#Set up the cooldown
cooldown = { years = 5 }
trigger = {
#DLC check
has_bp1_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_ai = no
is_landed = yes
exists = root.primary_heir
#Do we have any marital-like relationships with partners whose child is not your primary heir
any_consort = { bp1_yearly_2020_relevant_consort_trigger = yes }
any_relation = {
type = rival # Includes nemeses
is_available_at_peace_adult = yes
highest_held_title_tier <= tier_county
}
}
weight_multiplier = {
base = 1
modifier = {
any_consort = {
bp1_yearly_2020_relevant_consort_trigger = yes
has_trait = family_first
}
add = 2
}
modifier = {
any_consort = {
bp1_yearly_2020_relevant_consort_trigger = yes
has_trait_rank = {
trait = education_intrigue
rank >= 3
}
}
add = 2
}
modifier = {
any_consort = {
bp1_yearly_2020_relevant_consort_trigger = yes
has_trait = schemer
}
add = 2
}
modifier = {
any_consort = {
bp1_yearly_2020_relevant_consort_trigger = yes
has_trait = ambitious
}
add = 2
}
modifier = {
any_consort = {
bp1_yearly_2020_relevant_consort_trigger = yes
short_term_gold >= root.massive_gold_value
}
add = 2
}
}
immediate = {
#play_music_cue = "mx_cue_secret"
#Pick a relevant, weighted partner
random_consort = {
limit = { bp1_yearly_2020_relevant_consort_trigger = yes }
weight = {
base = 1
modifier = {
has_trait = ambitious
add = 2
}
modifier = {
has_trait = arrogant
add = 2
}
modifier = {
has_trait = diligent
add = 2
}
modifier = {
has_trait = deceitful
add = 5
}
modifier = {
has_trait = schemer
add = 5
}
modifier = {
has_trait = family_first
add = 10
}
modifier = {
has_trait_rank = {
trait = education_intrigue
rank >= 3
}
add = 10
}
modifier = {
short_term_gold >= massive_gold_value
add = 100
}
modifier = {
has_trait = forgiving
add = -2
}
modifier = {
has_trait = compassionate
add = -2
}
modifier = {
has_trait = generous
add = -2
}
modifier = {
has_trait = dull
add = -3
}
modifier = {
has_trait = lazy
add = -5
}
modifier = {
has_trait_rank = {
trait = intellect_bad
rank > 0
}
add = -5
}
}
save_scope_as = bp1_yearly_2020_influencing_partner
}
#Pick a child
scope:bp1_yearly_2020_influencing_partner = {
random_child = {
limit = {
bp1_yearly_2020_relevant_child_trigger = yes
#_Tradeoff_ they said
OR = {
has_trait = clubfooted
has_trait = hunchbacked
has_trait = lisping
has_trait = stuttering
has_trait = dwarf
has_trait = giant
has_trait = inbred
has_trait = weak
has_trait = dull
has_trait = spindly
has_trait = scaly
has_trait = albino
has_trait = wheezing
has_trait = bleeder
has_trait_rank = {
trait = beauty_bad
rank >= 1
}
has_trait_rank = {
trait = intellect_bad
rank >= 1
}
has_trait_rank = {
trait = physique_bad
rank >= 1
}
has_trait = maimed
has_trait = one_eyed
has_trait = one_legged
has_trait = disfigured
has_trait = scarred
has_trait = blind
has_trait = depressed_genetic
has_trait = lunatic_genetic
has_trait = possessed_genetic
has_trait = ill
has_trait = leper
}
}
alternative_limit = {
bp1_yearly_2020_relevant_child_trigger = yes
}
save_scope_as = bp1_yearly_2020_child_to_become_heir
}
}
#Set up a rival/nemesis, if any
random_relation = {
type = rival
limit = {
has_relation_nemesis = root
is_available_at_peace_adult = yes
highest_held_title_tier <= tier_county
}
alternative_limit = {
is_available_at_peace_adult = yes
highest_held_title_tier <= tier_county
}
save_scope_as = bp1_yearly_2020_target
}
#Saving scope for halfsies comparisons
save_scope_value_as = {
name = half_gold_check_2020
value = {
value = root.massive_gold_value
multiply = 0.5
}
}
#Look for a hookable landed parent of your partner
scope:bp1_yearly_2020_influencing_partner = {
#If our partner has enough gold, we only need a hookable landed parent
if = {
limit = { short_term_gold >= root.massive_gold_value }
random_parent = {
limit = { bp1_yearly_2020_landed_partners_parent_trigger = yes }
save_scope_as = bp1_yearly_2020_influencing_partners_parent_only_hook
#For the portrait
save_scope_as = bp1_yearly_2020_influencing_partners_parent
}
}
#Else check if they can go halfsies on the gold
else_if = {
limit = {
short_term_gold < root.massive_gold_value
short_term_gold >= scope:half_gold_check_2020
}
random_parent = {
limit = {
short_term_gold < root.massive_gold_value
bp1_yearly_2020_landed_partners_parent_trigger = yes
}
#For the portrait
save_scope_as = bp1_yearly_2020_influencing_partners_parent
#Do they have enough gold together to warrant the root.massive_gold_value
save_scope_value_as = {
name = halfsies_check_2020
value = {
value = scope:bp1_yearly_2020_influencing_partner.gold
add = scope:bp1_yearly_2020_influencing_partners_parent.gold
}
}
if = {
limit = {
scope:halfsies_check_2020 >= root.massive_gold_value
}
scope:bp1_yearly_2020_influencing_partners_parent = {
save_scope_as = bp1_yearly_2020_influencing_partners_parent_halfsies
}
}
}
}
#Else the partner parent pays and gets hooked
else_if = {
limit = {
short_term_gold < root.massive_gold_value
}
random_parent = {
limit = {
short_term_gold >= root.massive_gold_value
bp1_yearly_2020_landed_partners_parent_trigger = yes
}
save_scope_as = bp1_yearly_2020_influencing_partners_parent_pays
#For the portrait
save_scope_as = bp1_yearly_2020_influencing_partners_parent
}
}
}
}
#Martial/intrigue brute force duel
option = {
name = bp1_yearly.2020.a
trigger = { exists = scope:bp1_yearly_2020_target }
#To block the narration-breaking default death notification
add_character_flag = {
flag = bp1_yearly_2020_suppress_death_events
days = 5
}
if = {
#Prioritize intrigue duel, less chance of death
limit = {
scope:bp1_yearly_2020_influencing_partner = { intrigue > martial }
}
scope:bp1_yearly_2020_influencing_partner = {
bp1_yearly_2020_duel_effect = { SKILL = intrigue }
}
}
else = {
scope:bp1_yearly_2020_influencing_partner = {
bp1_yearly_2020_duel_effect = { SKILL = martial }
}
}
stress_impact = {
vengeful = medium_stress_impact_gain
family_first = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
#Pay you a massive amount of gold + a hook
option = {
name = bp1_yearly.2020.c
flavor = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:bp1_yearly_2020_influencing_partners_parent_only_hook }
desc = bp1_yearly.2020.c_tt_only_hook
}
triggered_desc = {
trigger = {
exists = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
type = favor_hook
}
}
desc = bp1_yearly.2020.c_tt_halfsies
}
triggered_desc = {
trigger = {
exists = scope:bp1_yearly_2020_influencing_partners_parent_pays
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_pays
type = favor_hook
}
}
desc = bp1_yearly.2020.c_tt_pay_and_hook
}
}
}
trigger = {
OR = {
#If our partner has enough gold
scope:bp1_yearly_2020_influencing_partner = { short_term_gold >= root.massive_gold_value }
#Or if they can go halfsies
AND = {
scope:bp1_yearly_2020_influencing_partner = {
short_term_gold < root.massive_gold_value
short_term_gold >= scope:half_gold_check_2020
}
exists = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
}
#Or if partner's parent has enough gold
exists = scope:bp1_yearly_2020_influencing_partners_parent_pays
}
}
#Partner pays
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { short_term_gold >= root.massive_gold_value }
}
scope:bp1_yearly_2020_influencing_partner = {
pay_short_term_gold = {
target = root
gold = root.massive_gold_value
}
}
#Hook partner's parent first
if = {
limit = { exists = scope:bp1_yearly_2020_influencing_partners_parent_only_hook }
add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_only_hook
type = favor_hook
}
}
#Else hook partner
else_if = {
limit = {
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partner
type = favor_hook
}
}
add_hook = {
target = scope:bp1_yearly_2020_influencing_partner
type = favor_hook
}
}
}
#They go halfsies
else_if = {
limit = {
exists = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
type = favor_hook
}
}
scope:bp1_yearly_2020_influencing_partner = {
pay_short_term_gold = {
target = root
gold = scope:half_gold_check_2020
}
}
scope:bp1_yearly_2020_influencing_partners_parent_halfsies = {
pay_short_term_gold = {
target = root
gold = scope:half_gold_check_2020
}
}
#Hook partner's parent first
if = {
limit = {
exists = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
type = favor_hook
}
}
add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
type = favor_hook
}
}
#Else hook partner
else_if = {
limit = {
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partner
type = favor_hook
}
}
add_hook = {
target = scope:bp1_yearly_2020_influencing_partner
type = favor_hook
}
}
}
#Partner's parent pays
else_if = {
limit = { exists = scope:bp1_yearly_2020_influencing_partners_parent_pays }
scope:bp1_yearly_2020_influencing_partners_parent_pays = {
pay_short_term_gold = {
target = root
gold = root.massive_gold_value
}
}
#Hook partner's parent first
if = {
limit = {
exists = scope:bp1_yearly_2020_influencing_partners_parent_pays
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_pays
type = favor_hook
}
}
add_hook = {
target = scope:bp1_yearly_2020_influencing_partners_parent_pays
type = favor_hook
}
}
#Else hook partner
else_if = {
limit = {
root = {
can_add_hook = {
target = scope:bp1_yearly_2020_influencing_partner
type = favor_hook
}
}
}
add_hook = {
target = scope:bp1_yearly_2020_influencing_partner
type = favor_hook
}
}
}
#Deal with opinion reactions to this
bp1_yearly_2020_heir_change_opinions_effect = yes
if = {
limit = { exists = scope:bp1_yearly_2020_influencing_partners_parent_only_hook }
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partners_parent_only_hook
modifier = pleased_opinion
opinion = 50
}
}
else_if = {
limit = { exists = scope:bp1_yearly_2020_influencing_partners_parent_halfsies }
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
modifier = pleased_opinion
opinion = 50
}
}
else_if = {
limit = { exists = scope:bp1_yearly_2020_influencing_partners_parent_pays }
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partners_parent_pays
modifier = pleased_opinion
opinion = 50
}
}
send_interface_toast = {
title = designate_heir_interaction_notification
left_icon = root
right_icon = scope:bp1_yearly_2020_child_to_become_heir
set_designated_heir = scope:bp1_yearly_2020_child_to_become_heir
}
hidden_effect = {
if = {
limit = { exists = scope:bp1_yearly_2020_scorned_parent }
bp1_yearly_2020_chance_of_murderous_partner_effect = { MURDEROUS_PARTNER = scope:bp1_yearly_2020_scorned_parent }
}
}
stress_impact = {
craven = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
greedy = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
#Summon an interesting person to join your court
option = {
name = bp1_yearly.2020.b
trigger = {
#Mutually exclusive to the money + gold option
NOR = {
scope:bp1_yearly_2020_influencing_partner = { short_term_gold >= root.massive_gold_value }
exists = scope:bp1_yearly_2020_influencing_partners_parent_halfsies
exists = scope:bp1_yearly_2020_influencing_partners_parent_pays
}
}
custom_tooltip = bp1_yearly.2020.b_tt
trigger_event = {
id = bp1_yearly.2021
days = 2
}
ai_chance = {
base = 100
}
}
#Imprison them for merely suggesting this
option = {
name = bp1_yearly.2020.d
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
has_trait = irritable
has_trait = paranoid
has_trait = craven
has_trait = fickle
}
}
flavor = bp1_yearly.2020.d_tt
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2020_influencing_partner IMPRISONER = root }
stress_impact = {
craven = miniscule_stress_impact_loss
paranoid = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
#Not interested
option = {
name = bp1_yearly.2020.e
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partner
modifier = insulted_opinion
opinion = -20
}
stress_impact = {
craven = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
hidden_effect = {
bp1_yearly_2020_chance_of_murderous_partner_effect = { MURDEROUS_PARTNER = scope:bp1_yearly_2020_influencing_partner }
}
ai_chance = {
base = 100
}
}
}
scripted_trigger bp1_yearly_2021_relevant_dynasty_person_trigger = {
this != scope:bp1_yearly_2020_influencing_partner
NOT = { is_child_of = scope:bp1_yearly_2020_influencing_partner }
NOT = { is_primary_heir_of = liege }
has_any_bad_relationship_with_root_trigger = no
opinion = {
target = scope:bp1_yearly_2020_influencing_partner
value >= 0
}
is_landed_or_landless_administrative = no
is_available_at_peace_ai_adult = yes
$SKILL$ >= $TARGET$.$SKILL$
}
scripted_trigger bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = {
this != scope:bp1_yearly_2020_influencing_partner
NOT = { is_child_of = scope:bp1_yearly_2020_influencing_partner }
NOT = { is_primary_heir_of = liege }
has_any_bad_relationship_with_root_trigger = no
opinion = {
target = scope:bp1_yearly_2020_influencing_partner
value >= 0
}
is_landed_or_landless_administrative = no
is_available_at_peace_ai_adult = yes
$SKILL$ >= high_skill_rating
}
scripted_effect bp1_yearly_2021_add_interesting_courtier_effect = {
random_list = {
#Martial Person
1 = {
trigger = {
NOT = { exists = scope:bp1_yearly_2021_martial_person }
}
#Let's inject a partner dynasty member if we can
modifier = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_marshal_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = martial TARGET = scope:bp1_yearly_2021_marshal_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = martial }
}
}
}
}
add = 20
}
modifier = {
OR = {
AND = {
exists = scope:bp1_yearly_2021_marshal_scope
scope:bp1_yearly_2021_marshal_scope.martial < high_skill_rating
}
NOT = { exists = scope:bp1_yearly_2021_marshal_scope }
}
add = 10
}
#Look for a dynasty member of the consort first
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_marshal_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = martial TARGET = scope:bp1_yearly_2021_marshal_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = martial }
}
}
}
}
}
scope:bp1_yearly_2020_influencing_partner = {
#If a marshal currently exists and our dynast has more martial
if = {
limit = { exists = scope:bp1_yearly_2021_marshal_scope }
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = martial TARGET = scope:bp1_yearly_2021_marshal_scope }
}
save_scope_as = bp1_yearly_2021_martial_person
}
}
}
#Else just check if the dynast has above 15 martial
else = {
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = martial }
}
save_scope_as = bp1_yearly_2021_martial_person
}
}
}
}
}
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_martial_person_template
save_scope_as = bp1_yearly_2021_martial_person
}
scope:bp1_yearly_2021_martial_person = {
set_variable = {
name = created_in_bp1_yearly_2021
value = yes
days = 60
}
}
}
}
#Learning Person
1 = {
trigger = {
NOT = { exists = scope:bp1_yearly_2021_learning_person }
}
#Let's inject a partner dynasty member if we can
modifier = {
#If we can change our learning councillor and have an appropriate dynast
faith = { has_doctrine = doctrine_clerical_succession_temporal_appointment }
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_chaplain_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = learning TARGET = scope:bp1_yearly_2021_chaplain_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = learning }
}
}
}
}
add = 20
}
modifier = {
OR = {
#If we can change our learning councillor and they don't exist
AND = {
faith = { has_doctrine = doctrine_clerical_succession_temporal_appointment }
NOT = { exists = scope:bp1_yearly_2021_chaplain_scope }
}
#If we can change our learning councillor and they have less than 15 learning
AND = {
faith = { has_doctrine = doctrine_clerical_succession_temporal_appointment }
exists = scope:bp1_yearly_2021_chaplain_scope
scope:bp1_yearly_2021_chaplain_scope.learning < high_skill_rating
}
}
add = 10
}
#Look for a dynasty member of the consort first
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_chaplain_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = learning TARGET = scope:bp1_yearly_2021_chaplain_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = learning }
}
}
}
}
}
scope:bp1_yearly_2020_influencing_partner = {
#If a chaplain currently exists and our dynast has more learning
if = {
limit = { exists = scope:bp1_yearly_2021_chaplain_scope }
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = learning TARGET = scope:bp1_yearly_2021_chaplain_scope }
}
save_scope_as = bp1_yearly_2021_learning_person
}
}
}
#Else just check if the dynast has above 15 learning
else = {
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = learning }
}
save_scope_as = bp1_yearly_2021_learning_person
}
}
}
}
}
else = {
if = {
#If witchcraft is accepted, create a witch
limit = {
faith = { has_doctrine = doctrine_witchcraft_accepted }
}
create_character = {
location = root.location
template = bp1_yearly_2021_learning_witch_template
save_scope_as = bp1_yearly_2021_learning_person
}
scope:bp1_yearly_2021_learning_person = {
set_variable = {
name = created_in_bp1_yearly_2021
value = yes
days = 60
}
}
}
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_learning_person_template
save_scope_as = bp1_yearly_2021_learning_person
}
scope:bp1_yearly_2021_learning_person = {
set_variable = {
name = created_in_bp1_yearly_2021
value = yes
days = 60
}
}
}
}
}
#Stewardship Person
1 = {
trigger = {
NOT = { exists = scope:bp1_yearly_2021_stewardship_person }
}
#Let's inject a partner dynasty member if we can
modifier = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_steward_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = stewardship TARGET = scope:bp1_yearly_2021_steward_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = stewardship }
}
}
}
}
add = 20
}
modifier = {
OR = {
AND = {
exists = scope:bp1_yearly_2021_steward_scope
scope:bp1_yearly_2021_steward_scope.stewardship < high_skill_rating
}
NOT = { exists = scope:bp1_yearly_2021_steward_scope }
}
add = 10
}
#Look for a dynasty member of the consort first
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_steward_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = stewardship TARGET = scope:bp1_yearly_2021_steward_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = stewardship }
}
}
}
}
}
scope:bp1_yearly_2020_influencing_partner = {
#If a steward currently exists and our dynast has more stewardship
if = {
limit = { exists = scope:bp1_yearly_2021_steward_scope }
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = stewardship TARGET = scope:bp1_yearly_2021_steward_scope }
}
save_scope_as = bp1_yearly_2021_stewardship_person
}
}
}
#Else just check if the dynast has above 15 stewardship
else = {
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = stewardship }
}
save_scope_as = bp1_yearly_2021_stewardship_person
}
}
}
}
}
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_stewardship_person_template
save_scope_as = bp1_yearly_2021_stewardship_person
}
scope:bp1_yearly_2021_stewardship_person = {
set_variable = {
name = created_in_bp1_yearly_2021
value = yes
days = 60
}
}
}
}
#Diplomacy Person
1 = {
trigger = {
NOT = { exists = scope:bp1_yearly_2021_diplomacy_person }
}
#Let's inject a partner dynasty member if we can
modifier = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_chancellor_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = diplomacy TARGET = scope:bp1_yearly_2021_chancellor_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = diplomacy }
}
}
}
}
add = 20
}
modifier = {
OR = {
AND = {
exists = scope:bp1_yearly_2021_chancellor_scope
scope:bp1_yearly_2021_chancellor_scope.diplomacy < high_skill_rating
}
NOT = { exists = scope:bp1_yearly_2021_chancellor_scope }
}
add = 10
}
#Look for a dynasty member of the consort first
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_chancellor_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = diplomacy TARGET = scope:bp1_yearly_2021_chancellor_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = diplomacy }
}
}
}
}
}
scope:bp1_yearly_2020_influencing_partner = {
#If a chancellor currently exists and our dynast has more diplomacy
if = {
limit = { exists = scope:bp1_yearly_2021_chancellor_scope }
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = diplomacy TARGET = scope:bp1_yearly_2021_chancellor_scope }
}
save_scope_as = bp1_yearly_2021_diplomacy_person
}
}
}
#Else just check if the dynast has above 15 diplomacy
else = {
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = diplomacy }
}
save_scope_as = bp1_yearly_2021_diplomacy_person
}
}
}
}
}
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_diplomacy_person_template
save_scope_as = bp1_yearly_2021_diplomacy_person
}
scope:bp1_yearly_2021_diplomacy_person = {
set_variable = {
name = created_in_bp1_yearly_2021
value = yes
days = 60
}
}
}
}
#Intrigue Person
1 = {
trigger = {
NOT = { exists = scope:bp1_yearly_2021_intrigue_person }
}
#Let's inject a partner dynasty member if we can
modifier = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_spymaster_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = intrigue TARGET = scope:bp1_yearly_2021_spymaster_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = intrigue }
}
}
}
}
add = 20
}
modifier = {
OR = {
AND = {
exists = scope:bp1_yearly_2021_spymaster_scope
scope:bp1_yearly_2021_spymaster_scope.intrigue < high_skill_rating
}
NOT = { exists = scope:bp1_yearly_2021_spymaster_scope }
}
add = 10
}
#Look for a dynasty member of the consort first
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
exists = dynasty
OR = {
AND = {
exists = scope:bp1_yearly_2021_spymaster_scope
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = intrigue TARGET = scope:bp1_yearly_2021_spymaster_scope }
}
}
}
dynasty = {
any_dynasty_member = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = intrigue }
}
}
}
}
}
scope:bp1_yearly_2020_influencing_partner = {
#If a spymaster currently exists and our dynast has more intrigue
if = {
limit = { exists = scope:bp1_yearly_2021_spymaster_scope }
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_trigger = { SKILL = intrigue TARGET = scope:bp1_yearly_2021_spymaster_scope }
}
save_scope_as = bp1_yearly_2021_intrigue_person
}
}
}
#Else just check if the dynast has above 15 intrigue
else = {
dynasty = {
random_dynasty_member = {
limit = {
bp1_yearly_2021_relevant_dynasty_person_no_target_trigger = { SKILL = intrigue }
}
}
save_scope_as = bp1_yearly_2021_intrigue_person
}
}
}
}
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_intrigue_person_template
save_scope_as = bp1_yearly_2021_intrigue_person
}
scope:bp1_yearly_2021_intrigue_person = {
set_variable = {
name = created_in_bp1_yearly_2021
value = yes
days = 60
}
}
}
}
}
}
scripted_effect bp1_yearly_2021_set_up_portrait_effect = {
$SCOPE$ = {
if = {
limit = {
NOT = { exists = scope:bp1_yearly_2021_first_person }
}
save_scope_as = bp1_yearly_2021_first_person
}
else_if = {
limit = {
NOT = { exists = scope:bp1_yearly_2021_second_person }
}
save_scope_as = bp1_yearly_2021_second_person
}
else_if = {
limit = {
NOT = { exists = scope:bp1_yearly_2021_third_person }
}
save_scope_as = bp1_yearly_2021_third_person
}
}
}
scripted_trigger bp1_yearly_2021_clean_up_character_trigger = {
exists = scope:bp1_yearly_2021_$SKILL$_person
scope:bp1_yearly_2021_$SKILL$_person = {
has_variable = created_in_bp1_yearly_2021
NOT = { has_character_flag = bp1_yearly_2021_chosen_courtier }
}
}
scripted_effect bp1_yearly_2021_clean_up_character_effect = {
scope:bp1_yearly_2021_$SKILL$_person = {
death = {
death_reason = death_vanished
}
}
}
#Summon up a person to your liking
bp1_yearly.2021 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2021.t
desc = bp1_yearly.2021.desc
theme = family
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_2020_influencing_partner
animation = chancellor
}
#First Person
lower_left_portrait = {
trigger = { exists = scope:bp1_yearly_2021_first_person }
character = scope:bp1_yearly_2021_first_person
}
#Second Person
lower_center_portrait = {
trigger = { exists = scope:bp1_yearly_2021_second_person }
character = scope:bp1_yearly_2021_second_person
}
#Third Person
lower_right_portrait = {
trigger = { exists = scope:bp1_yearly_2021_third_person }
character = scope:bp1_yearly_2021_third_person
}
immediate = {
if = {
limit = { exists = cp:councillor_marshal }
cp:councillor_marshal = { save_scope_as = bp1_yearly_2021_marshal_scope }
}
if = {
limit = { exists = cp:councillor_court_chaplain }
cp:councillor_court_chaplain = { save_scope_as = bp1_yearly_2021_chaplain_scope }
}
if = {
limit = { exists = cp:councillor_steward }
cp:councillor_steward = { save_scope_as = bp1_yearly_2021_steward_scope }
}
if = {
limit = { exists = cp:councillor_chancellor }
cp:councillor_chancellor = { save_scope_as = bp1_yearly_2021_chancellor_scope }
}
if = {
limit = { exists = cp:councillor_spymaster }
cp:councillor_spymaster = { save_scope_as = bp1_yearly_2021_spymaster_scope }
}
#Conjure up 3 interesting courtiers
bp1_yearly_2021_add_interesting_courtier_effect = yes
bp1_yearly_2021_add_interesting_courtier_effect = yes
bp1_yearly_2021_add_interesting_courtier_effect = yes
#Set up portraits to display
if = {
limit = { exists = scope:bp1_yearly_2021_martial_person }
bp1_yearly_2021_set_up_portrait_effect = { SCOPE = scope:bp1_yearly_2021_martial_person }
}
if = {
limit = { exists = scope:bp1_yearly_2021_learning_person }
bp1_yearly_2021_set_up_portrait_effect = { SCOPE = scope:bp1_yearly_2021_learning_person }
}
if = {
limit = { exists = scope:bp1_yearly_2021_stewardship_person }
bp1_yearly_2021_set_up_portrait_effect = { SCOPE = scope:bp1_yearly_2021_stewardship_person }
}
if = {
limit = { exists = scope:bp1_yearly_2021_diplomacy_person }
bp1_yearly_2021_set_up_portrait_effect = { SCOPE = scope:bp1_yearly_2021_diplomacy_person }
}
if = {
limit = { exists = scope:bp1_yearly_2021_intrigue_person }
bp1_yearly_2021_set_up_portrait_effect = { SCOPE = scope:bp1_yearly_2021_intrigue_person }
}
}
#Pick Martial
option = {
name = bp1_yearly.2021.a
trigger = { exists = scope:bp1_yearly_2021_martial_person }
send_interface_toast = {
title = bp1_yearly.2021.a_tt
left_icon = scope:bp1_yearly_2021_martial_person
add_courtier = scope:bp1_yearly_2021_martial_person
scope:bp1_yearly_2021_martial_person = {
add_character_flag = bp1_yearly_2021_chosen_courtier
}
reverse_add_opinion = {
target = scope:bp1_yearly_2021_martial_person
modifier = pleased_opinion
opinion = 40
}
}
save_scope_as = bp1_yearly_2021_new_courtier
}
#Pick Learning
option = {
name = bp1_yearly.2021.b
trigger = { exists = scope:bp1_yearly_2021_learning_person }
send_interface_toast = {
title = bp1_yearly.2021.b_tt
left_icon = scope:bp1_yearly_2021_learning_person
add_courtier = scope:bp1_yearly_2021_learning_person
scope:bp1_yearly_2021_learning_person = {
add_character_flag = bp1_yearly_2021_chosen_courtier
}
reverse_add_opinion = {
target = scope:bp1_yearly_2021_learning_person
modifier = pleased_opinion
opinion = 40
}
}
save_scope_as = bp1_yearly_2021_new_courtier
}
#Pick Stewardship
option = {
name = bp1_yearly.2021.c
trigger = { exists = scope:bp1_yearly_2021_stewardship_person }
send_interface_toast = {
title = bp1_yearly.2021.c_tt
left_icon = scope:bp1_yearly_2021_stewardship_person
add_courtier = scope:bp1_yearly_2021_stewardship_person
scope:bp1_yearly_2021_stewardship_person = {
add_character_flag = bp1_yearly_2021_chosen_courtier
}
reverse_add_opinion = {
target = scope:bp1_yearly_2021_stewardship_person
modifier = pleased_opinion
opinion = 40
}
}
save_scope_as = bp1_yearly_2021_new_courtier
}
#Pick Diplomacy
option = {
name = bp1_yearly.2021.d
trigger = { exists = scope:bp1_yearly_2021_diplomacy_person }
send_interface_toast = {
title = bp1_yearly.2021.d_tt
left_icon = scope:bp1_yearly_2021_diplomacy_person
add_courtier = scope:bp1_yearly_2021_diplomacy_person
scope:bp1_yearly_2021_diplomacy_person = {
add_character_flag = bp1_yearly_2021_chosen_courtier
}
reverse_add_opinion = {
target = scope:bp1_yearly_2021_diplomacy_person
modifier = pleased_opinion
opinion = 40
}
}
save_scope_as = bp1_yearly_2021_new_courtier
}
#Pick Intrigue
option = {
name = bp1_yearly.2021.e
trigger = { exists = scope:bp1_yearly_2021_intrigue_person }
send_interface_toast = {
title = bp1_yearly.2021.e_tt
left_icon = scope:bp1_yearly_2021_intrigue_person
add_courtier = scope:bp1_yearly_2021_intrigue_person
scope:bp1_yearly_2021_intrigue_person = {
add_character_flag = bp1_yearly_2021_chosen_courtier
}
reverse_add_opinion = {
target = scope:bp1_yearly_2021_intrigue_person
modifier = pleased_opinion
opinion = 40
}
}
save_scope_as = bp1_yearly_2021_new_courtier
}
#Actually, I have changed my mind
option = {
name = bp1_yearly.2021.f
add_character_flag = bp1_yearly_2021_picked_none
stress_impact = {
fickle = miniscule_stress_impact_loss
}
}
after = {
hidden_effect = {
#...clean up the unused characters
if = {
limit = {
bp1_yearly_2021_clean_up_character_trigger = { SKILL = martial }
}
bp1_yearly_2021_clean_up_character_effect = { SKILL = martial }
}
if = {
limit = {
bp1_yearly_2021_clean_up_character_trigger = { SKILL = learning }
}
bp1_yearly_2021_clean_up_character_effect = { SKILL = learning }
}
if = {
limit = {
bp1_yearly_2021_clean_up_character_trigger = { SKILL = stewardship }
}
bp1_yearly_2021_clean_up_character_effect = { SKILL = stewardship }
}
if = {
limit = {
bp1_yearly_2021_clean_up_character_trigger = { SKILL = diplomacy }
}
bp1_yearly_2021_clean_up_character_effect = { SKILL = diplomacy }
}
if = {
limit = {
bp1_yearly_2021_clean_up_character_trigger = { SKILL = intrigue }
}
bp1_yearly_2021_clean_up_character_effect = { SKILL = intrigue }
}
}
trigger_event = {
id = bp1_yearly.2023
days = { 2 5 }
}
}
}
#Your partner is imprisoned/dead
bp1_yearly.2022 = {
type = letter_event
opening = bp1_yearly.2022.t
desc = {
desc = bp1_yearly.2022.desc_intro
first_valid = {
#Your partner is imprisoned
triggered_desc = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = yes }
}
desc = bp1_yearly.2022.desc_imprisoned
}
#Your partner died
triggered_desc = {
desc = bp1_yearly.2022.desc_dead
}
}
}
sender = scope:bp1_yearly_2020_target
#Oh no!
option = {
name = {
text = {
first_valid = {
#If our partner was imprisoned
triggered_desc = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = yes }
}
desc = bp1_yearly.2022.a_imprisoned
}
#Else they died
triggered_desc = {
desc = bp1_yearly.2022.b_dead
}
}
}
}
#If our partner was imprisoned or killed by rival, deepen rivalry
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
OR = {
is_imprisoned_by = scope:bp1_yearly_2020_target
is_alive = no
}
}
can_set_relation_nemesis_trigger = { CHARACTER = scope:bp1_yearly_2020_target }
}
# Split set_relation nemesis into two cases based on what the reason should be. - Chad
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_imprisoned_by = scope:bp1_yearly_2020_target }
}
set_relation_nemesis = {
reason = nemesis_imprisoned_partner
target = scope:bp1_yearly_2020_target
involved_character = scope:bp1_yearly_2020_influencing_partner
}
}
else_if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = no }
}
set_relation_nemesis = {
reason = nemesis_killed_partner
target = scope:bp1_yearly_2020_target
involved_character = scope:bp1_yearly_2020_influencing_partner
}
}
}
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = no }
}
stress_impact = {
vengeful = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
family_first = medium_stress_impact_gain
just = minor_stress_impact_gain
}
}
else = {
stress_impact = {
vengeful = minor_stress_impact_gain
wrathful = minor_stress_impact_gain
family_first = minor_stress_impact_gain
just = miniscule_stress_impact_gain
}
}
trigger_event = {
id = bp1_yearly.2023
days = { 2 5 }
}
}
}
scripted_effect bp1_yearly_2023_apply_dis_or_honorable_modifier_effect = {
#If we already have the modifier, refresh it
if = {
limit = {
NOT = { has_character_modifier = bp1_yearly_2023_$REMOVE$_modifier }
has_character_modifier = bp1_yearly_2023_$ADD$_modifier
}
remove_character_modifier = bp1_yearly_2023_$ADD$_modifier
add_character_modifier = {
modifier = bp1_yearly_2023_$ADD$_modifier
years = 30
}
}
#If we already have the modifier, remove and replace
else_if = {
limit = { has_character_modifier = bp1_yearly_2023_$REMOVE$_modifier }
remove_character_modifier = bp1_yearly_2023_$REMOVE$_modifier
add_character_modifier = {
modifier = bp1_yearly_2023_$ADD$_modifier
years = 30
}
}
#If we don't have any previously, get ADD
else_if = {
limit = {
NOR = {
has_character_modifier = bp1_yearly_2023_$ADD$_modifier
has_character_modifier = bp1_yearly_2023_$REMOVE$_modifier
}
}
add_character_modifier = {
modifier = bp1_yearly_2023_$ADD$_modifier
years = 30
}
}
}
#Handle the set_designated_heir
bp1_yearly.2023 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2023.t
desc = {
first_valid = {
triggered_desc = {
#They completed their task
trigger = {
OR = {
has_character_flag = bp1_yearly_2020_target_killed
exists = scope:bp1_yearly_2021_new_courtier
}
}
desc = bp1_yearly.2023.desc_triumphant
}
triggered_desc = {
#They died while trying to kill your rival/nemesis
trigger = {
exists = scope:bp1_yearly_2020_target
scope:bp1_yearly_2020_influencing_partner = {
OR = {
is_imprisoned_by = scope:bp1_yearly_2020_target
is_alive = no
}
}
}
desc = bp1_yearly.2023.desc_sad
}
triggered_desc = {
#They killed your rival/nemesis, is presenting their head
trigger = {
NOT = { exists = scope:bp1_yearly_2021_new_courtier }
}
desc = bp1_yearly.2023.desc_hesitant
}
}
first_valid = {
#They attempted to kill your rival/nemesis
triggered_desc = {
#They killed your rival/nemesis, is presenting their head
trigger = {
exists = scope:bp1_yearly_2020_target
has_character_flag = bp1_yearly_2020_target_killed
}
desc = bp1_yearly.2023.desc_killed_target
}
triggered_desc = {
#They are imprisoned by your rival/nemesis
trigger = {
exists = scope:bp1_yearly_2020_target
scope:bp1_yearly_2020_influencing_partner = {
is_imprisoned_by = scope:bp1_yearly_2020_target
}
}
desc = bp1_yearly.2023.desc_imprisoned
}
triggered_desc = {
#They died attempting to kill your rival/nemesis
trigger = {
exists = scope:bp1_yearly_2020_target
scope:bp1_yearly_2020_influencing_partner = { is_alive = no }
}
desc = bp1_yearly.2023.desc_died
}
#They summoned a person of your liking to court
triggered_desc = {
#You picked the martial person
trigger = {
exists = scope:bp1_yearly_2021_new_courtier
# CU: added check for error suppression
exists = scope:bp1_yearly_2021_martial_person
scope:bp1_yearly_2021_new_courtier = scope:bp1_yearly_2021_martial_person
}
desc = bp1_yearly.2023.desc_picked_martial
}
triggered_desc = {
#You picked the learning person
trigger = {
exists = scope:bp1_yearly_2021_new_courtier
# CU: added check for error suppression
exists = scope:bp1_yearly_2021_learning_person
scope:bp1_yearly_2021_new_courtier = scope:bp1_yearly_2021_learning_person
}
desc = bp1_yearly.2023.desc_picked_learning
}
triggered_desc = {
#You picked the stewardship person
trigger = {
exists = scope:bp1_yearly_2021_new_courtier
# CU: added check for error suppression
exists = scope:bp1_yearly_2021_stewardship_person
scope:bp1_yearly_2021_new_courtier = scope:bp1_yearly_2021_stewardship_person
}
desc = bp1_yearly.2023.desc_picked_stewardship
}
triggered_desc = {
#You picked the diplomacy person
trigger = {
exists = scope:bp1_yearly_2021_new_courtier
# CU: added check for error suppression
exists = scope:bp1_yearly_2021_diplomacy_person
scope:bp1_yearly_2021_new_courtier = scope:bp1_yearly_2021_diplomacy_person
}
desc = bp1_yearly.2023.desc_picked_diplomacy
}
triggered_desc = {
#You picked the intrigue person
trigger = {
exists = scope:bp1_yearly_2021_new_courtier
# CU: added check for error suppression
exists = scope:bp1_yearly_2021_intrigue_person
scope:bp1_yearly_2021_new_courtier = scope:bp1_yearly_2021_intrigue_person
}
desc = bp1_yearly.2023.desc_picked_intrigue
}
triggered_desc = {
#You didn't pick any of the summoned people
trigger = {
NOT = { exists = scope:bp1_yearly_2021_new_courtier }
}
desc = bp1_yearly.2023.desc_picked_none
}
}
first_valid = {
#If they did something for us and we're supposed to honor our agreement
triggered_desc = {
trigger = {
OR = {
has_character_flag = bp1_yearly_2020_target_killed
exists = scope:bp1_yearly_2021_new_courtier
}
}
desc = bp1_yearly.2023.desc_outro
}
#If the partner is imprisoned or dead
triggered_desc = {
trigger = {
exists = scope:bp1_yearly_2020_target
scope:bp1_yearly_2020_influencing_partner = {
OR = {
is_imprisoned_by = scope:bp1_yearly_2020_target
is_alive = no
}
}
}
desc = bp1_yearly.2023.desc_outro_sad
}
}
}
theme = family
override_background = { reference = bp1_kitchen_western }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_character_flag = bp1_yearly_2020_target_killed }
animation = disbelief
}
triggered_animation = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = {
OR = {
is_imprisoned = yes
is_alive = no
}
}
}
animation = sadness
}
animation = personality_rational
}
#If the partner isn't dead or imprisoned, display them
right_portrait = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = {
is_imprisoned = no
is_alive = yes
}
}
character = scope:bp1_yearly_2020_influencing_partner
animation = war_over_win
}
#If we picked one of the people to join our court, display that person
lower_left_portrait = {
trigger = { exists = scope:bp1_yearly_2021_new_courtier }
character = scope:bp1_yearly_2021_new_courtier
}
#Display the 'new heir' in question
lower_center_portrait = {
character = scope:bp1_yearly_2020_child_to_become_heir
}
lower_right_portrait = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = no }
}
character = scope:bp1_yearly_2020_influencing_partner
}
immediate = {
#Lose the stress you were supposed to lose when rival/nemesis died
if = {
limit = { has_character_flag = bp1_yearly_2020_target_killed }
stress_impact = {
base = minor_stress_impact_loss
}
}
}
#Set designated heir
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = {
OR = {
is_imprisoned_by = scope:bp1_yearly_2020_target
is_alive = no
}
}
}
desc = bp1_yearly.2023.a_imprisoned_dead
}
triggered_desc = {
desc = bp1_yearly.2023.a
}
}
}
}
#Deal with opinion reactions to this
bp1_yearly_2020_heir_change_opinions_effect = yes
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = { is_alive = no }
}
bp1_yearly_2023_apply_dis_or_honorable_modifier_effect = { ADD = honorable REMOVE = dishonorable }
stress_impact = {
family_first = miniscule_stress_impact_loss
honest = miniscule_stress_impact_loss
}
}
send_interface_toast = {
title = designate_heir_interaction_notification
left_icon = root
right_icon = scope:bp1_yearly_2020_child_to_become_heir
set_designated_heir = scope:bp1_yearly_2020_child_to_become_heir
}
hidden_effect = {
if = {
limit = { exists = scope:bp1_yearly_2020_scorned_parent }
bp1_yearly_2020_chance_of_murderous_partner_effect = { MURDEROUS_PARTNER = scope:bp1_yearly_2020_scorned_parent }
}
}
}
#No, imprison them
option = {
name = {
text = {
first_valid = {
#If they successfully killed the rival/nemesis
triggered_desc = {
trigger = { has_character_flag = bp1_yearly_2020_target_killed }
desc = bp1_yearly.2023.b_killer
}
#If we just don't trust them
triggered_desc = {
desc = bp1_yearly.2023.b
}
}
}
}
trigger = {
scope:bp1_yearly_2020_influencing_partner = {
is_imprisoned = no
is_alive = yes
}
}
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2020_influencing_partner IMPRISONER = root }
#Sting more if they actually killed your rival/nemesis
if = {
limit = { has_character_flag = bp1_yearly_2020_target_killed }
bp1_yearly_2023_apply_dis_or_honorable_modifier_effect = { ADD = dishonorable REMOVE = honorable }
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partner
modifier = betrayed_me_opinion
opinion = -50
}
stress_impact = {
family_first = minor_stress_impact_gain
honest = medium_stress_impact_gain
craven = miniscule_stress_impact_loss
paranoid = minor_stress_impact_loss
}
}
else = {
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partner
modifier = betrayed_me_opinion
opinion = -30
}
stress_impact = {
honest = minor_stress_impact_gain
craven = miniscule_stress_impact_loss
paranoid = minor_stress_impact_loss
}
}
}
#No, I've changed my mind
option = {
name = {
text = {
first_valid = {
#I mean, _technically_ they didn't finish the job...
triggered_desc = {
trigger = {
scope:bp1_yearly_2020_influencing_partner = {
OR = {
is_imprisoned_by = scope:bp1_yearly_2020_target
is_alive = no
}
}
}
desc = bp1_yearly.2023.c_imprisoned_dead
}
#This isn't right
triggered_desc = {
desc = bp1_yearly.2023.c
}
}
}
}
#If the partner is available
if = {
limit = {
scope:bp1_yearly_2020_influencing_partner = {
is_imprisoned = no
is_alive = yes
}
}
#And we took the person option but didn't pick anyone, they can sort of understand
if = {
limit = { has_character_flag = bp1_yearly_2021_picked_none }
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partner
modifier = insulted_opinion
opinion = -20
}
stress_impact = {
craven = miniscule_stress_impact_gain
paranoid = minor_stress_impact_gain
}
}
#Otherwise, if they killed our rival/nemesis we're just being an ass
else_if = {
limit = { has_character_flag = bp1_yearly_2020_target_killed }
reverse_add_opinion = {
target = scope:bp1_yearly_2020_influencing_partner
modifier = betrayed_me_opinion
opinion = -50
}
bp1_yearly_2023_apply_dis_or_honorable_modifier_effect = { ADD = dishonorable REMOVE = honorable }
stress_impact = {
family_first = minor_stress_impact_gain
honest = medium_stress_impact_gain
craven = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
}
hidden_effect = {
bp1_yearly_2020_chance_of_murderous_partner_effect = { MURDEROUS_PARTNER = scope:bp1_yearly_2020_influencing_partner }
}
}
#If they're dead or imprisoned, nothing happens
}
after = {
remove_character_flag = bp1_yearly_2020_target_killed
remove_character_flag = bp1_yearly_2021_picked_none
}
}
##################################################
# #Mopey consort wants some guidance
# by Filippa Gannholm Kirsten
# #bp1_yearly.2030
##################################################
scripted_trigger bp1_yearly_2030_is_relevant_consort_trigger = {
is_available_ai_adult = yes
NOR = {
this = $TARGET$
has_relation_nemesis = $TARGET$
has_relation_best_friend = $TARGET$
}
}
scripted_effect bp1_yearly_2030_relationship_effect = {
#Starting as Potential Friends
if = {
limit = {
has_relation_potential_friend = $TARGET$
}
random_list = {
#Increase friendship - Friends
2 = {
trigger = {
can_set_relation_friend_trigger = { CHARACTER = $TARGET$ }
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 1
}
factor = 2
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 2
}
factor = 3
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 3
}
factor = 4
}
desc = bp1_yearly.2030.tt_friend
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
improve_relationship_effect = {
TARGET = $TARGET$
REASON = generic_encouraged_bonding_at_court
}
}
}
}
}
#Nothing happens
1 = {
desc = bp1_yearly.2030.tt_nothing
}
#Decrease friendship - Potential Rival
2 = {
desc = bp1_yearly.2030.tt_potential_rival
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
worsen_relationship_effect = {
TARGET = $TARGET$
REASON = rival_forced_to_socialize
}
}
}
}
}
}
}
#Starting as Friends
else_if = {
limit = {
has_relation_friend = $TARGET$
}
random_list = {
#Increase friendship - Best Friend
2 = {
trigger = {
can_set_relation_best_friend_trigger = { CHARACTER = $TARGET$ }
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 1
}
factor = 2
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 2
}
factor = 3
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 3
}
factor = 4
}
desc = bp1_yearly.2030.tt_best_friend
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
improve_relationship_effect = {
TARGET = $TARGET$
REASON = best_friend_socializing
}
}
}
}
}
#Nothing happens
1 = {
desc = bp1_yearly.2030.tt_nothing
}
#Decrease friendship - Potential Friend
2 = {
desc = bp1_yearly.2030.tt_potential_rival
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
worsen_relationship_effect = {
TARGET = $TARGET$
REASON = rival_forced_to_socialize
}
}
}
}
}
}
}
#Starting as Potential Rivals
else_if = {
limit = {
has_relation_potential_rival = $TARGET$
}
random_list = {
#Increase friendship - Potential Friend
2 = {
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 1
}
factor = 2
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 2
}
factor = 3
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 3
}
factor = 4
}
desc = bp1_yearly.2030.tt_potential_friend
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
improve_relationship_effect = {
TARGET = $TARGET$
REASON = generic_encouraged_bonding_at_court
}
}
}
}
}
#Nothing happens
1 = {
desc = bp1_yearly.2030.tt_nothing
}
#Decrease friendship - Rival
2 = {
desc = bp1_yearly.2030.tt_rival
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
worsen_relationship_effect = {
TARGET = $TARGET$
REASON = rival_forced_to_socialize
}
}
}
}
}
}
}
#Starting as Rivals
else_if = {
limit = {
has_relation_rival = $TARGET$
}
random_list = {
#Increase friendship - Potential Friend
2 = {
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 1
}
factor = 2
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 2
}
factor = 3
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 3
}
factor = 4
}
desc = bp1_yearly.2030.tt_potential_friend
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
improve_relationship_effect = {
TARGET = $TARGET$
REASON = generic_encouraged_bonding_at_court
}
}
}
}
}
#Nothing happens
1 = {
desc = bp1_yearly.2030.tt_nothing
}
#Decrease friendship - Nemesis
2 = {
desc = bp1_yearly.2030.tt_nemesis
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
worsen_relationship_effect = {
TARGET = $TARGET$
REASON = rival_forced_to_socialize
}
}
}
}
}
}
}
#Blank Slate
else = {
random_list = {
#Increase friendship - Potential Friend
2 = {
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 1
}
factor = 2
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 2
}
factor = 3
}
modifier = {
number_of_personality_traits_in_common = {
target = $TARGET$
value >= 3
}
factor = 4
}
desc = bp1_yearly.2030.tt_potential_friend
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
improve_relationship_effect = {
TARGET = $TARGET$
REASON = generic_encouraged_bonding_at_court
}
}
}
}
}
#Nothing happens
1 = {
desc = bp1_yearly.2030.tt_nothing
}
#Decrease friendship - Nemesis
2 = {
desc = bp1_yearly.2030.tt_potential_rival
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
worsen_relationship_effect = {
TARGET = $TARGET$
REASON = rival_forced_to_socialize
}
}
}
}
}
}
}
}
scripted_effect bp1_yearly_2030_improve_lowest_skill_effect = {
random_list = {
1 = {
add_$SKILL$_skill = 1
}
1 = {
add_character_modifier = {
modifier = bp1_yearly_2030_failed_student_modifier
years = 5
}
}
}
}
#Credit to Hugo Cortell
scripted_effect bp1_yearly_2030_get_lowest_skill_effect = {
save_scope_value_as = {
name = lowest_character_skill
value = flag:diplomacy
}
save_scope_value_as = {
name = lowest_character_skill_value
value = diplomacy
}
#Let's make it a bit more random in case you have the same level in a lot of skills
random_list = {
50 = {
if = {
limit = { martial <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:martial
}
save_scope_value_as = {
name = lowest_character_skill_value
value = martial
}
}
if = {
limit = { stewardship <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:stewardship
}
save_scope_value_as = {
name = lowest_character_skill_value
value = stewardship
}
}
if = {
limit = { intrigue <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:intrigue
}
save_scope_value_as = {
name = lowest_character_skill_value
value = intrigue
}
}
if = {
limit = { learning <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:learning
}
save_scope_value_as = {
name = lowest_character_skill_value
value = learning
}
}
}
50 = {
if = {
limit = { learning <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:learning
}
save_scope_value_as = {
name = lowest_character_skill_value
value = learning
}
}
if = {
limit = { intrigue <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:intrigue
}
save_scope_value_as = {
name = lowest_character_skill_value
value = intrigue
}
}
if = {
limit = { stewardship <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:stewardship
}
save_scope_value_as = {
name = lowest_character_skill_value
value = stewardship
}
}
if = {
limit = { martial <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:martial
}
save_scope_value_as = {
name = lowest_character_skill_value
value = martial
}
}
}
50 = {
if = {
limit = { learning <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:learning
}
save_scope_value_as = {
name = lowest_character_skill_value
value = learning
}
}
if = {
limit = { martial <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:martial
}
save_scope_value_as = {
name = lowest_character_skill_value
value = martial
}
}
if = {
limit = { intrigue <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:intrigue
}
save_scope_value_as = {
name = lowest_character_skill_value
value = intrigue
}
}
if = {
limit = { stewardship <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:stewardship
}
save_scope_value_as = {
name = lowest_character_skill_value
value = stewardship
}
}
}
50 = {
if = {
limit = { learning <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:learning
}
save_scope_value_as = {
name = lowest_character_skill_value
value = learning
}
}
if = {
limit = { martial <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:martial
}
save_scope_value_as = {
name = lowest_character_skill_value
value = martial
}
}
if = {
limit = { intrigue <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:intrigue
}
save_scope_value_as = {
name = lowest_character_skill_value
value = intrigue
}
}
if = {
limit = { stewardship <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:stewardship
}
save_scope_value_as = {
name = lowest_character_skill_value
value = stewardship
}
}
if = {
limit = { diplomacy <= scope:lowest_character_skill_value }
save_scope_value_as = {
name = lowest_character_skill
value = flag:diplomacy
}
save_scope_value_as = {
name = lowest_character_skill_value
value = diplomacy
}
}
}
}
}
bp1_yearly.2030 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2030.t
desc = bp1_yearly.2030.desc
theme = friendly
override_background = { reference = relaxing_room }
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:bp1_yearly_2030_mopey_consort
animation = sadness
}
lower_right_portrait = scope:bp1_yearly_2030_target_consort
#Set up the cooldown
cooldown = { years = 5 }
trigger = {
#DLC check
has_bp1_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_playable_character = yes
any_consort = {
is_available_ai_adult = yes
save_temporary_scope_as = first_consort
}
any_consort = {
bp1_yearly_2030_is_relevant_consort_trigger = { TARGET = scope:first_consort }
}
is_at_war = no
}
weight_multiplier = {
base = 1
modifier = {
any_consort = {
count >= 3
}
add = 2
}
modifier = {
any_consort = {
count = 4
}
add = 2
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
#Find a consort
random_consort = {
limit = { is_available_ai_adult = yes }
save_scope_as = bp1_yearly_2030_mopey_consort
}
#Find a ... lover to be?
if = {
limit = {
OR = {
has_trait = lustful
has_trait = seducer
}
scope:bp1_yearly_2030_mopey_consort = {
NOT = { has_trait = chaste }
OR = {
has_sexuality = bisexual
has_sexuality = homosexual
}
}
any_consort = {
can_set_relation_lover_trigger = { CHARACTER = scope:bp1_yearly_2030_mopey_consort }
is_available_ai_adult = yes
this != scope:bp1_yearly_2030_mopey_consort
}
}
random_consort = {
limit = {
NOT = { has_trait = chaste }
can_set_relation_lover_trigger = { CHARACTER = scope:bp1_yearly_2030_mopey_consort }
bp1_yearly_2030_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2030_mopey_consort }
}
save_scope_as = bp1_yearly_2030_target_consort
}
scope:bp1_yearly_2030_mopey_consort = { add_character_flag = bp1_yearly_2030_potential_lover_exists }
}
#Otherwise find another consort who can do relation stuff with this consort
else = {
random_consort = {
limit = {
bp1_yearly_2030_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2030_mopey_consort }
}
save_scope_as = bp1_yearly_2030_target_consort
}
}
#Find the lowest skill to improve
scope:bp1_yearly_2030_mopey_consort = { bp1_yearly_2030_get_lowest_skill_effect = yes }
}
#Befriend other consort
option = {
name = bp1_yearly.2030.a
trigger = { exists = scope:bp1_yearly_2030_target_consort }
flavor = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = craven
has_trait = paranoid
has_trait = reclusive
}
}
#But what if they end up discussing me...
desc = bp1_yearly.2030.a_tt_paranoia
}
triggered_desc = {
trigger = { has_trait = gregarious }
#I'm sure this will work out nicely.
desc = bp1_yearly.2030.a_tt_gregarious
}
}
}
scope:bp1_yearly_2030_mopey_consort = {
bp1_yearly_2030_relationship_effect = { TARGET = scope:bp1_yearly_2030_target_consort }
}
stress_impact = {
craven = miniscule_stress_impact_gain
reclusive = miniscule_stress_impact_gain
paranoid = minor_stress_impact_gain
gregarious = miniscule_stress_impact_loss
}
ai_chance = {
base = 5
#Paranoid be paranoid
modifier = {
has_trait = paranoid
add = -50
}
modifier = {
has_trait = gregarious
add = 20
}
ai_value_modifier = {
ai_sociability = 1
ai_compassion = 0.5
}
}
}
#Befriend with benefits
option = {
name = bp1_yearly.2030.b
trigger = {
scope:bp1_yearly_2030_mopey_consort = { has_character_flag = bp1_yearly_2030_potential_lover_exists }
OR = {
has_trait = lustful
has_trait = seducer
}
}
flavor = bp1_yearly.2030.b_tt
scope:bp1_yearly_2030_mopey_consort = {
random_list = {
#Lover
1 = {
modifier = {
number_of_personality_traits_in_common = {
target = scope:bp1_yearly_2030_target_consort
value >= 1
}
factor = 2
}
modifier = {
number_of_personality_traits_in_common = {
target = scope:bp1_yearly_2030_target_consort
value >= 2
}
factor = 3
}
modifier = {
number_of_personality_traits_in_common = {
target = scope:bp1_yearly_2030_target_consort
value >= 3
}
factor = 4
}
desc = bp1_yearly.2030.tt_lover
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
set_relation_lover = { reason = lover_consorts_encouraged target = scope:bp1_yearly_2030_target_consort involved_character = root }
}
stress_impact = {
lustful = miniscule_stress_impact_loss
}
}
}
}
#Damage relation
1 = {
desc = bp1_yearly.2030.tt_potential_rival
#No can do
modifier = {
scope:bp1_yearly_2030_target_consort = { has_trait = chaste }
factor = 10
}
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2030_mopey_consort
right_icon = scope:bp1_yearly_2030_target_consort
scope:bp1_yearly_2030_mopey_consort = {
add_opinion = {
target = scope:bp1_yearly_2030_target_consort
modifier = awkward_opinion
opinion = -15
}
reverse_add_opinion = {
target = scope:bp1_yearly_2030_target_consort
modifier = awkward_opinion
opinion = -15
}
}
}
}
}
}
}
#This is a player option
ai_chance = {
base = 0
}
}
#Improve a skill
option = {
name = bp1_yearly.2030.c
scope:bp1_yearly_2030_mopey_consort = {
switch = {
trigger = scope:lowest_character_skill
flag:diplomacy = {
bp1_yearly_2030_improve_lowest_skill_effect = { SKILL = diplomacy }
}
flag:martial = {
bp1_yearly_2030_improve_lowest_skill_effect = { SKILL = martial }
}
flag:stewardship = {
bp1_yearly_2030_improve_lowest_skill_effect = { SKILL = stewardship }
}
flag:intrigue = {
bp1_yearly_2030_improve_lowest_skill_effect = { SKILL = intrigue }
}
flag:learning = {
bp1_yearly_2030_improve_lowest_skill_effect = { SKILL = learning }
}
}
}
stress_impact = {
ambitious = miniscule_stress_impact_loss
diligent = miniscule_stress_impact_loss
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
has_trait = ambitious
add = 20
}
ai_value_modifier = {
ai_rationality = 1
}
}
}
#I have more important matters to tend to
option = {
name = bp1_yearly.2030.d
reverse_add_opinion = {
target = scope:bp1_yearly_2030_mopey_consort
modifier = insulted_opinion
opinion = -15
}
stress_impact = {
gregarious = minor_stress_impact_gain
ambitious = minor_stress_impact_gain
}
ai_chance = {
base = 5
modifier = {
has_trait = callous
add = 20
}
ai_value_modifier = {
ai_sociability = -1
}
}
}
after = {
scope:bp1_yearly_2030_mopey_consort = {
remove_character_flag = bp1_yearly_2030_potential_lover_exists
}
}
}
##################################################
# #Consort is upset with other consort
# by Filippa Gannholm Kirsten
# #bp1_yearly.2040
##################################################
bp1_yearly.2040 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2040.t
desc = {
desc = bp1_yearly.2040.desc
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_2040_upset_consort = { has_trait = paranoid }
}
desc = bp1_yearly.2040.desc_paranoia
}
triggered_desc = {
desc = bp1_yearly.2040.desc_default
}
}
desc = bp1_yearly.2040.desc_outro
}
theme = unfriendly
override_background = { reference = relaxing_room }
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:bp1_yearly_2040_upset_consort
animation = rage
}
lower_center_portrait = {
character = scope:bp1_yearly_2040_target_consort
}
#Set up the cooldown
cooldown = { years = 5 }
trigger = {
#DLC check
has_bp1_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_playable_character = yes
any_consort = {
is_available_ai_adult = yes
save_temporary_scope_as = first_consort
}
any_consort = {
bp1_yearly_2030_is_relevant_consort_trigger = { TARGET = scope:first_consort }
}
}
weight_multiplier = {
base = 1
modifier = {
any_consort = {
count >= 3
}
add = 2
}
modifier = {
any_consort = {
count = 4
}
add = 2
}
modifier = {
any_consort = {
OR = {
has_trait = vengeful
has_trait = deceitful
has_trait = sadistic
has_trait = wrathful
}
has_trait = paranoid
}
add = 2
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
#Find a consort
random_consort = {
limit = {
is_available_ai_adult = yes
has_trait = paranoid
}
alternative_limit = { is_available_ai_adult = yes }
save_scope_as = bp1_yearly_2040_upset_consort
}
#Find a target consort
random_consort = {
limit = {
bp1_yearly_2030_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2040_upset_consort }
}
save_scope_as = bp1_yearly_2040_target_consort
}
}
#Soothe them
option = {
name = bp1_yearly.2040.a
flavor = bp1_yearly.2040.a_tt
scope:bp1_yearly_2040_upset_consort = {
random_list = {
3 = {
desc = bp1_yearly.2040.tt_success
add_opinion = {
target = scope:bp1_yearly_2040_target_consort
modifier = friendliness_opinion
opinion = 15
}
reverse_add_opinion = {
target = scope:bp1_yearly_2040_target_consort
modifier = friendliness_opinion
opinion = 15
}
}
4 = {
desc = bp1_yearly.2040.tt_critical_success
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2040_upset_consort
right_icon = scope:bp1_yearly_2040_target_consort
scope:bp1_yearly_2040_upset_consort = {
improve_relationship_effect = {
TARGET = scope:bp1_yearly_2040_target_consort
REASON = generic_encouraged_bonding_at_court
}
}
}
}
}
#_Befriend_ you say
1 = {
desc = bp1_yearly.2040.tt_severe_success
trigger = {
OR = {
has_trait = gregarious
has_trait = compassionate
has_trait = diligent
has_trait = ambitious
has_trait = deceitful
}
can_start_scheme = {
type = befriend
target_character = scope:bp1_yearly_2040_target_consort
}
}
start_scheme = {
type = befriend
target_character = scope:bp1_yearly_2040_target_consort
}
}
}
}
ai_chance = {
base = 100
}
}
#Egg them on
option = {
name = bp1_yearly.2040.b
flavor = bp1_yearly.2040.b_tt
scope:bp1_yearly_2040_upset_consort = {
random_list = {
3 = {
desc = bp1_yearly.2040.tt_failure
add_opinion = {
target = scope:bp1_yearly_2040_target_consort
modifier = unfriendly_opinion
opinion = -15
}
reverse_add_opinion = {
target = scope:bp1_yearly_2040_target_consort
modifier = unfriendly_opinion
opinion = -15
}
}
4 = {
desc = bp1_yearly.2040.tt_critical_failure
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2040_upset_consort
right_icon = scope:bp1_yearly_2040_target_consort
scope:bp1_yearly_2040_upset_consort = {
worsen_relationship_effect = {
TARGET = scope:bp1_yearly_2040_target_consort
REASON = rival_spouses_do_not_get_along
}
}
}
}
}
#I have been slighted
1 = {
desc = bp1_yearly.2040.tt_severe_failure
trigger = {
OR = {
has_trait = vengeful
has_trait = deceitful
has_trait = sadistic
has_trait = wrathful
}
has_trait = paranoid
can_start_scheme = {
type = murder
target_character = scope:bp1_yearly_2040_target_consort
}
}
modifier = {
opinion = {
target = scope:bp1_yearly_2040_target_consort
value <= -10
}
factor = 1.5
}
#MURDER VENGEANCE reeee
start_scheme = {
type = murder
target_character = scope:bp1_yearly_2040_target_consort
}
}
}
}
stress_impact = {
honest = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
#Diplomacy - amicable resolution
option = {
name = bp1_yearly.2040.c
flavor = bp1_yearly.2040.c_tt
trigger = { diplomacy >= 10 }
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2040_upset_consort
right_icon = scope:bp1_yearly_2040_target_consort
scope:bp1_yearly_2040_upset_consort = {
improve_relationship_effect = {
TARGET = scope:bp1_yearly_2040_target_consort
REASON = generic_encouraged_bonding_at_court
}
}
}
stress_impact = {
just = miniscule_stress_impact_loss
cynical = miniscule_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
#I have more important matters to tend to
option = {
name = bp1_yearly.2040.d
flavor = bp1_yearly.2040.d_tt
scope:bp1_yearly_2040_upset_consort = {
random_list = {
4 = {
desc = bp1_yearly.2040.tt_success
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_success
left_icon = scope:bp1_yearly_2040_upset_consort
right_icon = scope:bp1_yearly_2040_target_consort
scope:bp1_yearly_2040_upset_consort = {
improve_relationship_effect = {
TARGET = scope:bp1_yearly_2040_target_consort
REASON = generic_encouraged_bonding_at_court
}
}
}
}
}
4 = {
desc = bp1_yearly.2040.tt_failure
root = {
send_interface_toast = {
title = bp1_yearly.2030.tt_failure
left_icon = scope:bp1_yearly_2040_upset_consort
right_icon = scope:bp1_yearly_2040_target_consort
scope:bp1_yearly_2040_upset_consort = {
worsen_relationship_effect = {
TARGET = scope:bp1_yearly_2040_target_consort
REASON = rival_spouses_do_not_get_along
}
}
}
}
}
#I have been slighted
1 = {
desc = bp1_yearly.2040.tt_severe_failure
trigger = {
OR = {
has_trait = vengeful
has_trait = deceitful
has_trait = sadistic
has_trait = wrathful
}
has_trait = paranoid
can_start_scheme = {
type = murder
target_character = scope:bp1_yearly_2040_target_consort
}
}
modifier = {
opinion = {
target = scope:bp1_yearly_2040_target_consort
value <= -10
}
factor = 1.5
}
#MURDER VENGEANCE reeee
start_scheme = {
type = murder
target_character = scope:bp1_yearly_2040_target_consort
}
}
}
}
reverse_add_opinion = {
target = scope:bp1_yearly_2040_upset_consort
modifier = ignored_concerns
opinion = -15
}
stress_impact = {
gregarious = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
}
##################################################
# #Friendly consorts want to start a study circle
# by Filippa Gannholm Kirsten
# #bp1_yearly.2050
##################################################
scripted_trigger bp1_yearly_2050_is_relevant_consort_trigger = {
is_available_ai_adult = yes
NOT = { this = $TARGET$ }
OR = {
has_relation_potential_friend = $TARGET$
has_relation_friend = $TARGET$
has_relation_best_friend = $TARGET$
opinion = {
target = $TARGET$
value >= medium_positive_opinion
}
}
}
scripted_effect bp1_yearly_2050_find_subsequent_highest_skill_effect = {
if = {
limit = { diplomacy > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:diplomacy
}
save_scope_value_as = {
name = highest_consort_skill_value
value = diplomacy
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { martial > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:martial
}
save_scope_value_as = {
name = highest_consort_skill_value
value = martial
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { stewardship > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:stewardship
}
save_scope_value_as = {
name = highest_consort_skill_value
value = stewardship
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { intrigue > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:intrigue
}
save_scope_value_as = {
name = highest_consort_skill_value
value = intrigue
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { learning > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:learning
}
save_scope_value_as = {
name = highest_consort_skill_value
value = learning
}
save_scope_as = highest_consort_skill_person
}
}
scripted_effect bp1_yearly_2050_find_highest_skill_effect = {
scope:bp1_yearly_2050_first_consort = {
save_scope_value_as = {
name = highest_consort_skill
value = flag:diplomacy
}
save_scope_value_as = {
name = highest_consort_skill_value
value = diplomacy
}
save_scope_as = highest_consort_skill_person
if = {
limit = { martial > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:martial
}
save_scope_value_as = {
name = highest_consort_skill_value
value = martial
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { stewardship > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:stewardship
}
save_scope_value_as = {
name = highest_consort_skill_value
value = stewardship
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { intrigue > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:intrigue
}
save_scope_value_as = {
name = highest_consort_skill_value
value = intrigue
}
save_scope_as = highest_consort_skill_person
}
if = {
limit = { learning > scope:highest_consort_skill_value }
save_scope_value_as = {
name = highest_consort_skill
value = flag:learning
}
save_scope_value_as = {
name = highest_consort_skill_value
value = learning
}
save_scope_as = highest_consort_skill_person
}
}
scope:bp1_yearly_2050_second_consort = {
bp1_yearly_2050_find_subsequent_highest_skill_effect = yes
}
if = {
limit = { exists = scope:bp1_yearly_2050_third_consort }
scope:bp1_yearly_2050_third_consort = {
bp1_yearly_2050_find_subsequent_highest_skill_effect = yes
}
}
if = {
limit = { exists = scope:bp1_yearly_2050_fourth_consort }
scope:bp1_yearly_2050_fourth_consort = {
bp1_yearly_2050_find_subsequent_highest_skill_effect = yes
}
}
}
scripted_effect bp1_yearly_2050_apply_skill_effect = {
scope:bp1_yearly_2050_first_consort = {
add_$SKILL$_skill = 1
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
scope:bp1_yearly_2050_second_consort = {
add_$SKILL$_skill = 1
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
if = {
limit = { exists = scope:bp1_yearly_2050_third_consort }
scope:bp1_yearly_2050_third_consort = {
add_$SKILL$_skill = 1
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
}
if = {
limit = { exists = scope:bp1_yearly_2050_fourth_consort }
scope:bp1_yearly_2050_fourth_consort = {
add_$SKILL$_skill = 1
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
}
}
bp1_yearly.2050 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2050.t
desc = {
first_valid = {
triggered_desc = {
trigger = { has_trait = paranoid }
desc = bp1_yearly.2050.desc_intro_paranoid
}
triggered_desc = {
desc = bp1_yearly.2050.desc_intro
}
}
desc = bp1_yearly.2050.desc
first_valid = {
triggered_desc = {
trigger = {
scope:highest_consort_skill = flag:diplomacy
}
desc = bp1_yearly.2050.desc_diplomacy
}
triggered_desc = {
trigger = {
scope:highest_consort_skill = flag:martial
}
desc = bp1_yearly.2050.desc_martial
}
triggered_desc = {
trigger = {
scope:highest_consort_skill = flag:stewardship
}
desc = bp1_yearly.2050.desc_stewardship
}
triggered_desc = {
trigger = {
scope:highest_consort_skill = flag:intrigue
}
desc = bp1_yearly.2050.desc_intrigue
}
triggered_desc = {
trigger = {
scope:highest_consort_skill = flag:learning
}
desc = bp1_yearly.2050.desc_learning
}
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:bp1_yearly_2050_fourth_consort
}
desc = bp1_yearly.2050.desc_quartet
}
triggered_desc = {
trigger = {
exists = scope:bp1_yearly_2050_third_consort
NOT = { exists = scope:bp1_yearly_2050_fourth_consort }
}
desc = bp1_yearly.2050.desc_trio
}
triggered_desc = {
trigger = {
NOR = {
exists = scope:bp1_yearly_2050_third_consort
exists = scope:bp1_yearly_2050_fourth_consort
}
}
desc = bp1_yearly.2050.desc_duo
}
}
triggered_desc = {
trigger = { has_trait = paranoid }
desc = bp1_yearly.2050.desc_paranoid
}
}
theme = friendly
override_background = { reference = courtyard }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = paranoid }
animation = personality_cynical
}
animation = personality_compassionate
}
right_portrait = {
character = scope:bp1_yearly_2050_first_consort
animation = personality_rational
}
lower_left_portrait = {
trigger = { exists = scope:bp1_yearly_2050_fourth_consort }
character = scope:bp1_yearly_2050_fourth_consort
}
lower_center_portrait = {
trigger = { exists = scope:bp1_yearly_2050_third_consort }
character = scope:bp1_yearly_2050_third_consort
}
lower_right_portrait = {
trigger = { exists = scope:bp1_yearly_2050_second_consort }
character = scope:bp1_yearly_2050_second_consort
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp1_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_playable_character = yes
any_consort = {
is_available_ai_adult = yes
save_temporary_scope_as = first_consort
root = {
any_consort = {
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:first_consort }
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
any_consort = {
count >= 3
}
add = 2
}
modifier = {
any_consort = {
count = 4
}
add = 2
}
modifier = {
any_consort = {
is_available_ai_adult = yes
save_temporary_scope_as = first_consort
root = {
any_consort = {
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:first_consort }
}
}
}
add = 2
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
#Find a consort
random_consort = {
limit = {
is_available_ai_adult = yes
save_temporary_scope_as = first_consort
root = {
any_consort = {
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:first_consort }
}
}
}
save_scope_as = bp1_yearly_2050_first_consort
}
#Find our second consort
random_consort = {
limit = {
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2050_first_consort }
}
save_scope_as = bp1_yearly_2050_second_consort
}
#Find any additional consort
random_consort = {
limit = {
OR = {
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2050_first_consort }
AND = {
exists = scope:bp1_yearly_2050_second_consort
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2050_second_consort }
}
}
NOR = {
this = scope:bp1_yearly_2050_first_consort
this = scope:bp1_yearly_2050_second_consort
}
}
save_scope_as = bp1_yearly_2050_third_consort
}
random_consort = {
limit = {
OR = {
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2050_first_consort }
AND = {
exists = scope:bp1_yearly_2050_second_consort
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2050_second_consort }
}
AND = {
exists = scope:bp1_yearly_2050_third_consort
bp1_yearly_2050_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2050_third_consort }
}
}
NOR = {
this = scope:bp1_yearly_2050_first_consort
this = scope:bp1_yearly_2050_second_consort
this = scope:bp1_yearly_2050_third_consort
}
}
save_scope_as = bp1_yearly_2050_fourth_consort
}
#See who is most knowledgable in the pinpointed skill to lead the teaching
bp1_yearly_2050_find_highest_skill_effect = yes
#If paranoid, this is a traumatic memory
if = {
limit = {
has_trait = paranoid
exists = scope:bp1_yearly_2050_fourth_consort
}
create_character_memory = {
type = ganged_up_on_four_memory
participants = {
consort_1 = scope:bp1_yearly_2050_first_consort
consort_2 = scope:bp1_yearly_2050_second_consort
consort_3 = scope:bp1_yearly_2050_third_consort
consort_4 = scope:bp1_yearly_2050_fourth_consort
}
}
}
#Three consorts
else_if = {
limit = {
has_trait = paranoid
exists = scope:bp1_yearly_2050_third_consort
NOT = { exists = scope:bp1_yearly_2050_fourth_consort }
}
create_character_memory = {
type = ganged_up_on_three_memory
participants = {
consort_1 = scope:bp1_yearly_2050_first_consort
consort_2 = scope:bp1_yearly_2050_second_consort
consort_3 = scope:bp1_yearly_2050_third_consort
}
}
}
}
#Agree to their request
option = {
name = bp1_yearly.2050.a
flavor = bp1_yearly.2050.a_tt
pay_short_term_gold = {
target = scope:highest_consort_skill_person
gold = major_gold_value
}
capital_county = {
add_county_modifier = {
modifier = bp1_yearly_2050_development_modifier
years = 10
}
}
if = {
limit = { scope:highest_consort_skill = flag:diplomacy }
bp1_yearly_2050_apply_skill_effect = { SKILL = diplomacy }
}
else_if = {
limit = { scope:highest_consort_skill = flag:martial }
bp1_yearly_2050_apply_skill_effect = { SKILL = martial }
}
else_if = {
limit = { scope:highest_consort_skill = flag:stewardship }
bp1_yearly_2050_apply_skill_effect = { SKILL = stewardship }
}
else_if = {
limit = { scope:highest_consort_skill = flag:intrigue }
bp1_yearly_2050_apply_skill_effect = { SKILL = intrigue }
}
else_if = {
limit = { scope:highest_consort_skill = flag:learning }
bp1_yearly_2050_apply_skill_effect = { SKILL = learning }
}
stress_impact = {
greedy = medium_stress_impact_gain
paranoid = minor_stress_impact_gain
generous = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
}
}
#Compromise?
option = {
name = bp1_yearly.2050.b
flavor = bp1_yearly.2050.b_tt_greedy
trigger = { has_trait = greedy }
pay_short_term_gold = {
target = scope:highest_consort_skill_person
gold = {
value = major_gold_value
multiply = 0.5
}
}
capital_county = {
add_county_modifier = {
modifier = bp1_yearly_2050_compromise_development_modifier
years = 10
}
}
stress_impact = {
generous = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
#This is annoying/stressful - imprison them
option = {
name = bp1_yearly.2050.c
flavor = {
first_valid = {
triggered_desc = {
trigger = { has_trait = paranoid }
desc = bp1_yearly.2050.c_tt_paranoid
}
triggered_desc = {
trigger = {
OR = {
has_trait = sadistic
has_trait = wrathful
has_trait = irritable
}
}
desc = bp1_yearly.2050.c_tt_irritable
}
}
}
trigger = {
OR = {
has_trait = sadistic
has_trait = wrathful
has_trait = irritable
has_trait = paranoid
}
}
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2050_first_consort IMPRISONER = root }
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2050_second_consort IMPRISONER = root }
if = {
limit = { exists = scope:bp1_yearly_2050_third_consort }
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2050_third_consort IMPRISONER = root }
}
if = {
limit = { exists = scope:bp1_yearly_2050_fourth_consort }
rightfully_imprison_character_effect = { TARGET = scope:bp1_yearly_2050_fourth_consort IMPRISONER = root }
}
stress_impact = {
paranoid = minor_stress_impact_loss
irritable = minor_stress_impact_loss
just = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
#I don't believe in this
option = {
name = bp1_yearly.2050.d
flavor = bp1_yearly.2050.d_tt
reverse_add_opinion = {
target = scope:bp1_yearly_2050_first_consort
modifier = dismissed_me_opinion
opinion = -15
}
reverse_add_opinion = {
target = scope:bp1_yearly_2050_second_consort
modifier = dismissed_me_opinion
opinion = -15
}
if = {
limit = { exists = scope:bp1_yearly_2050_third_consort }
reverse_add_opinion = {
target = scope:bp1_yearly_2050_third_consort
modifier = dismissed_me_opinion
opinion = -15
}
}
if = {
limit = { exists = scope:bp1_yearly_2050_fourth_consort }
reverse_add_opinion = {
target = scope:bp1_yearly_2050_fourth_consort
modifier = dismissed_me_opinion
opinion = -15
}
}
stress_impact = {
generous = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
}
##################################################
# #Friendly consorts want to tutor other consort's child
# by Filippa Gannholm Kirsten
# #bp1_yearly.2060
##################################################
scripted_trigger bp1_yearly_2060_is_relevant_child_trigger = {
is_available_ai = yes
is_child_of = root
age > 5
age < 20
}
scripted_trigger bp1_yearly_2060_is_relevant_consort_trigger = {
is_available_ai_adult = yes
NOT = { this = $TARGET$ }
OR = {
has_relation_potential_friend = $TARGET$
has_relation_friend = $TARGET$
has_relation_best_friend = $TARGET$
opinion = {
target = $TARGET$
value >= medium_positive_opinion
}
}
any_child = {
bp1_yearly_2060_is_relevant_child_trigger = yes
}
highest_skill = $SKILL$
}
scripted_trigger bp1_yearly_2060_has_matching_consort_with_highest_skill_trigger = {
is_available_ai_adult = yes
save_temporary_scope_as = first_consort
OR = {
AND = {
highest_skill = diplomacy
root = {
any_consort = {
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:first_consort SKILL = diplomacy }
}
}
}
AND = {
highest_skill = martial
root = {
any_consort = {
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:first_consort SKILL = martial }
highest_skill = martial
}
}
}
AND = {
highest_skill = stewardship
root = {
any_consort = {
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:first_consort SKILL = stewardship }
highest_skill = stewardship
}
}
}
AND = {
highest_skill = intrigue
root = {
any_consort = {
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:first_consort SKILL = intrigue }
highest_skill = intrigue
}
}
}
AND = {
highest_skill = learning
root = {
any_consort = {
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:first_consort SKILL = learning }
highest_skill = learning
}
}
}
}
}
scripted_effect bp1_yearly_2060_find_high_skill_tutor_effect = {
scope:bp1_yearly_2060_first_consort = {
save_scope_as = bp1_yearly_2060_high_skill_tutoring_consort
}
if = {
limit = { scope:bp1_yearly_2060_second_consort.$SKILL$ > scope:bp1_yearly_2060_high_skill_tutoring_consort.$SKILL$ }
scope:bp1_yearly_2060_second_consort = {
save_scope_as = bp1_yearly_2060_high_skill_tutoring_consort
}
}
}
scripted_effect bp1_yearly_2060_find_low_skill_tutor_effect = {
scope:bp1_yearly_2060_first_consort = {
save_scope_as = bp1_yearly_2060_low_skill_tutoring_consort
}
if = {
limit = { scope:bp1_yearly_2060_second_consort.$SKILL$ > scope:bp1_yearly_2060_low_skill_tutoring_consort.$SKILL$ }
scope:bp1_yearly_2060_second_consort = {
save_scope_as = bp1_yearly_2060_low_skill_tutoring_consort
}
}
}
scripted_effect bp1_yearly_2060_bolstered_duel_effect = {
duel = {
skill = $SKILL$
value = average_skill_rating
75 = {
desc = bp1_yearly.2060.tt_success
scope:bp1_yearly_2060_target_child = {
add_$SKILL$_skill = 1
add_opinion = {
target = scope:bp1_yearly_2060_first_consort
modifier = tutored_me_opinion
opinion = 10
}
add_opinion = {
target = scope:bp1_yearly_2060_second_consort
modifier = tutored_me_opinion
opinion = 10
}
}
}
25 = {
desc = bp1_yearly.2060.tt_critical_success
scope:bp1_yearly_2060_target_child = {
add_$SKILL$_skill = 2
add_opinion = {
target = scope:bp1_yearly_2060_first_consort
modifier = tutored_me_opinion
opinion = 20
}
add_opinion = {
target = scope:bp1_yearly_2060_second_consort
modifier = tutored_me_opinion
opinion = 20
}
}
}
}
}
scripted_effect bp1_yearly_2060_duel_effect = {
duel = {
skill = $SKILL$
value = average_skill_rating
75 = {
desc = bp1_yearly.2060.tt_success
scope:bp1_yearly_2060_target_child = {
add_$SKILL$_skill = 1
add_opinion = {
target = scope:bp1_yearly_2060_first_consort
modifier = tutored_me_opinion
opinion = 20
}
add_opinion = {
target = scope:bp1_yearly_2060_second_consort
modifier = tutored_me_opinion
opinion = 20
}
}
}
25 = {
desc = bp1_yearly.2060.tt_failure
#Nothing happens
}
}
}
bp1_yearly.2060 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2060.t
desc = {
desc = bp1_yearly.2060.desc_intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_2060_first_consort = { highest_skill = diplomacy }
}
desc = bp1_yearly.2060.desc_diplomacy
}
triggered_desc = {
trigger = {
scope:bp1_yearly_2060_first_consort = { highest_skill = martial }
}
desc = bp1_yearly.2060.desc_martial
}
triggered_desc = {
trigger = {
scope:bp1_yearly_2060_first_consort = { highest_skill = stewardship }
}
desc = bp1_yearly.2060.desc_stewardship
}
triggered_desc = {
trigger = {
scope:bp1_yearly_2060_first_consort = { highest_skill = intrigue }
}
desc = bp1_yearly.2060.desc_intrigue
}
triggered_desc = {
trigger = {
scope:bp1_yearly_2060_first_consort = { highest_skill = learning }
}
desc = bp1_yearly.2060.desc_learning
}
}
desc = bp1_yearly.2060.desc_outro
}
theme = family
override_background = { reference = corridor_day }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = paranoid }
animation = personality_cynical
}
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_2060_first_consort
animation = happiness
}
lower_center_portrait = {
trigger = { exists = scope:bp1_yearly_2060_target_child }
character = scope:bp1_yearly_2060_target_child
}
lower_right_portrait = {
trigger = { exists = scope:bp1_yearly_2060_second_consort }
character = scope:bp1_yearly_2060_second_consort
}
#Set up the cooldown
cooldown = { years = 5 }
trigger = {
#DLC check
has_bp1_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_playable_character = yes
any_consort = { bp1_yearly_2060_has_matching_consort_with_highest_skill_trigger = yes }
}
weight_multiplier = {
base = 1
#The more the merrier
modifier = {
any_consort = {
count >= 3
}
add = 2
}
modifier = {
any_consort = {
count = 4
}
add = 2
}
modifier = {
any_consort = {
has_trait = gregarious
}
add = 2
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
#Find a consort
random_consort = {
limit = { bp1_yearly_2060_has_matching_consort_with_highest_skill_trigger = yes }
save_scope_as = bp1_yearly_2060_first_consort
}
#Find our second consort
random_consort = {
limit = {
OR = {
AND = {
scope:bp1_yearly_2060_first_consort = { highest_skill = diplomacy }
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2060_first_consort SKILL = diplomacy }
}
AND = {
scope:bp1_yearly_2060_first_consort = { highest_skill = martial }
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2060_first_consort SKILL = martial }
}
AND = {
scope:bp1_yearly_2060_first_consort = { highest_skill = stewardship }
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2060_first_consort SKILL = stewardship }
}
AND = {
scope:bp1_yearly_2060_first_consort = { highest_skill = intrigue }
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2060_first_consort SKILL = intrigue }
}
AND = {
scope:bp1_yearly_2060_first_consort = { highest_skill = learning }
bp1_yearly_2060_is_relevant_consort_trigger = { TARGET = scope:bp1_yearly_2060_first_consort SKILL = learning }
}
}
}
save_scope_as = bp1_yearly_2060_second_consort
}
#Find a child
scope:bp1_yearly_2060_second_consort = {
random_child = {
limit = { bp1_yearly_2060_is_relevant_child_trigger = yes }
save_scope_as = bp1_yearly_2060_target_child
}
}
#For localization
scope:bp1_yearly_2060_target_child = {
bp1_yearly_2030_get_lowest_skill_effect = yes
switch = {
trigger = scope:lowest_character_skill
flag:diplomacy = { add_character_flag = bp1_yearly_2060_diplomacy_lowest_skill }
flag:martial = { add_character_flag = bp1_yearly_2060_martial_lowest_skill }
flag:stewardship = { add_character_flag = bp1_yearly_2060_stewardship_lowest_skill }
flag:intrigue = { add_character_flag = bp1_yearly_2060_intrigue_lowest_skill }
flag:learning = { add_character_flag = bp1_yearly_2060_learning_lowest_skill }
}
}
#For determining which options to show, so we don't have Diplomacy on both options for instance
scope:bp1_yearly_2060_first_consort = {
switch = {
trigger = highest_skill
diplomacy = {
save_scope_value_as = {
name = consort_compare_skill
value = flag:diplomacy
}
}
martial = {
save_scope_value_as = {
name = consort_compare_skill
value = flag:martial
}
}
stewardship = {
save_scope_value_as = {
name = consort_compare_skill
value = flag:stewardship
}
}
intrigue = {
save_scope_value_as = {
name = consort_compare_skill
value = flag:intrigue
}
}
learning = {
save_scope_value_as = {
name = consort_compare_skill
value = flag:learning
}
}
}
}
#Find the consort with highest level of the intended skill for the duel
scope:bp1_yearly_2060_first_consort = {
switch = {
trigger = highest_skill
diplomacy = {
bp1_yearly_2060_find_high_skill_tutor_effect = { SKILL = diplomacy }
}
martial = {
bp1_yearly_2060_find_high_skill_tutor_effect = { SKILL = martial }
}
stewardship = {
bp1_yearly_2060_find_high_skill_tutor_effect = { SKILL = stewardship }
}
intrigue = {
bp1_yearly_2060_find_high_skill_tutor_effect = { SKILL = intrigue }
}
learning = {
bp1_yearly_2060_find_high_skill_tutor_effect = { SKILL = learning }
}
}
}
#If the consort skill and the child skill are different, determine which consort has highest skill in the child skill and appoint them
if = {
limit = {
scope:consort_compare_skill != scope:lowest_character_skill
}
switch = {
trigger = scope:lowest_character_skill
flag:diplomacy = {
bp1_yearly_2060_find_low_skill_tutor_effect = { SKILL = diplomacy }
}
flag:martial = {
bp1_yearly_2060_find_low_skill_tutor_effect = { SKILL = martial }
}
flag:stewardship = {
bp1_yearly_2060_find_low_skill_tutor_effect = { SKILL = stewardship }
}
flag:intrigue = {
bp1_yearly_2060_find_low_skill_tutor_effect = { SKILL = intrigue }
}
flag:learning = {
bp1_yearly_2060_find_low_skill_tutor_effect = { SKILL = learning }
}
}
}
}
#Let's go with the consort skill
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { has_trait = paranoid }
desc = bp1_yearly.2060.a_paranoid
}
triggered_desc = {
desc = bp1_yearly.2060.a
}
}
}
}
#Who knows what else they're indoctrinating...
flavor = {
triggered_desc = {
trigger = { has_trait = paranoid }
desc = bp1_yearly.2060.a_tt_paranoid
}
}
scope:bp1_yearly_2060_high_skill_tutoring_consort = {
switch = {
trigger = highest_skill
diplomacy = {
bp1_yearly_2060_bolstered_duel_effect = { SKILL = diplomacy }
}
martial = {
bp1_yearly_2060_bolstered_duel_effect = { SKILL = martial }
}
stewardship = {
bp1_yearly_2060_bolstered_duel_effect = { SKILL = stewardship }
}
intrigue = {
bp1_yearly_2060_bolstered_duel_effect = { SKILL = intrigue }
}
learning = {
bp1_yearly_2060_bolstered_duel_effect = { SKILL = learning }
}
}
}
stress_impact = {
paranoid = minor_stress_impact_gain
arrogant = miniscule_stress_impact_gain
trusting = miniscule_stress_impact_loss
}
ai_chance = {
base = 10
#Paranoid be paranoid
modifier = {
has_trait = paranoid
add = -50
}
modifier = {
has_trait = arrogant
add = -15
}
#Trusting and liking the intiating consort is beneficial
modifier = {
has_trait = trusting
add = 20
}
opinion_modifier = {
opinion_target = scope:bp1_yearly_2060_high_skill_tutoring_consort
multiplier = -1
}
ai_value_modifier = {
ai_rationality = 1
ai_honor = 0.5
}
}
}
#Actually, please educate the child in it's lowest skill
option = {
name = bp1_yearly.2060.b
trigger = {
scope:consort_compare_skill != scope:lowest_character_skill
}
scope:bp1_yearly_2060_low_skill_tutoring_consort = {
switch = {
trigger = scope:lowest_character_skill
flag:diplomacy = {
bp1_yearly_2060_duel_effect = { SKILL = diplomacy }
}
flag:martial = {
bp1_yearly_2060_duel_effect = { SKILL = martial }
}
flag:stewardship = {
bp1_yearly_2060_duel_effect = { SKILL = stewardship }
}
flag:intrigue = {
bp1_yearly_2060_duel_effect = { SKILL = intrigue }
}
flag:learning = {
bp1_yearly_2060_duel_effect = { SKILL = learning }
}
}
}
ai_chance = {
base = 5
#Paranoid be paranoid
modifier = {
has_trait = paranoid
add = -50
}
modifier = {
has_trait = arrogant
add = -15
}
#Trusting and liking the intiating consort is beneficial
modifier = {
has_trait = trusting
add = 20
}
#They prefer the other consort
opinion_modifier = {
opinion_target = scope:bp1_yearly_2060_low_skill_tutoring_consort
multiplier = -1
}
ai_value_modifier = {
ai_rationality = 1
ai_honor = 0.5
}
}
}
#If the consort's highest skill and the child's lowest skill are the same, opt out
option = {
name = bp1_yearly.2060.c
trigger = { scope:consort_compare_skill = scope:lowest_character_skill }
reverse_add_opinion = {
target = scope:bp1_yearly_2060_first_consort
modifier = dismissed_me_opinion
opinion = -15
}
reverse_add_opinion = {
target = scope:bp1_yearly_2060_second_consort
modifier = dismissed_me_opinion
opinion = -15
}
stress_impact = {
ambitious = minor_stress_impact_gain
trusting = minor_stress_impact_gain
}
ai_chance = {
base = 5
#Paranoid be paranoid
modifier = {
has_trait = paranoid
add = 50
}
modifier = {
has_trait = ambitious
add = -25
}
modifier = {
has_trait = trusting
add = -20
}
opinion_modifier = {
opinion_target = scope:bp1_yearly_2060_first_consort
multiplier = 1
}
}
}
after = {
scope:bp1_yearly_2060_target_child = {
remove_character_flag = bp1_yearly_2060_diplomacy_lowest_skill
remove_character_flag = bp1_yearly_2060_martial_lowest_skill
remove_character_flag = bp1_yearly_2060_stewardship_lowest_skill
remove_character_flag = bp1_yearly_2060_intrigue_lowest_skill
remove_character_flag = bp1_yearly_2060_learning_lowest_skill
}
}
}
##################################################
# #Childless older spouse ponders your relationship
# by Filippa Gannholm Kirsten
# #bp1_yearly.2070
##################################################
bp1_yearly.2070 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.2070.t
desc = bp1_yearly.2070.desc
theme = love
override_background = { reference = wilderness }
left_portrait = {
character = root
animation = love
}
right_portrait = {
character = scope:bp1_yearly_2070_soulmate
animation = sadness
}
trigger = {
#DLC check
has_bp1_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_playable_character = yes
NOT = { has_character_flag = had_event_bp1_yearly_2070 }
any_consort = {
is_available_ai_adult = yes
has_relation_soulmate = root
is_attracted_to_gender_of = root
OR = {
has_sexuality = homosexual
fertility <= 0.1
}
age > 40
opinion = {
target = root
value >= 90
}
NOT = {
any_child = { exists = this }
}
}
}
immediate = {
#play_music_cue = "mx_cue_touching_moment"
#You only get this once in a lifetime.
add_character_flag = had_event_bp1_yearly_2070
#Find a consort
random_consort = {
limit = {
is_available_ai_adult = yes
has_relation_soulmate = root
is_attracted_to_gender_of = root
opinion = {
target = root
value >= 90
}
NOT = {
any_child = { exists = this }
}
OR = {
has_sexuality = homosexual
fertility <= 0.1
}
age > 40
}
save_scope_as = bp1_yearly_2070_soulmate
}
create_character_memory = {
type = childless_soulmate_memory
participants = {
childless_soulmate = scope:bp1_yearly_2070_soulmate
}
}
}
#I got to spend all of this time with _you_
option = {
name = bp1_yearly.2070.a
flavor = bp1_yearly.2070.a_tt
add_character_modifier = {
modifier = bp1_yearly_2070_accepting_modifier
}
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
#It was simply not HighGods will
option = {
name = bp1_yearly.2070.b
flavor = bp1_yearly.2070.b_tt
trigger = {
NOR = {
has_sexuality = homosexual
scope:bp1_yearly_2070_soulmate = { has_sexuality = homosexual }
}
}
add_character_modifier = {
modifier = bp1_yearly_2070_zealous_modifier
}
stress_impact = {
zealous = medium_stress_impact_loss
}
ai_chance = {
base = 100
}
}
#You and I both know that is for the best
option = {
name = bp1_yearly.2070.c
flavor = bp1_yearly.2070.c_tt
trigger = {
OR = {
has_trait = cynical
scope:bp1_yearly_2070_soulmate = { has_trait = cynical }
}
}
add_character_modifier = {
modifier = bp1_yearly_2070_cynicism_modifier
}
stress_impact = {
cynical = medium_stress_impact_loss
}
ai_chance = {
base = 100
}
}
}