N3OW/common/scripted_effects/07_dlc_ep3_scripted_effects.txt
2026-04-25 03:54:05 -04:00

14215 lines
333 KiB
Text

##################################################
# Laamps
##################################################
create_landless_adventurer_title_history_effect = {
holder ?= {
if = {
limit = {
NOT = { has_realm_law = landless_adventurer_succession_law }
}
add_realm_law = landless_adventurer_succession_law
}
}
}
create_landless_minority_title_history_effect = {
holder ?= {
if = {
limit = {
NOT = { has_realm_law = confederate_partition_succession_law }
}
add_realm_law = confederate_partition_succession_law
}
}
}
create_landless_adventurer_title_effect = {
save_scope_as = new_landless_adventurer
if = {
limit = {
exists = house
}
house = { save_scope_as = new_landless_adventurer_house }
}
if = {
limit = {
exists = location
}
location = { save_scope_as = new_landless_adventurer_location }
}
save_scope_value_as = {
name = adventurer_creation_reason
value = $REASON$
}
$FLAVOR_CHAR$ = { save_scope_as = adventurer_flavor_char }
hidden_effect = {
random_list = {
1000 = {
trigger = {
scope:warrior_youth ?= scope:new_landless_adventurer
age <= 20
exists = scope:host.house
}
create_adventurer_title = {
name = adventurer_name_youths
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_001
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
trigger = {
exists = scope:new_landless_adventurer_house
}
create_adventurer_title = {
name = adventurer_name_002
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_003
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_004
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
trigger = {
NOT = {
scope:new_landless_adventurer.culture = culture:kurdish
}
}
create_adventurer_title = {
name = adventurer_name_005
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_006
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_007
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
trigger = {
exists = scope:new_landless_adventurer_house
}
create_adventurer_title = {
name = adventurer_name_008
holder = scope:new_landless_adventurer
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_009
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
exists = scope:new_landless_adventurer_location
}
create_adventurer_title = {
name = adventurer_name_010
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
exists = scope:new_landless_adventurer_location
}
create_adventurer_title = {
name = adventurer_name_011
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
exists = scope:new_landless_adventurer_location
}
create_adventurer_title = {
name = adventurer_name_012
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > 0
}
create_adventurer_title = {
name = adventurer_name_013
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > 0
}
create_adventurer_title = {
name = adventurer_name_014
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > 0
}
create_adventurer_title = {
name = adventurer_name_015
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
OR = {
has_martial_lifestyle_trait_trigger = yes
ai_boldness >= medium_positive_ai_value
has_trait = education_martial_prowess_1
has_trait = education_martial_prowess_2
has_trait = education_martial_prowess_3
has_trait = education_martial_prowess_4
has_education_martial_trigger = yes
}
}
create_adventurer_title = {
name = adventurer_name_016
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
OR = {
has_martial_lifestyle_trait_trigger = yes
has_trait = lifestyle_blademaster
has_trait = education_martial_prowess_1
has_trait = education_martial_prowess_2
has_trait = education_martial_prowess_3
has_trait = education_martial_prowess_4
has_education_martial_trigger = yes
}
}
create_adventurer_title = {
name = adventurer_name_017
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > medium_negative_ai_value
scope:new_landless_adventurer.ai_boldness >= 0
NOT = {
scope:new_landless_adventurer = {
faith.religion = religion:west_african_bori_religion
}
}
}
create_adventurer_title = {
name = adventurer_name_018
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > medium_negative_ai_value
scope:new_landless_adventurer.ai_greed >= 0
NOT = {
scope:new_landless_adventurer = {
faith.religion = religion:west_african_bori_religion
}
}
}
create_adventurer_title = {
name = adventurer_name_019
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > medium_negative_ai_value
scope:new_landless_adventurer.ai_compassion >= 0
NOT = {
scope:new_landless_adventurer = {
faith.religion = religion:west_african_bori_religion
}
}
}
create_adventurer_title = {
name = adventurer_name_020
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
exists = scope:new_landless_adventurer_location.county
}
scope:new_landless_adventurer_location.county = {
save_scope_as = new_landless_adventurer_county
}
create_adventurer_title = {
name = adventurer_name_021
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
create_adventurer_title = {
name = adventurer_name_022
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
trigger = {
exists = scope:new_landless_adventurer_house
}
create_adventurer_title = {
name = adventurer_name_023
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
trigger = {
scope:new_landless_adventurer.ai_zeal > medium_negative_ai_value
scope:new_landless_adventurer.ai_rationality >= 0
#Many names using Allah already
NOT = {
scope:new_landless_adventurer = {
faith.religion = religion:islam_religion
}
}
}
create_adventurer_title = {
name = adventurer_name_024
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
7 = {
trigger = {
scope:new_landless_adventurer.ai_zeal < low_negative_ai_value
scope:new_landless_adventurer.ai_compassion < medium_negative_ai_value
}
create_adventurer_title = {
name = adventurer_name_025
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
10 = {
create_adventurer_title = {
name = adventurer_name_0026
holder = scope:new_landless_adventurer
save_scope_as = new_title
}
}
5 = {
trigger = {
exists = scope:new_landless_adventurer.culture
OR = {
has_martial_lifestyle_trait_trigger = yes
ai_boldness >= medium_positive_ai_value
has_trait = education_martial_prowess_1
has_trait = education_martial_prowess_2
has_trait = education_martial_prowess_3
has_trait = education_martial_prowess_4
has_education_martial_trigger = yes
}
}
create_adventurer_title = {
name = adventurer_name_0027
holder = scope:new_landless_adventurer
article = DEFAULT_TITLE_NAME_ARTICLE
save_scope_as = new_title
}
}
}
scope:new_title ?= {
create_landless_adventurer_title_history_effect = yes
set_variable = {
name = adventurer_creation_reason
value = scope:adventurer_creation_reason
}
set_variable = {
name = adventurer_flavor_char
value = scope:adventurer_flavor_char
}
}
scope:new_title = { save_scope_as = new_landless_adventurer_title }
scope:new_landless_adventurer = {
if = {
limit = {
NOT = { has_government = landless_adventurer_government }
}
change_government = landless_adventurer_government
}
if = {
limit = {
NOT = { has_realm_law = landless_adventurer_succession_law }
}
add_realm_law = landless_adventurer_succession_law
}
if = {
limit = {
has_realm_law = crown_authority_0
}
remove_realm_law = crown_authority_0
}
domicile = { change_provisions = starting_provisions_value }
}
every_player = {
limit = {
NOR = {
root ?= this
this = scope:new_landless_adventurer
}
OR = {
# Either they're important to us.
is_close_or_extended_family_of = scope:new_landless_adventurer
is_consort_of = scope:new_landless_adventurer
has_important_relationship_with_character_trigger = { CHARACTER = scope:new_landless_adventurer }
# Or they're just close enough.
AND = {
capital_province = { "squared_distance(scope:new_landless_adventurer.location)" <= squared_distance_medium }
OR = {
top_liege = root.top_liege
any_neighboring_and_across_water_top_liege_realm_owner = { this = root.top_liege }
}
}
}
}
send_interface_message = {
type = msg_landless_adventurer_nearby
title = nearby_landless_adventurer_created_message_title
left_icon = scope:new_landless_adventurer
right_icon = scope:adventurer_flavor_char
switch = {
trigger = scope:adventurer_creation_reason
flag:conquest = { custom_tooltip = nearby_landless_adventurer_created_message_conquest_tt }
flag:conquest_claim = { custom_tooltip = nearby_landless_adventurer_created_message_conquest_tt }
flag:deposition = { custom_tooltip = nearby_landless_adventurer_created_message_deposition_tt }
flag:succession = { custom_tooltip = nearby_landless_adventurer_created_message_succession_tt }
flag:exile = { custom_tooltip = nearby_landless_adventurer_created_message_exile_tt }
flag:voluntary = { custom_tooltip = nearby_landless_adventurer_created_message_voluntary_tt }
flag:revocation = { custom_tooltip = nearby_landless_adventurer_created_message_revocation_tt }
flag:runaway_allowed = { custom_tooltip = nearby_landless_adventurer_created_message_runaway_allowed_tt }
flag:runaway_forbidden = { custom_tooltip = nearby_landless_adventurer_created_message_runaway_forbidden_tt }
flag:wanderer = { custom_tooltip = nearby_landless_adventurer_created_message_wanderer_tt }
flag:eradicate = { custom_tooltip = nearby_landless_adventurer_created_message_eradicate_tt }
fallback = { custom_tooltip = nearby_landless_adventurer_created_message_fallback_tt }
}
}
}
}
custom_tooltip = laamp_become_adventurer_tt
if = {
limit = {
OR = {
scope:adventurer_creation_reason = flag:deposition
scope:adventurer_creation_reason = flag:conquest
scope:adventurer_creation_reason = flag:conquest_claim
scope:adventurer_creation_reason = flag:exile
}
NOT = { this = scope:adventurer_flavor_char }
}
add_opinion = {
target = scope:adventurer_flavor_char
modifier = demanded_eviction_opinion
}
remove_laamp_from_exiled_county_automatically_effect = {
PROVINCE = scope:new_landless_adventurer.location
LAAMP = scope:new_landless_adventurer
}
save_scope_value_as = {
name = expelled
value = yes
}
}
hidden_effect = {
if = {
limit = {
scope:new_landless_adventurer = {
is_ai = no
}
NOT = { exists = scope:expelled }
}
populate_location_with_contracts_effect = {
AREA_CHAR = scope:new_landless_adventurer
AMOUNT = 3
}
}
scope:new_landless_adventurer = {
every_councillor = {
if = {
limit = {
NOR = {
has_council_position = councillor_court_chaplain
has_council_position = councillor_spouse
}
}
scope:new_landless_adventurer = {
fire_councillor = prev
}
remove_opinion = {
modifier = fired_from_council_opinion
target = scope:new_landless_adventurer
}
}
else_if = {
limit = {
NOR = {
is_close_or_extended_family_of = scope:new_landless_adventurer
has_relation_lover = scope:new_landless_adventurer
has_relation_friend = scope:new_landless_adventurer
is_consort_of = scope:new_landless_adventurer
has_council_position = councillor_spouse
}
}
death = {
death_reason = death_vanished
}
}
}
every_courtier = {
limit = {
NOR = {
is_close_or_extended_family_of = scope:new_landless_adventurer
has_relation_lover = scope:new_landless_adventurer
has_relation_friend = scope:new_landless_adventurer
is_consort_of = scope:new_landless_adventurer
}
}
move_to_pool = yes
}
# Give us a couple of starting chars if we're almost completely bereft.
if = {
limit = {
any_courtier = { count <= 2 }
}
trigger_event = {
id = ep3_laamps.1001
weeks = { 2 6 }
}
}
}
trigger_event = { id = misc.0001 days = 1 }
local_arbitration_boon_change_purpose_effect = yes
}
add_to_global_variable_list = {
name = laamps_tally
target = scope:new_landless_adventurer.primary_title
}
set_variable = flavourise_camp_purpose_wanderers
}
create_landless_minority_title_effect = {
save_scope_as = new_landless_minority
if = {
limit = {
NOT = { exists = dynasty }
}
create_dynasty = {
spread_to_descendants = yes
}
}
if = {
limit = {
exists = house
}
house = { save_scope_as = new_landless_minority_house }
}
if = {
limit = {
exists = location
}
location = { save_scope_as = new_landless_minority_location }
}
save_scope_value_as = {
name = minority_creation_reason
value = $REASON$
}
$FLAVOR_CHAR$ = { save_scope_as = minority_flavor_char }
hidden_effect = {
create_adventurer_title = {
name = minority_name
holder = scope:new_landless_minority
article = DEFAULT_TITLE_NAME_ARTICLE
government = landless_minority_government
save_scope_as = new_title
}
scope:new_title ?= {
create_landless_minority_title_history_effect = yes
set_variable = {
name = minority_creation_reason
value = scope:minority_creation_reason
}
set_variable = {
name = minority_flavor_char
value = scope:minority_flavor_char
}
}
scope:new_title = { save_scope_as = new_landless_minority_title }
scope:new_landless_minority = {
if = {
limit = {
NOT = { has_government = landless_minority_government }
}
change_government = landless_minority_government
}
if = {
limit = {
NOT = { has_realm_law = confederate_partition_succession_law }
}
add_realm_law = confederate_partition_succession_law
}
if = {
limit = {
has_realm_law = crown_authority_0
}
remove_realm_law = crown_authority_0
}
domicile = { change_provisions = starting_provisions_value }
}
every_player = {
limit = {
NOR = {
root ?= this
this = scope:new_landless_minority
}
OR = {
# Either they're important to us.
is_close_or_extended_family_of = scope:new_landless_minority
is_consort_of = scope:new_landless_minority
has_important_relationship_with_character_trigger = { CHARACTER = scope:new_landless_minority }
# Or they're just close enough.
AND = {
capital_province = { "squared_distance(scope:new_landless_minority.location)" <= squared_distance_medium }
OR = {
top_liege = root.top_liege
any_neighboring_and_across_water_top_liege_realm_owner = { this = root.top_liege }
}
}
}
}
send_interface_message = {
type = msg_landless_minority_nearby
title = nearby_landless_minority_created_message_title
left_icon = scope:new_landless_minority
right_icon = scope:minority_flavor_char
switch = {
trigger = scope:minority_creation_reason
flag:conquest = { custom_tooltip = nearby_landless_minority_created_message_conquest_tt }
flag:conquest_claim = { custom_tooltip = nearby_landless_minority_created_message_conquest_tt }
flag:deposition = { custom_tooltip = nearby_landless_minority_created_message_deposition_tt }
flag:succession = { custom_tooltip = nearby_landless_minority_created_message_succession_tt }
flag:exile = { custom_tooltip = nearby_landless_minority_created_message_exile_tt }
flag:voluntary = { custom_tooltip = nearby_landless_minority_created_message_voluntary_tt }
flag:revocation = { custom_tooltip = nearby_landless_minority_created_message_revocation_tt }
flag:runaway_allowed = { custom_tooltip = nearby_landless_minority_created_message_runaway_allowed_tt }
flag:runaway_forbidden = { custom_tooltip = nearby_landless_minority_created_message_runaway_forbidden_tt }
flag:wanderer = { custom_tooltip = nearby_landless_minority_created_message_wanderer_tt }
flag:eradicate = { custom_tooltip = nearby_landless_minority_created_message_eradicate_tt }
fallback = { custom_tooltip = nearby_landless_minority_created_message_fallback_tt }
}
}
}
}
custom_tooltip = laamp_become_minority_tt
hidden_effect = {
if = {
limit = {
scope:new_landless_minority = {
is_ai = no
}
NOT = { exists = scope:expelled }
}
populate_location_with_contracts_effect = {
AREA_CHAR = scope:new_landless_minority
AMOUNT = 3
}
}
scope:new_landless_minority = {
every_courtier = {
limit = {
NOR = {
is_close_or_extended_family_of = scope:new_landless_minority
has_relation_lover = scope:new_landless_minority
has_relation_friend = scope:new_landless_minority
is_consort_of = scope:new_landless_minority
}
}
move_to_pool = yes
}
# Give us a couple of starting chars if we're almost completely bereft.
if = {
limit = {
is_ai = no
any_courtier = { count <= 2 }
}
trigger_event = {
id = ep3_laamps.1001
weeks = { 2 6 }
}
}
else = {
create_character = {
template = pool_repopulate_diplomacy
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = diplomacy_1
diplomacy = {
min_template_high_skill
max_template_high_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_diplomacy
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = diplomacy_2
diplomacy = {
min_template_high_skill
max_template_high_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_martial
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = martial_1
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_high_skill
max_template_high_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_martial
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = martial_2
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_high_skill
max_template_high_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_stewardship
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = stewardship_1
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_high_skill
max_template_high_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_stewardship
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = stewardship_2
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_high_skill
max_template_high_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_intrigue
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = intrigue_1
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_high_skill
max_template_high_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_intrigue
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = intrigue_2
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_high_skill
max_template_high_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_learning
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = learning_1
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_high_skill
max_template_high_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_learning
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = learning_2
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_high_skill
max_template_high_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_prowess
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = prowess_1
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_high_skill
max_template_high_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_prowess
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = prowess_2
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_high_skill
max_template_high_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_local_flavor
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = women_1
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_local_flavor
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = women_2
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
create_character = {
template = pool_repopulate_local_flavor
dynasty = none
culture = scope:new_landless_minority.culture
faith = scope:new_landless_minority.faith
location = root.location
save_scope_as = women_3
diplomacy = {
min_template_average_skill
max_template_average_skill
}
martial = {
min_template_average_skill
max_template_average_skill
}
stewardship = {
min_template_average_skill
max_template_average_skill
}
intrigue = {
min_template_average_skill
max_template_average_skill
}
learning = {
min_template_average_skill
max_template_average_skill
}
prowess = {
min_template_average_skill
max_template_average_skill
}
after_creation = { add_to_list = spawned_chars_list }
}
add_courtier = scope:women_1
add_courtier = scope:women_2
add_courtier = scope:women_3
add_courtier = scope:martial_1
add_courtier = scope:martial_2
add_courtier = scope:diplomacy_1
add_courtier = scope:diplomacy_2
add_courtier = scope:stewardship_1
add_courtier = scope:stewardship_2
add_courtier = scope:learning_1
add_courtier = scope:learning_2
add_courtier = scope:intrigue_1
add_courtier = scope:intrigue_2
add_courtier = scope:prowess_1
add_courtier = scope:prowess_2
}
}
trigger_event = { id = misc.0001 days = 1 }
local_arbitration_boon_change_purpose_effect = yes
}
add_to_global_variable_list = {
name = laamps_tally
target = scope:new_landless_minority.primary_title
}
set_variable = flavourise_camp_purpose_wanderers
}
destroy_landless_title_no_dlc_effect = {
if = {
limit = {
NOT = { has_dlc_feature = roads_to_power }
game_start_date = $DATE$
}
holder ?= {
# Clears liquid treasury whenever balance > 0
empty_treasury_when_abandoning_landed_life_effect = yes
destroy_title = prev
}
}
}
set_landless_government_effect = {
if = {
limit = {
has_dlc_feature = roads_to_power
}
change_government = landless_adventurer_government
}
}
disburse_knight_errant_decision_rewards_effect = {
add_trait = knight_errant
house = {
add_house_modifier = {
modifier = ep3_knight_of_the_swan_house_modifier
}
}
custom_tooltip = knight_errant_decision_armor_tt
if = {
limit = { has_dlc_feature = legends }
create_swan_knight_legend_seed_effect = yes
}
if = {
limit = { has_character_modifier = bandit_king_modifier }
remove_character_modifier = bandit_king_modifier
}
}
laamp_game_over_option_effect = {
add_internal_flag = dangerous
custom_tooltip = laamp_game_over_tt
if = {
limit = { exists = scope:new_landless_adventurer_title }
hidden_effect = {
destroy_title = scope:new_landless_adventurer_title
add_character_flag = { flag = declined_become_laamp days = 1 } # The flag is temporary to make the player get a game over if they had no landed heir to take over their lands
# While also making it so that if they did have an heir to take over they can later play as the old character if they somehow inherit from the heir
}
}
}
destroy_laamp_effect = {
$ADVENTURER$ = {
save_scope_as = the_adventurer
# If we weren't an adventurer before, make us one.
if = {
limit = {
NOT = { has_trait = adventurer }
}
add_trait = adventurer
}
hidden_effect = {
every_courtier = {
set_variable = {
name = former_camp_leader
value = scope:the_adventurer
}
add_trait = adventurer_follower
}
}
custom_tooltip = {
text = destroy_laamp_effect.tt.domicile_liquidated
laamp_clear_domicile_buildings_effect = yes
}
# Contacts have opinions™ about you.
## Be they good.
every_contact = {
limit = {
opinion = {
target = scope:the_adventurer
value >= 1
}
}
custom = custom.every_contact_with_positive_opinion
add_opinion = {
target = scope:the_adventurer
modifier = pleased_former_contact_opinion
opinion = 30
}
hidden_effect = {
if = {
limit = {
can_set_relation_potential_friend_trigger = { CHARACTER = scope:the_adventurer }
}
set_relation_potential_friend = scope:the_adventurer
}
}
}
## Or bad.
every_contact = {
limit = {
opinion = {
target = scope:the_adventurer
value < 1
}
}
# And neutral but _eh_.
custom = custom.every_contact_with_negative_opinion
add_opinion = {
target = scope:the_adventurer
modifier = frustrated_former_contact_opinion
opinion = -30
}
hidden_effect = {
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:the_adventurer }
}
set_relation_potential_rival = scope:the_adventurer
}
}
}
# Destroy your main title.
every_held_title = {
limit = { has_variable = adventurer_creation_reason }
save_scope_as = landless_adventurer_title
scope:the_adventurer = { destroy_title = scope:landless_adventurer_title }
}
# Ironically, we only want to use this effect if you're _not_ admin — it'll reset you nicely to the best government for you, but if you're admin, you should stay admin.
if = {
limit = {
NOR = {
government_has_flag = government_is_administrative
government_has_flag = government_is_nomadic
government_has_flag = government_is_steppe_admin
government_has_flag = government_is_wanua
government_has_flag = government_is_mandala
government_has_flag = government_is_celestial
government_has_flag = government_is_meritocratic
government_has_flag = government_is_japan_feudal
}
}
admin_government_reset_effect = yes #this only contains Clan, Tribal, Nomadic and Feudal
}
# Clean up story no-movement flags.
remove_character_flag = laamp_stay_same_kingdom
}
}
create_landless_adventurer_title_tooltip_effect = {
show_as_tooltip = {
custom_tooltip = laamp_become_adventurer_tt
if = {
limit = { exists = scope:new_landless_adventurer_title}
show_as_tooltip = { get_title = scope:new_landless_adventurer_title }
}
}
}
create_landless_minority_title_tooltip_effect = {
show_as_tooltip = {
custom_tooltip = laamp_become_minority_tt
if = {
limit = { exists = scope:new_landless_minority_title}
show_as_tooltip = { get_title = scope:new_landless_minority_title }
}
}
}
find_playable_relatives_effect = {
if = {
limit = {
any_close_family_member = { playable_relative_trigger = yes }
}
ordered_close_family_member = {
limit = { playable_relative_trigger = yes }
order_by = highest_held_title_tier
max = 3
check_range_bounds = no
if = {
limit = { exists = scope:alt_2 }
save_scope_as = alt_3
}
else_if = {
limit = { exists = scope:alt_1 }
save_scope_as = alt_2
}
else = { save_scope_as = alt_1 }
}
}
}
laamp_switch_playable_character_effect = {
set_player_character = $NEW_CHARACTER$
hidden_effect = {
if = {
limit = { exists = scope:new_landless_adventurer_title }
destroy_title = scope:new_landless_adventurer_title
}
}
}
ep3_become_landed_save_liege_effect = {
$TITLE_GIVER$ = { save_scope_as = ruler }
save_scope_value_as = {
name = override_independence_logic
value = $ALWAYS_INDEPENDENT$
}
if = {
limit = { scope:override_independence_logic = yes }
# Do nothing, we're just here to block subsequent checks.
}
else_if = {
limit = {
scope:ruler = { top_liege != this }
any_in_list = {
list = $TITLE_LIST$
tier = scope:ruler.highest_held_title_tier
}
NOT = {
any_in_list = {
list = $TITLE_LIST$
tier > scope:ruler.highest_held_title_tier
}
}
}
scope:ruler.liege = { save_scope_as = new_liege }
}
else_if = {
limit = {
NOT = {
any_in_list = {
list = $TITLE_LIST$
tier >= scope:ruler.highest_held_title_tier
}
}
}
scope:ruler = { save_scope_as = new_liege }
}
}
ep3_become_landed_transfer_effect = {
hidden_effect = {
# Liquidate camp
$TITLE_RECEIVER$ = { laamp_clear_domicile_buildings_liquidator_effect = yes }
}
$TITLE_RECEIVER$ = {
if = {
limit = { character:90028 ?= this }
custom_tooltip = ep3_story_cycle_harrying.3053.b.tt
add_character_flag = hereward_settled_flag
}
set_variable = {
name = ascended_throne_reason
value = $REASON$
weeks = 1
}
save_scope_value_as = {
name = ascended_throne_value
value = $REASON$
}
set_variable = { # Used to prevent invalid NF creation
name = laamp_invasion_flag
value = scope:target
days = 1
}
}
create_title_and_vassal_change = {
type = $TYPE$
add_claim_on_loss = yes
save_scope_as = title_change
}
scope:target.holder ?= { save_scope_as = old_holder }
if = {
limit = { NOT = { exists = scope:old_holder } }
scope:target = {
ordered_de_jure_county = {
limit = { holder.top_liege = scope:defender.top_liege }
order_by = development_level
holder = { save_scope_as = old_holder }
}
}
}
scope:supporter ?= { save_scope_as = government_giver }
if = {
limit = { NOT = { exists = scope:government_giver } }
scope:old_holder = { save_scope_as = government_giver }
}
scope:government_giver ?= {
switch = {
trigger = government_has_flag
government_is_administrative = {
save_scope_value_as = { name = old_government value = flag:admin }
}
government_is_feudal = {
save_scope_value_as = { name = old_government value = flag:feudal }
}
government_is_clan = {
save_scope_value_as = { name = old_government value = flag:clan }
}
government_is_tribal = {
save_scope_value_as = { name = old_government value = flag:tribal }
}
government_is_republic = {
if = {
limit = {
scope:government_giver ?= { ep3_is_clan_inclined_trigger = yes }
}
save_scope_value_as = { name = old_government value = flag:clan }
}
else = {
save_scope_value_as = { name = old_government value = flag:feudal }
}
}
government_is_theocracy = {
if = {
limit = {
scope:government_giver ?= { ep3_is_clan_inclined_trigger = yes }
}
save_scope_value_as = { name = old_government value = flag:clan }
}
else = {
save_scope_value_as = { name = old_government value = flag:feudal }
}
}
government_is_wanua = {
save_scope_value_as = { name = old_government value = flag:wanua }
}
government_is_nomadic = {
save_scope_value_as = { name = old_government value = flag:nomad }
}
government_is_herder = {
save_scope_value_as = { name = old_government value = flag:nomad }
}
government_is_celestial = {
save_scope_value_as = { name = old_government value = flag:celestial }
}
government_is_steppe_admin = {
save_scope_value_as = { name = old_government value = flag:steppe_admin }
}
government_is_meritocratic = {
save_scope_value_as = { name = old_government value = flag:meritocratic }
}
government_is_japan_administrative = {
save_scope_value_as = { name = old_government value = flag:japan_administrative }
}
government_is_japan_feudal = {
save_scope_value_as = { name = old_government value = flag:japan_feudal }
}
government_is_mandala = {
save_scope_value_as = { name = old_government value = flag:mandala }
}
}
}
if = {
limit = {
NOT = { exists = scope:new_capital }
}
ordered_in_list = {
list = $TITLE_LIST$
limit = { tier = tier_county }
order_by = development_level
save_scope_as = new_capital
}
}
if = {
limit = {
NOT = { exists = scope:new_capital }
}
scope:new_primary_title ?= {
ordered_de_jure_county = {
limit = { holder = scope:defender }
alternative_limit = { holder.top_liege = scope:defender.top_liege }
order_by = development_level
save_scope_as = new_capital
}
}
}
ordered_in_list = {
list = $TITLE_LIST$
order_by = tier
save_scope_as = new_primary_title
}
$TITLE_RECEIVER$ = {
if = {
limit = {
exists = scope:new_primary_title
highest_held_title_tier > scope:new_primary_title.tier
primary_title = { is_landless_type_title = no }
}
primary_title = { save_scope_as = new_primary_title }
}
else = {
scope:new_primary_title ?= {
change_title_holder_include_vassals = {
holder = $TITLE_RECEIVER$
change = scope:title_change
take_baronies = no
}
}
}
}
scope:new_primary_title ?= {
every_de_jure_county = {
limit = {
NOT = { is_in_list = $TITLE_LIST$ }
trigger_if = {
limit = { exists = scope:defender }
holder.top_liege ?= scope:defender.top_liege
}
trigger_if = {
limit = { exists = scope:new_liege }
holder.top_liege ?= scope:new_liege.top_liege
}
}
change_title_holder_include_vassals = {
holder = $TITLE_RECEIVER$
change = scope:title_change
take_baronies = no
}
}
}
every_in_list = {
list = $TITLE_LIST$
limit = {
is_leased_out = no
trigger_if = {
limit = {
NOT = { exists = var:ceremonial_title }
}
is_landless_type_title = no
}
is_head_of_faith = no
tier >= tier_county
trigger_if = {
limit = { exists = scope:defender }
holder.top_liege ?= scope:defender.top_liege
}
trigger_if = {
limit = { exists = scope:new_liege }
holder.top_liege ?= scope:new_liege.top_liege
}
NOT = { scope:new_primary_title ?= this }
}
change_title_holder_include_vassals = {
holder = $TITLE_RECEIVER$
change = scope:title_change
take_baronies = no
}
}
if = {
limit = { has_character_flag = special_laamp_char }
resolve_title_and_vassal_change = scope:title_change
# Then we resolve vassalage separately, so that we can lock in tiers.
create_title_and_vassal_change = {
type = $TYPE$
add_claim_on_loss = yes
save_scope_as = title_change
}
}
if = {
limit = {
exists = scope:new_liege
trigger_if = {
limit = { exists = scope:ascended_throne_value }
NOR = {
scope:ascended_throne_value = flag:conquest
scope:ascended_throne_value = flag:conquest_claim
}
}
}
$TITLE_RECEIVER$ = {
change_liege = {
liege = scope:new_liege
change = scope:title_change
}
}
}
else_if = {
limit = { top_liege != this }
becomes_independent = { change = scope:title_change }
}
resolve_title_and_vassal_change = scope:title_change
# Because target may be either a title or a character, we check if a scope value has been set up in advance if this is being called from the Seize Realm scheme specifically
if = {
limit = { exists = scope:old_government_type }
scope:old_government_type = { save_scope_as = old_government }
}
# Set government type
if = {
limit = { exists = scope:old_government }
# We don't expect to actually trigger most of the below, as most are not valid targets to begin with, but all are included for completeness and mod support
switch = {
trigger = scope:old_government
flag:feudal = {
change_government = feudal_government
}
flag:republic = {
change_government = republic_government
}
flag:theocracy = {
change_government = theocracy_government
}
flag:clan = {
change_government = clan_government
}
flag:tribal = {
change_government = tribal_government
}
flag:wanua = {
change_government = wanua_government
}
flag:holy_order = {
change_government = holy_order_government
}
flag:administrative = {
change_government = administrative_government
}
flag:nomad = {
#Did you demand a herder's pastureland?
if = {
limit = {
scope:new_capital.title_province = {
has_holding = yes
NOT = { has_holding_type = nomad_holding }
}
}
scope:new_capital.title_province = { set_holding_type = nomad_holding }
}
change_government = nomad_government
}
flag:herder = {
change_government = herder_government
}
flag:celestial = {
change_government = celestial_government
}
flag:mandala = {
if = {
limit = {
faith = { has_doctrine = doctrine_polytheist }
}
change_government = mandala_government
#Sort out the House shenanigans
if = {
limit = { is_house_head = no }
house = {
if = {
limit = {
house_head = {
is_landed = no
is_courtier_of = root
}
}
set_house_head = root
}
}
}
else = {
house ?= {
set_house_aspiration = { type = no_aspect }
}
}
}
else = {
if = {
limit = { ep3_is_clan_inclined_trigger = yes }
change_government = clan_government
}
else = { change_government = feudal_government }
}
}
flag:steppe_admin = {
change_government = steppe_admin_government
}
flag:meritocratic = {
change_government = meritocratic_government
}
flag:japan_feudal = {
change_government = japan_feudal_government
}
flag:japan_administrative = {
if = {
limit = {
scope:new_liege ?= { has_government = japan_administrative_government }
}
change_government = japan_administrative_government
}
else = { change_government = feudal_government }
}
}
}
# Otherwise we proceed as normal
else = {
$TITLE_RECEIVER$ = {
# Change our government according to the government of our liege.
## Nomad.
if = {
limit = {
OR = {
government_has_flag = government_is_nomadic
scope:new_liege ?= { government_has_flag = government_is_nomadic }
scope:old_government ?= flag:nomad
scope:new_capital.title_province = {
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
}
}
hidden_effect = {
every_held_title = {
limit = {
tier = tier_county
title_province = { has_holding_type = herder_holding }
}
title_province = { set_holding_type = nomad_holding }
}
}
change_government = nomad_government
}
## Soryo.
else_if = {
limit = {
OR = {
scope:new_liege ?= { government_has_flag = government_is_japan_feudal }
scope:old_government ?= flag:japan_feudal
}
}
change_government = japan_feudal_government
}
## Administrative.
else_if = {
limit = {
OR = {
scope:old_government ?= flag:admin
scope:old_government ?= flag:celestial
scope:old_government ?= flag:steppe_admin
scope:old_government ?= flag:meritocratic
scope:old_government ?= flag:japan_administrative
scope:new_liege ?= { government_allows = administrative }
}
}
change_to_administrative_effect = yes
}
## Clan.
else_if = {
limit = {
OR = {
scope:new_liege ?= { government_has_flag = government_is_clan }
scope:old_government ?= flag:clan
AND = {
ep3_is_clan_inclined_trigger = yes
top_liege = this
}
}
}
change_government = clan_government
}
## Republic.
else_if = {
limit = {
scope:new_liege ?= { government_has_flag = government_is_republic }
}
if = {
limit = {
scope:new_liege ?= { ep3_is_clan_inclined_trigger = yes }
}
change_government = clan_government
}
else = { change_government = feudal_government }
}
## Tribal.
else_if = {
limit = {
OR = {
scope:new_liege ?= { government_has_flag = government_is_tribal }
scope:old_government ?= flag:tribal
}
}
change_government = tribal_government
}
## Wanua.
else_if = {
limit = {
OR = {
scope:new_liege ?= { government_has_flag = government_is_wanua }
scope:old_government ?= flag:wanua
}
}
change_government = wanua_government
}
## Mandala.
else_if = {
limit = {
OR = {
scope:new_liege ?= { government_has_flag = government_is_mandala }
#scope:old_government ?= flag:mandala
scope:target.holder = { government_has_flag = government_is_mandala }
}
faith = { has_doctrine = doctrine_polytheist }
}
change_government = mandala_government
#Sort out the House shenanigans
hidden_effect = {
if = {
limit = { is_house_head = no }
house = {
if = {
limit = {
house_head = {
is_landed = no
is_courtier_of = $TITLE_RECEIVER$
}
}
set_house_head = $TITLE_RECEIVER$
}
}
}
else = {
house ?= {
set_house_aspiration = { type = no_aspect }
}
}
}
}
## Else feudal.
else = {
change_government = feudal_government
}
}
# Ennobled adventurer penalties
if = {
limit = { $ENNOBLED_ADVENTURER$ = flag:yes }
if = {
limit = {
calc_true_if = {
amount = 3
prestige_level <= 3
scope:new_capital.culture ?= {
NOR = {
$TITLE_RECEIVER$.culture ?= this
$TITLE_RECEIVER$.primary_spouse.culture ?= this
$TITLE_RECEIVER$.primary_heir.culture ?= this
}
}
scope:new_capital.faith != faith
}
}
custom_tooltip = ep3_ennobled_adventurer_modifier_reason_3
add_character_modifier = {
modifier = ep3_ennobled_adventurer_modifier_3
years = 30
}
custom_tooltip = ep3_ennobled_adventurer_modifier_rules
}
else_if = {
limit = {
calc_true_if = {
amount = 2
prestige_level <= 3
scope:new_capital.culture ?= {
NOR = {
$TITLE_RECEIVER$.culture ?= this
$TITLE_RECEIVER$.primary_spouse.culture ?= this
$TITLE_RECEIVER$.primary_heir.culture ?= this
}
}
scope:new_capital.faith != faith
}
}
custom_tooltip = ep3_ennobled_adventurer_modifier_reason_2
add_character_modifier = {
modifier = ep3_ennobled_adventurer_modifier_2
years = 20
}
custom_tooltip = ep3_ennobled_adventurer_modifier_rules
}
else_if = {
limit = {
calc_true_if = {
amount = 1
prestige_level <= 3
scope:new_capital.culture ?= {
NOR = {
$TITLE_RECEIVER$.culture ?= this
$TITLE_RECEIVER$.primary_spouse.culture ?= this
$TITLE_RECEIVER$.primary_heir.culture ?= this
}
}
scope:new_capital.faith != faith
}
}
custom_tooltip = ep3_ennobled_adventurer_modifier_reason_1
add_character_modifier = {
modifier = ep3_ennobled_adventurer_modifier_1
years = 10
}
custom_tooltip = ep3_ennobled_adventurer_modifier_rules
}
}
}
destroy_laamp_effect = { ADVENTURER = $TITLE_RECEIVER$ }
# Setup NF if valid
if = {
limit = { government_allows = noble_families }
give_new_noble_family_title_effect = yes
}
}
ep3_become_landed_cleanup_effect = {
if = {
limit = {
exists = scope:supporter
highest_held_title_tier < scope:supporter.highest_held_title_tier
}
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
add_claim_on_loss = no
}
change_liege = {
liege = scope:supporter
change = scope:change
}
resolve_title_and_vassal_change = scope:change
# Message for nearby rulers
create_landed_ruler_message_effect = {
LANDED = scope:attacker
FLAVOR_CHAR = scope:supporter
FLAVOR_TITLE = scope:attacker.primary_title
REASON = flag:conquest_support
}
}
else = {
if = {
limit = {
top_liege != this
NOT = { exists = scope:new_liege }
}
create_title_and_vassal_change = {
type = conquest
save_scope_as = change
add_claim_on_loss = no
}
becomes_independent = { change = scope:change }
resolve_title_and_vassal_change = scope:change
}
# Message for nearby rulers
create_landed_ruler_message_effect = {
LANDED = scope:attacker
FLAVOR_CHAR = scope:defender
FLAVOR_TITLE = scope:attacker.primary_title
REASON = flag:conquest
}
}
}
ep3_become_landed_warning_effect = {
$TITLE$ = { save_scope_as = title }
$TITLE_RECEIVER$ = { custom_tooltip = seize_realm_warning }
}
purchase_land_interaction_effect = {
# scope:actor = adventurer
# scope:recipient = seller
# purchased_titles = titles
hidden_effect = {
scope:actor = {
if = {
limit = { character:90028 ?= this }
add_character_flag = hereward_settled_flag
}
if = {
limit = {
NOT = { has_trait = adventurer }
}
add_trait = adventurer
}
every_courtier = {
set_variable = {
name = former_camp_leader
value = scope:actor
}
add_trait = adventurer_follower
}
}
}
# Determine hierarchy
ep3_become_landed_save_liege_effect = {
TITLE_GIVER = scope:recipient
ALWAYS_INDEPENDENT = no
TITLE_LIST = purchased_titles
}
# Purchase land specific
scope:actor = {
show_as_tooltip = {
pay_short_term_gold = {
gold = scope:purchase_land_cost
target = scope:recipient
}
}
}
# Resolve title, liege, government changes
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = scope:actor
TITLE_LIST = purchased_titles
TYPE = granted
REASON = flag:purchased
ENNOBLED_ADVENTURER = flag:yes
}
# Extra purchase land specific
scope:actor = {
stress_impact = {
greedy = minor_stress_impact_gain
lazy = minor_stress_impact_loss
}
}
# Effects on land giver
scope:recipient = { add_legitimacy = scope:purchase_land_legitimacy_cost }
# Messages for nearby players
create_landed_ruler_message_effect = {
LANDED = scope:actor
FLAVOR_CHAR = scope:recipient
FLAVOR_TITLE = scope:target
REASON = flag:purchased
}
# Hook
if = {
limit = { scope:offer_hook = yes }
scope:recipient = {
add_hook = {
type = obligation_hook
target = scope:actor
}
}
}
#Handle the government types
if = {
limit = {
scope:recipient = { government_has_flag = government_is_mandala }
#... we're lenient
faith = { has_doctrine = doctrine_polytheist }
}
#Sort out the House shenanigans
hidden_effect = {
if = {
limit = { is_house_head = no }
house ?= {
if = {
limit = {
house_head = {
is_landed = no
is_courtier_of = root
}
}
set_house_head = root
}
}
}
else = {
house ?= {
if = {
limit = {
NOT = { has_house_aspiration_parameter = no_aspect }
}
set_house_aspiration = { type = no_aspect }
}
}
}
}
}
}
purchase_land_interaction_shortened_effect = {
scope:actor = {
if = {
limit = { character:90028 ?= this }
custom_tooltip = ep3_story_cycle_harrying.3053.b.tt
add_character_flag = hereward_settled_flag
}
show_as_tooltip = {
pay_short_term_gold = {
gold = scope:purchase_land_cost
target = scope:recipient
}
}
hidden_effect = {
scope:recipient = { add_gold = scope:purchase_land_cost }
}
}
scope:actor = {
stress_impact = {
humble = minor_stress_impact_gain
lazy = minor_stress_impact_loss
}
if = {
limit = {
scope:target.tier = tier_duchy
}
custom_tooltip = purchase_land_interaction_shortened_effect_duchy_desc
}
else = {
custom_tooltip = purchase_land_interaction_shortened_effect_county_desc
}
if = {
limit = {
scope:target.tier = tier_duchy
}
scope:target.title_capital_county = {
save_scope_as = new_primary_title
}
}
else = {
scope:target = {
save_scope_as = new_primary_title
}
}
if = {
limit = {
calc_true_if = {
amount = 3
prestige_level <= 3
OR = {
scope:new_primary_title.culture != culture
primary_spouse ?= {
culture != scope:new_primary_title.culture
}
primary_heir ?= {
culture != scope:new_primary_title.culture
}
}
scope:new_primary_title.faith != faith
}
}
custom_tooltip = ep3_ennobled_adventurer_modifier_reason_3
add_character_modifier = {
modifier = ep3_ennobled_adventurer_modifier_3
years = 30
}
custom_tooltip = ep3_ennobled_adventurer_modifier_rules
}
else_if = {
limit = {
calc_true_if = {
amount = 2
prestige_level <= 3
OR = {
scope:new_primary_title.culture != culture
primary_spouse ?= {
culture != scope:new_primary_title.culture
}
primary_heir ?= {
culture != scope:new_primary_title.culture
}
}
scope:new_primary_title.faith != faith
}
}
custom_tooltip = ep3_ennobled_adventurer_modifier_reason_2
add_character_modifier = {
modifier = ep3_ennobled_adventurer_modifier_2
years = 20
}
custom_tooltip = ep3_ennobled_adventurer_modifier_rules
}
else_if = {
limit = {
calc_true_if = {
amount = 1
prestige_level <= 3
OR = {
scope:new_primary_title.culture != culture
primary_spouse ?= {
culture != scope:new_primary_title.culture
}
primary_heir ?= {
culture != scope:new_primary_title.culture
}
}
scope:new_primary_title.faith != faith
}
}
custom_tooltip = ep3_ennobled_adventurer_modifier_reason_1
add_character_modifier = {
modifier = ep3_ennobled_adventurer_modifier_1
years = 10
}
custom_tooltip = ep3_ennobled_adventurer_modifier_rules
}
}
}
procure_estate_interaction_effect = {
if = {
limit = { scope:piety_option = yes }
if = {
limit = { faith != scope:recipient.faith }
set_character_faith = scope:recipient.faith
add_character_flag = {
flag = procure_estate_conversion
months = 1
}
}
scope:recipient = {
add_piety = {
value = procure_estate_interaction_cost_base_piety
multiply = 0.5
}
}
}
else_if = {
limit = { scope:gold_option = yes }
show_as_tooltip = {
pay_short_term_gold = {
target = scope:recipient
gold = procure_estate_interaction_cost_base_gold
}
}
hidden_effect = {
scope:recipient = { add_gold = procure_estate_interaction_cost_base_gold }
}
}
else_if = {
limit = { scope:hook = yes }
scope:recipient = {
add_hook = {
target = scope:actor
type = favor_hook
}
}
}
else = {
scope:recipient = {
add_prestige = {
value = procure_estate_interaction_cost_base_prestige
multiply = 0.25
}
}
}
scope:recipient = { change_influence = medium_influence_loss }
#Scope:actor becomes ladmin
scope:actor = {
hidden_effect = {
# Liquidate camp
laamp_clear_domicile_buildings_liquidator_effect = yes
}
if = {
limit = {
scope:actor.house ?= {
any_house_member = {
any_held_title = { is_noble_family_title = yes }
top_liege = scope:recipient.top_liege
}
}
}
found_cadet_house_decision_effect = {
CHARACTER = scope:actor
PRESTIGE = major_prestige_gain
}
}
# Note our courtiers so that they don't escape.
every_courtier = { add_to_list = courtiers_list }
# Change liege
destroy_laamp_effect = { ADVENTURER = scope:actor }
hidden_effect = {
scope:recipient.top_liege = {
add_courtier = scope:actor
return_to_court = yes
}
}
create_noble_family_effect = { GOVERNMENT_GIVER = scope:recipient }
hidden_effect = {
# Return any escaped courtiers.
every_in_list = {
list = courtiers_list
limit = {
NOT = { liege_or_court_owner = scope:actor }
}
scope:actor = { add_courtier = prev }
}
# And boot any new autogenned arrivals.
every_courtier = {
limit = {
is_lowborn = yes
NOR = {
is_in_list = courtiers_list
is_close_or_extended_family_of = scope:actor
is_consort_of = scope:actor
has_important_relationship_trigger = { CHARACTER = scope:actor }
}
}
silent_disappearance_effect = yes
}
}
create_title_and_vassal_change = {
type = swear_fealty
add_claim_on_loss = no
save_scope_as = title_change
}
change_liege = {
liege = scope:recipient.top_liege
change = scope:title_change
}
resolve_title_and_vassal_change = scope:title_change
hidden_effect = {
domicile ?= {
if = {
limit = {
NOT = { domicile_location = scope:recipient.capital_province }
}
move_domicile = scope:recipient.capital_province
}
}
}
add_character_modifier = {
modifier = ep3_administrative_outsider_modifier
years = 15
}
}
scope:recipient.top_liege = {
if = {
limit = {
is_ai = no
}
send_interface_message = {
type = msg_landless_adventurer_nearby
title = procure_estate_message_title
left_icon = scope:actor
right_icon = scope:recipient
custom_tooltip = procure_estate_message_tt
}
}
every_vassal_or_below = {
limit = {
is_ai = no
NOT = { this = scope:actor }
}
send_interface_message = {
type = msg_landless_adventurer_nearby
title = procure_estate_message_title
left_icon = scope:actor
right_icon = scope:recipient
custom_tooltip = procure_estate_message_tt
}
}
}
}
negotiate_settlement_interaction_effect = {
# scope:actor = offerer
# scope:recipient = adventurer
# offered_titles = titles
hidden_effect = {
scope:recipient = {
if = {
limit = {
NOT = { has_trait = adventurer }
}
add_trait = adventurer
}
every_courtier = {
set_variable = {
name = former_camp_leader
value = scope:recipient
}
add_trait = adventurer_follower
}
}
}
# Determine hierarchy
ep3_become_landed_save_liege_effect = {
TITLE_GIVER = scope:actor
ALWAYS_INDEPENDENT = no
TITLE_LIST = offered_titles
}
# Negotiate settlement specific
scope:recipient = {
# End relevant wars
every_character_war = {
limit = {
OR = {
primary_attacker = scope:recipient
primary_defender = scope:recipient
}
}
end_war = white_peace
}
# Remove from relevant wars
every_character_war = {
limit = {
NOR = {
primary_attacker = scope:recipient
primary_defender = scope:recipient
}
any_war_defender = {
OR = {
this = scope:actor
this.top_liege = scope:actor.top_liege
}
}
}
remove_participant = scope:recipient
}
}
# Resolve title, liege, government changes
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = scope:recipient
TITLE_LIST = offered_titles
TYPE = granted
REASON = flag:negotiated
ENNOBLED_ADVENTURER = flag:yes
}
# Effects on land giver
scope:actor = {
add_legitimacy = scope:negotiate_settlement_legitimacy_cost
stress_impact = {
greedy = minor_stress_impact_gain
vengeful = minor_stress_impact_gain
}
}
# Messages for nearby players
create_landed_ruler_message_effect = {
LANDED = scope:recipient
FLAVOR_CHAR = scope:actor
FLAVOR_TITLE = scope:new_primary_title
REASON = flag:negotiated
}
# And, just in case it's failed, make sure that we've vassalised our new friend.
hidden_effect = {
if = {
limit = {
scope:recipient = {
highest_held_title_tier < scope:actor.highest_held_title_tier
top_liege = this
}
}
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
}
scope:recipient = {
change_liege = {
liege = scope:actor
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
}
}
}
create_landed_ruler_message_effect = {
hidden_effect = {
$LANDED$ = { save_scope_as = landed }
$FLAVOR_CHAR$ = { save_scope_as = landed_flavor_char }
$FLAVOR_TITLE$ = { save_scope_as = landed_flavor_title }
save_scope_value_as = {
name = landed_creation_reason
value = $REASON$
}
every_player = {
limit = {
NOR = {
this = scope:landed
this = scope:landed_flavor_char
}
top_liege = scope:landed.top_liege
}
send_interface_message = {
type = msg_landless_adventurer_nearby
title = nearby_landed_ruler_created_message_title
left_icon = scope:landed
right_icon = scope:landed_flavor_char
switch = {
trigger = scope:landed_creation_reason
flag:purchased = { custom_tooltip = nearby_landed_ruler_created_message_purchased_tt }
flag:negotiated = { custom_tooltip = nearby_landed_ruler_created_message_negotiated_tt }
flag:seized_pastureland = { custom_tooltip = nearby_landed_ruler_created_message_seized_pastureland_tt }
flag:conquest_supporter = { custom_tooltip = nearby_landed_ruler_created_message_conquest_support_tt }
flag:conquest = { custom_tooltip = nearby_landed_ruler_created_message_conquest_tt }
flag:seize_realm = { custom_tooltip = nearby_landed_ruler_created_message_seize_realm_tt }
flag:culture_champion = { custom_tooltip = nearby_landed_ruler_created_message_culture_champion_tt }
fallback = { custom_tooltip = nearby_landed_ruler_created_message_fallback_tt }
}
}
}
}
}
conquest_supporter_memory_variable_effect = {
set_variable = {
name = ascended_throne_reason
value = flag:conquest_supporter
weeks = 1
}
set_variable = {
name = ascended_throne_extra
value = scope:supporter
weeks = 1
}
}
ep3_laamp_supporter_invalidated_effect = {
if = {
limit = { exists = var:adventurer_invasion_supporter }
save_scope_as = adventurer
var:adventurer_invasion_supporter ?= { save_scope_as = supporter }
var:adventurer_invasion_target ?= { save_scope_as = war_target }
}
else_if = {
limit = { exists = var:adventurer_invasion_supportee }
var:adventurer_invasion_supportee ?= { save_scope_as = adventurer }
var:adventurer_invasion_target ?= { save_scope_as = target }
save_scope_as = supporter
}
if = {
limit = {
exists = scope:adventurer
exists = scope:supporter
exists = scope:war_target
}
scope:adventurer ?= {
send_interface_message = {
type = event_landless_adventurer_neutral
title = ep3_laamp_sponsor_invalidated_title
left_icon = scope:supporter
right_icon = scope:war_target
remove_variable = adventurer_invasion_supporter
remove_variable = adventurer_invasion_target
custom_tooltip = ep3_laamp_sponsor_invalidated_adventurer
}
}
scope:supporter ?= {
send_interface_message = {
type = event_landless_adventurer_neutral
title = ep3_laamp_sponsor_invalidated_title
left_icon = scope:attacker
right_icon = scope:war_target
remove_variable = adventurer_invasion_supportee
remove_variable = adventurer_invasion_target
custom_tooltip = ep3_laamp_sponsor_invalidated_supporter
if = {
limit = { exists = var:adventurer_invasion_join_war }
set_variable = {
name = adventurer_invasion_join_war
value = scope:actor
years = 5
}
}
if = {
limit = { exists = var:adventurer_invasion_request_soldiers }
set_variable = {
name = adventurer_invasion_request_soldiers
value = scope:actor
years = 5
}
}
}
}
}
}
ep3_laamp_support_variable_cleanup_effect = {
if = {
limit = { exists = var:adventurer_invasion_supporter }
save_scope_as = adventurer
var:adventurer_invasion_supporter ?= { save_scope_as = supporter }
var:adventurer_invasion_target ?= { save_scope_as = war_target }
}
else_if = {
limit = { exists = var:adventurer_invasion_supportee }
var:adventurer_invasion_supportee ?= { save_scope_as = adventurer }
var:adventurer_invasion_target ?= { save_scope_as = war_target }
save_scope_as = supporter
}
scope:adventurer ?= {
remove_variable = adventurer_invasion_supporter
remove_variable = adventurer_invasion_target
}
scope:supporter ?= {
remove_variable = adventurer_invasion_supportee
remove_variable = adventurer_invasion_target
}
}
seize_realm_scheme_success_effect = {
# scope:target = ruler
# scope:owner = adventurer
hidden_effect = {
scope:owner = {
if = {
limit = {
NOT = { has_trait = adventurer }
}
add_trait = adventurer
}
every_courtier = {
set_variable = {
name = former_camp_leader
value = scope:owner
}
add_trait = adventurer_follower
}
}
}
scope:target = {
save_scope_as = background_dungeon_scope
save_scope_as = background_courtyard_scope
save_scope_as = background_throne_room_scope
every_held_title = {
limit = {
is_leased_out = no
is_landless_type_title = no
is_head_of_faith = no
}
add_to_list = seized_titles
}
ordered_in_list = {
list = seized_titles
order_by = tier
save_scope_as = realm_title
}
}
# Determine independent vassals
adventurer_realm_destabilisation_list_effect = {
TITLE_GIVER = scope:target
TITLE_RECEIVER = scope:owner
TITLE = scope:target.primary_title
}
# Determine hierarchy
ep3_become_landed_save_liege_effect = {
TITLE_GIVER = scope:target
ALWAYS_INDEPENDENT = no
TITLE_LIST = seized_titles
}
# Resolve title, liege, government changes
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = scope:owner
TITLE_LIST = seized_titles
TYPE = usurped
REASON = flag:seize_realm
ENNOBLED_ADVENTURER = flag:yes
}
# Old ruler's fate
if = {
limit = { exists = scope:death }
scope:target = {
death = { death_reason = death_fight }
}
}
else_if = {
limit = { exists = scope:imprison }
scope:target = { add_character_flag = was_abducted_block_notification_event }
rightfully_imprison_character_less_verbose_effect = {
TARGET = scope:target
IMPRISONER = scope:owner
}
}
add_clan_unity_interaction_effect = {
CHARACTER = scope:owner
TARGET = scope:target
VALUE = medium_unity_loss
DESC = clan_unity_seize_realm_attempted.desc
REVERSE_NON_HOUSE_TARGET = no
}
successful_seize_realm_opinion_effect = {
VICTIM = scope:target
PLOTTER = scope:owner
}
# Vassals break away
adventurer_realm_destabilisation_transfer_effect = {
TITLE_RECEIVER = scope:owner
TITLE_GIVER = scope:target
TITLE = scope:realm_title
TITLE_LIST = seized_titles
}
# Messages for nearby players
create_landed_ruler_message_effect = {
LANDED = scope:owner
FLAVOR_CHAR = scope:target
FLAVOR_TITLE = scope:realm_title
REASON = flag:seize_realm
}
scope:owner = {
create_character_memory = {
type = seized_realm_memory
participants = { deposed = scope:target }
}
ordered_memory = {
memory_type = seized_realm_memory
order_by = memory_creation_date
if = {
limit = {
NOT = { exists = var:realm }
}
set_variable = {
name = realm
value = scope:realm_title
}
}
}
}
scope:target = {
create_character_memory = {
type = realm_seized_memory
participants = { deposer = scope:owner }
}
ordered_memory = {
memory_type = realm_seized_memory
order_by = memory_creation_date
if = {
limit = {
NOT = { exists = var:realm }
}
set_variable = {
name = realm
value = scope:realm_title
}
}
}
}
}
seize_realm_scheme_failure_effect = {
scope:scheme = { end_scheme = yes }
#Add Watchful Modifier to the target
scope:target = {
save_scope_as = background_dungeon_scope
save_scope_as = background_courtyard_scope
save_scope_as = background_throne_room_scope
ordered_held_title = {
limit = {
is_leased_out = no
is_landless_type_title = no
is_head_of_faith = no
}
order_by = tier
save_scope_as = realm_title
}
show_as_tooltip = {
add_character_modifier = {
modifier = watchful_modifier
days = watchful_modifier_duration
}
}
}
# Old ruler's fate
if = {
limit = { exists = scope:death }
scope:owner = {
death = { death_reason = death_fight }
}
}
else = {
scope:owner = {
create_character_memory = {
type = seized_realm_failed_memory
participants = { deposed = scope:target }
}
ordered_memory = {
memory_type = seized_realm_failed_memory
order_by = memory_creation_date
if = {
limit = {
NOT = { exists = var:realm }
}
set_variable = {
name = realm
value = scope:realm_title
}
}
}
}
if = {
limit = { exists = scope:imprison }
scope:owner = { add_character_flag = was_abducted_block_notification_event }
rightfully_imprison_character_less_verbose_effect = {
TARGET = scope:owner
IMPRISONER = scope:target
}
hidden_effect = { change_prison_type = dungeon }
}
}
attempted_seize_realm_opinion_effect = {
VICTIM = scope:target
PLOTTER = scope:owner
}
# If we're a clan this affects unity
add_clan_unity_interaction_effect = {
CHARACTER = scope:owner
TARGET = scope:target
VALUE = medium_unity_loss
DESC = clan_unity_seize_realm_attempted.desc
REVERSE_NON_HOUSE_TARGET = no
}
scope:target = {
create_character_memory = {
type = realm_seized_failed_memory
participants = { deposer = scope:owner }
}
ordered_memory = {
memory_type = realm_seized_failed_memory
order_by = memory_creation_date
if = {
limit = {
NOT = { exists = var:realm }
}
set_variable = {
name = realm
value = scope:realm_title
}
}
}
}
}
successful_seize_realm_opinion_effect = {
$VICTIM$ = {
if = {
limit = { is_alive = yes }
add_opinion = {
target = $PLOTTER$
modifier = seized_my_realm_crime
}
set_relation_rival = {
target = scope:owner
reason = rival_seized_realm_reason
}
}
every_spouse = {
limit = {
NOR = {
this = $PLOTTER$
is_spouse_of = $PLOTTER$
is_close_family_of = $PLOTTER$
}
}
add_to_temporary_list = close_family_seize_realm_opinion_list
}
every_close_family_member = {
limit = {
NOR = {
this = $PLOTTER$
is_spouse_of = $PLOTTER$
is_close_family_of = $PLOTTER$
}
}
add_to_temporary_list = close_family_seize_realm_opinion_list
}
every_in_list = {
list = close_family_seize_realm_opinion_list
custom = all_close_family_and_spouses
add_opinion = {
target = $PLOTTER$
modifier = seized_close_family_realm_crime
}
}
}
}
attempted_seize_realm_opinion_effect = {
$VICTIM$ = {
if = {
limit = { is_alive = yes }
add_opinion = {
target = $PLOTTER$
modifier = attempted_to_seize_my_realm_crime
}
}
every_spouse = {
limit = { NOT = { this = $PLOTTER$ } }
add_to_temporary_list = close_family_seize_realm_opinion_list
}
every_close_family_member = {
limit = { NOT = { this = $PLOTTER$ } }
add_to_temporary_list = close_family_seize_realm_opinion_list
}
if = {
limit = {
any_in_list = { list = close_family_seize_realm_opinion_list }
}
every_in_list = {
list = close_family_seize_realm_opinion_list
custom = all_close_family_and_spouses
add_opinion = {
target = $PLOTTER$
modifier = attempted_to_seize_realm_close_family_crime
}
}
}
}
}
adventurer_realm_destabilisation_list_effect = {
$TITLE_RECEIVER$ = { save_scope_as = adventurer }
$TITLE$ = { save_scope_as = title }
$TITLE_GIVER$ = {
save_scope_as = ruler
# Determine vassal sentiment - calculated before ruler change
hidden_effect = {
every_vassal = {
limit = {
highest_held_title_tier >= tier_county
save_temporary_scope_as = vassal_temp
# Only vassals who will not *still* be de jure vassals of the title loser via other titles
trigger_if = {
limit = {
$TITLE_GIVER$ = {
any_held_title = {
tier >= scope:title.tier
this != scope:title
}
}
}
any_held_title = {
target_is_de_jure_liege_or_above = scope:title
}
}
trigger_if = {
limit = {
government_allows = administrative
}
scope:title = {
OR = {
AND = {
scope:ruler.primary_title.tier = tier_kingdom
tier < tier_kingdom
}
tier < tier_empire
}
}
}
}
# Calculate how likely are they to not become your vassal
random = {
chance = 0
### FAITH/CULTURE
modifier = { # Cultural acceptance differences
add = {
value = "culture.cultural_acceptance(scope:adventurer.culture)"
subtract = 100
abs = yes
divide = 5
}
culture = {
this != scope:adventurer.culture
cultural_acceptance = {
target = scope:adventurer.culture
value < 50
}
OR = {
this = scope:ruler.culture
"cultural_acceptance(scope:ruler.culture)" > "cultural_acceptance(scope:adventurer.culture)"
}
}
}
modifier = { # Zealous of other faiths more likely
add = {
value = ai_zeal
multiply = 0.15
multiply = "scope:vassal_temp.faith.faith_hostility_level(scope:adventurer.faith)"
max = 25
}
ai_zeal > low_positive_zeal
faith = {
this != scope:adventurer.faith
"faith_hostility_level(scope:adventurer.faith)" > 0
}
}
modifier = { # Theocatic Vassals of different faith more likely
factor = 2
has_government = theocracy_government
faith != scope:adventurer.faith
}
### DISTANCE
modifier = { # Distant vassals more likely
add = {
value = 0
add = scope:distance
if = {
limit = { scope:distance >= squared_distance_medium }
add = scope:distance
multiply = 0.0001
}
max = 25
}
"capital_county.squared_distance(scope:ruler.capital_county)" >= squared_distance_medium
capital_county = {
save_temporary_scope_value_as = {
name = distance
value = "squared_distance(scope:ruler.capital_county)"
}
}
}
### PERSONALITY
ai_value_modifier = {
ai_boldness = 0.15
ai_energy = 0.15
ai_greed = 0.15
ai_honor = -0.15
}
### OPINION
opinion_modifier = { # More likely if dislikes adventurer
opinion_target = scope:adventurer
multiplier = -0.25
}
opinion_modifier = { # More likely if liked old ruler
opinion_target = scope:ruler
multiplier = 0.1
}
### STRENGTH
modifier = { # Small vassals less likely
add = -15
tier_difference = {
target = scope:ruler
value <= -2
}
}
modifier = {
add = -25
realm_size < tiny_realm_size
}
modifier = { # Powerful vassals more likely
factor = 1.25
is_powerful_vassal = yes
}
modifier = { # Powerful vassals more likely
add = {
value = highest_held_title_tier
multiply = 5
}
}
### RELEVANCE
modifier = { # Fringe vassals more likely
factor = 1.25
any_sub_realm_county = {
any_neighboring_county = { holder.top_liege != scope:ruler }
}
}
modifier = { # Core vassals less likely
factor = 0.75
scope:ruler.capital_county.kingdom = {
any_de_jure_county = { this = scope:vassal_temp.capital_county }
}
}
### FAMILY
modifier = { # Relatives of deposed more likely
factor = 1.1
is_close_family_of = scope:ruler
NOT = { is_close_family_of = scope:adventurer }
}
modifier = { # Dynasts of deposed more likely
factor = 1.1
dynasty ?= {
this = scope:ruler.dynasty
this != scope:adventurer.dynasty
}
}
modifier = { # Relatives of adventurer less likely
factor = 0.75
is_close_family_of = scope:adventurer
NOT = { is_close_family_of = scope:ruler }
}
modifier = { # Dynasts of adventurer less likely
factor = 0.75
dynasty ?= {
this = scope:adventurer.dynasty
this != scope:ruler.dynasty
}
}
### HOOKS
modifier = {
factor = 0
scope:adventurer = { has_hook = scope:vassal_temp }
}
modifier = {
factor = 2
scope:ruler = { has_hook = scope:vassal_temp }
}
### TIER
modifier = {
factor = 1.5
scope:ruler.primary_title.tier = tier_empire
}
modifier = {
factor = 1.25
scope:ruler.primary_title.tier = tier_kingdom
}
max = 95
add_to_list = independent_vassals
}
}
# Save heirs for claimant wars
scope:title = {
every_title_heir = {
limit = {
save_temporary_scope_as = heir_temp
scope:title = {
place_in_line_of_succession = {
target = scope:heir_temp
value <= 5
}
}
}
add_to_list = heirs
}
}
}
}
}
adventurer_realm_destabilisation_civil_war_effect = {
$TITLE_GIVER$ = { save_scope_as = ruler }
$TITLE_RECEIVER$ = { save_scope_as = adventurer }
$TITLE$ = { save_scope_as = title }
if = {
limit = {
any_in_list = { list = independent_vassals }
}
scope:ruler = {
if = {
limit = { is_alive = yes }
save_scope_as = claimant
}
else_if = {
limit = {
any_in_list = { list = heirs }
}
random_in_list = {
list = heirs
limit = { has_strong_claim_on = scope:realm }
alternative_limit = { has_weak_claim_on = scope:realm }
weight = {
base = 1
modifier = { add = age }
}
save_scope_as = claimant
}
}
else_if = {
limit = {
scope:title = {
any_claimant = {
this != scope:adventurer
}
}
}
scope:title = {
random_claimant = {
limit = { has_strong_claim_on = scope:realm }
alternative_limit = { has_weak_claim_on = scope:realm }
weight = {
base = 1
modifier = { add = age }
}
save_scope_as = claimant
}
}
}
else = {
ordered_in_list = {
list = independent_vassals
order_by = max_military_strength
save_scope_as = claimant
}
}
}
# Vassals Breakaway
ordered_in_list = {
list = independent_vassals
limit = {
can_create_faction = {
type = claimant_faction
target = scope:adventurer
}
}
order_by = max_military_strength
save_scope_as = revolt_leader
create_faction = {
type = claimant_faction
target = scope:adventurer
}
joined_faction = {
save_scope_as = faction
set_special_character = scope:claimant
set_special_title = scope:realm
}
}
every_in_list = {
list = independent_vassals
limit = {
this != scope:revolt_leader
can_join_faction = scope:faction
}
join_faction = scope:faction
}
scope:faction = {
faction_start_war = { title = scope:realm }
}
}
}
adventurer_realm_destabilisation_transfer_effect = {
$TITLE_RECEIVER$ = { save_scope_as = adventurer }
$TITLE_GIVER$ = { save_scope_as = ruler }
$TITLE$ = { save_scope_as = title }
if = {
limit = {
any_in_list = { list = independent_vassals }
}
# Vassals Breakaway
create_title_and_vassal_change = {
type = independency
add_claim_on_loss = yes
save_scope_as = change
}
hidden_effect = {
every_in_list = {
list = independent_vassals
save_temporary_scope_as = vassal_temp
if = {
limit = {
scope:adventurer = { top_liege = this }
scope:ruler = {
NOT = {
any_held_title = {
this != scope:title
any_in_de_jure_hierarchy = { this = scope:vassal_temp.primary_title }
}
}
}
}
becomes_independent = { change = scope:change }
}
else_if = {
limit = {
scope:ruler = {
NOT = {
any_held_title = {
this != scope:title
any_in_de_jure_hierarchy = { this = scope:vassal_temp.primary_title }
}
}
}
}
change_liege = {
liege = scope:adventurer.liege
change = scope:change
}
}
add_opinion = {
modifier = seized_lieges_realm_crime
target = scope:adventurer
}
}
}
resolve_title_and_vassal_change = scope:change
}
create_title_and_vassal_change = {
type = conquest
add_claim_on_loss = yes
save_scope_as = change
}
hidden_effect = {
every_in_list = {
list = $TITLE_LIST$
limit = { tier >= tier_county }
custom_tooltip = CONQUEST_CB_TITLE
every_in_de_jure_hierarchy = {
continue = { tier >= tier_duchy }
limit = {
tier >= tier_county
holder ?= {
OR = {
this = scope:ruler
target_is_liege_or_above = scope:ruler
}
}
}
save_temporary_scope_as = title_temp
if = {
limit = {
holder != scope:adventurer
OR = {
holder = scope:ruler
holder.highest_held_title_tier >= scope:title.tier
scope:adventurer = { has_claim_on = scope:title_temp }
}
}
add_to_temporary_list = titles_taken
}
else = {
holder = {
if = {
limit = {
liege = scope:ruler
NOT = { is_in_list = independent_vassals }
}
add_to_temporary_list = vassals_taken
}
}
}
}
}
}
hidden_effect = {
every_in_list = {
list = vassals_taken
change_liege = {
liege = scope:adventurer
change = scope:change
}
}
}
resolve_title_and_vassal_change = scope:change
}
player_adventurer_contract_generation_on_domicile_moved_effect = {
if = {
limit = { player_adventurer_sufficient_distance_for_contract_spawn_trigger = yes }
save_temporary_scope_as = char_temp
if = { # Explorers
limit = { has_realm_law = camp_purpose_explorers }
populate_task_contracts_for_area = {
location = scope:char_temp.location
amount = 1
group = { laamp_contracts_transport_group }
}
}
else_if = { # Mercenaries
limit = { has_realm_law = camp_purpose_mercenaries }
populate_task_contracts_for_area = {
location = scope:char_temp.location
amount = 1
group = { laamp_contracts_war_group }
}
ordered_independent_ruler = {
limit = {
in_diplomatic_range = scope:char_temp
scope:char_temp = {
can_create_task_contract = {
type_name = laamp_join_war_contract
employer = prev
}
}
}
order_by = {
value = 0
subtract = "capital_county.squared_distance(scope:char_temp.domicile.domicile_location)"
}
ordered_character_war = {
limit = {
ep3_adventurer_mercenary_war_trigger = {
EMPLOYER = prev
LAAMP = scope:char_temp
}
}
order_by = war_total_participants_current_strength_value
primary_defender ?= { save_scope_as = defender }
primary_attacker ?= { save_scope_as = attacker }
save_scope_as = war
scope:char_temp = {
spawn_join_war_contracts_effect = {
WAR = scope:war
LAAMP = scope:char_temp
ATTACKER = scope:attacker
DEFENDER = scope:defender
}
}
}
}
debug_log = "WAR_1"
debug_log_scopes = yes
}
populate_location_with_contracts_effect = {
AREA_CHAR = scope:char_temp
AMOUNT = 3
}
# Log that we visited this place.
add_to_variable_list = {
name = laamp_recently_visited_kingdoms
target = scope:kingdom_temp
years = 5
}
}
}
player_adventurer_contract_generation_on_wait_in_place_effect = {
if = {
limit = { player_adventurer_sufficient_distance_for_contract_spawn_trigger = yes }
# Track where we are.
set_variable = {
name = contract_passive_spawn_location
value = location.kingdom
}
# Reset the tally.
set_variable = {
name = contract_passive_spawn_tally
value = 0
}
# Queue up an additional contract.
trigger_event = {
id = ep3_laamps.9981
months = { 4 6 }
}
}
}
contract_passive_spawn_effect = {
#count how many contracts you already have
every_character_task_contract = {
add_to_list = num_of_contracts_before
}
# G'is a contract.
populate_location_with_contracts_effect = {
AREA_CHAR = root
AMOUNT = $SPAWN_CONTRACTS$
}
#count them again to see if the effect above spawned something
every_character_task_contract = {
add_to_list = num_of_contracts_after
}
set_local_variable = {
name = current_value
value = list_size:num_of_contracts_before
}
# Make sure we don't get too many of them just sitting in one place.
while = {
limit = {
local_var:current_value < list_size:num_of_contracts_after
}
increment_variable_effect = {
VAR = contract_passive_spawn_tally
VAL = 1
}
change_local_variable = {
name = current_value
add = 1
}
}
}
#spawns a valid task contract for a landless adventurer
# root = landless adventurer
# TASK_CONTRACT_TYPE = type name of a task contract you want to spawn
# SPAWN_POINT = where you want the task contract to appear on the map
laamp_spawn_valid_task_contract = {
$SPAWN_POINT$ = {
save_scope_as = spawn_location
}
random_ruler = {
limit = {
root = {
can_create_task_contract = {
type_name = $TASK_CONTRACT_TYPE$
employer = prev
}
}
}
save_scope_as = employer
}
create_task_contract = {
task_contract_type = $TASK_CONTRACT_TYPE$
task_contract_tier = scope:employer.task_contract_tier_value
location = scope:spawn_location
task_contract_employer = scope:employer
}
}
points_of_interest_tracker_effect = {
if = {
limit = {
government_has_flag = government_is_landless_adventurer
location = {
save_temporary_scope_as = province_temp
OR = {
# Building flags
has_any_point_of_interest_flag = yes
# Capitals
AND = {
province_owner.top_liege.capital_province ?= this
province_owner.top_liege ?= { highest_held_title_tier >= tier_kingdom }
}
# Grand Cities
this = province:4828 #Baghdad
this = province:2575 #Rome
this = province:496 #Constantinople
# Points of interest
this = province:747 # Halikarnassos
this = province:6053 # Alexandria
# Legend stuff
any_legend = {
legend_owner.capital_province ?= scope:province_temp
OR = {
legend_quality = illustrious
legend_quality = mythical
}
}
}
}
}
if = {
limit = {
NOT = {
has_variable = poi_visited
}
}
set_variable = {
name = poi_visited
value = 1
}
}
else = {
change_variable = {
name = poi_visited
add = 1
}
}
}
}
zealous_missionary_conversion_effect = {
if = {
limit = {
exists = location.barony.holder
government_has_flag = government_is_landless_adventurer
has_character_flag = zealous_missionary_timer
location.county ?= { hasan_evangelize_province_trigger = yes }
}
trigger_event = ep3_laamp_decision_event.1103
}
}
war_contracts_completed_tracker_effect = {
if = {
limit = {
government_has_flag = government_is_landless_adventurer
has_variable = war_contract_tracker
}
change_variable = {
name = war_contract_tracker
add = 1
}
}
else_if = {
limit = {
government_has_flag = government_is_landless_adventurer
}
set_variable = {
name = war_contract_tracker
value = 1
}
}
}
bandit_king_maa_spawn_effect = {
save_scope_as = bandit_king
if = {
limit = {
has_character_modifier = bandit_king_modifier
}
set_variable = {
name = maa_number
value = 1
}
if = {
limit = {
scope:extra_reward ?= flag:yes
}
change_variable = {
name = maa_number
add = 2
}
}
if = {
limit = {
calc_true_if = {
amount >= 4
has_trait_xp = {
trait = gallowsbait
track = bandit
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = marauder
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = poacher
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = thief
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = trickster
value >= 60
}
}
}
change_variable = {
name = maa_number
add = 2
}
}
else_if = {
limit = {
calc_true_if = {
amount >= 2
has_trait_xp = {
trait = gallowsbait
track = bandit
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = marauder
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = poacher
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = thief
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = trickster
value >= 60
}
}
}
change_variable = {
name = maa_number
add = 1
}
}
else_if = {
limit = {
OR = {
has_trait_xp = {
trait = gallowsbait
track = bandit
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = marauder
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = poacher
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = thief
value >= 60
}
has_trait_xp = {
trait = gallowsbait
track = trickster
value >= 60
}
}
}
change_variable = {
name = maa_number
add = 1
}
}
custom_tooltip = bandit_king_maa_spawn_effect_desc #otherwise the tooltip looks crazy
hidden_effect = {
random_list = {
1 = {
spawn_army = {
men_at_arms = {
type = maa_poachers
stacks = var:maa_number
}
inheritable = no
uses_supply = yes
location = scope:bandit_king.location
name = ep3_poachers_army
}
spawn_army = {
men_at_arms = {
type = maa_thieves
stacks = var:maa_number
}
inheritable = no
uses_supply = yes
location = scope:bandit_king.location
name = ep3_bandits_army
}
}
1 = {
spawn_army = {
men_at_arms = {
type = maa_bandits
stacks = var:maa_number
}
inheritable = no
uses_supply = yes
location = scope:bandit_king.location
name = ep3_bandits_army
}
spawn_army = {
men_at_arms = {
type = maa_thieves
stacks = var:maa_number
}
inheritable = no
uses_supply = yes
location = scope:bandit_king.location
name = ep3_bandits_army
}
}
}
}
}
}
absolve_crusaders_of_gallowsbait_effect = {
if = {
limit = {
has_trait_xp = {
trait = gallowsbait
track = bandit
value >= 1
}
}
add_trait_xp = {
trait = gallowsbait
track = bandit
value = crusader_absolution_xp_removed_per_track_value
}
}
if = {
limit = {
has_trait_xp = {
trait = gallowsbait
track = trickster
value >= 1
}
}
add_trait_xp = {
trait = gallowsbait
track = trickster
value = crusader_absolution_xp_removed_per_track_value
}
}
if = {
limit = {
has_trait_xp = {
trait = gallowsbait
track = thief
value >= 1
}
}
add_trait_xp = {
trait = gallowsbait
track = thief
value = crusader_absolution_xp_removed_per_track_value
}
}
if = {
limit = {
has_trait_xp = {
trait = gallowsbait
track = poacher
value >= 1
}
}
add_trait_xp = {
trait = gallowsbait
track = poacher
value = crusader_absolution_xp_removed_per_track_value
}
}
if = {
limit = {
has_trait_xp = {
trait = gallowsbait
track = marauder
value >= 1
}
}
add_trait_xp = {
trait = gallowsbait
track = marauder
value = crusader_absolution_xp_removed_per_track_value
}
}
if = {
limit = {
has_trait_xp = {
trait = gallowsbait
track = bandit
value <= crusader_absolution_min_xp_to_remove_trait_value
}
has_trait_xp = {
trait = gallowsbait
track = trickster
value <= crusader_absolution_min_xp_to_remove_trait_value
}
has_trait_xp = {
trait = gallowsbait
track = thief
value <= crusader_absolution_min_xp_to_remove_trait_value
}
has_trait_xp = {
trait = gallowsbait
track = poacher
value <= crusader_absolution_min_xp_to_remove_trait_value
}
has_trait_xp = {
trait = gallowsbait
track = marauder
value <= crusader_absolution_min_xp_to_remove_trait_value
}
}
remove_trait = gallowsbait
}
}
temporarily_lock_visit_settlement_effect = {
set_variable = {
name = ep3_laamp_decision_1000_is_visiting
days = visit_settlement_lock_days
}
}
##################################################
# Admin Government
##################################################
torture_grants_influence_effect = {
if = {
limit = {
domicile ?= { has_domicile_parameter = estate_torture_grants_influence }
}
change_influence = medium_influence_gain
}
}
create_noble_family_effect = {
debug_log = create_noble_family_title
save_scope_as = new_noble_family_holder
$GOVERNMENT_GIVER$ = { save_scope_as = government_giver }
hidden_effect = { # NF can only be held by house heads
if = { # Start by checking that we are not the house head already
limit = {
exists = house.house_head
NOT = { house.house_head = scope:new_noble_family_holder }
}
if = { # If not, let's see if it would be reasonable to become house head...
limit = {
house.house_head ?= {
is_ai = yes # Don't steal house head from a player
OR = {
# Within same realm but less important
AND = {
top_liege = scope:new_noble_family_holder.top_liege
OR = {
is_ruler = no
highest_held_title_tier < scope:new_noble_family_holder.highest_held_title_tier
}
}
# Wanderer
NOT = { exists = liege }
}
}
}
house = { set_house_head = scope:new_noble_family_holder }
}
else = { # ... Otherwise, we create a cadet branch
create_cadet_branch = {}
}
}
}
scope:government_giver = {
if = {
limit = {
scope:new_noble_family_holder = {
NOT = {
any_held_title = { is_noble_family_title = yes }
}
}
}
switch = {
trigger = has_government
japan_administrative_government = { # Japan has count level NFs
scope:new_noble_family_holder = {
give_noble_family_title = {
name = noble_family_name
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = japan_administrative_government
save_scope_as = new_title
}
}
}
japan_feudal_government = { # Japan has count level NFs
scope:new_noble_family_holder = {
give_noble_family_title = {
name = noble_family_name
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = japan_feudal_government
save_scope_as = new_title
}
}
}
celestial_government = { # China has different government
scope:new_noble_family_holder = {
give_noble_family_title = {
name = noble_family_name
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = celestial_government
save_scope_as = new_title
}
trigger_event = {
id = tgp_china_career.0001
days = { 2 5 }
}
}
}
meritocratic_government = { # Meritocratic has different government
scope:new_noble_family_holder = {
give_noble_family_title = {
name = noble_family_name
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = meritocratic_government
save_scope_as = new_title
}
}
}
steppe_admin_government = { # Steppe Admin has different government
scope:new_noble_family_holder = {
give_noble_family_title = {
name = noble_family_name
tier = county
article = DEFAULT_TITLE_NAME_ARTICLE
government = steppe_admin_government
save_scope_as = new_title
}
}
}
fallback = {
scope:new_noble_family_holder = {
give_noble_family_title = {
name = noble_family_name
tier = duchy
article = DEFAULT_TITLE_NAME_ARTICLE
government = administrative_government
save_scope_as = new_title
}
}
}
}
}
scope:new_title.holder ?= {
save_scope_as = noble_family_head
scope:new_title = { set_coa = scope:noble_family_head.house }
}
custom_description = { text = create_noble_family_tt }
#Notifications
every_player = {
limit = {
top_liege = scope:new_noble_family_holder.top_liege
this != scope:new_noble_family_holder
# China has hundreds of Noble Families, it gets spammy
NOT = { government_allows = merit }
}
trigger_event = {
id = ep3_emperor_yearly.2410
days = 1
}
}
}
debug_log_scopes = yes
}
increase_governance_effect = {
# VALUE - The amount of XP added to the Governor trait/increased chance to gain the Governor trait
save_scope_value_as = {
name = governor_xp_gain
value = {
value = $VALUE$
if = {
limit = {
exists = scope:task_contract
}
multiply = governance_task_contract_tier_value
if = {
limit = {
$VALUE$ > 0
domicile ?= { has_domicile_parameter = estate_governor_trait_xp_bonus_for_contracts }
}
multiply = {
value = 1
add = estate_governance_contract_bonus_value
}
}
}
}
}
# Double-check if you have the governor trait - If not, let's make sure you get it
if = {
limit = {
NOT = { has_trait = governor }
is_governor = yes
}
add_trait = governor
}
# If you have the trait, let's increase your XP for it
else_if = {
limit = {
has_trait = governor
}
add_trait_xp = {
trait = governor
value = scope:governor_xp_gain
}
}
}
spawn_governance_contract_effect = {
save_scope_as = governor
# Select the Contract Tier (somewhat randomized, based on your experience as a governor)
random_list = {
30 = {
save_scope_value_as = {
name = governance_task_contract_tier
value = define:NTaskContract|LOW_TASK_CONTRACT_TIER
}
}
20 = {
save_scope_value_as = {
name = governance_task_contract_tier
value = define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER
}
modifier = {
add = 10
has_trait = governor
}
modifier = {
add = 10
has_trait = governor
has_trait_xp = {
trait = governor
value >= 40
}
}
}
10 = {
save_scope_value_as = {
name = governance_task_contract_tier
value = define:NTaskContract|HIGH_TASK_CONTRACT_TIER
}
modifier = {
add = 10
has_trait = governor
}
modifier = {
add = 10
has_trait = governor
has_trait_xp = {
trait = governor
value >= 40
}
}
modifier = {
add = 20
has_trait = governor
has_trait_xp = {
trait = governor
value >= 80
}
}
}
}
# Select which contract to create
trigger_event = {
on_action = spawn_admin_governance_contract_on_action
}
play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Byzantine_Flavor/ep3_mx_sting_byzantineflavor_become_governor"
}
manage_new_governance_contract_effect = {
if = {
limit = { exists = scope:target_province }
if = {
limit = {
NOT = { has_character_flag = admin_governance_frequency_cooldown }
}
add_character_flag = { flag = admin_governance_frequency_cooldown years = 6 }
}
send_interface_message = {
type = msg_governance_contracts
title = msg_governance_contract_appear.t
desc = msg_governance_contract_appear.desc
right_icon = scope:target_province.county
}
}
if = {
limit = {
is_ai = yes
exists = scope:new_governance_issue
}
accept_task_contract = scope:new_governance_issue
}
}
generate_governance_outcome_effect = {
# INFO: We use this effect to randomize the options you get when doing a governor contract.
# $OPTIONS$ is the number of options the event has - Never use less than four, and try to have six if possible.
# Unlock a bonus option if you have enough exp in the Governor trait - We do this here (and not in the option) to avoid blocking the option due to exp decay (if game is unpaused).
if = {
limit = {
has_trait = governor
has_trait_xp = {
trait = governor
value >= 50
}
}
save_scope_as = governance_option_a
}
# Check if you have the Governor trait
if = {
limit = { # If you have the trait with at least rank 1, we generate an extra option.
has_trait = governor
has_trait_xp = {
trait = governor
value >= 25
}
}
save_scope_value_as = { name = governance_number_of_options value = 3 }
}
else = { # Otherwise, you only get two base options.
save_scope_value_as = { name = governance_number_of_options value = 2 }
}
# Generate the options
set_local_variable = {
name = current_value
value = 0
}
while = {
limit = {
local_var:current_value < scope:governance_number_of_options
}
random_list = {
# There is no option A, as A should be unlocked for having the Governor trait at rank 2 (which is done in the corresponding event)
20 = {
trigger = {
NOT = { exists = scope:governance_option_b }
}
save_scope_value_as = {
name = governance_option_b
value = yes
}
change_local_variable = {
name = current_value
add = 1
}
}
20 = {
trigger = {
NOT = { exists = scope:governance_option_c }
}
save_scope_value_as = {
name = governance_option_c
value = yes
}
change_local_variable = {
name = current_value
add = 1
}
}
20 = {
trigger = {
NOT = { exists = scope:governance_option_d }
}
save_scope_value_as = {
name = governance_option_d
value = yes
}
change_local_variable = {
name = current_value
add = 1
}
}
20 = {
trigger = {
NOT = { exists = scope:governance_option_e }
$OPTIONS$ >= 5
}
save_scope_value_as = {
name = governance_option_e
value = yes
}
change_local_variable = {
name = current_value
add = 1
}
}
20 = {
trigger = {
NOT = { exists = scope:governance_option_f }
$OPTIONS$ >= 6
}
save_scope_value_as = {
name = governance_option_f
value = yes
}
change_local_variable = {
name = current_value
add = 1
}
}
}
}
}
remove_other_eparch_modifiers_effect = {
hidden_effect = { # No need to show this
# Let's check for the county opinion modifier first
scope:liege ?= {
# We check and scope to all counties to make sure we remove any stray modifiers in case the capital is moved, etc.
if = {
limit = {
any_realm_county = {
any_county_province = {
has_province_modifier = ep3_eparch_county_opinion_modifier
}
}
}
every_realm_county = {
limit = {
any_county_province = {
has_province_modifier = ep3_eparch_county_opinion_modifier
}
}
every_county_province = {
limit = {
has_province_modifier = ep3_eparch_county_opinion_modifier
}
remove_province_modifier = ep3_eparch_county_opinion_modifier
}
}
}
}
# Next is the troop modifier
scope:liege ?= {
# We check and scope to all counties to make sure we remove any stray modifiers in case the capital is moved, etc.
if = {
limit = {
any_realm_county = {
any_county_province = {
has_province_modifier = ep3_eparch_troops_modifier
}
}
}
every_realm_county = {
limit = {
any_county_province = {
has_province_modifier = ep3_eparch_troops_modifier
}
}
every_county_province = {
limit = {
has_province_modifier = ep3_eparch_troops_modifier
}
remove_province_modifier = ep3_eparch_troops_modifier
}
}
}
}
# Next is the county control modifier
scope:liege ?= {
# We check and scope to all counties to make sure we remove any stray modifiers in case the capital is moved, etc.
if = {
limit = {
any_realm_county = {
any_county_province = {
has_province_modifier = ep3_eparch_control_modifier
}
}
}
every_realm_county = {
limit = {
any_county_province = {
has_province_modifier = ep3_eparch_control_modifier
}
}
every_county_province = {
limit = {
has_province_modifier = ep3_eparch_control_modifier
}
remove_province_modifier = ep3_eparch_control_modifier
}
}
}
}
# And finally, the development modifier
scope:liege ?= {
# We check and scope to all counties to make sure we remove any stray modifiers in case the capital is moved, etc.
if = {
limit = {
any_realm_county = {
any_county_province = {
has_province_modifier = ep3_eparch_development_modifier
}
}
}
every_realm_county = {
limit = {
any_county_province = {
has_province_modifier = ep3_eparch_development_modifier
}
}
every_county_province = {
limit = {
has_province_modifier = ep3_eparch_development_modifier
}
remove_province_modifier = ep3_eparch_development_modifier
}
}
}
}
}
}
eparch_neglecting_duty_effect = {
custom_tooltip = {
text = eparch_neglecting_duty_warning_tt
# We check if you have neglected duties in the past
if = {
limit = {
exists = var:eparch_neglecting_duty
}
# If you have, let's first increase the variable
change_variable = { name = eparch_neglecting_duty add = 5 }
# Then check if the liege notices and decide to take action
random = {
chance = {
# Base value - Increases with each neglecting action
value = var:eparch_neglecting_duty
# Add the difference in intrigue skill
add = {
value = liege.intrigue
subtract = intrigue
}
# Add the difference in influence level
add = {
value = liege.influence_level
subtract = influence_level
multiply = 5
}
# Lower the chance if you belong to a powerful or dominant family
if = {
limit = {
house ?= { is_powerful_family = yes }
}
subtract = 10
}
if = {
limit = {
house ?= { is_dominant_family = yes }
}
subtract = 20
}
min = 5
max = 90
}
# The liege have noticed - We reduce the variable slightly as a result (but never below 0)
if = {
limit = {
exists = var:eparch_neglecting_duty
var:eparch_neglecting_duty >= 20
}
change_variable = { name = eparch_neglecting_duty subtract = 20 }
}
else = {
set_variable = { name = eparch_neglecting_duty value = 0 }
}
liege = {
trigger_event = { id = ep3_eparch_event.9000 days = { 10 90 } }
}
}
}
else = { # If you haven't, we'll set the variable and give you a free pass (you only get it for your very first time though)
set_variable = { name = eparch_neglecting_duty value = 0 }
}
}
}
add_influence_attacker_victory_effect = {
scope:attacker = {
if = {
limit = { government_has_flag = government_has_influence }
change_influence = major_influence_gain
}
}
}
add_influence_attacker_defeat_effect = {
scope:defender = {
if = {
limit = { government_has_flag = government_has_influence }
change_influence = medium_influence_gain
}
}
}
admin_change_government_effect = {
# Make sure you only use this effect on characters you are sure should change government! Since we don't do any extended triggers here.
# For a consistent behaviour, this effect is based on "convert_whole_realm_to_feudalism_effect"
# First, let's see if the character only has their noble family title - then we don't bother changing their government
# We only destroy the family title to make sure it doesn't linger
if = {
limit = {
is_landed = no
any_held_title = {
is_noble_family_title = yes
}
NOT = {
any_held_title = {
is_noble_family_title = no
}
}
}
every_held_title = {
limit = {
is_noble_family_title = yes
}
save_temporary_scope_as = family_title
prev = { destroy_title = scope:family_title }
}
}
# If not, let's change the government type
# If liege has clan - Become clan!
else_if = {
limit = {
top_liege != this
OR = {
liege = { government_has_flag = government_is_clan }
AND = {
liege = { government_has_flag = government_is_tribal }
religion = religion:islam_religion
}
}
}
change_government = clan_government
}
# If liege has japanese feudal - Become japanese feudal!
else_if = {
limit = {
is_independent_ruler = no
OR = {
liege = { government_has_flag = government_is_japan_feudal }
AND = {
liege = { government_has_flag = government_is_japan_feudal }
NOT = { religion = religion:islam_religion }
}
}
}
change_government = japan_feudal_government
}
# If liege has feudal - Become feudal!
else_if = {
limit = {
top_liege != this
OR = {
liege = { government_has_flag = government_is_feudal }
AND = {
liege = { government_has_flag = government_is_tribal }
NOT = { religion = religion:islam_religion }
}
}
}
change_government = feudal_government
}
# If you're an independent Muslim ruler - Become clan!
else_if = {
limit = {
top_liege = this
faith = { religion_tag = islam_religion }
}
change_government = clan_government
}
# If you're an independent ruler with anything else - Become feudal!
else = { change_government = feudal_government }
# Finally, let's double-check and see if there are any remaining family titles we should destroy
if = {
limit = {
any_held_title = {
is_noble_family_title = yes
}
}
every_held_title = {
limit = {
is_noble_family_title = yes
}
save_temporary_scope_as = family_title
prev = { destroy_title = scope:family_title }
}
}
}
##################################################
# Dynasty Legacy: Bureaucracy
##################################################
ep3_dynasty_legacy_add_legitimacy_effect = {
scope:activity = {
if = {
limit = {
scope:host = {
government_allows = administrative
OR = {
dynasty = { has_dynasty_perk = ep3_administrative_legacy_3 }
top_participant_group:dynastic_cycle ?= {
participant_group_type = conservative_movement
}
}
}
# Does the activity location have a domicile owned by a house member
# Does that domicile have the Reception Hall building
activity_location = {
any_province_domicile = {
owner = { house ?= scope:host.house }
OR = {
has_domicile_building_or_higher = reception_hall_01
has_domicile_building_or_higher = east_asian_estate_reception_hall_01
}
}
}
}
activity_location = {
random_province_domicile = {
limit = {
owner = { house ?= scope:host.house }
OR = {
has_domicile_building_or_higher = reception_hall_01
has_domicile_building_or_higher = east_asian_estate_reception_hall_01
}
}
owner = { save_scope_as = reception_hall_owner }
}
}
scope:host = {
house = {
if = {
limit = {
NOT = {
has_variable = ep3_legacy_legitimacy_counter
}
}
# Set the initial value
set_variable = {
name = ep3_legacy_legitimacy_counter
value = 10
}
}
else = {
change_variable = {
name = ep3_legacy_legitimacy_counter
add = 10
}
}
}
if = {
limit = {
primary_title.tier = tier_empire
}
send_interface_toast = {
type = event_toast_effect_good
title = ep3_dynasty_legacy_gain_legitimacy_effect_title
left_icon = scope:host
right_icon = scope:host.primary_title
add_legitimacy = 10
}
}
else = {
house = {
every_house_member = {
limit = { is_ai = no }
send_interface_message = {
type = event_generic_good_text
title = ep3_dynasty_legacy_add_legitimacy_effect_title
desc = ep3_dynasty_legacy_add_legitimacy_effect_desc
left_icon = scope:host
right_icon = house
}
}
}
}
}
}
}
}
##################################################
# Byzantium
##################################################
remove_a_criminal_trait_in_faith_effect = {
$CHARACTER$ = {
if = {
limit = {
has_trait = adulterer
trait_is_criminal_in_faith_trigger = { TRAIT = trait:adulterer FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = adulterer
}
else_if = {
limit = {
has_trait = fornicator
trait_is_criminal_in_faith_trigger = { TRAIT = trait:fornicator FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = fornicator
}
else_if = {
limit = {
has_trait = sodomite
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = sodomite
}
else_if = {
limit = {
has_trait = deviant
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = deviant
}
else_if = {
limit = {
has_trait = kinslayer_3
trait_is_criminal_in_faith_trigger = { TRAIT = trait:kinslayer_3 FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = kinslayer_3
}
else_if = {
limit = {
has_trait = kinslayer_2
trait_is_criminal_in_faith_trigger = { TRAIT = trait:kinslayer_2 FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = kinslayer_2
}
else_if = {
limit = {
has_trait = kinslayer_1
trait_is_criminal_in_faith_trigger = { TRAIT = trait:kinslayer_1 FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = kinslayer_1
}
else_if = {
limit = {
has_trait = witch
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = witch
}
else_if = {
limit = {
has_trait = cannibal
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = cannibal
}
else_if = {
limit = {
has_trait = incestuous
trait_is_criminal_in_faith_trigger = { TRAIT = trait:incestuous FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
remove_trait = incestuous
}
}
}
##################################################
# Chariot Races
##################################################
gather_charioteers_effect = {
scope:activity = {
random_list = {
50 = {
set_variable = {
name = num_blues
value = 2
}
}
50 = {
set_variable = {
name = num_blues
value = 3
}
}
}
random_list = {
50 = {
set_variable = {
name = num_greens
value = 2
}
}
50 = {
set_variable = {
name = num_greens
value = 3
}
}
}
random_list = {
50 = {
set_variable = {
name = num_whites
value = 2
}
}
50 = {
set_variable = {
name = num_whites
value = 3
}
}
}
random_list = {
50 = {
set_variable = {
name = num_reds
value = 2
}
}
50 = {
set_variable = {
name = num_reds
value = 3
}
}
}
ordered_attending_character = {
order_by = chariot_ordering_value
max = 12
check_range_bounds = no
save_temporary_scope_as = temp_character
if = {
limit = {
OR = {
has_court_position = charioteer_court_position
trigger_if = {
limit = {
available_charioteers_spots_trigger = { TEAM = green }
}
has_trait = charioteer_green
}
trigger_if = {
limit = {
available_charioteers_spots_trigger = { TEAM = blue }
}
has_trait = charioteer_blue
}
trigger_if = {
limit = {
available_charioteers_spots_trigger = { TEAM = red }
}
has_trait = charioteer_red
}
trigger_if = {
limit = {
available_charioteers_spots_trigger = { TEAM = white }
}
has_trait = charioteer_white
}
}
}
scope:activity = {
add_to_guest_subset = {
name = charioteers
target = scope:temp_character
}
}
}
}
# Finalize the list of charioteers
chariot_racers_setup_effect = { TEAM = green }
chariot_racers_setup_effect = { TEAM = blue }
chariot_racers_setup_effect = { TEAM = red }
chariot_racers_setup_effect = { TEAM = white }
# And filter everyone remaining to spectators.
every_attending_character = {
limit = {
NOT = {
is_in_guest_subset = { name = charioteers }
}
}
save_scope_as = temp_character
scope:activity = {
add_to_guest_subset = {
name = spectators
target = scope:temp_character
}
}
}
}
}
chariot_racers_setup_effect = { # If you need to create additional racers
while = {
count = 5
limit = {
available_charioteers_spots_trigger = { TEAM = $TEAM$ }
}
create_character = {
template = charioteer_template
employer = scope:activity.activity_host
save_scope_as = temp_charioteer
}
scope:temp_charioteer = {
add_trait = charioteer_$TEAM$
add_trait_xp = {
trait = charioteer_$TEAM$
value = { 5 50 }
}
add_to_activity = scope:activity
}
scope:activity = {
add_to_guest_subset = {
name = charioteers
target = scope:temp_charioteer
}
}
}
}
# Each character is assigned Odds to Win, Odds to Place, and Odds to Show
# Win: come in first place
# Place: come in first or second place
# Show: come in first, second, or third place
calculate_chariot_race_odds_effect = {
calculate_chariot_odds_to_win_effect = yes
calculate_chariot_odds_to_place_effect = yes
calculate_chariot_odds_to_show_effect = yes
}
# Odds are represented in the format A:B, where A is the number of ways/opportunities a character has to succeed, and B represents how many ways/opportunities they have to fail
# These same calculations are done for the teams overall
# Individual odds are saved on the individual character
# Team odds are saved on the activity scope
calculate_chariot_odds_to_win_effect = {
scope:activity = {
### INDIVIDUAL ODDS
# Set odds to win
set_variable = {
name = total_chance_win
value = 0
}
# Set odds_win_a (number of ways to win)
every_guest_subset = {
name = charioteers
set_variable = {
name = odds_win_a
value = charioteer_chance_to_win
}
scope:activity = {
change_variable = {
name = total_chance_win
add = {
value = prev.charioteer_chance_to_win
min = 1
}
}
}
}
# set odds_win_b (number of ways to lose)
every_guest_subset = {
name = charioteers
set_variable = {
name = odds_win_b
value = {
value = scope:activity.var:total_chance_win
subtract = var:odds_win_a
min = 1
}
}
}
# Calc percent chance to win
every_guest_subset = {
name = charioteers
set_variable = {
name = percent_chance_to_win
value = {
add = var:odds_win_a
divide = {
value = 0
add = var:odds_win_a
add = var:odds_win_b
}
multiply = 100
min = 1
max = 99
}
}
}
##########
### TEAM ODDS
# For each of the 4 teams, we calculate their odds to win/place/show. These variables are saved on the activity
# BLUES
# Initialize variables
set_variable = {
name = blue_odds_win_a
value = 0
}
set_variable = {
name = blue_odds_win_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_blue }
scope:activity = {
change_variable = {
name = blue_odds_win_a
add = {
value = prev.var:odds_win_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = blue_odds_win_b
add = {
value = var:total_chance_win
subtract = var:blue_odds_win_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = blue_percent_chance_to_win
value = {
add = var:blue_odds_win_a
divide = {
value = 0
add = var:blue_odds_win_a
add = var:blue_odds_win_b
}
multiply = 100
min = 1
max = 99
}
}
# GREENS
# Initialize variables
set_variable = {
name = green_odds_win_a
value = 0
}
set_variable = {
name = green_odds_win_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_green }
scope:activity = {
change_variable = {
name = green_odds_win_a
add = {
value = prev.var:odds_win_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = green_odds_win_b
add = {
value = var:total_chance_win
subtract = var:green_odds_win_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = green_percent_chance_to_win
value = {
add = var:green_odds_win_a
divide = {
value = 0
add = var:green_odds_win_a
add = var:green_odds_win_b
}
multiply = 100
min = 1
max = 99
}
}
# WHITES
# Initialize variables
set_variable = {
name = white_odds_win_a
value = 0
}
set_variable = {
name = white_odds_win_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_white }
scope:activity = {
change_variable = {
name = white_odds_win_a
add = {
value = prev.var:odds_win_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = white_odds_win_b
add = {
value = var:total_chance_win
subtract = var:white_odds_win_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = white_percent_chance_to_win
value = {
add = var:white_odds_win_a
divide = {
value = 0
add = var:white_odds_win_a
add = var:white_odds_win_b
}
multiply = 100
min = 1
max = 99
}
}
# REDS
# Initialize variables
set_variable = {
name = red_odds_win_a
value = 0
}
set_variable = {
name = red_odds_win_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_red }
scope:activity = {
change_variable = {
name = red_odds_win_a
add = {
value = prev.var:odds_win_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = red_odds_win_b
add = {
value = var:total_chance_win
subtract = var:red_odds_win_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = red_percent_chance_to_win
value = {
add = var:red_odds_win_a
divide = {
value = 0
add = var:red_odds_win_a
add = var:red_odds_win_b
}
multiply = 100
min = 1
max = 99
}
}
}
}
calculate_chariot_odds_to_place_effect = {
scope:activity = {
### INDIVIDUAL ODDS
# Set odds to place
set_variable = {
name = total_chance_place
value = 0
}
every_guest_subset = {
name = charioteers
set_variable = {
name = odds_place_a
value = {
value = charioteer_chance_to_win
multiply = 2
}
}
scope:activity = {
change_variable = {
name = total_chance_place
add = {
value = prev.charioteer_chance_to_win
min = 1
}
}
}
}
every_guest_subset = {
name = charioteers
set_variable = {
name = odds_place_b
value = {
value = scope:activity.var:total_chance_place
subtract = var:odds_place_a
min = 1
}
}
}
# Calc percent chance to win
every_guest_subset = {
name = charioteers
set_variable = {
name = percent_chance_to_place
value = {
add = var:odds_place_a
divide = {
value = 0
add = var:odds_place_a
add = var:odds_place_b
}
multiply = 100
min = 1
max = 99
}
}
}
##########
### TEAM ODDS
# For each of the 4 teams, we calculate their odds to win/place/show. These variables are saved on the activity
# Initialize variables
set_variable = {
name = blue_odds_place_a
value = 0
}
set_variable = {
name = blue_odds_place_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_blue }
scope:activity = {
change_variable = {
name = blue_odds_place_a
add = {
value = prev.var:odds_place_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = blue_odds_place_b
add = {
value = var:total_chance_place
subtract = var:blue_odds_place_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = blue_percent_chance_to_place
value = {
add = var:blue_odds_place_a
divide = {
value = 0
add = var:blue_odds_place_a
add = var:blue_odds_place_b
}
multiply = 100
min = 1
max = 99
}
}
# GREENS
# Initialize variables
set_variable = {
name = green_odds_place_a
value = 0
}
set_variable = {
name = green_odds_place_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_green }
scope:activity = {
change_variable = {
name = green_odds_place_a
add = {
value = prev.var:odds_place_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = green_odds_place_b
add = {
value = var:total_chance_place
subtract = var:green_odds_place_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = green_percent_chance_to_place
value = {
add = var:green_odds_place_a
divide = {
value = 0
add = var:green_odds_place_a
add = var:green_odds_place_b
}
multiply = 100
min = 1
max = 99
}
}
# WHITES
# Initialize variables
set_variable = {
name = white_odds_place_a
value = 0
}
set_variable = {
name = white_odds_place_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_white }
scope:activity = {
change_variable = {
name = white_odds_place_a
add = {
value = prev.var:odds_place_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = white_odds_place_b
add = {
value = var:total_chance_place
subtract = var:white_odds_place_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = white_percent_chance_to_place
value = {
add = var:white_odds_place_a
divide = {
value = 0
add = var:white_odds_place_a
add = var:white_odds_place_b
}
multiply = 100
min = 1
max = 99
}
}
# REDS
# Initialize variables
set_variable = {
name = red_odds_place_a
value = 0
}
set_variable = {
name = red_odds_place_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_red }
scope:activity = {
change_variable = {
name = red_odds_place_a
add = {
value = prev.var:odds_place_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = red_odds_place_b
add = {
value = var:total_chance_place
subtract = var:red_odds_place_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = red_percent_chance_to_place
value = {
add = var:red_odds_place_a
divide = {
value = 0
add = var:red_odds_place_a
add = var:red_odds_place_b
}
multiply = 100
min = 1
max = 99
}
}
}
}
calculate_chariot_odds_to_show_effect = {
scope:activity = {
### INDIVIDUAL ODDS
# Set odds to show
set_variable = {
name = total_chance_show
value = 0
}
every_guest_subset = {
name = charioteers
set_variable = {
name = odds_show_a
value = {
value = charioteer_chance_to_win
multiply = 3
min = 1
}
}
scope:activity = {
change_variable = {
name = total_chance_show
add = {
value = prev.charioteer_chance_to_win
min = 1
}
}
}
}
every_guest_subset = {
name = charioteers
set_variable = {
name = odds_show_b
value = {
value = scope:activity.var:total_chance_show
subtract = var:odds_show_a
min = 1
}
}
}
# Calc percent chance to show
every_guest_subset = {
name = charioteers
set_variable = {
name = percent_chance_to_show
value = {
add = var:odds_show_a
divide = {
value = var:odds_show_a
add = scope:activity.var:total_chance_show
}
multiply = 100
min = 1
max = 99
}
}
}
##########
### TEAM ODDS
# For each of the 4 teams, we calculate their odds to win/place/show. These variables are saved on the activity
# BLUES
# Initialize variables
set_variable = {
name = blue_odds_show_a
value = 0
}
set_variable = {
name = blue_odds_show_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_blue }
scope:activity = {
change_variable = {
name = blue_odds_show_a
add = {
value = prev.var:odds_show_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = blue_odds_show_b
add = {
value = var:total_chance_show
subtract = var:blue_odds_show_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = blue_percent_chance_to_show
value = {
add = var:blue_odds_show_a
divide = {
value = 0
add = var:blue_odds_show_a
add = var:blue_odds_show_b
}
multiply = 100
min = 1
max = 99
}
}
# GREENS
# Initialize variables
set_variable = {
name = green_odds_show_a
value = 0
}
set_variable = {
name = green_odds_show_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_green }
scope:activity = {
change_variable = {
name = green_odds_show_a
add = {
value = prev.var:odds_show_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = green_odds_show_b
add = {
value = var:total_chance_show
subtract = var:green_odds_show_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = green_percent_chance_to_show
value = {
add = var:green_odds_show_a
divide = {
value = 0
add = var:green_odds_show_a
add = var:green_odds_show_b
}
multiply = 100
min = 1
max = 99
}
}
# WHITES
# Initialize variables
set_variable = {
name = white_odds_show_a
value = 0
}
set_variable = {
name = white_odds_show_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_white }
scope:activity = {
change_variable = {
name = white_odds_show_a
add = {
value = prev.var:odds_show_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = white_odds_show_b
add = {
value = var:total_chance_show
subtract = var:white_odds_show_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = white_percent_chance_to_show
value = {
add = var:white_odds_show_a
divide = {
value = 0
add = var:white_odds_show_a
add = var:white_odds_show_b
}
multiply = 100
min = 1
max = 99
}
}
# REDS
# Initialize variables
set_variable = {
name = red_odds_show_a
value = 0
}
set_variable = {
name = red_odds_show_b
value = 0
}
# Account for each team member
every_guest_subset = {
name = charioteers
limit = { has_trait = charioteer_red }
scope:activity = {
change_variable = {
name = red_odds_show_a
add = {
value = prev.var:odds_show_a
min = 1
}
}
}
}
# Set the B variable based on the total amount of chance - the opporutnity for success
change_variable = {
name = red_odds_show_b
add = {
value = var:total_chance_show
subtract = var:red_odds_show_a
min = 1
}
}
# Calculate the percentage chance of success for readability
set_variable = {
name = red_percent_chance_to_show
value = {
add = var:red_odds_show_a
divide = {
value = 0
add = var:red_odds_show_a
add = var:red_odds_show_b
}
multiply = 100
min = 1
max = 99
}
}
}
}
calculate_chariot_payout_effect = {
scope:activity = {
every_guest_subset = {
name = charioteers
set_variable = {
name = win_payout
value = {
add = var:odds_win_b
subtract = {
value = var:odds_win_b
multiply = 0.3
}
save_temporary_value_as = temp_val
subtract = {
value = scope:temp_val
multiply = bookkeeper_small_commission_value
round = yes
}
divide = var:odds_win_a
add = 1
min = 1.1
}
}
set_variable = {
name = place_payout
value = {
add = var:odds_place_b
subtract = {
value = var:odds_place_b
multiply = 0.3
}
save_temporary_value_as = temp_val
subtract = {
value = scope:temp_val
multiply = bookkeeper_medium_commission_value
round = yes
}
divide = var:odds_place_a
add = 1
min = 1.1
}
}
set_variable = {
name = show_payout
value = {
add = var:odds_show_b
subtract = {
value = var:odds_show_b
multiply = 0.3
}
save_temporary_value_as = temp_val
subtract = {
value = scope:temp_val
multiply = bookkeeper_large_commission_value
round = yes
}
divide = var:odds_show_a
add = 1
min = 1.1
}
}
}
set_variable = {
name = blue_win_payout
value = {
add = var:blue_odds_win_b
subtract = {
value = var:blue_odds_win_b
multiply = bookkeeper_small_commission_value
round = yes
}
divide = var:blue_odds_win_a
add = 1
min = 1.1
}
}
set_variable = {
name = blue_place_payout
value = {
add = var:blue_odds_place_b
subtract = {
value = var:blue_odds_place_b
multiply = bookkeeper_medium_commission_value
round = yes
}
divide = var:blue_odds_place_a
add = 1
min = 1.1
}
}
set_variable = {
name = blue_show_payout
value = {
add = var:blue_odds_show_b
subtract = {
value = var:blue_odds_show_b
multiply = bookkeeper_large_commission_value
round = yes
}
divide = var:blue_odds_show_a
add = 1
min = 1.1
}
}
set_variable = {
name = green_win_payout
value = {
add = var:green_odds_win_b
subtract = {
value = var:green_odds_win_b
multiply = bookkeeper_small_commission_value
round = yes
}
divide = var:green_odds_win_a
add = 1
min = 1.1
}
}
set_variable = {
name = green_place_payout
value = {
add = var:green_odds_place_b
subtract = {
value = var:green_odds_place_b
multiply = bookkeeper_medium_commission_value
round = yes
}
divide = var:green_odds_place_a
add = 1
min = 1.1
}
}
set_variable = {
name = green_show_payout
value = {
add = var:green_odds_show_b
subtract = {
value = var:green_odds_show_b
multiply = bookkeeper_large_commission_value
round = yes
}
divide = var:green_odds_show_a
add = 1
min = 1.1
}
}
set_variable = {
name = white_win_payout
value = {
add = var:white_odds_win_b
subtract = {
value = var:white_odds_win_b
multiply = bookkeeper_small_commission_value
round = yes
}
divide = var:white_odds_win_a
add = 1
min = 1.1
}
}
set_variable = {
name = white_place_payout
value = {
add = var:white_odds_place_b
subtract = {
value = var:white_odds_place_b
multiply = bookkeeper_medium_commission_value
round = yes
}
divide = var:white_odds_place_a
add = 1
min = 1.1
}
}
set_variable = {
name = white_show_payout
value = {
add = var:white_odds_show_b
subtract = {
value = var:white_odds_show_b
multiply = bookkeeper_large_commission_value
round = yes
}
divide = var:white_odds_show_a
add = 1
min = 1.1
}
}
set_variable = {
name = red_win_payout
value = {
add = var:red_odds_win_b
subtract = {
value = var:red_odds_win_b
multiply = bookkeeper_small_commission_value
round = yes
}
divide = var:red_odds_win_a
add = 1
min = 1.1
}
}
set_variable = {
name = red_place_payout
value = {
add = var:red_odds_place_b
subtract = {
value = var:red_odds_place_b
multiply = bookkeeper_medium_commission_value
round = yes
}
divide = var:red_odds_place_a
add = 1
min = 1.1
}
}
set_variable = {
name = red_show_payout
value = {
add = var:red_odds_show_b
subtract = {
value = var:red_odds_show_b
multiply = bookkeeper_large_commission_value
round = yes
}
divide = var:red_odds_show_a
add = 1
min = 1.1
}
}
}
}
set_or_increment_lucky_better_variable = {
if = {
limit = {
NOT = { has_variable = lucky_bet_counter }
}
set_variable = {
name = lucky_bet_counter
value = 1
}
}
else = {
change_variable = {
name = lucky_bet_counter
add = 1
}
if = {
limit = {
var:lucky_bet_counter >= 5
has_any_nickname = no
}
send_interface_toast = {
# works for our purposes "New Nickname"
title = sell_titles_nickname_gained
left_icon = this
give_nickname = nick_the_lucky
}
}
}
}
disburse_chariot_race_activity_host_rewards = {
scope:activity = {
add_activity_log_entry = {
key = chariot_race_host_rewards
score = 100
show_in_conclusion = yes
character = root
location = root.location
root = {
# Some base influence
change_influence = medium_influence_gain
# Extra influence rewards for having a successful wager
if = {
limit = {
has_character_flag = successful_bet
has_variable = wager_type
}
switch = {
trigger = var:wager_type
flag:win = {
change_influence = medium_influence_gain
}
flag:place = {
change_influence = minor_influence_gain
}
flag:show = {
change_influence = miniscule_influence_gain
}
}
}
# Rewards for employing a charioteer who wins/places/shows
if = {
limit = { employs_court_position = charioteer_court_position }
if = {
limit = {
any_court_position_holder = {
type = charioteer_court_position
scope:activity.var:first_place ?= this
}
}
change_influence = monumental_influence_gain
}
else_if = {
limit = {
any_court_position_holder = {
type = charioteer_court_position
scope:activity.var:second_place ?= this
}
}
change_influence = massive_influence_gain
}
else_if = {
limit = {
any_court_position_holder = {
type = charioteer_court_position
scope:activity.var:third_place ?= this
}
}
change_influence = major_influence_gain
}
}
#Legitimacy and popular opinion for how fancy your chariot races were
if = {
limit = {
scope:activity = {
has_activity_option = {
category = chariot_option_entertainment
option = chariot_entertainment_bad
}
}
}
if = {
limit = {
scope:host.capital_county = {
county_opinion > 0
}
}
add_legitimacy = miniscule_legitimacy_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = major_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
custom_tooltip = chariot_race_reward_high_county_opinion_tt
}
else_if = {
limit = {
scope:host.capital_county = {
county_opinion <= -50
}
}
add_legitimacy = 5
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = medium_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
custom_tooltip = chariot_race_reward_low_county_opinion_tt
}
else = {
add_legitimacy = 10
}
}
else_if = {
limit = {
scope:activity = {
has_activity_option = {
category = chariot_option_entertainment
option = chariot_entertainment_normal
}
}
}
if = {
limit = {
scope:host.capital_county = {
county_opinion > 0
}
}
add_legitimacy = minor_legitimacy_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = massive_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
capital_county = {
change_county_control = miniscule_county_control_gain
}
custom_tooltip = chariot_race_reward_high_county_opinion_tt
}
else_if = {
limit = {
scope:host.capital_county = {
county_opinion <= -50
}
}
add_legitimacy = 10
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = major_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
custom_tooltip = chariot_race_reward_low_county_opinion_tt
}
else = {
add_legitimacy = miniscule_legitimacy_gain
}
scope:host.capital_county = {
add_county_modifier = {
modifier = ep3_chariot_race_weak_appeasement_modifier
years = 10
}
}
}
else_if = {
limit = {
scope:activity = {
has_activity_option = {
category = chariot_option_entertainment
option = chariot_entertainment_good
}
}
}
if = {
limit = {
scope:host.capital_county = {
county_opinion > 0
}
}
add_legitimacy = medium_legitimacy_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = monumental_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
capital_county = {
change_county_control = minor_county_control_gain
}
custom_tooltip = chariot_race_reward_high_county_opinion_tt
}
else_if = {
limit = {
scope:host.capital_county = {
county_opinion <= -50
}
}
add_legitimacy = miniscule_legitimacy_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = miniscule_stress_loss
athletic = massive_stress_loss
gregarious = miniscule_stress_loss
}
}
custom_tooltip = chariot_race_reward_low_county_opinion_tt
}
else = {
add_legitimacy = minor_legitimacy_gain
}
scope:host.capital_county = {
add_county_modifier = {
modifier = ep3_chariot_race_strong_appeasement_modifier
years = 10
}
}
}
}
}
}
}
disburse_chariot_race_activity_spectator_rewards = {
# Some smaller amounts of Influence rewards for having a successful wager
if = {
limit = {
has_character_flag = successful_bet
has_variable = wager_type
}
switch = {
trigger = var:wager_type
flag:win = {
change_influence = medium_influence_gain
}
flag:place = {
change_influence = minor_influence_gain
}
flag:show = {
change_influence = miniscule_influence_gain
}
}
}
# Rewards for employing a charioteer who wins/places/shows
# You get more influence if your charioteer is successful
if = {
limit = {
any_court_position_holder = {
type = charioteer_court_position
scope:activity.var:first_place ?= this
}
}
change_influence = monumental_influence_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = monumental_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
}
else_if = {
limit = {
any_court_position_holder = {
type = charioteer_court_position
scope:activity.var:second_place ?= this
}
}
change_influence = massive_influence_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = massive_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
}
else_if = {
limit = {
any_court_position_holder = {
type = charioteer_court_position
scope:activity.var:third_place ?= this
}
}
change_influence = major_influence_gain
if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = massive_stress_loss
athletic = miniscule_stress_loss
gregarious = miniscule_stress_loss
}
}
}
else_if = {
limit = { has_activity_intent = reduce_stress_intent }
stress_impact = {
base = miniscule_stress_loss
athletic = major_stress_loss
gregarious = miniscule_stress_loss
}
}
}
disburse_chariot_race_activity_charioteer_rewards = {
# Give them some xp based on place finished
if = {
limit = { this = scope:activity.var:first_place }
scope:activity = {
add_activity_log_entry = {
key = charioteer_gained_trait_xp_key
score = 110
character = scope:activity.var:first_place
scope:activity.var:first_place = {
distribute_charioteer_trait_xp_effect = { VALUE = 15 } }
}
}
}
else_if = {
limit = { this = scope:activity.var:second_place }
scope:activity = {
add_activity_log_entry = {
key = charioteer_gained_trait_xp_key
score = 110
character = scope:activity.var:second_place
scope:activity.var:second_place = { distribute_charioteer_trait_xp_effect = { VALUE = 12 } }
}
}
}
else_if = {
limit = { this = scope:activity.var:third_place }
scope:activity = {
add_activity_log_entry = {
key = charioteer_gained_trait_xp_key
score = 110
character = scope:activity.var:third_place
scope:activity.var:third_place = { distribute_charioteer_trait_xp_effect = { VALUE = 8 } }
}
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = charioteer_gained_trait_xp_key
score = 110
character = prev
prev = { distribute_charioteer_trait_xp_effect = { VALUE = 3 } }
}
}
}
}
# Used to show how much a character gets from a successful wager in end of the race event chariot_race.0600
individual_chariot_race_payout_effect = {
save_scope_as = current_gambler
if = {
limit = {
var:wager_type ?= flag:win
var:wager_target ?= scope:activity.var:first_place
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:first_place.var:win_payout
max = scope:current_gambler.monumental_gold_value
}
}
else_if = {
limit = {
var:wager_type ?= flag:place
OR = {
var:wager_target ?= scope:activity.var:first_place
var:wager_target ?= scope:activity.var:second_place
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:second_place.var:place_payout
max = scope:current_gambler.monumental_gold_value
}
}
else_if = {
limit = {
var:wager_type ?= flag:show
OR = {
var:wager_target ?= scope:activity.var:first_place
var:wager_target ?= scope:activity.var:second_place
var:wager_target ?= scope:activity.var:third_place
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:third_place.var:show_payout
max = scope:current_gambler.monumental_gold_value
}
}
# Handle team based bets
else_if = {
limit = {
var:wager_type ?= flag:win
var:wager_target ?= scope:current_gambler
}
switch = {
trigger = var:wager_team
flag:blues = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_blue } }
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:greens = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_green } }
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:whites = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_white } }
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:reds = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_red } }
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
}
}
else_if = {
limit = {
var:wager_type ?= flag:place
var:wager_target ?= scope:current_gambler
}
switch = {
trigger = var:wager_team
flag:blues = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_blue }
scope:activity.var:second_place = { has_trait = charioteer_blue }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:greens = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_green }
scope:activity.var:second_place = { has_trait = charioteer_green }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:whites = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_white }
scope:activity.var:second_place = { has_trait = charioteer_white }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:reds = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_red }
scope:activity.var:second_place = { has_trait = charioteer_red }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
}
}
else_if = {
limit = {
var:wager_type ?= flag:show
var:wager_target ?= scope:current_gambler
}
switch = {
trigger = var:wager_team
flag:blues = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_blue }
scope:activity.var:second_place = { has_trait = charioteer_blue }
scope:activity.var:third_place = { has_trait = charioteer_blue }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:greens = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_green }
scope:activity.var:second_place = { has_trait = charioteer_green }
scope:activity.var:third_place = { has_trait = charioteer_green }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:whites = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_white }
scope:activity.var:second_place = { has_trait = charioteer_white }
scope:activity.var:third_place = { has_trait = charioteer_white }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
flag:reds = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_red }
scope:activity.var:second_place = { has_trait = charioteer_red }
scope:activity.var:third_place = { has_trait = charioteer_red }
}
}
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
}
}
}
else_if = {
limit = { has_variable = wager_value }
custom_tooltip = chariot_race_lost_bet_tt
}
}
chariot_race_payout_effect = {
scope:activity = {
every_guest_subset = {
name = spectators
save_scope_as = current_gambler
if = {
limit = {
var:wager_type ?= flag:win
var:wager_target ?= scope:activity.var:first_place
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_char_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:first_place.var:win_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:first_place.var:win_payout
}
}
}
}
}
else_if = {
limit = {
var:wager_type ?= flag:place
OR = {
var:wager_target ?= scope:activity.var:first_place
var:wager_target ?= scope:activity.var:second_place
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_char_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:second_place.var:place_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:second_place.var:place_payout
}
}
}
}
}
else_if = {
limit = {
var:wager_type ?= flag:show
OR = {
var:wager_target ?= scope:activity.var:first_place
var:wager_target ?= scope:activity.var:second_place
var:wager_target ?= scope:activity.var:third_place
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_char_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:third_place.var:show_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:third_place.var:show_payout
}
}
}
}
}
# Handle team based bets
else_if = {
limit = {
var:wager_type ?= flag:win
var:wager_target ?= this
}
switch = {
trigger = var:wager_team
flag:blues = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_blue } }
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_win_payout
}
}
}
}
}
}
flag:greens = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_green } }
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_win_payout
}
}
}
}
}
}
flag:whites = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_white } }
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_win_payout
}
}
}
}
}
}
flag:reds = {
if = {
limit = { scope:activity.var:first_place = { has_trait = charioteer_red } }
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_win_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_win_payout
}
}
}
}
}
}
}
}
else_if = {
limit = {
var:wager_type ?= flag:place
var:wager_target ?= this
}
switch = {
trigger = var:wager_team
flag:blues = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_blue }
scope:activity.var:second_place = { has_trait = charioteer_blue }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_place_payout
}
}
}
}
}
}
flag:greens = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_green }
scope:activity.var:second_place = { has_trait = charioteer_green }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_place_payout
}
}
}
}
}
}
flag:whites = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_white }
scope:activity.var:second_place = { has_trait = charioteer_white }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_place_payout
}
}
}
}
}
}
flag:reds = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_red }
scope:activity.var:second_place = { has_trait = charioteer_red }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_place_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_place_payout
}
}
}
}
}
}
}
}
else_if = {
limit = {
var:wager_type ?= flag:show
var:wager_target ?= this
}
switch = {
trigger = var:wager_team
flag:blues = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_blue }
scope:activity.var:second_place = { has_trait = charioteer_blue }
scope:activity.var:third_place = { has_trait = charioteer_blue }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:blue_show_payout
}
}
}
}
}
}
flag:greens = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_green }
scope:activity.var:second_place = { has_trait = charioteer_green }
scope:activity.var:third_place = { has_trait = charioteer_green }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:green_show_payout
}
}
}
}
}
}
flag:whites = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_white }
scope:activity.var:second_place = { has_trait = charioteer_white }
scope:activity.var:third_place = { has_trait = charioteer_white }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:white_show_payout
}
}
}
}
}
}
flag:reds = {
if = {
limit = {
OR = {
scope:activity.var:first_place = { has_trait = charioteer_red }
scope:activity.var:second_place = { has_trait = charioteer_red }
scope:activity.var:third_place = { has_trait = charioteer_red }
}
}
set_or_increment_lucky_better_variable = yes
add_character_flag = successful_bet
scope:activity = {
add_activity_log_entry = {
key = chariot_race_betting_team_outcome_key
score = 100
show_in_conclusion = yes
character = scope:current_gambler
scope:current_gambler = {
add_gold = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_show_payout
max = scope:current_gambler.monumental_gold_value
}
}
change_variable = {
name = chariot_race_pot
subtract = {
value = scope:current_gambler.var:wager_value
multiply = scope:activity.var:red_show_payout
}
}
}
}
}
}
}
}
}
}
}
clear_placement_variables_effect = {
switch = {
trigger = has_variable
first_place = { remove_variable = first_place }
second_place = { remove_variable = second_place }
third_place = { remove_variable = third_place }
fourth_place = { remove_variable = fourth_place }
fifth_place = { remove_variable = fifth_place }
sixth_place = { remove_variable = sixth_place }
seventh_place = { remove_variable = seventh_place }
eighth_place = { remove_variable = eighth_place }
ninth_place = { remove_variable = ninth_place }
tenth_place = { remove_variable = tenth_place }
eleventh_place = { remove_variable = eleventh_place }
twelfth_place = { remove_variable = twelfth_place }
}
}
chariot_race_remove_variables_effect = {
scope:activity = {
# Clean up variables we used for calculations on both Charioteers and Spectators
every_guest_subset = {
name = charioteers
remove_variable = odds_win_a
remove_variable = odds_win_b
remove_variable = odds_place_a
remove_variable = odds_place_b
remove_variable = odds_show_a
remove_variable = odds_show_b
remove_variable = percent_chance_to_win
remove_variable = percent_chance_to_place
remove_variable = percent_chance_to_show
remove_variable = win_payout
remove_variable = place_payout
remove_variable = show_payout
remove_variable = current_place_in_race
}
every_guest_subset = {
name = spectators
remove_variable = wager_team
remove_variable = wager_type
remove_variable = wager_target
remove_variable = wager_value
if = {
limit = { has_character_flag = successful_bet }
remove_character_flag = successful_bet
}
}
# Really for error suppression only since variables saved on activities are destroyed when the activity is over
switch = {
trigger = has_variable
blue_percent_chance_to_win = { remove_variable = blue_percent_chance_to_win }
blue_percent_chance_to_show = { remove_variable = blue_percent_chance_to_show }
blue_percent_chance_to_place = { remove_variable = blue_percent_chance_to_place }
green_percent_chance_to_win = { remove_variable = green_percent_chance_to_win }
green_percent_chance_to_place = { remove_variable = green_percent_chance_to_place }
green_percent_chance_to_show = { remove_variable = green_percent_chance_to_show }
white_percent_chance_to_place = { remove_variable = white_percent_chance_to_place }
white_percent_chance_to_win = { remove_variable = white_percent_chance_to_win }
white_percent_chance_to_show = { remove_variable = white_percent_chance_to_show }
red_percent_chance_to_win = { remove_variable = red_percent_chance_to_win }
red_percent_chance_to_place = { remove_variable = red_percent_chance_to_place }
red_percent_chance_to_show = { remove_variable = red_percent_chance_to_show }
dead_charioteers = { remove_variable = dead_charioteers }
}
clear_placement_variables_effect = yes
}
}
advance_place_in_ranking_effect = {
$NEW_LEADING_CHAR$ = { save_scope_as = char_advanced }
$NEW_TRAILING_CHAR$ = { save_scope_as = char_passed }
scope:char_advanced = {
change_variable = {
name = chariot_race_victory_score
add = {
value = scope:char_passed.var:chariot_race_victory_score
subtract = scope:char_advanced.var:chariot_race_victory_score
add = 1
}
}
}
scope:activity = { update_chariot_race_standings_effect = yes }
}
# Use this effect to update the current standings of the race based on each charioteer's victory score
update_chariot_race_standings_effect = {
scope:activity = {
# Ensure we have dead characters saved for the gui
if = {
limit = {
has_variable = first_place
var:first_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:first_place
}
}
else_if = {
limit = {
has_variable = second_place
var:second_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:second_place
}
}
else_if = {
limit = {
has_variable = third_place
var:third_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:third_place
}
}
else_if = {
limit = {
has_variable = fourth_place
var:fourth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:fourth_place
}
}
else_if = {
limit = {
has_variable = fifth_place
var:fifth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:fifth_place
}
}
else_if = {
limit = {
has_variable = sixth_place
var:sixth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:sixth_place
}
}
else_if = {
limit = {
has_variable = seventh_place
var:seventh_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:seventh_place
}
}
else_if = {
limit = {
has_variable = eighth_place
var:eighth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:eighth_place
}
}
else_if = {
limit = {
has_variable = ninth_place
var:ninth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:ninth_place
}
}
else_if = {
limit = {
has_variable = tenth_place
var:tenth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:tenth_place
}
}
else_if = {
limit = {
has_variable = eleventh_place
var:eleventh_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:eleventh_place
}
}
else_if = {
limit = {
has_variable = twelfth_place
var:twelfth_place = { is_alive = no }
}
add_to_variable_list = {
name = dead_charioteers
target = var:twelfth_place
}
}
# Clear the variables so we get rid of any dead characters
clear_placement_variables_effect = yes
# Get a count of how many living charioteers we have
set_variable = {
name = num_charioteers
value = 0
}
# Iterate over the list of charioteers and save each as a variable according to their place
ordered_guest_subset = {
name = charioteers
order_by = charioteer_victory_score_value
max = 12
check_range_bounds = no
limit = { is_alive = yes }
save_temporary_scope_as = current_charioteer
# increment variable
scope:activity = {
change_variable = {
name = num_charioteers
add = 1
}
}
if = {
limit = { has_variable = current_place_in_race }
remove_variable = current_place_in_race
}
# scripted effect to set variable based on current count (num_charioteers)
assign_charioteer_to_place_variable_effect = yes
}
}
}
# Used in update_chariot_race_standings_effect to set variables on both the activity and the individual charioteers
assign_charioteer_to_place_variable_effect = {
scope:activity = {
switch = {
trigger = var:num_charioteers
1 = {
set_variable = {
name = first_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 1
}
}
}
2 = {
set_variable = {
name = second_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 2
}
}
}
3 = {
set_variable = {
name = third_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 3
}
}
}
4 = {
set_variable = {
name = fourth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 4
}
}
}
5 = {
set_variable = {
name = fifth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 5
}
}
}
6 = {
set_variable = {
name = sixth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 6
}
}
}
7 = {
set_variable = {
name = seventh_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 7
}
}
}
8 = {
set_variable = {
name = eighth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 8
}
}
}
9 = {
set_variable = {
name = ninth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 9
}
}
}
10 = {
set_variable = {
name = tenth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 10
}
}
}
11 = {
set_variable = {
name = eleventh_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 11
}
}
}
12 = {
set_variable = {
name = twelfth_place
value = scope:current_charioteer
}
scope:current_charioteer = {
set_variable = {
name = current_place_in_race
value = 12
}
}
}
}
}
}
distribute_charioteer_trait_xp_effect = {
switch = {
trigger = has_trait
charioteer_blue = {
if = {
limit = { has_court_position = charioteer_court_position }
employer = {
send_interface_toast = {
title = charioteer_trait_xp_gain_message
left_icon = prev
prev = {
add_trait_xp = {
trait = charioteer_blue
value = $VALUE$
}
}
}
}
}
else = {
add_trait_xp = {
trait = charioteer_blue
value = $VALUE$
}
}
}
charioteer_green = {
if = {
limit = { has_court_position = charioteer_court_position }
employer = {
send_interface_toast = {
title = charioteer_trait_xp_gain_message
left_icon = prev
prev = {
add_trait_xp = {
trait = charioteer_green
value = $VALUE$
}
}
}
}
}
else = {
add_trait_xp = {
trait = charioteer_green
value = $VALUE$
}
}
}
charioteer_white = {
if = {
limit = { has_court_position = charioteer_court_position }
employer = {
send_interface_toast = {
title = charioteer_trait_xp_gain_message
left_icon = prev
prev = {
add_trait_xp = {
trait = charioteer_white
value = $VALUE$
}
}
}
}
}
else = {
add_trait_xp = {
trait = charioteer_white
value = $VALUE$
}
}
}
charioteer_red = {
if = {
limit = { has_court_position = charioteer_court_position }
employer = {
send_interface_toast = {
title = charioteer_trait_xp_gain_message
left_icon = prev
prev = {
add_trait_xp = {
trait = charioteer_red
value = $VALUE$
}
}
}
}
}
else = {
add_trait_xp = {
trait = charioteer_red
value = $VALUE$
}
}
}
}
}
remove_dead_charioteer_from_race = {
scope:activity = {
add_to_variable_list = {
name = dead_charioteers
target = prev
}
}
}
### END CHARIOT RACE
ep3_send_akolouthos_message_loyal = {
send_interface_message = {
type = msg_akolouthos_steels_varangians
title = ep3_akolouthos_events.1000
desc = ep3_akolouthos_events.1000_loyal_notification_tooltip
left_icon = scope:trait_getter
scope:trait_getter = {
add_trait = loyal
add_opinion = {
target = root
modifier = loyalty_opinion
opinion = 40
}
}
custom_tooltip = akolouthos_effect_tooltip
}
}
ep3_send_akolouthos_message_varangian = {
send_interface_message = {
type = msg_akolouthos_steels_varangians
title = ep3_akolouthos_events.1000
desc = ep3_akolouthos_events.1000_varangian_notification_tooltip
left_icon = scope:trait_getter
scope:trait_getter = {
add_trait = varangian
add_opinion = {
target = root
modifier = loyalty_opinion
opinion = 40
}
}
custom_tooltip = akolouthos_effect_tooltip
}
}
ep3_palace_looting_random_malus_effect = {
if = {
limit = {
has_character_flag = malus_court_grandeur
var:varangian_regiments >= 7
}
change_current_court_grandeur = massive_court_grandeur_loss
}
else_if = {
limit = {
has_character_flag = malus_court_grandeur
var:varangian_regiments >= 4
}
change_current_court_grandeur = major_court_grandeur_loss
}
else_if = {
limit = {
has_character_flag = malus_court_grandeur
}
change_current_court_grandeur = medium_court_grandeur_loss
}
if = {
limit = {
has_character_flag = malus_broken_artifact
}
scope:broken_artifact = {
add_durability = -40
}
}
if = {
limit = {
has_character_flag = malus_stolen_artifact
}
destroy_artifact = scope:stolen_artifact
}
}
ep3_child_castration_effect = {
add_trait = beardless_eunuch
torture_memory_effect = {
VICTIM = scope:recipient
TORTURER = scope:actor
TYPE = castrated_beardless
}
#Eunuch bonus effects
custom_tooltip = castration_increased_aptitude
if = {
limit = {
scope:actor = {
is_landed_or_landless_administrative = yes
}
}
custom_tooltip = castration_governor_efficiency
}
#might get hurt
custom_tooltip = castration_wounded_chance
hidden_effect = {
random_list = {
5 = {
add_character_modifier = {
modifier = brutal_castration_modifier
years = 5
}
}
5 = {
modifier = {
add = 5
employs_court_position = court_physician_court_position
}
modifier = {
add = 5
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 1
}
}
}
modifier = {
add = 10
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 2
}
}
}
modifier = {
add = 10
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 3
}
}
}
modifier = {
add = 10
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 4
}
}
}
}
}
}
}
ep3_youth_castration_effect = {
add_trait = eunuch_1
torture_memory_effect = {
VICTIM = scope:recipient
TORTURER = scope:actor
TYPE = castrated
}
#eunuch bonus effects
custom_tooltip = castration_increased_aptitude
if = {
limit = {
scope:actor = {
is_landed_or_landless_administrative = yes
}
}
custom_tooltip = castration_governor_efficiency
}
#might get wounded
custom_tooltip = castration_wounded_chance
hidden_effect = {
random_list = {
10 = {
add_character_modifier = {
modifier = brutal_castration_modifier
years = 5
}
}
5 = {
modifier = {
add = 5
employs_court_position = court_physician_court_position
}
modifier = {
add = 5
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 1
}
}
}
modifier = {
add = 10
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 2
}
}
}
modifier = {
add = 10
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 3
}
}
}
modifier = {
add = 10
employs_court_position = court_physician_court_position
court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 4
}
}
}
}
}
}
}
ep3_greek_fire_success_effect = {
scope:invading_commander = {
add_character_modifier = {
modifier = ravaged_by_greek_fire_modifier
years = 1
}
add_stress = major_stress_impact_gain
}
scope:army = {
deplete_army_by_percentage = 0.9
}
scope:invading_commander = {
custom_tooltip = two_knights_killed_tooltip
hidden_effect = {
scope:knight_1 ?= {
death = {
death_reason = death_greek_fire
killer = scope:city_defender
}
}
scope:knight_2 ?= {
death = {
death_reason = death_greek_fire
killer = scope:city_defender
}
}
}
custom_tooltip = three_knights_killed_tooltip
hidden_effect = {
scope:knight_3 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
scope:knight_4 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
scope:knight_5 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
}
}
}
ep3_greek_fire_fail_effect = {
scope:invading_commander = {
add_character_modifier = {
modifier = assaulted_by_greek_fire_modifier
years = 1
}
add_stress = medium_stress_impact_gain
}
scope:knight_1 ?= {
death = {
death_reason = death_greek_fire
killer = scope:city_defender
}
}
scope:army = {
deplete_army_by_percentage = 0.4
}
scope:invading_commander = {
custom_tooltip = two_knights_wounded_tooltip
hidden_effect = {
scope:knight_2 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
scope:knight_3 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
}
}
}
ep3_greek_fire_crit_fail_effect = {
scope:invading_commander = {
add_character_modifier = {
modifier = assaulted_by_greek_fire_modifier
years = 1
}
}
scope:army = {
deplete_army_by_percentage = 0.1
}
scope:invading_commander = {
custom_tooltip = two_knights_wounded_tooltip
hidden_effect = {
scope:knight_1 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
scope:knight_2 ?= {
increase_wounds_effect = { REASON = greek_fire }
}
}
}
root.capital_county = {
add_county_modifier = {
modifier = defenders_immolated_modifier
years = 10
}
}
#You lose the greek fire fleet modifier
title:c_byzantion = {
remove_county_modifier = defensive_fire_dromons_modifier
}
}
save_traveler_culture_effect = {
random_culture_global = {
limit = {
exists = culture_head
this != root.culture
}
save_scope_as = traveler_culture
}
#save second culture
random_culture_global = {
limit = {
exists = culture_head
this != root.culture
OR = {
AND = {
culture_overlaps_geographical_region = world_europe
scope:traveler_culture = { culture_overlaps_geographical_region = world_europe }
}
AND = {
culture_overlaps_geographical_region = world_asia_minor
scope:traveler_culture = { culture_overlaps_geographical_region = world_europe }
}
AND = {
culture_overlaps_geographical_region = world_europe
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_minor }
}
AND = {
culture_overlaps_geographical_region = world_asia_minor
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_minor }
}
AND = {
culture_overlaps_geographical_region = world_asia_minor
scope:traveler_culture = { culture_overlaps_geographical_region = world_middle_east }
}
AND = {
culture_overlaps_geographical_region = world_middle_east
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_minor }
}
AND = {
culture_overlaps_geographical_region = world_middle_east
scope:traveler_culture = { culture_overlaps_geographical_region = world_middle_east }
}
AND = {
culture_overlaps_geographical_region = world_africa
scope:traveler_culture = { culture_overlaps_geographical_region = world_africa }
}
AND = {
culture_overlaps_geographical_region = world_steppe
scope:traveler_culture = { culture_overlaps_geographical_region = world_steppe }
}
AND = {
culture_overlaps_geographical_region = world_tibet
scope:traveler_culture = { culture_overlaps_geographical_region = world_tibet }
}
AND = {
culture_overlaps_geographical_region = world_tibet
scope:traveler_culture = { culture_overlaps_geographical_region = world_india}
}
AND = {
culture_overlaps_geographical_region = world_india
scope:traveler_culture = { culture_overlaps_geographical_region = world_tibet }
}
AND = {
culture_overlaps_geographical_region = world_india
scope:traveler_culture = { culture_overlaps_geographical_region = world_india }
}
AND = {
culture_overlaps_geographical_region = world_burma
scope:traveler_culture = { culture_overlaps_geographical_region = world_india }
}
AND = {
culture_overlaps_geographical_region = world_india
scope:traveler_culture = { culture_overlaps_geographical_region = world_burma }
}
AND = {
culture_overlaps_geographical_region = world_tibet
scope:traveler_culture = { culture_overlaps_geographical_region = world_burma }
}
AND = {
culture_overlaps_geographical_region = world_burma
scope:traveler_culture = { culture_overlaps_geographical_region = world_tibet }
}
AND = {
culture_overlaps_geographical_region = world_tibet
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_china }
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_china }
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_southeast }
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_korea }
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_japan }
}
AND = {
culture_overlaps_geographical_region = world_asia_korea
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_china }
}
AND = {
culture_overlaps_geographical_region = world_asia_korea
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_japan }
}
AND = {
culture_overlaps_geographical_region = world_asia_korea
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_korea }
}
AND = {
culture_overlaps_geographical_region = world_asia_japan
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_japan }
}
AND = {
culture_overlaps_geographical_region = world_asia_japan
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_china }
}
AND = {
culture_overlaps_geographical_region = world_asia_japan
scope:traveler_culture = { culture_overlaps_geographical_region = world_asia_korea }
}
}
cultural_acceptance = {
target = scope:traveler_culture
value >= 5
}
}
alternative_limit = {
this = root.culture
}
save_scope_as = traveler_culture_2
}
}
ep3_ai_castration_effect = {
random = {
chance = 50
add_trait = beardless_eunuch
random_list = {
5 = {
add_character_modifier = {
modifier = brutal_castration_modifier
years = 5
}
}
5 = {}
5 = {
trigger = {
liege ?= { employs_court_position = court_physician_court_position }
}
modifier = {
add = 5
liege.court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 1
}
}
}
modifier = {
add = 10
liege.court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 2
}
}
}
modifier = {
add = 10
liege.court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 3
}
}
}
modifier = {
add = 10
liege.court_position:court_physician_court_position = {
aptitude = {
court_position = court_physician_court_position
value >= 4
}
}
}
}
}
}
}
ep3_story_cycle_admin_eunuch_upgrade_modifier_effect = {
save_scope_value_as = {
name = modifier_type
value = flag:$TYPE$
}
switch = {
trigger = has_character_modifier
admin_eunuch_$TYPE$_1_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_1_modifier }
add_character_modifier = admin_eunuch_$TYPE$_2_modifier
}
admin_eunuch_$TYPE$_2_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_2_modifier }
add_character_modifier = admin_eunuch_$TYPE$_3_modifier
}
admin_eunuch_$TYPE$_3_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_3_modifier }
add_character_modifier = admin_eunuch_$TYPE$_4_modifier
}
admin_eunuch_$TYPE$_4_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_4_modifier }
add_character_modifier = admin_eunuch_$TYPE$_5_modifier
}
admin_eunuch_$TYPE$_5_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_5_modifier }
add_character_modifier = admin_eunuch_$TYPE$_6_modifier
}
admin_eunuch_$TYPE$_6_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_6_modifier }
add_character_modifier = admin_eunuch_$TYPE$_7_modifier
}
admin_eunuch_$TYPE$_7_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_7_modifier }
add_character_modifier = admin_eunuch_$TYPE$_8_modifier
}
admin_eunuch_$TYPE$_8_modifier = {
if = {
limit = {
scope:modifier_type = flag:eunuch
NOT = { has_hook = top_liege }
}
add_hook = {
type = influence_hook
target = top_liege
}
}
else_if = {
limit = {
scope:modifier_type = flag:eunuch
NOT = { has_strong_hook = top_liege }
}
remove_hook = { target = top_liege }
add_hook = {
type = strong_influence_hook
target = top_liege
}
}
else = { change_influence = medium_influence_gain }
}
fallback = { add_character_modifier = admin_eunuch_$TYPE$_4_modifier }
}
}
ep3_story_cycle_admin_eunuch_matching_modifier_effect = {
$FIRST$ = {
switch = {
trigger = has_character_modifier
admin_eunuch_$FIRST_TYPE$_1_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_1_modifier }
}
admin_eunuch_$FIRST_TYPE$_2_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_2_modifier }
}
admin_eunuch_$FIRST_TYPE$_3_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_3_modifier }
}
admin_eunuch_$FIRST_TYPE$_4_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_4_modifier }
}
admin_eunuch_$FIRST_TYPE$_5_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_5_modifier }
}
admin_eunuch_$FIRST_TYPE$_6_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_6_modifier }
}
admin_eunuch_$FIRST_TYPE$_7_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_7_modifier }
}
admin_eunuch_$FIRST_TYPE$_8_modifier = {
$SECOND$ = { add_character_modifier = admin_eunuch_$SECOND_TYPE$_8_modifier }
}
}
}
}
ep3_story_cycle_admin_eunuch_downgrade_modifier_effect = {
save_scope_value_as = {
name = modifier_type
value = flag:$TYPE$
}
switch = {
trigger = has_character_modifier
admin_eunuch_$TYPE$_1_modifier = {
if = {
limit = { scope:modifier_type = flag:eunuch }
progress_towards_rival_effect = {
REASON = rival_admin_eunuch
CHARACTER = top_liege
OPINION = default_rival_opinion
}
}
else = { change_influence = medium_influence_loss }
}
admin_eunuch_$TYPE$_2_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_2_modifier }
add_character_modifier = admin_eunuch_$TYPE$_1_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = miniscule_influence_loss
}
}
admin_eunuch_$TYPE$_3_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_3_modifier }
add_character_modifier = admin_eunuch_$TYPE$_2_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = miniscule_influence_loss
}
}
admin_eunuch_$TYPE$_4_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_4_modifier }
add_character_modifier = admin_eunuch_$TYPE$_3_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = minor_influence_loss
}
}
admin_eunuch_$TYPE$_5_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_5_modifier }
add_character_modifier = admin_eunuch_$TYPE$_4_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = minor_influence_loss
}
}
admin_eunuch_$TYPE$_6_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_6_modifier }
add_character_modifier = admin_eunuch_$TYPE$_5_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = medium_influence_loss
}
}
admin_eunuch_$TYPE$_7_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_7_modifier }
add_character_modifier = admin_eunuch_$TYPE$_6_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = medium_influence_loss
}
}
admin_eunuch_$TYPE$_8_modifier = {
hidden_effect = { remove_character_modifier = admin_eunuch_$TYPE$_8_modifier }
add_character_modifier = admin_eunuch_$TYPE$_7_modifier
if = { # Harder to say no the further you go
limit = { scope:modifier_type = flag:liege }
change_influence = major_influence_loss
}
}
fallback = { add_character_modifier = admin_eunuch_$TYPE$_3_modifier }
}
}
ep3_story_cycle_admin_eunuch_clear_modifier_effect = {
switch = {
trigger = has_character_modifier
admin_eunuch_$TYPE$_1_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_1_modifier }
admin_eunuch_$TYPE$_2_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_2_modifier }
admin_eunuch_$TYPE$_3_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_3_modifier }
admin_eunuch_$TYPE$_4_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_4_modifier }
admin_eunuch_$TYPE$_5_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_5_modifier }
admin_eunuch_$TYPE$_6_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_6_modifier }
admin_eunuch_$TYPE$_7_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_7_modifier }
admin_eunuch_$TYPE$_8_modifier = { remove_character_modifier = admin_eunuch_$TYPE$_8_modifier }
}
}
ep3_give_eunuch_effect = {
$TAKER$ = {
add_courtier = $EUNUCH$
}
$GIVER$ = {
change_influence = {
value = 100
add = $EUNUCH$.sum_of_all_skills_value
if = {
limit = {
$EUNUCH$ = { has_trait = beardless_eunuch }
}
multiply = 1.5
}
}
}
}
##################################################
# Misc
##################################################
# Picks a random valid maa type for OWNER to create
ep3_pick_random_maa_regiment_effect = {
save_temporary_scope_value_as = {
name = include_basic_maa
value = $INCLUDE_BASIC_MAA$
}
save_temporary_scope_value_as = {
name = include_siege_maa
value = $INCLUDE_SIEGE_MAA$
}
$OWNER$ = {
random_list = {
1 = {
trigger = {
scope:include_basic_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:light_footmen
}
}
1 = {
trigger = {
scope:include_basic_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:bowmen
}
}
1 = {
trigger = {
scope:include_basic_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:light_horsemen
}
}
1 = {
trigger = {
scope:include_basic_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:pikemen_unit
}
}
# TRIBAL
1 = {
trigger = {
culture = { has_innovation = innovation_elephantry }
}
save_scope_value_as = {
name = maa_to_create
value = flag:war_elephant
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_war_camels }
}
save_scope_value_as = {
name = maa_to_create
value = flag:camel_rider
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_arched_saddle }
}
save_scope_value_as = {
name = maa_to_create
value = flag:armored_horsemen
}
}
1 = {
trigger = {
culture = {
has_innovation = innovation_catapult
NOR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:onager
}
}
1 = {
trigger = {
culture = {
has_innovation = innovation_catapult
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:ballista
}
}
# EARLY
1 = {
trigger = {
culture = { has_innovation = innovation_quilted_armor }
}
save_scope_value_as = {
name = maa_to_create
value = flag:armored_footmen
}
}
1 = {
trigger = {
culture = {
has_innovation = innovation_mangonel
NOR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:mangonel
}
}
1 = {
trigger = {
culture = {
has_innovation = innovation_mangonel
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:cloud_ladder
}
}
# HIGH
1 = {
trigger = {
culture = {
has_innovation = innovation_trebuchet
NOR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:trebuchet
}
}
1 = {
trigger = {
culture = {
has_innovation = innovation_trebuchet
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:siege_tower
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_advanced_bowmaking }
}
save_scope_value_as = {
name = maa_to_create
value = flag:crossbowmen
}
}
# LATE
1 = {
trigger = {
culture = {
has_cultural_parameter = unlock_late_medieval_gunpowder_units
NOR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:bombard
}
}
1 = {
trigger = {
culture = {
has_cultural_parameter = unlock_late_medieval_gunpowder_units
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_japonic
}
}
scope:include_siege_maa = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:cannon
}
}
# CULTURAL INNOVATIONS
1 = {
trigger = {
culture = { has_innovation = innovation_bamboo_bows }
}
save_scope_value_as = {
name = maa_to_create
value = flag:paiks
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_zweihanders }
}
save_scope_value_as = {
name = maa_to_create
value = flag:landsknecht
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_adaptive_militia }
}
save_scope_value_as = {
name = maa_to_create
value = flag:goedendag
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_valets }
}
save_scope_value_as = {
name = maa_to_create
value = flag:gendarme
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_rocket_cart }
}
save_scope_value_as = {
name = maa_to_create
value = flag:rocket_carts
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_pike_columns }
}
save_scope_value_as = {
name = maa_to_create
value = flag:picchieri
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_legionnaires }
}
save_scope_value_as = {
name = maa_to_create
value = flag:praetorian
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_desert_tactics }
}
save_scope_value_as = {
name = maa_to_create
value = flag:chasseur
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_caballeros }
}
save_scope_value_as = {
name = maa_to_create
value = flag:caballero
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_hobbies }
}
save_scope_value_as = {
name = maa_to_create
value = flag:hobelar
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_rectilinear_schiltron }
}
save_scope_value_as = {
name = maa_to_create
value = flag:schiltron
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_sahel_horsemen }
}
save_scope_value_as = {
name = maa_to_create
value = flag:sahel_horsemen
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_sarawit }
}
save_scope_value_as = {
name = maa_to_create
value = flag:sarawit
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_repeating_crossbow }
}
save_scope_value_as = {
name = maa_to_create
value = flag:shenbigong
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_pole_vault }
}
save_scope_value_as = {
name = maa_to_create
value = flag:guanch_vaulter
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_huscarls }
}
save_scope_value_as = {
name = maa_to_create
value = flag:huscarl
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_longbowmen }
}
save_scope_value_as = {
name = maa_to_create
value = flag:longbowmen
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_monaspa }
}
save_scope_value_as = {
name = maa_to_create
value = flag:monaspa
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_cataphract }
}
save_scope_value_as = {
name = maa_to_create
value = flag:cataphract
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_metsanvartija }
}
save_scope_value_as = {
name = maa_to_create
value = flag:metsanvartija
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_maturkan_warriors }
}
save_scope_value_as = {
name = maa_to_create
value = flag:maturkan_warriors
}
}
1 = {
trigger = {
OR = {
culture = { has_cultural_parameter = unlock_maa_horse_archers }
mpo_can_recruit_nomad_maa_trigger = yes
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:horse_archers
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_ayyar }
}
save_scope_value_as = {
name = maa_to_create
value = flag:ayyar
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_mubarizun }
}
save_scope_value_as = {
name = maa_to_create
value = flag:mubarizun
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_mulaththamun }
}
save_scope_value_as = {
name = maa_to_create
value = flag:mulaththamun
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_archers_of_the_nile }
}
save_scope_value_as = {
name = maa_to_create
value = flag:archers_of_the_nile
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_druzhina }
}
save_scope_value_as = {
name = maa_to_create
value = flag:druzhina
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_hussar }
}
save_scope_value_as = {
name = maa_to_create
value = flag:hussar
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_horn_warrior }
}
save_scope_value_as = {
name = maa_to_create
value = flag:horn_warrior
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_bush_hunter }
}
save_scope_value_as = {
name = maa_to_create
value = flag:bush_hunter
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_shomer }
}
save_scope_value_as = {
name = maa_to_create
value = flag:shomer
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_garudas }
}
save_scope_value_as = {
name = maa_to_create
value = flag:garudas
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_khandayat }
}
save_scope_value_as = {
name = maa_to_create
value = flag:khandayat
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_mountaineer }
}
save_scope_value_as = {
name = maa_to_create
value = flag:mountaineer
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_guinea_warrior }
}
save_scope_value_as = {
name = maa_to_create
value = flag:guinea_warrior
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_abudrar }
}
save_scope_value_as = {
name = maa_to_create
value = flag:abudrar
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_zbrojnosh }
}
save_scope_value_as = {
name = maa_to_create
value = flag:zbrojnosh
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_palace_guards }
}
save_scope_value_as = {
name = maa_to_create
value = flag:palace_guards
}
}
1 = {
trigger = {
dynasty ?= {
has_dynasty_perk = fp3_khvarenah_legacy_4
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:asawira
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_tarkhan }
}
save_scope_value_as = {
name = maa_to_create
value = flag:tarkhan
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_zupin_warrior }
}
save_scope_value_as = {
name = maa_to_create
value = flag:zupin_warrior
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_tawashi }
}
save_scope_value_as = {
name = maa_to_create
value = flag:tawashi
}
}
1 = {
trigger = {
dynasty ?= {
has_dynasty_perk = warfare_legacy_5
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:house_guard
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = archer_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_archers
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = skirmisher_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_skirmishers
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = pike_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_pikes
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = outrider_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_outriders
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = vanguard_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_vanguards
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = lancer_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_lancers
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = crossbowmen_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_crossbowers
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = camelry_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_cameliers
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = elephantry_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_elephantiers
}
}
1 = {
trigger = {
any_active_accolade = {
accolade_attribute_level = {
type = horse_archer_attribute
level >= 2
}
}
}
save_scope_value_as = {
name = maa_to_create
value = flag:accolade_maa_horse_archers
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_vigmen }
}
save_scope_value_as = {
name = maa_to_create
value = flag:vigmen
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_bondi }
}
save_scope_value_as = {
name = maa_to_create
value = flag:bondi
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_varangian_veterans }
}
save_scope_value_as = {
name = maa_to_create
value = flag:varangian_veterans
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_ayrudzi }
}
save_scope_value_as = {
name = maa_to_create
value = flag:ayrudzi
}
}
1 = {
trigger = {
mpo_can_recruit_nomad_maa_trigger = yes
}
save_scope_value_as = {
name = maa_to_create
value = flag:steppe_raiders
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_conrois }
}
save_scope_value_as = {
name = maa_to_create
value = flag:conrois
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_akritai }
}
save_scope_value_as = {
name = maa_to_create
value = flag:akritai
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_ballistrai }
}
save_scope_value_as = {
name = maa_to_create
value = flag:ballistrai
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_skoutatoi }
}
save_scope_value_as = {
name = maa_to_create
value = flag:skoutatoi
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_warrior_monk_units }
}
save_scope_value_as = {
name = maa_to_create
value = flag:warrior_monks
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_emishi_horse_archers_units }
}
save_scope_value_as = {
name = maa_to_create
value = flag:emishi_horse_archers
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_mounted_samurai_units }
}
save_scope_value_as = {
name = maa_to_create
value = flag:japanese_horse_archers
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_pesilat }
}
save_scope_value_as = {
name = maa_to_create
value = flag:pesilat_warriors
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_gakgung_archers }
}
save_scope_value_as = {
name = maa_to_create
value = flag:gakgung_archers
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_infantry_samurai_units }
}
save_scope_value_as = {
name = maa_to_create
value = flag:samurai
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_zhanmadao }
}
save_scope_value_as = {
name = maa_to_create
value = flag:zhanmadao_infantry
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_burenjia }
}
save_scope_value_as = {
name = maa_to_create
value = flag:burenjia
}
}
1 = {
trigger = {
culture = { has_innovation = innovation_tiefutu }
}
save_scope_value_as = {
name = maa_to_create
value = flag:tiefutu
}
}
1 = {
trigger = {
culture = { has_cultural_parameter = unlock_maa_black_armor_cavalry }
}
save_scope_value_as = {
name = maa_to_create
value = flag:black_armor_cavalry
}
}
1 = {
trigger = {
exists = scope:title
scope:title = title:e_byzantium
}
save_scope_value_as = {
name = maa_to_create
value = flag:varangian_guards
}
}
1 = {
trigger = {
domicile ?= { has_domicile_parameter = camp_unlocks_handpicked_faithful_maa_type }
}
save_scope_value_as = {
name = maa_to_create
value = flag:handpicked_faithful
}
}
}
}
#in case you don't fullfil any criteria just pick a random default maa
if = {
limit = {
NOT = { exists = scope:maa_to_create }
}
random_list = {
1 = {
save_scope_value_as = {
name = maa_to_create
value = flag:light_footmen
}
}
1 = {
save_scope_value_as = {
name = maa_to_create
value = flag:bowmen
}
}
1 = {
save_scope_value_as = {
name = maa_to_create
value = flag:light_horsemen
}
}
1 = {
save_scope_value_as = {
name = maa_to_create
value = flag:pikemen_unit
}
}
}
}
}
# creates the maa type for OWNER of SIZE set by the above
ep3_create_random_maa_regiment_effect = {
$OWNER$ = {
switch = {
trigger = scope:maa_to_create
flag:light_footmen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = light_footmen
SIZE = $SIZE$
}
}
flag:bowmen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = bowmen
SIZE = $SIZE$
}
}
flag:light_horsemen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = light_horsemen
SIZE = $SIZE$
}
}
flag:pikemen_unit = {
create_maa_or_upgrade_regiment_effect = {
TYPE = pikemen_unit
SIZE = $SIZE$
}
}
flag:war_elephant = {
create_maa_or_upgrade_regiment_effect = {
TYPE = war_elephant
SIZE = $SIZE$
}
}
flag:camel_rider = {
create_maa_or_upgrade_regiment_effect = {
TYPE = camel_rider
SIZE = $SIZE$
}
}
flag:armored_horsemen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = armored_horsemen
SIZE = $SIZE$
}
}
flag:onager = {
create_maa_or_upgrade_regiment_effect = {
TYPE = onager
SIZE = $SIZE$
}
}
flag:armored_footmen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = armored_footmen
SIZE = $SIZE$
}
}
flag:mangonel = {
create_maa_or_upgrade_regiment_effect = {
TYPE = mangonel
SIZE = $SIZE$
}
}
flag:trebuchet = {
create_maa_or_upgrade_regiment_effect = {
TYPE = trebuchet
SIZE = $SIZE$
}
}
flag:crossbowmen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = crossbowmen
SIZE = $SIZE$
}
}
flag:bombard = {
create_maa_or_upgrade_regiment_effect = {
TYPE = bombard
SIZE = $SIZE$
}
}
flag:paiks = {
create_maa_or_upgrade_regiment_effect = {
TYPE = paiks
SIZE = $SIZE$
}
}
flag:landsknecht = {
create_maa_or_upgrade_regiment_effect = {
TYPE = landsknecht
SIZE = $SIZE$
}
}
flag:goedendag = {
create_maa_or_upgrade_regiment_effect = {
TYPE = goedendag
SIZE = $SIZE$
}
}
flag:gendarme = {
create_maa_or_upgrade_regiment_effect = {
TYPE = gendarme
SIZE = $SIZE$
}
}
flag:picchieri = {
create_maa_or_upgrade_regiment_effect = {
TYPE = picchieri
SIZE = $SIZE$
}
}
flag:praetorian = {
create_maa_or_upgrade_regiment_effect = {
TYPE = praetorian
SIZE = $SIZE$
}
}
flag:chasseur = {
create_maa_or_upgrade_regiment_effect = {
TYPE = chasseur
SIZE = $SIZE$
}
}
flag:caballero = {
create_maa_or_upgrade_regiment_effect = {
TYPE = caballero
SIZE = $SIZE$
}
}
flag:hobelar = {
create_maa_or_upgrade_regiment_effect = {
TYPE = hobelar
SIZE = $SIZE$
}
}
flag:schiltron = {
create_maa_or_upgrade_regiment_effect = {
TYPE = schiltron
SIZE = $SIZE$
}
}
flag:sahel_horsemen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = sahel_horsemen
SIZE = $SIZE$
}
}
flag:sarawit = {
create_maa_or_upgrade_regiment_effect = {
TYPE = sarawit
SIZE = $SIZE$
}
}
flag:shenbigong = {
create_maa_or_upgrade_regiment_effect = {
TYPE = shenbigong
SIZE = $SIZE$
}
}
flag:guanch_vaulter = {
create_maa_or_upgrade_regiment_effect = {
TYPE = guanch_vaulter
SIZE = $SIZE$
}
}
flag:huscarl = {
create_maa_or_upgrade_regiment_effect = {
TYPE = huscarl
SIZE = $SIZE$
}
}
flag:longbowmen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = longbowmen
SIZE = $SIZE$
}
}
flag:monaspa = {
create_maa_or_upgrade_regiment_effect = {
TYPE = monaspa
SIZE = $SIZE$
}
}
flag:cataphract = {
create_maa_or_upgrade_regiment_effect = {
TYPE = cataphract
SIZE = $SIZE$
}
}
flag:metsanvartija = {
create_maa_or_upgrade_regiment_effect = {
TYPE = metsanvartija
SIZE = $SIZE$
}
}
flag:maturkan_warriors = {
create_maa_or_upgrade_regiment_effect = {
TYPE = maturkan_warriors
SIZE = $SIZE$
}
}
flag:horse_archers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = horse_archers
SIZE = $SIZE$
}
}
flag:ayyar = {
create_maa_or_upgrade_regiment_effect = {
TYPE = ayyar
SIZE = $SIZE$
}
}
flag:mubarizun = {
create_maa_or_upgrade_regiment_effect = {
TYPE = mubarizun
SIZE = $SIZE$
}
}
flag:mulaththamun = {
create_maa_or_upgrade_regiment_effect = {
TYPE = mulaththamun
SIZE = $SIZE$
}
}
flag:archers_of_the_nile = {
create_maa_or_upgrade_regiment_effect = {
TYPE = archers_of_the_nile
SIZE = $SIZE$
}
}
flag:druzhina = {
create_maa_or_upgrade_regiment_effect = {
TYPE = druzhina
SIZE = $SIZE$
}
}
flag:hussar = {
create_maa_or_upgrade_regiment_effect = {
TYPE = hussar
SIZE = $SIZE$
}
}
flag:horn_warrior = {
create_maa_or_upgrade_regiment_effect = {
TYPE = horn_warrior
SIZE = $SIZE$
}
}
flag:bush_hunter = {
create_maa_or_upgrade_regiment_effect = {
TYPE = bush_hunter
SIZE = $SIZE$
}
}
flag:shomer = {
create_maa_or_upgrade_regiment_effect = {
TYPE = shomer
SIZE = $SIZE$
}
}
flag:garudas = {
create_maa_or_upgrade_regiment_effect = {
TYPE = garudas
SIZE = $SIZE$
}
}
flag:khandayat = {
create_maa_or_upgrade_regiment_effect = {
TYPE = khandayat
SIZE = $SIZE$
}
}
flag:mountaineer = {
create_maa_or_upgrade_regiment_effect = {
TYPE = mountaineer
SIZE = $SIZE$
}
}
flag:guinea_warrior = {
create_maa_or_upgrade_regiment_effect = {
TYPE = guinea_warrior
SIZE = $SIZE$
}
}
flag:abudrar = {
create_maa_or_upgrade_regiment_effect = {
TYPE = abudrar
SIZE = $SIZE$
}
}
flag:zbrojnosh = {
create_maa_or_upgrade_regiment_effect = {
TYPE = zbrojnosh
SIZE = $SIZE$
}
}
flag:palace_guards = {
create_maa_or_upgrade_regiment_effect = {
TYPE = palace_guards
SIZE = $SIZE$
}
}
flag:asawira = {
create_maa_or_upgrade_regiment_effect = {
TYPE = asawira
SIZE = $SIZE$
}
}
flag:tarkhan = {
create_maa_or_upgrade_regiment_effect = {
TYPE = tarkhan
SIZE = $SIZE$
}
}
flag:zupin_warrior = {
create_maa_or_upgrade_regiment_effect = {
TYPE = zupin_warrior
SIZE = $SIZE$
}
}
flag:tawashi = {
create_maa_or_upgrade_regiment_effect = {
TYPE = tawashi
SIZE = $SIZE$
}
}
flag:house_guard = {
create_maa_or_upgrade_regiment_effect = {
TYPE = house_guard
SIZE = $SIZE$
}
}
flag:accolade_maa_archers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_archers
SIZE = $SIZE$
}
}
flag:accolade_maa_skirmishers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_skirmishers
SIZE = $SIZE$
}
}
flag:accolade_maa_pikes = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_pikes
SIZE = $SIZE$
}
}
flag:accolade_maa_outriders = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_outriders
SIZE = $SIZE$
}
}
flag:accolade_maa_vanguards = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_vanguards
SIZE = $SIZE$
}
}
flag:accolade_maa_lancers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_lancers
SIZE = $SIZE$
}
}
flag:accolade_maa_crossbowers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_crossbowers
SIZE = $SIZE$
}
}
flag:accolade_maa_cameliers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_cameliers
SIZE = $SIZE$
}
}
flag:accolade_maa_elephantiers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_elephantiers
SIZE = $SIZE$
}
}
flag:accolade_maa_horse_archers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = accolade_maa_horse_archers
SIZE = $SIZE$
}
}
flag:vigmen = {
create_maa_or_upgrade_regiment_effect = {
TYPE = vigmen
SIZE = $SIZE$
}
}
flag:bondi = {
create_maa_or_upgrade_regiment_effect = {
TYPE = bondi
SIZE = $SIZE$
}
}
flag:varangian_veterans = {
create_maa_or_upgrade_regiment_effect = {
TYPE = varangian_veterans
SIZE = $SIZE$
}
}
flag:ayrudzi = {
create_maa_or_upgrade_regiment_effect = {
TYPE = ayrudzi
SIZE = $SIZE$
}
}
flag:steppe_raiders = {
create_maa_or_upgrade_regiment_effect = {
TYPE = steppe_raiders
SIZE = $SIZE$
}
}
flag:conrois = {
create_maa_or_upgrade_regiment_effect = {
TYPE = conrois
SIZE = $SIZE$
}
}
flag:akritai = {
create_maa_or_upgrade_regiment_effect = {
TYPE = akritai
SIZE = $SIZE$
}
}
flag:ballistrai = {
create_maa_or_upgrade_regiment_effect = {
TYPE = ballistrai
SIZE = $SIZE$
}
}
flag:skoutatoi = {
create_maa_or_upgrade_regiment_effect = {
TYPE = skoutatoi
SIZE = $SIZE$
}
}
flag:varangian_guards = {
create_maa_or_upgrade_regiment_effect = {
TYPE = varangian_guards
SIZE = $SIZE$
}
}
flag:handpicked_faithful = {
create_maa_or_upgrade_regiment_effect = {
TYPE = handpicked_faithful
SIZE = $SIZE$
}
}
flag:emishi_horse_archers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = emishi_horse_archers
SIZE = $SIZE$
}
}
flag:japanese_horse_archers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = japanese_horse_archers
SIZE = $SIZE$
}
}
flag:warrior_monks = {
create_maa_or_upgrade_regiment_effect = {
TYPE = warrior_monks
SIZE = $SIZE$
}
}
flag:gakgung_archers = {
create_maa_or_upgrade_regiment_effect = {
TYPE = gakgung_archers
SIZE = $SIZE$
}
}
flag:pesilat_warriors = {
create_maa_or_upgrade_regiment_effect = {
TYPE = pesilat_warriors
SIZE = $SIZE$
}
}
flag:samurai = {
create_maa_or_upgrade_regiment_effect = {
TYPE = samurai
SIZE = $SIZE$
}
}
flag:zhanmadao_infantry = {
create_maa_or_upgrade_regiment_effect = {
TYPE = zhanmadao_infantry
SIZE = $SIZE$
}
}
flag:burenjia = {
create_maa_or_upgrade_regiment_effect = {
TYPE = burenjia
SIZE = $SIZE$
}
}
flag:tiefutu = {
create_maa_or_upgrade_regiment_effect = {
TYPE = tiefutu
SIZE = $SIZE$
}
}
flag:black_armor_cavalry = {
create_maa_or_upgrade_regiment_effect = {
TYPE = black_armor_cavalry
SIZE = $SIZE$
}
}
flag:rocket_carts = {
create_maa_or_upgrade_regiment_effect = {
TYPE = rocket_carts
SIZE = $SIZE$
}
}
flag:ballista = {
create_maa_or_upgrade_regiment_effect = {
TYPE = ballista
SIZE = $SIZE$
}
}
flag:cloud_ladder = {
create_maa_or_upgrade_regiment_effect = {
TYPE = cloud_ladder
SIZE = $SIZE$
}
}
flag:siege_tower = {
create_maa_or_upgrade_regiment_effect = {
TYPE = siege_tower
SIZE = $SIZE$
}
}
flag:cannon = {
create_maa_or_upgrade_regiment_effect = {
TYPE = cannon
SIZE = $SIZE$
}
}
}
}
}
create_maa_or_upgrade_regiment_effect = {
if = {
limit = {
any_maa_regiment = {
is_maa_type = $TYPE$
can_upgrade_maa = yes
}
}
random_maa_regiment = {
limit = {
is_maa_type = $TYPE$
can_upgrade_maa = yes
}
change_maa_regiment_size = $SIZE$
}
}
else = {
create_maa_regiment = {
type = $TYPE$
check_can_recruit = no
size = $SIZE$
}
}
}
ep3_missionary_effect = {
# Same religion or unreformed or Hasan, convert to the preacher's faith
if = {
limit = {
OR = {
$LOCATION$.religion = $PREACHER$.religion
$LOCATION$.faith = { has_doctrine_parameter = unreformed }
character:41702 ?= $PREACHER$
}
}
$LOCATION$ = {
set_county_faith = $PREACHER$.faith
}
}
# Preacher is Gnostic, convert the locals to a regionally appropriate form of Gnosticism
else_if = {
limit = {
$PREACHER$.faith = {
OR = {
has_doctrine = tenet_gnosticism
has_doctrine = special_doctrine_is_gnostic_faith
}
}
$LOCATION$.religion = {
any_faith = {
has_doctrine = tenet_gnosticism
}
}
}
$LOCATION$ = {
religion = {
random_faith = {
limit = {
OR = {
has_doctrine = tenet_gnosticism
has_doctrine = special_doctrine_is_gnostic_faith
}
}
$LOCATION$ = { set_county_faith = prev }
}
}
}
}
# Otherwise, reduce popular opinion
else = {
$LOCATION$ = {
add_county_modifier = {
modifier = ep3_religious_doubts
years = 15
}
}
}
}
ep3_hasan_missionary_effect = {
ep3_hasan_advance_radicalism = yes
ep3_missionary_effect = {
PREACHER = $PREACHER$
LOCATION = $LOCATION$
}
}
ep3_hasan_advance_radicalism = {
if = {
limit = {
any_owned_story = {
type = story_hasan
}
}
custom_tooltip = {
text = advance_to_the_assassins_tt
random_owned_story = {
type = story_hasan
if = {
limit = {
exists = var:radical_points
}
change_variable = {
name = radical_points
add = 1
}
}
else = {
set_variable = {
name = radical_points
value = 1
}
}
}
}
}
}
hasan_sabbah_ignite_decision_effect = {
if = {
limit = {
hasan_sabbah_event_troops_value <= 1000
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
}
else_if = {
limit = {
hasan_sabbah_event_troops_value <= 2000
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 1
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
}
else_if = {
limit = {
hasan_sabbah_event_troops_value <= 3000
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 1
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
}
else_if = {
limit = {
hasan_sabbah_event_troops_value > 3000
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 2
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 2
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 2
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 2
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
spawn_army = {
name = hasan_fanatics
men_at_arms = {
type = asawira
stacks = 2
}
men_at_arms = {
type = ayyar
stacks = 2
}
levies = hasan_sabbah_event_troops_value
inheritable = yes
location = root.domicile.domicile_location
war_keep_on_attacker_victory = yes
}
}
start_war = {
cb = ep3_hasan_assassin_war
target = root.location.county.holder.top_liege
target_title = root.location.county.holder.top_liege.primary_title
}
}
hasan_sabbah_end_war = {
# Offer Hasan the opportunity to become landed
hidden_effect = {
if = {
limit = {
$SELJUK$ = {
any_sub_realm_barony = {
title_province = { has_building_or_higher = alamut_castle_01 }
}
}
}
$SELJUK$ = {
random_sub_realm_barony = {
limit = {
title_province = { has_building_or_higher = alamut_castle_01 }
}
county = {
save_scope_as = hasan_home
}
}
}
}
else_if = {
limit = {
$SELJUK$ = {
any_sub_realm_county = {
faith = $HASAN$.faith
holder = { is_ai = yes }
}
}
}
$SELJUK$ = {
random_sub_realm_county = {
limit = {
faith = $HASAN$.faith
holder = { is_ai = yes }
}
save_scope_as = hasan_home
}
}
}
else = {
$SELJUK$ = {
random_sub_realm_county = {
limit = {
holder = { is_ai = yes }
}
save_scope_as = hasan_home
}
}
}
$HASAN$ = {
if = {
limit = {
any_owned_story = {
type = story_hasan
exists = var:preferred_caliph
}
}
random_owned_story = {
type = story_hasan
var:preferred_caliph = { save_scope_as = caliph }
}
}
trigger_event = {
id = hasan_sabbah.1050
}
if = {
limit = {
is_ai = no
}
add_achievement_global_variable_effect = {
VARIABLE = finished_the_old_man_of_the_mountain_achievement
VALUE = yes
}
}
}
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
}
$HASAN$ = {
add_prestige = medium_prestige_value
}
$SELJUK$ = {
add_prestige = {
value = medium_prestige_value
multiply = -1
}
every_vassal = {
limit = {
highest_held_title_tier > tier_barony
}
change_liege_or_become_independent = {
CHANGE = scope:change
VASSAL = this
}
}
every_vassal = {
limit = { is_ai = no }
send_interface_toast = {
type = msg_gained_independence
title = liege_primary_title_dissolution
desc = liege_primary_title_dissolution_desc
left_icon = $SELJUK$
}
}
}
resolve_title_and_vassal_change = scope:change
$SELJUK$ = {
every_held_title = {
limit = {
tier >= tier_duchy
is_head_of_faith = no
NOT = { this = $SELJUK$.capital_county.duchy }
}
add_to_temporary_list = titles_to_destroy
}
}
every_in_list = {
list = titles_to_destroy
$HASAN$ = {
destroy_title = prev
}
}
$SELJUK$ = {
if = {
limit = {
government_has_flag = government_is_administrative
}
admin_government_reset_effect = yes
}
}
# LEGITIMACY FROM LOSING FACTION WAR
faction_war_end_defeat_legitimacy_effect = yes
# End Hasan's story cycle
hidden_effect = {
$HASAN$ = {
if = {
limit = {
any_owned_story = {
type = story_hasan
}
}
random_owned_story = {
type = story_hasan
end_story = yes
}
}
}
}
}
reinforce_soldiers_regiment_effect = {
save_scope_as = laamp_temp
# For the value.
save_temporary_scope_as = actor
custom_tooltip = {
text = reinforce_soldiers_effect_tt
every_maa_regiment = {
limit = { maa_regiments_valid_for_cheap_reinforcement_trigger = yes }
change_maa_troops_count = reinforce_soldiers_regiment_soldiers_value
}
}
}
refill_maa_with_provisions_effect = {
save_scope_as = laamp_temp
while = {
limit = {
scope:actor.domicile.provisions > 0
any_maa_regiment = {
maa_regiments_valid_to_refill_trigger = yes
}
}
random_maa_regiment = {
limit = {
maa_regiments_valid_to_refill_trigger = yes
}
save_scope_as = maa_scope
save_scope_value_as = {
name = current_provisions_max_value_scope
value = scope:actor.domicile.provisions
}
scope:actor.domicile ?= {
change_provisions = {
value = {
add = scope:maa_scope.replenishable_troops_value
divide = provision_refill_value
max = scope:current_provisions_max_value_scope
multiply = -1
}
}
}
change_maa_troops_count = replenishable_troops_with_provisions_value
}
}
}
refill_maa_with_gold_effect = {
save_scope_as = laamp_temp
while = {
limit = {
scope:actor.gold > 0
any_maa_regiment = {
maa_regiments_valid_to_refill_trigger = yes
}
}
random_maa_regiment = {
limit = {
maa_regiments_valid_to_refill_trigger = yes
}
save_scope_as = maa_scope
save_scope_value_as = {
name = current_gold_max_value_scope
value = scope:actor.gold
}
scope:actor = {
remove_short_term_gold = {
add = scope:maa_scope.replenishable_troops_value
divide = gold_refill_value
max = scope:current_gold_max_value_scope
}
}
change_maa_troops_count = replenishable_troops_with_gold_value
}
}
}
admin_government_reset_effect = {
if = {
limit = { is_landed = yes } # error suppression
### NOMADIC
if = {
limit = {
OR = {
government_has_flag = government_is_nomadic
capital_province = {
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
}
}
change_government = nomad_government
}
### TRIBAL - are all of your holdings Tribal?
if = {
limit = {
NOT = {
any_held_title = {
trigger_if = {
limit = { tier <= tier_county }
title_province ?= {
NOT = { has_holding_type = tribal_holding }
}
}
trigger_else = {
title_capital_county.title_province ?= {
NOT = { has_holding_type = tribal_holding }
}
}
}
}
}
change_government = tribal_government
}
### CLAN - are you a Muslim or from a Clan culture?
else_if = {
limit = {
OR = {
faith = { religion_tag = islam_religion }
culture = {
OR = {
has_cultural_pillar = heritage_arabic
has_cultural_pillar = heritage_iranian
has_cultural_pillar = heritage_turkic
}
}
}
}
change_government = clan_government
}
### FEUDAL - fallback playable case
else = { change_government = feudal_government }
}
}
create_basic_peasant_effect = {
create_character = {
template = peasant_character
location = root.location
dynasty = none
culture = root.location.culture
faith = root.location.faith
gender_female_chance = 50
after_creation = {
set_to_lowborn = yes
}
save_scope_as = peasant
}
}
fire_governor_long_war_response_events = {
if = {
limit = {
scope:defender = {
government_has_flag = government_is_administrative
top_liege = this
any_vassal = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
}
}
}
}
scope:defender = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
}
}
save_scope_as = def_governor_1
trigger_event = {
id = ep3_governor_yearly.3010
months = 24
}
}
}
scope:defender = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
this = scope:def_governor_1
}
}
save_scope_as = def_governor_2
trigger_event = {
id = ep3_governor_yearly.3010
months = 28
}
}
}
scope:defender = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
this = scope:def_governor_1
this = scope:def_governor_2
}
}
save_scope_as = def_governor_3
trigger_event = {
id = ep3_governor_yearly.3010
months = 32
}
}
}
scope:defender = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
this = scope:def_governor_1
this = scope:def_governor_2
this = scope:def_governor_3
}
}
save_scope_as = def_governor_4
trigger_event = {
id = ep3_governor_yearly.3010
months = 36
}
}
}
scope:defender = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
this = scope:def_governor_1
this = scope:def_governor_2
this = scope:def_governor_3
this = scope:def_governor_4
}
}
save_scope_as = def_governor_5
trigger_event = {
id = ep3_governor_yearly.3010
months = 42
}
}
}
scope:defender = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:attacker
is_allied_to = scope:attacker
this = scope:def_governor_1
this = scope:def_governor_2
this = scope:def_governor_3
this = scope:def_governor_4
this = scope:def_governor_5
}
}
save_scope_as = def_governor_6
trigger_event = {
id = ep3_governor_yearly.3010
months = 54
}
}
}
}
if = {
limit = {
scope:attacker = {
government_has_flag = government_is_administrative
top_liege = this
any_vassal = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
}
}
}
}
scope:attacker = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
}
}
save_scope_as = att_governor_1
trigger_event = {
id = ep3_governor_yearly.3010
months = 24
}
}
}
scope:attacker = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
this = scope:att_governor_1
}
}
save_scope_as = att_governor_2
trigger_event = {
id = ep3_governor_yearly.3010
months = 28
}
}
}
scope:attacker = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
this = scope:att_governor_1
this = scope:att_governor_2
}
}
save_scope_as = att_governor_3
trigger_event = {
id = ep3_governor_yearly.3010
months = 32
}
}
}
scope:attacker = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
this = scope:att_governor_1
this = scope:att_governor_2
this = scope:att_governor_3
}
}
save_scope_as = att_governor_4
trigger_event = {
id = ep3_governor_yearly.3010
months = 36
}
}
}
scope:attacker = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
this = scope:att_governor_1
this = scope:att_governor_2
this = scope:att_governor_3
this = scope:att_governor_4
}
}
save_scope_as = att_governor_5
trigger_event = {
id = ep3_governor_yearly.3010
months = 42
}
}
}
scope:attacker = {
random_vassal = {
limit = {
is_governor = yes
NOR = {
this = scope:defender
is_allied_to = scope:defender
this = scope:att_governor_1
this = scope:att_governor_2
this = scope:att_governor_3
this = scope:att_governor_4
this = scope:att_governor_5
}
}
save_scope_as = att_governor_6
trigger_event = {
id = ep3_governor_yearly.3010
months = 54
}
}
}
}
}
ep3_governor_yearly_3010_war_aid_effect = {
if = {
limit = {
scope:emperor = {
is_defender_in_war = scope:war
}
}
scope:war = {
add_defender = scope:governor
}
}
else = {
scope:war = {
add_attacker = scope:governor
}
}
if = {
limit = {
root = scope:emperor
}
hidden_effect = {
reverse_add_opinion = {
target = scope:emperor
opinion = 20
modifier = grateful_opinion
}
}
}
else = {
reverse_add_opinion = {
target = scope:emperor
opinion = 20
modifier = grateful_opinion
}
}
pay_short_term_gold = {
target = scope:emperor
gold = medium_gold_value
}
if = {
limit = {
can_add_hook = {
target = scope:emperor
type = favor_hook
}
}
add_hook = {
target = scope:emperor
type = favor_hook
}
}
else = {
change_influence = major_influence_gain
}
}
ep3_admin_war_aftermath_effect = {
scope:war = {
if = {
limit = {
any_war_participant = {
is_landed = yes
government_has_flag = government_is_administrative
}
}
every_war_participant = {
limit = {
is_landed = yes
government_has_flag = government_is_administrative
}
primary_title = {
set_variable = {
name = admin_war_aftermath_var
years = 5
}
}
}
}
}
}
state_faith_conversion_add_piety_effect = {
if = {
limit = {
scope:actor = {
top_liege = { government_allows = state_faith }
faith = top_liege.primary_title.state_faith
}
scope:recipient.top_liege = { government_allows = state_faith }
}
scope:actor = {
add_piety = medium_piety_gain
}
}
}
state_faith_refuse_conversion_add_piety_effect = {
if = {
limit = {
scope:actor.top_liege = { government_allows = state_faith }
scope:recipient = {
top_liege = { government_allows = state_faith }
faith = top_liege.primary_title.state_faith
}
}
scope:recipient = { add_piety = medium_piety_gain }
}
}
# EP3 Laamp possibility warning
ep3_war_loss_adventurer_tt_effect = {
save_scope_as = war_loser
if = {
limit = {
has_ep3_dlc_trigger = yes
NOT = {
any_held_title = {
OR = {
is_landless_type_title = yes
is_noble_family_title = yes
}
}
}
trigger_if = {
limit = { any_in_list = { list = target_titles } }
OR = {
# You are losing all your counties and have no vassals to steal from
AND = {
any_held_county = {
count = all
OR = {
is_in_list = target_titles
target_is_de_jure_liege_or_above = scope:war_loser.primary_title
}
}
any_vassal = {
count = 0
highest_held_title_tier >= tier_county
}
}
# You are losing all your held titles
any_held_title = {
count = all
OR = {
is_in_list = target_titles
target_is_de_jure_liege_or_above = scope:war_loser.primary_title
}
}
}
}
}
custom_tooltip = laamp_may_become_adventurer_tt
}
}
add_randomised_double_moon_modifier_effect = {
hidden_effect = {
scope:double_moon_book = {
random_list = {
1 = {
add_artifact_modifier = artifact_prowess_2_modifier
set_artifact_description = double_moon_tome_desc_1
}
1 = {
add_artifact_modifier = artifact_knight_effectiveness_4_modifier
set_artifact_description = double_moon_tome_desc_2
}
1 = {
add_artifact_modifier = artifact_stewardship_1_modifier
set_artifact_description = double_moon_tome_desc_3
}
1 = {
add_artifact_modifier = artifact_diplomacy_1_modifier
set_artifact_description = double_moon_tome_desc_4
}
1 = {
add_artifact_modifier = artifact_health_gain_1_modifier
set_artifact_description = double_moon_tome_desc_5
}
1 = {
add_artifact_modifier = artifact_monthly_minor_prestige_3_modifier
set_artifact_description = double_moon_tome_desc_6
}
1 = {
add_artifact_modifier = artifact_monthly_prestige_3_modifier
set_artifact_description = double_moon_tome_desc_7
}
1 = {
add_artifact_modifier = artifact_dynasty_opinion_2_modifier
set_artifact_description = double_moon_tome_desc_8
}
1 = {
add_artifact_modifier = artifact_learn_language_scheme_phase_duration_add_2_modifier
set_artifact_description = double_moon_tome_desc_9
}
1 = {
add_artifact_modifier = artifact_diplomacy_per_prestige_level_modifier
set_artifact_description = double_moon_tome_desc_10
}
1 = {
add_artifact_modifier = artifact_mercenary_hire_cost_mult_2_modifier
set_artifact_description = double_moon_tome_desc_11
}
1 = {
add_artifact_modifier = artifact_general_opinion_1_modifier
set_artifact_description = double_moon_tome_desc_12
}
1 = {
add_artifact_modifier = artifact_independent_ruler_opinion_2_modifier
set_artifact_description = double_moon_tome_desc_13
}
1 = {
add_artifact_modifier = artifact_clergy_opinion_2_modifier
set_artifact_description = double_moon_tome_desc_14
}
}
}
}
}
random_rain_snow_chance_effect = {
random_list = {
10 = { # Snow
trigger = {
location = {
OR = {
has_province_modifier = winter_mild_modifier
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
save_scope_as = snow_day
}
10 = { # Rain
trigger = {
location = {
NOR = {
has_province_modifier = winter_mild_modifier
has_province_modifier = winter_normal_modifier
has_province_modifier = winter_harsh_modifier
}
}
}
modifier = {
factor = 1.02
location.county = { is_riverside_county = yes }
}
modifier = {
factor = 0.05
location = {
OR = {
terrain = desert
terrain = drylands
terrain = desert_mountains
terrain = oasis
}
}
}
save_scope_as = rain_day
}
10 = {} # No rain
}
}
governor_resignation_title_transfer_effect = {
save_scope_as = resigner
top_liege = { save_scope_as = emperor }
force_step_down_landed_titles = yes
}
boost_governor_efficiency_success_effect = {
scope:actor = {
send_interface_toast = {
type = event_toast_effect_good
title = boost_efficiency_success_desc
left_icon = scope:recipient
scope:recipient ?= {
send_interface_toast = {
type = event_toast_effect_good
title = boost_efficiency_success_desc
left_icon = scope:actor
if = {
limit = { has_character_modifier = ep3_damage_efficiency_modifier }
remove_character_modifier = ep3_damage_efficiency_modifier
if = {
limit = { var:ep3_governor_efficiency_stack = 1 }
remove_variable = ep3_governor_efficiency_stack
}
else = {
change_variable = {
name = ep3_governor_efficiency_stack
add = -1
}
}
}
else = {
add_character_modifier = {
modifier = ep3_boost_efficiency_modifier
years = 10
}
if = {
limit = { has_variable = ep3_governor_efficiency_stack }
set_variable = {
name = ep3_governor_efficiency_stack
value = {
value = scope:recipient.var:ep3_governor_efficiency_stack
add = 1
max = 5
}
years = 10
}
}
else = {
set_variable = {
name = ep3_governor_efficiency_stack
value = 1
years = 10
}
}
}
if = {
limit = {
opinion = {
target = scope:actor
value >= 15
}
}
scope:actor = {
progress_towards_friend_effect = {
REASON = friend_boosted_gov_efficiency
CHARACTER = scope:recipient
OPINION = default_friend_opinion
}
}
}
else_if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:actor
modifier = boosted_efficiency_opinion
}
}
}
}
# Merit based realm gain some merit for improving others
if = {
limit = {
government_allows = merit
}
change_merit = medium_merit_gain
}
}
}
}
boost_governor_efficiency_duel_effect = {
scope:actor = {
duel = {
skill = $SKILL$
value = mediocre_skill_rating
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
min = 2
desc = boost_efficiency_success_desc
send_interface_toast = {
type = event_toast_effect_good
title = boost_efficiency_success_desc
left_icon = scope:recipient
boost_governor_efficiency_success_effect = yes
}
}
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
min = 2
desc = boost_efficiency_failure_desc
send_interface_toast = {
type = event_toast_text_bad
title = boost_efficiency_failure_desc
left_icon = scope:recipient
desc = NO_EFFECT
}
}
}
}
}
damage_governor_efficiency_success_effect = {
scope:recipient ?= {
send_interface_toast = {
type = event_toast_effect_bad
title = damage_efficiency_success_desc
left_icon = scope:actor
if = {
limit = { has_character_modifier = ep3_boost_efficiency_modifier }
remove_character_modifier = ep3_boost_efficiency_modifier
if = {
limit = { var:ep3_governor_efficiency_stack = 1 }
remove_variable = ep3_governor_efficiency_stack
}
else = {
change_variable = {
name = ep3_governor_efficiency_stack
add = -1
}
}
}
else = {
add_character_modifier = {
modifier = ep3_damage_efficiency_modifier
years = 10
}
if = {
limit = { has_variable = ep3_governor_efficiency_stack }
set_variable = {
name = ep3_governor_efficiency_stack
value = {
value = scope:recipient.var:ep3_governor_efficiency_stack
add = 1
max = 5
}
years = 10
}
}
else = {
set_variable = {
name = ep3_governor_efficiency_stack
value = 1
years = 10
}
}
}
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:actor
modifier = damaged_efficiency_opinion
}
}
}
}
}
damage_governor_efficiency_duel_effect = {
scope:actor = {
duel = {
skill = $SKILL$
value = mediocre_skill_rating
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
min = 2
desc = damage_efficiency_success_desc
send_interface_toast = {
type = event_toast_effect_good
title = damage_efficiency_success_desc
left_icon = scope:recipient
damage_governor_efficiency_success_effect = yes
}
}
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
min = 2
desc = damage_efficiency_failure_desc
send_interface_toast = {
type = event_toast_text_bad
title = damage_efficiency_success_desc
left_icon = scope:recipient
desc = NO_EFFECT
}
}
}
}
}
# NF Adoption effect
noble_family_adoption_effect = {
$ADOPTEE$ = {
if = {
limit = {
exists = house.house_head
}
house.house_head = { #We do this first, otherwise house head will already mean someone else.
if = {
limit = {
$ADOPTER$.culture = { has_cultural_parameter = wider_adoption }
$ADOPTEE$ = {
culture = { has_cultural_parameter = wider_adoption }
NOT = {
any_parent = {
is_alive = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = liege }
}
}
}
}
add_opinion = {
modifier = adopted_my_house_member_opinion
opinion = 25
target = $ADOPTER$
}
}
else = {
add_opinion = {
modifier = adopted_my_house_member_opinion
opinion = -25
target = $ADOPTER$
}
}
if = {
limit = {
has_hook_of_type = {
type = house_head_hook
target = $ADOPTEE$
}
}
remove_hook = {
type = house_head_hook
target = $ADOPTEE$
}
}
}
}
}
$ADOPTER$ = {
if = {
limit = { scope:gold = yes }
pay_short_term_gold = {
target = $ADOPTEE$
gold = $ADOPTER$.minor_gold_value
}
}
if = {
limit = { scope:hook = yes }
use_hook = $ADOPTEE$
}
$ADOPTEE$ = { set_house = $ADOPTER$.house }
# Zealous vassals *hate* you adopting a heretic
house = {
every_house_member = {
custom = every_zealot_house_member_tt
limit = {
ai_zeal >= medium_positive_ai_value
faith = { faith_hostility_level = { target = $ADOPTEE$.faith value >= faith_astray_level } }
NOT = { this = $ADOPTER$ }
}
add_opinion = {
modifier = adopted_new_house_member_opinion
opinion = -20
target = $ADOPTER$
}
}
every_house_member = {
custom = every_close_family_house_member_tt
limit = {
NOT = { this = $ADOPTER$ }
is_close_family_of = $ADOPTER$
NAND = {
ai_zeal >= medium_positive_ai_value
faith = { faith_hostility_level = { target = $ADOPTEE$.faith value >= faith_astray_level } }
}
NAND = {
$ADOPTER$.culture = { has_cultural_parameter = wider_adoption }
$ADOPTEE$ = {
culture = { has_cultural_parameter = wider_adoption }
NOT = {
any_parent = {
is_alive = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = liege }
}
}
}
}
}
add_opinion = {
modifier = adopted_new_house_member_opinion
opinion = -10
target = $ADOPTER$
}
}
}
}
$ADOPTEE$ = {
#adopted should travel
if = {
limit = { exists = $ADOPTER$.capital_province }
$ADOPTER$.capital_province = { save_scope_as = destination_province }
}
else_if = {
limit = { exists = $ADOPTER$.host.capital_province }
$ADOPTER$.host.capital_province = { save_scope_as = destination_province }
}
else_if = {
limit = { exists = $ADOPTER$.domicile.domicile_location }
$ADOPTER$.domicile.domicile_location = { save_scope_as = destination_province }
}
else = {
$ADOPTER$.location = { save_scope_as = destination_province }
}
save_scope_as = adoptee
$ADOPTER$ = { save_scope_as = adopter }
if = {
limit = {
any_relation = {
type = guardian
NOT = { this = $ADOPTER$ }
}
}
random_relation = {
type = guardian
limit = { NOT = { this = $ADOPTER$ } }
save_scope_as = old_guardian
}
remove_guardian_effect = {
GUARDIAN = scope:old_guardian
WARD = scope:adoptee
RETURN_WARD = no
HIDE_OPINION = no
}
}
if = {
limit = { NOT = { scope:destination_province = $ADOPTEE$.location } }
set_variable = {
name = adoptee_travelling_to_adopter
years = 2
value = scope:adopter
}
start_travel_plan = {
destination = scope:destination_province
on_start_on_action = on_adoptee_depart_for_adopter
on_travel_planner_cancel_on_action = on_adoptee_depart_travel_planner_exit
on_arrival_on_action = on_adoptee_arrive_at_adopter
on_arrival_destinations = last
return_trip = no # One way
}
custom_tooltip = adoptee_leaves_for_adopter_tt
}
else_if = {
limit = {
$ADOPTER$ = {
NOT = { is_in_the_same_court_as = $ADOPTEE$ }
}
}
$ADOPTER$ = { add_courtier = $ADOPTEE$ }
}
#No final else, in this situation they are already in the right location and the right court.
}
}
# Create icon artifacts
## Court Artifact - Large
create_artifact_court_icon_large_effect = {
# Get the character the artifact is being made for.
$OWNER$ = { save_scope_as = owner }
$PAINTER$ = { save_scope_as = painter }
hidden_effect_new_object = {
# Get artifact quality, wealth, and materials
get_artifact_quality_effect = yes
get_artifact_wealth_effect = yes
# Create the artifact
scope:owner = {
if = {
limit = {
exists = scope:inspiration_owner
}
create_artifact = {
name = artifact_wall_court_icon_large_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:painter
visuals = icon_court_large
type = wall_big
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
}
}
else_if = {
limit = {
exists = scope:adventurer
}
create_artifact = {
name = artifact_wall_court_icon_large_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:adventurer
visuals = icon_court_large
type = wall_big
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
history = {
location = scope:location
actor = scope:adventurer
recipient = root
type = discovered
}
}
}
else = {
create_artifact = {
name = artifact_wall_court_icon_large_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:painter
visuals = icon_court_large
type = wall_big
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
}
}
}
scope:newly_created_artifact = {
set_artifact_description = artifact_wall_court_icon_large_description
# Set piety
add_2_scaled_artifact_modifier_devotion_effect = yes
if = {
limit = {
OR = {
rarity = famed
rarity = illustrious
}
}
add_scaled_artifact_modifier_dynasty_prestige_effect = yes
}
remove_artifact_modifier = artifact_placeholder_modifier
}
}
}
## Court Artifact - Small
create_artifact_court_icon_small_effect = {
# Get the character the artifact is being made for.
$OWNER$ = { save_scope_as = owner }
$PAINTER$ = { save_scope_as = painter }
hidden_effect_new_object = {
# Get artifact quality, wealth, and materials
get_artifact_quality_effect = yes
get_artifact_wealth_effect = yes
# Create the artifact
scope:owner = {
if = {
limit = {
exists = scope:inspiration_owner
}
create_artifact = {
name = artifact_wall_court_icon_small_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:painter
visuals = icon_court_small
type = wall_small
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
}
}
else_if = {
limit = {
exists = scope:adventurer
}
create_artifact = {
name = artifact_wall_court_icon_small_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:adventurer
visuals = icon_court_small
type = wall_small
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
history = {
location = scope:location
actor = scope:adventurer
recipient = root
type = discovered
}
}
}
else = {
create_artifact = {
name = artifact_wall_court_icon_small_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:painter
visuals = icon_court_small
type = wall_small
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
}
}
}
scope:newly_created_artifact = {
set_artifact_description = artifact_wall_court_icon_small_description
# Set piety
add_2_scaled_artifact_modifier_devotion_effect = yes
if = {
limit = {
OR = {
rarity = famed
rarity = illustrious
}
}
add_scaled_artifact_modifier_dynasty_prestige_effect = yes
}
remove_artifact_modifier = artifact_placeholder_modifier
}
}
}
## Trinket Artifact
create_artifact_trinket_icon_effect = {
# Get the character the artifact is being made for.
$OWNER$ = { save_scope_as = owner }
$PAINTER$ = { save_scope_as = painter }
hidden_effect_new_object = {
# Get artifact quality, wealth, and materials
get_artifact_quality_effect = yes
get_artifact_wealth_effect = yes
# Create the artifact
scope:owner = {
if = {
limit = {
exists = scope:inspiration_owner
}
create_artifact = {
name = artifact_trinket_icon_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:painter
visuals = trinket_icon
type = miscellaneous
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
}
}
else_if = {
limit = {
exists = scope:adventurer
}
create_artifact = {
name = artifact_trinket_icon_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:adventurer
visuals = icon_court_small
type = miscellaneous
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
history = {
location = scope:location
actor = scope:adventurer
recipient = root
type = discovered
}
}
}
else = {
create_artifact = {
name = artifact_trinket_icon_name
description = placeholder # Will be regenerated in the post-creation effects
creator = scope:painter
visuals = trinket_icon
type = miscellaneous
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
}
}
}
scope:newly_created_artifact = {
set_artifact_description = artifact_trinket_icon_description
# Set piety
add_scaled_artifact_modifier_piety_effect = yes
if = {
limit = {
OR = {
rarity = famed
rarity = illustrious
}
}
add_scaled_artifact_modifier_learning_lifestyle_xp_effect = yes
}
remove_artifact_modifier = artifact_placeholder_modifier
}
}
}
## Trinket Artifact
create_artifact_trinket_icon_ancient_effect = {
# Get the character the artifact is being made for.
$OWNER$ = { save_scope_as = owner }
hidden_effect_new_object = {
# Get artifact quality, wealth, and materials
get_artifact_quality_effect = yes
get_artifact_wealth_effect = yes
# Create the artifact
scope:owner = {
create_artifact = {
name = artifact_trinket_icon_name
description = placeholder # Will be regenerated in the post-creation effects
visuals = trinket_icon
type = miscellaneous
modifier = artifact_placeholder_modifier
save_scope_as = newly_created_artifact
wealth = scope:wealth
quality = scope:quality
history = { type = created_before_history }
}
}
scope:newly_created_artifact = {
set_artifact_description = artifact_trinket_icon_description
# Set piety
add_scaled_artifact_modifier_piety_effect = yes
if = {
limit = {
OR = {
rarity = famed
rarity = illustrious
}
}
add_scaled_artifact_modifier_learning_lifestyle_xp_effect = yes
}
remove_artifact_modifier = artifact_placeholder_modifier
}
}
}
# Scheme bonuses from being the emperor, or member of a dominant/powerful family
ep3_actor_scheme_modifier_effect = {
scope:new_scheme ?= {
# Emperor enjoys a significant bonus to all admin related schemes
if = {
limit = { scope:actor = scope:actor.top_liege }
add_scheme_modifier = { type = admin_emperor_scheme_modifier }
}
# Dominant and Powerful Families enjoys a decent bonus to all admin related schemes
else_if = {
limit = {
scope:actor.house ?= { is_dominant_family = yes }
}
add_scheme_modifier = { type = admin_dominant_family_scheme_modifier }
}
else_if = {
limit = {
scope:actor.house ?= { is_powerful_family = yes }
}
add_scheme_modifier = { type = admin_powerful_family_scheme_modifier }
}
}
}
#Complete war group task contracts, used in war_on_actions
war_task_contracts_completion_effect = {
#Join War Contract and Help Claimant Contract
scope:war = {
if = {
limit = {
any_war_participant = {
any_character_active_contract = {
OR = {
AND = {
has_task_contract_type = laamp_join_war_contract
var:task_contract_war ?= scope:war
}
AND = {
has_task_contract_type = laamp_help_claimant_contract
task_contract_employer = scope:war.primary_attacker
}
}
save_temporary_scope_as = relevant_contract
}
}
}
scope:relevant_contract = {
if = {
limit = {
scope:war = {
war_contribution = {
target = scope:relevant_contract.task_contract_taker
value > 0
}
}
}
complete_task_contract = success_standard
}
else = {
complete_task_contract = failure_standard
}
}
}
if = {
limit = {
primary_attacker = {
has_variable = valuable_prisoners
}
}
primary_attacker = {
remove_variable = valuable_prisoners
}
}
if = {
limit = {
primary_defender = {
has_variable = valuable_prisoners
}
}
primary_defender = {
remove_variable = valuable_prisoners
}
}
if = {
limit = {
using_civil_war_cb_trigger = yes
any_war_participant = {
any_character_active_contract = {
task_contract_type = laamp_join_faction_contract
task_contract_employer = {
is_participant_in_war = scope:war
}
}
}
}
every_war_participant = {
every_character_active_contract = {
task_contract_type = laamp_join_faction_contract
limit = {
task_contract_employer = {
is_participant_in_war = scope:war
}
}
if = {
limit = {
task_contract_taker = scope:winner
}
complete_task_contract = success_standard
}
else = {
complete_task_contract = failure_standard
}
}
}
}
}
}
#If a landless adventurer was hired as a mercenary and contributed in a war they get paid, used in war_on_actions, relevant flag set by hire_laamp_mercenaries_interaction or ep3_interactions_events.0112
laamp_as_mercenary_payout_effect = {
scope:war = {
every_war_participant = {
limit = {
laamp_as_mercenary_payout_trigger = { WAR = scope:war }
}
if = {
limit = {
laamp_as_mercenary_payout_last_war_trigger = { WAR = scope:war }
}
save_scope_as = laamp_temp
add_to_list = laamp_mercenaries
var:joined_as_mercenary = {
save_scope_as = employer
trigger_event = {
id = ep3_interactions_events.0121
days = { 3 7 }
}
}
every_in_list = {
list = laamp_mercenaries
scope:employer = {
remove_list_variable = {
name = hired_mercenaries
target = scope:laamp_temp
}
}
}
remove_variable = joined_as_mercenary
}
else = {
save_scope_as = laamp_temp
var:joined_as_mercenary = { save_scope_as = employer }
if = {
limit = { exists = var:aggregate_war_contribution_value }
change_variable = {
name = aggregate_war_contribution_value
add = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
}
# Average
change_variable = {
name = aggregate_war_contribution_value
divide = 2
}
}
else = {
set_variable = {
name = aggregate_war_contribution_value
value = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
}
}
}
}
}
}
# root - casus_belli
# war - war provided by the casus_belli
# attacker - primary attacker from the casus_belli
# defender - primary defender from the casus_belli
laamp_as_mercenary_payout_tooltip_effect = {
show_as_tooltip = {
scope:war ?= {
every_war_participant = {
limit = { has_government = landless_adventurer_government }
save_scope_as = laamp_temp
save_scope_as = actor
save_scope_value_as = {
name = war_contribution_value
value = "scope:war.war_contribution(scope:laamp_temp)"
}
every_character_active_contract = {
limit = {
has_task_contract_type = laamp_join_war_contract
var:task_contract_war = scope:war
}
show_as_tooltip = {
task_contract_employer = {
save_scope_as = employer
custom_tooltip = ep3_join_war_payment_tt
pay_short_term_gold = {
target = scope:laamp_temp
gold = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
}
}
}
}
if = {
limit = {
laamp_as_mercenary_payout_trigger = { WAR = scope:war }
}
if = {
limit = {
laamp_as_mercenary_payout_last_war_trigger = { WAR = scope:war }
}
var:joined_as_mercenary ?= {
save_scope_as = employer
custom_description_no_bullet = {
text = ep3_hire_laamp_mercs_payment_tt
object = scope:laamp_temp
subject = scope:employer
}
pay_short_term_gold = {
target = scope:laamp_temp
gold = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
}
}
}
else = { custom_tooltip = ep3_hire_laamp_mercs_payment_later_tt }
}
if = {
limit = {
has_variable = owed_contract_assistance_gold
var:owed_contract_assistance_war ?= scope:war
}
save_scope_as = contract_assistance_helper
scope:defender = {
save_scope_as = recipient
custom_description_no_bullet = { text = contract_assistance_interaction_condition_tt }
pay_short_term_gold = {
target = scope:actor
gold = scope:actor.var:owed_contract_assistance_gold
}
}
}
}
}
}
}
chariot_race_sow_discord_strong_response_effect = {
if = {
limit = {
root = {
this = scope:host
}
}
scope:host = {
capital_county = {
change_county_control = {
value = -3
multiply = scope:activity.var:counter_chant_count
}
}
custom_tooltip = counter_chants_strong_modifier_tooltip
hidden_effect = {
scope:activity = {
every_in_list = {
variable = counter_chanters
scope:host = {
capital_county = {
add_county_modifier = {
modifier = strong_sow_discord_modifier
years = 10
}
}
}
}
}
}
}
}
else = {
scope:host = {
capital_county = {
add_county_modifier = {
modifier = strong_sow_discord_modifier
years = 10
}
change_county_control = -3
}
}
}
}
chariot_race_sow_discord_weak_response_effect = {
if = {
limit = {
root = {
this = scope:host
}
}
scope:host = {
custom_tooltip = counter_chants_weak_modifier_tooltip
hidden_effect = {
scope:activity = {
every_in_list = {
variable = counter_chanters
scope:host = {
capital_county = {
add_county_modifier = {
modifier = weak_sow_discord_modifier
years = 10
}
}
}
}
}
}
}
}
else = {
scope:host = {
capital_county = {
add_county_modifier = {
modifier = weak_sow_discord_modifier
years = 10
}
}
}
}
}
chariot_race_sow_discord_normal_response_effect = {
if = {
limit = {
root = {
this = scope:host
}
}
scope:host = {
capital_county = {
change_county_control = {
value = -1
multiply = scope:activity.var:counter_chant_count
}
}
custom_tooltip = counter_chants_normal_modifier_tooltip
hidden_effect = {
scope:activity = {
every_in_list = {
variable = counter_chanters
scope:host = {
capital_county = {
add_county_modifier = {
modifier = normal_sow_discord_modifier
years = 10
}
}
}
}
}
}
}
}
else = {
scope:host = {
capital_county = {
add_county_modifier = {
modifier = normal_sow_discord_modifier
years = 10
}
custom_tooltip = modifier_stacking_chariot_tooltip
change_county_control = -1
}
}
}
}
#############
# Camp Party
#############
camp_party_completed_log_entry_effect = {
involved_activity = {
add_activity_log_entry = {
key = camp_party_completed_log_entry_effect
tags = { completed }
score = 100
show_in_conclusion = yes
character = root
#Effects
root = {
disburse_camp_party_reward_effect = yes
}
}
}
}
disburse_camp_party_reward_effect = {
involved_activity ?= {
###Non-progression linked
#Drinks
scope:host = {
#For highest level drinks
if = {
limit = {
involved_activity = {
has_activity_option = {
category = camp_party_option_drinks
option = camp_party_drinks_abundant
}
}
}
add_character_modifier = {
modifier = ep3_master_of_ceremonies
years = 3
}
}
#For any level of drinks
#Opinion
if = {
limit = {
involved_activity = {
OR = {
has_activity_option = {
category = camp_party_option_drinks
option = camp_party_drinks_abundant
}
has_activity_option = {
category = camp_party_option_drinks
option = camp_party_drinks_adequate
}
}
}
}
involved_activity = {
every_attending_character = {
limit = {
this != scope:host
}
custom = every_attending_guest
add_opinion = {
modifier = feast_life_of_the_party_opinion
target = scope:host
opinion = 35
}
}
}
}
# Reveler Trait
if = {
limit = {
involved_activity = {
OR = {
has_activity_option = {
category = camp_party_option_drinks
option = camp_party_drinks_abundant
}
has_activity_option = {
category = camp_party_option_drinks
option = camp_party_drinks_adequate
}
}
}
}
if = {
limit = {
NOT = {
has_trait = lifestyle_reveler
}
}
add_trait = lifestyle_reveler
}
add_trait_xp = {
trait = lifestyle_reveler
value = {
integer_range = {
min = small_lifestyle_random_xp_low
max = small_lifestyle_random_xp_high
}
}
}
}
}
#100 Carousing
if = {
limit = { var:activity_special_type_progression >= 100 }
#Stress Loss
every_attending_character = {
custom = every_attending_guest
add_stress = -150
}
#Host effects
scope:host = {
if = {
limit = {
NOT = {
exists = scope:domicile_building #already saved
}
}
hidden_effect = {
domicile = {
random_list = {
1 = {
trigger = {
has_domicile_building_or_higher = camp_main_01
NOT = { has_domicile_building = camp_main_04 }
}
switch = {
trigger = has_domicile_building
camp_main_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_main_01
}
}
camp_main_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_main_02
}
}
camp_main_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_main_03
}
}
}
}
1 = {
trigger = {
has_domicile_building_or_higher = supply_tent_01
NOT = { has_domicile_building = supply_tent_06 }
}
switch = {
trigger = has_domicile_building
supply_tent_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:supply_tent_01
}
}
supply_tent_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:supply_tent_02
}
}
supply_tent_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:supply_tent_03
}
}
supply_tent_04 = {
save_scope_value_as = {
name = domicile_building
value = flag:supply_tent_04
}
}
supply_tent_05 = {
save_scope_value_as = {
name = domicile_building
value = flag:supply_tent_05
}
}
}
}
1 = {
trigger = {
has_domicile_building_or_higher = barber_tent_01
NOT = { has_domicile_building = barber_tent_06 }
}
switch = {
trigger = has_domicile_building
barber_tent_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:barber_tent_01
}
}
barber_tent_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:barber_tent_02
}
}
barber_tent_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:barber_tent_03
}
}
barber_tent_04 = {
save_scope_value_as = {
name = domicile_building
value = flag:barber_tent_04
}
}
barber_tent_05 = {
save_scope_value_as = {
name = domicile_building
value = flag:barber_tent_05
}
}
}
}
1 = {
trigger = {
has_domicile_building_or_higher = baggage_train_01
NOT = { has_domicile_building = baggage_train_06 }
}
switch = {
trigger = has_domicile_building
baggage_train_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:baggage_train_01
}
}
baggage_train_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:baggage_train_02
}
}
baggage_train_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:baggage_train_03
}
}
baggage_train_04 = {
save_scope_value_as = {
name = domicile_building
value = flag:baggage_train_04
}
}
baggage_train_05 = {
save_scope_value_as = {
name = domicile_building
value = flag:baggage_train_05
}
}
}
}
1 = {
trigger = {
has_domicile_building_or_higher = camp_fire_01
NOT = { has_domicile_building = camp_fire_06 }
}
switch = {
trigger = has_domicile_building
camp_fire_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_fire_01
}
}
camp_fire_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_fire_02
}
}
camp_fire_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_fire_03
}
}
camp_fire_04 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_fire_04
}
}
camp_fire_05 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_fire_05
}
}
}
}
1 = {
trigger = {
has_domicile_building_or_higher = proving_grounds_01
NOT = { has_domicile_building = proving_grounds_06 }
}
switch = {
trigger = has_domicile_building
proving_grounds_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:proving_grounds_01
}
}
proving_grounds_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:proving_grounds_02
}
}
proving_grounds_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:proving_grounds_03
}
}
proving_grounds_04 = {
save_scope_value_as = {
name = domicile_building
value = flag:proving_grounds_04
}
}
proving_grounds_05 = {
save_scope_value_as = {
name = domicile_building
value = flag:proving_grounds_05
}
}
}
}
1 = {
trigger = {
has_domicile_building_or_higher = camp_perimeter_01
NOT = { has_domicile_building = camp_perimeter_06 }
}
switch = {
trigger = has_domicile_building
camp_perimeter_01 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_perimeter_01
}
}
camp_perimeter_02 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_perimeter_02
}
}
camp_perimeter_03 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_perimeter_03
}
}
camp_perimeter_04 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_perimeter_04
}
}
camp_perimeter_05 = {
save_scope_value_as = {
name = domicile_building
value = flag:camp_perimeter_05
}
}
}
}
}
}
}
}
domicile = {
switch = {
trigger = scope:domicile_building
flag:camp_main_01 = { add_domicile_building = camp_main_02 }
flag:camp_main_02 = { add_domicile_building = camp_main_03 }
flag:camp_main_03 = { add_domicile_building = camp_main_04 }
flag:supply_tent_01 = { add_domicile_building = supply_tent_02 }
flag:supply_tent_02 = { add_domicile_building = supply_tent_03 }
flag:supply_tent_03 = { add_domicile_building = supply_tent_04 }
flag:supply_tent_04 = { add_domicile_building = supply_tent_05 }
flag:supply_tent_05 = { add_domicile_building = supply_tent_06 }
flag:barber_tent_01 = { add_domicile_building = barber_tent_02 }
flag:barber_tent_02 = { add_domicile_building = barber_tent_03 }
flag:barber_tent_03 = { add_domicile_building = barber_tent_04 }
flag:barber_tent_04 = { add_domicile_building = barber_tent_05 }
flag:barber_tent_05 = { add_domicile_building = barber_tent_06 }
flag:baggage_train_01 = { add_domicile_building = baggage_train_02 }
flag:baggage_train_02 = { add_domicile_building = baggage_train_03 }
flag:baggage_train_03 = { add_domicile_building = baggage_train_04 }
flag:baggage_train_04 = { add_domicile_building = baggage_train_05 }
flag:baggage_train_05 = { add_domicile_building = baggage_train_06 }
flag:camp_fire_01 = { add_domicile_building = camp_fire_02 }
flag:camp_fire_02 = { add_domicile_building = camp_fire_03 }
flag:camp_fire_03 = { add_domicile_building = camp_fire_04 }
flag:camp_fire_04 = { add_domicile_building = camp_fire_05 }
flag:camp_fire_05 = { add_domicile_building = camp_fire_06 }
flag:proving_grounds_01 = { add_domicile_building = proving_grounds_02 }
flag:proving_grounds_02 = { add_domicile_building = proving_grounds_03 }
flag:proving_grounds_03 = { add_domicile_building = proving_grounds_04 }
flag:proving_grounds_04 = { add_domicile_building = proving_grounds_05 }
flag:proving_grounds_05 = { add_domicile_building = proving_grounds_06 }
flag:camp_perimeter_01 = { add_domicile_building = camp_perimeter_02 }
flag:camp_perimeter_02 = { add_domicile_building = camp_perimeter_03 }
flag:camp_perimeter_03 = { add_domicile_building = camp_perimeter_04 }
flag:camp_perimeter_04 = { add_domicile_building = camp_perimeter_05 }
flag:camp_perimeter_05 = { add_domicile_building = camp_perimeter_06 }
}
}
custom_tooltip = camp_party_100_contracts_get
hidden_effect = {
contract_passive_spawn_effect = {
SPAWN_CONTRACTS = 2
}
}
#Provisions
domicile = {
change_provisions = massive_provisions_gain
}
#Lifestyle XP
bp2_lifestyle_xp_gain_per_type_effect = { VALUE = major }
add_character_flag = {
flag = better_recruitment_visit_holding_flag
years = 1
}
}
}
#75+ Carousing
else_if = {
limit = {
var:activity_special_type_progression < 100
var:activity_special_type_progression >= 75
}
#Stress Loss
every_attending_character = {
custom = every_attending_guest
add_stress = -100
}
#Contract spawn & flag assign
scope:host = {
custom_tooltip = camp_party_75_contracts_get
hidden_effect = {
contract_passive_spawn_effect = {
SPAWN_CONTRACTS = 1
}
}
#Provisions
domicile = {
change_provisions = major_provisions_gain
}
#Lifestyle XP
bp2_lifestyle_xp_gain_per_type_effect = { VALUE = medium }
add_character_flag = {
flag = better_recruitment_visit_holding_flag
years = 1
}
}
}
#50+ Carousing
else_if = {
limit = {
var:activity_special_type_progression < 75
var:activity_special_type_progression >= 50
}
#Stress Loss
every_attending_character = {
custom = every_attending_guest
add_stress = -75
}
#Contract spawn and flag assign
scope:host = {
#Provisions
domicile = {
change_provisions = medium_provisions_gain
}
#Lifestyle XP
bp2_lifestyle_xp_gain_per_type_effect = { VALUE = minor }
add_character_flag = {
flag = better_recruitment_visit_holding_flag
years = 1
}
}
}
#25+ Carousing
else = {
#Stress Loss
every_attending_character = {
custom = every_attending_guest
add_stress = -50
}
scope:host = {
add_character_flag = {
flag = cheaper_provisions_visit_holding_flag
years = 1
}
}
}
scope:host = {
if = {
limit = {
has_activity_intent = fireside_chat_intent
}
hidden_effect = {
remove_character_modifier = ep3_fireside_chat_modifier_3
remove_character_modifier = ep3_fireside_chat_modifier_2
remove_character_modifier = ep3_fireside_chat_modifier_1
}
if = {
limit = {
involved_activity = {
any_attending_character = {
count >= 4
OR = {
has_character_modifier = ep3_fireside_chat_diplomacy
has_character_modifier = ep3_fireside_chat_learning
has_character_modifier = ep3_fireside_chat_intrigue
has_character_modifier = ep3_fireside_chat_stewardship
has_character_modifier = ep3_fireside_chat_martial
}
}
}
}
add_character_modifier = {
modifier = ep3_fireside_chat_modifier_3
years = 10
}
}
else_if = {
limit = {
involved_activity = {
any_attending_character = {
count >= 2
OR = {
has_character_modifier = ep3_fireside_chat_diplomacy
has_character_modifier = ep3_fireside_chat_learning
has_character_modifier = ep3_fireside_chat_intrigue
has_character_modifier = ep3_fireside_chat_stewardship
has_character_modifier = ep3_fireside_chat_martial
}
}
}
}
add_character_modifier = {
modifier = ep3_fireside_chat_modifier_2
years = 10
}
}
else = {
add_character_modifier = {
modifier = ep3_fireside_chat_modifier_1
years = 10
}
}
}
}
}
}
ep3_camp_party_visit_holding_skills_boost = {
add_diplomacy_skill = { 1 3 }
add_martial_skill = { 1 3 }
add_stewardship_skill = { 1 3 }
add_intrigue_skill = { 1 3 }
add_learning_skill = { 1 3 }
}
#Setting up the Fens as a pseudo-custom region
ep3_the_fens_list_effect = {
province:1525 = { add_to_list = the_fens } #b_lynn
province:1534 = { add_to_list = the_fens } #b_cambridgeshire
province:1535 = { add_to_list = the_fens } #b_radfield
province:1536 = { add_to_list = the_fens } #b_papworth
province:1537 = { add_to_list = the_fens } #b_ely
province:1541 = { add_to_list = the_fens } #b_hurstingstone
province:1542 = { add_to_list = the_fens } #b_norman_cross
province:1584 = { add_to_list = the_fens } #b_stamford
province:1585 = { add_to_list = the_fens } #b_boston
province:1601 = { add_to_list = the_fens } #b_peterborough
}
#Used for setting up the Harrying of the North widget for events
#Requires use of ep3_harrying_widget_clear_effect in the 'after' as well
ep3_harrying_widget_setup_effect = {
global_var:harrying_of_the_north = { save_scope_as = story }
## First, identify our widget character.
save_scope_as = scope_character
## Then transfer over some suitable variables for the UI.
set_variable = {
name = pacification_gui
value = scope:story.var:pacification
}
set_variable = {
name = resistance_gui
value = scope:story.var:resistance
}
}
#Increase pacification
ep3_increase_pacification_effect = {
save_scope_as = origin_char
scope:story = {
change_variable = {
name = pacification
add = $AMOUNT$
}
}
set_variable = {
name = pacification_gui
value = scope:story.var:pacification
}
if = { #Display in red if Anglo-Saxon
limit = {
culture = culture:anglo_saxon
}
custom_tooltip = ep3_increase_pacification_effect_tt_negative
}
else = { #Otherwise in green
custom_tooltip = ep3_increase_pacification_effect_tt_positive
}
if = {
limit = {
exists = scope:story.var:ruler_england
}
scope:story.var:ruler_england = {
send_interface_message = {
type = msg_pacification_rise
title = harrying.notification_pacification_rise
desc = harrying_pacification_rise
}
}
}
if = {
limit = {
character:90028 = {
is_alive = yes
NOT = {
has_character_flag = hereward_settled_flag
}
}
}
character:90028 = {
send_interface_message = {
type = msg_pacification_rise
title = harrying.notification_pacification_rise
desc = harrying_pacification_rise
}
}
}
if = {
limit = {
scope:story.var:ruler_england = {
any_vassal = {
culture = culture:anglo_saxon
}
}
}
scope:story.var:ruler_england = {
every_vassal = {
limit = {
culture = culture:anglo_saxon
}
send_interface_message = {
type = msg_pacification_rise
title = harrying.notification_pacification_rise
desc = harrying_pacification_rise
}
}
}
}
}
#Increase pacification - large
ep3_increase_pacification_large_effect = {
save_scope_as = origin_char
scope:story = {
change_variable = {
name = pacification
add = 2
}
}
set_variable = {
name = pacification_gui
value = scope:story.var:pacification
}
if = { #Display in red if Anglo-Saxon
limit = {
culture = culture:anglo_saxon
}
custom_tooltip = ep3_increase_pacification_effect_tt_negative_large
}
else = { #Otherwise in green
custom_tooltip = ep3_increase_pacification_effect_tt_positive_large
}
if = {
limit = {
exists = scope:story.var:ruler_england
}
scope:story.var:ruler_england = {
send_interface_message = {
type = msg_pacification_rise
title = harrying.notification_pacification_rise
desc = harrying_pacification_rise
}
}
}
if = {
limit = {
character:90028 = {
is_alive = yes
NOT = {
has_character_flag = hereward_settled_flag
}
}
}
character:90028 = {
send_interface_message = {
type = msg_pacification_rise
title = harrying.notification_pacification_rise
desc = harrying_pacification_rise
}
}
}
if = {
limit = {
scope:story.var:ruler_england = {
any_vassal = {
culture = culture:anglo_saxon
}
}
}
scope:story.var:ruler_england = {
every_vassal = {
limit = {
culture = culture:anglo_saxon
}
send_interface_message = {
type = msg_pacification_rise
title = harrying.notification_pacification_rise
desc = harrying_pacification_rise
}
}
}
}
}
#Increase resistance
ep3_increase_resistance_effect = {
save_scope_as = origin_char
scope:story = {
change_variable = {
name = resistance
add = $AMOUNT$
}
}
set_variable = {
name = resistance_gui
value = scope:story.var:resistance
}
if = { #Display in green if Anglo-Saxon
limit = {
culture = culture:anglo_saxon
}
custom_tooltip = ep3_increase_resistance_effect_tt_positive
}
else = { #Otherwise in green
custom_tooltip = ep3_increase_resistance_effect_tt_negative
}
if = {
limit = {
exists = scope:story.var:ruler_england
}
scope:story.var:ruler_england = {
send_interface_message = {
type = msg_resistance_rise
title = harrying.notification_resistance_rise
desc = harrying_resistance_rise
}
}
}
if = {
limit = {
character:90028 = {
is_alive = yes
NOT = {
has_character_flag = hereward_settled_flag
}
}
}
character:90028 = {
send_interface_message = {
type = msg_resistance_rise
title = harrying.notification_resistance_rise
desc = harrying_resistance_rise
}
}
}
if = {
limit = {
scope:story.var:ruler_england = {
any_vassal = {
culture = culture:anglo_saxon
}
}
}
scope:story.var:ruler_england = {
every_vassal = {
limit = {
culture = culture:anglo_saxon
}
send_interface_message = {
type = msg_resistance_rise
title = harrying.notification_resistance_rise
desc = harrying_resistance_rise
}
}
}
}
}
#Increase resistance - large
ep3_increase_resistance_large_effect = {
save_scope_as = origin_char
scope:story = {
change_variable = {
name = resistance
add = 2
}
}
set_variable = {
name = resistance_gui
value = scope:story.var:resistance
}
if = { #Display in green if Anglo-Saxon
limit = {
culture = culture:anglo_saxon
}
custom_tooltip = ep3_increase_resistance_effect_tt_positive_large
}
else = { #Otherwise in green
custom_tooltip = ep3_increase_resistance_effect_tt_negative_large
}
if = {
limit = {
exists = scope:story.var:ruler_england
}
scope:story.var:ruler_england = {
send_interface_message = {
type = msg_resistance_rise
title = harrying.notification_resistance_rise
desc = harrying_resistance_rise
}
}
}
if = {
limit = {
character:90028 = {
is_alive = yes
NOT = {
has_character_flag = hereward_settled_flag
}
}
}
character:90028 = {
send_interface_message = {
type = msg_resistance_rise
title = harrying.notification_resistance_rise
desc = harrying_resistance_rise
}
}
}
if = {
limit = {
scope:story.var:ruler_england = {
any_vassal = {
culture = culture:anglo_saxon
}
}
}
scope:story.var:ruler_england = {
random_vassal = {
limit = {
culture = culture:anglo_saxon
}
send_interface_message = {
type = msg_resistance_rise
title = harrying.notification_resistance_rise
desc = harrying_resistance_rise
}
}
}
}
}
#Decrease pacification
ep3_decrease_pacification_effect = {
save_scope_as = origin_char
if = {
limit = { scope:story.var:pacification != 0 }
scope:story = {
change_variable = {
name = pacification
add = -1
}
}
set_variable = {
name = pacification_gui
value = scope:story.var:pacification
}
if = { #Display in green if Anglo-Saxon
limit = {
culture = culture:anglo_saxon
}
custom_tooltip = ep3_decrease_pacification_effect_tt_positive
}
else = { #Otherwise in green
custom_tooltip = ep3_decrease_pacification_effect_tt_negative
}
if = {
limit = {
exists = scope:story.var:ruler_england
}
scope:story.var:ruler_england = {
send_interface_message = {
type = msg_pacification_falls
title = harrying.notification_pacification_fall
desc = harrying_pacification_fall
}
}
}
if = {
limit = {
character:90028 = {
is_alive = yes
NOT = {
has_character_flag = hereward_settled_flag
}
}
}
character:90028 = {
send_interface_message = {
type = msg_pacification_falls
title = harrying.notification_pacification_fall
desc = harrying_pacification_fall
}
}
}
if = {
limit = {
scope:story.var:ruler_england = {
any_vassal = {
culture = culture:anglo_saxon
}
}
}
scope:story.var:ruler_england = {
every_vassal = {
limit = {
culture = culture:anglo_saxon
}
send_interface_message = {
type = msg_pacification_falls
title = harrying.notification_pacification_fall
desc = harrying_pacification_fall
}
}
}
}
}
}
#Decrease resistance
ep3_decrease_resistance_effect = {
save_scope_as = origin_char
if = {
limit = { scope:story.var:pacification != 0 }
scope:story = {
change_variable = {
name = resistance
add = -1
}
}
set_variable = {
name = resistance_gui
value = scope:story.var:resistance
}
if = { #Display in red if Anglo-Saxon
limit = {
culture = culture:anglo_saxon
}
custom_tooltip = ep3_decrease_resistance_effect_tt_negative
}
else = { #Otherwise in green
custom_tooltip = ep3_decrease_resistance_effect_tt_positive
}
if = {
limit = {
exists = scope:story.var:ruler_england
}
scope:story.var:ruler_england = {
send_interface_message = {
type = msg_resistance_falls
title = harrying.notification_resistance_fall
desc = harrying_resistance_fall
}
}
}
if = {
limit = {
character:90028 = {
is_alive = yes
NOT = {
has_character_flag = hereward_settled_flag
}
}
}
character:90028 = {
send_interface_message = {
type = msg_resistance_falls
title = harrying.notification_resistance_fall
desc = harrying_resistance_fall
}
}
}
if = {
limit = {
scope:story.var:ruler_england = {
any_vassal = {
culture = culture:anglo_saxon
}
}
}
scope:story.var:ruler_england = {
every_vassal = {
limit = {
culture = culture:anglo_saxon
}
send_interface_message = {
type = msg_resistance_falls
title = harrying.notification_resistance_fall
desc = harrying_resistance_fall
}
}
}
}
}
}
#Used for clearing widget data from the participants
ep3_harrying_widget_clear_effect = {
remove_variable = pacification_gui
remove_variable = resistance_gui
}
# Effect for handling players and AI continuing as landless if deposed
# Should be used over the standard effect in most cases (except barons/unlanded AI etc.)
# DEPOSER should be whoever has caused the deposal - faction leader, ultimatum giver, etc.
depose_effect = {
show_as_tooltip = { depose = yes }
save_scope_as = allow_imprisoned_landless
if = {
limit = { is_valid_for_laampdom = yes }
custom_tooltip = laamp_may_become_adventurer_tt
}
set_variable = {
name = deposed_primary_title
value = primary_title
months = 1
}
# Maintenance scopes
save_scope_as = defender
$DEPOSER$ = {
save_scope_as = attacker
save_scope_as = winner
}
# ACH crown laws reset
if = {
limit = {
has_variable = crowned_king_var
}
remove_variable = crowned_king_var
if = {
limit = {
NOT = { has_game_rule = coronation_laws_off }
OR = {
has_realm_law = crowned_king
has_realm_law = crowned_emperor
}
}
add_realm_law_skip_effects = uncrowned
}
}
if = {
limit = {
has_variable = crowned_emperor_var
}
remove_variable = crowned_emperor_var
if = {
limit = {
NOT = { has_game_rule = coronation_laws_off }
OR = {
has_realm_law = crowned_king
has_realm_law = crowned_emperor
}
}
add_realm_law_skip_effects = uncrowned
}
}
every_held_title = { add_to_list = target_titles }
trigger_event = ep3_laamps.0002
}
# Effect for handling players and AI continuing as landless if banished
# Should be used over the standard effect in most cases (except barons/unlanded AI etc.)
# BANISHER should be whoever has caused the banishment - imprisoner, ultimatum giver, etc.
banish_effect = {
show_as_tooltip = { banish = yes }
save_scope_as = allow_imprisoned_landless
if = {
limit = { scope:allow_imprisoned_landless = { is_valid_for_laampdom = yes } }
custom_tooltip = laamp_may_become_adventurer_tt
}
$BANISHER$ = { save_scope_as = banisher }
trigger_event = ep3_laamps.0021
}
#Used for setting up the Peasant Leader widget for events
#Requires use of ep3_peasant_leader_widget_clear_effect in the 'after' as well
ep3_peasant_leader_widget_setup_effect = {
set_variable = {
name = support_gui
value = scope:task_contract.var:support
}
set_variable = {
name = control_gui
value = scope:task_contract.var:control
}
set_variable = {
name = num_of_corrupt_counties_gui
value = scope:task_contract.var:num_of_corrupt_counties
}
}
#Increase support
ep3_increase_peasant_support_effect = {
scope:task_contract = {
change_variable = {
name = support
add = 1
}
add_to_variable_list = {
name = supported_counties
target = scope:corrupt_province.county
}
}
custom_tooltip = ep3_support_peasants_effect_tt
scope:task_contract.var:task_contract_councillor_liege ?= {
send_interface_message = {
type = msg_peasant_supported
title = msg_peasant_supported.title
desc = msg_peasant_supported.desc
}
}
scope:task_contract.var:task_contract_councillor ?= {
send_interface_message = {
type = msg_peasant_supported
title = msg_peasant_supported.title
desc = msg_peasant_supported.desc
}
}
}
#Increase control
ep3_increase_peasant_control_effect = {
scope:task_contract = {
change_variable = {
name = control
add = 1
}
}
custom_tooltip = ep3_control_peasants_effect_tt
scope:task_contract.var:task_contract_councillor_liege ?= {
send_interface_message = {
type = msg_peasant_controlled
title = msg_peasant_controlled.title
desc = msg_peasant_controlled.desc
}
}
scope:task_contract.var:task_contract_councillor ?= {
send_interface_message = {
type = msg_peasant_controlled
title = msg_peasant_controlled.title
desc = msg_peasant_controlled.desc
}
}
}
#Used for clearing widget data from the participants
ep3_peasant_leader_widget_clear_effect = {
remove_variable = support_gui
remove_variable = control_gui
remove_variable = num_of_corrupt_counties_gui
}
ep3_join_faction_war_effect = {
# Use hook/pay gold
scope:actor = {
if = {
limit = {
scope:hook = yes
has_hook = scope:recipient
}
use_hook = scope:recipient
}
if = {
limit = { scope:gold = yes }
pay_short_term_gold = {
gold = scope:actor.medium_gold_value
target = scope:recipient
}
}
}
# Gain some influence
scope:recipient = {
change_influence = 75
# Remove from existing faction if swapping
if = {
limit = { exists = joined_faction }
leave_faction = joined_faction
}
if = {
limit = { target_is_liege_or_above = scope:secondary_recipient }
add_faction_cooldown_effect = { YEARS = 5 }
}
remove_character_flag = under_offer_join_faction_war_flag
}
scope:actor.joined_faction.faction_war = {
if = {
limit = { is_defender = scope:actor }
add_defender = scope:recipient
}
else = { add_attacker = scope:recipient }
}
}
ep3_switch_faction_war_sides_effect = {
scope:actor = {
if = {
limit = {
scope:hook = yes
has_hook = scope:recipient
}
use_hook = scope:recipient
}
if = {
limit = { scope:gold = yes }
pay_short_term_gold = {
gold = scope:actor.medium_gold_value
target = scope:recipient
}
}
}
scope:recipient = {
change_influence = 150
# Remove from existing faction if swapping
if = {
limit = { exists = joined_faction }
leave_faction = joined_faction
}
if = {
limit = { target_is_liege_or_above = scope:secondary_recipient }
add_faction_cooldown_effect = { YEARS = 5 }
}
}
scope:actor = {
every_character_war = {
limit = { ep3_switch_faction_war_sides_war_trigger = yes }
hidden_effect = { remove_participant = scope:recipient }
if = {
limit = { is_defender = scope:actor }
add_defender = scope:recipient
hidden_effect = {
primary_attacker = {
add_opinion = {
target = scope:recipient
modifier = betrayed_me_opinion
opinion = -25
}
}
}
}
else = {
add_attacker = scope:recipient
primary_defender = {
hidden_effect = {
add_opinion = {
target = scope:recipient
modifier = betrayed_me_opinion
opinion = -25
}
}
}
}
}
}
scope:recipient = { custom_tooltip = ep3_switch_faction_war_sides_cooldown_effect_tt }
}
ep3_raid_insight_effect = {
add_character_modifier = {
modifier = raid_insight_$TYPE$
years = 5
}
}
# Set up titles in the new realm.
# Determine potential breakaways
ep3_landless_invasion_titles_taken_effect = {
# Determine independent vassals
adventurer_realm_destabilisation_list_effect = {
TITLE_RECEIVER = $TITLE_RECEIVER$
TITLE_GIVER = $TITLE_GIVER$
TITLE = $TITLE$
}
# Determine hierarchy
ep3_become_landed_save_liege_effect = {
TITLE_GIVER = $TITLE_GIVER$
ALWAYS_INDEPENDENT = yes
TITLE_LIST = $TITLE_LIST$
}
# Resolve title, liege, government changes
if = {
limit = { exists = scope:claimant }
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = $TITLE_RECEIVER$
TITLE_LIST = $TITLE_LIST$
TYPE = conquest_claim
REASON = flag:conquest_claim
ENNOBLED_ADVENTURER = flag:yes
}
}
else = {
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = $TITLE_RECEIVER$
TITLE_LIST = $TITLE_LIST$
TYPE = conquest
REASON = flag:conquest
ENNOBLED_ADVENTURER = flag:yes
}
}
# Vassals break away
adventurer_realm_destabilisation_transfer_effect = {
TITLE = $TITLE$
TITLE_RECEIVER = $TITLE_RECEIVER$
TITLE_GIVER = $TITLE_GIVER$
TITLE_LIST = $TITLE_LIST$
}
}
governor_contract_invalidated_message_effect = {
task_contract_taker ?= {
save_scope_as = task_contract_character
send_interface_message = {
type = event_generic_bad_with_text
title = admin_contract_invalidated_title
left_icon = scope:task_contract_character
desc = admin_contract_invalidated_desc
current_travel_plan ?= {
if = {
limit = { can_cancel = yes }
cancel_travel_plan = yes
}
}
}
}
}
assign_favourite_child_effect = {
$ACTOR$ = {
random_relation = {
type = favorite_child
save_scope_as = current_favorite
}
send_interface_toast = {
title = choose_favorite_interaction_notification
left_icon = $ACTOR$
right_icon = $RECIPIENT$
if = {
limit = {
exists = scope:current_favorite
}
remove_relation_favorite_child = scope:current_favorite
scope:current_favorite = {
add_opinion = {
target = $ACTOR$
modifier = no_more_favorite_opinion
}
}
}
set_relation_favorite_child = { reason = favorite_child_chosen target = $RECIPIENT$ }
$RECIPIENT$ = {
add_opinion = {
target = $ACTOR$
modifier = made_favorite_opinion
}
}
custom_tooltip = choose_favorite_interaction_notification.tt
}
hidden_effect = {
every_close_or_extended_family_member = {
limit = {
NOT = { this = $RECIPIENT$ }
OR = {
is_child_of = $ACTOR$
is_grandchild_of = $ACTOR$
is_great_grandchild_of = $ACTOR$
}
}
add_opinion = {
target = $ACTOR$
modifier = has_favorite_opinion
}
add_opinion = {
target = $RECIPIENT$
modifier = is_favorite_opinion
}
}
}
}
}
add_random_internal_estate_building = {
random_list = {
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = servants_quarters_01 }
}
add_domicile_building = servants_quarters_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = servants_quarters_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = library_01 }
}
add_domicile_building = library_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = library_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = bath_01 }
}
add_domicile_building = bath_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = bath_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = courtyard_01 }
}
add_domicile_building = courtyard_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = courtyard_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = prison_01 }
}
add_domicile_building = prison_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = prison_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = living_quarters_01 }
}
add_domicile_building = living_quarters_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = living_quarters_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = trophy_room_01 }
}
add_domicile_building = trophy_room_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = trophy_room_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = office_01 }
}
add_domicile_building = office_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = office_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = guest_room_01 }
}
add_domicile_building = guest_room_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = guest_room_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = wine_cellar_01 }
}
add_domicile_building = wine_cellar_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = wine_cellar_02
}
}
}
}
fill_external_estate_building_effect = {
switch = {
trigger = has_domicile_building_or_higher
estate_main_05 = {
while = {
limit = { free_external_domicile_building_slots >= 1 }
add_random_external_estate_building = yes
}
}
estate_main_04 = {
while = {
limit = { free_external_domicile_building_slots >= 2 }
add_random_external_estate_building = yes
}
}
estate_main_03 = {
while = {
limit = { free_external_domicile_building_slots >= 3 }
add_random_external_estate_building = yes
}
}
estate_main_02 = {
while = {
limit = { free_external_domicile_building_slots >= 4 }
add_random_external_estate_building = yes
}
}
estate_main_01 = {
while = {
limit = { free_external_domicile_building_slots >= 5 }
add_random_external_estate_building = yes
}
}
}
}
add_random_external_estate_building = {
if = {
limit = {
free_external_domicile_building_slots >= 1
}
random_list = {
10 = {
trigger = {
NOR = {
has_domicile_building_or_higher = temple_small_01
owner = {
government_has_flag = government_is_celestial
}
}
}
add_domicile_building = temple_small_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = temple_small_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = barracks_01 }
}
add_domicile_building = barracks_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = barracks_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = watchtower_01 }
}
add_domicile_building = watchtower_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = watchtower_02
}
}
10 = {
trigger = {
NOR = {
has_domicile_building_or_higher = vineyard_01
owner.culture ?= {
has_innovation = innovation_champa_rice
}
}
}
add_domicile_building = vineyard_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = vineyard_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = guardhouse_01 }
}
add_domicile_building = guardhouse_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = guardhouse_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = garden_01 }
}
add_domicile_building = garden_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = garden_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = storage_01 }
}
add_domicile_building = storage_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = storage_02
}
}
10 = {
trigger = {
NOR = {
has_domicile_building_or_higher = grain_field_01
owner.culture ?= {
has_innovation = innovation_champa_rice
}
}
}
add_domicile_building = grain_field_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = grain_field_02
}
}
10 = {
trigger = {
NOT = {
has_domicile_building_or_higher = rice_field_01
}
owner.culture ?= {
has_innovation = innovation_champa_rice
}
}
add_domicile_building = rice_field_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = rice_field_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = stable_01 }
}
add_domicile_building = stable_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = stable_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = workshop_01 }
}
add_domicile_building = workshop_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = workshop_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = market_01 }
}
add_domicile_building = market_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = market_02
}
}
10 = {
trigger = {
NOT = { has_domicile_building_or_higher = grazing_land_01 }
}
add_domicile_building = grazing_land_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = grazing_land_02
}
}
10 = {
trigger = {
NOR = {
has_domicile_building_or_higher = olive_01
owner.culture ?= {
has_innovation = innovation_champa_rice
}
}
}
add_domicile_building = olive_01
if = {
limit = { has_domicile_building = estate_main_03 }
add_domicile_building = olive_02
}
}
}
}
}
estate_newly_built_grain_field_effect = {
scope:owner = {
if = {
limit = {
is_alive = yes
years_from_game_start >= 1
}
random = {
chance = 75
add_character_flag = {
flag = domicile_new_built_grain_field
months = 1
}
trigger_event = {
id = ep3_governor_yearly.3001
days = 5
}
}
}
}
}
demand_pastureland_adventurer_interaction_effect = {
# scope:actor = adventurer
# scope:recipient = herder
# seized_pastureland = titles
scope:target = { add_to_list = seized_pastureland }
scope:recipient = { save_scope_as = defender }
hidden_effect = {
scope:actor = {
if = {
limit = { character:90028 ?= this }
add_character_flag = hereward_settled_flag
}
if = {
limit = {
NOT = { has_trait = adventurer }
}
add_trait = adventurer
}
every_courtier = {
set_variable = {
name = former_camp_leader
value = scope:actor
}
add_trait = adventurer_follower
}
}
}
# Determine hierarchy
ep3_become_landed_save_liege_effect = {
TITLE_GIVER = scope:recipient
ALWAYS_INDEPENDENT = no
TITLE_LIST = seized_pastureland
}
# Resolve title, liege, government changes
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = scope:actor
TITLE_LIST = seized_pastureland
TYPE = granted
REASON = flag:seized_pastureland
ENNOBLED_ADVENTURER = flag:yes
}
# Messages for nearby players
create_landed_ruler_message_effect = {
LANDED = scope:actor
FLAVOR_CHAR = scope:recipient
FLAVOR_TITLE = scope:target
REASON = flag:seized_pastureland
}
}