Alignment

This commit is contained in:
Heidesommer 2026-04-25 03:54:05 -04:00
parent f7a954eb51
commit 15a5108e23
250 changed files with 31104 additions and 25806 deletions

View file

@ -954,7 +954,7 @@ ep3_laamp_flavour_ewan.0011 = {
title = ep3_laamp_flavour_ewan.0011.a.tt.failure
left_icon = scope:mockee
scope:mockee = {
reverse_add_opinion = {
add_opinion = {
target = root
modifier = humiliated_opinion
opinion = -30
@ -1021,7 +1021,7 @@ ep3_laamp_flavour_ewan.0011 = {
title = ep3_laamp_flavour_ewan.0011.b.tt.failure
left_icon = scope:mocker
scope:mocker = {
reverse_add_opinion = {
add_opinion = {
target = root
modifier = humiliated_opinion
opinion = -30
@ -8980,48 +8980,29 @@ ep3_laamp_flavour_ewan.2002 = {
}
immediate = {
while = {
count = 10
# Sort our courtiers.
## First, get our scope:follower_1 candidate.
random_courtier = {
limit = {
NOT = { exists = scope:follower_2 }
}
# Sort our courtiers.
## First, get our scope:follower_1 candidate.
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2001_courtier_1_trigger = yes
NOT = { is_in_list = checked_courtier_1_candidates_list }
}
save_scope_as = follower_1
add_to_list = checked_courtier_1_candidates_list
}
## Now, find a scope:follower_2 from their opinion of the scope:follower_1 candidates.
if = {
limit = { exists = scope:follower_1 }
ordered_courtier = {
limit = {
ep3_laamp_flavour_ewan_2001_courtier_2_trigger = { TARGET = scope:follower_1 }
ep3_laamp_flavour_ewan_2001_courtier_1_trigger = yes
save_temporary_scope_as = char_temp
root = {
any_courtier = {
ep3_laamp_flavour_ewan_2001_courtier_2_trigger = { TARGET = scope:char_temp }
}
order_by = "opinion(scope:follower_1)"
save_scope_as = follower_2
}
# And, wipe our checks so we can iterate the loop if required.
if = {
limit = {
NOT = { exists = scope:follower_2 }
}
clear_saved_scope = follower_1
}
}
save_scope_as = follower_1
}
# If we've actually got our dudes, proceed to the event.
if = {
## Now, find a scope:follower_2 from their opinion of the scope:follower_1 candidates.
ordered_courtier = {
limit = {
exists = scope:follower_1
exists = scope:follower_2
ep3_laamp_flavour_ewan_2001_courtier_2_trigger = { TARGET = scope:follower_1 }
}
trigger_event = ep3_laamp_flavour_ewan.2001
order_by = "opinion(scope:follower_1)"
save_scope_as = follower_2
}
trigger_event = ep3_laamp_flavour_ewan.2001
}
}
@ -9048,7 +9029,7 @@ scripted_trigger ep3_laamp_flavour_ewan_2011_secret_lover_would_be_affair_trigge
NOT = {
trait_is_shunned_or_criminal_in_faith_trigger = {
FAITH = faith
TRAIT = adulterer
TRAIT = trait:adulterer
GENDER_CHARACTER = root
}
}
@ -10496,9 +10477,7 @@ scripted_trigger ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_pre
# Must have matching sexualities & the right legalities in place.
is_attracted_to_gender_of = $TARGET$
$TARGET$ = { is_attracted_to_gender_of = prev }
allowed_to_marry_character_gender_trigger = { CHARACTER = $TARGET$ }
# Avoid pairing up people that are already somehow related to each other
NOT = { is_close_or_extended_family_of = $TARGET$ }
could_marry_character_trigger = { CHARACTER = $TARGET$ }
# Ensure our ages aren't too far apart — not that this couldn't happen, but huge age gaps are a big verisimilitude problem for many players.
age >= {
value = $TARGET$.age
@ -10849,58 +10828,39 @@ ep3_laamp_flavour_ewan.2022 = {
}
immediate = {
while = {
count = 10
# Alright, let's select our lovebirds.
## First, pick a scope:follower_1 candidate.
random_courtier = {
limit = {
NOT = { exists = scope:follower_2 }
}
# Alright, let's select our lovebirds.
## First, pick a scope:follower_1 candidate.
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_general_trigger = yes
NOT = { is_in_list = checked_courtier_1_candidates_list }
}
save_scope_as = follower_1
add_to_list = checked_courtier_1_candidates_list
}
## Now, nab a suitable pair.
if = {
limit = { exists = scope:follower_1 }
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_precise_trigger = { TARGET = scope:follower_1 }
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_general_trigger = yes
save_temporary_scope_as = char_temp
root = {
any_courtier = {
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_precise_trigger = { TARGET = scope:char_temp }
}
weight = {
opinion_modifier = {
opinion_target = scope:follower_1
multiplier = 0.5
}
opinion_modifier = {
who = scope:follower_1
opinion_target = this
multiplier = 0.5
}
}
save_scope_as = follower_2
}
# And, wipe our checks so we can iterate the loop if required.
if = {
limit = {
NOT = { exists = scope:follower_2 }
}
clear_saved_scope = follower_1
}
}
save_scope_as = follower_1
}
# If we've actually got our dudes, proceed to the event.
if = {
## Now, nab a suitable pair.
random_courtier = {
limit = {
exists = scope:follower_1
exists = scope:follower_2
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_precise_trigger = { TARGET = scope:follower_1 }
}
trigger_event = ep3_laamp_flavour_ewan.2021
weight = {
opinion_modifier = {
opinion_target = scope:follower_1
multiplier = 0.5
}
opinion_modifier = {
who = scope:follower_1
opinion_target = this
multiplier = 0.5
}
}
save_scope_as = follower_2
}
trigger_event = ep3_laamp_flavour_ewan.2021
}
}
@ -11256,7 +11216,7 @@ scripted_trigger ep3_laamp_flavour_ewan_2041_valid_courtier_to_gain_lover_genera
OR = {
trait_is_criminal_in_faith_trigger = {
FAITH = faith
TRAIT = adulterer
TRAIT = trait:adulterer
GENDER_CHARACTER = this
}
AND = {
@ -11546,68 +11506,49 @@ ep3_laamp_flavour_ewan.2042 = {
save_temporary_scope_as = char_temp
root = {
any_courtier = {
ep3_laamp_flavour_ewan_2041_valid_courtier_to_gain_lover_precise_trigger = { TARGET = scope:char_temp }
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_precise_trigger = { TARGET = scope:char_temp }
}
}
}
}
immediate = {
while = {
count = 10
# Alright, let's select our lovebirds.
## First up, pick an appropriate character.
random_courtier = {
limit = {
NOT = { exists = scope:follower_2 }
}
# Alright, let's select our lovebirds.
## First up, pick an appropriate character.
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2041_valid_courtier_to_gain_lover_general_trigger = yes
NOT = { is_in_list = checked_courtier_1_candidates_list }
}
save_scope_as = follower_1
add_to_list = checked_courtier_1_candidates_list
}
## Now, nab a suitable pair.
if = {
limit = { exists = scope:follower_1 }
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_precise_trigger = { TARGET = scope:follower_1 }
ep3_laamp_flavour_ewan_2041_valid_courtier_to_gain_lover_general_trigger = yes
save_temporary_scope_as = char_temp
root = {
any_courtier = {
ep3_laamp_flavour_ewan_2041_valid_courtier_to_gain_lover_precise_trigger = { TARGET = scope:char_temp }
}
weight = {
modifier = {
add = attraction
always = yes
}
modifier = {
add = 50
has_trait = lustful
}
modifier = {
add = -50
has_trait = chaste
}
}
save_scope_as = follower_2
}
# And, wipe our checks so we can iterate the loop if required.
if = {
limit = {
NOT = { exists = scope:follower_2 }
}
clear_saved_scope = follower_1
}
}
save_scope_as = follower_1
}
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2021_valid_courtier_for_own_marriage_precise_trigger = { TARGET = scope:follower_1 }
}
weight = {
modifier = {
add = attraction
always = yes
}
modifier = {
add = 50
has_trait = lustful
}
modifier = {
add = -50
has_trait = chaste
}
}
save_scope_as = follower_2
}
# If we've actually got our dudes, proceed to the event.
if = {
limit = {
exists = scope:follower_1
exists = scope:follower_2
}
trigger_event = ep3_laamp_flavour_ewan.2041
}
trigger_event = ep3_laamp_flavour_ewan.2041
}
}
@ -12053,85 +11994,66 @@ ep3_laamp_flavour_ewan.2062 = {
}
immediate = {
while = {
count = 10
# Find our best courtiers.
## First, grabbing a valid annoyed char.
random_courtier = {
limit = {
NOT = { exists = scope:thief }
}
# Find our best courtiers.
## First, grabbing a valid annoyed char.
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2061_valid_angry_courtier_general_trigger = yes
NOT = { is_in_list = checked_courtier_1_candidates_list }
}
save_scope_as = victim
add_to_list = checked_courtier_1_candidates_list
}
## Then processing out a good thief.
if = {
limit = { exists = scope:victim }
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2061_valid_angry_courtier_precise_trigger = { TARGET = scope:victim }
ep3_laamp_flavour_ewan_2061_valid_angry_courtier_general_trigger = yes
save_temporary_scope_as = char_temp
root = {
any_courtier = {
ep3_laamp_flavour_ewan_2061_valid_angry_courtier_precise_trigger = { TARGET = scope:char_temp }
}
weight = {
modifier = {
add = 20
has_trait = wrathful
}
modifier = {
add = 15
has_trait = deceitful
}
modifier = {
add = 5
has_trait = arrogant
}
modifier = {
add = 10
has_trait = arbitrary
}
modifier = {
add = -20
has_trait = just
}
modifier = {
add = 5
has_trait = fickle
}
modifier = {
add = 15
has_trait = vengeful
}
modifier = {
add = -15
has_trait = forgiving
}
modifier = {
add = -15
has_trait = honest
}
}
save_scope_as = thief
}
# And, wipe our checks so we can iterate the loop if required.
if = {
limit = {
NOT = { exists = scope:thief }
}
clear_saved_scope = victim
}
}
save_scope_as = victim
}
# If we've actually got our dudes, proceed to the event.
if = {
## Then processing out a good thief.
random_courtier = {
limit = {
exists = scope:victim
exists = scope:thief
ep3_laamp_flavour_ewan_2061_valid_angry_courtier_precise_trigger = { TARGET = scope:victim }
}
trigger_event = ep3_laamp_flavour_ewan.2061
weight = {
modifier = {
add = 20
has_trait = wrathful
}
modifier = {
add = 15
has_trait = deceitful
}
modifier = {
add = 5
has_trait = arrogant
}
modifier = {
add = 10
has_trait = arbitrary
}
modifier = {
add = -20
has_trait = just
}
modifier = {
add = 5
has_trait = fickle
}
modifier = {
add = 15
has_trait = vengeful
}
modifier = {
add = -15
has_trait = forgiving
}
modifier = {
add = -15
has_trait = honest
}
}
save_scope_as = thief
}
trigger_event = ep3_laamp_flavour_ewan.2061
}
}
@ -12709,6 +12631,7 @@ ep3_laamp_flavour_ewan.2081 = {
scripted_trigger ep3_laamp_flavour_ewan_2091_valid_angry_courtier_general_trigger = {
ep3_laamp_flavour_ewan_available_courtier_trigger = yes
is_of_major_or_minor_interest_trigger = { CHARACTER = root }
# Mustn't have a deescalatory personality.
NOR = {
has_trait = patient
@ -12760,12 +12683,14 @@ ep3_laamp_flavour_ewan.2091 = {
left_portrait = {
character = scope:attacker
animation = random_weapon_aggressive
camera = camera_event_very_left
}
right_portrait = {
character = scope:defender
animation = shock
}
override_background = { reference = ep3_campfire }
override_effect_2d = { reference = smoke }
immediate = {
if = {
@ -13039,90 +12964,70 @@ ep3_laamp_flavour_ewan.2093 = {
}
immediate = {
while = {
count = 10
# Find our best courtiers.
## First, grab a suitable candidate.
random_courtier = {
limit = {
NOT = { exists = scope:attacker }
}
# Find our best courtiers.
## First, grab a suitable candidate.
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2091_valid_angry_courtier_general_trigger = yes
NOT = { is_in_list = checked_courtier_1_candidates_list }
}
save_scope_as = defender
add_to_list = checked_courtier_1_candidates_list
}
## Then processing out a good one.
if = {
limit = { exists = scope:defender }
random_courtier = {
limit = {
ep3_laamp_flavour_ewan_2091_valid_angry_courtier_precise_trigger = { TARGET = scope:defender }
ep3_laamp_flavour_ewan_2091_valid_angry_courtier_general_trigger = yes
save_temporary_scope_as = char_temp
root = {
any_courtier = {
ep3_laamp_flavour_ewan_2091_valid_angry_courtier_precise_trigger = { TARGET = scope:char_temp }
}
weight = {
modifier = {
add = 20
has_trait = wrathful
}
modifier = {
add = 15
has_trait = deceitful
}
modifier = {
add = 5
has_trait = arrogant
}
modifier = {
add = 10
has_trait = arbitrary
}
modifier = {
add = -20
has_trait = just
}
modifier = {
add = 5
has_trait = fickle
}
modifier = {
add = 15
has_trait = vengeful
}
modifier = {
add = -15
has_trait = forgiving
}
modifier = {
add = -15
has_trait = honest
}
opinion_modifier = {
who = this
opinion_target = scope:defender
multiplier = -0.5
}
}
save_scope_as = attacker
}
# And, wipe our checks so we can iterate the loop if required.
if = {
limit = {
NOT = { exists = scope:attacker }
}
clear_saved_scope = defender
}
}
save_scope_as = defender
}
# If we've actually got our dudes, proceed to the event.
if = {
random_courtier = {
limit = {
exists = scope:defender
exists = scope:attacker
ep3_laamp_flavour_ewan_2091_valid_angry_courtier_precise_trigger = { TARGET = scope:defender }
}
trigger_event = ep3_laamp_flavour_ewan.2091
weight = {
modifier = {
add = 20
has_trait = wrathful
}
modifier = {
add = 15
has_trait = deceitful
}
modifier = {
add = 5
has_trait = arrogant
}
modifier = {
add = 10
has_trait = arbitrary
}
modifier = {
add = -20
has_trait = just
}
modifier = {
add = 5
has_trait = fickle
}
modifier = {
add = 15
has_trait = vengeful
}
modifier = {
add = -15
has_trait = forgiving
}
modifier = {
add = -15
has_trait = honest
}
opinion_modifier = {
who = this
opinion_target = scope:defender
multiplier = -0.5
}
}
save_scope_as = attacker
}
trigger_event = ep3_laamp_flavour_ewan.2091
}
}
@ -17841,39 +17746,41 @@ ep3_laamp_flavour_ewan.4041 = {
value = flag:earthquake
}
# If this isn't the direct holding of a player, cause some serious damage.
location.county.holder = {
if = {
limit = {
NOT = { is_ai = yes }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
prev = {
change_development_level = {
integer_range = {
min = -35
max = -10
}
location.county = {
holder = {
if = {
limit = {
is_ai = yes
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
random_courtier = {
limit = { location = prev.location }
death = { death_reason = death_consumed_by_earthquake }
}
prev = {
change_development_level = {
integer_range = {
min = -35
max = -10
}
}
change_county_control = -100
}
random = {
chance = 20
death = { death_reason = death_consumed_by_earthquake }
}
change_county_control = -100
}
random = {
chance = 20
death = { death_reason = death_consumed_by_earthquake }
}
}
}