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

6953 lines
164 KiB
Text

namespace = bp2_yearly
####
# bp2_yearly.1000 - Parent/Guardian: Your child/ward walks in on you performing your stress trait
# bp2_yearly.1001 - Follow-up; the child is mimicking your stress behavior
# bp2_yearly.1005 - Child: You notice your parent/guardian performing a stress trait
#
# bp2_yearly.1010 - Parent/Guardian: Your child gives you a hug
# bp2_yearly.1015 - Parent/Guardian: Your child/ward found a pouch of gold while exploring
# bp2_yearly.1020 - Parent/Guardian: Your child/ward has found a secret in court
#
# bp2_yearly.1030 - Parent: Your child does not have the same educational trait as you. Change?
# bp2_yearly.1035 - Parent/Guardian: Your child/ward has a rock collection
# bp2_yearly.1040 - Parent/Guardian: Your child/ward has a text about martial arts
# bp2_yearly.1045 - Parent/Guardian: There is a brawl among some children
#
#################
## Event Chain ##
## The Builder ##
## 1050 - 1072 ##
#################
# bp2_yearly.1050 - The tide/sandstorm is ruining your sandcastle!
# bp2_yearly.1051 - Follow-up: Curse you, tide!
# bp2_yearly.1055 - You are challenged to a den-building competition
# bp2_yearly.1056 - Follow-up: Things went down in the woods
# bp2_yearly.1060 - Appreciate the architecture of your capital
# bp2_yearly.1061 - Follow-up: You spend the day with WhatsTheirFace
# bp2_yearly.1065 - Your input is desired on the next building target
# bp2_yearly.1070 - All of our efforts have culminated into _this_
# bp2_yearly.1071 - Follow-up: Get the sweet sweet loo... I mean, sweet sweet effects!
# bp2_yearly.1072 - Clean up: You dun messed up, son
scripted_trigger bp2_yearly_1000_is_appropriate_child = {
age > 4
age < 16
is_available = yes
is_ai = yes
location = root.location
NOT = { has_variable = witnessed_trait }
OR = {
AND = {
root = { has_trait = drunkard }
NOT = { has_trait = drunkard }
}
AND = {
root = { has_trait = reclusive }
NOT = { has_trait = reclusive }
}
AND = {
root = { has_trait = irritable }
NOT = { has_trait = irritable }
}
AND = {
root = { has_trait = flagellant }
NOT = { has_trait = flagellant }
}
AND = {
root = { has_trait = profligate }
NOT = { has_trait = profligate }
}
AND = {
root = { has_trait = improvident }
NOT = { has_trait = improvident }
}
AND = {
root = { has_trait = comfort_eater }
NOT = { has_trait = comfort_eater }
}
AND = {
root = { has_trait = inappetetic }
NOT = { has_trait = inappetetic }
}
AND = {
root = { has_trait = journaller }
NOT = { has_trait = journaller }
}
AND = {
root = { has_trait = hashishiyah }
NOT = { has_trait = hashishiyah }
any_courtier_or_guest = {
is_available_adult = yes
has_any_bad_relationship_with_root_trigger = no
}
}
AND = {
NOT = { has_trait = confider }
root = {
has_trait = confider
any_relation = {
type = friend
is_available = yes
location = root.location
}
}
}
AND = {
root = {
has_trait = athletic
NOT = { has_trait = one_legged }
}
NOT = {
has_trait = athletic
has_trait = one_legged
}
}
}
}
scripted_effect bp2_yearly_1000_award_trait_effect = {
if = {
limit = { exists = scope:triggered_trait }
this = {
switch = {
trigger = scope:triggered_trait
flag:drunkard = { add_trait = drunkard }
flag:hashishiyah = { add_trait = hashishiyah }
flag:reclusive = { add_trait = reclusive }
flag:irritable = { add_trait = irritable }
flag:flagellant = { add_trait = flagellant }
flag:profligate = { add_trait = profligate }
flag:improvident = { add_trait = improvident }
flag:contrite = { add_trait = contrite }
flag:comfort_eater = { add_trait = comfort_eater }
flag:inappetetic = { add_trait = inappetetic }
flag:journaller = { add_trait = journaller }
flag:confider = { add_trait = confider }
flag:athletic = { add_trait = athletic }
}
}
}
else_if = {
limit = { exists = var:witnessed_trait }
this = {
switch = {
trigger = var:witnessed_trait
flag:drunkard = { add_trait = drunkard }
flag:hashishiyah = { add_trait = hashishiyah }
flag:reclusive = { add_trait = reclusive }
flag:irritable = { add_trait = irritable }
flag:flagellant = { add_trait = flagellant }
flag:profligate = { add_trait = profligate }
flag:improvident = { add_trait = improvident }
flag:contrite = { add_trait = contrite }
flag:comfort_eater = { add_trait = comfort_eater }
flag:inappetetic = { add_trait = inappetetic }
flag:journaller = { add_trait = journaller }
flag:confider = { add_trait = confider }
flag:athletic = { add_trait = athletic }
}
}
}
}
#Parent/Guardian: Your child/ward walks in on you performing your stress trait
bp2_yearly.1000 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1000.t
desc = {
#Hoppsan
first_valid = {
triggered_desc = {
trigger = { scope:triggered_trait = flag:drunkard }
desc = bp2_yearly.1000.desc_drunkard
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:hashishiyah }
desc = bp2_yearly.1000.desc_hashishiyah
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:reclusive }
desc = bp2_yearly.1000.desc_reclusive
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:irritable }
desc = bp2_yearly.1000.desc_irritable
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:flagellant }
desc = bp2_yearly.1000.desc_flagellant
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:profligate }
desc = bp2_yearly.1000.desc_profligate
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:improvident }
desc = bp2_yearly.1000.desc_improvident
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:contrite }
desc = bp2_yearly.1000.desc_contrite
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:comfort_eater }
desc = bp2_yearly.1000.desc_comfort_eater
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:inappetetic }
desc = bp2_yearly.1000.desc_inappetetic
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:journaller }
desc = bp2_yearly.1000.desc_journaller
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:confider }
desc = bp2_yearly.1000.desc_confider
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:athletic }
desc = bp2_yearly.1000.desc_athletic
}
}
#Is it a *good* stress trait or a *bad* stress trait?
first_valid = {
#Hmm, this isn't _great_
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:flagellant
scope:triggered_trait = flag:comfort_eater
}
}
desc = bp2_yearly.1000.outro_bad
}
#Meh, it's fine
desc = bp2_yearly.1000.outro
}
}
theme = family
#Let's be in a couple of different places
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:contrite
scope:triggered_trait = flag:inappetetic
scope:triggered_trait = flag:confider
}
}
reference = feast_event
}
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:comfort_eater
scope:triggered_trait = flag:journaller
}
}
reference = relaxing_room
}
override_background = {
trigger = { scope:triggered_trait = flag:reclusive }
reference = study
}
override_background = {
trigger = { scope:triggered_trait = flag:flagellant }
reference = dungeon
}
override_background = {
trigger = { scope:triggered_trait = flag:profligate }
reference = market
}
override_background = {
trigger = { scope:triggered_trait = flag:athletic }
reference = courtyard
}
override_background = {
trigger = { scope:triggered_trait = flag:improvident }
reference = temple
}
#Fallback
override_background = { reference = throne_room }
left_portrait = {
character = root
triggered_animation = {
trigger = { scope:triggered_trait = flag:drunkard }
animation = drink_goblet
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:improvident }
animation = personality_compassionate
}
triggered_animation = {
trigger = {
OR = {
scope:triggered_trait = flag:irritable
AND = {
has_trait = eccentric
scope:triggered_trait = flag:reclusive
}
}
}
animation = rage
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:reclusive }
animation = personality_cynical
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:journaller }
animation = reading
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:flagellant }
animation = pain
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:contrite }
animation = personality_zealous
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:confider }
animation = admiration
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:athletic }
animation = ecstasy
}
triggered_animation = {
trigger = {
scope:triggered_trait = flag:profligate
has_trait = eccentric
}
animation = steward
}
triggered_animation = {
trigger = {
OR = {
has_trait = eccentric
has_trait = lunatic
scope:triggered_trait = flag:hashishiyah
}
}
animation = personality_irrational
}
animation = stress
}
right_portrait = {
character = scope:appropriate_child
triggered_animation = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:flagellant
scope:triggered_trait = flag:comfort_eater
}
}
animation = shock
}
animation = thinking
}
lower_left_portrait = {
trigger = { exists = scope:portrait_to_display }
character = scope:portrait_to_display
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available_adult = yes
is_landed_or_landless_administrative = yes
is_ai = no
#Longer cooldown if you removed a stress trait
NOT = { has_character_flag = bp2_yearly_1001_removed_stress_trait }
#Check if we have a stress trait; and if an appropriate child does not have the stress trait (so it's transferrable)
OR = {
any_child = {
bp2_yearly_1000_is_appropriate_child = yes
}
any_relation = {
type = ward
bp2_yearly_1000_is_appropriate_child = yes
}
any_warden_hostage = {
opinion = {
target = root
value >= low_negative_opinion
}
bp2_yearly_1000_is_appropriate_child = yes
}
}
}
weight_multiplier = {
base = 0
#The more stress traits; the higher chance
modifier = {
has_trait = drunkard
add = 1
}
modifier = {
has_trait = hashishiyah
add = 1
}
modifier = {
has_trait = reclusive
add = 1
}
modifier = {
has_trait = irritable
add = 1
}
modifier = {
has_trait = flagellant
add = 1
}
modifier = {
has_trait = profligate
add = 1
}
modifier = {
has_trait = improvident
add = 1
}
modifier = {
has_trait = contrite
add = 1
}
modifier = {
has_trait = comfort_eater
add = 1
}
modifier = {
has_trait = inappetetic
add = 1
}
modifier = {
has_trait = journaller
add = 1
}
modifier = {
has_trait = confider
add = 1
}
modifier = {
has_trait = athletic
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_stress"
#Your own children first
if = {
limit = {
any_child = {
bp2_yearly_1000_is_appropriate_child = yes
}
}
random_child = {
#A child you care about
limit = {
opinion = {
target = root
value >= low_positive_opinion
}
bp2_yearly_1000_is_appropriate_child = yes
}
#Otherwise pick whoever
alternative_limit = { bp2_yearly_1000_is_appropriate_child = yes }
save_scope_as = appropriate_child
}
}
#Otherwise a ward
else_if = {
limit = {
any_relation = {
type = ward
bp2_yearly_1000_is_appropriate_child = yes
}
}
random_relation = {
type = ward
#A child you care about
limit = {
opinion = {
target = root
value >= low_positive_opinion
}
bp2_yearly_1000_is_appropriate_child = yes
}
#Otherwise pick whoever
alternative_limit = { bp2_yearly_1000_is_appropriate_child = yes }
save_scope_as = appropriate_child
}
}
else_if = {
limit = {
any_warden_hostage = {
opinion = {
target = root
value >= low_negative_opinion
}
bp2_yearly_1000_is_appropriate_child = yes
}
}
random_warden_hostage = {
limit = {
opinion = {
target = root
value >= low_negative_opinion
}
bp2_yearly_1000_is_appropriate_child = yes
}
save_scope_as = appropriate_child
}
}
random_list = {
#Set a trait to work from and remember it; weights what stress coping events the child may get later in life
1 = {
trigger = { has_trait = drunkard }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:drunkard
}
}
}
1 = {
trigger = { has_trait = hashishiyah }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:hashishiyah
}
}
}
1 = {
trigger = { has_trait = reclusive }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:reclusive
}
}
}
1 = {
trigger = { has_trait = irritable }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:irritable
}
}
random_dummy_gender_effect = yes
}
1 = {
trigger = { has_trait = flagellant }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:flagellant
}
}
add_character_flag = should_be_topless
}
1 = {
trigger = { has_trait = profligate }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:profligate
}
}
random_dummy_gender_effect = yes
}
1 = {
trigger = { has_trait = improvident }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:improvident
}
}
}
1 = {
trigger = {
has_trait = contrite
any_courtier_or_guest = {
is_available_adult = yes
has_any_bad_relationship_with_root_trigger = no
}
}
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:contrite
}
}
random_courtier_or_guest = {
limit = {
is_available_adult = yes
has_any_bad_relationship_with_root_trigger = no
}
save_scope_as = other_guest
save_scope_as = portrait_to_display
}
}
1 = {
trigger = { has_trait = comfort_eater }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:comfort_eater
}
set_favorite_treat_effect = yes
}
set_favorite_treat_effect = yes
}
1 = {
trigger = { has_trait = inappetetic }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:inappetetic
}
}
}
1 = {
trigger = { has_trait = journaller }
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:journaller
}
}
}
1 = {
trigger = {
has_trait = confider
any_relation = {
type = friend
is_available = yes
location = root.location
}
}
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:confider
}
}
random_relation = {
type = friend
limit = {
is_available = yes
location = root.location
}
save_scope_as = confider_friend
save_scope_as = portrait_to_display
}
}
1 = {
trigger = {
has_trait = athletic
NOT = { has_trait = one_legged }
}
scope:appropriate_child = {
set_variable = {
name = witnessed_trait
value = flag:athletic
}
}
if = {
limit = { is_male = yes } #Yes, this is a boring restriction but it's the current lense for how things worked back then, I suspect
add_character_flag = should_be_topless
}
}
}
#To save us some script lines in the rest of the event, let's refer to a scope instead
scope:appropriate_child = {
if = {
limit = { exists = var:witnessed_trait }
switch = {
trigger = scope:appropriate_child.var:witnessed_trait
flag:drunkard = {
save_scope_value_as = {
name = triggered_trait
value = flag:drunkard
}
}
flag:hashishiyah = {
save_scope_value_as = {
name = triggered_trait
value = flag:hashishiyah
}
}
flag:reclusive = {
save_scope_value_as = {
name = triggered_trait
value = flag:reclusive
}
}
flag:irritable = {
save_scope_value_as = {
name = triggered_trait
value = flag:irritable
}
}
flag:flagellant = {
save_scope_value_as = {
name = triggered_trait
value = flag:flagellant
}
}
flag:profligate = {
save_scope_value_as = {
name = triggered_trait
value = flag:profligate
}
}
flag:improvident = {
save_scope_value_as = {
name = triggered_trait
value = flag:improvident
}
}
flag:contrite = {
save_scope_value_as = {
name = triggered_trait
value = flag:contrite
}
}
flag:comfort_eater = {
save_scope_value_as = {
name = triggered_trait
value = flag:comfort_eater
}
}
flag:inappetetic = {
save_scope_value_as = {
name = triggered_trait
value = flag:inappetetic
}
}
flag:journaller = {
save_scope_value_as = {
name = triggered_trait
value = flag:journaller
}
}
flag:confider = {
save_scope_value_as = {
name = triggered_trait
value = flag:confider
}
}
flag:athletic = {
save_scope_value_as = {
name = triggered_trait
value = flag:athletic
}
}
}
}
}
if = {
limit = {
scope:triggered_trait = flag:hashishiyah
}
add_character_flag = is_naked
}
}
#Hmm.
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:flagellant
scope:triggered_trait = flag:profligate
scope:triggered_trait = flag:comfort_eater
scope:triggered_trait = flag:inappetetic
}
}
desc = bp2_yearly.1000.a
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:reclusive }
desc = bp2_yearly.1000.b_reclusive
}
desc = bp2_yearly.1000.a_good
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:flagellant
scope:triggered_trait = flag:profligate
scope:triggered_trait = flag:improvident
}
}
desc = bp2_yearly.1000.a.flavor
}
desc = bp2_yearly.1000.a.flavor_good
}
}
custom_tooltip = bp2_yearly.1000.a.tt
#We're not too concerned that we got caught doing these; enjoy the stress loss
if = {
limit = {
OR = {
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:improvident
scope:triggered_trait = flag:contrite
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
}
}
stress_impact = {
base = miniscule_stress_impact_loss
}
}
trigger_event = {
days = 5
id = bp2_yearly.1001
}
#AI won't be getting this event
}
#Toot-toot, stress trait schmesh trait...
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { scope:triggered_trait = flag:drunkard }
desc = bp2_yearly.1000.b_drunkard
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:contrite }
desc = bp2_yearly.1000.b_contrite
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:inappetetic }
desc = bp2_yearly.1000.b_inappetetic
}
triggered_desc = {
trigger = {
scope:triggered_trait = flag:confider
}
desc = bp2_yearly.1000.b_us
}
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:irritable
}
}
desc = bp2_yearly.1000.b_agitated
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:hashishiyah }
desc = bp2_yearly.1000.b_hashishiyah
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:flagellant }
desc = bp2_yearly.1000.b_flagellant
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:improvident }
desc = bp2_yearly.1000.b_improvident
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:athletic }
desc = bp2_yearly.1000.b_athletic
}
desc = bp2_yearly.1000.b
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:irritable
}
}
desc = bp2_yearly.1000.b.flavor_agitated
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:contrite }
desc = bp2_yearly.1000.b.flavor_contrite
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:inappetetic }
desc = bp2_yearly.1000.b.flavor_inappetetic
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:confider }
desc = bp2_yearly.1000.b.flavor_confider
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:flagellant }
desc = bp2_yearly.1000.b.flavor_flagellant
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:improvident }
desc = bp2_yearly.1000.b.flavor_improvident
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:athletic }
desc = bp2_yearly.1000.b.flavor_athletic
}
desc = bp2_yearly.1000.b.flavor
}
}
trigger = { has_trait = eccentric }
scope:appropriate_child = { bp2_yearly_1000_award_trait_effect = yes }
#If it's not a chummy stress trait, let's lash out...
if = {
limit = {
OR = {
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:irritable
}
}
reverse_add_opinion = {
target = scope:appropriate_child
modifier = stress_lashed_out_opinion
opinion = -40
}
stress_impact = {
base = major_stress_impact_loss
}
}
#Otherwise indulge them
else = {
reverse_add_opinion = {
target = scope:appropriate_child
modifier = teaching_moment_opinion
opinion = 25
}
#More stress relief trade-off for worse inflicted stress traits
if = {
limit = {
OR = {
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
}
}
stress_impact = {
base = minor_stress_impact_loss
}
}
else_if = {
limit = {
OR = {
scope:triggered_trait = flag:improvident
scope:triggered_trait = flag:contrite
}
}
stress_impact = {
base = medium_stress_impact_loss
}
}
else = {
stress_impact = {
base = major_stress_impact_loss
}
}
}
#AI won't be getting this event
}
after = {
if = {
limit = { has_character_flag = should_be_topless }
remove_character_flag = should_be_topless
}
if = {
limit = { has_character_flag = is_naked }
remove_character_flag = is_naked
}
}
}
#Follow-up; the child is mimicking your stress behavior
bp2_yearly.1001 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1001.t
desc = {
#Hoppsan
first_valid = {
triggered_desc = {
trigger = { scope:triggered_trait = flag:drunkard }
desc = bp2_yearly.1001.desc_drunkard
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:hashishiyah }
desc = bp2_yearly.1001.desc_hashishiyah
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:reclusive }
desc = bp2_yearly.1001.desc_reclusive
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:irritable }
desc = bp2_yearly.1001.desc_irritable
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:flagellant }
desc = bp2_yearly.1001.desc_flagellant
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:profligate }
desc = bp2_yearly.1001.desc_profligate
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:improvident }
desc = bp2_yearly.1001.desc_improvident
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:contrite }
desc = bp2_yearly.1001.desc_contrite
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:comfort_eater }
desc = bp2_yearly.1001.desc_comfort_eater
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:inappetetic }
desc = bp2_yearly.1001.desc_inappetetic
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:journaller }
desc = bp2_yearly.1001.desc_journaller
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:confider }
desc = bp2_yearly.1001.desc_confider
}
triggered_desc = {
trigger = { scope:triggered_trait = flag:athletic }
desc = bp2_yearly.1001.desc_athletic
}
}
first_valid = {
#Hmm, this isn't _great_
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:flagellant
scope:triggered_trait = flag:profligate
scope:triggered_trait = flag:comfort_eater
scope:triggered_trait = flag:inappetetic
scope:triggered_trait = flag:improvident
scope:triggered_trait = flag:contrite
}
}
desc = bp2_yearly.1001.outro_bad
}
}
}
theme = family
#Let's be in a couple of different places
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:inappetetic
}
}
reference = feast_event
}
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:comfort_eater
}
}
reference = study
}
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:journaller
}
}
reference = bp2_nursery
}
override_background = {
trigger = { scope:triggered_trait = flag:flagellant }
reference = dungeon
}
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:athletic
scope:triggered_trait = flag:contrite
}
}
reference = courtyard
}
override_background = {
trigger = { scope:triggered_trait = flag:drunkard }
reference = bp1_wine_cellar
}
override_background = {
trigger = {
OR = {
scope:triggered_trait = flag:profligate
scope:triggered_trait = flag:improvident
scope:triggered_trait = flag:confider
}
}
reference = market
}
#Fallback
override_background = { reference = throne_room }
left_portrait = {
character = scope:appropriate_child
triggered_animation = {
trigger = { scope:triggered_trait = flag:drunkard }
animation = sick
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:improvident }
animation = personality_compassionate
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:irritable }
animation = rage
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:reclusive }
animation = anger
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:journaller }
animation = thinking
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:flagellant }
animation = pain
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:hashishiyah }
animation = personality_irrational
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:contrite }
animation = personality_zealous
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:confider }
animation = admiration
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:comfort_eater }
animation = shame
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:profligate }
animation = steward
}
triggered_animation = {
trigger = { scope:triggered_trait = flag:athletic }
animation = ecstasy
}
animation = stress
}
right_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
scope:triggered_trait = flag:drunkard
scope:triggered_trait = flag:hashishiyah
scope:triggered_trait = flag:reclusive
scope:triggered_trait = flag:flagellant
scope:triggered_trait = flag:comfort_eater
}
}
animation = shock
}
triggered_animation = {
trigger = {
OR = {
scope:triggered_trait = flag:profligate
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
scope:triggered_trait = flag:improvident
}
}
animation = thinking
}
animation = eavesdrop
}
immediate = {
#play_music_cue = "mx_cue_stress"
if = {
limit = { scope:triggered_trait = flag:contrite }
random_dummy_gender_effect = yes
}
scope:appropriate_child = {
if = {
limit = {
scope:triggered_trait = flag:athletic
is_male = yes
}
add_character_flag = should_be_topless
}
}
}
#Teach them better
option = {
name = bp2_yearly.1001.a
flavor = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
}
}
desc = bp2_yearly.1001.a.flavor_good
}
desc = bp2_yearly.1001.a.flavor
}
}
#These traits are net positive
if = {
limit = {
OR = {
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
}
}
duel = {
skill = learning
value = average_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
opinion_modifier = {
opinion_target = scope:appropriate_child
multiplier = 3
step = 5
}
modifier = {
has_trait = family_first
add = 25
}
modifier = {
has_trait = diplomat
add = 10
}
desc = bp2_yearly.1001.a.trait.desc
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1001.a.trait.t
left_icon = root
right_icon = scope:appropriate_child
scope:appropriate_child = { bp2_yearly_1000_award_trait_effect = yes }
reverse_add_opinion = {
target = scope:appropriate_child
modifier = teaching_moment_opinion
opinion = 25
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = bp2_yearly.1001.a.no_trait.desc
send_interface_toast = {
type = event_toast_effect_neutral
title = bp2_yearly.1001.a.no_trait.t
left_icon = root
right_icon = scope:appropriate_child
reverse_add_opinion = {
target = scope:appropriate_child
modifier = teaching_moment_opinion
opinion = 25
}
}
}
}
}
#These traits are to be avoided
else = {
duel = {
skill = learning
value = average_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
opinion_modifier = {
opinion_target = scope:appropriate_child
multiplier = 2
step = 5
}
modifier = {
has_trait = family_first
add = 25
}
modifier = {
has_trait = diplomat
add = 10
}
desc = bp2_yearly.1001.a.no_trait.desc
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1001.a.no_trait.t
left_icon = root
right_icon = scope:appropriate_child
reverse_add_opinion = {
target = scope:appropriate_child
modifier = teaching_moment_opinion
opinion = 25
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = 5
}
desc = bp2_yearly.1001.a.trait.desc
send_interface_toast = {
type = event_toast_effect_bad
title = bp2_yearly.1001.a.trait.t
left_icon = root
right_icon = scope:appropriate_child
scope:appropriate_child = { bp2_yearly_1000_award_trait_effect = yes }
}
}
}
}
#AI won't be getting this event
}
#I should change my ways
option = {
name = bp2_yearly.1001.b
flavor = bp2_yearly.1001.b.flavor
#Doesn't make sense to lose these traits
trigger = {
NOR = {
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
}
}
switch = {
trigger = scope:triggered_trait
flag:drunkard = { remove_trait = drunkard }
flag:hashishiyah = { remove_trait = hashishiyah }
flag:reclusive = { remove_trait = reclusive }
flag:irritable = { remove_trait = irritable }
flag:flagellant = { remove_trait = flagellant }
flag:profligate = { remove_trait = profligate }
flag:improvident = { remove_trait = improvident }
flag:contrite = { remove_trait = contrite }
flag:comfort_eater = { remove_trait = comfort_eater }
flag:inappetetic = { remove_trait = inappetetic }
}
#Longer cooldown if you actually changed your ways
add_character_flag = {
flag = bp2_yearly_1001_removed_stress_trait
years = 20
}
#You're stressed about losing your outlet; but also proud about changing your ways
add_character_modifier = {
modifier = changed_ways_modifier
years = 10
}
#Massive gain
stress_impact = {
base = major_stress_impact_gain
#Some mitigation
whole_of_body = minor_stress_impact_loss
stubborn = minor_stress_impact_loss
}
#AI won't be getting this event
}
#Meh, guess it's out of my hands
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
has_trait = sadistic
has_trait = eccentric
}
#That's my girl!
desc = bp2_yearly.1001.c_ecc_sadist
}
triggered_desc = {
trigger = { has_trait = callous }
#Who am I to interrupt
desc = bp2_yearly.1001.c.flavor_callous
}
desc = bp2_yearly.1001.c
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = {
scope:triggered_trait = flag:flagellant
has_trait = sadistic
has_trait = eccentric
}
#Let the flesh sing
desc = bp2_yearly.1001.c.flavor_ecc_sadist
}
triggered_desc = {
trigger = { has_trait = callous }
#Who said child-rearing was difficult
desc = bp2_yearly.1001.c.flavor_callous
}
desc = bp2_yearly.1001.c.flavor
}
}
#Doesn't make sense to not encourage these
trigger = {
NOR = {
scope:triggered_trait = flag:journaller
scope:triggered_trait = flag:confider
scope:triggered_trait = flag:athletic
}
}
random_list = {
50 = {
send_interface_toast = {
type = event_toast_effect_bad
title = bp2_yearly.1001.a.trait.t
right_icon = scope:appropriate_child
scope:appropriate_child = { bp2_yearly_1000_award_trait_effect = yes }
}
}
50 = {
#Nothing happens
}
}
#Sadists be sadists
if = {
limit = {
OR = {
scope:triggered_trait = flag:irritable
scope:triggered_trait = flag:flagellant
}
has_trait = sadistic
}
stress_impact = {
diligent = miniscule_stress_impact_gain
lazy = miniscule_stress_impact_loss
sadistic = medium_stress_impact_loss
}
}
else = {
stress_impact = {
diligent = miniscule_stress_impact_gain
lazy = miniscule_stress_impact_loss
}
}
#AI won't be getting this event
}
after = {
scope:appropriate_child = {
if = {
limit = { has_character_flag = should_be_topless }
remove_character_flag = should_be_topless
}
}
}
}
scripted_trigger bp2_yearly_1005_is_stressed_adult = {
location = root.location
OR = {
AND = {
has_trait = drunkard
#Is the trait transferrable?
NOT = {
root = { has_trait = drunkard }
}
}
AND = {
has_trait = hashishiyah
NOT = {
root = { has_trait = hashishiyah }
}
}
AND = {
has_trait = reclusive
NOT = {
root = { has_trait = reclusive }
}
}
AND = {
has_trait = irritable
NOT = {
root = { has_trait = irritable }
}
}
AND = {
has_trait = flagellant
NOT = {
root = { has_trait = flagellant }
}
}
AND = {
has_trait = profligate
NOT = {
root = { has_trait = profligate }
}
}
AND = {
has_trait = improvident
NOT = {
root = { has_trait = improvident }
}
}
AND = {
has_trait = contrite
NOT = {
root = { has_trait = contrite }
}
}
AND = {
has_trait = comfort_eater
NOT = {
root = { has_trait = comfort_eater }
}
}
AND = {
has_trait = inappetetic
NOT = {
root = { has_trait = inappetetic }
}
}
AND = {
has_trait = journaller
NOT = {
root = { has_trait = journaller }
}
}
AND = {
has_trait = confider
any_relation = {
type = friend
is_available = yes
location = this.location
}
NOT = {
root = { has_trait = confider }
}
}
AND = {
has_trait = athletic
NOT = {
root = { has_trait = athletic }
}
}
}
}
#Child: You notice your parent/guardian performing a stress trait
bp2_yearly.1005 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1005.t
desc = {
desc = bp2_yearly.1005.intro
#Well, this is an interesting behavior...
first_valid = {
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:drunkard }
desc = bp2_yearly.1005.desc_drunkard
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:hashishiyah }
desc = bp2_yearly.1005.desc_hashishiyah
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:reclusive }
desc = bp2_yearly.1005.desc_reclusive
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:irritable }
desc = bp2_yearly.1005.desc_irritable
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:flagellant }
desc = bp2_yearly.1005.desc_flagellant
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:profligate }
desc = bp2_yearly.1005.desc_profligate
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:improvident }
desc = bp2_yearly.1005.desc_improvident
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:contrite }
desc = bp2_yearly.1005.desc_contrite
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:comfort_eater }
desc = bp2_yearly.1005.desc_comfort_eater
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:inappetetic }
desc = bp2_yearly.1005.desc_inappetetic
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:journaller }
desc = bp2_yearly.1005.desc_journaller
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:confider }
desc = bp2_yearly.1005.desc_confider
}
triggered_desc = {
trigger = { var:witnessed_trait ?= flag:athletic }
desc = bp2_yearly.1005.desc_athletic
}
}
}
theme = family
#Let's be in a couple of different places
override_background = {
trigger = { var:witnessed_trait ?= flag:inappetetic }
reference = feast_event
}
override_background = {
trigger = {
OR = {
var:witnessed_trait ?= flag:hashishiyah
var:witnessed_trait ?= flag:comfort_eater
var:witnessed_trait ?= flag:journaller
}
}
reference = relaxing_room
}
override_background = {
trigger = {
OR = {
var:witnessed_trait ?= flag:contrite
var:witnessed_trait ?= flag:confider
}
}
reference = corridor_day
}
override_background = {
trigger = { var:witnessed_trait ?= flag:drunkard }
reference = bp1_wine_cellar
}
override_background = {
trigger = { var:witnessed_trait ?= flag:irritable }
reference = bedchamber
}
override_background = {
trigger = { var:witnessed_trait ?= flag:reclusive }
reference = study
}
override_background = {
trigger = { var:witnessed_trait ?= flag:flagellant }
reference = dungeon
}
override_background = {
trigger = { var:witnessed_trait ?= flag:profligate }
reference = market
}
override_background = {
trigger = { var:witnessed_trait ?= flag:athletic }
reference = ep2_tournament
}
override_background = {
trigger = { var:witnessed_trait ?= flag:improvident }
reference = temple
}
#Fallback
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:stressed_adult
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:drunkard }
}
animation = drink_goblet
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:improvident }
}
animation = personality_compassionate
}
triggered_animation = {
trigger = {
root = {
OR = {
var:witnessed_trait ?= flag:reclusive
var:witnessed_trait ?= flag:inappetetic
}
}
}
animation = personality_cynical
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:journaller }
}
animation = thinking
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:flagellant }
}
animation = pain
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:contrite }
}
animation = personality_zealous
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:confider }
}
animation = admiration
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:athletic }
}
animation = ecstasy
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:profligate }
}
animation = steward
}
triggered_animation = {
trigger = {
root = { var:witnessed_trait ?= flag:irritable }
}
animation = rage
}
triggered_animation = {
trigger = {
OR = {
has_trait = eccentric
has_trait = lunatic
root = { var:witnessed_trait ?= flag:hashishiyah }
}
}
animation = personality_irrational
}
animation = stress
}
lower_right_portrait = {
trigger = { exists = scope:confidant_friend }
character = scope:confidant_friend
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available_child = yes
age >= 6
age <= 14
is_landed = yes
is_ai = no
OR = {
any_relation = {
type = guardian
bp2_yearly_1005_is_stressed_adult = yes
}
any_parent = { bp2_yearly_1005_is_stressed_adult = yes }
}
NOT = { has_variable = witnessed_trait }
}
weight_multiplier = {
base = 0
#The more stress traits; the higher chance
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = drunkard
}
any_parent = {
location = root.location
has_trait = drunkard
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = hashishiyah
}
any_parent = {
location = root.location
has_trait = hashishiyah
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = reclusive
}
any_parent = {
location = root.location
has_trait = reclusive
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = irritable
}
any_parent = {
location = root.location
has_trait = irritable
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = flagellant
}
any_parent = {
location = root.location
has_trait = flagellant
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = profligate
}
any_parent = {
location = root.location
has_trait = profligate
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = improvident
}
any_parent = {
location = root.location
has_trait = improvident
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = contrite
}
any_parent = {
location = root.location
has_trait = contrite
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = comfort_eater
}
any_parent = {
location = root.location
has_trait = comfort_eater
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = inappetetic
}
any_parent = {
location = root.location
has_trait = inappetetic
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = journaller
}
any_parent = {
location = root.location
has_trait = journaller
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = confider
}
any_parent = {
location = root.location
has_trait = confider
}
}
add = 1
}
modifier = {
OR = {
any_relation = {
type = guardian
location = root.location
has_trait = athletic
}
any_parent = {
location = root.location
has_trait = athletic
}
}
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_stress"
#Your guardian first (you probably spend more time together)
random_relation = {
type = guardian
limit = { bp2_yearly_1005_is_stressed_adult = yes }
save_scope_as = stressed_adult
}
#Then a parent
if = {
limit = {
NOT = { exists = scope:stressed_adult }
}
random_parent = {
#A parent you care about
limit = {
opinion = {
target = root
value >= low_positive_opinion
}
bp2_yearly_1005_is_stressed_adult = yes
}
#Otherwise pick whoever
alternative_limit = { bp2_yearly_1005_is_stressed_adult = yes }
save_scope_as = stressed_adult
}
}
random_list = {
#Set a trait to work from and remember it; weights what stress coping events the child may get later in life
1 = {
trigger = {
scope:stressed_adult = { has_trait = drunkard }
}
set_variable = {
name = witnessed_trait
value = flag:drunkard
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = hashishiyah }
}
set_variable = {
name = witnessed_trait
value = flag:hashishiyah
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = reclusive }
}
set_variable = {
name = witnessed_trait
value = flag:reclusive
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = irritable }
}
set_variable = {
name = witnessed_trait
value = flag:irritable
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = flagellant }
}
set_variable = {
name = witnessed_trait
value = flag:flagellant
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = profligate }
}
set_variable = {
name = witnessed_trait
value = flag:profligate
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = improvident }
}
set_variable = {
name = witnessed_trait
value = flag:improvident
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = contrite }
}
set_variable = {
name = witnessed_trait
value = flag:contrite
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = comfort_eater }
}
scope:stressed_adult = { set_favorite_treat_effect = yes }
set_variable = {
name = witnessed_trait
value = flag:comfort_eater
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = inappetetic }
}
set_variable = {
name = witnessed_trait
value = flag:inappetetic
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = journaller }
}
set_variable = {
name = witnessed_trait
value = flag:journaller
}
}
1 = {
trigger = {
scope:stressed_adult = {
has_trait = confider
any_relation = {
type = friend
is_available = yes
location = this.location
}
}
}
scope:stressed_adult = {
random_relation = {
type = friend
limit = {
is_available = yes
location = this.location
}
save_scope_as = confidant_friend
}
}
set_variable = {
name = witnessed_trait
value = flag:confider
}
}
1 = {
trigger = {
scope:stressed_adult = { has_trait = athletic }
}
set_variable = {
name = witnessed_trait
value = flag:athletic
}
}
}
}
#_What's the worst thing that could happen_
option = {
name = bp2_yearly.1005.a
flavor = bp2_yearly.1005.a.flavor
random_list = {
25 = {
trigger = {
NOR = {
var:witnessed_trait ?= flag:confider
var:witnessed_trait ?= flag:journaller
var:witnessed_trait ?= flag:athletic
}
}
desc = bp2_yearly.1005.a.insight.desc
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1005.a.insight.t
left_icon = root
add_character_modifier = {
modifier = stress_insight_modifier
#Reflecting on yourself is half the battle
}
}
}
25 = {
desc = bp2_yearly.1005.a.stressed.desc
send_interface_toast = {
type = event_toast_effect_bad
title = bp2_yearly.1005.a.stressed.t
left_icon = root
stress_impact = { base = miniscule_stress_impact_gain }
}
}
50 = {
desc = bp2_yearly.1005.a.trait.desc
bp2_yearly_1000_award_trait_effect = yes
stress_impact = { base = medium_stress_impact_loss }
}
}
#AI won't be getting this event
}
#Nah
option = {
name = bp2_yearly.1005.b
#AI won't be getting this event
}
}
scripted_trigger bp2_yearly_1010_is_hugging_child = {
age >= 2
age < 16
is_available = yes
is_ai = yes
location = root.location
opinion = {
target = root
value >= medium_positive_opinion
}
}
#Parent/Guardian: Your child/ward gives you a hug
bp2_yearly.1010 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1010.t
desc = {
desc = bp2_yearly.1010.intro
first_valid = {
#Age 2 kid doesn't speak
triggered_desc = {
trigger = {
scope:hugging_child = { age = 2 }
}
desc = bp2_yearly.1010.desc_toddler
}
#Age 3-5 kid speaks... ish
triggered_desc = {
trigger = {
scope:hugging_child = {
age > 2
age < 6
}
}
desc = bp2_yearly.1010.desc_rambler
}
#Age 6-10 kid speaks
triggered_desc = {
trigger = {
scope:hugging_child = {
age > 5
age < 11
}
}
desc = bp2_yearly.1010.desc_kid
}
#Age 10-15 teenager
triggered_desc = {
trigger = {
scope:hugging_child = {
age > 10
age <= 15
}
}
desc = bp2_yearly.1010.desc_teenager
}
}
first_valid = {
triggered_desc = {
trigger = { has_trait = callous }
desc = bp2_yearly.1010.outro_callous
}
triggered_desc = {
trigger = {
scope:hugging_child = {
age >= 2
age < 11
}
}
desc = bp2_yearly.1010.outro_young
}
desc = bp2_yearly.1010.outro_older
}
}
theme = family
override_background = { reference = council_chamber }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = callous }
animation = personality_cynical
}
animation = shock
}
right_portrait = {
character = scope:hugging_child
animation = personality_content
}
#Set up the cooldown
cooldown = { years = 5 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
static_group_filter = {
group = bp2_yearly.1010
match = 0.25
}
stress > 0
is_available = yes
is_physically_able_adult = yes
is_landed = yes
OR = {
any_child = {
bp2_yearly_1010_is_hugging_child = yes
}
any_relation = {
type = ward
bp2_yearly_1010_is_hugging_child = yes
}
any_warden_hostage = {
bp2_yearly_1010_is_hugging_child = yes
}
}
}
weight_multiplier = {
base = 1
#The more stress; the higher chance
modifier = {
stress_level > 0
add = 1
}
modifier = {
stress_level > 1
add = 1
}
modifier = {
stress_level > 2
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_touching_moment"
#Your own children first
random_list = {
33 = {
trigger = { any_child = { bp2_yearly_1010_is_hugging_child = yes } }
random_child = {
#A child you care about
limit = { bp2_yearly_1010_is_hugging_child = yes }
save_scope_as = hugging_child
}
}
33 = {
trigger = {
any_relation = {
type = ward
bp2_yearly_1010_is_hugging_child = yes
}
}
random_relation = {
type = ward
#A child you care about
limit = { bp2_yearly_1010_is_hugging_child = yes }
save_scope_as = hugging_child
}
}
33 = {
trigger = {
any_warden_hostage = {
bp2_yearly_1010_is_hugging_child = yes
}
}
random_warden_hostage = {
#A child you care about
limit = { bp2_yearly_1010_is_hugging_child = yes }
save_scope_as = hugging_child
}
}
}
}
#Have some stress relief
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { has_trait = callous }
desc = bp2_yearly.1010.a_callous
}
desc = bp2_yearly.1010.a
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = { has_trait = callous }
desc = bp2_yearly.1010.a.flavor_callous
}
desc = bp2_yearly.1010.a.flavor
}
}
stress_impact = { base = minor_stress_impact_loss }
}
}
scripted_trigger bp2_yearly_1015_is_golden_child = {
age >= 7
age < 16
is_available = yes
is_ai = yes
location = root.location
opinion = {
target = root
value >= medium_positive_opinion
}
NOT = { has_variable = had_bp2_yearly_1015_stewardship_event }
}
#Parent/Guardian: Your child/ward found a pouch of gold while exploring
bp2_yearly.1015 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1015.t
desc = {
desc = bp2_yearly.1015.intro
first_valid = {
triggered_desc = {
trigger = { is_parent_of = scope:golden_child }
desc = bp2_yearly.1015.desc_parent
}
desc = bp2_yearly.1015.desc_guardian
}
desc = bp2_yearly.1015.outro
}
theme = family
override_background = { reference = bedchamber }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = callous }
animation = personality_cynical
}
triggered_animation = {
trigger = { has_trait = greedy }
animation = personality_greedy
}
animation = personality_compassionate
}
right_portrait = {
character = scope:golden_child
animation = steward
}
#Set up the cooldown
cooldown = { years = 5 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
OR = {
any_child = { bp2_yearly_1015_is_golden_child = yes }
any_relation = {
type = ward
bp2_yearly_1015_is_golden_child = yes
}
any_warden_hostage = {
bp2_yearly_1015_is_golden_child = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
any_child = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
any_relation = {
type = ward
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
any_warden_hostage = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
}
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
#Your own children first
random_child = {
limit = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
alternative_limit = { bp2_yearly_1015_is_golden_child = yes }
save_scope_as = golden_child
}
random_list = {
33 = {
trigger = { any_child = { bp2_yearly_1015_is_golden_child = yes } }
random_child = {
limit = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
this = root.player_heir
}
alternative_limit = {
bp2_yearly_1015_is_golden_child = yes
this = root.player_heir
}
alternative_limit = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
alternative_limit = { bp2_yearly_1015_is_golden_child = yes }
save_scope_as = golden_child
}
modifier = {
any_child = {
bp2_yearly_1015_is_golden_child = yes
this = root.player_heir
}
add = 50
}
}
33 = {
trigger = {
any_relation = {
type = ward
bp2_yearly_1015_is_golden_child = yes
}
}
random_relation = {
type = ward
limit = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
alternative_limit = { bp2_yearly_1015_is_golden_child = yes }
save_scope_as = golden_child
}
}
33 = {
trigger = {
any_warden_hostage = {
bp2_yearly_1015_is_golden_child = yes
}
}
random_warden_hostage = {
#A child you care about
limit = {
bp2_yearly_1015_is_golden_child = yes
has_focus = education_stewardship
}
alternative_limit = { bp2_yearly_1015_is_golden_child = yes }
save_scope_as = golden_child
}
}
}
scope:golden_child = {
set_variable = {
name = had_bp2_yearly_1015_stewardship_event
value = flag:yes
}
}
}
#Have some gold
option = {
name = bp2_yearly.1015.a
flavor = {
first_valid = {
triggered_desc = {
trigger = { has_trait = greedy }
desc = bp2_yearly.1015.a.flavor_greedy
}
desc = bp2_yearly.1015.a.flavor
}
}
add_gold = minor_gold_value
ai_chance = {
base = 100
}
}
#Have some education
option = {
name = bp2_yearly.1015.b
trigger = {
scope:golden_child = { has_focus = education_stewardship }
}
#More points for a matching education
if = {
limit = { has_trait = education_stewardship }
custom_tooltip = bp2_yearly.1015.b.tt_matching
hidden_effect = {
scope:golden_child = {
education_point_acquisition_additional_points_effect = { LEVEL = mid }
}
}
}
else = {
custom_tooltip = bp2_yearly.1015.b.tt
hidden_effect = {
scope:golden_child = {
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
}
}
reverse_add_opinion = {
target = scope:golden_child
modifier = teaching_moment_opinion
opinion = 15
}
stress_impact = { greedy = minor_stress_impact_gain }
ai_chance = {
base = 100
modifier = {
has_trait = greedy
factor = 0
}
}
}
}
scripted_trigger bp2_yearly_1020_is_secrety_child = {
age >= 7
age < 16
is_available = yes
is_ai = yes
location = root.location
opinion = {
target = root
value >= medium_positive_opinion
}
NOT = { has_variable = had_bp2_yearly_1020_intrigue_event }
}
scripted_trigger bp2_yearly_1020_is_relevant_secret = {
is_known_by = prev #A courtier
NOR = {
secret_owner = root
is_known_by = root
}
}
#Parent/Guardian: Your child/ward has found a secret in court
bp2_yearly.1020 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1020.t
desc = {
desc = bp2_yearly.1020.intro
first_valid = {
triggered_desc = {
trigger = { is_parent_of = scope:secrety_child }
desc = bp2_yearly.1020.desc_parent
}
desc = bp2_yearly.1020.desc_guardian
}
desc = bp2_yearly.1020.desc
}
theme = family
override_background = { reference = study }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = callous }
animation = personality_cynical
}
triggered_animation = {
trigger = { has_trait = deceitful }
animation = schadenfreude
}
animation = personality_dishonorable
}
right_portrait = {
character = scope:secrety_child
animation = ecstasy
}
lower_center_portrait = {
character = scope:secret_keeper
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
is_adult = yes
OR = {
any_child = {
bp2_yearly_1020_is_secrety_child = yes
save_temporary_scope_as = child_check
}
any_relation = {
type = ward
bp2_yearly_1020_is_secrety_child = yes
save_temporary_scope_as = child_check
}
any_warden_hostage = {
bp2_yearly_1020_is_secrety_child = yes
save_temporary_scope_as = child_check
}
}
any_courtier = {
NOR = {
this = scope:child_check
this = root
is_parent_of = scope:child_check #Don't rat out your parents
}
any_secret = {
bp2_yearly_1020_is_relevant_secret = yes
NOR = {
trigger_if = {
limit = { exists = secret_target }
secret_target = scope:child_check
}
secret_owner = scope:child_check #Or yourself
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
any_child = {
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_intrigue
}
any_relation = {
type = ward
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_intrigue
}
any_warden_hostage = {
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_intrigue
}
}
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
random_list = {
33 = {
trigger = { any_child = { bp2_yearly_1020_is_secrety_child = yes } }
random_child = {
limit = {
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_intrigue
this = root.player_heir
}
alternative_limit = {
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_intrigue
}
alternative_limit = { bp2_yearly_1020_is_secrety_child = yes }
save_scope_as = secrety_child
}
modifier = {
any_child = {
bp2_yearly_1020_is_secrety_child = yes
this = root.player_heir
}
add = 50
}
}
33 = {
trigger = {
any_relation = {
type = ward
bp2_yearly_1020_is_secrety_child = yes
}
}
random_relation = {
type = ward
limit = {
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_stewardship
}
alternative_limit = { bp2_yearly_1020_is_secrety_child = yes }
save_scope_as = secrety_child
}
}
33 = {
trigger = {
any_warden_hostage = {
bp2_yearly_1020_is_secrety_child = yes
}
}
random_warden_hostage = {
#A child you care about
limit = {
bp2_yearly_1020_is_secrety_child = yes
has_focus = education_stewardship
}
alternative_limit = { bp2_yearly_1020_is_secrety_child = yes }
save_scope_as = secrety_child
}
}
}
#Find the secret to reveal
random_courtier = {
limit = {
NOR = {
this = scope:secrety_child
this = root
is_parent_of = scope:secrety_child #Don't rat out your parents
}
any_secret = {
bp2_yearly_1020_is_relevant_secret = yes
NOR = {
trigger_if = {
limit = { exists = secret_target }
secret_target = scope:secrety_child
}
secret_owner = scope:secrety_child #Or yourself
}
}
}
save_scope_as = secret_keeper
random_secret = {
limit = {
bp2_yearly_1020_is_relevant_secret = yes
NOR = {
trigger_if = {
limit = { exists = secret_target }
secret_target = scope:secrety_child
}
secret_owner = scope:secrety_child
}
}
hidden_effect = {
if = {
limit = {
NOT = { is_known_by = scope:secrety_child }
}
reveal_to = scope:secrety_child
}
}
save_scope_as = bp2_yearly_1020_secret_to_reveal
}
}
scope:secrety_child = {
set_variable = {
name = had_bp2_yearly_1020_intrigue_event
value = flag:yes
}
}
}
#Have a secret
option = {
name = bp2_yearly.1020.a
custom_tooltip = bp2_yearly.1020.a.tt
hidden_effect = {
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1020.a.secret.t
left_icon = root
right_icon = scope:secret_keeper
scope:bp2_yearly_1020_secret_to_reveal = { reveal_to = root }
}
}
ai_chance = {
base = 100
}
}
#Have some education
option = {
name = bp2_yearly.1020.b
trigger = {
scope:secrety_child = { has_focus = education_intrigue }
}
#More points for a matching education
if = {
limit = { has_trait = education_intrigue }
custom_tooltip = bp2_yearly.1020.b.tt_matching
hidden_effect = {
scope:secrety_child = {
education_point_acquisition_additional_points_effect = { LEVEL = mid }
}
}
}
else = {
custom_tooltip = bp2_yearly.1020.b.tt
hidden_effect = {
scope:secrety_child = {
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
}
}
reverse_add_opinion = {
target = scope:secrety_child
modifier = teaching_moment_opinion
opinion = 15
}
stress_impact = { deceitful = minor_stress_impact_gain }
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
factor = 0
}
}
}
}
scripted_trigger bp2_yearly_1030_is_focus_child = {
age >= 5
age < 16
is_available = yes
is_ai = yes
OR = { # A focus is selected
has_focus = education_martial
has_focus = education_intrigue
has_focus = education_learning
has_focus = education_stewardship
has_focus = education_diplomacy
}
OR = {
AND = {
root = { has_trait = education_martial }
NOT = { has_focus = education_martial }
}
AND = {
root = { has_trait = education_intrigue }
NOT = { has_focus = education_intrigue }
}
AND = {
root = { has_trait = education_learning }
NOT = { has_focus = education_learning }
}
AND = {
root = { has_trait = education_stewardship }
NOT = { has_focus = education_stewardship }
}
AND = {
root = { has_trait = education_diplomacy }
NOT = { has_focus = education_diplomacy }
}
}
NOT = { has_variable = had_bp2_yearly_1030_focus_event }
}
#Parent: Your child does not have the same educational trait as you. Change?
bp2_yearly.1030 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1030.t
desc = bp2_yearly.1030.desc
theme = education
override_background = { reference = bp2_nursery }
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:focus_child
animation = reading
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
is_adult = yes
any_child = { bp2_yearly_1030_is_focus_child = yes }
}
weight_multiplier = {
base = 1
#The better educational trait; the higher chance
modifier = {
has_trait = education_martial_2
add = 1
}
modifier = {
has_trait = education_martial_3
add = 2
}
modifier = {
has_trait = education_martial_4
add = 3
}
modifier = {
has_trait = education_intrigue_2
add = 1
}
modifier = {
has_trait = education_intrigue_3
add = 2
}
modifier = {
has_trait = education_intrigue_4
add = 3
}
modifier = {
has_trait = education_learning_2
add = 1
}
modifier = {
has_trait = education_learning_3
add = 2
}
modifier = {
has_trait = education_learning_4
add = 3
}
modifier = {
has_trait = education_stewardship_2
add = 1
}
modifier = {
has_trait = education_stewardship_3
add = 2
}
modifier = {
has_trait = education_stewardship_4
add = 3
}
modifier = {
has_trait = education_diplomacy_2
add = 1
}
modifier = {
has_trait = education_diplomacy_3
add = 2
}
modifier = {
has_trait = education_diplomacy_4
add = 3
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
random_child = {
limit = {
bp2_yearly_1030_is_focus_child = yes
NOT = { has_variable = had_bp2_yearly_1030_focus_event }
}
save_scope_as = focus_child
}
scope:focus_child = {
set_variable = {
name = had_bp2_yearly_1030_focus_event
value = flag:yes
}
}
}
#My way or the highway
option = {
name = bp2_yearly.1030.a
custom_tooltip = bp2_yearly.1030.a.tt_change
custom_tooltip = bp2_yearly.1030.a.tt_tutor
hidden_effect = {
if = {
limit = { has_trait = education_martial }
scope:focus_child = {
set_focus = education_martial
change_variable = {
name = education_martial_variable
add = age
}
}
}
else_if = {
limit = { has_trait = education_intrigue }
scope:focus_child = {
set_focus = education_intrigue
change_variable = {
name = education_intrigue_variable
add = age
}
}
}
else_if = {
limit = { has_trait = education_learning }
scope:focus_child = {
set_focus = education_learning
change_variable = {
name = education_learning_variable
add = age
}
}
}
else_if = {
limit = { has_trait = education_stewardship }
scope:focus_child = {
set_focus = education_stewardship
change_variable = {
name = education_stewardship_variable
add = age
}
}
}
else_if = {
limit = { has_trait = education_diplomacy }
scope:focus_child = {
set_focus = education_diplomacy
change_variable = {
name = education_diplomacy_variable
add = age
}
}
}
}
stress_impact = {
base = medium_stress_impact_gain
diligent = minor_stress_impact_loss
ambitious = minor_stress_impact_loss
}
ai_chance = {
base = 0
}
}
#It's fine, I guess...
option = {
name = bp2_yearly.1030.b
custom_tooltip = bp2_yearly.1030.b.tt
#To avoid an empty random list
hidden_effect = {
scope:focus_child = { education_point_acquisition_effect = yes }
}
ai_chance = {
base = 100
}
}
}
scripted_trigger bp2_yearly_1035_is_rock_child = {
age >= 7
age < 16
is_available = yes
is_ai = yes
location = root.location
opinion = {
target = root
value >= medium_positive_opinion
}
NOT = { has_variable = had_bp2_yearly_1035_learning_event }
}
#Parent/Guardian: Your child/ward has a rock collection
bp2_yearly.1035 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1035.t
desc = {
desc = bp2_yearly.1035.desc
first_valid = {
triggered_desc = {
trigger = { is_parent_of = scope:rock_child }
desc = bp2_yearly.1035.desc_parent
}
desc = bp2_yearly.1035.desc_guardian
}
}
theme = family
override_background = {
trigger = {
has_tgp_dlc_trigger = yes
location = {
geographical_region = world_asia_east
}
}
reference = relaxing_room
}
override_background = { reference = bp2_nursery }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = callous }
animation = personality_cynical
}
triggered_animation = {
trigger = { has_trait = greedy }
animation = personality_greedy
}
animation = personality_coward
}
right_portrait = {
character = scope:rock_child
animation = love
}
artifact = {
target = scope:gemstone_trinket
position = lower_center_portrait
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
is_adult = yes
OR = {
any_child = { bp2_yearly_1035_is_rock_child = yes }
any_relation = {
type = ward
bp2_yearly_1035_is_rock_child = yes
}
any_warden_hostage = {
bp2_yearly_1035_is_rock_child = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
any_child = {
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
}
any_relation = {
type = ward
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
}
any_warden_hostage = {
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
}
}
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
random_list = {
33 = {
trigger = { any_child = { bp2_yearly_1035_is_rock_child = yes } }
random_child = {
limit = {
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
this = root.player_heir
}
alternative_limit = {
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
}
alternative_limit = { bp2_yearly_1035_is_rock_child = yes }
save_scope_as = rock_child
}
modifier = {
any_child = {
bp2_yearly_1035_is_rock_child = yes
this = root.player_heir
}
add = 50
}
}
33 = {
trigger = {
any_relation = {
type = ward
bp2_yearly_1035_is_rock_child = yes
}
}
random_relation = {
type = ward
limit = {
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
}
alternative_limit = { bp2_yearly_1035_is_rock_child = yes }
save_scope_as = rock_child
}
}
33 = {
trigger = {
any_warden_hostage = {
bp2_yearly_1035_is_rock_child = yes
}
}
random_warden_hostage = {
#A child you care about
limit = {
bp2_yearly_1035_is_rock_child = yes
has_focus = education_learning
}
alternative_limit = { bp2_yearly_1035_is_rock_child = yes }
save_scope_as = rock_child
}
}
}
root.location = { save_scope_as = trinket_location }
#Create the gemstone
hidden_effect = {
scope:rock_child = {
random_list = {
50 = {
create_artifact = {
name = gemstone_trinket_rough
description = gemstone_trinket_rough.desc
type = miscellaneous
visuals = diamond
modifier = artifact_monthly_minor_prestige_1_modifier
modifier = artifact_learning_1_modifier
save_scope_as = gemstone_trinket
wealth = 15
quality = 15
max_durability = 30
generate_history = no
}
}
50 = {
create_artifact = {
name = gemstone_trinket_modest
description = gemstone_trinket_modest.desc
type = miscellaneous
visuals = diamond
modifier = artifact_monthly_minor_prestige_2_modifier
modifier = artifact_learning_1_modifier
save_scope_as = gemstone_trinket
wealth = 15
quality = 15
max_durability = 40
generate_history = no
}
}
50 = {
create_artifact = {
name = gemstone_trinket_brilliant
description = gemstone_trinket_brilliant.desc
type = miscellaneous
visuals = diamond
modifier = artifact_monthly_minor_prestige_3_modifier
modifier = artifact_learning_2_modifier
save_scope_as = gemstone_trinket
wealth = 15
quality = 15
max_durability = 50
generate_history = no
}
}
}
}
}
scope:rock_child = {
set_variable = {
name = had_bp2_yearly_1035_learning_event
value = flag:yes
}
}
}
#Have a gem trinket
option = {
name = bp2_yearly.1035.a
flavor = bp2_yearly.1035.a.flavor
scope:gemstone_trinket = { set_owner = root }
ai_chance = {
base = 100
}
}
#Have some education
option = {
name = bp2_yearly.1035.b
trigger = {
scope:rock_child = { has_focus = education_learning }
}
#More points for a matching education
if = {
limit = { has_trait = education_learning }
custom_tooltip = bp2_yearly.1035.b.tt_matching
hidden_effect = {
scope:rock_child = {
education_point_acquisition_additional_points_effect = { LEVEL = mid }
}
}
}
else = {
custom_tooltip = bp2_yearly.1035.b.tt
hidden_effect = {
scope:rock_child = {
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
}
}
reverse_add_opinion = {
target = scope:rock_child
modifier = teaching_moment_opinion
opinion = 15
}
stress_impact = { greedy = minor_stress_impact_gain }
ai_chance = {
base = 100
modifier = {
has_trait = greedy
factor = 0
}
}
}
}
scripted_trigger bp2_yearly_1040_is_sparring_child = {
age >= 7
age < 16
is_available = yes
is_ai = yes
location = root.location
opinion = {
target = root
value >= medium_positive_opinion
}
NOT = { has_variable = had_bp2_yearly_1040_martial_event }
}
#Parent/Guardian: Your child/ward has a text about martial
bp2_yearly.1040 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1040.t
desc = bp2_yearly.1040.desc
theme = family
override_background = { reference = study }
left_portrait = {
character = root
animation = reading
}
right_portrait = {
character = scope:sparring_child
animation = marshal_wooden_sword
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
is_adult = yes
OR = {
any_child = { bp2_yearly_1040_is_sparring_child = yes }
any_relation = {
type = ward
bp2_yearly_1040_is_sparring_child = yes
}
any_warden_hostage = {
bp2_yearly_1040_is_sparring_child = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
any_child = {
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
}
any_relation = {
type = ward
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
}
any_warden_hostage = {
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
}
}
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
random_list = {
33 = {
trigger = { any_child = { bp2_yearly_1040_is_sparring_child = yes } }
random_child = {
limit = {
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
this = root.player_heir
}
alternative_limit = {
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
}
alternative_limit = { bp2_yearly_1040_is_sparring_child = yes }
save_scope_as = sparring_child
}
modifier = {
any_child = {
bp2_yearly_1040_is_sparring_child = yes
this = root.player_heir
}
add = 50
}
}
33 = {
trigger = {
any_relation = {
type = ward
bp2_yearly_1040_is_sparring_child = yes
}
}
random_relation = {
type = ward
limit = {
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
}
alternative_limit = { bp2_yearly_1040_is_sparring_child = yes }
save_scope_as = sparring_child
}
}
33 = {
trigger = {
any_warden_hostage = {
bp2_yearly_1040_is_sparring_child = yes
}
}
random_warden_hostage = {
#A child you care about
limit = {
bp2_yearly_1040_is_sparring_child = yes
has_focus = education_martial
}
alternative_limit = { bp2_yearly_1040_is_sparring_child = yes }
save_scope_as = sparring_child
}
}
}
scope:sparring_child = {
set_variable = {
name = had_bp2_yearly_1040_martial_event
value = flag:yes
}
}
}
#Have some martial
option = {
name = bp2_yearly.1040.a
flavor = bp2_yearly.1040.a.flavor
add_martial_skill = 1
ai_chance = {
base = 100
}
}
#Have some education
option = {
name = bp2_yearly.1040.b
trigger = {
scope:sparring_child = { has_focus = education_martial }
}
#More points for a matching education
if = {
limit = { has_trait = education_martial }
custom_tooltip = bp2_yearly.1040.b.tt_matching
hidden_effect = {
scope:sparring_child = {
education_point_acquisition_additional_points_effect = { LEVEL = mid }
}
}
}
else = {
custom_tooltip = bp2_yearly.1040.b.tt
hidden_effect = {
scope:sparring_child = {
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
}
}
reverse_add_opinion = {
target = scope:sparring_child
modifier = teaching_moment_opinion
opinion = 15
}
stress_impact = { craven = minor_stress_impact_gain }
ai_chance = {
base = 100
modifier = {
has_trait = craven
factor = 0
}
}
}
}
scripted_trigger bp2_yearly_1045_is_diplomacy_child = {
age >= 7
age < 16
is_available = yes
is_ai = yes
location = root.location
opinion = {
target = root
value >= medium_positive_opinion
}
NOT = { has_variable = had_bp2_yearly_1045_diplomacy_event }
}
#Parent/Guardian: There is a brawl among some children
bp2_yearly.1045 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1045.t
desc = {
desc = bp2_yearly.1045.intro
first_valid = {
triggered_desc = {
trigger = { is_parent_of = scope:diplomacy_child }
desc = bp2_yearly.1045.desc_parent
}
desc = bp2_yearly.1045.desc_guardian
}
desc = bp2_yearly.1045.desc
}
theme = family
override_background = { reference = alley_day }
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = eccentric }
animation = happiness
}
triggered_animation = {
trigger = {
OR = {
has_trait = greedy
has_trait = callous
}
}
animation = personality_dishonorable
}
animation = worry
}
right_portrait = {
character = scope:diplomacy_child
animation = shock
}
#Set up the cooldown
cooldown = { years = 10 }
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
is_adult = yes
OR = {
any_child = { bp2_yearly_1045_is_diplomacy_child = yes }
any_relation = {
type = ward
bp2_yearly_1045_is_diplomacy_child = yes
}
any_warden_hostage = {
bp2_yearly_1045_is_diplomacy_child = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
any_child = {
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
}
any_relation = {
type = ward
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
}
any_warden_hostage = {
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
}
}
add = 1
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
random_list = {
33 = {
trigger = { any_child = { bp2_yearly_1045_is_diplomacy_child = yes } }
random_child = {
limit = {
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
this = root.player_heir
}
alternative_limit = {
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
}
alternative_limit = { bp2_yearly_1045_is_diplomacy_child = yes }
save_scope_as = diplomacy_child
}
modifier = {
any_child = {
bp2_yearly_1045_is_diplomacy_child = yes
this = root.player_heir
}
add = 50
}
}
33 = {
trigger = {
any_relation = {
type = ward
bp2_yearly_1045_is_diplomacy_child = yes
}
}
random_relation = {
type = ward
limit = {
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
}
alternative_limit = { bp2_yearly_1045_is_diplomacy_child = yes }
save_scope_as = diplomacy_child
}
}
33 = {
trigger = {
any_warden_hostage = {
bp2_yearly_1040_is_sparring_child = yes
}
}
random_warden_hostage = {
#A child you care about
limit = {
bp2_yearly_1045_is_diplomacy_child = yes
has_focus = education_diplomacy
}
alternative_limit = { bp2_yearly_1045_is_diplomacy_child = yes }
save_scope_as = diplomacy_child
}
}
}
scope:diplomacy_child = {
set_variable = {
name = had_bp2_yearly_1045_diplomacy_event
value = flag:yes
}
}
}
#Have some diplomacy
option = {
name = bp2_yearly.1045.a
flavor = bp2_yearly.1045.a.flavor
add_prestige = minor_prestige_gain
if = {
limit = {
NOT = { has_perk = firm_hand_perk }
}
random = {
chance = 5
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1045.a.perk.t
left_icon = root
add_perk = firm_hand_perk
}
}
}
else_if = {
limit = { has_lifestyle = diplomacy_lifestyle }
add_learning_lifestyle_xp = minor_lifestyle_experience
}
else = {
add_character_modifier = {
modifier = august_presence_modifier
years = 5
}
}
ai_chance = {
base = 100
}
}
#Bet on the fight
option = {
name = bp2_yearly.1045.b
flavor = bp2_yearly.1045.b.flavor
trigger = {
OR = {
has_trait = greedy
has_trait = eccentric
has_trait = callous
}
}
duel = {
skill = learning
value = medium_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = bp2_yearly.1045.b.win.desc
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1045.b.win.t
left_icon = root
add_gold = medium_gold_value
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = bp2_yearly.1045.b.loss.desc
send_interface_toast = {
type = event_toast_effect_good
title = bp2_yearly.1045.b.loss.t
left_icon = root
remove_short_term_gold = minor_gold_value
}
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = compassionate
factor = 0
}
}
}
#Have some education
option = {
name = bp2_yearly.1045.c
trigger = {
scope:diplomacy_child = { has_focus = education_diplomacy }
}
#More points for a matching education
if = {
limit = { has_trait = education_diplomacy }
custom_tooltip = bp2_yearly.1045.c.tt_matching
hidden_effect = {
scope:diplomacy_child = {
education_point_acquisition_additional_points_effect = { LEVEL = mid }
}
}
}
else = {
custom_tooltip = bp2_yearly.1045.c.tt
hidden_effect = {
scope:diplomacy_child = {
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
}
}
reverse_add_opinion = {
target = scope:diplomacy_child
modifier = teaching_moment_opinion
opinion = 15
}
stress_impact = { craven = minor_stress_impact_loss }
ai_chance = {
base = 100
}
}
}
#################
## Event Chain ##
## The Builder ##
## 1050 - 1072 ##
#################
#These effects keeps track of what our latest choice was
scripted_effect the_builder_stewardship_choice_tracker_effect = {
#Record the latest choice
if = {
limit = {
NOT = { exists = var:the_builder_latest_choice }
}
set_variable = {
name = the_builder_latest_choice
value = flag:stewardship
}
}
else = {
remove_variable = the_builder_latest_choice
set_variable = {
name = the_builder_latest_choice
value = flag:stewardship
}
}
}
#These effects increments the amount of any particular choice (had to separate it to display the present/past effect correctly)
scripted_effect the_builder_stewardship_increment_effect = {
#We stack
if = {
limit = {
NOT = { exists = var:the_builder_stewardship_choices }
}
set_variable = {
name = the_builder_stewardship_choices
value = 1
}
}
else = {
change_variable = {
name = the_builder_stewardship_choices
add = 1
}
}
#Pick something else and we reset
if = {
limit = { exists = var:the_builder_martial_choices }
remove_variable = the_builder_martial_choices
}
if = {
limit = { exists = var:the_builder_learning_choices }
remove_variable = the_builder_learning_choices
}
}
scripted_effect the_builder_martial_choice_tracker_effect = {
#Record the latest choice
if = {
limit = {
NOT = { exists = var:the_builder_latest_choice }
}
set_variable = {
name = the_builder_latest_choice
value = flag:martial
}
}
else = {
remove_variable = the_builder_latest_choice
set_variable = {
name = the_builder_latest_choice
value = flag:martial
}
}
}
scripted_effect the_builder_martial_increment_effect = {
#We stack
if = {
limit = {
NOT = { exists = var:the_builder_martial_choices }
}
set_variable = {
name = the_builder_martial_choices
value = 1
}
}
else = {
change_variable = {
name = the_builder_martial_choices
add = 1
}
}
#Pick something else and we reset
if = {
limit = { exists = var:the_builder_learning_choices }
remove_variable = the_builder_learning_choices
}
if = {
limit = { exists = var:the_builder_stewardship_choices }
remove_variable = the_builder_stewardship_choices
}
}
scripted_effect the_builder_learning_choice_tracker_effect = {
#Record the latest choice
if = {
limit = {
NOT = { exists = var:the_builder_latest_choice }
}
set_variable = {
name = the_builder_latest_choice
value = flag:learning
}
}
else = {
remove_variable = the_builder_latest_choice
set_variable = {
name = the_builder_latest_choice
value = flag:learning
}
}
}
scripted_effect the_builder_learning_increment_effect = {
#We stack
if = {
limit = {
NOT = { exists = var:the_builder_learning_choices }
}
set_variable = {
name = the_builder_learning_choices
value = 1
}
}
else = {
change_variable = {
name = the_builder_learning_choices
add = 1
}
}
#Pick something else and we reset
if = {
limit = { exists = var:the_builder_stewardship_choices }
remove_variable = the_builder_stewardship_choices
}
if = {
limit = { exists = var:the_builder_martial_choices }
remove_variable = the_builder_martial_choices
}
}
#The tide/storm is ruining your sand/twigcastle!
bp2_yearly.1050 = {
type = character_event
content_source = dlc_009
title = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
OR = {
county = { is_coastal_county = yes }
graphical_wilderness_desert_trigger = yes
}
}
}
desc = bp2_yearly.1050.t
}
desc = bp2_yearly.1050.t_twig
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
desc = bp2_yearly.1050.desc
}
triggered_desc = {
trigger = {
root.location = { graphical_wilderness_desert_trigger = yes }
}
desc = bp2_yearly.1050.desc_desert
}
desc = bp2_yearly.1050.desc_twig
}
}
theme = education
override_background = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
reference = bp3_coast
}
#Some more flavor than simply using reference = terrain
override_background = {
trigger = {
root.location = { graphical_wilderness_desert_trigger = yes }
}
reference = wilderness_desert
}
override_background = {
trigger = {
root.location = { graphical_wilderness_forest_pine_trigger = yes }
}
reference = ep2_hunt_foggy_forest
}
override_background = {
trigger = {
root.location = { graphical_wilderness_jungle_trigger = yes }
}
reference = wilderness_jungle
}
override_background = {
trigger = {
root.location = { graphical_wilderness_steppe_trigger = yes }
}
reference = ep2_travel_settlement_steppe
}
override_background = {
trigger = {
root.location = { graphical_drylands_trigger = yes }
}
reference = drylands
}
#Fallback
override_background = { reference = ep2_hunt_foggy_forest }
left_portrait = {
character = root
animation = thinking
}
trigger = {
#DLC check
has_bp2_dlc_trigger = yes
#Standard checks
is_available = yes
is_landed_or_landless_administrative = yes
age >= 4
age <= 10
NOT = { has_variable = had_builder_event_chain }
#If the child is AI, we don't want a player regent to get snubbed by the AI builder child
trigger_if = {
limit = { is_ai = yes }
has_active_diarchy = yes
diarch = { is_ai = yes }
}
}
weight_multiplier = {
base = 1
modifier = {
is_ai = no
add = 10 #Should reach 50 in the on_action trigger for the chain to start
}
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
set_variable = { name = had_builder_event_chain }
}
#Bribe nature
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
desc = bp2_yearly.1050.a
}
desc = bp2_yearly.1050.a_twig
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
desc = bp2_yearly.1050.a.flavor
}
desc = bp2_yearly.1050.a.flavor_twig
}
}
the_builder_stewardship_choice_tracker_effect = yes
the_builder_stewardship_increment_effect = yes
add_stewardship_skill = 1
ai_chance = {
base = 100
modifier = {
ai_has_pious_builder_personality = yes
factor = 0
}
modifier = {
ai_has_warlike_personality = yes
factor = 0
}
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
}
}
#Build walls
option = {
name = bp2_yearly.1050.b
flavor = bp2_yearly.1050.b.flavor
the_builder_martial_choice_tracker_effect = yes
the_builder_martial_increment_effect = yes
add_martial_skill = 1
ai_chance = {
base = 100
modifier = {
ai_has_pious_builder_personality = yes
factor = 0
}
modifier = {
ai_has_economical_boom_personality = yes
factor = 0
}
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
}
}
#Build a tiny altar
option = {
name = bp2_yearly.1050.c
flavor = bp2_yearly.1050.c.flavor
the_builder_learning_choice_tracker_effect = yes
the_builder_learning_increment_effect = yes
add_learning_skill = 1
ai_chance = {
base = 100
modifier = {
ai_has_economical_boom_personality = yes
factor = 0
}
modifier = {
ai_has_warlike_personality = yes
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
}
}
after = {
trigger_event = {
id = bp2_yearly.1051
days = 1
}
}
}
#Follow-up: Curse you, tide!
bp2_yearly.1051 = {
type = character_event
content_source = dlc_009
title = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
OR = {
county = { is_coastal_county = yes }
graphical_wilderness_desert_trigger = yes
}
}
}
desc = bp2_yearly.1051.t
}
desc = bp2_yearly.1051.t_twig
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
desc = bp2_yearly.1051.desc
}
triggered_desc = {
trigger = {
root.location = { graphical_wilderness_desert_trigger = yes }
}
desc = bp2_yearly.1051.desc_desert
}
desc = bp2_yearly.1051.desc_twig
}
desc = bp2_yearly.1051.outro
}
theme = education
#Oh beach background; where art thou
override_background = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
reference = market_tribal #This is the closest to a beach -well this or wetlands and I personally have a hard time seeing a sand castle in a marsh- we have that doesn't star a massive longship atm
}
#Some more flavor than simply using reference = terrain
override_background = {
trigger = {
root.location = { graphical_wilderness_desert_trigger = yes }
}
reference = wilderness_desert
}
override_background = {
trigger = {
root.location = { graphical_wilderness_forest_pine_trigger = yes }
}
reference = ep2_forest_managed
}
override_background = {
trigger = {
root.location = { graphical_wilderness_jungle_trigger = yes }
}
reference = wilderness_jungle
}
override_background = {
trigger = {
root.location = { graphical_wilderness_steppe_trigger = yes }
}
reference = ep2_travel_settlement_steppe
}
override_background = {
trigger = {
root.location = { graphical_drylands_trigger = yes }
}
reference = drylands
}
#Fallback
override_background = { reference = wilderness_forest_pine }
left_portrait = {
character = root
animation = personality_cynical
}
artifact = {
target = scope:iridescent_stone_trinket
position = lower_center_portrait
}
immediate = {
#play_music_cue = "mx_cue_positive_effect"
if = {
limit = { var:the_builder_latest_choice ?= flag:stewardship }
create_artifact = {
name = iridescent_stone_trinket
description = iridescent_stone_trinket.desc
type = miscellaneous
visuals = diamond
modifier = artifact_stewardship_1_modifier
modifier = artifact_stewardship_lifestyle_xp_2_modifier
save_scope_as = iridescent_stone_trinket
wealth = 15
quality = 15
max_durability = 40
history = { type = created_before_history }
}
}
if = {
limit = { var:the_builder_latest_choice ?= flag:martial }
create_artifact = {
name = iridescent_stone_trinket
description = iridescent_stone_trinket.desc
type = miscellaneous
visuals = diamond
modifier = artifact_martial_1_modifier
modifier = artifact_martial_lifestyle_xp_2_modifier
save_scope_as = iridescent_stone_trinket
wealth = 15
quality = 15
max_durability = 40
history = { type = created_before_history }
}
}
if = {
limit = { var:the_builder_latest_choice ?= flag:learning }
create_artifact = {
name = iridescent_stone_trinket
description = iridescent_stone_trinket.desc
type = miscellaneous
visuals = diamond
modifier = artifact_learning_1_modifier
modifier = artifact_learning_lifestyle_xp_2_modifier
save_scope_as = iridescent_stone_trinket
wealth = 15
quality = 15
max_durability = 40
history = { type = created_before_history }
}
}
}
#Curse you, tide/storm!
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
root.location = {
county = { is_coastal_county = yes }
}
}
desc = bp2_yearly.1051.a
}
desc = bp2_yearly.1051.a_twig
}
}
}
}
#We are 4-10 years
after = {
if = {
limit = { age = 4 }
trigger_event = {
id = bp2_yearly.1055
years = 4
}
}
else_if = {
limit = { age = 5 }
trigger_event = {
id = bp2_yearly.1055
years = 3
}
}
else_if = {
limit = { age = 6 }
trigger_event = {
id = bp2_yearly.1055
years = 2
}
}
else_if = {
limit = { age = 10 }
trigger_event = {
id = bp2_yearly.1055
years = 1
}
}
#7-9 years
else = {
trigger_event = {
id = bp2_yearly.1055
years = { 1 2 }
}
}
}
}
#################
#If we for whatever reason don't finish the event chain, clean up the flags and variables
scripted_effect the_builder_clean_up_flags_effect = {
if = {
limit = { exists = var:the_builder_latest_choice }
remove_variable = the_builder_latest_choice
}
if = {
limit = { exists = var:the_builder_stewardship_choices }
remove_variable = the_builder_stewardship_choices
}
if = {
limit = { exists = var:the_builder_martial_choices }
remove_variable = the_builder_martial_choices
}
if = {
limit = { exists = var:the_builder_learning_choices }
remove_variable = the_builder_learning_choices
}
}
#These effects accurately checks and rewards your any particular stacked type of decision
scripted_effect the_builder_stacking_stewardship_rewards_effect = {
#Stewardship
if = {
limit = { var:the_builder_latest_choice ?= flag:stewardship }
if = {
limit = { exists = var:the_builder_stewardship_choices }
if = {
limit = { var:the_builder_stewardship_choices >= 4 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_gold = major_gold_value
}
else_if = {
limit = { var:the_builder_stewardship_choices = 3 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_gold = medium_gold_value
}
else_if = {
limit = { var:the_builder_stewardship_choices = 2 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_gold = minor_gold_value
}
else_if = {
limit = { var:the_builder_stewardship_choices = 1 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_gold = tiny_gold_value
}
}
}
}
scripted_effect the_builder_stacking_martial_rewards_effect = {
#Martial
if = {
limit = { var:the_builder_latest_choice ?= flag:martial }
if = {
limit = { exists = var:the_builder_martial_choices }
if = {
limit = { var:the_builder_martial_choices >= 4 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_prestige = major_prestige_gain
}
else_if = {
limit = { var:the_builder_martial_choices = 3 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_prestige = medium_prestige_gain
}
else_if = {
limit = { var:the_builder_martial_choices = 2 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_prestige = minor_prestige_gain
}
else_if = {
limit = { var:the_builder_martial_choices = 1 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_prestige = miniscule_prestige_gain
}
}
}
}
scripted_effect the_builder_stacking_learning_rewards_effect = {
#Learning
if = {
limit = { var:the_builder_latest_choice ?= flag:learning }
if = {
limit = { exists = var:the_builder_learning_choices }
if = {
limit = { var:the_builder_learning_choices >= 4 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_piety = major_piety_gain
}
else_if = {
limit = { var:the_builder_learning_choices = 3 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_piety = medium_piety_gain
}
else_if = {
limit = { var:the_builder_learning_choices = 2 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_piety = minor_piety_gain
}
else_if = {
limit = { var:the_builder_learning_choices = 1 }
#To get that sweet sweet past version of the tooltip if the effect has already happened
custom_description_no_bullet = { text = reminds_of_childhood_decision }
add_piety = miniscule_piety_gain
}
}
}
}
scripted_effect bp2_yearly_1055_economy_effect = {
the_builder_stacking_stewardship_rewards_effect = yes
add_stewardship_skill = 1
if = {
limit = {
scope:den_challenger = { is_alive = yes }
}
worsen_relationship_effect = {
TARGET = scope:den_challenger
REASON = rival_paid_to_win
}
}
}
scripted_effect bp2_yearly_1055_martial_effect = {
the_builder_stacking_martial_rewards_effect = yes
add_martial_skill = 1
improve_relationship_effect = {
TARGET = scope:den_challenger
REASON = friend_built_den_together
}
if = {
limit = { has_relation_bully = scope:den_challenger }
add_prestige = minor_prestige_loss
}
if = {
limit = {
scope:den_challenger = {
NOT = { is_in_the_same_court_as = root }
}
}
add_courtier = scope:den_challenger
}
}
scripted_effect bp2_yearly_1055_sacred_effect = {
the_builder_stacking_learning_rewards_effect = yes
create_artifact = {
name = holy_stick
description = holy_stick.desc
type = spear
visuals = spear
modifier = artifact_learning_lifestyle_xp_1_modifier
modifier = artifact_learning_2_modifier
save_scope_as = holy_stick_artifact
wealth = 25
quality = 25
max_durability = 40
generate_history = no
}
add_learning_skill = 1
}
#You are challenged to a den-building competition
bp2_yearly.1055 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1055.t
desc = {
desc = bp2_yearly.1055.desc
first_valid = {
triggered_desc = {
trigger = {
OR = {
is_close_family_of = scope:den_challenger
is_extended_family_of = scope:den_challenger
}
}
desc = bp2_yearly.1055.desc_related
}
triggered_desc = {
trigger = {
OR = {
has_relation_crush = scope:den_challenger
has_relation_friend = scope:den_challenger
has_relation_best_friend = scope:den_challenger
has_relation_bully = scope:den_challenger
}
}
desc = bp2_yearly.1055.desc_relations
}
desc = bp2_yearly.1055.desc_liege
}
desc = bp2_yearly.1055.outro
}
theme = education
#Some more flavor than simply using reference = terrain
override_background = {
trigger = {
root.location = { graphical_wilderness_jungle_trigger = yes }
}
reference = wilderness_jungle
}
override_background = {
trigger = {
root.location = { graphical_wilderness_steppe_trigger = yes }
}
reference = ep2_travel_settlement_steppe
}
override_background = {
trigger = {
root.location = {
OR = {
graphical_drylands_trigger = yes
graphical_wilderness_desert_trigger = yes
}
}
}
reference = drylands
}
#Fallback
override_background = { reference = ep2_hunt_forest_hut }
left_portrait = {
character = root
animation = personality_bold
}
right_portrait = {
character = scope:den_challenger
animation = schadenfreude
}
trigger = {
is_available = yes
is_landed_or_landless_administrative = yes
#If the child is AI, we don't want a player regent to get snubbed by the AI builder child
trigger_if = {
limit = { is_ai = yes }
has_active_diarchy = yes
diarch = { is_ai = yes }
}
}
on_trigger_fail = { the_builder_clean_up_flags_effect = yes }
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
if = {
limit = {
any_relation = {
type = bully
is_available_ai = yes
}
}
random_relation = {
type = bully
limit = { is_available_ai = yes }
save_scope_as = den_challenger
}
}
else_if = {
limit = {
any_courtier_or_guest = {
is_available_ai = yes
is_adult = no
age > 8
}
}
random_courtier = {
limit = {
is_available_ai = yes
is_adult = no
age > 8
}
save_scope_as = den_challenger
}
}
else_if = {
limit = {
any_pool_character = {
province = root.location
is_available_ai = yes
is_adult = no
age > 8
}
}
random_pool_character = {
province = root.location
limit = {
is_available_ai = yes
is_adult = no
age > 8
}
save_scope_as = den_challenger
}
}
else = {
create_character = {
location = root.location
template = peasant_child_character
age = { 9 13 }
culture = root.location.culture
faith = root.location.faith
save_scope_as = den_challenger
after_creation = {
add_character_flag = created
}
}
}
}
#Use the virtue of 'free' labor
option = {
name = bp2_yearly.1055.a
flavor = bp2_yearly.1055.a.flavor
the_builder_stewardship_choice_tracker_effect = yes
show_as_tooltip = { bp2_yearly_1055_economy_effect = yes }
ai_chance = {
base = 100
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = gregarious
factor = 0
}
}
}
#Build higher walls _together_!
option = {
name = bp2_yearly.1055.b
flavor = bp2_yearly.1055.b.flavor
the_builder_martial_choice_tracker_effect = yes
show_as_tooltip = { bp2_yearly_1055_martial_effect = yes }
ai_chance = {
base = 100
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = arrogant
factor = 0
}
}
}
#Pft, only Deity can judge _me_
option = {
name = bp2_yearly.1055.c
flavor = bp2_yearly.1055.c.flavor
the_builder_learning_choice_tracker_effect = yes
show_as_tooltip = {
the_builder_stacking_learning_rewards_effect = yes
add_learning_skill = 1
}
ai_chance = {
base = 100
modifier = {
has_trait = gregarious
factor = 0
}
modifier = {
has_trait = arrogant
factor = 0
}
}
}
after = {
trigger_event = {
id = bp2_yearly.1056
days = 1
}
}
}
#Follow-up: Things went down in the woods
bp2_yearly.1056 = {
type = character_event
content_source = dlc_009
title = {
first_valid = {
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
desc = bp2_yearly.1056.t_economy
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
desc = bp2_yearly.1056.t_martial
}
desc = bp2_yearly.1056.t_pious
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
desc = bp2_yearly.1056.desc_economy
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
desc = bp2_yearly.1056.desc_martial
}
desc = bp2_yearly.1056.desc_pious
}
}
theme = education
#Some more flavor than simply using reference = terrain
override_background = {
trigger = {
root.location = { graphical_wilderness_jungle_trigger = yes }
}
reference = wilderness_jungle
}
override_background = {
trigger = {
root.location = { graphical_wilderness_steppe_trigger = yes }
}
reference = ep2_travel_settlement_steppe
}
override_background = {
trigger = {
root.location = {
OR = {
graphical_drylands_trigger = yes
graphical_wilderness_desert_trigger = yes
}
}
}
reference = drylands
}
#Fallback
override_background = { reference = ep2_hunt_forest_cave }
left_portrait = {
character = root
triggered_animation = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
animation = personality_dishonorable
}
triggered_animation = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
animation = admiration
}
animation = disbelief
}
right_portrait = {
trigger = {
root = {
OR = {
var:the_builder_latest_choice ?= flag:stewardship
var:the_builder_latest_choice ?= flag:martial
}
}
}
triggered_animation = {
trigger = {
root = { var:the_builder_latest_choice ?= flag:stewardship }
}
animation = disapproval
}
character = scope:den_challenger
animation = happiness
}
artifact = {
trigger = { exists = scope:holy_stick_artifact }
target = scope:holy_stick_artifact
position = lower_center_portrait
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
if = {
limit = { var:the_builder_latest_choice ?= flag:stewardship }
bp2_yearly_1055_economy_effect = yes
the_builder_stewardship_increment_effect = yes
}
else_if = {
limit = { var:the_builder_latest_choice ?= flag:martial }
bp2_yearly_1055_martial_effect = yes
the_builder_martial_increment_effect = yes
}
else = {
bp2_yearly_1055_sacred_effect = yes
the_builder_learning_increment_effect = yes
}
}
#Alright
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
desc = bp2_yearly.1056.a_economy
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
desc = bp2_yearly.1056.a_martial
}
desc = bp2_yearly.1056.a_pious
}
}
}
#Effects are handled in the immediate
}
#We are 8-11 years
after = {
if = {
limit = { age = 8 }
trigger_event = {
id = bp2_yearly.1060
years = { 4 5 }
}
}
else_if = {
limit = { age = 9 }
trigger_event = {
id = bp2_yearly.1060
years = { 3 4 }
}
}
#10-11 years
else = {
trigger_event = {
id = bp2_yearly.1060
years = { 1 2 }
}
}
scope:den_challenger = { # created in the preceding event, but necessary for the immediate and the narrative in this one
silent_disappearance_ai_if_created_effect = yes
}
}
}
#################
scripted_trigger bp2_yearly_1060_appropriate_character_trigger = {
NOR = {
opinion = {
target = root
value < medium_negative_opinion
}
has_relation_rival = root
has_relation_nemesis = root
this = root
}
is_available_ai = yes
location = root.location
}
scripted_effect bp2_yearly_1060_give_economical_reward_effect = {
the_builder_stacking_stewardship_rewards_effect = yes
scope:economical_architecture_book = {
set_owner = root
add_artifact_history = {
location = root.location
actor = scope:steward_character
recipient = root
type = given
}
}
add_stewardship_skill = 1
improve_relationship_effect = {
TARGET = scope:steward_character
REASON = friend_bonded_over_economical_architecture
}
}
scripted_effect bp2_yearly_1060_give_martial_reward_effect = {
the_builder_stacking_martial_rewards_effect = yes
scope:martial_architecture_book = {
set_owner = root
add_artifact_history = {
location = root.location
actor = scope:martial_character
recipient = root
type = given
}
}
add_martial_skill = 1
improve_relationship_effect = {
TARGET = scope:martial_character
REASON = friend_bonded_over_martial_architecture
}
}
scripted_effect bp2_yearly_1060_give_learned_reward_effect = {
the_builder_stacking_learning_rewards_effect = yes
scope:religious_architecture_book = {
set_owner = root
add_artifact_history = {
location = root.location
actor = scope:learned_character
recipient = root
type = given
}
}
add_learning_skill = 1
improve_relationship_effect = {
TARGET = scope:learned_character
REASON = friend_bonded_over_religious_architecture
}
}
#Appreciate the architecture of your capital
bp2_yearly.1060 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1060.t
desc = bp2_yearly.1060.desc
theme = education
override_background = { reference = courtyard }
left_portrait = {
character = root
animation = thinking
}
lower_left_portrait = { character = scope:steward_character }
lower_center_portrait = { character = scope:martial_character }
lower_right_portrait = { character = scope:learned_character }
trigger = {
is_available = yes
is_landed_or_landless_administrative = yes
exists = capital_province
#If the child is AI, we don't want a player regent to get snubbed by the AI builder child
trigger_if = {
limit = { is_ai = yes }
has_active_diarchy = yes
diarch = { is_ai = yes }
}
}
on_trigger_fail = { the_builder_clean_up_flags_effect = yes }
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
set_variable = {
name = the_builder_sightseed_capital
value = capital_province
}
#Find a steward character
if = {
limit = {
cp:councillor_steward ?= { bp2_yearly_1060_appropriate_character_trigger = yes }
}
cp:councillor_steward = { save_scope_as = steward_character }
}
#Or a steward-savvy courtier
else_if = {
limit = {
any_courtier_or_guest = {
bp2_yearly_1060_appropriate_character_trigger = yes
stewardship >= medium_skill_rating
}
}
random_courtier_or_guest = {
limit = {
bp2_yearly_1060_appropriate_character_trigger = yes
stewardship >= medium_skill_rating
}
add_to_list = potential_steward_characters
}
ordered_in_list = {
list = potential_steward_characters
order_by = stewardship
save_scope_as = steward_character
}
}
#Or a steward-savvy pool character
else_if = {
limit = {
any_pool_character = {
province = root.location
bp2_yearly_1060_appropriate_character_trigger = yes
stewardship >= medium_skill_rating
}
}
random_pool_character = {
province = root.location
limit = {
bp2_yearly_1060_appropriate_character_trigger = yes
stewardship >= medium_skill_rating
}
save_scope_as = steward_character
}
#And add them to court
hidden_effect = { add_courtier = scope:steward_character }
}
#Or simply create a steward-savvy character
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_stewardship_person_template
save_scope_as = steward_character
after_creation = {
add_character_flag = created
}
}
#And add them to court
hidden_effect = { add_courtier = scope:steward_character }
}
#Give them a steward architecture book
hidden_effect_new_object = {
scope:steward_character = {
if = {
limit = { artifacts_use_indian_books_trigger = yes }
create_artifact = {
name = economical_architecture_book
description = economical_architecture_book_desc
type = journal
visuals = indian_book
modifier = artifact_stewardship_lifestyle_xp_2_modifier
modifier = artifact_stewardship_1_modifier
modifier = artifact_city_holding_build_speed_add_1_modifier
save_scope_as = economical_architecture_book
}
}
else = {
create_artifact = {
name = economical_architecture_book
description = economical_architecture_book_desc
type = journal
visuals = book
modifier = artifact_stewardship_lifestyle_xp_2_modifier
modifier = artifact_stewardship_1_modifier
modifier = artifact_city_holding_build_speed_add_1_modifier
save_scope_as = economical_architecture_book
}
}
}
}
#Find a martial character
if = {
limit = {
cp:councillor_marshal ?= {
bp2_yearly_1060_appropriate_character_trigger = yes
this != scope:steward_character
}
}
cp:councillor_marshal = { save_scope_as = martial_character }
}
#Or a martial-savvy courtier
else_if = {
limit = {
any_courtier_or_guest = {
bp2_yearly_1060_appropriate_character_trigger = yes
martial >= medium_skill_rating
this != scope:steward_character
}
}
random_courtier_or_guest = {
limit = {
bp2_yearly_1060_appropriate_character_trigger = yes
martial >= medium_skill_rating
this != scope:steward_character
}
add_to_list = potential_martial_characters
}
ordered_in_list = {
list = potential_martial_characters
order_by = martial
save_scope_as = martial_character
}
}
else_if = {
limit = {
any_pool_character = {
province = root.location
bp2_yearly_1060_appropriate_character_trigger = yes
martial >= medium_skill_rating
this != scope:steward_character
}
}
random_pool_character = {
province = root.location
limit = {
bp2_yearly_1060_appropriate_character_trigger = yes
martial >= medium_skill_rating
this != scope:steward_character
}
save_scope_as = martial_character
}
#And add them to court
hidden_effect = { add_courtier = scope:martial_character }
}
#Or simply create a martial-savvy character
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_martial_person_template
save_scope_as = martial_character
after_creation = {
add_character_flag = created
}
}
#And add them to court
hidden_effect = { add_courtier = scope:martial_character }
}
#Give them a martial architecture book
hidden_effect_new_object = {
scope:martial_character = {
if = {
limit = { artifacts_use_indian_books_trigger = yes }
create_artifact = {
name = martial_architecture_book
description = martial_architecture_book_desc
type = journal
visuals = indian_book
modifier = artifact_martial_lifestyle_xp_2_modifier
modifier = artifact_martial_1_modifier
modifier = artifact_castle_holding_build_speed_add_1_modifier
save_scope_as = martial_architecture_book
}
}
else = {
create_artifact = {
name = martial_architecture_book
description = martial_architecture_book_desc
type = journal
visuals = book
modifier = artifact_martial_lifestyle_xp_2_modifier
modifier = artifact_martial_1_modifier
modifier = artifact_castle_holding_build_speed_add_1_modifier
save_scope_as = martial_architecture_book
}
}
}
}
#Find a learned character
if = {
limit = {
cp:councillor_court_chaplain ?= {
bp2_yearly_1060_appropriate_character_trigger = yes
NOR = {
this = scope:steward_character
this = scope:martial_character
}
}
}
cp:councillor_court_chaplain = { save_scope_as = learned_character }
}
#Or a learning-savvy courtier
else_if = {
limit = {
any_courtier_or_guest = {
bp2_yearly_1060_appropriate_character_trigger = yes
learning >= medium_skill_rating
NOR = {
this = scope:steward_character
this = scope:martial_character
}
}
}
random_courtier_or_guest = {
limit = {
bp2_yearly_1060_appropriate_character_trigger = yes
learning >= medium_skill_rating
NOR = {
this = scope:steward_character
this = scope:martial_character
}
}
add_to_list = potential_learned_characters
}
ordered_in_list = {
list = potential_learned_characters
order_by = learning
save_scope_as = learned_character
}
}
#Or a learning-savvy pool character
else_if = {
limit = {
any_pool_character = {
province = root.location
bp2_yearly_1060_appropriate_character_trigger = yes
learning >= medium_skill_rating
NOR = {
this = scope:steward_character
this = scope:martial_character
}
}
}
random_pool_character = {
province = root.location
limit = {
bp2_yearly_1060_appropriate_character_trigger = yes
learning >= medium_skill_rating
NOR = {
this = scope:steward_character
this = scope:martial_character
}
}
save_scope_as = learned_character
}
#And add them to court
hidden_effect = { add_courtier = scope:learned_character }
}
#Or simply create a learning-savvy character
else = {
create_character = {
location = root.location
template = bp1_yearly_2021_learning_person_template
save_scope_as = learned_character
after_creation = {
add_character_flag = created
}
}
#And add them to court
hidden_effect = { add_courtier = scope:learned_character }
}
#Give them a religious architecture book
hidden_effect_new_object = {
scope:learned_character = {
if = {
limit = { artifacts_use_indian_books_trigger = yes }
create_artifact = {
name = religious_architecture_book
description = religious_architecture_book_desc
type = journal
visuals = indian_book
modifier = artifact_learning_lifestyle_xp_2_modifier
modifier = artifact_learning_1_modifier
modifier = artifact_church_holding_build_speed_add_1_modifier
save_scope_as = religious_architecture_book
}
}
else = {
create_artifact = {
name = religious_architecture_book
description = religious_architecture_book_desc
type = journal
visuals = book
modifier = artifact_learning_lifestyle_xp_2_modifier
modifier = artifact_learning_1_modifier
modifier = artifact_church_holding_build_speed_add_1_modifier
save_scope_as = religious_architecture_book
}
}
}
}
}
#Check out _that_ tradeport
option = {
name = bp2_yearly.1060.a
flavor = bp2_yearly.1060.a.flavor
the_builder_stewardship_choice_tracker_effect = yes
show_as_tooltip = { bp2_yearly_1060_give_economical_reward_effect = yes }
ai_chance = {
base = 100
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
}
}
#I like a good wall
option = {
name = bp2_yearly.1060.b
flavor = bp2_yearly.1060.b.flavor
the_builder_martial_choice_tracker_effect = yes
show_as_tooltip = { bp2_yearly_1060_give_martial_reward_effect = yes }
ai_chance = {
base = 100
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
}
}
#The temple, obviously
option = {
name = bp2_yearly.1060.c
flavor = bp2_yearly.1060.c.flavor
the_builder_learning_choice_tracker_effect = yes
show_as_tooltip = { bp2_yearly_1060_give_learned_reward_effect = yes }
ai_chance = {
base = 100
modifier = {
has_trait = craven
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
}
}
after = {
trigger_event = {
id = bp2_yearly.1061
days = 1
}
scope:steward_character ?= {
silent_disappearance_ai_if_created_effect = yes
}
scope:martial_character ?= {
silent_disappearance_ai_if_created_effect = yes
}
scope:learned_character ?= {
silent_disappearance_ai_if_created_effect = yes
}
}
}
#Follow-up: You spend the day with WhatsTheirFace
bp2_yearly.1061 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1061.t
desc = {
first_valid = {
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
desc = bp2_yearly.1061.desc_steward
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
desc = bp2_yearly.1061.desc_martial
}
desc = bp2_yearly.1061.desc_religion
}
desc = bp2_yearly.1061.outro
}
theme = education
override_background = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
reference = market
}
override_background = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
reference = armory
}
override_background = {
trigger = { var:the_builder_latest_choice ?= flag:learning }
reference = holy_site_generic
}
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:architecture_character
animation = personality_compassionate
}
artifact = {
target = scope:book_to_get
position = lower_center_portrait
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
#Save character for the portrait
if = {
limit = { var:the_builder_latest_choice ?= flag:stewardship }
scope:steward_character = { save_scope_as = architecture_character }
scope:economical_architecture_book = { save_scope_as = book_to_get }
bp2_yearly_1060_give_economical_reward_effect = yes
the_builder_stewardship_increment_effect = yes
}
else_if = {
limit = { var:the_builder_latest_choice ?= flag:martial }
scope:martial_character = { save_scope_as = architecture_character }
scope:martial_architecture_book = { save_scope_as = book_to_get }
bp2_yearly_1060_give_martial_reward_effect = yes
the_builder_martial_increment_effect = yes
}
else = {
scope:learned_character = { save_scope_as = architecture_character }
scope:religious_architecture_book = { save_scope_as = book_to_get }
bp2_yearly_1060_give_learned_reward_effect = yes
the_builder_learning_increment_effect = yes
}
}
#Alright
option = {
name = bp2_yearly.1061.a
flavor = bp2_yearly.1061.a.flavor
#Effect is handled in immediate
}
#We are 12-13 years
after = {
trigger_event = {
id = bp2_yearly.1065
years = { 1 2 }
}
}
}
#################
scripted_trigger bp2_yearly.1065_appropriate_province_trigger = {
trigger_if = {
limit = { exists = barony.holder }
barony.holder = { is_ai = yes }
}
has_holding = yes
has_free_building_slot = yes
}
scripted_trigger bp2_yearly_1065_can_build_building_trigger = {
building_$BUILDING$_requirement_terrain = yes
NOT = { has_building = $BUILDING$_08 }
}
scripted_effect bp2_yearly_1065_add_buff_effect = {
if = {
limit = { has_province_modifier = $DIRECTION$_improvements_modifier }
remove_province_modifier = $DIRECTION$_improvements_modifier
add_province_modifier = {
modifier = $DIRECTION$_improvements_modifier
years = 10
}
}
else = {
add_province_modifier = {
modifier = $DIRECTION$_improvements_modifier
years = 10
}
}
}
scripted_effect bp2_yearly_1065_determine_economical_building_effect = {
#Can we actually build one of these buildings?
if = {
limit = {
OR = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = common_tradeport }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = pastures }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = hunting_grounds }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = orchards }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = farm_estates }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = cereal_fields }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = logging_camps }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = peat_quarries }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = hill_farms }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = elephant_pens }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = plantations }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = quarries }
}
}
#Yes? In that case, randomize which!
random_list = {
#Tradeport
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = common_tradeport }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:common_tradeport
}
}
#Pastures
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = pastures }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:pastures
}
}
#Hunting Grounds
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = hunting_grounds }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:hunting_grounds
}
}
#Orchards
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = orchards }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:orchards
}
}
#Farm Estates
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = farm_estates }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:farm_estates
}
}
#Cereal Fields
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = cereal_fields }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:cereal_fields
}
}
#Logging Camps
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = logging_camps }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:logging_camps
}
}
#Peat Quarries
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = peat_quarries }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:peat_quarries
}
}
#Hill Farms
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = hill_farms }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:hill_farms
}
}
#Elephant Pens
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = elephant_pens }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:elephant_pens
}
}
#Plantations
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = plantations }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:plantations
}
}
#Quarries
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = quarries }
}
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:quarries
}
}
}
}
#Otherwise you get a modifier
else = {
set_variable = {
name = bp2_yearly_1065_economical_building
value = flag:modifier
}
}
}
scripted_effect bp2_yearly_1065_add_economical_building_effect = {
#Tradeport
if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:common_tradeport }
add_next_building_tier_effect = { BUILDING = common_tradeport }
}
#Pastures
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:pastures }
add_next_building_tier_effect = { BUILDING = pastures }
}
#Hunting Grounds
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:hunting_grounds }
add_next_building_tier_effect = { BUILDING = hunting_grounds }
}
#Orchards
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:orchards }
add_next_building_tier_effect = { BUILDING = orchards }
}
#Farm Estates
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:farm_estates }
add_next_building_tier_effect = { BUILDING = farm_estates }
}
#Cereal Fields
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:cereal_fields }
add_next_building_tier_effect = { BUILDING = cereal_fields }
}
#Logging Camps
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:logging_camps }
add_next_building_tier_effect = { BUILDING = logging_camps }
}
#Peat Quarries
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:peat_quarries }
add_next_building_tier_effect = { BUILDING = peat_quarries }
}
#Hill Farms
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:hill_farms }
add_next_building_tier_effect = { BUILDING = hill_farms }
}
#Elephant Pens
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:elephant_pens }
add_next_building_tier_effect = { BUILDING = elephant_pens }
}
#Plantations
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:plantations }
add_next_building_tier_effect = { BUILDING = plantations }
}
#Quarries
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:quarries }
add_next_building_tier_effect = { BUILDING = quarries }
}
#You're all decked out; have a modifier
else_if = {
limit = { var:bp2_yearly_1065_economical_building ?= flag:modifier }
bp2_yearly_1065_add_buff_effect = { DIRECTION = economical }
}
}
scripted_effect bp2_yearly_1065_determine_martial_building_effect = {
#Can we actually build one of these buildings?
if = {
limit = {
OR = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = ramparts }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = curtain_walls }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = watchtowers }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = hill_forts }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = outposts }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = barracks }
bp2_yearly_1065_can_build_building_trigger = { BUILDING = smiths }
}
}
#Yes? In that case, randomize which!
random_list = {
#Ramparts
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = ramparts }
}
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:ramparts
}
}
#Walls
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = curtain_walls }
}
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:curtain_walls
}
}
#Watch Towers
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = watchtowers }
}
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:watchtowers
}
}
#Hill Forts
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = hill_forts }
}
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:hill_forts
}
}
#Barracks
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = barracks }
}
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:barracks
}
}
#Smiths
10 = {
trigger = {
bp2_yearly_1065_can_build_building_trigger = { BUILDING = smiths }
}
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:smiths
}
}
}
}
#Otherwise you get a modifier
else = {
set_variable = {
name = bp2_yearly_1065_martial_building
value = flag:modifier
}
}
}
scripted_effect bp2_yearly_1065_add_martial_building_effect = {
#Ramparts
if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:ramparts }
add_next_building_tier_effect = { BUILDING = ramparts }
}
#Curtain Walls
else_if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:curtain_walls }
add_next_building_tier_effect = { BUILDING = curtain_walls }
}
#Watch Towers
else_if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:watchtowers }
add_next_building_tier_effect = { BUILDING = watchtowers }
}
#Hill Fort
else_if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:hill_forts }
add_next_building_tier_effect = { BUILDING = hill_forts }
}
#Barracks
else_if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:barracks }
add_next_building_tier_effect = { BUILDING = barracks }
}
#Smiths
else_if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:smiths }
add_next_building_tier_effect = { BUILDING = smiths }
}
#You're all decked out; have a modifier
else_if = {
limit = { var:bp2_yearly_1065_martial_building ?= flag:modifier }
bp2_yearly_1065_add_buff_effect = { DIRECTION = martial }
}
}
scripted_effect bp2_yearly_1065_determine_pious_building_effect = {
#Can we actually build one of these buildings?
if = {
limit = {
OR = {
county.holder.faith = { has_doctrine_parameter = can_build_megaliths }
county.faith = { has_doctrine_parameter = can_build_megaliths }
NOT = { has_building = monastic_schools_08 }
}
}
#Yes? In that case, randomize which!
random_list = {
#Monastic Schools
10 = {
trigger = {
NOT = { has_building = monastic_schools_08 }
}
set_variable = {
name = bp2_yearly_1065_pious_building
value = flag:monastic_schools
}
}
#Megalith
10 = {
trigger = {
OR = {
county.holder.faith = { has_doctrine_parameter = can_build_megaliths }
county.faith = { has_doctrine_parameter = can_build_megaliths }
}
}
set_variable = {
name = bp2_yearly_1065_pious_building
value = flag:megalith
}
}
}
}
#Otherwise you get a modifier
else = {
set_variable = {
name = bp2_yearly_1065_pious_building
value = flag:modifier
}
}
}
scripted_effect bp2_yearly_1065_add_pious_building_effect = {
#Monastic Schools
if = {
limit = { var:bp2_yearly_1065_pious_building ?= flag:monastic_schools }
add_next_building_tier_effect = { BUILDING = monastic_schools }
}
#Megalith
else_if = {
limit = { var:bp2_yearly_1065_pious_building ?= flag:megalith }
add_next_building_tier_effect = { BUILDING = megalith }
}
#You're all decked out; have a modifier
else_if = {
limit = { var:bp2_yearly_1065_pious_building ?= flag:modifier }
bp2_yearly_1065_add_buff_effect = { DIRECTION = pious }
}
}
#Your input is desired on the next building target
bp2_yearly.1065 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1065.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:current_regent ?= {
OR = {
is_parent_of = root
is_grandparent_of = root
is_great_grandparent_of = root
}
}
}
desc = bp2_yearly.1065.intro_parent
}
triggered_desc = {
trigger = { exists = scope:current_regent }
desc = bp2_yearly.1065.intro_regent
}
desc = bp2_yearly.1065.intro
}
first_valid = {
triggered_desc = {
trigger = {
scope:current_regent ?= {
OR = {
is_parent_of = root
is_grandparent_of = root
is_great_grandparent_of = root
}
}
exists = scope:province_holder
}
desc = bp2_yearly.1065.desc_parent_mayor
}
triggered_desc = {
trigger = {
scope:current_regent ?= {
OR = {
is_parent_of = root
is_grandparent_of = root
is_great_grandparent_of = root
}
}
}
desc = bp2_yearly.1065.desc_parent_mayor
}
triggered_desc = {
trigger = {
exists = scope:current_regent
exists = scope:province_holder
}
desc = bp2_yearly.1065.desc_regent_mayor
}
triggered_desc = {
trigger = { exists = scope:current_regent }
desc = bp2_yearly.1065.desc_regent
}
triggered_desc = {
trigger = { exists = scope:province_holder }
desc = bp2_yearly.1065.desc_mayor
}
desc = bp2_yearly.1065.desc
}
desc = bp2_yearly.1065.outro
}
theme = education
override_background = { reference = council_chamber }
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
trigger = { exists = scope:current_regent }
character = scope:current_regent
animation = disapproval
}
lower_right_portrait = {
trigger = { exists = scope:province_holder }
character = scope:province_holder
}
trigger = {
is_available = yes
is_landed_or_landless_administrative = yes
#If the child is AI, we don't want a player regent to get snubbed by the AI builder child
trigger_if = {
limit = { is_ai = yes }
has_active_diarchy = yes
diarch = { is_ai = yes }
}
OR = {
any_held_title = {
title_tier = county
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
any_sub_realm_county = {
county.holder ?= { is_ai = yes }
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
}
}
on_trigger_fail = {
if = {
limit = { exists = var:the_builder_sightseed_capital }
remove_variable = the_builder_sightseed_capital
}
the_builder_clean_up_flags_effect = yes
}
immediate = {
#play_music_cue = "mx_cue_low_key_positive"
if = {
limit = { has_active_diarchy = yes }
diarch = { save_scope_as = current_regent }
}
#Find a holding to build a building in
if = {
limit = {
OR = {
any_held_title = {
title_tier = county
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
any_sub_realm_county = {
county.holder ?= { is_ai = yes }
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
}
}
#First one with an empty slot
if = {
limit = {
any_held_title = {
title_tier = county
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
}
random_held_title = {
title_tier = county
limit = {
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
save_scope_as = 1065_county_for_building
}
}
#Or a sub-realm with an empty slot
else_if = {
limit = {
any_sub_realm_county = {
county.holder ?= { is_ai = yes }
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
}
random_sub_realm_county = {
limit = {
county.holder ?= { is_ai = yes }
any_county_province = { bp2_yearly.1065_appropriate_province_trigger = yes }
}
save_scope_as = 1065_sub_realm_county_for_building
}
}
}
else = {
random_held_title = {
title_tier = county
random_county_province = { save_scope_as = 1065_province_for_buffing }
}
}
#Find the scopes in the province
if = {
limit = {
NOT = { exists = scope:1065_province_for_buffing }
}
#Hash out which one of our own provinces to build in
if = {
limit = { exists = scope:1065_county_for_building }
scope:1065_county_for_building = {
random_county_province = {
limit = { bp2_yearly.1065_appropriate_province_trigger = yes }
save_scope_as = 1065_province_for_building
}
}
}
#... or a sub-realm province
else = {
scope:1065_sub_realm_county_for_building = {
random_county_province = {
limit = { bp2_yearly.1065_appropriate_province_trigger = yes }
save_scope_as = 1065_province_for_building
}
}
}
#Save scopes for loc
scope:1065_province_for_building = {
if = {
limit = {
exists = barony.holder
barony.holder != root
trigger_if = {
limit = { exists = scope:current_regent }
barony.holder != scope:current_regent
}
}
barony.holder = { save_scope_as = province_holder }
}
}
set_variable = {
name = the_builder_constructed_building_in
value = scope:1065_province_for_building
}
}
else = {
#Save scopes for loc
scope:1065_province_for_buffing = {
if = {
limit = {
exists = barony.holder
barony.holder != root
trigger_if = {
limit = { exists = scope:current_regent }
barony.holder != scope:current_regent
}
}
barony.holder = { save_scope_as = province_holder }
}
}
set_variable = {
name = the_builder_constructed_building_in
value = scope:1065_province_for_buffing
}
}
#Determine what buildings you should get to pick from - and actually give the effect in the option
if = {
limit = { exists = scope:1065_province_for_building }
scope:1065_province_for_building = {
bp2_yearly_1065_determine_economical_building_effect = yes
bp2_yearly_1065_determine_martial_building_effect = yes
bp2_yearly_1065_determine_pious_building_effect = yes
}
}
}
#Economical improvements
option = {
name = bp2_yearly.1065.a
flavor = bp2_yearly.1065.a.flavor
the_builder_stacking_stewardship_rewards_effect = yes
add_stewardship_skill = 1
if = {
limit = { exists = scope:1065_province_for_building }
scope:1065_province_for_building = { bp2_yearly_1065_add_economical_building_effect = yes }
}
else_if = {
limit = { exists = scope:1065_province_for_buffing }
scope:1065_province_for_buffing = {
bp2_yearly_1065_add_buff_effect = { DIRECTION = economical }
}
}
the_builder_stewardship_choice_tracker_effect = yes
the_builder_stewardship_increment_effect = yes
ai_chance = {
base = 100
modifier = {
ai_has_warlike_personality = yes
factor = 0
}
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
}
}
#Martial improvements
option = {
name = bp2_yearly.1065.b
flavor = bp2_yearly.1065.b.flavor
the_builder_stacking_martial_rewards_effect = yes
add_martial_skill = 1
if = {
limit = { exists = scope:1065_province_for_building }
scope:1065_province_for_building = { bp2_yearly_1065_add_martial_building_effect = yes }
}
else_if = {
limit = { exists = scope:1065_province_for_buffing }
scope:1065_province_for_buffing = {
bp2_yearly_1065_add_buff_effect = { DIRECTION = martial }
}
}
the_builder_martial_choice_tracker_effect = yes
the_builder_martial_increment_effect = yes
ai_chance = {
base = 100
modifier = {
ai_has_economical_boom_personality = yes
factor = 0
}
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
}
}
#Pious improvements, obviously
option = {
name = bp2_yearly.1065.c
flavor = bp2_yearly.1065.c.flavor
the_builder_stacking_learning_rewards_effect = yes
add_learning_skill = 1
if = {
limit = { exists = scope:1065_province_for_building }
scope:1065_province_for_building = {
if = {
limit = {
NOT = { has_holding_type = church_holding }
}
custom_tooltip = bp2_yearly.1065.c.tt
set_holding_type = church_holding
}
bp2_yearly_1065_add_pious_building_effect = yes
}
}
else_if = {
limit = { exists = scope:1065_province_for_buffing }
scope:1065_province_for_buffing = {
bp2_yearly_1065_add_buff_effect = { DIRECTION = pious }
}
}
the_builder_learning_choice_tracker_effect = yes
the_builder_learning_increment_effect = yes
ai_chance = {
base = 100
modifier = {
ai_has_economical_boom_personality = yes
factor = 0
}
modifier = {
ai_has_warlike_personality = yes
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
}
}
#We are 14-15
after = {
if = {
limit = { exists = scope:1065_province_for_building }
if = {
limit = { exists = var:bp2_yearly_1065_economical_building }
remove_variable = bp2_yearly_1065_economical_building
}
if = {
limit = { exists = var:bp2_yearly_1065_martial_building }
remove_variable = bp2_yearly_1065_martial_building
}
if = {
limit = { exists = var:bp2_yearly_1065_pious_building }
remove_variable = bp2_yearly_1065_pious_building
}
}
trigger_event = {
id = bp2_yearly.1070
years = { 4 6 }
}
}
}
#################
#All of our efforts have culminated into _this_
scripted_effect bp2_yearly_1070_city_builder_effect = {
the_builder_stacking_stewardship_rewards_effect = yes
give_nickname = nick_the_city_builder
add_trait = architect
add_character_modifier = the_city_builder_modifier
}
scripted_effect bp2_yearly_1070_castle_builder_effect = {
the_builder_stacking_martial_rewards_effect = yes
give_nickname = nick_the_castle_builder
add_trait = architect
add_character_modifier = the_castle_builder_modifier
}
scripted_effect bp2_yearly_1070_temple_builder_effect = {
the_builder_stacking_learning_rewards_effect = yes
give_nickname = nick_the_temple_builder
add_trait = architect
add_character_modifier = the_temple_builder_modifier
}
bp2_yearly.1070 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1070.t
desc = {
desc = bp2_yearly.1070.intro
first_valid = {
triggered_desc = {
trigger = { exists = scope:1070_province_to_build_in }
desc = bp2_yearly.1070.desc
}
triggered_desc = {
trigger = { exists = scope:1070_province_to_buff }
desc = bp2_yearly.1070.desc_no_province
}
}
#Actually none of the above apply
triggered_desc = {
trigger = {
NOR = {
exists = scope:1070_province_to_build_in
exists = scope:1070_province_to_buff
}
}
desc = bp2_yearly.1070.desc_no_province_no_buff
}
}
theme = education
override_background = { reference = study }
left_portrait = {
character = root
animation = personality_compassionate
}
trigger = {
is_available = yes
is_landed_or_landless_administrative = yes
has_active_diarchy = no
has_variable = the_builder_sightseed_capital
}
on_trigger_fail = {
the_builder_clean_up_flags_effect = yes
if = {
limit = { exists = var:the_builder_sightseed_capital }
remove_variable = the_builder_sightseed_capital
}
if = {
limit = { exists = var:the_builder_constructed_building_in }
remove_variable = the_builder_constructed_building_in
}
}
immediate = {
#play_music_cue = "mx_cue_positive_effect"
var:the_builder_sightseed_capital ?= { save_scope_as = sightseed_capital }
var:the_builder_constructed_building_in ?= { save_scope_as = constructed_building_in }
#Find a holding to build
if = {
limit = {
OR = {
any_held_title = { county_has_empty_province_trigger = yes }
any_sub_realm_county = {
county.holder ?= { is_ai = yes }
any_county_province = { province_has_no_holding_trigger = yes }
}
}
}
#Build in our own area first
ordered_held_title = {
limit = { county_has_empty_province_trigger = yes }
order_by = development_level
save_scope_as = 1070_county_to_build_in
}
if = {
limit = {
NOT = { exists = scope:1070_county_to_build_in }
}
#Then a sub realm
ordered_sub_realm_county = {
limit = {
county.holder ?= { is_ai = yes }
any_county_province = { province_has_no_holding_trigger = yes }
}
order_by = development_level
save_scope_as = 1070_county_to_build_in
}
}
scope:1070_county_to_build_in = {
random_county_province = {
limit = { province_has_no_holding_trigger = yes }
set_variable = {
name = the_builder_holding
value = root
}
save_scope_as = 1070_province_to_build_in
}
}
set_variable = {
name = the_builder_constructed_holding
value = scope:1070_province_to_build_in
}
}
#If no empty provinces, buff a random holding
else_if = {
limit = {
any_held_title = {
title_tier = county
any_county_province = {
NOR = {
has_province_modifier = improved_by_the_city_builder_modifier
has_province_modifier = improved_by_the_castle_builder_modifier
has_province_modifier = improved_by_the_temple_builder_modifier
}
}
}
any_sub_realm_county = {
any_county_province = {
NOR = {
has_province_modifier = improved_by_the_city_builder_modifier
has_province_modifier = improved_by_the_castle_builder_modifier
has_province_modifier = improved_by_the_temple_builder_modifier
}
}
}
}
#Least developed county
ordered_held_title = {
title_tier = county
order_by = {
value = development_level
multiply = -1
}
save_scope_as = 1070_county_to_buff
}
if = {
limit = {
NOT = { exists = scope:1070_county_to_buff }
}
#Least developed sub realm county
ordered_sub_realm_county = {
limit = {
any_county_province = {
NOR = {
has_province_modifier = improved_by_the_city_builder_modifier
has_province_modifier = improved_by_the_castle_builder_modifier
has_province_modifier = improved_by_the_temple_builder_modifier
}
}
}
order_by = {
value = development_level
multiply = -1
}
save_scope_as = 1070_county_to_buff
}
}
scope:1070_county_to_buff = {
ordered_county_province = {
limit = {
NOR = {
has_province_modifier = improved_by_the_city_builder_modifier
has_province_modifier = improved_by_the_castle_builder_modifier
has_province_modifier = improved_by_the_temple_builder_modifier
}
}
#Least developed holdng
order_by = {
value = county.development_level
multiply = -1
}
save_scope_as = 1070_province_to_buff
}
}
}
}
#Build or buff a city
option = {
name = {
text = {
first_valid = {
#Build city
triggered_desc = {
trigger = { exists = scope:1070_province_to_build_in }
desc = bp2_yearly.1070.a
}
#Buff holding
triggered_desc = {
trigger = { exists = scope:1070_province_to_buff }
desc = bp2_yearly.1070.a_buff
}
#I would probs focus on economy
desc = bp2_yearly.1070.a_none
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:1070_province_to_build_in }
desc = bp2_yearly.1070.a.flavor
}
desc = bp2_yearly.1070.a.flavor_none
}
}
the_builder_stewardship_choice_tracker_effect = yes
#We build!
if = {
limit = { exists = scope:1070_province_to_build_in }
scope:1070_province_to_build_in = {
begin_create_holding = { type = city_holding }
}
#Some custom loc to look proper in tooltip
custom_description_no_bullet = { text = upon_holding_completion }
show_as_tooltip = {
bp2_yearly_1070_city_builder_effect = yes
dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain }
}
}
#We buff
else_if = {
limit = { exists = scope:1070_province_to_buff }
bp2_yearly_1070_city_builder_effect = yes
scope:1070_province_to_buff = { add_province_modifier = improved_by_the_city_builder_modifier }
}
#... we really should never end up here. Have some renown, because obviously your domain is pristine.
else = {
bp2_yearly_1070_city_builder_effect = yes
dynasty ?= { add_dynasty_prestige = medium_dynasty_prestige_gain }
}
ai_chance = {
base = 100
modifier = {
ai_has_warlike_personality = yes
factor = 0
}
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
}
}
#Build or buff a castle
option = {
name = {
text = {
first_valid = {
#Build castle
triggered_desc = {
trigger = { exists = scope:1070_province_to_build_in }
desc = bp2_yearly.1070.b
}
#Buff holding
triggered_desc = {
trigger = { exists = scope:1070_province_to_buff }
desc = bp2_yearly.1070.b_buff
}
#I would probs focus on defense
desc = bp2_yearly.1070.b_none
}
}
}
flavor = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
exists = scope:1070_province_to_build_in
exists = scope:1070_province_to_buff
}
}
desc = bp2_yearly.1070.b.flavor
}
desc = bp2_yearly.1070.b.flavor_none
}
}
the_builder_martial_choice_tracker_effect = yes
#We build!
if = {
limit = { exists = scope:1070_province_to_build_in }
scope:1070_province_to_build_in = {
begin_create_holding = { type = castle_holding }
}
#Some custom loc to look proper in tooltip
custom_description_no_bullet = { text = upon_holding_completion }
show_as_tooltip = {
bp2_yearly_1070_castle_builder_effect = yes
dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain }
}
}
#We buff
else_if = {
limit = { exists = scope:1070_province_to_buff }
bp2_yearly_1070_castle_builder_effect = yes
scope:1070_province_to_buff = { add_province_modifier = improved_by_the_castle_builder_modifier }
}
#... we really should never end up here. Have some renown, because obviously your domain is pristine.
else = {
bp2_yearly_1070_castle_builder_effect = yes
dynasty ?= { add_dynasty_prestige = medium_dynasty_prestige_gain }
}
ai_chance = {
base = 100
modifier = {
ai_has_economical_boom_personality = yes
factor = 0
}
modifier = {
has_trait = zealous
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
}
}
#Build or buff a temple
option = {
name = bp2_yearly.1070.c
flavor = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
exists = scope:1070_province_to_build_in
exists = scope:1070_province_to_buff
}
}
desc = bp2_yearly.1070.c.flavor
}
desc = bp2_yearly.1070.c.flavor_none
}
}
the_builder_learning_choice_tracker_effect = yes
#We build!
if = {
limit = { exists = scope:1070_province_to_build_in }
scope:1070_province_to_build_in = {
begin_create_holding = { type = church_holding }
}
#Some custom loc to look proper in tooltip
custom_description_no_bullet = { text = upon_holding_completion }
show_as_tooltip = {
bp2_yearly_1070_temple_builder_effect = yes
dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain }
}
}
#We buff
else_if = {
limit = { exists = scope:1070_province_to_buff }
bp2_yearly_1070_temple_builder_effect = yes
scope:1070_province_to_buff = { add_province_modifier = improved_by_the_temple_builder_modifier }
}
#... we really should never end up here. Have some renown, because obviously your domain is pristine.
else = {
bp2_yearly_1070_temple_builder_effect = yes
dynasty ?= { add_dynasty_prestige = medium_dynasty_prestige_gain }
}
ai_chance = {
base = 100
modifier = {
ai_has_economical_boom_personality = yes
factor = 0
}
modifier = {
ai_has_warlike_personality = yes
factor = 0
}
modifier = {
has_trait = greedy
factor = 0
}
modifier = {
has_trait = craven
factor = 0
}
}
}
after = {
if = {
limit = { exists = var:the_builder_sightseed_capital }
remove_variable = the_builder_sightseed_capital
}
if = {
limit = { exists = var:the_builder_constructed_building_in }
remove_variable = the_builder_constructed_building_in
}
#If the player for whatever reason manually cancels the holding
if = {
limit = { exists = scope:1070_province_to_build_in }
set_variable = {
name = the_builder_holding_cancelled_safeguard
value = scope:1070_province_to_build_in
years = 6 #In general, a holding takes 5 years to build
}
#You dun messed up, son
trigger_event = {
id = bp2_yearly.1072
years = 6
}
}
}
}
#Follow-up: Get the sweet sweet loo... I mean, sweet sweet effects!
bp2_yearly.1071 = {
type = character_event
content_source = dlc_009
title = {
first_valid = {
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
desc = bp2_yearly.1071.t_city
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
desc = bp2_yearly.1071.t_castle
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:learning }
desc = bp2_yearly.1071.t_temple
}
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
desc = bp2_yearly.1071.desc_city
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
desc = bp2_yearly.1071.desc_castle
}
triggered_desc = {
trigger = { var:the_builder_latest_choice ?= flag:learning }
desc = bp2_yearly.1071.desc_temple
}
}
desc = bp2_yearly.1071.outro
}
theme = education
override_background = {
trigger = { var:the_builder_latest_choice ?= flag:stewardship }
reference = market
}
override_background = {
trigger = { var:the_builder_latest_choice ?= flag:martial }
reference = courtyard
}
override_background = {
trigger = { var:the_builder_latest_choice ?= flag:learning }
reference = holy_site_generic
}
left_portrait = {
character = root
animation = personality_honorable
}
immediate = {
#play_music_cue = "mx_cue_positive_effect"
var:the_builder_constructed_holding ?= { save_scope_as = constructed_holding }
}
#Alright
option = {
name = bp2_yearly.1071.a
flavor = bp2_yearly.1071.a.flavor
if = {
limit = { var:the_builder_latest_choice ?= flag:stewardship }
bp2_yearly_1070_city_builder_effect = yes
}
else_if = {
limit = { var:the_builder_latest_choice ?= flag:martial }
bp2_yearly_1070_castle_builder_effect = yes
}
else_if = {
limit = { var:the_builder_latest_choice ?= flag:learning }
bp2_yearly_1070_temple_builder_effect = yes
}
dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain }
}
after = {
if = {
limit = { has_variable = the_builder_constructed_holding }
remove_variable = the_builder_constructed_holding
}
the_builder_clean_up_flags_effect = yes
}
}
#Clean up: You dun messed up, son
bp2_yearly.1072 = {
type = character_event
content_source = dlc_009
title = bp2_yearly.1072.t
desc = bp2_yearly.1072.desc
theme = education
override_background = { reference = study }
left_portrait = {
character = root
animation = sadness
}
trigger = {
has_variable = the_builder_holding_cancelled_safeguard
}
immediate = {
#play_music_cue = "mx_cue_negative"
var:the_builder_holding_cancelled_safeguard = { save_scope_as = cancelled_holding }
}
#Wa-wa
option = {
name = bp2_yearly.1072.a
}
after = {
if = {
limit = { has_variable = the_builder_holding_cancelled_safeguard }
remove_variable = the_builder_holding_cancelled_safeguard
}
the_builder_clean_up_flags_effect = yes
}
}