N3OW/common/scripted_effects/00_scheme_scripted_effects.txt
2026-05-20 22:50:40 -04:00

16850 lines
391 KiB
Text

##########################
# 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 }
}
}