N3OW_Western_eastern_europe/events/court_maintenance_events.txt

704 lines
16 KiB
Text
Raw Normal View History

2025-12-16 13:42:24 +00:00
#Court Maintenance events of various persuasions
namespace = court_maintenance
#Children should acquire personality trait events
court_maintenance.0003 = {
hidden = yes
trigger = {
OR = {
is_adult = no
any_courtier_or_guest = {
is_adult = no
}
any_prisoner = {
is_adult = no
}
}
}
immediate = {
if = {
limit = {
is_adult = no
OR = {
age = 9
age = 11
age = 13
age >= 14 #Backup in case something has gone wrong
}
number_of_personality_traits < childhood_personality_trait_gain_limit
}
if = {
limit = {
age = 9
has_variable = reincarnation_of
can_become_reincarnation_trigger = yes
}
trigger_event = child_personality.9900
}
else = {
trigger_event = {
on_action = child_personality_gain
days = { 1 360 }
}
}
}
every_courtier_or_guest = {
limit = {
is_adult = no
OR = {
age = 9
age = 11
age = 13
age >= 14 #Backup in case something has gone wrong
}
number_of_personality_traits < childhood_personality_trait_gain_limit
}
trigger_event = {
on_action = child_personality_gain
days = { 1 360 }
}
}
#Small random chance to acquire a fourth personality trait
every_courtier_or_guest = {
limit = {
is_adult = no
number_of_personality_traits = childhood_personality_trait_gain_limit
number_of_personality_traits < personality_trait_limit
}
random = {
chance = childhood_fourth_personality_trait_chance
trigger_event = {
on_action = child_personality_gain
days = { 1 360 }
}
}
}
every_prisoner = {
limit = {
is_adult = no
OR = {
age = 9
age = 11
age = 13
age >= 14 #Backup in case something has gone wrong
}
number_of_personality_traits < childhood_personality_trait_gain_limit
}
trigger_event = {
on_action = child_personality_gain
days = { 1 360 }
}
}
#Small random chance to acquire a fourth personality trait
every_prisoner = {
limit = {
is_adult = no
number_of_personality_traits = childhood_personality_trait_gain_limit
number_of_personality_traits < personality_trait_limit
}
random = {
chance = childhood_fourth_personality_trait_chance
trigger_event = {
on_action = child_personality_gain
days = { 1 360 }
}
}
}
}
}
court_maintenance.0005 = {
hidden = yes
trigger = {
scope:new_employer = {
government_has_flag = government_is_holy_order
}
}
immediate = {
add_trait = order_member
}
}
#Absent from your court
court_maintenance.0010 = {
theme = crown
override_background = { reference = council_chamber }
type = character_event
title = court_maintenance.0010.t
left_portrait = {
character = scope:messenger
animation = worry
}
cooldown = { years = 5 }
trigger = {
always = no # Disabled for now
has_royal_court = yes
has_dlc_feature = royal_court
is_ai = no
is_available_adult = yes
is_at_war = no
}
desc = {
desc = court_maintenance.0010.desc
first_valid = {
triggered_desc = {
trigger = {
exists = scope:great_cgv_court
}
desc = court_maintenance.0010.desc.seeking_gainful_employment
}
desc = court_maintenance.0010.desc.general_ending
}
}
immediate = {
ordered_independent_ruler = {
order_by = court_grandeur_current
limit = {
faith.religion = root.faith.religion
in_diplomatic_range = root
this != root
}
alternative_limit = {
this != root
in_diplomatic_range = root
}
alternative_limit = {
this != root
}
save_scope_as = great_cgv_court
}
random_courtier = {
limit = {
has_any_court_position = yes
}
alternative_limit = {
is_available_adult = yes
}
save_scope_as = messenger
}
}
option = {
name = court_maintenance.0010.a
#Open Royal Court
custom_tooltip = court_maintenance.0010.a.tooltip
open_view_data = {
view = royal_court
player = root
}
}
option = {
name = {
text = court_maintenance.0010.b.paranoid
trigger = { has_trait = paranoid }
}
name = {
text = court_maintenance.0010.b.depressed
trigger = { has_trait = depressed }
}
name = {
text = court_maintenance.0010.b.brave
trigger = { has_trait = brave }
}
name = {
text = court_maintenance.0010.b
trigger = { always = yes }
}
change_current_court_grandeur = miniscule_court_grandeur_loss
if = {
limit = { exists = scope:great_cgv_court }
custom_tooltip = court_maintenance.0010.b.tooltip
}
hidden_effect = {
if = {
limit = { exists = scope:great_cgv_court }
random_courtier = {
limit = {
has_any_court_position = no
is_physically_able_ai_adult = yes
is_councillor = no
NOT = { is_vassal_of = root }
NOT = { is_close_family_of = ROOT }
}
set_employer = scope:great_cgv_court
return_to_court = yes
}
}
}
}
}
#Gained a Royal Court
court_maintenance.0011 = {
theme = new_royal_court
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
desc = court_maintenance.0011.t.regent
}
desc = court_maintenance.0011.t
}
}
window = visit_settlement_window
desc = {
first_valid = {
triggered_desc = {
trigger = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
desc = court_maintenance.0011.desc.regent
}
triggered_desc = {
trigger = { coronation_trigger = yes }
desc = court_maintenance.0011.desc.ach
}
desc = court_maintenance.0011.desc
}
}
left_portrait = {
character = root
animation = war_over_win
}
right_portrait = {
character = scope:messenger
animation = ecstasy
}
artifact = { # To display the dynasty banner in the event-window
target = scope:dynasty_banner
position = lower_center_portrait
}
artifact = { # To display the house banner in the event-window
target = scope:house_banner
position = lower_right_portrait
}
trigger = {
is_ai = no
is_landed = yes
has_dlc_feature = royal_court
# To avoid farming and duplication
OR = {
# No owned house banner
NOT = {
any_character_artifact = {
has_variable = banner_house
var:banner_house = root.house
}
}
AND = {
# Is Dynasty Head
OR = {
this = dynasty.dynast # Dynasty Head
any_parent = { # Parent landless
employer = prev
dynasty = prev.dynasty
this = dynasty.dynast
}
}
# Dynasty banner does not exist
NOT = {
any_character_artifact = {
has_variable = banner_dynasty
var:banner_dynasty = root.dynasty
}
}
}
}
}
immediate = {
tgp_save_realm_ceremonial_liege_effect = yes
if = {
limit = {
coronation_trigger = yes
NOT = { has_game_rule = coronation_laws_off }
}
coronation_reset_realm_law_effect = yes #we need to reset the crown laws immediately, not wait for the next tick
set_variable = coronation_discount
custom_tooltip = court_maintenance.0011.coronation_discount
# Coronations law
show_as_tooltip = {
add_realm_law = uncrowned
}
# Artifact for Coronations setup
create_proper_coronation_artifact_setup = yes
}
if = {
limit = {
exists = cp:councillor_chancellor
}
cp:councillor_chancellor = { save_scope_as = messenger }
}
else_if = {
limit = {
any_councillor = {
is_kurultai_trigger = yes
}
}
random_councillor = {
limit = {
is_kurultai_trigger = yes
}
save_scope_as = messenger
}
}
else = {
random_vassal = { save_scope_as = messenger }
}
#House banner
if = {
limit = {
tgp_is_ceremonial_regent_trigger = no
NOT = {
any_character_artifact = {
has_variable = banner_house
var:banner_house = root.house
}
}
}
set_variable = banner_from_house
create_artifact_wall_banner_effect = {
OWNER = root
CREATOR = scope:messenger
TARGET = root.house
}
if = { # For artifact portraits
limit = { exists = scope:newly_created_artifact }
scope:newly_created_artifact = { save_scope_as = house_banner }
}
}
#Dynasty banner
if = {
limit = {
tgp_is_ceremonial_regent_trigger = no
OR = {
this = dynasty.dynast # Dynasty Head
any_parent = { # Parent landless
employer = root
dynasty = root.dynasty
this = dynasty.dynast
}
}
NOT = {
any_character_artifact = {
has_variable = banner_dynasty
var:banner_dynasty = root.dynasty
}
}
}
set_variable = banner_from_dynasty
create_artifact_wall_banner_effect = {
OWNER = root
CREATOR = scope:messenger
TARGET = root.dynasty
}
if = { # For artifact portraits
limit = { exists = scope:newly_created_artifact }
scope:newly_created_artifact = { save_scope_as = dynasty_banner }
}
}
#Both
if = {
limit = {
exists = scope:house_banner
exists = scope:dynasty_banner
}
custom_tooltip = court_maintenance.0011.banner_tooltip
}
#House
else_if = {
limit = { exists = scope:house_banner }
custom_tooltip = court_maintenance.0011.banner_house_tooltip
}
#Dynasty
else = { custom_tooltip = court_maintenance.0011.banner_dynasty_tooltip }
# Add extra legitimacy, for the first time they gain the Kingdom title
add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain }
}
option = {
name = court_maintenance.0011.coronation
custom_tooltip = court_maintenance.0011.coronation.tooltip
trigger = {
coronation_trigger = yes
NOR = {
has_character_flag = had_coronation_prompt
has_game_rule = coronation_laws_off
tgp_is_ceremonial_regent_trigger = yes
}
}
if = { #ai should always go straight for it if they can
limit = { is_ai = yes can_host_activity = activity_coronation }
ai_attempt_to_host_activity = activity_coronation
}
else_if = { #if you already have a crown, a window opened for you sire
limit = { coronation_has_proper_artifact_trigger = yes is_ai = no }
open_view_data = {
view = activity_list_detail_host_window
data = activity_type:activity_coronation
player = root
}
}
else = { #Else we start creating a crown
create_proper_coronation_artifact_creation = yes
}
custom_tooltip = court_maintenance.0011.b.tooltip
ai_chance = { #AI should always start hosting coronations
base = 100
}
}
option = {
name = {
text = court_maintenance.0011.a
trigger = { tgp_is_ceremonial_regent_trigger = no } # Not 'actual' ruler
}
name = {
text = court_maintenance.0011.a.regent
trigger = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
}
#Open Royal Court
custom_tooltip = court_maintenance.0011.a.tooltip
if = {
limit = {
coronation_trigger = yes
tgp_is_ceremonial_regent_trigger = no # Not 'actual' ruler
NOR = {
has_character_flag = had_coronation_prompt
has_game_rule = coronation_laws_off
government_has_flag = government_is_mandala
}
}
custom_tooltip = court_maintenance.0011.b.tooltip.ach
}
open_view_data = {
view = royal_court
player = root
}
}
option = {
name = court_maintenance.0011.b
custom_tooltip = court_maintenance.0011.b.tooltip
if = {
limit = {
coronation_trigger = yes
tgp_is_ceremonial_regent_trigger = no # Not 'actual' ruler
NOR = {
has_character_flag = had_coronation_prompt
has_game_rule = coronation_laws_off
government_has_flag = government_is_mandala
}
}
custom_tooltip = court_maintenance.0011.b.tooltip.ach
}
}
after = {
add_character_flag = had_coronation_prompt
if = {
limit = {
has_tgp_dlc_trigger = yes
government_allows = merit
NOT = { has_government = celestial_government } #Created from cycle
}
create_artifact_dynastic_imperial_seal_effect = {
OWNER = root
SMITH = root
}
}
}
}
#Dynasty Banner improves
scripted_trigger dynasty_banner_improve_rarity_trigger = {
trigger_if = {
limit = { root.dynasty.dynasty_prestige_level = max_dynasty_prestige_level }
NOT = { rarity = illustrious }
}
trigger_else_if = {
limit = { root.dynasty.dynasty_prestige_level >= high_dynasty_prestige_level }
NOR = {
rarity = famed
rarity = illustrious
}
}
trigger_else = {
root.dynasty.dynasty_prestige_level >= medium_dynasty_prestige_level
NOR = {
rarity = masterwork
rarity = famed
rarity = illustrious
}
}
}
scripted_effect dynasty_banner_improve_rarity_effect = {
if = {
limit = { scope:target.dynasty_prestige_level = max_dynasty_prestige_level }
set_artifact_rarity = illustrious
}
else_if = {
limit = { scope:target.dynasty_prestige_level >= high_dynasty_prestige_level }
set_artifact_rarity = famed
}
else = { set_artifact_rarity = masterwork }
hidden_effect = {
set_artifact_description = artifact_wall_banner_dynasty_description
clear_artifact_modifiers = yes
add_scaled_artifact_modifier_grandeur_small_effect = yes
add_scaled_artifact_modifier_dynasty_prestige_effect = yes
add_scaled_artifact_modifier_prestige_effect = yes
add_scaled_artifact_modifier_rulership_effect = yes
}
}
court_maintenance.0012 = {
theme = new_royal_court
type = character_event
title = court_maintenance.0012.t
desc = {
desc = court_maintenance.0012.desc
first_valid = {
triggered_desc = {
trigger = { scope:target.dynasty_prestige_level = max_dynasty_prestige_level }
desc = court_maintenance.0012.desc_illustrious
}
triggered_desc = {
trigger = { scope:target.dynasty_prestige_level >= high_dynasty_prestige_level }
desc = court_maintenance.0012.desc_masterwork
}
desc = court_maintenance.0012.desc_famed
}
}
left_portrait = {
character = root
animation = personality_honorable
}
artifact = { # To display the artifact in the event-window
target = scope:banner_scope
position = lower_right_portrait
}
trigger = {
any_character_artifact = {
trigger_if = { # To stop errors
limit = { exists = var:banner_dynasty } # is a dynasty banner
var:banner_dynasty = root.dynasty # of my dynasty
dynasty_banner_improve_rarity_trigger = yes # and should be a higher level
}
trigger_else = { always = no }
}
}
immediate = {
dynasty = { save_scope_as = target } # for banner desc
# save relevant banners (all just in case)
every_character_artifact = {
limit = {
has_variable = banner_dynasty
var:banner_dynasty = root.dynasty
dynasty_banner_improve_rarity_trigger = yes
}
add_to_list = dynasty_banner_list
}
random_in_list = {
list = dynasty_banner_list
limit = { is_equipped = yes }
alternative_limit = { always = yes }
save_scope_as = banner_scope
save_scope_as = newly_created_artifact
}
every_in_list = {
list = dynasty_banner_list
dynasty_banner_improve_rarity_effect = yes
}
}
option = {
name = court_maintenance.0012.a
}
}
court_maintenance.0013 = {
theme = new_royal_court
type = character_event
title = court_maintenance.0013.t
desc = {
desc = court_maintenance.0013.desc
first_valid = {
triggered_desc = {
trigger = {
exists = scope:banner_scope.var:banner_commissioner
scope:banner_scope.var:banner_commissioner != root
}
desc = court_maintenance.0013.desc_creator
}
desc = court_maintenance.0013.desc_fallback
}
}
left_portrait = {
character = root
animation = personality_honorable
}
artifact = { # To display the artifact in the event-window
target = scope:banner_scope
position = lower_right_portrait
}
trigger = {
any_character_artifact = { # Has more than one dynasty banner of own dynasty
count > 1
trigger_if = { # To stop errors
limit = { exists = var:banner_dynasty }
var:banner_dynasty = root.dynasty
}
trigger_else = { always = no }
}
}
immediate = {
every_character_artifact = { # Fetch all dynasty banners
limit = {
has_variable = banner_dynasty
var:banner_dynasty = root.dynasty
}
add_to_list = dynasty_banner_list
}
ordered_in_list = { # Save oldest dynasty banner
list = dynasty_banner_list
order_by = artifact_age
save_scope_as = banner_scope
}
every_in_list = { # Destroy all but oldest dynasty banner
list = dynasty_banner_list
limit = {
this != scope:banner_scope
}
destroy_artifact = this
}
}
option = {
name = court_maintenance.0013.a
custom_tooltip = court_maintenance.0013.tt
}
}