Superfulous events removed

This commit is contained in:
Fishedotjpg 2025-12-06 14:31:21 +00:00
parent 77b4b89979
commit 7971f5387b
323 changed files with 0 additions and 924501 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,70 +0,0 @@
namespace = coronation_events
scripted_trigger coronation_events_3001_angry_vassal_trigger = {
is_available_healthy_ai_adult = yes
opinion = {
target = scope:host
value < 10
}
}
coronation_events.3001 = {
type = letter_event
opening = coronation_events.3001.opening
desc = coronation_events.3001.desc
sender = scope:main_vassal
trigger = {
any_vassal = {
coronation_events_3001_angry_vassal_trigger = yes
count > 1
}
}
immediate = {
ordered_vassal = {
limit = {
coronation_events_3001_angry_vassal_trigger = yes
}
order_by = primary_title.tier
save_scope_as = main_vassal
}
every_vassal = {
limit = {
coronation_events_3001_angry_vassal_trigger = yes
NOT = { this = scope:main_vassal }
}
add_to_list = angry_vassals
}
}
option = { # Invite them
name = coronation_events.3001.a
show_as_tooltip = {
every_in_list = {
list = angry_vassals
add_to_activity = root.involved_activity
}
}
hidden_effect = {
every_in_list = {
list = angry_vassals
set_location = root.location
add_to_activity_without_travel = root.involved_activity
}
}
}
option = { # Nah
name = coronation_events.3001.b
add_legitimacy = major_legitimacy_loss
every_in_list = {
list = angry_vassals
add_opinion = {
target = root
modifier = not_invited_coronation_opinion
opinion = -15
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,227 +0,0 @@
namespace = feast_default_axel
feast_default_axel.1001 = {
type = activity_event
title = feast_default_axel.1001.t
desc = feast_default_axel.1001.desc
theme = feast_activity
override_background = { reference = bp1_wine_cellar }
right_portrait = {
character = scope:youngster_1
animation = wedding_drunk
camera = camera_event_very_right
}
center_portrait = {
character = scope:youngster_2
animation = interested
camera = camera_event_very_left
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
root = {
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
}
}
}
animation = eyeroll
}
animation = disapproval
}
cooldown = { years = 10 }
trigger = {
faith = { trait_is_sin = drunkard }
this = scope:host
scope:activity = {
any_attending_character = {
NOT = {
this = scope:host
is_spouse_of = root
}
age = { 16 25 }
is_physically_able_ai_adult = yes
num_of_relation_friend < 2
location = scope:host.location
save_temporary_scope_as = temp_first
}
any_attending_character = {
NOR = {
this = scope:host
is_spouse_of = root
this = scope:temp_first
}
age = { 16 25 }
is_physically_able_ai_adult = yes
num_of_relation_friend < 2
location = scope:host.location
number_of_traits_in_common = {
target = scope:temp_first
value >= 1
}
}
}
#serious stuff only
NOT = {
primary_title ?= title:h_china
}
}
immediate = {
involved_activity = { save_scope_as = activity }
save_scope_as = host
scope:activity = {
random_attending_character = {
limit = {
NOT = {
this = scope:host
}
age = { 16 25 }
is_physically_able_ai_adult = yes
num_of_relation_friend < 2
location = scope:host.location
}
weight = {
base = 1
modifier = {
age < 19
add = 3
}
}
save_scope_as = youngster_1
}
random_attending_character = {
limit = {
NOR = {
this = scope:host
this = scope:youngster_1
}
age = { 16 25 }
is_physically_able_ai_adult = yes
num_of_relation_friend < 2
location = scope:host.location
number_of_traits_in_common = {
target = scope:youngster_1
value >= 1
}
}
weight = {
base = 1
modifier = {
age < 19
add = 3
}
}
save_scope_as = youngster_2
}
}
scope:youngster_1 = {
progress_towards_friend_effect = {
REASON = friend_feast_talking_and_laughing
CHARACTER = scope:youngster_2
OPINION = default_friend_opinion
}
}
}
option = { # As if I would ever...
name = feast_default_axel.1001.a
trigger = { has_trait = drunkard }
add_character_modifier = {
modifier = drunk_high_spirits
years = 10
}
stress_impact = {
greedy = minor_stress_impact_loss
base = medium_stress_impact_loss
}
ai_chance = {
ai_value_modifier = {
# Doesn't like sharing
ai_greed = 1
}
modifier = {
has_trait = greedy
add = 20
}
}
}
option = { # Let the kids drink!
name = feast_default_axel.1001.b
scope:activity = {
every_attending_character = {
limit = { has_trait = gregarious }
custom = custom.every_activity_guest_with_gregarious_trait
add_opinion = {
modifier = amused_opinion
opinion = 15
target = root
}
}
}
if = {
limit = {
has_trait = lifestyle_reveler
}
add_trait_xp = {
trait = lifestyle_reveler
value = 5
}
}
add_character_modifier = {
modifier = bad_influence_modifier
years = 10
}
stress_impact = {
gregarious = medium_stress_impact_loss
}
ai_chance = {
ai_value_modifier = {
ai_sociability = 1
}
modifier = {
has_trait = lifestyle_reveler
add = 20
}
}
}
option = { # Shame on both of you!
name = feast_default_axel.1001.c
trigger = {
NOR = {
# Not allowed to judge others for drinking and/or revelling
has_trait = gregarious
has_trait = drunkard
}
}
add_prestige = medium_prestige_gain
add_dread = minor_dread_gain
reverse_add_opinion = {
modifier = unfriendly_opinion
target = scope:youngster_1
}
reverse_add_opinion = {
modifier = unfriendly_opinion
target = scope:youngster_2
}
stress_impact = {
compassionate = medium_stress_impact_gain
vengeful = minor_stress_impact_loss
}
ai_chance = {
ai_value_modifier = {
ai_boldness = 1
ai_vengefulness = 1
}
modifier = {
has_trait = compassionate
add = -40
}
}
}
}

View file

@ -1,613 +0,0 @@

namespace = feast_default_jason
# Legend
# involved_activity
# activity_host
# activity_location
scripted_trigger feast_default_jason_100_attending_soldier_trigger = {
is_ai = yes
NOT = {
this = root
}
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
is_adult = yes
NOT = {
is_at_war_with = root
}
}
scripted_trigger feast_default_jason_100_attending_ruler_trigger = {
gold >= minor_gold_value
is_ai = yes
is_ruler = yes
is_landed = yes
NOT = {
this = root
}
is_adult = yes
NOR = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
any_ally = {
is_at_war_with = root
}
is_allied_to = root
government_has_flag = government_is_herder
}
is_at_war = no
opinion = {
target = root
value >= 0
}
trigger_if = {
limit = {
root = {
highest_held_title_tier >= tier_empire
}
}
highest_held_title_tier >= tier_duchy
}
trigger_else = {
highest_held_title_tier >= tier_county
}
current_military_strength > 0
NOR = {
any_tributary = {
is_at_war_with = root
}
suzerain ?= {
is_at_war_with = root
}
top_suzerain ?= {
is_at_war_with = root
}
any_liege_or_above = {
is_at_war_with = root
suzerain ?= {
is_at_war_with = root
}
}
any_vassal_or_below = {
is_at_war_with = root
}
AND = {
is_confederation_member = yes
confederation = {
is_house_based = no # any_confederation_member is not performant for house blocs
any_confederation_member = {
is_at_war_with = root
}
}
}
}
}
#You are stressed at the feast and your realm is at war
feast_default_jason.100 = {
type = activity_event
title = feast_default_jason.100.t
desc = feast_default_jason.100.desc
theme = feast_activity
left_portrait = {
character = root
animation = stress
}
center_portrait = {
character = scope:soldier
animation = inspect_weapon
camera = camera_event_center_pointing_forward
}
right_portrait = {
character = scope:other_ruler
animation = debating
camera = camera_event_very_right
}
lower_right_portrait = scope:foe
cooldown = { years = 10 }
trigger = {
has_raised_armies = yes
is_landed = yes
stress_level >= 1
is_at_war = yes
any_character_war = {
NOR = {
using_cb = undirected_great_holy_war
using_cb = directed_great_holy_war
}
OR = {
AND = {
primary_defender = root
defender_war_score <= 10
}
AND = {
primary_attacker = root
attacker_war_score <= 10
}
}
}
scope:activity = {
any_attending_character = {
feast_default_jason_100_attending_soldier_trigger = yes
save_temporary_scope_as = soldier_temp
}
any_attending_character = {
feast_default_jason_100_attending_ruler_trigger = yes
NOT = {
this = scope:soldier_temp
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
stress_level >= 2
add = 1
}
modifier = {
stress_level >= 3
add = 1
}
}
immediate = {
scope:activity = {
ordered_attending_character = {
order_by = martial
limit = {
feast_default_jason_100_attending_soldier_trigger = yes
}
save_scope_as = soldier
}
#Try to save valid supporter if host of coronation
if = {
limit = {
activity_host = root
has_activity_type = activity_coronation
}
ordered_guest_subset = {
name = supporter
order_by = {
value = "opinion(root)"
}
limit = {
feast_default_jason_100_attending_ruler_trigger = yes
NOT = {
this = scope:soldier
}
}
save_scope_as = other_ruler
}
}
if = {
limit = {
NOT = {
exists = scope:other_ruler
}
}
ordered_attending_character = {
order_by = {
value = "opinion(root)"
}
limit = {
feast_default_jason_100_attending_ruler_trigger = yes
NOT = {
this = scope:soldier
}
}
save_scope_as = other_ruler
}
}
}
random_character_war = {
limit = {
NOR = {
using_cb = undirected_great_holy_war
using_cb = directed_great_holy_war
}
OR = {
AND = {
primary_defender = root
defender_war_score <= 10
}
AND = {
primary_attacker = root
attacker_war_score <= 10
}
}
}
save_scope_as = war
if = {
limit = {
primary_defender = root
}
primary_attacker = {
save_scope_as = foe
}
}
else = {
primary_defender = {
save_scope_as = foe
}
}
}
ordered_army = {
order_by = army_size
save_scope_as = army
location = {
save_scope_as = army_location
}
}
}
#Add ruler to war
option = {
trigger = {
#I seek advancement!
trigger_if = {
limit = {
involved_activity = {
NOT = { activity_host = root }
has_activity_type = activity_coronation
}
scope:war = {
primary_attacker = root
}
}
has_activity_intent = coronation_seize_advantages
}
#I seek aid for my people
trigger_else_if = {
limit = {
involved_activity = {
NOT = { activity_host = root }
has_activity_type = activity_coronation
}
scope:war = {
primary_defender = root
}
}
has_activity_intent = coronation_advocate_domain
}
trigger_else_if = {
limit = {
involved_activity = {
activity_host = root
has_activity_type = activity_coronation
}
has_activity_intent = coronation_embrace_supporters
}
has_activity_intent = coronation_embrace_supporters
}
trigger_else = {
diplomacy >= high_skill_rating
}
}
show_as_unavailable = {
always = yes
}
name = feast_default_jason.100.a
if = {
limit = {
scope:war = {
primary_defender = root
}
}
scope:war = {
add_defender = scope:other_ruler
}
}
else = {
scope:war = {
add_attacker = scope:other_ruler
}
}
scope:other_ruler = {
if = {
limit = {
NOR = {
is_liege_or_above_of = root
is_allied_to = root
highest_held_title_tier > root.highest_held_title_tier
}
}
add_prestige = medium_prestige_gain
}
else = {
add_prestige = minor_prestige_gain
}
}
hidden_effect = {
add_opinion = {
modifier = grateful_opinion
target = scope:other_ruler
opinion = 30
}
}
stress_impact = {
base = minor_stress_impact_loss
stubborn = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
craven = minor_stress_impact_loss
}
ai_chance = {
base = 150
ai_value_modifier = {
ai_boldness = -0.5
ai_rationality = 0.5
}
modifier = {
factor = 5
OR = {
scope:war = {
primary_defender = root
attacker_war_score >= 40
}
scope:war = {
primary_attacker = root
defender_war_score >= 40
}
scope:war = {
primary_defender = root
primary_attacker = {
current_military_strength > root.current_military_strength
}
}
scope:war = {
primary_attacker = root
primary_defender = {
current_military_strength > root.current_military_strength
}
}
}
}
modifier = {
factor = 2
has_trait = craven
scope:war = {
primary_defender = root
}
}
modifier = {
factor = 0.5
OR = {
has_trait = stubborn
has_trait = arrogant
scope:war = {
primary_defender = root
primary_attacker = {
current_military_strength < root.current_military_strength
}
}
scope:war = {
primary_attacker = root
primary_defender = {
current_military_strength < root.current_military_strength
}
}
}
}
}
}
#Spend the rest of the feast speaking of victory
option = {
name = feast_default_jason.100.b
if = {
limit = {
involved_activity = {
has_activity_type = activity_coronation
}
this = involved_activity.activity_host
}
custom_tooltip = coronation_tt_positive_tiny
involved_activity = { activity_special_type_progression_tiny = yes }
coronation_add_magnificence_log_effect = {
VALUE = flag:positive_tiny
CHAR = root
}
}
else = {
add_prestige = miniscule_prestige_gain
}
if = {
limit = {
has_activity_intent = coronation_exalt_crown
}
add_character_modifier = {
modifier = boasted_of_victories_modifier
years = 5
desc = victories_reduce_stress_add_prestige_desc
}
}
else = {
add_character_modifier = {
modifier = boasted_of_victories_modifier
years = 3
desc = victories_reduce_stress_add_prestige_desc
}
}
custom_tooltip = victories_reduce_stress_add_prestige_tt
if = {
limit = {
has_activity_intent = coronation_exalt_crown
}
custom_tooltip = feast_default_jason.100.b_exalt_the_crown
}
stress_impact = {
arrogant = minor_stress_impact_loss
ambitious = miniscule_stress_impact_loss
humble = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 0.5
ai_energy = 0.5
}
modifier = {
factor = 5
}
modifier = {
factor = 2
OR = {
has_trait = arrogant
has_trait = ambitious
}
}
modifier = {
factor = 0
OR = {
has_trait = humble
scope:war = {
primary_defender = root
attacker_war_score >= 30
}
scope:war = {
primary_attacker = root
defender_war_score >= 30
}
scope:war = {
primary_defender = root
primary_attacker = {
current_military_strength > root.current_military_strength
}
}
scope:war = {
primary_attacker = root
primary_defender = {
current_military_strength > root.current_military_strength
}
}
}
}
}
}
#Another round!
option = {
name = {
trigger = {
drinks_alcohol_trigger = yes
NOR = {
has_trait = comfort_eater
has_trait = gluttonous
}
}
text = feast_default_jason.100.c
}
name = {
trigger = {
OR = {
drinks_alcohol_trigger = no
has_trait = comfort_eater
has_trait = gluttonous
}
}
text = feast_default_jason.100.c_hungee
}
#Alcohol stress loss
if = {
limit = {
drinks_alcohol_trigger = yes
NOR = {
has_trait = comfort_eater
has_trait = gluttonous
}
}
if = {
limit = {
NOT = {
has_trait = drunkard
}
}
random = {
chance = 5
add_trait = drunkard
}
}
stress_impact = {
base = medium_stress_impact_loss
temperate = medium_stress_impact_gain
diligent = miniscule_stress_impact_gain
vengeful = miniscule_stress_impact_gain
drunkard = medium_stress_impact_loss
lifestyle_reveler = medium_stress_impact_loss
gregarious = miniscule_stress_impact_loss
content = minor_stress_impact_loss
lazy = minor_stress_impact_loss
fickle = miniscule_stress_impact_loss
calm = miniscule_stress_impact_loss
patient = miniscule_stress_impact_loss
}
}
#Food stress loss
if = {
limit = {
OR = {
drinks_alcohol_trigger = no
has_trait = comfort_eater
has_trait = gluttonous
}
}
if = {
limit = {
NOT = {
has_trait = comfort_eater
}
}
random = {
chance = 5
add_trait = comfort_eater
}
}
stress_impact = {
base = medium_stress_impact_loss
temperate = medium_stress_impact_gain
diligent = miniscule_stress_impact_gain
vengeful = miniscule_stress_impact_gain
gluttonous = medium_stress_impact_loss
comfort_eater = medium_stress_impact_loss
gregarious = miniscule_stress_impact_loss
content = minor_stress_impact_loss
lazy = minor_stress_impact_loss
fickle = miniscule_stress_impact_loss
calm = miniscule_stress_impact_loss
patient = miniscule_stress_impact_loss
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = -0.5
ai_energy = -0.5
}
modifier = {
factor = 2
OR = {
has_trait = gluttonous
has_trait = drunkard
has_trait = comfort_eater
has_trait = lifestyle_reveler
has_trait = content
has_trait = lazy
}
}
modifier = {
factor = 0
OR = {
has_trait = temperate
has_trait = diligent
has_trait = vengeful
}
}
}
}
}

View file

@ -1,142 +0,0 @@

namespace = feast_default_joe
scripted_trigger feast_default_joe_1010_agent_trigger = {
is_ai = yes
intrigue > mediocre_skill_rating # avoid suck
$SCHEME$ = {
any_scheme_agent_slot = { save_temporary_scope_as = agent_slot_temp }
}
is_valid_as_agent_in_slot = scope:agent_slot_temp
save_temporary_scope_as = agent_temp
NOR = {
$SCHEME$ = { scheme_is_character_agent = scope:agent_temp } # Not already in the scheme
has_any_bad_relationship_with_character_trigger = { CHARACTER = root } # Doesn't hate you
}
}
feast_default_joe.1010 = { # Get agent to join your scheme
type = activity_event
title = feast_default_joe.1010.t
desc = feast_default_joe.1010.desc
theme = feast_activity
left_portrait = {
character = root
animation = scheme
}
right_portrait = {
character = scope:agent
animation = war_over_win
}
lower_center_portrait = scope:scheme.scheme_target_character
cooldown = { years = 10 }
trigger = {
any_scheme = { save_temporary_scope_as = scheme_temp }
scope:activity = {
any_attending_character = {
feast_default_joe_1010_agent_trigger = { SCHEME = scope:scheme_temp }
}
}
}
immediate = {
scope:activity = {
every_attending_character = {
limit = {
root = { any_scheme = { save_temporary_scope_as = scheme_temp } }
feast_default_joe_1010_agent_trigger = { SCHEME = scope:scheme_temp }
scope:agent_slot_temp = { is_filled = no } # prefer schemes with unfilled slots
}
alternative_limit = {
root = { any_scheme = { save_temporary_scope_as = scheme_temp } }
feast_default_joe_1010_agent_trigger = { SCHEME = scope:scheme_temp }
}
add_to_list = agent_list
scope:scheme_temp = { add_to_list = scheme_list }
}
}
random_in_list = { # Pick a scheme
list = scheme_list
weight = {
base = 1
modifier = { add = scheme_success_chance }
}
save_scope_as = scheme
}
random_in_list = { # Pick an agent
list = agent_list
limit = { feast_default_joe_1010_agent_trigger = { SCHEME = scope:scheme } }
weight = {
base = 1
modifier = { add = intrigue }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = scope:scheme.scheme_target_character }
}
save_scope_as = agent
}
}
option = { # Attract all
name = feast_default_joe.1010.a
trigger = {
custom_tooltip = {
text = feast_default_joe.1010.a.trigger
OR = {
intrigue >= decent_skill_rating
has_trait = schemer
}
}
}
skill = intrigue
show_as_unavailable = { always = yes }
custom_tooltip = {
text = all_guests_agent_more_likely_join_scheme_tt
scope:activity = {
every_attending_character = {
limit = {
is_valid_as_agent_in_any_slot = scope:scheme
trigger_if = {
limit = { exists = scope:scheme.scheme_target_character }
NOT = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:scheme.scheme_target_character }
}
}
}
scope:scheme = {
add_to_variable_list = {
name = increased_agent_join_acceptance
target = prev
months = 6
}
}
}
}
}
}
option = { # Focus on one
name = feast_default_joe.1010.b
custom_tooltip = {
text = agent_more_likely_join_scheme_tt
scope:scheme = {
add_to_variable_list = {
name = increased_agent_join_acceptance
target = scope:agent
months = 6
}
}
}
}
option = {
name = feast_default_joe.1010.c
add_prestige = medium_prestige_loss
scope:scheme = { change_opportunities = 1 }
}
option = {
name = feast_default_joe.1010.d
scope:scheme = { add_scheme_progress = 15 }
}
}

View file

@ -1,502 +0,0 @@
namespace = feast_default_laurence
#Bitter rebelious fellow vassal wants to murder your liege at your feast
feast_default_laurence.100 = {
type = activity_event
title = feast_default_laurence.100.t
desc = feast_default_laurence.100.desc
theme = feast_activity
override_background = { reference = corridor_night }
left_portrait = {
character = root
animation = personality_dishonorable
camera = camera_event_very_left
}
center_portrait = {
character = scope:conspiratorial_fellow
#animation = marshal_dagger
animation = marshal
camera = camera_event_left_forward
}
right_portrait = {
character = scope:intent_target
animation = wedding_drunk
camera = camera_event_right_away
}
cooldown = { years = 10 }
trigger = {
# Correct intent for vibes time.
has_activity_intent = murder_attendee_intent
# Some extra cautious validity checks.
intent_target ?= {
is_alive = yes
}
liege = intent_target
#Someone who has been in a war with our liege and therefore has a grudge
scope:activity = {
any_attending_character = {
this != root
is_ai = yes
any_memory = {
OR = {
has_memory_type = offensive_war
has_memory_type = defensive_war
}
any_memory_participant = {
this = root.intent_target
}
}
}
}
}
immediate = {
save_scope_as = feast_host
scope:activity = {
random_attending_character = {
limit = {
this != root
is_ai = yes
any_memory = {
OR = {
has_memory_type = offensive_war
has_memory_type = defensive_war
}
any_memory_participant = {
this = root.intent_target
}
}
}
save_scope_as = conspiratorial_fellow
random_memory = {
limit = {
OR = {
has_memory_type = offensive_war
has_memory_type = defensive_war
}
any_memory_participant = {
this = root.intent_target
}
}
save_scope_as = war_memory
}
}
}
intent_target = {
save_scope_as = intent_target
}
}
# You agree to turn a blind eye to his murder attempt on your liege
option = {
name = feast_default_laurence.100.a
scope:conspiratorial_fellow = {
duel = {
skill = intrigue
value = scope:intent_target.intrigue
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -39
}
min = 5
desc = feast_default_laurence.100.a.tt.success
scope:intent_target = {
trigger_event = feast_default_laurence.101
}
show_as_tooltip = {
scope:conspiratorial_fellow = {
unknown_murder_effect = {
VICTIM = scope:intent_target
MURDERER = scope:conspiratorial_fellow
REASON = death_murder
}
add_trait = murderer
}
}
}
70 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -39
}
min = 10
desc = feast_default_laurence.100.a.tt.failure
root = {
send_interface_toast = {
type = event_intrigue_bad
title = feast_default_laurence.100.a.tt.failure
left_icon = scope:intent_target
scope:conspiratorial_fellow = {
add_prestige = medium_prestige_loss
add_secret = {
type = secret_murder_attempt
target = scope:intent_target
}
reverse_add_opinion = {
target = scope:intent_target
modifier = suspicion_opinion
opinion = -60
}
}
}
}
}
}
}
stress_impact = {
brave = minor_stress_impact_loss
wrathful = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
content = medium_stress_impact_gain
calm = minor_stress_impact_gain
craven = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = craven
factor = 0
}
modifier = {
has_trait = brave
factor = 2
}
modifier = {
has_trait = calm
factor = 0
}
modifier = {
has_trait = wrathful
factor = 2
}
modifier = {
has_trait = content
factor = 0
}
modifier = {
has_trait = ambitious
factor = 2
}
}
}
# Simply gather information on HerHis habits and ticks.
option = {
name = feast_default_laurence.100.b
# Do we already have a scheme against them? If so, add the modifier immediately.
if = {
limit = {
any_scheme = {
scheme_type = murder
scheme_target_character = scope:intent_target
}
}
random_scheme = {
limit = {
scheme_type = murder
scheme_target_character = scope:intent_target
}
add_scheme_modifier = { type = feast_learnt_habits_modifier }
}
}
# Otherwise, note that we notify them that they'll gain a bonus to murdering this character if they start in the next X years.
else = {
# If we've already got someone logged for this, warn that we'll overwrite them.
if = {
limit = { has_variable = feast_events_ewan_0001_bonus_value }
custom_tooltip = feast_events_ewan.0001.e.tt.bonus_to_murder_scheme.overwrite
}
# Set the variable.
set_variable = {
name = feast_events_ewan_0001_bonus_value
value = scope:intent_target
years = feast_events_ewan_0001_murder_scheme_bonus_time_to_use_value
}
# Inform the player.
custom_tooltip = feast_events_ewan.0001.e.tt.bonus_to_murder_scheme
}
stress_impact = {
craven = miniscule_stress_impact_loss
wrathful = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
content = medium_stress_impact_gain
brave = minor_stress_impact_gain
calm = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = brave
factor = 0
}
modifier = {
has_trait = craven
factor = 2
}
modifier = {
has_trait = calm
factor = 0
}
modifier = {
has_trait = wrathful
factor = 2
}
modifier = {
has_trait = content
factor = 0
}
modifier = {
has_trait = ambitious
factor = 2
}
}
}
#Threaten conspiratorial_fellow and get hook
option = {
name = feast_default_laurence.100.c
if = {
limit = {
can_add_hook = {
target = scope:conspiratorial_fellow
type = suspicious_activity_hook
}
}
add_hook = {
type = suspicious_activity_hook
target = scope:conspiratorial_fellow
}
add_intrigue_lifestyle_xp = minor_lifestyle_xp
}
else = {
add_intrigue_lifestyle_xp = major_lifestyle_xp
}
stress_impact = {
paranoid = medium_stress_impact_loss
vengeful = minor_stress_impact_loss
deceitful = medium_stress_impact_loss
forgiving = miniscule_stress_impact_gain
honest = minor_stress_impact_gain
trusting = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = forgiving
factor = 0
}
modifier = {
has_trait = vengeful
factor = 2
}
modifier = {
has_trait = honest
factor = 0
}
modifier = {
has_trait = deceitful
factor = 2
}
modifier = {
has_trait = trusting
factor = 0
}
modifier = {
has_trait = paranoid
factor = 2
}
}
}
}
#You were killed by a vassal at another vassal's murder intent feast
feast_default_laurence.101 = {
type = activity_event
title = feast_default_laurence.100.t
desc = feast_default_laurence.101.desc
theme = feast_activity
left_portrait = {
character = scope:intent_target
animation = sick_stomach
camera = camera_event_very_left
}
right_portrait = {
character = scope:feast_host
animation = wedding_drunk
camera = camera_event_right_away
}
option = {
name = feast_default_laurence.101.a
scope:conspiratorial_fellow = {
unknown_murder_effect = {
VICTIM = scope:intent_target
MURDERER = scope:conspiratorial_fellow
REASON = death_murder
}
add_trait = murderer
}
scope:feast_host = {
trigger_event = feast_default_laurence.102
}
}
}
#Your guest succeeded at murdering your liege
feast_default_laurence.102 = {
type = activity_event
title = feast_default_laurence.100.t
desc = feast_default_laurence.102.desc
theme = feast_activity
left_portrait = {
character = scope:feast_host
animation = personality_dishonorable
camera = camera_event_very_left
}
center_portrait = {
character = scope:intent_target
animation = sick_stomach
camera = camera_event_very_left_activity
}
right_portrait = {
character = scope:conspiratorial_fellow
animation = sword_coup_degrace
camera = camera_event_right_away
}
#Befriend murderer but gain murder trait!
option = {
name = feast_default_laurence.102.a
add_intrigue_lifestyle_xp = minor_lifestyle_xp
set_relation_friend = {
reason = friend_bonded_over_sins
target = scope:conspiratorial_fellow
}
reverse_add_opinion = {
target = scope:conspiratorial_fellow
modifier = befriended_opinion
opinion = 50
}
scope:feast_host = {
add_trait = murderer
}
stress_impact = {
gregarious = medium_stress_impact_loss
trusting = medium_stress_impact_loss
shy = minor_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = shy
factor = 0
}
modifier = {
has_trait = gregarious
factor = 2
}
modifier = {
has_trait = paranoid
factor = 0
}
modifier = {
has_trait = trusting
factor = 2
}
}
}
#Attempt to imprison him for his crime
option = {
name = feast_default_laurence.102.b
flavor = feast_default_laurence.102.b.flavor
duel = {
skill = intrigue
value = scope:conspiratorial_fellow.intrigue
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -39
}
min = 10
send_interface_toast = {
type = event_intrigue_good
title = feast_default_laurence.102.b.tt.success
left_icon = scope:conspiratorial_fellow
rightfully_imprison_character_effect = {
TARGET = scope:conspiratorial_fellow
IMPRISONER = scope:feast_host
}
add_intrigue_lifestyle_xp = medium_lifestyle_xp
reverse_add_opinion = {
target = scope:conspiratorial_fellow
modifier = betrayed_me_opinion
opinion = -80
}
}
}
70 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -39
}
min = 5
send_interface_toast = {
type = event_intrigue_bad
title = feast_default_laurence.102.b.tt.fail
left_icon = scope:conspiratorial_fellow
reverse_add_opinion = {
target = scope:conspiratorial_fellow
modifier = betrayed_me_opinion
opinion = -30
}
}
desc = feast_default_laurence.102.b.tt.fail
}
}
stress_impact = {
deceitful = medium_stress_impact_loss
paranoid = medium_stress_impact_loss
arbitrary = minor_stress_impact_loss
honest = medium_stress_impact_gain
trusting = medium_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
factor = 2
}
modifier = {
has_trait = honest
factor = 0
}
modifier = {
has_trait = paranoid
factor = 2
}
modifier = {
has_trait = trusting
factor = 0
}
modifier = {
has_trait = arbitrary
factor = 2
}
modifier = {
has_trait = just
factor = 0
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,560 +0,0 @@
namespace = feast_events_flavor
#######################################
# By Veronica Pazos and Jay Zaborowski
# feast_events_flavor.0001 - Dynasty member of someone you have a relation with approaches you
# feast_events_flavor.0002 - A former rival reminisces with you
# Dynasty member of someone you have a relation with approaches you
# by Veronica Pazos
scripted_trigger feast_events_flavor_0001_appropriate_guest = {
is_ai = yes
is_adult = yes
NOR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
dynasty = root.dynasty
is_courtier_of = root
overlord ?= root
}
save_temporary_scope_as = guest_temp
dynasty ?= {
any_dynasty_member = {
NOT = { this = scope:guest_temp }
NOT = { is_spouse_of = scope:guest_temp } # We exclude their spouses to avoid weirdness
OR = {
AND = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } }
}
AND = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
NOT = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } }
}
}
}
}
}
feast_events_flavor.0001 = {
type = activity_event
title = feast_events_flavor.0001.t
desc = {
desc = feast_events_flavor.0001.desc.intro
first_valid = {
triggered_desc = {
trigger = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
}
desc = feast_events_flavor.0001.desc.good
}
desc = feast_events_flavor.0001.desc.bad
}
}
theme = feast_activity
left_portrait = {
character = root
triggered_animation = {
trigger = { has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target } }
animation = happiness
}
animation = dismissal
}
right_portrait = {
character = scope:guest
triggered_animation = {
trigger = {
root = { has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target } }
}
animation = toast_goblet
}
animation = schadenfreude
}
lower_left_portrait = scope:relation_target
cooldown = { years = 10 }
trigger = {
involved_activity = {
any_attending_character = {
feast_events_flavor_0001_appropriate_guest = yes
}
}
}
immediate = {
involved_activity = {
random_attending_character = {
limit = {
feast_events_flavor_0001_appropriate_guest = yes
}
save_scope_as = guest
dynasty = {
random_dynasty_member = {
limit = {
is_ai = yes
NOT = { this = scope:guest }
NOT = { is_spouse_of = scope:guest } # We exclude their spouses to avoid weirdness
OR = {
AND = {
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = root } }
}
AND = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
NOT = { has_any_good_relationship_with_character_trigger = { CHARACTER = root } }
}
}
}
save_scope_as = relation_target
}
}
}
}
}
option = { # Special diplo option
name = feast_events_flavor.0001.aa
trigger = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
has_trait = family_first
NOT = { is_allied_to = scope:guest }
}
custom_tooltip = feast_alliance_effect_tooltip
create_alliance = {
target = scope:guest
allied_through_owner = root
allied_through_target = scope:guest
}
stress_impact = {
callous = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = callous
factor = 0
}
}
}
option = { # If it's a good relationship, extend it
name = feast_events_flavor.0001.a
trigger = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
NOT = { has_relation_friend = scope:guest }
}
if = {
limit = {
has_activity_intent = befriend_attendee_intent
intent_target ?= scope:guest
}
complete_activity_intent = yes
}
set_relation_friend = {
target = scope:guest
reason = friend_feast_bonding
}
stress_impact = {
gregarious = major_stress_impact_loss
shy = medium_stress_impact_gain
callous = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = gregarious
factor = 2
}
modifier = {
OR = {
has_trait = shy
has_trait = callous
}
factor = 0
}
}
}
option = { # If it's a good relationship, sing their praises
name = feast_events_flavor.0001.b
trigger = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
}
add_prestige = minor_prestige_gain
every_vassal_or_below = {
limit = {
this != scope:guest
is_ai = yes
has_vassal_stance = courtly
is_vassal_of = root
}
custom = every_participating_courtly_vassal
add_opinion = {
modifier = feast_had_good_talk
target = root
opinion = 10
}
}
stress_impact = {
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = callous
factor = 0
}
}
}
option = { # If it's bad, double down
name = feast_events_flavor.0001.c
trigger = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
}
add_dread = minor_dread_gain
set_relation_rival = {
target = scope:guest
reason = rival_insulted_dynasty
}
stress_impact = {
callous = major_stress_impact_loss
vengeful = major_stress_impact_loss
wrathful = major_stress_impact_loss
compassionate = major_stress_impact_gain
craven = major_stress_impact_gain
calm = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
OR = {
has_trait = callous
has_trait = wrathful
has_trait = vengeful
}
factor = 2
}
modifier = {
OR = {
has_trait = compassionate
has_trait = craven
has_trait = calm
}
factor = 0
}
}
}
option = { # If it's bad, apologise
name = feast_events_flavor.0001.d
show_as_unavailable = {
has_trait = callous # We show it but we don't even let you click it kekw
}
trigger = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
NOT = { has_trait = callous }
}
if = {
limit = { has_relation_rival = scope:relation_target }
remove_relation_rival = scope:relation_target
}
else_if = {
limit = { has_relation_nemesis = scope:relation_target }
remove_relation_nemesis = scope:relation_target
}
else = {
scope:relation_target = {
add_opinion = {
target = root
modifier = apologized_opinion
opinion = 25
}
}
}
stress_impact = {
craven = major_stress_impact_loss
vengeful = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = forgiving
factor = 2
}
modifier = {
has_trait = vengeful
factor = 0
}
}
}
option = { # Enough talking about them
name = feast_events_flavor.0001.e
if = {
limit = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:relation_target }
}
scope:guest = {
add_opinion = {
target = root
modifier = feast_had_good_talk
opinion = 10
}
}
}
else = {
every_vassal_or_below = {
limit = {
this != scope:guest
is_ai = yes
has_vassal_stance = courtly
is_participant_in_activity = root.involved_activity
}
custom = every_participating_courtly_vassal
add_opinion = {
modifier = impressed_opinion
target = root
opinion = 10
}
}
}
stress_impact = {
base = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = craven
factor = 0
}
}
}
}
# A former rival reminisces with you
# By Jay Zaborowski
feast_events_flavor.0002 = {
type = activity_event
title = feast_events_flavor.0002.t
desc = feast_events_flavor.0002.desc
theme = feast_activity
right_portrait = {
character = root
animation = laugh
}
left_portrait = {
character = scope:former_rival
animation = drink_goblet
}
cooldown = { years = 10 }
trigger = {
involved_activity = {
any_attending_character = {
NOT = { this = root }
is_physically_able_ai_adult = yes
any_memory = {
OR = {
has_memory_type = stopped_being_rivals
has_memory_type = let_go_of_rivalry
}
memory_participant:rival = root
}
}
}
}
immediate = {
involved_activity = {
random_attending_character = {
limit = {
NOT = { this = root }
is_physically_able_ai_adult = yes
any_memory = {
OR = {
has_memory_type = stopped_being_rivals
has_memory_type = let_go_of_rivalry
}
memory_participant:rival = root
}
}
save_scope_as = former_rival
get_quirk_character_effect = yes
}
}
}
option = { # Seduce
name = feast_events_flavor.0002.a
trigger = {
trigger_if = {
limit = { is_married = yes }
OR = {
might_cheat_on_every_partner_trigger = yes
is_ai = no # Players can do as they like
}
}
OR = {
has_trait = lustful
has_trait = rakish
has_trait = seducer
has_trait = deviant
}
is_attracted_to_gender_of = scope:former_rival
scope:former_rival = { is_attracted_to_gender_of = root }
}
trait = lustful
trait = rakish
trait = seducer
trait = deviant
had_sex_with_effect = {
CHARACTER = scope:former_rival
PREGNANCY_CHANCE = pregnancy_chance
}
progress_towards_lover_effect = {
CHARACTER = scope:former_rival
REASON = lover_distracting_sex
OPINION = default_lover_opinion
}
stress_impact = {
chaste = medium_stress_impact_gain
celibate = major_stress_impact_gain
vengeful = major_stress_impact_gain
forgiving = medium_stress_impact_loss
}
ai_chance = {
base = 200
}
}
option = { # Become friends
name = feast_events_flavor.0002.b
trigger = { can_set_relation_friend_trigger = { CHARACTER = scope:former_rival } }
set_relation_friend = { reason = friend_feast_recounted_rivalry target = scope:former_rival }
stress_impact = {
gregarious = major_stress_impact_loss
forgiving = major_stress_impact_loss
vengeful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
opinion = {
value <= medium_negative_opinion
target = scope:former_rival
}
}
}
modifier = {
factor = 2
has_trait = gregarious
}
}
}
option = { # Time to go back to old times - give prestige
name = feast_events_flavor.0002.c
trigger = { can_set_relation_rival_trigger = { CHARACTER = scope:former_rival } }
set_relation_rival = { reason = rival_bad_chemistry target = scope:former_rival }
add_prestige = medium_prestige_gain
if = {
limit = {
OR = {
faith = { trait_is_virtue = forgiving }
faith = { trait_is_sin = vengeful }
}
}
custom_tooltip = feast_events_flavor.0002.c.vengeful_sinful.tt #This will lose you piety because Forgiving is Virtuous or Vengeful is Sinful
add_piety = major_piety_loss
}
if = {
limit = {
OR = {
faith = { trait_is_sin = forgiving }
faith = { trait_is_virtue = vengeful }
}
}
custom_tooltip = feast_events_flavor.0002.c.forgiving_sinful.tt #This will lose you piety because Forgiving is Virtuous or Vengeful is Sinful
add_piety = major_piety_gain
}
stress_impact = {
forgiving = medium_stress_impact_gain
vengeful = major_stress_impact_loss
}
ai_chance = {
base = 0
modifier = {
add = 10 # Not enough on its own to be Vengeful
has_trait = vengeful
}
modifier = {
add = 100
opinion = {
value <= medium_negative_opinion
target = scope:former_rival
}
}
modifier = {
factor = 0
OR = {
has_trait = forgiving
has_trait = craven # Isn't about to start a fight
}
}
}
}
option = { # It feels good to turn the other cheek!
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
faith = { trait_is_virtue = forgiving }
faith = { trait_is_sin = vengeful }
}
}
desc = feast_events_flavor.0002.d.virtuous
}
desc = feast_events_flavor.0002.d
}
}
}
if = {
limit = {
OR = {
faith = { trait_is_virtue = forgiving }
faith = { trait_is_sin = vengeful }
}
}
custom_tooltip = feast_events_flavor.0002.d.virtuous.tt # This option is available because Forgiving is Virtuous or Vengeful is Sinful
add_piety = major_piety_gain
add_character_modifier = { modifier = feast_turning_the_other_cheek_modifier years = 10 }
}
else_if = {
limit = {
NOR = {
faith = { trait_is_sin = forgiving }
faith = { trait_is_virtue = vengeful }
}
}
add_piety = medium_piety_gain
}
reverse_add_opinion = {
target = scope:former_rival
modifier = friendliness_opinion
opinion = 10
}
stress_impact = {
base = minor_stress_impact_loss
forgiving = medium_stress_impact_loss
}
ai_chance = {
base = 150
}
}
}

View file

@ -1,137 +0,0 @@

namespace = feast_events_klank
feast_events_klank.1001 = {
type = activity_event
title = feast_events_klank.1001.t
desc = feast_events_klank.1001.desc
theme = feast_activity
right_portrait = {
character = scope:terrified_onlooker
animation = shock
camera = camera_event_right_away
}
left_portrait = {
character = root
animation = scheme
camera = camera_event_very_left
}
center_portrait = {
character = scope:fellow_torturer
animation = assassin
camera = camera_event_very_right
}
cooldown = { years = 10 }
trigger = {
has_trait = torturer
NOT = {
has_trait = gluttonous
}
involved_activity = {
any_attending_character = {
has_trait = torturer
is_ai = yes
opinion = {
target = root
value >= 20
}
intrigue <= root.intrigue
NOT = {
this = root
}
}
any_attending_character = {
NOR = {
has_trait = torturer
has_trait = callous
has_trait = sadistic
this = root
}
}
}
}
immediate = {
set_random_entertainment_text_effect = yes
involved_activity = {
random_attending_character = {
limit = {
has_trait = torturer
is_ai = yes
intrigue <= root.intrigue
opinion = {
target = root
value >= medium_positive_opinion
}
NOT = {
this = root
}
}
save_scope_as = fellow_torturer
}
random_attending_character = {
limit = {
NOR = {
has_trait = torturer
has_trait = callous
has_trait = sadistic
NOT = {
this = root
}
}
}
save_scope_as = terrified_onlooker
}
}
}
option = { #nah, the other way is better
name = feast_events_klank.1001.a
add_intrigue_lifestyle_xp = major_lifestyle_xp
scope:fellow_torturer = {
add_intrigue_lifestyle_xp = major_lifestyle_xp
add_intrigue_skill = 1
}
}
option = { #yeah, you're right
name = feast_events_klank.1001.b
progress_towards_friend_effect = {
REASON = friend_common_interests
CHARACTER = scope:fellow_torturer
OPINION = default_friend_opinion
}
add_intrigue_lifestyle_xp = minor_lifestyle_xp
scope:fellow_torturer = {
add_intrigue_lifestyle_xp = minor_lifestyle_xp
}
}
option = { #actually, I've been thinking recently
name = feast_events_klank.1001.c
trigger = {
learning >= 16
}
show_as_unavailable = { always = yes }
add_intrigue_lifestyle_perk_points = 1
add_prestige = medium_prestige_gain
progress_towards_friend_effect = {
REASON = friend_common_interests
CHARACTER = scope:fellow_torturer
OPINION = default_friend_opinion
}
scope:fellow_torturer = {
add_intrigue_lifestyle_perk_points = 1
add_intrigue_skill = 1
}
ai_chance = {
base = 200
}
}
}

View file

@ -1,95 +0,0 @@
namespace = feast_mkc
feast_mkc.0001 = {
type = activity_event
title = feast_mkc.0001.t
desc = feast_mkc.0001.desc
theme = feast_activity
left_portrait = {
character = ROOT
animation = thinking
camera = camera_event_very_left
}
right_portrait = {
character = scope:guest_lost_loved_pet
animation = sadness
camera = camera_event_very_right
}
cooldown = { years = 10 }
trigger = {
has_named_cat_trigger = yes
scope:activity = {
any_attending_character = {
NOT = { ROOT = this }
any_memory = {
has_memory_type = cat_died
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
NOT = { ROOT = this }
any_memory = { has_memory_type = cat_died }
}
save_scope_as = guest_lost_loved_pet
}
}
random_owned_story = {
limit = {
story_type = story_cycle_pet_cat
}
save_scope_as = pet_cat_story
}
}
option = {
name = feast_mkc.0001.a
scope:guest_lost_loved_pet = {
stress_impact = {
base = medium_stress_impact_loss
}
add_opinion = {
modifier = feast_helped_overcome_loss_opinion
target = root
}
hidden_effect = {
reverse_add_opinion = {
modifier = feast_sympathy_over_loss_opinion
target = root
}
}
}
stress_impact = {
compassionate = minor_stress_impact_loss
}
}
option = {
name = feast_mkc.0001.b
scope:guest_lost_loved_pet = {
stress_impact = {
base = minor_stress_impact_loss
}
}
custom_tooltip = bonus_to_petting_pet_tt
hidden_effect = {
scope:pet_cat_story = {
set_variable = {
name = bonus_to_petting_pet
}
}
}
}
}

View file

@ -1,206 +0,0 @@
namespace = feast_events_tova
feast_events_tova.0001 = { #Pleasure Dome Feast
type = activity_event
title = feast_events_tova.0001.t
desc = feast_events_tova.0001.desc
theme = feast_activity
override_background = { reference = mpo_city_steppe }
left_portrait = {
character = root
animation = schadenfreude
}
center_portrait = {
character = scope:palace_admirer
animation = admiration
}
right_portrait = {
character = scope:honorary_guest
animation = thinking
}
cooldown = { years = 20 }
trigger = {
has_mpo_dlc_trigger = yes
scope:activity.activity_location = {
has_building_or_higher = pleasure_dome
}
this = scope:activity.activity_host
involved_activity = {
any_attending_character = {
highest_held_title_tier >= tier_county
this != root
}
}
}
immediate = {
if = {
limit = {
exists = scope:activity.special_guest:honorary_guest
}
scope:activity.special_guest:honorary_guest = { save_scope_as = honorary_guest }
}
else_if = {
limit = { exists = scope:activity.special_guest:honorary_guest_regular }
scope:activity.special_guest:honorary_guest_regular = { save_scope_as = honorary_guest }
}
else = {
involved_activity = {
random_attending_character = {
limit = {
highest_held_title_tier >= tier_county
this != root
}
save_scope_as = honorary_guest
}
}
}
involved_activity = {
random_attending_character = {
limit = {
NOT = { this = root }
NAND = {
exists = scope:honorary_guest
this = scope:honorary_guest
}
}
save_scope_as = palace_admirer
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 1.5
involved_activity = {
has_activity_option = {
category = special_type
option = feast_type_tsagaan_sar
}
}
}
}
option = { #A place worthy to host such mighty warriors as us!
name = feast_events_tova.0001.a
trigger = {
involved_activity = {
any_attending_character = {
is_vassal_of = root
has_vassal_stance = glory_hound
}
}
}
add_prestige = minor_prestige_loss
involved_activity = {
every_attending_character = {
limit = {
is_vassal_of = root
has_vassal_stance = glory_hound
}
custom = every_glory_hound_vassal
add_opinion = {
target = root
modifier = obedience_opinion
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = humble
factor = 0
}
modifier = {
has_trait = arrogant
factor = 2
}
}
stress_impact = {
arrogant = medium_stress_impact_loss
humble = major_stress_impact_gain
}
}
option = { #Impress most important guest.
name = feast_events_tova.0001.b
duel = {
target = scope:honorary_guest
skill = diplomacy
50 = { #They are impressed by your opulence
desc = feast_events_tova.0001.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
send_interface_toast = {
type = event_toast_effect_good
title = feast_events_tova.0001.b.success
left_icon = root
right_icon = scope:honorary_guest
add_hook = {
target = scope:honorary_guest
type = loyalty_hook
}
}
}
50 = { #They are not impressed by your palace
desc = feast_events_tova.0001.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 5
send_interface_toast = {
type = event_toast_effect_bad
title = feast_events_tova.0001.b.failure
left_icon = root
right_icon = scope:honorary_guest
add_hook = {
target = scope:honorary_guest
type = favor_hook
}
stress_impact = {
base = miniscule_stress_gain
diligent = miniscule_stress_gain
ambitious = miniscule_stress_gain
}
}
}
}
ai_chance = {
base = 100
}
}
option = { #Truly, this is a great testament to my rule.
name = feast_events_tova.0001.c
dynasty = {
add_dynasty_prestige = medium_dynasty_prestige_value
}
stress_impact = {
base = medium_stress_impact_loss
}
ai_chance = {
base = 100
}
}
}

View file

@ -1,489 +0,0 @@

namespace = feast_default_alex
# Someone reminds you of a positive memory you share
feast_default_alex.100 = {
type = activity_event
title = feast_default_alex.100.t
desc = feast_default_alex.100.desc
theme = feast_activity
right_portrait = {
character = scope:guest
animation = wedding_drunk
camera = camera_event_very_right
}
center_portrait = {
character = root
animation = interested
}
left_portrait = {
character = scope:other_guest
animation = storyteller
camera = camera_event_very_left
}
cooldown = { years = 10 }
trigger = {
scope:activity = {
any_attending_character = {
this != root
is_physically_able_ai_adult = yes
NOT = { has_relation_rival = root }
any_memory = {
has_memory_category = positive
NOT = {
has_memory_category = private
}
any_memory_participant = {
this = root
}
}
opinion = {
target = root
value > 0
}
save_temporary_scope_as = guest_temp
}
#There is a third attendee in existence
any_attending_character = {
count >= 2
NOT = {
this = root
}
opinion = {
target = root
value > 0
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 3
has_activity_intent = befriend_attendee_intent
intent_target ?= {
involved_activity ?= root.involved_activity
is_physically_able_ai_adult = yes
NOT = { has_relation_rival = root }
any_memory = {
has_memory_category = positive
any_memory_participant = {
this = root
}
NOT = {
has_memory_category = private
}
}
opinion = {
target = root
value > 0
}
}
}
}
immediate = {
save_scope_as = root_scope
scope:activity = {
activity_host = { save_scope_as = host }
random_attending_character = {
limit = {
this != root
is_physically_able_ai_adult = yes
NOT = { has_relation_rival = root }
any_memory = {
has_memory_category = positive
any_memory_participant = {
this = root
}
NOT = {
has_memory_category = private
}
}
opinion = {
target = root
value > 0
}
}
weight = {
base = 1
modifier = {
add = 1000
root = {
has_activity_intent = befriend_attendee_intent
}
root.intent_target ?= this
}
modifier = {
add = 50
has_relation_potential_friend = root
}
modifier = {
add = 10
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 5
is_of_minor_interest_to_root_trigger = yes
}
}
assign_quirk_effect = yes
save_scope_as = guest
random_memory = {
limit = {
has_memory_category = positive
any_memory_participant = {
this = root
}
NOT = {
has_memory_category = private
}
}
save_scope_as = guest_memory
}
}
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:guest
}
opinion = {
target = root
value > 0
}
}
save_scope_as = other_guest
}
}
}
option = {
trigger = {
OR = {
has_trait = arrogant
has_trait = callous
has_trait = sadistic
has_trait = vengeful
has_trait = wrathful
has_trait = arbitrary
has_trait = fickle
}
scope:guest = {
NOR = {
is_spouse_of = root
is_close_family_of = root
any_vassal = {
this = root
}
}
}
}
name = feast_default_alex.100.aa
add_prestige = minor_prestige_gain
reverse_add_opinion = {
modifier = insulted_opinion
target = scope:guest
opinion = -30
}
scope:guest = {
add_stress = medium_stress_gain
add_prestige = medium_prestige_loss
}
stress_impact = {
gregarious = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
humble = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
ai_chance = {
base = 3
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = compassionate
has_trait = humble
has_trait = forgiving
}
}
}
}
option = {
name = feast_default_alex.100.a
progress_towards_friend_effect = {
REASON = friend_showed_personal_interest
CHARACTER = scope:guest
OPINION = 20
}
stress_impact = {
gregarious = medium_stress_impact_loss
}
}
option = {
name = feast_default_alex.100.b
add_diplomacy_lifestyle_xp = miniscule_lifestyle_xp
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 1
modifier = {
factor = 0
stress <= 0
has_focus_diplomacy = no
}
}
}
}
# There's a terrible plague in a nearby realm
feast_default_alex.200 = {
type = activity_event
title = feast_default_alex.200.t
desc = feast_default_alex.200.desc
theme = feast_activity
center_portrait = {
character = root
animation = drink_goblet
}
right_portrait = {
character = scope:guest
animation = worry
}
cooldown = { years = 10 }
trigger = {
scope:activity = {
any_attending_character = {
this != root
is_physically_able_ai_adult = yes
NOT = { has_relation_rival = root }
top_liege = root.top_liege
OR = {
has_personality_emotional_trigger = yes
has_personality_submissive_trigger = yes
}
}
}
any_epidemic = {
save_temporary_scope_as = the_epidemic
any_infected_province = {
squared_distance = {
target = root.location
value <= squared_distance_large
}
exists = barony.holder.top_liege
}
NOT = {
any_infected_province = {
barony.holder.top_liege ?= root.involved_activity.activity_host.top_liege
}
}
}
}
immediate = {
save_scope_as = root_scope
scope:activity = {
activity_host = { save_scope_as = host }
random_attending_character = {
limit = {
this != root
is_physically_able_ai_adult = yes
NOT = { has_relation_rival = root }
top_liege = root.top_liege
OR = {
has_personality_emotional_trigger = yes
has_personality_submissive_trigger = yes
}
}
weight = {
base = 1
modifier = {
add = 1000
root = {
has_activity_intent = befriend_attendee_intent
}
root.intent_target ?= this
}
modifier = {
add = 50
has_relation_potential_friend = root
}
modifier = {
add = 10
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 5
is_of_minor_interest_to_root_trigger = yes
}
}
assign_quirk_effect = yes
save_scope_as = guest
}
}
random_epidemic = {
limit = {
save_temporary_scope_as = the_epidemic
any_infected_province = {
squared_distance = {
target = root.location
value <= squared_distance_large
}
exists = barony.holder.top_liege
}
NOT = {
any_infected_province = {
barony.holder.top_liege ?= root.involved_activity.activity_host.top_liege
}
}
}
save_scope_as = epidemic
random_infected_province = {
limit = {
squared_distance = {
target = root.location
value <= squared_distance_large
}
exists = barony.holder.top_liege
}
barony.holder.top_liege = { save_scope_as = afflicted_top_liege }
}
}
hidden_effect = {
create_character = {
template = peasant_character
dynasty = none
location = root.location
culture = root.location.culture
faith = root.location.faith
gender_female_chance = 50
save_scope_as = sick_peasant
}
scope:sick_peasant = {
add_trait = scope:epidemic.epidemic_type.epidemic_trait
}
}
}
option = {
name = feast_default_alex.200.a
trigger = {
this = scope:activity.activity_host
scope:activity.activity_location.county = {
holder = scope:activity.activity_host
NOT = {
has_county_modifier = plague_preparations_modifier
}
}
}
remove_short_term_gold = miniscule_gold_value
add_prestige = minor_prestige_gain
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = plague_preparations_modifier
years = 10
}
}
scope:guest = {
add_opinion = {
target = root
modifier = thankful_opinion
opinion = 20
}
stress_impact = {
base = medium_stress_impact_loss
}
}
stress_impact = {
craven = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
generous = medium_stress_impact_loss
}
}
option = {
name = feast_default_alex.200.b
trigger = {
has_activity_intent = befriend_attendee_intent
intent_target ?= scope:guest
}
add_internal_flag = special
progress_towards_friend_effect = {
REASON = friend_supported_at_feast
CHARACTER = scope:guest
OPINION = 20
}
scope:guest = {
stress_impact = {
base = minor_stress_impact_loss
}
}
stress_impact = {
sadistic = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
compassionate = medium_stress_impact_loss
}
ai_chance = {
base = 1
modifier = {
factor = 0
OR = {
has_trait = sadistic
has_trait = arbitrary
}
}
}
}
option = {
name = feast_default_alex.200.c
add_piety = minor_piety_gain
stress_impact = {
zealous = minor_stress_impact_loss
humble = minor_stress_impact_loss
compassionate = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
cynical = medium_stress_impact_gain
}
scope:guest = {
stress_impact = {
base = minor_stress_impact_loss
cynical = minor_stress_impact_gain
}
}
ai_chance = {
base = 1
modifier = {
factor = 0
has_trait = cynical
}
}
}
option = {
name = feast_default_alex.200.d
stress_impact = {
base = minor_stress_impact_loss
}
scope:guest = {
stress_impact = {
base = minor_stress_impact_gain
}
}
}
after = {
scope:sick_peasant = { silent_disappearance_effect = yes }
}
}

View file

@ -1,941 +0,0 @@
# FEAST ACTIVITY KEY EVENTS
# Most custom variables checked here will have been set by the "welcoming" events in feast_activity_standard_events
# Each unique key event gets a range of 50 IDs. This should more than suffice in all cases.
namespace = feast_main_befriend
################################
# Feast Befriend Events
# by Petter Vilberg
################################
###
# Weight and setup event
###
feast_main_befriend.0001 = {
type = activity_event
hidden = yes
trigger = {
not_hosting_a_murder_feast = yes
OR = {
AND = {
scope:activity = {
has_variable = potential_friend
}
scope:activity.var:potential_friend = {
opinion = {
target = scope:activity.activity_host
value > 20
}
}
}
AND = {
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
scope:activity = {
any_attending_character = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
NOT = { has_relation_friend = root }
opinion = {
target = scope:activity.activity_host
value > 35
}
}
}
}
}
weight_multiplier = {
base = 1
opinion_modifier = {
trigger = { exists = scope:activity.var:potential_friend }
who = scope:activity.var:potential_friend
opinion_target = scope:activity.activity_host
multiplier = 0.1
step = 0.1
}
modifier = {
add = 2
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
modifier = {
add = -0.5
NOT = { has_activity_intent = befriend_attendee_intent }
NOT = {
scope:activity = {
has_variable = potential_friend
}
}
}
modifier = {
add = -0.5
is_ai = yes
}
}
immediate = {
if = {
limit = {
scope:activity = {
has_variable = potential_friend
var:potential_friend = {
opinion = {
target = scope:activity.activity_host
value > 20
}
}
}
}
scope:activity.var:potential_friend = {
save_scope_as = potential_friend
}
}
else_if = {
limit = {
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
intent_target = {
save_scope_as = potential_friend
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
NOT = { has_relation_friend = root }
opinion = {
target = scope:activity.activity_host
value > 35
}
}
save_scope_as = potential_friend
}
}
}
scope:activity = {
random_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
this != scope:potential_friend
highest_held_title_tier > 1
OR = {
has_trait = arrogant
has_trait = vengeful
}
}
save_scope_as = arrogant_guest
}
random_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
this != scope:potential_friend
trigger_if = {
limit = { exists = scope:arrogant_guest }
this != scope:arrogant_guest
}
highest_held_title_tier > 1
OR = {
has_trait = humble
has_trait = compassionate
any_secret = {
type = secret_cannibal
}
}
}
save_scope_as = kind_to_lower_nobility
}
if = {
limit = {
exists = scope:kind_to_lower_nobility
scope:kind_to_lower_nobility = {
any_secret = { type = secret_cannibal }
}
}
random_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
this != scope:potential_friend
trigger_if = {
limit = { exists = scope:arrogant_guest }
this != scope:arrogant_guest
}
trigger_if = {
limit = { exists = scope:kind_to_lower_nobility }
this != scope:kind_to_lower_nobility
}
OR = {
has_trait = gluttonous
has_trait = lifestyle_reveler
}
}
save_scope_as = glutton_target
}
}
activity_host = {
trigger_event = feast_main_befriend.1001
}
scope:potential_friend = {
trigger_event = feast_main_befriend.2001
}
if = {
limit = {
exists = scope:arrogant_guest
}
scope:arrogant_guest = {
trigger_event = feast_main_befriend.2002
}
}
if = {
limit = {
exists = scope:kind_to_lower_nobility
}
scope:kind_to_lower_nobility = {
trigger_event = feast_main_befriend.2003
}
}
if = {
limit = {
exists = scope:glutton_target
}
scope:glutton_target = {
trigger_event = feast_main_befriend.2004
}
}
every_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
this != scope:potential_friend
trigger_if = {
limit = { exists = scope:arrogant_guest }
this != scope:arrogant_guest
}
trigger_if = {
limit = { exists = scope:kind_to_lower_nobility }
this != scope:kind_to_lower_nobility
}
trigger_if = {
limit = { exists = scope:glutton_target }
this != scope:glutton_target
}
}
trigger_event = feast_main_befriend.3001
}
}
}
}
##########################
# Main event for Host
##########################
feast_main_befriend.1001 = {
title = feast_main_befriend.1001.t
type = activity_event
desc = {
desc = feast_main_befriend.1001.opening
desc = feast_main_befriend.1001.getting_close
triggered_desc = {
trigger = { exists = scope:arrogant_guest }
desc = {
desc = feast_main_befriend.1001.arrogant_guest
triggered_desc = {
trigger = { exists = scope:kind_to_lower_nobility }
desc = feast_main_befriend.1001.arrogant_kind_link
}
}
}
first_valid = {
triggered_desc = {
trigger = { exists = scope:kind_to_lower_nobility }
desc = {
desc = feast_main_befriend.1001.kind_to_lower_nobility
triggered_desc = {
trigger = {
scope:kind_to_lower_nobility = {
any_secret = { type = secret_cannibal }
}
}
desc = feast_main_befriend.1001.really_hungry
}
}
}
desc = feast_main_befriend.1001.no_kind_target
}
desc = feast_main_befriend.1001.friendship
}
theme = feast_activity
center_portrait = {
character = root
animation = toast
}
right_portrait = {
character = scope:potential_friend
animation = happiness
}
lower_right_portrait = scope:kind_to_lower_nobility
trigger = {
OR = {
any_scheme = {
type = befriend
scheme_target_character = {
involved_activity ?= scope:activity
}
}
AND = {
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
scope:activity = {
any_attending_character = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
NOT = { has_relation_friend = root }
opinion = {
target = scope:activity.activity_host
value > 35
}
}
}
}
}
immediate = {
play_music_cue = mx_cue_meadandwine
if = {
limit = {
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
intent_target = { save_scope_as = potential_friend }
}
else_if = {
limit = {
any_scheme = {
type = befriend
scheme_target_character = {
involved_activity ?= scope:activity
}
}
}
random_scheme = {
type = befriend
limit = {
scheme_target_character = {
involved_activity ?= scope:activity
}
}
scheme_target_character = {
save_scope_as = potential_friend
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
NOT = { has_relation_friend = root }
opinion = {
target = scope:activity.activity_host
value > 35
}
}
save_scope_as = potential_friend
}
}
}
}
option = {
name = feast_main_befriend.1001.a
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:potential_friend }
}
set_relation_friend = { reason = friend_feast_talking_and_laughing target = scope:potential_friend }
# Complete activity intent if relevant
if = {
limit = {
exists = involved_activity
has_activity_intent = befriend_attendee_intent
intent_target ?= scope:potential_friend
intent_target.involved_activity ?= root.involved_activity
}
save_scope_as = intent_completer
send_interface_toast = {
title = activity_intent_complete_toast
left_icon = scope:potential_friend
complete_activity_intent = yes
}
}
}
else = {
progress_towards_friend_effect = {
REASON = friend_feast_talking_and_laughing
CHARACTER = scope:potential_friend
OPINION = default_friend_opinion
}
}
if = {
limit = {
any_scheme = {
type = befriend
scheme_target_character = scope:potential_friend
}
}
random_scheme = {
type = befriend
limit = {
scheme_target_character = scope:potential_friend
}
end_scheme = yes
}
}
}
after = {
hidden_effect = {
# Fire the end events
trigger_event = {
id = feast_main_befriend.5001
days = 10
}
}
}
}
##########################
# Main Event for Potential Friend
##########################
feast_main_befriend.2001 = {
title = feast_main_befriend.2001.t
type = activity_event
desc = {
desc = feast_main_befriend.1001.opening
desc = feast_main_befriend.2001.getting_close
triggered_desc = {
trigger = { exists = scope:arrogant_guest }
desc = {
desc = feast_main_befriend.2001.arrogant_guest
triggered_desc = {
trigger = { exists = scope:kind_to_lower_nobility }
desc = feast_main_befriend.2001.arrogant_kind_link
}
}
}
first_valid = {
triggered_desc = {
trigger = { exists = scope:kind_to_lower_nobility }
desc = {
desc = feast_main_befriend.2001.kind_to_lower_nobility
triggered_desc = {
trigger = {
scope:kind_to_lower_nobility = {
any_secret = { type = secret_cannibal }
}
}
desc = feast_main_befriend.2001.really_hungry
}
}
}
desc = feast_main_befriend.2001.no_kind_target
}
desc = feast_main_befriend.2001.friendship
}
theme = feast_activity
left_portrait = root
right_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:kind_to_lower_nobility
lower_right_portrait = scope:arrogant_guest
option = {
name = feast_main_befriend.2001.a
add_prestige = medium_prestige_gain
show_as_tooltip = {
set_relation_friend = scope:activity.activity_host
hidden_effect = {
add_opinion = {
target = scope:activity.activity_host
modifier = bonded_at_feast_opinion
}
}
}
}
}
##########################
# Main Event for Arrogant Guest
##########################
feast_main_befriend.2002 = {
title = feast_main_befriend.2002.t
type = activity_event
desc = {
desc = feast_main_befriend.1001.opening
desc = feast_main_befriend.2002.arrogant_guest
triggered_desc = {
trigger = {
exists = scope:kind_to_lower_nobility
}
desc = feast_main_befriend.2002.disgusted_by_kindness
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
right_portrait = {
character = scope:kind_to_lower_nobility
animation = personality_compassionate
}
option = {
name = feast_main_befriend.2002.a
add_prestige = medium_prestige_loss
if = {
limit = {
exists = scope:kind_to_lower_nobility
}
add_opinion = {
modifier = disgusted_by_humility_opinion
target = scope:kind_to_lower_nobility
}
progress_towards_rival_effect = {
CHARACTER = scope:kind_to_lower_nobility
REASON = rival_feast_commoners
OPINION = 0
}
}
if = {
limit = {
faith = { has_doctrine_parameter = host_honored_guests_active }
}
custom_description_no_bullet = {
text = feast_main_befriend.2002.because_of_hospitality_tenet
}
add_piety = medium_piety_loss
}
}
}
##########################
# Main Event for Kind to Nobility
##########################
feast_main_befriend.2003 = {
title = feast_main_befriend.2003.t
type = activity_event
desc = {
desc = feast_main_befriend.2003.opening
triggered_desc = {
trigger = { exists = scope:arrogant_guest }
desc = feast_main_befriend.2003.arrogant_guest
}
first_valid = {
triggered_desc = {
trigger = {
any_secret = { type = secret_cannibal }
exists = scope:glutton_target
}
desc = feast_main_befriend.2003.kind_to_glutton
}
triggered_desc = {
trigger = {
any_secret = { type = secret_cannibal }
}
desc = feast_main_befriend.2003.cannibal_kindness
}
desc = feast_main_befriend.2003.kind_to_lower_nobility
}
desc = feast_main_befriend.2003.ending
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:arrogant_guest
option = {
name = feast_main_befriend.2003.a
scope:activity = {
every_attending_character = {
limit = {
feast_default_participant_trigger = yes
trigger_if = {
limit = { exists = scope:arrogant_guest }
this != scope:arrogant_guest
}
}
add_opinion = {
target = root
modifier = impressed_with_humility_opinion
}
}
}
if = {
limit = {
exists = scope:arrogant_guest
}
show_as_tooltip = {
scope:arrogant_guest = {
add_prestige = minor_prestige_loss
}
}
}
}
}
##########################
# Main Event for Glutton Target
##########################
feast_main_befriend.2004 = {
title = feast_main_befriend.2004.t
type = activity_event
desc = {
desc = feast_main_befriend.2003.opening
triggered_desc = {
trigger = { exists = scope:arrogant_guest }
desc = feast_main_befriend.2004.arrogant_guest
}
desc = feast_main_befriend.2004.kindness_from_other
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
right_portrait = {
character = scope:kind_to_lower_nobility
animation = personality_compassionate
}
lower_right_portrait = scope:arrogant_guest
option = {
name = feast_main_befriend.2004.a
stress_impact = {
base = medium_stress_loss
}
progress_towards_friend_effect = {
REASON = friend_had_a_great_feast_together
CHARACTER = scope:kind_to_lower_nobility
OPINION = 0
}
hidden_effect = {
if = {
limit = {
exists = scope:kind_to_lower_nobility
NOT = { has_trait = arrogant }
}
add_opinion = {
modifier = impressed_with_humility_opinion
target = scope:kind_to_lower_nobility
}
}
}
}
}
##########################
# Generic Main Event for Guests
##########################
feast_main_befriend.3001 = {
title = feast_main_befriend.3001.t
type = activity_event
desc = {
desc = feast_main_befriend.2003.opening
triggered_desc = {
trigger = { exists = scope:arrogant_guest }
desc = {
desc = feast_main_befriend.3001.arrogant_guest
triggered_desc = {
trigger = { exists = scope:kind_to_lower_nobility }
desc = feast_main_befriend.1001.arrogant_kind_link
}
}
}
first_valid = {
triggered_desc = {
trigger = { exists = scope:kind_to_lower_nobility }
desc = {
desc = feast_main_befriend.3001.kind_to_lower_nobility
triggered_desc = {
trigger = {
scope:kind_to_lower_nobility = {
any_secret = { type = secret_cannibal }
}
}
desc = feast_main_befriend.3001.really_hungry
}
}
}
}
desc = feast_main_befriend.3001.ending
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:arrogant_guest
option = {
name = feast_main_befriend.3001.a
if = {
limit = {
exists = scope:kind_to_lower_nobility
NOT = { has_trait = arrogant }
}
add_opinion = {
modifier = impressed_with_humility_opinion
target = scope:kind_to_lower_nobility
}
}
}
}
##########################################################
# END EVENTS
# 5000-5999
##########################################################
# Fire End Events
feast_main_befriend.5001 = {
type = activity_event
hidden = yes
trigger = {
#verify that the activity still exists
exists = scope:activity
}
immediate = {
scope:activity = {
activity_host = {
save_scope_as = host_saying_goodbye
if = {
limit = { exists = primary_partner }
random_consort = {
limit = {
this = scope:activity.activity_host.primary_partner
is_available_ai = yes
}
alternative_limit = {
is_available_ai = yes
}
save_scope_as = spouse
}
}
scope:potential_friend = {
trigger_event = feast_main_befriend.5003
}
}
every_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
this != scope:potential_friend
}
trigger_event = feast_main_befriend.5004
}
activity_host = { trigger_event = feast_main_befriend.5002 }
}
}
}
#################
# Host End Event
#################
feast_main_befriend.5002 = {
type = activity_event
title = feast_main_befriend.5002.t
desc = feast_main_befriend.5002.desc
theme = feast_activity
center_portrait = {
character = root
animation = toast
}
right_portrait = {
character = scope:potential_friend
animation = happiness
}
trigger = {
OR = {
any_scheme = {
type = befriend
scheme_target_character = {
involved_activity ?= scope:activity
}
}
AND = {
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
scope:activity = {
any_attending_character = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
NOT = { has_relation_friend = root }
opinion = {
target = scope:activity.activity_host
value > 35
}
}
}
}
}
immediate = {
if = {
limit = {
has_activity_intent = befriend_attendee_intent
intent_target ?= {
is_alive = yes
}
}
intent_target = { save_scope_as = potential_friend }
}
else_if = {
limit = {
any_scheme = {
type = befriend
scheme_target_character = {
involved_activity ?= scope:activity
}
}
}
random_scheme = {
type = befriend
limit = {
scheme_target_character = {
involved_activity ?= scope:activity
}
}
scheme_target_character = {
save_scope_as = potential_friend
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
feast_default_participant_trigger = yes
this != scope:activity.activity_host
NOT = { has_relation_friend = root }
opinion = {
target = scope:activity.activity_host
value > 35
}
}
save_scope_as = potential_friend
}
}
}
}
option = {
name = feast_main_befriend.5002.a
scope:potential_friend = {
add_opinion = {
modifier = bonded_at_feast_opinion
target = root
}
}
}
}
#################
# Friend End Event
#################
feast_main_befriend.5003 = {
type = activity_event
title = feast_main_befriend.5003.t
desc = feast_main_befriend.5003.desc
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:spouse
option = {
name = feast_main_befriend.5003.a
scope:host_saying_goodbye = {
add_opinion = {
modifier = bonded_at_feast_opinion
target = scope:potential_friend
}
}
feast_end_guest_effect = yes
}
}
###################
# General Guest End Event
###################
feast_main_befriend.5004 = {
type = activity_event
title = feast_main_befriend.5004.t
desc = feast_main_befriend.5004.desc
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = personality_bold
}
option = {
name = feast_main_befriend.5004.a
add_hosted_feast_modifier_towards_character = { CHARACTER = scope:activity.activity_host }
feast_end_guest_effect = yes
}
}

View file

@ -1,768 +0,0 @@
# FEAST ACTIVITY KEY EVENTS
# Most custom variables checked here will have been set by the "welcoming" events in feast_activity_standard_events
# Each unique key event gets a range of 50 IDs. This should more than suffice in all cases.
namespace = feast_main_live_fowl
############################
# A LIVELY DISH
# 0051 - 0100
############################
# Among a number of delightfully presented entremets, a peacock [or other fowl] turns out to still be alive.
# 0051 - 0060: Standard setup and descriptive events.
# 0061 - 0070: Standard unique followup events.
# 0091 - 0100: Standard end events.
####
# Weight and Setup Event
####
feast_main_live_fowl.0001 = {
type = activity_event
hidden = yes
trigger = {
trigger_if = {
limit = {
scope:activity.activity_host = {
has_variable = last_feast_was
}
}
NOT = { scope:activity.activity_host.var:last_feast_was = flag:live_fowl }
}
scope:activity = {
NOT = {
has_activity_option = {
category = feast_option_courses
option = feast_courses_bad
}
}
any_attending_character = {
feast_default_participant_including_player_trigger = yes
this != scope:activity.activity_host
save_temporary_scope_as = fowl_dinner_target
}
any_attending_character = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:activity.activity_host
this = scope:fowl_dinner_target
}
NOT = { has_trait = lazy }
NOT = { has_trait = compassionate }
save_temporary_scope_as = fowl_bird_chaser
}
any_attending_character = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:activity.activity_host
this = scope:fowl_dinner_target
this = scope:fowl_bird_chaser
}
count > 1
}
}
}
immediate = {
scope:activity = {
# Someone has to take the pain for the enjoyment of others.
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
this != scope:activity.activity_host
}
save_scope_as = fowl_dinner_target
}
# A sadistic character kills the bird
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
has_trait = sadistic
NOR = {
this = scope:activity.activity_host
this = scope:fowl_dinner_target
}
}
random = {
chance = 50
save_scope_as = fowl_bird_killer
}
}
# If the bird is not killed, someone chases it out.
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOT = { exists = scope:fowl_bird_killer }
NOR = {
this = scope:activity.activity_host
this = scope:fowl_dinner_target
}
NOT = { has_trait = lazy }
NOT = { has_trait = compassionate }
NOT = { has_trait = sadistic }
}
save_scope_as = fowl_bird_chaser
}
activity_host = {
set_variable = {
name = last_feast_was
value = flag:live_fowl
}
if = {
limit = {
NAND = {
exists = scope:fowl_bird_killer
this = scope:fowl_bird_killer
}
}
# Generic host event, as long as they are not the bird killer.
trigger_event = feast_main_live_fowl.0003
}
}
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:activity.activity_host
this = scope:fowl_dinner_target
AND = {
exists = scope:fowl_bird_killer
this = scope:fowl_bird_killer
}
AND = {
exists = scope:fowl_bird_chaser
this = scope:fowl_bird_chaser
}
}
}
# Generic guest description event
trigger_event = feast_main_live_fowl.0002
}
scope:fowl_dinner_target = {
trigger_event = feast_main_live_fowl.0004
}
if = {
limit = { exists = scope:fowl_bird_killer }
scope:fowl_bird_killer = {
trigger_event = feast_main_live_fowl.0005
}
}
if = {
limit = { exists = scope:fowl_bird_chaser }
scope:fowl_bird_chaser = {
trigger_event = feast_main_live_fowl.0006
}
}
}
}
}
###
# Generic event for Guests
###
feast_main_live_fowl.0002 = {
title = feast_main_live_fowl.0002.t
type = activity_event
desc = {
desc = feast_main_live_fowl.0002.entremets_served
first_valid = {
# If a character kills the bird
triggered_desc = {
trigger = {
exists = scope:fowl_bird_killer
}
desc = feast_main_live_fowl.0002.bird_killed
}
# If a named character chases the bird out
triggered_desc = {
trigger = {
exists = scope:fowl_bird_chaser
}
desc = feast_main_live_fowl.0002.bird_chased_by_character
}
# If a servant chases it away.
desc = feast_main_live_fowl.0002.bird_chased_away
}
}
theme = feast_activity
left_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
right_portrait = {
character = scope:fowl_bird_killer
animation = anger
}
option = {
name = feast_main_live_fowl.0002.a
add_character_modifier = {
modifier = feast_raucous_entertainment_modifier
years = 5
}
if = {
limit = { exists = scope:fowl_bird_killer }
show_as_tooltip = {
scope:fowl_bird_killer = {
add_dread = medium_dread_gain
}
}
}
}
}
###
# Event for Host
###
feast_main_live_fowl.0003 = {
title = feast_main_live_fowl.0003.t
type = activity_event
desc = {
desc = feast_main_live_fowl.0003.entremets_served
first_valid = {
# If a character kills the bird
triggered_desc = {
trigger = {
exists = scope:fowl_bird_killer
}
desc = {
desc = feast_main_live_fowl.0003.bird_killed
}
}
# If a named character chases the bird out
triggered_desc = {
trigger = {
exists = scope:fowl_bird_chaser
}
desc = {
desc = feast_main_live_fowl.0003.bird_chased_by_character
}
}
# If a servant chases it away.
desc = feast_main_live_fowl.0003.bird_chased_away
}
}
theme = feast_activity
right_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
left_portrait = {
character = root
animation = shock
}
center_portrait = {
character = scope:fowl_bird_killer
animation = anger
}
immediate = {
play_music_cue = mx_cue_meadandwine
}
trigger = {
NOT = {
has_character_modifier = feast_raucous_entertainment_modifier
}
}
option = {
name = feast_main_live_fowl.0003.a
add_character_modifier = {
modifier = feast_raucous_entertainment_modifier
years = 5
}
if = {
limit = { exists = scope:fowl_bird_killer }
show_as_tooltip = {
scope:fowl_bird_killer = {
add_dread = medium_dread_gain
}
}
}
}
after = {
hidden_effect = {
trigger_event = {
id = feast_main_live_fowl.9000
days = 10
}
scope:activity = {
add_activity_log_entry = {
key = feast_live_fowl_log
tags = { good }
score = 25
character = root
target = scope:fowl_dinner_target
}
}
}
}
}
###
# Event for Bird Target
###
# The guest that suffers the fowl's wrath.
feast_main_live_fowl.0004 = {
title = feast_main_live_fowl.0004.t
type = activity_event
desc = {
desc = feast_main_live_fowl.0004.entremets_served
first_valid = {
# If a character kills the bird
triggered_desc = {
trigger = {
exists = scope:fowl_bird_killer
}
desc = feast_main_live_fowl.0004.bird_killed
}
# If a named character chases the bird out
triggered_desc = {
trigger = {
exists = scope:fowl_bird_chaser
}
desc = feast_main_live_fowl.0004.bird_chased_by_character
}
# If a servant chases it away.
desc = feast_main_live_fowl.0004.bird_chased_away
}
}
theme = feast_activity
left_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
right_portrait = {
character = scope:fowl_bird_killer
animation = anger
}
option = {
name = feast_main_live_fowl.0004.a
if = {
limit = { has_trait = wounded_3 }
add_internal_flag = dangerous
}
random_list = {
15 = {
increase_wounds_effect = {
REASON = feast_accident
}
add_character_flag = was_wounded_by_bird_at_feast
}
85 = { } # Nothing happens
}
add_character_modifier = {
modifier = feast_suspicious_of_food_modifier
years = 10
}
if = {
limit = { exists = scope:fowl_bird_killer }
show_as_tooltip = {
scope:fowl_bird_killer = {
add_dread = medium_dread_gain
}
}
}
}
after = {
hidden_effect = {
random = {
chance = 15
scope:activity.activity_host = {
save_scope_as = host
}
trigger_event = {
id = feast_main_live_fowl.1001
days = { 10 20 }
}
}
}
}
}
###
# Event for Bird Killer
###
feast_main_live_fowl.0005 = {
title = feast_main_live_fowl.0005.t
type = activity_event
desc = {
desc = feast_main_live_fowl.0005.entremets_served
desc = feast_main_live_fowl.0005.bird_killed
}
theme = feast_activity
left_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
right_portrait = {
character = scope:activity.activity_host
animation = shock
}
option = {
name = feast_main_live_fowl.0005.a
add_dread = medium_dread_gain
add_character_modifier = {
modifier = feast_display_of_ruthlessness_modifier
years = 10
}
}
}
###
# Event for Bird Chaser
###
feast_main_live_fowl.0006 = {
title = feast_main_live_fowl.0006.t
type = activity_event
desc = {
desc = feast_main_live_fowl.0006.entremets_served
desc = feast_main_live_fowl.0006.bird_chased_by_character
}
theme = feast_activity
left_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
right_portrait = {
character = scope:fowl_bird_killer
animation = anger
}
option = {
name = feast_main_live_fowl.0006.a
add_character_modifier = {
modifier = feast_bird_based_exercise_modifier
years = 5
}
}
}
##################
# FOLLOW-UPS
##################
# Become scarred from the bird peck
feast_main_live_fowl.1001 = {
type = activity_event
title = feast_main_live_fowl.1001.t
desc = feast_main_live_fowl.1001.desc
theme = feast_activity
left_portrait = {
character = root
animation = pain
}
lower_left_portrait = scope:host
option = {
name = feast_main_live_fowl.1001.a
if = {
limit = { has_character_flag = was_wounded_by_bird_at_feast }
if = {
limit = {
has_trait = wounded
}
change_trait_rank = {
trait = wounded
rank = -1
}
}
}
add_trait = scarred
add_trait_xp = {
trait = scarred
value = {
integer_range = {
min = 5
max = 25
}
}
}
if = {
limit = {
scope:host = { is_alive = yes }
}
progress_towards_rival_effect = {
CHARACTER = scope:host
REASON = rival_bird_pecked
OPINION = 0
}
}
}
}
##################
# END EVENT SETUP
##################
feast_main_live_fowl.9000 = {
type = activity_event
hidden = yes
trigger = {
exists = scope:activity
}
immediate = {
scope:activity = {
# Fire the end event for the host
activity_host = {
save_scope_as = host_saying_goodbye
if = {
limit = { exists = primary_partner }
random_consort = {
limit = {
this = scope:activity.activity_host.primary_partner
is_available_ai = yes
}
alternative_limit = {
is_available_ai = yes
}
save_scope_as = spouse
}
}
}
# Fire the end event for every participant except specials
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:activity.activity_host
this = scope:fowl_dinner_target
AND = {
exists = scope:fowl_bird_killer
this = scope:fowl_bird_killer
}
AND = {
exists = scope:fowl_bird_chaser
this = scope:fowl_bird_chaser
}
}
}
trigger_event = feast_main_live_fowl.9001
}
# Fire special guest end events
if = {
limit = {
exists = scope:fowl_dinner_target
}
scope:fowl_dinner_target = {
trigger_event = feast_main_live_fowl.9003
}
}
if = {
limit = {
exists = scope:fowl_bird_killer
}
scope:fowl_bird_killer = {
trigger_event = feast_main_live_fowl.9004
}
}
if = {
limit = {
exists = scope:fowl_bird_chaser
}
scope:fowl_bird_chaser = {
trigger_event = feast_main_live_fowl.9005
}
}
activity_host = { trigger_event = feast_main_live_fowl.9002 }
}
}
}
###################
# Guest End event
###################
feast_main_live_fowl.9001 = {
type = activity_event
title = feast_main_live_fowl.9001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:fowl_bird_killer
}
desc = feast_main_live_fowl.9001.bird_killer
}
desc = feast_main_live_fowl.9001.no_bird_killer
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
right_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
lower_left_portrait = scope:spouse
lower_right_portrait = scope:fowl_bird_killer
option = {
name = feast_main_live_fowl.9001.a
stress_impact = {
base = minor_stress_loss
}
}
}
######################
# Host End event
######################
feast_main_live_fowl.9002 = {
type = activity_event
title = feast_main_live_fowl.9002.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:fowl_bird_killer
}
desc = feast_main_live_fowl.9002.bird_killer
}
desc = feast_main_live_fowl.9002.no_bird_killer
}
}
theme = feast_activity
left_portrait = {
character = root
animation = personality_bold
}
right_portrait = {
character = scope:fowl_dinner_target
animation = pain
}
option = {
name = feast_main_live_fowl.9002.a
stress_impact = {
base = minor_stress_loss
}
}
}
########################
# Bird Target end event
########################
feast_main_live_fowl.9003 = {
type = activity_event
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:fowl_bird_killer
}
desc = feast_main_live_fowl.9003.bird_killer
}
desc = feast_main_live_fowl.9003.no_bird_killer
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:spouse
option = {
name = feast_main_live_fowl.9003.a
increase_wounds_no_death_effect = { REASON = wild_animal }
add_opinion = {
modifier = feast_victimised_in_prank
target = scope:activity.activity_host
}
progress_towards_rival_effect = {
CHARACTER = scope:activity.activity_host
OPINION = 0
REASON = rival_fowl_prank
}
}
}
##################
# Bird Killer end event
##################
feast_main_live_fowl.9004 = {
type = activity_event
desc = feast_main_live_fowl.9004.desc
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:spouse
option = {
name = feast_main_live_fowl.9004.a
add_dread = minor_dread_gain
stress_impact = {
callous = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
}
}
}
##################
# Bird Chaser end event
##################
feast_main_live_fowl.9005 = {
type = activity_event
desc = feast_main_live_fowl.9005.desc
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = happiness
}
lower_left_portrait = scope:spouse
option = {
name = feast_main_live_fowl.9005.a
add_prestige = minor_prestige_gain
stress_impact = {
shy = medium_stress_impact_gain
}
}
}

View file

@ -1,968 +0,0 @@
# FEAST ACTIVITY KEY EVENTS
# Most custom variables checked here will have been set by the "welcoming" events in feast_activity_standard_events
namespace = feast_main_stable_breakin
######################
# STABLE BREAK-IN
# by Petter Vilberg
######################
# Some guests break into the host's stables and drunkenly ride around on animals.
# Trigger and weight event
feast_main_stable_breakin.0001 = {
type = activity_event
hidden = yes
trigger = {
trigger_if = {
limit = {
scope:activity.activity_host = { has_variable = last_feast_was }
}
NOT = { scope:activity.activity_host.var:last_feast_was = flag:stable_breakin }
}
scope:activity = {
any_attending_character = {
feast_default_participant_including_player_trigger = yes
NOT = { has_trait = temperate }
this != scope:activity.activity_host
}
}
}
immediate = {
scope:activity = {
# Someone to be responsible for the break-in.
random_attending_character = {
# Either someone who fits the bill
limit = {
feast_default_participant_including_player_trigger = yes
OR = {
has_trait = lifestyle_reveler
has_trait = lunatic
has_trait = shrewd
}
this != scope:activity.activity_host
}
# Or just someone who's had a little too much to drink
alternative_limit = {
feast_default_participant_including_player_trigger = yes
NOT = { has_trait = temperate }
this != scope:activity.activity_host
}
save_scope_as = breakin_stager
}
# If someone is unfortunate enough to be a deviant in the wrong place at the wrong time...
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
OR = {
has_trait = deviant
any_secret = {
type = secret_deviant
}
}
NOR = {
this = scope:breakin_stager
this = scope:activity.activity_host
}
}
save_scope_as = breakin_deviant
random = {
chance = 30
modifier = {
add = 20
scope:breakin_deviant = {
has_trait = lustful
}
}
scope:activity = {
set_variable = {
name = deviant_discovered
value = yes
}
}
}
}
# If there's no deviant, make sure the stager has support from someone
if = {
limit = {
NOT = {
exists = scope:breakin_deviant
}
}
random_attending_character = {
limit = { # A Master of the Horse is the perfect accomplice!
feast_default_participant_including_player_trigger = yes
has_court_position = master_of_horse_court_position
}
alternative_limit = {
feast_default_participant_including_player_trigger = yes
this != scope:breakin_stager
this != scope:activity.activity_host
}
save_scope_as = breakin_helper
}
}
# We need at least one more bystander, if there are enough guests
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:breakin_stager
AND = {
exists = scope:breakin_deviant
this = scope:breakin_deviant
}
AND = {
exists = scope:breakin_helper
this = scope:breakin_helper
}
}
this != scope:activity.activity_host
}
save_scope_as = breakin_bystander
}
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:breakin_stager
AND = {
exists = scope:breakin_bystander
this = scope:breakin_bystander
}
AND = {
exists = scope:breakin_deviant
this = scope:breakin_deviant
}
AND = {
exists = scope:breakin_helper
this = scope:breakin_helper
}
}
this != scope:activity.activity_host
}
trigger_event = feast_main_stable_breakin.0002
}
activity_host = {
set_variable = {
name = last_feast_was
value = flag:stable_breakin
}
trigger_event = feast_main_stable_breakin.0003
}
if = {
limit = { exists = scope:breakin_bystander }
scope:breakin_bystander = {
trigger_event = feast_main_stable_breakin.0007
}
}
# If the one causing the break-in is not also a deviant, the stager gets their event.
scope:breakin_stager = {
trigger_event = feast_main_stable_breakin.0004
}
if = {
limit = {
exists = scope:breakin_deviant
scope:breakin_deviant != scope:breakin_stager
}
scope:breakin_deviant = {
trigger_event = feast_main_stable_breakin.0005
}
}
if = {
limit = { exists = scope:breakin_helper }
scope:breakin_helper = {
trigger_event = feast_main_stable_breakin.0006
}
}
}
}
}
###
# Generic guest event
###
feast_main_stable_breakin.0002 = {
type = activity_event
title = feast_main_stable_breakin.0002.t
desc = {
# Pick out who the introduction describes the stager as acting with
first_valid = {
triggered_desc = {
# The helper that is chosen if no deviant.
trigger = {
exists = scope:breakin_helper
}
desc = feast_main_stable_breakin.0002.breakin_with_helper
}
triggered_desc = {
# The deviant, so they are partly responsible for their own demise
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant != scope:breakin_stager
}
desc = feast_main_stable_breakin.0002.breakin_with_deviant
}
# A fallback in case your feast doesn't have that many guests.
desc = feast_main_stable_breakin.0002.breakin_with_noone
}
triggered_desc = {
# Some more fun if there are enough feast participants to sustain it.
trigger = {
exists = scope:breakin_bystander
}
desc = feast_main_stable_breakin.0002.bystander_riding
}
first_valid = {
# If the deviant is discovered doing deviant things.
triggered_desc = {
trigger = {
scope:activity = { has_variable = deviant_discovered }
}
desc = feast_main_stable_breakin.0002.deviant_discovered
}
# A signoff in case there is no deviant discovery.
#desc = feast_main_stable_breakin.0002.what_a_silly_bunch
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:breakin_stager
animation = jockey_victory
camera = camera_event_horse_right
}
lower_center_portrait = scope:breakin_helper
lower_right_portrait = scope:breakin_deviant
option = {
name = feast_main_stable_breakin.0002.a
trigger = {
NOT = {
scope:activity = { has_variable = deviant_discovered }
}
}
add_character_modifier = {
modifier = feast_livestock_at_feast_modifier
years = 5
}
}
option = {
name = feast_main_stable_breakin.0002.b
trigger = {
exists = scope:activity.var:deviant_discovered
NOR = {
has_trait = deviant
any_secret = {
type = secret_deviant
}
}
}
add_character_modifier = {
modifier = feast_livestock_at_feast_modifier
years = 5
}
show_as_tooltip = {
scope:breakin_deviant = {
add_prestige = major_prestige_loss
}
}
}
option = {
name = feast_main_stable_breakin.0002.secret_of_my_own
trigger = {
exists = scope:activity.var:deviant_discovered
OR = {
has_trait = deviant
any_secret = {
type = secret_deviant
}
}
}
scope:breakin_deviant = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 20
}
}
progress_towards_friend_effect = {
REASON = friend_fellow_deviant
CHARACTER = scope:breakin_deviant
OPINION = 0
}
hidden_effect = {
add_opinion = {
target = scope:breakin_deviant
modifier = pity_opinion
opinion = 20
}
}
}
}
###
# Host event
###
feast_main_stable_breakin.0003 = {
title = feast_main_stable_breakin.0003.t
type = activity_event
desc = {
# Pick out who the introduction describes the stager as acting with
first_valid = {
triggered_desc = {
# The helper that is chosen if no deviant.
trigger = {
exists = scope:breakin_helper
}
desc = feast_main_stable_breakin.0003.breakin_with_helper
}
triggered_desc = {
# The deviant, so they are partly responsible for their own demise
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant != scope:breakin_stager
}
desc = feast_main_stable_breakin.0003.breakin_with_deviant
}
# A fallback in case your feast doesn't have that many guests.
desc = feast_main_stable_breakin.0003.breakin_with_noone
}
triggered_desc = {
# Some more fun if there are enough feast participants to sustain it.
trigger = {
exists = scope:breakin_bystander
}
desc = feast_main_stable_breakin.0003.bystander_riding
}
first_valid = {
# If the deviant is discovered doing deviant things.
triggered_desc = {
trigger = {
scope:activity = {
has_variable = deviant_discovered
}
}
desc = feast_main_stable_breakin.0003.deviant_discovered
}
# A signoff in case there is no deviant discovery.
#desc = feast_main_stable_breakin.0003.what_a_silly_bunch
}
}
theme = feast_activity
left_portrait = {
character = scope:breakin_stager
animation = jockey_victory
camera = camera_event_horse_left
}
right_portrait = {
character = scope:breakin_helper
animation = shame
}
lower_right_portrait = scope:breakin_deviant
immediate = {
play_music_cue = mx_cue_meadandwine
}
option = {
name = feast_main_stable_breakin.0003.a
add_prestige = minor_prestige_loss
add_character_modifier = {
modifier = feast_livestock_at_feast_modifier
years = 10
}
}
after = {
hidden_effect = {
# Activity End Event setup
trigger_event = {
id = feast_main_stable_breakin.9000
days = 10
}
scope:activity = {
add_activity_log_entry = {
key = feast_stable_breakin_log
tags = { good }
score = 25
character = root
target = scope:breakin_stager
}
}
}
}
}
####
# Stager event
####
feast_main_stable_breakin.0004 = {
title = feast_main_stable_breakin.0004.t
desc = {
# Start the event by describing who planted the idea.
first_valid = {
# The "regular" helper
triggered_desc = {
trigger = {
exists = scope:breakin_helper
}
desc = feast_main_stable_breakin.0004.breakin_with_helper
}
# The deviant, though you may not know.
triggered_desc = {
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant != scope:breakin_stager
}
desc = feast_main_stable_breakin.0004.breakin_with_deviant
}
# You've come up with the idea all on your own. Sorry, no excuses!
desc = feast_main_stable_breakin.0004.breakin_with_noone
}
# If someone goes crazy
triggered_desc = {
trigger = {
exists = scope:breakin_bystander
}
desc = feast_main_stable_breakin.0004.bystander_riding
}
# Signoff based on whether the deviant makes poor choices.
first_valid = {
# If a deviant is discovered, the stager should also get to know about it.
triggered_desc = {
trigger = {
scope:activity = { has_variable = deviant_discovered }
}
desc = feast_main_stable_breakin.0004.deviant_discovered
}
# Regular signoff.
desc = feast_main_stable_breakin.0004.signoff
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:breakin_helper
animation = shame
}
lower_center_portrait = scope:breakin_bystander
lower_right_portrait = scope:breakin_deviant
option = {
name = feast_main_stable_breakin.0004.a
add_prestige = minor_prestige_loss
increase_wounds_effect = { REASON = horse_riding_accident }
}
}
###
# Deviant event
###
feast_main_stable_breakin.0005 = {
title = feast_main_stable_breakin.0005.t
desc = {
# Deviant shares a good idea with the stager.
desc = feast_main_stable_breakin.0005.breakin
# Things go a little crazy.
triggered_desc = {
trigger = {
exists = scope:breakin_bystander
scope:activity = { has_variable = deviant_discovered }
}
desc = feast_main_stable_breakin.0005.bystander_riding
}
first_valid = {
# Uh-oh.
triggered_desc = {
trigger = {
scope:activity = { NOT = { has_variable = deviant_discovered } }
}
desc = feast_main_stable_breakin.0005.deviant_discovered
}
# Nothing happened, or...?
desc = feast_main_stable_breakin.0005.got_away_with_it
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:breakin_stager
animation = jockey_victory
camera = camera_event_horse_right
}
lower_center_portrait = scope:breakin_helper
lower_right_portrait = scope:breakin_bystander
option = {
name = feast_main_stable_breakin.0005.a
add_prestige = major_prestige_loss
if = {
limit = {
any_secret = {
type = secret_deviant
}
scope:activity = { has_variable = deviant_discovered }
}
random_secret = {
type = secret_deviant
expose_secret = scope:activity.activity_host
}
}
}
}
###
# Helper event
###
feast_main_stable_breakin.0006 = {
title = feast_main_stable_breakin.0006.t
type = activity_event
desc = {
# Helping the stager break in, then having fun.
desc = feast_main_stable_breakin.0006.breakin_with_helper
# Other people might be having fun, too!
triggered_desc = {
trigger = {
exists = scope:breakin_bystander
scope:activity = { NOT = { has_variable = deviant_discovered } }
}
desc = feast_main_stable_breakin.0006.bystander_riding
}
first_valid = {
# Some people might be having a little too much fun.
triggered_desc = {
trigger = {
scope:activity = { has_variable = deviant_discovered }
}
desc = feast_main_stable_breakin.0006.deviant_discovered
}
# Everything happens to be at the right level of fun.
desc = feast_main_stable_breakin.0006.all_in_good_fun
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:breakin_stager
animation = jockey_victory
camera = camera_event_horse_right
}
lower_center_portrait = scope:breakin_bystander
lower_right_portrait = scope:breakin_deviant
option = {
name = feast_main_stable_breakin.0006.a
scope:breakin_stager = {
add_opinion = {
target = root
modifier = feast_helped_during_breakin
}
}
if = {
limit = { exists = scope:breakin_bystander }
scope:breakin_bystander = {
add_opinion = {
target = root
modifier = feast_helped_during_breakin
}
}
}
if = {
limit = {
exists = scope:breakin_deviant
}
scope:breakin_deviant = {
add_opinion = {
target = root
modifier = feast_helped_during_breakin
}
}
}
}
}
###
# Bystander event
###
feast_main_stable_breakin.0007 = {
title = feast_main_stable_breakin.0007.t
type = activity_event
desc = {
# The stager is mainly responsible themselves.
desc = feast_main_stable_breakin.0007.breakin
# Root is having so much fun!
desc = feast_main_stable_breakin.0007.bystander_riding
first_valid = {
# Uuuuh, deviant doing their thing is highly unfortunate.
triggered_desc = {
trigger = {
scope:activity = { has_variable = deviant_discovered }
}
desc = feast_main_stable_breakin.0007.deviant_discovered
}
# What a great time we had.
desc = feast_main_stable_breakin.0007.what_a_silly_bunch
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:breakin_stager
animation = jockey_victory
camera = camera_event_horse_right
}
lower_center_portrait = scope:breakin_helper
lower_right_portrait = scope:breakin_deviant
option = {
name = feast_main_stable_breakin.0007.a
add_prestige = minor_prestige_loss
scope:breakin_stager = {
add_opinion = {
target = root
modifier = feast_helped_during_breakin
}
}
if = {
limit = {
exists = scope:breakin_deviant
}
scope:breakin_deviant = {
add_opinion = {
target = root
modifier = feast_helped_during_breakin
}
}
}
}
}
##################
# END EVENT SETUP
##################
feast_main_stable_breakin.9000 = {
type = activity_event
hidden = yes
trigger = {
exists = scope:activity
}
immediate = {
scope:activity = {
# Set up scopes
activity_host = {
save_scope_as = host_saying_goodbye
if = {
limit = { exists = primary_partner }
random_consort = {
limit = {
this = scope:activity.activity_host.primary_partner
is_available_ai = yes
}
alternative_limit = {
is_available_ai = yes
}
save_scope_as = spouse
}
}
}
# Fire the end event for every participant except specials
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:activity.activity_host
this = scope:breakin_stager
AND = {
exists = scope:breakin_helper
this = scope:breakin_helper
}
AND = {
exists = scope:breakin_bystander
this = scope:breakin_bystander
}
AND = {
exists = scope:breakin_deviant
this = scope:breakin_deviant
}
}
}
trigger_event = feast_main_stable_breakin.9001
}
# Fire special guest end events
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
OR = {
this = scope:breakin_stager
AND = {
exists = scope:breakin_helper
this = scope:breakin_helper
}
AND = {
exists = scope:breakin_bystander
this = scope:breakin_bystander
}
AND = {
exists = scope:breakin_deviant
this = scope:breakin_deviant
}
}
}
trigger_event = feast_main_stable_breakin.9003
}
if = {
limit = {
exists = scope:breakin_deviant
}
scope:breakin_deviant = {
trigger_event = feast_main_stable_breakin.9004
if = {
limit = { exists = scope:activity.var:deviant_discovered }
set_variable = {
name = was_i_discovered
value = scope:activity.var:deviant_discovered
}
}
}
}
activity_host = { trigger_event = feast_main_stable_breakin.9002 }
}
}
}
###################
# Guest End event
###################
feast_main_stable_breakin.9001 = {
type = activity_event
title = feast_main_stable_breakin.9001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant = {
has_variable = was_i_discovered
}
}
desc = feast_main_stable_breakin.9001.deviant_caught
}
desc = feast_main_stable_breakin.9001.in_good_fun
}
}
theme = feast_activity
left_portrait = {
character = scope:host_saying_goodbye
animation = happiness
}
center_portrait = {
character = scope:spouse
animation = personality_bold
}
right_portrait = {
character = scope:breakin_stager
animation = jockey_idle
camera = camera_event_horse_right
}
lower_center_portrait = scope:breakin_deviant
lower_right_portrait = scope:breakin_bystander
option = {
name = feast_main_stable_breakin.9001.a
stress_impact = {
base = medium_stress_impact_loss
}
}
}
######################
# Host End event
######################
feast_main_stable_breakin.9002 = {
type = activity_event
title = feast_main_stable_breakin.9001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant = { has_variable = was_i_discovered }
}
desc = feast_main_stable_breakin.9002.deviant_caught
}
triggered_desc = {
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant = {
NOT = { has_variable = was_i_discovered }
}
}
desc = feast_main_stable_breakin.9002.in_good_fun_or_what
}
desc = feast_main_stable_breakin.9002.in_good_fun
}
}
theme = feast_activity
right_portrait = {
character = scope:breakin_stager
animation = wedding_drunk
}
center_portrait = {
character = scope:breakin_bystander
animation = personality_bold
}
left_portrait = {
character = root
animation = happiness
}
lower_center_portrait = scope:breakin_deviant
option = {
name = feast_main_stable_breakin.9002.a
stress_impact = {
base = medium_stress_impact_loss
}
}
}
########################
# Stager, helper and bystander end event
########################
feast_main_stable_breakin.9003 = {
type = activity_event
title = feast_main_stable_breakin.9001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant = {
has_variable = was_i_discovered
}
}
desc = feast_main_stable_breakin.9003.deviant_caught
}
desc = feast_main_stable_breakin.9003.in_good_fun
}
}
theme = feast_activity
left_portrait = {
character = scope:host_saying_goodbye
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = personality_bold
}
option = {
name = feast_main_stable_breakin.9003.a
stress_impact = {
base = medium_stress_impact_loss
}
}
}
#####################
# Deviant end event
#####################
feast_main_stable_breakin.9004 = {
type = activity_event
title = feast_main_stable_breakin.9001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:breakin_deviant
scope:breakin_deviant = {
has_variable = was_i_discovered
}
}
desc = feast_main_stable_breakin.9004.deviant_caught
}
desc = feast_main_stable_breakin.9004.in_good_fun
}
}
theme = feast_activity
left_portrait = {
character = scope:host_saying_goodbye
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = personality_bold
}
option = {
name = feast_main_stable_breakin.9004.a
if = {
limit = { NOT = { exists = var:was_i_discovered } }
feast_end_guest_effect = yes
}
else = {
stress_impact = {
deviant = medium_stress_impact_gain
}
}
}
}

View file

@ -1,879 +0,0 @@
# FEAST ACTIVITY KEY EVENTS
# Most custom variables checked here will have been set by the "welcoming" events in feast_activity_standard_events
# Each unique key event gets a range of 50 IDs. This should more than suffice in all cases.
namespace = feast_main_stew_flood
############################
# THE STEW FLOOD
# by Petter Vilberg
############################
# 0001 - 0010: Standard setup and descriptive events.
# 0031 - 0040: Extraneous events
# 0041 - 0050: Standard end events.
# A giant cauldron of stew tips over in the middle of the meal
# Half the hall gets covered in a sea of stew.
####
# Weight and Setup Event
####
feast_main_stew_flood.0001 = {
type = activity_event
hidden = yes
trigger = {
trigger_if = {
limit = { scope:activity.activity_host = { has_variable = last_feast_was } }
NOT = { scope:activity.activity_host.var:last_feast_was = flag:stew_flood }
}
NOT = {
scope:activity = {
has_activity_option = {
category = feast_option_food
option = feast_food_good
}
}
}
scope:activity = {
any_attending_character = {
feast_default_participant_including_player_trigger = yes
this != scope:activity.activity_host
drinks_alcohol_trigger = yes
save_temporary_scope_as = stew_sea_blamed_temp
}
any_attending_character = {
feast_default_participant_including_player_trigger = yes
has_trait = gluttonous
NOR = {
this = scope:activity.activity_host
this = scope:stew_sea_blamed_temp
}
save_temporary_scope_as = stew_sea_glutton_temp
}
any_attending_character = {
feast_default_participant_including_player_trigger = yes
has_trait = temperate
NOR = {
this = scope:activity.activity_host
this = scope:stew_sea_blamed_temp
this = scope:stew_sea_glutton_temp
}
save_temporary_scope_as = stew_sea_horrified_character_temp
}
any_attending_character = {
feast_default_participant_including_player_trigger = yes
this != scope:stew_sea_blamed_temp
this != scope:stew_sea_glutton_temp
this != scope:stew_sea_horrified_character_temp
this != scope:activity.activity_host
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
scope:activity = {
# Find someone who can take the blame
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
this != scope:activity.activity_host
drinks_alcohol_trigger = yes
}
save_scope_as = stew_sea_blamed
}
# Find someone who can cause themselves shame by eating off the floor.
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
has_trait = gluttonous
NOR = {
this = scope:activity.activity_host
this = scope:stew_sea_blamed
}
}
random_list = { #Gluttons should not eat from the floor at _every_ feast where we spill food
25 = { save_scope_as = stew_sea_glutton }
75 = { }
}
}
# Find someone who can be horrified by the waste
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
has_trait = temperate
NOR = {
this = scope:activity.activity_host
this = scope:stew_sea_blamed
}
}
save_scope_as = stew_sea_horrified_character
}
# Find someone who gets covered in stew
random_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
# Not any of the other targets
this != scope:stew_sea_blamed
trigger_if = {
limit = { exists = scope:stew_sea_glutton }
this != scope:stew_sea_glutton
}
trigger_else = { always = yes }
trigger_if = {
limit = { exists = scope:stew_sea_horrified_character }
this != scope:stew_sea_horrified_character
}
trigger_else = { always = yes }
this != scope:activity.activity_host
OR = { # Prefer someone arrogant, beautiful or angry
has_trait = arrogant
has_trait = beauty_good
has_trait = wrathful
trigger_if = {
limit = {
exists = scope:activity.special_guest:honorary_guest_regular
}
this = scope:activity.special_guest:honorary_guest_regular
}
}
}
alternative_limit = {
feast_default_participant_including_player_trigger = yes
# Not any of the other targets
this != scope:stew_sea_blamed
trigger_if = {
limit = { exists = scope:stew_sea_glutton }
this != scope:stew_sea_glutton
}
trigger_if = {
limit = { exists = scope:stew_sea_horrified_character }
this != scope:stew_sea_horrified_character
}
this != scope:activity.activity_host
OR = { # Take someone who might have an outsized reaction
has_trait = stubborn
has_trait = callous
has_trait = sadistic
has_trait = paranoid
has_trait = lunatic
}
}
alternative_limit = { # Fallback
# Not any of the other targets
feast_default_participant_including_player_trigger = yes
this != scope:stew_sea_blamed
trigger_if = {
limit = { exists = scope:stew_sea_glutton }
this != scope:stew_sea_glutton
}
trigger_if = {
limit = { exists = scope:stew_sea_horrified_character }
this != scope:stew_sea_horrified_character
}
this != scope:activity.activity_host
}
save_scope_as = stew_sea_gets_covered
}
activity_host = {
set_variable = {
name = last_feast_was
value = flag:stew_flood
}
if = {
limit = {
NOR = {
AND = {
exists = scope:stew_sea_horrified_character
this = scope:stew_sea_horrified_character
}
AND = {
exists = scope:stew_sea_glutton
this = scope:stew_sea_glutton
}
AND = {
exists = scope:stew_sea_gets_covered
this = scope:stew_sea_gets_covered
}
}
}
trigger_event = feast_main_stew_flood.0003
}
}
every_attending_character = {
# Every participant that does not get a special event.
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
AND = {
exists = scope:stew_sea_glutton
this = scope:stew_sea_glutton
}
AND = {
exists = scope:stew_sea_horrified_character
this = scope:stew_sea_horrified_character
}
AND = {
exists = scope:stew_sea_gets_covered
this = scope:stew_sea_gets_covered
}
this = scope:activity.activity_host
}
}
# Standard key event
trigger_event = feast_main_stew_flood.0002
}
if = {
limit = { exists = scope:stew_sea_gets_covered }
scope:stew_sea_gets_covered = {
trigger_event = feast_main_stew_flood.0004
}
}
if = {
limit = { exists = scope:stew_sea_glutton }
scope:stew_sea_glutton = {
trigger_event = feast_main_stew_flood.0005
}
}
if = {
limit = { exists = scope:stew_sea_horrified_character }
scope:stew_sea_horrified_character = {
trigger_event = feast_main_stew_flood.0006
}
}
}
}
}
####
# Standard Descriptive Event
####
feast_main_stew_flood.0002 = {
title = feast_main_stew_flood.0002.t
type = activity_event
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:stew_sea_blamed
root = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0002.stew_introduction_blamed
}
# Introduction, which also places blame.
triggered_desc = {
# If there is a character to blame, they'll be named and shamed
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0002.stew_introduction_blame
}
# Fallback using blaming a generic servant if there aren't enough characters
desc = feast_main_stew_flood.0002.stew_introduction
}
triggered_desc = {
# Someone may get covered by meat stew, which is terrible for them.
trigger = {
exists = scope:stew_sea_gets_covered
}
desc = feast_main_stew_flood.0002.someone_got_covered
}
# A general description of the state of things after the accident:
desc = feast_main_stew_flood.0002.splash_desc_standard
first_valid = {
# A character may bring shame upon themselves by eating off the floor.
triggered_desc = {
# If there is a horrified witness to the action.
trigger = {
exists = scope:stew_sea_glutton
exists = scope:stew_sea_horrified_character
}
desc = feast_main_stew_flood.0002.every_target
}
triggered_desc = {
# If there is someone eating off the floor, but no named witness.
trigger = {
exists = scope:stew_sea_glutton
}
desc = feast_main_stew_flood.0002.only_glutton
}
triggered_desc = {
# If there is a horrified witness, but nobody eating off the floor.
trigger = {
exists = scope:stew_sea_horrified_character
}
desc = feast_main_stew_flood.0002.only_horror
}
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:stew_sea_blamed
animation = shame
}
lower_left_portrait = scope:stew_sea_gets_covered
lower_center_portrait = scope:stew_sea_glutton
lower_right_portrait = scope:stew_sea_horrified_character
option = {
name = feast_main_stew_flood.0002.a
stress_impact = {
base = minor_stress_impact_gain
shy = minor_stress_impact_gain
}
}
}
###
# Descrptive Event for Host
###
feast_main_stew_flood.0003 = {
title = feast_main_stew_flood.0003.t
type = activity_event
desc = {
first_valid = {
# Introduction, which also places blame.
triggered_desc = {
# If there is a character to blame, they'll be named and shamed
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0003.stew_introduction_blame
}
# Fallback using blaming a generic servant if there aren't enough characters
desc = feast_main_stew_flood.0003.stew_introduction
}
triggered_desc = {
# Someone may get covered by meat stew, which is terrible for them.
trigger = {
exists = scope:stew_sea_gets_covered
}
desc = feast_main_stew_flood.0003.someone_got_covered
}
# A general description of the state of things after the accident:
desc = feast_main_stew_flood.0003.splash_desc_standard
first_valid = {
# A character may bring shame upon themselves by eating off the floor.
triggered_desc = {
# If there is a horrified witness to the action.
trigger = {
exists = scope:stew_sea_glutton
exists = scope:stew_sea_horrified_character
}
desc = feast_main_stew_flood.0003.every_target
}
triggered_desc = {
# If there is someone eating off the floor, but no named witness.
trigger = {
exists = scope:stew_sea_glutton
}
desc = feast_main_stew_flood.0003.only_glutton
}
triggered_desc = {
# If there is a horrified witness, but nobody eating off the floor.
trigger = {
exists = scope:stew_sea_horrified_character
}
desc = feast_main_stew_flood.0003.only_horror
}
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:stew_sea_blamed
animation = shame
}
lower_left_portrait = scope:stew_sea_gets_covered
lower_center_portrait = scope:stew_sea_glutton
lower_right_portrait = scope:stew_sea_horrified_character
immediate = {
play_music_cue = mx_cue_meadandwine
}
option = {
name = feast_main_stew_flood.0003.a
add_prestige = medium_prestige_loss
add_character_modifier = {
modifier = feast_spilled_stew_modifier
years = 5
}
}
after = {
hidden_effect = {
trigger_event = {
id = feast_main_stew_flood.0040
days = 10
}
scope:activity = {
add_activity_log_entry = {
key = feast_stew_flood_log
tags = { good }
score = 25
character = root
target = scope:stew_sea_gets_covered
scope:stew_sea_gets_covered = {
add_prestige = minor_prestige_loss
}
}
}
}
}
}
###
# Descriptive Event for Getting Covered
###
feast_main_stew_flood.0004 = {
title = feast_main_stew_flood.0004.t
type = activity_event
desc = {
# First part of event desc
first_valid = {
triggered_desc = {
# If there is a named character to blame.
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0004.stew_introduction_blame
}
# No named character to blame:
desc = feast_main_stew_flood.0004.stew_introduction
}
# Second part of the event desc
desc = feast_main_stew_flood.0004.getting_covered
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:stew_sea_blamed
animation = shame
}
lower_center_portrait = scope:stew_sea_glutton
lower_right_portrait = scope:stew_sea_horrified_character
option = {
name = feast_main_stew_flood.0004.a
if = {
limit = { exists = scope:stew_sea_blamed }
add_opinion = {
modifier = feast_got_stew_all_over_me
target = scope:stew_sea_blamed
}
}
else = { #If no one else is to blame I blame my host
scope:stew_sea_gets_covered = {
add_opinion = {
modifier = feast_got_stew_all_over_me
target = root
}
}
}
}
}
###
# Descriptive Event for Glutton
###
feast_main_stew_flood.0005 = {
title = feast_main_stew_flood.0005.t
type = activity_event
desc = {
first_valid = {
# First part of gluttons desc
triggered_desc = {
# If there's a named character to blame
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0005.stew_introduction_blame
}
# Fallback for not having a named blame character
desc = feast_main_stew_flood.0005.stew_introduction
}
# Second part of the gluttons desc
desc = feast_main_stew_flood.0005.cannot_resist
triggered_desc = {
# If the horrified character is watching them, that detail is appended.
trigger = {
exists = scope:stew_sea_horrified_character
}
desc = feast_main_stew_flood.0005.being_watched
}
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:stew_sea_blamed
animation = shame
}
lower_left_portrait = scope:stew_sea_gets_covered
lower_right_portrait = scope:stew_sea_horrified_character
option = {
name = feast_main_stew_flood.0005.a
scope:activity = {
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOT = {
has_trait = gluttonous
}
}
add_opinion = {
modifier = feast_disgracefully_ate_from_floor
target = root
}
}
}
}
}
###
# Descriptive Event for Horrified
###
feast_main_stew_flood.0006 = {
title = feast_main_stew_flood.0006.t
type = activity_event
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0006.stew_introduction
}
desc = feast_main_stew_flood.0006.stew_introduction_blame
}
triggered_desc = {
trigger = {
exists = scope:stew_sea_glutton
}
}
desc = feast_main_stew_flood.0006.shocking_experience
}
theme = feast_activity
left_portrait = {
character = scope:activity.activity_host
animation = shock
}
right_portrait = {
character = scope:stew_sea_blamed
animation = shame
}
lower_left_portrait = scope:stew_sea_gets_covered
lower_center_portrait = scope:stew_sea_glutton
option = {
name = feast_main_stew_flood.0006.a
stress_impact = {
base = medium_stress_gain
}
}
}
##################
# END EVENT SETUP
##################
feast_main_stew_flood.0040 = {
type = activity_event
hidden = yes
trigger = {
exists = scope:activity
}
immediate = {
scope:activity = {
activity_host = {
save_scope_as = host
if = {
limit = { exists = primary_partner }
random_consort = {
limit = {
feast_default_participant_including_player_trigger = yes
this = scope:activity.activity_host.primary_partner
is_available_ai = yes
}
alternative_limit = {
feast_default_participant_including_player_trigger = yes
is_available_ai = yes
}
save_scope_as = spouse
}
}
}
# Fire the end event for every participant except specials
every_attending_character = {
limit = {
feast_default_participant_including_player_trigger = yes
NOR = {
this = scope:activity.activity_host
AND = {
exists = scope:stew_sea_gets_covered
this = scope:stew_sea_gets_covered
}
AND = {
exists = scope:stew_sea_blamed
this = scope:stew_sea_blamed
}
}
}
trigger_event = feast_main_stew_flood.0041
}
# Fire special guest end events
if = {
limit = {
exists = scope:stew_sea_gets_covered
}
scope:stew_sea_gets_covered = {
trigger_event = feast_main_stew_flood.0043
}
}
if = {
limit = {
exists = scope:stew_sea_blamed
}
scope:stew_sea_blamed = {
trigger_event = feast_main_stew_flood.0044
}
}
# Fire the end event for the host
activity_host = {
trigger_event = feast_main_stew_flood.0042
}
}
}
}
###################
# Guest End event
###################
feast_main_stew_flood.0041 = {
type = activity_event
title = feast_main_stew_flood.0041.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0041.blame_placed
}
desc = feast_main_stew_flood.0041.no_blame_placed
}
}
theme = feast_activity
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = personality_bold
}
option = {
name = feast_main_stew_flood.0041.a
stress_impact = {
base = minor_stress_impact_loss
}
show_as_tooltip = {
if = {
limit = {
exists = scope:stew_sea_blamed
}
scope:stew_sea_gets_covered = {
add_opinion = {
modifier = feast_got_stew_all_over_me
target = scope:stew_sea_blamed
}
}
}
else = {
scope:stew_sea_gets_covered = {
add_opinion = {
modifier = feast_got_stew_all_over_me
target = scope:host
}
}
}
}
}
}
######################
# Host End event
######################
feast_main_stew_flood.0042 = {
type = activity_event
title = feast_main_stew_flood.0042.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0042.blame_placed
}
desc = feast_main_stew_flood.0042.no_blame_placed
}
}
theme = feast_activity
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:stew_sea_blamed
triggered_animation = {
trigger = {
exists = scope:stew_sea_blamed
}
animation = shame
}
triggered_animation = {
trigger = {
NOT = { exists = scope:stew_sea_blamed }
}
animation = shock
}
}
option = {
name = feast_main_stew_flood.0042.a
show_as_tooltip = {
if = {
limit = {
exists = scope:stew_sea_blamed
}
scope:stew_sea_gets_covered = {
add_opinion = {
modifier = feast_got_stew_all_over_me
target = scope:stew_sea_blamed
}
}
}
else = {
scope:stew_sea_gets_covered = {
add_opinion = {
modifier = feast_got_stew_all_over_me
target = root
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
}
}
}
########################
# Got Covered end event
########################
feast_main_stew_flood.0043 = {
type = activity_event
title = feast_main_stew_flood.0042.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:stew_sea_blamed
}
desc = feast_main_stew_flood.0043.blame_placed
}
desc = feast_main_stew_flood.0043.no_blame_placed
}
}
theme = feast_activity
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = personality_bold
}
immediate = {
increase_wounds_no_death_effect = { REASON = burned }
}
option = {
name = feast_main_stew_flood.0043.a
stress_impact = {
base = minor_stress_impact_gain
}
}
}
feast_main_stew_flood.0044 = {
type = activity_event
title = feast_main_stew_flood.0042.t
desc = feast_main_stew_flood.0044.desc
theme = feast_activity
left_portrait = {
character = scope:host
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = personality_bold
}
option = {
name = feast_main_stew_flood.0044.a
stress_impact = {
base = minor_stress_impact_gain
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,686 +0,0 @@
namespace = hold_court
# 7000-7999 - James Beaumont
# 7000 - Fair Share
# 7010 - Two Faiths, One Family
# 7020 - The Shield of Faith
# Fair Share
# Low-dev counties want some money
# 7000
scripted_trigger hc_7000_valid_county = {
hc_7000_low_dev = yes
OR = {
AND = {
exists = holder
holder != root
}
any_direct_de_facto_vassal_title = {
exists = holder
holder != root
}
}
}
scripted_trigger hc_7000_low_dev = {
development_level <= {
value = root.capital_county.development_level
subtract = 10
}
}
hold_court.7000 = {
type = court_event
title = hold_court.7000.t
desc = hold_court.7000.desc
theme = realm
cooldown = { years = 15 }
court_scene = {
button_position_character = scope:local_leader
court_event_force_open = yes
show_timeout_info = no
should_pause_time = yes
roles = {
scope:local_leader = {
group = petitioners_group
animation = beg
}
}
}
widget = {
gui = "event_window_widget_event_chain_progress"
container = "custom_widgets_container"
controller = event_chain_progress
}
trigger = {
any_sub_realm_county = {
hc_7000_valid_county = yes
}
}
weight_multiplier = {
base = 1
# Court weightings.
ep1_weight_up_for_court_type_modifier = { COURT_TYPE = court_administrative }
}
immediate = {
random_sub_realm_county = {
limit = {
hc_7000_valid_county = yes
}
save_scope_as = low_dev_county
if = {
limit = {
exists = holder
holder != root
}
holder = { save_scope_as = local_leader }
}
else = {
random_direct_de_facto_vassal_title = {
limit = {
exists = holder
holder != root
}
holder = { save_scope_as = local_leader }
}
}
}
}
# Divert resources to the low counties
option = {
name = hold_court.7000.a
every_sub_realm_county = {
limit = {
hc_7000_low_dev = yes
}
custom = every_county_10_dev_below_capital
add_county_modifier = {
modifier = hc_7000_dev_boost
years = 15
}
}
capital_county = {
add_county_modifier = {
modifier = hc_7000_dev_reduction
years = 15
}
}
remove_treasury_or_gold = medium_treasury_or_gold_value
stress_impact = {
callous = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
ai_compassion = 1
}
modifier = {
factor = 0
short_term_treasury_or_gold <= medium_treasury_or_gold_value
}
}
}
# Perhaps they should move to the capital ¯\_(ツ)_/¯
option = {
name = hold_court.7000.b
every_sub_realm_county = {
limit = {
hc_7000_low_dev = yes
}
custom = every_county_10_dev_below_capital
add_county_modifier = {
modifier = hc_7000_dev_reduction
years = 15
}
}
capital_county = {
add_county_modifier = {
modifier = hc_7000_dev_boost
years = 15
}
}
remove_treasury_or_gold = minor_treasury_or_gold_value
stress_impact = {
compassionate = minor_stress_impact_gain
humble = minor_stress_impact_gain
just = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
ai_compassion = -1
}
modifier = {
factor = 0
short_term_treasury_or_gold <= minor_treasury_or_gold_value
}
}
}
# Man don't care
option = {
name = hold_court.7000.c
stress_impact = {
generous = minor_stress_impact_gain
just = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_compassion = -1
}
}
}
after = {
scope:local_leader = { clear_court_event_participation = yes }
# Finish up the chain if relevant.
hold_court_queue_post_event_effect = yes
}
}
# Two Faiths, One Family
# Diff-daith neighbour wants to be besties
# 7010
scripted_trigger hc_7010_valid_neighbour = {
NOT = {
has_trait = zealous
is_allied_to = root
has_relation_rival = root
has_trait = holy_warrior
}
ai_compassion > ai_zeal
faith = {
faith_hostility_level = {
target = root.faith
value >= faith_hostile_level
}
}
any_child ?= {
save_temporary_scope_as = foreign_princess_temp
hc_7010_valid_prince = yes
is_courtier_of = prev
root = {
any_child = {
hc_7010_valid_prince = yes
is_courtier_of = root
allowed_to_marry_character_gender_trigger = { CHARACTER = scope:foreign_princess_temp }
}
}
}
}
scripted_trigger hc_7010_valid_prince = {
is_married = no
is_concubine = no
is_betrothed = no
is_adult = yes
fertility >= medium_fertility
can_marry_trigger = yes
}
hold_court.7010 = {
type = court_event
title = hold_court.7010.t
desc = hold_court.7010.desc
theme = realm
cooldown = { years = 15 }
court_scene = {
button_position_character = scope:friendly_neighbour
court_event_force_open = yes
show_timeout_info = no
should_pause_time = yes
roles = {
scope:friendly_neighbour = {
group = petitioners_group
animation = personality_compassionate
}
}
}
lower_left_portrait = scope:potential_prince
lower_right_portrait = scope:foreign_princess
widget = {
gui = "event_window_widget_event_chain_progress"
container = "custom_widgets_container"
controller = event_chain_progress
}
trigger = {
top_liege = this
any_neighboring_and_across_water_top_liege_realm_owner = {
faith = {
faith_hostility_level = {
target = root.faith
value >= faith_hostile_level
}
}
count >= 2
}
any_neighboring_and_across_water_top_liege_realm_owner = {
hc_7010_valid_neighbour = yes
}
}
weight_multiplier = {
base = 1
# Court weightings.
ep1_weight_up_for_court_type_modifier = { COURT_TYPE = court_administrative }
}
immediate = {
random_neighboring_and_across_water_top_liege_realm_owner = {
limit = {
hc_7010_valid_neighbour = yes
}
save_scope_as = friendly_neighbour
random_child = {
limit = {
save_temporary_scope_as = foreign_princess_temp
hc_7010_valid_prince = yes
is_courtier_of = prev
root = {
any_child = {
hc_7010_valid_prince = yes
is_courtier_of = root
allowed_to_marry_character_gender_trigger = { CHARACTER = scope:foreign_princess_temp }
}
}
}
save_scope_as = foreign_princess
root = {
random_child = {
limit = {
hc_7010_valid_prince = yes
is_courtier_of = root
allowed_to_marry_character_gender_trigger = { CHARACTER = scope:foreign_princess }
}
save_scope_as = potential_prince
}
}
}
}
}
# The two shall be wed at once!
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
religion = religion:judaism_religion
scope:neighboring_ruler = { religion = religion:judaism_religion }
}
}
desc = hold_court.7010.a.jewish # To life, to life, l'chaim. L'chaim, l'chaim, to life. ♪♪
}
desc = hold_court.7010.a
}
}
}
set_relation_friend = {
target = scope:friendly_neighbour
reason = friend_beyond_faith
}
marry_spouse_1_dominant = {
SPOUSE_1 = scope:potential_prince
SPOUSE_2 = scope:foreign_princess
}
add_truce_both_ways = {
character = scope:friendly_neighbour
years = 10
name = truce_religious_tolerance
}
add_character_modifier = {
modifier = hc_7010_tolerance
years = 10
}
stress_impact = {
callous = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
brave = minor_stress_impact_gain
zealous = major_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
ai_vengefulness = -1
ai_zeal = -10
}
}
}
# See how this lunatic speaks of heresy! They must be destroyed!
option = {
name = hold_court.7010.b
if = {
limit = {
NOT = {
has_trait = holy_warrior
}
}
add_trait = holy_warrior
}
else = {
add_character_modifier = {
modifier = hc_7010_holy_war
years = 10
}
}
progress_towards_rival_effect = {
REASON = rival_planning_holy_war
CHARACTER = scope:friendly_neighbour
OPINION = default_rival_opinion
}
stress_impact = {
compassionate = medium_stress_impact_gain
cynical = minor_stress_impact_gain
just = minor_stress_impact_gain
arbitrary = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
ai_vengefulness = 1
ai_zeal = 2.5
}
}
}
# I don't wanna do this
option = {
name = hold_court.7010.c
reverse_add_opinion = {
modifier = disappointed_opinion
opinion = -10
target = scope:friendly_neighbour
}
stress_impact = {
compassionate = minor_stress_impact_gain
diligent = minor_stress_impact_gain
just = minor_stress_impact_gain
zealous = minor_stress_impact_gain
}
ai_chance = {
base = 0
}
}
after = {
scope:friendly_neighbour = { clear_court_event_participation = yes }
# Finish up the chain if relevant.
hold_court_queue_post_event_effect = yes
}
}
# The Shield of Faith
# Same-faith ruler offers to sponsor a reformation
# 7020
scripted_trigger hc_7020_valid_same_faith_friend = {
top_liege = this
this != root
NOT = {
has_relation_rival = root # I would never work with you!
has_trait = zealous # I would never change the old ways!
}
any_sub_realm_barony = {
is_holy_site_of = root.faith
holder.faith ?= root.faith
}
}
scripted_trigger hc_7020_valid_threat = {
# You see them as a threat to your religion
NOT = { faith = { has_doctrine_parameter = unreformed } }
religion != root.religion
faith = {
faith_hostility_level = {
target = root.faith
value >= faith_hostile_level
}
}
# They are encroaching on your religion in some way
OR = {
# They control a large amount of your faith's lands
any_sub_realm_county = {
count >= 4
faith = root.faith
# Religiously protected people within their realm should not count towards this
holder.faith != root.faith
}
# They recently attacked you
any_memory = {
memory_type = war_won
memory_participant:loser ?= root
}
# They control one of your holy sites
any_sub_realm_barony = {
is_holy_site_of = root.faith
# The holy site is not held by a vassal of your faith
holder.faith != root.faith
}
}
}
hold_court.7020 = {
type = court_event
title = hold_court.7020.t
desc = {
desc = hold_court.7020.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:threatening_ruler = {
any_sub_realm_county = {
count >= 4
faith = root.faith
holder.faith != root.faith
}
}
}
desc = hold_court.7020.desc.mid.oppression
}
triggered_desc = {
trigger = {
scope:threatening_ruler = {
any_memory = {
memory_type = war_won
memory_participant:loser ?= root
}
}
}
desc = hold_court.7020.desc.mid.recent_war
}
triggered_desc = {
trigger = {
scope:threatening_ruler = {
any_sub_realm_barony = {
is_holy_site_of = root.faith
holder.faith != root.faith
}
}
}
desc = hold_court.7020.desc.mid.holy_site
}
}
desc = hold_court.7020.desc.outro
}
theme = realm
cooldown = { years = 15 }
court_scene = {
button_position_character = scope:same_faith_friend
court_event_force_open = yes
show_timeout_info = no
should_pause_time = yes
roles = {
scope:same_faith_friend = {
group = petitioners_group
animation = personality_compassionate
}
}
}
widget = {
gui = "event_window_widget_event_chain_progress"
container = "custom_widgets_container"
controller = event_chain_progress
}
trigger = {
is_ai = no # AI reformation should always follow the rules
piety_level >= medium_piety_level
faith = { has_doctrine_parameter = unreformed }
any_sub_realm_barony = {
is_holy_site_of = root.faith
holder.faith ?= root.faith
}
faith = {
holy_sites_controlled >= 3
any_faith_character = {
hc_7020_valid_same_faith_friend = yes
}
}
any_neighboring_and_across_water_top_liege_realm_owner = {
hc_7020_valid_threat = yes
}
}
weight_multiplier = {
base = 1
# Court weightings.
ep1_weight_up_for_court_type_modifier = { COURT_TYPE = court_administrative }
}
immediate = {
random_sub_realm_barony = {
limit = {
is_holy_site_of = root.faith
holder.faith ?= root.faith
}
save_scope_as = holy_site
}
faith = {
random_faith_character = {
limit = { hc_7020_valid_same_faith_friend = yes }
save_scope_as = same_faith_friend
}
}
random_neighboring_and_across_water_top_liege_realm_owner = {
limit = { hc_7020_valid_threat = yes }
save_scope_as = threatening_ruler
}
}
# The reformation is neccessary
option = {
name = hold_court.7020.a
remove_treasury_or_gold = major_treasury_or_gold_value
progress_towards_friend_effect = {
REASON = friend_united_by_faith
CHARACTER = scope:same_faith_friend
OPINION = default_friend_opinion
}
custom_tooltip = {
text = ignore_3_site_rule_tt
add_character_flag = ignore_3_holy_site_rule
}
custom_tooltip = {
text = friend_will_convert_tt
scope:same_faith_friend = {
add_character_flag = forced_conversion_on_reform
}
}
stress_impact = {
zealous = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_vengefulness = 1
ai_rationality = 1
ai_zeal = -2
}
modifier = {
factor = 0
short_term_treasury_or_gold < major_treasury_or_gold_value
}
}
}
# Stay strong, brother. We must not sacrifice our ways
option = {
name = hold_court.7020.b
add_piety = medium_piety_gain
add_character_modifier = {
modifier = hc_7020_guardian_of_the_old_ways
years = 15
}
scope:same_faith_friend = {
add_character_modifier = {
modifier = hc_7020_guardian_of_the_old_ways
years = 15
}
}
stress_impact = {
cynical = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
ai_vengefulness = 1
ai_zeal = 2.5
}
}
}
# We must join together in faith
option = {
name = hold_court.7020.c
trigger = {
NOT = { is_allied_to = scope:same_faith_friend }
}
create_alliance = {
target = scope:same_faith_friend
allied_through_owner = root
allied_through_target = scope:same_faith_friend
}
stress_impact = {
shy = minor_stress_impact_gain
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
ai_sociability = 1
ai_boldness = -1
ai_vengefulness = 1
ai_zeal = 2.5
}
}
}
after = {
scope:same_faith_friend = { clear_court_event_participation = yes }
# Finish up the chain if relevant.
hold_court_queue_post_event_effect = yes
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,802 +0,0 @@
namespace = tour_grounds_events
############################
## Tour Mini-Activity: Tour Grounds
############################
## Vassal Events
## 7000-7999
## by Claudia Baldassi
############################
# tour_grounds_events.7000 - Liege: Vassal accidentally tours you past a room/building they didn't want you to see: it has all the nice things
# tour_grounds_events.7001 - Vassal: Try to keep your liege from your secret stash room
#####################################################################################
######################
## Vassal Events
## 7000-7999
## by Claudia Baldassi
######################
# Liege: Vassal accidentally tours you past a room/building they didn't want you to see: it has all the nice things they didn't want you to try and tax whilst you're here (e.g., their best horses)
scripted_trigger tour_grounds_has_artifacts_trigger = {
any_character_artifact = {
is_equipped = no
exists = var:quality
var:quality >= 40
count >= 2
}
}
scripted_trigger tour_grounds_has_food_trigger = {
has_trait = gluttonous
is_vegetarian_trigger = no
}
scripted_trigger tour_grounds_has_wine_trigger = {
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
}
drinks_alcohol_trigger = yes
}
scripted_trigger tour_grounds_has_falcons_trigger = {
OR = {
AND = {
has_trait = lifestyle_hunter
has_trait_xp = {
trait = lifestyle_hunter
track = falconer
value >= trait_second_level
}
}
has_character_modifier = peregrine_falcon
}
}
scripted_trigger tour_grounds_has_dogs_trigger = {
OR = {
has_trait = lifestyle_hunter
house ?= { has_house_modifier = hold_court_8140_house_modifier }
}
}
scripted_trigger tour_grounds_has_horses_trigger = {
OR = {
AND = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = horse
value >= trait_second_level
}
}
any_owned_story = {
type = story_cycle_martial_lifestyle_warhorse
}
has_character_modifier = warfare_tamer_of_horses_modifier
has_character_modifier = horse_story_modifier
}
}
scripted_trigger tour_grounds_has_gold_trigger = {
OR = {
has_trait = greedy
gold >= 300
}
}
scripted_effect tour_grounds_tax_everything_effect = {
pay_short_term_gold = {
target = root
gold = medium_gold_value
}
if = {
limit = { vassal_contract_obligation_level_can_be_increased = feudal_government_taxes }
vassal_contract_increase_obligation_level = feudal_government_taxes
}
else = {
every_sub_realm_county = {
add_county_modifier = {
modifier = tour_liege_extra_taxation_county_modifier
years = 10
}
}
}
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -20
}
}
tour_grounds_events.7000 = {
type = activity_event
title = tour_grounds_events.7000.t
desc = {
desc = tour_grounds_events.7000.desc
first_valid = {
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_artifacts_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_artifacts
}
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_food_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_pantry
}
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_wine_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_cellar
}
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_falcons_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_falcons
}
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_dogs_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_dogs
}
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_horses_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_horses
}
triggered_desc = {
trigger = {
scope:stop_host_scope = {
tour_grounds_has_gold_trigger = yes
}
}
desc = tour_grounds_events.7000.desc_gold
}
desc = tour_grounds_events.7000.desc_fallback
}
}
theme = tour_grounds
cooldown = { years = 1 }
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:stop_host_scope
animation = shame
}
override_background = { reference = corridor_day }
immediate = {
if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_artifacts_trigger = yes
}
}
scope:stop_host_scope = {
random_character_artifact = {
limit = {
is_equipped = no
exists = var:quality
var:quality >= 40
}
save_scope_as = this_artifact
}
}
}
}
# Option A: tax EVERYTHING
option = {
name = tour_grounds_events.7000.a
scope:stop_host_scope = {
send_interface_toast = {
title = tour_grounds_events.7000.a.tt
left_icon = root
tour_grounds_tax_everything_effect = yes
}
}
if = {
limit = {
scope:activity = {
has_activity_option = {
category = special_type
option = tour_type_taxation
}
}
}
increase_tour_success_effect = { POINTS = 1 }
}
stress_impact = {
generous = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
}
modifier = {
has_trait = compassionate
add = -50
}
}
}
# Option B: commandeer all
option = {
name = tour_grounds_events.7000.b
trigger = {
OR = {
has_trait = greedy
scope:activity = {
has_activity_option = {
category = special_type
option = tour_type_taxation
}
}
scope:activity = {
has_activity_option = {
category = special_type
option = tour_type_intimidation
}
}
}
}
scope:stop_host_scope = {
send_interface_toast = {
title = tour_grounds_events.7000.b.tt
left_icon = root
if = {
limit = {
exists = scope:this_artifact
}
pay_short_term_gold = {
target = root
gold = major_gold_value
}
scope:this_artifact = {
set_owner = root
}
}
else_if = {
limit = {
OR = {
tour_grounds_has_food_trigger = yes
tour_grounds_has_wine_trigger = yes
tour_grounds_has_falcons_trigger = yes
tour_grounds_has_dogs_trigger = yes
house ?= { has_house_modifier = hold_court_8140_house_modifier }
tour_grounds_has_horses_trigger = yes
}
}
pay_short_term_gold = {
target = root
gold = major_gold_value
}
custom_tooltip = tour_grounds_events.7000.b.tt.2
}
else = {
scope:stop_host_scope = {
pay_short_term_gold = {
target = root
gold = massive_gold_value
}
}
}
}
}
if = {
limit = {
scope:stop_host_scope = {
OR = {
tour_grounds_has_food_trigger = yes
tour_grounds_has_wine_trigger = yes
}
}
}
add_character_modifier = {
modifier = tours_grounds_luxury_dining_modifier
years = 15
}
}
else_if = {
limit = {
scope:stop_host_scope = {
OR = {
tour_grounds_has_falcons_trigger = yes
tour_grounds_has_dogs_trigger = yes
}
}
}
add_character_modifier = {
modifier = tours_grounds_hunting_companions_modifier
years = 15
}
if = {
limit = {
scope:stop_host_scope = {
has_character_modifier = peregrine_falcon
}
}
add_character_modifier = peregrine_falcon
}
else_if = {
limit = {
scope:stop_host_scope = {
house ?= { has_house_modifier = hold_court_8140_house_modifier }
}
}
house = { add_house_modifier = { modifier = hold_court_8140_house_modifier years = 30 } }
}
}
else_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_horses_trigger = yes
}
}
add_character_modifier = {
modifier = tours_grounds_excellent_horses_modifier
years = 15
}
}
scope:stop_host_scope = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -40
}
}
if = {
limit = {
scope:activity = {
has_activity_option = {
category = special_type
option = tour_type_intimidation
}
}
}
increase_tour_success_effect = { POINTS = 1 }
}
else_if = {
limit = {
scope:activity = {
has_activity_option = {
category = special_type
option = tour_type_taxation
}
}
}
increase_tour_success_effect = { POINTS = 2 }
}
stress_impact = {
generous = major_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 2
}
modifier = {
has_trait = compassionate
add = -75
}
}
}
# Option C: common interest
option = {
name = tour_grounds_events.7000.c
trigger = {
trigger_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_food_trigger = yes
}
}
tour_grounds_has_food_trigger = yes
}
trigger_else_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_wine_trigger = yes
}
}
tour_grounds_has_food_trigger = yes
}
trigger_else_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_falcons_trigger = yes
}
}
tour_grounds_has_falcons_trigger = yes
}
trigger_else_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_dogs_trigger = yes
}
}
OR = {
tour_grounds_has_dogs_trigger = yes
any_owned_story = { type = story_cycle_pet_dog }
}
}
trigger_else_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_horses_trigger = yes
}
}
tour_grounds_has_horses_trigger = yes
}
trigger_else_if = {
limit = {
scope:stop_host_scope = {
tour_grounds_has_gold_trigger = yes
}
}
has_trait = greedy
}
trigger_else = {
always = no
}
}
scope:stop_host_scope = {
send_interface_toast = {
title = tour_grounds_events.7000.c.tt
left_icon = root
custom_tooltip = tour_grounds_events.7000.c.tt.2
add_character_modifier = {
modifier = tours_grounds_sharing_tips_with_friend_modifier
years = 10
}
}
}
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:stop_host_scope }
}
set_relation_friend = { reason = friend_common_interests target = scope:stop_host_scope }
}
add_character_modifier = {
modifier = tours_grounds_sharing_tips_with_friend_modifier
years = 15
}
stress_impact = {
greedy = medium_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = greedy
add = -75
}
modifier = {
has_trait = shy
add = -50
}
modifier = {
has_trait = gregarious
add = 100
}
}
}
# Option D: you saw nothing
option = {
name = tour_grounds_events.7000.d
reverse_add_opinion = {
target = scope:stop_host_scope
modifier = grateful_opinion
opinion = 30
}
scope:stop_host_scope = {
send_interface_toast = {
title = tour_grounds_events.7000.d.tt
left_icon = root
if = {
limit = {
root = {
can_add_hook = {
target = scope:stop_host_scope
type = favor_hook
}
}
}
root = {
add_hook = {
target = scope:stop_host_scope
type = favor_hook
}
}
}
}
}
stress_impact = {
greedy = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = greedy
add = -100
}
}
}
}
# Vassal: Try to keep your liege from your secret stash room
tour_grounds_events.7001 = {
type = activity_event
title = tour_grounds_events.7000.t
desc = {
desc = tour_grounds_events.7001.desc
first_valid = {
triggered_desc = {
trigger = {
tour_grounds_has_artifacts_trigger = yes
}
desc = tour_grounds_events.7001.desc_artifacts
}
triggered_desc = {
trigger = {
tour_grounds_has_food_trigger = yes
}
desc = tour_grounds_events.7001.desc_pantry
}
triggered_desc = {
trigger = {
tour_grounds_has_wine_trigger = yes
}
desc = tour_grounds_events.7001.desc_cellar
}
triggered_desc = {
trigger = {
tour_grounds_has_falcons_trigger = yes
}
desc = tour_grounds_events.7001.desc_falcons
}
triggered_desc = {
trigger = {
tour_grounds_has_dogs_trigger = yes
}
desc = tour_grounds_events.7001.desc_dogs
}
triggered_desc = {
trigger = {
tour_grounds_has_horses_trigger = yes
}
desc = tour_grounds_events.7001.desc_horses
}
triggered_desc = {
trigger = {
tour_grounds_has_gold_trigger = yes
}
desc = tour_grounds_events.7001.desc_gold
}
desc = tour_grounds_events.7001.desc_fallback
}
desc = tour_grounds_events.7001.desc_conclusion
}
theme = tour_grounds
left_portrait = {
character = root
animation = shame
}
right_portrait = {
character = scope:visiting_liege
animation = shock
}
override_background = { reference = corridor_day }
trigger = {
NOT = { has_character_flag = was_extorted_by_visiting_liege }
}
weight_multiplier = {
base = 1
modifier = {
OR = {
tour_grounds_has_artifacts_trigger = yes
tour_grounds_has_food_trigger = yes
tour_grounds_has_wine_trigger = yes
}
add = 1
}
modifier = {
OR = {
tour_grounds_has_falcons_trigger = yes
tour_grounds_has_dogs_trigger = yes
tour_grounds_has_horses_trigger = yes
}
add = 2
}
}
immediate = {
add_character_flag = {
flag = was_extorted_by_visiting_liege
days = 30 #Only once per visit
}
}
#Option A: try to distract
option = {
name = tour_grounds_events.7001.a
duel = {
skills = { diplomacy intrigue }
target = scope:visiting_liege
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tour_grounds_events.7001.a.success
send_interface_toast = {
title = tour_grounds_events.7001.a.success.tt
left_icon = scope:visiting_liege
add_character_modifier = {
modifier = tour_grounds_hidden_assets_modifier
years = 15
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tour_grounds_events.7001.a.failure
custom_tooltip = tour_grounds_events.7001_followup
scope:visiting_liege = { trigger_event = tour_grounds_events.7000 }
send_interface_toast = {
title = tour_grounds_events.7001.a.failure.tt
left_icon = scope:visiting_liege
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
add = 100
}
}
}
#Option B: Bribe
option = {
name = tour_grounds_events.7001.b
duel = {
skills = { stewardship intrigue }
target = scope:visiting_liege
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
scope:visiting_liege = { has_trait = greedy }
add = 20
}
desc = tour_grounds_events.7001.b.success
send_interface_toast = {
title = tour_grounds_events.7001.b.success.tt
left_icon = scope:visiting_liege
add_character_modifier = {
modifier = tour_grounds_hidden_assets_modifier
years = 15
}
pay_short_term_gold = {
target = scope:visiting_liege
gold = major_gold_value
}
}
scope:visiting_liege = {
if = {
limit = {
is_ai = no
}
send_interface_toast = {
title = tour_grounds_events.7001.b.tt
custom_tooltip = tour_grounds_events.7001.b.tt.2
show_as_tooltip = {
root = {
pay_short_term_gold = {
target = scope:visiting_liege
gold = major_gold_value
}
}
}
}
}
else = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 30
}
}
}
}
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tour_grounds_events.7001.a.failure
scope:visiting_liege = { trigger_event = tour_grounds_events.7000 }
custom_tooltip = tour_grounds_events.7001_followup
send_interface_toast = {
title = tour_grounds_events.7001.a.failure.tt
left_icon = scope:visiting_liege
}
}
}
ai_chance = {
base = 100
}
}
#Option C: I was JUST about to take you there!
option = {
name = tour_grounds_events.7001.c
scope:visiting_liege = { trigger_event = tour_grounds_events.7000 }
custom_tooltip = tour_grounds_events.7001_followup
if = {
limit = {
scope:visiting_liege = { is_ai = yes }
can_add_hook = {
target = scope:visiting_liege
type = favor_hook
}
}
add_hook = {
target = scope:visiting_liege
type = favor_hook
}
}
ai_chance = {
base = 100
modifier = {
has_trait = honest
add = 100
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,503 +0,0 @@
namespace = tour_general
############################
## Journal Events
## 5000-5999
## by James Beaumont
############################
# tour_general.5000 - Failing to solve the puzzle
# tour_general.5010 - Solving the journal
# tour_general.5020 - The journal is stolen
#####################################################################################
############################
## Journal Events
## 5000-5999
## by James Beaumont
############################
# Failing to get the journal open
tour_general.5000 = {
type = character_event
title = tour_general.5000.title
desc = tour_general.5000.desc
theme = learning
left_portrait = {
character = root
animation = personality_rational
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
option = { # Drat!
name = tour_general.5000.a
stress_impact = {
base = major_stress_impact_gain
patient = minor_stress_impact_loss
arrogant = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
}
ai_chance = {
base = 50
}
}
option = { # Try again!
name = tour_general.5000.b
duel = {
skill = learning
value = high_skill_rating
50 = { # You solve the puzzle!
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
custom_tooltip = {
text = open_the_journal_tt
trigger_event = tour_general.5010
}
}
50 = { # You fail
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
show_as_tooltip = {
add_stress = major_stress_gain
}
hidden_effect = {
trigger_event = tour_general.5001
}
}
}
stress_impact = {
base = major_stress_impact_gain
patient = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
stubborn = minor_stress_impact_loss
}
ai_chance = {
base = 0
}
}
}
# Failing to get the journal open, again!
tour_general.5001 = {
type = character_event
title = tour_general.5001.title
desc = tour_general.5001.desc
theme = learning
left_portrait = {
character = root
animation = personality_rational
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
option = { # Drat!
name = tour_general.5001.a
stress_impact = {
base = major_stress_impact_gain
patient = minor_stress_impact_loss
arrogant = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
}
ai_chance = {
base = 50
}
}
option = { # Bust open the damn lock!
name = tour_general.5001.b
duel = {
skill = prowess
value = high_skill_rating
50 = { # You break it
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = the_journal_is_destroyed_tt
send_interface_toast = {
title = the_journal_is_destroyed_tt
left_icon = root
random_owned_story = {
type = story_cycle_mysterious_journal
end_story = yes
}
destroy_artifact = scope:mysterious_journal
}
}
50 = { # You crack it open
compare_modifier = {
value = scope:duel_value
multiplier = 0
}
desc = open_the_journal_tt
custom_tooltip = {
text = more_mysteries_inside_tt
trigger_event = tour_general.5010
}
}
50 = { # You are too weak
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = fail_to_open_journal_tt
hidden_effect = {
send_interface_toast = {
title = fail_to_open_journal_tt
left_icon = root
}
}
}
}
stress_impact = {
base = medium_stress_impact_gain
patient = medium_stress_impact_gain
arrogant = medium_stress_impact_loss
stubborn = medium_stress_impact_loss
}
ai_chance = {
base = 0
}
}
}
# You got the journal open, now to decipher it...
scripted_trigger journal_answer_is_1 = {
scope:mysterious_journal = {
var:answer_variable = 1
}
}
scripted_trigger journal_answer_is_2 = {
scope:mysterious_journal = {
var:answer_variable = 2
}
}
scripted_trigger journal_answer_is_3 = {
scope:mysterious_journal = {
var:answer_variable = 3
}
}
scripted_trigger journal_answer_is_4 = {
scope:mysterious_journal = {
var:answer_variable = 4
}
}
tour_general.5010 = {
type = character_event
title = tour_general.5010.title
desc = {
desc = tour_general.5010.desc.intro
first_valid = {
triggered_desc = {
trigger = { journal_answer_is_1 = yes }
desc = tour_general.5010.desc.puzzle.a
}
triggered_desc = {
trigger = { journal_answer_is_2 = yes }
desc = tour_general.5010.desc.puzzle.b
}
triggered_desc = {
trigger = { journal_answer_is_3 = yes }
desc = tour_general.5010.desc.puzzle.c
}
triggered_desc = {
trigger = { journal_answer_is_4 = yes }
desc = tour_general.5010.desc.puzzle.d
}
}
desc = tour_general.5010.desc.outro
}
theme = learning
left_portrait = {
character = root
animation = happiness
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
immediate = {
if = {
limit = {
scope:mysterious_journal = {
NOT = { exists = var:answer_variable }
}
}
hidden_effect = {
scope:mysterious_journal = {
random_list = {
25 = {
set_variable = {
name = answer_variable
value = 1
}
}
25 = {
set_variable = {
name = answer_variable
value = 2
}
}
25 = {
#You need to have a title/realm for this to be a relevant reward
trigger = { is_landed = yes }
set_variable = {
name = answer_variable
value = 3
}
}
25 = {
set_variable = {
name = answer_variable
value = 4
}
}
}
}
}
}
}
option = { # Answer A
name = tour_general.5010.a
custom_tooltip = {
text = attempt_to_solve_the_cipher_tt
if = {
limit = {
journal_answer_is_1 = yes
}
trigger_event = tour_general.5011
}
}
ai_chance = {
base = 50
modifier = {
factor = 0
journal_answer_is_1 = no
}
}
}
option = { # Answer B
name = tour_general.5010.b
custom_tooltip = {
text = attempt_to_solve_the_cipher_tt
if = {
limit = {
journal_answer_is_2 = yes
}
trigger_event = tour_general.5012
}
}
ai_chance = {
base = 50
modifier = {
factor = 0
journal_answer_is_2 = no
}
}
}
option = { # Answer C
name = tour_general.5010.c
trigger = { is_landed = yes }
custom_tooltip = {
text = attempt_to_solve_the_cipher_tt
if = {
limit = {
journal_answer_is_3 = yes
}
trigger_event = tour_general.5013
}
}
ai_chance = {
base = 50
modifier = {
factor = 0
journal_answer_is_3 = no
}
}
}
option = { # Answer D
name = tour_general.5010.d
custom_tooltip = {
text = attempt_to_solve_the_cipher_tt
if = {
limit = {
journal_answer_is_4 = yes
}
trigger_event = tour_general.5014
}
}
ai_chance = {
base = 50
modifier = {
factor = 0
journal_answer_is_4 = no
}
}
}
}
# Generic solving the puzzle reward
scripted_effect generic_journal_reward = {
random_owned_story = {
type = story_cycle_mysterious_journal
set_variable = {
name = journal_complete_solved
value = yes
}
}
add_prestige = major_prestige_gain
add_dynasty_prestige = major_dynasty_prestige_gain
}
# You solved it! It's a book about grotesques!
tour_general.5011 = {
type = character_event
title = tour_general.5011.title
desc = tour_general.5011.desc
theme = learning
left_portrait = {
character = root
animation = ecstasy
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
immediate = {
generic_journal_reward = yes
scope:mysterious_journal = {
set_artifact_name = artifact_journal_of_grotesques
set_artifact_description = artifact_journal_of_grotesques_desc
set_artifact_rarity = illustrious
remove_artifact_modifier = artifact_stress_gain_1_penalty_modifier
add_artifact_modifier = artifact_monthly_prestige_gain_per_dread_add_4_modifier
add_artifact_modifier = artifact_dread_gain_mult_4_modifier
add_artifact_modifier = artifact_learning_1_modifier
add_artifact_modifier = artifact_intrigue_2_modifier
}
}
option = { # Omg that's so cool
name = tour_general.5011.a
ai_chance = {
base = 50
}
}
}
# You solved it! It's a book about advanced theology!
tour_general.5012 = {
type = character_event
title = tour_general.5012.title
desc = tour_general.5012.desc
theme = learning
left_portrait = {
character = root
animation = ecstasy
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
immediate = {
generic_journal_reward = yes
scope:mysterious_journal = {
set_artifact_name = artifact_journal_of_theology
set_artifact_description = artifact_journal_of_theology_desc
set_artifact_rarity = illustrious
remove_artifact_modifier = artifact_stress_gain_1_penalty_modifier
add_artifact_modifier = artifact_monthly_piety_6_modifier
add_artifact_modifier = artifact_learning_2_modifier
add_artifact_modifier = artifact_domain_tax_same_faith_mult_4_modifier
add_artifact_modifier = artifact_monthly_learning_lifestyle_xp_4_modifier
}
}
option = { # Omg that's so cool
name = tour_general.5012.a
ai_chance = {
base = 50
}
}
}
# You solved it! It's a secret history of your realm!
tour_general.5013 = {
type = character_event
title = tour_general.5013.title
desc = tour_general.5013.desc
theme = tour_stop
left_portrait = {
character = root
animation = ecstasy
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
immediate = {
generic_journal_reward = yes
scope:mysterious_journal = {
set_artifact_name = artifact_journal_secret_history
set_artifact_description = artifact_journal_secret_history_desc
set_artifact_rarity = illustrious
remove_artifact_modifier = artifact_stress_gain_1_penalty_modifier
add_artifact_modifier = artifact_owned_hostile_scheme_success_chance_add_12_modifier
add_artifact_modifier = artifact_monthly_intrigue_lifestyle_xp_4_modifier
add_artifact_modifier = artifact_intrigue_2_modifier
}
}
option = { # Omg that's so cool
name = tour_general.5013.a
ai_chance = {
base = 50
}
}
}
# You solved it! It's a book of martial arts techniques
tour_general.5014 = {
type = character_event
title = tour_general.5014.title
desc = tour_general.5014.desc
theme = tour_stop
left_portrait = {
character = root
animation = ecstasy
}
artifact = {
target = scope:mysterious_journal
position = lower_right_portrait
}
immediate = {
generic_journal_reward = yes
scope:mysterious_journal = {
set_artifact_name = artifact_journal_of_martial_arts
set_artifact_description = artifact_journal_of_martial_arts_desc
set_artifact_rarity = illustrious
remove_artifact_modifier = artifact_stress_gain_1_penalty_modifier
add_artifact_modifier = artifact_prowess_8_modifier
add_artifact_modifier = artifact_monthly_martial_lifestyle_xp_4_modifier
add_artifact_modifier = artifact_martial_2_modifier
}
}
option = { # Omg that's so cool
name = tour_general.5014.a
ai_chance = {
base = 50
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,804 +0,0 @@
namespace = tour_travel
############################
### Highwaymen on your route
### By James Beaumont
############################
tour_travel.9010 = {
type = character_event
title = tour_travel.9010.t
desc = tour_travel.9010.desc
theme = travel_tour
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = craven
}
animation = fear
}
triggered_animation = {
trigger = { has_trait = brave }
animation = personality_bold
}
animation = thinking
}
right_portrait = {
character = scope:travel_leader
animation = worry
}
cooldown = { years = 2 }
trigger = {
has_activity_intent = justice_intent
root.location.county = {
NOT = { county_control = 100 }
}
}
weight_multiplier = {
base = 1
modifier = {
add = 2
root.location.county = {
NOT = { county_control <= 75 }
}
}
modifier = {
add = 2
root.location.county = {
NOT = { county_control <= 50 }
}
}
modifier = {
add = 2
root.location.county = {
NOT = { county_control <= 25 }
}
}
}
immediate = {
if = {
limit = {
exists = current_travel_plan.travel_leader
}
current_travel_plan.travel_leader = { save_scope_as = travel_leader }
}
else = {
current_travel_plan = {
random_entourage_character = {
weight = {
base = 1
modifier = {
add = prowess
}
}
save_scope_as = travel_leader
}
}
}
current_travel_plan = {
next_destination_province = { save_scope_as = next_destination }
}
}
option = { #Just go around them
name = tour_travel.9010.a
current_travel_plan = {
delay_travel_plan = { weeks = 1 }
}
stress_impact = {
craven = minor_stress_impact_loss
patient = minor_stress_impact_loss
impatient = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_energy = 1
ai_boldness = -1
ai_vengefulness = -1
ai_honor = -1
}
}
}
option = { #Go in and clear em out!
name = tour_travel.9010.b
scope:travel_leader = {
duel = {
skill = prowess
value = high_skill_rating
# Success.
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
root = {
send_interface_toast = {
title = tour_travel.9010.success
left_icon = scope:travel_leader
location.county = {
change_county_control = 20
add_county_modifier = {
modifier = highwaymen_eliminated_modifier
years = 15
}
}
}
}
}
# Failure.
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
root = {
send_interface_toast = {
title = tour_travel.9010.failure
left_icon = scope:travel_leader
scope:travel_leader = { increase_wounds_effect = { REASON = fight } }
increase_wounds_no_death_effect = { REASON = fight }
}
}
}
}
}
stress_impact = {
just = minor_stress_impact_loss
brave = minor_stress_impact_loss
patient = minor_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_energy = -1
ai_boldness = 1
ai_vengefulness = 1
ai_honor = 1
}
}
}
}
############################
### Possibly innocent man up for execution
### By James Beaumont
############################
scripted_trigger tour_travel_9020_valid_criminal_trigger = {
is_physically_able_adult = yes
OR = {
any_secret = { is_criminal_for = prev }
root = {
has_imprisonment_reason = prev
}
trait_is_criminal_in_faith_trigger = {
TRAIT = adulterer
FAITH = root.faith
GENDER_CHARACTER = this
}
trait_is_criminal_in_faith_trigger = {
TRAIT = fornicator
FAITH = root.faith
GENDER_CHARACTER = this
}
trait_is_criminal_in_faith_trigger = {
TRAIT = sodomite
FAITH = root.faith
GENDER_CHARACTER = this
}
trait_is_criminal_in_faith_trigger = {
TRAIT = witch
FAITH = root.faith
GENDER_CHARACTER = this
}
trait_is_criminal_in_faith_trigger = {
TRAIT = cannibal
FAITH = root.faith
GENDER_CHARACTER = this
}
trait_is_criminal_in_faith_trigger = {
TRAIT = deviant
FAITH = root.faith
GENDER_CHARACTER = this
}
trait_is_criminal_in_faith_trigger = {
TRAIT = incestuous
FAITH = root.faith
GENDER_CHARACTER = this
}
has_trait = murderer
}
}
tour_travel.9020 = {
type = character_event
title = tour_travel.9020.t
desc = {
desc = tour_travel.9020.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:accused_character = {
tour_travel_9020_valid_criminal_trigger = yes
}
}
desc = tour_travel.9020.desc.outro.guilty
}
desc = tour_travel.9020.desc.outro
}
}
theme = travel_tour
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:accused_character
animation = prisonhouse
triggered_outfit = {
remove_default_outfit = no
outfit_tags = { beggar_rags }
}
}
cooldown = { years = 2 }
trigger = {
has_activity_intent = justice_intent
}
immediate = {
hidden_effect = {
if = {
limit = {
any_pool_character = {
province = root.location
}
}
random_pool_character = {
province = root.location
weight = {
base = 1
modifier = {
factor = 2
tour_travel_9020_valid_criminal_trigger = yes
}
}
save_scope_as = accused_character
}
}
else = {
create_character = {
location = root.capital_province
template = generic_peasant_character
faith = root.location.faith
culture = root.location.culture
save_scope_as = accused_character
}
scope:accused_character = {
add_character_flag = {
flag = silently_disappear_me
years = 1
}
random_list = {
10 = {
trigger = {
root.faith = { has_doctrine_parameter = deviancy_illegal }
}
add_trait = deviant
}
10 = {
trigger = {
root.faith = { has_doctrine_parameter = witchcraft_illegal }
}
add_trait = witch
}
10 = {
trigger = {
trait_is_criminal_in_faith_trigger = {
TRAIT = adulterer
FAITH = root.faith
GENDER_CHARACTER = this
}
}
add_trait = adulterer
}
10 = {
trigger = {
trait_is_criminal_in_faith_trigger = {
TRAIT = fornicator
FAITH = root.faith
GENDER_CHARACTER = this
}
}
add_trait = fornicator
}
10 = {
trigger = {
trait_is_criminal_in_faith_trigger = {
TRAIT = cannibal
FAITH = root.faith
GENDER_CHARACTER = this
}
}
add_trait = cannibal
}
10 = {
add_trait = murderer
}
60 = { # They're innocent
}
}
}
}
decide_court_position_to_give_effect = {
CANDIDATE = scope:accused_character
EMPLOYER = root
}
}
}
option = { # Support the execution
name = tour_travel.9020.a
root.location.county = {
change_county_control = minor_county_control_gain
}
scope:accused_character = {
death = {
death_reason = death_execution
killer = root
}
}
if = {
limit = {
scope:accused_character = {
tour_travel_9020_valid_criminal_trigger = yes
}
}
stress_impact = {
arbitrary = minor_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
just = medium_stress_impact_loss
forgiving = major_stress_impact_gain
compassionate = major_stress_impact_gain
}
}
else = {
stress_impact = {
arbitrary = minor_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
just = major_stress_impact_gain
forgiving = major_stress_impact_gain
compassionate = major_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
tour_travel_9020_valid_criminal_trigger = yes
OR = {
has_trait = compassionate
has_trait = forgiving
}
}
modifier = {
factor = 0
tour_travel_9020_valid_criminal_trigger = no
OR = {
has_trait = compassionate
has_trait = forgiving
has_trait = just
}
}
}
}
option = { # Let them go
name = tour_travel.9020.b
root.location.county = {
change_county_control = minor_county_control_loss
}
if = {
limit = {
scope:accused_character = {
tour_travel_9020_valid_criminal_trigger = yes
}
}
stress_impact = {
forgiving = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
arbitrary = minor_stress_impact_gain
callous = minor_stress_impact_gain
just = medium_stress_impact_gain
}
}
else = {
stress_impact = {
just = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
compassionate = minor_stress_impact_loss
arbitrary = minor_stress_impact_gain
callous = minor_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
tour_travel_9020_valid_criminal_trigger = yes
OR = {
has_trait = arbitrary
has_trait = callous
has_trait = sadistic
has_trait = just
}
}
modifier = {
factor = 0
tour_travel_9020_valid_criminal_trigger = no
OR = {
has_trait = arbitrary
has_trait = callous
has_trait = sadistic
}
}
}
}
option = { # Let them serve you as penance
name = tour_travel.9020.c
trigger = {
has_royal_court = yes
OR = {
has_trait = compassionate
has_trait = forgiving
has_trait = just
}
}
add_courtier = scope:accused_character
hidden_effect = {
scope:accused_character = {
if = {
limit = { exists = scope:activity }
add_to_activity_without_travel = scope:activity
}
}
}
current_travel_plan = {
add_companion = scope:accused_character
}
add_hook = {
type = indebted_hook
target = scope:accused_character
}
distribute_determined_court_position_effect = {
CANDIDATE = scope:accused_character
EMPLOYER = root
}
consume_imprisonment_reasons = scope:accused_character
if = {
limit = {
scope:accused_character = {
tour_travel_9020_valid_criminal_trigger = yes
}
}
stress_impact = {
forgiving = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
just = medium_stress_impact_loss
arbitrary = minor_stress_impact_gain
callous = minor_stress_impact_gain
}
}
else = {
stress_impact = {
just = major_stress_impact_loss
forgiving = major_stress_impact_loss
compassionate = major_stress_impact_loss
arbitrary = minor_stress_impact_gain
callous = minor_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
tour_travel_9020_valid_criminal_trigger = yes
OR = {
has_trait = arbitrary
has_trait = callous
has_trait = sadistic
has_trait = just
}
}
modifier = {
factor = 0
tour_travel_9020_valid_criminal_trigger = no
OR = {
has_trait = arbitrary
has_trait = callous
has_trait = sadistic
}
}
}
}
after = {
if = {
limit = {
is_ai = yes
scope:accused_character = {
has_character_flag = silently_disappear_me
}
}
scope:accused_character = {
silent_disappearance_effect = yes
}
}
}
}
############################
### Visit a tavern
### By James Beaumont
############################
tour_travel.9030 = {
type = character_event
title = tour_travel.9030.t
desc = {
desc = tour_travel.9030.desc.intro
first_valid = {
triggered_desc = {
trigger = {
drinks_alcohol_trigger = no
}
desc = tour_travel.9030.desc.mid.hashish
}
desc = tour_travel.9030.desc.mid
}
desc = tour_travel.9030.desc.outro
}
theme = travel_tour
override_background = { reference = bp1_bonfire }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:drunky_entourage
triggered_animation = {
trigger = {
drinks_alcohol_trigger = no
}
animation = admiration
}
animation = drink_goblet
}
cooldown = { years = 2 }
trigger = {
has_activity_intent = reduce_stress_intent
is_adult = yes
current_travel_plan = {
any_entourage_character = {
this != root
is_ai = yes
is_adult = yes
}
}
}
immediate = {
current_travel_plan = {
random_entourage_character = {
limit = {
this != root
is_ai = yes
is_adult = yes
}
weight = {
base = 1
modifier = {
factor = 10
OR = {
has_trait = drunkard
has_trait = hashishiyah
}
}
modifier = {
factor = 2
has_trait = gluttonous
}
modifier = {
factor = 2
NOT = { has_trait = temperate }
}
}
save_scope_as = drunky_entourage
}
}
}
option = { # Hell yeah, an easy break
name = tour_travel.9030.a
current_travel_plan = {
delay_travel_plan = { weeks = 1 }
}
if = {
limit = {
drinks_alcohol_trigger = yes
}
add_character_modifier = {
modifier = stress_drinking_binge
years = 5
}
}
else = {
add_character_modifier = {
modifier = hashish_with_friend_modifier
years = 5
}
}
stress_impact = {
base = medium_stress_impact_loss
lazy = minor_stress_impact_loss
drunkard = minor_stress_impact_loss
hashishiyah = minor_stress_impact_loss
gluttonous = minor_stress_impact_loss
diligent = minor_stress_impact_gain
impatient = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = diligent
has_trait = impatient
}
}
}
}
option = { # I have no time for distractions!
name = tour_travel.9030.b
stress_impact = {
diligent = minor_stress_impact_loss
impatient = minor_stress_impact_loss
lazy = minor_stress_impact_gain
drunkard = minor_stress_impact_gain
hashishiyah = minor_stress_impact_gain
gluttonous = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = drunkard
has_trait = hashishiyah
has_trait = gluttonous
}
}
}
}
}
############################
### Peasants chatting about their favourite heroes
### By James Beaumont
############################
tour_travel.9040 = {
type = character_event
title = tour_travel.9040.t
desc = tour_travel.9040.desc
theme = travel_tour
left_portrait = {
character = root
animation = personality_bold
triggered_outfit = {
remove_default_outfit = no
outfit_tags = { beggar_rags }
}
}
right_portrait = {
character = scope:peasant
triggered_animation = {
trigger = {
drinks_alcohol_trigger = no
}
animation = admiration
}
animation = drink_goblet
}
cooldown = { years = 2 }
trigger = {
has_activity_intent = spread_legend_intent
is_location_valid_for_travel_event_on_land = yes
}
immediate = {
root.location = {
save_scope_as = county_scope
save_scope_as = background_wilderness_scope # For theme
}
create_character = {
location = scope:county_scope
template = drunken_peasant_character
culture = scope:county_scope.culture
faith = scope:county_scope.faith
save_scope_as = peasant
}
}
option = { # Let me tell you about my legend :)
name = tour_travel.9040.a
current_travel_plan = {
delay_travel_plan = { weeks = 1 }
}
duel = {
skill = diplomacy
target = scope:peasant
50 = {
desc = tour_travel.9040.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
title = tour_travel.9040.a.success
left_icon = root
right_icon = scope:peasant
add_prestige = medium_prestige_gain
add_character_modifier = {
modifier = ce1_legendary_taverns
years = 15
}
}
}
50 = {
desc = tour_travel.9040.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
title = tour_travel.9040.a.failure
left_icon = root
add_prestige = medium_prestige_loss
add_character_modifier = {
modifier = ce1_legend_mocked
years = 10
}
}
}
}
ai_chance = {
base = 100
}
}
option = { # Ah, I shan't bother them
name = tour_travel.9040.b
add_stress = medium_stress_loss
ai_chance = {
base = 10
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,499 +0,0 @@
namespace = tournament_events
##################################################
# You are offered a favour by a pretty person
# by James Beaumont
# 8000
##################################################
scripted_trigger 8000_valid_to_offer_favor = {
is_ai = yes
is_adult = yes
is_lowborn = no # Prevent random uninteresting pool characters from showing up
OR = {
AND = {
is_married = no
is_concubine = no
}
is_consort_of = root
might_cheat_on_every_partner_trigger = yes
}
NOT = {
relation_with_character_is_incestuous_in_faith_trigger = {
CHARACTER = root
FAITH = root.faith
}
}
OR = {
is_attracted_to_gender_of = root
has_sexuality = asexual # This is romance and courtship, asexuals should be fine with it most of the time
}
OR = {
AND = {
root.faith = { NOT = { has_doctrine_parameter = homosexuality_accepted } }
NOT = { sex_same_as = root }
}
root.faith = { has_doctrine_parameter = homosexuality_accepted }
}
NOR = {
has_relation_soulmate = root
# Celibates should abstain always
has_trait = celibate
# No priests giving favours
AND = {
is_clergy = yes
NOT = { faith = { has_doctrine_parameter = clergy_can_marry } }
}
}
}
tournament_events.8000 = { # Start
type = activity_event
title = tournament_events.8000.t
desc = {
desc = tournament_events.8000.desc.intro
first_valid = {
triggered_desc = {
trigger = {
any_in_list = {
list = potential_favour_givers
count > 1
}
}
desc = tournament_events.8000.desc.mid.two
}
desc = tournament_events.8000.desc.mid
}
first_valid = {
triggered_desc = {
trigger = {
NOR = {
is_attracted_to_gender_of = scope:favor_giver_1
is_attracted_to_gender_of = scope:favor_giver_2
has_sexuality = asexual
}
}
desc = tournament_events.8000.desc.outro.homo
}
}
}
theme = tournament_locale_camp
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:favor_giver_1
animation = flirtation
}
lower_right_portrait = {
character = scope:favor_giver_2
animation = flirtation
}
cooldown = { years = 1 }
trigger = {
activity_is_competing_trigger = yes
scope:activity = {
any_guest_subset_current_phase = { # There is a spectator who fancies you
name = spectator
8000_valid_to_offer_favor = yes
}
}
NOT = { has_trait = celibate }
OR = { # For AI priests in tournaments
is_clergy = no
faith = { has_doctrine_parameter = clergy_can_marry }
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = woo_attendee_intent
}
}
immediate = {
hidden_effect = {
save_scope_as = favor_recipient
scope:activity = {
every_guest_subset_current_phase = {
name = spectator
limit = { 8000_valid_to_offer_favor = yes }
add_to_list = potential_favour_givers
}
random_in_list = {
list = potential_favour_givers
weight = {
base = 20
modifier = { # If they are wooing you, they're much more likely to do this
factor = 100
has_activity_intent = woo_attendee_intent
intent_target = root
}
modifier = { # Get their intent target where possible
add = 20
this = root.intent_target
}
modifier = { # Get someone fertile for the player
add = 20
fertility > low_fertility
}
modifier = { # They love knights and stuff
add = 20
has_trait = gallant
}
modifier = {
add = ai_honor
}
modifier = { # Cheaters are possible, but should be less likely
add = 20
OR = {
AND = {
is_married = no
is_concubine = no
}
is_consort_of = root
is_concubine_of = root
}
}
modifier = { # Get someone interesting
add = 20
is_claimant = yes
}
modifier = {
add = 20
OR = {
has_same_sinful_trait = root
has_same_virtue_trait = root
}
}
}
save_scope_as = favor_giver_1
hidden_effect = {
create_artifact_tournament_favor_effect = {
OWNER = scope:favor_giver_1
RECIPIENT = root
}
}
scope:newly_created_artifact = { save_scope_as = favor_1 }
}
if = {
limit = {
any_in_list = {
list = potential_favour_givers
count > 1
}
}
random_in_list = {
list = potential_favour_givers
limit = {
this != scope:favor_giver_1
}
weight = {
base = 20
modifier = { # If they are wooing you, they're much more likely to do this
factor = 100
has_activity_intent = woo_attendee_intent
intent_target = root
}
modifier = { # Get their intent target where possible
add = 20
this = root.intent_target
}
modifier = {
add = 20
fertility > low_fertility
}
modifier = {
add = 20
has_trait = gallant
}
modifier = {
add = ai_honor
}
modifier = {
OR = {
AND = {
is_married = no
is_concubine = no
}
is_consort_of = root
is_concubine_of = root
}
}
modifier = {
add = 20
OR = {
has_same_sinful_trait = root
has_same_virtue_trait = root
}
}
}
save_scope_as = favor_giver_2
hidden_effect = {
create_artifact_tournament_favor_effect = {
OWNER = scope:favor_giver_2
RECIPIENT = root
}
}
scope:newly_created_artifact = { save_scope_as = favor_2 }
}
}
}
}
add_prestige = medium_prestige_gain
custom_tooltip = tournament_events.1251.favor_tt
}
option = { # Why, suitor 1 is perfect for me!
name = tournament_events.8000.a
scope:activity = {
add_activity_log_entry = {
key = tournament_favor_given_log
score = 25
tags = { favors good }
character = scope:favor_recipient
target = scope:favor_giver_1
# Effects
show_as_tooltip = {
scope:favor_1 = { set_owner = root }
}
hidden_effect = {
if = {
limit = { exists = scope:favor_2 }
destroy_artifact = scope:favor_2
}
}
}
}
hidden_effect = {
scope:favor_1 = { equip_artifact_to_owner_replace = yes }
}
if = {
limit = {
NOT = {
# They are not wooing me
scope:favor_giver_1 = {
any_scheme = {
type = courting
scheme_target_character = root
}
}
# I am not wooing them
any_scheme = {
type = courting
scheme_target_character = root
}
}
}
scope:favor_giver_1 = {
start_scheme = {
type = courting
target_character = root
}
}
}
else = {
set_relation_soulmate = {
reason = soulmate_tournament
target = scope:favor_giver_1
}
}
reverse_add_opinion = {
target = scope:favor_giver_1
modifier = flattered_opinion
opinion = 20
}
if = {
limit = { exists = scope:favor_giver_2 }
reverse_add_opinion = {
target = scope:favor_giver_2
modifier = rebuffed_opinion
opinion = -15
}
}
stress_impact = {
gallant = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
chaste = minor_stress_impact_gain
cynical = minor_stress_impact_gain
zealous = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = cynical
has_trait = zealous
has_trait = humble
}
}
modifier = {
factor = 0.5
NOT = { # Only 0.5 since gay characters may pretend to be interested in a homophobic environment
is_attracted_to_gender_of = scope:favor_giver_1
has_sexuality = asexual
}
}
}
}
option = { # Why, suitor 2 is perfect for me!
name = tournament_events.8000.b
trigger = {
exists = scope:favor_giver_2
}
scope:activity = {
add_activity_log_entry = {
key = tournament_favor_given_log
score = 25
tags = { favors good }
character = scope:favor_recipient
target = scope:favor_giver_1
# Effects
show_as_tooltip = {
scope:favor_2 = { set_owner = root }
}
hidden_effect = {
if = {
limit = { exists = scope:favor_1 }
destroy_artifact = scope:favor_1
}
}
}
}
hidden_effect = {
scope:favor_2 = { equip_artifact_to_owner_replace = yes }
}
if = {
limit = {
NOT = {
# They are not wooing me
scope:favor_giver_2 = {
any_scheme = {
type = courting
scheme_target_character = root
}
}
# I am not wooing them
any_scheme = {
type = courting
scheme_target_character = root
}
}
}
scope:favor_giver_2 = {
start_scheme = {
type = courting
target_character = root
}
}
}
else = {
set_relation_soulmate = {
reason = soulmate_tournament
target = scope:favor_giver_2
}
}
reverse_add_opinion = {
target = scope:favor_giver_2
modifier = flattered_opinion
opinion = 20
}
reverse_add_opinion = {
target = scope:favor_giver_1
modifier = rebuffed_opinion
opinion = -15
}
stress_impact = {
gallant = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
chaste = minor_stress_impact_gain
cynical = minor_stress_impact_gain
zealous = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = cynical
has_trait = zealous
has_trait = humble
}
}
modifier = {
factor = 0.5
NOT = {
is_attracted_to_gender_of = scope:favor_giver_1
has_sexuality = asexual
}
}
}
}
option = { # Oh bugger off both of you
name = tournament_events.8000.c
add_prestige = medium_prestige_gain
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
reverse_add_opinion = {
target = scope:favor_giver_1
modifier = rebuffed_opinion
opinion = -15
}
hidden_effect = {
if = {
limit = { exists = scope:favor_1 }
destroy_artifact = scope:favor_1
}
if = {
limit = { exists = scope:favor_2 }
destroy_artifact = scope:favor_2
}
}
if = {
limit = { exists = scope:favor_giver_2 }
reverse_add_opinion = {
target = scope:favor_giver_2
modifier = rebuffed_opinion
opinion = -15
}
}
stress_impact = {
gallant = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
lustful = minor_stress_impact_gain
rakish = minor_stress_impact_gain
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = gallant
has_trait = arrogant
has_trait = lustful
has_trait = rakish
}
}
modifier = {
factor = 0.5
NOT = {
is_attracted_to_gender_of = scope:favor_giver_1
has_sexuality = asexual
}
}
}
}
}

View file

@ -1,604 +0,0 @@
namespace = jason_first_race_event
##################################################
# A Mess of Legs
# by Jason Cantalini
# 4700
##################################################
scripted_trigger jason_first_race_event_1_opponent_trigger = {
is_ai = yes
exists = var:contest_aptitude
this != root
OR = {
is_lowborn = no
is_landed = no
}
}
#Two racers collide with each other
jason_first_race_event.1 = {
type = activity_event
title = jason_first_race_event.1.t
desc = {
desc = jason_first_race_event.1.desc
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = paranoid
has_trait = vengeful
has_trait = wrathful
has_relation_rival = scope:opponent
has_relation_nemesis = scope:opponent
}
NOR = {
has_trait = trusting
has_trait = forgiving
has_trait = compassionate
}
}
desc = jason_first_race_event.1.desc.suspicious
}
triggered_desc = {
trigger = {
OR = {
has_trait = trusting
has_trait = forgiving
has_trait = compassionate
}
}
desc = jason_first_race_event.1.desc.sympathetic
}
}
}
theme = tournament_contest
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:opponent
animation = fear
}
trigger = {
exists = var:contest_aptitude
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
this = root
}
any_guest_subset_current_phase = {
name = qualified
jason_first_race_event_1_opponent_trigger = yes
}
NOT = {
any_attending_character = {
is_ai = no
this != root
}
}
# Only one event removing competitors should occur
any_guest_subset_current_phase = {
name = qualified
count >= 8
}
}
#Standard checks.
NOT = { has_character_flag = horse_race_contest_event_cooldown }
}
immediate = {
tournament_pivotal_flavor_variable_effect = { CONTEST = horse_race ID = 10 }
add_character_flag = {
flag = horse_race_contest_event_cooldown
years = 1
}
tournament_horse_race_fetch_horse_effect = yes
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = {
jason_first_race_event_1_opponent_trigger = yes
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = opponent
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
scope:opponent = {
tournament_horse_race_fetch_horse_effect = yes
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
}
root.var:horse_race_jockey = { save_scope_as = jockey }
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
}
# Accuse the other horse's owner of sabotaging you
option = {
name = jason_first_race_event.1.a
flavor = jason_first_race_event.1.a.tt
progress_towards_rival_effect = {
CHARACTER = scope:opponent
REASON = rival_race_sabotage_accusation
OPINION = -40
}
duel = {
skills = { diplomacy intrigue }
value = 10
#You convince everyone that this affront merits a restart
45 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
add = 20
dread > medium_dread
}
modifier = {
add = 40
dread > high_dread
}
modifier = {
add = 50
scope:host = {
this = root
}
}
modifier = {
add = 25
highest_held_title_tier = tier_kingdom
}
modifier = {
add = 50
highest_held_title_tier = tier_empire
}
send_interface_toast = {
title = jason_first_race_event.1.a.tt.win
left_icon = root
right_icon = scope:opponent
tournament_contest_knocked_out_effect = { CHARACTER = scope:opponent }
}
desc = jason_first_race_event.1.a.tt.win
}
#You sound petty and no one listens
55 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = jason_first_race_event.1.a.tt.lose
left_icon = root
right_icon = scope:opponent
scope:activity = {
add_activity_log_entry = {
key = contest_horse_race_collision_log
tags = { contest bad }
score = 30
character = root
target = scope:opponent
}
every_attending_character = {
limit = {
NOR = {
this = root
this = scope:opponent
}
}
custom = every_tournament_attendee_tt
add_opinion = {
target = root
modifier = contempt_opinion
opinion = -10
}
}
}
}
desc = jason_first_race_event.1.a.tt.lose
}
}
stress_impact = {
forgiving = medium_stress_impact_gain
trusting = minor_stress_impact_gain
compassionate = miniscule_stress_impact_gain
wrathful = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
callous = miniscule_stress_impact_loss
sadistic = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = forgiving
has_trait = trusting
}
}
modifier = {
add = -50
OR = {
has_trait = compassionate
has_trait = honest
has_trait = shy
has_trait = content
has_trait = calm
}
}
modifier = {
add = -50
OR = {
diplomacy <= low_skill_rating
intrigue <= low_skill_rating
}
}
modifier = {
add = -25
OR = {
diplomacy < medium_skill_rating
intrigue < medium_skill_rating
}
}
modifier = {
add = -50
diplomacy <= decent_skill_rating
intrigue <= decent_skill_rating
}
modifier = {
add = 100
OR = {
diplomacy >= high_skill_rating
prowess >= high_skill_rating
}
}
modifier = {
add = 100
OR = {
has_trait = vengeful
has_trait = arbitrary
has_trait = deceitful
has_trait = paranoid
has_trait = greedy
}
}
modifier = {
add = 50
highest_held_title_tier = tier_kingdom
}
modifier = {
add = 100
highest_held_title_tier = tier_empire
}
modifier = {
add = 150
scope:host = {
this = root
}
}
modifier = {
add = 75
dread > medium_dread
}
}
}
# Console your opponent and apologize
option = {
trigger = {
OR = {
NOR = {
has_relation_rival = scope:opponent
has_relation_nemesis = scope:opponent
has_trait = paranoid
has_trait = vengeful
has_trait = wrathful
has_trait = sadistic
}
OR = {
has_relation_rival = scope:opponent
has_relation_nemesis = scope:opponent
OR = {
has_trait = trusting
has_trait = forgiving
has_trait = compassionate
}
}
}
}
name = jason_first_race_event.1.b
flavor = jason_first_race_event.1.b.tt
scope:activity = {
add_activity_log_entry = {
key = contest_horse_race_collision_log
tags = { contest bad }
score = 30
character = root
target = scope:opponent
# Effect
root = {
progress_towards_friend_effect = {
CHARACTER = scope:opponent
REASON = friend_shared_disappointment
OPINION = 40
}
}
}
}
stress_impact = {
forgiving = minor_stress_impact_loss
wrathful = major_stress_impact_gain
sadistic = major_stress_impact_gain
paranoid = major_stress_impact_gain
vengeful = major_stress_impact_gain
callous = medium_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = sadistic
has_trait = paranoid
has_trait = vengeful
has_trait = callous
}
}
modifier = {
add = -50
has_trait = arrogant
}
modifier = {
add = 100
has_trait = forgiving
}
}
}
# Try to encourage your jockey
option = {
name = jason_first_race_event.1.c
flavor = jason_first_race_event.1.c.tt
duel = {
skill = diplomacy
value = 10
#Your jockey gets back on track
45 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 20
}
add = 20
}
modifier = {
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
add = 30
}
modifier = {
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 80
}
add = 50
}
send_interface_toast = {
title = jason_first_race_event.1.c.tt.win
left_icon = root
right_icon = scope:opponent
desc = jason_first_race_event.1.c.tt.lose
create_character_memory = {
type = successful_race_rescue
}
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
# add horsemanship tournament skill XP
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = horse
value = tournament_hastiludes_xp_gain_medium_value
}
}
}
desc = jason_first_race_event.1.c.tt.win
}
#Your jockey can't hear you
55 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = jason_first_race_event.1.c.tt.lose
left_icon = root
right_icon = scope:opponent
scope:activity = {
add_activity_log_entry = {
key = contest_horse_race_collision_log
tags = { contest bad }
score = 30
character = root
target = scope:opponent
}
}
activity_tournament_change_contestant_score_effect = { SCORE = decrease_miniscule }
}
desc = jason_first_race_event.1.c.tt.lose
create_character_memory = {
type = trampled_during_race_rescue
}
}
}
stress_impact = {
craven = major_stress_impact_gain
sadistic = medium_stress_impact_gain
lazy = medium_stress_impact_gain
callous = medium_stress_impact_gain
vengeful = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = sadistic
has_trait = lazy
has_trait = craven
has_trait = callous
}
}
modifier = {
add = -50
has_trait = vengeful
}
modifier = {
add = -50
OR = {
diplomacy < mediocre_skill_rating
prowess < mediocre_skill_rating
}
}
modifier = {
add = -25
OR = {
diplomacy < mediocre_skill_rating
prowess < mediocre_skill_rating
}
}
modifier = {
add = -50
diplomacy <= medium_skill_rating
prowess <= medium_skill_rating
}
modifier = {
add = -50
highest_held_title_tier = tier_empire
}
modifier = {
add = 75
OR = {
has_trait = compassionate
has_trait = brave
}
}
modifier = {
add = 25
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
}
modifier = {
add = 50
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 100
}
}
modifier = {
add = 50
OR = {
diplomacy >= very_high_skill_rating
prowess >= very_high_skill_rating
}
}
}
}
# Accept this unfortunate loss
option = {
name = jason_first_race_event.1.d
flavor = jason_first_race_event.1.d.tt
scope:activity = {
add_activity_log_entry = {
key = contest_horse_race_collision_log
tags = { contest bad }
score = 30
character = root
target = scope:opponent
}
}
stress_impact = {
wrathful = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = paranoid
}
}
modifier = {
add = -50
OR = {
has_trait = compassionate
has_trait = stubborn
has_trait = greedy
}
}
modifier = {
add = 50
OR = {
has_trait = calm
has_trait = shy
}
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,877 +0,0 @@
namespace = contest_events
###############################
###############################
### RECITAL - 5000-5499 ###
###############################
###############################
# Complete your own verse!
# By James Beaumont
contest_events.5000 = {
type = activity_event
title = contest_events.5000.t
desc = contest_events.5000.desc
theme = tournament_contest
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:enemy
animation = schadenfreude
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
contest_event_general_contestant_valid_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = { contest_event_general_contestant_valid_trigger = yes }
save_scope_as = enemy
}
}
scope:enemy = {
select_poem_theme_incompetence_effect = yes
select_poem_subject_gender_effect = {
SUBJECT = flag:specific
SUBJECT_TARGET = root
}
}
}
# Furthermore, I had sex with your mother
option = {
name = {
trigger = {
is_attracted_to_men = yes
}
text = contest_events.5000.shagged_your_dad
}
name = contest_events.5000.shagged_your_mum
duel = {
skill = intrigue
target = scope:enemy
50 = {
modifier = {
factor = 0.5
has_trait = chaste
}
modifier = {
factor = 0.1
OR = { # Lol, no you didn't
has_trait = celibate
is_eunuch_trigger = yes
}
}
modifier = {
add = attraction
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 2
}
}
}
}
50 = {
modifier = {
add = scope:enemy.attraction
}
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
progress_towards_rival_effect = {
REASON = rival_recital_insult
CHARACTER = scope:enemy
OPINION = default_rival_opinion
}
if = {
limit = { is_eunuch_trigger = yes }
stress_impact = {
base = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
lustful = minor_stress_impact_loss
chaste = medium_stress_impact_gain
celibate = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
honest = medium_stress_impact_gain
}
}
else = {
stress_impact = {
base = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
lustful = minor_stress_impact_loss
chaste = medium_stress_impact_gain
celibate = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = celibate
has_trait = forgiving
has_trait = compassionate
}
}
}
}
# Call them a ho
option = {
name = contest_events.5000.licentious
duel = {
skills = { diplomacy intrigue }
target = scope:enemy
50 = {
modifier = { # The comment actually has a basis
factor = 2
scope:enemy = {
OR = {
is_concubine = yes
has_trait = rakish
has_trait = seducer
has_trait = lustful
has_trait = deviant
has_trait = adulterer
has_trait = fornicator
has_trait = sodomite
}
}
}
modifier = { # It's a bit of a self-burn
factor = 0.5
root = {
OR = {
is_concubine = yes
has_trait = rakish
has_trait = seducer
has_trait = lustful
has_trait = deviant
has_trait = adulterer
has_trait = fornicator
has_trait = sodomite
}
}
}
modifier = { # The crowd doesn't believe being lustful is bad
factor = 0.5
root.location.county.faith = {
trait_is_virtue = lustful
}
}
modifier = { # It is bad for them to be lecherous
add = 5
scope:enemy = {
OR = {
AND = {
is_female = yes
faith = { NOT = { has_doctrine_parameter = adultery_female_accepted } }
}
AND = {
is_male = yes
faith = { NOT = { has_doctrine_parameter = adultery_male_accepted } }
}
}
}
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
progress_towards_rival_effect = {
REASON = rival_recital_insult
CHARACTER = scope:enemy
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
chaste = minor_stress_impact_loss
lustful = medium_stress_impact_gain
rakish = medium_stress_impact_gain
deviant = medium_stress_impact_gain
sodomite = medium_stress_impact_gain
fornicator = medium_stress_impact_gain
adulterer = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = rakish
has_trait = deviant
has_trait = sodomite
has_trait = fornicator
has_trait = adulterer
}
}
}
}
# Call them stupid
option = {
name = contest_events.5000.stupid
duel = {
skill = learning
target = scope:enemy
50 = {
modifier = { # The comment actually has a basis
factor = 2
scope:enemy = {
OR = {
has_trait = dull
has_trait = intellect_bad
}
}
}
modifier = { # It's a bit of a self-burn
factor = 0.5
root = {
OR = {
has_trait = dull
has_trait = intellect_bad
}
}
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 2
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
progress_towards_rival_effect = {
REASON = rival_recital_insult
CHARACTER = scope:enemy
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
chaste = minor_stress_impact_loss
dull = medium_stress_impact_gain
intellect_bad_1 = medium_stress_impact_gain
intellect_bad_2 = medium_stress_impact_gain
intellect_bad_3 = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = dull
has_trait = intellect_bad
}
}
}
}
# Call them ugly
option = {
name = contest_events.5000.ugly
duel = {
skill = diplomacy
target = scope:enemy
50 = {
modifier = { # The comment actually has a basis
factor = 2
scope:enemy = {
has_trait = beauty_bad
}
}
modifier = { # It's a bit of a self-burn
factor = 0.5
root = {
has_trait = beauty_bad
}
}
modifier = { # You're actually like so hot omg
add = attraction
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 2
}
}
}
}
50 = {
modifier = {
add = scope:enemy.attraction
}
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
progress_towards_rival_effect = {
REASON = rival_recital_insult
CHARACTER = scope:enemy
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
chaste = minor_stress_impact_loss
humble = medium_stress_impact_gain
beauty_bad_1 = medium_stress_impact_gain
beauty_bad_2 = medium_stress_impact_gain
beauty_bad_3 = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = beauty_bad
}
}
}
}
}
# You speak a different language to your opponent and you have no idea what they just said
# By James Beaumont
contest_events.5010 = {
type = activity_event
title = contest_events.5010.t
desc = contest_events.5010.desc
theme = tournament_contest
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = disbelief
}
right_portrait = {
character = scope:enemy
animation = schadenfreude
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
contest_event_general_contestant_valid_trigger = yes
NOT = { root = { knows_language_of_culture = prev.culture } }
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = {
contest_event_general_contestant_valid_trigger = yes
NOT = { root = { knows_language_of_culture = prev.culture } }
}
save_scope_as = enemy
}
}
}
# Insult them?
option = {
name = contest_events.5010.a
duel = {
skill = intrigue
target = scope:enemy
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
progress_towards_rival_effect = {
REASON = rival_recital_insult
CHARACTER = scope:enemy
OPINION = default_rival_opinion
}
stress_impact = {
base = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = forgiving
has_trait = compassionate
}
}
}
}
# Try to guess what they meant
option = {
name = contest_events.5010.b
duel = {
skill = learning
value = high_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_major }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
stress_impact = {
base = minor_stress_impact_loss
dull = medium_stress_impact_gain
impatient = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = dull
has_trait = impatient
has_trait = vengeful
}
}
}
}
}
# Your poem goes well, push your luck?
# By James Beaumont
contest_events.5020 = {
type = activity_event
title = contest_events.5020.t
desc = contest_events.5020.desc
theme = tournament_contest
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = ecstasy
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
contest_event_general_contestant_valid_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = { contest_event_general_contestant_valid_trigger = yes }
save_scope_as = enemy
}
}
hidden_effect = { # Set up the scopes for the poem loc
root = {
select_poem_subject_gender_effect = {
SUBJECT = flag:specific
SUBJECT_TARGET = scope:enemy
}
}
}
}
# Push your luck
option = {
name = contest_events.5020.a
duel = {
skill = diplomacy
target = scope:enemy
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_massive }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
stress_impact = {
content = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = content
has_trait = humble
}
}
}
}
# Play it safe and take a bow
option = {
name = contest_events.5020.b
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
stress_impact = {
ambitious = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = ambitious
has_trait = arrogant
has_trait = stubborn
}
}
}
}
}
# Your poem goes poorly, try to salvage it?
# By James Beaumont
contest_events.5030 = {
type = activity_event
title = contest_events.5030.t
desc = contest_events.5030.desc
theme = tournament_contest
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = ecstasy
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
contest_event_general_contestant_valid_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = { contest_event_general_contestant_valid_trigger = yes }
save_scope_as = enemy
}
}
}
# Push your luck
option = {
name = contest_events.5030.a
duel = {
skill = diplomacy
target = scope:enemy
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = contest_events.5000.success
send_interface_toast = {
title = contest_events.5000.success
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
if = {
limit = {
has_trait = tourney_participant
}
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = contest_events.5000.failure
send_interface_toast = {
title = contest_events.5000.failure
right_icon = scope:enemy
activity_tournament_change_contestant_score_effect = { SCORE = decrease_major }
}
}
}
stress_impact = {
content = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = content
has_trait = humble
}
}
}
}
# Play it safe and take a bow
option = {
name = contest_events.5030.b
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
stress_impact = {
ambitious = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = ambitious
has_trait = arrogant
has_trait = stubborn
}
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,144 +0,0 @@

#Events handling the Spouse Councillor position in the background
namespace = councillor_spouse_background
#Ongoing event tracking background progress
councillor_spouse_background.0001 = {
hidden = yes
trigger = {
is_alive = yes
has_council_position = councillor_spouse
any_spouse = {
exists = this.cp:councillor_spouse
this.cp:councillor_spouse = root
}
}
immediate = {
if = {
limit = {
is_landed = no
is_capable_adult_ai = yes
NOT = { is_performing_council_task = task_spouse_default }
}
#Diplomacy rank up
if = {
limit = {
is_performing_council_task = task_court_politics
NOT = { has_trait = diplomat }
var:councillor_spouse_lifestyle_progress > councillor_spouse_lifestyle_rank_up_threshold
}
councillor_spouse_lifestyle_rank_up_effect = {
SKILL = diplomacy
}
}
#Martial rank up
else_if = {
limit = {
is_performing_council_task = task_chivalry
NOT = { has_trait = strategist }
var:councillor_spouse_lifestyle_progress > councillor_spouse_lifestyle_rank_up_threshold
}
councillor_spouse_lifestyle_rank_up_effect = {
SKILL = martial
}
}
#Intrigue rank up
else_if = {
limit = {
is_performing_council_task = task_court_intrigue
NOT = { has_trait = schemer }
var:councillor_spouse_lifestyle_progress > councillor_spouse_lifestyle_rank_up_threshold
}
councillor_spouse_lifestyle_rank_up_effect = {
SKILL = intrigue
}
}
#Stewardship rank up
else_if = {
limit = {
is_performing_council_task = task_manage_domain
NOT = { has_trait = architect }
var:councillor_spouse_lifestyle_progress > councillor_spouse_lifestyle_rank_up_threshold
}
councillor_spouse_lifestyle_rank_up_effect = {
SKILL = stewardship
}
}
#Learning rank up
else_if = {
limit = {
is_performing_council_task = task_patronage
NOT = { has_trait = scholar }
var:councillor_spouse_lifestyle_progress > councillor_spouse_lifestyle_rank_up_threshold
}
councillor_spouse_lifestyle_rank_up_effect = {
SKILL = learning
}
}
if = {
limit = {
NOT = { exists = scope:ranked_up }
#Prevent further progress from being added once the councillor is at max lifestyle rank:
trigger_if = {
limit = {
is_performing_council_task = task_court_politics
}
NOT = { has_trait = diplomat }
}
trigger_else_if = {
limit = {
is_performing_council_task = task_chivalry
}
NOT = { has_trait = strategist }
}
trigger_else_if = {
limit = {
is_performing_council_task = task_manage_domain
}
NOT = { has_trait = architect }
}
trigger_else_if = {
limit = {
is_performing_council_task = task_patronage
}
NOT = { has_trait = scholar }
}
trigger_else_if = {
limit = {
is_performing_council_task = task_court_intrigue
}
NOT = { has_trait = schemer }
}
trigger_else = {
always = yes
}
}
if = {
limit = {
has_variable = councillor_spouse_lifestyle_progress
}
change_variable = {
name = councillor_spouse_lifestyle_progress
add = councillor_spouse_lifestyle_progress_increase
}
}
else = {
set_variable = {
name = councillor_spouse_lifestyle_progress
value = councillor_spouse_lifestyle_progress_increase
}
}
}
}
clear_saved_scope = ranked_up
trigger_event = {
id = councillor_spouse_background.0001
months = 6
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,233 +0,0 @@
namespace = court_new
scripted_trigger court_new_1_body_guard_candidate = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
is_available_ai_adult = yes
aptitude = {
court_position = bodyguard_court_position
value >= 2
}
}
scripted_trigger court_new_1_murderer = {
any_scheme = {
type = murder
is_scheme_exposed = yes
}
}
# The Sword of Damocles
# I'm scared of being murdered and want a bodyguard
court_new.0001 = {
type = court_event
title = court_new.0001.t
desc = {
desc = court_new.0001.desc.intro
first_valid = {
triggered_desc = { # someone close to me was murdered
trigger = {
exists = scope:murdered_person
}
desc = court_new.0001.desc.murdered
}
triggered_desc = { # I know a murderer
trigger = {
exists = scope:murder_dude
}
desc = court_new.0001.desc.murderer
}
desc = court_new.0001.desc.paranoid
}
desc = court_new.0001.desc.outro
}
theme = court
court_scene = {
button_position_character = scope:bodyguard_candidate
roles = {
scope:bodyguard_candidate = {
group = event_group
animation = hero_flex
}
}
}
cooldown = { years = 5 }
trigger = {
is_available_adult = yes
OR = {
has_trait = paranoid
any_close_or_extended_family_member = {
even_if_dead = yes
is_alive = no
death_reason = death_murder
}
any_former_spouse = {
even_if_dead = yes
is_alive = no
death_reason = death_murder
}
any_courtier = {
court_new_1_murderer = yes
}
}
OR = {
NOT = { employs_court_position = bodyguard_court_position }
AND = {
has_trait = paranoid
any_court_position_holder = {
type = bodyguard_court_position
count = 1
}
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
if = {
limit = {
any_pool_character = {
province = root.capital_province
court_new_1_body_guard_candidate = yes
}
}
random_pool_character = {
province = root.capital_province
limit = {
court_new_1_body_guard_candidate = yes
}
save_scope_as = bodyguard_candidate
}
}
else = {
create_character = {
template = mercenary
location = root.location
dynasty = none
culture = root.capital_county.culture
faith = root.capital_county.faith
gender_female_chance = root_soldier_female_chance
save_scope_as = bodyguard_candidate
}
}
if = {
limit = {
any_close_or_extended_family_member = {
even_if_dead = yes
is_alive = no
death_reason = death_murder
}
}
random_close_or_extended_family_member = {
even_if_dead = yes
limit = {
is_alive = no
death_reason = death_murder
}
save_scope_as = murdered_person
}
}
else_if = {
limit = {
any_former_spouse = {
even_if_dead = yes
is_alive = no
death_reason = death_murder
}
}
random_former_spouse = {
even_if_dead = yes
limit = {
is_alive = no
death_reason = death_murder
}
save_scope_as = murdered_person
}
}
else_if = {
limit = {
any_courtier = {
court_new_1_murderer = yes
}
}
random_courtier = {
limit = {
court_new_1_murderer = yes
}
save_scope_as = murder_dude
}
}
}
option = { # I need a bodyguard right away
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
any_killed_character = { }
}
desc = court_new.0001.a.murderer
}
desc = court_new.0001.a
}
}
}
if = {
limit = {
scope:bodyguard_candidate = {
NOT = { is_courtier_of = root }
}
}
add_courtier = scope:bodyguard_candidate
}
court_position_grant_effect = {
EMPLOYER = root
POS = bodyguard
CANDIDATE = scope:bodyguard_candidate
}
stress_impact = {
base = miniscule_stress_impact_loss
paranoid = minor_stress_impact_loss
}
ai_chance = {
base = 50
modifier = {
has_trait = paranoid
factor = 50
}
ai_value_modifier = {
ai_boldness = -1
}
}
}
option = { # I'm sure I'll be fine
name = court_new.0001.b
stress_impact = {
base = miniscule_stress_impact_gain
paranoid = miniscule_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
has_trait = paranoid
factor = -50
}
ai_value_modifier = {
ai_boldness = 1
}
}
}
after = {
scope:bodyguard_candidate = {
clear_court_event_participation = yes
}
}
}

View file

@ -1,655 +0,0 @@
namespace = court_amenities_interactions
#########################
# Sumptuary Debate #
# by James Beaumont #
# 0010-0013 #
#########################
# The challenge to debate is issued!
# by JB
court_amenities_interactions.0010 = {
type = character_event
title = court_amenities_interactions.0010.t
desc = {
desc = court_amenities_interactions.0010.desc_intro
first_valid = {
triggered_desc = {
trigger = {
scope:actor = { has_character_flag = flag_big_collar }
}
desc = court_amenities_interactions.0010.desc.flag_big_collar
}
triggered_desc = {
trigger = {
scope:actor = { has_character_flag = flag_head_dress }
}
desc = court_amenities_interactions.0010.desc.flag_head_dress
}
triggered_desc = {
trigger = {
scope:actor = { has_character_flag = flag_gold_boots }
}
desc = court_amenities_interactions.0010.desc.flag_gold_boots
}
triggered_desc = {
trigger = {
scope:actor = { has_character_flag = flag_sleeveless }
}
desc = court_amenities_interactions.0010.desc.flag_sleeveless
}
triggered_desc = {
trigger = {
scope:actor = { has_character_flag = flag_commoner_clothes }
}
desc = court_amenities_interactions.0010.desc.flag_commoner_clothes
}
}
desc = court_amenities_interactions.0010.desc_outro
}
theme = stewardship_wealth_focus
override_background = {
reference = council_chamber
}
left_portrait = {
character = scope:actor
animation = ecstasy
triggered_outfit = {
trigger = {
scope:actor = { has_character_flag = flag_commoner_clothes }
}
outfit_tags = { beggar_rags }
}
}
immediate = {
if = {
limit = {
scope:actor = { has_royal_court = yes }
}
scope:actor = {
capital_province = {
barony = { save_scope_as = debate_locale }
}
}
}
else = {
scope:actor.liege = {
capital_province = {
barony = { save_scope_as = debate_locale }
}
}
}
hidden_effect = {
if = {
limit = {
scope:actor = {
NOT = { has_variable = fashion_victories }
}
}
scope:actor = {
set_variable = {
name = fashion_victories
value = 0
}
}
}
if = {
limit = {
scope:recipient = {
NOT = { has_variable = fashion_victories }
}
}
scope:recipient = {
set_variable = {
name = fashion_victories
value = 0
}
}
}
}
}
#I accept the challenge.
option = {
name = {
trigger = { scope:actor = { has_character_flag = flag_big_collar } }
text = court_amenities_interactions.0010.a_flag_big_collar
}
name = court_amenities_interactions.0010.a
duel = {
skill = stewardship # How well do you understand the law?
target = scope:actor
50 = { #Defender wins the toss.
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
# Attractive people are more likely to win the debate
modifier = {
add = {
value = scope:recipient.attraction
multiply = 5
}
}
modifier = {
add = {
value = scope:actor.attraction
multiply = -5
}
}
# How good are you at convincing people?
modifier = {
add = {
value = scope:recipient.diplomacy
multiply = 5
}
}
modifier = {
add = {
value = scope:actor.diplomacy
multiply = -5
}
}
desc = court_amenities_interactions.0010.a.tt_success
hidden_effect = {
scope:recipient = {
change_variable = {
name = fashion_victories
add = 1
}
add_character_flag = {
flag = court_fashion_success
years = 1
}
trigger_event = {
id = court_amenities_interactions.0012
days = 7
}
}
scope:actor = {
change_variable = {
name = fashion_victories
add = -1
}
add_character_flag = {
flag = court_fashion_failure
years = 1
}
trigger_event = {
id = court_amenities_interactions.0011
days = 7
}
}
}
}
50 = { #Attacker wins the toss.
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
# Attractive people are more likely to win the debate
modifier = {
add = {
value = scope:recipient.attraction
multiply = -5
}
}
modifier = {
add = {
value = scope:actor.attraction
multiply = 5
}
}
modifier = {
add = 50
has_nickname = nick_prince_of_fashion
}
desc = court_amenities_interactions.0010.a.tt_success
hidden_effect = {
#Remember how many victories the character has had
scope:actor = {
change_variable = {
name = fashion_victories
add = 1
}
}
scope:recipient = {
change_variable = {
name = fashion_victories
add = -1
}
}
random_list = {
100 = { # Success, gain prestige
modifier = { # Less and less likely the more the player has won
add = {
value = scope:actor.var:fashion_victories
multiply = -5
}
}
scope:recipient = {
add_character_flag = {
flag = court_fashion_failure
years = 1
}
trigger_event = {
id = court_amenities_interactions.0012
days = 7
}
}
scope:actor = {
add_character_flag = {
flag = court_fashion_success
years = 1
}
trigger_event = {
id = court_amenities_interactions.0011
days = 7
}
}
}
5 = { # Critical success, become the King of Fashion, only available for the introducer
trigger = {
NOT = { exists = title:k_fashion.holder } #Kingdom of Fashion doesn't already exist
scope:actor = {
is_landed = yes
highest_held_title_tier >= tier_kingdom # Kingdom of Fashion shouldn't elevate your rank
}
}
modifier = {
factor = scope:actor.var:fashion_victories
}
modifier = {
add = 50
has_nickname = nick_prince_of_fashion
}
scope:actor = {
add_character_flag = {
flag = court_fashion_critical_success
years = 1
}
trigger_event = court_amenities_interactions.0013
}
scope:recipient = {
trigger_event = court_amenities_interactions.0012
}
}
}
}
}
}
ai_chance = {
base = 100
}
}
#Say nothing
option = {
name = court_amenities_interactions.0010.b
add_prestige = minor_prestige_loss
hidden_effect = {
scope:actor = {
send_interface_toast = {
title = court_amenities_interactions.0010.t
desc = court_amenities_interactions.0010.b_turned_down
left_icon = scope:recipient
}
change_variable = {
name = fashion_victories
add = 1
}
add_prestige = medium_prestige_gain
}
}
stress_impact = {
diligent = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
brave = minor_stress_impact_gain
}
ai_chance = {
base = 50
modifier = { #Rivals should jump at the opportunity to mock their rival
add = -50
has_relation_rival = scope:actor
}
modifier = { #Owners of the court should usually defend their own fashion
add = -25
is_liege_or_above_of = scope:actor
}
}
}
}
# #Debate results: aggressor / actor
# by James Beaumont
court_amenities_interactions.0011 = {
type = character_event
title = court_amenities_interactions.0011.t
desc = {
desc = court_amenities_interactions.0011.desc_intro
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = flag_big_collar
}
desc = court_amenities_interactions.0011.desc.flag_big_collar
}
triggered_desc = {
trigger = {
has_character_flag = flag_head_dress
}
desc = court_amenities_interactions.0011.desc.flag_head_dress
}
triggered_desc = {
trigger = {
has_character_flag = flag_gold_boots
}
desc = court_amenities_interactions.0011.desc.flag_gold_boots
}
triggered_desc = {
trigger = {
has_character_flag = flag_sleeveless
}
desc = court_amenities_interactions.0011.desc.flag_sleeveless
}
triggered_desc = {
trigger = {
has_character_flag = flag_commoner_clothes
}
desc = court_amenities_interactions.0011.desc.flag_commoner_clothes
}
}
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = flag_big_collar
}
desc = court_amenities_interactions.0010.a_flag_big_collar
}
desc = court_amenities_interactions.0010.a
}
desc = court_amenities_interactions.0011.desc_bridge
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = court_fashion_success
}
desc = court_amenities_interactions.0011.desc_won
}
triggered_desc = {
trigger = {
has_character_flag = court_fashion_failure
}
desc = court_amenities_interactions.0011.desc_lost
}
}
}
theme = stewardship_wealth_focus
override_background = {
reference = council_chamber
}
left_portrait = {
character = scope:recipient
triggered_animation = {
trigger = {
scope:recipient = { has_character_flag = court_fashion_failure }
}
animation = disbelief
}
animation = schadenfreude
}
right_portrait = {
character = scope:actor
triggered_animation = {
trigger = {
scope:actor = { has_character_flag = court_fashion_failure }
}
animation = disbelief
}
animation = schadenfreude
triggered_outfit = {
trigger = {
scope:actor = { has_character_flag = flag_commoner_clothes }
}
outfit_tags = { beggar_rags }
}
}
#The result.
option = {
name = {
trigger = { has_character_flag = court_fashion_success }
text = court_amenities_interactions.0011.a_won
}
name = {
trigger = { has_character_flag = court_fashion_failure }
text = court_amenities_interactions.0011.a_lost
}
if = {
limit = { has_character_flag = court_fashion_success }
add_prestige = major_prestige_gain
}
else_if = {
limit = { has_character_flag = court_fashion_failure }
add_prestige = major_prestige_loss
add_stress = medium_stress_gain
}
reverse_add_opinion = {
target = scope:recipient
modifier = insulted_opinion
opinion = -35
}
ai_chance = { #No other options available.
base = 100
}
}
}
# #Debate results: defender / recipient
# by James Beaumont
court_amenities_interactions.0012 = {
type = character_event
title = court_amenities_interactions.0011.t
desc = {
desc = court_amenities_interactions.0012.desc_intro
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = court_fashion_success
}
desc = court_amenities_interactions.0012.desc_won
}
desc = court_amenities_interactions.0012.desc_lost
}
triggered_desc = {
trigger = {
scope:actor = { has_character_flag = court_fashion_critical_success }
}
desc = court_amenities_interactions.0012.desc_lost.kof
}
}
theme = stewardship_wealth_focus
override_background = {
reference = council_chamber
}
left_portrait = {
character = scope:actor
triggered_animation = {
trigger = {
scope:actor = { has_character_flag = court_fashion_failure }
}
animation = disbelief
}
animation = schadenfreude
triggered_outfit = {
trigger = {
scope:actor = {
has_character_flag = flag_commoner_clothes
}
}
outfit_tags = { beggar_rags }
}
}
right_portrait = {
character = scope:recipient
triggered_animation = {
trigger = {
scope:recipient = { has_character_flag = court_fashion_failure }
}
animation = disbelief
}
animation = schadenfreude
}
#The result.
option = {
name = {
trigger = { has_character_flag = court_fashion_success }
text = court_amenities_interactions.0011.a_won
}
name = {
trigger = { has_character_flag = court_fashion_failure }
text = court_amenities_interactions.0012.a_lost
}
if = {
limit = { has_character_flag = court_fashion_success}
add_prestige = major_prestige_gain
}
else_if = {
limit = { has_character_flag = court_fashion_failure }
add_prestige = major_prestige_loss
}
if = {
limit = {
scope:actor = {
is_alive = yes
}
}
reverse_add_opinion = {
target = scope:actor
modifier = insulted_opinion
opinion = -35
}
}
ai_chance = { #No other options available.
base = 100
}
}
}
################################
# King of Fashion declared
# by James Beaumont
################################
court_amenities_interactions.0013 = {
type = character_event
title = court_amenities_interactions.0010.t
desc = {
desc = court_amenities_interactions.0011.desc_intro
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = flag_big_collar
}
desc = court_amenities_interactions.0011.desc.flag_big_collar
}
triggered_desc = {
trigger = {
has_character_flag = flag_head_dress
}
desc = court_amenities_interactions.0011.desc.flag_head_dress
}
triggered_desc = {
trigger = {
has_character_flag = flag_gold_boots
}
desc = court_amenities_interactions.0011.desc.flag_gold_boots
}
triggered_desc = {
trigger = {
has_character_flag = flag_sleeveless
}
desc = court_amenities_interactions.0011.desc.flag_sleeveless
}
triggered_desc = {
trigger = {
has_character_flag = flag_commoner_clothes
}
desc = court_amenities_interactions.0011.desc.flag_commoner_clothes
}
}
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = flag_big_collar
}
desc = court_amenities_interactions.0010.a_flag_big_collar
}
desc = court_amenities_interactions.0010.a
}
desc = court_amenities_interactions.0011.desc_bridge
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = court_fashion_success
}
desc = court_amenities_interactions.0011.desc_won
}
triggered_desc = {
trigger = {
has_character_flag = court_fashion_failure
}
desc = court_amenities_interactions.0011.desc_lost
}
}
desc = court_amenities_interactions.0013.desc
}
theme = stewardship_wealth_focus
override_background = {
reference = council_chamber
}
left_portrait = {
character = root
animation = scheme
}
right_portrait = {
character = scope:victim
animation = pain
}
option = { # Become the King of Fashion!
name = court_amenities_interactions.0013.a
add_prestige = major_prestige_gain
reverse_add_opinion = {
target = scope:recipient
modifier = insulted_opinion
opinion = -35
}
create_title_and_vassal_change = {
type = created
save_scope_as = change
add_claim_on_loss = no
}
title:k_fashion = {
change_title_holder = {
holder = root
change = scope:change
}
set_capital_county = root.capital_county # Make the emblem appear on the map in the right spot
}
resolve_title_and_vassal_change = scope:change
if = {
limit = {
OR = {
has_any_nickname = no
has_bad_nickname = yes
}
}
give_nickname = nick_king_of_fashion
}
}
}

View file

@ -1,654 +0,0 @@
namespace = court_amenities_interactions
#########################
# Sumptuary Debate #
# by James Beaumont #
# 0001-0004 #
#########################
# The challenge to debate is issued!
# by JB
court_amenities_interactions.0001 = {
type = character_event
title = court_amenities_interactions.0001.t
desc = {
desc = court_amenities_interactions.0001.desc_intro
first_valid = {
triggered_desc = {
trigger = {
scope:recipient.faith = { has_doctrine_parameter = naked_adherents_active }
}
desc = court_amenities_interactions.0001.desc.nakey
}
triggered_desc = {
trigger = {
scope:actor = { has_trait = born_in_the_purple }
scope:recipient = { NOT = { has_trait = born_in_the_purple } }
}
desc = court_amenities_interactions.0001.desc_byzantine
}
triggered_desc = {
trigger = {
OR = {
scope:recipient = { is_landed = yes }
scope:recipient = { has_any_court_position = yes }
}
}
desc = court_amenities_interactions.0001.desc_court_position
}
desc = court_amenities_interactions.0001.desc
}
desc = court_amenities_interactions.0001.desc_outro
}
theme = party
override_background = {
reference = council_chamber
}
left_portrait = root
right_portrait = scope:actor
immediate = {
# Only the initiator of the challenge is destined to be landed
scope:actor.capital_province.barony = { save_scope_as = debate_locale }
}
#I accept the challenge.
option = {
name = court_amenities_interactions.0001.a
duel = {
skills = {
stewardship # How well do you understand the law?
diplomacy # How good are you at convincing people?
}
target = scope:actor
50 = { #Defender wins the toss.
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
# Attractive people are more likely to win the debate
modifier = {
add = {
value = scope:recipient.attraction
multiply = 5
}
}
modifier = {
add = {
value = scope:actor.attraction
multiply = -5
}
}
min = 5
custom_tooltip = court_amenities_interactions.0001.a.tt_success
hidden_effect = {
random_list = {
90 = { # Success, gain prestige
scope:actor = {
add_character_flag = {
flag = sumptuary_debate_lost
years = 1
}
trigger_event = {
id = court_amenities_interactions.0002
days = 7
}
}
scope:recipient = {
add_character_flag = {
flag = sumptuary_debate_won
years = 1
}
trigger_event = {
id = court_amenities_interactions.0003
days = 7
}
}
}
10 = { # Critical success, gain imprisonment reason
trigger = {
scope:recipient = {
is_landed = yes
}
scope:actor = {
is_ai = yes
}
}
compare_modifier = {
target = scope:recipient
value = diplomacy
}
compare_modifier = {
target = scope:actor
value = diplomacy
multiplier = -1
}
scope:actor = {
save_scope_as = victim
}
scope:recipient = {
trigger_event = {
id = court_amenities_interactions.0004
days = 7
}
}
}
}
}
}
50 = { #Attacker wins the toss.
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
# Attractive people are more likely to win the debate
modifier = {
add = {
value = scope:recipient.attraction
multiply = -5
}
}
modifier = {
add = {
value = scope:actor.attraction
multiply = 5
}
}
min = 5
custom_tooltip = court_amenities_interactions.0001.a.tt_failure
hidden_effect = {
random_list = {
90 = { # Success, gain prestige
scope:recipient = {
add_character_flag = {
flag = sumptuary_debate_lost
years = 1
}
trigger_event = {
id = court_amenities_interactions.0003
days = 7
}
}
scope:actor = {
add_character_flag = {
flag = sumptuary_debate_won
years = 1
}
trigger_event = {
id = court_amenities_interactions.0002
days = 7
}
}
}
10 = { # Critical success, gain imprisonment reason
trigger = {
scope:actor = {
is_landed = yes
}
scope:recipient = {
is_ai = yes
}
}
compare_modifier = {
target = scope:actor
value = stewardship
}
compare_modifier = {
target = scope:recipient
value = stewardship
multiplier = -1
}
scope:recipient = {
save_scope_as = victim
}
scope:actor = {
trigger_event = {
id = court_amenities_interactions.0004
days = 7
}
}
}
}
}
}
}
#No stress, as AI is forced to pick this.
ai_chance = {
base = 100
}
}
#I surrender, opponent gains a weak hook and prestige
option = {
name = court_amenities_interactions.0001.b
trigger = { is_ai = no } #Only players may opt out.
add_prestige = medium_prestige_loss
custom_tooltip = court_amenities_interactions.0001.b.tt
hidden_effect = {
scope:actor = {
send_interface_toast = {
title = court_amenities_interactions.0001.b_turned_down
left_icon = scope:recipient
}
add_prestige = medium_prestige_gain
remove_character_modifier = used_sumptuary_debate_modifier
}
}
stress_impact = {
diligent = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
brave = minor_stress_impact_gain
}
ai_chance = { #Unavailable to the AI.
base = 0
}
}
}
# #Debate results: aggressor / actor
# by James Beaumont
court_amenities_interactions.0002 = {
type = character_event
title = court_amenities_interactions.0002.t
desc = {
desc = court_amenities_interactions.0002.desc_intro
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = sumptuary_debate_won
scope:recipient.faith = { has_doctrine_parameter = naked_adherents_active }
}
desc = court_amenities_interactions.0002.desc_won.nakey
}
triggered_desc = {
trigger = {
has_character_flag = sumptuary_debate_won
}
desc = court_amenities_interactions.0002.desc_won
}
triggered_desc = {
trigger = {
has_character_flag = sumptuary_debate_lost
scope:actor.faith = { has_doctrine_parameter = naked_adherents_active }
}
desc = court_amenities_interactions.0002.desc_lost.nakey
}
desc = court_amenities_interactions.0002.desc_lost
}
}
theme = party
override_background = {
reference = council_chamber
}
left_portrait = {
character = scope:recipient
triggered_animation = {
trigger = {
scope:recipient = { has_character_flag = sumptuary_debate_lost }
}
animation = disbelief
}
animation = schadenfreude
triggered_outfit = {
trigger = {
scope:recipient = {
faith = { has_doctrine_parameter = naked_adherents_active }
has_character_flag = sumptuary_debate_lost
}
}
outfit_tags = { beggar_rags }
}
}
right_portrait = {
character = scope:actor
triggered_animation = {
trigger = {
scope:actor = { has_character_flag = sumptuary_debate_lost }
}
animation = disbelief
}
animation = schadenfreude
triggered_outfit = {
trigger = {
scope:actor = {
faith = { has_doctrine_parameter = naked_adherents_active }
has_character_flag = sumptuary_debate_lost
}
}
outfit_tags = { beggar_rags }
}
}
immediate = {
if = {
limit = {
scope:recipient = {
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
has_character_flag = sumptuary_debate_lost
}
}
scope:recipient = {
add_character_flag = is_naked
}
}
if = {
limit = {
scope:actor = {
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
has_character_flag = sumptuary_debate_lost
}
}
scope:actor = {
add_character_flag = is_naked
}
}
}
#The result.
option = {
name = {
trigger = { has_character_flag = sumptuary_debate_won }
text = court_amenities_interactions.0002.a_won
}
name = {
trigger = {
has_character_flag = sumptuary_debate_lost
has_trait = humble
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
}
text = court_amenities_interactions.0002.a_lost.humble
}
name = {
trigger = {
has_character_flag = sumptuary_debate_lost
has_trait = lustful
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
}
text = court_amenities_interactions.0002.a_lost.lustful
}
name = {
trigger = { has_character_flag = sumptuary_debate_lost }
text = court_amenities_interactions.0002.a_lost
}
if = {
limit = { has_character_flag = sumptuary_debate_won }
add_prestige = major_prestige_gain
reverse_add_opinion = {
target = scope:recipient
modifier = sumptuary_debate_loser_opinion
}
}
else_if = {
limit = { has_character_flag = sumptuary_debate_lost }
add_prestige = major_prestige_loss
reverse_add_opinion = {
target = scope:recipient
modifier = sumptuary_debate_victor_opinion
}
if = { # Humble and horny characters don't care if people see them naked, naked characters are always upset to wear clothes
limit = {
OR = {
faith = { has_doctrine_parameter = naked_adherents_active }
NOR = {
has_trait = humble
has_trait = lustful
}
}
}
add_stress = major_stress_gain
}
}
ai_chance = { #No other options available.
base = 100
}
}
after = {
scope:recipient = {
if = {
limit = {
has_character_flag = is_naked
}
remove_character_flag = is_naked
}
}
scope:actor = {
if = {
limit = {
has_character_flag = is_naked
}
remove_character_flag = is_naked
}
}
}
}
# #Debate results: defender / recipient
# by James Beaumont
court_amenities_interactions.0003 = {
type = character_event
title = court_amenities_interactions.0002.t
desc = {
desc = court_amenities_interactions.0002.desc_intro
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = sumptuary_debate_won
scope:actor.faith = { has_doctrine_parameter = naked_adherents_active }
}
desc = court_amenities_interactions.0003.desc_won.nakey
}
triggered_desc = {
trigger = {
has_character_flag = sumptuary_debate_won
scope:actor.faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
}
desc = court_amenities_interactions.0003.desc_won
}
triggered_desc = {
trigger = {
has_character_flag = sumptuary_debate_lost
scope:recipient.faith = { has_doctrine_parameter = naked_adherents_active }
}
desc = court_amenities_interactions.0002.desc_lost.nakey
}
desc = court_amenities_interactions.0002.desc_lost
}
}
theme = party
override_background = {
reference = council_chamber
}
left_portrait = {
character = scope:actor
triggered_animation = {
trigger = {
scope:actor = { has_character_flag = sumptuary_debate_lost }
}
animation = disbelief
}
animation = schadenfreude
triggered_outfit = {
trigger = {
scope:actor = {
has_character_flag = sumptuary_debate_lost
faith = { has_doctrine_parameter = naked_adherents_active }
}
}
outfit_tags = { beggar_rags }
}
}
right_portrait = {
character = scope:recipient
triggered_animation = {
trigger = {
scope:recipient = { has_character_flag = sumptuary_debate_lost }
}
animation = disbelief
}
animation = schadenfreude
triggered_outfit = {
trigger = {
scope:recipient = {
has_character_flag = sumptuary_debate_lost
faith = { has_doctrine_parameter = naked_adherents_active }
}
}
outfit_tags = { beggar_rags }
}
}
immediate = {
if = {
limit = {
scope:recipient = {
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
has_character_flag = sumptuary_debate_lost
}
}
scope:recipient = {
add_character_flag = is_naked
}
}
if = {
limit = {
scope:actor = {
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
has_character_flag = sumptuary_debate_lost
}
}
scope:actor = {
add_character_flag = is_naked
}
}
}
#The result.
option = {
name = {
trigger = { has_character_flag = sumptuary_debate_won }
text = court_amenities_interactions.0002.a_won
}
name = {
trigger = {
has_character_flag = sumptuary_debate_lost
has_trait = humble
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
}
text = court_amenities_interactions.0002.a_lost.humble
}
name = {
trigger = {
has_character_flag = sumptuary_debate_lost
has_trait = lustful
faith = { NOT = { has_doctrine_parameter = naked_adherents_active } }
}
text = court_amenities_interactions.0002.a_lost.lustful
}
name = {
trigger = { has_character_flag = sumptuary_debate_lost }
text = court_amenities_interactions.0002.a_lost
}
if = {
limit = { has_character_flag = sumptuary_debate_won}
add_prestige = major_prestige_gain
reverse_add_opinion = {
target = scope:actor
modifier = sumptuary_debate_loser_opinion
}
}
else_if = {
limit = { has_character_flag = sumptuary_debate_lost }
add_prestige = major_prestige_loss
reverse_add_opinion = {
target = scope:actor
modifier = sumptuary_debate_victor_opinion
}
if = { # Humble and horny characters don't care if people see them naked, naked characters are always upset to wear clothes
limit = {
OR = {
faith = { has_doctrine_parameter = naked_adherents_active }
NOR = {
has_trait = humble
has_trait = lustful
}
}
}
add_stress = major_stress_gain
}
}
#No stress, as the AI is forced to get here.
ai_chance = { #No other options available.
base = 100
}
}
after = {
if = {
limit = {
scope:recipient = {
has_character_flag = is_naked
}
}
scope:recipient = {
remove_character_flag = is_naked
}
}
if = {
limit = {
scope:actor = {
has_character_flag = is_naked
}
}
scope:actor = {
remove_character_flag = is_naked
}
}
}
}
################################
# Things go really bad for the defender
# by James Beaumont
################################
court_amenities_interactions.0004 = {
type = character_event
title = court_amenities_interactions.0001.t
desc = {
desc = court_amenities_interactions.0002.desc_intro
desc = court_amenities_interactions.0004.desc
}
theme = party
override_background = {
reference = council_chamber
}
left_portrait = {
character = root
animation = scheme
}
right_portrait = {
character = scope:victim
animation = pain
}
option = { # Let them off with a warning
name = court_amenities_interactions.0004.a
add_hook = {
type = sumptuary_crime_hook
target = scope:victim
}
}
option = { # Arrest them
name = court_amenities_interactions.0004.b
add_opinion = {
modifier = sumptuary_violation_opinion
target = scope:victim
}
rightfully_imprison_character_effect = {
TARGET = scope:victim
IMPRISONER = root
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,258 +0,0 @@
namespace = culture_notification
# Culture Notification Events
#########################################################################################
# Tradition Removed from Culture #
# by Sean Hughes #
# culture_notification.0010 #
#########################################################################################
culture_notification.0010 = {
hidden = yes
immediate = {
save_scope_as = this_player
send_interface_toast = {
type = msg_culture_tradition_change
title = culture_notification.0010.t
custom_tooltip = culture_notification.0010.desc
}
}
}
#########################################################################################
# Tradition Added to Culture #
# by Sean Hughes #
# culture_notification.0011 #
#########################################################################################
culture_notification.0011 = {
hidden = yes
immediate = {
save_scope_as = this_player
send_interface_toast = {
type = msg_culture_tradition_change
title = culture_notification.0011.t
custom_tooltip = culture_notification.0011.desc
}
}
}
#########################################################################################
# Culture Hybridized #
# by Sean Hughes #
# culture_notification.1010 #
#########################################################################################
culture_notification.1001 = {
hidden = yes
immediate = {
save_scope_as = this_player
send_interface_toast = {
type = msg_culture_hybridized
title = culture_notification.1001.t
left_icon = scope:founder
custom_tooltip = culture_notification.1001.desc
}
}
}
culture_notification.1011 = {
type = character_event
title = culture_notification.1011.t
desc = {
desc = culture_notification.1011.intro
first_valid = {
triggered_desc = {
trigger = { scope:dominant_culture = flag:parent_1 }
desc = culture_notification.1011.hybrid_primary_1
}
triggered_desc = {
trigger = { scope:dominant_culture = flag:parent_2 }
desc = culture_notification.1011.hybrid_primary_2
}
desc = culture_notification.1011.hybrid_no_primary
}
first_valid = {
triggered_desc = {
trigger = { this = scope:founder }
desc = culture_notification.1011.outro.founder
}
desc = culture_notification.1011.outro.other
}
}
theme = culture_change
major = yes
left_portrait = scope:founder
immediate = {
scope:new_culture = {
if = {
limit = {
calc_true_if = {
amount >= 3
has_same_culture_ethos = scope:parent_1
has_same_culture_heritage = scope:parent_1
has_same_culture_language = scope:parent_1
has_same_culture_martial_tradition = scope:parent_1
}
}
save_scope_value_as = { name = dominant_culture value = flag:parent_1 }
}
else_if = {
limit = {
calc_true_if = {
amount >= 3
has_same_culture_ethos = scope:parent_2
has_same_culture_heritage = scope:parent_2
has_same_culture_language = scope:parent_2
has_same_culture_martial_tradition = scope:parent_2
}
}
save_scope_value_as = { name = dominant_culture value = flag:parent_2 }
}
else = {
save_scope_value_as = { name = dominant_culture value = flag:none }
}
}
}
option = {
trigger = { this = scope:founder }
name = culture_notification.1011.a.founder
custom_tooltip = culture_notification_hybrid_tooltip
}
option = {
trigger = { this != scope:founder }
name = culture_notification.1011.a.other
custom_tooltip = culture_notification_hybrid_tooltip
}
}
#########################################################################################
# Culture Diverged #
# by Sean Hughes #
# culture_notification.1101 #
#########################################################################################
culture_notification.1101 = {
hidden = yes
immediate = {
save_scope_as = this_player
send_interface_toast = {
type = msg_culture_hybridized
title = culture_notification.1101.t
left_icon = scope:founder
custom_tooltip = culture_notification.1101.desc
}
}
}
culture_notification.1111 = {
type = character_event
title = culture_notification.1111.t
desc = {
desc = culture_notification.1111.intro
first_valid = {
triggered_desc = {
trigger = { NOT = { exists = scope:ethos } }
desc = culture_notification.1111.ethos.unchanged
}
triggered_desc = {
trigger = { scope:ethos = flag:bellicose }
desc = culture_notification.1111.ethos.bellicose
}
triggered_desc = {
trigger = { scope:ethos = flag:bureaucratic }
desc = culture_notification.1111.ethos.bureaucratic
}
triggered_desc = {
trigger = { scope:ethos = flag:courtly }
desc = culture_notification.1111.ethos.courtly
}
triggered_desc = {
trigger = { scope:ethos = flag:communal }
desc = culture_notification.1111.ethos.communal
}
triggered_desc = {
trigger = { scope:ethos = flag:stoic }
desc = culture_notification.1111.ethos.stoic
}
triggered_desc = {
trigger = { scope:ethos = flag:spiritual }
desc = culture_notification.1111.ethos.spiritual
}
triggered_desc = {
trigger = { scope:ethos = flag:egalitarian }
desc = culture_notification.1111.ethos.egalitatian
}
desc = culture_notification.1111.ethos.unchanged
}
first_valid = {
triggered_desc = {
trigger = { this = scope:founder }
desc = culture_notification.1111.outro.founder
}
desc = culture_notification.1111.outro.other
}
}
theme = culture_change
major = yes
left_portrait = scope:founder
immediate = {
scope:new_culture = {
if = {
limit = {
NOT = { has_same_culture_ethos = scope:parent_1 }
}
if = {
limit = { has_cultural_pillar = ethos_bellicose }
save_scope_value_as = { name = ethos value = flag:bellicose }
}
else_if = {
limit = { has_cultural_pillar = ethos_stoic }
save_scope_value_as = { name = ethos value = flag:stoic }
}
else_if = {
limit = { has_cultural_pillar = ethos_bureaucratic }
save_scope_value_as = { name = ethos value = flag:bureaucratic }
}
else_if = {
limit = { has_cultural_pillar = ethos_spiritual }
save_scope_value_as = { name = ethos value = flag:spiritual }
}
else_if = {
limit = { has_cultural_pillar = ethos_courtly }
save_scope_value_as = { name = ethos value = flag:courtly }
}
else_if = {
limit = { has_cultural_pillar = ethos_egalitarian }
save_scope_value_as = { name = ethos value = flag:egalitarian }
}
else_if = {
limit = { has_cultural_pillar = ethos_communal }
save_scope_value_as = { name = ethos value = flag:communal }
}
}
}
}
option = {
trigger = { this = scope:founder }
name = culture_notification.1111.a.founder
custom_tooltip = culture_notification_tooltip
}
option = {
trigger = { this != scope:founder }
name = culture_notification.1111.a.other
custom_tooltip = culture_notification_tooltip
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,348 +0,0 @@
namespace = language_events
# Forget a language when above the soft-cap
language_events.0001 = {
type = character_event
title = language_events.0001.t
desc = language_events.0001.desc
theme = learning
left_portrait = {
character = root
animation = boredom
}
trigger = {
num_of_known_languages > language_soft_cap
any_culture_global = {
save_temporary_scope_as = culture_check
root = {
knows_language_of_culture = scope:culture_check
culture = {
NOT = {
has_same_culture_language = scope:culture_check
}
}
}
}
}
cooldown = {
years = 3
}
weight_multiplier = {
base = 1
modifier = {
num_of_known_languages > language_soft_cap
add = language_soft_cap_modifier_value
}
}
immediate = {
random_culture_global = {
limit = {
save_temporary_scope_as = culture_check
root = {
knows_language_of_culture = scope:culture_check
culture = {
NOT = {
has_same_culture_language = scope:culture_check
}
}
}
}
weight = {
base = 1
modifier = {
add = 9
root.culture = {
NOT = {
has_same_culture_heritage = prev
}
}
}
}
save_scope_as = language_to_forget
}
}
option = {
name = language_events.0001.a
unlearn_language_of_culture = scope:language_to_forget
stress_impact = {
lazy = major_stress_impact_loss
diligent = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = {
name = language_events.0001.b
stress_impact = {
base = massive_stress_impact_gain
lazy = massive_stress_impact_gain
}
ai_chance = {
base = 100
}
}
}
scripted_trigger vassal_speaking_other_language_trigger = {
is_available_ai_adult = yes
primary_title.tier >= tier_county
opinion = {
target = root
value >= low_positive_opinion
}
NOR = {
has_trait = arbitrary
has_trait = arrogant
has_trait = callous
has_trait = sadistic
has_relation_rival = root
culture = {
has_same_culture_language = root.culture
}
}
root = {
knows_language_of_culture = prev.culture
}
any_sub_realm_county = {
count >= 3 # Must have a tangible representation of the culture in their realm
culture = prev.culture
}
}
# Vassal who speak the language lauds your efforts
language_events.0002 = {
type = character_event
title = language_events.0002.t
desc = language_events.0002.desc
theme = learning
override_background = { reference = market }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:vassal_speaking_other_language
animation = throne_room_applaud_1
}
trigger = {
is_landed = yes
is_available_at_peace_adult = yes
OR = {
primary_title.tier >= tier_kingdom
top_liege = this
}
any_vassal = { vassal_speaking_other_language_trigger = yes }
}
cooldown = {
years = 20
}
immediate = {
random_vassal = {
limit = { vassal_speaking_other_language_trigger = yes }
weight = {
base = 1
modifier = {
add = 100
has_relation_potential_friend = root
}
modifier = {
add = 10
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 5
is_of_minor_interest_to_root_trigger = yes
}
}
save_scope_as = vassal_speaking_other_language
}
}
option = {
name = language_events.0002.a
scope:vassal_speaking_other_language = {
progress_towards_friend_effect = {
REASON = friend_recognized_by_liege
CHARACTER = root
OPINION = 0
}
culture = {
change_cultural_acceptance = {
target = root.culture
value = 5
desc = cultural_acceptance_gain_event
}
}
}
stress_impact = {
greedy = major_stress_impact_loss
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = {
name = language_events.0002.b
flavor = language_events.0002.b.tt
add_treasury_or_gold = gold_per_culture_county_in_subrealm
scope:vassal_speaking_other_language = {
progress_towards_rival_effect = {
CHARACTER = root
REASON = rival_language_bullied
OPINION = -20
}
culture = {
change_cultural_acceptance = {
target = root.culture
value = -5
desc = cultural_acceptance_gain_event
}
}
}
stress_impact = {
generous = massive_stress_impact_gain
just = major_stress_impact_gain
content = major_stress_impact_gain
honest = medium_stress_impact_gain
trusting = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
has_trait = greedy
add = 100
}
modifier = {
gold < 0
add = 100
}
}
}
}
# Forget a language when above the soft-cap; Owl nightmare
language_events.0010 = {
type = character_event
title = language_events.0010.t
desc = language_events.0010.desc
theme = learning
left_portrait = {
character = root
animation = shock
}
cooldown = {
years = 3
}
trigger = {
num_of_known_languages > language_soft_cap
any_culture_global = {
save_temporary_scope_as = culture_check
root = {
knows_language_of_culture = scope:culture_check
culture = {
NOT = {
has_same_culture_language = scope:culture_check
}
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
num_of_known_languages > language_soft_cap
add = language_soft_cap_modifier_value
}
}
immediate = {
random_culture_global = {
limit = {
save_temporary_scope_as = culture_check
root = {
knows_language_of_culture = scope:culture_check
culture = {
NOT = {
has_same_culture_language = scope:culture_check
}
}
}
}
weight = {
base = 1
modifier = {
add = 9
root.culture = {
NOT = {
has_same_culture_heritage = prev
}
}
}
}
save_scope_as = language_to_forget
}
}
# Forget
option = {
name = language_events.0010.a
unlearn_language_of_culture = scope:language_to_forget
stress_impact = {
lazy = major_stress_impact_loss
diligent = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
# Stress
option = {
name = language_events.0010.b
stress_impact = {
base = massive_stress_impact_gain
lazy = massive_stress_impact_gain
}
ai_chance = {
base = 100
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,42 +0,0 @@
namespace = bp3_decisions
bp3_decisions.0100 = {
type = character_event
title = bp3_decisions.0100.t
desc = bp3_decisions.0100.desc
theme = realm
left_portrait = {
character = root
animation = personality_honorable
}
immediate = {
house = {
add_house_modifier = {
modifier = legacy_adventurer_house_modifier
}
}
}
# Do some justicar contracts
option = {
name = bp3_decisions.0100.a
custom_tooltip = bp3_decisions.0100.a_tt
hidden_effect = {
populate_task_contracts_for_area = {
location = root.location
amount = 3
group = { laamp_contracts_justicar_group }
}
}
}
# Become legitimists
option = {
name = bp3_decisions.0100.b
trigger = { NOT = { has_realm_law = camp_purpose_legitimists } }
add_realm_law_skip_effects = camp_purpose_legitimists
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,795 +0,0 @@
namespace = ce1_decision_events
#Legend Book Commision
ce1_decision_events.0001 = { #by Veronica Pazos
type = character_event
title = ce1_decision_events.0001.t
desc = ce1_decision_events.0001.desc
theme = legend
override_background = { reference = study }
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:chronicler
animation = writing
}
artifact = {
target = scope:newly_created_artifact
position = lower_center_portrait
}
override_effect_2d = {
reference = legend_glow
}
immediate = {
play_music_cue = "mx_cue_positive_effect"
hidden_effect_new_object = {
if = {
limit = {
has_variable = finished_mythical_legend_var
}
if = {
limit = {
artifacts_use_indian_books_trigger = yes
}
create_artifact = {
name = legend_book
type = chronicle
creator = scope:chronicler
description = legend_book_desc
visuals = indian_book
modifier = artifact_diplomacy_3_modifier
modifier = artifact_monthly_prestige_add_8_modifier
save_scope_as = newly_created_artifact
wealth = 400
quality = 400
}
}
else = {
create_artifact = {
name = legend_book
type = chronicle
creator = scope:chronicler
description = legend_book_desc
visuals = chronicle
modifier = artifact_diplomacy_3_modifier
modifier = artifact_monthly_prestige_add_8_modifier
save_scope_as = newly_created_artifact
wealth = 400
quality = 400
}
}
}
else_if = {
limit = {
has_variable = finished_illustrious_legend_var
}
if = {
limit = {
artifacts_use_indian_books_trigger = yes
}
create_artifact = {
name = legend_book
type = chronicle
creator = scope:chronicler
description = legend_book_desc
visuals = indian_book
modifier = artifact_diplomacy_2_modifier
modifier = artifact_monthly_prestige_add_6_modifier
save_scope_as = newly_created_artifact
wealth = 200
quality = 200
}
}
else = {
create_artifact = {
name = legend_book
type = chronicle
creator = scope:chronicler
description = legend_book_desc
visuals = chronicle
modifier = artifact_diplomacy_2_modifier
modifier = artifact_monthly_prestige_add_6_modifier
save_scope_as = newly_created_artifact
wealth = 200
quality = 200
}
}
}
else = { #famed
if = {
limit = {
artifacts_use_indian_books_trigger = yes
}
create_artifact = {
name = legend_book
type = miscellaneous
creator = scope:chronicler
description = legend_book_desc
visuals = indian_book
modifier = artifact_diplomacy_1_modifier
modifier = artifact_monthly_prestige_add_4_modifier
save_scope_as = newly_created_artifact
wealth = 80
quality = 80
}
}
else = {
create_artifact = {
name = legend_book
type = miscellaneous
creator = scope:chronicler
description = legend_book_desc
visuals = chronicle
modifier = artifact_diplomacy_1_modifier
modifier = artifact_monthly_prestige_add_4_modifier
save_scope_as = newly_created_artifact
wealth = 80
quality = 80
}
}
}
}
hidden_effect = {
scope:newly_created_artifact = {
if = {
limit = {
root = {
has_variable = finished_heroic_legend_var
}
}
if = {
limit = {
root = {
has_variable = finished_mythical_legend_var
}
}
add_artifact_modifier = artifact_martial_3_modifier
}
else_if = {
limit = {
root = {
has_variable = finished_illustrious_legend_var
}
}
add_artifact_modifier = artifact_martial_2_modifier
add_artifact_modifier = artifact_monthly_prestige_add_6_modifier
}
else = {
add_artifact_modifier = artifact_martial_1_modifier
}
}
else_if = {
limit = {
root = {
has_variable = finished_holy_legend_var
}
}
if = {
limit = {
root = {
has_variable = finished_mythical_legend_var
}
}
add_artifact_modifier = artifact_learning_3_modifier
}
else_if = {
limit = {
root = {
has_variable = finished_illustrious_legend_var
}
}
add_artifact_modifier = artifact_learning_2_modifier
}
else = {
add_artifact_modifier = artifact_learning_1_modifier
}
}
else_if = {
limit = {
root = {
has_variable = finished_legitimizing_legend_var
}
}
if = {
limit = {
root = {
has_variable = finished_mythical_legend_var
}
}
add_artifact_modifier = artifact_stewardship_3_modifier
}
else_if = {
limit = {
root = {
has_variable = finished_illustrious_legend_var
}
}
add_artifact_modifier = artifact_stewardship_2_modifier
}
else = {
add_artifact_modifier = artifact_stewardship_1_modifier
}
}
}
}
}
option = { #nice
name = ce1_decision_events.0001.a
show_as_tooltip = {
scope:newly_created_artifact = { set_owner = root }
}
}
after = {
remove_variable ?= finished_legend_var
remove_variable ?= finished_famed_legend_var
remove_variable ?= finished_illustrious_legend_var
remove_variable ?= finished_mythical_legend_var
remove_variable ?= finished_heroic_legend_var
remove_variable ?= finished_holy_legend_var
remove_variable ?= finished_legitimizing_legend_var
}
}
#Legendary Kingdom Integration
#by James Beaumont
scripted_effect ce1_dec_1000_integrate = {
# Empires are simple, just de-jure shift the kingdom
if = {
limit = {
root.primary_title.tier = tier_empire
}
$KINGDOM$ = {
set_de_jure_liege_title = root.primary_title
}
}
# Kingdoms, de jure shift all duchies into your kingdom
else = {
$KINGDOM$ = {
every_in_de_jure_hierarchy = {
limit = { tier = tier_duchy }
set_de_jure_liege_title = root.primary_title
}
}
}
}
scripted_effect ce1_dec_1010_integrate = {
# Kingdoms are simple, just de-jure shift the duchy
if = {
limit = {
root.primary_title.tier = tier_kingdom
}
$DUCHY$ = {
set_de_jure_liege_title = root.primary_title
}
}
# Empires suck, find a kingdom within your empire that borders the duchy
else_if = {
limit = {
root.primary_title = {
any_in_de_jure_hierarchy = {
tier = tier_kingdom
any_title_to_title_neighboring_and_across_water_duchy = {
this = $DUCHY$
}
}
}
}
root.primary_title = {
random_in_de_jure_hierarchy = {
limit = {
tier = tier_kingdom
any_title_to_title_neighboring_and_across_water_duchy = {
this = $DUCHY$
}
}
$DUCHY$ = {
set_de_jure_liege_title = prev
}
}
}
}
# Empires suck, de-jure shift to your capital's kingdom
else = {
$DUCHY$ = {
set_de_jure_liege_title = root.capital_county.kingdom
}
}
}
ce1_decision_events.1000 = {
type = character_event
title = ce1_decision_events.1000.t
desc = ce1_decision_events.1000.desc
theme = martial
left_portrait = {
character = root
animation = personality_honorable
}
immediate = {
play_music_cue = "mx_cue_positive_effect"
random_kingdom = {
limit = {
valid_for_legendary_integration_k = yes
this != root.primary_title
}
save_scope_as = kingdom_01
}
random_kingdom = {
limit = {
valid_for_legendary_integration_k = yes
NOT = {
this = root.primary_title
this = scope:kingdom_01
}
}
save_scope_as = kingdom_02
}
random_kingdom = {
limit = {
valid_for_legendary_integration_k = yes
NOT = {
this = root.primary_title
this = scope:kingdom_01
this = scope:kingdom_02
}
}
save_scope_as = kingdom_03
}
random_kingdom = {
limit = {
valid_for_legendary_integration_k = yes
NOT = {
this = root.primary_title
this = scope:kingdom_01
this = scope:kingdom_02
this = scope:kingdom_03
}
}
save_scope_as = kingdom_04
}
random_kingdom = {
limit = {
valid_for_legendary_integration_k = yes
NOT = {
this = root.primary_title
this = scope:kingdom_01
this = scope:kingdom_02
this = scope:kingdom_03
this = scope:kingdom_04
}
}
save_scope_as = kingdom_05
}
random_kingdom = {
limit = {
valid_for_legendary_integration_k = yes
NOT = {
this = root.primary_title
this = scope:kingdom_01
this = scope:kingdom_02
this = scope:kingdom_03
this = scope:kingdom_04
this = scope:kingdom_05
}
}
save_scope_as = kingdom_06
}
}
option = { #Kingdom 1 please
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
primary_title.tier = tier_empire
}
desc = ce1_decision_events.1000.a.empire
}
desc = ce1_decision_events.1000.a.kingdom
}
}
}
trigger = {
exists = scope:kingdom_01
}
ce1_dec_1000_integrate = {
KINGDOM = scope:kingdom_01
}
ai_chance = {
base = 10
}
}
option = { #Kingdom 2 please
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
primary_title.tier = tier_empire
}
desc = ce1_decision_events.1000.b.empire
}
desc = ce1_decision_events.1000.b.kingdom
}
}
}
trigger = {
exists = scope:kingdom_02
}
ce1_dec_1000_integrate = {
KINGDOM = scope:kingdom_02
}
ai_chance = {
base = 10
}
}
option = { #Kingdom 3 please
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
primary_title.tier = tier_empire
}
desc = ce1_decision_events.1000.c.empire
}
desc = ce1_decision_events.1000.c.kingdom
}
}
}
trigger = {
exists = scope:kingdom_03
}
ce1_dec_1000_integrate = {
KINGDOM = scope:kingdom_03
}
ai_chance = {
base = 10
}
}
option = { #Kingdom 4 please
name = ce1_decision_events.1000.d
trigger = {
exists = scope:kingdom_04
}
ce1_dec_1000_integrate = {
KINGDOM = scope:kingdom_04
}
ai_chance = {
base = 10
}
}
option = { #Kingdom 5 please
name = ce1_decision_events.1000.e
trigger = {
exists = scope:kingdom_05
}
ce1_dec_1000_integrate = {
KINGDOM = scope:kingdom_05
}
ai_chance = {
base = 10
}
}
option = { #Kingdom 6 please
name = ce1_decision_events.1000.f
trigger = {
exists = scope:kingdom_06
}
ce1_dec_1000_integrate = {
KINGDOM = scope:kingdom_06
}
ai_chance = {
base = 10
}
}
}
ce1_decision_events.1010 = {
type = character_event
title = ce1_decision_events.1010.t
desc = ce1_decision_events.1010.desc
theme = martial
left_portrait = {
character = root
animation = personality_honorable
}
immediate = {
play_music_cue = "mx_cue_positive_effect"
random_duchy = {
limit = {
valid_for_legendary_integration_d = yes
}
save_scope_as = duchy_01
}
random_duchy = {
limit = {
valid_for_legendary_integration_d = yes
this != scope:duchy_01
}
save_scope_as = duchy_02
}
random_duchy = {
limit = {
valid_for_legendary_integration_d = yes
NOT = {
this = scope:duchy_01
this = scope:duchy_02
}
}
save_scope_as = duchy_03
}
random_duchy = {
limit = {
valid_for_legendary_integration_d = yes
NOT = {
this = scope:duchy_01
this = scope:duchy_02
this = scope:duchy_03
}
}
save_scope_as = duchy_04
}
random_duchy = {
limit = {
valid_for_legendary_integration_d = yes
NOT = {
this = scope:duchy_01
this = scope:duchy_02
this = scope:duchy_03
this = scope:duchy_04
}
}
save_scope_as = duchy_05
}
random_duchy = {
limit = {
valid_for_legendary_integration_d = yes
NOT = {
this = scope:duchy_01
this = scope:duchy_02
this = scope:duchy_03
this = scope:duchy_04
this = scope:duchy_05
}
}
save_scope_as = duchy_06
}
}
option = { #Duchy 1 please
name = ce1_decision_events.1010.a
trigger = {
exists = scope:duchy_01
}
ce1_dec_1010_integrate = {
DUCHY = scope:duchy_01
}
ai_chance = {
base = 10
}
}
option = { #Duchy 2 please
name = ce1_decision_events.1010.b
trigger = {
exists = scope:duchy_02
}
ce1_dec_1010_integrate = {
DUCHY = scope:duchy_02
}
ai_chance = {
base = 10
}
}
option = { #Duchy 3 please
name = ce1_decision_events.1010.c
trigger = {
exists = scope:duchy_03
}
ce1_dec_1010_integrate = {
DUCHY = scope:duchy_03
}
ai_chance = {
base = 10
}
}
option = { #Duchy 4 please
name = ce1_decision_events.1010.d
trigger = {
exists = scope:duchy_04
}
ce1_dec_1010_integrate = {
DUCHY = scope:duchy_04
}
ai_chance = {
base = 10
}
}
option = { #Duchy 5 please
name = ce1_decision_events.1010.e
trigger = {
exists = scope:duchy_05
}
ce1_dec_1010_integrate = {
DUCHY = scope:duchy_05
}
ai_chance = {
base = 10
}
}
option = { #Duchy 6 please
name = ce1_decision_events.1010.f
trigger = {
exists = scope:duchy_06
}
ce1_dec_1010_integrate = {
DUCHY = scope:duchy_06
}
ai_chance = {
base = 10
}
}
}
# Pacifist conversion
ce1_decision_events.1020 = {
type = character_event
title = ce1_decision_events.1020.t
desc = ce1_decision_events.1020.desc
theme = learning
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:legendary_character
animation = personality_zealous
}
immediate = {
scope:legendary_character.faith = { save_scope_as = leg_faith }
save_scope_as = liege_convert
}
option = { # Convert I shall!
name = ce1_decision_events.1020.a
every_vassal_or_below = {
custom = every_same_faith_vassal
limit = {
faith = root.faith
NOT = { any_held_title = { is_head_of_faith = yes } }
}
if = {
limit = {
is_ai = yes
}
set_character_faith = scope:leg_faith
}
else = {
trigger_event = ce1_decision_events.1021 # Give players a choice
}
}
every_sub_realm_county = {
custom = every_same_faith_county_in_realm
limit = {
faith = root.faith
}
random = {
chance = 25
set_county_faith = scope:leg_faith
}
}
scope:legendary_character = {
send_interface_toast = {
title = ce1_decision_events.1020.conversion
left_icon = scope:legendary_character
right_icon = scope:liege_convert
scope:liege_convert = {
set_character_faith = scope:leg_faith
}
}
}
ai_chance = {
base = 350 # Should be high, this is a reward for a massive investment
ai_value_modifier = {
ai_zeal = -2
ai_honor = 0.5
ai_compassion = 2 # Pacifism is epic
ai_vengefulness = -0.5
ai_rationality = -0.75
}
opinion_modifier = {
opinion_target = root
multiplier = 1
}
}
}
option = { # Pacifism is cringe
name = ce1_decision_events.1020.b
trigger = {
NOT = {
has_character_flag = guarantee_conversion
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = 2
ai_honor = -0.5
ai_compassion = -2
ai_vengefulness = 0.5
ai_rationality = 0.75
}
}
}
after = {
if = {
limit = {
has_character_flag = guarantee_conversion
}
remove_character_flag = guarantee_conversion
}
}
}
ce1_decision_events.1021 = {
type = character_event
title = ce1_decision_events.1021.t
desc = ce1_decision_events.1021.desc
theme = learning
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:legendary_character
animation = personality_zealous
}
option = { # Convert I shall!
name = ce1_decision_events.1021.a
set_character_faith = scope:leg_faith
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = -2
ai_honor = 0.5
ai_compassion = 2 # Pacifism is epic
ai_vengefulness = -0.5
ai_rationality = -0.75
}
}
}
option = { # Pacifism is cringe
name = ce1_decision_events.1021.b
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = 2
ai_honor = -0.5
ai_compassion = -2
ai_vengefulness = 0.5
ai_rationality = 0.75
}
}
}
}

View file

@ -1,212 +0,0 @@

namespace = central_asia
### Become Greatest of Khans
# by Petter Vilberg
# central_asia.0001 # I become Genghis Khan
# central_asia.0002 # My liege became Genghis Khan
# central_asia.0003 # Someone became Genghis Khan :/
#
# central_asia.0011 #I formed the Bactrian Empire
# central_asia.0012 #My ruler formed the Bactrian Empire
# central_asia.0013 #The Bactrian Empire now claims my land
###
################
# Become Greatest of Khan events
# central_asia.0001 - 0003
#
#I became Genghis Khan
central_asia.0001 = {
type = character_event
title = central_asia.0001.t
desc = central_asia.0001.desc
theme = war
left_portrait = {
character = root
animation = personality_vengeful
}
override_background = { reference = wilderness_steppe }
immediate = {
play_music_cue = "mx_cue_crusade_starts"
form_the_mongol_empire_effect = yes
legend_seed_new_title_effect = yes
}
option = {
name = central_asia.0001.a
add_trait = greatest_of_khans
add_trait = conqueror
if = {
limit = { has_any_nickname = yes }
remove_nickname = yes
}
give_nickname = nick_genghis_khan
if = {
limit = {
prestige_level < 5
}
add_prestige_level = 1
}
custom_tooltip = central_asia.0001.mongol_invasion_cb
}
}
#My ruler became Genghis Khan
central_asia.0002 = {
type = character_event
title = central_asia.0002.t
desc = central_asia.0002.desc
theme = war
left_portrait = {
character = scope:genghis_khan
animation = personality_vengeful
}
override_background = { reference = wilderness_steppe }
immediate = {
play_music_cue = "mx_cue_crusade_starts"
show_as_tooltip = {
scope:genghis_khan = {
add_trait_force_tooltip = greatest_of_khans
add_trait_force_tooltip = conqueror
hidden_effect = { set_primary_title_to = title:e_mongol_empire }
spawn_mongol_troops_effect = yes
}
}
}
option = {
name = central_asia.0002.a
}
}
#Someone became Genghis Khan
central_asia.0003 = {
type = character_event
title = central_asia.0002.t
desc = central_asia.0003.desc
theme = war
left_portrait = {
character = scope:genghis_khan
animation = personality_vengeful
}
override_background = { reference = wilderness_steppe }
immediate = {
play_music_cue = "mx_cue_combat_2"
show_as_tooltip = {
scope:genghis_khan = {
add_trait_force_tooltip = greatest_of_khans
add_trait_force_tooltip = conqueror
hidden_effect = { set_primary_title_to = title:e_mongol_empire }
}
}
}
option = {
name = {
text = central_asia.0003.a.neighbor
trigger = {
any_neighboring_top_liege_realm_owner = {
this = scope:genghis_khan
}
}
}
name = {
text = central_asia.0003.a.distant
}
}
}
#
# END Become Greatest of Khans events
#################
#################
# Establish Bactrian Dominance
# central_asia.0011-0013
# by Petter Vilberg
#
# I have restored Bactria
central_asia.0011 = {
type = character_event
title = central_asia.0011.t
desc = central_asia.0011.desc
theme = realm
left_portrait = {
character = scope:bactrian_emperor
animation = personality_bold
}
override_background = { reference = wilderness_steppe }
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
establish_bactrian_supremacy_effect = yes
legend_seed_new_title_effect = yes
}
option = {
name = central_asia.0011.a
}
}
# My liege has restored Bactria
central_asia.0012 = {
type = character_event
title = central_asia.0011.t
desc = central_asia.0012.desc
theme = realm
left_portrait = {
character = scope:bactrian_emperor
animation = personality_bold
}
override_background = { reference = wilderness_steppe }
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
show_as_tooltip = {
scope:bactrian_emperor = {
establish_bactrian_supremacy_effect = yes
}
}
}
option = {
name = central_asia.0012.a
}
}
# My lands have become de jure of Bactria
central_asia.0013 = {
type = character_event
title = central_asia.0011.t
desc = central_asia.0013.desc
theme = realm
left_portrait = {
character = scope:bactrian_emperor
animation = personality_bold
}
override_background = { reference = wilderness_steppe }
option = {
name = central_asia.0013.a
show_as_tooltip = {
title:e_bactria = {
every_in_de_jure_hierarchy = {
limit = {
tier = tier_kingdom
}
set_de_jure_liege_title = title:e_bactria
}
}
}
}
}

View file

@ -1,81 +0,0 @@

namespace = culture_conversion
### My Liege converted culture
culture_conversion.0001 = {
type = character_event
title = culture_conversion.0001.t
desc = culture_conversion.0001.desc
theme = culture_change
left_portrait = {
character = scope:converting_character
animation = personality_honorable
}
option = { # Good for them, I suppose
name = culture_conversion.0001.a
trigger = {
culture != scope:new_culture
culture != scope:old_culture
}
show_as_tooltip = {
scope:converting_character = {
set_culture = scope:converting_character.culture
}
}
ai_chance = {
base = 100
}
}
option = { # It's a bad idea to leave the old ways behind
name = culture_conversion.0001.b
trigger = {
culture = scope:old_culture
}
show_as_tooltip = {
scope:converting_character = {
set_culture = scope:converting_character.culture
}
}
ai_chance = {
base = 100
}
}
option = { # Better move with the times
name = culture_conversion.0001.c
trigger = {
culture = scope:old_culture
}
convert_family_culture_and_notify_vassals_effect = {
CONVERTER = scope:converter
OLD_CULTURE = scope:old_culture
NEW_CULTURE = scope:new_culture
}
stress_impact = {
stubborn = medium_stress_impact_gain
}
ai_chance = {
base = 20
modifier = {
add = 80
any_held_title = {
title_tier = county
culture = scope:new_culture
}
}
modifier = {
add = 100
is_landed = yes
capital_province.culture = scope:new_culture
}
modifier = {
factor = 0.2
has_trait = stubborn
}
}
}
}

View file

@ -1,164 +0,0 @@
namespace = ep2_decision_events
#Tournament Training
ep2_decision_events.0001 = { #by Veronica Pazos
type = character_event
title = ep2_decision_events.0001.t
desc = ep2_decision_events.0001.desc
theme = martial
override_background = { reference = courtyard }
left_portrait = {
character = scope:training_ruler
animation = aggressive_sword
}
right_portrait = {
character = scope:marshal
animation = war_attacker
}
immediate = {
play_music_cue = "mx_cue_positive_effect"
scope:training_ruler = {
add_character_flag = wear_armor
}
scope:marshal = {
add_character_flag = wear_armor
}
}
option = { #get prowess
name = ep2_decision_events.0001.a
scope:marshal = {
duel = {
skill = prowess
value = decent_skill_rating
10 = { #Get trait
desc = ep2_decision_events.0001.a.crit_success
trigger = {
root.prowess >= 16
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
root = {
send_interface_toast = {
title = ep2_decision_events.0001.a.crit_success
left_icon = root
add_trait = strong
add_prowess_skill = 1
}
}
}
40 = { #Prowess
desc = ep2_decision_events.0001.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
root = {
send_interface_toast = {
title = ep2_decision_events.0001.a.success
left_icon = root
add_prowess_skill = 1
}
}
}
50 = { #regular PtV modifier
desc = ep2_decision_events.0001.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
root = {
send_interface_toast = {
title = ep2_decision_events.0001.a.failure
left_icon = root
add_character_modifier = { #we add a modifier so you can see it on your character
modifier = tournament_training_decision_modifier
years = 10
}
}
}
}
25 = { #wounded
desc = ep2_decision_events.0001.a.crit_failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
root = {
send_interface_toast = {
title = ep2_decision_events.0001.a.crit_failure
left_icon = root
increase_wounds_effect = { REASON = accident }
}
}
}
}
}
every_knight = {
custom = custom.every_knight
scope:marshal = {
duel = {
skill = prowess
value = decent_skill_rating
25 = { #Prowess
desc = ep2_decision_events.0001.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
prev = { add_prowess_skill = 1 }
}
75 = { #regular PtV modifier
desc = ep2_decision_events.0001.a.knight_fail
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
}
}
}
}
}
option = { #get sparring tradition
name = ep2_decision_events.0001.b
trigger = {
NOT = {
culture = { has_cultural_tradition = tradition_chivalry }
has_variable = tradition_chivalry_tournament_discount
}
culture = { #and you can get it
OR = {
has_cultural_pillar = heritage_brythonic
has_cultural_pillar = heritage_central_germanic
has_cultural_pillar = heritage_frankish
has_cultural_pillar = heritage_goidelic
has_cultural_pillar = heritage_iberian
has_cultural_pillar = heritage_latin
has_cultural_pillar = heritage_west_germanic
}
}
}
custom_tooltip = ep2_decision_events.0001.b.tt
set_variable = tradition_chivalry_tournament_discount
add_prestige = major_prestige_loss
stress_impact = {
base = major_stress_impact_gain
gallant = medium_stress_impact_loss
}
ai_chance = {
base = 0
}
}
after = {
scope:training_ruler = {
remove_character_flag = wear_armor
}
scope:marshal = {
remove_character_flag = wear_armor
}
}
}

View file

@ -1,707 +0,0 @@
namespace = major_decisions
#Decisions:
# form_dai_viet_empire_decision, by Ali Kara
# 4000 - The decision is made, choose a reward.
# 4001 - Inform any players.
# form_majapahit_empire_decision, by Ali Kara
# 5000 - The decision is made, choose a reward.
# 5001 - Inform any players.
# form_ryukyu_empire_decision, by Ali Kara
# 6000 - The decision is made, choose an artifact to be crafted.
# 6001 - The chosen shaku artifact has been crafted
# 6002 - The chosen crown artifact has been crafted
# 6003 - Inform any players.
# form_siam_kingdom_decision, by Ali Kara
# 7000 - The decision is made, choose a reward.
# 7001 - Inform any players.
#form_dai_viet_empire_decision
#The decision is made, choose a reward.
major_decisions.4000 = { #by Ali Kara
type = character_event
title = major_decisions.4000.t
desc = major_decisions.4000.desc
window = big_event_window
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_event_right_to_the_right
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
form_dai_viet_empire_decision_scripted_effect = yes
legend_seed_new_title_effect = yes
primary_title = { save_scope_as = new_primary_title }
save_scope_as = flavor
create_character_memory = {
type = ascended_throne_memory
participants = {
flavor_character = scope:flavor
}
}
scope:new_memory = {
set_variable = {
name = landed_title
value = scope:new_primary_title
}
}
}
#More house Godliness
option = {
name = major_decisions.4000.a
root.house = {
add_house_modifier = dai_viet_empire_house_modifier
}
if = {
limit = {
exists = cp:councillor_court_chaplain
}
cp:councillor_court_chaplain = {
add_opinion = {
modifier = pious_opinion
target = root
opinion = 40
}
}
}
}
#Subject opinion boost
option = {
trigger = {
any_vassal_or_below = {
count > 0
primary_title.tier >= tier_county
}
}
name = major_decisions.4000.b
every_vassal_or_below = {
limit = {
primary_title.tier >= tier_county
}
add_opinion = {
modifier = respect_opinion
opinion = 15
target = root
}
}
}
#Personal credit
option = {
name = major_decisions.4000.c
give_nickname = nick_the_great
add_prestige_experience = massive_fame_gain
stress_impact = {
humble = medium_stress_impact_gain
}
}
}
#Inform any players.
major_decisions.4001 = { #by Ali Kara
type = character_event
title = major_decisions.4001.t
desc = major_decisions.4001.desc
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_body_left_slight
}
immediate = {
if = {
limit = { highest_held_title_tier >= tier_empire }
play_music_cue = "mx_cue_combat_2"
}
}
option = {
name = {
trigger = {
highest_held_title_tier < tier_empire
}
text = major_decisions.4001.a
}
name = { #Empires are less than impressed.
trigger = {
NOT = {
highest_held_title_tier >= tier_empire
}
}
text = major_decisions.4001.b
}
}
}
scripted_effect majapahit_reward_island_title_claims_list_effect = {
title:d_BOR_tanjungpura = { add_to_list = island_titles }
title:d_BOR_nan_sarunai = { add_to_list = island_titles }
title:d_BOR_kutai = { add_to_list = island_titles }
title:d_SUM_jambi = { add_to_list = island_titles }
title:d_SUM_minangkabau = { add_to_list = island_titles }
title:d_SUM_riau = { add_to_list = island_titles }
title:d_SUM_aceh = { add_to_list = island_titles }
title:d_SuMa_luwu = { add_to_list = island_titles }
title:d_SuMa_tompotika = { add_to_list = island_titles }
title:d_SuMa_konawe = { add_to_list = island_titles }
random_in_list = {
list = island_titles
limit = {
is_title_created = yes
holder = {
this != root
NOT = {
is_vassal_of = root
is_tributary_of = root
}
is_within_diplo_range = { CHARACTER = root }
}
root = {
NOT = {
has_claim_on = prev
}
}
}
save_scope_as = chosen_island_title_scope
}
}
#form_majapahit_empire_decision
#The decision is made, choose a reward.
major_decisions.5000 = { #by Ali Kara
type = character_event
title = major_decisions.5000.t
desc = major_decisions.5000.desc
window = big_event_window
theme = faith
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_event_very_right
}
left_portrait = {
character = scope:ritual_guide
animation = storyteller
camera = camera_event_very_left
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
form_majapahit_empire_decision_scripted_effect = yes
majapahit_reward_island_title_claims_list_effect = yes
legend_seed_new_title_effect = yes
if = {
limit = {
exists = root.cp:councillor_court_chaplain
}
cp:councillor_court_chaplain = {
save_scope_as = ritual_guide
}
}
else = {
faith = {
ordered_faith_character = {
order_by = learning
limit = {
culture = root.culture
top_liege = root
}
position = 0
save_scope_as = ritual_guide
}
}
}
primary_title = { save_scope_as = new_primary_title }
save_scope_as = flavor
create_character_memory = {
type = ascended_throne_memory
participants = {
flavor_character = scope:flavor
}
}
scope:new_memory = {
set_variable = {
name = landed_title
value = scope:new_primary_title
}
}
}
# (War/Aggression) Get a random island duchy claim & modifiers
option = {
name = major_decisions.5000.a
add_character_modifier = {
modifier = majapahit_empire_knight_modifier
years = 15
}
if = {
limit = {
list_size = {
name = island_titles
value > 0
}
}
add_unpressed_claim = scope:chosen_island_title_scope
}
give_nickname = nick_the_brave
}
# (Peace/Development) build speed & cost
option = {
name = major_decisions.5000.b
add_character_modifier = {
modifier = majapahit_empire_build_discount_modifier
years = 15
}
give_nickname = nick_the_meticulous
}
}
#Inform any players.
major_decisions.5001 = { #by Ali Kara
type = character_event
title = major_decisions.5001.t
desc = major_decisions.5001.desc
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_body_left_slight
}
immediate = {
if = {
limit = { highest_held_title_tier >= tier_empire }
play_music_cue = "mx_cue_combat_2"
}
}
option = {
name = {
trigger = {
highest_held_title_tier > tier_empire
}
text = major_decisions.5001.a
}
name = { #Empires are less than impressed.
trigger = {
NOT = {
highest_held_title_tier >= tier_empire
}
}
text = major_decisions.5001.b
}
}
}
#form_ryukyu_empire_decision
#The decision is made, choose an artifact to be crafted.
major_decisions.6000 = { #by Ali Kara
type = character_event
title = major_decisions.6000.t
desc = major_decisions.6000.desc
window = big_event_window
theme = realm
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_event_center_pointing_slighty_left
}
left_portrait = {
character = scope:antiquarian
animation = storyteller
camera = camera_event_left_away_3_4
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
form_ryukyu_empire_decision_scripted_effect = yes
legend_seed_new_title_effect = yes
primary_title = { save_scope_as = new_primary_title }
save_scope_as = flavor
create_character_memory = {
type = ascended_throne_memory
participants = {
flavor_character = scope:flavor
}
}
scope:new_memory = {
set_variable = {
name = landed_title
value = scope:new_primary_title
}
}
if = {
limit = {
employs_court_position = antiquarian_court_position
any_court_position_holder = {
type = antiquarian_court_position
}
is_healthy = yes
NOR = {
has_trait = ill
has_trait = leper
has_trait = cancer
}
}
random_court_position_holder = {
type = antiquarian_court_position
save_scope_as = antiquarian
}
}
else = {
ordered_courtier = {
limiT = {
is_healthy = yes
NOR = {
has_trait = ill
has_trait = leper
has_trait = cancer
}
}
order_by = learning
position = 0
save_scope_as = antiquarian
}
}
}
# Taller
option = {
name = major_decisions.6000.a
custom_tooltip = ryukyu_artifact_regalia_craft_tt
trigger_event = {
id = major_decisions.6001
days = 180
}
}
# Wider
option = {
name = major_decisions.6000.b
custom_tooltip = ryukyu_artifact_crown_craft_tt
trigger_event = {
id = major_decisions.6002
days = 180
}
}
}
#The chosen shaku artifact has been crafted
major_decisions.6001 = { #by Ali Kara
type = character_event
title = major_decisions.6001.t
desc = major_decisions.6001.desc
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = root
animation = personality_bold
camera = camera_event_right_crowner_crowning
}
left_portrait = {
character = scope:antiquarian
animation = gongshou_with_hu
camera = camera_event_left_crowning_observation
}
artifact = {
target = scope:ryukyu_shaku_artifact
position = lower_right_portrait
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
if = {
limit = {
employs_court_position = antiquarian_court_position
any_court_position_holder = {
type = antiquarian_court_position
}
is_healthy = yes
NOR = {
has_trait = ill
has_trait = leper
has_trait = cancer
}
}
random_court_position_holder = {
type = antiquarian_court_position
save_scope_as = antiquarian
}
}
else = {
ordered_courtier = {
limit = {
is_healthy = yes
NOR = {
has_trait = ill
has_trait = leper
has_trait = cancer
}
}
order_by = learning
position = 0
save_scope_as = antiquarian
}
}
set_artifact_rarity_illustrious = yes
create_artifact = {
name = ryukyu_shaku_name
description = ryukyu_shaku_description
template = ryukyu_shaku_template
type = regalia
visuals = ryukyuan_regalia
wealth = scope:wealth
quality = scope:quality
modifier = ryukyu_empire_shaku_modifier
save_scope_as = ryukyu_shaku_artifact
decaying = no
}
}
option = {
name = major_decisions.6001.a
add_piety_experience = medium_piety_value
add_prestige_experience = medium_fame_gain
}
}
#The chosen crown artifact has been crafted
major_decisions.6002 = { #by Ali Kara
type = character_event
title = major_decisions.6002.t
desc = major_decisions.6002.desc
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = root
animation = personality_bold
camera = camera_event_right_crowner_crowning
}
left_portrait = {
character = scope:antiquarian
animation = crowning
camera = camera_event_left_crowning_observation
}
artifact = {
target = scope:ryukyu_crown_artifact
position = lower_right_portrait
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
if = {
limit = {
employs_court_position = antiquarian_court_position
any_court_position_holder = {
type = antiquarian_court_position
}
is_healthy = yes
NOR = {
has_trait = ill
has_trait = leper
has_trait = cancer
}
}
random_court_position_holder = {
type = antiquarian_court_position
save_scope_as = antiquarian
}
}
else = {
ordered_courtier = {
limit = {
is_healthy = yes
NOR = {
has_trait = ill
has_trait = leper
has_trait = cancer
}
}
order_by = learning
position = 0
save_scope_as = antiquarian
}
}
set_artifact_rarity_illustrious = yes
create_artifact = {
name = ryukyu_crown_name
description = ryukyu_crown_description
template = ryukyu_crown_template
type = helmet
visuals = ryukyuan_crown
wealth = scope:wealth
quality = scope:quality
modifier = ryukyu_empire_crown_modifier
save_scope_as = ryukyu_crown_artifact
decaying = no
}
}
option = {
name = major_decisions.6002.a
add_prestige_experience = major_fame_gain
}
}
#Inform any players.
major_decisions.6003 = { #by Ali Kara
type = character_event
title = major_decisions.6003.t
desc = major_decisions.6003.desc
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_body_left_slight
}
immediate = {
if = {
limit = { highest_held_title_tier >= tier_empire }
play_music_cue = "mx_cue_combat_2"
}
}
option = {
name = {
trigger = {
highest_held_title_tier < tier_empire
}
text = major_decisions.6003.a
}
name = { #Empires are less than impressed.
trigger = {
highest_held_title_tier >= tier_empire
}
text = major_decisions.6003.b
}
}
}
#form_siam_kingdom_decision
#The decision is made, choose an artifact to be crafted.
major_decisions.7000 = { #by Ali Kara
type = character_event
title = major_decisions.7000.t
desc = major_decisions.7000.desc
window = big_event_window
theme = realm
right_portrait = {
character = scope:founder
animation = personality_rational
camera = camera_legend_chronicle
}
immediate = {
play_music_cue = "mx_cue_epic_sacral_moment"
form_siam_kingdom_decision_scripted_effect = yes
legend_seed_new_title_effect = yes
primary_title = { save_scope_as = new_primary_title }
save_scope_as = flavor
create_character_memory = {
type = ascended_throne_memory
participants = {
flavor_character = scope:flavor
}
}
scope:new_memory = {
set_variable = {
name = landed_title
value = scope:new_primary_title
}
}
capital_county = {
save_scope_as = kingdom_capital
}
}
# Invest in development
option = {
name = major_decisions.7000.a
scope:kingdom_capital = {
add_county_modifier = {
modifier = siam_kingdom_sangkhalok_workshops_county_modifier
years = 20
}
}
capital_county = {
every_county_province = {
add_province_modifier = {
modifier = siam_kingdom_sangkhalok_workshops_province_modifier
years = 20
}
}
}
}
# Invest in military
option = {
name = major_decisions.7000.b
capital_county = {
every_county_province = {
add_province_modifier = {
modifier = siam_kingdom_military_modifier
years = 20
}
}
}
}
# Invest in culture
option = {
name = major_decisions.7000.c
add_character_modifier = {
modifier = siam_kingdom_culture_modifier
years = 20
}
}
}
#Inform any players.
major_decisions.7001 = { #by Ali Kara
type = character_event
title = major_decisions.7001.t
desc = major_decisions.7001.desc
theme = realm
override_effect_2d = { reference = legend_glow }
right_portrait = {
character = scope:founder
animation = personality_bold
camera = camera_body_left_slight
}
immediate = {
if = {
limit = { highest_held_title_tier >= tier_kingdom }
play_music_cue = "mx_cue_combat_2"
}
}
option = {
name = {
trigger = {
highest_held_title_tier < tier_kingdom
}
text = major_decisions.7001.a
}
name = { #Kingdoms are less than impressed.
trigger = {
highest_held_title_tier >= tier_kingdom
}
text = major_decisions.7001.b
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more