N3OW/events/court_events/01_ep3_court_events_3.txt
2026-01-06 14:25:21 +01:00

3474 lines
70 KiB
Text

namespace = court_events
# High court fashion: foreign rulers admire and envy you as the peak of class and elegance, can you capitalize on this reputation?
court_events.3000 = {
type = court_event
title = court_events.3000.t
desc = court_events.3000.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:chancellor
roles = {
scope:chancellor = {
group = event_group
animation = debating
}
root = {
group = event_group
triggered_animation = {
trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } }
animation = acknowledging # anim uses crucifix scepter
}
animation = war_over_tie
}
scope:steward = {
group = event_group
animation = personality_content
}
}
}
trigger = {
exists = cp:councillor_chancellor
exists = cp:councillor_steward
amenity_level = {
target = court_fashion
value >= 4
}
NOT = {
any_neighboring_top_liege_realm_owner = {
has_royal_court = yes
amenity_level = {
target = court_fashion
value > 4
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
amenity_level = {
target = court_fashion
value = 5
}
add = 0.5
}
ep1_weight_up_for_court_type_modifier = { COURT_TYPE = court_diplomatic }
}
immediate = {
court_event_character_flag_effect = yes
cp:councillor_chancellor = {
court_event_character_flag_effect = yes
save_scope_as = chancellor
}
cp:councillor_steward = {
court_event_character_flag_effect = yes
save_scope_as = steward
}
}
# Option A: Increase opinion abroad
option = {
name = court_events.3000.a
add_character_modifier = {
modifier = court_fashion_foreign_modifier
years = 20
}
stress_impact = {
arrogant = minor_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 0.5
ai_sociability = 0.5
}
}
}
# Option B: Spread culture
option = {
name = court_events.3000.b
add_character_modifier = {
modifier = court_fashion_culture_modifier
years = 20
}
stress_impact = {
gregarious = minor_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = -0.5
ai_boldness = -0.5
}
}
}
# Option C: sell fashion
option = {
name = court_events.3000.c
add_character_modifier = {
modifier = court_fashion_sell_modifier
years = 20
}
stress_impact = {
generous = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
}
}
}
after = {
clear_court_event_participation = yes
scope:chancellor = { clear_court_event_participation = yes }
scope:steward = { clear_court_event_participation = yes }
}
}
# Low court food: Someone complains that it's always the same soup every day
court_events.3010 = {
type = court_event
title = court_events.3010.t
desc = court_events.3010.desc
theme = court
cooldown = { years = 20 }
court_scene = {
button_position_character = scope:courtier
roles = {
scope:courtier = {
group = event_group
animation = beg
}
root = {
group = event_group
animation = thinking
}
}
}
trigger = {
amenity_level = {
target = court_food_quality
value <= 2
}
any_courtier_or_guest = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
}
}
weight_multiplier = {
base = 1
modifier = {
amenity_level = {
target = court_food_quality
value <= 1
}
add = 0.5
}
modifier = {
any_courtier_or_guest = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
has_trait = gluttonous
}
add = 0.5
}
modifier = {
any_courtier_or_guest = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
has_trait = comfort_eater
}
add = 0.5
}
}
immediate = {
court_event_character_flag_effect = yes
random_courtier_or_guest = {
limit = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
OR = {
has_trait = gluttonous
has_trait = comfort_eater
}
}
alternative_limit = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
}
save_scope_as = courtier
}
scope:courtier = { court_event_character_flag_effect = yes }
}
# Option A: Hire chefs
option = {
name = court_events.3010.a
trigger = {
NOT = { government_has_flag = government_is_tribal }
}
remove_short_term_gold = minor_gold_value
set_amenity_level = { type = court_food_quality value = 3 }
custom_tooltip = cheaper_food_for_15_years
add_character_flag = {
flag = court_cheaper_food
years = 15
}
stress_impact = {
greedy = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
humble = medium_stress_impact_gain
temperate = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
}
modifier = {
has_trait = paranoid
factor = 0
}
}
}
# Option B: it's healthy and pious!
option = {
name = court_events.3010.b
add_character_modifier = {
modifier = healthy_and_modest_diet_modifier
years = 15
}
stress_impact = {
arrogant = medium_stress_impact_gain
gluttonous = major_stress_impact_gain
comfort_eater = major_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = 0.5
}
modifier = {
has_trait = lifestyle_physician
add = 50
}
modifier = {
has_trait = whole_of_body
add = 50
}
modifier = {
has_trait = paranoid
factor = 0.5
}
}
}
# Option C: it's for my safety
option = {
name = court_events.3010.c
flavor = court_events.3010.c.tt
add_character_modifier = {
modifier = cant_poison_soup_modifier
years = 15
}
stress_impact = {
gregarious = medium_stress_impact_gain
trusting = major_stress_impact_gain
gluttonous = major_stress_impact_gain
comfort_eater = major_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = -0.5
}
modifier = {
has_trait = paranoid
add = 200
}
modifier = {
has_trait = trusting
factor = 0
}
}
}
after = {
clear_court_event_participation = yes
scope:courtier = { clear_court_event_participation = yes }
}
}
# Low court lodgings: crappy living conditions increase the spread of sickness, what do you do?
court_events.3020 = {
type = court_event
title = court_events.3020.t
desc = {
desc = court_events.3020.desc
triggered_desc = {
trigger = {
exists = scope:physician
}
desc = court_events.3020.desc_physician
}
triggered_desc = {
trigger = {
exists = scope:architect
}
desc = court_events.3020.desc_architect
}
}
theme = court
cooldown = { years = 20 }
court_scene = {
button_position_character = scope:courtier
roles = {
scope:courtier = {
group = event_group
animation = beg
}
root = {
group = event_group
animation = thinking
}
scope:physician ?= {
group = event_group
animation = physician
}
}
}
trigger = {
amenity_level = {
target = court_lodging_standards
value <= 2
}
any_courtier_or_guest = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
NOR = {
has_court_position = court_physician_court_position
has_court_position = royal_architect_court_position
}
}
}
weight_multiplier = {
base = 0.5
modifier = {
add = 0.5
amenity_level = {
target = court_lodging_standards
value <= 1
}
}
modifier = {
add = 0.5
court_position:court_physician_court_position ?= {
aptitude = {
court_position = court_physician_court_position
value >= 3
}
}
}
modifier = {
add = 1
capital_province = {
any_province_epidemic = { }
}
}
modifier = {
add = 0.5
capital_county = {
any_neighboring_county = {
has_province_with_epidemic = { intensity = any }
}
}
}
}
immediate = {
court_event_character_flag_effect = yes
if = {
limit = {
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
is_available_ai_adult = yes
NOT = { has_court_position = royal_architect_court_position }
}
}
court_position:court_physician_court_position = {
save_scope_as = physician
court_event_character_flag_effect = yes
}
}
if = {
limit = {
employs_court_position = royal_architect_court_position
court_position:royal_architect_court_position = {
is_available_ai_adult = yes
NOT = { has_court_position = court_physician_court_position }
}
}
court_position:royal_architect_court_position = {
save_scope_as = architect
court_event_character_flag_effect = yes
}
}
random_courtier_or_guest = {
limit = {
is_available_ai_adult = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
NOR = {
has_court_position = court_physician_court_position
has_court_position = royal_architect_court_position
}
}
save_scope_as = courtier
court_event_character_flag_effect = yes
}
if = {
limit = {
exists = scope:physician
NOT = { exists = scope:architect }
}
scope:physician = { save_scope_as = expert }
}
if = {
limit = {
exists = scope:architect
NOT = { exists = scope:physician }
}
scope:architect = { save_scope_as = expert }
}
}
# Option A: improve lodgings and epidemics resistance
option = {
name = court_events.3020.a
trigger = {
NOR = {
government_has_flag = government_is_tribal
employs_court_position = court_physician_court_position
employs_court_position = royal_architect_court_position
}
}
remove_short_term_gold = minor_gold_value
if = {
limit = {
NOT = { government_has_flag = government_is_tribal }
}
set_amenity_level = { type = court_lodging_standards value = 3 }
}
capital_province = {
add_province_modifier = {
modifier = lodgings_epidemics_resistance_modifier
years = 15
}
}
stress_impact = {
arrogant = minor_stress_impact_gain
humble = minor_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 0.5
ai_compassion = 1
}
}
}
# Option B: physician or architect - improve lodgings and epidemics resistance better
option = {
name = court_events.3020.b
trigger = {
NOT = { government_has_flag = government_is_tribal }
OR = {
employs_court_position = court_physician_court_position
employs_court_position = royal_architect_court_position
}
NAND = {
employs_court_position = court_physician_court_position
employs_court_position = royal_architect_court_position
}
}
remove_short_term_gold = minor_gold_value
if = {
limit = {
NOT = { government_has_flag = government_is_tribal }
}
set_amenity_level = { type = court_lodging_standards value = 3 }
custom_tooltip = cheaper_lodgings_for_15_years
}
capital_province = {
add_province_modifier = {
modifier = lodgings_epidemics_resistance_modifier_1
years = 15
}
}
stress_impact = {
arrogant = minor_stress_impact_gain
humble = minor_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 200
ai_value_modifier = {
ai_rationality = 1
ai_compassion = 0.5
}
}
}
# Option C: physician and architect - improve lodgings and epidemics resistance cheaper and better
option = {
name = court_events.3020.c
trigger = {
employs_court_position = court_physician_court_position
employs_court_position = royal_architect_court_position
}
if = {
limit = {
NOT = { government_has_flag = government_is_tribal }
}
set_amenity_level = { type = court_lodging_standards value = 3 }
custom_tooltip = cheaper_lodgings_for_15_years_1
}
capital_province = {
add_province_modifier = {
modifier = lodgings_epidemics_resistance_modifier_2
years = 15
}
}
stress_impact = {
arrogant = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 200
ai_value_modifier = {
ai_rationality = 1
ai_compassion = 0.5
}
}
}
# Option D: it's fiiiine
option = {
name = court_events.3020.d
capital_province = {
add_province_modifier = {
modifier = lodgings_epidemics_no_resistance_modifier
years = 15
}
}
stress_impact = {
base = minor_stress_impact_loss
paranoid = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_rationality = -0.5
}
}
}
after = {
clear_court_event_participation = yes
scope:physician ?= { clear_court_event_participation = yes }
scope:architect ?= { clear_court_event_participation = yes }
scope:courtier = { clear_court_event_participation = yes }
}
}
# High court lodgings: an inspired character improves their inspiration
court_events.3030 = {
type = court_event
title = court_events.3030.t
desc = court_events.3030.desc
theme = court
cooldown = { years = 10 }
court_scene = {
button_position_character = scope:inspiration_owner
roles = {
scope:inspiration_owner = {
group = event_group
animation = ecstasy
}
root = {
group = event_group
animation = happiness
}
}
}
trigger = {
has_royal_court = yes
exists = scope:inspiration
scope:inspiration_owner = {
is_available_ai_adult = yes
inspiration = { #Since they're away adventuring
NOT = { has_inspiration_type = adventure_inspiration }
}
NOR = {
has_character_flag = fund_weapon_inspiration_event_cooldown
has_character_flag = fund_armor_inspiration_event_cooldown
has_character_flag = fund_book_inspiration_event_cooldown
has_character_flag = fund_weaver_inspiration_event_cooldown
has_character_flag = fund_adventure_inspiration_event_cooldown
has_character_flag = fund_artisan_inspiration_event_cooldown
has_character_flag = fund_smith_inspiration_event_cooldown
has_character_flag = fund_alchemy_inspiration_event_cooldown
has_character_flag = fund_research_inspiration_event_cooldown
has_character_flag = fund_bow_inspiration_event_cooldown
}
}
amenity_level = {
target = court_lodging_standards
value >= 4
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
amenity_level = {
target = court_lodging_standards
value >= 5
}
}
}
immediate = {
court_event_character_flag_effect = yes
scope:inspiration_owner = {
if = {
limit = {
inspiration = { has_inspiration_type = weapon_inspiration }
}
add_character_flag = {
flag = fund_weapon_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = armor_inspiration }
}
add_character_flag = {
flag = fund_armor_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = book_inspiration }
}
add_character_flag = {
flag = fund_book_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = weaver_inspiration }
}
add_character_flag = {
flag = fund_weaver_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = adventure_inspiration }
}
add_character_flag = {
flag = fund_adventure_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = artisan_inspiration }
}
add_character_flag = {
flag = fund_artisan_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = smith_inspiration }
}
add_character_flag = {
flag = fund_smith_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = alchemy_inspiration }
}
add_character_flag = {
flag = fund_alchemy_inspiration_event_cooldown
days = { 30 60 }
}
}
else_if = {
limit = {
inspiration = { has_inspiration_type = research_inspiration }
}
add_character_flag = {
flag = fund_research_inspiration_event_cooldown
days = { 30 60 }
}
}
court_event_character_flag_effect = yes
}
}
# Option A:
option = {
name = court_events.3030.a
trigger = {
has_royal_court = yes
amenity_level = {
target = court_lodging_standards
value < 5
}
}
set_amenity_level = { type = court_lodging_standards value = 5 }
scope:inspiration_owner = {
change_artifact_quality_effect = { AMOUNT = 4 }
inspiration = { change_inspiration_progress = 2 }
}
stress_impact = {
base = minor_stress_impact_loss
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.5
}
}
}
# Option B:
option = {
name = court_events.3030.b
scope:inspiration_owner = {
change_artifact_quality_effect = { AMOUNT = 2 }
inspiration = { change_inspiration_progress = 1 }
}
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
after = {
clear_court_event_participation = yes
scope:inspiration_owner = { clear_court_event_participation = yes }
}
}
# Low court servants: the current war in X has displaced many refugees, so you can hire them at court as higher-level servants for cheaper
court_events.3040 = {
type = court_event
title = court_events.3040.t
desc = court_events.3040.desc
theme = court
cooldown = { years = 20 }
court_scene = {
button_position_character = scope:steward
roles = {
scope:steward = {
group = event_group
animation = thinking
}
root = {
group = event_group
triggered_animation = {
trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } }
animation = acknowledging # anim uses crucifix scepter
}
animation = war_over_tie
}
}
}
trigger = {
exists = cp:councillor_steward
amenity_level = {
target = court_servants
value <= 2
}
is_at_war = no
any_neighboring_top_liege_realm_owner = {
is_at_war = yes
any_realm_county = {
any_county_province = {
is_occupied = yes
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
amenity_level = {
target = court_servants
value <= 1
}
add = 1
}
modifier = {
any_neighboring_top_liege_realm_owner = {
is_at_war = yes
any_realm_border_county = {
any_neighboring_county = {
holder.top_liege = root
}
any_county_province = {
is_occupied = yes
}
}
}
add = 1
}
}
immediate = {
court_event_character_flag_effect = yes
cp:councillor_steward = {
save_scope_as = steward
court_event_character_flag_effect = yes
}
random_neighboring_top_liege_realm_owner = {
limit = {
is_at_war = yes
any_realm_county = {
any_county_province = {
is_occupied = yes
}
}
}
save_scope_as = neighbor
random_realm_county = {
limit = {
any_county_province = {
is_occupied = yes
}
}
random_county_province = {
limit = {
is_occupied = yes
}
save_scope_as = occupied_prov
}
}
}
scope:neighbor.primary_title = { save_scope_as = war_realm }
}
# Option A: let them in
option = {
name = court_events.3040.a
every_realm_border_county = {
limit = {
any_neighboring_county = {
holder.top_liege = scope:neighbor
}
}
add_county_modifier = {
modifier = court_war_immigration_modifier
years = 15
}
}
stress_impact = {
paranoid = minor_stress_impact_gain
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.5
}
}
}
# Option B: hire them as servants
option = {
name = court_events.3040.b
trigger = {
NOT = { government_has_flag = government_is_tribal }
}
set_amenity_level = { type = court_servants value = 3 }
custom_tooltip = cheaper_servants_for_15_years
add_character_flag = court_cheaper_servants
stress_impact = {
content = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
add = -25
has_trait = content
}
modifier = {
add = -50
has_trait = paranoid
}
modifier = {
add = -50
has_trait = humble
}
}
}
# Option C: no thanks
option = {
name = court_events.3040.c
stress_impact = {
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = -1
}
}
}
after = {
clear_court_event_participation = yes
scope:steward = { clear_court_event_participation = yes }
}
}
# High court food: everyone wants to eat at your court
court_events.3050 = {
type = court_event
title = court_events.3050.t
desc = court_events.3050.desc
theme = court
cooldown = { years = 20 }
court_scene = {
button_position_character = scope:chancellor
roles = {
scope:chancellor = {
group = event_group
animation = happiness
}
root = {
group = event_group
animation = thinking
}
}
}
trigger = {
exists = cp:councillor_chancellor
amenity_level = {
target = court_food_quality
value >= 5
}
}
weight_multiplier = {
base = 1
}
immediate = {
court_event_character_flag_effect = yes
cp:councillor_chancellor = {
court_event_character_flag_effect = yes
save_scope_as = chancellor
}
}
# Option A: improve domestic affairs
option = {
name = court_events.3050.a
custom_tooltip = court_events.3050.a.tt
add_character_flag = {
flag = food_improves_opinion
years = 15
}
stress_impact = {
gregarious = minor_stress_impact_gain
generous = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 1
}
}
}
# Option B: improve your feasts
option = {
name = court_events.3050.b
custom_tooltip = court_events.3050.b.tt
add_character_flag = {
flag = food_improves_feasts
years = 15
}
stress_impact = {
shy = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 1
}
}
}
after = {
clear_court_event_participation = yes
scope:chancellor = { clear_court_event_participation = yes }
}
}
# High court servants: can't keep track of who is who
court_events.3060 = {
type = court_event
title = court_events.3060.t
desc = court_events.3060.desc
theme = court
cooldown = { years = 15 }
court_scene = {
button_position_character = scope:spymaster
roles = {
scope:spymaster = {
group = event_group
animation = spymaster
}
root = {
group = event_group
animation = scheme
}
}
}
trigger = {
exists = cp:councillor_spymaster
amenity_level = {
target = court_servants
value >= 5
}
}
weight_multiplier = {
base = 1
modifier = {
has_lifestyle = intrigue_lifestyle
add = 1
}
modifier = {
has_trait = education_intrigue
add = 1
}
}
immediate = {
court_event_character_flag_effect = yes
cp:councillor_spymaster = {
court_event_character_flag_effect = yes
save_scope_as = spymaster
}
}
# Option A: So much potential
option = {
name = court_events.3060.a
flavor = court_events.3060.a.tt
add_character_modifier = {
modifier = spies_behind_every_corner_modifier
years = 15
}
stress_impact = {
honest = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
trusting = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 0.5
ai_boldness = 0.5
}
}
}
# Option B: Put them to work instead
option = {
name = court_events.3060.b
add_character_modifier = {
modifier = servants_aplenty_cleaning_modifier
years = 15
}
stress_impact = {
deceitful = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
}
}
}
after = {
clear_court_event_participation = yes
scope:spymaster = { clear_court_event_participation = yes }
}
}
# Low court fashion: A foreign ruler that is traveling through your capital complains about your courtiers and yourself looking like commoners
court_events.3070 = {
type = court_event
title = court_events.3070.t
desc = court_events.3070.desc
theme = court
cooldown = { years = 20 }
court_scene = {
button_position_character = scope:guest
roles = {
scope:guest = {
group = event_group
animation = dismissal
}
root = {
group = event_group
animation = eyeroll
}
}
}
immediate = {
court_event_character_flag_effect = yes
scope:guest = { court_event_character_flag_effect = yes }
}
# Option A: Accept advise
option = {
name = court_events.3070.a
trigger = {
NOT = { government_has_flag = government_is_tribal }
}
remove_short_term_gold = minor_gold_value
set_amenity_level = { type = court_fashion value = 3 }
custom_tooltip = cheaper_fashion_for_15_years
add_character_flag = {
flag = court_cheaper_fashion
years = 15
}
stress_impact = {
arrogant = major_stress_impact_gain
greedy = medium_stress_impact_gain
humble = medium_stress_impact_gain
eccentric = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
ai_boldness = 0.5
ai_vengefulness = 0.5
}
}
}
# Option B: Embrace humility
option = {
name = court_events.3070.b
add_character_modifier = {
modifier = humble_appearance_modifier
years = 15
}
stress_impact = {
arrogant = medium_stress_impact_gain
eccentric = minor_stress_impact_loss
humble = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
}
}
}
#Option C: how dare you??
option = {
name = court_events.3070.c
if = {
limit = {
NOT = {
amenity_level = {
target = court_fashion
value = 2
}
}
}
set_amenity_level = { type = court_fashion value = 2 }
}
custom_tooltip = free_fashion_for_15_years
add_character_flag = {
flag = court_free_fashion
years = 15
}
stress_impact = {
humble = major_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_boldness = 1
}
}
}
after = {
clear_court_event_participation = yes
scope:guest = { clear_court_event_participation = yes }
}
}
# Event triggered by the traveler
court_events.3071 = {
type = character_event
hidden = yes
trigger = {
is_landed = yes
is_ai = yes
is_adult = yes
is_location_valid_for_travel_event_on_land = yes
OR = {
has_royal_court = yes
top_liege ?= { has_royal_court = yes }
}
location.county.holder.top_liege.capital_province = root.location
location.county.holder.top_liege = {
has_royal_court = yes
is_adult = yes
amenity_level = {
target = court_fashion
value <= 2
}
}
trigger_if = {
limit = {
has_royal_court = yes
}
amenity_level = {
target = court_fashion
value > 2
}
}
trigger_else_if = {
limit = {
top_liege ?= { has_royal_court = yes }
}
top_liege = {
amenity_level = {
target = court_fashion
value > 2
}
}
}
trigger_else = {
always = no
}
}
weight_multiplier = {
base = 1
modifier = {
location.county.holder.top_liege = {
amenity_level = {
target = court_fashion
value <= 1
}
}
add = 0.5
}
modifier = {
has_royal_court = yes
add = 0.5
}
modifier = {
top_liege ?= {
amenity_level = {
target = court_fashion
value > 3
}
}
add = 0.5
}
modifier = {
top_liege ?= {
amenity_level = {
target = court_fashion
value > 4
}
}
add = 0.5
}
}
immediate = {
root = { save_scope_as = guest }
location.county.holder.top_liege = {
trigger_event = {
id = court_events.3070
days = 1
}
}
}
}
# Diplo court: A famous poet comes to your court offering their services
scripted_trigger 3080_valid_poet_trigger = {
is_available_ai_adult = yes
OR = {
has_trait = lifestyle_poet
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 80
}
}
diplomacy >= 18
}
}
court_events.3080 = {
type = court_event
title = court_events.3080.t
desc = court_events.3080.desc
theme = court
cooldown = { years = 30 }
court_scene = {
button_position_character = scope:poet
roles = {
scope:poet = {
group = event_group
animation = obsequious_bow
}
root = {
group = event_group
animation = thinking
}
}
}
trigger = {
has_court_type = court_diplomatic
NOT = { employs_court_position = court_poet_court_position }
can_employ_court_position_type = court_poet_court_position
court_grandeur_current_level > court_grandeur_minimum_expected_level
}
weight_multiplier = {
base = 1
modifier = {
court_grandeur_current_level >= 2_levels_above_expected_level
add = 0.5
}
modifier = {
court_grandeur_current_level >= 3_levels_above_expected_level
add = 0.5
}
modifier = {
court_grandeur_current_level >= 4_levels_above_expected_level
add = 0.5
}
modifier = {
court_grandeur_current_level >= 5_levels_above_expected_level
add = 0.5
}
modifier = {
court_grandeur_current_level >= 6_levels_above_expected_level
add = 0.5
}
}
immediate = {
court_event_character_flag_effect = yes
random_pool_character = {
province = root.location
limit = {
3080_valid_poet_trigger = yes
}
save_scope_as = poet
}
if = {
limit = {
NOT = { exists = scope:poet }
}
location.county = {
random_neighboring_county = {
culture = {
save_scope_as = poet_culture
}
}
}
create_character = {
location = root.location
template = ep3_poet_toned_down_template
culture = scope:poet_culture
save_scope_as = poet
}
}
hidden_effect = {
scope:poet = {
court_event_character_flag_effect = yes
if = {
limit = {
NOT = { has_trait = lifestyle_poet }
}
add_trait = lifestyle_poet
}
if = {
limit = {
NOT = { has_trait = eccentric }
}
add_trait = eccentric
}
}
add_courtier = scope:poet
}
}
# Option A: hire for speeches
option = {
name = court_events.3080.a
court_position_grant_effect = {
POS = court_poet
CANDIDATE = scope:poet
EMPLOYER = root
}
add_character_modifier = {
modifier = ghost_writer_at_court_modifier
years = 20
}
stress_impact = {
humble = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
honest = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
}
}
}
# Option B: hire for diplo schemes
option = {
name = court_events.3080.b
court_position_grant_effect = {
POS = court_poet
CANDIDATE = scope:poet
EMPLOYER = root
}
add_character_modifier = {
modifier = poet_for_diplo_schemes_modifier
years = 20
}
stress_impact = {
honest = medium_stress_impact_gain
content = medium_stress_impact_gain
loyal = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
}
modifier = {
has_trait = deceitful
add = 50
}
}
}
# Option C: hire for seduction
option = {
name = court_events.3080.c
court_position_grant_effect = {
POS = court_poet
CANDIDATE = scope:poet
EMPLOYER = root
}
add_character_modifier = {
modifier = poet_for_seduction_schemes_modifier
years = 20
}
stress_impact = {
chaste = major_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_honor = -0.5
}
modifier = {
has_trait = lustful
factor = 2
}
modifier = {
has_trait = rakish
factor = 3
}
modifier = {
has_trait = chaste
factor = 0
}
}
}
# Option D: no thanks
option = {
name = court_events.3080.d
scope:poet = { select_and_move_to_pool_effect = yes }
stress_impact = {
lifestyle_poet = massive_stress_impact_gain
generous = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_greed = 1
}
}
}
after = {
clear_court_event_participation = yes
scope:poet = {
clear_court_event_participation = yes
if = {
limit = {
NOT = { has_court_position = court_poet_court_position }
root = { is_ai = yes }
}
silent_disappearance_effect = yes
}
}
}
}
# Martial court: One of your young children dreams of being a great warrior and wants you to teach them to ride a horse
scripted_trigger 3090_valid_child_trigger = {
is_available_ai_child = yes
age >= 6
age <= 12
NOR = {
any_owned_story = {
type = story_cycle_martial_lifestyle_warhorse
}
has_trait = craven
has_trait = shy
has_trait = lazy
has_trait = content
}
OR = {
has_trait = rowdy
has_trait = bossy
}
location = root.location
is_landed = no
}
court_events.3090 = {
type = court_event
title = court_events.3090.t
desc = court_events.3090.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:child
roles = {
scope:child = {
group = event_group
animation = beg
}
root = {
group = event_group
animation = thinking
}
}
}
trigger = {
has_court_type = court_warlike
any_child = {
3090_valid_child_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
any_child = {
3090_valid_child_trigger = yes
is_heir_of = root
}
add = 1
}
modifier = {
any_child = {
3090_valid_child_trigger = yes
has_trait = ambitious
}
add = 0.5
}
modifier = {
any_child = {
3090_valid_child_trigger = yes
has_trait = brave
}
add = 0.5
}
modifier = {
any_child = {
3090_valid_child_trigger = yes
has_focus = education_martial
}
add = 0.5
}
modifier = {
any_owned_story = {
type = story_cycle_martial_lifestyle_warhorse
}
add = 1
}
modifier = {
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
add = 1
}
modifier = {
has_trait_xp = {
trait = tourney_participant
track = horse
value > 0
}
has_trait_xp = {
trait = tourney_participant
track = horse
value < 50
}
add = 0.5
}
modifier = {
has_trait = family_first
add = 1
}
modifier = {
has_trait = callous
factor = 0
}
modifier = {
has_trait = sadistic
factor = 0
}
}
immediate = {
random_child = {
limit = {
3090_valid_child_trigger = yes
}
weight = {
base = 1
modifier = {
is_heir_of = root
add = 50
}
modifier = {
has_trait = ambitious
add = 15
}
modifier = {
has_trait = brave
add = 15
}
modifier = {
has_focus = education_martial
add = 15
}
}
save_scope_as = child
court_event_character_flag_effect = yes
}
court_event_character_flag_effect = yes
}
# Option A: teach
option = {
name = court_events.3090.a
scope:child = {
if = {
limit = {
has_focus = education_martial
}
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
add_prowess_skill = 1
add_character_modifier = {
modifier = court_confident_rider_modifier
years = 50
}
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 25
}
}
stress_impact = {
lazy = medium_stress_impact_gain
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 1
ai_sociability = 0.5
}
modifier = {
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
add = 100
}
}
}
# Option B: when you grow up
option = {
name = court_events.3090.b
flavor = court_events.3090.b.tt
custom_tooltip = court_events.3090.b.tt_effect
scope:child = {
add_stewardship_skill = 1
set_variable = {
name = promised_me_a_pony
value = root
}
if = {
limit = {
NOT = {
has_focus = education_martial
}
}
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 10
}
}
stress_impact = {
impatient = medium_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 1
}
modifier = {
has_trait = impatient
add = -50
}
}
}
# Option C: no
option = {
name = court_events.3090.c
scope:child = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -20
}
}
stress_impact = {
brave = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = -1
}
modifier = {
has_trait = brave
add = -25
}
}
}
after = {
clear_court_event_participation = yes
scope:child = { clear_court_event_participation = yes }
}
}
court_events.3091 = {
type = character_event
title = court_events.3090.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:parent = { is_alive = no }
}
desc = court_events.3091.desc_no_parent
}
desc = court_events.3091.desc
}
}
theme = family
override_background = { reference = garden }
left_portrait = {
character = root
triggered_animation = {
trigger = {
scope:parent = { is_alive = yes }
}
animation = jockey_victory
}
animation = jockey_walk
camera = camera_event_horse_right
}
right_portrait = {
character = scope:parent
triggered_animation = {
trigger = {
scope:parent = { is_alive = yes }
}
animation = admiration
}
animation = dead
}
trigger = {
has_variable = promised_me_a_pony
}
immediate = {
var:promised_me_a_pony = { save_scope_as = parent }
root = { save_scope_as = child }
scope:parent = {
if = {
limit = {
is_alive = yes
}
trigger_event = court_events.3092
}
}
create_story = story_cycle_martial_lifestyle_warhorse
}
option = {
name = court_events.3091.a
}
}
court_events.3092 = {
type = character_event
title = court_events.3090.t
desc = court_events.3092.desc
theme = family
override_background = { reference = garden }
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:child
animation = jockey_victory
camera = camera_event_horse_right
}
immediate = {
show_as_tooltip = {
scope:child = {
create_story = story_cycle_martial_lifestyle_warhorse
}
}
}
option = {
name = court_events.3092.a
scope:child = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 15
}
}
}
}
# Boost to learning your court language if you don't know it
court_events.3100 = {
type = court_event
title = court_events.3100.t
desc = court_events.3100.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:chancellor
roles = {
scope:chancellor = {
group = event_group
animation = chancellor
}
root = {
group = event_group
animation = personality_cynical
}
}
}
trigger = {
NOT = { knows_court_language_of = root }
has_royal_court = yes
OR = {
any_courtier = {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
is_available_ai_adult = yes
}
cp:councillor_chancellor ?= {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
is_available_ai_adult = yes
}
}
is_available_healthy_adult = yes
NOT = {
any_scheme = { type = learn_language }
}
}
weight_multiplier = {
base = 1
modifier = {
any_courtier = {
has_character_flag = court_linguist_flag
root = {
has_court_language_of_culture = prev.culture
}
}
add = 1
}
modifier = {
add = {
value = {
every_close_family_member = {
limit = {
NOT = { knows_court_language_of = root }
}
add = 1
}
}
}
}
}
immediate = {
random_courtier = {
limit = {
has_character_flag = court_linguist_flag
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
is_available_ai_adult = yes
}
save_scope_as = chancellor
}
if = {
limit = {
NOT = { exists = scope:chancellor }
cp:councillor_chancellor ?= {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
is_available_ai_adult = yes
}
}
cp:councillor_chancellor = { save_scope_as = chancellor }
}
else = {
random_courtier = {
limit = {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
is_available_ai_adult = yes
}
weight = {
base = 1
modifier = {
has_court_position = court_tutor_court_position
add = 20
}
modifier = {
is_close_family_of = root
add = 10
}
modifier = {
has_trait = scholar
add = 10
}
modifier = {
has_trait = loyal
add = 5
}
modifier = {
has_trait = diligent
add = 5
}
modifier = {
has_trait = gregarious
add = 5
}
}
save_scope_as = chancellor
}
}
scope:chancellor = { court_event_character_flag_effect = yes }
if = {
limit = {
employs_court_position = court_tutor_court_position
court_position:court_tutor_court_position = {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
}
}
court_position:court_tutor_court_position = { save_scope_as = linguist }
}
else_if = {
limit = {
any_courtier = {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
}
}
random_courtier = {
limit = {
knows_court_language_of = root
root = {
has_court_language_of_culture = prev.culture
}
}
save_scope_as = linguist
}
}
court_event_character_flag_effect = yes
}
# Option A: start studying
option = {
name = court_events.3100.a
custom_tooltip = {
text = court_events.3100.a.tt
start_scheme = {
type = learn_language
target_character = scope:chancellor
}
random_scheme = {
type = learn_language
add_scheme_modifier = { type = pressured_to_learn_court_language_modifier }
}
}
start_scheme = {
type = learn_language
target_character = scope:chancellor
}
random_scheme = {
type = learn_language
add_scheme_modifier = { type = pressured_to_learn_court_language_modifier }
}
stress_impact = {
arrogant = medium_stress_impact_gain
lazy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = humble
add = 25
}
modifier = {
has_trait = diligent
add = 25
}
}
}
# Option B: has linguist/tutor - teach the whole family/faster
option = {
name = court_events.3100.b
trigger = {
exists = scope:linguist
}
start_scheme = {
type = learn_language
target_character = scope:linguist
}
random_scheme = {
type = learn_language
add_scheme_modifier = { type = linguist_help_for_court_language_modifier }
}
every_close_family_member = {
limit = {
NOT = { knows_court_language_of = root }
location = root.location
is_adult = yes
is_ai = yes
}
start_scheme = {
type = learn_language
target_character = scope:linguist
}
random_scheme = {
type = learn_language
add_scheme_modifier = { type = linguist_help_for_court_language_modifier }
}
}
every_close_family_member = {
limit = {
NOT = { knows_court_language_of = root }
location = root.location
is_adult = no
is_ai = yes
}
learn_court_language_of = root
}
stress_impact = {
arrogant = minor_stress_impact_gain
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 250
}
}
# Option C: it's not the time for this
option = {
name = court_events.3100.c
add_prestige = medium_prestige_gain
stress_impact = {
humble = minor_stress_impact_gain
diligent = minor_stress_impact_gain
}
ai_chance = {
base = 75
modifier = {
has_trait = arrogant
add = 50
}
modifier = {
has_trait = humble
add = -25
}
modifier = {
has_trait = diligent
add = -25
}
}
}
after = {
clear_court_event_participation = yes
scope:chancellor = { clear_court_event_participation = yes }
}
}
# Stewardship court: a vassal's construction program is challenging you
scripted_trigger court_3110_valid_vassal_trigger = {
is_landed = yes
is_available_ai_adult = yes
capital_county.title_province = {
OR = {
combined_building_level > root.capital_county.title_province.combined_building_level
num_buildings > root.capital_county.title_province.num_buildings
}
has_ongoing_construction = yes
}
OR = {
has_trait = arrogant
has_trait = architect
has_trait = honest
has_trait = gregarious
has_trait = disloyal
has_focus = stewardship_domain_focus
}
highest_held_title_tier >= tier_county
}
court_events.3110 = {
type = court_event
title = court_events.3110.t
desc = court_events.3110.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:steward
roles = {
scope:steward = {
group = event_group
animation = worry
}
root = {
group = event_group
animation = disapproval
}
}
}
trigger = {
has_royal_court = yes
has_court_type = court_administrative
OR = {
has_focus = stewardship_wealth_focus
has_focus = stewardship_domain_focus
has_focus = stewardship_duty_focus
}
any_vassal = {
court_3110_valid_vassal_trigger = yes
}
exists = cp:councillor_steward
NOT = { has_character_flag = had_court_events_3115 }
}
weight_multiplier = {
base = 1
modifier = {
has_focus = stewardship_domain_focus
add = 0.5
}
modifier = {
capital_county.title_province = {
has_ongoing_construction = yes
}
add = 1
}
modifier = {
employs_court_position = royal_architect_court_position
add = 1
}
}
immediate = {
add_character_flag = {
flag = had_court_events_3110
years = 25
}
court_event_character_flag_effect = yes
random_vassal = {
limit = {
court_3110_valid_vassal_trigger = yes
}
save_scope_as = vassal
}
if = {
limit = {
employs_court_position = royal_architect_court_position
}
court_position:royal_architect_court_position = {
save_scope_as = steward
save_scope_as = architect
}
}
else = {
cp:councillor_steward = {
save_scope_as = steward
}
}
scope:steward = { court_event_character_flag_effect = yes }
}
# Option A: Build MORE!
option = {
name = court_events.3110.a
if = {
limit = {
exists = scope:architect
}
custom_tooltip = court_events.3110.architect
capital_county = {
add_county_modifier = {
modifier = architect_building_program_county_modifier
years = 20
}
}
}
else = {
duel = {
skill = stewardship
value = average_skill_rating
50 = {
desc = court_events.3110.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
modifier = {
has_trait = architect
add = 50
}
modifier = {
has_trait = diligent
add = 10
}
modifier = {
has_trait = ambitious
add = 10
}
send_interface_toast = {
type = event_toast_effect_good
title = court_events.3110.a.success.tt
left_icon = root
capital_county = {
add_county_modifier = {
modifier = building_program_county_modifier
years = 20
}
}
}
}
50 = {
desc = court_events.3110.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
modifier = {
has_trait = greedy
add = 20
}
modifier = {
has_trait = lazy
add = 10
}
modifier = {
has_trait = humble
add = 10
}
send_interface_toast = {
type = event_toast_effect_bad
title = court_events.3110.a.failure.tt
left_icon = root
add_prestige = medium_prestige_loss
add_stewardship_lifestyle_xp = medium_lifestyle_xp
}
}
}
}
stress_impact = {
greedy = major_stress_impact_gain
humble = medium_stress_impact_gain
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
ai_boldness = 0.5
}
modifier = {
has_trait = humble
add = -50
}
modifier = {
has_trait = lazy
add = -25
}
modifier = {
has_trait = architect
add = 100
}
}
}
# Option B: Tax MORE!
option = {
name = court_events.3110.b
flavor = court_events.3110.b.tt
duel = {
skill = diplomacy
target = scope:vassal
50 = {
desc = court_events.3110.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
type = event_toast_effect_good
title = court_events.3110.b.success.tt
left_icon = scope:vassal
scope:vassal = {
pay_short_term_gold = {
target = root
gold = medium_gold_value
}
}
if = {
limit = {
government_allows = administrative
}
scope:vassal = {
change_influence = medium_influence_loss
}
change_influence = medium_influence_gain
}
else = {
scope:vassal = {
add_prestige = medium_prestige_loss
}
add_prestige = medium_prestige_gain
}
}
}
50 = {
desc = court_events.3110.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
type = event_toast_effect_bad
title = court_events.3110.b.failure.tt
left_icon = scope:vassal
if = {
limit = {
government_allows = administrative
}
scope:vassal = {
change_influence = medium_influence_gain
}
change_influence = medium_influence_loss
}
else = {
scope:vassal = {
add_prestige = medium_prestige_gain
}
add_prestige = medium_prestige_loss
}
}
}
}
stress_impact = {
generous = medium_stress_impact_gain
architect = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_compassion = -0.5
}
modifier = {
has_trait = zealous
add = -25
}
}
}
# Option C: I don't care
option = {
name = court_events.3110.c
add_prestige = miniscule_prestige_loss
stress_impact = {
ambitious = major_stress_impact_gain
arrogant = medium_stress_impact_gain
architect = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = -0.5
ai_boldness = -0.5
}
modifier = {
has_trait = ambitious
add = -75
}
modifier = {
has_trait = arrogant
add = -50
}
}
}
after = {
clear_court_event_participation = yes
scope:steward = { clear_court_event_participation = yes }
}
}
# Admin court version: a vassal's construction program intheir estate is challenging you
scripted_trigger court_3115_valid_vassal_trigger = {
government_allows = administrative
this = house.house_head
domicile ?= {
is_domicile_type = estate
num_domicile_buildings > root.domicile.num_domicile_buildings
external_domicile_building_slots >= root.domicile.external_domicile_building_slots
free_external_domicile_building_slots < root.domicile.free_external_domicile_building_slots
}
is_available_ai_adult = yes
OR = {
has_trait = arrogant
has_trait = architect
has_trait = honest
has_trait = gregarious
has_trait = disloyal
has_focus = stewardship_domain_focus
has_trait_xp = {
trait = governor
value >= 60
}
}
}
court_events.3115 = {
type = court_event
title = court_events.3110.t
desc = court_events.3115.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:relative
roles = {
scope:relative = {
group = event_group
animation = worry
}
root = {
group = event_group
animation = disapproval
}
}
}
trigger = {
has_royal_court = yes
government_allows = administrative
this = house.house_head
domicile ?= { is_domicile_type = estate }
OR = {
has_focus = stewardship_wealth_focus
has_focus = stewardship_domain_focus
has_focus = stewardship_duty_focus
}
any_vassal = {
court_3110_valid_vassal_trigger = yes
}
any_courtier_or_guest = {
house = root.house
location = root.location
is_available_ai_adult = yes
}
NOT = { has_character_flag = had_court_events_3110 }
}
weight_multiplier = {
base = 1
modifier = {
has_focus = stewardship_domain_focus
add = 0.5
}
modifier = {
any_vassal = {
court_3110_valid_vassal_trigger = yes
house = { is_dominant_family = yes }
}
add = 1
}
modifier = {
any_vassal = {
court_3110_valid_vassal_trigger = yes
house = { is_powerful_family = yes }
}
add = 0.5
}
modifier = {
house = {
is_powerful_family = no
}
add = 0.5
}
}
immediate = {
add_character_flag = {
flag = had_court_events_3115
years = 25
}
court_event_character_flag_effect = yes
random_vassal = {
limit = {
court_3110_valid_vassal_trigger = yes
}
save_scope_as = vassal
}
random_courtier_or_guest = {
limit = {
house = root.house
location = root.location
is_available_ai_adult = yes
}
save_scope_as = relative
}
scope:relative = { court_event_character_flag_effect = yes }
}
# Option A: Build MORE!
option = {
name = court_events.3110.a
duel = {
skill = stewardship
value = average_skill_rating
50 = {
desc = court_events.3110.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
modifier = {
has_trait = architect
add = 50
}
modifier = {
has_trait = diligent
add = 10
}
modifier = {
has_trait = ambitious
add = 10
}
send_interface_toast = {
type = event_toast_effect_good
title = court_events.3110.a.success.tt
left_icon = root
add_character_modifier = {
modifier = estate_building_program_modifier
years = 20
}
}
}
50 = {
desc = court_events.3110.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
modifier = {
has_trait = greedy
add = 20
}
modifier = {
has_trait = lazy
add = 10
}
modifier = {
has_trait = humble
add = 10
}
send_interface_toast = {
type = event_toast_effect_bad
title = court_events.3110.a.failure.tt
left_icon = root
change_influence = medium_influence_loss
}
}
}
stress_impact = {
greedy = major_stress_impact_gain
humble = medium_stress_impact_gain
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
ai_boldness = 0.5
}
modifier = {
has_trait = humble
add = -50
}
modifier = {
has_trait = lazy
add = -25
}
modifier = {
has_trait = architect
add = 100
}
}
}
# Option B: Tax MORE!
option = {
name = court_events.3110.b
flavor = court_events.3110.b.tt
duel = {
skill = diplomacy
target = scope:vassal
50 = {
desc = court_events.3110.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
type = event_toast_effect_good
title = court_events.3110.b.success.tt
left_icon = scope:vassal
scope:vassal = {
pay_short_term_gold = {
target = root
gold = medium_gold_value
}
}
scope:vassal = {
change_influence = major_influence_loss
}
change_influence = major_influence_gain
}
}
50 = {
desc = court_events.3110.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
type = event_toast_effect_bad
title = court_events.3110.b.failure.tt
left_icon = scope:vassal
scope:vassal = {
change_influence = medium_influence_gain
}
change_influence = medium_influence_loss
}
}
}
stress_impact = {
generous = medium_stress_impact_gain
architect = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_compassion = -0.5
}
}
}
# Option C: I don't care
option = {
name = court_events.3110.c
change_influence = miniscule_influence_loss
stress_impact = {
ambitious = major_stress_impact_gain
arrogant = medium_stress_impact_gain
architect = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = -0.5
ai_boldness = -0.5
}
modifier = {
has_trait = ambitious
add = -75
}
modifier = {
has_trait = arrogant
add = -50
}
}
}
after = {
clear_court_event_participation = yes
scope:steward = { clear_court_event_participation = yes }
}
}
# An inspired person is cringing at your crappy common artifact
scripted_trigger 3120_valid_artifact_to_improve_trigger = {
NOR = {
has_variable = banner_house
has_variable = banner_dynasty
rarity = illustrious
rarity = famed
}
}
scripted_trigger 3120_smithsy_artifact_trigger = {
OR = {
artifact_type = necklace_pedestal
artifact_type = brooch
artifact_type = brooch_pedestal
artifact_type = necklace
artifact_type = helmet
artifact_slot_type = primary_armament
artifact_slot_type = armor
artifact_type = regalia
artifact_type = goblet
artifact_type = wall_shield
}
}
scripted_trigger 3120_artisan_artifact_trigger = {
OR = {
artifact_type = sculpture
artifact_type = box
artifact_type = chest
artifact_type = cabinet
artifact_type = throne
}
}
court_events.3120 = {
type = court_event
title = court_events.3120.t
desc = court_events.3120.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:inspired
roles = {
scope:inspired = {
group = event_group
animation = disgust
}
root = {
group = event_group
animation = worry
}
}
}
trigger = {
has_royal_court = yes
any_courtier_or_guest = {
is_available = yes
OR = {
AND = {
inspiration ?= {
NOR = {
has_inspiration_type = adventure_inspiration
has_inspiration_type = alchemy_inspiration
has_inspiration_type = book_inspiration
}
}
}
AND = {
has_completed_inspiration = yes
var:created_artifact_type ?= {
NOR = {
this = flag:adventure
this = flag:alchemy
this = flag:book
}
}
}
}
trigger_if = {
limit = {
OR = {
inspiration ?= {
OR = {
has_inspiration_type = weapon_inspiration
has_inspiration_type = armor_inspiration
has_inspiration_type = smith_inspiration
}
}
var:created_artifact_type ?= {
OR = {
this = flag:weapon
this = flag:armor
this = flag:smith
}
}
}
}
root = {
any_character_artifact = {
3120_valid_artifact_to_improve_trigger = yes
3120_smithsy_artifact_trigger = yes
}
}
}
trigger_else_if = {
limit = {
OR = {
inspiration ?= { has_inspiration_type = weaver_inspiration }
var:created_artifact_type ?= { this = flag:weaver }
}
}
root = {
any_character_artifact = {
3120_valid_artifact_to_improve_trigger = yes
artifact_type = tapestry
}
}
}
trigger_else_if = {
limit = {
OR = {
inspiration ?= { has_inspiration_type = artisan_inspiration }
var:created_artifact_type ?= { this = flag:artisan }
}
}
root = {
any_character_artifact = {
3120_valid_artifact_to_improve_trigger = yes
3120_artisan_artifact_trigger = yes
}
}
}
trigger_else = {
always = no
}
}
}
weight_multiplier = {
base = 1
modifier = {
any_courtier_or_guest = {
has_court_position = court_artificer_court_position
}
add = 1
}
}
immediate = {
court_event_character_flag_effect = yes
random_courtier = {
limit = {
is_available = yes
OR = {
AND = {
exists = inspiration
inspiration ?= {
NOR = {
has_inspiration_type = adventure_inspiration
has_inspiration_type = alchemy_inspiration
has_inspiration_type = book_inspiration
}
}
}
AND = {
has_completed_inspiration = yes
var:created_artifact_type ?= {
NOR = {
this = flag:adventure
this = flag:alchemy
this = flag:book
}
}
}
}
}
weight = {
base = 1
modifier = {
has_court_position = court_artificer_court_position
add = 100
}
}
save_scope_as = inspired
}
if = {
limit = {
scope:inspired = {
OR = {
inspiration ?= {
OR = {
has_inspiration_type = weapon_inspiration
has_inspiration_type = armor_inspiration
has_inspiration_type = smith_inspiration
}
}
var:created_artifact_type ?= {
OR = {
this = flag:weapon
this = flag:armor
this = flag:smith
}
}
}
}
}
random_character_artifact = {
limit = {
3120_valid_artifact_to_improve_trigger = yes
3120_smithsy_artifact_trigger = yes
}
weight = {
base = 1
modifier = {
rarity = common
add = 20
}
}
save_scope_as = artifact
}
}
else_if = {
limit = {
scope:inspired = {
OR = {
inspiration ?= { has_inspiration_type = weaver_inspiration }
var:created_artifact_type ?= { this = flag:weaver }
}
}
}
random_character_artifact = {
limit = {
3120_valid_artifact_to_improve_trigger = yes
artifact_type = tapestry
}
weight = {
base = 1
modifier = {
rarity = common
add = 20
}
}
save_scope_as = artifact
}
}
else = {
random_character_artifact = {
limit = {
3120_valid_artifact_to_improve_trigger = yes
3120_artisan_artifact_trigger = yes
}
weight = {
base = 1
modifier = {
rarity = common
add = 20
}
}
save_scope_as = artifact
}
}
scope:inspired = { court_event_character_flag_effect = yes }
}
# Option A: do it
option = {
name = court_events.3120.a
pay_short_term_gold = {
target = scope:inspired
gold = minor_gold_value
}
scope:artifact = {
custom_tooltip = court_events.3120.a.tt
hidden_effect = {
random_list = {
pick = 2
unique = yes
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_monthly_minor_prestige_6_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_monthly_prestige_6_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_short_reign_duration_mult_4_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_court_grandeur_baseline_add_4_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_dynasty_opinion_5_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_monthly_prestige_add_5_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_vassal_limit_1_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_courtier_and_guest_opinion_5_modifier }
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
hidden_effect = {
scope:artifact = { add_artifact_modifier = artifact_domain_tax_mult_2_modifier }
}
}
}
}
20 = {
trigger = {
artifact_durability < define:NInventory|ARTIFACT_LOW_DURABILITY
}
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
scope:artifact = {
add_durability = {
value = {
value = scope:artifact.artifact_max_durability
subtract = scope:artifact.artifact_durability
}
}
}
}
}
}
20 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
scope:artifact = {
set_max_durability = {
value = {
value = scope:artifact.artifact_max_durability
add = {
value = scope:artifact.artifact_max_durability
divide = 100
multiply = 20
}
}
}
}
}
}
}
10 = {
root = {
send_interface_toast = {
type = event_toast_effect_good
title = artifact_improved_tt
left_icon = scope:artifact
scope:artifact = {
set_max_durability = {
value = {
value = scope:artifact.artifact_max_durability
add = {
value = scope:artifact.artifact_max_durability
divide = 100
multiply = 35
}
}
}
}
}
}
}
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.5
}
modifier = {
has_trait = humble
add = -25
}
modifier = {
gold <= minor_gold_value
factor = 0
}
}
}
# Option B: think about your own stuff
option = {
name = court_events.3120.b
trigger = { exists = scope:inspired.inspiration }
scope:inspired = {
if = {
limit = {
NOT = { inspiration.inspiration_sponsor = root }
}
root = { sponsor_inspiration = scope:inspired.inspiration }
}
change_artifact_quality_effect = { AMOUNT = 5 }
inspiration = { change_inspiration_progress = 2 }
}
stress_impact = {
compassionate = minor_stress_impact_gain
ambitious = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = -0.5
ai_compassion = -0.5
}
}
}
# Option C: show me you can still do better
option = {
name = court_events.3120.c
trigger = {
scope:inspired = {
has_completed_inspiration = yes
NOT = { exists = inspiration }
}
}
scope:inspired = {
if = {
limit = {
var:created_artifact_type ?= {
OR = {
this = flag:weapon
this = flag:armor
this = flag:smith
}
}
}
random_list = {
30 = {
create_inspiration = { type = weapon_inspiration }
custom_tooltip = gains_weapon_inspiration_tt
}
30 = {
create_inspiration = { type = armor_inspiration }
custom_tooltip = gains_armor_inspiration_tt
}
30 = {
create_inspiration = { type = smith_inspiration }
custom_tooltip = gains_smith_inspiration_tt
}
}
}
else_if = {
limit = {
var:created_artifact_type ?= {
this = flag:weaver
}
}
create_inspiration = { type = weaver_inspiration }
custom_tooltip = gains_weaver_inspiration_tt
}
else = {
create_inspiration = { type = artisan_inspiration }
custom_tooltip = gains_artisan_inspiration_tt
}
}
stress_impact = {
shy = minor_stress_impact_gain
callous = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = 0.5
}
modifier = {
has_trait = shy
add = -25
}
modifier = {
has_trait = callous
add = -25
}
}
}
# Option D: nevermind
option = {
name = court_events.3120.d
add_prestige = miniscule_prestige_loss
stress_impact = {
ambitious = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
generous = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = -1
}
modifier = {
has_trait = ambitious
add = -50
}
modifier = {
has_trait = arrogant
add = -50
}
modifier = {
has_trait = generous
add = -50
}
}
}
after = {
clear_court_event_participation = yes
scope:inspired = { clear_court_event_participation = yes }
}
}