N3OW/common/scripted_triggers/00_childhood_triggers.txt

362 lines
7.7 KiB
Text

@infant_upper_age_threshold_value = 2
@teen_lower_threshold_value = 13
@teen_upper_threshold_value = 19
child_is_infant_trigger = {
age <= @infant_upper_age_threshold_value
is_adult = no
}
# Duplicated because there were some weird edge case OR uses where "child_is_infant_trigger = no" read _extremely_ confusingly.
child_not_infant_trigger = {
age > @infant_upper_age_threshold_value
is_adult = no
}
# At what point is it not weird to hear a child using (relatively) advanced reasoning & so able to hold an extended conversation?
child_can_have_full_conversations_trigger = {
age >= 6
is_adult = no
}
child_not_teen_trigger = {
child_not_infant_trigger = yes
age < @teen_lower_threshold_value
is_adult = no
}
# Duplicated because there were some weird edge case OR uses where "child_not_teen_trigger = no" read _extremely_ confusingly.
child_is_teen_trigger = {
age >= @teen_lower_threshold_value
is_adult = no
}
child_old_enough_for_responsibility_trigger = {
age >= 8
is_adult = no
}
# Note: we don't want to say that children below this definitely can't read, that's a lot of edge cases to account for, but it's convenient to roughly unified trigger we can check for whether pensive characters are more likely to read or be read to.
child_likely_reader_trigger = { age >= 7 }
character_is_teen_trigger = {
age >= @teen_lower_threshold_value
age <= @teen_upper_threshold_value
}
character_is_teen_or_older_trigger = {
age > @teen_lower_threshold_value
}
save_good_friend_character_trigger_check = {
is_adult = no
age >= root.age_dif_child_down_friend
age <= root.age_dif_child_up_friend
NOT = { this = root }
is_imprisoned = no
opinion = {
target = root
value > -10
}
NOR = {
has_relation_friend = root
has_any_bad_relationship_with_root_trigger = yes
}
}
save_good_crush_character_trigger_check = {
is_adult = no
age >= root.age_dif_child_down
age <= root.age_dif_child_up
age > childhood_education_start_age
NOT = { this = root }
is_imprisoned = no
is_close_family_of_root_trigger = no
NOR = {
root = { has_relation_crush = prev }
has_relation_victim = root
}
OR = {
has_sexuality = heterosexual
has_sexuality = bisexual
has_sexuality = homosexual
}
is_attracted_to_gender_of = root
root = { is_attracted_to_gender_of = prev }
OR = {
num_of_relation_crush <= 2
has_trait = lustful
}
}
save_good_bully_character_trigger_check = {
is_adult = no
age >= 6
age >= root.age
NOT = { this = root }
is_imprisoned = no
OR = {
has_trait_malicious_trigger = yes
has_trait_dominant_trigger = yes
has_trait_emotional_trigger = yes
}
NOR = {
has_trait = compassionate
has_trait_submissive_trigger = yes
}
opinion = {
target = root
value < 0
}
NOR = {
has_any_bad_relationship_with_root_trigger = yes
has_relation_victim = root
has_relation_friend = root
has_relation_crush = root
}
}
save_good_victim_character_trigger_check = {
is_adult = no
age >= 6
age <= root.age
NOT = { this = root }
is_imprisoned = no
reverse_opinion = {
target = root
value < 0
}
NOR = {
has_any_bad_relationship_with_root_trigger = yes
has_relation_victim = root
has_relation_friend = root
has_relation_crush = root
}
}
child_suitable_to_play_with_character = {
# Is available for events at $CHARACTER$'s locale.
is_available_child = yes
exists = location
location = $CHARACTER$.location
# Of a suitable age range.
child_not_infant_trigger = yes
# Doesn't have a bad relationship with $CHARACTER$.
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = $CHARACTER$ }
}
}
child_suitable_to_play_with_character_one_sided = {
child_suitable_to_play_with_character = { CHARACTER = $CHARACTER$ }
is_ai = yes
}
childhood_mean_child_trigger = {
OR = {
has_trait = rowdy
has_personality_malicious_trigger = yes
has_personality_dominant_trigger = yes
ai_compassion <= low_negative_ai_value
}
}
childhood_loud_child_trigger = {
OR = {
has_trait = curious
has_trait = bossy
has_personality_extroverted_trigger = yes
has_personality_emotional_trigger = yes
ai_energy >= low_positive_ai_value
ai_boldness >= low_positive_ai_value
}
}
childhood_quiet_child_trigger = {
OR = {
has_trait = pensive
has_personality_submissive_trigger = yes
has_personality_introverted_trigger = yes
ai_energy <= low_negative_ai_value
ai_boldness <= low_negative_ai_value
}
}
childhood_nice_child_trigger = {
OR = {
has_trait = charming
has_trait = curious
has_personality_benevolent_trigger = yes
has_personality_levelheaded_trigger = yes
ai_compassion >= low_positive_ai_value
}
}
suitable_same_realm_child = {
exists = location.county.holder # Scoping like this allows children in the pool to also get this event
location.county.holder = {
OR = {
AND = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age >= 6
}
any_courtier_or_guest = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age >= 6
}
any_warden_hostage = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age >= 6
}
any_vassal = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age >= 6
}
any_vassal = {
any_courtier_or_guest = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age >= 6
}
}
}
}
}
similar_age_same_court_child = {
exists = location.county.holder # Scoping like this allows children in the pool to also get this event
location.county.holder = {
OR = {
AND = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age <= root.age_plus_3
age >= age_minus_3
}
any_courtier_or_guest = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age <= root.age_plus_3
age >= age_minus_3
}
any_warden_hostage = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age <= root.age_plus_3
age >= age_minus_3
}
}
}
}
suitable_crush_trigger = {
AND = {
save_temporary_scope_as = temp_crush
is_ai = yes
is_available_child = yes
NOT = { this = root }
child_not_infant_trigger = yes
age <= root.age_plus_3
age >= root.age_minus_3
location = root.location
OR = {
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = root
CHARACTER_2 = scope:temp_crush
}
AND = {
has_sexuality = asexual
root = {
OR = {
is_attracted_to_gender_of = scope:temp_crush
has_sexuality = asexual
}
}
}
AND = {
root = { has_sexuality = asexual }
OR = {
is_attracted_to_gender_of = root
has_sexuality = asexual
}
}
}
NOT = {
relation_with_character_is_incestuous_in_my_faith_trigger = { CHARACTER = root }
}
}
}
suitable_crush_same_court_child = {
exists = location.county.holder # Scoping like this allows children in the pool to also get this event
location.county.holder = {
OR = {
save_good_crush_character_trigger_check = yes
any_courtier_or_guest = {
save_good_crush_character_trigger_check = yes
}
any_warden_hostage = {
save_good_crush_character_trigger_check = yes
}
}
}
}
guardian_or_court_tutor_trait = {
trigger_if = {
limit = {
any_relation = {
type = guardian
}
}
any_relation = {
type = guardian
has_trait = $TRAIT$
}
}
trigger_else = {
court_owner.court_position:court_tutor_court_position ?= {
has_trait = $TRAIT$
}
}
}
guardian_or_court_tutor_2_trait = {
trigger_if = {
limit = {
any_relation = {
type = guardian
}
}
any_relation = {
type = guardian
OR = {
has_trait = $TRAIT$
has_trait = $TRAIT_2$
}
}
}
trigger_else = {
court_owner.court_position:court_tutor_court_position ?= {
OR = {
has_trait = $TRAIT$
has_trait = $TRAIT_2$
}
}
}
}