N3OW/N3OW/events/court_events/01_ep3_court_events.txt
2025-12-05 22:36:07 +00:00

3898 lines
89 KiB
Text

namespace = court
##################################################
# # RANGES
# 0001 - 0099 Misc Events
# 0100 - 0999 James
# 1000 - 2000 Shoes
# 2001 - 2999 Ewan
# 3000 - 4000 Bianca
# 4001 - 5000 Isabella
# 5001 - 5999 Linnea
# 6000 - 6999 Claudia
# 7000 - 8000 George
# 8001 - 8999 Joe
# 9000 - 9999 Oltner
#
##################################################
#########################
# Court Position Boons #
# by Joe Parkin #
#########################
scripted_trigger employed_booner_pos_trigger = {
is_available_healthy_ai_adult = yes
aptitude = {
court_position = $POS$_court_position
value >= 3
}
trigger_if = {
limit = { exists = employer }
opinion = {
target = employer
value >= -50
}
}
trigger_else_if = {
limit = { exists = liege }
opinion = {
target = liege
value >= -50
}
}
trigger_else = { always = yes }
NOT = { exists = var:booner_target }
}
scripted_trigger employed_booner_trigger = {
has_royal_court = yes
employs_court_position = $POS$_court_position
any_court_position_holder = {
type = $POS$_court_position
employed_booner_pos_trigger = { POS = $POS$ }
}
NOT = { has_character_flag = court_employer_booner_cooldown }
}
scripted_trigger employer_triple_modifier_trigger = {
NOT = {
any_courtier = {
OR = {
has_character_modifier = employer_booner_$POS$_1_modifier
has_character_modifier = employer_booner_$POS$_2_modifier
has_character_modifier = employer_booner_$POS$_3_modifier
}
}
}
}
scripted_effect employed_booner_reward_effect = {
save_scope_as = booner_target
add_character_modifier = {
modifier = employer_booner_$POS$_modifier
years = 10
}
custom_tooltip = employer_booner_invalidated_tt
scope:position_holder = {
set_variable = {
name = booner_target
value = scope:booner_target
years = 10
}
}
}
# Physician
scripted_trigger court_8190_employed_booner_patient_trigger = {
is_available = yes
is_courtier_of = root
NOR = {
has_relation_rival = root
scope:position_holder ?= this
scope:heir ?= this
scope:child ?= this
scope:spouse ?= this
scope:relation ?= this
scope:family ?= this
}
}
court.8190 = {
type = court_event
title = court.8190.t
desc = court.8190.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = physician
}
root = {
group = event_group
triggered_animation = {
trigger = { is_healthy = no }
animation = sick
}
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = court_physician }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:court_physician_court_position.aptitude(court_physician_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = court_physician_court_position
limit = {
employed_booner_pos_trigger = { POS = court_physician }
}
order_by = "aptitude(court_physician_court_position)"
save_scope_as = position_holder
}
player_heir ?= {
if = {
limit = {
house = root.house
court_8190_employed_booner_patient_trigger = yes
}
save_scope_as = heir
}
}
ordered_child = {
limit = {
NOT = { scope:heir ?= this }
court_8190_employed_booner_patient_trigger = yes
}
order_by = {
value = 0
subtract = health
}
save_scope_as = child
}
ordered_spouse = {
limit = {
NOR = {
scope:heir ?= this
scope:child ?= this
}
court_8190_employed_booner_patient_trigger = yes
}
order_by = {
value = 0
subtract = health
}
save_scope_as = spouse
}
ordered_relation = {
type = friend
type = lover
limit = {
NOR = {
scope:heir ?= this
scope:child ?= this
scope:spouse ?= this
}
court_8190_employed_booner_patient_trigger = yes
}
order_by = {
value = 0
subtract = health
}
save_scope_as = relation
}
ordered_close_family_member = {
limit = {
NOR = {
this = root
scope:heir ?= this
scope:child ?= this
scope:spouse ?= this
scope:relation ?= this
}
court_8190_employed_booner_patient_trigger = yes
}
order_by = {
value = 0
subtract = health
}
save_scope_as = family
}
house ?= {
ordered_house_member = {
limit = {
NOR = {
this = root
scope:heir ?= this
scope:child ?= this
scope:spouse ?= this
scope:relation ?= this
scope:family ?= this
}
court_8190_employed_booner_patient_trigger = yes
}
order_by = {
value = 0
subtract = health
}
save_scope_as = house
}
}
}
option = { # Take your medicine
name = court.8190.a
employed_booner_reward_effect = { POS = court_physician }
ai_chance = {
base = 50
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:position_holder }
}
}
option = { # Heir
name = court.8190.b
trigger = { exists = scope:heir }
scope:heir = {
employed_booner_reward_effect = { POS = court_physician }
}
ai_chance = {
base = 25
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:heir }
}
}
option = { # Child
name = court.8190.c
trigger = { exists = scope:child }
scope:child = {
employed_booner_reward_effect = { POS = court_physician }
}
ai_chance = {
base = 10
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:child }
}
}
option = { # Spouse
name = court.8190.d
trigger = { exists = scope:spouse }
scope:spouse = {
employed_booner_reward_effect = { POS = court_physician }
}
ai_chance = {
base = 10
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:spouse }
}
}
option = { # Relation
name = court.8190.e
trigger = {
exists = scope:relation
calc_true_if = {
amount < 3
exists = scope:heir
exists = scope:child
exists = scope:spouse
}
}
scope:relation = {
employed_booner_reward_effect = { POS = court_physician }
}
ai_chance = {
base = 10
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:relation }
}
}
option = { # Family
name = court.8190.f
trigger = {
exists = scope:family
calc_true_if = {
amount < 3
exists = scope:heir
exists = scope:child
exists = scope:spouse
exists = scope:relation
}
}
scope:family = {
employed_booner_reward_effect = { POS = court_physician }
}
ai_chance = {
base = 10
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:family }
}
}
option = { # House
name = court.8190.g
trigger = {
exists = scope:house
calc_true_if = {
amount < 3
exists = scope:heir
exists = scope:child
exists = scope:spouse
exists = scope:relation
exists = scope:family
}
}
scope:house = {
employed_booner_reward_effect = { POS = court_physician }
}
ai_chance = {
base = 10
employer_boon_treatment_ai_chance_modifier = { TARGET = scope:house }
}
}
}
# Tutor
scripted_trigger court_8191_employed_booner_student_trigger = {
is_available = yes
is_adult = no
age >= 6 # to ensure coming of age education effects are fully utilized
is_courtier_of = root
OR = {
is_heir_of = root
is_close_family_of = root
is_hostage_of = root
}
NOR = {
has_relation_rival = root
root = this
scope:position_holder ?= this
}
}
scripted_effect court_8191_employed_booner_reward_effect = {
save_scope_as = child
scope:position_holder = {
switch = {
trigger = has_trait
education_diplomacy = {
scope:child = { add_diplomacy_skill = 1 }
}
education_martial = {
scope:child = { add_martial_skill = 1 }
}
education_stewardship = {
scope:child = { add_stewardship_skill = 1 }
}
education_intrigue = {
scope:child = { add_intrigue_skill = 1 }
}
education_learning = {
scope:child = { add_learning_skill = 1 }
}
}
}
employed_booner_reward_effect = { POS = court_tutor }
education_point_acquisition_additional_points_effect = { LEVEL = mid }
root = {
if = {
limit = { this = scope:child }
stress_impact = { lazy = minor_stress_impact_gain }
}
else_if = {
limit = { is_adult = no }
stress_impact = { diligent = minor_stress_impact_gain }
}
}
}
scripted_effect court_8191_portrait_effect = {
if = {
limit = {
NOT = { exists = scope:portrait }
}
save_scope_as = portrait
}
}
court.8191 = {
type = court_event
title = court.8191.t
desc = court.8191.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
triggered_animation = {
trigger = { exists = scope:baby }
animation = newborn
}
animation = happy_teacher
}
scope:portrait = {
group = event_group
animation = reading
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = court_tutor }
any_courtier = {
count >= 2
court_8191_employed_booner_student_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:court_tutor_court_position.aptitude(court_tutor_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = court_tutor_court_position
limit = {
employed_booner_pos_trigger = { POS = court_tutor }
}
order_by = "aptitude(court_tutor_court_position)"
save_scope_as = position_holder
}
every_close_family_member = {
limit = { court_8191_employed_booner_student_trigger = yes }
add_to_list = students
}
every_warden_hostage = {
limit = { court_8191_employed_booner_student_trigger = yes }
add_to_list = students
}
every_in_list = {
list = students
limit = {
save_temporary_scope_as = struggling_temp
any_in_list = {
list = students
this != scope:struggling_temp
age < scope:struggling_temp.age
sum_of_all_skills_value > scope:struggling_temp.sum_of_all_skills_value
}
}
add_to_list = struggling
remove_from_list = students
}
player_heir ?= { # Heir
if = {
limit = { is_in_list = students }
save_scope_as = heir
court_8191_portrait_effect = yes
remove_from_list = students
}
}
if = {
limit = {
NOT = { exists = scope:heir }
}
ordered_in_list = {
list = students
limit = {
is_heir_of = root
save_temporary_scope_as = heir_temp
}
order_by = {
value = 0
subtract = "root.primary_title.place_in_line_of_succession(scope:heir_temp)"
}
save_scope_as = heir
court_8191_portrait_effect = yes
remove_from_list = students
}
}
ordered_in_list = { # Struggling
list = struggling
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
order_by = age
save_scope_as = struggling
court_8191_portrait_effect = yes
remove_from_list = struggling
}
ordered_in_list = { # Oldest
list = students
limit = { is_heir_of = root }
alternative_limit = { always = yes }
order_by = age
save_scope_as = oldest
court_8191_portrait_effect = yes
remove_from_list = students
}
ordered_in_list = { # Youngest
list = students
limit = { is_heir_of = root }
alternative_limit = { always = yes }
order_by = {
value = 0
subtract = age
}
save_scope_as = youngest
court_8191_portrait_effect = yes
remove_from_list = students
}
random_in_list = { # Hostage
list = students
limit = {
is_hostage_of = root
save_temporary_scope_as = hostage_temp
}
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
modifier = {
add = 1000
root = {
any_owned_story = {
type = bp2_hostage_loyalty
var:hostage_target ?= scope:hostage_temp
}
}
}
}
save_scope_as = hostage
court_8191_portrait_effect = yes
remove_from_list = students
}
random_in_list = { # Interesting
list = students
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = interesting
court_8191_portrait_effect = yes
remove_from_list = students
}
random_in_list = { # Extra
list = students
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = extra
court_8191_portrait_effect = yes
remove_from_list = students
}
ordered_in_list = { # Bonus
list = struggling
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
order_by = {
value = 0
subtract = sum_of_all_skills_value
}
save_scope_as = bonus
court_8191_portrait_effect = yes
remove_from_list = struggling
}
}
option = { # Teach me!
name = court.8191.a
trigger = { is_adult = no }
court_8191_employed_booner_reward_effect = yes
ai_chance = {
base = 50
}
}
option = { # Heir
name = court.8191.b
trigger = { exists = scope:heir }
scope:heir = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:heir }
}
}
option = { # Struggling
name = court.8191.c
trigger = { exists = scope:struggling }
scope:struggling = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:struggling }
}
}
option = { # Hostage
name = court.8191.d
trigger = { exists = scope:hostage }
scope:hostage = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:hostage }
}
}
option = { # Interesting
name = court.8191.e
trigger = { exists = scope:interesting }
scope:interesting = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:interesting }
}
}
option = { # Eldest
name = court.8191.f
trigger = {
exists = scope:oldest
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
}
}
scope:oldest = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:oldest }
}
}
option = { # Youngest
name = court.8191.g
trigger = {
exists = scope:youngest
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
exists = scope:oldest
}
}
scope:youngest = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:youngest }
}
}
option = { # Extra
name = court.8191.h
trigger = {
exists = scope:extra
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
exists = scope:oldest
exists = scope:youngest
}
}
scope:extra = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:extra }
}
}
option = { # Bonus
name = court.8191.i
trigger = {
exists = scope:bonus
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
exists = scope:oldest
exists = scope:youngest
exists = scope:extra
}
}
scope:bonus = { court_8191_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:bonus }
}
}
}
# Seneschal
court.8192 = {
type = court_event
title = court.8192.t
desc = court.8192.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = writing
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = seneschal }
employer_triple_modifier_trigger = { POS = seneschal }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:seneschal_court_position.aptitude(seneschal_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = seneschal_court_position
limit = {
employed_booner_pos_trigger = { POS = seneschal }
}
order_by = "aptitude(seneschal_court_position)"
save_scope_as = position_holder
}
}
option = { # Lodgings Cost
name = court.8192.a
employed_booner_reward_effect = { POS = seneschal_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_greed = 0.5
}
}
}
option = { # Servants Cost
name = court.8192.b
employed_booner_reward_effect = { POS = seneschal_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8192.c
duel = {
skill = stewardship
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8192.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8192.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = seneschal_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8192.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8192.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Wet Nurse
scripted_trigger court_8193_employed_booner_child_trigger = {
is_available = yes
is_adult = no
is_courtier_of = root
OR = {
is_heir_of = root
is_close_family_of = root
is_hostage_of = root
}
NOR = {
has_relation_rival = root
scope:position_holder ?= this
scope:heir ?= this
scope:baby ?= this
scope:interesting ?= this
scope:hostage ?= this
scope:sickest ?= this
scope:second_sickest ?= this
scope:extra ?= this
}
}
scripted_effect court_8193_employed_booner_reward_effect = {
save_scope_as = child
scope:position_holder = {
switch = {
trigger = has_trait
education_diplomacy = {
scope:child = { add_diplomacy_skill = 1 }
}
education_martial = {
scope:child = { add_martial_skill = 1 }
}
education_stewardship = {
scope:child = { add_stewardship_skill = 1 }
}
education_intrigue = {
scope:child = { add_intrigue_skill = 1 }
}
education_learning = {
scope:child = { add_learning_skill = 1 }
}
}
}
employed_booner_reward_effect = { POS = wet_nurse }
education_point_acquisition_additional_points_effect = { LEVEL = low }
}
court.8193 = {
type = court_event
title = court.8193.t
desc = court.8193.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
triggered_animation = {
trigger = { exists = scope:baby }
animation = newborn
}
animation = personality_compassionate
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = wet_nurse }
any_courtier = {
count >= 2
court_8193_employed_booner_child_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:wet_nurse_court_position.aptitude(wet_nurse_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = wet_nurse_court_position
limit = {
employed_booner_pos_trigger = { POS = wet_nurse }
}
order_by = "aptitude(wet_nurse_court_position)"
save_scope_as = position_holder
}
every_close_family_member = {
limit = { court_8193_employed_booner_child_trigger = yes }
add_to_list = children
}
every_warden_hostage = {
limit = { court_8193_employed_booner_child_trigger = yes }
add_to_list = children
}
every_in_list = {
list = children
if = {
limit = { is_healthy = no }
add_to_list = sickly
}
}
player_heir ?= { # Heir
if = {
limit = { is_in_list = children }
save_scope_as = heir
}
}
if = {
limit = {
NOT = { exists = scope:heir }
}
ordered_in_list = {
list = children
limit = {
is_heir_of = root
save_temporary_scope_as = heir_temp
}
order_by = {
value = 0
subtract = "root.primary_title.place_in_line_of_succession(scope:heir_temp)"
}
save_scope_as = heir
}
}
ordered_in_list = { # Baby
list = children
limit = {
is_heir_of = root
age < 1
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
is_child_of = root
age < 1
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
age < 1
court_8193_employed_booner_child_trigger = yes
}
order_by = {
value = 0
subtract = age
}
save_scope_as = baby
}
ordered_in_list = { # Sickest
list = sickly
limit = {
is_heir_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
is_child_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = { court_8193_employed_booner_child_trigger = yes }
order_by = {
value = 0
subtract = health
}
save_scope_as = sickest
}
ordered_in_list = { # Second Sickest
list = sickly
limit = {
is_heir_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
is_child_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = { court_8193_employed_booner_child_trigger = yes }
order_by = {
value = 0
subtract = health
}
save_scope_as = second_sickest
}
random_in_list = { # Hostage
list = children
limit = {
is_hostage_of = root
court_8193_employed_booner_child_trigger = yes
save_temporary_scope_as = hostage_temp
}
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
modifier = {
add = 1000
root = {
any_owned_story = {
type = bp2_hostage_loyalty
var:hostage_target ?= scope:hostage_temp
}
}
}
}
save_scope_as = hostage
}
random_in_list = { # Interesting
list = children
limit = {
is_heir_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
is_child_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = { court_8193_employed_booner_child_trigger = yes }
weight = {
base = 1
modifier = {
add = 25
has_trait = sickly
}
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = interesting
}
random_in_list = { # Extra
list = children
limit = {
is_heir_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
is_child_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = { court_8193_employed_booner_child_trigger = yes }
weight = {
base = 1
modifier = {
add = 25
has_trait = sickly
}
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = extra
}
ordered_in_list = { # Bonus
list = children
limit = {
is_heir_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = {
is_child_of = root
court_8193_employed_booner_child_trigger = yes
}
alternative_limit = { court_8193_employed_booner_child_trigger = yes }
order_by = {
value = 0
subtract = health
}
save_scope_as = bonus
}
}
option = { # Look after me!
name = court.8193.a
trigger = { is_adult = no }
court_8193_employed_booner_reward_effect = yes
ai_chance = {
base = 50
}
}
option = { # Heir
name = court.8193.b
trigger = { exists = scope:heir }
scope:heir = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:heir }
}
}
option = { # Baby
name = court.8193.c
trigger = { exists = scope:baby }
scope:baby = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:baby }
}
}
option = { # Sickest
name = court.8193.f
trigger = { exists = scope:sickest }
scope:sickest = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:sickest }
}
}
option = { # Second Sickest
name = court.8193.g
trigger = { exists = scope:second_sickest }
scope:second_sickest = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:second_sickest }
}
}
option = { # Hostage
name = court.8193.d
trigger = {
exists = scope:hostage
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:baby
exists = scope:sickest
exists = scope:second_sickest
}
}
scope:hostage = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:hostage }
}
}
option = { # Interesting
name = court.8193.e
trigger = {
exists = scope:interesting
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:baby
exists = scope:sickest
exists = scope:second_sickest
exists = scope:hostage
}
}
scope:interesting = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:interesting }
}
}
option = { # Extra
name = court.8193.h
trigger = {
exists = scope:extra
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:baby
exists = scope:sickest
exists = scope:second_sickest
exists = scope:hostage
exists = scope:interesting
}
}
scope:extra = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:extra }
}
}
option = { # Bonus
name = court.8193.i
trigger = {
exists = scope:bonus
calc_true_if = {
amount < 4
exists = scope:heir
exists = scope:baby
exists = scope:sickest
exists = scope:second_sickest
exists = scope:hostage
exists = scope:interesting
exists = scope:extra
}
}
scope:bonus = { court_8193_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:bonus }
}
}
}
# High Almoner
court.8194 = {
type = court_event
title = court.8194.t
desc = court.8194.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = steward
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = high_almoner }
employer_triple_modifier_trigger = { POS = high_almoner }
any_vassal = { vassal_stance = zealot }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:high_almoner_court_position.aptitude(high_almoner_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = high_almoner_court_position
limit = {
employed_booner_pos_trigger = { POS = high_almoner }
}
order_by = "aptitude(high_almoner_court_position)"
save_scope_as = position_holder
}
}
option = { # County Opinion
name = court.8194.a
employed_booner_reward_effect = { POS = high_almoner_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_greed = 0.5
}
}
}
option = { # Realm Priest Opinion
name = court.8194.b
employed_booner_reward_effect = { POS = high_almoner_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_sociability = 0.5
}
}
}
option = { # Both!
name = court.8194.c
duel = {
skill = learning
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8194.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8194.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = high_almoner_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8194.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8194.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Bodyguard
scripted_trigger court_8195_employed_booner_sparist_trigger = {
is_available = yes
age >= 8
is_courtier_of = root
is_healthy = yes
OR = {
is_heir_of = root
is_close_family_of = root
is_hostage_of = root
}
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
NOR = {
has_relation_rival = root
root = this
scope:position_holder ?= this
}
}
scripted_effect court_8195_employed_booner_reward_effect = {
save_scope_as = sparist
if = {
limit = {
has_trait = lifestyle_blademaster
has_trait_xp = { trait = lifestyle_blademaster value < 100 }
}
add_trait_xp = {
trait = lifestyle_blademaster
value = lifestyle_blademaster_xp_gain_minor_value
}
}
else = { add_trait = lifestyle_blademaster }
employed_booner_reward_effect = { POS = bodyguard }
root = {
stress_impact = { craven = minor_stress_impact_gain }
}
stress_impact = { craven = minor_stress_impact_gain }
}
court.8195 = {
type = court_event
title = court.8195.t
desc = court.8195.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = marshal_wooden_sword
}
scope:portrait = {
group = event_group
animation = throne_room_wooden_sword
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = bodyguard }
any_courtier = {
count >= 2
court_8195_employed_booner_sparist_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
any_court_position_holder = {
has_court_position = bodyguard_court_position
save_temporary_scope_as = position_temp
}
add = {
value = "scope:position_temp.aptitude(bodyguard_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = bodyguard_court_position
limit = {
employed_booner_pos_trigger = { POS = bodyguard }
}
order_by = "aptitude(bodyguard_court_position)"
save_scope_as = position_holder
}
every_close_family_member = {
limit = { court_8195_employed_booner_sparist_trigger = yes }
add_to_list = sparists
}
every_warden_hostage = {
limit = { court_8195_employed_booner_sparist_trigger = yes }
add_to_list = sparists
}
every_in_list = {
list = sparists
limit = {
save_temporary_scope_as = struggling_temp
any_in_list = {
list = sparists
this != scope:struggling_temp
prowess < scope:struggling_temp.prowess
}
}
add_to_list = struggling
remove_from_list = sparists
}
player_heir ?= { # Heir
if = {
limit = { is_in_list = sparists }
save_scope_as = heir
court_8191_portrait_effect = yes
remove_from_list = sparists
}
}
if = {
limit = {
NOT = { exists = scope:heir }
}
ordered_in_list = {
list = sparists
limit = {
is_heir_of = root
save_temporary_scope_as = heir_temp
}
order_by = {
value = 0
subtract = "root.primary_title.place_in_line_of_succession(scope:heir_temp)"
}
save_scope_as = heir
court_8191_portrait_effect = yes
remove_from_list = sparists
}
}
ordered_in_list = { # Struggling
list = struggling
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
order_by = age
save_scope_as = struggling
court_8191_portrait_effect = yes
remove_from_list = struggling
}
ordered_in_list = { # Oldest
list = sparists
limit = { is_heir_of = root }
alternative_limit = { always = yes }
order_by = age
save_scope_as = oldest
court_8191_portrait_effect = yes
remove_from_list = sparists
}
ordered_in_list = { # Youngest
list = sparists
limit = { is_heir_of = root }
alternative_limit = { always = yes }
order_by = {
value = 0
subtract = age
}
save_scope_as = youngest
court_8191_portrait_effect = yes
remove_from_list = sparists
}
random_in_list = { # Hostage
list = sparists
limit = {
is_hostage_of = root
save_temporary_scope_as = hostage_temp
}
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
modifier = {
add = 1000
root = {
any_owned_story = {
type = bp2_hostage_loyalty
var:hostage_target ?= scope:hostage_temp
}
}
}
}
save_scope_as = hostage
court_8191_portrait_effect = yes
remove_from_list = sparists
}
random_in_list = { # Interesting
list = sparists
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = interesting
court_8191_portrait_effect = yes
remove_from_list = sparists
}
random_in_list = { # Extra
list = sparists
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
weight = {
base = 1
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = extra
court_8191_portrait_effect = yes
remove_from_list = sparists
}
ordered_in_list = { # Bonus
list = struggling
limit = { is_heir_of = root }
alternative_limit = { is_child_of = root }
alternative_limit = { always = yes }
order_by = {
value = 0
subtract = sum_of_all_skills_value
}
save_scope_as = bonus
court_8191_portrait_effect = yes
remove_from_list = struggling
}
}
option = { # Teach me!
name = court.8195.a
trigger = {
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
court_8195_employed_booner_reward_effect = yes
ai_chance = {
base = 50
}
}
option = { # Heir
name = court.8195.b
trigger = { exists = scope:heir }
scope:heir = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:heir }
}
}
option = { # Struggling
name = court.8195.c
trigger = { exists = scope:struggling }
scope:struggling = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:struggling }
}
}
option = { # Hostage
name = court.8195.d
trigger = { exists = scope:hostage }
scope:hostage = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:hostage }
}
}
option = { # Interesting
name = court.8195.e
trigger = {
exists = scope:interesting
calc_true_if = {
amount < 4
AND = {
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
}
}
scope:interesting = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:interesting }
}
}
option = { # Eldest
name = court.8195.f
trigger = {
exists = scope:oldest
calc_true_if = {
amount < 4
AND = {
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
}
}
scope:oldest = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:oldest }
}
}
option = { # Youngest
name = court.8195.g
trigger = {
exists = scope:youngest
calc_true_if = {
amount < 4
AND = {
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
exists = scope:oldest
}
}
scope:youngest = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:youngest }
}
}
option = { # Extra
name = court.8195.h
trigger = {
exists = scope:extra
calc_true_if = {
amount < 4
AND = {
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
exists = scope:oldest
exists = scope:youngest
}
}
scope:extra = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:extra }
}
}
option = { # Bonus
name = court.8195.i
trigger = {
exists = scope:bonus
calc_true_if = {
amount < 4
AND = {
is_healthy = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
exists = scope:heir
exists = scope:struggling
exists = scope:hostage
exists = scope:interesting
exists = scope:oldest
exists = scope:youngest
exists = scope:extra
}
}
scope:bonus = { court_8195_employed_booner_reward_effect = yes }
ai_chance = {
base = 10
employer_boon_child_ai_chance_modifier = { TARGET = scope:bonus }
}
}
}
# Horse Master
court.8196 = {
type = court_event
title = court.8196.t
desc = court.8196.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = inspect_weapon
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = master_of_horse }
employer_triple_modifier_trigger = { POS = master_of_horse }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:master_of_horse_court_position.aptitude(master_of_horse_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = master_of_horse_court_position
limit = {
employed_booner_pos_trigger = { POS = master_of_horse }
}
order_by = "aptitude(master_of_horse_court_position)"
save_scope_as = position_holder
}
}
option = { # MaA
name = court.8196.a
employed_booner_reward_effect = { POS = master_of_horse_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Advantage
name = court.8196.b
employed_booner_reward_effect = { POS = master_of_horse_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8196.c
duel = {
skill = martial
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8196.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8196.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = master_of_horse_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8196.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8196.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Caravan Master
court.8197 = {
type = court_event
title = court.8197.t
desc = court.8197.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = writing
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = travel_leader }
employer_triple_modifier_trigger = { POS = travel_leader }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:travel_leader_court_position.aptitude(travel_leader_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = travel_leader_court_position
limit = {
employed_booner_pos_trigger = { POS = travel_leader }
}
order_by = "aptitude(travel_leader_court_position)"
save_scope_as = position_holder
}
}
option = { # Safety
name = court.8197.a
employed_booner_reward_effect = { POS = travel_leader_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Speed
name = court.8197.b
employed_booner_reward_effect = { POS = travel_leader_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8197.c
duel = {
skill = stewardship
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8197.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8197.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = travel_leader_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8197.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8197.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Antiquarian
scripted_trigger court_8198_employed_booner_artifact_trigger = {
save_temporary_scope_as = artifact_temp
root = {
can_equip_artifact = scope:artifact_temp
can_benefit_from_artifact = scope:artifact_temp
}
OR = {
artifact_durability_percent < 0.75
rarity = common
rarity = masterwork
}
NOR = {
has_variable = employed_boon_artifact
has_variable = banner_house
has_variable = banner_dynasty
scope:broken_1 ?= this
scope:broken_2 ?= this
scope:broken_3 ?= this
scope:broken_4 ?= this
scope:weak_1 ?= this
scope:weak_2 ?= this
scope:weak_3 ?= this
scope:weak_4 ?= this
}
}
scripted_trigger court_8198_dynasty_opinion_trigger = {
OR = {
has_artifact_modifier = artifact_dynasty_opinion_1_modifier
has_artifact_modifier = artifact_dynasty_opinion_2_modifier
has_artifact_modifier = artifact_dynasty_opinion_3_modifier
has_artifact_modifier = artifact_dynasty_opinion_4_modifier
has_artifact_modifier = artifact_dynasty_opinion_5_modifier
has_artifact_modifier = artifact_dynasty_opinion_6_modifier
has_artifact_modifier = artifact_dynasty_opinion_7_modifier
has_artifact_modifier = artifact_dynasty_opinion_8_modifier
}
}
scripted_trigger court_8198_dynasty_prestige_trigger = {
OR = {
has_artifact_modifier = artifact_monthly_dynasty_prestige_1_modifier
has_artifact_modifier = artifact_monthly_dynasty_prestige_2_modifier
has_artifact_modifier = artifact_monthly_dynasty_prestige_3_modifier
has_artifact_modifier = artifact_monthly_dynasty_prestige_4_modifier
}
}
scripted_trigger court_8198_prestige_trigger = {
OR = {
has_artifact_modifier = artifact_monthly_prestige_add_1_modifier
has_artifact_modifier = artifact_monthly_prestige_add_2_modifier
has_artifact_modifier = artifact_monthly_prestige_add_3_modifier
has_artifact_modifier = artifact_monthly_prestige_add_4_modifier
has_artifact_modifier = artifact_monthly_prestige_add_5_modifier
has_artifact_modifier = artifact_monthly_prestige_add_6_modifier
has_artifact_modifier = artifact_monthly_prestige_add_7_modifier
has_artifact_modifier = artifact_monthly_prestige_add_8_modifier
}
}
scripted_trigger court_8198_court_grandeur_trigger = {
OR = {
has_artifact_modifier = artifact_court_grandeur_baseline_add_1_modifier
has_artifact_modifier = artifact_court_grandeur_baseline_add_2_modifier
has_artifact_modifier = artifact_court_grandeur_baseline_add_3_modifier
has_artifact_modifier = artifact_court_grandeur_baseline_add_4_modifier
has_artifact_modifier = artifact_court_grandeur_baseline_add_5_modifier
has_artifact_modifier = artifact_court_grandeur_baseline_add_6_modifier
}
}
scripted_trigger court_8198_prowess_trigger = {
OR = {
has_artifact_modifier = artifact_prowess_1_modifier
has_artifact_modifier = artifact_prowess_2_modifier
has_artifact_modifier = artifact_prowess_3_modifier
has_artifact_modifier = artifact_prowess_4_modifier
has_artifact_modifier = artifact_prowess_5_modifier
has_artifact_modifier = artifact_prowess_6_modifier
has_artifact_modifier = artifact_prowess_7_modifier
has_artifact_modifier = artifact_prowess_8_modifier
has_artifact_modifier = artifact_prowess_9_modifier
has_artifact_modifier = artifact_prowess_10_modifier
has_artifact_modifier = artifact_prowess_11_modifier
}
}
scripted_effect court_8198_add_modifier_effect = {
custom_tooltip = court_8198_$MODIFIER$_tooltip
hidden_effect = { add_artifact_modifier = $MODIFIER$_$NUM$_modifier }
}
scripted_effect court_8198_select_modifier_effect = {
random_list = {
10 = {
trigger = {
artifact_slot_type = primary_armament
OR = {
court_8198_prowess_trigger = no
AND = {
court_8198_prowess_trigger = yes
NOT = { has_artifact_modifier = artifact_prowess_11_modifier }
}
}
}
modifier = {
court_8198_prowess_trigger = no
add = 10
}
set_variable = { name = boon_modifier value = flag:prowess }
}
10 = {
trigger = {
ep1_artifact_is_court_artifact_trigger = yes
OR = {
court_8198_court_grandeur_trigger = no
AND = {
court_8198_court_grandeur_trigger = yes
NOT = { has_artifact_modifier = artifact_court_grandeur_baseline_add_6_modifier }
}
}
}
modifier = {
court_8198_court_grandeur_trigger = no
add = 10
}
set_variable = { name = boon_modifier value = flag:grandeur }
}
10 = {
trigger = {
OR = {
court_8198_prestige_trigger = no
AND = {
court_8198_prestige_trigger = yes
NOT = { has_artifact_modifier = artifact_monthly_prestige_add_8_modifier }
}
}
}
modifier = {
court_8198_prestige_trigger = no
add = 10
}
set_variable = { name = boon_modifier value = flag:prestige }
}
10 = {
trigger = {
OR = {
court_8198_dynasty_prestige_trigger = no
AND = {
court_8198_dynasty_prestige_trigger = yes
NOT = { has_artifact_modifier = artifact_monthly_dynasty_prestige_4_modifier }
}
}
}
modifier = {
court_8198_dynasty_prestige_trigger = no
add = 10
}
set_variable = { name = boon_modifier value = flag:dynasty_prestige }
}
10 = {
trigger = {
OR = {
court_8198_dynasty_opinion_trigger = no
AND = {
court_8198_dynasty_opinion_trigger = yes
NOT = { has_artifact_modifier = artifact_dynasty_opinion_8_modifier }
}
}
}
modifier = {
court_8198_dynasty_opinion_trigger = no
add = 10
}
set_variable = { name = boon_modifier value = flag:dynasty_opinion }
}
}
}
scripted_effect court_8198_employed_booner_broken_effect = {
add_durability = {
value = {
value = artifact_max_durability
multiply = 0.25
}
}
}
scripted_effect court_8198_employed_booner_weak_effect = {
switch = {
trigger = var:boon_modifier
flag:prowess = {
court_8198_add_modifier_effect = { MODIFIER = artifact_prowess NUM = 2 }
}
flag:grandeur = {
court_8198_add_modifier_effect = { MODIFIER = artifact_court_grandeur_baseline_add NUM = 2 }
}
flag:prestige = {
court_8198_add_modifier_effect = { MODIFIER = artifact_monthly_prestige_add NUM = 2 }
}
flag:dynasty_prestige = {
court_8198_add_modifier_effect = { MODIFIER = artifact_monthly_dynasty_prestige NUM = 1 }
}
flag:dynasty_opinion = {
court_8198_add_modifier_effect = { MODIFIER = artifact_dynasty_opinion NUM = 3 }
}
}
set_variable = {
name = employed_boon_artifact
years = 50
}
}
court.8198 = {
type = court_event
title = court.8198.t
desc = court.8198.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = thinking
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = antiquarian }
any_character_artifact = {
count >= 2
court_8198_employed_booner_artifact_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:antiquarian_court_position.aptitude(antiquarian_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = antiquarian_court_position
limit = {
employed_booner_pos_trigger = { POS = antiquarian }
}
order_by = "aptitude(antiquarian_court_position)"
save_scope_as = position_holder
}
every_character_artifact = {
limit = {
artifact_durability_percent < 0.75
court_8198_employed_booner_artifact_trigger = yes
}
add_to_list = broken
}
every_character_artifact = {
limit = {
OR = {
rarity = common
rarity = masterwork
}
court_8198_employed_booner_artifact_trigger = yes
}
add_to_list = weak
}
ordered_in_list = {
list = broken
limit = {
is_unique = yes
court_8198_employed_booner_artifact_trigger = yes
}
alternative_limit = {
is_equipped = yes
court_8198_employed_booner_artifact_trigger = yes
}
alternative_limit = { court_8198_employed_booner_artifact_trigger = yes }
max = 4
check_range_bounds = no
order_by = {
value = 0
subtract = artifact_durability_percent
}
if = {
limit = { exists = scope:broken_3 }
save_scope_as = broken_4
}
else_if = {
limit = { exists = scope:broken_2 }
save_scope_as = broken_3
}
else_if = {
limit = { exists = scope:broken_1 }
save_scope_as = broken_2
}
else = { save_scope_as = broken_1 }
}
ordered_in_list = {
list = broken
limit = {
is_unique = yes
court_8198_employed_booner_artifact_trigger = yes
}
alternative_limit = {
is_equipped = yes
court_8198_employed_booner_artifact_trigger = yes
}
alternative_limit = { court_8198_employed_booner_artifact_trigger = yes }
max = 4
check_range_bounds = no
order_by = artifact_wealth_quality_average_value
if = {
limit = { exists = scope:weak_3 }
save_scope_as = weak_4
court_8198_select_modifier_effect = yes
}
else_if = {
limit = { exists = scope:weak_2 }
save_scope_as = weak_3
court_8198_select_modifier_effect = yes
}
else_if = {
limit = { exists = scope:weak_1 }
save_scope_as = weak_2
court_8198_select_modifier_effect = yes
}
else = {
save_scope_as = weak_1
court_8198_select_modifier_effect = yes
}
}
}
option = { # Weak 1
name = court.8198.a
trigger = { exists = scope:weak_1 }
scope:weak_1 = { court_8198_employed_booner_weak_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:weak_1 }
}
}
option = { # Weak 2
name = court.8198.b
trigger = { exists = scope:weak_2 }
scope:weak_2 = { court_8198_employed_booner_weak_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:weak_2 }
}
}
option = { # Weak 3
name = court.8198.c
trigger = { exists = scope:weak_3 }
scope:weak_3 = { court_8198_employed_booner_weak_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:weak_3 }
}
}
option = { # Broken 1
name = court.8198.d
trigger = { exists = scope:broken_1 }
scope:broken_1 = { court_8198_employed_booner_broken_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:broken_1 }
}
}
option = { # Broken 2
name = court.8198.e
trigger = {
exists = scope:broken_2
calc_true_if = {
amount < 4
exists = scope:weak_1
exists = scope:weak_2
exists = scope:weak_3
exists = scope:broken_1
}
}
scope:broken_2 = { court_8198_employed_booner_broken_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:broken_2 }
}
}
option = { # Broken 3
name = court.8198.f
trigger = {
exists = scope:broken_3
calc_true_if = {
amount < 4
exists = scope:weak_1
exists = scope:weak_2
exists = scope:weak_3
exists = scope:broken_1
exists = scope:broken_2
}
}
scope:broken_3 = { court_8198_employed_booner_broken_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:broken_3 }
}
}
option = { # Weak 4
name = court.8198.g
trigger = {
exists = scope:weak_4
calc_true_if = {
amount < 4
exists = scope:weak_1
exists = scope:broken_1
exists = scope:weak_2
exists = scope:broken_2
exists = scope:weak_3
exists = scope:broken_3
}
}
scope:weak_4 = { court_8198_employed_booner_weak_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:weak_4 }
}
}
option = { # Broken 4
name = court.8198.h
trigger = {
exists = scope:broken_4
calc_true_if = {
amount < 4
exists = scope:weak_1
exists = scope:broken_1
exists = scope:weak_2
exists = scope:broken_2
exists = scope:weak_3
exists = scope:broken_3
exists = scope:weak_4
}
}
scope:broken_4 = { court_8198_employed_booner_broken_effect = yes }
ai_chance = {
base = 10
employer_boon_artifact_ai_chance_modifier = { TARGET = scope:broken_4 }
}
}
option = { # Everything
name = court.8198.i
employed_booner_reward_effect = { POS = antiquarian }
ai_chance = {
base = 25
}
}
}
# Hunt Master
court.8199 = {
type = court_event
title = court.8199.t
desc = court.8199.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = hunting_knife_start
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = master_of_hunt }
employer_triple_modifier_trigger = { POS = master_of_hunt }
any_vassal = { vassal_stance = glory_hound }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:master_of_hunt_court_position.aptitude(master_of_hunt_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = master_of_hunt_court_position
limit = {
employed_booner_pos_trigger = { POS = master_of_hunt }
}
order_by = "aptitude(master_of_hunt_court_position)"
save_scope_as = position_holder
}
}
option = { # Success
name = court.8199.a
employed_booner_reward_effect = { POS = master_of_hunt_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Cost
name = court.8199.b
employed_booner_reward_effect = { POS = master_of_hunt_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8199.c
duel = {
skill = prowess
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8199.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8199.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = master_of_hunt_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8199.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8199.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Royal Architect
court.8200 = {
type = court_event
title = court.8200.t
desc = court.8200.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = writing
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = royal_architect }
employer_triple_modifier_trigger = { POS = royal_architect }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:royal_architect_court_position.aptitude(royal_architect_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = royal_architect_court_position
limit = {
employed_booner_pos_trigger = { POS = royal_architect }
}
order_by = "aptitude(royal_architect_court_position)"
save_scope_as = position_holder
}
}
option = { # Success
name = court.8200.a
employed_booner_reward_effect = { POS = royal_architect_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Cost
name = court.8200.b
employed_booner_reward_effect = { POS = royal_architect_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8200.c
duel = {
skill = stewardship
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8200.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8200.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = royal_architect_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8200.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8200.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Cupbearer
court.8201 = {
type = court_event
title = court.8201.t
desc = court.8201.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = thinking
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = cupbearer }
employer_triple_modifier_trigger = { POS = cupbearer }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:cupbearer_court_position.aptitude(cupbearer_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = cupbearer_court_position
limit = {
employed_booner_pos_trigger = { POS = cupbearer }
}
order_by = "aptitude(cupbearer_court_position)"
save_scope_as = position_holder
}
}
option = { # Courtly Vassals
name = court.8201.a
employed_booner_reward_effect = { POS = cupbearer_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Servants Cost
name = court.8201.b
employed_booner_reward_effect = { POS = cupbearer_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8201.c
duel = {
skill = prowess
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8201.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8201.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = cupbearer_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8201.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8201.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Lady-in-Waiting
court.8203 = {
type = court_event
title = court.8203.t
desc = court.8203.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = admiration
}
root = {
group = event_group
animation = scheme
}
}
}
trigger = {
employed_booner_trigger = { POS = lady_in_waiting }
employer_triple_modifier_trigger = { POS = lady_in_waiting }
}
weight_multiplier = {
base = 1
modifier = {
any_court_position_holder = {
has_court_position = lady_in_waiting_court_position
save_temporary_scope_as = position_temp
}
add = {
value = "scope:position_temp.aptitude(lady_in_waiting_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = lady_in_waiting_court_position
limit = {
employed_booner_pos_trigger = { POS = lady_in_waiting }
}
order_by = "aptitude(lady_in_waiting_court_position)"
save_scope_as = position_holder
}
}
option = { # Success
name = court.8203.a
employed_booner_reward_effect = { POS = lady_in_waiting_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Cost
name = court.8203.b
employed_booner_reward_effect = { POS = lady_in_waiting_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_energy = 0.5
}
}
}
option = { # Both!
name = court.8203.c
duel = {
skill = diplomacy
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8203.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8203.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = lady_in_waiting_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8203.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8203.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Food Taster
court.8204 = {
type = court_event
title = court.8204.t
desc = court.8204.desc
theme = court
cooldown = { years = 25 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = thinking
}
root = {
group = event_group
animation = idle
}
}
}
trigger = {
employed_booner_trigger = { POS = food_taster }
employer_triple_modifier_trigger = { POS = food_taster }
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = "court_position:food_taster_court_position.aptitude(food_taster_court_position)"
subtract = 3
}
}
}
immediate = {
add_character_flag = {
flag = court_employer_booner_cooldown
years = 5
}
ordered_court_position_holder = {
type = food_taster_court_position
limit = {
employed_booner_pos_trigger = { POS = food_taster }
}
order_by = "aptitude(food_taster_court_position)"
save_scope_as = position_holder
}
}
option = { # Food Cost
name = court.8204.a
employed_booner_reward_effect = { POS = food_taster_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_greed = 0.5
}
}
}
option = { # Scheme Resistance
name = court.8204.b
employed_booner_reward_effect = { POS = food_taster_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
option = { # Both!
name = court.8204.c
duel = {
skill = intrigue
value = decent_skill_rating
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = court.8204.c.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8204.c.success
right_icon = scope:position_holder
employed_booner_reward_effect = { POS = food_taster_3 }
}
}
10 = {
min = 2
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = court.8204.c.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8204.c.failure
right_icon = scope:position_holder
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = -0.5
}
}
}
}
# Poor Court Position Holder - Salary Review Edition
scripted_trigger court_8301_aptitude_trigger = { aptitude:$POS$_court_position < $VALUE$ }
scripted_trigger court_8301_position_trigger = {
switch = {
trigger = has_court_position
court_physician_court_position = {
court_8301_aptitude_trigger = { POS = court_physician VALUE = $VALUE$ }
}
cultural_emissary_court_position = {
court_8301_aptitude_trigger = { POS = cultural_emissary VALUE = $VALUE$ }
}
keeper_of_swans_court_position = {
court_8301_aptitude_trigger = { POS = keeper_of_swans VALUE = $VALUE$ }
}
chief_qadi_court_position = {
court_8301_aptitude_trigger = { POS = chief_qadi VALUE = $VALUE$ }
}
garuda_court_position = {
court_8301_aptitude_trigger = { POS = garuda VALUE = $VALUE$ }
}
court_gardener_court_position = {
court_8301_aptitude_trigger = { POS = court_gardener VALUE = $VALUE$ }
}
lady_in_waiting_court_position = {
court_8301_aptitude_trigger = { POS = lady_in_waiting VALUE = $VALUE$ }
}
antiquarian_court_position = {
court_8301_aptitude_trigger = { POS = antiquarian VALUE = $VALUE$ }
}
travel_leader_court_position = {
court_8301_aptitude_trigger = { POS = travel_leader VALUE = $VALUE$ }
}
wet_nurse_court_position = {
court_8301_aptitude_trigger = { POS = wet_nurse VALUE = $VALUE$ }
}
court_tutor_court_position = {
court_8301_aptitude_trigger = { POS = court_tutor VALUE = $VALUE$ }
}
food_taster_court_position = {
court_8301_aptitude_trigger = { POS = food_taster VALUE = $VALUE$ }
}
master_of_horse_court_position = {
court_8301_aptitude_trigger = { POS = master_of_horse VALUE = $VALUE$ }
}
master_of_hunt_court_position = {
court_8301_aptitude_trigger = { POS = master_of_hunt VALUE = $VALUE$ }
}
royal_architect_court_position = {
court_8301_aptitude_trigger = { POS = royal_architect VALUE = $VALUE$ }
}
high_almoner_court_position = {
court_8301_aptitude_trigger = { POS = high_almoner VALUE = $VALUE$ }
}
seneschal_court_position = {
court_8301_aptitude_trigger = { POS = seneschal VALUE = $VALUE$ }
}
cupbearer_court_position = {
court_8301_aptitude_trigger = { POS = cupbearer VALUE = $VALUE$ }
}
chief_eunuch_court_position = {
court_8301_aptitude_trigger = { POS = chief_eunuch VALUE = $VALUE$ }
}
court_jester_court_position = {
court_8301_aptitude_trigger = { POS = court_jester VALUE = $VALUE$ }
}
court_poet_court_position = {
court_8301_aptitude_trigger = { POS = court_poet VALUE = $VALUE$ }
}
court_musician_court_position = {
court_8301_aptitude_trigger = { POS = court_musician VALUE = $VALUE$ }
}
bodyguard_court_position = {
court_8301_aptitude_trigger = { POS = bodyguard VALUE = $VALUE$ }
}
champion_court_position = {
court_8301_aptitude_trigger = { POS = champion VALUE = $VALUE$ }
}
executioner_court_position = {
court_8301_aptitude_trigger = { POS = executioner VALUE = $VALUE$ }
}
court_artificer_court_position = {
court_8301_aptitude_trigger = { POS = court_artificer VALUE = $VALUE$ }
}
master_assassin_court_position = {
court_8301_aptitude_trigger = { POS = master_assassin VALUE = $VALUE$ }
}
cave_hermit_court_position = {
court_8301_aptitude_trigger = { POS = cave_hermit VALUE = $VALUE$ }
}
chronicler_court_position = {
court_8301_aptitude_trigger = { POS = chronicler VALUE = $VALUE$ }
}
court_scholar_court_position = {
court_8301_aptitude_trigger = { POS = court_scholar VALUE = $VALUE$ }
}
charioteer_court_position = {
court_8301_aptitude_trigger = { POS = charioteer VALUE = $VALUE$ }
}
bookmaker_court_position = {
court_8301_aptitude_trigger = { POS = bookmaker VALUE = $VALUE$ }
}
akolouthos_court_position = {
court_8301_aptitude_trigger = { POS = akolouthos VALUE = $VALUE$ }
}
court_brewmaster_court_position = {
court_8301_aptitude_trigger = { POS = court_brewmaster VALUE = $VALUE$ }
}
court_astrologer_court_position = {
court_8301_aptitude_trigger = { POS = court_astrologer VALUE = $VALUE$ }
}
fallback = { always = no }
}
}
scripted_effect court_8301_aptitude_effect = {
if = {
limit = {
NOT = { exists = var:penalized_position }
has_court_position = $POS$_court_position
aptitude:$POS$_court_position < $VALUE$
}
set_variable = {
name = penalized_position
value = flag:$POS$
years = 5
}
}
}
scripted_effect court_8301_position_effect = {
court_8301_aptitude_effect = { POS = court_physician VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = cultural_emissary VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = keeper_of_swans VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = chief_qadi VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = garuda VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_gardener VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = lady_in_waiting VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = antiquarian VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = travel_leader VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = wet_nurse VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_tutor VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = food_taster VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = master_of_horse VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = master_of_hunt VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = royal_architect VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = high_almoner VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = seneschal VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = cupbearer VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = chief_eunuch VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_jester VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_poet VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_musician VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = bodyguard VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = champion VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = executioner VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_artificer VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = master_assassin VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = cave_hermit VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = chronicler VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_scholar VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = charioteer VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = bookmaker VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = akolouthos VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_brewmaster VALUE = $VALUE$ }
court_8301_aptitude_effect = { POS = court_astrologer VALUE = $VALUE$ }
}
scripted_effect court_8301_revoke_effect = {
scope:liege = {
revoke_court_position = {
recipient = scope:position_holder
court_position = $POS$_court_position
}
remove_character_flag = free_revoke_cost
}
}
scripted_effect court_8301_fire_effect = {
switch = {
trigger = var:penalized_position
flag:court_physician = { court_8301_revoke_effect = { POS = court_physician } }
flag:cultural_emissary = { court_8301_revoke_effect = { POS = cultural_emissary } }
flag:keeper_of_swans = { court_8301_revoke_effect = { POS = keeper_of_swans } }
flag:chief_qadi = { court_8301_revoke_effect = { POS = chief_qadi } }
flag:garuda = { court_8301_revoke_effect = { POS = garuda } }
flag:court_gardener = { court_8301_revoke_effect = { POS = court_gardener } }
flag:lady_in_waiting = { court_8301_revoke_effect = { POS = lady_in_waiting } }
flag:antiquarian = { court_8301_revoke_effect = { POS = antiquarian } }
flag:travel_leader = { court_8301_revoke_effect = { POS = travel_leader } }
flag:wet_nurse = { court_8301_revoke_effect = { POS = wet_nurse } }
flag:court_tutor = { court_8301_revoke_effect = { POS = court_tutor } }
flag:food_taster = { court_8301_revoke_effect = { POS = food_taster } }
flag:master_of_horse = { court_8301_revoke_effect = { POS = master_of_horse } }
flag:master_of_hunt = { court_8301_revoke_effect = { POS = master_of_hunt } }
flag:royal_architect = { court_8301_revoke_effect = { POS = royal_architect } }
flag:high_almoner = { court_8301_revoke_effect = { POS = high_almoner } }
flag:seneschal = { court_8301_revoke_effect = { POS = seneschal } }
flag:cupbearer = { court_8301_revoke_effect = { POS = cupbearer } }
flag:chief_eunuch = { court_8301_revoke_effect = { POS = chief_eunuch } }
flag:court_jester = { court_8301_revoke_effect = { POS = court_jester } }
flag:court_poet = { court_8301_revoke_effect = { POS = court_poet } }
flag:court_musician = { court_8301_revoke_effect = { POS = court_musician } }
flag:bodyguard = { court_8301_revoke_effect = { POS = bodyguard } }
flag:champion = { court_8301_revoke_effect = { POS = champion } }
flag:executioner = { court_8301_revoke_effect = { POS = executioner } }
flag:court_artificer = { court_8301_revoke_effect = { POS = court_artificer } }
flag:master_assassin = { court_8301_revoke_effect = { POS = master_assassin } }
flag:cave_hermit = { court_8301_revoke_effect = { POS = cave_hermit } }
flag:chronicler = { court_8301_revoke_effect = { POS = chronicler } }
flag:court_scholar = { court_8301_revoke_effect = { POS = court_scholar } }
flag:charioteer = { court_8301_revoke_effect = { POS = charioteer } }
flag:bookmaker = { court_8301_revoke_effect = { POS = bookmaker } }
flag:akolouthos = { court_8301_revoke_effect = { POS = akolouthos } }
flag:court_brewmaster = { court_8301_revoke_effect = { POS = court_brewmaster } }
flag:court_astrologer = { court_8301_revoke_effect = { POS = court_astrologer } }
}
remove_variable = penalized_position
}
court.8301 = {
type = court_event
title = court.8301.t
desc = {
desc = court.8301.intro
desc = court.8301.detractor
desc = court.8301.desc
}
theme = court
cooldown = { years = 10 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = anger
}
scope:detractor = {
group = event_group
animation = dismissal
}
root = {
group = event_group
animation = happiness
}
}
}
trigger = {
any_court_position_holder = { } # Easy out
any_court_position_holder = {
NOR = {
root = {
is_target_in_variable_list = {
name = halved_position_salary_employees
target = prev
}
}
root = {
is_target_in_variable_list = {
name = increased_position_salary_employees
target = prev
}
}
}
court_8301_position_trigger = { VALUE = 3 }
}
}
weight_multiplier = {
base = 1
}
immediate = {
save_scope_as = liege
add_character_flag = free_revoke_cost
random_court_position_holder = {
limit = {
court_8301_position_trigger = { VALUE = 3 }
}
save_scope_as = position_holder
court_8301_position_effect = { VALUE = 3 }
}
ordered_courtier = {
limit = {
this != scope:position_holder
is_of_major_interest_to_root_trigger = yes
is_available_adult = yes
}
order_by = {
value = 0
subtract = "opinion(scope:position_holder)"
}
save_scope_as = detractor
}
if = {
limit = { NOT = { exists = scope:detractor } }
ordered_courtier = {
limit = {
this != scope:position_holder
is_of_minor_interest_to_root_trigger = yes
is_available_adult = yes
}
order_by = {
value = 0
subtract = "opinion(scope:position_holder)"
}
save_scope_as = detractor
}
}
if = {
limit = { NOT = { exists = scope:detractor } }
ordered_courtier = {
limit = {
this != scope:position_holder
is_available_adult = yes
}
order_by = {
value = 0
subtract = "opinion(scope:position_holder)"
}
save_scope_as = detractor
}
}
scope:detractor ?= {
progress_towards_rival_effect = {
REASON = rival_poor_court_position_holder
CHARACTER = scope:position_holder
OPINION = default_rival_opinion
}
}
}
option = {
name = court.8301.a
scope:position_holder = {
custom_tooltip = {
text = halved_position_salary_tt
scope:liege = {
add_to_variable_list = {
name = halved_position_salary_employees
target = scope:position_holder
years = 10
}
}
}
}
custom_tooltip = employer_booner_invalidated_tt
reverse_add_opinion = {
target = scope:position_holder
modifier = angry_opinion
opinion = -15
}
stress_impact = {
generous = minor_stress_impact_gain
diligent = minor_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_greed = 0.5
ai_vengefulness = -0.5
}
}
}
option = {
name = court.8301.b
scope:position_holder = { court_8301_fire_effect = yes } # TIT-53703 awaiting code support to actually be free
stress_impact = {
arbitrary = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_greed = 1
ai_boldness = 1
}
}
}
option = {
name = court.8301.c
reverse_add_opinion = {
target = scope:position_holder
modifier = grateful_opinion
opinion = 15
}
if = {
limit = { exists = scope:detractor }
reverse_add_opinion = {
target = scope:detractor
modifier = annoyed_opinion
opinion = -10
}
}
stress_impact = {
honest = minor_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
ai_value_modifier = {
ai_greed = -1
ai_boldness = -1
}
}
}
after = { remove_character_flag = free_revoke_cost }
}
# Bad Holder Improves
court.8311 = {
type = court_event
title = court.8311.t
desc = court.8311.desc
theme = court
cooldown = { years = 10 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = thinking
}
root = {
group = event_group
animation = happiness
}
}
}
trigger = {
is_ai = no # Performance
has_royal_court = yes
amenity_level = {
target = court_lodging_standards
value >= 3
}
any_court_position_holder = { } # Easy out
any_court_position_holder = {
court_8301_position_trigger = { VALUE = 3 }
NOT = { exists = var:bonus_aptitude_role }
NOT = { exists = var:court_8311_cooldown }
}
}
weight_multiplier = {
base = 1
}
immediate = {
save_scope_as = liege
random_court_position_holder = {
limit = {
court_8301_position_trigger = { VALUE = 3 }
NOT = { exists = var:bonus_aptitude_role }
NOT = { exists = var:court_8311_cooldown }
}
weight = {
base = 1
modifier = { add = ai_energy }
}
save_scope_as = position_holder
court_8301_position_effect = { VALUE = 3 }
set_variable = {
name = target_court_position
value = var:penalized_position
}
}
}
option = {
name = court.8311.a
scope:position_holder = {
if = { # Diplomacy
limit = {
OR = {
var:target_court_position ?= flag:cultural_emissary
var:target_court_position ?= flag:chronicler
var:target_court_position ?= flag:cupbearer
var:target_court_position ?= flag:lady_in_waiting
var:target_court_position ?= flag:court_jester
var:target_court_position ?= flag:court_poet
var:target_court_position ?= flag:court_musician
}
}
add_diplomacy_skill = 1
}
else_if = { # Martial
limit = {
OR = {
var:target_court_position ?= flag:akolouthos
var:target_court_position ?= flag:master_of_horse
}
}
add_martial_skill = 1
}
else_if = { # Stewardship
limit = {
OR = {
var:target_court_position ?= flag:keeper_of_swans
var:target_court_position ?= flag:royal_architect
var:target_court_position ?= flag:court_gardener
var:target_court_position ?= flag:travel_leader
var:target_court_position ?= flag:seneschal
var:target_court_position ?= flag:bookmaker
}
}
add_stewardship_skill = 1
}
else_if = { # Intrigue
limit = {
OR = {
var:target_court_position ?= flag:food_taster
var:target_court_position ?= flag:chief_eunuch
var:target_court_position ?= flag:executioner
var:target_court_position ?= flag:master_assassin
}
}
add_intrigue_skill = 1
}
else_if = { # Learning
limit = {
OR = {
var:target_court_position ?= flag:court_physician
var:target_court_position ?= flag:chief_qadi
var:target_court_position ?= flag:court_scholar
var:target_court_position ?= flag:antiquarian
var:target_court_position ?= flag:court_artificer
var:target_court_position ?= flag:cave_hermit
var:target_court_position ?= flag:wet_nurse
var:target_court_position ?= flag:court_tutor
var:target_court_position ?= flag:high_almoner
var:target_court_position ?= flag:court_brewmaster
var:target_court_position ?= flag:court_astrologer
}
}
add_learning_skill = 1
}
else = { add_prowess_skill = 1 } # Prowess
custom_tooltip = {
text = bonus_aptitude_role_tt
set_variable = {
name = bonus_aptitude_role
value = var:penalized_position
}
}
}
}
after = {
scope:position_holder = {
remove_variable = target_court_position
remove_variable = penalized_position
}
}
}
# Holder Wants Raise
court.8321 = {
type = court_event
title = court.8321.t
desc = court.8321.desc
theme = court
cooldown = { years = 10 }
court_scene = {
button_position_character = scope:position_holder
roles = {
scope:position_holder = {
group = event_group
animation = debating
}
root = {
group = event_group
animation = thinking
}
}
}
trigger = {
is_ai = no # Performance
has_royal_court = yes
any_court_position_holder = { } # Easy out
any_court_position_holder = {
NOR = {
exists = var:court_8311_cooldown
exists = var:bonus_aptitude_role
root = {
is_target_in_variable_list = {
name = halved_position_salary_employees
target = prev
}
}
root = {
is_target_in_variable_list = {
name = increased_position_salary_employees
target = prev
}
}
}
court_8301_position_trigger = { VALUE = 5 }
}
}
weight_multiplier = {
base = 1
}
immediate = {
save_scope_as = liege
random_court_position_holder = {
limit = {
court_8301_position_trigger = { VALUE = 5 }
}
weight = {
base = 1
modifier = { add = ai_energy }
modifier = { add = ai_greed }
}
save_scope_as = position_holder
court_8301_position_effect = { VALUE = 5 }
set_variable = {
name = target_court_position
value = var:penalized_position
}
remove_variable = penalized_position
}
}
option = {
name = court.8321.a
scope:position_holder = {
custom_tooltip = {
text = increased_position_salary_tt
scope:liege = {
add_to_variable_list = {
name = increased_position_salary_employees
target = scope:position_holder
years = 10
}
}
}
custom_tooltip = {
text = bonus_aptitude_role_tt
set_variable = {
name = bonus_aptitude_role
value = var:penalized_position
}
}
}
stress_impact = {
greedy = minor_stress_impact_gain
}
}
option = {
name = court.8321.b
duel = {
skill = diplomacy
value = decent_skill_rating
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
modifier = {
add = 1
scope:position_holder = { has_trait = content }
}
modifier = {
add = 1
scope:position_holder = { has_trait = generous }
}
modifier = {
add = 1
scope:position_holder = { has_trait = humble }
}
desc = court.8321.b.success
send_interface_toast = {
type = event_toast_effect_good
title = court.8321.b.success
right_icon = scope:position_holder
pay_short_term_gold = {
gold = scope:position_holder.minor_gold_value
target = scope:position_holder
}
scope:position_holder = {
custom_tooltip = {
text = bonus_aptitude_role_tt
set_variable = {
name = bonus_aptitude_role
value = var:penalized_position
}
}
}
}
}
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
modifier = {
add = 1
scope:position_holder = { has_trait = ambitious }
}
modifier = {
add = 1
scope:position_holder = { has_trait = greedy }
}
modifier = {
add = 1
scope:position_holder = { has_trait = arrogant }
}
desc = court.8321.b.failure
send_interface_toast = {
type = event_toast_effect_bad
title = court.8321.b.failure
right_icon = scope:position_holder
reverse_add_opinion = {
target = scope:position_holder
modifier = insulted_opinion
opinion = -10
}
}
}
}
}
option = {
name = court.8321.c
reverse_add_opinion = {
target = scope:position_holder
modifier = disappointed_opinion
opinion = -15
}
stress_impact = {
generous = minor_stress_impact_gain
profligate = minor_stress_impact_gain
}
}
after = {
scope:position_holder = { remove_variable = target_court_position }
}
}