N3OW_Western_eastern_europe/events/yearly_events/yearly_events_3.txt

3462 lines
63 KiB
Text
Raw Permalink Normal View History

2025-12-16 13:42:24 +00:00

namespace = yearly
#######################
# Dedication to Loyalty
# 3001-3005
# by Petter Vilberg
#######################
#Find a vassal who isn't entirely loyal
scripted_trigger yearly_3001_vassal_trigger = {
highest_held_title_tier >= tier_county
OR = {
any_scheme = {
hostile_scheme_trigger = yes
scheme_target_character = root
}
is_a_faction_member = yes
OR = {
opinion = {
target = root
value < 10
}
has_trait = deceitful
has_trait = fickle
has_trait = ambitious
}
}
is_imprisoned = no
NOR = {
has_trait = content
is_heir_of = root
has_character_modifier = liege_looking_away_modifier
}
is_ai = yes
#Find either another vassal of the same rank within the same realm as you, or a foreign character of the same rank, or any independent neighbor if you are independent
save_temporary_scope_as = vassal
root = {
trigger_if = {
limit = { top_liege != this }
any_neighboring_realm_same_rank_owner = { yearly_3001_neighbor_trigger = yes }
}
trigger_else = {
any_neighboring_top_liege_realm_owner = { yearly_3001_neighbor_trigger = yes }
}
}
}
scripted_trigger yearly_3001_possibly_lying_trigger = {
NOR = {
has_trait = honest
has_trait = just
}
}
scripted_trigger yearly_3001_possibly_truthful_trigger = {
NOT = { has_trait = deceitful }
OR = {
has_trait = honest
opinion = {
target = root
value >= 0
}
scope:vassal = {
OR = {
any_scheme = {
hostile_scheme_trigger = yes
scheme_target_character = root
}
is_a_faction_member = yes
}
}
}
}
scripted_trigger yearly_3001_neighbor_trigger = {
OR = {
yearly_3001_possibly_lying_trigger = yes
yearly_3001_possibly_truthful_trigger = yes
}
NOR = {
has_relation_friend = root
has_relation_friend = scope:vassal
}
basic_is_available_ai = yes
#The neighboring ruler has to be within one tier rank of you
save_temporary_scope_value_as = {
name = max_tier
value = { value = root.highest_held_title_tier add = 1 }
}
save_temporary_scope_value_as = {
name = min_tier
value = { value = root.highest_held_title_tier subtract = 1}
}
highest_held_title_tier <= scope:max_tier
highest_held_title_tier >= scope:min_tier
}
scripted_trigger yearly_3001_vassal_still_available_trigger = {
scope:vassal = {
basic_is_available_ai = yes
is_vassal_of = root
is_ruler = yes
}
}
#A message from a neighbor
yearly.3001 = {
type = character_event
title = yearly.3001.t
desc = {
desc = yearly.3001.desc
triggered_desc = {
trigger = {
exists = scope:friend
always = scope:friend_guess_truth
}
desc = yearly.3001.friend_backs_neighbor
}
triggered_desc = {
trigger = {
exists = scope:friend
NOT = { always = scope:friend_guess_truth }
}
desc = yearly.3001.friend_backs_vassal
}
}
theme = intrigue
left_portrait = scope:neighbor
lower_left_portrait = scope:friend_backing_neighbor
right_portrait = scope:vassal
lower_right_portrait = scope:friend_backing_vassal
trigger = {
NOT = { has_character_flag = had_event_yearly_3001 }
is_landed = yes # Requires map location checks
#Find a suitable vassal, also checks for neighbor
any_vassal = {
yearly_3001_vassal_trigger = yes
}
}
immediate = {
add_character_flag = {
flag = had_event_yearly_3001
years = 10
}
#To save the vassal that will be accused
random_vassal = {
limit = {
yearly_3001_vassal_trigger = yes
}
save_scope_as = vassal
}
#To save the neighbor
if = {
limit = {
top_liege != this
}
random_neighboring_realm_same_rank_owner = {
limit = { yearly_3001_neighbor_trigger = yes }
save_scope_as = neighbor
}
}
else = {
random_neighboring_top_liege_realm_owner = {
limit = { yearly_3001_neighbor_trigger = yes }
save_scope_as = neighbor
}
}
#Set whether the neighbor is telling the truth or not
random_list = {
50 = {
trigger = {
scope:neighbor = {
yearly_3001_possibly_truthful_trigger = yes
}
}
save_scope_value_as = {
name = telling_truth
value = yes
}
}
50 = {
trigger = {
scope:neighbor = {
yearly_3001_possibly_lying_trigger = yes
}
}
save_scope_value_as = {
name = telling_truth
value = no
}
}
}
#Let a Friend recommend a course of action
if = {
limit = {
any_relation = {
type = best_friend
this != scope:vassal
}
}
random_relation = {
type = best_friend
limit = {
this != scope:vassal
}
save_scope_as = friend
random_list = {
10 = {
#Friend backs neighbor
modifier = {
add = 50
exists = scope:telling_truth
}
modifier = {
add = 50
has_relation_rival = scope:vassal
}
modifier = {
add = 50
exists = scope:telling_truth
has_trait = intellect_good
}
save_scope_value_as = {
name = friend_guess_truth
value = yes
}
save_scope_as = friend_backing_neighbor
}
10 = {
#Friend backs vassal
modifier = {
add = 50
exists = scope:telling_truth
}
modifier = {
add = 50
has_relation_friend = scope:vassal
}
modifier = {
add = 50
has_relation_rival = scope:neighbor
}
modifier = {
add = 50
NOT = { exists = scope:telling_truth }
has_trait = intellect_good
}
save_scope_value_as = {
name = friend_guess_truth
value = no
}
save_scope_as = friend_backing_vassal
}
}
}
}
# For attempted executions triggering wars:
save_scope_as = actor
scope:vassal = {
save_scope_as = recipient
}
}
#Confront the vassal in private
option = {
trigger = {
can_add_hook = {
type = threat_hook
target = scope:vassal
}
}
name = yearly.3001.a
show_as_tooltip = {
random_list = {
1 = {
desc = yearly.3001.true_tt
show_chance = no
add_hook = {
type = threat_hook
target = scope:vassal
}
}
1 = {
desc = yearly.3001.false_tt
show_chance = no
custom_tooltip = yearly.3001.false_use_tt
}
}
}
hidden_effect = {
if = {
limit = {
always = scope:telling_truth
}
trigger_event = {
id = yearly.3002
days = { 5 10 }
}
}
else = {
trigger_event = {
id = yearly.3003
days = { 5 10 }
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -0.5
ai_rationality = 0.5
ai_compassion = 0.5
}
modifier = {
add = 200
has_trait = shy
}
}
stress_impact = {
paranoid = medium_stress_impact_gain
}
}
#Immediately accuse the vassal
option = {
name = yearly.3001.b
show_as_tooltip = {
random_list = {
1 = {
desc = yearly.3001.true_tt
show_chance = no
add_opinion = {
target = scope:vassal
modifier = plotting_against_liege_opinion
}
}
1 = {
desc = yearly.3001.false_tt
show_chance = no
add_prestige = major_prestige_loss
}
}
}
hidden_effect = {
if = {
limit = {
always = scope:telling_truth
}
trigger_event = {
id = yearly.3004
days = { 5 10 }
}
}
else = {
trigger_event = {
id = yearly.3005
days = { 5 10 }
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_zeal = 0.5
ai_vengefulness = 0.5
ai_honor = 0.5
}
opinion_modifier = {
opinion_target = scope:vassal
multiplier = -1
}
modifier = {
add = 100
always = scope:telling_truth
}
}
stress_impact = {
shy = medium_stress_impact_gain
}
}
#Denounce the foreign neighbor
# Could give your vassal a boost if the neighbor is telling the truth
option = {
name = yearly.3001.c
add_character_modifier = {
modifier = protected_vassals_honor_modifier
years = 10
}
scope:neighbor = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -30
}
}
#Tooltip informs the player of possible bad outcome
show_as_tooltip = {
random_list = {
1 = {
desc = yearly.3001.c.if_right
show_chance = no
}
1 = {
desc = yearly.3001.c.if_wrong_tt
show_chance = no
scope:vassal = {
if = {
limit = {
is_a_faction_member = yes
}
joined_faction = {
add_faction_discontent = 20
}
}
add_character_modifier = {
modifier = liege_looking_away_modifier
years = 5
}
}
}
}
}
hidden_effect = {
if = {
limit = {
always = scope:telling_truth
}
send_interface_toast = {
title = yearly.3001.vassal_gains_strength
left_icon = scope:vassal
scope:vassal = {
if = {
limit = {
is_a_faction_member = yes
}
joined_faction = {
add_faction_discontent = 20
}
}
add_character_modifier = {
modifier = liege_looking_away_modifier
years = 5
}
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = 0.5
ai_honor = 1
ai_rationality = 0.5
}
opinion_modifier = {
opinion_target = scope:vassal
}
opinion_modifier = {
opinion_target = scope:neighbor
multiplier = -0.5
}
modifier = {
add = -100
ai_diplomacy_stance = {
target = scope:neighbor
stance = threat
}
}
modifier = {
add = -200
ai_diplomacy_stance = {
target = scope:neighbor
stance = friend
}
}
modifier = {
add = 200
ai_diplomacy_stance = {
target = scope:neighbor
stance = enemy
}
}
}
}
#Kill the vassal right away
option = {
name = yearly.3001.d
trigger = {
has_trait = paranoid
}
trait = paranoid
add_internal_flag = dangerous
duel = {
target = scope:vassal
skill = intrigue
10 = {
compare_modifier = {
value = scope:duel_value
}
add_dread = major_dread_gain
imprison_character_effect = {
TARGET = scope:vassal
IMPRISONER = root
}
}
10 = {
scope:vassal = {
#If target is count or higher, start war.
if = {
limit = {
is_landed = yes
primary_title.tier > tier_barony
}
if = {
limit = {
is_a_faction_member = yes
liege = scope:actor
joined_faction = {
faction_target = scope:actor
NOT = { faction_is_type = populist_faction }
}
}
joined_faction = {
save_scope_as = retaliating_faction # For loc
imprisonment_retribution_start_faction_war_if_valid = yes
}
}
else = {
war_for_imprison_effect = yes
}
}
#If target is a baron or unlanded, have them escape.
else_if = {
limit = { is_landed = yes }
depose_effect = { DEPOSER = root }
}
else = { move_to_pool = yes }
}
}
}
stress_impact = {
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 20
modifier = {
add = 50
ai_diplomacy_stance = {
target = scope:vassal
stance = threat
}
}
ai_value_modifier = {
ai_vengefulness = 1
ai_boldness = 1
}
}
}
}
#Confront the Vassal - they admit wrongdoing
yearly.3002 = {
type = character_event
title = yearly.3002.t
desc = yearly.3002.desc
theme = vassal
left_portrait = {
character = scope:vassal
animation = shame
}
trigger = {
yearly_3001_vassal_still_available_trigger = yes
}
immediate = {
scope:vassal = {
if = {
limit = { root = { is_ai = no } }
assign_quirk_effect = yes
}
}
}
#You better do as I say from now on
option = {
name = yearly.3002.a
if = {
limit = {
can_add_hook = {
target = scope:vassal
type = threat_hook
}
}
add_hook = {
target = scope:vassal
type = threat_hook
}
}
else = {
add_prestige = medium_prestige_gain
}
stress_impact = {
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_compassion = 0.5
}
}
}
#Make sure everyone knows how forgiving and benevolent I am
option = {
name = yearly.3002.b
add_character_modifier = {
modifier = yearly_benevolent_forgiveness_modifier
years = 10
}
if = {
limit = {
tyranny > 0
}
add_tyranny = -10
}
scope:vassal = {
add_character_modifier = {
modifier = yearly_close_watch_modifier
years = 5
}
}
stress_impact = {
deceitful = minor_stress_impact_gain
callous = medium_stress_impact_gain
vengeful = major_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 0.5
ai_honor = 1
}
}
}
}
#Confront the Vassal - they have done nothing
yearly.3003 = {
type = character_event
title = yearly.3003.t
desc = {
desc = yearly.3003.desc
triggered_desc = {
trigger = {
exists = scope:friend
scope:friend.diplomacy >= decent_skill_rating
}
desc = yearly.3003.friend
}
}
left_portrait = {
character = scope:vassal
animation = anger
}
right_portrait = scope:friend
theme = vassal
trigger = {
yearly_3001_vassal_still_available_trigger = yes
}
option = {
name = yearly.3003.a
if = {
limit = {
scope:vassal = {
vassal_contract_can_be_modified_trigger = yes
vassal_contract_obligation_level_can_be_decreased = feudal_government_taxes
}
}
scope:vassal = { vassal_contract_decrease_obligation_level = feudal_government_taxes }
}
else = {
pay_short_term_gold = {
target = scope:vassal
gold = root.major_gold_value
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -0.5
ai_honor = 1
}
}
}
option = {
name = yearly.3003.b
scope:vassal = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -20
}
}
duel = {
target = scope:vassal
skill = diplomacy
10 = {
desc = yearly.3003.public_expression_of_gratitude
send_interface_toast = {
title = yearly.3003.public_expression_of_gratitude
left_icon = scope:vassal
add_prestige = medium_prestige_loss
}
}
5 = {
desc = yearly.3003.vassal_loss_of_faith
send_interface_toast = {
title = yearly.3003.vassal_loss_of_faith
left_icon = scope:vassal
add_character_modifier = {
modifier = vassal_distrust_modifier
years = 10
}
}
}
}
stress_impact = {
arrogant = major_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
}
}
}
option = {
name = yearly.3003.c
trigger = {
exists = scope:friend
}
custom_tooltip = yearly.3003.c.enable
reverse_add_opinion = {
target = scope:vassal
modifier = grateful_opinion
opinion = 15
}
add_prestige = minor_prestige_gain
ai_chance = {
base = 500
}
}
}
#Expose the Vassal - they admit wrongdoing
yearly.3004 = {
type = character_event
title = yearly.3004.t
desc = yearly.3004.desc
theme = vassal
left_portrait = {
character = scope:vassal
animation = shame
}
trigger = {
yearly_3001_vassal_still_available_trigger = yes
}
immediate = {
hidden_effect = {
add_opinion = {
target = scope:vassal
modifier = plotting_against_liege_opinion
}
}
}
#A measure of forgiveness
option = {
name = yearly.3004.a
add_prestige = medium_prestige_gain
scope:vassal = {
if = {
limit = {
vassal_contract_obligation_level_can_be_increased = feudal_government_taxes
}
vassal_contract_increase_obligation_level = feudal_government_taxes
}
}
if = {
limit = {
can_add_hook = {
target = scope:vassal
type = loyalty_hook
}
}
add_hook = {
target = scope:vassal
type = loyalty_hook
}
}
reverse_add_opinion = {
target = scope:vassal
modifier = grateful_opinion
opinion = 20
}
hidden_effect = {
remove_opinion = {
target = scope:vassal
modifier = plotting_against_liege_opinion
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.5
ai_compassion = 1
}
}
stress_impact = {
vengeful = major_stress_impact_gain
paranoid = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
}
#Imprison them
option = {
name = yearly.3004.b
imprison_character_effect = {
TARGET = scope:vassal
IMPRISONER = root
}
add_prestige = minor_prestige_gain
stress_impact = {
forgiving = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
ai_rationality = 0.5
}
}
}
#Execute them
option = {
name = yearly.3004.c
execute_prisoner_effect = {
VICTIM = scope:vassal
EXECUTIONER = root
}
stress_impact = {
compassionate = major_stress_impact_gain
forgiving = major_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 1
}
modifier = {
add = 100
has_trait = paranoid
}
}
}
}
#Expose the Vassal - they have done nothing
yearly.3005 = {
type = character_event
title = yearly.3004.t
desc = yearly.3005.desc
theme = vassal
left_portrait = {
character = scope:vassal
animation = anger
}
trigger = {
yearly_3001_vassal_still_available_trigger = yes
}
#Prestige loss
option = {
name = yearly.3005.a
duel = {
skill = diplomacy
value = 10
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
desc = yearly.3005.a.rousing_speech
send_interface_toast = {
title = yearly.3005.a.rousing_speech
left_icon = scope:vassal
add_prestige = minor_prestige_loss
reverse_add_opinion = {
target = scope:vassal
modifier = insult_opinion
opinion = -10
}
}
}
5 = {
desc = yearly.3005.a.stumbling_apology
send_interface_toast = {
title = yearly.3005.a.stumbling_apology
left_icon = scope:vassal
add_prestige = major_prestige_loss
reverse_add_opinion = {
target = scope:vassal
modifier = insult_opinion
opinion = -20
}
}
}
}
stress_impact = {
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 200
}
}
#Imprison them anyways
option = {
name = yearly.3005.b
add_dread = medium_dread_gain
imprison_character_effect_ignore_reason = {
TARGET = scope:vassal
IMPRISONER = root
}
stress_impact = {
forgiving = major_stress_impact_gain
just = major_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 1
ai_vengefulness = 0.5
}
modifier = {
add = 100
has_trait = paranoid
}
}
}
}
#############################
# An Impression Twice Made
#
# by Petter Vilberg
#############################
scripted_trigger yearly_3011_fellow_vassal_trigger = {
is_available_ai_adult = yes
this != root
NOR = {
has_relation_rival = liege
has_relation_rival = root
has_relation_friend = liege
has_relation_friend = root
}
liege = {
opinion = {
target = prev
value < 10
}
}
}
scripted_trigger yearly_3011_liege_trigger = {
is_available_ai_adult = yes
opinion = {
target = root
value < 10
}
any_vassal = {
yearly_3011_fellow_vassal_trigger = yes
}
}
scripted_trigger yearly_3011_nemesis_trigger = {
is_available_ai_adult = yes
}
#A fellow vassal comes with a suggestion
yearly.3011 = {
type = character_event
title = yearly.3011.t
desc = yearly.3011.desc
left_portrait = scope:vassal
right_portrait = scope:liege
theme = diplomacy
trigger = {
NOT = { has_character_flag = had_event_yearly_3011 }
top_liege != this
liege ?= {
yearly_3011_liege_trigger = yes
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = {
flag = had_event_yearly_3011
years = 10
}
liege = {
save_scope_as = liege
random_vassal = {
limit = {
yearly_3011_fellow_vassal_trigger = yes
}
weight = {
base = 1
modifier = {
add = 3
has_relation_potential_friend = root
}
modifier = {
add = 1
has_relation_friend = root
}
}
save_scope_as = vassal
}
}
if = {
limit = {
any_relation = {
type = nemesis
yearly_3011_nemesis_trigger = yes
}
}
random_relation = {
type = nemesis
limit = {
yearly_3011_nemesis_trigger = yes
}
save_scope_as = nemesis
}
}
}
#I will provide the gold
option = {
name = yearly.3011.a
trigger = {
gold > 0
}
remove_short_term_gold = medium_gold_value
show_as_tooltip = {
duel = {
skill = stewardship
value = 10
10 = {
desc = yearly.3011.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
scope:liege = {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 30
}
}
}
10 = {
desc = yearly.3011.a.failure
scope:liege = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
}
}
}
}
hidden_effect = {
duel = {
skill = stewardship
value = 10
10 = { #Success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
trigger_event = {
id = yearly.3012
days = { 5 10 }
}
}
10 = { #Relative Failure
trigger_event = {
id = yearly.3013
days = { 5 10 }
}
}
7 = { #Nemesis-engineered failure
trigger = {
exists = scope:nemesis
}
trigger_event = {
id = yearly.3014
days = { 5 10 }
}
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
compare_modifier = {
value = gold
offset = medium_gold_value
}
ai_value_modifier = {
ai_greed = -1
}
}
}
#I will find the entertainment
option = {
name = yearly.3011.b
add_prestige = medium_prestige_loss
show_as_tooltip = {
duel = {
skill = diplomacy
value = 10
10 = {
desc = yearly.3011.a.success
compare_modifier = {
value = scope:duel_value
}
scope:liege = {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 30
}
}
}
10 = {
desc = yearly.3011.a.failure
scope:liege = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
}
}
}
}
hidden_effect = {
duel = {
skill = diplomacy
value = 10
10 = { #Success
compare_modifier = {
value = scope:duel_value
}
trigger_event = {
id = yearly.3012
days = { 5 10 }
}
}
10 = { #Relative Failure
trigger_event = {
id = yearly.3013
days = { 5 10 }
}
}
7 = { #Nemesis-engineered failure
trigger = {
exists = scope:nemesis
}
trigger_event = {
id = yearly.3014
days = { 5 10 }
}
}
}
}
stress_impact = {
shy = minor_stress_impact_gain
}
ai_chance = {
base = 100
compare_modifier = {
value = prestige
offset = medium_prestige_value
}
}
}
#Opt out
option = {
name = yearly.3011.c
add_character_modifier = {
modifier = yearly_improved_impressions_modifier
years = 5
}
ai_chance = {
base = 25
}
}
#We don't need much
option = {
name = yearly.3011.d
trigger = {
OR = {
has_trait = gregarious
has_trait = lifestyle_reveler
}
}
trait = gregarious
trait = lifestyle_reveler
show_as_tooltip = {
duel = {
skill = stewardship
value = 10
12 = {
desc = yearly.3011.a.success
scope:liege = {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 30
}
}
}
8 = {
desc = yearly.3011.a.failure
scope:liege = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
}
}
}
}
hidden_effect = {
duel = {
skill = stewardship
value = 10
12 = { #Success
compare_modifier = {
value = stewardship
offset = average_skill_rating
}
trigger_event = {
id = yearly.3012
days = { 5 10 }
}
}
8 = { #Relative Failure
trigger_event = {
id = yearly.3013
days = { 5 10 }
}
}
5 = { #Nemesis-engineered failure
trigger = {
exists = scope:nemesis
}
trigger_event = {
id = yearly.3014
days = { 5 10 }
}
}
}
}
add_character_modifier = {
modifier = yearly_improved_impressions_modifier
years = 3
}
ai_chance = {
base = 500
}
}
}
#Success
yearly.3012 = {
type = character_event
title = yearly.3011.t
desc = yearly.3012.desc
theme = diplomacy
override_background = {
reference = feast
}
left_portrait = {
character = scope:liege
animation = happiness
}
right_portrait = scope:vassal
trigger = {
scope:liege = {
basic_is_available_ai = yes
}
scope:vassal = {
is_alive = yes
}
}
immediate = {
hidden_effect = {
if = {
limit = {
NOT = {
has_relation_friend = scope:vassal
}
}
if = {
limit = {
has_relation_potential_friend = scope:vassal
}
random = {
chance = 50
save_scope_value_as = {
name = gain_friendship
value = yes
}
}
}
else = {
set_relation_potential_friend = scope:vassal
random = {
#Tiny chance that it jumps straight into friendship
chance = 10
save_scope_value_as = {
name = gain_friendship
value = yes
}
}
}
}
}
}
option = {
name = yearly.3012.a
trigger = {
exists = scope:gain_friendship
}
exclusive = yes
scope:liege = {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 30
}
add_opinion = {
target = scope:vassal
modifier = impressed_opinion
opinion = 30
}
}
set_relation_friend = { reason = friend_feast_for_liege target = scope:vassal involved_character = scope:liege }
}
option = {
name = yearly.3012.b
scope:liege = {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 30
}
add_opinion = {
target = scope:vassal
modifier = impressed_opinion
opinion = 30
}
}
reverse_add_opinion = {
target = scope:vassal
modifier = friendliness_opinion
opinion = 15
}
hidden_effect = {
add_opinion = {
target = scope:vassal
modifier = friendliness_opinion
opinion = 15
}
}
}
}
#Limited Success
yearly.3013 = {
type = character_event
title = yearly.3011.t
desc = yearly.3013.desc
left_portrait = scope:liege
right_portrait = scope:vassal
theme = diplomacy
trigger = {
scope:liege = {
basic_is_available_ai = yes
}
scope:vassal = {
is_alive = yes
}
}
immediate = {
hidden_effect = {
if = {
limit = {
NOT = {
has_relation_friend = scope:vassal
}
}
if = {
limit = {
has_relation_potential_friend = scope:vassal
}
random = {
chance = 30
save_scope_value_as = {
name = gain_friendship
value = yes
}
}
}
else = {
set_relation_potential_friend = scope:vassal
random = {
chance = 5
save_scope_value_as = {
name = gain_friendship
value = yes
}
}
}
}
}
}
option = {
name = yearly.3013.a
trigger = {
exists = scope:gain_friendship
}
exclusive = yes
scope:liege = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
add_opinion = {
target = scope:vassal
modifier = pleased_opinion
opinion = 15
}
}
set_relation_friend = { reason = friend_feast_for_liege target = scope:vassal involved_character = scope:liege }
}
option = {
name = yearly.3013.b
scope:liege = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 15
}
add_opinion = {
target = scope:vassal
modifier = pleased_opinion
opinion = 15
}
}
reverse_add_opinion = {
target = scope:vassal
modifier = friendliness_opinion
opinion = 10
}
hidden_effect = {
add_opinion = {
target = scope:vassal
modifier = friendliness_opinion
opinion = 10
}
}
}
}
#Failure!
yearly.3014 = {
type = character_event
title = yearly.3011.t
desc = yearly.3014.desc
left_portrait = {
character = scope:liege
animation = dismissal
}
right_portrait = scope:vassal
lower_left_portrait = scope:nemesis
theme = diplomacy
trigger = {
scope:liege = {
basic_is_available_ai = yes
}
scope:vassal = {
is_alive = yes
}
}
immediate = {
if = {
limit = {
NOT = {
has_relation_friend = scope:vassal
}
}
if = {
limit = {
has_relation_potential_friend = scope:vassal
}
random = {
chance = 10
save_scope_value_as = {
name = gain_friendship
value = yes
}
}
}
else = {
hidden_effect = {
set_relation_potential_friend = scope:vassal
}
}
}
}
option = {
name = yearly.3014.a
trigger = {
exists = scope:gain_friendship
}
exclusive = yes
scope:liege = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -10
}
add_opinion = {
target = scope:vassal
modifier = disappointed_opinion
opinion = -10
}
}
set_relation_friend = { reason = friend_feast_for_liege target = scope:vassal involved_character = scope:liege }
}
option = {
name = yearly.3014.b
scope:liege = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -10
}
add_opinion = {
target = scope:vassal
modifier = disappointed_opinion
opinion = -10
}
}
reverse_add_opinion = {
target = scope:vassal
modifier = friendliness_opinion
opinion = 5
}
hidden_effect = {
add_opinion = {
target = scope:vassal
modifier = friendliness_opinion
opinion = 5
}
}
}
}
####################
# On Their Deathbed
# by Petter Vilberg
####################
scripted_trigger yearly_3021_deathbed_trigger = {
is_ai = yes
health <= death_chance_dying_health
age >= 45
is_imprisoned = no
OR = {
has_relation_friend = root
court_owner = root
is_close_or_extended_family_of = root
}
reverse_opinion = {
target = root
value > 0
}
opinion = {
target = root
value > 20
}
}
yearly.3021 = {
type = character_event
title = yearly.3021.t
desc = yearly.3021.desc
theme = death
left_portrait = {
character = scope:deathbed_character
animation = personality_compassionate
}
trigger = {
is_ai = no
get_characters_of_interest_trigger = {
LISTNAME = characters
}
any_in_list = {
list = characters
yearly_3021_deathbed_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
any_consort = {
yearly_3021_deathbed_trigger = yes
}
}
modifier = {
add = 1
any_child = {
yearly_3021_deathbed_trigger = yes
}
}
}
immediate = {
get_characters_of_interest_effect = {
LISTNAME = potential_characters
}
random_in_list = {
list = potential_characters
limit = {
yearly_3021_deathbed_trigger = yes
}
weight = {
base = 1
modifier = {
add = 2
is_consort_of = root
}
modifier = {
add = 2
is_child_of = root
}
}
save_scope_as = deathbed_character
}
play_music_cue = "mx_cue_death"
}
option = {
name = yearly.3021.a
add_character_flag = {
flag = knows_of_spouse_death_flag
days = 5
}
scope:deathbed_character = {
death = natural
}
stress_impact = {
base = medium_stress_loss
}
add_piety = medium_piety_gain
}
}
###################
# Getting Ahead
# by Petter Vilberg
###################
scripted_trigger yearly_3031_vassal_trigger = {
is_ai = yes
this != root
highest_held_title_tier = root.highest_held_title_tier
NOR = {
has_relation_rival = root
has_relation_friend = root
has_relation_lover = root
}
}
scripted_trigger yearly_3031_liege_trigger = {
is_ai = yes
any_vassal = {
yearly_3031_vassal_trigger = yes
}
}
yearly.3031 = {
type = character_event
title = yearly.3031.t
desc = {
desc = yearly.3031.desc
triggered_desc = {
trigger = { exists = scope:best_friend }
desc = yearly.3031.friend
}
triggered_desc = {
trigger = { exists = scope:nemesis }
desc = yearly.3031.rival
}
}
left_portrait = liege
lower_left_portrait = scope:best_friend
right_portrait = scope:fellow_vassal
lower_right_portrait = scope:nemesis
theme = intrigue
trigger = {
top_liege != this
is_adult = yes
NOT = { has_character_flag = had_event_yearly_3031 }
NOR = {
has_trait = generous
has_trait = content
}
liege = {
yearly_3031_liege_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_trait = ambitious
}
nemesis_event_weight_modifier = yes
best_friend_event_weight_modifier = yes
}
immediate = {
add_character_flag = {
flag = had_event_yearly_3031
years = 10
}
liege = {
random_vassal = {
limit = {
yearly_3031_vassal_trigger = yes
}
weight = {
base = 1
modifier = {
add = 3
has_relation_potential_rival = root
}
}
save_scope_as = fellow_vassal
}
capital_barony = {
save_scope_as = capital
}
save_scope_as = liege
}
if = {
limit = {
has_relation_potential_rival = scope:fellow_vassal
}
save_scope_value_as = {
name = gain_rival
value = yes
}
}
else = {
hidden_effect = {
random = {
chance = 25
opinion_modifier = {
who = scope:fellow_vassal
opinion_target = root
multiplier = -0.5
}
save_scope_value_as = {
name = gain_rival
value = yes
}
}
}
}
if = {
limit = {
any_relation = {
type = friend
liege ?= root.liege
is_available_ai_adult = yes
}
}
random_relation = {
type = friend
limit = {
liege ?= root.liege
is_available_ai_adult = yes
}
save_scope_as = best_friend
}
}
if = {
limit = {
any_relation = {
type = rival
liege ?= root.liege
is_available_ai_adult = yes
}
}
random_relation = {
type = rival
limit = {
liege ?= root.liege
is_available_ai_adult = yes
}
save_scope_as = nemesis
}
}
}
#Charm liege's pants off
option = {
name = yearly.3031.a
duel = {
target = scope:fellow_vassal
skill = diplomacy
5 = {
desc = yearly.3031.a.best_friend_success
trigger = {
exists = scope:best_friend
}
compare_modifier = {
target = scope:best_friend
value = diplomacy
multiplier = 0.25
}
min = 1
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_prestige = medium_prestige_gain
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.a.best_friend_success
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_prestige = medium_prestige_gain
scope:fellow_vassal = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
stress_impact = {
base = minor_stress_gain
}
}
}
}
}
10 = {
desc = yearly.3031.a.success
compare_modifier = {
value = scope:duel_value
}
min = 2
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_prestige = medium_prestige_gain
scope:fellow_vassal = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -30
}
}
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.a.success
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_prestige = medium_prestige_gain
scope:fellow_vassal = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -30
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
}
}
10 = {
desc = yearly.3031.a.failure
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
}
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.a.failure
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
}
}
5 = {
desc = yearly.3031.a.nemesis_failure
trigger = {
exists = scope:nemesis
}
compare_modifier = {
target = scope:nemesis
value = diplomacy
multiplier = 0.25
}
min = 1
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -20
}
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
}
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.a.nemesis_failure
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -20
}
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
}
}
}
}
#Show that you're more pious
option = {
name = yearly.3031.b
duel = {
target = scope:fellow_vassal
skill = learning
5 = {
desc = yearly.3031.a.best_friend_success
trigger = {
exists = scope:best_friend
}
compare_modifier = {
target = scope:best_friend
value = learning
multiplier = 0.25
}
min = 1
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_piety = medium_piety_gain
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.a.best_friend_success
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_piety = medium_piety_gain
scope:fellow_vassal = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
stress_impact = {
base = minor_stress_gain
}
}
}
}
}
10 = {
desc = yearly.3031.b.success
compare_modifier = {
value = scope:duel_value
}
min = 2
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_piety = medium_piety_gain
scope:fellow_vassal = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -30
}
}
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.b.success
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_piety = medium_piety_gain
scope:fellow_vassal = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -30
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
}
}
10 = {
desc = yearly.3031.b.failure
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
}
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.b.failure
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -15
}
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
}
}
5 = {
desc = yearly.3031.a.nemesis_failure
trigger = {
exists = scope:nemesis
}
compare_modifier = {
target = scope:nemesis
value = learning
multiplier = 0.25
}
min = 1
show_as_tooltip = {
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -20
}
add_piety = medium_piety_loss
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
}
}
hidden_effect = {
send_interface_toast = {
title = yearly.3031.a.nemesis_failure
left_icon = liege
right_icon = scope:fellow_vassal
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -20
}
add_piety = medium_piety_loss
scope:fellow_vassal = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
add_opinion = {
target = root
modifier = respect_opinion
opinion = -15
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = 30
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
}
}
}
}
#Literally charm liege's pants off
option = {
name = yearly.3031.c
trigger = {
might_cheat_on_every_partner_trigger = yes
scope:liege = {
is_attracted_to_gender_of = root
NOT = { has_trait = chaste }
might_cheat_on_every_partner_trigger = yes
}
attraction >= 10
}
custom_tooltip = yearly.3031.c.unlock_tt
show_as_tooltip = {
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
reverse_add_opinion = {
target = liege
modifier = friendliness_opinion
opinion = 20
}
scope:fellow_vassal = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -20
}
}
}
custom_tooltip = yearly.3031.c.consequence
hidden_effect = {
send_interface_toast = {
title = yearly.3031.c.success
left_icon = liege
right_icon = scope:fellow_vassal
if = {
limit = {
can_add_hook = {
type = favor_hook
target = liege
}
}
add_hook = {
type = favor_hook
target = liege
}
}
reverse_add_opinion = {
target = liege
modifier = friendliness_opinion
opinion = 20
}
scope:fellow_vassal = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = -20
}
reverse_add_opinion = {
target = liege
modifier = respect_opinion
opinion = -20
}
}
if = {
limit = {
exists = scope:gain_rival
}
liege = { save_scope_as = relationship_reason_involved_character }
progress_towards_rival_effect = {
REASON = rival_competing_for_liege
CHARACTER = scope:fellow_vassal
OPINION = 0
}
clear_saved_scope = relationship_reason_involved_character
}
else = {
random = {
chance = 60
if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:fellow_vassal }
}
set_relation_potential_rival = scope:fellow_vassal
}
}
}
}
#Try to set up a seduction scheme towards root
liege = {
if = {
limit = {
any_scheme = {
type = seduce
NOT = { scheme_target_character = root }
}
}
random_scheme = {
type = seduce
limit = {
NOT = { scheme_target_character = root }
}
end_scheme = yes
}
}
if = {
limit = {
can_start_scheme = {
target_character = root
type = seduce
}
}
start_scheme = {
target_character = root
type = seduce
}
}
}
}
}
#All vassals should work together
option = {
name = yearly.3031.d
add_character_modifier = {
modifier = yearly_befriending_fellow_vassals_modifier
years = 5
}
}
}
####################
# A Good FaithPracticioner
# by Petter Vilberg
####################
yearly.3040 = {
type = character_event
title = yearly.3040.t
desc = yearly.3040.desc
left_portrait = root
right_portrait = scope:religious_head
theme = faith
trigger = {
is_landed = yes # Thematically landed
piety_level >= 2
NOT = { has_character_flag = had_event_yearly_3040 }
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = {
flag = had_event_yearly_3040
years = 10
}
if = {
limit = {
exists = faith.religious_head
faith.religious_head != root
}
faith.religious_head = { save_scope_as = religious_head }
}
play_music_cue = "mx_cue_general_crusade_event_2"
}
#Spread word of my piety far and wide
option = {
name = yearly.3040.a
add_piety = minor_piety_loss
add_prestige = medium_prestige_gain
}
#Maybe I have been a little too lenient on the religious authorities...
option = {
name = yearly.3040.b
add_piety = medium_piety_loss
add_treasury_or_gold = medium_treasury_or_gold_value
}
#The FaithHead must surely appreciate my dedication
option = {
name = yearly.3040.c
trigger = {
exists = scope:religious_head
}
scope:religious_head = {
add_opinion = {
target = root
modifier = pious_opinion
opinion = 30
}
}
}
#My religious vassals must appreciate it
option = {
name = yearly.3040.d
trigger = {
NOT = { exists = scope:religious_head }
}
add_character_modifier = {
modifier = yearly_pious_liege_modifier
years = 10
}
}
}
##############################
# Chafing Under Secular Laws
# by Petter Vilberg
##############################
scripted_trigger yearly_3041_religious_vassal = {
is_ai = yes
government_has_flag = government_is_theocracy
faith = root.faith
}
#Theocracy vassal requests more lenient contract
yearly.3041 = {
type = letter_event
opening = {
desc = yearly.3041.opening
}
desc = yearly.3041.desc
sender = scope:vassal
trigger = {
NOT = { has_character_flag = had_event_yearly_3041 }
any_vassal = {
yearly_3041_religious_vassal = yes
}
trigger_if = {
limit = { exists = faith.religious_head }
faith.religious_head != root
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = {
flag = had_event_yearly_3041
years = 5
}
random_vassal = {
limit = {
yearly_3041_religious_vassal = yes
}
save_scope_as = vassal
}
if = {
limit = { exists = faith.religious_head }
faith.religious_head = { save_scope_as = religious_head }
}
}
#Reduce taxes
option = {
name = yearly.3041.a
add_piety = medium_piety_gain
add_character_modifier = {
modifier = yearly_reduced_theocracy_tax_modifier
years = 10
}
scope:vassal = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 40
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
}
}
}
#Reduce levies
option = {
name = yearly.3041.b
add_piety = major_piety_gain
add_character_modifier = {
modifier = yearly_reduced_theocracy_levies_modifier
years = 10
}
scope:vassal = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
stress_impact = {
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.5
}
}
}
option = {
name = yearly.3041.c
scope:vassal = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -20
}
}
if = {
limit = { exists = scope:religious_head }
scope:religious_head = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -15
}
}
}
stress_impact = {
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = -1
ai_rationality = 0.5
}
}
}
}
####################
# By Right
# by Petter Vilberg
####################
scripted_trigger yearly_3051_county_trigger = {
tier = tier_county
this != holder.primary_title
NOT = {
root = {
has_claim_on = prev
}
}
}
scripted_trigger yearly_3051_vassal_trigger = {
opinion = {
target = root
value < 0
}
OR = {
NOT = { is_close_or_extended_family_of = root }
opinion = {
target = root
value < -40
}
}
any_held_title = {
yearly_3051_county_trigger = yes
}
NOR = {
has_relation_friend = root
has_relation_lover = root
}
is_ai = yes
}
yearly.3051 = {
type = character_event
title = yearly.3051.t
desc = yearly.3051.desc
theme = vassal
left_portrait = {
character = scope:councillor
animation = personality_rational
}
right_portrait = {
character = scope:vassal
animation = worry
}
trigger = {
NOT = { has_character_flag = had_event_yearly_3051 }
any_vassal = {
yearly_3051_vassal_trigger = yes
trigger_if = {
limit = {
exists = root.cp:councillor_steward
}
NOT = {
this = root.cp:councillor_steward
}
}
}
OR = {
AND = {
exists = cp:councillor_steward
cp:councillor_steward = { is_alive = yes }
}
AND = {
exists = cp:councillor_spouse
cp:councillor_spouse = {
is_performing_council_task = task_manage_domain
}
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = {
flag = had_event_yearly_3051
years = 10
}
random_vassal = {
limit = {
yearly_3051_vassal_trigger = yes
NOT = { this = cp:councillor_steward }
}
random_held_title = {
limit = {
yearly_3051_county_trigger = yes
}
save_scope_as = county
}
save_scope_as = vassal
}
if = {
limit = {
exists = cp:councillor_spouse
cp:councillor_spouse = {
is_performing_council_task = task_manage_domain
}
}
cp:councillor_spouse = {
save_scope_as = councillor
}
}
else = {
cp:councillor_steward = {
save_scope_as = councillor
}
}
hidden_effect = {
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:vassal }
}
if = {
limit = {
has_relation_potential_rival = scope:vassal
}
save_scope_value_as = {
name = becoming_rivals
value = yes
}
}
else = {
random = {
chance = 20
save_scope_value_as = {
name = becoming_rivals
value = yes
}
}
}
}
}
}
option = {
name = yearly.3051.a
add_unpressed_claim = scope:county
reverse_add_opinion = {
target = scope:vassal
modifier = angry_opinion
opinion = -30
}
if = {
limit = {
OR = {
exists = scope:becoming_rivals
has_relation_potential_rival = scope:vassal
}
can_set_relation_rival_trigger = { CHARACTER = scope:vassal }
}
set_relation_rival = {
target = scope:vassal
reason = rival_confiscated_title
}
}
else_if = {
limit = {
can_set_relation_potential_rival_trigger = { CHARACTER = scope:vassal }
}
hidden_effect = {
set_relation_potential_rival = scope:vassal
}
}
else = {
scope:vassal = {
add_opinion = {
target = root
modifier = hate_opinion
opinion = -20
}
}
}
stress_impact = {
generous = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
ai_boldness = 0.5
}
}
}
option = {
name = yearly.3051.b
reverse_add_opinion = {
target = scope:vassal
modifier = grateful_opinion
opinion = 30
}
stress_impact = {
greedy = medium_stress_impact_gain
ambitious = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 1
ai_compassion = 0.5
}
}
}
}
################################
# Cagots
# by Petter Vilberg
################################
scripted_trigger yearly_3061_county_trigger = {
tier = tier_county
title_province = {
geographical_region = special_cagot_region
}
faith = root.faith
}
yearly.3061 = {
type = character_event
title = yearly.3061.t
desc = yearly.3061.desc
theme = realm
override_background = {
reference = terrain_scope
}
left_portrait = {
character = root
triggered_animation = {
trigger = { has_trait = zealous }
animation = rage
}
triggered_animation = {
trigger = {
OR = {
has_trait = paranoid
has_trait = craven
}
}
animation = worry
}
triggered_animation = {
trigger = { always = yes }
animation = disapproval
}
}
trigger = {
is_ai = no
NOT = { exists = global_var:had_cagot_event }
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
any_held_title = {
yearly_3061_county_trigger = yes
}
}
immediate = {
set_global_variable = {
name = had_cagot_event
value = yes
}
random_held_title = {
limit = {
yearly_3061_county_trigger = yes
}
save_scope_as = county
title_province = {
save_scope_as = background_terrain_scope
}
}
}
option = { # Levy a tax, but leave them be
name = yearly.3061.a
trigger = { NOT = { has_trait = lunatic } }
show_as_unavailable = { always = yes }
add_treasury_or_gold = medium_treasury_or_gold_value
add_piety = minor_piety_loss
scope:county = {
add_county_modifier = {
modifier = cagots_left_in_peace_modifier
years = 25
}
}
}
option = { # Separate them out!
name = yearly.3061.b
flavor = yearly.3061.b.flavor
trigger = { NOT = { has_trait = lunatic } }
show_as_unavailable = { always = yes }
remove_treasury_or_gold = medium_treasury_or_gold_value
add_piety = minor_piety_gain
scope:county = {
add_county_modifier = {
modifier = cagots_separated_modifier
years = 100
}
}
}
option = { # Perhaps we could try to live side by side with them?
name = yearly.3061.c
trigger = { has_trait = lunatic }
trait = lunatic_1
trait = lunatic_genetic
add_prestige = minor_prestige_loss
add_character_modifier = {
modifier = lunatic_accepting_of_others_modifier
years = 10
}
}
option = { # Drive them out and seize their possessions!
name = yearly.3061.d
trigger = { has_trait = zealous }
trait = zealous
add_treasury_or_gold = major_treasury_or_gold_value
scope:county = {
change_development_level = -1
change_county_control = 50
}
}
}
#####################################
# The Worst Nightmare of Your Life
# by Petter Vilberg
#####################################
yearly.3071 = {
type = character_event
title = yearly.3071.t
desc = yearly.3071.desc
theme = mental_health
override_background = {
reference = corridor_night
}
left_portrait = {
character = root
animation = fear
}
trigger = {
is_adult = yes
is_ai = no
NOR = {
exists = global_var:had_yearly_3071_nightmare_event
any_secret = {
type = secret_cannibal
}
has_trait = cannibal
}
}
immediate = {
set_global_variable = {
name = had_yearly_3071_nightmare_event
value = yes
}
play_music_cue = "mx_cue_stress"
}
option = { # Pray the nightmares away
name = yearly.3071.a
add_piety = medium_piety_gain
}
option = { # The flesh seemed delicious
name = yearly.3071.b
give_cannibal_secret_or_trait_effect = yes
}
}