From 10f153058e8e6e30bd6f98d9b64dbb2d7df6de6c Mon Sep 17 00:00:00 2001 From: Heidesommer Date: Wed, 20 May 2026 22:50:40 -0400 Subject: [PATCH 1/5] Books and stuff --- common/casus_belli_types/00_religious_war.txt | 2 +- .../00_character_interactions.txt | 4 +- .../09_mpo_interactions.txt | 4 +- .../template_lists/coa_templates.txt | 6 +- common/council_tasks/00_steward_tasks.txt | 232 +- .../00_cultural_maa_innovations.txt | 13 +- .../innovations/01_fp1_innovations.txt | 10 +- .../traditions/00_realm_traditions.txt | 38 +- .../00_regional_custom_localization.txt | 209 +- .../10_culture_conversion_decisions.txt | 114 +- common/decisions/80_major_decisions_roman.txt | 2 +- .../decisions/dlc_decisions/ep3_decisions.txt | 52 +- common/landed_titles/europa.txt | 20 +- common/landed_titles/italy.txt | 22 +- .../script_values/04_ep2_wedding_values.txt | 4 +- .../00_scheme_scripted_effects.txt | 16850 ++++++++++++++++ common/scripted_triggers/10_tgp_triggers.txt | 2 +- .../coronation_events_6.txt | 80 +- .../pilgrimage_activity/pilgrimage_events.txt | 2 +- .../roman_restoration_events.txt | 40 +- .../religion_events/great_holy_war_events.txt | 132 +- events/travel_events/travel_events_bp3.txt | 8 +- .../zz_NEOW_cultural_flavor_l_english.yml | 24 + 23 files changed, 17462 insertions(+), 408 deletions(-) create mode 100644 common/scripted_effects/00_scheme_scripted_effects.txt create mode 100644 localization/english/replace/culture/zz_NEOW_cultural_flavor_l_english.yml diff --git a/common/casus_belli_types/00_religious_war.txt b/common/casus_belli_types/00_religious_war.txt index 09d296ad..5a8b472b 100644 --- a/common/casus_belli_types/00_religious_war.txt +++ b/common/casus_belli_types/00_religious_war.txt @@ -3255,7 +3255,7 @@ undirected_great_holy_war = { #Tell non diverting-players about the crazy 4th crusade plan if = { limit = { - scope:attacker.faith = { this = faith:catholic } + scope:attacker.faith = { this = faith:roman_catholic } exists = global_var:byz_claimant_champion global_var:byz_claimant_champion = { is_alive = yes diff --git a/common/character_interactions/00_character_interactions.txt b/common/character_interactions/00_character_interactions.txt index 0ce12166..9bab5fc7 100644 --- a/common/character_interactions/00_character_interactions.txt +++ b/common/character_interactions/00_character_interactions.txt @@ -1171,8 +1171,8 @@ offer_vassalization_interaction = { modifier = { # AI-only weights, keep the pope from vassalizing too fast trigger = { - exists = faith:catholic.religious_head - faith:catholic.religious_head = scope:actor + exists = faith:roman_catholic.religious_head + faith:roman_catholic.religious_head = scope:actor scope:actor = { is_ai = yes } } add = -50 diff --git a/common/character_interactions/09_mpo_interactions.txt b/common/character_interactions/09_mpo_interactions.txt index 9bbeb1fb..319c8577 100644 --- a/common/character_interactions/09_mpo_interactions.txt +++ b/common/character_interactions/09_mpo_interactions.txt @@ -9447,8 +9447,8 @@ mpo_offer_submission_or_ruin = { modifier = { # AI-only weights, keep the pope from vassalizing too fast trigger = { - exists = faith:catholic.religious_head - faith:catholic.religious_head = scope:actor + exists = faith:roman_catholic.religious_head + faith:roman_catholic.religious_head = scope:actor scope:actor = { is_ai = yes } } add = -50 diff --git a/common/coat_of_arms/template_lists/coa_templates.txt b/common/coat_of_arms/template_lists/coa_templates.txt index 3618f1e4..eeff2838 100644 --- a/common/coat_of_arms/template_lists/coa_templates.txt +++ b/common/coat_of_arms/template_lists/coa_templates.txt @@ -175,7 +175,7 @@ } AND = { OR = { - scope:faith = faith:nestorian +# scope:faith = faith:nestorian scope:religion = religion:tengrism_religion scope:religion = religion:zoroastrianism_religion scope:religion = religion:magyar_religion @@ -208,7 +208,7 @@ } AND = { OR = { - scope:faith = faith:nestorian +# scope:faith = faith:nestorian scope:religion = religion:tengrism_religion scope:religion = religion:zoroastrianism_religion scope:religion = religion:magyar_religion @@ -231,7 +231,7 @@ } AND = { OR = { - scope:faith = faith:nestorian +# scope:faith = faith:nestorian scope:religion = religion:tengrism_religion scope:religion = religion:zoroastrianism_religion scope:religion = religion:magyar_religion diff --git a/common/council_tasks/00_steward_tasks.txt b/common/council_tasks/00_steward_tasks.txt index 9b8a4224..7b5d53a9 100644 --- a/common/council_tasks/00_steward_tasks.txt +++ b/common/council_tasks/00_steward_tasks.txt @@ -1167,95 +1167,95 @@ task_promote_culture = { count < 35 } } - AND = { - # Scottish rulers should convert counties of 'old' cultures to the new one. - culture = culture:scottish - OR = { - scope:county.culture = culture:anglo_saxon - scope:county.culture = culture:gaelic - scope:county.culture = culture:cumbrian - scope:county.culture = culture:pictish - } - } - AND = { - # English rulers should convert counties of 'old' cultures to the new one. - culture = culture:english - OR = { - scope:county.culture = culture:anglo_saxon - scope:county.culture = culture:norman - } - } - AND = { - # German rulers want to convert the sorbians - culture = { has_cultural_pillar = heritage_central_germanic } - scope:county.culture = culture:sorbian - NOT = { scope:councillor_liege.primary_title = title:e_hre } - } - AND = { - # Japanese rulers should convert Emishi counties - culture = culture:japanese - scope:county.culture = culture:emishi - } - } - } - OR = { - scope:county = { - any_neighboring_county = { - culture = scope:councillor_liege.culture # The AI only wants to convert counties bordering their own culture - } - } - AND = { # The English want to convert the Anglo Saxons and Cumbrians - scope:councillor_liege.culture = culture:english - OR = { - scope:county.culture = culture:anglo_saxon - scope:county.culture = culture:cumbrian - } - } - AND = { # The Scots want to convert the Anglo Saxons, Cumbrians and Gaelic - scope:councillor_liege.culture = culture:scottish - OR = { - scope:county.culture = culture:anglo_saxon - scope:county.culture = culture:gaelic - scope:county.culture = culture:cumbrian - scope:county.culture = culture:pictish - } - } - AND = { # The Gaels want to convert the Picts and Cumbrians - scope:councillor_liege.culture = culture:gaelic - OR = { - scope:county.culture = culture:cumbrian - scope:county.culture = culture:pictish - } - } - AND = { # The modern scandinavians want to convert the Norse - OR = { - scope:councillor_liege.culture = culture:swedish - scope:councillor_liege.culture = culture:danish - scope:councillor_liege.culture = culture:norwegian - } - scope:county.culture = culture:norse - } - AND = { # The Portuguese should want to convert Suebi - scope:councillor_liege.culture = culture:portuguese - scope:county.culture = culture:suebi - } - AND = { # The Iberians want to convert Visigothic - scope:councillor_liege.culture = { has_cultural_pillar = heritage_iberian } - NOT = { scope:councillor_liege.culture = culture:portuguese } - scope:county.culture = culture:visigothic - } - AND = { - # German rulers want to convert the sorbians - scope:councillor_liege.culture = { has_cultural_pillar = heritage_central_germanic } - scope:county.culture = culture:sorbian - NOT = { scope:councillor_liege.primary_title = title:e_hre } - } - AND = { - # Japanese rulers should convert Emishi counties - scope:councillor_liege.culture = culture:japanese - scope:county.culture = culture:emishi +# AND = { +# # Scottish rulers should convert counties of 'old' cultures to the new one. +# culture = culture:scottish +# OR = { +# scope:county.culture = culture:anglo_saxon +# scope:county.culture = culture:gaelic +# scope:county.culture = culture:cumbrian +# scope:county.culture = culture:pictish +# } +# } +# AND = { +# # English rulers should convert counties of 'old' cultures to the new one. +# culture = culture:english +# OR = { +# scope:county.culture = culture:anglo_saxon +# scope:county.culture = culture:norman +# } +# } +# AND = { +# # German rulers want to convert the sorbians +# culture = { has_cultural_pillar = heritage_central_germanic } +# scope:county.culture = culture:sorbian +# NOT = { scope:councillor_liege.primary_title = title:e_hre } +# } +# AND = { +# # Japanese rulers should convert Emishi counties +# culture = culture:japanese +# scope:county.culture = culture:emishi +# } } } +# OR = { +# scope:county = { +# any_neighboring_county = { +# culture = scope:councillor_liege.culture # The AI only wants to convert counties bordering their own culture +# } +# } +# AND = { # The English want to convert the Anglo Saxons and Cumbrians +# scope:councillor_liege.culture = culture:english +# OR = { +# scope:county.culture = culture:anglo_saxon +# scope:county.culture = culture:cumbrian +# } +# } +# AND = { # The Scots want to convert the Anglo Saxons, Cumbrians and Gaelic +# scope:councillor_liege.culture = culture:scottish +# OR = { +# scope:county.culture = culture:anglo_saxon +# scope:county.culture = culture:gaelic +# scope:county.culture = culture:cumbrian +# scope:county.culture = culture:pictish +# } +# } +# AND = { # The Gaels want to convert the Picts and Cumbrians +# scope:councillor_liege.culture = culture:gaelic +# OR = { +# scope:county.culture = culture:cumbrian +# scope:county.culture = culture:pictish +# } +# } +# AND = { # The modern scandinavians want to convert the Norse +# OR = { +# scope:councillor_liege.culture = culture:swedish +# scope:councillor_liege.culture = culture:danish +# scope:councillor_liege.culture = culture:norwegian +# } +# scope:county.culture = culture:norse +# } +# AND = { # The Portuguese should want to convert Suebi +# scope:councillor_liege.culture = culture:portuguese +# scope:county.culture = culture:suebi +# } +# AND = { # The Iberians want to convert Visigothic +# scope:councillor_liege.culture = { has_cultural_pillar = heritage_iberian } +# NOT = { scope:councillor_liege.culture = culture:portuguese } +# scope:county.culture = culture:visigothic +# } +# AND = { +# # German rulers want to convert the sorbians +# scope:councillor_liege.culture = { has_cultural_pillar = heritage_central_germanic } +# scope:county.culture = culture:sorbian +# NOT = { scope:councillor_liege.primary_title = title:e_hre } +# } +# AND = { +# # Japanese rulers should convert Emishi counties +# scope:councillor_liege.culture = culture:japanese +# scope:county.culture = culture:emishi +# } +# } } trigger_else_if = { # But AI Directives should still try to look pretty limit = { @@ -1815,35 +1815,35 @@ task_accept_culture = { limit = { scope:councillor_liege = { is_ai = yes } } - NAND = { - # Scottish rulers should convert counties of 'old' cultures to the new one. - scope:councillor_liege.culture = culture:scottish - OR = { - scope:county.culture = culture:anglo_saxon - scope:county.culture = culture:gaelic - scope:county.culture = culture:cumbrian - scope:county.culture = culture:pictish - } - } - NAND = { - # English rulers should convert counties of 'old' cultures to the new one. - scope:councillor_liege.culture = culture:english - OR = { - scope:county.culture = culture:anglo_saxon - scope:county.culture = culture:norman - } - } - NAND = { - # German rulers want to convert the sorbians - scope:councillor_liege.culture = { has_cultural_pillar = heritage_central_germanic } - scope:county.culture = culture:sorbian - NOT = { scope:councillor_liege.primary_title = title:e_hre } - } - NAND = { - # Japanese rulers should convert Emishi counties - scope:councillor_liege.culture = culture:japanese - scope:county.culture = culture:emishi - } +# NAND = { +# # Scottish rulers should convert counties of 'old' cultures to the new one. +# scope:councillor_liege.culture = culture:scottish +# OR = { +# scope:county.culture = culture:anglo_saxon +# scope:county.culture = culture:gaelic +# scope:county.culture = culture:cumbrian +# scope:county.culture = culture:pictish +# } +# } +# NAND = { +# # English rulers should convert counties of 'old' cultures to the new one. +# scope:councillor_liege.culture = culture:english +# OR = { +# scope:county.culture = culture:anglo_saxon +# scope:county.culture = culture:norman +# } +# } +# NAND = { +# # German rulers want to convert the sorbians +# scope:councillor_liege.culture = { has_cultural_pillar = heritage_central_germanic } +# scope:county.culture = culture:sorbian +# NOT = { scope:councillor_liege.primary_title = title:e_hre } +# } +# NAND = { +# # Japanese rulers should convert Emishi counties +# scope:councillor_liege.culture = culture:japanese +# scope:county.culture = culture:emishi +# } OR = { scope:councillor_liege = { has_character_flag = vassal_directive_improve_cultural_acceptance diff --git a/common/culture/innovations/00_cultural_maa_innovations.txt b/common/culture/innovations/00_cultural_maa_innovations.txt index 5b4f4726..7057187a 100644 --- a/common/culture/innovations/00_cultural_maa_innovations.txt +++ b/common/culture/innovations/00_cultural_maa_innovations.txt @@ -102,12 +102,13 @@ innovation_legionnaires = { icon = @special_maa_02 potential = { - OR = { - this = culture:roman - culture_head ?= { - is_roman_emperor_primary_title_excluding_byzantium_trigger = yes - } - } + always = no +# OR = { +# this = culture:roman +# culture_head ?= { +# is_roman_emperor_primary_title_excluding_byzantium_trigger = yes +# } +# } } unlock_maa = praetorian diff --git a/common/culture/innovations/01_fp1_innovations.txt b/common/culture/innovations/01_fp1_innovations.txt index 476f27fe..fe4899df 100644 --- a/common/culture/innovations/01_fp1_innovations.txt +++ b/common/culture/innovations/01_fp1_innovations.txt @@ -48,11 +48,11 @@ innovation_varangian_adventurers = { has_innovation = innovation_varangian_adventurers has_cultural_pillar = heritage_north_germanic - # Frankish - this = culture:norman - any_parent_culture_or_above = { - this = culture:norse #Norman - } +# # Frankish +# this = culture:norman +# any_parent_culture_or_above = { +# this = culture:norse #Norman +# } this = culture:estonian any_parent_culture_or_above = { this = culture:estonian #Estonian diff --git a/common/culture/traditions/00_realm_traditions.txt b/common/culture/traditions/00_realm_traditions.txt index 270d3f8d..5c95a730 100644 --- a/common/culture/traditions/00_realm_traditions.txt +++ b/common/culture/traditions/00_realm_traditions.txt @@ -225,12 +225,12 @@ tradition_republican_legacy = { NOT = { has_cultural_tradition = tradition_parochialism } } can_pick = { - OR ={ - this = culture:roman - any_parent_culture_or_above = { - this = culture:roman - } - } +# OR ={ +# this = culture:roman +# any_parent_culture_or_above = { +# this = culture:roman +# } +# } NOT = { has_cultural_tradition = tradition_parochialism } custom_tooltip = { text = cultrad_not_nomadic_government_type @@ -2161,20 +2161,20 @@ tradition_parochialism = { is_shown = { #Replaced by tradition_republican_legacy NOT = { has_cultural_tradition = tradition_republican_legacy } - NOR ={ - this = culture:roman - any_parent_culture_or_above = { - this = culture:roman - } - } - } +# NOR ={ +# this = culture:roman +# any_parent_culture_or_above = { +# this = culture:roman +# } +# } +# } can_pick = { - NOR ={ - this = culture:roman - any_parent_culture_or_above = { - this = culture:roman - } - } +# NOR ={ +# this = culture:roman +# any_parent_culture_or_above = { +# this = culture:roman +# } +# } NOT = { has_cultural_tradition = tradition_republican_legacy } custom_tooltip = { text = cultrad_not_nomadic_government_type diff --git a/common/customizable_localization/00_regional_custom_localization.txt b/common/customizable_localization/00_regional_custom_localization.txt index ba8e162a..fe0cdcd3 100644 --- a/common/customizable_localization/00_regional_custom_localization.txt +++ b/common/customizable_localization/00_regional_custom_localization.txt @@ -561,6 +561,11 @@ TerrainTypeCountyScope = { trigger = { title_province = { terrain = drylands } } localization_key = terrain_drylands } + + text = { + trigger = { title_province = { terrain = tells } } + localization_key = terrain_drylands + } } TerrainTypeCountyScopePlural = { @@ -637,6 +642,11 @@ TerrainTypeCountyScopePlural = { trigger = { title_province = { terrain = drylands } } localization_key = terrain_drylands } + + text = { + trigger = { title_province = { terrain = tells } } + localization_key = terrain_tells + } } TerrainType = { @@ -713,6 +723,11 @@ TerrainType = { trigger = { location = { terrain = drylands } } localization_key = terrain_drylands } + + text = { + trigger = { location = { terrain = tells} } + localization_key = terrain_tells + } } TerrainTypeProvince = { @@ -792,6 +807,10 @@ TerrainTypeProvince = { trigger = { terrain = terraced_hills } localization_key = terrain_terraced_hills } + text = { + trigger = { terrain = tells } + localization_key = terrain_tells + } } TerrainTypeProvincePrefix = { @@ -809,7 +828,12 @@ TerrainTypeProvincePrefix = { } text = { - trigger = { terrain = hills } + trigger = { + OR = { + terrain = hills + terrain = tells + } + } localization_key = prefix_rolling } @@ -1523,9 +1547,9 @@ RandomReligiousTextName = { #The book is of my religion trigger_else = { OR = { - location.faith.religion = religion:eastern_orthodox_religion - location.faith.religion = religion:catholic_religion - location.faith.religion = religion:protestant_religion + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion } } } @@ -1575,16 +1599,13 @@ RandomReligiousTextName = { location.faith.religion = religion:catholic_religion location.faith.religion = religion:protestant_religion } - NOT = { location.faith = faith:orthodox } } #The book is of my religion trigger_else = { OR = { - faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } - NOT = { faith = faith:orthodox } } } localization_key = random_religious_text_summa_theologica @@ -1601,7 +1622,6 @@ RandomReligiousTextName = { trigger_else_if = { limit = { exists = scope:visiting_location } OR = { - location.faith.religion = religion:eastern_orthodox_religion location.faith.religion = religion:catholic_religion location.faith.religion = religion:protestant_religion } @@ -1610,7 +1630,6 @@ RandomReligiousTextName = { #The book is of my religion trigger_else = { OR = { - faith.religion = religion:eastern_orthodox_religion faith.religion = religion:catholic_religion faith.religion = religion:protestant_religion } @@ -1630,10 +1649,10 @@ RandomReligiousTextName = { #We're a LAAMP visiting somewhere trigger_else_if = { limit = { exists = scope:visiting_location } - location.faith = faith:orthodox + location.faith..religion = religion:eastern_orthodox_religion } #The book is of my religion - trigger_else = { faith = faith:orthodox } + trigger_else = { faith..religion = religion:eastern_orthodox_religion } } localization_key = random_religious_text_chrysostomos } @@ -1648,10 +1667,10 @@ RandomReligiousTextName = { #We're a LAAMP visiting somewhere trigger_else_if = { limit = { exists = scope:visiting_location } - location.faith = faith:orthodox + location.faith.religion = religion:eastern_orthodox_religion } #The book is of my religion - trigger_else = { faith = faith:orthodox } + trigger_else = { faith.religion = religion:eastern_orthodox_religion } } localization_key = random_religious_text_symeon_menologion } @@ -1666,10 +1685,10 @@ RandomReligiousTextName = { #We're a LAAMP visiting somewhere trigger_else_if = { limit = { exists = scope:visiting_location } - location.faith = faith:orthodox + location.faith.religion = religion:eastern_orthodox_religion } #The book is of my religion - trigger_else = { faith = faith:orthodox } + trigger_else = { faith.religion = religion:eastern_orthodox_religion } } localization_key = random_religious_text_god_and_christ } @@ -1732,76 +1751,168 @@ RandomEntertainmentTextName = { } localization_key = random_entertainment_text_beowulf } - text = { trigger = { scope:entertainment_book_title = flag:niebelungenlied } localization_key = random_entertainment_text_niebelungenlied } - text = { trigger = { scope:entertainment_book_title = flag:song_of_roland } localization_key = random_entertainment_text_song_of_roland } - text = { trigger = { scope:entertainment_book_title = flag:mabinogi } localization_key = random_entertainment_text_mabinogi } - - text = { - trigger = { - scope:entertainment_book_title = flag:travels_to_jerusalem - } - localization_key = random_entertainment_text_travels_to_jerusalem - } - - text = { - trigger = { - scope:entertainment_book_title = flag:east_of_indus - } - localization_key = random_entertainment_text_east_of_indus - } - - text = { - trigger = { - scope:entertainment_book_title = flag:travels_to_byzantium - } - localization_key = random_entertainment_text_travels_to_byzantium - } - text = { trigger = { scope:entertainment_book_title = flag:digenes_akrites } localization_key = random_entertainment_text_digenes_akrites } - text = { trigger = { - scope:entertainment_book_title = flag:epigrams + scope:entertainment_book_title = flag:hitchhikers } - localization_key = random_entertainment_text_epigrams + localization_key = random_entertainment_text_hitchhikers } - text = { trigger = { - scope:entertainment_book_title = flag:philogelos + scope:entertainment_book_title = flag:dune } - localization_key = random_entertainment_text_philogelos + localization_key = random_entertainment_text_dune } - text = { trigger = { - scope:entertainment_book_title = flag:riddle_poems + scope:entertainment_book_title = flag:hobbit } - localization_key = random_entertainment_text_riddle_poems + localization_key = random_entertainment_text_hobbit } + text = { + trigger = { + scope:entertainment_book_title = flag:lotr + } + localization_key = random_entertainment_text_lotr + } + text = { + trigger = { + scope:entertainment_book_title = flag:narnia + } + localization_key = random_entertainment_text_narnia + } + text = { + trigger = { + scope:entertainment_book_title = flag:foundation + } + localization_key = random_entertainment_text_foundation + } + text = { + trigger = { + scope:entertainment_book_title = flag:nineteen_eighty_four + } + localization_key = random_entertainment_text_nineteen_eighty_four + } + text = { + trigger = { + scope:entertainment_book_title = flag:one_hundred_years + } + localization_key = random_entertainment_text_one_hundred_years + } + text = { + trigger = { + scope:entertainment_book_title = flag:les_drames + } + localization_key = random_entertainment_text_les_drames + } + text = { + trigger = { + scope:entertainment_book_title = flag:le_club + } + localization_key = random_entertainment_text_le_club + } + text = { + trigger = { + scope:entertainment_book_title = flag:les_chevaliers + } + localization_key = random_entertainment_text_les_chevaliers + } + text = { + trigger = { + scope:entertainment_book_title = flag:the_shell_seekers + } + localization_key = random_entertainment_text_the_shell_seekers + } + text = { + trigger = { + scope:entertainment_book_title = flag:pillars + } + localization_key = random_entertainment_text_pillars + } + text = { + trigger = { + scope:entertainment_book_title = flag:perfume + } + localization_key = random_entertainment_text_perfume + } + text = { + trigger = { + scope:entertainment_book_title = flag:faceless + } + localization_key = random_entertainment_text_faceless + } + text = { + trigger = { + scope:entertainment_book_title = flag:the_alchemist + } + localization_key = random_entertainment_text_the_alchemist + } + text = { + trigger = { + scope:entertainment_book_title = flag:the_brothers + } + localization_key = random_entertainment_text_the_brothers + } + text = { + trigger = { + scope:entertainment_book_title = flag:one_thousand + } + localization_key = random_entertainment_text_one_thousand + } + text = { + trigger = { + scope:entertainment_book_title = flag:nineteen_eighty_four + } + localization_key = random_entertainment_text_nineteen_eighty_four + } + text = { + trigger = { + scope:entertainment_book_title = flag:the_divine_comedy + } + localization_key = random_entertainment_text_the_divine_comedy + } + text = { + trigger = { + scope:entertainment_book_title = flag:the_odyssey + } + localization_key = random_entertainment_text_the_odyssey + } + text = { + trigger = { + scope:entertainment_book_title = flag:war_and_peace + } + localization_key = random_entertainment_text_war_and_peace + } + text = { + trigger = { + scope:entertainment_book_title = flag:the_pyramid + } + localization_key = random_entertainment_text_the_pyramid + } } diff --git a/common/decisions/10_culture_conversion_decisions.txt b/common/decisions/10_culture_conversion_decisions.txt index 2ad709f8..a50418f7 100644 --- a/common/decisions/10_culture_conversion_decisions.txt +++ b/common/decisions/10_culture_conversion_decisions.txt @@ -365,15 +365,15 @@ convert_to_local_culture_decision = { capital_province.culture = culture:andalusian } - # Don't overwrite historically scripted developments - modifier = { - factor = 0 - OR = { - has_culture = culture:norman - has_culture = culture:english - } - capital_province.culture = culture:anglo_saxon - } +# # Don't overwrite historically scripted developments +# modifier = { +# factor = 0 +# OR = { +# has_culture = culture:norman +# has_culture = culture:english +# } +# capital_province.culture = culture:anglo_saxon +# } modifier = { factor = 0 has_culture = culture:turkish @@ -401,48 +401,48 @@ convert_to_local_culture_decision = { has_culture = culture:turkish primary_title.tier >= tier_empire } - modifier = { - factor = 0 - OR = { - has_title = title:k_jerusalem - has_title = title:e_outremer - any_liege_or_above = { - OR = { - has_title = title:k_jerusalem - has_title = title:e_outremer - } - } - } - NOR = { - capital_province = { # Convert to Hybrids of your culture in the Holy Land - culture = { - is_hybrid_culture = yes - any_parent_culture_or_above = { - this = root.culture - } - } - } - AND = { - top_liege != this - exists = liege - capital_province.culture = liege.culture - } - } - } - modifier = { - factor = 0 - has_title = title:e_latin_empire - NOT = { - capital_province = { - culture = { - is_hybrid_culture = yes - any_parent_culture_or_above = { - this = root.culture - } - } - } - } - } +# modifier = { +# factor = 0 +# OR = { +# has_title = title:k_jerusalem +# has_title = title:e_outremer +# any_liege_or_above = { +# OR = { +# has_title = title:k_jerusalem +# has_title = title:e_outremer +# } +# } +# } +# NOR = { +# capital_province = { # Convert to Hybrids of your culture in the Holy Land +# culture = { +# is_hybrid_culture = yes +# any_parent_culture_or_above = { +# this = root.culture +# } +# } +# } +# AND = { +# top_liege != this +# exists = liege +# capital_province.culture = liege.culture +# } +# } +# } +# modifier = { +# factor = 0 +# has_title = title:e_latin_empire +# NOT = { +# capital_province = { +# culture = { +# is_hybrid_culture = yes +# any_parent_culture_or_above = { +# this = root.culture +# } +# } +# } +# } +# } # Scots needs a bit of help to dominate as it did historically modifier = { @@ -451,12 +451,12 @@ convert_to_local_culture_decision = { capital_province.culture = culture:gaelic } - # Pictish should usually disappear - modifier = { - factor = 0 - has_culture = culture:gaelic - capital_province.culture = culture:pictish - } +# # Pictish should usually disappear +# modifier = { +# factor = 0 +# has_culture = culture:gaelic +# capital_province.culture = culture:pictish +# } # Don't go back on a previous conversion modifier = { diff --git a/common/decisions/80_major_decisions_roman.txt b/common/decisions/80_major_decisions_roman.txt index 254efc31..d866cb4d 100644 --- a/common/decisions/80_major_decisions_roman.txt +++ b/common/decisions/80_major_decisions_roman.txt @@ -434,7 +434,7 @@ mend_the_great_schism_decision = { is_shown = { is_ruler = yes is_playable_character = yes - faith.religion = faith:catholic.religion #Christian Only + faith.religion = faith:roman_catholic.religion #Christian Only NOT = { #Can only do it once. is_target_in_global_variable_list = { name = unavailable_unique_decisions diff --git a/common/decisions/dlc_decisions/ep3_decisions.txt b/common/decisions/dlc_decisions/ep3_decisions.txt index e1ee9970..88ff5856 100644 --- a/common/decisions/dlc_decisions/ep3_decisions.txt +++ b/common/decisions/dlc_decisions/ep3_decisions.txt @@ -3442,26 +3442,26 @@ expunge_latin_dominion_decision = { #Must be a Greek or Greekoid OR = { culture = culture:greek - culture = culture:roman +# culture = culture:roman culture = { any_parent_culture_or_above = { this = culture:greek } } ep3_orthodox_faith_trigger = yes - faith = faith:hellenic_pagan - AND = { - exists = title:e_byzantium.holder - this = title:e_byzantium.holder - } - AND = { - exists = title:h_roman_empire.holder - this = title:h_roman_empire.holder - } - AND = { - exists = title:h_eastern_roman_empire.holder - this = title:h_eastern_roman_empire.holder - } +# faith = faith:hellenic_pagan +# AND = { +# exists = title:e_byzantium.holder +# this = title:e_byzantium.holder +# } +# AND = { +# exists = title:h_roman_empire.holder +# this = title:h_roman_empire.holder +# } +# AND = { +# exists = title:h_eastern_roman_empire.holder +# this = title:h_eastern_roman_empire.holder +# } } OR = { capital_province = { @@ -3473,18 +3473,18 @@ expunge_latin_dominion_decision = { geographical_region = world_steppe_west } } - AND = { - exists = title:e_byzantium.holder - this = title:e_byzantium.holder - } - AND = { - exists = title:h_roman_empire.holder - this = title:h_roman_empire.holder - } - AND = { - exists = title:h_eastern_roman_empire.holder - this = title:h_eastern_roman_empire.holder - } +# AND = { +# exists = title:e_byzantium.holder +# this = title:e_byzantium.holder +# } +# AND = { +# exists = title:h_roman_empire.holder +# this = title:h_roman_empire.holder +# } +# AND = { +# exists = title:h_eastern_roman_empire.holder +# this = title:h_eastern_roman_empire.holder +# } } } diff --git a/common/landed_titles/europa.txt b/common/landed_titles/europa.txt index 594f0b6b..8f6346a5 100644 --- a/common/landed_titles/europa.txt +++ b/common/landed_titles/europa.txt @@ -1070,16 +1070,16 @@ e_europa = { # Benelux } add = @better_than_the_alternatives_score } - if = { - limit = { - OR = { - culture = culture:french - culture = culture:norman - culture = culture:occitan - } - } - add = @better_than_the_alternatives_score - } +# if = { +# limit = { +# OR = { +# culture = culture:french +# culture = culture:norman +# culture = culture:occitan +# } +# } +# add = @better_than_the_alternatives_score +# } } d_luxembourg = { # Luxembourg diff --git a/common/landed_titles/italy.txt b/common/landed_titles/italy.txt index 20e90fc1..a26fd0b3 100644 --- a/common/landed_titles/italy.txt +++ b/common/landed_titles/italy.txt @@ -1617,17 +1617,17 @@ e_italy = { name_list_albanian = cn_sicilise } - ai_primary_priority = { - if = { - limit = { - OR = { - culture = culture:italian - culture = culture:norman - } - } - add = @correct_culture_primary_score - } - } +# ai_primary_priority = { +# if = { +# limit = { +# OR = { +# culture = culture:italian +# culture = culture:norman +# } +# } +# add = @correct_culture_primary_score +# } +# } d_napoli = { color = { 47 179 191 } diff --git a/common/script_values/04_ep2_wedding_values.txt b/common/script_values/04_ep2_wedding_values.txt index fd9c5200..38308ac4 100644 --- a/common/script_values/04_ep2_wedding_values.txt +++ b/common/script_values/04_ep2_wedding_values.txt @@ -807,8 +807,8 @@ # AI-only weights, keep the pope from vassalizing too fast if = { limit = { - exists = faith:catholic.religious_head - faith:catholic.religious_head = root + exists = faith:roman_catholic.religious_head + faith:roman_catholic.religious_head = root root = { is_ai = yes } } add = -50 diff --git a/common/scripted_effects/00_scheme_scripted_effects.txt b/common/scripted_effects/00_scheme_scripted_effects.txt new file mode 100644 index 00000000..d2766d59 --- /dev/null +++ b/common/scripted_effects/00_scheme_scripted_effects.txt @@ -0,0 +1,16850 @@ +########################## +# Scheme Scripted Effects +########################## + +################################################## +# General Scheme Effects + +try_to_force_assign_character_to_random_agent_slot_effect = { + if = { + limit = { + $CHAR$ = { is_valid_as_agent_in_any_slot = $SCHEME$ } + } + force_assign_character_to_random_agent_slot_effect = { + SCHEME = $SCHEME$ + CHAR = $CHAR$ + YEARS = $YEARS$ + } + } +} + +force_assign_character_to_random_agent_slot_effect = { + $SCHEME$ = { + random_scheme_agent_slot = { + limit = { + is_filled = no + save_temporary_scope_as = slot_temp + $CHAR$ = { is_valid_as_agent_in_slot = scope:slot_temp } + } + save_scope_as = valid_slot + } + } + $CHAR$ = { + force_add_to_agent_slot = { + agent_slot = scope:valid_slot + years = $YEARS$ + } + } +} + +increment_breaches_with_message_effect = { + scope:owner = { + send_interface_toast = { + type = msg_scheme_breached + title = feed_message.t.scheme_breached + left_icon = scope:target + scope:scheme = { add_scheme_breach = 1 } + play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_scheme_suffering_breaches" + } + } +} + +################################################## +# Ending Effects + +# What percentage chance is there that a scheme will be discovered per month? +## tl;dr = generally, 10% of 100 - secrecy rating. So if you have 60% secrecy, that's a 4% chance per month. +hostile_scheme_monthly_discovery_chance_effect = { + # If we're in the first X months of a scheme, give a grace period. + if = { + limit = { + has_variable = secrecy_grace_period + var:secrecy_grace_period >= 1 + } + change_variable = { + name = secrecy_grace_period + add = -1 + } + } + # Otherwise we want to start checking for discovery. + else_if = { + # Without a spymaster, you can't discover schemes. + ## This isn't tooltipped for the person doing the scheming: communicating it (and when it turns on, and when it turns off) would be erratic and spammy, so we just let them think they're getting nice'n'lucky. + limit = { + scope:scheme = { + # Character + trigger_if = { + limit = { exists = scheme_target_character.host } + scheme_target_character.host = { save_temporary_scope_as = breach_host_temp } + } + # Title + trigger_else_if = { + limit = { exists = scheme_target_title.holder } + scheme_target_title.holder = { save_temporary_scope_as = breach_host_temp } + } + # Fallback + trigger_else = { always = no } + scope:breach_host_temp ?= { + # Second for Adventurers + trigger_if = { + limit = { has_government = landless_adventurer_government } + court_position:second_camp_officer ?= { save_temporary_scope_as = breach_maker_temp } + } + # Spymaster for everyone else + trigger_else = { + cp:councillor_spymaster ?= { save_temporary_scope_as = breach_maker_temp } + } + } + } + } + # Sort scopes. + ## Vs. titles. + if = { + limit = { exists = scope:target.holder } + scope:target.holder = { save_scope_as = target } + } + ## Vs. characters. + else = { + scope:target = { save_scope_as = target } + } + ## Nab the spymaster too. + scope:breach_maker_temp = { save_scope_as = spymaster } + # Alright, now we roll for discovery. + # Save chance for simple debugging + save_scope_value_as = { + name = discovery_chance + value = monthly_scheme_discovery_chance_value + } + ## ... if scope:target lives at scope:owner's court. + if = { + limit = { + scope:breach_host_temp = scope:owner + scope:owner != scope:target + NOT = { exists = scope:scheme.var:had_self_court_discovery } + } + random = { + chance = scope:discovery_chance + # Either increment breaches. + if = { + limit = { scheme_breaches >= scheme_breaches_about_to_hit_limit_value } + increment_breaches_with_message_effect = yes + } + # Or expose us generally. + else = { + add_scheme_breach = 1 + scope:owner = { play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_scheme_suffering_breaches" } + set_variable = { + name = had_self_court_discovery + value = yes + years = 3 + } + scope:owner = { + if = { + limit = { + scope:scheme = { is_savable_murder_scheme_trigger = yes } + } + trigger_event = hostile_scheme_discovery.4002 + } + else = { trigger_event = hostile_scheme_discovery.4001 } + } + # Flag that we're discovering something so that on-going events don't fire. + save_scope_value_as = { + name = discovery_event_happening + value = yes + } + } + } + } + ## ... otherwise they're at different courts. + else_if = { + limit = { + NOR = { + # You won't expose your own Scheme + scope:owner = scope:target + # Spymaster won't expose their own Scheme + scope:owner = scope:spymaster + # Spymaster won't expose *your* (liege's) Scheme + scope:owner = scope:spymaster.liege + # Spymaster won't expose a scheme if they are an agent of it + ## Secrecy is still relevant, you can still be discovered, just not on the monthly tick. + scheme_is_character_agent = scope:spymaster + } + } + # Roll to see whether we discover something. + random = { + chance = scope:discovery_chance + # If the scheme isn't exposed, then we do that first. + if = { + limit = { is_scheme_exposed = no } + # Increment our breaches. + increment_breaches_with_message_effect = yes + # Fire off an actual warning event. + scope:target.host ?= { trigger_event = hostile_scheme_discovery.2001 } + # Flag that we're discovering something so that on-going events don't fire. + save_scope_value_as = { + name = discovery_event_happening + value = yes + } + } + # Else, that means we've hit the limit for the scheme, so we discover and destroy it. + else_if = { + limit = { scheme_breaches >= scheme_breaches_about_to_hit_limit_value } + # Don't forget to increment breaches to max. + add_scheme_breach = 1 + scope:owner = { play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_scheme_suffering_breaches" } + # Fire off the correct event. + scope:target.host ?= { trigger_event = hostile_scheme_discovery.1002 } + # Flag that we're discovering something so that on-going events don't fire. + save_scope_value_as = { + name = discovery_event_happening + value = yes + } + } + # Otherwise, we want to discover an agent. + else = { + # Increment our breaches. + increment_breaches_with_message_effect = yes + # And reveal an agent, if we can. + if = { + limit = { + any_scheme_agent_character = { + is_alive = yes + agent_valid_to_be_discovered_by_spymaster = yes + } + } + ordered_scheme_agent_character = { + limit = { + is_alive = yes + agent_valid_to_be_discovered_by_spymaster = yes + } + # Get the least stealthy agent. + order_by = { + value = 100 + subtract = intrigue + } + save_scope_as = agent + } + # If we have a candidate, reveal them. + scope:target.host ?= { trigger_event = hostile_scheme_discovery.1001 } + # Flag that we're discovering something so that on-going events don't fire. + save_scope_value_as = { + name = discovery_event_happening + value = yes + } + } + } + } + } + } +} + +# Sort the ending for a scheme. +generic_scheme_process_ending_effect = { + # Grab our scopes. + save_scope_as = scheme + scheme_owner = { save_scope_as = owner } + ## Targets. + scheme_target_character ?= { save_scope_as = target } + scheme_target_culture ?= { save_scope_as = target } + scheme_target_faith ?= { save_scope_as = target } + scheme_target_title ?= { save_scope_as = target } + # Success roll. + random = { + chance = scheme_success_chance + custom_tooltip = $RESULTS_TOOLTIP$ + save_scope_value_as = { + name = scheme_successful + value = yes + } + # Interception saves. + ## Unique saves roll. + ### E.g., your dog flings itself in front of an assassin for you. + if = { + limit = { is_savable_murder_scheme_trigger = yes } + # We use a scripted effect so that mods can overwrite it without overwriting the whole block. + scheme_unique_interception_roll_effect = yes + } + ## Repeatable saves roll. + ### E.g., your bodyguard flings itself in front of an assassin for you. + if = { + limit = { is_savable_murder_scheme_trigger = yes } + random = { + chance = scope:target.scheme_intercept_repeatable_chance_total_value + save_scope_value_as = { + name = interception_repeatable + value = yes + } + } + } + } + # Secrecy roll. + ## We check this after an interception so that, if a successful scheme is intercepted, we can boost its success a little to compensate. + if = { + limit = { is_type_secret = yes } + ## First, determine our secrecy value. + save_scope_value_as = { + name = discovery_chance + value = { + value = 100 + subtract = scheme_secrecy + # Boost this up a bit if the scheme was intercepted. + if = { + limit = { + OR = { + exists = scope:interception_unique + exists = scope:interception_repeatable + } + } + add = -30 + } + # And make sure there's always _some_ risk. + min = 5 + } + } + random = { + chance = scope:discovery_chance + custom_tooltip = scheme_remain_secret_roll_tt + save_scope_value_as = { + name = scheme_discovered + value = yes + } + # Grab an exposer. + if = { + limit = { exists = scope:target.host } + scope:target.host = { save_scope_as = murder_exposer } + } + else = { + scope:target = { save_scope_as = murder_exposer } + } + # Set up assorted cosmetics for murders. + scope:owner = { + # Portraits. + save_scope_as = owner_to_reveal + # Plus a flavour scope we use. + random_memory = { + limit = { + has_memory_category = negative + has_memory_participant = scope:target + NOR = { # These read poorly + has_memory_type = became_rivals + has_memory_type = became_nemesis + } + } + save_scope_as = bad_memory + } + } + } + } + # Process ending on_actions. + ## Scheme intercepted by a unique flag, stopping a killing at the last moment. + if = { + limit = { exists = scope:interception_unique } + scheme_owner = { + trigger_event = { on_action = pick_unique_murder_intercept_on_action } + } + } + ## Scheme intercepted by a repeatable flag, stopping a killing at the last moment. + else_if = { + limit = { exists = scope:interception_repeatable } + scheme_owner = { + trigger_event = { on_action = pick_repeatable_murder_intercept_on_action } + } + } + ## Scheme successful. + else_if = { + limit = { exists = scope:scheme_successful } + # If we have a contract conclusion event to fire, fire it. + if = { + limit = { exists = scope:contract_end_success } + scheme_owner = { + trigger_event = { + saved_event_id = scope:contract_end_success + delayed = yes + } + } + } + task_contract ?= { complete_task_contract = success_standard } + trigger_event = { $SUCCESS_EVENT_TYPE$ = $SUCCESS_EVENT_ID$ } + scope:owner = { + play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_positive" + mandala_trickster_increment_successful_schemes_effect = yes + } + } + ## Scheme failed. + else = { + # If we have a contract conclusion event to fire, fire it. + if = { + limit = { exists = scope:contract_end_failure } + scheme_owner = { + trigger_event = { + saved_event_id = scope:contract_end_failure + delayed = yes + } + } + } + task_contract ?= { complete_task_contract = failure_standard } + trigger_event = { $FAILURE_EVENT_TYPE$ = $FAILURE_EVENT_ID$ } + scope:owner = { play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Scheme_Rework/ep3_mx_sting_schemerework_negative" } + } +} + +# Roll to see if a one-off factor stops an otherwise-successful murder scheme. +scheme_unique_interception_roll_effect = { + scope:target = { + # These are ordered highest % to lowest %: remember to adjust their position in the list if you adjust their percentage likelihood. + ## 50% — Saved by soulmate's sacrifice (boosted). + if = { + limit = { + has_perk = mortal_adoration_perk + any_relation = { + type = soulmate + available_lover_to_sacrifice_in_murder_trigger = { TARGET = scope:target } + } + } + random = { + chance = 50 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_lover + } + } + } + ## 45% — Family Connections dynasty legacy. + else_if = { + limit = { + dynasty ?= { has_dynasty_perk = guile_legacy_5 } + NOT = { has_character_flag = guile_legacy_5_save_used } + } + random = { + chance = 45 + save_scope_value_as = { + name = interception_unique + value = flag:family_connections_dynleg + } + } + } + ## 30% — Saved by lover's sacrifice (boosted). + else_if = { + limit = { + has_perk = mortal_adoration_perk + any_relation = { + type = lover + available_lover_to_sacrifice_in_murder_trigger = { TARGET = scope:target } + } + } + random = { + chance = 30 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_lover + } + } + } + ## 20% — Target's warhorse saves them from hired thugs + else_if = { + limit = { owns_story_of_type = story_cycle_martial_lifestyle_warhorse } + random = { + chance = 20 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_warhorse + } + } + } + ## 20% — Saved by prison pet. + else_if = { + limit = { + is_imprisoned = yes + has_variable = prison_pet_variable + } + random = { + chance = 20 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_pet_prison + } + } + } + ## 20% — Saved by soulmate's sacrifice (regular). + else_if = { + limit = { + any_relation = { + type = soulmate + available_lover_to_sacrifice_in_murder_trigger = { TARGET = scope:target } + } + } + random = { + chance = 20 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_lover + } + } + } + ## 10% — Saved by lover's sacrifice (regular). + else_if = { + limit = { + any_relation = { + type = lover + available_lover_to_sacrifice_in_murder_trigger = { TARGET = scope:target } + } + } + random = { + chance = 10 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_lover + } + } + } + ## 06% — Saved by cat. + ### Man's _true_ best friend. + else_if = { + limit = { + any_owned_story = { type = story_cycle_pet_cat } + } + random = { + chance = 6 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_cat + } + } + } + ## 05% — Saved by dog. + else_if = { + limit = { + any_owned_story = { type = story_cycle_pet_dog } + } + random = { + chance = 5 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_dog + } + } + } + ## 03% — Saved by due to bilinguality. + else_if = { + limit = { + knows_language_of_culture = scope:owner.culture + NOR = { + culture = { has_same_culture_language = scope:owner.culture } + AND = { + has_variable_list = bilingual_murder_saves + is_target_in_variable_list = { + name = bilingual_murder_saves + target = scope:owner.culture + } + } + } + } + random = { + chance = 3 + save_scope_value_as = { + name = interception_unique + value = flag:knowledge_bilingual + } + } + } + ## 01% — Saved due to mindbreak character. + else_if = { + limit = { + has_variable = mind_broken_victim + var:mind_broken_victim = { + is_alive = yes + NOT = { has_trait = incapable } + } + } + random = { + chance = 1 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_mindbreak + } + } + } + ## 00.5% — Saved by having an artefact. + ### Special ridiculously low chance because otherwise this event, which has fun loc, will give _every_ character in the title a 1% chance to nullify any scheme against them. + else_if = { + limit = { + is_available_healthy_adult = yes + # Gotta be on land. + exists = location.barony + # And have a suitable artefact. + ## Which they probably will. + ### Statistically almost always, in fact. + has_any_artifact = yes + any_character_artifact = { + NOT = { has_variable = saved_from_assassination } + } + } + # Don't tell anyone this is even a possibility, as otherwise it's gonna look weird in the tooltips. + hidden_effect = { + random = { + chance = 1 + # And then reduce the chance even further. + random = { + chance = 50 + save_scope_value_as = { + name = interception_unique + value = flag:sacrifice_artefact + } + } + } + } + } + } +} + +# Reset a scoped scheme, including nixing any modifiers we don't want it to keep. +reset_failed_scheme_effect = { + reset_scheme_progress = yes + if = { + limit = { + has_scheme_modifier = scheme_end_buff_t2_modifier + } + remove_scheme_modifier = scheme_end_buff_t2_modifier + } + if = { + limit = { + has_scheme_modifier = scheme_end_buff_t3_modifier + } + remove_scheme_modifier = scheme_end_buff_t3_modifier + } + if = { + limit = { + has_scheme_modifier = scheme_end_buff_t4_modifier + } + remove_scheme_modifier = scheme_end_buff_t4_modifier + } +} + +################################################## +# General Critical Moment Effects + +# Sets up which agents are valid to be added to this scheme, then picks which two to suggest. +## We make a bazillion variants here because it's the easiest solution without having to have a dozen+ empty parameters in a single effect. +roll_critical_moment_options_02_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count <= character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_03_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_04_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_05_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_06_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_07_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_08_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_09_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_10_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_11_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_12_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_13_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_14_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_15_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + ## Agent type 15. + save_scope_value_as = { + name = agent_type_15 + value = flag:$AGENT_TYPE_15$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOT = { scope:agent_type_15 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOR = { + scope:agent_type_15 = flag:empty + var:choice_a = flag:$AGENT_TYPE_15$ + } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_16_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + ## Agent type 15. + save_scope_value_as = { + name = agent_type_15 + value = flag:$AGENT_TYPE_15$ + } + ## Agent type 16. + save_scope_value_as = { + name = agent_type_16 + value = flag:$AGENT_TYPE_16$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOT = { scope:agent_type_15 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOT = { scope:agent_type_16 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOR = { + scope:agent_type_15 = flag:empty + var:choice_a = flag:$AGENT_TYPE_15$ + } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOR = { + scope:agent_type_16 = flag:empty + var:choice_a = flag:$AGENT_TYPE_16$ + } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_17_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + ## Agent type 15. + save_scope_value_as = { + name = agent_type_15 + value = flag:$AGENT_TYPE_15$ + } + ## Agent type 16. + save_scope_value_as = { + name = agent_type_16 + value = flag:$AGENT_TYPE_16$ + } + ## Agent type 17. + save_scope_value_as = { + name = agent_type_17 + value = flag:$AGENT_TYPE_17$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOT = { scope:agent_type_15 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOT = { scope:agent_type_16 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOT = { scope:agent_type_17 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOR = { + scope:agent_type_15 = flag:empty + var:choice_a = flag:$AGENT_TYPE_15$ + } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOR = { + scope:agent_type_16 = flag:empty + var:choice_a = flag:$AGENT_TYPE_16$ + } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOR = { + scope:agent_type_17 = flag:empty + var:choice_a = flag:$AGENT_TYPE_17$ + } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_18_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + ## Agent type 15. + save_scope_value_as = { + name = agent_type_15 + value = flag:$AGENT_TYPE_15$ + } + ## Agent type 16. + save_scope_value_as = { + name = agent_type_16 + value = flag:$AGENT_TYPE_16$ + } + ## Agent type 17. + save_scope_value_as = { + name = agent_type_17 + value = flag:$AGENT_TYPE_17$ + } + ## Agent type 18. + save_scope_value_as = { + name = agent_type_18 + value = flag:$AGENT_TYPE_18$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOT = { scope:agent_type_15 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOT = { scope:agent_type_16 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOT = { scope:agent_type_17 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + # Agent type 18. + 0 = { + trigger = { + NOT = { scope:agent_type_18 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_18$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_18$ + } + modifier = { + add = $AGENT_TYPE_18_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_18$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOR = { + scope:agent_type_15 = flag:empty + var:choice_a = flag:$AGENT_TYPE_15$ + } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOR = { + scope:agent_type_16 = flag:empty + var:choice_a = flag:$AGENT_TYPE_16$ + } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOR = { + scope:agent_type_17 = flag:empty + var:choice_a = flag:$AGENT_TYPE_17$ + } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + # Agent type 18. + 0 = { + trigger = { + NOR = { + scope:agent_type_18 = flag:empty + var:choice_a = flag:$AGENT_TYPE_18$ + } + scheme_owner = { can_have_$AGENT_TYPE_18$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_18$ + } + modifier = { + add = $AGENT_TYPE_18_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_18$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_19_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + ## Agent type 15. + save_scope_value_as = { + name = agent_type_15 + value = flag:$AGENT_TYPE_15$ + } + ## Agent type 16. + save_scope_value_as = { + name = agent_type_16 + value = flag:$AGENT_TYPE_16$ + } + ## Agent type 17. + save_scope_value_as = { + name = agent_type_17 + value = flag:$AGENT_TYPE_17$ + } + ## Agent type 18. + save_scope_value_as = { + name = agent_type_18 + value = flag:$AGENT_TYPE_18$ + } + ## Agent type 19. + save_scope_value_as = { + name = agent_type_19 + value = flag:$AGENT_TYPE_19$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOT = { scope:agent_type_15 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOT = { scope:agent_type_16 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOT = { scope:agent_type_17 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + # Agent type 18. + 0 = { + trigger = { + NOT = { scope:agent_type_18 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_18$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_18$ + } + modifier = { + add = $AGENT_TYPE_18_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_18$ } + } + } + # Agent type 19. + 0 = { + trigger = { + NOT = { scope:agent_type_19 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_19$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_19$ + } + modifier = { + add = $AGENT_TYPE_19_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_19$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOR = { + scope:agent_type_15 = flag:empty + var:choice_a = flag:$AGENT_TYPE_15$ + } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOR = { + scope:agent_type_16 = flag:empty + var:choice_a = flag:$AGENT_TYPE_16$ + } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOR = { + scope:agent_type_17 = flag:empty + var:choice_a = flag:$AGENT_TYPE_17$ + } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + # Agent type 18. + 0 = { + trigger = { + NOR = { + scope:agent_type_18 = flag:empty + var:choice_a = flag:$AGENT_TYPE_18$ + } + scheme_owner = { can_have_$AGENT_TYPE_18$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_18$ + } + modifier = { + add = $AGENT_TYPE_18_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_18$ } + } + } + # Agent type 19. + 0 = { + trigger = { + NOR = { + scope:agent_type_19 = flag:empty + var:choice_a = flag:$AGENT_TYPE_19$ + } + scheme_owner = { can_have_$AGENT_TYPE_19$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_19$ + } + modifier = { + add = $AGENT_TYPE_19_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_19$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} +roll_critical_moment_options_20_agent_types_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:$OUTPUT_EVENT$ + } + if = { + limit = { + any_scheme_agent_slot = { count < character_max_scheme_agents_value } + scope:scheme = { + NOR = { + has_variable = choice_a + has_variable = choice_b + } + } + } + # First, let's determine which types we're using and which we ain't. + ## Agent type 01. + save_scope_value_as = { + name = agent_type_01 + value = flag:$AGENT_TYPE_01$ + } + ## Agent type 02. + save_scope_value_as = { + name = agent_type_02 + value = flag:$AGENT_TYPE_02$ + } + ## Agent type 03. + save_scope_value_as = { + name = agent_type_03 + value = flag:$AGENT_TYPE_03$ + } + ## Agent type 04. + save_scope_value_as = { + name = agent_type_04 + value = flag:$AGENT_TYPE_04$ + } + ## Agent type 05. + save_scope_value_as = { + name = agent_type_05 + value = flag:$AGENT_TYPE_05$ + } + ## Agent type 06. + save_scope_value_as = { + name = agent_type_06 + value = flag:$AGENT_TYPE_06$ + } + ## Agent type 07. + save_scope_value_as = { + name = agent_type_07 + value = flag:$AGENT_TYPE_07$ + } + ## Agent type 08. + save_scope_value_as = { + name = agent_type_08 + value = flag:$AGENT_TYPE_08$ + } + ## Agent type 09. + save_scope_value_as = { + name = agent_type_09 + value = flag:$AGENT_TYPE_09$ + } + ## Agent type 10. + save_scope_value_as = { + name = agent_type_10 + value = flag:$AGENT_TYPE_10$ + } + ## Agent type 11. + save_scope_value_as = { + name = agent_type_11 + value = flag:$AGENT_TYPE_11$ + } + ## Agent type 12. + save_scope_value_as = { + name = agent_type_12 + value = flag:$AGENT_TYPE_12$ + } + ## Agent type 13. + save_scope_value_as = { + name = agent_type_13 + value = flag:$AGENT_TYPE_13$ + } + ## Agent type 14. + save_scope_value_as = { + name = agent_type_14 + value = flag:$AGENT_TYPE_14$ + } + ## Agent type 15. + save_scope_value_as = { + name = agent_type_15 + value = flag:$AGENT_TYPE_15$ + } + ## Agent type 16. + save_scope_value_as = { + name = agent_type_16 + value = flag:$AGENT_TYPE_16$ + } + ## Agent type 17. + save_scope_value_as = { + name = agent_type_17 + value = flag:$AGENT_TYPE_17$ + } + ## Agent type 18. + save_scope_value_as = { + name = agent_type_18 + value = flag:$AGENT_TYPE_18$ + } + ## Agent type 19. + save_scope_value_as = { + name = agent_type_19 + value = flag:$AGENT_TYPE_19$ + } + ## Agent type 20. + save_scope_value_as = { + name = agent_type_20 + value = flag:$AGENT_TYPE_20$ + } + # Then we roll for who's getting picked. + ## For var:choice_a. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOT = { scope:agent_type_01 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOT = { scope:agent_type_02 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOT = { scope:agent_type_03 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOT = { scope:agent_type_04 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOT = { scope:agent_type_05 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOT = { scope:agent_type_06 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOT = { scope:agent_type_07 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOT = { scope:agent_type_08 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOT = { scope:agent_type_09 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOT = { scope:agent_type_10 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOT = { scope:agent_type_11 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOT = { scope:agent_type_12 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOT = { scope:agent_type_13 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOT = { scope:agent_type_14 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOT = { scope:agent_type_15 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOT = { scope:agent_type_16 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOT = { scope:agent_type_17 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + # Agent type 18. + 0 = { + trigger = { + NOT = { scope:agent_type_18 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_18$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_18$ + } + modifier = { + add = $AGENT_TYPE_18_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_18$ } + } + } + # Agent type 19. + 0 = { + trigger = { + NOT = { scope:agent_type_19 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_19$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_19$ + } + modifier = { + add = $AGENT_TYPE_19_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_19$ } + } + } + # Agent type 20. + 0 = { + trigger = { + NOT = { scope:agent_type_20 = flag:empty } + scheme_owner = { can_have_$AGENT_TYPE_20$_trigger = yes } + } + set_variable = { + name = choice_a + value = flag:$AGENT_TYPE_20$ + } + modifier = { + add = $AGENT_TYPE_20_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_20$ } + } + } + } + ## And var:choice_b. + random_list = { + # Agent type 01. + 0 = { + trigger = { + NOR = { + scope:agent_type_01 = flag:empty + var:choice_a = flag:$AGENT_TYPE_01$ + } + scheme_owner = { can_have_$AGENT_TYPE_01$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_01$ + } + modifier = { + add = $AGENT_TYPE_01_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_01$ } + } + } + # Agent type 02. + 0 = { + trigger = { + NOR = { + scope:agent_type_02 = flag:empty + var:choice_a = flag:$AGENT_TYPE_02$ + } + scheme_owner = { can_have_$AGENT_TYPE_02$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_02$ + } + modifier = { + add = $AGENT_TYPE_02_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_02$ } + } + } + # Agent type 03. + 0 = { + trigger = { + NOR = { + scope:agent_type_03 = flag:empty + var:choice_a = flag:$AGENT_TYPE_03$ + } + scheme_owner = { can_have_$AGENT_TYPE_03$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_03$ + } + modifier = { + add = $AGENT_TYPE_03_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_03$ } + } + } + # Agent type 04. + 0 = { + trigger = { + NOR = { + scope:agent_type_04 = flag:empty + var:choice_a = flag:$AGENT_TYPE_04$ + } + scheme_owner = { can_have_$AGENT_TYPE_04$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_04$ + } + modifier = { + add = $AGENT_TYPE_04_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_04$ } + } + } + # Agent type 05. + 0 = { + trigger = { + NOR = { + scope:agent_type_05 = flag:empty + var:choice_a = flag:$AGENT_TYPE_05$ + } + scheme_owner = { can_have_$AGENT_TYPE_05$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_05$ + } + modifier = { + add = $AGENT_TYPE_05_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_05$ } + } + } + # Agent type 06. + 0 = { + trigger = { + NOR = { + scope:agent_type_06 = flag:empty + var:choice_a = flag:$AGENT_TYPE_06$ + } + scheme_owner = { can_have_$AGENT_TYPE_06$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_06$ + } + modifier = { + add = $AGENT_TYPE_06_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_06$ } + } + } + # Agent type 07. + 0 = { + trigger = { + NOR = { + scope:agent_type_07 = flag:empty + var:choice_a = flag:$AGENT_TYPE_07$ + } + scheme_owner = { can_have_$AGENT_TYPE_07$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_07$ + } + modifier = { + add = $AGENT_TYPE_07_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_07$ } + } + } + # Agent type 08. + 0 = { + trigger = { + NOR = { + scope:agent_type_08 = flag:empty + var:choice_a = flag:$AGENT_TYPE_08$ + } + scheme_owner = { can_have_$AGENT_TYPE_08$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_08$ + } + modifier = { + add = $AGENT_TYPE_08_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_08$ } + } + } + # Agent type 09. + 0 = { + trigger = { + NOR = { + scope:agent_type_09 = flag:empty + var:choice_a = flag:$AGENT_TYPE_09$ + } + scheme_owner = { can_have_$AGENT_TYPE_09$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_09$ + } + modifier = { + add = $AGENT_TYPE_09_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_09$ } + } + } + # Agent type 10. + 0 = { + trigger = { + NOR = { + scope:agent_type_10 = flag:empty + var:choice_a = flag:$AGENT_TYPE_10$ + } + scheme_owner = { can_have_$AGENT_TYPE_10$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_10$ + } + modifier = { + add = $AGENT_TYPE_10_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_10$ } + } + } + # Agent type 11. + 0 = { + trigger = { + NOR = { + scope:agent_type_11 = flag:empty + var:choice_a = flag:$AGENT_TYPE_11$ + } + scheme_owner = { can_have_$AGENT_TYPE_11$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_11$ + } + modifier = { + add = $AGENT_TYPE_11_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_11$ } + } + } + # Agent type 12. + 0 = { + trigger = { + NOR = { + scope:agent_type_12 = flag:empty + var:choice_a = flag:$AGENT_TYPE_12$ + } + scheme_owner = { can_have_$AGENT_TYPE_12$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_12$ + } + modifier = { + add = $AGENT_TYPE_12_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_12$ } + } + } + # Agent type 13. + 0 = { + trigger = { + NOR = { + scope:agent_type_13 = flag:empty + var:choice_a = flag:$AGENT_TYPE_13$ + } + scheme_owner = { can_have_$AGENT_TYPE_13$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_13$ + } + modifier = { + add = $AGENT_TYPE_13_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_13$ } + } + } + # Agent type 14. + 0 = { + trigger = { + NOR = { + scope:agent_type_14 = flag:empty + var:choice_a = flag:$AGENT_TYPE_14$ + } + scheme_owner = { can_have_$AGENT_TYPE_14$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_14$ + } + modifier = { + add = $AGENT_TYPE_14_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_14$ } + } + } + # Agent type 15. + 0 = { + trigger = { + NOR = { + scope:agent_type_15 = flag:empty + var:choice_a = flag:$AGENT_TYPE_15$ + } + scheme_owner = { can_have_$AGENT_TYPE_15$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_15$ + } + modifier = { + add = $AGENT_TYPE_15_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_15$ } + } + } + # Agent type 16. + 0 = { + trigger = { + NOR = { + scope:agent_type_16 = flag:empty + var:choice_a = flag:$AGENT_TYPE_16$ + } + scheme_owner = { can_have_$AGENT_TYPE_16$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_16$ + } + modifier = { + add = $AGENT_TYPE_16_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_16$ } + } + } + # Agent type 17. + 0 = { + trigger = { + NOR = { + scope:agent_type_17 = flag:empty + var:choice_a = flag:$AGENT_TYPE_17$ + } + scheme_owner = { can_have_$AGENT_TYPE_17$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_17$ + } + modifier = { + add = $AGENT_TYPE_17_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_17$ } + } + } + # Agent type 18. + 0 = { + trigger = { + NOR = { + scope:agent_type_18 = flag:empty + var:choice_a = flag:$AGENT_TYPE_18$ + } + scheme_owner = { can_have_$AGENT_TYPE_18$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_18$ + } + modifier = { + add = $AGENT_TYPE_18_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_18$ } + } + } + # Agent type 19. + 0 = { + trigger = { + NOR = { + scope:agent_type_19 = flag:empty + var:choice_a = flag:$AGENT_TYPE_19$ + } + scheme_owner = { can_have_$AGENT_TYPE_19$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_19$ + } + modifier = { + add = $AGENT_TYPE_19_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_19$ } + } + } + # Agent type 20. + 0 = { + trigger = { + NOR = { + scope:agent_type_20 = flag:empty + var:choice_a = flag:$AGENT_TYPE_20$ + } + scheme_owner = { can_have_$AGENT_TYPE_20$_trigger = yes } + } + set_variable = { + name = choice_b + value = flag:$AGENT_TYPE_20$ + } + modifier = { + add = $AGENT_TYPE_20_WEIGHT$ + always = yes + } + modifier = { + factor = weight_down_existing_agent_slots_value + any_scheme_agent_slot = { is_agent_slot_type = $AGENT_TYPE_20$ } + } + } + } + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0001 } + } +} + +# Add an agent type to a scheme. +## When you add a new agent type, add them to the bottom of this effect. Everything else should be taken care of automatically. +select_critical_moment_agents_effect = { + if = { + limit = { $CHOICE$ = flag:agent_assassin } + scope:scheme = { add_agent_slot = agent_assassin } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_assassin + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_lookout } + scope:scheme = { add_agent_slot = agent_lookout } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_lookout + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_infiltrator } + scope:scheme = { add_agent_slot = agent_infiltrator } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_infiltrator + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_footpad } + scope:scheme = { add_agent_slot = agent_footpad } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_footpad + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_alibi } + scope:scheme = { add_agent_slot = agent_alibi } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_alibi + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_thug } + scope:scheme = { add_agent_slot = agent_thug } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_thug + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_comrade_in_arms } + scope:scheme = { add_agent_slot = agent_comrade_in_arms } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_comrade_in_arms + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_socialite } + scope:scheme = { add_agent_slot = agent_socialite } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_socialite + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_musician } + scope:scheme = { add_agent_slot = agent_musician } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_musician + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_tumbler } + scope:scheme = { add_agent_slot = agent_tumbler } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_tumbler + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_poet } + scope:scheme = { add_agent_slot = agent_poet } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_poet + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_gabbler } + scope:scheme = { add_agent_slot = agent_gabbler } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_gabbler + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_shill } + scope:scheme = { add_agent_slot = agent_shill } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_shill + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_diplomat } + scope:scheme = { add_agent_slot = agent_diplomat } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_diplomat + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_justiciar } + scope:scheme = { add_agent_slot = agent_justiciar } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_justiciar + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_scribe } + scope:scheme = { add_agent_slot = agent_scribe } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_scribe + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_cleric } + scope:scheme = { add_agent_slot = agent_cleric } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_cleric + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_theologian } + scope:scheme = { add_agent_slot = agent_theologian } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_theologian + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_herald } + scope:scheme = { add_agent_slot = agent_herald } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_herald + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_wolf_hunter } + scope:scheme = { add_agent_slot = agent_wolf_hunter } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_wolf_hunter + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_thief } + scope:scheme = { add_agent_slot = agent_thief } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_thief + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_tutor } + scope:scheme = { add_agent_slot = agent_tutor } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_tutor + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_poisoner } + scope:scheme = { add_agent_slot = agent_poisoner } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_poisoner + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_eunuch } + scope:scheme = { add_agent_slot = agent_eunuch } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_eunuch + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_decoy } + scope:scheme = { add_agent_slot = agent_decoy } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_decoy + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_muscle } + scope:scheme = { add_agent_slot = agent_muscle } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_muscle + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_drillmaster } + scope:scheme = { add_agent_slot = agent_drillmaster } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_drillmaster + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_tracker } + scope:scheme = { add_agent_slot = agent_tracker } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_tracker + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_physic } + scope:scheme = { add_agent_slot = agent_physic } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_physic + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_smith } + scope:scheme = { add_agent_slot = agent_smith } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_smith + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_ambusher } + scope:scheme = { add_agent_slot = agent_ambusher } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_ambusher + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_bodyguard } + scope:scheme = { add_agent_slot = agent_bodyguard } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_bodyguard + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_scout } + scope:scheme = { add_agent_slot = agent_scout } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_scout + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_outrider } + scope:scheme = { add_agent_slot = agent_outrider } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_outrider + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_bookkeeper } + scope:scheme = { add_agent_slot = agent_bookkeeper } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_bookkeeper + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_bailiff } + scope:scheme = { add_agent_slot = agent_bailiff } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_bailiff + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_draughtsman } + scope:scheme = { add_agent_slot = agent_draughtsman } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_draughtsman + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_planner } + scope:scheme = { add_agent_slot = agent_planner } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_planner + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_supplier } + scope:scheme = { add_agent_slot = agent_supplier } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_supplier + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_outcast } + scope:scheme = { add_agent_slot = agent_outcast } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_outcast + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_wrangler } + scope:scheme = { add_agent_slot = agent_wrangler } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_wrangler + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_wrangler_speed } + scope:scheme = { add_agent_slot = agent_wrangler_speed } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_wrangler_speed + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_theologian_success } + scope:scheme = { add_agent_slot = agent_theologian_success } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_theologian_success + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_cleric_success } + scope:scheme = { add_agent_slot = agent_cleric_success } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_cleric_success + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_lookout_success } + scope:scheme = { add_agent_slot = agent_lookout_success } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_lookout_success + } + } + else_if = { + limit = { $CHOICE$ = flag:agent_lookout_speed } + scope:scheme = { add_agent_slot = agent_lookout_speed } + # Error suppression. + save_scope_value_as = { + name = $CHOICE$ + value = flag:agent_lookout_speed + } + } + # And remove the variables. + scope:scheme = { + remove_variable = choice_a + remove_variable = choice_b + } +} + +# Stop schemes from overflowing with opportunities forever + tell the player when they should do something. +cap_schemes_and_fire_reminders_effect = { + if = { + limit = { + scheme_agent_charges >= opportunity_cap_value + scheme_success_chance >= max_scheme_success_chance + } + if = { + limit = { + scheme_owner = { + is_ai = no + NOR = { + has_character_flag = scheme_critical_moments.0011 + has_variable = opportunities_reminder + } + } + } + scheme_owner = { + add_character_flag = currently_in_scheme_reminder + # supress the 'variable is used but is never set' error, the flag is set through code with the cooldown effect on the event, smh! + if = { + limit = { + always = no + } + add_character_flag = scheme_critical_moments.0011 + } + } + switch = { + trigger = scheme_type + murder = { + murder_scheme_prep_effect = yes + } + abduct = { + abduct_scheme_prep_effect = yes + } + challenge_status = { + challenge_status_scheme_prep_effect = yes + } + claim_throne = { + claim_throne_scheme_prep_effect = yes + } + depose = { + depose_scheme_prep_effect = yes + } + overthrow_regent = { + overthrow_regent_scheme_prep_effect = yes + } + expand_power_base = { + expand_power_base_scheme_prep_effect = yes + } + fabricate_hook = { + fabricate_hook_scheme_prep_effect = yes + } + generate_claim = { + generate_claim_scheme_prep_effect = yes + } + promote = { + promote_scheme_prep_effect = yes + } + slander = { + slander_scheme_prep_effect = yes + } + steal_back_artifact = { + steal_back_artifact_scheme_prep_effect = yes + } + seize_realm = { + seize_realm_scheme_prep_effect = yes + } + found_despotate = { + found_despotate_scheme_prep_effect = yes + } + raid_estate = { + raid_estate_scheme_prep_effect = yes + } + prepare_fire_dromons_scheme = { + prepare_fire_dromons_scheme_prep_effect = yes + } + steal_herd = { + steal_herd_scheme_prep_effect = yes + } + celestial_siphon_treasury = { + celestial_siphon_treasury_prep_effect = yes + } + disbelieve_mandala = { + disbelieve_mandala_scheme_prep_effect = yes + } + coerce_tributary = { + coerce_tributary_scheme_prep_effect = yes + } + } + } + # If the player hasn't been reminded once, tell them that their scheme has hit max opportunities. + scheme_owner = { + if = { + limit = { + is_ai = no + NOT = { has_variable = opportunities_reminder } + } + trigger_event = scheme_critical_moments.0011 + } + } + } +} + +# Tell schemes to wait for the player's say-so before firing a follow-up event. +suppress_scheme_follow_up_event_till_input_given_effect = { + save_scope_value_as = { + name = suppress_next_event + value = yes + } +} + +# Improve a certain type of modifier attached to the scheme, burning opportunities to do so. +improve_scheme_preparation_burnt_opportunities_modifier_effect = { + # Cap us at 10. + if = { + limit = { has_scheme_modifier = $MODIFIER$_level_10 } + # We should never be able to take the option at this point, but if we break it somehow, then do nothing rather than doubling up. + } + # 9 -> 10. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_09 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_09 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_10 } + } + # 8 -> 9. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_08 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_08 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_09 } + } + # 7 -> 8. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_07 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_07 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_08 } + } + # 6 -> 7. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_06 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_06 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_07 } + } + # 5 -> 6. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_05 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_05 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_06 } + } + # 4 -> 5. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_04 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_04 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_05 } + } + # 3 -> 4. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_03 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_03 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_04 } + } + # 2 -> 3. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_02 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_02 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_03 } + } + # 1 -> 2. + else_if = { + limit = { has_scheme_modifier = $MODIFIER$_level_01 } + # Clean the previous level. + hidden_effect = { remove_scheme_modifier = $MODIFIER$_level_01 } + # Add the new one. + add_scheme_modifier = { type = $MODIFIER$_level_02 } + } + # 0 -> 1. + else = { + # Add the first rung.. + add_scheme_modifier = { type = $MODIFIER$_level_01 } + } +} + +################################################## +# AI Usage Critical Moment Effects — Regular Schemes + +murder_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1001 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +seduce_scheme_prep_effect = { + roll_critical_moment_options_07_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1011 + # Lookout + AGENT_TYPE_01 = agent_lookout + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Infiltrator + AGENT_TYPE_02 = agent_infiltrator + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Comrade_in_arms + AGENT_TYPE_03 = agent_comrade_in_arms + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + # Socialite + AGENT_TYPE_04 = agent_socialite + AGENT_TYPE_04_WEIGHT = critical_moment_agent_weight_medium_value + # Musician + AGENT_TYPE_05 = agent_musician + AGENT_TYPE_05_WEIGHT = critical_moment_agent_weight_low_value + # Tumbler + AGENT_TYPE_06 = agent_tumbler + AGENT_TYPE_06_WEIGHT = critical_moment_agent_weight_low_value + # Poet + AGENT_TYPE_07 = agent_poet + AGENT_TYPE_07_WEIGHT = critical_moment_agent_weight_low_value + } +} + +abduct_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1061 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +befriend_scheme_prep_effect = { + roll_critical_moment_options_04_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1031 + # Socialite + AGENT_TYPE_01 = agent_socialite + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Infiltrator + AGENT_TYPE_02 = agent_infiltrator + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Gabbler + AGENT_TYPE_03 = agent_gabbler + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + # Shill + AGENT_TYPE_04 = agent_shill + AGENT_TYPE_04_WEIGHT = critical_moment_agent_weight_medium_value + } +} + +challenge_status_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1171 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +claim_throne_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1101 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +convert_to_witchcraft_scheme_prep_effect = { + roll_critical_moment_options_03_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1121 + # Infiltrator + AGENT_TYPE_01 = agent_infiltrator + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Shill + AGENT_TYPE_02 = agent_shill + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Alibi + AGENT_TYPE_03 = agent_alibi + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + } +} + +court_scheme_prep_effect = { + roll_critical_moment_options_07_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1041 + # Herald + AGENT_TYPE_01 = agent_herald + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Comrade-in-Arms + AGENT_TYPE_02 = agent_comrade_in_arms + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Socialite + AGENT_TYPE_03 = agent_socialite + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + # Musician + AGENT_TYPE_04 = agent_musician + AGENT_TYPE_04_WEIGHT = critical_moment_agent_weight_very_low_value + # Poet + AGENT_TYPE_05 = agent_poet + AGENT_TYPE_05_WEIGHT = critical_moment_agent_weight_very_low_value + # Tumbler + AGENT_TYPE_06 = agent_tumbler + AGENT_TYPE_06_WEIGHT = critical_moment_agent_weight_very_low_value + # Wolf Hunter + AGENT_TYPE_07 = agent_wolf_hunter + AGENT_TYPE_07_WEIGHT = critical_moment_agent_weight_microscopic_value + } +} + +damage_legitimacy_scheme_prep_effect = { + roll_critical_moment_options_03_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.4010 + # Infiltrator + AGENT_TYPE_01 = agent_infiltrator + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Diplomat + AGENT_TYPE_02 = agent_diplomat + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Socialite + AGENT_TYPE_03 = agent_socialite + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_medium_value + } +} + +depose_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1191 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +overthrow_regent_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1091 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +elope_scheme_prep_effect = { + roll_critical_moment_options_07_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1051 + # Infiltrator + AGENT_TYPE_01 = agent_infiltrator + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Comrade_in_arms + AGENT_TYPE_02 = agent_comrade_in_arms + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Socialite + AGENT_TYPE_03 = agent_socialite + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + # Alibi + AGENT_TYPE_04 = agent_alibi + AGENT_TYPE_04_WEIGHT = critical_moment_agent_weight_medium_value + # Musician + AGENT_TYPE_05 = agent_musician + AGENT_TYPE_05_WEIGHT = critical_moment_agent_weight_very_low_value + # Poet + AGENT_TYPE_06 = agent_poet + AGENT_TYPE_06_WEIGHT = critical_moment_agent_weight_very_low_value + # Tumbler + AGENT_TYPE_07 = agent_tumbler + AGENT_TYPE_07_WEIGHT = critical_moment_agent_weight_very_low_value + } +} + +expand_power_base_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1181 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +fabricate_hook_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1071 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +foster_legitimacy_scheme_prep_effect = { + roll_critical_moment_options_03_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.4000 + + # Herald + AGENT_TYPE_01 = agent_herald + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Diplomat + AGENT_TYPE_02 = agent_diplomat + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Socialite + AGENT_TYPE_03 = agent_socialite + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_medium_value + } +} + +generate_claim_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1151 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +learn_language_scheme_prep_effect = { + roll_critical_moment_options_04_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1081 + # Diplomat + AGENT_TYPE_01 = agent_diplomat + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Cleric + AGENT_TYPE_02 = agent_cleric + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Scribe + AGENT_TYPE_03 = agent_scribe + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + # Tutor + AGENT_TYPE_04 = agent_tutor + AGENT_TYPE_04_WEIGHT = critical_moment_agent_weight_medium_value + } +} + +promote_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1141 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +slander_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1131 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +steal_back_artifact_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1111 + } + scope:scheme.var:target_artifact = { + save_scope_as = artifact + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +steal_herd_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1161 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +celestial_siphon_treasury_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1201 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +celestial_movement_power_promote_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1231 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +celestial_movement_power_slander_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1234 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +sway_scheme_prep_effect = { + roll_critical_moment_options_07_agent_types_effect = { + # Success results event. + OUTPUT_EVENT = scheme_critical_moments.1021 + # Herald + AGENT_TYPE_01 = agent_herald + AGENT_TYPE_01_WEIGHT = critical_moment_agent_weight_high_value + # Diplomat + AGENT_TYPE_02 = agent_diplomat + AGENT_TYPE_02_WEIGHT = critical_moment_agent_weight_high_value + # Gabbler + AGENT_TYPE_03 = agent_gabbler + AGENT_TYPE_03_WEIGHT = critical_moment_agent_weight_high_value + # Shill + AGENT_TYPE_04 = agent_shill + AGENT_TYPE_04_WEIGHT = critical_moment_agent_weight_medium_value + # Musician + AGENT_TYPE_05 = agent_musician + AGENT_TYPE_05_WEIGHT = critical_moment_agent_weight_low_value + # Tumbler + AGENT_TYPE_06 = agent_tumbler + AGENT_TYPE_06_WEIGHT = critical_moment_agent_weight_low_value + # Poet + AGENT_TYPE_07 = agent_poet + AGENT_TYPE_07_WEIGHT = critical_moment_agent_weight_low_value + } +} + +seize_realm_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2901 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +found_despotate_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.8021 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +raid_estate_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.8035 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +ingratiate_family_scheme_prep_effect = { + save_scope_as = scheme + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.8051 } + } +} + +prepare_fire_dromons_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.8060 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +disbelieve_mandala_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1211 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +coerce_tributary_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1221 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +coerce_contribution_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1241 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +leverage_contribution_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.1251 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +################################################## +# AI Usage Critical Moment Effects — Contract Schemes + +laamp_base_0001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2001 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_0011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2011 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_0021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2021 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_0031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2031 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_0041_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2041 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_1001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2201 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_1011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2211 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_1021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2221 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_1031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2231 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_1041_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2241 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_2001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2401 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_2011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2411 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_2021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2421 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_2031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2431 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_2041_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2441 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_3001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2601 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_3011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2611 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_3021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2621 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_3031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2631 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_3041_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2641 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_4001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2801 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_4011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2811 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_4021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2821 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_4031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2831 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_4041_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2841 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_5001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3001 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_5011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3011 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_5021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3021 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_5031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3031 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_5041_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3041 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_5051_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3051 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_6001_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.6001 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_6011_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.6011 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_6021_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.6021 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_base_6031_contract_scheme_prep_effect = { + save_scope_as = scheme + scope:scheme.task_contract ?= { save_scope_as = task_contract } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.6031 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +protect_minority_vassal_contract_diplomacy_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3201 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +protect_minority_vassal_contract_martial_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3201 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +protect_minority_vassal_contract_intrigue_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3201 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +protect_minority_vassal_contract_learning_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3201 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_prison_break_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3211 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +laamp_help_find_secrets_scheme_prep_effect = { + save_scope_as = scheme + task_contract = { + save_scope_as = task_contract + var:task_contract_councillor = { + save_scope_as = task_contract_councillor + } + } + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.3221 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +celestial_minister_find_secrets_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.8065 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +################################################## +# Murder Scheme Effects + +# Give out the appropriate amount of dread when it's discovered the scoped char murdered someone. +murder_consequences_known_or_exposed_apply_dread_effect = { + # Don't apply this twice if it's gone out earlier in the chain. + if = { + limit = { + NOT = { exists = scope:murderer_dread_applied } + } + # Murdered own close family, king/emperor, or family of king/emperor. + if = { + limit = { + OR = { + is_close_family_of = $VICTIM$ + $VICTIM$ = { + tier_or_related_liege_tier_greater_or_equal_trigger = { TIER = tier_kingdom } + } + } + } + add_dread = major_dread_gain + } + # Murdered close family of duke/count. + else_if = { + limit = { + $VICTIM$ = { + tier_or_related_liege_tier_greater_or_equal_trigger = { TIER = tier_county } + } + } + add_dread = medium_dread_gain + } + # Murdered just... some guy. Just a person. Just a lil dude. + else = { add_dread = minor_dread_gain } + # And flag that we've gone through this. + save_scope_value_as = { + name = murderer_dread_applied + value = yes + } + } +} + +# Apply scope:owner's general ending & consequences. +scheme_owner_pov_murder_success_effect = { + # Murdering your rival gets you some bonus cred. + ## Presumably in how you comport yourself & who's a thorn in your side. + if = { + limit = { + scope:owner = { has_relation_rival = scope:target } + } + custom_tooltip = { + text = murder_outcome_murdered_rival_tt + add_prestige = medium_prestige_gain + } + } + # Dread for successfully murdering someone and getting discovered. + if = { + limit = { exists = scope:scheme_discovered } + murder_consequences_known_or_exposed_apply_dread_effect = { VICTIM = scope:target } + } + # Piety, if appropriate. + if = { + limit = { + faith = { has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes } + } + add_piety = minor_piety_gain + } + # Stress. + ## Murdered a rival. + if = { + limit = { + scope:owner = { has_relation_rival = scope:target } + } + stress_impact = { + base = murder_base_stress_value + vengeful = massive_stress_impact_loss + sadistic = minor_stress_impact_loss + callous = miniscule_stress_impact_loss + compassionate = minor_stress_impact_gain + forgiving = major_stress_impact_gain + } + } + ## Murdered someone helpless. + else_if = { + limit = { + scope:target = { + OR = { + is_adult = no + is_incapable = yes + } + } + } + stress_impact = { + base = murder_base_stress_value + sadistic = major_stress_impact_loss + callous = minor_stress_impact_loss + compassionate = major_stress_impact_gain + } + } + ## Murdered anyone else. + else = { + stress_impact = { + base = murder_base_stress_value + sadistic = minor_stress_impact_loss + callous = miniscule_stress_impact_loss + compassionate = minor_stress_impact_gain + } + } + # Aaaaand show our other consequences. + show_as_tooltip = { + murder_success_kill_effect = { REASON = $REASON$ } + } +} + +# Actually kill scope:target. +murder_success_kill_effect = { + # If the scheme was discovered, reveal the murderer immediately. + if = { + limit = { exists = scope:scheme_discovered } + # Kill the target. + known_murder_effect = { + VICTIM = scope:target + MURDERER = scope:owner + EXPOSER = scope:murder_exposer + } + # Kill them. Kill them all. + murder_success_kill_entourage_too_effect = { + KNOWN_UNKNOWN = known + EXPOSER_REASON_PRE = EXPOSER + EXPOSER_REASON_POST = scope:murder_exposer + SHOW_UNKNOWN_ASSAILANT_TOOLTIP = no + } + } + # Otherwise, we process this anonymously. + else = { + # For scope:owner, we only show the effects as tooltips. + if = { + limit = { this = scope:owner } + show_as_tooltip = { + unknown_murder_effect = { + VICTIM = scope:target + MURDERER = scope:owner + REASON = $REASON$ + } + } + # Kill them. Kill them all. + show_as_tooltip = { + murder_success_kill_entourage_too_effect = { + KNOWN_UNKNOWN = unknown + EXPOSER_REASON_PRE = REASON + EXPOSER_REASON_POST = death_mysterious + SHOW_UNKNOWN_ASSAILANT_TOOLTIP = no + } + } + } + # Whereas for the target, we process the whole lot. + else_if = { + limit = { this = scope:target } + custom_tooltip = murder_unknown_murder_against_you_was_successful + hidden_effect = { + unknown_murder_effect = { + VICTIM = scope:target + MURDERER = scope:owner + REASON = $REASON$ + } + } + # Kill them. Kill them all. + murder_success_kill_entourage_too_effect = { + KNOWN_UNKNOWN = unknown + EXPOSER_REASON_PRE = REASON + EXPOSER_REASON_POST = death_mysterious + SHOW_UNKNOWN_ASSAILANT_TOOLTIP = yes + } + } + } +} + +# If appropriate, kill off a bunch of the folks travelling with scope:target. +murder_success_kill_entourage_too_effect = { + scope:owner ?= { + if = { + limit = { has_variable_list = entourage_members_to_kill } + save_temporary_scope_value_as = { + name = show_unknown_assailant_tooltip + value = $SHOW_UNKNOWN_ASSAILANT_TOOLTIP$ + } + every_in_list = { + variable = entourage_members_to_kill + save_temporary_scope_as = to_be_killed + if = { + limit = { scope:show_unknown_assailant_tooltip = yes } + custom_tooltip = murder_unknown_murder_against_you_was_successful_other + } + $KNOWN_UNKNOWN$_murder_effect = { + VICTIM = scope:to_be_killed + MURDERER = scope:owner + $EXPOSER_REASON_PRE$ = $EXPOSER_REASON_POST$ + } + } + } + } +} + +# Distribute murder failure effects. +murder_failure_effect = { + # Add Watchful Modifier to the target + scope:target = { + add_character_modifier = { + modifier = watchful_modifier + days = watchful_modifier_duration + } + } + # If the attempt was discovered, process the consequences of that. + if = { + limit = { exists = scope:scheme_discovered } + # If we're a clan this affects unity + ## Landed victims cost more unity. + if = { + limit = { + scope:target = { is_landed = yes } + } + add_clan_unity_interaction_effect = { + CHARACTER = scope:owner + TARGET = scope:target + VALUE = medium_unity_loss + DESC = clan_unity_murder_attempted.desc + REVERSE_NON_HOUSE_TARGET = no + } + } + ## For unlanded characters, we don't care as much, but you still lose some. + else = { + add_clan_unity_interaction_effect = { + CHARACTER = scope:owner + TARGET = scope:target + VALUE = minor_unity_loss + DESC = clan_unity_murder_attempted.desc + REVERSE_NON_HOUSE_TARGET = no + } + } + ## Tag scope:owner with a separate scope for portraits... + scope:owner = { + save_scope_as = owner_to_reveal + # ... and apply a little dread. + add_dread = minor_dread_gain + } + ## Point out that yeah, attempted murder will sour someone's opinion of you. + attempted_murder_opinion_effect = { + VICTIM = scope:target + MURDERER = scope:owner + } + } + # Otherwise, we just add a murder attempt secret. + else = { + # Make sure we don't inadvertently reveal the scheme to the target. + if = { + limit = { this = scope:owner } + scope:owner = { + add_secret = { + type = secret_murder_attempt + target = scope:target + } + } + } + } + # Lastly, if our imaginary friend put us up to this, then we address that. + scope:owner = { + if = { + limit = { + any_owned_story = { + type = story_cycle_imaginary_friend + var:imaginary_friend_murder_target ?= scope:target + } + } + trigger_event = { + id = bp2_yearly.2024 + days = 4 + } + } + } +} + +# If appropriate, murder anyone travelling with scope:target. +murder_entourage_list_effect = { + # Pick three random entourage members to kill + scope:target = { + current_travel_plan = { + random_entourage_character = { + limit = { + this != scope:target + } + scope:owner = { + add_to_variable_list = { + name = entourage_members_to_kill + target = prev + } + } + } + random_entourage_character = { + limit = { + NOR = { + this = scope:target + this = scope:owner + scope:owner = { + is_target_in_variable_list = { + name = entourage_members_to_kill + target = prev + } + } + } + } + scope:owner = { + add_to_variable_list = { + name = entourage_members_to_kill + target = prev + } + } + } + random_entourage_character = { + limit = { + NOR = { + this = scope:target + this = scope:owner + scope:owner = { + is_target_in_variable_list = { + name = entourage_members_to_kill + target = prev + } + } + } + } + scope:owner = { + add_to_variable_list = { + name = entourage_members_to_kill + target = prev + } + } + } + } + } +} + +# Restart's the current murder scheme, setting all its variables and such back to zero. +restart_murder_scheme_effect = { + show_as_tooltip = { + start_scheme = { + type = murder + target_character = scope:target + } + } + hidden_effect = { + scope:scheme = { + # Track how many times we've restarted, so we can reset progress. + increment_variable_effect = { + VAR = scheme_reset_to_zero_value + VAL = scheme_success_chance + } + # Reset our scheme. + reset_failed_scheme_effect = yes + } + } +} + +# Process the death result for anyone who dies during the murder interception. +murder_interception_handle_extra_deaths_effect = { + if = { + limit = { exists = scope:scheme_discovered } + known_murder_effect = { + VICTIM = $VICTIM$ + MURDERER = scope:owner + EXPOSER = scope:target + } + } + else = { + unknown_murder_effect = { + VICTIM = $VICTIM$ + MURDERER = scope:owner + REASON = $REASON$ + } + } +} + +# Adds either "Plush and Unremarkable Carpet" modifier if character is Iranian, otherwise adds "Plush and Exotic Carpet" +add_carpet_modifier_effect = { + if = { + limit = { + has_fp3_dlc_trigger = yes + culture = { has_cultural_pillar = heritage_iranian } + } + add_character_modifier = { + modifier = persian_has_plush_carpet_modifier + days = 3650 + } + } + else = { + add_character_modifier = { + modifier = has_plush_carpet_modifier + days = 3650 + } + } +} + +# If trying to lure a child to push off a roof, try to pick something tangible to tempt them with. +## The things I do for script hygiene. +rooftop_murder_lure_for_child_effect = { + random_list = { + # Dog. + 25 = { + trigger = { + scope:target = { any_owned_story = { type = story_cycle_pet_dog } } + } + save_scope_value_as = { + name = child_pushed_dog + value = yes + } + } + # Cat. + ## You monster. + 25 = { + trigger = { + scope:target = { any_owned_story = { type = story_cycle_pet_cat } } + } + save_scope_value_as = { + name = child_pushed_cat + value = yes + } + random = { + chance = 60 + save_scope_value_as = { + name = cat_survives + value = yes + } + } + } + # Toy. + 25 = { + trigger = { + scope:target = { has_variable = child_toy_variable } + } + save_scope_value_as = { + name = child_pushed_toy + value = yes + } + } + # Else nothing. + 1 = {} + } +} + +grab_best_agent_murderer_effect = { + scope:scheme = { + random_scheme_agent_slot = { + limit = { + is_agent_slot_type = agent_assassin + is_filled = yes + } + alternative_limit = { is_filled = yes } + slot_character = { save_scope_as = assassin } + } + # Plus generate a back-up, in case we need it. + random_dummy_gender_assassin_effect = yes + } +} + +################################################## +# Seduce Scheme Effects + +#Milestone should be 1 or 2, outcome should be success or failure +seduce_ongoing_add_scheme_modifier_effect = { + scope:scheme = { + add_scheme_modifier = { + type = seduce_$OUTCOME$_$MILESTONE$_modifier + } + } +} + +seduce_ongoing_possible_outcomes_tooltip_effect = { + show_as_tooltip = { + random_list = { + 1 = { + desc = seduce_ongoing_possible_outcomes_tooltip_effect.success.desc + show_chance = no + seduce_ongoing_add_scheme_modifier_effect = { MILESTONE = $MILESTONE$ OUTCOME = success } + } + 1 = { + desc = seduce_ongoing_possible_outcomes_tooltip_effect.failure.desc + show_chance = no + seduce_ongoing_add_scheme_modifier_effect = { MILESTONE = $MILESTONE$ OUTCOME = failure } + } + } + } +} + +#To add CHARACTER to a list that block seduction schemes from being initiated +## use in the scope of the character that blocks CHARACTER (i.e. the scheme target's scope) +seduction_block_character_effect = { + if = { + limit = { root = scope:target } + custom_tooltip = seduce_outcome.permanent_block + + hidden_effect = { + add_opinion = { + target = $CHARACTER$ + modifier = seduce_permanent_blocker_opinion + } + } + } + else_if = { + limit = { + exists = scope:target + scope:target = { + is_alive = yes + } + } + add_opinion = { + target = $CHARACTER$ + modifier = seduce_permanent_blocker_opinion + } + } +} + +seduction_cooldown_for_character_effect = { + if = { + limit = { root = scope:target } + custom_tooltip = seduce_outcome.cooldown + + hidden_effect = { + add_opinion = { + target = $CHARACTER$ + modifier = seduce_regular_cooldown_opinion + } + } + } + else = { + add_opinion = { + target = $CHARACTER$ + modifier = seduce_regular_cooldown_opinion + } + } +} + +owner_seduce_outcome_success_send_discovery_event_effect = { + hidden_effect = { + if = { + limit = { exists = scope:scheme_discovered } + trigger_event = { + id = seduce_outcome.2900 + days = 3 + } + } + } +} + +owner_seduce_outcome_become_lovers_option_effects = { + show_as_tooltip = { set_relation_lover = scope:target } + add_character_flag = { #to assure that this is when the relationship is set + flag = consummation_and_relationship + days = 10 + } + + reverse_add_opinion = { + target = scope:target + modifier = romance_opinion + opinion = 20 + } + + if = { + limit = { + faith = { + has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes + } + } + add_piety = minor_piety_gain + } + + if = { + limit = { + has_government = landless_adventurer_government + has_perk = mortal_adoration_perk + scope:target = { is_ruler = yes } + } + add_contact = scope:target + add_hook_if_possible_default_length_effect = { + TARGET = scope:target + TYPE = manipulation_hook + } + } + + if = { + limit = { + dynasty ?= { + has_dynasty_perk = fp1_adventure_legacy_2 + } + } + add_prestige = fp1_adventure_legacy_2_prestige_value + } + + if = { + limit = { + is_close_family_of = scope:target + } + create_character_memory = { + type = seduced_family + + participants = { + family_member = scope:target + } + } + } + + owner_seduce_outcome_success_send_discovery_event_effect = yes +} + +owner_seduce_outcome_just_sex_effects = { + reverse_add_opinion = { + target = scope:target + modifier = romance_opinion + opinion = 20 + } + + if = { + limit = { + faith = { + has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes + } + } + add_piety = minor_piety_gain + } + + if = { + limit = { + dynasty ?= { + has_dynasty_perk = fp1_adventure_legacy_2 + } + } + add_prestige = fp1_adventure_legacy_2_prestige_value + } + + owner_seduce_outcome_success_send_discovery_event_effect = yes +} + +#In most cases, it makes more sense to actually apply the sex effect in the target's events (which are after the owner's events). This is because A) you don't want any pop-ups for the target before they have recieved their event and B) because some effects won't get a tooltip for being applied if they were already applied before. The only exception is when the owner is a player and the target is an AI. + + target_seduce_outcome_sex_effect = { + scope:target = { + if = { + limit = { + NAND = { + scope:owner = { is_ai = no } + scope:target = { is_ai = yes } + } + } + had_sex_with_effect = { + CHARACTER = scope:owner + PREGNANCY_CHANCE = seduce_pregnancy_chance + } + } + else = { + show_as_tooltip = { + had_sex_with_effect = { + CHARACTER = scope:owner + PREGNANCY_CHANCE = seduce_pregnancy_chance + } + } + } + } +} + +owner_seduce_outcome_sex_effect = { + scope:owner = { + if = { + limit = { + scope:owner = { is_ai = no } + scope:target = { is_ai = yes } + } + had_sex_with_effect = { + CHARACTER = scope:target + PREGNANCY_CHANCE = seduce_pregnancy_chance + } + } + else = { + show_as_tooltip = { + had_sex_with_effect = { + CHARACTER = scope:owner + PREGNANCY_CHANCE = seduce_pregnancy_chance + } + } + } + } +} + + +seduce_outcome_discovered_expose_secrets_and_adultery_effect = { + extramarital_sex_attempt_exposure_consequences_with_target_effect = { TARGET = $CHARACTER$ SPOUSE_EVENT = yes } #Adds trait + if = { + limit = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = $CHARACTER$ } } + random_secret = { + type = secret_incest + expose_secret = $EXPOSER$ + } + } + if = { + limit = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = $CHARACTER$ } } + random_secret = { + type = secret_homosexual + expose_secret = $EXPOSER$ + } + } +} + +seduce_outcome_failure_discovered_apply_secrets_effect = { + give_incest_secret_or_nothing_with_target_effect = { CHARACTER = scope:target } + give_homosexual_secret_or_nothing_with_target_effect = { CHARACTER = scope:target } +} + +seduce_outcome_success_discovered_effect = { + if = { + limit = { + any_secret = { + type = secret_lover + OR = { + secret_target = scope:target + secret_target = scope:owner + } + } + } + random_secret = { #Revealing the secret will send events for both lovers + type = secret_lover + limit = { + OR = { + secret_target = scope:target + secret_target = scope:owner + } + } + expose_secret = scope:target_liege + } + } + else = { + scope:owner = { seduce_outcome_discovered_expose_secrets_and_adultery_effect = { CHARACTER = scope:target EXPOSER = scope:target_liege } } + scope:target = { seduce_outcome_discovered_expose_secrets_and_adultery_effect = { CHARACTER = scope:owner EXPOSER = scope:target_liege } } + } +} + +seduce_outcome_publicised_attempted_crimes_or_nothing_effect = { + $TARGET$ = { + #Grab everyone relevant who might be interested in the attempt. + every_close_family_member = { add_to_list = relevant_parties } + every_consort = { + limit = { + NOT = { is_in_list = relevant_parties } + } + add_to_list = relevant_parties + } + if = { + limit = { + liege ?= { + NOT = { is_in_list = relevant_parties } + } + } + add_to_list = relevant_parties + } + if = { + limit = { + court_owner ?= { + NOT = { is_in_list = relevant_parties } + } + } + add_to_list = relevant_parties + } + every_vassal = { + limit = { + NOT = { is_in_list = relevant_parties } + } + add_to_list = relevant_parties + } + every_relation = { + type = friend + limit = { + NOT = { is_in_list = relevant_parties } + } + add_to_list = relevant_parties + } + every_relation = { + type = lover + limit = { + NOT = { is_in_list = relevant_parties } + } + add_to_list = relevant_parties + } + $OWNER$ = { + every_close_family_member = { + limit = { + NOT = { is_in_list = relevant_parties } + } + add_to_list = relevant_parties + } + } + + #Adulterer + if = { + limit = { + $OWNER$ = { is_married = yes } + trait_is_shunned_or_criminal_in_faith_trigger = { + TRAIT = trait:adulterer + FAITH = this.faith + GENDER_CHARACTER = $OWNER$ + } + } + every_in_list = { + list = relevant_parties + limit = { + #Filter out anyone who wouldn't care about this. + NOR = { + #Kids too young to understand the bias have no prejudice. + is_adult = no + #Not compos mentis. + has_trait = incapable + #People who are adulterers. + has_trait = adulterer + #The person doing the seducing don't think less of themselves either. + this = $OWNER$ + } + #And who count the action as adulterous. + trait_is_shunned_or_criminal_in_faith_trigger = { + TRAIT = trait:adulterer + FAITH = faith + GENDER_CHARACTER = $OWNER$ + } + } + custom = characters_close_to_target_who_dislike_adultery + #Apply attempt opinion effects. + add_opinion = { + modifier = adulterer_advances_on_relevant_character + target = $OWNER$ + } + } + } + + #Fornicator + if = { + limit = { + $OWNER$ = { is_married = no } + trait_is_shunned_or_criminal_in_faith_trigger = { + TRAIT = trait:fornicator + FAITH = faith + GENDER_CHARACTER = $OWNER$ + } + } + every_in_list = { + list = relevant_parties + limit = { + #Filter out anyone who wouldn't care about this. + NOR = { + #Kids too young to understand the bias have no prejudice. + is_adult = no + #Not compos mentis. + has_trait = incapable + #People who are fornicators. + has_trait = fornicator + #The person doing the seducing don't think less of themselves either. + this = $OWNER$ + } + #And who count the action to be fornication. + trait_is_shunned_or_criminal_in_faith_trigger = { + TRAIT = trait:fornicator + FAITH = this.faith + GENDER_CHARACTER = $OWNER$ + } + } + custom = characters_close_to_target_who_dislike_fornication + #Apply attempt opinion effects. + add_opinion = { + modifier = fornicator_advances_on_relevant_character + target = $OWNER$ + } + } + } + + #Incestuous + if = { + limit = { + relation_with_character_is_incestuous_in_my_faith_trigger = { CHARACTER = $OWNER$ } + } + every_in_list = { + list = relevant_parties + limit = { + #Filter out anyone who wouldn't care about this. + NOR = { + #Kids too young to understand the bias have no prejudice. + is_adult = no + #Not compos mentis. + has_trait = incapable + #People who are incestuous. + has_trait = incestuous + #Or who don't count the action as incestuous. + faith = { + faith_allows_marriage_consanguinity_trigger = { + CHARACTER_1 = $OWNER$ + CHARACTER_2 = $TARGET$ + } + } + #The person doing the seducing don't think less of themselves either. + this = $OWNER$ + } + } + custom = characters_close_to_target_who_dislike_incest + #Apply attempt opinion effects. + add_opinion = { + modifier = incestuous_advances_on_relevant_character + target = $OWNER$ + } + } + } + + #Sodomite + if = { + limit = { + relation_with_character_is_sodomy_trigger = { CHARACTER = $OWNER$ } + } + every_in_list = { + list = relevant_parties + limit = { + #Filter out anyone who wouldn't care about this. + NOR = { + #Kids too young to understand the bias have no prejudice. + is_adult = no + #Not compos mentis. + has_trait = incapable + #People who are sodomites themselves. + has_trait = sodomite + #Males who could be sodomites. + AND = { + is_male = yes + OR = { + has_sexuality = bisexual + has_sexuality = homosexual + } + } + #Or who don't count the action as incestuous. + faith = { + faith_allows_marriage_consanguinity_trigger = { + CHARACTER_1 = $OWNER$ + CHARACTER_2 = $TARGET$ + } + } + #The person doing the seducing don't think less of themselves either. + this = $OWNER$ + } + #And, finally, must actually be fussed about sodomy to begin with. + relation_between_characters_is_sodomy_in_my_faith_trigger = { + CHARACTER_1 = $OWNER$ + CHARACTER_2 = $TARGET$ + } + } + custom = characters_close_to_target_who_dislike_sodomy + #Apply attempt opinion effects. + add_opinion = { + modifier = sodomite_advances_on_relevant_character + target = $OWNER$ + } + } + } + } +} + +set_relation_lover_through_seduction_effect = { + $CHARACTER$ = { save_scope_as = second_character } + if = { #To save a potential important object to be used later on + limit = { + exists = scope:scheme + scope:scheme = { has_variable = object_of_importance } + NOT = { has_variable_list = lover_object_of_importance } + } + add_to_variable_list = { + name = lover_object_of_importance + target = scope:scheme.var:object_of_importance + } + add_to_variable_list = { + name = lover_object_of_importance + target = scope:second_character + } + } + else_if = { #you can save two different seduction objects + limit = { + exists = scope:scheme + scope:scheme = { has_variable = object_of_importance } + has_variable_list = lover_object_of_importance + NOT = { has_variable_list = lover_object_of_importance_2 } + } + add_to_variable_list = { + name = lover_object_of_importance_2 + target = scope:scheme.var:object_of_importance + } + add_to_variable_list = { + name = lover_object_of_importance_2 + target = scope:second_character + } + } + scope:scheme = { + end_scheme = yes + } + if = { # Safeguard because so much stuff can happen + limit = { + NOT = { has_relation_lover = scope:second_character } + } + scope:second_character = { + set_relation_lover = { + target = prev + reason = $REASON$ + province = $LOCATION$ + } + } + } +} + +set_object_of_significance_effect = { + if = { + limit = { + scope:scheme = { + NOT = { has_variable = object_of_importance } + } + } + scope:scheme = { + random_list = { + 1 = { + set_variable = { + name = object_of_importance + value = flag:rose + } + } + 1 = { + set_variable = { + name = object_of_importance + value = flag:sea_shell + } + } + } + } + } +} + +set_random_religious_text_effect = { + random_list = { + 1 = { + #Christian + trigger = { faith.religion = religion:christianity_religion } + save_scope_value_as = { + name = religious_book_title + value = flag:golden_legend + } + } + 1 = { + #Christian + trigger = { faith.religion = religion:christianity_religion } + save_scope_value_as = { + name = religious_book_title + value = flag:city_of_god + } + } + 1 = { + #Christian + trigger = { + faith.religion = religion:christianity_religion + NOT = { faith = faith:orthodox } + } + save_scope_value_as = { + name = religious_book_title + value = flag:summa_theologica + } + } + 1 = { + #Christian + trigger = { + faith.religion = religion:christianity_religion + NOT = { faith = faith:orthodox } + } + save_scope_value_as = { + name = religious_book_title + value = flag:sic_et_non + } + } + 1 = { + #Christian Orthodox + trigger = { + faith = faith:orthodox + } + save_scope_value_as = { + name = religious_book_title + value = flag:chrysostomos + } + } + 1 = { + #Christian Orthodox + trigger = { + faith = faith:orthodox + } + save_scope_value_as = { + name = religious_book_title + value = flag:symeon_menologion + } + } + 1 = { + #Christian Orthodox + trigger = { + faith = faith:orthodox + } + save_scope_value_as = { + name = religious_book_title + value = flag:god_and_christ + } + } + 1 = { + #Muslim + trigger = { faith.religion = religion:islam_religion } + save_scope_value_as = { + name = religious_book_title + value = flag:the_small_book_on_theism + } + } + 1 = { + #Muslim + trigger = { faith.religion = religion:islam_religion } + save_scope_value_as = { + name = religious_book_title + value = flag:modern_philosophy + } + } + 1 = { + #Any + save_scope_value_as = { + name = religious_book_title + value = flag:stories_from_holy_book + } + } + } +} + +set_random_entertainment_text_effect = { + random_list = { + 1 = { + #Germanic language + trigger = { + root.culture = { + OR = { + has_cultural_parameter = anglic_group_language_param + } + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:beowulf + } + } + 1 = { + #Germanic language + trigger = { + root.culture = { + OR = { + has_cultural_pillar = language_central_germanic + has_cultural_pillar = language_norse + has_cultural_pillar = language_anglic + } + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:niebelungenlied + } + } + 1 = { + #Latin + trigger = { root.culture = { has_cultural_pillar = language_italian } } + save_scope_value_as = { + name = entertainment_book_title + value = flag:song_of_roland + } + } + 1 = { + #Welsh saga + trigger = { + OR = { + root.culture = { has_cultural_pillar = language_brythonic } + root.culture = { has_cultural_pillar = language_goidelic } + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:mabinogi + } + } + 1 = { + #Greek + trigger = { root.culture = { has_cultural_pillar = language_greek } } + save_scope_value_as = { + name = entertainment_book_title + value = flag:digenes_akrites + } + } + ###New Works + 1 = { + #Any for now + save_scope_value_as = { + name = entertainment_book_title + value = flag:hitchhikers + } + } + 1 = { + #Any for now + save_scope_value_as = { + name = entertainment_book_title + value = flag:dune + } + } + 1 = { + #Any for now + save_scope_value_as = { + name = entertainment_book_title + value = flag:hobbit + } + } + 1 = { + #Any for now + save_scope_value_as = { + name = entertainment_book_title + value = flag:lotr + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = anglic_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:narnia + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = anglic_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:foundation + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = anglic_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:nineteen_eighty_four + } + } + 1 = { + trigger = { + OR = { + root.culture = { + OR = { + has_cultural_parameter = west_hispanic_group_language_param + has_cultural_parameter = middle_hispanic_group_language_param + has_cultural_parameter = east_hispanic_group_language_param + } + } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:one_hundred_years + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = french_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:les_drames + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = french_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:le_club + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = french_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:les_chevaliers + } + } + 1 = { + trigger = { + OR = { + root.culture = { + OR = { + has_cultural_parameter = anglic_group_language_param + has_cultural_parameter = middle_german_group_language_param + } + } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:the_shell_seekers + } + } + 1 = { + trigger = { + OR = { + root.culture = { + OR = { + has_cultural_parameter = anglic_group_language_param + has_cultural_parameter = middle_german_group_language_param + } + } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:pillars + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = middle_german_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:perfume + } + } + 1 = { + trigger = { + OR = { + root.culture = { + OR = { + has_cultural_parameter = east_north_germanic_group_language_param + has_cultural_parameter = west_north_germanic_group_language_param + } + } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:faceless + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = lausatian_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:the_alchemist + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = east_slavic_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:the_brothers + } + } + 1 = { + save_scope_value_as = { + name = entertainment_book_title + value = flag:one_thousand + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = anglic_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:nineteen_eighty_four + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = latin_sprachbund_language_param } + root.religion = novelist_religion + root.religion = catholic_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:the_divine_comedy + } + } + 1 = { + trigger = { + OR = { + root.culture = { + OR = { + has_cultural_parameter = latin_sprachbund_language_param + has_cultural_parameter = greek_sprachbund_language_param + } + } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:the_odyssey + } + } + 1 = { + trigger = { + OR = { + root.culture = { + OR = { + has_cultural_parameter = latin_sprachbund_language_param + has_cultural_parameter = greek_sprachbund_language_param + } + } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:war_and_peace + } + } + 1 = { + trigger = { + OR = { + root.culture = { has_cultural_parameter = albanian_group_language_param } + root.religion = novelist_religion + } + } + save_scope_value_as = { + name = entertainment_book_title + value = flag:the_pyramid + } + } + } +} + +set_random_informative_text_effect = { + random_list = { + 1 = { + #Arabic + trigger = { + OR = { + root.culture = { has_cultural_pillar = heritage_arabic } + root.culture = { has_cultural_pillar = language_arabic } + } + } + save_scope_value_as = { + name = informative_book_title + value = flag:on_the_judgement_of_the_stars + } + } + 1 = { + #Arabic + trigger = { + OR = { + scope:culture ?= { has_cultural_pillar = heritage_arabic } + scope:culture ?= { has_cultural_pillar = language_arabic } + } + } + save_scope_value_as = { + name = informative_book_title + value = flag:the_perfect_state + } + } + 1 = { + #"Any" + save_scope_value_as = { + name = informative_book_title + value = flag:spiritual_medicine + } + } + 1 = { + #Latin + trigger = { + root.capital_province ?= { geographical_region = world_europe } + } + save_scope_value_as = { + name = informative_book_title + value = flag:trotula + } + } + 1 = { + #Jewish/Any + save_scope_value_as = { + name = informative_book_title + value = flag:the_improvement_of_the_moral_qualities + } + } + 1 = { + #Welsh (Anyone in the British Isles) + trigger = { + root.capital_province ?= { geographical_region = world_europe_west_britannia } + } + save_scope_value_as = { + name = informative_book_title + value = flag:armes_prydein + } + } + 1 = { + #Anywhere around the Mediterrenean + trigger = { + root.capital_province ?= { + OR = { + geographical_region = world_europe + geographical_region = world_africa_north_east + geographical_region = world_africa_north_west + } + } + } + save_scope_value_as = { + name = informative_book_title + value = flag:almagest + } + } + 1 = { + #Greek + trigger = { root.culture = { has_cultural_pillar = language_greek } } + save_scope_value_as = { + name = informative_book_title + value = flag:anekdota + } + } + 1 = { + #Greek + trigger = { root.culture = { has_cultural_pillar = language_greek } } + save_scope_value_as = { + name = informative_book_title + value = flag:chronographia + } + } + } +} + +#To set up a location to use for the sex scene custom loc key +set_random_sex_scene_location_effect = { + hidden_effect = { + if = { + limit = { NOT = { has_variable = sex_scene_location } } + random_list = { + 20 = { + set_variable = { + name = sex_scene_location + value = flag:garden + } + } + 20 = { + set_variable = { + name = sex_scene_location + value = flag:private_chamber + } + } + 20 = { + set_variable = { + name = sex_scene_location + value = flag:stable + } + } + 20 = { + set_variable = { + name = sex_scene_location + value = flag:copse + } + } + 20 = { + set_variable = { + name = sex_scene_location + value = flag:kitchen + } + } + } + } + } +} + +#To transfer the location used in the sex scene custom loc key from one character to another +transfer_sex_scene_location_to_character_effect = { + if = { + limit = { + has_variable = sex_scene_location + } + if = { + limit = { + var:sex_scene_location = flag:garden + } + $CHARACTER$ = { + set_variable = { + name = sex_scene_location + value = flag:garden + } + } + } + else_if = { + limit = { + var:sex_scene_location = flag:private_chamber + } + $CHARACTER$ = { + set_variable = { + name = sex_scene_location + value = flag:private_chamber + } + } + } + else_if = { + limit = { + var:sex_scene_location = flag:stable + } + $CHARACTER$ = { + set_variable = { + name = sex_scene_location + value = flag:stable + } + } + } + else_if = { + limit = { + var:sex_scene_location = flag:copse + } + $CHARACTER$ = { + set_variable = { + name = sex_scene_location + value = flag:copse + } + } + } + else_if = { + limit = { + var:sex_scene_location = flag:kitchen + } + $CHARACTER$ = { + set_variable = { + name = sex_scene_location + value = flag:kitchen + } + } + } + } +} + +################################################## +# Abduct Scheme Effects + +#Sets up the Outcome Roll values +abduct_outcome_roll_setup_effect = { + #Discovery Roll setup + save_scope_value_as = { + name = discovery_chance + value = { + value = 100 + subtract = scope:scheme.scheme_secrecy + } + } +} + +#Roll to check whether a Abduct Scheme is a success or a failure, and whether the owner is discovered +abduct_outcome_roll_effect = { + #SUCCESS ROLL + random = { + chance = scope:scheme.scheme_success_chance + custom_tooltip = abduct_successful_roll_tt + scope:owner = { mandala_trickster_increment_successful_schemes_effect = yes } + save_scope_value_as = { + name = scheme_successful + value = yes + } + } + ### End Success roll + #DISCOVERY ROLL + custom_label = abduct_success_discovery_tt + random = { + chance = scope:discovery_chance + custom_tooltip = abduct_become_discovered_roll_tt + save_scope_value_as = { + name = scheme_discovered + value = yes + } + } + ### End Discovery roll + + hidden_effect = { + #FIRE CORRECT ON ACTIONS + if = { + limit = { + exists = scope:scheme_successful + } + trigger_event = { + on_action = abduct_succeeded + } + } + else = { + trigger_event = { + on_action = abduct_failed + } + } + } +} + +#Used in the immediate of the Scheme Owner's success event +abduct_success_effect = { + + scope:target = { + add_character_flag = { + flag = was_abducted_block_notification_event + days = 2 + } + trigger_event = abduct_outcome.5001 + } + + hard_imprison_character_effect = { + TARGET = scope:target + IMPRISONER = scope:owner + } + + if = { + limit = { + exists = scope:owner.house + exists = scope:target.house + } + scope:owner.house = { + change_house_relation_effect = { + HOUSE = scope:target.house + VALUE = house_relation_damage_medium_value + REASON = abduction + CHAR = scope:owner + TARGET_CHAR = scope:target + TITLE = scope:dummy_gender + } + } + } +} + +abduct_failure_effect = { + #Add Watchful Modifier to the target + scope:target = { + show_as_tooltip = { + add_character_modifier = { + modifier = watchful_modifier + days = watchful_modifier_duration + } + } + } + + scope:target = { + trigger_event = abduct_outcome.5002 + } +} + +successful_abduct_outcome_event_option_effect = { + if = { + limit = { + faith = { + has_doctrine_parameter = piety_gain_from_successful_intrigue_schemes + } + } + add_piety = minor_piety_gain + } + + scope:scheme ?= { + end_scheme = yes + } +} + +################################################## +# Befriend Scheme Effects + +successful_befriend_potential_friend_effect = { + $CHARACTER$ = { + if = { #Always leads to a potential friendship + limit = { + NOR = { + has_relation_potential_friend = root + has_relation_friend = root + } + } + if = { #Remove potential rival relation if you have it + limit = { + has_relation_potential_rival = root + } + remove_relation_potential_rival = root + } + set_relation_potential_friend = root + } + if = { + limit = { + number_of_traits_in_common = { + target = root + value >= 3 + } + } + $CHARACTER$ = { + add_opinion = { + modifier = friendliness_opinion + target = root + opinion = 30 + } + } + } + else = { + $CHARACTER$ = { + add_opinion = { + modifier = friendliness_opinion + target = root + opinion = 20 + } + } + } + } +} + +successful_befriend_critical_change_effect = { + $CHARACTER$ = { + hidden_effect = { + if = { #Remove potential rival relation if you have it + limit = { + has_relation_potential_rival = root + } + remove_relation_potential_rival = root + } + } + if = { #Set friend relation + limit = { + NOT = { has_relation_friend = root } + } + if = { + limit = { + exists = scope:relationship_reason_location + } + set_relation_friend = { reason = $REASON$ target = root province = scope:relationship_reason_location } + } + else = { + set_relation_friend = { reason = $REASON$ target = root } + } + } + else_if = { #Fallback + limit = { + has_relation_friend = root + } + $CHARACTER$ = { + add_opinion = { + modifier = friendliness_opinion + target = root + opinion = 40 + } + } + } + } + if = { + limit = { + has_government = landless_adventurer_government + has_perk = friendly_counsel_perk + $CHARACTER$ = { is_ruler = yes } + } + add_contact = $CHARACTER$ + } +} + +failed_befriend_opinion_change_effect = { + $CHARACTER$ = { + add_opinion = { + modifier = refusal_opinion + target = root + opinion = -5 + } + hidden_effect = { + set_relation_potential_friend = root + } + } +} + +failed_befriend_opinion_critical_change_effect = { + $CHARACTER$ = { + add_opinion = { + modifier = disastrous_befriend_attempt_opinion + target = root + } + if = { + limit = { + NOR = { + has_relation_potential_rival = root + has_relation_rival = root + } + } + hidden_effect = { set_relation_potential_rival = root } + } + else_if = { #If you already are potential rivals, you have a chance of becoming Rivals + limit = { + has_relation_potential_rival = root + NOT = { has_relation_rival = root } + } + hidden_effect = { remove_relation_potential_rival = root } + set_relation_rival = { + target = root + reason = rival_disastrous_befriend_attempt + } + } + } +} + +################################################## +# Claim Throne Scheme Effects + +#Sets up the Outcome Roll values +claim_throne_outcome_roll_setup_effect = { + # Find appropriate title + scope:target = { + primary_title = { + save_scope_as = target_title + } + } + # Discovery Roll setup + save_scope_value_as = { + name = discovery_chance + value = { + value = 100 + subtract = scope:scheme.scheme_secrecy + } + } +} + +claim_throne_check_target_title_effect = { + # In case something has happened to the target_title, we try to reset it here: + if = { + limit = { + OR = { + NOT = { exists = scope:target_title } # The title could somehow disappear + NOT = { + scope:target_title = { # The title might feasibly pass to someone else + holder ?= scope:target + + } + } + } + } + scope:target = { + primary_title = { # We just assign the target's primary title as the new target title + save_scope_as = target_title + } + } + } + + # Rivalry check is done here, since it's run in every outcome + if = { + limit = { + OR = { + exists = scope:scheme_successful + exists = scope:scheme_discovered + } + NOT = { has_relation_rival = scope:target } + } + hidden_effect = { + random = { + chance = 30 + modifier = { + add = 30 + has_relation_potential_rival = scope:target + } + modifier = { + exists = scope:scheme_discovered + add = 30 + } + modifier = { + has_relation_friend = scope:target + add = -25 + } + + save_scope_value_as = { + name = set_rivalry + value = yes + } + } + } + } +} + +#Roll to check whether a Claim Throne Scheme is a success or a failure, and whether the owner is discovered +claim_throne_outcome_roll_effect = { + #SUCCESS ROLL + random = { + chance = scope:scheme.scheme_success_chance + custom_tooltip = claim_throne_successful_roll_tt + scope:owner = { mandala_trickster_increment_successful_schemes_effect = yes } + save_scope_value_as = { + name = scheme_successful + value = yes + } + } + ### End Success roll + #DISCOVERY ROLL + custom_description_no_bullet = { + text = claim_throne_success_discovery_warning_effect + } + random = { + chance = scope:discovery_chance + custom_tooltip = claim_throne_become_discovered_roll_tt + save_scope_value_as = { + name = scheme_discovered + value = yes + } + } + ### End Discovery roll + + hidden_effect = { + #FIRE CORRECT ON ACTIONS + if = { + limit = { + exists = scope:scheme_successful + } + trigger_event = { + on_action = claim_throne_succeeded + days = 3 + } + } + else = { + trigger_event = { + on_action = claim_throne_failed + days = 3 + } + } + } +} + +#Used in the immediate of the Scheme Owner's success event +claim_throne_success_effect = { + # Note that the Claim itself is added in successful_claim_throne_outcome_event_option_effect + + if = { + limit = { + exists = scope:scheme_discovered + } + # Trigger the response event for the target (actual opinion is set here) + scope:target = { + trigger_event = claim_throne_outcome.5001 + } + + show_as_tooltip = { # Target dislikes you + scope:target = { + add_opinion = { + target = scope:owner + modifier = claim_my_throne_success_discovered_opinion + } + } + } + } + else = { + # Trigger the response event for the target (actual opinion is set here) + scope:target = { + trigger_event = claim_throne_outcome.5002 + } + show_as_tooltip = { + scope:target = { + add_opinion = { + target = scope:owner + modifier = claim_my_throne_success_undiscovered_opinion + years = 10 + } + } + } + } +} + +claim_throne_failure_effect = { + add_prestige = claim_throne_discovered_failure_prestige_loss + scope:target = { + # Fire notification event for target + trigger_event = claim_throne_outcome.5003 + show_as_tooltip = { + add_opinion = { + target = scope:owner + modifier = claim_my_throne_failure_opinion + years = 10 + } + if = { + limit = { exists = scope:set_rivalry } + set_relation_rival = { + target = scope:owner + reason = rival_claimed_throne_failed + } + } + } + } +} + +successful_claim_throne_event_option_effect = { + if = { + limit = { + exists = scope:scheme_discovered + } + add_prestige = claim_throne_discovered_prestige_loss + } + show_as_tooltip = { + scope:target = { + if = { + limit = { exists = scope:set_rivalry } + set_relation_rival = { + target = scope:owner + reason = rival_claimed_throne + } + } + if = { + limit = { exists = scope:scheme_discovered } + add_opinion = { + target = scope:owner + modifier = claim_my_throne_success_discovered_opinion + } + } + else = { + add_opinion = { + target = scope:owner + modifier = claim_my_throne_success_undiscovered_opinion + years = 10 + } + } + } + } + + scope:scheme = { + end_scheme = yes + } + + add_pressed_claim = scope:target_title +} + +claim_throne_decline_execution_effect = { + custom_tooltip = do_not_execute_claim_throne_tooltip + scope:scheme = { + reset_failed_scheme_effect = yes + } +} + +claim_throne_set_mythical_founder_variable_effect = { + if = { + limit = { + AND = { # Charles Martell + OR = { + scope:target_title = title:k_france + scope:target_title = title:e_france + } + current_date > 1000.1.1 + } + } + set_variable = { + name = mythical_founder + value = flag:charles_martell + } + } + else_if = { # Alexander + limit = { + OR = { + scope:target_title = title:k_thessalonika + scope:target_title = title:k_hellas + scope:target_title = title:k_egypt + AND = { + OR = { + scope:target_title = title:k_persia + scope:target_title = title:e_persia + } + NOR = { + root.faith.religion = religion:islam_religion + root.faith.religion = religion:zoroastrianism_religion + } + } + scope:target_title = title:k_anatolia + } + } + set_variable = { + name = mythical_founder + value = flag:alexander + } + } + else_if = { # Lech + limit = { + scope:target_title = title:k_poland # Lech + } + set_variable = { + name = mythical_founder + value = flag:lech + } + } + else_if = { # Czech + limit = { + scope:target_title = title:k_bohemia # Lech + } + set_variable = { + name = mythical_founder + value = flag:czech + } + } + else_if = { # Rus + limit = { + OR = { # Rus + scope:target_title = title:k_white_rus + scope:target_title = title:k_ruthenia + scope:target_title = title:e_russia + } + } + set_variable = { + name = mythical_founder + value = flag:rus + } + } + else_if = { # Arthur + limit = { + OR = { + scope:target_title = title:k_wales + scope:target_title = title:k_cornwall + scope:target_title = title:k_england + scope:target_title = title:e_britannia + } + } + set_variable = { + name = mythical_founder + value = flag:arthur + } + } + else_if = { # Belisarius + limit = { + OR = { + scope:target_title = title:k_italy + scope:target_title = title:k_romagna + scope:target_title = title:k_sardinia + scope:target_title = title:e_italy + scope:target_title = title:h_roman_empire + scope:target_title = title:h_eastern_roman_empire + } + faith = faith:orthodox + } + set_variable = { + name = mythical_founder + value = flag:belisarius + } + } + else_if = { # Romulus + limit = { + OR = { + scope:target_title = title:k_italy + scope:target_title = title:k_romagna + scope:target_title = title:k_sardinia + scope:target_title = title:e_italy + scope:target_title = title:h_roman_empire + scope:target_title = title:h_eastern_roman_empire + } + } + set_variable = { + name = mythical_founder + value = flag:romulus + } + } + else_if = { # Ardashir + limit = { + OR = { + scope:target_title = title:k_persia + scope:target_title = title:e_persia + } + } + set_variable = { + name = mythical_founder + value = flag:ardashir + } + } + else_if = { # The Pharaohs + limit = { + scope:target_title = title:k_egypt + NOT = { religion = religion:islam_religion } + } + set_variable = { + name = mythical_founder + value = flag:pharaohs + } + } + else_if = { # The Visigothic Kings + limit = { + OR = { + scope:target_title = title:k_castille + scope:target_title = title:k_aragon + scope:target_title = title:k_navarra + scope:target_title = title:k_andalusia + scope:target_title = title:k_portugal + scope:target_title = title:e_spain + } + NOT = { religion = religion:islam_religion } + } + set_variable = { + name = mythical_founder + value = flag:visigothic_kings + } + } + else_if = { # Abd al-Rahman + limit = { + OR = { + scope:target_title = title:k_castille + scope:target_title = title:k_aragon + scope:target_title = title:k_navarra + scope:target_title = title:k_andalusia + scope:target_title = title:k_portugal + scope:target_title = title:e_spain + } + religion = religion:islam_religion + } + set_variable = { + name = mythical_founder + value = flag:abd_al_rahman + } + } + else_if = { # Zenobia + limit = { + OR = { + scope:target_title = title:k_syria + scope:target_title = title:k_mesopotamia + } + NOT = { religion = religion:islam_religion } + } + set_variable = { + name = mythical_founder + value = flag:zenobia + } + } + else = { + set_variable = { + name = mythical_founder + value = flag:fallback + } + } +} + +################################################## +# Elope Scheme Effects + +elope_opinion_list_builder_effect = { + $OWNER$ = { + every_spouse = { + limit = { NOT = { this = $TARGET$ } } + add_to_temporary_list = $LIST_NAME$ + } + } + $TARGET$ = { + every_spouse = { + limit = { NOT = { this = $OWNER$ } } + add_to_temporary_list = $LIST_NAME$ + } + liege = { + if = { + limit = { + NOR = { + is_in_list = $LIST_NAME$ + this = $OWNER$ + } + } + add_to_temporary_list = $LIST_NAME$ + } + } + } +} + +elope_success_effect = { + elope_opinion_list_builder_effect = { OWNER = $OWNER$ TARGET = $TARGET$ LIST_NAME = elope_opinion_list } + + #Because this can be used in events or interaction window, we save root_scope here + if = { + limit = { exists = scope:actor } + scope:actor = { save_temporary_scope_as = root_scope } + } + else = { + root = { save_temporary_scope_as = root_scope } + } + + #Target prisoner release + $TARGET$ = { + if = { + limit = { is_imprisoned = yes } + release_from_prison = yes + } + } + + $OWNER$ = { + #Tooltip for marriage + show_as_tooltip = { + if = { + limit = { is_female = yes } + marry_matrilineal = $TARGET$ + } + else = { + marry = $TARGET$ + } + } + + #Owner's personal consequences (hidden or not), divorce happens here + if = { + limit = { + scope:root_scope = $OWNER$ + } + elope_success_personal_consequences_effect = { CHARACTER = $OWNER$ } + } + else = { + hidden_effect = { elope_success_personal_consequences_effect = { CHARACTER = $OWNER$ } } + } + } + + #Opinions + ordered_in_list = { + list = elope_opinion_list + max = 10 #To make sure we include all + check_range_bounds = no + order_by = ai_vengefulness + + #Towards owner + if = { + limit = { + OR = { #Owner wants to see everything, root wants to see their own + scope:root_scope = $OWNER$ + scope:root_scope = this + } + } + elope_success_opinion_rivalry_effect = { CHARACTER = $OWNER$ } + } + else = { + hidden_effect = { elope_success_opinion_rivalry_effect = { CHARACTER = $OWNER$ } } + } + + #Towards target + if = { + limit = { scope:root_scope = this } #Root wants to see their own + elope_success_opinion_rivalry_effect = { CHARACTER = $TARGET$ } + } + else = { + hidden_effect = { elope_success_opinion_rivalry_effect = { CHARACTER = $TARGET$ } } + } + } + + + hidden_effect = { + #Target's personal consequences, divorce happens here + elope_success_personal_consequences_effect = { CHARACTER = $TARGET$ } + + #Marriage + $OWNER$ = { #We do this last so old spouses remain when we run personal consequences effect + if = { + limit = { is_female = yes } + marry_matrilineal = $TARGET$ + } + else = { + marry = $TARGET$ + } + } + } +} + +elope_failure_discovered_effect = { + elope_opinion_list_builder_effect = { OWNER = $OWNER$ TARGET = $TARGET$ LIST_NAME = elope_opinion_list } + + #Expose lover secret + $OWNER$ = { + random_secret = { + type = secret_lover + limit = { + secret_target = $TARGET$ + } + + if = { + limit = { $DISCOVERER$ = { is_ai = yes } } + expose_secret = $DISCOVERER$ + } + else = { + reveal_to = $DISCOVERER$ + } + } + } + + #Opinions + ordered_in_list = { + list = elope_opinion_list + max = 10 #To make sure we include all + check_range_bounds = no + order_by = ai_vengefulness + + #Towards owner + if = { + limit = { + OR = { #Owner wants to see everything, root wants to see their own + root = $OWNER$ + root = this + } + } + elope_failure_discovered_opinion_rivalry_effect = { CHARACTER = $OWNER$ } + } + else = { + hidden_effect = { elope_failure_discovered_opinion_rivalry_effect = { CHARACTER = $OWNER$ } } + } + + #Towards target + if = { + limit = { root = this } #Root wants to see their own + elope_failure_discovered_opinion_rivalry_effect = { CHARACTER = $TARGET$ } + } + else = { + hidden_effect = { elope_failure_discovered_opinion_rivalry_effect = { CHARACTER = $TARGET$ } } + } + } +} + +elope_success_opinion_rivalry_effect = { + #Crime opinion + add_opinion = { + target = $CHARACTER$ + modifier = elopement_opinion + } + + #Rivalry + if = { + limit = { + can_set_relation_rival_trigger = { CHARACTER = $CHARACTER$ } + is_ai = yes + trigger_if = { + limit = { is_spouse_of = $CHARACTER$ } + ai_vengefulness >= low_positive_ai_value + } + trigger_else = { + ai_vengefulness > 0 + } + } + if = { + limit = { + can_set_relation_nemesis_trigger = { CHARACTER = $CHARACTER$ } + ai_vengefulness >= medium_positive_ai_value + } + set_relation_nemesis = { + reason = nemesis_elopement + copy_reason = rival + target = $CHARACTER$ + } + } + else = { + set_relation_rival = { + target = $CHARACTER$ + reason = rival_eloped + } + } + } + else_if = { + limit = { + can_set_relation_potential_rival_trigger = { CHARACTER = $CHARACTER$ } + } + hidden_effect = { set_relation_potential_rival = $CHARACTER$ } + } +} + +elope_success_personal_consequences_effect = { + $CHARACTER$ = { + + #Divorce + if = { + limit = { + is_married = yes + } + every_spouse = { + save_temporary_scope_as = eloper_divorcee + + divorce_effect = { + DIVORCER = $CHARACTER$ + DIVORCEE = scope:eloper_divorcee + } + if = { + limit = { has_relation_lover = $CHARACTER$ } + remove_relation_lover = $CHARACTER$ + } + } + + #Divorce consequences + if = { + limit = { faith = { NOT = { has_doctrine = doctrine_divorce_allowed } } } + add_prestige_level = -1 + add_piety_level = -1 + + if = { + limit = { + faith = { has_doctrine = tenet_communion } + NOT = { has_trait = excommunicated } + } + add_trait = excommunicated + } + } + } + + #Break betrothal + if = { + limit = { is_betrothed = yes } + reverse_add_opinion = { + modifier = broke_betrothal_opinion + target = betrothed + } + break_betrothal = betrothed + if = { + limit = { + has_been_promised_grand_wedding = yes + } + break_grand_wedding_betrothal_effect = yes + } + } + + #End concubinage + if = { + limit = { is_concubine = yes } + liege = { + remove_concubine = $CHARACTER$ + + if = { + limit = { has_relation_lover = $CHARACTER$ } + remove_relation_lover = $CHARACTER$ + } + } + add_prestige_level = -1 + } + } +} + +elope_failure_discovered_opinion_rivalry_effect = { + add_opinion = { + target = $CHARACTER$ + modifier = attempted_elopement_opinion + } + + #Rivalry + if = { + limit = { + can_set_relation_potential_rival_trigger = { CHARACTER = $CHARACTER$ } + } + hidden_effect = { set_relation_potential_rival = $CHARACTER$ } + } +} + +################################################## +# Fabricate Hook Scheme Effects + +fabricate_hook_assign_appropriate_type_effect = { + debug_log = "Running Fabricate Hook's Assign Appropriate Hook effect" + assert_if = { + limit = { + scope:owner = { + has_strong_hook = scope:target + } + } + text = "The Fabricate Hook Scheme Owner already has a Strong Hook on the Target! Why is this effect running?" + } + assert_if = { + limit = { + scope:target = { is_ruler = yes } + NOT = { exists = scope:strong_hook_against_ruler } + scope:owner = { has_hook = scope:target } + } + text = "The Owner has a hook against a ruler target, and the strong hook roll failed. Something has gone wrong to get here!" + } + + save_scope_value_as = { + name = hook_type + value = flag:$TYPE$ + } + # Go through the Hook types, and assign the appropriate one + if = { + limit = { + scope:hook_type = flag:loyalty_hook + } + # Check rulers first (to give weaker Hooks) + if = { + limit = { + scope:target = { is_ruler = yes } + NOT = { exists = scope:strong_hook_against_ruler } # Set by on_ready in the Scheme + } + send_interface_toast = { + title = fabricate_hook_gained_indebted_title + left_icon = scope:target + add_hook = { + type = indebted_hook + target = scope:target + } + } + } + else = { + send_interface_toast = { + title = fabricate_hook_gained_loyalty_title + left_icon = scope:target + add_hook = { + type = loyalty_hook + target = scope:target + } + } + } + } + else_if = { + limit = { + scope:hook_type = flag:fabrication_hook + } + # Check rulers first (to give weaker Hooks) + if = { + limit = { + scope:target = { is_ruler = yes } + NOT = { exists = scope:strong_hook_against_ruler } # Set by on_ready in the Scheme + } + send_interface_toast = { + title = fabricate_hook_gained_manipulation_title + left_icon = scope:target + add_hook = { + type = manipulation_hook + target = scope:target + } + } + } + else = { + send_interface_toast = { + title = fabricate_hook_gained_indebted_title + left_icon = scope:target + add_hook = { + type = fabrication_hook + target = scope:target + } + } + } + } + else_if = { + limit = { + scope:hook_type = flag:life_threat_hook + } + debug_log = "Attempting to set life threat hook" + # Check rulers first (to give weaker Hooks) + if = { + limit = { + scope:target = { is_ruler = yes } + NOT = { exists = scope:strong_hook_against_ruler } # Set by on_ready in the Scheme + } + debug_log = "Trying to set regular threat hook against ruler" + send_interface_toast = { + title = fabricate_hook_gained_threat_title + left_icon = scope:target + add_hook = { + type = threat_hook + target = scope:target + } + scope:target = { + add_opinion = { + target = scope:owner + modifier = fabricate_hook_threatened_me + years = 10 + } + } + } + } + else = { + if = { + limit = { exists = scope:strong_hook_against_ruler } + debug_log = "Trying to set life_threat_hook against a ruler" + } + else = { + debug_log = "Setting life_threat_hook against non-ruler" + assert_if = { + limit = { scope:target = { is_ruler = yes } } + text = "There is no ruler strong hook roll, but we're still trying to set a life_threat_hook on them!" + } + } + send_interface_toast = { + title = fabricate_hook_gained_threat_title + left_icon = scope:target + add_hook = { + type = life_threat_hook + target = scope:target + } + scope:target = { + add_opinion = { + target = scope:owner + modifier = fabricate_hook_threatened_me + years = 10 + } + } + } + } + } + # Error catch + else = { + assert_if = { + limit = { always = yes } # It should never get here + text = "Fabricate Hook assignment effect did not have a Hook type set when trying to assign a Hook!" + } + } +} + +fabricate_hook_block_scheme_owner_from_further_schemes_effect = { + add_opinion = { + target = scope:owner + modifier = fabricated_hook_against_court_opinion + years = 5 + } + custom_tooltip = fabricate_hook_i_may_not_fabricate_again +} + +fabricate_hook_discovery_effect = { + show_as_tooltip = { # Target dislikes you + custom_tooltip = fabricate_hook_i_may_not_fabricate_again + scope:target = { + add_opinion = { + target = scope:owner + modifier = fabricated_hook_against_court_opinion + years = 5 + } + } + if = { + limit = { + exists = scope:target.court_owner + scope:target != scope:target.court_owner + } + scope:target.court_owner = { + add_opinion = { + target = scope:owner + modifier = fabricated_hook_against_court_opinion + years = 5 + } + } + } + } + + hidden_effect = { + # Set a blocker for Fabricating further Hooks against Court in question + if = { + limit = { + exists = scope:target.court_owner + } + scope:target.court_owner = { + send_interface_message = { + type = fabricate_hook_bad_message + left_icon = scope:owner + title = hostile_scheme_discovery.3002.t + + if = { + limit = { + scope:owner != scope:target.court_owner + } + fabricate_hook_block_scheme_owner_from_further_schemes_effect = yes + } + } + } + } + if = { + limit = { + OR = { + NOT = { exists = scope:target.court_owner } + scope:target.court_owner != scope:target + } + } + scope:target = { + add_opinion = { + target = scope:owner + modifier = fabricated_hook_against_court_opinion + years = 5 + } + } + } + } +} + +#Used in event options +fabricate_hook_success_effect = { + fabricate_hook_assign_appropriate_type_effect = { + TYPE = $TYPE$ # Sets the correct hook type to give + } + if = { + limit = { exists = scope:scheme_discovered } + fabricate_hook_discovery_effect = yes + } + if = { + limit = { exists = scope:scheme } + scope:scheme = { + end_scheme = yes + } + } +} + +fabricate_hook_decline_execution_effect = { + scope:scheme = { + add_scheme_modifier = { + type = fabricate_hook_building_influence_modifier + } + custom_tooltip = restart_scheme_tt + reset_failed_scheme_effect = yes + } +} + +fabricate_hook_success_notification_event_effect = { + custom_tooltip = fabricate_hook_hook_gained_on_you + if = { + limit = { + exists = scope:scheme_discovered + scope:target = scope:target.court_owner + } + fabricate_hook_block_scheme_owner_from_further_schemes_effect = yes + } +} + +################################################## +# Sway Scheme Effects + +sway_end_effect = { + if = { + limit = { + scope:target = { + NOT = { + has_opinion_modifier = { + target = scope:owner + modifier = scheme_sway_opinion + value >= sway_max_value # 100 by default + } + } + } + } + if = { + limit = { + exists = scope:scheme + } + scope:scheme = { + reset_failed_scheme_effect = yes + } + } + if = { + limit = { + exists = scope:scheme_successful + } + custom_tooltip = sway_continue + } + else = { + custom_tooltip = sway_try_again + } + + scope:owner = { # The AI never stops swaying unless we force it to, this makes them use a more even spread of schemes + if = { + limit = { + is_ai = yes + scope:target = { + NAND = { + is_vassal_of = scope:owner + is_a_faction_member = yes + opinion = { + target = scope:owner + value < 100 + } + } + } + } + if = { # Sway your realm priest for a long time + limit = { + scope:target = { + is_theocratic_lessee = yes + opinion = { + target = scope:owner + value <= 50 + } + } + } + random = { + chance = 10 + scope:scheme = { + end_scheme = yes + } + } + } + else_if = { + limit = { + scope:target = { + opinion = { + target = scope:owner + value < -25 + } + } + } + random = { + chance = 10 + scope:scheme = { + end_scheme = yes + } + } + } + else_if = { + limit = { + scope:target = { + opinion = { + target = scope:owner + value < 0 + } + } + } + random = { + chance = 30 + scope:scheme = { + end_scheme = yes + } + } + } + else_if = { + limit = { + scope:target = { + opinion = { + target = scope:owner + value < 35 + } + } + } + random = { + chance = 50 + scope:scheme = { + end_scheme = yes + } + } + } + else = { + scope:scheme = { + end_scheme = yes + } + } + } + } + } + else = { + #hidden_effect = { # What was this ever supposed to achieve? + # remove_opinion = { + # target = scope:owner + # modifier = scheme_sway_opinion + # } + # add_opinion = { + # target = scope:owner + # modifier = scheme_sway_opinion + # opinion = 100 + # } + #} + scope:owner = { + send_interface_toast = { + title = sway_complete + left_icon = scope:target + scope:scheme = { + end_scheme = yes + } + } + } + } +} + +sway_ongoing_1002_outcome_effect = { + if = { + limit = { + exists = scope:believer + has_relation_friend = scope:believer + } + show_as_tooltip = { theology_3021_a_success_effect = yes } + } + else = { + random_list = { + 1 = { + desc = diplomacy_majesty.0004.success.tt + show_chance = no + show_as_tooltip = { + scope:compliment_receiver = { + add_opinion = { + target = root + modifier = respect_opinion + opinion = 10 + } + } + } + } + 1 = { + desc = diplomacy_majesty.0004.failure.tt + show_chance = no + show_as_tooltip = { + scope:compliment_receiver = { + add_opinion = { + target = root + modifier = respect_opinion + opinion = -5 + } + } + } + } + } + } + + hidden_effect = { + if = { + limit = { + exists = scope:compliment_outcome + scope:compliment_outcome = flag:good + } + trigger_event = sway_ongoing.1003 + } + else_if = { #Is treated as a good outcome here + limit = { + exists = scope:compliment_outcome + scope:compliment_outcome = flag:neutral + } + trigger_event = sway_ongoing.1003 + } + else_if = { + limit = { + exists = scope:compliment_outcome + scope:compliment_outcome = flag:bad + } + trigger_event = sway_ongoing.1004 + } + } +} + +################################################## +# Court Scheme Effects + +court_success_prestige_effect = { + + if = { + limit = { court_love_is_shunned_or_criminal_trigger = no } #Only if it's not a taboo courtship + + #Whose tier matters? + if = { + limit = { + scope:target = { + is_ruler = no + exists = liege + OR = { + is_spouse_of = this.liege + is_close_or_extended_family_of = this.liege + } + } + } + scope:target = { liege = { save_scope_as = prestige_comparison } } + } + else = { + scope:target = { save_scope_as = prestige_comparison } + } + + #Epic + if = { + limit = { + #They are at least two levels above you or empire level + OR = { + tier_difference = { + target = scope:prestige_comparison + value <= -2 + } + scope:prestige_comparison.highest_held_title_tier = tier_empire + } + } + add_prestige = massive_prestige_gain + } + #Great + else_if = { + limit = { + OR = { + #They are one level above you or kingdom level + tier_difference = { + target = scope:prestige_comparison + value = -1 + } + scope:prestige_comparison.highest_held_title_tier = tier_kingdom + } + } + add_prestige = major_prestige_gain + } + #Good + else_if = { + limit = { + #They're your level or duchy level + OR = { + scope:prestige_comparison.highest_held_title_tier = this.highest_held_title_tier + scope:prestige_comparison.highest_held_title_tier = tier_duchy + } + } + add_prestige = medium_prestige_value + } + #Okay + else_if = { + limit = { + #They're at least county level + scope:prestige_comparison.highest_held_title_tier >= tier_county + } + add_prestige = minor_prestige_value + } + #Everything else (everyone targeting barons/unlanded) + else = { + add_prestige = miniscule_prestige_value + } + } +} + +court_ongoing_1010_good_duel_outcome_effect = { + add_prestige = medium_prestige_gain + scope:scheme = { + add_scheme_modifier = { + type = courting_act_of_heroism_modifier + } + } +} + +court_ongoing_fetch_gift_modifier_effect = { + #Wolf pelt + if = { + limit = { + scope:target = { has_character_flag = court_ongoing_wolf_pelt_flag } + has_royal_court = yes # Since these are court artifacts and serve no real purpose to those without a court + } + create_artifact_animal_hide_effect = { + OWNER = scope:target + HUNTER = scope:target + LEGENDARY = no + ANIMAL = flag:wolf + } + } + # Necklace + else_if = { + limit = { + scope:target = { has_character_flag = court_ongoing_necklace_flag } + } + create_artifact_necklace_effect = { + OWNER = scope:target + SMITH = scope:target + } + hidden_effect_new_object = { + scope:newly_created_artifact = { + flag_as_trash_artifact = yes + } + } + } + # Flower + else_if = { + limit = { + scope:target = { has_character_flag = court_ongoing_orchid_flag } + } + save_scope_value_as = { + name = flower_species + value = flag:flower_type_orchid + } + create_artifact_pressed_flower_effect = { OWNER = scope:target } + clear_saved_scope = flower_species + hidden_effect_new_object = { + scope:newly_created_artifact = { + flag_as_trash_artifact = yes + } + } + } + else = { + add_character_modifier = { + modifier = $GIFT$_modifier + years = 20 + } + } +} + +court_ongoing_fetch_gift_target_outcome_effect = { + hidden_effect = { + scope:target = { + if = { + limit = { is_ai = no } + } + save_temporary_scope_value_as = { + name = gift_outcome + value = flag:$OUTCOME$ + } + + if = { + limit = { + scope:gift_outcome = flag:success + } + send_interface_toast = { + title = court_ongoing.1021.$GIFT$.success + left_icon = scope:owner + court_ongoing_fetch_gift_modifier_effect = { GIFT = $GIFT$ } + } + } + else_if = { + limit = { + scope:gift_outcome = flag:failure + } + send_interface_toast = { + title = court_ongoing.1021.$GIFT$.failure + left_icon = scope:owner + } + } + #Flag clean up + remove_character_flag = court_ongoing_wolf_pelt_flag + remove_character_flag = court_ongoing_necklace_flag + remove_character_flag = court_ongoing_orchid_flag + } + } +} + +court_ongoing_1030_dog_modifier_effect = { + if = { + limit = { + NOT = { has_character_flag = had_dog_story } + } + start_dog_story_cycle_effect = yes + } +} + +court_ongoing_1030_cat_modifier_effect = { + if = { + limit = { + NOT = { has_character_flag = had_cat_story } + } + start_cat_story_cycle_effect = yes + } +} + +court_ongoing_1030_eagle_modifier_effect = { + if = { + limit = { + NOT = { has_character_flag = had_eagle_story } + } + save_scope_value_as = { + name = eagle_capture_method + value = flag:gift + } + start_eagle_story_cycle_effect = yes + } +} + +court_ongoing_1030_failure_effect = { + reverse_add_opinion = { + target = scope:target + modifier = disappointed_opinion + opinion = -10 + } +} + +court_ongoing_1100_outcome_effect = { + show_as_tooltip = { + random_list = { + 1 = { + desc = court_ongoing.1100.success.tt + show_chance = no + scope:scheme = { + add_scheme_modifier = { + type = courting_charm_modifier + } + } + } + 1 = { + desc = court_ongoing.1100.neutral.tt + show_chance = no + } + 1 = { + desc = court_ongoing.1100.failure.tt + show_chance = no + reverse_add_opinion = { + target = scope:target + modifier = insult_opinion + opinion = -10 + } + } + } + } + + hidden_effect = { + scope:target = { + trigger_event = { + id = court_ongoing.1101 + days = { 3 7 } + } + } + } +} + +court_consummate_effect = { + if = { + limit = { this = scope:owner } + + } + else = { + set_relation_soulmate = scope:owner + } +} + +court_kiss_effect = { + + hidden_effect = { + if = { + limit = { NOT = { has_relation_potential_lover = scope:target } } + set_relation_potential_lover = scope:target + } + } +} + +target_success_opinion_bonus_effect = { + reverse_add_opinion = { + target = scope:owner + modifier = love_opinion + opinion = 30 + } +} + +end_court_scheme_effect = { + save_temporary_scope_value_as = { + name = court_outcome + value = flag:$OUTCOME$ + } + + scope:owner = { + # SUCCESS: SOULMATES + # (This is the only one which target also needs to see, run it in owner scope in show_as_tooltip first and then execute in target's scope) + if = { + limit = { scope:court_outcome = flag:success_soulmate } + + scope:target = { set_relation_soulmate = { reason = $REASON$ target = prev } } + if = { + limit = { + NOR = { + has_sexuality = asexual + scope:target = { has_sexuality = asexual } + } + } + had_sex_with_effect = { #Run this in target scope because owner has own tooltip + CHARACTER = scope:target + PREGNANCY_CHANCE = pregnancy_chance + } + } + reverse_add_opinion = { + target = scope:target + modifier = romance_scheme_courtship_opinion #Blocks courtship + } + + #Maybe break of existing lover relationships + hidden_effect = { + scope:target = { + if = { + limit = { + has_trait = lustful + is_ai = yes + any_relation = { + type = lover + this != scope:owner + } + } + every_relation = { + type = lover + random = { + chance = 90 + opinion_modifier = { #Less likely if they really like the lover + who = scope:target + opinion_target = this + multiplier = -0.5 + min = -20 + } + modifier = { #More likely if they have more lovers + add = 10 + scope:target = { + any_relation = { + type = lover + count >= 2 + } + } + } + lover_breakup_effect = { + BREAKER = scope:target + LOVER = this + } + } + } + } + } + } + } + # SUCCESS: KISS + else_if = { + limit = { scope:court_outcome = flag:success_kiss } + custom_tooltip = court_outcome.kiss.tt + reverse_add_opinion = { + target = scope:target + modifier = romance_scheme_courtship_opinion #Blocks courtship + } + } + # FAILURE: SOFT + else_if = { + limit = { scope:court_outcome = flag:failure_soft } + #Shared effect with Seduce because failure in one scheme should block the other + scope:target = { seduction_cooldown_for_character_effect = { CHARACTER = scope:owner } } + } + # FAILURE: HARD + else_if = { + limit = { scope:court_outcome = flag:failure_hard } + #Shared effect with Seduce because failure in one scheme should block the other + scope:target = { seduction_block_character_effect = { CHARACTER = scope:owner } } + } + + # Tradition bonuses + if = { + limit = { + OR = { + scope:court_outcome = flag:success_soulmate + scope:court_outcome = flag:success_kiss + } + culture = { + has_cultural_parameter = romance_scheme_bonuses + } + exists = dynasty + } + dynasty = { + add_dynasty_prestige = minor_dynasty_prestige_gain + } + } + else_if = { + limit = { + OR = { + scope:court_outcome = flag:failure_soft + scope:court_outcome = flag:failure_hard + } + culture = { + has_cultural_parameter = romance_scheme_bonuses + } + } + add_stress = medium_stress_impact_gain + } + } + + scope:scheme = { end_scheme = yes } +} + +################################################## +# Steal Back Artefact Scheme Effects + +#Used in the immediate of the Scheme Owner's success event +steal_back_artifact_success_effect = { + scope:target = { + add_opinion = { + target = scope:owner + modifier = stole_artifact_from_me + } + # Feud score + scope:owner.house = { + change_house_relation_feud_score_effect = { + TARGET = scope:owner.house + REASON = stole_artifact + VALUE = house_feud_medium_counter_value + } + } + # Contracts + hidden_effect = { + if = { + limit = { + any_character_task_contract = { + task_contract_type = laamp_steal_artifact_contract + var:task_contract_target ?= scope:target + } + } + random_character_task_contract = { + task_contract_type = laamp_steal_artifact_contract + limit = { + var:task_contract_target ?= scope:target + } + complete_task_contract = success_standard + } + } + } + } +} + +steal_back_artifact_failure_effect = { + #Add Watchful Modifier to the target + scope:target = { + add_character_modifier = { + modifier = watchful_modifier + days = watchful_modifier_duration + } + add_opinion = { + target = scope:owner + modifier = attempted_to_steal_artifact_from_me + } + } +} + +################################################## +# Scheme Start Effects + +## Start a (non-contract) scheme with agents +# +# Arguments: +# SCHEME_TYPE - Type of scheme +# TARGET_TYPE - What type of thing to target (character or title) +# TARGET_SCOPE - Individual game object to target (character or title) +# AGENT_1..5 - Scheme agent slots for the scheme. +begin_scheme_with_agents_effect = { + save_scope_as = scheme_launcher + + # Flag that we _don't_ need more agents. + set_variable = { + name = agents_added + value = yes + days = 1 + } + + # Start the scheme. + start_scheme = { + type = $SCHEME_TYPE$ + $TARGET_TYPE$ = $TARGET_SCOPE$ + + save_scope_as = new_scheme + } + + # Assign agent slots et al. to the newly created scheme. + scope:new_scheme ?= { + # Add our starting agents. + add_agent_slot = $AGENT_1$ + add_agent_slot = $AGENT_2$ + add_agent_slot = $AGENT_3$ + add_agent_slot = $AGENT_4$ + add_agent_slot = $AGENT_5$ + + # Assign initial agents for non-player schemers. + if = { + limit = { + scope:scheme_launcher = { + is_ai = yes + } + } + auto_assign_scheme_agents = yes + } + + # If we have a custom charge threshold to complete, set that here. + ## Overthrow Regent. + if = { + limit = { scheme_type = overthrow_regent } + set_variable = { + name = custom_charge_threshold + value = 1 + } + } + # Set up our grace period. + set_variable = { + name = secrecy_grace_period + value = secrecy_grace_character_total_starting_value + } + } + + open_view = { + view = intrigue_window + player = scope:new_scheme.scheme_owner + } +} + +begin_contract_scheme_with_agents_effect = { + # Log our scheme launcher so that we can refer to them down the line. + save_scope_as = scheme_launcher + # Flag that we _don't_ need more agents. + set_variable = { + name = agents_added + value = yes + days = 1 + } + every_scheme = { add_to_list = current_schemes_list } + # check if you have to attach a contract to the scheme + # Now start the scheme. + start_scheme = { + type = $SCHEME_TYPE$ + $TARGET_TYPE$ = $TARGET_SCOPE$ + contract = $TASK_CONTRACT$ + } + # And grab the scheme's scope. + random_scheme = { + limit = { + NOT = { is_in_list = current_schemes_list } + } + save_scope_as = new_scheme + } + scope:new_scheme ?= { + # Add our starting agents. + add_agent_slot = $AGENT_1$ + add_agent_slot = $AGENT_2$ + add_agent_slot = $AGENT_3$ + add_agent_slot = $AGENT_4$ + add_agent_slot = $AGENT_5$ + # If we have a custom charge threshold to complete, set that here. + ## Overthrow Regent. + if = { + limit = { scheme_type = overthrow_regent } + set_variable = { + name = custom_charge_threshold + value = 1 + } + } + # Set up our grace period. + set_variable = { + name = secrecy_grace_period + value = secrecy_grace_character_total_starting_value + } + set_variable = { + name = attached_task_contract + value = $TASK_CONTRACT$ + } + } + $TASK_CONTRACT$ = { + set_variable = { + name = attached_scheme + value = scope:new_scheme + } + } + open_view = { + view = intrigue_window + player = scope:new_scheme.scheme_owner + } +} + +begin_scheme_basic_effect = { + # Log our scheme launcher so that we can refer to them down the line. + save_scope_as = scheme_launcher + # Log all the currently on-going schemes. + ## We do it this way being we can't guarantee mutually exclusive targets with non-character scheme targets any more: we can't just look for "X's murder scheme against Y", because X might be plotting against no target whatsoever and have multiple schemes of that type against nothing. + every_scheme = { add_to_list = current_schemes_list } + # Now start the scheme. + start_scheme = { + type = $SCHEME_TYPE$ + $TARGET_TYPE$ = $TARGET_SCOPE$ + } + # And grab the scheme's scope. + random_scheme = { + limit = { + NOT = { is_in_list = current_schemes_list } + } + save_scope_as = new_scheme + } + scope:new_scheme ?= { + # If we have a custom charge threshold to complete, set that here. + ## Sway. + if = { + limit = { scheme_type = sway } + set_variable = { + name = custom_charge_threshold + value = 5 + } + } + } +} + +add_scheme_starting_opportunities_intrigue_effect = { + if = { + limit = { scheme_owner.intrigue >= scheme_starting_opportunities_per_intrigue_threshold_value } + change_opportunities = { + value = scheme_owner.intrigue + subtract = scheme_starting_opportunities_per_intrigue_threshold_value + divide = scheme_starting_opportunities_per_intrigue_increment_value + ceiling = yes + max = 4 + } + } +} + +################################################## +# Scheme Pulse Action Effects + +# How many months should we wait before another pulse action can be queued? +scheme_pulse_action_sort_cooldown_effect = { + set_variable = { + name = scheme_pulse_action_on_cooldown + value = yes + months = 8 + } +} + +################################################## +# Countermeasure Effects + +inform_player_of_relevant_countermeasure_activated_effect = { + every_player = { + limit = { + any_scheme = { + scheme_target_character ?= root + has_variable = apply_countermeasures + } + } + send_interface_message = { + type = msg_countermeasure_change + title = countermeasures.t.target_changes + desc = countermeasures.desc.$COUNTERMEASURE$ + right_icon = root + } + } +} + +dispute_borders_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.8001 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +subsume_province_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.8011 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} + +raid_estate_opinion_effect = { + $TARGET$ = { save_temporary_scope_as = target_temp } + $OWNER$ = { save_temporary_scope_as = owner_temp } + scope:target_temp.house.house_head ?= { + # OPINION + add_opinion = { + target = scope:owner_temp + modifier = raided_estate_crime + } + # FEUD + if = { + limit = { has_relation_rival = scope:owner_temp } + if = { + limit = { valid_for_feud_events_with_target_trigger = { TARGET = scope:owner_temp } } + house_feud_start_effect = { + # Feuding House Head + ACTOR = scope:target_temp + # Target House Head + TARGET = scope:owner_temp + # Feud Reason + REASON = raid_estate + # House Member attacker if relevant + ATTACKER = scope:target_temp + # House Member victim if relevant + VICTIM = scope:owner_temp + } + } + } + # RELATION + progress_towards_rival_effect = { + REASON = rival_raid_estate + CHARACTER = scope:owner_temp + OPINION = 0 + } + } + # VICTIM OPINION + every_in_list = { + list = target_victims + if = { + limit = { exists = scope:scheme_maim } + add_opinion = { + target = scope:owner_temp + modifier = raid_estate_maimed_opinion + } + } + } + scope:target_temp.house = { + # HOUSE RELATION + change_house_relation_effect = { + HOUSE = scope:owner_temp.house + VALUE = house_relation_damage_major_value + REASON = raided_estate + CHAR = scope:owner_temp + TARGET_CHAR = scope:target_temp + TITLE = scope:dummy_gender + } + # OTHER MEMBER OPINION + every_house_member = { + custom = every_other_raid_estate_house_member_tt + limit = { + NOR = { + this = scope:target_temp + is_in_list = target_victims + } + } + add_opinion = { + target = scope:owner_temp + modifier = raid_estate_house_opinion + } + } + } + # CRIME + scope:owner_temp.top_liege ?= { + if = { + limit = { + this != scope:owner_temp + this != scope:target_temp + NOT = { scope:owner_temp.var:raid_estate_permission ?= scope:target_temp.house } + } + add_opinion = { + target = scope:owner_temp + modifier = raid_estate_vassal_crime + } + } + } +} + +education_5_scheme_progress_effect = { + if = { + limit = { + scope:actor = { has_trait = education_$SKILL$_5 } + } + scope:new_scheme ?= { + add_scheme_progress = { + value = scheme_progress_gain + multiply = 3 + } + } + } +} + +steal_herd_success_effect = { + if = { + limit = { + scope:target = { + exists = domicile + domicile.herd > 0 + } + } + scope:target = { + if = { + limit = { + scope:owner = { + OR = { + is_vassal_of = scope:target + is_liege_or_above_of = scope:target + } + } + } + add_opinion = { + target = scope:owner + modifier = stole_my_herd_crime + } + } + else = { + add_opinion = { + target = scope:owner + modifier = stole_my_herd + } + } + if = { + limit = { + is_independent_ruler = no + liege = { + NOT = { is_liege_or_above_of = scope:owner } + } + } + liege = { + add_opinion = { + target = scope:owner + modifier = stole_vassals_herd + } + } + } + custom_tooltip = { + text = steal_herd_vassal_tt + every_powerful_vassal = { + limit = { + NOR = { + this = scope:target + this = scope:owner + } + } + add_opinion = { + target = scope:owner + modifier = stole_lieges_herd + } + } + } + } + scope:owner = { + if = { + limit = { + scope:scheme = { exists = var:steal_herd_low } + } + if = { + limit = { + has_character_flag = steal_herd_extra + } + scope:target = { + pay_herd = { + target = scope:owner + value = { + value = domicile.ten_percent_current_herd_value + max = scope:owner.domicile.fifty_percent_current_herd_value + } + } + } + } + else = { + scope:target = { + pay_herd = { + target = scope:owner + value = { + value = domicile.five_percent_current_herd_value + max = scope:owner.domicile.fifty_percent_current_herd_value + } + } + } + } + } + else_if = { + limit = { + scope:scheme = { exists = var:steal_herd_normal } + } + if = { + limit = { + has_character_flag = steal_herd_extra + } + scope:target = { + pay_herd = { + target = scope:owner + value = { + value = domicile.fifteen_percent_current_herd_value + max = scope:owner.domicile.fifty_percent_current_herd_value + } + } + } + } + else = { + scope:target = { + pay_herd = { + target = scope:owner + value = { + value = domicile.ten_percent_current_herd_value + max = scope:owner.domicile.fifty_percent_current_herd_value + } + } + } + } + } + else_if = { + limit = { + scope:scheme = { exists = var:steal_herd_high } + } + if = { + limit = { + has_character_flag = steal_herd_extra + } + scope:target = { + pay_herd = { + target = scope:owner + value = { + value = domicile.twenty_percent_current_herd_value + max = scope:owner.domicile.fifty_percent_current_herd_value + } + } + } + } + else = { + scope:target = { + pay_herd = { + target = scope:owner + value = { + value = domicile.fifteen_percent_current_herd_value + max = scope:owner.domicile.fifty_percent_current_herd_value + } + } + } + } + } + } + } + + scope:owner = { + if = { + limit = { + has_character_flag = steal_herd_money + } + scope:target = { + pay_short_term_gold = { + target = scope:owner + gold = medium_gold_value + } + } + remove_character_flag = steal_herd_money + } + + if = { + limit = { + has_character_flag = steal_herd_extra + } + remove_character_flag = steal_herd_extra + } + } +} + +steal_herd_failure_effect = { + #Add Watchful Modifier to the target + scope:target = { + add_character_modifier = { + modifier = watchful_modifier + days = watchful_modifier_duration + } + + add_opinion = { + target = scope:owner + modifier = attempted_to_steal_herd_crime + } + } + #Lose some prestige + scope:owner = { + add_prestige = minor_prestige_loss + } +} + +purge_ai_scheme_slots_effect = { + scope:scheme = { + if = { + limit = { + any_scheme_agent_slot = { + is_filled = no + } + } + every_scheme_agent_slot = { + limit = { + is_filled = no + } + save_scope_as = slot_purge + prev = { remove_agent_slot = scope:slot_purge } + } + } + } +} + +coup_ceremonial_liege_scheme_prep_effect = { + save_scope_as = scheme + save_scope_value_as = { + name = follow_up_event + value = event_id:scheme_critical_moments.2921 + } + if = { + limit = { + NOT = { exists = scope:suppress_next_event } + } + scheme_owner = { trigger_event = scheme_critical_moments.0002 } + } +} diff --git a/common/scripted_triggers/10_tgp_triggers.txt b/common/scripted_triggers/10_tgp_triggers.txt index 9a386e68..3222ab37 100644 --- a/common/scripted_triggers/10_tgp_triggers.txt +++ b/common/scripted_triggers/10_tgp_triggers.txt @@ -987,7 +987,7 @@ tgp_has_cultural_naming_in_chinese = { has_cultural_pillar = heritage_hmongic culture_is_or_has_ancestor_trigger = { CULTURE = culture:cham } has_cultural_pillar = heritage_byzantine - culture_is_or_has_ancestor_trigger = { CULTURE = culture:roman } +# culture_is_or_has_ancestor_trigger = { CULTURE = culture:roman } culture_is_or_has_ancestor_trigger = { CULTURE = culture:avar } } } diff --git a/events/activities/coronation_activity/coronation_events_6.txt b/events/activities/coronation_activity/coronation_events_6.txt index 9c846221..ed9c341b 100644 --- a/events/activities/coronation_activity/coronation_events_6.txt +++ b/events/activities/coronation_activity/coronation_events_6.txt @@ -4788,8 +4788,12 @@ coronation_events.6100 = { triggered_desc = { trigger = { scope:activity.var:activity_special_type_progression >= 25 - scope:host.faith.religion = { - this = religion:christianity_religion + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } } scope:host = { OR = { @@ -4810,8 +4814,12 @@ coronation_events.6100 = { triggered_desc = { trigger = { scope:activity.var:activity_special_type_progression >= 25 - scope:host.faith.religion = { - this = religion:christianity_religion + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } } scope:host = { OR = { @@ -4866,8 +4874,12 @@ coronation_events.6100 = { triggered_desc = { trigger = { scope:activity.var:activity_special_type_progression >= 25 - scope:host.faith.religion = { - this = religion:christianity_religion + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } } scope:host = { OR = { @@ -4888,8 +4900,12 @@ coronation_events.6100 = { triggered_desc = { trigger = { scope:activity.var:activity_special_type_progression >= 25 - scope:host.faith.religion = { - this = religion:christianity_religion + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } } scope:host = { OR = { @@ -4920,9 +4936,13 @@ coronation_events.6100 = { } triggered_desc = { trigger = { - scope:host.faith.religion = { - this = religion:christianity_religion - } + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } + } } desc = coronation_events.6100.desc_christian_guest } @@ -4933,9 +4953,13 @@ coronation_events.6100 = { triggered_desc = { trigger = { scope:activity.var:activity_special_type_progression >= 25 - scope:host.faith.religion = { - this = religion:christianity_religion - } + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } + } scope:host = { OR = { AND = { @@ -11654,9 +11678,13 @@ coronation_events.6130 = { } } this = scope:host - scope:host.faith.religion = { - this = religion:christianity_religion - } + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } + } } desc = coronation_events.6130.papal_intro_host } @@ -11668,9 +11696,13 @@ coronation_events.6130 = { option = coronation_type_anointment } } - scope:host.faith.religion = { - this = religion:christianity_religion - } + scope:host = { + OR = { + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:catholic_religion + faith.religion = religion:protestant_religion + } + } } desc = coronation_events.6130.papal_intro_guest } @@ -11679,7 +11711,9 @@ coronation_events.6130 = { this = scope:host scope:host.faith.religion = { OR = { - this = religion:christianity_religion + this = religion:eastern_orthodox_religion + this = religion:catholic_religion + this = religion:protestant_religion this = religion:judaism_religion } } @@ -11691,7 +11725,9 @@ coronation_events.6130 = { this = scope:host scope:host.faith.religion = { OR = { - this = religion:christianity_religion + this = religion:eastern_orthodox_religion + this = religion:catholic_religion + this = religion:protestant_religion this = religion:judaism_religion } } diff --git a/events/activities/pilgrimage_activity/pilgrimage_events.txt b/events/activities/pilgrimage_activity/pilgrimage_events.txt index 7f0ebff9..0c81c723 100644 --- a/events/activities/pilgrimage_activity/pilgrimage_events.txt +++ b/events/activities/pilgrimage_activity/pilgrimage_events.txt @@ -11654,7 +11654,7 @@ pilgrimage.6760 = { limit = { NOR = { faith = faith:orthodox - religion = religion:catholic_religion + faith.religion = religion:catholic_religion } faith.religion ?= religion:christianity_religion } diff --git a/events/decisions_events/roman_restoration_events.txt b/events/decisions_events/roman_restoration_events.txt index 8cda547a..fa572332 100644 --- a/events/decisions_events/roman_restoration_events.txt +++ b/events/decisions_events/roman_restoration_events.txt @@ -97,7 +97,7 @@ roman_restoration.0002 = { triggered_desc = { trigger = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } desc = roman_restoration.0002.desc.hellenics } @@ -126,7 +126,7 @@ roman_restoration.0002 = { trigger = { NAND = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } NOT = { has_title = title:e_hre @@ -138,7 +138,7 @@ roman_restoration.0002 = { trigger = { NAND = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } has_title = title:e_hre } @@ -147,7 +147,7 @@ roman_restoration.0002 = { name = { # Crazy Hellenics trigger = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion NOT = { has_title = title:e_hre } @@ -157,7 +157,7 @@ roman_restoration.0002 = { name = { # Crazy Hellenics HRE trigger = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion has_title = title:e_hre } text = roman_restoration.0002.d @@ -402,7 +402,7 @@ scripted_trigger roman_restoration_0010_is_valid_roman_empire_trigger = { is_ai = no is_roman_emperor_trigger = yes OR = { - faith.religion = faith:catholic.religion # Either Christian + faith.religion = faith:roman_catholic.religion # Either Christian faith.religion = faith:hellenic_pagan.religion # Or Hellenic } } @@ -1012,7 +1012,7 @@ roman_restoration.0024 = { # Christian Roman Empire triggered_desc = { trigger = { - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } desc = roman_restoration.0024.desc.christian } @@ -1027,7 +1027,7 @@ roman_restoration.0024 = { triggered_desc = { trigger = { NOR = { - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion faith.religion = faith:hellenic_pagan.religion } } @@ -2052,7 +2052,7 @@ roman_restoration.0124 = { every_player = { limit = { this != root - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } trigger_event = roman_restoration.0125 # Notification. } @@ -2228,7 +2228,7 @@ roman_restoration.0130 = { limit = { exists = title:k_papal_state.holder } title:k_papal_state.holder = { save_scope_as = scoped_pope } } - faith:catholic = { save_scope_as = catholic } + faith:roman_catholic = { save_scope_as = catholic } destroy_papacy_scripted_effect = yes } @@ -2258,7 +2258,7 @@ roman_restoration.0130 = { limit = { this != root OR = { - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion faith.religion = root.faith.religion } } @@ -2283,7 +2283,7 @@ roman_restoration.0131 = { # Christian Reaction triggered_desc = { trigger = { - root.faith.religion = faith:catholic.religion + root.faith.religion = faith:roman_catholic.religion } desc = roman_restoration.0131.desc.christians } @@ -2291,7 +2291,7 @@ roman_restoration.0131 = { triggered_desc = { trigger = { NOR = { - root.faith.religion = faith:catholic.religion + root.faith.religion = faith:roman_catholic.religion root.faith.religion = scope:scoped_destroyer.faith.religion } } @@ -2338,7 +2338,7 @@ roman_restoration.0131 = { name = { trigger = { NOR = { - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion faith.religion = scope:scoped_destroyer.faith.religion } } @@ -2587,7 +2587,7 @@ roman_restoration.0151 = { trigger = { NOT = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } } desc = roman_restoration.0002.desc.christians @@ -2596,7 +2596,7 @@ roman_restoration.0151 = { triggered_desc = { trigger = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } desc = roman_restoration.0002.desc.hellenics } @@ -2614,7 +2614,7 @@ roman_restoration.0151 = { trigger = { NOT = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } NOR = { has_title = title:e_byzantium @@ -2627,7 +2627,7 @@ roman_restoration.0151 = { trigger = { NOT = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion } OR = { has_title = title:e_byzantium @@ -2639,7 +2639,7 @@ roman_restoration.0151 = { name = roman_restoration.0002.c trigger = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion NOR = { has_title = title:e_byzantium has_title = title:e_hre @@ -2650,7 +2650,7 @@ roman_restoration.0151 = { name = roman_restoration.0002.d trigger = { scope:scoped_emperor = { faith.religion = faith:hellenic_pagan.religion } - faith.religion = faith:catholic.religion + faith.religion = faith:roman_catholic.religion OR = { has_title = title:e_byzantium has_title = title:e_hre diff --git a/events/religion_events/great_holy_war_events.txt b/events/religion_events/great_holy_war_events.txt index f57ce65f..a28009b8 100644 --- a/events/religion_events/great_holy_war_events.txt +++ b/events/religion_events/great_holy_war_events.txt @@ -284,7 +284,7 @@ great_holy_war.0001 = { if = { limit = { has_ep3_dlc_trigger = yes - scope:the_faith = { this = faith:catholic } + scope:the_faith = { this = faith:roman_catholic } ep3_frankokratia_ghw_trigger = yes ep3_frankokratia_financier_exists_trigger = yes } @@ -604,7 +604,7 @@ great_holy_war.0001 = { NOT = { exists = global_var:cath_crusade_1 } - scope:the_faith = { this = faith:catholic } + scope:the_faith = { this = faith:roman_catholic } } set_global_variable = { name = cath_crusade_1 @@ -613,7 +613,7 @@ great_holy_war.0001 = { } else_if = { limit = { - scope:the_faith = { this = faith:catholic } + scope:the_faith = { this = faith:roman_catholic } } change_global_variable = { name = cath_crusade_1 @@ -882,30 +882,40 @@ scripted_trigger great_holy_war_0010_byzantion_reason_trigger = { trigger_if = { # Byzantine Empire limit = { exists = title:e_byzantium.holder } # Make sure a holder exists beforehand title:e_byzantium.holder.religion = { - NOT = { - this = religion:christianity_religion + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion } } } title:c_byzantion.holder.top_liege.religion = { # Constantinople - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_paphlagonia.holder.top_liege.religion = { # Ankyra - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_attica.holder.top_liege.religion = { # Athens - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_korinthos.holder.top_liege.religion = { # Corinth - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } } } @@ -913,29 +923,39 @@ scripted_trigger great_holy_war_0010_byzantion_reason_trigger = { scripted_trigger great_holy_war_0010_europe_reason_trigger = { OR = { title:c_venaissin.holder.top_liege.religion = { # Provence - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_toulouse.holder.top_liege.religion = { # Toulouse - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_ile_de_france.holder.top_liege.religion = { # Paris - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_cologne.holder.top_liege.religion = { # Cologne - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_halberstadt.holder.top_liege.religion = { # Halberstadt - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } } } @@ -949,19 +969,25 @@ scripted_trigger great_holy_war_0010_mecca_reason_trigger = { scripted_trigger great_holy_war_0010_centre_reason_trigger = { OR = { title:c_baghdad.holder.top_liege.religion = { # Baghdad - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_damascus.holder.top_liege.religion = { # Damascus - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_cairo.holder.top_liege.religion = { # Cairo - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } } } @@ -969,19 +995,25 @@ scripted_trigger great_holy_war_0010_centre_reason_trigger = { scripted_trigger great_holy_war_0010_africa_reason_trigger = { OR = { title:c_marrakesh.holder.top_liege.religion = { # Marrakesh - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_tunis.holder.top_liege.religion = { # Tunis - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } title:c_algier.holder.top_liege.religion = { # Algier - NOT = { - this = religion:christianity_religion - } + NOR = { + this = religion:catholic_religion + this = religion:orthodox_religion + this = religion:protestant_religion + } } } } diff --git a/events/travel_events/travel_events_bp3.txt b/events/travel_events/travel_events_bp3.txt index 107b3550..6873efd3 100644 --- a/events/travel_events/travel_events_bp3.txt +++ b/events/travel_events/travel_events_bp3.txt @@ -3649,7 +3649,7 @@ travel_events_bp3.75 = { # Dreams Brewing root.culture = { has_cultural_parameter = allows_brewery } root.faith = { OR = { - this = faith:catholic + this = faith:roman_catholic has_doctrine_parameter = allows_brewery } } @@ -3672,7 +3672,7 @@ travel_events_bp3.75 = { # Dreams Brewing root.faith = { OR = { has_doctrine_parameter = allows_brewery - this = faith:catholic + this = faith:roman_catholic } } } @@ -3702,7 +3702,7 @@ travel_events_bp3.75 = { # Dreams Brewing faith = { OR = { has_doctrine_parameter = allows_brewery - this = faith:catholic + this = faith:roman_catholic } } } @@ -3722,7 +3722,7 @@ travel_events_bp3.75 = { # Dreams Brewing OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } faith = { OR = { - this = faith:catholic + this = faith:roman_catholic has_doctrine_parameter = allows_brewery } } diff --git a/localization/english/replace/culture/zz_NEOW_cultural_flavor_l_english.yml b/localization/english/replace/culture/zz_NEOW_cultural_flavor_l_english.yml new file mode 100644 index 00000000..d3f328b3 --- /dev/null +++ b/localization/english/replace/culture/zz_NEOW_cultural_flavor_l_english.yml @@ -0,0 +1,24 @@ +l_english: + random_entertainment_text_hitchhikers:0 "The Hitchhiker's Guide to the Galaxy" + random_entertainment_text_dune:0 "Dune" + random_entertainment_text_hobbit:0 "The Hobbit" + random_entertainment_text_lotr:0 "The Lord of the Rings" + random_entertainment_text_narnia:0 "The Chronicles of Narnia" + random_entertainment_text_foundation:0 "Foundation" #English + random_entertainment_text_one_hundred_years:"One Hundred Years of Solitude" #Spanish + random_entertainment_text_les_drames:0 "Les Drames de Paris" #French + random_entertainment_text_le_club:0 "Le Club des Valets de Coeur" #French + random_entertainment_text_les_chevaliers:0 "Les Chevaliers du Clair de Lune" #French + random_entertainment_text_the_shell_seekers:0 "The Shell Seekers" #English/German + random_entertainment_text_pillars:0 "The Pillars of the Earth" #English/German + random_entertainment_text_perfume:0 "Perfume: The Story of a Murderer" #German + random_entertainment_text_faceless:0 "Faceless Killers" #Swedish + random_entertainment_text_the_alchemist:0 "The Alchemist" #Portuguese + random_entertainment_text_the_brothers:0 "The Brothers Karamazov" #Russian + random_entertainment_text_one_thousand:0 "One Thousand and One Nights" #Worldwide + random_entertainment_text_nineteen_eighty_four:0 "Nineteen Eighty-Four" #English + random_entertainment_text_the_divine_comedy:0 "The Divine Comedy" #Latin sprachbund + random_entertainment_text_the_odyssey:0 "The Odyssey" #Latin/Greek + random_entertainment_text_war_and_peace:0 "War and Peace" #Latin/Greek + random_entertainment_text_the_pyramid:0 "The Pyramid" #Albanian + From 62b546d13f171f01dfcce9f80a225eb17ee07696 Mon Sep 17 00:00:00 2001 From: Heidesommer Date: Thu, 21 May 2026 01:13:23 -0400 Subject: [PATCH 2/5] More Loc --- .../customizable_localization/00_mottos.txt | 27 +- .../00_regional_custom_localization.txt | 6 + .../regional_custom_loc_l_english.yml | 895 ++++++++++++++++++ .../geographical_region.txt | 49 +- 4 files changed, 925 insertions(+), 52 deletions(-) create mode 100644 localization/english/replace/custom_localization/regional_custom_loc_l_english.yml diff --git a/common/customizable_localization/00_mottos.txt b/common/customizable_localization/00_mottos.txt index 2a6c0c32..c4106340 100644 --- a/common/customizable_localization/00_mottos.txt +++ b/common/customizable_localization/00_mottos.txt @@ -1,14 +1,19 @@ GetAppropriateGodname = { type = character - + text = { trigger = { house.last_house_head.faith = { - OR = { - OR = { religion_tag = eastern_orthodox_religion religion_tag = catholic_religion religion_tag = protestant_religion } - religion_tag = islam_religion - religion_tag = judaism_religion - } + has_doctrine = doctrine_monotheist + } + } + localization_key = motto_god + } + + text = { + trigger = { + house.last_house_head.faith = { + has_doctrine = doctrine_monotheist } } localization_key = motto_god @@ -29,6 +34,7 @@ OR = { religion_tag = dualism_religion religion_tag = zoroastrianism_religion + has_doctrine = doctrine_panthiest } } } @@ -38,14 +44,7 @@ text = { trigger = { house.last_house_head.faith = { - NOR = { - religion_tag = dualism_religion - religion_tag = zoroastrianism_religion - religion_tag = buddhism_religion - OR = { religion_tag = eastern_orthodox_religion religion_tag = catholic_religion religion_tag = protestant_religion } - religion_tag = islam_religion - religion_tag = judaism_religion - } + has_doctrine = doctrine_polytheist } } localization_key = motto_the_gods diff --git a/common/customizable_localization/00_regional_custom_localization.txt b/common/customizable_localization/00_regional_custom_localization.txt index fe0cdcd3..cd748841 100644 --- a/common/customizable_localization/00_regional_custom_localization.txt +++ b/common/customizable_localization/00_regional_custom_localization.txt @@ -4392,6 +4392,12 @@ TerrainInspirationLoc = { } localization_key = TerrainInspirationdrylands } + text = { + trigger = { + terrain = tells + } + localization_key = TerrainInspirationtells + } } GetProvinceTricksterSpirit = { diff --git a/localization/english/replace/custom_localization/regional_custom_loc_l_english.yml b/localization/english/replace/custom_localization/regional_custom_loc_l_english.yml new file mode 100644 index 00000000..305ef02f --- /dev/null +++ b/localization/english/replace/custom_localization/regional_custom_loc_l_english.yml @@ -0,0 +1,895 @@ +l_english: + #MountedWarriorTerm + knight:1 "$knight_culture_player_no_tooltip_lowercase$" + #MountedWarriorTermPlural + knights:2 "$knight_culture_player_plural_no_tooltip_lowercase$" + #MountedWarriorAdjective + knightly:1 "$knight_culture_player_adjective_no_tooltip_lowercase$" + #MartialTournamentAdjective + tournament_jousting:0 "jousting" + tournament_wrestling:0 "wrestling" + tournament_sparring:0 "sparring" + #FortifiedBuilding + castle:0 "castle" + castles:0 "castles" + mansion:1 "palace" + mansions:0 "palaces" + temple:0 "temple" + temples:0 "temples" + office: "office" + office_plural: "offices" + + residence: "residence" + residences: "residences" + yurt_residence: "yurt" + yurt_residence_plural: "yurts" + hall_residence: "hall" + hall_residence_plural: "hall" + #IndefiniteBodyOfWater + body_of_water_a_lake:0 "a lake" + body_of_water_an_oasis:0 "an oasis" + body_of_water_the_ocean:0 "the ocean" + body_of_water_a_river:0 "a river" + body_of_water_a_large_pond:0 "a large pond" + body_of_water_a_lagoon:0 "a lagoon" + body_of_water_a_watering_hole:0 "a watering hole" + #RandomExampleName + random_example_name_default:0 "Ranald" + #TerrainType + terrain_terraced_hills: "terraced hills" + terrain_plains:0 "plains" + terrain_farmlands:0 "farmlands" + terrain_hills:0 "hills" + terrain_mountains:0 "mountains" + terrain_desert:0 "desert" + terrain_oasis:0 "oasis" + terrain_jungle:0 "jungle" + terrain_taiga:0 "taiga" + terrain_wetlands:0 "wetlands" + terrain_steppe:0 "steppe" + terrain_floodplains:0 "floodplains" + terrain_drylands:0 "drylands" + terrain_forest:0 "forest" + terrain_deserts: "sands" + terrain_oases: "oases" + terrain_jungles: "trees" + terrain_forests: "woods" + terrain_taigas: "taigas" + terrain_steppes: "steppes" + #LocalAnimal + animal_hart:0 "hart" + animal_stag:0 "stag" + animal_boar:0 "boar" + animal_wolf:0 "wolf" + animal_fox:0 "fox" + animal_hare:0 "hare" + animal_lion:0 "lion" + animal_tiger:0 "tiger" + animal_bear:0 "bear" + animal_unicorn:0 "unicorn" + animal_dragon:0 "dragon" + animal_lynx:0 "lynx" + #LocalAnimalMultiple + animal_harts:0 "harts" + animal_stags:0 "stags" + animal_boars:0 "boars" + animal_wolfs:1 "wolves" + animal_foxes:0 "foxes" + animal_hares:0 "hares" + animal_lions:0 "lions" + animal_tigers:0 "tigers" + animal_bears:0 "bears" + animal_unicorns:0 "unicorns" + animal_dragons:0 "dragons" + animal_lynxes:0 "lynxes" + #Extra used in mythical_map_creatures + creature_dog_people: "dog-headed men" + creature_basilisks: "basilisks" + creature_giant_serpent: "giant serpents" + creature_horned_men: "horned men" + creature_amazons: "amazons" + creature_headless_men: "headless men" + creature_giants: "giants" + creature_hoved_feeted_men: "hove-feeted men" + creature_giant_crabs: "gigantic crabs" + creature_cyclops: "one-eyed giants" + creature_dog_people_capitalized: "Dog-Headed Men" + creature_basilisks_capitalized: "Basilisks" + creature_giant_serpent_capitalized: "Giant Serpents" + creature_horned_men_capitalized: "Horned men" + creature_amazons_capitalized: "Amazons" + creature_headless_men_capitalized: "Headless Men" + creature_giants_capitalized: "Giants" + creature_hoved_feeted_men_capitalized: "Hove-Feeted Men" + creature_giant_crabs_capitalized: "Gigantic Crabs" + creature_cyclops_capitalized: "One-Eyed Giants" + animal_unicorns_capitalized: "Unicorns" + animal_dragons_capitalized: "Dragons" + #LocalAnimalDesc + animal_flighty_desc:0 "flighty" + animal_proud_desc:0 "proud" + animal_majestic_desc:0 "majestic" + animal_powerful_desc:0 "powerful" + animal_sly_desc:0 "sly" + animal_quick_desc:0 "quick" + animal_swift_desc:0 "swift" + animal_devious_desc:0 "devious" + animal_despised_desc:0 "despised" + animal_loathsome_desc:0 "loathsome" + animal_mystical_desc:0 "mystical" + animal_fabled_desc:0 "fabled" + animal_cunning_desc:0 "cunning" + animal_prancing_desc:0 "prancing" + animal_leaping_desc:0 "leaping" + animal_ferocious_desc:0 "ferocious" + animal_deadly_desc:0 "deadly" + #Abortifacients + abortifacient_pennyroyal:0 "pennyroyal" + abortifacient_catmint:0 "catmint" + abortifacient_thymbra:0 "thymbra" + abortifacient_broadleaf_sage:0 "broadleaf sage" + abortifacient_soapwort:0 "soapwort" + abortifacient_galingales:0 "galingales" + abortifacient_bishops_lace:0 "bishop's lace" + abortifacient_wild_carrot:0 "wild carrot" + abortifacient_bitter_melon:0 "bitter melon" + abortifacient_nutmeg:0 "nutmeg" + abortifacient_saffron:0 "saffron" + abortifacient_vervain:0 "vervain" + abortifacient_herb_of_grace:0 "herb-of-grace" + abortifacient_rue:0 "rue" + abortifacient_tansy:0 "tansy" + abortifacient_ergot:0 "ergot" + #Venomous Creatures + venomous_creature_spider:0 "spider" + venomous_creature_scorpion:0 "scorpion" + venomous_creature_thing:0 "...thing" + venomous_creature_rare_spider:0 "deadly spider" + venomous_creature_deathstalker:0 "deathstalker" + venomous_creature_red_scorpion:0 "red scorpion" + venomous_creature_fat_tail:0 "fat-tail scorpion" + venomous_creature_mamba:0 "mamba" + venomous_creature_daboia:0 "daboia" + venomous_creature_king_cobra:0 "king cobra" + venomous_creature_saw_scale:0 "saw-scale viper" + venomous_creature_boomslang:0 "boomslang" + venomous_creature_krait:0 "krait snake" + venomous_creature_viper:0 "viper" + venomous_creature_snake:0 "snake" + venomous_creature_beaked_mammal:0 "strange, duck-billed mammal" + venomous_creature_sting:0 "sting" + venomous_creature_stings:0 "stings" + venomous_creature_bite:0 "bite" + venomous_creature_bites:0 "bites" + venomous_creature_scutter:0 "scutter" + venomous_creature_slither:0 "slither" + venomous_creature_scamper:0 "scamper" + + #Venomous Creature Type Plural + venomous_creature_snake_plural:0 "snakes" + venomous_creature_spider_plural:0 "spiders" + venomous_creature_scorpion_plural:0 "scorpions" + venomous_creature_thing_plural:0 "things like that" + #Random religious texts + random_religious_text_golden_legend: "the Golden Legend" + random_religious_text_city_of_god: "the City of God" + random_religious_text_summa_theologica:0 "the Summa Theologica" + random_religious_text_sic_et_non: "the Sic et Non" + random_religious_text_the_small_book_on_theism:0 "the Small Book on Theism" + random_religious_text_modern_philosophy:0 "Modern Philosophy" + random_religious_text_stories_from_holy_book:0 "stories from the holy book" + random_religious_text_symeon_menologion: "the Symeon's Menologion" + random_religious_text_chrysostomos: "the Chrysostomos' Homilies" + random_religious_text_god_and_christ: "On God and Christ" + + #Random Entertainment texts + random_entertainment_text_beowulf:0 "Beowulf" + random_entertainment_text_niebelungenlied:0 "Niebelungenlied" + random_entertainment_text_song_of_roland:0 "the Song of Roland" + random_entertainment_text_mabinogi:0 "the Mabinogi" + random_entertainment_text_travels_to_jerusalem:0 "Travels to Jerusalem" + random_entertainment_text_east_of_indus:0 "East of Indus" + random_entertainment_text_travels_to_byzantium:0 "Travels to Byzantium" + random_entertainment_text_digenes_akrites:0 "Digenes Akrites" + random_entertainment_text_riddle_poems:0 "Riddle Poems" + random_entertainment_text_epigrams: "Epigrammatic Poetry" + random_entertainment_text_philogelos: "the Philogelos" + + #Random Informative Texts + random_informative_text_on_the_judgement_of_the_stars:0 "On the Judgement of the Stars" + random_informative_text_the_perfect_state:0 "The Perfect State" + random_informative_text_spiritual_medicine:0 "Spiritual Medicine" + random_informative_text_trotula:0 "the Trotula" + random_informative_text_the_improvement_of_the_moral_qualities:0 "the Improvement of the Moral Qualities" + random_informative_text_armes_prydein:0 "the Armes Prydein" + random_informative_text_almagest:0 "the Almagest" + random_informative_text_anekdota: "the Anekdota" + random_informative_text_chronographia: "the Chronographia" + + #Musical Performer + music_performer_troubadour:0 "troubadour" + + #Musical Perfromer Possessive + music_performer_troubadour_possessive:0 "troubadour's" + + #Regional drink + wine:0 "wine" + mead:0 "mead" + palm_wine:0 "palm wine" + slivovitz:0 "slivovitz" + byzantine_cypriot:0 "Cypriot Commandaria" + byzantine_cypriots: "Cypriot Commandaria wines" + shiraz_white:0 "Shiraz white" + prunelle_liquer:0 "Prunelle Liqueur" + sack_wine:0 "sack wine" + tharra:0 "tharra" + arrack:0 "arrack" + tea:0 "tea" + soma:0 "soma" + macedonian_wine: "Macedonian wine" + macedonian_wines: "Macedonian wines" + cretan_muscat: "Cretan Muscat" + cretan_muscats: "Cretan Muscats" + rumney: "Rumney" + rumneys: "Rumney wines" + malvasia: "Malvasia" + malvasias: "Malvasia wines" + retsina: "Retsina" + retsinas: "Retsina wines" + rice_wine: "rice wine" + lychee_wine: "lychee wine" + millet_wine: "millet wine" + sorghum_wine: "sorghum wine" + plum_wine: "plum wine" + huangjiu: "huangjiu" + sake: "sake" + toddy: "toddy" + tuba: "tuba" + koumiss: "koumiss" + + + #Game + deck_of_cards:0 "deck of cards" + pachisi_board:0 "pachisi board" + chess_set:0 "chess set" + + #Levies + levies_men:0 "men" + levies_women:0 "women" + levies_people:0 "people" + + #OutdoorsHidingPlace + trees:0 "trees" + rocks:0 "rocks" + rock:0 "rock" + + #ObjectToClimb + sand_dune:0 "sand dune" + boulder:0 "boulder" + tree:0 "tree" + + #Curses (should not be translated, but remain the same in every language of the game) + curse_helvete:0 "helvete" + curse_helvetes_javla_skit:0 "helvetes jävla skit" + curse_skit:0 "skit" + curse_balders_balle:0 "Balders balle" + curse_fy_fanden:0 "fy fanden" + curse_haestkuk:0 "hæstkuk" + curse_pokker:0 "pokker" + curse_scheisse:0 "scheiße" + curse_dreck:0 "dreck" + curse_verdammt:0 "verdammt" + curse_gottverdammt:0 "gottverdammt" + curse_zum_teufel:0 "zum Teufel" + curse_himmel_arsch_und_zwirn:0 "Himmel, Arsch und Zwirn" + curse_kreuzdonnerwetter:0 "Kreuzdonnerwetter" + curse_zur_holle:0 "zur Hölle" + curse_was_fur_ein_mist:0 "was für ein Mist" + curse_was_fur_ein_dreck:0 "was für ein Dreck" + curse_godver:0 "godver" + curse_godverdomme:0 "godverdomme" + curse_tering:0 "tering" + curse_godgloeiende:0 "godgloeiende" + curse_kanker:0 "kanker" + curse_niech_mnie_diabli:0 "niech mnie diabli" + curse_zaraza:0 "zaraza" + curse_merde:0 "merde" + curse_putain:0 "putain" + curse_fils_de_pute:0 "fils de pute" + curse_alahue:0 "ålahue" + curse_jevla_mog:0 "jevla mög" + curse_sacrebleu:0 "sacrebleu" + curse_maldicion:0 "maldición" + curse_maldita_sea:0 "maldita sea" + curse_mierda:0 "mierda" + curse_habrase_visto:0 "habrase visto" + curse_madre_mia:0 "madre mía" + curse_ay_de_mi:0 "ay de mí" + curse_nom_dune_pipe:0 "nom d'une pipe" + curse_ostie_de_criss_de_tabarnak:0 "ostie de criss de tabarna" + curse_calisse:0 "calisse" + curse_morbleu:0 "morbleu" + curse_diantre:0 "diantre" + curse_peste:0 "peste" + curse_mortecouille:0 "mortecouille" + curse_ventre_dieu:0 "ventre-dieu" + curse_puterelle:0 "puterelle" + curse_proklyatie:0 "proklyatie" + curse_dyavol:0 "dyavol" + curse_vot_dermo:0 "vot dermo" + curse_vervloekt:0 "vervloekt" + curse_rupus_miltai:0 "rupūs miltai" + curse_velniai_rautu:0 "velniai rautų" + curse_rupuze:0 "rupūžė" + curse_skitr:0 "skitr" + curse_cazzo:0 "cazzo" + curse_minchia:0 "minchia" + curse_merda:0 "merda" + curse_vaffanculo:0 "vaffanculo" + curse_fu_gu: "fu gu" + curse_yanwang_suoming: "yán wáng suo mìng" + curse_lai_hama: "lài háma" + #Curses (fallbacks/religious, should be translated) + curse_curses:0 "curses" + curse_shit:0 "shit" + curse_by_the_blood:0 "by the blood" + curse_gods_wounds:0 "[ROOT.Char.GetFaith.HighGodNamePossessive] wounds" + curse_by_gods_nails:0 "by [ROOT.Char.GetFaith.HighGodNamePossessive] nails" + #GetOldBook + old_book_greek:0 "Slavic Bible" + old_book_abrahamic:0 "Greek Bible" + old_book_pagan:0 "Latin poetry book" + old_book_eastern:0 "Greek historiography" + old_book_general:0 "book of poetry in an old script" + #get_region_dog_type + dog_type_talbot:0 "talbot" + dog_type_corgi:0 "corgi" + dog_type_rache:0 "rache" + dog_type_spitz:0 "spitz" + dog_type_bullenbeisser:0 "bullenbeisser" + dog_type_chiengris:0 "chien-gris" + dog_type_molossian:0 "molossian" + dog_type_mastiff:0 "mastiff" + dog_type_vallhund:0 "vallhund" + dog_type_limer:0 "limer" + dog_type_alaunt:0 "alaunt" + dog_type_laika:0 "laika" + dog_type_basenji:0 "basenji" + dog_type_canaan:0 "canaan" + dog_type_saluki:0 "saluki" + dog_type_tazi:0 "tazi" + dog_type_desi:0 "desi" + dog_type_chow_chow: "chow chow" + dog_type_hokkaido: "hokkaido" + dog_type_jindo: "jindo" + dog_type_asong_gubat: "asong gubat" + dog_type_telomian: "telomian" + dog_type_kinta: "kinta" + dog_type_shar_pei: "shar pei" + dog_type_tibetan_mastiff: "tibetan mastiff" + dog_type_shikoku: "shikoku" + dog_type_akita: "akita" + dog_type_lion_dog:0 "lion dog" + dog_type_hound:0 "sighthound" + #get_region_flower_type + flower_type_hibiscus:0 "hibiscus" + flower_type_gardenia:0 "gardenia" + flower_type_lotus:0 "lotus" + flower_type_chrysanthemum:0 "chrysanthemum" + flower_type_jasmine:0 "jasmine" + flower_type_delphinium:0 "delphinium" + flower_type_violet:0 "violet" + flower_type_peony:0 "peony" + flower_type_lavender:0 "lavender" + flower_type_lily:0 "lily" + flower_type_geranium:0 "geranium" + flower_type_iris:0 "iris" + flower_type_foxglove:0 "foxglove" + flower_type_carnation:0 "carnation" + flower_type_snapdragon:0 "snapdragon" + flower_type_narcissus:0 "narcissus" + flower_type_crocus:0 "crocus" + flower_type_tulip:0 "tulip" + flower_type_poppy:0 "poppy" + flower_type_rose:0 "rose" + flower_type_orchid:0 "orchid" + flower_type_aster:0 "aster" + flower_type_camellia: "camellia" + flower_type_chinese_primrose: "primrose" + flower_type_plum_blossom: "plum blossom" + flower_type_cherry_blossom: "cherry blossom" + flower_type_japanese_iridaceae: "iridaceae" + flower_type_korean_bellflower: "bellflower" + flower_type_korean_rhododendron: "rhododendron" + flower_type_hokkaido_alpine: "hokkaido alpine flower" + flower_type_tropical_rafflesia: "rafflesia" + flower_type_nepenthes_pitcher: "pitcher" + flower_type_jade_vine: "jade vine" + flower_type_medinilla: "medinilla" + flower_type_tiger_orchid: "tiger orchid" + flower_type_telipogon: "telipogon" + flower_type_bali_orchid: "bali orchid" + flower_type_weigela: "weigela" + #get_region_flower_type_plural + flower_type_hibiscus_plural:0 "hibiscuses" + flower_type_gardenia_plural:0 "gardenias" + flower_type_lotus_plural:0 "lotuses" + flower_type_chrysanthemum_plural:0 "chrysanthemums" + flower_type_delphinium_plural:0 "delphiniums" + flower_type_violet_plural:0 "violets" + flower_type_peony_plural:0 "peonies" + flower_type_lily_plural:0 "lilies" + flower_type_geranium_plural:0 "geraniums" + flower_type_iris_plural:0 "irises" + flower_type_foxglove_plural:0 "foxgloves" + flower_type_carnation_plural:0 "carnations" + flower_type_snapdragon_plural:0 "snapdragons" + flower_type_narcissus_plural:0 "narcissuses" + flower_type_crocus_plural:0 "crocuses" + flower_type_tulip_plural:0 "tulips" + flower_type_poppy_plural:0 "poppies" + flower_type_rose_plural:0 "roses" + flower_type_orchid_plural:0 "orchids" + flower_type_aster_plural:0 "asters" + flower_type_camellia_plural: "camellias" + flower_type_chinese_primrose_plural: "primroses" + flower_type_plum_blossom_plural: "plum blossoms" + flower_type_cherry_blossom_plural: "cherry blossoms" + flower_type_japanese_iridaceae_plural: "iridaceae" + flower_type_korean_bellflower_plural: "bellflowers" + flower_type_korean_rhododendron_plural: "rhododendrons" + flower_type_hokkaido_alpine_plural: "hokkaido alpine flowers" + flower_type_tropical_rafflesia_plural: "rafflesias" + flower_type_nepenthes_pitcher_plural: "pitchers" + flower_type_jade_vine_plural: "jade vines" + flower_type_medinilla_plural: "medinillas" + flower_type_tiger_orchid_plural: "tiger orchids" + flower_type_telipogon_plural: "telipogons" + flower_type_bali_orchid_plural: "bali orchids" + flower_type_weigela_plural: "weigelas" + flower_type_lavender_plural: "lavenders" + flower_type_jasmine_plural: "jasmines" + kasbah:0 "kasbah" + durga:0 "durga" + kastron:0 "[Glossary( 'kástron', 'KASTRON_GLOSS' )]" + KASTRON_GLOSS: "Originally referring to a fortress or citadel, the #bold kástron#! came to signify the Byzantine city as a whole." + stronghold:0 "stronghold" + compound: "compound" + #Mythical Horned Creatures + horned_mythical_creature_tarasque:0 "tarasque" + horned_mythical_creature_indrik:0 "indrik" + horned_mythical_creature_ophiotaurus:0 "ophiotaur" + horned_mythical_creature_monocerus:0 "monocer" + horned_mythical_creature_centicore:0 "centicore" + horned_mythical_creature_erchitu:0 "erchitu" + horned_mythical_creature_hadhayosh:0 "hadhayosh" + horned_mythical_creature_bulgu:0 "bulgu" + horned_mythical_creature_catoblepas:0 "catoblepas" + horned_mythical_creature_keewakw:0 "kee-wakw" + #Regional Mythical Creatures + #Britannia + mythical_creature_britannia_water_leper:0 "Water Leper" + mythical_creature_britannia_fomorian:0 "Fomorian" + mythical_creature_britannia_fachan:0 "Fachan" + #West Europe + mythical_creature_west_europe_cockatrice:0 "Cockatrice" + mythical_creature_west_europe_lou_carcolh:0 "Lou Carcolh" + mythical_creature_west_europe_myrmecoleon:0 "Myrmecoleon" + #North Europe + mythical_creature_north_europe_antero_vipunen:0 "Antero Vipunen" + mythical_creature_north_europe_tjelvar:0 "Tjelvar" + mythical_creature_north_europe_fin:0 "Fin" + ##Gotland + mythical_creature_north_europe_bysn: "Bysn" + mythical_creature_north_europe_disma: "Di Sma Undar Jårdi" + #South Europe + mythical_creature_south_europe_basilisk:0 "Basilisk" + mythical_creature_south_europe_lhombri:0 "L'hombri" + mythical_creature_south_europe_argus_panoptes:0 "Argus Panoptes" + #East Europe + mythical_creature_east_europe_baba_yaga:0 "Baba Yaga" + mythical_creature_east_europe_psoglav:0 "Psoglav" + mythical_creature_east_europe_sirin:0 "Sirin" + #West Africa + mythical_creature_west_africa_mami_wata:0 "Mami Wata" + mythical_creature_west_africa_dodo:0 "Dodo" + mythical_creature_west_africa_utelif:0 "Utelif" + #East Africa + mythical_creature_east_africa_liqimsa:0 "Liqimsa" + mythical_creature_east_africa_bulgu:0 "Bulgu" + mythical_creature_east_africa_opimachus:0 "Opimachus" + #Middle East + mythical_creature_middle_east_manticore:0 "Manticore" + mythical_creature_middle_east_behemoth:0 "Behemoth" + mythical_creature_middle_east_humbaba:0 "Humbaba" + #India + mythical_creature_india_makara:0 "Makara" + mythical_creature_india_yali:0 "Yali" + mythical_creature_india_rakshasha:0 "Rakshasha" + #East Asia + mythical_creature_east_asia_manaul: "Manaul" + mythical_creature_east_asia_bashee:0 "Bashee" + mythical_creature_east_asia_camphruch:0 "Camphruch" + mythical_creature_east_asia_qilin: "Qilin" + mythical_creature_east_asia_tengu: "Tengu" + mythical_creature_east_asia_naga: "Nāga" + #West Steppe + mythical_creature_west_steppe_aptah_baga: "Aptah-Baga" + mythical_creature_west_steppe_xullykuns: "Xullykuns" + mythical_creature_west_steppe_zilant: "Zilant" + #East Steppe + mythical_creature_east_steppe_yelbeghen: "Yelbeghen" + mythical_creature_east_steppe_tepegoz: "Tepegöz" + mythical_creature_east_steppe_archura: "Archura" + #Other/Fallback + mythical_creature_other_cipactli:0 "Cipactli" + mythical_creature_other_dragon:0 "Dragon" + #Lowercase + #Britannia + mythical_creature_britannia_water_leper_lower:0 "water leper" + mythical_creature_britannia_fomorian_lower:0 "fomorian" + mythical_creature_britannia_fachan_lower:0 "fachan" + #West Europe + mythical_creature_west_europe_cockatrice_lower:0 "cockatrice" + mythical_creature_west_europe_lou_carcolh_lower:0 "lou carcolh" + mythical_creature_west_europe_myrmecoleon_lower:0 "myrmecoleon" + #North Europe + mythical_creature_north_europe_giant_lower:0 "giant" + ##Gotland + mythical_creature_north_europe_bysn_lower: "bysn" + mythical_creature_north_europe_disma_lower: "goblins" + #South Europe + mythical_creature_south_europe_basilisk_lower:0 "basilisk" + mythical_creature_south_europe_lhombri_lower:0 "l'hombri" + mythical_creature_south_europe_argus_panoptes_lower:0 "argus panoptes" + #East Europe + mythical_creature_east_europe_baba_yaga_lower:0 "baba yaga" + mythical_creature_east_europe_psoglav_lower:0 "psoglav" + mythical_creature_east_europe_sirin_lower:0 "sirin" + #West Africa + mythical_creature_west_africa_mami_wata_lower:0 "mami wata" + mythical_creature_west_africa_dodo_lower:0 "dodo" + mythical_creature_west_africa_utelif_lower:0 "utelif" + #East Africa + mythical_creature_east_africa_liqimsa_lower:0 "liqimsa" + mythical_creature_east_africa_bulgu_lower:0 "bulgu" + mythical_creature_east_africa_opimachus_lower:0 "opimachus" + #Middle East + mythical_creature_middle_east_manticore_lower:0 "manticore" + mythical_creature_middle_east_behemoth_lower:0 "behemoth" + mythical_creature_middle_east_humbaba_lower:0 "humbaba" + #India + mythical_creature_india_makara_lower:0 "makara" + mythical_creature_india_yali_lower:0 "yali" + mythical_creature_india_rakshasha_lower:0 "rakshasha" + #East Asia + mythical_creature_east_asia_manaul_lower:0 "manaul" + mythical_creature_east_asia_bashee_lower:0 "bashee" + mythical_creature_east_asia_camphruch_lower:0 "camphruch" + mythical_creature_east_asia_qilin_lower: "qilin" + mythical_creature_east_asia_tengu_lower: "tengu" + mythical_creature_east_asia_naga_lower: "nāga" + #West Steppe + mythical_creature_west_steppe_aptah_baga_lower: "aptah-baga" + mythical_creature_west_steppe_xullykuns_lower: "xullykuns" + mythical_creature_west_steppe_zilant_lower: "zilant" + #East Steppe + mythical_creature_east_steppe_yelbeghen_lower: "yelbeghen" + mythical_creature_east_steppe_tepegoz_lower: "$mythical_creature_north_europe_giant_lower$" + mythical_creature_east_steppe_archura_lower: "archura" + #Other/Fallback + mythical_creature_other_cipactli_lower:0 "cipactli" + mythical_creature_other_dragon_lower:0 "dragon" + #Root vegetables + root_vegetable_onion:0 "onion" + root_vegetable_okra:0 "okra" + root_vegetable_carrot:0 "carrot" + root_vegetable_parsnip:0 "parsnip" + root_vegetable_turnip:0 "turnip" + root_vegetable_yam:0 "yam" + root_vegetable_kokoro:0 "kokoro" + root_vegetable_ginger:0 "ginger" + root_vegetable_taro:0 "taro" + root_vegetable_daikon_radish: "daikon radish" + root_vegetable_lotus_root: "lotus root" + root_vegetable_burdock_root: "burdock root" + root_vegetable_arrowroot: "arrowroot" + root_vegetable_onion_plural:0 "onions" + root_vegetable_okra_plural:0 "okras" + root_vegetable_carrot_plural:0 "carrots" + root_vegetable_parsnip_plural:0 "parsnips" + root_vegetable_turnip_plural:0 "turnips" + root_vegetable_yam_plural:0 "yams" + root_vegetable_kokoro_plural:0 "kokoros" + root_vegetable_ginger_plural:0 "ginger" + root_vegetable_taro_plural:0 "taro" + root_vegetable_daikon_radish_plural: "daikon radishes" + root_vegetable_lotus_root_plural: "lotus roots" + root_vegetable_burdock_root_plural: "burdock roots" + root_vegetable_arrowroot_plural: "arrowroots" +#RegionalFerociousAnimal + regional_ferocious_animal_bear:0 "bear" + regional_ferocious_animal_wolf:0 "wolf" + regional_ferocious_animal_boar:0 "boar" + regional_ferocious_animal_tiger:0 "tiger" + regional_ferocious_animal_leopard:0 "leopard" + regional_ferocious_animal_lion:0 "lion" + regional_ferocious_animal_gorilla:0 "gorilla" + regional_ferocious_animal_shape:0 "shape" + #RegionalEdibleAnimal + regional_edible_animal_hart:0 "hart" + regional_edible_animal_chicken:0 "chicken" + regional_edible_animal_hare:0 "hare" + regional_edible_animal_lamb:0 "lamb" + regional_edible_animal_pig:0 "pig" + regional_edible_animal_ox:0 "ox" + regional_edible_animal_boar:0 "boar" + regional_edible_animal_gazelle:0 "gazelle" + regional_edible_animal_goat: "goat" + regional_edible_animal_duck: "duck" + regional_edible_animal_marmot: "marmot" + regional_edible_animal_sarus_crane: "sarus crane" + regional_edible_animal_pangolin: "pangolin" + regional_edible_animal_sika_deer: "sika deer" + regional_edible_animal_softshell_turtle: "softshell turtle" + regional_edible_animal_hart_plural: "harts" + regional_edible_animal_chicken_plural: "chickens" + regional_edible_animal_hare_plural: "hares" + regional_edible_animal_lamb_plural: "lambs" + regional_edible_animal_pig_plural: "pigs" + regional_edible_animal_ox_plural: "oxen" + regional_edible_animal_boar_plural: "boars" + regional_edible_animal_gazelle_plural: "gazelles" + regional_edible_animal_goat_plural: "goats" + regional_edible_animal_marmot_plural: "marmots" + regional_edible_animal_sarus_crane_plural: "sarus cranes" + regional_edible_animal_pangolin_plural: "pangolins" + regional_edible_animal_softshell_turtle_plural: "softshell turtles" + #RegionalEdibleMeat + regional_edible_meat_venison:0 "venison" + regional_edible_meat_chicken:0 "chicken" + regional_edible_meat_hare:0 "hare" + regional_edible_meat_lamb:0 "lamb" + regional_edible_meat_beef:0 "beef" + regional_edible_meat_pork:0 "pork" + regional_edible_meat_goat: "goat" + regional_edible_meat_duck: "duck" + regional_edible_meat_marmot: "marmot" + regional_edible_meat_crane: "crane" + regional_edible_meat_pangolin: "pangolin" + regional_edible_meat_turtle: "turtle" + #GetRandomRegionalSmallGame + animal_squirrel:0 "squirrel" + animal_squirrel_plural: "squirrels" + animal_otter:0 "otter" + animal_otter_plural: "otters" + animal_vole:0 "vole" + animal_vole_plural: "voles" + animal_beaver:0 "beaver" + animal_beaver_plural: "beavers" + animal_ferret:0 "ferret" + animal_ferret_plural: "ferrets" + animal_ermine:0 "ermine" + animal_ermine_plural: "ermines" + animal_badger:0 "badger" + animal_badger_plural: "badgers" + animal_rabbit:0 "rabbit" + animal_rabbit_plural: "rabbits" + animal_mole:0 "mole" + animal_mole_plural: "moles" + animal_snake:0 "snake" + animal_snake_plural: "snakes" + animal_lizard:0 "lizard" + animal_lizard_plural: "lizards" + animal_gerbil:0 "gerbil" + animal_gerbil_plural: "gerbils" + animal_marmot: "marmot" + animal_marmot_plural: "marmots" + #Landless + camp: "camp" + camp_plural: "camps" + estate: "estate" + estate_plural: "estates" + court: "court" + tent: "tent" + tent_plural: "tents" + room: "room" + room_plural: "rooms" + courtier_plural: "courtiers" + courtier: "courtier" + follower_male: "follower" + follower_female: "follower" + follower_plural: "followers" + follower: "follower" + subject: "subject" + subject_plural: "subjects" + vassal: "vassal" + vassal_plural: "vassals" + encampment: "encampment" + encampments: "encampments" + chamber: "chamber" + chamber_plural: "chambers" + dungeon_plural: "dungeons" + stockade: "stockade" + stockade_plural: "stockades" + STOCKADE_CONCEPT: "[stockade|E]" + STOCKADE_CONCEPT_plural: "[stockades|E]" + DUNGEON_CONCEPT_plural: "[dungeons|E]" + realm: "realm" + officer: "officer" + officer_plural: "officers" + court_position: "$game_concept_court_position$" + court_position_plural: "$game_concept_court_positions$" + door: "door" + door_plural: "doors" + tent_flap: "tent-flap" + tent_flap_plural: "tent-flaps" + + courtyard_location: "courtyard" + court_owner_liege: "liege" + court_owner_adventurer: "leader" + + #Fish + + #Ocean Fish + fish_mackerel: "mackerel" + fish_sea-bream: "sea-bream" + fish_cod: "cod" + fish_sturgeon: "sturgeon" + fish_pollock: "pollock" + fish_bass: "bass" + fish_red_snapper: "red snapper" + fish_trout: "trout" + fish_scamp: "scamp" + fish_tuna: "tuna" + fish_whitefish: "whitefish" + fish_nemo: "nemo" + fish_ling: "ling" + + #North Atlantic Fish + fish_salmon: "salmon" + fish_eel: "eel" + fish_smelt: "smelt" + fish_plaice: "plaice" + fish_flounder: "flounder" + fish_herring: "herring" + + #Mediterranean Fish + fish_wrasse: "wrasse" + fish_anchovy: "anchovy" + fish_grouper: "grouper" + fish_seahorse: "seahorse" + fish_angler_fish: "angler fish" + + #River Fish + fish_perch: "perch" + fish_catfish: "catfish" + fish_ide: "ide" + fish_carp: "carp" + fish_pike: "pike" + + #African Fish + fish_needlefish: "needlefish" + fish_squeaker: "squeaker" + + #Indian Fish + fish_arowana: "arowana" + fish_barramundi: "barramundi" + fish_croaker: "croaker" + + #Asian Fish + fish_mandarin: "mandarin" + fish_loach: "loach" + fish_gudgeon: "gudgeon" + fish_tilapia: "tilapia" + fish_giant_gourami: "giant gourami" + fish_snakehead: "snakehead" + fish_mudskipper: "mudskipper" + fish_dragon_loach: "dragon loach" + fish_chub: "chub" + + + #TerrainInspirationLoc + TerrainInspirationMountains: "lofty mountain peaks" + TerrainInspirationHills: "rolling hills, cresting and falling like waves" + TerrainInspirationJungle: "jungle, its knotted vines and vibrant flowers" + TerrainInspirationTaiga: "icy taiga and wide expanses of untouched snow" + TerrainInspirationWetlands: "wetlands, dotted with wide marshes and reeds" + TerrainInspirationFloodplains: "plains, sprawling with rivers and streams" + TerrainInspirationDesert: "deserts, their sweeping dunes and blistering heat" + TerrainInspirationForest: "deep and bountiful forests" + TerrainInspirationFarmlands: "lush and rolling fields" + TerrainInspirationSteppe: "rugged steppe, stretching for miles in an unbroken line" + TerrainInspirationdrylands: "vast drylands and sand-colored horizon" + TerrainInspirationtells: "ancient and storied tells" + + TerrainStruggleWinter: "through a thick snowfall" + TerrainStruggleRain: "through unrelenting rain torrents" + TerrainStruggleSun: "beneath the beating sun" + + trickster_spirit_britannia: "[Glossary( 'pixie', 'PIXIE_GLOSS' )]" + PIXIE_GLOSS: "A tiny, winged spirit from Celtic and British folklore, fond of playful pranks and leading travelers astray." + + trickster_spirit_germania: "[Glossary( 'kobold', 'KOBOLD_GLOSS' )]" + KOBOLD_GLOSS: "A household spirit in German folklore that alternates between helpful chores and mischievous tricks when slighted." + + trickster_spirit_netherlands: "[Glossary( 'kabouter', 'KABOUTER_GLOSS' )]" + KABOUTER_GLOSS: "A gnome-like creature from Dutch lore, often aiding in tasks or playing tricks when disrespected." + + trickster_spirit_francia: "[Glossary( 'lutin', 'LUTIN_GLOSS' )]" + LUTIN_GLOSS: "A small household or forest spirit from French folklore, known for mischief such as tangling hair and hiding objects." + + trickster_spirit_iberia: "[Glossary( 'duende', 'DUENDE_GLOSS' )]" + DUENDE_GLOSS: "A small, elusive trickster spirit from Iberian folklore that causes minor chaos in homes." + + trickster_spirit_north: "[Glossary( 'tomte', 'TOMTE_GLOSS' )]" + TOMTE_GLOSS: "A Scandinavian spirit said to protect farms and animals, but prone to mischief if angered." + + trickster_spirit_east: "[Glossary( 'domovoi', 'DOMOVOI_GLOSS' )]" + DOMOVOI_GLOSS: "A Slavic house spirit who guards the home but plays tricks when offended or neglected." + + trickster_spirit_middle_east: "[Glossary( 'djinn', 'DJINN_GLOSS' )]" + DJINN_GLOSS: "A spirit of smokeless fire from Middle Eastern folklore, capable of shapeshifting and deception." + + trickster_spirit_india: "[Glossary( 'rakshasa', 'RAKSHASA_GLOSS' )]" + RAKSHASA_GLOSS: "A malevolent shapeshifter from Indian mythology, skilled in illusion and guile." + + trickster_spirit_africa_north: "[Glossary( 'ifrit', 'IFRIT_GLOSS' )]" + IFRIT_GLOSS: "A fiery and rebellious spirit from North African folklore, associated with deception and strength." + + trickster_spirit_africa_west: "[Glossary( 'ninki nanka', 'NINKI_NANKA_GLOSS' )]" + NINKI_NANKA_GLOSS: "A fearsome, dragon-like spirit from West African swamps, believed to bring death upon those who see it." + + trickster_spirit_africa_east: "[Glossary( 'popo bawa', 'POPOBAWA_GLOSS' )]" + POPOBAWA_GLOSS: "A bat-like spirit from Swahili folklore, known to spread fear at night through shapeshifting and psychological torment." + + trickster_spirit_steppe: "[Glossary( 'Gulyabani', 'GULYABANI_GLOSS' )]" + GULYABANI_GLOSS: "A towering, hairy ghoul from Turkish folklore, known to haunt desolate places and prey upon lone travelers at night." + + trickster_spirit_siberia: "[Glossary( 'kutkh', 'KUTKH_GLOSS' )]" + KUTKH_GLOSS: "A raven spirit found in Siberian traditions, both a creator and a mischievous trickster." + + trickster_spirit_tibet: "[Glossary( 'ro-langs', 'ROLANGS_GLOSS' )]" + ROLANGS_GLOSS: "A reanimated corpse from Tibetan folklore, known for its stiff movements and malevolent intent." + + trickster_spirit_china: "[Glossary( 'huli jing', 'HULIJING_GLOSS' )]" + HULIJING_GLOSS: "A Chinese fox spirit with shapeshifting powers, famous for its deceptive and seductive trickery." + + trickster_spirit_korea: "[Glossary( 'kumiho', 'KUMIHO_GLOSS' )]" + KUMIHO_GLOSS: "A nine-tailed fox spirit from Korean mythology, known to deceive and prey upon humans." + + trickster_spirit_japan: "[Glossary( 'tanuki', 'TANUKI_GLOSS' )]" + TANUKI_GLOSS: "A shapeshifting raccoon-dog spirit from Japanese folklore, known for illusion and playful mischief." + + trickster_spirit_sakhalin_hokkaido: "[Glossary( 'kamaitachi', 'KAMAITACHI_GLOSS' )]" + KAMAITACHI_GLOSS: "A wind-riding weasel spirit from northern Japanese legend, known for slicing flesh painlessly." + + trickster_spirit_thailand: "[Glossary( 'phi tai hong', 'PHITAIHONG_GLOSS' )]" + PHITAIHONG_GLOSS: "A vengeful ghost from Thai tradition, formed from a sudden or violent death, known to haunt and mislead." + + trickster_spirit_malaysia: "[Glossary( 'penanggalan', 'PENANGGALAN_GLOSS' )]" + PENANGGALAN_GLOSS: "A floating head spirit from Malaysian folklore, appearing deceptively human by day and terrifying by night." + + trickster_spirit_indonesia: "[Glossary( 'ebu gogo', 'EBU_GOGO_GLOSS' )]" + EBU_GOGO_GLOSS: "Small, hairy forest spirits from Indonesian folklore, known for mimicking human speech and stealing food or small items from villages." + + trickster_spirit_philippines: "[Glossary( 'tikbalang', 'TIKBALANG_GLOSS' )]" + TIKBALANG_GLOSS: "A tall, horse-headed spirit from Philippine folklore, known for leading travelers astray and playing tricks in the forests." + + trickster_spirit_borneo: "[Glossary( 'orang bunian', 'ORANG_BUNIAN_GLOSS' )]" + ORANG_BUNIAN_GLOSS: "Invisible forest-dwelling spirits from Bornean folklore, known to interact with humans, sometimes leading them astray or causing mischief." + + trickster_spirit_maluku: "[Glossary( 'jin kurcaci', 'JIN_KURCACI_GLOSS' )]" + JIN_KURCACI_GLOSS: "Small, human-like beings from Maluku folklore, known to inhabit forests and mountains, offering guidance or mischief to those they encounter." + + trickster_spirit_italy: "[Glossary( 'mazapégul', 'MAZAPEGUL_GLOSS' )]" + MAZAPEGUL_GLOSS: "A mischievous night spirit from Italian folklore, known to haunt bedrooms, braid horses' manes, and sit on sleepers' chests to cause nightmares." + + trickster_spirit_balkans: "[Glossary( 'kallikantzaros', 'KALLIKANTZAROS_GLOSS' )]" + KALLIKANTZAROS_GLOSS: "A malevolent goblin known to emerge during the twelve days of Christmas to cause mischief and chaos." + + trickster_spirit_indochina: "[Glossary( 'mrenh kongveal', 'MRENH_KONGVEAL_GLOSS' )]" + MRENH_KONGVEAL_GLOSS: "Small, elusive spirits from Khmer folklore, known for their playful pranks and protective roles over animals and travelers." + + trickster_spirit_default: "trickster spirit" + diff --git a/map_data/geographical_regions/geographical_region.txt b/map_data/geographical_regions/geographical_region.txt index 6afc89b9..d10c99fe 100644 --- a/map_data/geographical_regions/geographical_region.txt +++ b/map_data/geographical_regions/geographical_region.txt @@ -5481,18 +5481,6 @@ hunt_animal_bison_region = { # Aurochs Spread hunt_animal_aurochs_region = { regions = { - # Africa - world_africa_north - # Asia - world_india - world_middle_east - world_steppe - world_asia_korea - world_asia_china - # Europe - world_europe_west - world_europe_east - world_europe_south } } @@ -5524,37 +5512,22 @@ hunt_animal_reindeer_region = { } hunt_animal_elk_region = { - duchies = { - #Novgorod - d_novgorod d_vepsia d_luki - #Vladimir - d_opolye d_ryazan d_nizhny_novgorod - # Sapmi - d_aarjetje d_duortnoseatnu d_giemajohka d_guoldat d_vuovdisamieana - # Bjarmalan - d_vologda d_chudia d_ustyug d_biarmia - # Norway - d_halogaland - # Finland - d_savo d_finland d_karelia d_pohjanmaa - #Estonia - d_esthonia d_livonia - #Lithuania - d_prussia d_masuria d_grodno d_pinsk d_minsk d_polotsk d_smolensk d_lithuanians d_courland d_latgalia d_samogitia - # Sweden - d_ostergotland d_gotland d_vastergotland d_svealand d_norrland d_smaland d_bergslagen - # Norway - d_viken d_agder d_vestlandi d_trandalog d_dalir - # Denmark - d_skane + empires = { + e_finland + e_zapadnorussia + e_baltic + } + kingdoms = { + k_poland + k_belarus + k_sweden + k_norway + k_gotaland } regions = { world_steppe world_asia_north_east world_asia_korea - world_asia_china - world_asia_sakhalin_hokkaido - world_asia_japan } } From 7b72574566ccd651bc42001066b038a4ded7e2d2 Mon Sep 17 00:00:00 2001 From: The_Ramdom_Cheese Date: Thu, 21 May 2026 09:48:34 +0200 Subject: [PATCH 3/5] Dynastic prefix for Sorbian --- .../replace/dynasties/zz_NEOW_dynasty_names_l_english.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/localization/english/replace/dynasties/zz_NEOW_dynasty_names_l_english.yml b/localization/english/replace/dynasties/zz_NEOW_dynasty_names_l_english.yml index 3b0df480..48928681 100644 --- a/localization/english/replace/dynasties/zz_NEOW_dynasty_names_l_english.yml +++ b/localization/english/replace/dynasties/zz_NEOW_dynasty_names_l_english.yml @@ -23,7 +23,10 @@ #Czech/Polish dynnp_z:0 "z " - + + #Sorbian + dynnp_w_o_act_t:0 "wót " + ############################################################ # Patronymic Prefixes and Suffixes ############################################################ From f8f963dfdc8ffc5554570e4771bb7e1f5a83239a Mon Sep 17 00:00:00 2001 From: The_Ramdom_Cheese Date: Thu, 21 May 2026 09:50:05 +0200 Subject: [PATCH 4/5] Dynastic prefix for Sorbian (in Sorbian namelist) --- common/culture/name_lists/NEOW_west_slavic.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/culture/name_lists/NEOW_west_slavic.txt b/common/culture/name_lists/NEOW_west_slavic.txt index a6e251d3..cd803728 100644 --- a/common/culture/name_lists/NEOW_west_slavic.txt +++ b/common/culture/name_lists/NEOW_west_slavic.txt @@ -182,7 +182,7 @@ Zusana } - dynasty_of_location_prefix = "dynnp_of" + dynasty_of_location_prefix = "dynnp_w_o_act_t" From 9d3e89f01622156e50e45bc05f62cd0852af1a3f Mon Sep 17 00:00:00 2001 From: Heidesommer Date: Thu, 21 May 2026 05:14:39 -0400 Subject: [PATCH 5/5] Lion of the North --- .../coat_of_arms/NEOW_landed_titles.txt | 1 - .../coat_of_arms/coat_of_arms/scandinavia.txt | 22 +++ common/decisions/major_decisions_NEOW.txt | 73 ++++++++++ common/landed_titles/NEOW_special_titles.txt | 18 +++ common/nicknames/NEOW_nicknames.txt | 5 +- .../00_major_decisions_scripted_effects.txt | 130 ++++++++++++++++++ events/NEOW_decisions.txt | 1 + .../english/replace/titles_l_english.yml | 2 + .../replace/zz_NEOW_decisions_l_english.yml | 12 +- .../geographical_region.txt | 15 ++ 10 files changed, 276 insertions(+), 3 deletions(-) create mode 100644 events/NEOW_decisions.txt diff --git a/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt b/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt index 1c95e5c2..1ecfefb8 100644 --- a/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt +++ b/common/coat_of_arms/coat_of_arms/NEOW_landed_titles.txt @@ -4405,7 +4405,6 @@ k_sweden = { } - k_denmark = { pattern="pattern_horizontal_split_01.dds" color1=red diff --git a/common/coat_of_arms/coat_of_arms/scandinavia.txt b/common/coat_of_arms/coat_of_arms/scandinavia.txt index 10acd596..8229e161 100644 --- a/common/coat_of_arms/coat_of_arms/scandinavia.txt +++ b/common/coat_of_arms/coat_of_arms/scandinavia.txt @@ -32,3 +32,25 @@ k_gotaland={ } } + +e_sweden = { + pattern="pattern_horizontal_split_01.dds" + color1=blue + color2=yellow_light + color3=red + colored_emblem={ + color1=blue + texture="ce_block_02.dds" + instance={ + depth=1.010000 + } + + } + + colored_emblem={ + color1=blue + color2=yellow_light + texture="NEOW_ce_cross_nordic.dds" + } + +} \ No newline at end of file diff --git a/common/decisions/major_decisions_NEOW.txt b/common/decisions/major_decisions_NEOW.txt index 5f96ae40..17fc7a65 100644 --- a/common/decisions/major_decisions_NEOW.txt +++ b/common/decisions/major_decisions_NEOW.txt @@ -406,3 +406,76 @@ form_the_kingdom_of_rhineland_decision = { ai_will_do = { base = 100 } } + +restore_swedish_empire_decision = { + picture = { + reference = "gfx/interface/illustrations/decisions/decision_destiny_goal.dds" + } + desc = restore_swedish_empire_decision_desc + selection_tooltip = restore_swedish_empire_decision_tooltip + decision_group_type = major + + ai_check_interval_by_tier = { + barony = 0 + county = 0 + duchy = 0 + kingdom = 120 + empire = 0 + hegemony = 0 + } + + is_shown = { + has_title = title:k_sweden + is_ruler = yes + is_playable_character = yes + #Visible to dukes and kings. + highest_held_title_tier >= tier_duchy + highest_held_title_tier <= tier_kingdom + NOT = { + is_target_in_global_variable_list = { + name = unavailable_unique_decisions + target = flag:flag_restored_swedish_empire + } + } + } + + is_valid = { + highest_held_title_tier = tier_kingdom + completely_controls_region = custom_swedish_empire + } + + is_valid_showing_failures_only = { + is_landed = yes + is_capable_adult = yes + is_imprisoned = no + top_liege = this + is_at_war = no + } + + effect = { + custom_tooltip = restore_swedish_empire_decision_effect_tooltip + gain_heroic_legend_seed_tooltip_effect = yes + show_as_tooltip = { + restore_swedish_empire_effect = yes + } + hidden_effect = { + restore_swedish_empire_effect = yes + add_to_global_variable_list = { + name = unavailable_unique_decisions + target = flag:restored_swedish_empire + } + set_global_variable = { + name = flag_restored_swedish_empire + value = root + } + } + } + + ai_potential = { + always = yes + } + + ai_will_do = { + base = 100 + } +} \ No newline at end of file diff --git a/common/landed_titles/NEOW_special_titles.txt b/common/landed_titles/NEOW_special_titles.txt index 4119fcb2..91ba31b5 100644 --- a/common/landed_titles/NEOW_special_titles.txt +++ b/common/landed_titles/NEOW_special_titles.txt @@ -1,4 +1,10 @@ # special titles + +@correct_culture_primary_score = 100 +@better_than_the_alternatives_score = 50 +@always_primary_score = 1000 +@never_primary_score = -1000 + h_europa = { color = { 0 51 153 } @@ -11,6 +17,18 @@ h_europa = { } } +e_sweden = { + color = { 5 50 90 } + + capital = c_stockholm + + ai_primary_priority = { + add = @always_primary_score + } +} + + + #e_europa = { # color = { 0 51 153 } # capital = c_brabant # Brussels diff --git a/common/nicknames/NEOW_nicknames.txt b/common/nicknames/NEOW_nicknames.txt index f1ac4e90..0bdbf787 100644 --- a/common/nicknames/NEOW_nicknames.txt +++ b/common/nicknames/NEOW_nicknames.txt @@ -13,4 +13,7 @@ nick_NEOW_the_menhir = {} nick_NEOW_the_phantom = {} nick_NEOW_the_oracle = {} nick_NEOW_the_cimbrian = {} -nick_NEOW_the_monolith = {} \ No newline at end of file +nick_NEOW_the_monolith = {} + +# Decision Nicknames +nick_the_lion_of_the_north = {} \ No newline at end of file diff --git a/common/scripted_effects/00_major_decisions_scripted_effects.txt b/common/scripted_effects/00_major_decisions_scripted_effects.txt index 73a7077a..2b85d061 100644 --- a/common/scripted_effects/00_major_decisions_scripted_effects.txt +++ b/common/scripted_effects/00_major_decisions_scripted_effects.txt @@ -3862,3 +3862,133 @@ found_empire_of_hindustan_scripted_effect = { add_legitimacy_effect = { LEGITIMACY = massive_legitimacy_gain } dynasty ?= { add_dynasty_prestige = massive_dynasty_prestige_value } } + + + +restore_swedish_empire_effect = { + add_prestige = massive_prestige_gain + add_piety = massive_piety_gain + give_nickname = nick_the_lion_of_the_north + save_scope_as = scoped_ruler + create_title_and_vassal_change = { + type = created + save_scope_as = change + add_claim_on_loss = no + } + title:e_sweden = { + change_title_holder = { + holder = scope:scoped_ruler + change = scope:change + } + hidden_effect = { + copy_title_history = title:k_sweden + } + } + resolve_title_and_vassal_change = scope:change + hidden_effect = { + set_primary_title_to = title:e_sweden + title:d_vasterbottena = { set_de_jure_liege_title = title:k_sweden } + title:d_norrbottena = { set_de_jure_liege_title = title:k_sweden } + title:d_giemajohka = { set_de_jure_liege_title = title:k_finland } + title:d_west_karelia = { set_de_jure_liege_title = title:k_finland } + title:k_finland = { set_de_jure_liege_title = title:e_sweden } + title:d_west_karelia = { set_de_jure_liege_title = title:k_finland } + title:k_esthonia = { set_de_jure_liege_title = title:e_sweden } + title:k_sweden = { set_de_jure_liege_title = title:e_sweden } + if = { + limit = { + exists = title:gotaland + } + destroy_title = title:gotaland + } + if = { + limit = { title:k_gotaland ?= { is_titular = no } } + title:k_gotaland = { + every_in_de_jure_hierarchy = { + limit = { tier = tier_duchy } + set_de_jure_liege_title = title:k_sweden + } + } + } + if = { + limit = { + title:k_norway = { is_titular = no } + OR = { + has_title = title:k_norway + completely_controls = title:k_norway + } + } + title:k_norway = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_latvia = { is_titular = no } + OR = { + has_title = title:k_latvia + completely_controls = title:k_latvia + } + } + title:k_latvia = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_lithuania = { is_titular = no } + OR = { + has_title = title:k_lithuania + completely_controls = title:k_lithuania + } + } + title:k_lithuania = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_schleswig_holstein = { is_titular = no } + OR = { + has_title = title:k_schleswig_holstein + completely_controls = title:k_schleswig_holstein + } + } + title:k_schleswig_holstein = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_karelia = { is_titular = no } + OR = { + has_title = title:k_karelia + completely_controls = title:k_karelia + } + } + title:k_karelia = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_poland = { is_titular = no } + OR = { + has_title = title:k_poland + completely_controls = title:k_poland + } + } + title:k_poland = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_poland = { is_titular = no } + OR = { + has_title = title:k_poland + completely_controls = title:k_poland + } + } + title:k_poland = { set_de_jure_liege_title = title:e_sweden } + } + if = { + limit = { + title:k_petrograd = { is_titular = no } + OR = { + has_title = title:k_petrograd + completely_controls = title:k_petrograd + } + } + title:k_petrograd = { set_de_jure_liege_title = title:e_sweden } + } + } +} \ No newline at end of file diff --git a/events/NEOW_decisions.txt b/events/NEOW_decisions.txt new file mode 100644 index 00000000..6b487774 --- /dev/null +++ b/events/NEOW_decisions.txt @@ -0,0 +1 @@ +namespace = NEOW_decisions diff --git a/localization/english/replace/titles_l_english.yml b/localization/english/replace/titles_l_english.yml index d0cef2df..b1ff4391 100644 --- a/localization/english/replace/titles_l_english.yml +++ b/localization/english/replace/titles_l_english.yml @@ -3384,6 +3384,8 @@ d_napoli_adj:0 "Campanian" h_europa:0 "Europa" h_europa_adj:0 "European" + e_sweden:0 "Sweden" + e_sweden_adj:0 "Swedish" c_ticino:0 "Ticino" c_ticino_adj:0 "Ticinon" b_thusis:0 "Sion" diff --git a/localization/english/replace/zz_NEOW_decisions_l_english.yml b/localization/english/replace/zz_NEOW_decisions_l_english.yml index 815ed1e5..5e424b51 100644 --- a/localization/english/replace/zz_NEOW_decisions_l_english.yml +++ b/localization/english/replace/zz_NEOW_decisions_l_english.yml @@ -1570,4 +1570,14 @@ reforge_crown_wenceslas_decision_desc: "Reforge the Crown of St. Wenceslas, which has been dismantled and ashamed for far too long." reforge_crown_wenceslas_decision_tooltip: "Reforge the Crown of St. Wenceslas" reforge_crown_wenceslas_decision_confirm: "To the forge!" - must_have_crown_wenceslas:0 "You must possess the #color_white $crown_wenceslas_name$" \ No newline at end of file + must_have_crown_wenceslas:0 "You must possess the #color_white $crown_wenceslas_name$" + + restore_swedish_empire_decision:0 "Restore the Swedish Empire" + restore_swedish_empire_decision_confirm:0 "The Lion of the North roars!" + restore_swedish_empire_decision_tooltip:0 "Sweden's glory must be restored." + restore_swedish_empire_decision_desc:0 "Long before the deluge, legends speak of Sweden holding an empire spanning the Baltic Sea. By retaking these old lands, we can restore the glory of Sweden." + restore_swedish_empire_decision_effect_tooltip:0 "The Swedish Empire will be restored and acquire the [de_jure|E] of all currently held kingdoms around the Baltic." + nick_the_lion_of_the_north:0 "the Lion of the North" + nick_the_lion_of_the_north_desc:1 "The master of Northern Europe, [CHARACTER.GetShortUINameNoTooltipNoFormat] [CharHaveHas(CHARACTER)] brought a glory back to Sweden not seen in a thousand years." + custom_swedish_empire:0 "Core Territories of the Swedish Empire" + diff --git a/map_data/geographical_regions/geographical_region.txt b/map_data/geographical_regions/geographical_region.txt index d10c99fe..db7f0ecd 100644 --- a/map_data/geographical_regions/geographical_region.txt +++ b/map_data/geographical_regions/geographical_region.txt @@ -5923,3 +5923,18 @@ paddy_fields_region = { graphical_east_asia } } + +custom_swedish_empire = { + kingdoms = { + k_sweden + k_gotaland + k_finland + k_esthonia + } + duchies = { + d_vasterbottena + d_norrbottena + d_giemajohka + d_west_karelia + } +} \ No newline at end of file