N3OW/N3OW/common/scripted_effects/00_stewardship_lifestyle_effects.txt
2025-10-30 12:41:45 +00:00

548 lines
16 KiB
Text

#Effects used in Stewardship Lifestyle Focus events
#####################################################################
# EFFECT LIST
#####################################################################
# !!! Remember to add all new effects with a short description here !!!
#
# Mediation Event Effects:
# stewardship_duty_special_2000_sc_mediation_saved_scopes_effect - Takes scopes saved as story cycle variables and re-saves them as accessible scopes.
# stewardship_duty_special_2000_sc_mediation_increase_s1_event_count_effect - Increments the counter of how many state 1 events have fired (for tracking event completion progress)
# stewardship_duty_special_2000_sc_mediation_increase_s2_event_count_effect - Increments the counter of how many stage 2 events have fired (for tracking event completion preogress)
# stewardship_duty_special_2000_sc_mediation_get_random_quarreler_effect - Randomly picks one of the two quarrelers and saves their scope for localization usage.
#
# Map Painting Effects:
# stewardship_duty_special_1201_map_painting_journey_continuation_effect - Advances the event chain onto the next step.
# stewardship_duty_special_1201_conclude_map_painting_effect - Concludes the event chain.
#
# Road Building Effects:
# stewardship_domain_special_1301_increase_road_progress_effect - Advances the event chain onto the next step.
# stewardship_domain_special_1301_increase_road_quality_effect - Improves the final outcome of the event chain when it completes.
# stewardship_domain_special_1301_decrease_road_quality_effect - Worsens the final outcome of the event chain when it completes.
# stewardship_domain_special_1301_automatic_progress_effect - Used to automatically progress the road's construction over time, without the need to fire repetitive events.
# stewardship_domain_special_1301_road_building_event_effect - Fires a random event in the event chain.
#
# Paton Effects:
# stewardship_duty_1062_get_client_effect - If a valid $FLAG$ courtier exists in the pool, save their scope so we don't need to create a new one.
# stewardship_duty_1062_create_philosopher_effect - Creates a courtier with the philosopher $FLAG$ and appropriate skills.
# stewardship_duty_1062_create_gardener_effect - Creates a courtier with the gardener $FLAG$ and appropriate skills.
# stewardship_duty_1062_create_poet_effect - Creates a courtier with the poet $FLAG$ and appropriate skills.
# stewardship_duty_1064_extend_patronage_term_effect - Extends the patronage contract for 5 years.
# stewardship_duty_1064_remove_patrons_buff_effect - Cleans up residual effects from the patronage contract if it ends early.
#
# Domesday Book Effects:
# stewardship_domain_special_1500_apply_domesday_effects - Braching script structure to apply all correct effects at the conclusion of the event chain.
# stewardship_domain_special_1500_apply_domesday_effects_2 - Script sub-structure called within the above effect, but with differing parameters based on what happened during the event chain.
# stewardship_domain_special_1500_apply_domesday_effects_3 - Script sub-structure called within the above effect, but with differing parameters based on what happened during the event chain.
# stewardship_domain_special_1500_increase_quality_effect - Improves the final outcome of the event chain when it completes.
# stewardship_domain_special_1500_decrease_quality_effect - Worstens the final outcome of the event chain when it completes.
# stewardship_domain_special_1500_domesday_cleanup - Removes all tracking variables & flags for the event chain once it has concluded.
# sell_titles_grant_sufficient_gold_effect - gives the character sufficient gold to pay root
stewardship_duty_special_2000_sc_mediation_saved_scopes_effect = {
scope:story = {
var:vassal_1 = {
save_scope_as = vassal_1
}
var:vassal_2 = {
save_scope_as = vassal_2
}
}
}
stewardship_duty_special_2000_sc_mediation_increase_s1_event_count_effect = {
scope:story = {
change_variable = {
name = num_of_stage_1_events
add = 1
}
}
}
stewardship_duty_special_2000_sc_mediation_increase_s2_event_count_effect = {
scope:story = {
change_variable = {
name = num_of_stage_2_events
add = 1
}
}
}
stewardship_duty_special_2000_sc_mediation_get_random_quarreler_effect = {
scope:story = {
var:vassal_1 = {
add_to_temporary_list = quarrelers
}
var:vassal_2 = {
add_to_temporary_list = quarrelers
}
}
random_in_list = {
list = quarrelers
save_scope_as = quarreler
}
}
#Effects used in Lifestyle Focus events
# stewardship_duty.1200
stewardship_duty_special_1201_map_painting_journey_continuation_effect = {
hidden_effect = {
random_list = {
70 = {
trigger_event = {
on_action = map_painting_event_selection
days = { 5 15 }
}
}
30 = {
modifier = {
add = 30
exists = scope:had_1203
}
modifier = {
add = 30
exists = scope:had_1204
}
modifier = {
add = 30
exists = scope:had_1205
}
modifier = {
add = 30
exists = scope:had_1206
}
modifier = {
add = 30
exists = scope:had_1207
}
modifier = {
add = 30
exists = scope:had_1208
}
trigger_event = {
on_action = map_painting_outcome
days = { 5 15 }
}
}
}
}
custom_tooltip = stewardship_duty_special.1201.continue_tooltip
}
#Used to clear flags and variables from the map painting rank up chain (intrigue_scheming_rare.1201)
stewardship_duty_special_1201_conclude_map_painting_effect = {
hidden_effect = {
remove_character_flag = is_in_stewardship_domain_special_event
}
}
#Scripted effects for the road building event chain:
stewardship_domain_special_1301_increase_road_progress_effect = {
set_variable = {
name = governance_road_progress
value = scope:road_progress
}
change_variable = {
name = governance_road_progress
add = 1
}
save_scope_value_as = {
name = road_progress
value = var:governance_road_progress
}
}
#Decrease road progress
#Increase road quality
stewardship_domain_special_1301_increase_road_quality_effect = {
set_variable = {
name = governance_road_quality
value = scope:road_quality
}
change_variable = {
name = governance_road_quality
add = 1
}
save_scope_value_as = {
name = road_quality
value = var:governance_road_quality
}
}
#Decrease road quality
stewardship_domain_special_1301_decrease_road_quality_effect = {
set_variable = {
name = governance_road_quality
value = scope:road_quality
}
change_variable = {
name = governance_road_quality
add = -1
}
save_scope_value_as = {
name = road_quality
value = var:governance_road_quality
}
}
stewardship_domain_special_1301_automatic_progress_effect = {
hidden_effect = {
random_list = {
10 = { }
10 = {
stewardship_domain_special_1301_increase_road_progress_effect = yes
}
10 = {
stewardship_domain_special_1301_increase_road_progress_effect = yes
stewardship_domain_special_1301_increase_road_quality_effect = yes
}
1 = {
stewardship_domain_special_1301_increase_road_progress_effect = yes
stewardship_domain_special_1301_increase_road_quality_effect = yes
scope:project_leader = {
add_stewardship_skill = 1
}
}
}
}
}
stewardship_domain_special_1301_road_building_event_effect = {
hidden_effect = {
trigger_event = {
on_action = stewardship_road_building_chain
days = { 30 60 }
}
}
}
#####################
# Patronage Effects #
#####################
stewardship_duty_1062_get_client_effect = {
#If a suitable candidate was generated earlier, select them as an option.
if = {
limit = {
any_pool_character = {
province = root.capital_province
has_character_flag = $FLAG$
faith = root.faith
culture = { has_same_culture_heritage = root.culture }
age < 45
NOT = { has_character_flag = stewardship_duty_1062_already_being_considered }
}
}
random_pool_character = {
province = root.capital_province
limit = {
has_character_flag = $FLAG$
faith = root.faith
culture = { has_same_culture_heritage = root.culture }
age < 45
NOT = { has_character_flag = stewardship_duty_1062_already_being_considered }
}
add_character_flag = {
flag = stewardship_duty_1062_already_being_considered
days = 10
}
save_scope_as = $CLIENT_SCOPE$
}
}
}
stewardship_duty_1062_create_philosopher_effect = {
#Create a character with high learning to be our philosopher.
random_dummy_gender_scholar_effect = yes
create_character = {
location = root.capital_province
age = { 25 35 }
gender = scope:dummy_scholar_gender
trait = education_learning_2
trait = shrewd
faith = root.faith
culture = root.culture
learning = { 10 12 }
save_scope_as = $CLIENT_SCOPE$
}
scope:$CLIENT_SCOPE$ = {
add_character_flag = governance_1062_philosopher_flag
add_character_flag = {
flag = stewardship_duty_1062_already_being_considered
days = 10
}
}
}
stewardship_duty_1062_create_gardener_effect = {
#Create a character with decent stewardship and intelligence to be our gardener.
random_dummy_gender_servant_effect = yes
create_character = {
location = root.capital_province
age = { 25 35 }
gender = scope:dummy_servant_gender
trait = education_stewardship_1
trait = diligent
trait = patient
faith = root.faith
culture = root.culture
learning = { 8 10 }
stewardship = { 8 10 }
save_scope_as = $CLIENT_SCOPE$
}
scope:$CLIENT_SCOPE$ = {
add_character_flag = governance_1062_gardener_flag
add_character_flag = {
flag = stewardship_duty_1062_already_being_considered
days = 10
}
}
}
stewardship_duty_1062_create_poet_effect = {
#Create a character with high Diplomacy to be our poet.
random_dummy_gender_scholar_effect = yes
create_character = {
location = root.capital_province
age = { 25 35 }
gender = scope:dummy_scholar_gender
trait = education_diplomacy_2
trait = gregarious
trait = zealous
trait = lifestyle_poet
faith = root.faith
culture = root.culture
diplomacy = { 10 12 }
save_scope_as = $CLIENT_SCOPE$
}
scope:$CLIENT_SCOPE$ = {
add_character_flag = governance_1062_poet_flag
add_character_flag = {
flag = stewardship_duty_1062_already_being_considered
days = 10
}
}
}
stewardship_duty_1064_extend_patronage_term_effect = {
if = {
limit = {
$CLIENT$ = {
has_character_flag = governance_1062_gardener_flag
}
}
add_character_modifier = {
modifier = governance_1062_immaculate_gardens_modifier
years = 5
}
}
else_if = {
limit = {
$CLIENT$ = {
has_character_flag = governance_1062_poet_flag
}
}
add_character_modifier = {
modifier = governance_1062_religious_tapestries_modifier
years = 5
}
}
else_if = {
limit = {
$CLIENT$ = {
has_character_flag = governance_1062_philosopher_flag
}
}
add_character_modifier = {
modifier = governance_1062_natural_philosopher_modifier
years = 5
}
}
}
stewardship_duty_1064_remove_patrons_buff_effect = {
if = {
limit = {
$CLIENT$ = {
var:stewardship_duty_1062_employer = {
has_character_modifier = governance_1062_immaculate_gardens_modifier
}
}
}
$CLIENT$ = {
var:stewardship_duty_1062_employer = {
remove_character_modifier = governance_1062_immaculate_gardens_modifier
}
}
}
else_if = {
limit = {
$CLIENT$ = {
var:stewardship_duty_1062_employer = {
has_character_modifier = governance_1062_religious_tapestries_modifier
}
}
}
$CLIENT$ = {
var:stewardship_duty_1062_employer = {
remove_character_modifier = governance_1062_religious_tapestries_modifier
}
}
}
else_if = {
limit = {
$CLIENT$ = {
var:stewardship_duty_1062_employer = {
has_character_modifier = governance_1062_natural_philosopher_modifier
}
}
}
$CLIENT$ = {
var:stewardship_duty_1062_employer = {
remove_character_modifier = governance_1062_natural_philosopher_modifier
}
}
}
#Removes the reference to our employer now that we're no longer working for them.
$CLIENT$ = {
remove_variable = stewardship_duty_1062_employer
}
}
#########################
# Domesday Book Effects #
#########################
#The following series of effects are used to calculate the ultimate impact of the domesday event chain on all of your provinces.
#These are divided up into 3 sequential effects which will each check one possible factor to determine what that's factor's impact
#on the final outcome will be, before the effect fires off the next effect in the sequence.
#Determine which custom county localisation we should use, based on whether or not any counties have been excluded.
stewardship_domain_special_1500_apply_domesday_effects = {
#If any counties have been excluded at all, specify that they will not receive the bonus.
if = {
limit = {
any_in_list = {
list = excluded_counties
exists = this
}
}
stewardship_domain_special_1500_apply_domesday_effects_2 = {
CUSTOM_TEXT = stewardship_domain_special.1590.every_nonexcluded_county
}
}
#If no counties have been excluded from the survey, specify that all counties will receive the bonus.
else = {
stewardship_domain_special_1500_apply_domesday_effects_2 = {
CUSTOM_TEXT = stewardship_domain_special.1590.every_county
}
}
}
#Determine which modifier we will apply to our counties, based on the total quality score accumulated during the event chain.
stewardship_domain_special_1500_apply_domesday_effects_2 = {
#All non-excluded counties receive the excellent quality modifier.
if = {
limit = {
var:stewardship_domain_special_1500_domesday_quality >= stewardship_domain_special_1500_domesday_excellent_quality
}
stewardship_domain_special_1500_apply_domesday_effects_3 = {
CUSTOM_TEXT = $CUSTOM_TEXT$
DOMESDAY_ASSESSMENT = stewardship_domain_special_1500_excellent_quality_assessment
INCREASE_CONTROL = 20
}
}
#All non-excluded counties receive the high quality modifier.
else_if = {
limit = {
var:stewardship_domain_special_1500_domesday_quality >= stewardship_domain_special_1500_domesday_high_quality
}
stewardship_domain_special_1500_apply_domesday_effects_3 = {
CUSTOM_TEXT = $CUSTOM_TEXT$
DOMESDAY_ASSESSMENT = stewardship_domain_special_1500_high_quality_assessment
INCREASE_CONTROL = 15
}
}
#All non-excluded-counties receive the mediocre quality modifier.
else = {
stewardship_domain_special_1500_apply_domesday_effects_3 = {
CUSTOM_TEXT = $CUSTOM_TEXT$
DOMESDAY_ASSESSMENT = stewardship_domain_special_1500_mediocre_quality_assessment
INCREASE_CONTROL = 10
}
}
#If the quality level of the survey is poor, no counties will receive any modifier.
}
#Determine whether to use the distributed records effect or the no records effect, based on which option the player picked during the final event.
stewardship_domain_special_1500_apply_domesday_effects_3 = {
every_in_list = {
list = non_excluded_counties
custom = $CUSTOM_TEXT$
#Apply only the survey modifier to eligible counties.
change_county_control = $INCREASE_CONTROL$
add_county_modifier = {
modifier = $DOMESDAY_ASSESSMENT$
days = 1825
}
}
}
#These following two effects increase or decrease the variable which keeps track of the survey's quality.
#Taking a penalty to the quality level hurts more than gaining a bonus, so the player needs to be judicious
#when determining if what they gain from accepting a penalty is worth the trade-off.
#Increase domesday quality
stewardship_domain_special_1500_increase_quality_effect = {
change_variable = {
name = stewardship_domain_special_1500_domesday_quality
add = 1
}
custom_tooltip = stewardship_domain_special.1500.quality_increase.tt
}
#Decrease domesday quality
stewardship_domain_special_1500_decrease_quality_effect = {
change_variable = {
name = stewardship_domain_special_1500_domesday_quality
add = -2
}
custom_tooltip = stewardship_domain_special.1500.quality_decrease.tt
}
#This effect is used at the end of the Domesday event chain to clean up any remaining variables/flags.
stewardship_domain_special_1500_domesday_cleanup = {
remove_character_flag = is_in_stewardship_domain_special_event
remove_variable = stewardship_domain_special_1500_domesday_is_active
remove_variable = stewardship_domain_special_1500_domesday_assessors_protected
remove_variable = stewardship_domain_special_1500_remaining_random_events
remove_variable = stewardship_domain_special_1500_domesday_quality
remove_variable = stewardship_domain_special_1500_last_random_event
remove_variable = stewardship_domain_special_1500_domesday_is_active
}
sell_titles_grant_sufficient_gold_effect = {
hidden_effect = {
if = {
limit = {
short_term_gold < $AMOUNT$
}
add_gold = $AMOUNT$
}
}
}