N3OW_Western_eastern_europe/events/yearly_events/bp1_yearly_james.txt
2026-01-06 14:25:21 +01:00

8355 lines
179 KiB
Text

#Events run from the bp1_yearly_pulse on_action
namespace = bp1_yearly
# List of events in this file:
#
# 9001-9005 Someone ruins your favourite toy
#
# 9007-9015 doppelganger shenanigans
# 9016 Second-in-line wants to fight for the throne (and your attention)
# 9017 Different faith/culture child is feeling insecure
#
#####################################
# Destroying toy #
# by James Beaumont #
# 9001 #
#####################################
bp1_yearly.9001 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9001.t
desc = {
desc = bp1_yearly.9001.opening
#What text we display depends on the relationship to the child
first_valid = {
triggered_desc = {
trigger = {
any_relation = {
type = bully
is_available = yes
}
}
desc = bp1_yearly.9001.desc.bully
}
triggered_desc = {
trigger = {
any_relation = {
type = guardian
is_available = yes
}
}
desc = bp1_yearly.9001.desc.mentor
}
}
}
theme = family
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9001_toy_hater
animation = personality_vengeful
}
trigger = {
has_dlc_feature = friends_and_foes
NOT = { has_character_flag = had_event_bp1_yearly_9001 }
is_adult = no # Should already be covered, but sanity checks never hurt
NOR = { # Isn't already shy or the opposite
has_trait = shy
has_trait = gregarious
}
OR = {
any_relation = {
type = bully
is_available = yes
}
any_relation = {
type = guardian
is_available = yes
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
if = {
limit = {
any_relation = {
type = bully
is_available = yes
}
}
random_relation = { # Bullies are slightly rarer, try to get that version of the event if possible
type = bully
limit = {
is_available = yes
}
save_scope_as = bp1_yearly_9001_toy_hater
}
}
else = {
random_relation = {
type = guardian
limit = {
is_available = yes
}
save_scope_as = bp1_yearly_9001_toy_hater
}
}
save_scope_as = bp1_yearly_9001_shy_kid
add_character_flag = had_event_bp1_yearly_9001
}
option = { # Throw the toy away with minimal provocation
name = bp1_yearly.9001.a
scope:bp1_yearly_9001_toy_hater = {
progress_towards_rival_effect = {
REASON = rival_threw_away_toy
CHARACTER = scope:bp1_yearly_9001_shy_kid
OPINION = default_rival_opinion
}
}
stress_impact = {
base = minor_stress_impact_gain
pensive = minor_stress_impact_gain
bossy = minor_stress_impact_gain
}
}
option = {
name = bp1_yearly.9001.b
scope:bp1_yearly_9001_toy_hater = {
trigger_event = {
id = bp1_yearly.9002
days = 5
}
}
custom_tooltip = may_lead_to_vengeful
custom_tooltip = may_lead_to_forgiving
custom_tooltip = may_lead_to_shy
}
}
bp1_yearly.9002 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9001.t
desc = {
desc = bp1_yearly.9002.desc.opening
#What text we display depends on the relationship to the child
first_valid = {
triggered_desc = {
trigger = {
is_adult = no
}
desc = bp1_yearly.9002.desc.bully
}
triggered_desc = {
trigger = {
is_adult = yes
}
desc = bp1_yearly.9002.desc.mentor
}
}
}
theme = family
left_portrait = {
character = scope:bp1_yearly_9001_toy_hater
animation = personality_vengeful
}
right_portrait = {
character = scope:bp1_yearly_9001_shy_kid
animation = fear
}
weight_multiplier = {
base = 1
}
option = { # Trash the toy!
name = bp1_yearly.9002.a
if = {
limit = {
OR = { # Leave the trait decision to the kid if the kid is a player or they have no guardian
scope:bp1_yearly_9001_shy_kid = { is_ai = no }
NOT = {
scope:bp1_yearly_9001_shy_kid = {
any_relation = { type = guardian }
}
}
}
}
scope:bp1_yearly_9001_shy_kid = {
trigger_event = {
id = bp1_yearly.9004 # End event, kid can choose to get one of two traits
days = 5
}
}
}
else_if = {
limit = { # Leave it to the guardian if the current scope is a bully
is_adult = no
}
scope:bp1_yearly_9001_shy_kid = {
random_relation = {
type = guardian
trigger_event = {
id = bp1_yearly.9004 # End event, kid can choose to get one of two traits
days = 5
}
}
}
}
else = { # Current scope is the guardian
scope:bp1_yearly_9001_shy_kid = {
add_trait = vengeful
create_character_memory = {
type = destroyed_my_toy
participants = {
destroyer = scope:bp1_yearly_9001_toy_hater
}
}
}
}
progress_towards_rival_effect = {
REASON = rival_threw_away_toy
CHARACTER = scope:bp1_yearly_9001_shy_kid
OPINION = default_rival_opinion
}
stress_impact = {
just = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
ai_chance = {
base = 30
modifier = {
factor = 0
OR = {
has_trait = just
has_trait = compassionate
has_trait = forgiving
}
}
}
}
option = { # Leave them alone
name = bp1_yearly.9002.b
if = {
limit = {
OR = { # Leave the trait decision to the kid if the kid is a player or they have no guardian
scope:bp1_yearly_9001_shy_kid = { is_ai = no }
NOT = {
scope:bp1_yearly_9001_shy_kid = {
any_relation = { type = guardian }
}
}
}
}
scope:bp1_yearly_9001_shy_kid = {
trigger_event = {
id = bp1_yearly.9003 # End event, kid can choose to get one of two traits
days = 5
}
}
}
else_if = {
limit = { # Leave it to the guardian if the current scope is a bully
is_adult = no
}
scope:bp1_yearly_9001_shy_kid = {
random_relation = {
type = guardian
trigger_event = {
id = bp1_yearly.9003 # End event, kid can choose to get one of two traits
days = 5
}
}
}
}
else = { # Current scope is the guardian
scope:bp1_yearly_9001_shy_kid = {
add_trait = shy
}
}
stress_impact = {
diligent = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
callous = minor_stress_impact_gain
vengeful = minor_stress_impact_gain
bossy = minor_stress_impact_gain
}
ai_chance = {
base = 30
modifier = {
factor = 0
OR = {
has_trait = diligent
has_trait = sadistic
has_trait = callous
has_trait = vengeful
has_trait = bossy
}
}
}
}
option = { # Leave them alone, but teach them the importance of forgiveness
name = bp1_yearly.9002.c
trigger = {
scope:bp1_yearly_9001_shy_kid = { is_ai = yes }
is_adult = yes
}
scope:bp1_yearly_9001_shy_kid = { add_trait = forgiving }
stress_impact = {
sadistic = minor_stress_impact_gain
callous = minor_stress_impact_gain
vengeful = minor_stress_impact_gain
bossy = minor_stress_impact_gain
}
ai_chance = {
base = 30
modifier = {
factor = 0
OR = {
has_trait = sadistic
has_trait = callous
has_trait = vengeful
has_trait = bossy
}
}
}
}
}
bp1_yearly.9003 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9001.t
desc = {
first_valid = {
triggered_desc = {
trigger = { is_adult = no }
desc = bp1_yearly.9003.desc.child
}
triggered_desc = {
trigger = { is_adult = yes }
desc = bp1_yearly.9003.desc.mentor
}
}
}
theme = family
left_portrait = {
character = scope:bp1_yearly_9001_shy_kid
animation = grief
}
right_portrait = {
character = scope:bp1_yearly_9001_toy_hater
animation = schadenfreude
}
option = { # I've learned that people are nice sometimes
name = {
trigger = { is_adult = no }
text = bp1_yearly.9003.a.child
}
name = {
trigger = { is_adult = yes }
text = bp1_yearly.9003.a.mentor
}
scope:bp1_yearly_9001_shy_kid = { add_trait = compassionate }
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9001_toy_hater
OPINION = 0
REASON = friend_not_destroy_toy
}
ai_chance = {
base = 10
}
}
option = { # I don't need people anymore!
name = {
trigger = { is_adult = no }
text = bp1_yearly.9003.b.child
}
name = {
trigger = { is_adult = no }
text = bp1_yearly.9003.b.mentor
}
scope:bp1_yearly_9001_shy_kid = { add_trait = shy }
ai_chance = {
base = 10
}
}
}
bp1_yearly.9004 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9004.t
desc = bp1_yearly.9004.desc
theme = family
left_portrait = {
character = scope:bp1_yearly_9001_shy_kid
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9001_toy_hater
animation = ecstasy
}
option = { # I will never forgive them!
name = bp1_yearly.9004.a
scope:bp1_yearly_9001_shy_kid = {
add_trait = vengeful
# Set up follow-up
create_character_memory = {
type = destroyed_my_toy
participants = {
destroyer = scope:bp1_yearly_9001_toy_hater
}
}
}
ai_chance = {
base = 10
}
}
option = { # I forgive them for what they did
name = bp1_yearly.9004.b
scope:bp1_yearly_9001_shy_kid = {
add_trait = forgiving
}
stress_impact = {
base = major_stress_impact_gain
bossy = medium_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # I'll never talk to anyone again!
name = bp1_yearly.9004.c
scope:bp1_yearly_9001_shy_kid = {
add_trait = shy
}
stress_impact = {
base = medium_stress_impact_gain
}
ai_chance = {
base = 10
}
}
}
bp1_yearly.9005 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9005.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9001_toy_hater = {
is_imprisoned_by = root
}
}
desc = bp1_yearly.9005.desc.imprisoned
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9001_toy_hater = {
is_foreign_court_or_pool_guest_of = root
}
}
desc = bp1_yearly.9005.desc.guest
}
}
desc = bp1_yearly.9005.desc.outro
}
theme = family
left_portrait = {
character = root
animation = schadenfreude
}
right_portrait = {
character = scope:bp1_yearly_9001_toy_hater
animation = fear
}
trigger = {
any_memory = {
memory_type = destroyed_my_toy
memory_participant:destroyer = {
is_available_ai_adult = yes
OR = {
is_imprisoned_by = root
is_foreign_court_or_pool_guest_of = root
}
}
}
NOT = {
any_memory = {
memory_type = avenged_my_toy
}
}
is_available_adult = yes
NOT = {
has_trait = forgiving
}
}
immediate = {
random_memory = {
memory_type = destroyed_my_toy
save_scope_as = destroyed_toy_memory
memory_participant:destroyer = { save_scope_as = bp1_yearly_9001_toy_hater }
}
}
option = { # Time for revenge!
name = bp1_yearly.9005.a
scope:bp1_yearly_9001_toy_hater = {
random_list = {
10 = { add_trait = one_legged }
10 = { apply_maimed_trait_and_modifier_effect = yes }
10 = {
modifier = { # I won't go for the eyes if people think it's virtuous
factor = 0.5
faith = { trait_is_virtue = one_eyed }
}
add_trait = one_eyed
}
}
}
if = {
limit = {
NOT = {
has_relation_rival = scope:bp1_yearly_9001_toy_hater
}
}
set_relation_rival = {
target = scope:bp1_yearly_9001_toy_hater
reason = rival_toy_destruction
}
}
else = {
set_relation_nemesis = {
target = scope:bp1_yearly_9001_toy_hater
reason = rival_toy_destruction
copy_reason = rival
}
}
create_character_memory = {
type = avenged_my_toy
participants = {
destroyer = scope:bp1_yearly_9001_toy_hater
}
}
stress_impact = {
compassionate = major_stress_impact_gain
vengeful = medium_stress_impact_loss
just = minor_stress_impact_gain
wrathful = minor_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0.5
OR = {
has_trait = compassionate
has_trait = just
}
}
}
}
option = { # I will literally become a murderer for this childhood trauma
name = bp1_yearly.9005.b
trigger = {
has_relation_rival = scope:bp1_yearly_9001_toy_hater
scope:bp1_yearly_9001_toy_hater = {
is_imprisoned_by = root
}
}
scope:bp1_yearly_9001_toy_hater = {
death = {
killer = root
death_reason = death_murder
}
}
create_character_memory = {
type = avenged_my_toy
participants = {
destroyer = scope:bp1_yearly_9001_toy_hater
}
}
stress_impact = {
compassionate = major_stress_impact_gain
vengeful = medium_stress_impact_loss
just = major_stress_impact_gain
wrathful = medium_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
NOT = { has_trait = wrathful }
OR = {
has_trait = compassionate
has_trait = just
}
}
}
}
option = { # Turn the other cheek like a beta
name = bp1_yearly.9005.c
destroy_character_memory = scope:destroyed_toy_memory
stress_impact = {
vengeful = massive_stress_impact_gain
}
ai_chance = {
base = 0
}
}
}
############################################
#### Becoming friends over a common sin ####
############################################
scripted_trigger bp1_yearly_9006_both_have_same_sin = {
faith = { trait_is_sin = $SINFUL_TRAIT$ }
$SINFUL_COURTIER$.faith = { trait_is_sin = $SINFUL_TRAIT$ }
has_trait = $SINFUL_TRAIT$
$SINFUL_COURTIER$ = { has_trait = $SINFUL_TRAIT$ }
}
# You and a courtier bond over sin
bp1_yearly.9006 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9006.t
desc = {
desc = bp1_yearly.9006.desc.intro
first_valid = {
triggered_desc = {
trigger = {
# You both love sex
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = lustful
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.lustful
}
triggered_desc = {
trigger = {
# You're both closet foodies
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = gluttonous
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.gluttonous
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = vengeful
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.vengeful
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = sadistic
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.sadistic
}
triggered_desc = {
trigger = {
# You're both nerds in a religion of himbos
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = craven
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.craven
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = arbitrary
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.arbitrary
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = deceitful
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.deceitful
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = chaste
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.chaste
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = greedy
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.greedy
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = wrathful
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.wrathful
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = cynical
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.cynical
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = ambitious
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.ambitious
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = shy
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.shy
}
triggered_desc = {
trigger = {
bp1_yearly_9006_both_have_same_sin = {
SINFUL_TRAIT = callous
SINFUL_COURTIER = scope:bp1_yearly_9006_sinful_courtier
}
}
desc = bp1_yearly.9006.desc.callous
}
desc = bp1_yearly.9006.desc.generic
}
desc = bp1_yearly.9006.desc.outro
}
theme = crown
override_background = { reference = corridor_day }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_9006_sinful_courtier
animation = admiration
}
trigger = {
has_dlc_feature = friends_and_foes
num_sinful_traits >= 1
is_valid_for_narrow_yearly_events_adult = yes
OR = {
liege= {
any_vassal = {
this != root
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
}
any_vassal = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
any_courtier = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
}
}
immediate = {
if = {
limit = {
has_trait = craven
}
select_local_animal_effect = { TYPE = any } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling
}
if = {
limit = {
liege = {
any_vassal = {
this != root
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
}
}
liege = {
random_vassal = {
limit = {
this != root
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
save_scope_as = bp1_yearly_9006_sinful_courtier
}
}
}
else_if = {
limit = {
any_vassal = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
highest_held_title_tier > 1 # Barons are barely people
has_same_sinful_trait = root
}
}
random_vassal = {
limit = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
highest_held_title_tier > 1
has_same_sinful_trait = root
}
save_scope_as = bp1_yearly_9006_sinful_courtier
}
}
else_if = {
limit = {
any_vassal = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
}
random_vassal = {
limit = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
save_scope_as = bp1_yearly_9006_sinful_courtier
}
}
else_if = {
limit = {
any_courtier = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
}
random_courtier = {
limit = {
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
has_same_sinful_trait = root
}
save_scope_as = bp1_yearly_9006_sinful_courtier
}
}
}
option = {
name = bp1_yearly.9006.a
if = {
limit = {
opinion = {
target = scope:bp1_yearly_9006_sinful_courtier
value >= -20
}
}
set_relation_friend = { reason = friend_bonded_over_sins target = scope:bp1_yearly_9006_sinful_courtier }
}
else = {
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9006_sinful_courtier
OPINION = default_friend_opinion
REASON = friend_bonded_over_sins
}
}
add_piety = medium_piety_loss
stress_impact = {
zealous = massive_stress_impact_gain
paranoid = massive_stress_impact_gain
}
if = {
limit = {
has_trait = shy
scope:bp1_yearly_9006_sinful_courtier = {
NOT = {
has_trait = shy
}
}
}
stress_impact = {
shy = massive_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = paranoid
AND = {
has_trait = shy
scope:bp1_yearly_9006_sinful_courtier = {
NOT = {
has_trait = shy
}
}
}
}
}
}
}
option = {
name = bp1_yearly.9006.b
add_piety = minor_piety_gain
stress_impact = {
base = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = cynical
has_trait = gregarious
}
}
}
}
}
##############################
#### doppelganger peasant ####
##############################
# You find the peasant on the street
bp1_yearly.9007 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9007.t
desc = bp1_yearly.9007.desc
theme = crown
override_background = market
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = beg
triggered_outfit = {
remove_default_outfit = no
outfit_tags = { beggar_rags }
}
}
trigger = {
has_dlc_feature = friends_and_foes
is_valid_for_narrow_yearly_events_adult = yes
exists = house
NOT = { has_character_flag = had_event_bp1_yearly_9007 }
#Disabling the story for landless
is_landless_adventurer = no
is_landless_administrative = no
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_trait = eccentric
}
}
immediate = {
create_character = {
template = bp1_doppelganger_template
dynasty = none
location = root.capital_province
save_scope_as = bp1_yearly_9007_doppelganger
}
scope:bp1_yearly_9007_doppelganger = {
add_character_flag = blocked_from_leaving
}
}
option = { # They should join me at court!
trigger = { is_landed = yes }
name = bp1_yearly.9007.a
add_courtier = scope:bp1_yearly_9007_doppelganger
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9007_doppelganger
OPINION = default_friend_opinion
REASON = friend_curiously_similar
}
# Set up follow-up
hidden_effect = {
set_variable = {
name = my_doppelganger
value = scope:bp1_yearly_9007_doppelganger
}
}
create_story = story_doppelganger
random_owned_story = {
type = story_doppelganger
set_variable = {
name = doppelganger_character
value = scope:bp1_yearly_9007_doppelganger
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
eccentric = medium_stress_impact_loss
}
ai_chance = {
base = 10
}
}
option = {
name = bp1_yearly.9007.b
trigger = {
has_trait = sadistic
}
unknown_murder_effect = { VICTIM = scope:bp1_yearly_9007_doppelganger MURDERER = root REASON = death_murder }
stress_impact = {
compassionate = massive_stress_impact_gain
lustful = medium_stress_impact_gain
calm = medium_stress_impact_gain
just = major_stress_impact_gain
arrogant = medium_stress_impact_loss
wrathful = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
vengeful = medium_stress_impact_loss
}
ai_chance = {
base = 10
}
}
option = {
name = bp1_yearly.9007.c
scope:bp1_yearly_9007_doppelganger = {
silent_disappearance_effect = yes
}
stress_impact = {
eccentric = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 10
}
}
after = {
add_character_flag = had_event_bp1_yearly_9007
create_character_memory = {
type = found_my_clone
participants = {
doppelganger = scope:bp1_yearly_9007_doppelganger
}
}
}
}
# The peasant proposes a lifestyle swap for fun
bp1_yearly.9008 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9008.t
desc = bp1_yearly.9008.desc
theme = family
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = ecstasy
}
trigger = {
is_valid_for_narrow_yearly_events_adult = yes
exists = house
NOT = { has_character_flag = had_event_bp1_yearly_9008 }
exists = var:my_doppelganger
var:my_doppelganger = { is_available_ai_adult = yes }
NOR = {
has_relation_nemesis = var:my_doppelganger
has_relation_rival = var:my_doppelganger
}
}
immediate = {
var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger }
}
option = { # Go ahead with it
name = bp1_yearly.9008.a
set_relation_best_friend = { reason = best_friend_switch_places copy_reason = friend target = scope:bp1_yearly_9007_doppelganger }
add_character_modifier = {
modifier = bp1_living_as_peasant_modifier
years = 5
}
stress_impact = {
arrogant = massive_stress_impact_gain
ambitious = major_stress_impact_gain
diligent = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
honest = minor_stress_impact_gain
lazy = minor_stress_impact_gain
gluttonous = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Refuse
name = bp1_yearly.9008.b
stress_impact = {
trusting = massive_stress_impact_gain
humble = medium_stress_impact_gain
content = medium_stress_impact_gain
temperate = medium_stress_impact_gain
}
ai_chance = {
base = 10
}
}
after = { add_character_flag = had_event_bp1_yearly_9008 }
}
# The doppelganger is found sleeping with your spouse or lover
bp1_yearly.9009 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9009.t
desc = {
desc = bp1_yearly.9009.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9009_lover = { has_trait = lustful }
}
desc = bp1_yearly.9009.desc.lustful
}
desc = bp1_yearly.9009.desc
}
}
theme = family
override_background = { reference = bedchamber }
left_portrait = {
character = scope:bp1_yearly_9009_lover
animation = shock
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = shock
}
lower_left_portrait = {
character = root
animation = shock
}
trigger = {
is_valid_for_narrow_yearly_events_adult = yes
exists = house
NOT = { has_character_flag = had_event_bp1_yearly_9009 }
exists = var:my_doppelganger
var:my_doppelganger = { is_available_ai_adult = yes }
OR = {
any_relation = {
type = lover
save_temporary_scope_as = lover_1_scope
is_available_ai_adult = yes
NOT = { has_trait = pregnant }
NOT = { scope:lover_1_scope = root.var:my_doppelganger }
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = scope:lover_1_scope
CHARACTER_2 = root.var:my_doppelganger
}
}
any_spouse = {
save_temporary_scope_as = spouse_1_scope
is_available_ai_adult = yes
NOT = { has_trait = pregnant }
NOT = { scope:spouse_1_scope = root.var:my_doppelganger }
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = scope:spouse_1_scope
CHARACTER_2 = root.var:my_doppelganger
}
}
}
}
immediate = {
var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger }
if = {
limit = {
any_relation = {
type = lover
save_temporary_scope_as = lover_1_scope
is_available_ai_adult = yes
NOT = { has_trait = pregnant }
scope:lover_1_scope != root.var:my_doppelganger
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = scope:lover_1_scope
CHARACTER_2 = root.var:my_doppelganger
}
}
}
random_relation = {
type = lover
limit = {
save_temporary_scope_as = lover_1_scope
is_available_ai_adult = yes
NOT = { has_trait = pregnant }
scope:lover_1_scope != root.var:my_doppelganger
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = scope:lover_1_scope
CHARACTER_2 = root.var:my_doppelganger
}
}
save_scope_as = bp1_yearly_9009_lover
}
}
else = {
random_spouse = {
limit = {
save_temporary_scope_as = spouse_1_scope
is_available_ai_adult = yes
NOT = { has_trait = pregnant }
scope:spouse_1_scope != root.var:my_doppelganger
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = scope:spouse_1_scope
CHARACTER_2 = root.var:my_doppelganger
}
}
save_scope_as = bp1_yearly_9009_lover
}
}
scope:bp1_yearly_9007_doppelganger = {
set_relation_lover = { reason = lover_doppelganger_cucked target = scope:bp1_yearly_9009_lover involved_character = root }
hidden_effect = {
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9009_lover
PREGNANCY_CHANCE = 50
}
}
}
create_character_memory = {
type = spouse_committed_adultery
participants = {
spouse = scope:bp1_yearly_9009_lover
adulterer = scope:bp1_yearly_9007_doppelganger
}
}
scope:bp1_yearly_9009_lover = {
add_character_flag = is_naked
}
scope:bp1_yearly_9007_doppelganger = {
add_character_flag = is_naked
}
}
option = { # Break it off with both of them
name = bp1_yearly.9009.a
if = {
limit = {
has_relation_best_friend = scope:bp1_yearly_9007_doppelganger
}
remove_relation_best_friend = scope:bp1_yearly_9007_doppelganger
}
else_if = {
limit = {
has_relation_friend = scope:bp1_yearly_9007_doppelganger
}
remove_relation_friend = scope:bp1_yearly_9007_doppelganger
}
if = {
limit = {
has_relation_lover = scope:bp1_yearly_9007_doppelganger
}
remove_relation_lover = scope:bp1_yearly_9007_doppelganger
}
if = {
limit = {
has_relation_lover = scope:bp1_yearly_9009_lover
}
remove_relation_lover = scope:bp1_yearly_9009_lover
}
progress_towards_rival_effect = {
REASON = rival_slept_with_lover
CHARACTER = scope:bp1_yearly_9007_doppelganger
OPINION = default_rival_opinion
}
progress_towards_rival_effect = {
REASON = rival_slept_with_doppelganger
CHARACTER = scope:bp1_yearly_9009_lover
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Have the doppelganger imprisoned
name = bp1_yearly.9009.b
rightfully_imprison_character_effect = {
TARGET = scope:bp1_yearly_9007_doppelganger
IMPRISONER = root
}
stress_impact = {
humble = medium_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Let them be
name = bp1_yearly.9009.c
if = {
limit = { accepts_adultery_without_penalty_trigger = no }
stress_impact = {
base = major_stress_impact_gain
diligent = major_stress_impact_gain
arrogant = massive_stress_impact_gain
}
}
ai_chance = {
base = 10
}
}
option = { # Become a polycule
name = bp1_yearly.9009.d
trigger = {
accepts_adultery_without_penalty_trigger = yes
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = root
CHARACTER_2 = scope:bp1_yearly_9007_doppelganger
}
}
set_relation_lover = { reason = lover_my_own_clone_now_neither_of_us_will_be_virgins target = scope:bp1_yearly_9007_doppelganger }
if = {
limit = {
NOT = {
has_relation_lover = scope:bp1_yearly_9009_lover
}
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = root
CHARACTER_2 = scope:bp1_yearly_9009_lover
}
}
set_relation_lover = { reason = lover_doppelganger_threesome target = scope:bp1_yearly_9009_lover involved_character = scope:bp1_yearly_9007_doppelganger }
}
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9007_doppelganger
PREGNANCY_CHANCE = 0
}
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9009_lover
PREGNANCY_CHANCE = 50
}
stress_impact = {
}
ai_chance = {
base = 10
}
}
after = {
add_character_flag = had_event_bp1_yearly_9009
scope:bp1_yearly_9009_lover = {
remove_character_flag = is_naked
}
scope:bp1_yearly_9007_doppelganger = {
remove_character_flag = is_naked
}
}
}
# The doppelganger challenges you to a fight, claiming to be the real you
bp1_yearly.9010 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9010.t
desc = {
desc = bp1_yearly.9010.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9007_doppelganger = { drinks_alcohol_trigger = yes }
}
desc = bp1_yearly.9010.desc.drunk
}
desc = bp1_yearly.9010.desc.stoner
}
desc = bp1_yearly.9010.desc.outro
}
theme = family
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = personality_vengeful
}
trigger = {
is_valid_for_narrow_yearly_events_adult = yes
exists = house
NOT = { has_character_flag = had_event_bp1_yearly_9010 }
exists = var:my_doppelganger
var:my_doppelganger = { is_available_ai_adult = yes }
NOR = {
has_relation_friend = var:my_doppelganger
has_relation_best_friend = var:my_doppelganger
has_relation_lover = var:my_doppelganger
has_relation_soulmate = var:my_doppelganger
}
}
immediate = {
var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger }
if = {
limit = {
NOT = { has_relation_nemesis = scope:bp1_yearly_9007_doppelganger }
}
set_relation_nemesis = {
target = scope:bp1_yearly_9007_doppelganger
reason = nemesis_doppelganger
}
}
}
option = { # Fight them for the throne!
name = bp1_yearly.9010.a
custom_tooltip = bp1_yearly.9010.a_tt
# Scopes for duel fallback
scope:bp1_yearly_9007_doppelganger = { save_scope_as = recipient }
save_scope_as = actor
configure_start_single_combat_effect = {
SC_INITIATOR = root
SC_ATTACKER = scope:bp1_yearly_9007_doppelganger
SC_DEFENDER = root
FATALITY = no
FIXED = no
LOCALE = throne_room
OUTPUT_EVENT = bp1_yearly.9011
INVALIDATION_EVENT = fp1_tbc.0102
}
stress_impact = {
craven = medium_stress_impact_gain
wrathful = minor_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = craven
}
}
}
option = { # Have the doppelganger imprisoned
name = bp1_yearly.9010.b
rightfully_imprison_character_effect = {
TARGET = scope:bp1_yearly_9007_doppelganger
IMPRISONER = root
}
add_trait = disputed_heritage
random_owned_story = {
type = story_doppelganger
end_story = yes
}
stress_impact = {
brave = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = brave
has_trait = arrogant
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9010 }
}
# doppelganger duel outcome
bp1_yearly.9011 = {
hidden = yes
immediate = {
# Event for victorious doppelganger
if = {
limit = {
scope:sc_victor = scope:recipient
}
scope:actor = {
trigger_event = {
id = bp1_yearly.9012
days = 1
}
}
}
# The real you wins
else = {
trigger_event = {
id = bp1_yearly.9013
days = 1
}
}
}
}
# The doppelganger wins
bp1_yearly.9012 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9012.t
desc = bp1_yearly.9012.desc
theme = crown
left_portrait = {
character = root
animation = pain
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = schadenfreude
}
trigger = {
exists = var:my_doppelganger
exists = house
}
immediate = {
every_held_title = {
add_to_list = titles_to_pressed_claim
}
every_claim = {
pressed = yes
add_to_list = titles_to_pressed_claim
}
every_claim = {
pressed = no
add_to_list = titles_to_unpressed_claim
}
var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger }
create_character_memory = {
type = doppelganger_claimed_my_throne
participants = {
doppelganger = scope:bp1_yearly_9007_doppelganger
}
}
}
option = { # Show the player the outcome
name = bp1_yearly.9012.a
scope:bp1_yearly_9007_doppelganger = {
give_nickname = nick_the_real
change_first_name = { template_character = root }
house ?= { set_house_name_from_house = root.house }
}
every_in_list = {
list = titles_to_pressed_claim
limit = { tier > tier_barony } #No baronies
save_scope_as = title_to_claim
scope:bp1_yearly_9007_doppelganger = {
add_pressed_claim = scope:title_to_claim
}
}
every_in_list = {
list = titles_to_unpressed_claim
save_scope_as = title_to_claim
scope:bp1_yearly_9007_doppelganger = {
add_unpressed_claim = scope:title_to_claim
}
}
add_trait = disputed_heritage
stress_impact = {
}
ai_chance = {
base = 10
}
}
}
# You win
bp1_yearly.9013 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9012.t
desc = bp1_yearly.9013.desc
theme = crown
left_portrait = {
character = root
animation = schadenfreude
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = pain
}
trigger = {
exists = var:my_doppelganger
exists = house
}
immediate = {
var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger }
create_character_memory = {
type = doppelganger_claimed_my_throne_failed
participants = {
doppelganger = scope:bp1_yearly_9007_doppelganger
}
}
}
option = { # Good
name = bp1_yearly.9013.a
rightfully_imprison_character_effect = {
TARGET = scope:bp1_yearly_9007_doppelganger
IMPRISONER = root
}
stress_impact = {
}
ai_chance = {
base = 10
}
}
}
# You have a romantic encounter with your double
bp1_yearly.9014 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9014.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
has_relation_lover = scope:bp1_yearly_9007_doppelganger
can_set_relation_soulmate_trigger = { CHARACTER = scope:bp1_yearly_9007_doppelganger }
}
desc = bp1_yearly.9014.desc.soulmate
}
desc = bp1_yearly.9014.desc.lover
}
}
theme = marriage
left_portrait = {
character = root
animation = flirtation_left
}
right_portrait = {
character = scope:bp1_yearly_9007_doppelganger
animation = love
}
trigger = {
is_valid_for_narrow_yearly_events_adult = yes
exists = house
NOT = { has_character_flag = had_event_bp1_yearly_9010 }
exists = var:my_doppelganger
var:my_doppelganger = { is_available_ai_adult = yes }
OR = {
NOT = { # Doesn't already have a relation to the doppelganger
has_any_scripted_relation = var:my_doppelganger
}
has_relation_lover = var:my_doppelganger # Become soulmates
has_relation_friend = var:my_doppelganger
}
OR = {
# You are attracted to the same-sex
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = root
CHARACTER_2 = var:my_doppelganger
}
# You love yourself so much it doesn't matter
has_trait = arrogant
}
NOT = { has_character_flag = rejected_advances_bp1_yearly_9014 } # Allows the event to repeat from Lover to Soulmate, but prevents it from repeating for people who opted out
}
immediate = {
var:my_doppelganger = { save_scope_as = bp1_yearly_9007_doppelganger }
}
option = { # Embrace these feelings
name = {
trigger = { has_trait = arrogant }
text = bp1_yearly.9014.a.arrogant
}
name = bp1_yearly.9014.a
trigger = {
NOT = { has_relation_soulmate = scope:bp1_yearly_9007_doppelganger }
}
if = {
limit = {
has_relation_lover = scope:bp1_yearly_9007_doppelganger
can_set_relation_soulmate_trigger = { CHARACTER = scope:bp1_yearly_9007_doppelganger }
}
set_relation_soulmate = { reason = soulmate_doppelganger copy_reason = lover target = scope:bp1_yearly_9007_doppelganger }
}
else = {
if = {
limit = { NOT = { has_relation_lover = scope:bp1_yearly_9007_doppelganger } }
set_relation_lover = { reason = lover_my_own_clone_now_neither_of_us_will_be_virgins target = scope:bp1_yearly_9007_doppelganger }
}
}
stress_impact = {
humble = medium_stress_impact_gain
chaste = medium_stress_impact_gain
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Suppress the feelings
name = bp1_yearly.9014.b
reverse_add_opinion = {
target = scope:bp1_yearly_9007_doppelganger
modifier = hurt_opinion
opinion = -25
}
add_character_flag = rejected_advances_bp1_yearly_9014
stress_impact = {
lustful = major_stress_impact_gain
arrogant = massive_stress_impact_gain
}
ai_chance = {
base = 10
}
}
}
# Turns out you're long-lost twins
bp1_yearly.9015 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9015.t
desc = bp1_yearly.9015.desc
theme = family
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:bp1_yearly_9015_living_parent
animation = grief
}
trigger = {
is_valid_for_narrow_yearly_events_adult = yes
exists = house
NOT = { has_character_flag = had_event_bp1_yearly_9015 }
exists = var:my_doppelganger
var:my_doppelganger = { is_available_ai_adult = yes }
any_parent = {
is_available_ai_adult = yes
has_trait = honest
}
}
weight_multiplier = {
base = 0.1 # This should be very very rare
modifier = { # Even rarer if it results in incest
factor = 0.1
var:my_doppelganger = {
OR = {
is_consort_of = root
has_relation_lover = root
has_relation_soulmate = root
}
}
NOT = { faith = { has_doctrine_parameter = consanguinity_unrestricted_incest } }
}
}
immediate = {
random_parent = {
limit = {
is_available_ai_adult = yes
has_trait = honest
}
save_scope_as = bp1_yearly_9015_living_parent
}
var:my_doppelganger = {
save_scope_as = bp1_yearly_9007_doppelganger
set_real_father = root.father
}
if = {
limit = {
scope:bp1_yearly_9007_doppelganger = {
OR = {
is_consort_of = root
has_relation_lover = root
has_relation_soulmate = root
}
}
}
if = {
limit = {
NOR = {
has_trait = incestuous
any_secret = { type = secret_incest }
}
is_adult = yes
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = incestuous
GENDER_CHARACTER = scope:bp1_yearly_9007_doppelganger
FAITH = root.faith
}
}
add_secret = {
type = secret_incest
}
random_secret = {
type = secret_incest
reveal_to = root
reveal_to = scope:bp1_yearly_9015_living_parent
}
}
scope:bp1_yearly_9007_doppelganger = {
if = {
limit = {
NOR = {
has_trait = incestuous
any_secret = { type = secret_incest }
}
is_adult = yes
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = incestuous
GENDER_CHARACTER = root
FAITH = scope:bp1_yearly_9007_doppelganger.faith
}
}
add_secret = {
type = secret_incest
}
random_secret = {
type = secret_incest
reveal_to = root
reveal_to = scope:bp1_yearly_9015_living_parent
}
}
}
}
}
option = { # Announce the news publicly!
name = bp1_yearly.9015.a
scope:bp1_yearly_9007_doppelganger = {
if = {
limit = { exists = root.father }
set_father = root.father
}
if = {
limit = { exists = root.mother }
set_mother = root.mother
}
if = {
limit = { exists = root.house }
set_house = root.house
}
add_trait = twin
}
add_trait = twin
if = { # My clone is known to be my lover, become incestuous
limit = {
scope:bp1_yearly_9007_doppelganger = { is_consort_of = root }
}
random_secret = {
type = secret_incest
expose_secret = root
}
scope:bp1_yearly_9007_doppelganger = {
random_secret = {
type = secret_incest
expose_secret = root
}
}
}
if = { # Your religion thinks your incest is cool, give piety
limit = {
faith = { has_doctrine_parameter = divine_marriage_piety_gain_active }
OR = {
scope:bp1_yearly_9007_doppelganger = { is_consort_of = root }
NOT = {
sexual_activity_with_partner_is_criminal_in_faith_trigger = {
PARTNER = scope:bp1_yearly_9007_doppelganger
FAITH = root.faith
}
}
}
}
add_piety = major_piety_gain
}
if = { # I'm not having sexual relations with my clone, become friends
limit = {
NOT = {
has_any_scripted_relation = scope:bp1_yearly_9007_doppelganger
scope:bp1_yearly_9007_doppelganger = { is_consort_of = root }
}
}
if = {
limit = {
NOT = { has_relation_friend = scope:bp1_yearly_9007_doppelganger }
}
set_relation_friend = { reason = friend_long_lost_twin target = scope:bp1_yearly_9007_doppelganger }
}
}
else_if = { # We're enemies, move closer to not being enemies
limit = {
NOT = { scope:bp1_yearly_9007_doppelganger = { is_consort_of = root } }
OR = {
has_relation_rival = scope:bp1_yearly_9007_doppelganger
has_relation_nemesis = scope:bp1_yearly_9007_doppelganger
}
}
scope:bp1_yearly_9007_doppelganger = {
progress_towards_friend_effect = {
CHARACTER = root
OPINION = default_friend_opinion
REASON = friend_curiously_similar
}
}
}
if = { # Stress gain for incest
limit = {
scope:bp1_yearly_9007_doppelganger = {
OR = {
is_consort_of = root
has_relation_lover = root
has_relation_soulmate = root
}
}
}
stress_impact = {
humble = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
chaste = medium_stress_impact_gain
}
if = {
limit = {
NOT = { faith = { has_doctrine_parameter = divine_marriage_piety_gain_active } }
}
stress_impact = {
base = major_stress_impact_gain
zealous = major_stress_impact_gain
}
}
}
else = { # Stress gain for not incest
stress_impact = {
deceitful = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
scope:bp1_yearly_9007_doppelganger = {
OR = {
is_consort_of = root
has_relation_lover = root
has_relation_soulmate = root
}
}
NOT = { faith = { has_doctrine_parameter = consanguinity_unrestricted_incest } }
}
}
}
option = { # Suppress information
name = bp1_yearly.9015.b
stress_impact = {
arrogant = major_stress_impact_gain
humble = major_stress_impact_gain
content = major_stress_impact_gain
honest = massive_stress_impact_gain
trusting = massive_stress_impact_gain
}
if = { # Stress gain for incest
limit = {
scope:bp1_yearly_9007_doppelganger = {
OR = {
is_consort_of = root
has_relation_lover = root
has_relation_soulmate = root
}
}
faith = { has_doctrine_parameter = divine_marriage_piety_gain_active }
}
stress_impact = {
zealous = massive_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
scope:bp1_yearly_9007_doppelganger = {
OR = {
is_consort_of = root
has_relation_lover = root
has_relation_soulmate = root
}
}
faith = { has_doctrine_parameter = consanguinity_unrestricted_incest }
}
modifier = {
factor = 0
has_trait = honest
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9015 }
}
#####################################
# Uppity heir wants the throne #
# by James Beaumont #
# 9016 #
#####################################
bp1_yearly.9016 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9016.t
desc = {
desc = bp1_yearly.9016.desc.intro
first_valid = {
# Different descs to challenge why they think they deserve the throne more
triggered_desc = {
trigger = {
NOT = {
root.player_heir = {
is_child_of = root
}
}
}
desc = bp1_yearly.9016.desc.not_a_child
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9016_uppity_child = {
NOR = {
has_trait = legitimized_bastard
has_trait = bastard
}
}
root.player_heir = {
OR = {
has_trait = legitimized_bastard
has_trait = bastard
}
}
}
desc = bp1_yearly.9016.desc.bastard
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9016_uppity_child = {
NOR = {
has_trait = child_of_concubine
has_trait = legitimized_bastard
has_trait = bastard
}
}
root.player_heir = {
has_trait = child_of_concubine
}
}
desc = bp1_yearly.9016.desc.child_of_concubine
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9016_uppity_child = {
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
root.player_heir = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
desc = bp1_yearly.9016.desc.rival
}
desc = bp1_yearly.9016.desc.fallback
}
desc = bp1_yearly.9016.desc.outro
}
theme = family
override_background = feast
left_portrait = {
character = scope:bp1_yearly_9016_heir
animation = shock
}
right_portrait = {
character = scope:bp1_yearly_9016_uppity_child
animation = rage
}
trigger = {
has_dlc_feature = friends_and_foes
is_landed = yes
is_available_at_peace_adult = yes
NOT = { has_character_flag = had_event_bp1_yearly_9016 }
exists = root.player_heir
root.player_heir = {
is_available_ai_adult = yes
# Consider if this should only be valid for your offspring or if uncles should be valid as well
}
any_child = {
is_available_ai_adult = yes
this != root.player_heir
# Any of your children dislike or are indifferent to your current heir
NOT = {
has_any_good_relationship_with_character_trigger = {
CHARACTER = root.player_heir
}
}
OR = {
has_trait = ambitious
has_any_bad_relationship_with_character_trigger = { CHARACTER = root.player_heir }
}
root.primary_title = { # They must be close to succession
place_in_line_of_succession = {
target = prev
value <= 4
}
}
}
}
weight_multiplier = {
base = 1
modifier = { # Less rare if they hate your current heir
factor = 10
any_child = {
is_available_ai_adult = yes
has_any_bad_relationship_with_character_trigger = {
CHARACTER = root.player_heir
}
}
}
modifier = { # Less rare if they think they could take your current heir in a fight
factor = 2
any_child = {
is_available_ai_adult = yes
prowess > root.player_heir.prowess
}
}
}
immediate = {
random_child = {
limit = {
is_available_ai_adult = yes
this != root.player_heir
NOT = {
has_any_good_relationship_with_character_trigger = {
CHARACTER = root.player_heir
}
}
root.primary_title = { # They must be close to succession
place_in_line_of_succession = {
target = prev
value <= 4
}
}
}
weight = {
modifier = {
factor = 10
any_child = {
is_available_ai_adult = yes
has_any_bad_relationship_with_character_trigger = {
CHARACTER = root.player_heir
}
}
}
modifier = {
factor = 2
any_child = {
is_available_ai_adult = yes
prowess > root.player_heir.prowess
}
}
}
progress_towards_rival_effect = {
REASON = rival_heir_wants_throne
CHARACTER = root.player_heir
OPINION = default_rival_opinion
}
save_scope_as = bp1_yearly_9016_uppity_child
}
root.player_heir = { save_scope_as = bp1_yearly_9016_heir }
}
option = { # Let them fight!
name = bp1_yearly.9016.a
trigger = {
NOT = {
culture ?= { has_cultural_tradition = tradition_mystical_ancestors }
}
}
scope:bp1_yearly_9016_uppity_child = {
progress_towards_rival_effect = {
REASON = rival_heir_wants_throne
CHARACTER = root.player_heir
OPINION = default_rival_opinion
}
duel = {
skill = prowess
target = scope:bp1_yearly_9016_heir
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
root = {
send_interface_toast = {
title = 9016_uppity_child_wins
left_icon = root
right_icon = scope:bp1_yearly_9016_uppity_child
set_designated_heir = scope:bp1_yearly_9016_uppity_child
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
root = {
send_interface_toast = {
title = 9016_uppity_child_wins
left_icon = root
right_icon = scope:bp1_yearly_9016_heir
scope:bp1_yearly_9016_uppity_child = {
disinherit_effect = { DISINHERITOR = root }
}
}
}
}
}
}
stress_impact = {
arrogant = major_stress_impact_gain
just = major_stress_impact_gain
compassionate = major_stress_impact_gain
craven = major_stress_impact_gain
family_first = massive_stress_impact_gain # I hate it when you guys fight!
}
ai_chance = {
base = 10
}
}
option = { # Send the uppity heir to their room with no supper
name = bp1_yearly.9016.b
scope:bp1_yearly_9016_uppity_child = {
progress_towards_rival_effect = {
REASON = rival_heir_sent_to_bed
CHARACTER = root
OPINION = default_rival_opinion
}
}
stress_impact = {
arbitrary = major_stress_impact_gain
brave = major_stress_impact_gain
honest = massive_stress_impact_gain
family_first = minor_stress_impact_gain
}
}
after = { add_character_flag = had_event_bp1_yearly_9016 }
}
#################################################
# Uppity child is insecure about culture #
# by James Beaumont #
# 9017 #
#################################################
scripted_trigger bp1_yearly_9017_child_is_valid_trigger = {
is_available_ai_adult = yes
OR = { # They feel like they don't belong
culture != root.culture
faith != root.faith
}
root.primary_title = { # They must be relevant at least somewhat
place_in_line_of_succession = {
target = prev
value <= 4
}
}
OR = { # They must be in your realm
is_courtier_of = root
any_liege_or_above = { this = root }
}
}
bp1_yearly.9017 = {
type = character_event
content_source = dlc_006
title = {
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9017_uppity_child = {
culture != root.culture
}
}
desc = bp1_yearly.9017.t.culture
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9017_uppity_child = {
faith != root.faith
}
}
desc = bp1_yearly.9017.t.faith
}
}
}
desc = {
desc = bp1_yearly.9017.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9017_uppity_child = {
culture != root.culture
}
}
desc = bp1_yearly.9017.desc.culture
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9017_uppity_child = {
faith != root.faith
}
}
desc = bp1_yearly.9017.desc.faith
}
}
desc = bp1_yearly.9017.desc.outro
}
theme = family
left_portrait = {
character = root
animation = personality_compassionate
}
right_portrait = {
character = scope:bp1_yearly_9017_uppity_child
animation = grief
}
trigger = {
has_dlc_feature = friends_and_foes
is_landed = yes
is_available_at_peace_adult = yes
NOT = { has_character_flag = had_event_bp1_yearly_9017 }
any_child = {
bp1_yearly_9017_child_is_valid_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = { # More likely if faith is hostile or higher
add = 5
any_child = {
bp1_yearly_9017_child_is_valid_trigger = yes
faith = {
faith_hostility_level = {
target = root.faith
value >= 2
}
}
}
}
modifier = { # More likely if cultures don't get along
add = 2
any_child = {
bp1_yearly_9017_child_is_valid_trigger = yes
culture = {
cultural_acceptance = {
target = root.culture
value <= 25
}
}
}
}
modifier = { # More likely if cultures *really* don't get along
add = 3
any_child = {
bp1_yearly_9017_child_is_valid_trigger = yes
culture = {
cultural_acceptance = {
target = root.culture
value <= 5
}
}
}
}
}
immediate = {
random_child = {
limit = {
bp1_yearly_9017_child_is_valid_trigger = yes
}
weight = {
modifier = {
factor = 2
culture != root.culture
faith != root.faith
}
}
save_scope_as = bp1_yearly_9017_uppity_child
}
}
option = { # We should celebrate our differences!
name = bp1_yearly.9017.a
trigger = {
root.culture != scope:bp1_yearly_9017_uppity_child.culture
}
if = {
limit = {
root.culture != scope:bp1_yearly_9017_uppity_child.culture
}
root.culture = {
change_cultural_acceptance = {
target = scope:bp1_yearly_9017_uppity_child.culture
value = medium_cultural_acceptance_gain
desc = cultural_acceptance_embraced_child
}
}
}
scope:bp1_yearly_9017_uppity_child = {
progress_towards_friend_effect = {
CHARACTER = root
OPINION = default_friend_opinion
REASON = friend_encouraged_differences
}
}
stress_impact = {
arrogant = major_stress_impact_gain
callous = major_stress_impact_gain
sadistic = major_stress_impact_gain
vengeful = major_stress_impact_gain
}
if = {
limit = {
faith = {
faith_hostility_level = {
target = scope:bp1_yearly_9017_uppity_child.faith
value >= 2
}
}
}
stress_impact = {
zealous = massive_stress_impact_gain
}
}
ai_chance = {
base = 10
}
}
option = { # We are different, but you're still my daughter/son
name = {
trigger = {
scope:bp1_yearly_9017_uppity_child = {
culture != root.culture
}
}
text = bp1_yearly.9017.b.culture
}
name = {
trigger = {
scope:bp1_yearly_9017_uppity_child = {
faith != root.faith
}
}
text = bp1_yearly.9017.b.faith
}
scope:bp1_yearly_9017_uppity_child = {
progress_towards_friend_effect = {
CHARACTER = root
OPINION = default_friend_opinion
REASON = friend_encouraged_differences
}
}
stress_impact = {
arrogant = major_stress_impact_gain
callous = major_stress_impact_gain
sadistic = major_stress_impact_gain
vengeful = major_stress_impact_gain
}
if = {
limit = {
faith = {
faith_hostility_level = {
target = scope:bp1_yearly_9017_uppity_child.faith
value >= 2
}
}
}
stress_impact = {
zealous = major_stress_impact_gain
}
}
}
option = { # The differences are too great, disinherit them
name = bp1_yearly.9017.c
trigger = {
NOT = {
culture ?= { has_cultural_tradition = tradition_mystical_ancestors }
}
}
scope:bp1_yearly_9017_uppity_child = {
disinherit_effect = { DISINHERITOR = root }
}
scope:bp1_yearly_9017_uppity_child = {
progress_towards_rival_effect = {
REASON = rival_was_disinherited
CHARACTER = root
OPINION = default_rival_opinion
}
}
if = {
limit = {
root.culture != scope:bp1_yearly_9017_uppity_child.culture
}
root.culture = {
change_cultural_acceptance = {
target = scope:bp1_yearly_9017_uppity_child.culture
value = medium_cultural_acceptance_loss
desc = cultural_acceptance_rejected_child
}
}
}
stress_impact = {
just = massive_stress_impact_gain
compassionate = massive_stress_impact_gain
forgiving = major_stress_impact_gain
trusting = major_stress_impact_gain
family_first = massive_stress_impact_gain
}
}
after = { add_character_flag = had_event_bp1_yearly_9017 }
}
#################################################
# Illegitimate child feels excluded #
# by James Beaumont #
# 9018 #
#################################################
bp1_yearly.9018 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9018.t
desc = {
desc = bp1_yearly.9018.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9018_illegitimate_child = {
OR = {
has_trait = bastard
has_trait = legitimized_bastard
}
}
}
desc = bp1_yearly.9018.desc.bastard
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9018_illegitimate_child = {
has_trait = child_of_concubine
}
}
desc = bp1_yearly.9018.desc.child_of_concubine
}
}
first_valid = {
triggered_desc = {
trigger = {
NOT = {
has_trait = compassionate
}
OR = {
has_trait = callous
opinion = {
target = scope:bp1_yearly_9018_illegitimate_child
value <= -20
}
}
}
desc = bp1_yearly.9018.desc.outro.callous
}
desc = bp1_yearly.9018.desc.outro
}
}
theme = family
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_9018_illegitimate_child
animation = grief
}
lower_right_portrait = {
character = scope:bp1_yearly_9018_bully
animation = schadenfreude
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
NOT = { has_character_flag = had_event_bp1_yearly_9018 }
any_child = {
is_adult = no
age >= 6
OR = {
has_trait = bastard
has_trait = legitimized_bastard
has_trait = child_of_concubine
}
save_temporary_scope_as = bastard_scope
}
any_child = {
is_adult = no
age >= 6
age >= scope:bastard_scope.age
NOR = {
has_trait = bastard
has_trait = legitimized_bastard
has_trait = child_of_concubine
has_trait = compassionate
has_trait = trusting
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_child = {
limit = {
is_adult = no
age >= 6
OR = {
has_trait = bastard
has_trait = legitimized_bastard
has_trait = child_of_concubine
}
}
save_scope_as = bp1_yearly_9018_illegitimate_child
}
random_child = {
limit = {
is_adult = no
age >= 6
NOR = {
has_trait = bastard
has_trait = legitimized_bastard
has_trait = child_of_concubine
has_trait = compassionate
has_trait = trusting
}
}
save_scope_as = bp1_yearly_9018_bully
}
}
option = { # You two should get along!
name = bp1_yearly.9018.a
scope:bp1_yearly_9018_illegitimate_child = {
root = { save_scope_as = relationship_reason_involved_character }
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9018_bully
OPINION = default_friend_opinion
REASON = friend_motivated_by_parent
}
clear_saved_scope = relationship_reason_involved_character
progress_towards_friend_effect = {
CHARACTER = root
OPINION = default_friend_opinion
REASON = friend_good_chats
}
}
scope:bp1_yearly_9018_bully = {
progress_towards_friend_effect = {
CHARACTER = root
OPINION = default_friend_opinion
REASON = friend_good_chats
}
}
stress_impact = {
base = medium_stress_impact_gain
arrogant = major_stress_impact_gain
callous = major_stress_impact_gain
sadistic = major_stress_impact_gain
vengeful = major_stress_impact_gain
family_first = major_stress_impact_loss
}
ai_chance = {
base = 10
}
}
option = { # GetGirlBoys will be GetGirlBoys
name = bp1_yearly.9018.b
scope:bp1_yearly_9018_illegitimate_child = {
set_relation_victim = scope:bp1_yearly_9018_bully
add_opinion = {
target = root
modifier = betrayed_me_opinion
opinion = -25
}
}
scope:bp1_yearly_9018_bully = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 25
}
}
stress_impact = {
just = major_stress_impact_gain
compassionate = major_stress_impact_gain
forgiving = major_stress_impact_gain
family_first = major_stress_impact_gain
}
}
option = { # Let them fight for your compassion
name = bp1_yearly.9018.c
trigger = {
OR = {
has_trait = arbitrary
has_trait = callous
}
NOT = {
culture ?= { has_cultural_tradition = tradition_mystical_ancestors }
}
}
scope:bp1_yearly_9018_illegitimate_child = {
set_relation_nemesis = {
target = scope:bp1_yearly_9018_bully
involved_character = root
copy_reason = rival
reason = nemesis_fought_for_parents_compassion
}
duel = {
skill = prowess
target = scope:bp1_yearly_9018_bully
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
root = {
send_interface_toast = {
title = 9018_uppity_child_wins
left_icon = root
right_icon = scope:bp1_yearly_9018_illegitimate_child
scope:bp1_yearly_9018_bully = {
disinherit_effect = { DISINHERITOR = root }
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
root = {
send_interface_toast = {
title = 9018_bully_child_wins
left_icon = root
right_icon = scope:bp1_yearly_9018_bully
scope:bp1_yearly_9018_illegitimate_child = {
disinherit_effect = { DISINHERITOR = root }
}
}
}
}
}
}
stress_impact = {
just = massive_stress_impact_gain
compassionate = massive_stress_impact_gain
forgiving = major_stress_impact_gain
trusting = major_stress_impact_gain
family_first = massive_stress_impact_gain
}
}
after = { add_character_flag = had_event_bp1_yearly_9018 }
}
#################################################
# Spouse proposes a gay threesome #
# by James Beaumont #
# 9019 #
#################################################
scripted_trigger bp1_yearly_9019_spouse_trigger = {
is_available_at_peace_ai_adult = yes
is_eunuch_trigger = no
NOR = {
has_trait = chaste
has_trait = celibate
has_trait = pregnant
}
OR = {
# Many things can motivate this, desire for children, compassion for your partner's desires, just wanting a threesom, etc.
has_trait = compassionate
has_trait = deceitful
has_trait = lustful
has_trait = ambitious
has_trait = arbitrary
AND = {
faith = { has_doctrine_parameter = homosexuality_accepted }
NOT = {
trait_is_shunned_in_faith_trigger = {
TRAIT = adulterer
FAITH = root.faith
GENDER_CHARACTER = root
}
}
}
}
# Zealous spouses generally shouldn't want to do this if their faith shuns it
NAND = {
OR = {
faith = { has_doctrine_parameter = homosexuality_illegal }
faith = { has_doctrine_parameter = homosexuality_shunned }
}
has_trait = zealous
}
}
scripted_trigger bp1_yearly_9019_relation_trigger = {
NOR = {
is_close_family_of = root
is_consort_of = root
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
OR = {
AND = {
is_male = yes
root = { is_male = yes }
}
AND = {
is_female = yes
root = { is_female = yes }
}
}
might_cheat_on_every_partner_trigger = yes
}
scripted_trigger bp1_yearly_9019_courtier_trigger = {
is_adult = yes
NAND = {
OR = {
faith = { has_doctrine_parameter = homosexuality_illegal }
faith = { has_doctrine_parameter = homosexuality_shunned }
}
has_trait = zealous
}
NOR = {
has_trait = chaste
is_close_family_of = root
is_consort_of = root
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
OR = {
has_sexuality = homosexual
has_sexuality = bisexual
}
OR = {
AND = {
is_male = yes
root = { is_male = yes }
}
AND = {
is_female = yes
root = { is_female = yes }
}
}
might_cheat_on_every_partner_trigger = yes
}
bp1_yearly.9019 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9019.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
has_sexuality = homosexual
}
desc = bp1_yearly.9019.desc.intro.gay
}
triggered_desc = {
trigger = {
has_sexuality = bisexual
}
desc = bp1_yearly.9019.desc.intro.bi
}
}
desc = bp1_yearly.9019.desc.bridge
first_valid = {
triggered_desc = {
trigger = {
has_sexuality = homosexual
}
desc = bp1_yearly.9019.desc.bridge.gay
}
triggered_desc = {
trigger = {
has_sexuality = bisexual
}
desc = bp1_yearly.9019.desc.bridge.bi
}
}
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9019_spouse = {
has_trait = compassionate
}
}
desc = bp1_yearly.9019.desc.compassionate
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9019_spouse = {
has_trait = lustful
}
}
desc = bp1_yearly.9019.desc.lustful
}
desc = bp1_yearly.9019.desc.cynical
}
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_relation_lover = scope:bp1_yearly_9019_lover
has_relation_soulmate = scope:bp1_yearly_9019_lover
}
}
desc = bp1_yearly.9019.desc.lover
}
triggered_desc = {
trigger = {
has_relation_friend = scope:bp1_yearly_9019_lover
}
desc = bp1_yearly.9019.desc.friend
}
desc = bp1_yearly.9019.desc.stranger
}
desc = bp1_yearly.9019.desc.outro
}
theme = family
override_background = bedchamber
left_portrait = {
character = scope:bp1_yearly_9019_spouse
animation = personality_compassionate
}
right_portrait = {
character = scope:bp1_yearly_9019_lover
animation = flirtation_left
}
lower_left_portrait = {
character = root
animation = shock
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
OR = {
has_sexuality = homosexual
has_sexuality = bisexual
}
is_eunuch_trigger = no
NOR = { # Can have sex and isn't already pregnant
has_trait = celibate
has_trait = pregnant
}
any_spouse = { bp1_yearly_9019_spouse_trigger = yes }
}
weight_multiplier = {
base = 1
}
immediate = {
random_spouse = {
limit = { bp1_yearly_9019_spouse_trigger = yes }
save_scope_as = bp1_yearly_9019_spouse
}
# Grab an existing lover if possible
if = {
limit = {
any_relation = {
type = lover
bp1_yearly_9019_relation_trigger = yes
}
}
random_relation = {
type = lover
limit = { bp1_yearly_9019_relation_trigger = yes }
save_scope_as = bp1_yearly_9019_lover
}
}
# Otherwise grab a courtier
else_if = {
limit = {
any_courtier_or_guest = { bp1_yearly_9019_courtier_trigger = yes }
}
random_courtier_or_guest = {
limit = { bp1_yearly_9019_courtier_trigger = yes }
save_scope_as = bp1_yearly_9019_lover
}
}
# Otherwise create a beautiful bisexual
else = {
create_character = {
template = bp1_bisexual_partner_template
location = root.capital_province
save_scope_as = bp1_yearly_9019_lover
}
}
# We're gonna have some monogamous threesomes happenin'.
save_scope_as = ignore_cheating_error_check
scope:bp1_yearly_9019_lover = {
add_character_flag = is_naked
}
}
option = { # Let's do this thing!
name = bp1_yearly.9019.a
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9019_lover
PREGNANCY_CHANCE = 20
}
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9019_spouse
PREGNANCY_CHANCE = 80
}
hidden_effect = { # Hidden to prevent tooltip errors, also largely implied by the event content
scope:bp1_yearly_9019_lover = {
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9019_spouse
PREGNANCY_CHANCE = 50
}
}
}
if = {
limit = {
NOT = {
has_relation_lover = scope:bp1_yearly_9019_lover
}
}
set_relation_lover = { reason = lover_threesome_with_spouse target = scope:bp1_yearly_9019_lover involved_character = scope:bp1_yearly_9019_spouse }
}
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9019_spouse
OPINION = default_friend_opinion
REASON = friend_deviant_fun
}
create_character_memory = {
type = had_a_threesome_memory
participants = {
partner_1 = scope:bp1_yearly_9019_spouse
partner_2 = scope:bp1_yearly_9019_lover
}
}
stress_impact = {
chaste = major_stress_impact_gain
shy = major_stress_impact_gain
lustful = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = shy
}
}
}
}
option = { # Leave me and my new boyfriend alone!
name = bp1_yearly.9019.b
trigger = {
OR = {
has_trait = callous
has_trait = arbitrary
has_trait = lustful
}
NOT = {
has_relation_lover = scope:bp1_yearly_9019_lover
}
}
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9019_lover
PREGNANCY_CHANCE = 50
}
set_relation_lover = { reason = lover_ignored_spouse target = scope:bp1_yearly_9019_lover involved_character = scope:bp1_yearly_9019_spouse }
progress_towards_rival_effect = {
REASON = rival_rejected_marital_bed
CHARACTER = scope:bp1_yearly_9019_spouse
OPINION = default_rival_opinion
}
stress_impact = {
just = major_stress_impact_gain
compassionate = major_stress_impact_gain
family_first = major_stress_impact_gain
lustful = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = just
has_trait = compassionate
has_trait = family_first
}
}
}
}
option = { # Refuse the threesom
name = bp1_yearly.9019.c
if = { # Lose piety if in gay-accepting Carnal Exaltation faith
limit = {
faith = {
has_doctrine_parameter = homosexuality_accepted
trait_is_virtue = lustful
}
}
add_piety = minor_piety_loss
}
else = {
add_piety = medium_piety_gain
}
reverse_add_opinion = {
target = scope:bp1_yearly_9019_spouse
modifier = hurt_opinion
opinion = -25
}
stress_impact = {
lustful = massive_stress_impact_gain
family_first = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = family_first
}
}
modifier = {
factor = 2
has_trait = chaste
}
modifier = {
factor = 2
NOT = { faith = { has_doctrine_parameter = homosexuality_accepted } }
has_trait = zealous
}
}
}
after = {
scope:bp1_yearly_9019_lover = {
remove_character_flag = is_naked
}
}
}
#################################################
# Spouse wants to do something kinky #
# by James Beaumont #
# 9020 #
#################################################
bp1_yearly.9020 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9020.t
desc = {
desc = bp1_yearly.9020.desc.intro
random_valid = {
desc = bp1_yearly.9020.desc.goat
desc = bp1_yearly.9020.desc.vegetable
desc = bp1_yearly.9020.desc.bondage
desc = bp1_yearly.9020.desc.feet
triggered_desc = {
trigger = {
exists = faith.religious_head
NOT = {
faith.religious_head = root
faith.religious_head = scope:bp1_yearly_9020_spouse
}
}
desc = bp1_yearly.9020.desc.hof
}
}
desc = bp1_yearly.9020.desc.outro
}
theme = family
override_background = bedchamber
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:bp1_yearly_9020_spouse
animation = flirtation
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
is_eunuch_trigger = no
NOR = { # Can have sex and isn't already pregnant
has_trait = celibate
has_trait = pregnant
}
any_spouse = {
is_available_at_peace_ai_adult = yes
is_eunuch_trigger = no
NOR = {
has_trait = chaste
has_trait = celibate
has_trait = pregnant
}
is_deviant_trigger = yes
# Zealous spouses generally shouldn't want to do this if their faith shuns it
NAND = {
OR = {
faith = { has_doctrine_parameter = deviancy_illegal }
faith = { has_doctrine_parameter = deviancy_shunned }
}
has_trait = zealous
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_spouse = {
limit = {
is_eunuch_trigger = no
NOR = {
has_trait = chaste
has_trait = celibate
has_trait = pregnant
}
is_deviant_trigger = yes
# Zealous spouses generally shouldn't want to do this if their faith shuns it
NAND = {
OR = {
faith = { has_doctrine_parameter = deviancy_illegal }
faith = { has_doctrine_parameter = deviancy_shunned }
}
has_trait = zealous
}
}
if = {
limit = {
any_secret = {
type = secret_deviant
}
}
random_secret = {
type = secret_deviant
reveal_to = root
save_scope_as = bp1_yearly_9020_spouse_secret
}
}
save_scope_as = bp1_yearly_9020_spouse
}
scope:bp1_yearly_9020_spouse = {
add_character_flag = is_naked
}
}
option = { # I would do anything for love
name = bp1_yearly.9020.a
give_deviant_secret_or_trait_effect = yes
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9020_spouse
PREGNANCY_CHANCE = 75
}
progress_towards_lover_effect = {
CHARACTER = scope:bp1_yearly_9020_spouse
REASON = lover_spouse_indulged
OPINION = default_lover_opinion
}
stress_impact = {
chaste = major_stress_impact_gain
shy = major_stress_impact_gain
lustful = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = shy
}
}
}
}
option = { # but I won't do that
name = bp1_yearly.9020.b
reverse_add_opinion = {
target = scope:bp1_yearly_9020_spouse
modifier = disappointed_opinion
opinion = -25
}
stress_impact = {
lustful = massive_stress_impact_gain
family_first = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = family_first
}
}
modifier = {
factor = 2
has_trait = chaste
}
}
}
option = { # I would report you to the authorities for love
name = bp1_yearly.9020.c
trigger = {
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = deviant GENDER_CHARACTER = root }
exists = scope:bp1_yearly_9020_spouse_secret
}
scope:bp1_yearly_9020_spouse_secret = {
expose_secret = root
}
progress_towards_rival_effect = {
REASON = rival_accused_of_perversion
CHARACTER = scope:bp1_yearly_9020_spouse
OPINION = default_rival_opinion
}
stress_impact = {
lustful = massive_stress_impact_gain
family_first = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = family_first
}
}
modifier = {
factor = 2
has_trait = chaste
}
modifier = {
factor = 2
NOT = { faith = { has_doctrine_parameter = homosexuality_accepted } }
has_trait = zealous
}
}
}
after = {
scope:bp1_yearly_9020_spouse = {
remove_character_flag = is_naked
}
}
}
#################################################
# Rival spouse is good in the bedroom #
# by James Beaumont #
# 9021 #
#################################################
bp1_yearly.9021 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9021.t
desc = bp1_yearly.9021.desc
theme = family
override_background = bedchamber
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:bp1_yearly_9021_rival_spouse
animation = rage
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
is_eunuch_trigger = no
NOR = { # Can have sex and isn't already pregnant
has_trait = celibate
has_trait = pregnant
}
any_spouse = {
is_available_at_peace_ai_adult = yes
is_eunuch_trigger = no
NOR = {
has_trait = chaste
has_trait = celibate
has_trait = pregnant
}
has_relation_rival = root
NOT = { has_relation_lover = root }
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_spouse = {
limit = {
is_available_at_peace_ai_adult = yes
is_eunuch_trigger = no
NOR = {
has_trait = chaste
has_trait = celibate
has_trait = pregnant
}
has_relation_rival = root
}
save_scope_as = bp1_yearly_9021_rival_spouse
}
had_sex_with_effect = {
CHARACTER = scope:bp1_yearly_9021_rival_spouse
PREGNANCY_CHANCE = 50
}
add_character_flag = is_naked
scope:bp1_yearly_9021_rival_spouse = {
add_character_flag = is_naked
}
}
option = { # We should do that again!
name = bp1_yearly.9021.a
set_relation_lover = { reason = lover_rival_spouse target = scope:bp1_yearly_9021_rival_spouse }
stress_impact = {
base = major_stress_impact_gain
chaste = major_stress_impact_gain
shy = major_stress_impact_gain
lustful = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = shy
}
}
}
}
option = { # Try not to think about it too hard
name = bp1_yearly.9021.b
reverse_add_opinion = {
target = scope:bp1_yearly_9021_rival_spouse
modifier = disappointed_opinion
opinion = -5
}
stress_impact = {
lustful = massive_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = lustful
}
}
}
after = {
remove_character_flag = is_naked
scope:bp1_yearly_9021_rival_spouse = {
remove_character_flag = is_naked
}
}
}
#################################################
# Friend holds an intervention #
# by James Beaumont #
# 9022 #
#################################################
bp1_yearly.9022 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9022.t
desc = {
desc = bp1_yearly.9022.desc.intro
first_valid = {
triggered_desc = {
trigger = {
has_trait = hashishiyah
}
desc = bp1_yearly.9022.desc.hashishiyah
}
triggered_desc = {
trigger = {
has_trait = drunkard
}
desc = bp1_yearly.9022.desc.drunkard
}
triggered_desc = {
trigger = {
has_trait = rakish
}
desc = bp1_yearly.9022.desc.rakish
}
triggered_desc = {
trigger = {
has_trait = comfort_eater
}
desc = bp1_yearly.9022.desc.comfort_eater
}
triggered_desc = {
trigger = {
has_trait = inappetetic
}
desc = bp1_yearly.9022.desc.inappetetic
}
triggered_desc = {
trigger = {
has_trait = flagellant
}
desc = bp1_yearly.9022.desc.flagellant
}
triggered_desc = {
trigger = {
has_trait = reclusive
}
desc = bp1_yearly.9022.desc.reclusive
}
}
desc = bp1_yearly.9022.desc.outro
}
theme = family
override_background = bedchamber
left_portrait = {
character = root
animation = paranoia
}
right_portrait = {
character = scope:bp1_yearly_9022_friend
animation = personality_compassionate
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
NOT = { has_character_flag = had_event_bp1_yearly_9022 }
OR = {
has_trait = hashishiyah
has_trait = drunkard
has_trait = rakish
has_trait = comfort_eater
has_trait = inappetetic
has_trait = flagellant
has_trait = reclusive
}
any_relation = {
type = friend
is_available_at_peace_ai_adult = yes
OR = {
has_trait = compassionate
ai_compassion >= 50
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_relation = {
type = friend
limit = {
is_available_at_peace_ai_adult = yes
OR = {
has_trait = compassionate
ai_compassion >= 50
}
}
save_scope_as = bp1_yearly_9022_friend
}
}
option = { # Attempt to give up your vice
name = bp1_yearly.9022.a
if = {
limit = { NOT = { has_relation_best_friend = scope:bp1_yearly_9022_friend } }
set_relation_best_friend = { reason = best_friend_help_overcome_vice copy_reason = friend target = scope:bp1_yearly_9022_friend }
}
duel = {
skill = diplomacy # A battle of willpower
target = scope:bp1_yearly_9022_friend
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
stress_impact = {
base = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
if = {
limit = { has_trait = hashishiyah }
remove_trait = hashishiyah
}
else_if = {
limit = { has_trait = drunkard }
remove_trait = drunkard
}
else_if = {
limit = { has_trait = rakish }
remove_trait = rakish
}
else_if = {
limit = { has_trait = comfort_eater }
remove_trait = comfort_eater
}
else_if = {
limit = { has_trait = inappetetic }
remove_trait = inappetetic
}
else_if = {
limit = { has_trait = flagellant }
remove_trait = flagellant
}
else_if = {
limit = { has_trait = reclusive }
remove_trait = reclusive
}
create_character_memory = {
type = lost_my_addiction_memory
participants = {
interventioner = scope:bp1_yearly_9022_friend
}
}
stress_impact = {
base = major_stress_impact_gain
arrogant = major_stress_impact_gain
}
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = arrogant
}
}
}
option = { # What is this? Get out!
name = bp1_yearly.9022.b
reverse_add_opinion = {
target = scope:bp1_yearly_9022_friend
modifier = disappointed_opinion
opinion = -25
}
stress_impact = {
humble = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = humble
}
}
}
after = {
add_character_flag = had_event_bp1_yearly_9022
}
}
#################################################
# You realise you don't speak the same language #
# by James Beaumont #
# 9023 #
#################################################
bp1_yearly.9023 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9023.t
desc = bp1_yearly.9023.desc
theme = diplomacy
override_background = feast
left_portrait = {
character = root
animation = beg
}
right_portrait = {
character = scope:bp1_yearly_9023_friend
animation = rage
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
NOT = { has_character_flag = had_event_bp1_yearly_9023 }
any_relation = {
type = friend
is_available_at_peace_ai_adult = yes
NOT = { knows_language_of_culture = root.culture }
NOT = { root = { knows_language_of_culture = prev.culture } }
NOT = {
any_scheme = {
type = learn_language
}
}
}
NOT = {
any_scheme = {
type = learn_language
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_relation = {
type = friend
limit = {
is_available_at_peace_ai_adult = yes
NOT = { knows_language_of_culture = root.culture }
NOT = { root = { knows_language_of_culture = prev.culture } }
}
save_scope_as = bp1_yearly_9023_friend
}
set_variable = {
name = wrong_language_friend
value = scope:bp1_yearly_9023_friend
}
}
option = { # Uhhhh... como te llamas?
name = bp1_yearly.9023.a
duel = {
skill = diplomacy
target = scope:bp1_yearly_9023_friend
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
reverse_add_opinion = {
target = scope:bp1_yearly_9023_friend
modifier = flattered_opinion
opinion = 5
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
progress_towards_rival_effect = {
REASON = rival_linguistic_mishap
CHARACTER = scope:bp1_yearly_9023_friend
OPINION = default_rival_opinion
}
}
}
stress_impact = {
diligent = major_stress_impact_gain
compassionate = major_stress_impact_gain
gregarious = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = diligent
has_trait = compassionate
has_trait = gregarious
has_trait = shy
}
}
}
}
option = { # Maybe I should learn their language
name = bp1_yearly.9023.b
start_scheme = {
type = learn_language
target_character = scope:bp1_yearly_9023_friend
}
stress_impact = {
lazy = major_stress_impact_gain
shy = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = shy
}
}
}
}
option = { # Maybe they should learn my language!
name = bp1_yearly.9023.c
trigger = {
has_trait = lazy
}
duel = {
skill = diplomacy
target = scope:bp1_yearly_9023_friend
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
scope:bp1_yearly_9023_friend = {
start_scheme = {
type = learn_language
target_character = root
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
progress_towards_rival_effect = {
REASON = rival_linguistic_request
CHARACTER = scope:bp1_yearly_9023_friend
OPINION = default_rival_opinion
}
}
}
stress_impact = {
diligent = major_stress_impact_gain
compassionate = major_stress_impact_gain
gregarious = major_stress_impact_gain
just = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 2
has_trait = lazy
}
}
}
after = {
add_character_flag = had_event_bp1_yearly_9023
}
}
#################################################
# A friend visits you while you're sick #
# by James Beaumont #
# 9024 #
#################################################
bp1_yearly.9024 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9024.t
desc = bp1_yearly.9024.desc
theme = diplomacy
override_background = feast
left_portrait = {
character = root
animation = sick
}
right_portrait = {
character = scope:bp1_yearly_9024_friend
animation = personality_compassionate
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
has_short_disease_trigger = yes
any_relation = {
type = friend
is_available_at_peace_ai_adult = yes
OR = {
has_trait = compassionate
has_trait = diligent
has_trait = trusting
}
}
NOT = {
has_character_modifier = bp1_sickness_being_doted_on
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_relation = {
type = friend
limit = {
is_available_at_peace_ai_adult = yes
OR = {
has_trait = compassionate
has_trait = diligent
has_trait = trusting
}
}
save_scope_as = bp1_yearly_9024_friend
}
}
option = { # Relax
name = bp1_yearly.9024.a
add_character_modifier = {
modifier = bp1_sickness_being_doted_on
years = 5
}
if = {
limit = {
NOR = {
has_trait = diligent
has_trait = paranoid
}
}
stress_impact = {
base = major_stress_impact_loss
}
}
stress_impact = {
shy = major_stress_impact_gain
diligent = major_stress_impact_gain
paranoid = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = diligent
has_trait = paranoid
}
}
}
}
option = { # Tell them to leave you alone
name = bp1_yearly.9024.b
trigger = {
OR = {
has_trait = diligent
has_trait = shy
has_trait = paranoid
}
}
progress_towards_rival_effect = {
REASON = rival_told_to_go_away
CHARACTER = scope:bp1_yearly_9024_friend
OPINION = default_rival_opinion
}
stress_impact = {
trusting = major_stress_impact_gain
lazy = major_stress_impact_gain
gregarious = major_stress_impact_gain
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = trusting
has_trait = lazy
has_trait = gregarious
has_trait = compassionate
}
}
}
}
}
#################################################
# You realise you hate your friend #
# by James Beaumont #
# 9025 #
#################################################
bp1_yearly.9025 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9025.t
desc = bp1_yearly.9025.desc
theme = friendly
left_portrait = {
character = root
animation = disapproval
}
right_portrait = {
character = scope:bp1_yearly_9025_friend
animation = happiness
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
exists = var:wrong_language_friend
has_relation_friend = var:wrong_language_friend
# You now know a common language
OR = {
knows_language_of_culture = var:wrong_language_friend.culture
var:wrong_language_friend = { knows_language_of_culture = root.culture }
}
var:wrong_language_friend = {
is_available_ai_adult = yes
}
# You have a reason to hate them
number_of_opposing_personality_traits = {
target = var:wrong_language_friend
value >= 1
}
}
weight_multiplier = {
base = 1
}
immediate = {
var:wrong_language_friend = {
save_scope_as = bp1_yearly_9025_friend
}
}
option = { # Wow, I hate this guy!
name = bp1_yearly.9025.a
downgrade_to_rival_effect = {
CHARACTER = scope:bp1_yearly_9025_friend
REASON = rival_better_understanding
}
stress_impact = {
gregarious = major_stress_impact_gain
trusting = major_stress_impact_gain
loyal = major_stress_impact_gain
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = trusting
#has_trait = loyal
has_trait = compassionate
}
}
}
}
option = { # Try to fix the relationship
name = bp1_yearly.9025.b
duel = {
skill = diplomacy
target = scope:bp1_yearly_9025_friend
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9025_friend
OPINION = default_friend_opinion
REASON = friend_fix_relationship_success
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
progress_towards_rival_effect = {
REASON = rival_fix_relationship_fail
CHARACTER = scope:bp1_yearly_9025_friend
OPINION = default_rival_opinion
}
}
}
stress_impact = {
base = major_stress_impact_gain
shy = major_stress_impact_gain
lazy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = lazy
has_trait = arrogant
}
}
}
}
after = { remove_variable = wrong_language_friend }
}
#################################################
# Totally not Marley's ghost #
# by James Beaumont #
# 9026 #
#################################################
bp1_yearly.9026 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9026.t
desc = {
desc = bp1_yearly.9026.desc.intro
first_valid = {
triggered_desc = {
trigger = {
any_secret = {
type = secret_murder
}
exists = scope:bp1_yearly_9026_murder_victim
}
desc = bp1_yearly.9026.desc.secret_murderer
}
triggered_desc = {
trigger = {
has_trait = murderer
exists = scope:bp1_yearly_9026_murder_victim
}
desc = bp1_yearly.9026.desc.murderer
}
triggered_desc = {
trigger = { exists = scope:bp1_yearly_9026_murder_victim }
desc = bp1_yearly.9026.desc.killer
}
# Traits should be in descending order of severity. These should largely be sins that are very directly harmful to others. Greedy, wrathful, etc should be high while lustful and gluttonous should be low.
# High impact sins
triggered_desc = {
trigger = {
has_trait = greedy
faith = { trait_is_sin = greedy }
}
desc = bp1_yearly.9026.desc.greedy
}
triggered_desc = {
trigger = {
has_trait = wrathful
faith = { trait_is_sin = wrathful }
}
desc = bp1_yearly.9026.desc.wrathful
}
triggered_desc = {
trigger = {
has_trait = torturer
faith = { trait_is_sin = deceitful } # We don't make lifestyle traits sins/virtues so best to check an adjacent trait
}
desc = bp1_yearly.9026.desc.torturer
}
triggered_desc = {
trigger = {
has_trait = arbitrary
faith = { trait_is_sin = arbitrary }
}
desc = bp1_yearly.9026.desc.arbitrary
}
triggered_desc = { # Let's assume callous is basically always bad
trigger = {
has_trait = callous
NOT = { faith = { trait_is_virtue = callous } }
}
desc = bp1_yearly.9026.desc.callous
}
triggered_desc = { # Same for sadistic
trigger = {
has_trait = sadistic
NOT = { faith = { trait_is_virtue = sadistic } }
}
desc = bp1_yearly.9026.desc.sadistic
}
triggered_desc = {
trigger = {
has_trait = vengeful
faith = { trait_is_sin = vengeful }
}
desc = bp1_yearly.9026.desc.vengeful
}
# Medium impact sins
triggered_desc = {
trigger = {
has_trait = deceitful
faith = { trait_is_sin = deceitful }
}
desc = bp1_yearly.9026.desc.deceitful
}
triggered_desc = {
trigger = {
has_trait = impatient
faith = { trait_is_sin = impatient }
}
desc = bp1_yearly.9026.desc.impatient
}
triggered_desc = {
trigger = {
has_trait = arrogant
faith = { trait_is_sin = arrogant }
}
desc = bp1_yearly.9026.desc.arrogant
}
triggered_desc = {
trigger = {
has_trait = craven
faith = { trait_is_sin = craven }
}
desc = bp1_yearly.9026.desc.craven
}
triggered_desc = {
trigger = {
has_trait = ambitious
faith = { trait_is_sin = ambitious }
}
desc = bp1_yearly.9026.desc.ambitious
}
triggered_desc = {
trigger = {
has_trait = lazy
faith = { trait_is_sin = lazy }
}
desc = bp1_yearly.9026.desc.lazy
}
# Low impact sins
triggered_desc = {
trigger = {
has_trait = cynical
faith = { trait_is_sin = cynical }
}
desc = bp1_yearly.9026.desc.cynical
}
triggered_desc = {
trigger = {
has_trait = shy
faith = { trait_is_sin = shy }
}
desc = bp1_yearly.9026.desc.shy
}
triggered_desc = {
trigger = {
has_trait = gluttonous
faith = { trait_is_sin = gluttonous }
}
desc = bp1_yearly.9026.desc.gluttonous
}
triggered_desc = {
trigger = {
has_trait = lustful
faith = { trait_is_sin = lustful }
}
desc = bp1_yearly.9026.desc.lustful
}
triggered_desc = {
trigger = {
has_trait = temperate
faith = { trait_is_sin = temperate }
}
desc = bp1_yearly.9026.desc.temperate
}
triggered_desc = {
trigger = {
has_trait = chaste
faith = { trait_is_sin = chaste }
}
desc = bp1_yearly.9026.desc.chaste
}
triggered_desc = {
trigger = {
has_trait = honest
faith = { trait_is_sin = honest }
}
desc = bp1_yearly.9026.desc.honest
}
desc = bp1_yearly.9026.desc.fallback
}
desc = bp1_yearly.9026.desc.outro
}
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = lantern
outfit_tags = { nightgown }
}
right_portrait = {
character = scope:bp1_yearly_9026_dead_friend
animation = laugh
animate_if_dead = yes
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_at_peace_adult = yes
NOT = { has_character_flag = had_event_bp1_yearly_9026 }
OR = {
any_killed_character = { }
num_sinful_traits >= 1
AND = {
has_trait = sadistic
NOT = { faith = { trait_is_virtue = sadistic } }
}
AND = {
has_trait = callous
NOT = { faith = { trait_is_virtue = callous } }
}
}
any_memory = {
memory_type = friend_died
}
}
immediate = {
if = {
limit = {
any_killed_character = { }
}
if = {
limit = {
any_secret = {
type = secret_murder
}
}
random_secret = {
type = secret_murder
secret_target = {
save_scope_as = bp1_yearly_9026_murder_victim
}
}
}
else_if = {
limit = {
has_trait = murderer
any_killed_character = {
death_reason = death_murder
}
}
random_killed_character = {
limit = {
death_reason = death_murder
}
save_scope_as = bp1_yearly_9026_murder_victim
}
}
else = {
random_killed_character = {
save_scope_as = bp1_yearly_9026_murder_victim
}
}
}
random_memory = {
memory_type = friend_died
limit = {
exists = memory_participant:dead_relation
}
save_scope_as = dead_friend_memory
memory_participant:dead_relation = { save_scope_as = bp1_yearly_9026_dead_friend }
}
create_story = story_being_visited_by_angry_ghosts
random_owned_story = {
type = story_being_visited_by_angry_ghosts
set_variable = {
name = first_ghost
value = scope:bp1_yearly_9026_dead_friend
}
set_variable = {
name = good_deeds
value = 0
}
save_scope_as = marley_story_cycle_scope
}
create_character_memory = {
type = haunted_by_a_friend_memory
participants = {
dead_relation = scope:bp1_yearly_9026_dead_friend
}
}
}
option = { # I repent! I repent!
name = bp1_yearly.9026.a
add_piety = medium_piety_gain
bp1_yearly_9026_determine_sin_and_virtue = yes
stress_impact = {
base = major_stress_impact_gain
arrogant = major_stress_impact_gain
cynical = major_stress_impact_gain
zealous = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = cynical
}
}
}
}
option = { # There's more of gravy than of grave about you!
name = bp1_yearly.9026.b
duel = {
skill = learning
target = scope:bp1_yearly_9026_dead_friend
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
stress_impact = {
cynical = major_stress_impact_loss
}
scope:marley_story_cycle_scope = { end_story = yes }
custom_tooltip = end_marley_ghost_story_tt
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
add_piety = medium_piety_loss
bp1_yearly_9026_determine_sin_and_virtue = yes
}
}
stress_impact = {
base = minor_stress_impact_gain
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = just
has_trait = compassionate
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9026 }
}
# Your act of repentance: generosity
bp1_yearly.9027 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9027.t
desc = {
desc = bp1_yearly.9027.desc.intro
first_valid = {
triggered_desc = {
trigger = {
has_trait = greedy
faith = { trait_is_sin = greedy }
}
desc = bp1_yearly.9027.desc.greedy
}
desc = bp1_yearly.9027.desc.fallback
}
desc = bp1_yearly.9027.desc.outro
}
theme = stewardship
override_background = market
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:bp1_yearly_9027_peasant_begger
animation = beg
}
trigger = {
is_available_at_peace_adult = yes
has_character_flag = had_event_bp1_yearly_9026
NOT = { has_character_flag = had_event_bp1_yearly_9027 }
}
immediate = {
create_character = {
template = generic_peasant_character
location = root.capital_province
save_scope_as = bp1_yearly_9027_peasant_begger
}
random_owned_story = {
type = story_being_visited_by_angry_ghosts
var:first_ghost = {
save_scope_as = bp1_yearly_9027_dead_friend
}
}
}
option = { # Stay true to your repentance
name = bp1_yearly.9027.a
remove_short_term_gold = medium_gold_value
add_piety = medium_piety_gain
root.capital_county = {
add_county_modifier = {
modifier = invested_in_province_modifier
years = 5
}
}
# For determining final event
bp1_increase_good_deeds = yes
stress_impact = {
arrogant = medium_stress_impact_gain
greedy = major_stress_impact_gain
cynical = major_stress_impact_gain
zealous = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
short_term_gold < medium_gold_value
factor = 0
}
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = greedy
has_trait = cynical
}
}
}
}
option = { # Take advantage of their desperate situation
name = bp1_yearly.9027.b
trigger = {
OR = {
has_trait = greedy
has_trait = callous
}
}
remove_short_term_gold = minor_gold_value
add_piety = medium_piety_loss
root.capital_county = {
add_county_modifier = {
modifier = exploitative_lord_modifier
years = 5
}
}
# For determining final event
bp1_decrease_good_deeds = yes
stress_impact = {
just = medium_stress_impact_gain
humble = medium_stress_impact_gain
compassionate = major_stress_impact_gain
generous = massive_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
short_term_gold < minor_gold_value
factor = 0
}
modifier = {
factor = 0
OR = {
has_trait = just
has_trait = compassionate
has_trait = humble
has_trait = generous
}
}
}
}
option = { # You want HOW much??
name = bp1_yearly.9027.c
add_piety = medium_piety_loss
stress_impact = {
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
generous = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = just
has_trait = compassionate
has_trait = humble
has_trait = generous
}
}
}
}
after = {
add_character_flag = had_event_bp1_yearly_9027
scope:bp1_yearly_9027_peasant_begger = {
silent_disappearance_effect = yes
}
}
}
# Ghostly visit: rival
bp1_yearly.9028 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9028.t
desc = {
desc = bp1_yearly.9028.desc.intro
first_valid = {
triggered_desc = {
trigger = {
any_killed_character = {
this = scope:bp1_yearly_9028_dead_rival
}
}
desc = bp1_yearly.9028.desc.murderer
}
desc = bp1_yearly.9028.desc.murderer.fallback
}
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
has_trait = vengeful
}
}
desc = bp1_yearly.9028.desc.callous
}
desc = bp1_yearly.9028.desc.fallback
}
desc = bp1_yearly.9028.desc.outro
}
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = fear
outfit_tags = { nightgown }
}
right_portrait = {
character = scope:bp1_yearly_9028_dead_rival
animation = anger
animate_if_dead = yes
}
trigger = {
is_available_at_peace_adult = yes
has_character_flag = had_event_bp1_yearly_9027
NOT = { has_character_flag = had_event_bp1_yearly_9028 }
OR = {
any_memory = {
memory_type = rival_died
memory_participant:dead_relation = { any_close_or_extended_family_member = { is_alive = yes } }
}
any_memory = {
memory_type = successful_murder
memory_participant:victim = { any_close_or_extended_family_member = { is_alive = yes } }
}
}
any_owned_story = {
type = story_being_visited_by_angry_ghosts
NOT = { exists = var:second_ghost }
}
}
immediate = {
if = {
limit = {
any_memory = {
memory_type = rival_died
memory_participant:dead_relation = { any_close_or_extended_family_member = { is_alive = yes } }
}
}
random_memory = {
memory_type = rival_died
save_scope_as = dead_rival_memory
memory_participant:dead_relation = { save_scope_as = bp1_yearly_9028_dead_rival }
}
}
else_if = {
limit = {
any_memory = {
memory_type = successful_murder
memory_participant:victim = { any_close_or_extended_family_member = { is_alive = yes } }
}
}
random_memory = {
memory_type = successful_murder
save_scope_as = dead_rival_memory
memory_participant:victim = { save_scope_as = bp1_yearly_9028_dead_rival }
}
}
random_owned_story = {
type = story_being_visited_by_angry_ghosts
set_variable = {
name = second_ghost
value = scope:bp1_yearly_9028_dead_rival
}
}
create_character_memory = {
type = haunted_by_a_rival_memory
participants = {
dead_relation = scope:bp1_yearly_9028_dead_rival
}
}
}
option = { # I repent! I repent!
name = bp1_yearly.9028.a
add_piety = medium_piety_gain
add_character_flag = had_event_bp1_promised_to_ammend_rivalry
bp1_increase_good_deeds = yes
stress_impact = {
arrogant = medium_stress_impact_gain
vengeful = major_stress_impact_gain
zealous = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = vengeful
has_trait = cynical
}
}
}
}
option = { # Not a chance!
name = bp1_yearly.9028.b
bp1_decrease_good_deeds = yes
stress_impact = {
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = just
has_trait = compassionate
has_trait = forgiving
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9028 }
}
# Ghostly visit: parent
bp1_yearly.9029 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9029.t
desc = {
desc = bp1_yearly.9029.desc.intro
first_valid = {
triggered_desc = {
trigger = {
any_sibling = {
any_parent = { this = scope:bp1_yearly_9029_dead_parent }
has_relation_rival = root
}
}
desc = bp1_yearly.9029.desc.rival_sibling
}
triggered_desc = {
trigger = {
any_sibling = {
has_relation_rival = root
}
}
desc = bp1_yearly.9029.desc.rival_sibling_unrelated
}
triggered_desc = {
trigger = {
any_relation = {
type = rival
}
}
desc = bp1_yearly.9029.desc.rival
}
}
desc = bp1_yearly.9029.desc.outro
}
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = shock
outfit_tags = { nightgown }
}
right_portrait = {
character = scope:bp1_yearly_9029_dead_parent
animation = personality_compassionate
animate_if_dead = yes
}
trigger = {
is_available_at_peace_adult = yes
has_character_flag = had_event_bp1_yearly_9027
NOT = { has_character_flag = had_event_bp1_yearly_9029 }
any_parent = {
even_if_dead = yes
is_alive = no
}
any_relation = {
type = rival
}
any_owned_story = {
type = story_being_visited_by_angry_ghosts
NOT = { exists = var:second_ghost }
}
}
immediate = {
random_parent = {
even_if_dead = yes
limit = {
is_alive = no
}
save_scope_as = bp1_yearly_9029_dead_parent
}
if = {
limit = {
any_sibling = {
any_parent = { this = scope:bp1_yearly_9029_dead_parent }
has_relation_rival = root
}
}
random_sibling = {
limit = {
any_parent = { this = scope:bp1_yearly_9029_dead_parent }
has_relation_rival = root
}
save_scope_as = bp1_yearly_9029_rival
}
}
else_if = {
limit = {
any_sibling = {
has_relation_rival = root
}
}
random_sibling = {
limit = {
has_relation_rival = root
}
save_scope_as = bp1_yearly_9029_rival
}
}
else_if = {
limit = {
any_relation = {
type = rival
}
}
random_relation = {
type = rival
save_scope_as = bp1_yearly_9029_rival
}
}
create_character_memory = {
type = haunted_by_parent_memory
participants = {
dead_relation = scope:bp1_yearly_9029_dead_parent
}
}
}
option = { # I'll go be nice to my rival
name = bp1_yearly.9029.a
add_piety = medium_piety_gain
random_owned_story = {
type = story_being_visited_by_angry_ghosts
set_variable = {
name = second_ghost
value = scope:bp1_yearly_9029_dead_parent
}
set_variable = {
name = rival_ammends
value = scope:bp1_yearly_9029_rival
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
vengeful = major_stress_impact_gain
zealous = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = vengeful
}
}
}
}
option = { # Not a chance!
name = bp1_yearly.9029.b
random_owned_story = {
type = story_being_visited_by_angry_ghosts
set_variable = {
name = second_ghost
value = scope:bp1_yearly_9029_dead_parent
}
}
bp1_decrease_good_deeds = yes
stress_impact = {
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = just
has_trait = compassionate
has_trait = forgiving
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9029 }
}
# Ghostly visit: dead friend again
bp1_yearly.9030 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9030.t
desc = {
desc = bp1_yearly.9030.desc.intro
first_valid = {
triggered_desc = {
trigger = {
#Check Pilgrimage triggers
is_available_adult = yes
is_at_war = no
is_landed = yes
faith = {
NOT = { has_doctrine_parameter = forbidden_from_pilgrimage }
any_holy_site = { exists = this }
}
#Check if all of your holy sites are on cooldown
trigger_if = {
limit = {
any_memory = {
has_variable = pilgrimage_destination
memory_age_years < 5
}
}
faith = {
any_holy_site = {
save_temporary_scope_as = site_check
NOT = {
root = {
any_memory = {
has_variable = pilgrimage_destination
memory_age_years < 5
var:pilgrimage_destination.barony = scope:site_check
}
}
}
add_to_temporary_list = holy_sites_not_on_cooldown
}
}
any_in_list = {
list = holy_sites_not_on_cooldown
count > 0
}
}
trigger_else = { always = yes }
}
desc = bp1_yearly.9030.desc.pilgrimage
}
desc = bp1_yearly.9030.desc.fallback
}
}
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = beg
outfit_tags = { nightgown }
}
right_portrait = {
character = scope:bp1_yearly_9026_dead_friend
animation = anger
animate_if_dead = yes
}
trigger = {
is_available_at_peace_adult = yes
has_character_flag = had_event_bp1_yearly_9027
NOT = { has_character_flag = had_event_bp1_yearly_9030 }
any_owned_story = {
type = story_being_visited_by_angry_ghosts
NOT = { exists = var:second_ghost }
}
}
immediate = {
random_owned_story = {
type = story_being_visited_by_angry_ghosts
var:first_ghost = { save_scope_as = bp1_yearly_9026_dead_friend }
set_variable = {
name = second_ghost
value = scope:bp1_yearly_9026_dead_friend
}
}
}
option = { # I'll go on pilgrimage/become a big charity guy
name = bp1_yearly.9030.a
if = {
limit = {
#Only one modifier for _you_
NOR = {
has_character_modifier = ghost_pilgrimage_promised_modifier
has_character_modifier = hajj_promised_modifier
has_character_modifier = pilgrimage_promised_modifier
}
#Check Pilgrimage triggers
is_available_adult = yes
is_at_war = no
is_landed = yes
faith = {
NOT = { has_doctrine_parameter = forbidden_from_pilgrimage }
any_holy_site = { exists = this }
}
#Check if all of your holy sites are on cooldown
trigger_if = {
limit = {
any_memory = {
has_variable = pilgrimage_destination
memory_age_years < 5
}
}
faith = {
any_holy_site = {
save_temporary_scope_as = site_check
NOT = {
root = {
any_memory = {
has_variable = pilgrimage_destination
memory_age_years < 5
var:pilgrimage_destination.barony = scope:site_check
}
}
}
add_to_temporary_list = holy_sites_not_on_cooldown
}
}
any_in_list = {
list = holy_sites_not_on_cooldown
count > 0
}
}
trigger_else = { always = yes }
}
custom_tooltip = {
text = bp1_yearly.9030.a.tt_pilgrimage
add_character_modifier = ghost_pilgrimage_promised_modifier
}
}
else = {
add_trait = profligate
remove_short_term_gold = medium_gold_value
add_stress = medium_stress_loss
}
bp1_increase_good_deeds = yes
stress_impact = {
arrogant = medium_stress_impact_gain
vengeful = major_stress_impact_gain
zealous = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = vengeful
}
}
}
}
option = { # Not a chance!
name = bp1_yearly.9030.b
bp1_decrease_good_deeds = yes
stress_impact = {
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = just
has_trait = compassionate
has_trait = forgiving
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9030 }
}
# Redemption: making ammends with rival's family
bp1_yearly.9031 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9031.t
desc = {
desc = bp1_yearly.9031.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9031_rival_family = {
OR = {
has_trait = sadistic
has_trait = torturer
has_trait = flagellant
}
}
}
desc = bp1_yearly.9031.desc.flagellant
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9031_rival_family = {
OR = {
has_trait = vengeful
has_trait = just
has_trait = zealous
}
}
}
desc = bp1_yearly.9031.desc.debate
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9031_rival_family = {
OR = {
has_trait = lazy
has_trait = arbitrary
}
}
}
desc = bp1_yearly.9031.desc.cleanup
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9031_rival_family = {
has_trait = forgiving
}
}
desc = bp1_yearly.9031.desc.unconditional
}
desc = bp1_yearly.9031.desc.fallback
}
}
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = beg
}
right_portrait = {
character = scope:bp1_yearly_9031_rival_family
animation = anger
}
trigger = {
is_available_at_peace_adult = yes
has_character_flag = had_event_bp1_yearly_9028
any_owned_story = {
type = story_being_visited_by_angry_ghosts
exists = var:second_ghost
var:second_ghost = {
any_close_or_extended_family_member = { }
}
}
has_character_flag = had_event_bp1_promised_to_ammend_rivalry
}
immediate = {
random_owned_story = {
type = story_being_visited_by_angry_ghosts
var:second_ghost = {
save_scope_as = bp1_yearly_9031_rival
random_close_or_extended_family_member = {
save_scope_as = bp1_yearly_9031_rival_family
}
}
}
}
option = { # Grit my teeth and apologise
name = {
trigger = {
scope:bp1_yearly_9031_rival_family = {
has_trait = forgiving
}
}
text = bp1_yearly.9031.a.forgiven
}
name = bp1_yearly.9031.a
bp1_increase_good_deeds = yes
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9031_rival_family
OPINION = default_friend_opinion
REASON = friend_forgiven_transgression
}
if = {
limit = {
scope:bp1_yearly_9031_rival_family = {
OR = {
has_trait = sadistic
has_trait = torturer
has_trait = flagellant
}
}
}
increase_wounds_effect = { REASON = whipping }
}
else_if = {
limit = {
scope:bp1_yearly_9031_rival_family = {
OR = {
has_trait = vengeful
has_trait = just
has_trait = zealous
}
}
}
duel = {
skill = learning
target = scope:bp1_yearly_9031_rival_family
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
add_piety = medium_piety_gain
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9031_rival_family
OPINION = default_friend_opinion
REASON = friend_debate_win
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
add_piety = medium_piety_loss
}
}
}
else_if = {
limit = {
scope:bp1_yearly_9031_rival_family = {
NOT = { has_trait = forgiving }
}
NOT = { has_trait = humble }
}
add_prestige = medium_prestige_loss
}
stress_impact = {
base = medium_stress_impact_loss
arrogant = medium_stress_impact_gain
vengeful = major_stress_impact_gain
zealous = minor_stress_impact_loss
forgiving = medium_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = vengeful
}
}
}
}
option = { # I will not grovel!
name = {
trigger = {
scope:bp1_yearly_9031_rival_family = {
has_trait = forgiving
}
}
text = bp1_yearly.9031.b.forgiven
}
name = bp1_yearly.9031.b
bp1_decrease_good_deeds = yes
progress_towards_rival_effect = {
REASON = rival_not_grovel
CHARACTER = scope:bp1_yearly_9031_rival_family
OPINION = default_rival_opinion
}
stress_impact = {
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = just
has_trait = compassionate
has_trait = forgiving
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9031 }
}
# Redemption: making ammends with rival
bp1_yearly.9032 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9032.t
desc = bp1_yearly.9032.desc
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = beg
}
right_portrait = {
character = scope:bp1_yearly_9032_rival
animation = anger
}
trigger = {
is_available_at_peace_adult = yes
has_character_flag = had_event_bp1_yearly_9028
any_owned_story = {
type = story_being_visited_by_angry_ghosts
exists = var:second_ghost
exists = var:rival_ammends
}
}
immediate = {
random_owned_story = {
type = story_being_visited_by_angry_ghosts
var:rival_ammends = {
save_scope_as = bp1_yearly_9032_rival
}
}
}
option = { # Grit my teeth and apologise
name = bp1_yearly.9032.a
bp1_increase_good_deeds = yes
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9032_rival
OPINION = default_friend_opinion
REASON = friend_apologise
}
stress_impact = {
base = medium_stress_impact_loss
arrogant = medium_stress_impact_gain
vengeful = major_stress_impact_gain
zealous = minor_stress_impact_loss
forgiving = medium_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = arrogant
has_trait = vengeful
}
}
}
}
option = { # I will not grovel!
name = bp1_yearly.9032.b
bp1_decrease_good_deeds = yes
progress_towards_rival_effect = {
REASON = rival_not_grovel
CHARACTER = scope:bp1_yearly_9032_rival
OPINION = default_rival_opinion
}
scope:bp1_yearly_9032_rival = {
increase_wounds_effect = { REASON = fight }
}
stress_impact = {
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = zealous
has_trait = just
has_trait = compassionate
has_trait = forgiving
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9032 }
}
# Ending event, first ghost tells you how you did
bp1_yearly.9033 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9033.t
desc = {
desc = bp1_yearly.9033.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:ghost_story_scope = {
var:good_deeds >= 1
}
}
desc = bp1_yearly.9033.desc.did_well
}
triggered_desc = {
trigger = {
scope:ghost_story_scope = {
var:good_deeds <= 0
}
}
desc = bp1_yearly.9033.desc.did_bad
}
desc = bp1_yearly.9033.desc.did_okay
}
desc = bp1_yearly.9033.desc.outro
}
theme = skull
override_background = corridor_night
left_portrait = {
character = root
animation = beg
outfit_tags = { nightgown }
}
right_portrait = {
character = scope:bp1_yearly_9026_dead_friend
triggered_animation = {
trigger = {
scope:ghost_story_scope = {
var:good_deeds <= 0
}
}
animation = anger
}
triggered_animation = {
trigger = {
scope:ghost_story_scope = {
var:good_deeds > 0
}
}
animation = personality_compassionate
}
animate_if_dead = yes
}
trigger = {
is_available_at_peace_adult = yes
OR = {
has_character_flag = had_event_bp1_yearly_9030
has_character_flag = had_event_bp1_yearly_9031
has_character_flag = had_event_bp1_yearly_9032
}
any_owned_story = {
type = story_being_visited_by_angry_ghosts
exists = var:second_ghost
}
}
immediate = {
random_owned_story = {
type = story_being_visited_by_angry_ghosts
save_scope_as = ghost_story_scope
var:first_ghost = { save_scope_as = bp1_yearly_9026_dead_friend }
}
}
option = { # I did it!
name = bp1_yearly.9033.a
trigger = {
scope:ghost_story_scope = {
var:good_deeds > 0
}
}
add_piety = medium_piety_gain
stress_impact = {
base = massive_stress_impact_loss
cynical = medium_stress_impact_gain # Offset if you're cynical; you believe it less
}
}
option = { # I failed
name = bp1_yearly.9033.b
trigger = {
scope:ghost_story_scope = {
var:good_deeds <= 0
}
}
add_piety = medium_piety_loss
stress_impact = {
zealous = major_stress_impact_gain
just = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
humble = medium_stress_impact_gain
forgiving = major_stress_impact_gain
}
}
option = { # I will live every day like it's spooky ghost day!
name = bp1_yearly.9033.c
trigger = {
scope:ghost_story_scope = {
var:good_deeds > 1
}
}
add_piety = major_piety_gain
if = {
limit = {
any_owned_story = {
type = story_being_visited_by_angry_ghosts
var:trait_to_gain = 1
}
}
if = {
limit = { has_trait = greedy }
remove_trait = greedy
}
add_trait = generous
}
else_if = {
limit = {
any_owned_story = {
type = story_being_visited_by_angry_ghosts
var:trait_to_gain = 2
}
}
if = {
limit = { has_trait = vengeful }
remove_trait = vengeful
}
add_trait = forgiving
}
else_if = {
limit = {
any_owned_story = {
type = story_being_visited_by_angry_ghosts
var:trait_to_gain = 3
}
}
if = {
limit = { has_trait = callous }
remove_trait = callous
}
if = {
limit = { has_trait = sadistic }
remove_trait = sadistic
}
add_trait = compassionate
}
stress_impact = {
base = medium_stress_impact_gain
cynical = medium_stress_impact_gain # Offset if you're cynical; you believe it less
}
}
after = { scope:ghost_story_scope ?= { end_story = yes } }
}
# End of ghostly visit chain
#####################################
# Watery bog witch #
# by James Beaumont #
# 9034 #
#####################################
bp1_yearly.9034 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9034.t
desc = {
desc = bp1_yearly.9034.desc.intro
#What text we display depends on the relationship to the child
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9034_witch = { has_trait = giant }
}
desc = bp1_yearly.9034.desc.giant
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9034_witch = { has_trait = hunchbacked }
}
desc = bp1_yearly.9034.desc.hunchbacked
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9034_witch = { has_trait = beauty_bad }
}
desc = bp1_yearly.9034.desc.beauty_bad
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9034_witch = { has_trait = albino }
}
desc = bp1_yearly.9034.desc.albino
}
triggered_desc = {
trigger = {
scope:bp1_yearly_9034_witch = { has_trait = scaly }
}
desc = bp1_yearly.9034.desc.scaly
}
}
desc = bp1_yearly.9034.desc.outro
}
theme = witchcraft
override_background = wilderness_wetlands
left_portrait = {
character = root
animation = fear
}
lower_left_portrait = {
character = scope:bp1_yearly_9034_friend
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9034_witch
animation = rage
}
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
is_adult = no
OR = {
any_held_county = {
county_has_province_with_terrain = { terrain = wetlands }
}
location = { terrain = wetlands }
}
any_relation = {
type = friend
is_adult = no
is_available_ai = yes
}
any_relation = {
type = guardian
is_available_ai_adult = yes
}
}
weight_multiplier = {
base = 1
}
immediate = {
if = {
limit = {
any_held_county = {
county_has_province_with_terrain = { terrain = wetlands }
}
}
random_held_county = {
limit = {
county_has_province_with_terrain = { terrain = wetlands }
}
random_county_province = {
limit = { terrain = wetlands }
save_scope_as = bp1_yearly_9034_swampy_location
}
}
}
else = {
location = { save_scope_as = bp1_yearly_9034_swampy_location }
}
random_relation = {
type = friend
limit = {
is_adult = no
is_available_ai = yes
}
save_scope_as = bp1_yearly_9034_friend
}
random_relation = {
type = guardian
limit = {
is_available_ai_adult = yes
}
save_scope_as = bp1_yearly_9034_guardian
}
create_character = {
template = witchy_template
random_traits_list = {
count = 1
giant = {}
hunchbacked = {}
beauty_bad_1 = {}
beauty_bad_2 = {}
beauty_bad_3 = {}
albino = {}
scaly = {}
}
location = scope:bp1_yearly_9034_swampy_location
save_scope_as = bp1_yearly_9034_witch
}
}
option = { # Run from the horrifying bog witch!
name = bp1_yearly.9034.a
duel = {
skill = prowess
target = scope:bp1_yearly_9034_witch
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
send_interface_toast = {
title = 9034_escaped_witch
left_icon = root
right_icon = scope:bp1_yearly_9034_witch
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
send_interface_toast = {
title = 9034_failed_to_escape
left_icon = root
right_icon = scope:bp1_yearly_9034_witch
increase_wounds_no_death_effect = { REASON = duel }
}
}
}
create_character_memory = {
type = chased_by_bog_witch_memory
participants = {
witch = scope:bp1_yearly_9034_witch
}
}
scope:bp1_yearly_9034_witch = {
silent_disappearance_effect = yes
}
stress_impact = {
brave = medium_stress_impact_gain
rowdy = medium_stress_impact_gain
curious = minor_stress_impact_gain
}
}
option = { # Stand your ground like you're facing down a wolf
name = bp1_yearly.9034.b
custom_tooltip = {
text = bp1_yearly_9034_witchy_goodbad_tt
random_list = {
# The good witch of the bog
60 = {
modifier = {
factor = 0
has_trait = wrathful
}
modifier = {
factor = 2
OR = {
has_trait = honest
has_trait = generous
has_trait = forgiving
has_trait = calm
has_trait = patient
}
}
trigger_event = bp1_yearly.9035
}
# The wicked witch of the bog
40 = {
modifier = {
factor = 0
has_trait = compassionate
}
modifier = {
factor = 0.5
OR = {
has_trait = honest
has_trait = generous
has_trait = forgiving
has_trait = calm
has_trait = patient
}
}
trigger_event = bp1_yearly.9036
}
}
}
stress_impact = {
craven = massive_stress_impact_gain
pensive = major_stress_impact_gain
bossy = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
}
}
# Good witch event
bp1_yearly.9035 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9035.t
desc = bp1_yearly.9035.desc
theme = witchcraft
override_background = wilderness_wetlands
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9034_witch
animation = personality_forgiving
}
immediate = {
scope:bp1_yearly_9034_witch = {
add_trait = lifestyle_herbalist
}
if = {
limit = {
employs_court_position = court_physician_court_position
}
random_court_position_holder = {
type = court_physician_court_position
save_scope_as = current_physician
}
}
create_character_memory = {
type = met_a_nice_witch_memory
participants = {
witch = scope:bp1_yearly_9034_witch
}
}
}
option = { # Employ the witch as your physician
name = bp1_yearly.9035.a
add_courtier = scope:bp1_yearly_9034_witch
court_position_grant_effect = {
POS = court_physician
CANDIDATE = scope:bp1_yearly_9034_witch
EMPLOYER = root
}
stress_impact = {
pensive = major_stress_impact_gain
bossy = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
ai_chance = {
base = 30
modifier = {
factor = 0
OR = {
has_trait = pensive
has_trait = bossy
has_trait = zealous
}
}
modifier = {
factor = 0
employs_court_position = court_physician_court_position
}
}
}
option = { # Teach me how to witch
name = bp1_yearly.9035.b
trigger = { # Only players should be able to override their guardian
is_ai = no
}
add_courtier = scope:bp1_yearly_9034_witch
give_witch_secret_or_trait_effect = yes
set_relation_guardian = scope:bp1_yearly_9034_witch
set_relation_friend = { reason = friend_deviant_fun target = scope:bp1_yearly_9034_witch }
stress_impact = {
pensive = major_stress_impact_gain
bossy = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
}
option = { # kbye
name = bp1_yearly.9035.c
scope:bp1_yearly_9034_witch = {
silent_disappearance_effect = yes
}
ai_chance = {
base = 30
modifier = {
factor = 0
NOT = { employs_court_position = court_physician_court_position }
}
}
}
}
# Evil witch event
bp1_yearly.9036 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9036.t
desc = bp1_yearly.9036.desc
theme = witchcraft
override_background = wilderness_wetlands
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9034_witch
animation = rage
}
option = { # Guardian, help me!
name = bp1_yearly.9036.a
scope:bp1_yearly_9034_guardian = {
duel = {
skill = prowess
target = scope:bp1_yearly_9034_witch
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
root = {
send_interface_toast = {
title = bp1_yearly.9036.guardian_wins
scope:bp1_yearly_9034_guardian = {
if = {
limit = {
can_add_hook = {
target = root
type = favor_hook
}
}
add_hook = {
target = root
type = favor_hook
}
}
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
root = {
send_interface_toast = {
title = bp1_yearly.9036.guardian_loses
increase_wounds_effect = { REASON = duel }
}
}
}
}
}
create_character_memory = {
type = assaulted_by_a_witch_memory
participants = {
witch = scope:bp1_yearly_9034_witch
}
}
ai_chance = {
base = 10
}
}
}
#####################################
# Bog mummy #
# by James Beaumont #
# 9037 #
#####################################
bp1_yearly.9037 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9037.t
desc = bp1_yearly.9037.desc
theme = skull
override_background = wilderness_wetlands
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9037_corpse
animation = idle
}
lower_left_portrait = scope:bp1_yearly_9037_guardian
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
is_adult = no
NOT = {
has_character_flag = had_event_bp1_yearly_9037
}
OR = {
any_held_county = {
county_has_province_with_terrain = { terrain = wetlands }
}
location = { terrain = wetlands }
}
any_relation = {
type = guardian
is_available_ai_adult = yes
}
}
weight_multiplier = {
base = 1
}
immediate = {
if = {
limit = {
any_held_county = {
county_has_province_with_terrain = { terrain = wetlands }
}
}
random_held_county = {
limit = {
county_has_province_with_terrain = { terrain = wetlands }
}
random_county_province = {
limit = { terrain = wetlands }
save_scope_as = bp1_yearly_9037_swampy_location
}
}
}
else = {
location = { save_scope_as = bp1_yearly_9037_swampy_location }
}
random_relation = {
type = guardian
limit = {
is_available_ai_adult = yes
}
save_scope_as = bp1_yearly_9037_guardian
}
if = { # If the guardian has killed anyone, use their body
limit = {
scope:bp1_yearly_9037_guardian = {
any_secret = {
type = secret_murder
}
}
}
scope:bp1_yearly_9037_guardian = {
random_secret = {
type = secret_murder
save_scope_as = bp1_yearly_9037_guardian_secret
secret_target = { save_scope_as = bp1_yearly_9037_corpse }
}
}
}
else = { # Otherwise make a new body
create_character = {
template = servant_character
location = scope:bp1_yearly_9037_swampy_location
save_scope_as = bp1_yearly_9037_corpse
}
scope:bp1_yearly_9037_corpse = {
death = { death_reason = death_drowned }
}
}
create_character_memory = {
type = found_a_bog_corpse_memory
participants = {
corpse = scope:bp1_yearly_9037_corpse
}
}
}
option = { # Guardian, I found a body!
name = bp1_yearly.9037.a
custom_tooltip = bp1_yearly.9037.custom
hidden_effect = {
random_list = {
50 = {
trigger = {
scope:bp1_yearly_9037_guardian = {
any_secret = {
type = secret_murder
}
}
}
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = vengeful }
}
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = honest }
}
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = sadistic }
}
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = callous }
}
trigger_event = bp1_yearly.9038
}
50 = {
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = forgiving }
}
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = deceitful }
}
modifier = {
factor = 2
scope:bp1_yearly_9037_guardian = { has_trait = compassionate }
}
trigger_event = bp1_yearly.9039
}
}
}
stress_impact = {
craven = massive_stress_impact_gain
pensive = major_stress_impact_gain
bossy = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Run away in terror
name = bp1_yearly.9037.b
stress_impact = {
base = 5
brave = medium_stress_impact_gain
rowdy = medium_stress_impact_gain
curious = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
after = { add_character_flag = had_event_bp1_yearly_9037 }
}
# Guardian admits they killed someone
bp1_yearly.9038 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9038.t
desc = {
desc = bp1_yearly.9038.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:bp1_yearly_9037_guardian = {
has_character_flag = bp1_yearly_9037_killer_guardian
}
}
desc = bp1_yearly.9038.desc.killer
}
desc = bp1_yearly.9038.desc.not_killer
}
}
theme = skull
override_background = wilderness_wetlands
left_portrait = {
character = root
animation = fear
}
right_portrait = {
character = scope:bp1_yearly_9037_guardian
animation = rage
}
lower_left_portrait = scope:bp1_yearly_9037_corpse
weight_multiplier = {
base = 1
}
immediate = {
random_list = {
50 = {
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = vengeful }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = callous }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = sadistic }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = wrathful }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = arbitrary }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = craven }
}
scope:bp1_yearly_9037_guardian = {
add_character_flag = {
flag = bp1_yearly_9037_killer_guardian
years = 1
}
}
}
50 = {
modifier = {
factor = 0
scope:bp1_yearly_9037_guardian = { has_trait = paranoid }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = compassionate }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = forgiving }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = trusting }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = just }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = content }
}
modifier = {
add = 50
scope:bp1_yearly_9037_guardian = { has_trait = calm }
}
}
}
}
option = { # Wow, thanks for telling me that.
name = bp1_yearly.9038.a
trigger = {
NOT = {
scope:bp1_yearly_9037_guardian = {
has_character_flag = bp1_yearly_9037_killer_guardian
}
}
}
scope:bp1_yearly_9037_guardian_secret = {
reveal_to = root
}
ai_chance = {
base = 10
}
}
option = { # Run!
name = bp1_yearly.9038.b
trigger = {
scope:bp1_yearly_9037_guardian = {
has_character_flag = bp1_yearly_9037_killer_guardian
}
}
scope:bp1_yearly_9037_guardian_secret = {
expose_secret = root
}
add_prestige = minor_prestige_loss
stress_impact = {
brave = medium_stress_impact_gain
trusting = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
curious = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Try to throw them in the bog instead
name = bp1_yearly.9038.c
trigger = {
scope:bp1_yearly_9037_guardian = {
has_character_flag = bp1_yearly_9037_killer_guardian
}
}
scope:bp1_yearly_9037_guardian_secret = {
reveal_to = root
}
duel = {
skill = prowess
target = scope:bp1_yearly_9037_guardian
70 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
send_interface_toast = {
title = 9038_killed_guardian
left_icon = root
right_icon = scope:bp1_yearly_9037_guardian
scope:bp1_yearly_9037_guardian = {
death = { death_reason = death_drowned }
}
create_character_memory = {
type = successful_murder
participants = {
victim = scope:bp1_yearly_9037_guardian
}
}
add_prestige = major_prestige_gain
}
}
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
send_interface_toast = {
title = 9038_guardian_kills_you
left_icon = root
right_icon = scope:bp1_yearly_9037_guardian
unknown_murder_effect = { VICTIM = root MURDERER = scope:bp1_yearly_9037_guardian REASON = death_murder }
}
}
}
stress_impact = {
craven = major_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
calm = medium_stress_impact_gain
pensive = medium_stress_impact_gain
rowdy = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
}
bp1_yearly.9039 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9039.t
desc = bp1_yearly.9039.desc
theme = skull
override_background = wilderness_wetlands
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:bp1_yearly_9037_guardian
animation = disbelief
}
lower_left_portrait = scope:bp1_yearly_9037_corpse
option = { # Throw the bones in a box!
name = bp1_yearly.9039.a
create_artifact = {
name = box_of_boggy_bones
description = box_of_boggy_bones_desc
type = miscellaneous
visuals = small_box
modifier = artifact_dread_gain_mult_2_modifier
modifier = artifact_intrigue_per_stress_level_1_modifier
}
ai_chance = {
base = 10
}
}
option = { # Spread ghost stories about the bog man
name = bp1_yearly.9039.b
scope:bp1_yearly_9037_swampy_location = {
county = {
add_county_modifier = {
modifier = ghost_stories_modifier
years = 10
}
}
}
ai_chance = {
base = 10
}
}
}
#####################################
# Haunted by your lover #
# by James Beaumont #
# 9040 #
#####################################
bp1_yearly.9040 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9040.t
desc = bp1_yearly.9040.desc
theme = seduction
override_background = corridor_night
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:bp1_yearly_9040_dead_lover
animation = flirtation_left
animate_if_dead = yes
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_adult = yes
any_memory = {
OR = {
has_memory_type = lover_died
has_memory_type = soulmate_died
}
}
NOT = {
has_character_flag = had_event_bp1_yearly_9040
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_memory = {
limit = {
OR = {
has_memory_type = lover_died
has_memory_type = soulmate_died
}
}
memory_participant:dead_relation = {
save_scope_as = bp1_yearly_9040_dead_lover
}
}
}
option = { # Shag the sexy ghost
name = bp1_yearly.9040.a
add_character_modifier = {
modifier = bp1_indulging_ghost_sex
years = 5
}
stress_impact = {
base = major_stress_impact_loss
lustful = major_stress_impact_loss
chaste = minor_stress_impact_gain
loyal = minor_stress_impact_gain
}
ai_chance = {
base = 10
}
}
option = { # Withhold your desires, save yourself for your new spouse/lover
name = bp1_yearly.9040.b
add_character_modifier = {
modifier = bp1_withholding_ghost_sex
years = 5
}
stress_impact = {
base = minor_stress_impact_gain
lustful = major_stress_impact_gain
compassionate = medium_stress_impact_gain
chaste = minor_stress_impact_loss
}
ai_chance = {
base = 10
}
}
after = { add_character_flag = had_event_bp1_yearly_9040 }
}
#####################################
# Bonding over a dead parent #
# by James Beaumont #
# 9041 #
#####################################
bp1_yearly.9041 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9041.t
desc = bp1_yearly.9041.desc
theme = family
override_background = { reference = corridor_day }
left_portrait = {
character = root
animation = personality_compassionate
}
right_portrait = {
character = scope:bp1_yearly_9041_sibling
animation = grief
}
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
is_adult = no
age >= 6
NOT = {
has_character_flag = had_event_bp1_yearly_9041
}
any_sibling = {
is_available_ai = yes
# Check that they have had a potential friendship-building event already, else this will be extremely common
has_relation_potential_friend = root
age >= 6
any_parent = {
even_if_dead = yes
# Check that they're dead
is_alive = no
# Make sure it's a shared parent
is_parent_of = root
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_sibling = {
limit = {
is_available_ai = yes
has_relation_potential_friend = root
age >= 6
any_parent = {
even_if_dead = yes
# Check that they're dead
is_alive = no
# Make sure it's a shared parent
is_parent_of = root
}
}
save_scope_as = bp1_yearly_9041_sibling
random_parent = {
even_if_dead = yes
limit = {
# Check that they're dead
is_alive = no
# Make sure it's a shared parent
is_parent_of = root
}
save_scope_as = bp1_yearly_9041_parent
}
}
}
option = { # Bond and become friends
name = bp1_yearly.9041.a
scope:bp1_yearly_9041_parent = { save_scope_as = relationship_reason_involved_character }
upgrade_to_friend_effect = {
CHARACTER = scope:bp1_yearly_9041_sibling
REASON = generic_familial_bonding
}
stress_impact = {
shy = major_stress_impact_gain
pensive = major_stress_impact_gain
bossy = minor_stress_impact_gain
rowdy = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = pensive
has_trait = bossy
has_trait = rowdy
}
}
}
}
option = { # Make fun of them for crying
name = bp1_yearly.9041.b
if = {
limit = { NOT = { scope:bp1_yearly_9041_sibling = { has_relation_bully = root } } }
scope:bp1_yearly_9041_sibling = { set_relation_bully = root }
}
stress_impact = {
gregarious = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
loyal = medium_stress_impact_gain
curious = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = compassionate
has_trait = forgiving
has_trait = loyal
has_trait = curious
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9041 }
}
#####################################
# Food that looks like Jesus #
# by James Beaumont #
# 9042 #
#####################################
bp1_yearly.9042 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9042.t
desc = bp1_yearly.9042.desc
theme = faith
override_background = throne_room
left_portrait = {
character = root
animation = personality_cynical
}
right_portrait = {
character = scope:bp1_yearly_9042_chaplain
animation = ecstasy
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_adult = yes
faith_is_aniconic_trigger = no
NOT = {
has_character_flag = had_event_bp1_yearly_9042
}
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = {
is_available_ai_adult = yes
OR = {
learning <= 7
has_trait = intellect_bad
has_trait = dull
has_trait = trusting
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
cp:councillor_court_chaplain = { save_scope_as = bp1_yearly_9042_chaplain }
}
option = { # Woah it *does* look like Jesus!
name = bp1_yearly.9042.a
upgrade_to_friend_effect = {
CHARACTER = scope:bp1_yearly_9042_chaplain
REASON = generic_desserts_in_shape_of_jesus
}
scope:bp1_yearly_9042_chaplain = { add_trait = loyal }
create_artifact = {
name = dessert_looks_like_god
description = dessert_looks_like_god_desc
type = miscellaneous
visuals = small_box
modifier = artifact_monthly_piety_1_modifier
modifier = artifact_clergy_opinion_penalty_2_modifier
save_scope_as = jesus_food_scope
}
scope:jesus_food_scope = {
flag_as_trash_artifact = yes
flag_as_unwanted_artifact = yes
}
add_piety = minor_piety_loss
stress_impact = {
zealous = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = zealous
}
}
}
option = { # Accuse them of heresy
name = bp1_yearly.9042.b
trigger = {
scope:bp1_yearly_9042_chaplain = {
can_be_fired_from_council_trigger = { COURT_OWNER = root }
}
}
downgrade_to_rival_effect = {
CHARACTER = scope:bp1_yearly_9042_chaplain
REASON = rival_accusations_of_heresy
}
duel = {
skill = learning
target = scope:bp1_yearly_9042_chaplain
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
root = {
send_interface_toast = {
title = 9042_you_win
left_icon = root
right_icon = scope:bp1_yearly_9042_chaplain
fire_councillor = scope:bp1_yearly_9042_chaplain
scope:bp1_yearly_9042_chaplain = { banish = yes }
add_piety = medium_piety_gain
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
root = {
send_interface_toast = {
title = 9042_you_lose
left_icon = root
right_icon = scope:bp1_yearly_9042_chaplain
add_piety = medium_piety_loss
}
}
}
}
stress_impact = {
gregarious = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = forgiving
}
}
}
}
option = { # Eat it
name = bp1_yearly.9042.c
trigger = {
OR = {
has_trait = cynical
has_trait = gluttonous
has_trait = comfort_eater
has_trait = sadistic
}
}
downgrade_to_rival_effect = {
CHARACTER = scope:bp1_yearly_9042_chaplain
REASON = rival_ate_jesus
}
add_character_modifier = {
modifier = full_of_jesus_modifier
years = 5
}
stress_impact = {
zealous = minor_stress_impact_gain
gluttonous = minor_stress_impact_gain
comfort_eater = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = zealous
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9042 }
}
#####################################################
# The Baby Eating Bishop of County and Kingdom #
# by James Beaumont #
# 9043 #
#####################################################
bp1_yearly.9043 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9043.t
desc = bp1_yearly.9043.desc
theme = secret
override_background = temple
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_9043_chaplain
animation = ecstasy
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_adult = yes
NOT = {
has_character_flag = had_event_bp1_yearly_9043
}
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = {
is_available_ai_adult = yes
OR = {
AND = {
is_deviant_trigger = yes
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = deviant
GENDER_CHARACTER = cp:councillor_court_chaplain
}
}
AND = {
is_cannibal_trigger = yes
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = cannibal
GENDER_CHARACTER = cp:councillor_court_chaplain
}
}
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
cp:councillor_court_chaplain = {
save_scope_as = bp1_yearly_9043_chaplain
if = {
limit = {
NOT = {
is_cannibal_trigger = yes
}
}
if = {
limit = {
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = cannibal
GENDER_CHARACTER = cp:councillor_court_chaplain
}
}
add_secret = {
type = secret_cannibal
}
}
else = {
add_trait = cannibal
}
}
if = {
limit = {
NOT = {
is_deviant_trigger = yes
}
}
if = {
limit = {
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = deviant
GENDER_CHARACTER = cp:councillor_court_chaplain
}
}
add_secret = {
type = secret_deviant
}
}
else = {
add_trait = deviant
}
}
every_secret = {
limit = {
OR = {
secret_type = secret_cannibal
secret_type = secret_deviant
}
}
reveal_to = root
}
}
}
option = { # Show me your ways
name = bp1_yearly.9043.a
if = {
limit = {
AND = {
OR = {
is_attracted_to_gender_of = scope:bp1_yearly_9043_chaplain
has_perk = unshackled_lust_perk
}
scope:bp1_yearly_9043_chaplain = {
OR = {
is_attracted_to_gender_of = root
has_perk = unshackled_lust_perk
}
}
}
NOT = { has_relation_lover = scope:bp1_yearly_9043_chaplain }
}
set_relation_lover = { reason = lover_induled_in_forbidden_pleasures target = scope:bp1_yearly_9043_chaplain }
}
else = {
upgrade_to_friend_effect = {
CHARACTER = scope:bp1_yearly_9043_chaplain
REASON = generic_ate_a_baby_together
}
}
if = {
limit = {
NOT = {
is_cannibal_trigger = yes
}
}
if = {
limit = {
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = cannibal
GENDER_CHARACTER = root
}
}
add_secret = {
type = secret_cannibal
}
}
else = {
add_trait = cannibal
}
}
if = {
limit = {
NOT = {
is_deviant_trigger = yes
}
}
if = {
limit = {
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = deviant
GENDER_CHARACTER = root
}
}
add_secret = {
type = secret_deviant
}
}
else = {
add_trait = deviant
}
}
stress_impact = {
calm = major_stress_impact_gain
patient = major_stress_impact_gain
brave = major_stress_impact_gain
just = major_stress_impact_gain
trusting = major_stress_impact_gain
paranoid = major_stress_impact_gain
compassionate = major_stress_impact_gain
chaste = major_stress_impact_gain
zealous = major_stress_impact_gain
lustful = major_stress_impact_loss
deviant = massive_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = patient
has_trait = brave
has_trait = just
has_trait = trusting
has_trait = paranoid
has_trait = compassionate
has_trait = chaste
has_trait = zealous
}
}
}
}
option = { # Expose them!
name = bp1_yearly.9043.b
downgrade_to_rival_effect = {
CHARACTER = scope:bp1_yearly_9043_chaplain
REASON = rival_ate_baby
}
scope:bp1_yearly_9043_chaplain = {
every_secret = {
limit = {
OR = {
secret_type = secret_cannibal
secret_type = secret_deviant
}
}
expose_secret = root
}
give_nickname = nick_baby_eating
}
stress_impact = {
lustful = medium_stress_impact_gain
deviant = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = lustful
has_trait = gregarious
has_trait = forgiving
}
}
modifier = {
add = 100
OR = {
has_trait = just
has_trait = honest
has_trait = zealous
}
}
}
}
option = { # Keep it to yourself
name = bp1_yearly.9043.c
stress_impact = {
honest = medium_stress_impact_gain
deviant = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = honest
has_trait = deviant
}
}
}
}
after = { add_character_flag = had_event_bp1_yearly_9043 }
}
#################################
# Executing a friend #
# by James Beaumont #
# 9044 #
#################################
bp1_yearly.9044 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9044.t
desc = {
desc = bp1_yearly.9044.desc
first_valid = {
triggered_desc = {
trigger = {
exists = scope:bp1_yearly_9044_memory_scope
}
desc = bp1_yearly.9044.desc.outro.memory
}
desc = bp1_yearly.9044.desc.outro.no_memory
}
}
theme = skull
override_background = gallows
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
has_trait = disloyal
}
}
animation = schadenfreude
}
triggered_animation = {
trigger = {
NOR = {
has_trait = callous
has_trait = sadistic
has_trait = disloyal
}
}
animation = sadness
}
}
right_portrait = {
character = scope:recipient
animation = grief
triggered_outfit = {
remove_default_outfit = no
outfit_tags = { beggar_rags }
}
animate_if_dead = yes
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_adult = yes
}
weight_multiplier = {
base = 1
}
immediate = {
show_as_tooltip = {
execute_prisoner_effect = {
VICTIM = scope:recipient
EXECUTIONER = scope:actor
}
}
if = {
limit = {
any_memory = {
has_memory_category = positive
any_memory_participant = { this = scope:recipient }
NOT = { has_memory_type = became_friends }
}
}
random_memory = {
limit = {
has_memory_category = positive
any_memory_participant = { this = scope:recipient }
NOT = { has_memory_type = became_friends }
}
save_scope_as = bp1_yearly_9044_memory_scope
}
}
}
option = { # I feel bad about this
name = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
has_trait = disloyal
}
}
text = bp1_yearly.9044.a.indifferent
}
name = bp1_yearly.9044.a.guilty
}
}
#################################
# Seeing an execution as a child#
# by James Beaumont #
# 9045 #
#################################
bp1_yearly.9045 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9045.t
desc = {
desc = bp1_yearly.9045.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:recipient = { has_strong_religious_conviction_trigger = yes }
}
desc = bp1_yearly.9045.desc.zealous
}
triggered_desc = {
trigger = {
scope:recipient = { has_trait = brave }
}
desc = bp1_yearly.9045.desc.brave
}
desc = bp1_yearly.9045.desc.fallback
}
desc = bp1_yearly.9045.desc.outro
}
theme = skull
override_background = gallows
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
animation = schadenfreude
}
triggered_animation = {
trigger = {
NOR = {
has_trait = callous
has_trait = sadistic
}
}
animation = shock
}
}
right_portrait = {
character = scope:recipient
animation = grief
triggered_outfit = {
remove_default_outfit = no
outfit_tags = { beggar_rags }
}
animate_if_dead = yes
}
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
any_relation = {
is_available_ai_adult = yes
type = guardian
}
}
weight_multiplier = {
base = 1
}
immediate = {
show_as_tooltip = {
execute_prisoner_effect = {
VICTIM = scope:recipient
EXECUTIONER = scope:actor
}
}
random_relation = {
type = guardian
save_scope_as = bp1_yearly_9045_guardian
}
add_character_flag = witnessed_execution_flag
create_character_memory = {
type = was_shown_execution_memory
participants = {
guardian = scope:bp1_yearly_9045_guardian
victim = scope:recipient
}
}
}
option = { # How do I feel about this?
name = {
trigger = {
has_trait = callous
}
text = bp1_yearly.9045.a.indifferent
}
name = {
trigger = {
has_trait = sadistic
}
text = bp1_yearly.9045.a.sadistic
}
name = bp1_yearly.9045.a.guilty
if = {
limit = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
progress_towards_friend_effect = {
CHARACTER = scope:bp1_yearly_9045_guardian
OPINION = default_friend_opinion
REASON = friend_appreciated_good_entertainment
}
}
else = {
progress_towards_rival_effect = {
REASON = rival_child_saw_execution
CHARACTER = scope:bp1_yearly_9045_guardian
OPINION = default_rival_opinion
}
}
stress_impact = {
calm = major_stress_impact_gain
patient = major_stress_impact_gain
just = major_stress_impact_gain
trusting = major_stress_impact_gain
charming = major_stress_impact_gain
compassionate = major_stress_impact_gain
zealous = major_stress_impact_gain
sadistic = massive_stress_impact_loss
}
}
}
#################################
# Child poops during baptism #
# by James Beaumont #
# 9046 #
#################################
bp1_yearly.9046 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9046.t
desc = {
desc = bp1_yearly.9046.desc.intro
first_valid = {
triggered_desc = {
trigger = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
}
desc = bp1_yearly.9046.desc.christian
}
desc = bp1_yearly.9046.desc.not_christian
}
desc = bp1_yearly.9046.desc.outro
}
theme = family
override_background = temple
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
animation = schadenfreude
}
triggered_animation = {
trigger = {
NOR = {
has_trait = callous
has_trait = sadistic
}
}
animation = shock
}
}
right_portrait = {
character = scope:bp1_yearly_9046_chaplain
animation = anger
}
lower_right_portrait = {
character = scope:bp1_yearly_9046_poopy_child
}
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
any_child = {
age <= 2
is_available_ai = yes
}
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = {
is_available_ai_adult = yes
}
NOR = {
any_close_family_member = {
even_if_dead = yes
has_nickname = nick_the_dung_named
}
has_nickname = nick_the_dung_named
}
}
weight_multiplier = {
base = 1
}
immediate = {
random_child = {
limit = {
age <= 2
is_available_ai = yes
}
save_scope_as = bp1_yearly_9046_poopy_child
}
cp:councillor_court_chaplain = { save_scope_as = bp1_yearly_9046_chaplain }
}
option = { # That's hilarious
name = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
text = bp1_yearly.9046.a.indifferent
}
name = bp1_yearly.9046.a
scope:bp1_yearly_9046_poopy_child = {
give_nickname = nick_the_dung_named
progress_towards_rival_effect = {
REASON = rival_laughed_at_child_pooping
CHARACTER = root
OPINION = default_rival_opinion
}
}
stress_impact = {
calm = minor_stress_impact_gain
patient = minor_stress_impact_gain
just = minor_stress_impact_gain
trusting = minor_stress_impact_gain
charming = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
zealous = minor_stress_impact_gain
family_first = major_stress_impact_gain
sadistic = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = calm
has_trait = patient
has_trait = just
has_trait = trusting
has_trait = charming
has_trait = zealous
}
}
modifier = {
add = 10
OR = {
has_trait = sadistic
has_trait = callous
}
}
}
}
option = { # We gotta cover this up
name = bp1_yearly.9046.b
stress_impact = {
base = minor_stress_impact_gain
honest = major_stress_impact_gain
sadistic = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = sadistic
has_trait = callous
has_trait = honest
}
}
}
}
}
#########################################
# Lover wants you to wear their hair #
# by James Beaumont #
# 9047 #
#########################################
bp1_yearly.9047 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9047.t
desc = bp1_yearly.9047.desc
theme = love
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:bp1_yearly_9047_lover
animation = flirtation_left
}
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
any_relation = {
is_available_ai_adult = yes
type = lover
NOR = {
has_trait = loyal
has_trait = disloyal
}
}
OR = {
has_any_nickname = no
has_bad_nickname = yes
}
NOT = { has_character_flag = had_event_bp1_yearly_9047 }
}
weight_multiplier = {
base = 1
}
immediate = {
random_relation = {
type = lover
limit = {
is_available_ai_adult = yes
NOR = {
has_trait = loyal
has_trait = disloyal
}
}
save_scope_as = bp1_yearly_9047_lover
}
add_character_flag = had_event_bp1_yearly_9047
}
option = { # Of course I will wear your hair!
name = bp1_yearly.9047.a
if = {
limit = {
is_ai = yes
}
random = {
chance = 10
if = {
limit = {
scope:bp1_yearly_9047_lover = { is_female = yes }
}
give_nickname = nick_with_the_tress
}
else = {
give_nickname = nick_with_the_lock
}
}
}
else = {
if = {
limit = {
scope:bp1_yearly_9047_lover = { is_female = yes }
}
give_nickname = nick_with_the_tress
}
else = {
give_nickname = nick_with_the_lock
}
}
if = {
limit = {
has_trait = disloyal
}
remove_trait = disloyal
}
else = {
add_trait = loyal
}
scope:bp1_yearly_9047_lover = {
if = {
limit = {
has_trait = disloyal
}
remove_trait = disloyal
}
else = {
add_trait = loyal
}
}
stress_impact = {
humble = medium_stress_impact_gain
disloyal = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = humble
has_trait = disloyal
}
}
}
}
option = { # What? That's gross
name = bp1_yearly.9047.b
reverse_add_opinion = {
target = scope:bp1_yearly_9047_lover
modifier = hurt_opinion
opinion = -25
}
stress_impact = {
loyal = major_stress_impact_gain
lustful = major_stress_impact_gain
sadistic = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = loyal
has_trait = lustful
has_trait = sadistic
}
}
}
}
}
#########################################
# Wrestling a rival #
# by James Beaumont #
# 9048 #
#########################################
bp1_yearly.9048 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9048.t
desc = bp1_yearly.9048.desc
theme = love
left_portrait = {
character = root
animation = rage
}
right_portrait = {
character = scope:bp1_yearly_9048_nemesis
animation = personality_irrational
}
trigger = {
has_dlc_feature = friends_and_foes
is_available = yes
OR = { # Is interested in war and fighting to some extent
perks_in_martial_lifestyle >= 2
has_trait = education_martial_prowess
}
any_relation = {
type = nemesis
is_available_ai_adult = yes
OR = {
has_trait = brave
has_trait = impatient
has_trait = wrathful
has_trait = sadistic
}
}
NOT = { has_character_flag = had_event_bp1_yearly_9048 }
}
weight_multiplier = {
base = 1
}
immediate = {
random_relation = {
type = nemesis
limit = {
is_available_ai_adult = yes
OR = {
has_trait = brave
has_trait = impatient
has_trait = wrathful
has_trait = sadistic
}
}
save_scope_as = bp1_yearly_9048_nemesis
}
add_character_flag = had_event_bp1_yearly_9048
}
option = { # U wot m8
name = bp1_yearly.9048.a
if = {
limit = {
root.faith = { trait_is_virtue = brave }
}
add_piety = medium_piety_gain
}
duel = {
skill = prowess
target = scope:bp1_yearly_9048_nemesis
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
add_prestige = medium_prestige_gain
trigger_event = bp1_yearly.9049
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
send_interface_toast = {
title = 9048_you_lose
left_icon = root
right_icon = scope:bp1_yearly_9048_nemesis
add_prestige = minor_prestige_loss
increase_wounds_no_death_effect = { REASON = duel }
}
}
}
stress_impact = {
patient = medium_stress_impact_gain
calm = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = patient
has_trait = calm
has_trait = craven
}
}
modifier = {
add = 10
OR = {
has_trait = brave
has_trait = arrogant
}
}
modifier = {
add = 10
prowess >= scope:bp1_yearly_9048_nemesis.prowess
NOT = { has_trait = craven }
}
}
}
option = { # Don't hit me!
name = bp1_yearly.9048.b
add_prestige = minor_prestige_loss
if = {
limit = {
root.faith = { trait_is_virtue = brave }
}
add_piety = minor_piety_loss
}
stress_impact = {
brave = major_stress_impact_gain
impatient = major_stress_impact_gain
wrathful = major_stress_impact_gain
arrogant = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = brave
has_trait = impatient
has_trait = wrathful
has_trait = arrogant
}
}
}
}
}
# Follow-up event, bite a chunk out of them?
bp1_yearly.9049 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9049.t
desc = bp1_yearly.9049.desc
theme = love
left_portrait = {
character = root
animation = rage
}
right_portrait = {
character = scope:bp1_yearly_9048_nemesis
animation = shock
}
weight_multiplier = {
base = 1
}
immediate = {
scope:bp1_yearly_9048_nemesis = {
increase_wounds_no_death_effect = { REASON = duel }
}
}
option = { # Say goodbye to your flesh
name = bp1_yearly.9049.a
give_nickname = nick_irontooth
scope:bp1_yearly_9048_nemesis = {
increase_wounds_effect = { REASON = duel }
}
stress_impact = {
patient = medium_stress_impact_gain
calm = medium_stress_impact_gain
craven = medium_stress_impact_gain
forgiving = massive_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = patient
has_trait = calm
has_trait = craven
has_trait = forgiving
}
}
}
}
option = { # This rivalry is over
name = bp1_yearly.9049.b
remove_relation_nemesis = scope:bp1_yearly_9048_nemesis
stress_impact = {
brave = major_stress_impact_gain
impatient = major_stress_impact_gain
wrathful = major_stress_impact_gain
arrogant = major_stress_impact_gain
forgiving = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = brave
has_trait = impatient
has_trait = wrathful
has_trait = arrogant
}
}
modifier = {
add = 10
has_trait = forgiving
}
}
}
option = { # This rivalry is over... forever
name = bp1_yearly.9049.c
trigger = {
has_trait = vengeful
}
scope:bp1_yearly_9048_nemesis = {
death = {
killer = root
death_reason = death_duel
}
}
stress_impact = {
just = major_stress_impact_gain
patient = medium_stress_impact_gain
calm = medium_stress_impact_gain
vengeful = major_stress_impact_loss
wrathful = major_stress_impact_loss
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = just
has_trait = patient
has_trait = calm
}
}
}
}
}
#########################################
# Sharing war stories #
# by James Beaumont #
# 9050 #
#########################################
bp1_yearly.9050 = {
type = character_event
content_source = dlc_006
title = bp1_yearly.9050.t
desc = bp1_yearly.9050.desc
theme = martial
left_portrait = {
character = root
animation = rage
}
right_portrait = {
character = scope:bp1_yearly_9050_friend
animation = shock
}
weight_multiplier = {
base = 1
}
trigger = {
has_dlc_feature = friends_and_foes
is_available_adult = yes
any_memory = {
has_memory_category = war
has_memory_category = positive
}
any_relation = {
type = friend
is_available_ai_adult = yes
OR = {
root = {
has_royal_court = yes
has_court_type = court_warlike
}
has_trait = education_martial_prowess
has_trait = education_martial
has_trait = brave
}
any_memory = {
has_memory_category = war
has_memory_category = positive
}
}
NOT = { has_character_flag = had_event_bp1_yearly_9050 }
}
immediate = {
add_character_flag = had_event_bp1_yearly_9050
random_memory = {
limit = {
has_memory_category = war
has_memory_category = positive
}
save_scope_as = bp1_yearly_9050_my_memory
}
random_relation = {
type = friend
limit = {
is_available_ai_adult = yes
OR = {
root = {
has_royal_court = yes
has_court_type = court_warlike
}
has_trait = education_martial_prowess
has_trait = education_martial
has_trait = brave
}
any_memory = {
has_memory_category = war
has_memory_category = positive
}
}
save_scope_as = bp1_yearly_9050_friend
random_memory = {
limit = {
has_memory_category = war
has_memory_category = positive
}
save_scope_as = bp1_yearly_9050_friend_memory
}
}
}
option = { # Hahaha, what a story bp1_yearly_9050_friend
name = bp1_yearly.9050.a
reverse_add_opinion = {
target = scope:bp1_yearly_9050_friend
modifier = flattered_opinion
opinion = 25
}
stress_impact = {
brave = major_stress_impact_gain
impatient = major_stress_impact_gain
wrathful = major_stress_impact_gain
arrogant = major_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = brave
has_trait = impatient
has_trait = wrathful
has_trait = arrogant
}
}
}
}
option = { # MY story is clearly better
name = bp1_yearly.9050.b
reverse_add_opinion = {
target = scope:bp1_yearly_9050_friend
modifier = insult_opinion
opinion = -25
}
duel = {
skill = martial
target = scope:bp1_yearly_9050_friend
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2.5
}
add_prestige = medium_prestige_gain
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2.5
}
add_prestige = medium_prestige_loss
}
}
stress_impact = {
patient = medium_stress_impact_gain
calm = medium_stress_impact_gain
craven = medium_stress_impact_gain
forgiving = massive_stress_impact_gain
loyal = massive_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
add = -10
OR = {
has_trait = patient
has_trait = calm
has_trait = craven
has_trait = forgiving
has_trait = loyal
}
}
}
}
}