3131 lines
69 KiB
Text
3131 lines
69 KiB
Text
namespace = fp3_yearly
|
|
|
|
# Daylight Censors (The Drunkenness of Ali Nushtgin)
|
|
# Go out drunk/high in broad daylight and risk being caught by your liege's censors?
|
|
fp3_yearly.2000 = {
|
|
type = character_event
|
|
title = fp3_yearly.2000.t
|
|
desc = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:out_late_drinking }
|
|
desc = fp3_yearly.2000.desc_drinking
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:out_late_hash }
|
|
desc = fp3_yearly.2000.desc_hashish
|
|
}
|
|
desc = fp3_yearly.2000.desc_warning
|
|
}
|
|
theme = crown
|
|
override_background = {
|
|
reference = alley_day
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
animation = laugh
|
|
}
|
|
right_portrait = {
|
|
character = scope:cautious_vassal
|
|
animation = worry
|
|
}
|
|
cooldown = { years = 10 }
|
|
|
|
trigger = {
|
|
has_fp3_dlc_trigger = yes
|
|
is_landed_or_landless_administrative = yes
|
|
OR = {
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
}
|
|
liege ?= {
|
|
# You have at least one fellow vassal who would partake in alcohol/hashish with you (at least in moderation)
|
|
any_vassal = {
|
|
is_ai = yes
|
|
NOR = {
|
|
this = root
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
# Faith must condemn drunkard/hashishiyah
|
|
faith = {
|
|
religion = religion:islam_religion
|
|
NOR = {
|
|
trait_is_virtue = drunkard
|
|
trait_is_virtue = hashishiyah
|
|
}
|
|
}
|
|
# Liege should not be a hypocrite
|
|
NOR = {
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
}
|
|
# Liege hasn't had the follow-up event in the last 5 years
|
|
NOT = { has_character_flag = had_event_fp3_yearly_2001 }
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Are we out late drinking or hashishing?
|
|
random_list = {
|
|
1 = {
|
|
trigger = {
|
|
has_trait = drunkard
|
|
NOT = { faith = { trait_is_virtue = drunkard } }
|
|
}
|
|
save_scope_value_as = { name = out_late_drinking value = yes }
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = hashishiyah
|
|
NOT = { faith = { trait_is_virtue = hashishiyah } }
|
|
}
|
|
save_scope_value_as = { name = out_late_hash value = yes }
|
|
}
|
|
}
|
|
liege = {
|
|
save_scope_as = prudish_liege
|
|
random_vassal = {
|
|
limit = {
|
|
NOR = {
|
|
this = root
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
save_scope_as = cautious_vassal
|
|
}
|
|
}
|
|
add_stress = minor_stress_impact_loss
|
|
}
|
|
|
|
option = { # Stay inside, be cautious
|
|
name = fp3_yearly.2000.a
|
|
add_prestige = minor_prestige_loss
|
|
stress_impact = {
|
|
arrogant = minor_stress_impact_gain
|
|
impatient = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = { ai_boldness = -0.5 }
|
|
}
|
|
}
|
|
|
|
option = { # Risk going out
|
|
name = fp3_yearly.2000.b
|
|
flavor = fp3_yearly.2000.b_flavor
|
|
if = {
|
|
limit = { scope:prudish_liege = { is_ai = yes } }
|
|
random_list = {
|
|
50 = { # You get away with it
|
|
show_chance = no
|
|
desc = fp3_yearly.2000.b_success
|
|
send_interface_toast = {
|
|
title = fp3_yearly.2000.b_success
|
|
left_icon = root
|
|
}
|
|
}
|
|
50 = { # You get caught and flogged
|
|
show_chance = no
|
|
desc = fp3_yearly.2000.b_failure
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp3_yearly.2000.b_failure
|
|
left_icon = root
|
|
increase_wounds_effect = { REASON = flogged_by_censors }
|
|
}
|
|
hidden_effect = {
|
|
add_opinion = {
|
|
modifier = fp3_flogged_me
|
|
target = scope:prudish_liege
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# If liege is player, then trigger event for them to decide what to do with this uppity vassal
|
|
else = {
|
|
show_as_tooltip = {
|
|
random_list = {
|
|
# This is a tooltip-only version of the above to communicate the possible consequences of this option
|
|
1 = {
|
|
show_chance = no
|
|
desc = fp3_yearly.2000.b_success
|
|
}
|
|
1 = {
|
|
show_chance = no
|
|
desc = fp3_yearly.2000.b_failure
|
|
increase_wounds_effect = { REASON = flogged_by_censors }
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = intoxicated
|
|
scope:prudish_liege = { trigger_event = fp3_yearly.2001 }
|
|
}
|
|
stress_impact = {
|
|
craven = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = { ai_boldness = 0.5 }
|
|
# This option is more interesting for players, so make AI attempt it more often if the liege is a player
|
|
modifier = {
|
|
scope:prudish_liege = { is_ai = no }
|
|
add = 100
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger fp3_yearly_2001_is_valid_druggie = {
|
|
is_available_ai_adult = yes
|
|
is_of_major_interest_to_root_trigger = yes
|
|
OR = {
|
|
has_trait = hashishiyah
|
|
has_trait = drunkard
|
|
}
|
|
NOT = { has_trait = craven }
|
|
}
|
|
|
|
# Public Intoxication
|
|
# Your vassal/courtier/family is drunk in broad daylight, have them flogged or no?
|
|
fp3_yearly.2001 = {
|
|
type = character_event
|
|
title = fp3_yearly.2001.t
|
|
desc = {
|
|
desc = fp3_yearly.2001.desc_intro
|
|
triggered_desc = {
|
|
trigger = { exists = scope:out_late_drinking }
|
|
desc = fp3_yearly.2001.desc_drinking
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:out_late_hash }
|
|
desc = fp3_yearly.2001.desc_hashish
|
|
}
|
|
desc = fp3_yearly.2001.desc_outro
|
|
}
|
|
theme = crown
|
|
override_background = {
|
|
reference = alley_day
|
|
}
|
|
left_portrait = {
|
|
character = scope:intoxicated
|
|
animation = laugh
|
|
}
|
|
|
|
trigger = {
|
|
has_fp3_dlc_trigger = yes
|
|
is_landed_or_landless_administrative = yes
|
|
# This event can be fired from either the yearly pulse or fp3_yearly.2000
|
|
# If the former is true, then the offending druggie does not yet exist and we need to find one
|
|
OR = {
|
|
exists = scope:intoxicated
|
|
AND = {
|
|
NOT = { has_character_flag = had_event_fp3_yearly_2001 }
|
|
religion = religion:islam_religion
|
|
NOR = {
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
}
|
|
OR = {
|
|
any_vassal = { fp3_yearly_2001_is_valid_druggie = yes }
|
|
any_courtier_or_guest = { fp3_yearly_2001_is_valid_druggie = yes }
|
|
any_consort = { fp3_yearly_2001_is_valid_druggie = yes }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
save_scope_as = prudish_liege
|
|
if = {
|
|
limit = { NOT = { exists = scope:intoxicated } }
|
|
# 10 year cooldown if fired from yearly pulse
|
|
add_character_flag = {
|
|
flag = had_event_fp3_yearly_2001
|
|
years = 10
|
|
}
|
|
every_vassal = {
|
|
limit = { fp3_yearly_2001_is_valid_druggie = yes }
|
|
add_to_temporary_list = valid_druggies
|
|
}
|
|
every_courtier_or_guest = {
|
|
limit = { fp3_yearly_2001_is_valid_druggie = yes }
|
|
add_to_temporary_list = valid_druggies
|
|
}
|
|
every_consort = {
|
|
limit = { fp3_yearly_2001_is_valid_druggie = yes }
|
|
add_to_temporary_list = valid_druggies
|
|
}
|
|
random_in_list = {
|
|
list = valid_druggies
|
|
save_scope_as = intoxicated
|
|
}
|
|
random_list = {
|
|
1 = {
|
|
trigger = {
|
|
scope:intoxicated = {
|
|
has_trait = drunkard
|
|
NOT = { faith = { trait_is_virtue = drunkard } }
|
|
}
|
|
}
|
|
save_scope_value_as = { name = out_late_drinking value = yes }
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
scope:intoxicated = {
|
|
has_trait = hashishiyah
|
|
NOT = { faith = { trait_is_virtue = hashishiyah } }
|
|
}
|
|
}
|
|
save_scope_value_as = { name = out_late_hash value = yes }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Flog them
|
|
name = fp3_yearly.2001.a
|
|
scope:intoxicated = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp3_yearly.2000.b_failure
|
|
left_icon = root
|
|
increase_wounds_effect = { REASON = flogged_by_censors }
|
|
}
|
|
}
|
|
add_piety = minor_piety_gain
|
|
reverse_add_opinion = {
|
|
target = scope:intoxicated
|
|
modifier = fp3_flogged_me
|
|
}
|
|
if = {
|
|
limit = { has_relation_friend = scope:intoxicated }
|
|
remove_relation_friend = scope:intoxicated
|
|
}
|
|
stress_impact = {
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
forgiving = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = { ai_zeal = 0.5 }
|
|
}
|
|
}
|
|
|
|
option = { # Ignore them
|
|
name = fp3_yearly.2001.b
|
|
add_piety = medium_piety_loss
|
|
scope:intoxicated = {
|
|
send_interface_toast = {
|
|
title = fp3_yearly.2000.b_success
|
|
left_icon = root
|
|
}
|
|
}
|
|
stress_impact = {
|
|
zealous = medium_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = { ai_energy = -0.5 }
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_effect fp3_yearly_2010_create_baker_effect = {
|
|
create_character = {
|
|
age = { 35 50 }
|
|
location = root.capital_province
|
|
gender_female_chance = root_faith_dominant_gender_female_chance
|
|
faith = root.capital_province.faith
|
|
culture = scope:bakers_county.culture
|
|
# Personality Traits
|
|
trait = greedy
|
|
random_traits_list = {
|
|
count = 2
|
|
brave = {}
|
|
craven = {}
|
|
wrathful = {}
|
|
lustful = {}
|
|
ambitious = {}
|
|
diligent = {}
|
|
stubborn = {}
|
|
vengeful = {}
|
|
deceitful = {}
|
|
arrogant = {}
|
|
arbitrary = {}
|
|
impatient = {}
|
|
gluttonous = {}
|
|
}
|
|
random_traits_list = {
|
|
count = 1
|
|
education_diplomacy_2 = {}
|
|
education_stewardship_2 = {}
|
|
education_stewardship_3 = {}
|
|
education_stewardship_4 = {}
|
|
education_learning_1 = {}
|
|
education_learning_2 = {}
|
|
}
|
|
# Flavor Traits
|
|
trait = administrator
|
|
random_traits_list = {
|
|
count = { 0 2 }
|
|
gout_ridden = {}
|
|
leper = {}
|
|
lovers_pox = {}
|
|
pneumonic = {}
|
|
dwarf = {}
|
|
giant = {}
|
|
hunchbacked = {}
|
|
weak = {}
|
|
clubfooted = {}
|
|
lisping = {}
|
|
stuttering = {}
|
|
wheezing = {}
|
|
albino = {}
|
|
scaly = {}
|
|
spindly = {}
|
|
maimed = {}
|
|
one_eyed = {}
|
|
one_legged = {}
|
|
disfigured = {}
|
|
blind = {}
|
|
}
|
|
random_traits = yes
|
|
diplomacy = { 8 13 }
|
|
martial = { 6 10 }
|
|
stewardship = { 8 13 }
|
|
intrigue = { 8 13 }
|
|
learning = { 13 18 }
|
|
prowess = { 3 8 }
|
|
after_creation = {
|
|
random_list = {
|
|
50 = {
|
|
# Character is of average weight, nothing happens
|
|
}
|
|
25 = {
|
|
change_current_weight = 25
|
|
}
|
|
25 = {
|
|
change_current_weight = 75
|
|
}
|
|
}
|
|
add_character_flag = peasant_outfit
|
|
}
|
|
save_scope_as = greedy_baker
|
|
}
|
|
|
|
}
|
|
|
|
# Maunds of Wheat (The Bakers of Ghaznain)
|
|
# Your royal baker is hoarding bread, how shall you deal with them?
|
|
fp3_yearly.2010 = {
|
|
type = court_event
|
|
title = fp3_yearly.2010.t
|
|
desc = fp3_yearly.2010.desc
|
|
theme = court
|
|
cooldown = { years = 5 }
|
|
court_scene = {
|
|
button_position_character = root
|
|
roles = {
|
|
scope:greedy_baker = {
|
|
group = event_group
|
|
}
|
|
root = {
|
|
group = event_group
|
|
animation = personality_rational
|
|
}
|
|
scope:random_courtier = {
|
|
group = event_group
|
|
animation = beg
|
|
}
|
|
}
|
|
}
|
|
|
|
trigger = {
|
|
has_fp3_dlc_trigger = yes
|
|
has_royal_court = yes
|
|
has_court_event_flag = no
|
|
is_available = yes
|
|
government_has_flag = government_is_clan
|
|
any_sub_realm_county = {
|
|
NOR = {
|
|
has_county_modifier = fp3_generous_bakers_modifier
|
|
has_county_modifier = fp3_wheat_shortage_modifier
|
|
}
|
|
}
|
|
any_courtier = {
|
|
is_available_ai_adult = yes
|
|
has_court_event_flag = no
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
court_event_character_flag_effect = yes
|
|
random_courtier = {
|
|
limit = {
|
|
is_available_ai_adult = yes
|
|
has_court_event_flag = no
|
|
}
|
|
save_scope_as = random_courtier
|
|
court_event_character_flag_effect = yes
|
|
}
|
|
random_sub_realm_county = {
|
|
save_scope_as = bakers_county
|
|
}
|
|
fp3_yearly_2010_create_baker_effect = yes
|
|
scope:greedy_baker = { court_event_character_flag_effect = yes }
|
|
}
|
|
|
|
option = { # Trample to death
|
|
name = {
|
|
text = {
|
|
desc = fp3_yearly.2010.a
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { culture = { has_innovation = innovation_elephantry } }
|
|
desc = fp3_yearly.2010.a_elephants
|
|
}
|
|
triggered_desc = {
|
|
trigger = { culture = { has_innovation = innovation_elephantry } }
|
|
desc = fp3_yearly.2010.a_camels
|
|
}
|
|
desc = fp3_yearly.2010.a_horses
|
|
}
|
|
}
|
|
}
|
|
flavor = fp3_yearly.2010.a.tt
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_gain
|
|
just = minor_stress_impact_loss
|
|
sadistic = minor_stress_impact_loss
|
|
}
|
|
scope:greedy_baker = {
|
|
death = {
|
|
death_reason = death_trampled
|
|
killer = root
|
|
}
|
|
}
|
|
add_prestige = minor_prestige_loss
|
|
remove_treasury_or_gold = minor_treasury_or_gold_value
|
|
scope:bakers_county = {
|
|
add_county_modifier = {
|
|
modifier = fp3_generous_bakers_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Recruit
|
|
name = fp3_yearly.2010.b
|
|
stress_impact = {
|
|
just = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
arbitrary = minor_stress_impact_loss
|
|
}
|
|
add_courtier = scope:greedy_baker
|
|
scope:bakers_county = {
|
|
add_county_modifier = {
|
|
modifier = fp3_wheat_shortage_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 10
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Take the extra money
|
|
name = fp3_yearly.2010.c
|
|
add_treasury_or_gold = medium_treasury_or_gold_value
|
|
stress_impact = {
|
|
just = medium_stress_impact_gain
|
|
generous = medium_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_loss
|
|
}
|
|
scope:bakers_county = {
|
|
add_county_modifier = {
|
|
modifier = fp3_wheat_shortage_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 10
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = generous
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
after = {
|
|
clear_court_event_participation = yes
|
|
scope:greedy_baker = { clear_court_event_participation = yes }
|
|
scope:random_courtier = { clear_court_event_participation = yes }
|
|
}
|
|
}
|
|
|
|
# Maunds of Wheat (Non-Royal Court Version)
|
|
fp3_yearly.2011 = {
|
|
type = character_event
|
|
title = fp3_yearly.2010.t
|
|
desc = fp3_yearly.2010.desc
|
|
theme = crown
|
|
left_portrait = {
|
|
character = root
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:random_courtier
|
|
animation = beg
|
|
}
|
|
lower_left_portrait = scope:greedy_baker
|
|
cooldown = { years = 10 }
|
|
|
|
trigger = {
|
|
has_fp3_dlc_trigger = yes
|
|
government_has_flag = government_is_clan
|
|
highest_held_title_tier >= tier_kingdom
|
|
any_courtier = {
|
|
is_available_ai_adult = yes
|
|
}
|
|
any_sub_realm_county = {
|
|
NOR = {
|
|
has_county_modifier = fp3_generous_bakers_modifier
|
|
has_county_modifier = fp3_wheat_shortage_modifier
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_courtier = {
|
|
limit = {
|
|
is_available_ai_adult = yes
|
|
}
|
|
save_scope_as = random_courtier
|
|
}
|
|
random_sub_realm_county = {
|
|
save_scope_as = bakers_county
|
|
}
|
|
fp3_yearly_2010_create_baker_effect = yes
|
|
}
|
|
|
|
option = { # Trample to death
|
|
name = {
|
|
text = {
|
|
desc = fp3_yearly.2010.a
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { culture = { has_innovation = innovation_elephantry } }
|
|
desc = fp3_yearly.2010.a_elephants
|
|
}
|
|
triggered_desc = {
|
|
trigger = { culture = { has_innovation = innovation_elephantry } }
|
|
desc = fp3_yearly.2010.a_camels
|
|
}
|
|
desc = fp3_yearly.2010.a_horses
|
|
}
|
|
}
|
|
}
|
|
flavor = fp3_yearly.2010.a.tt
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_gain
|
|
just = minor_stress_impact_loss
|
|
sadistic = minor_stress_impact_loss
|
|
}
|
|
scope:greedy_baker = {
|
|
death = { death_reason = death_trampled }
|
|
}
|
|
add_prestige = minor_prestige_loss
|
|
remove_treasury_or_gold = minor_treasury_or_gold_value
|
|
scope:bakers_county = {
|
|
add_county_modifier = {
|
|
modifier = fp3_generous_bakers_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Recruit
|
|
name = fp3_yearly.2010.b
|
|
add_courtier = scope:greedy_baker
|
|
scope:bakers_county = {
|
|
add_county_modifier = {
|
|
modifier = fp3_wheat_shortage_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
stress_impact = {
|
|
just = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
arbitrary = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 10
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Take the extra money
|
|
name = fp3_yearly.2010.c
|
|
add_treasury_or_gold = major_treasury_or_gold_value
|
|
stress_impact = {
|
|
just = medium_stress_impact_gain
|
|
generous = medium_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_loss
|
|
}
|
|
scope:bakers_county = {
|
|
add_county_modifier = {
|
|
modifier = fp3_wheat_shortage_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 10
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = generous
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# This tax collector is guilty of at least one vice condemned of public officials in the Quran
|
|
scripted_trigger fp3_yearly_2020_is_valid_tax_collector = {
|
|
is_available_ai_adult = yes
|
|
OR = {
|
|
AND = {
|
|
has_trait = greedy
|
|
faith = {
|
|
NOR = {
|
|
trait_is_virtue = greedy
|
|
trait_is_sin = generous
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
has_trait = arbitrary
|
|
faith = {
|
|
NOR = {
|
|
trait_is_virtue = arbitrary
|
|
trait_is_sin = just
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
has_trait = cynical
|
|
faith = {
|
|
NOR = {
|
|
trait_is_virtue = cynical
|
|
trait_is_sin = zealous
|
|
}
|
|
}
|
|
}
|
|
AND = {
|
|
has_trait = contrite
|
|
NOT = { faith = { trait_is_virtue = contrite } }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Set the Scale: Vassal Version
|
|
# The tax collector in charge of you is corrupt, shall you petition to your liege to have them removed?
|
|
fp3_yearly.2020 = {
|
|
type = character_event
|
|
title = fp3_yearly.2020.t
|
|
desc = {
|
|
desc = fp3_yearly.2020.desc_intro
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_greedy }
|
|
desc = fp3_yearly.2020.desc_greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_arbitrary }
|
|
desc = fp3_yearly.2020.desc_arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_cynical }
|
|
desc = fp3_yearly.2020.desc_cynical
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_contrite }
|
|
desc = fp3_yearly.2020.desc_contrite
|
|
}
|
|
}
|
|
desc = fp3_yearly.2020.desc_outro
|
|
}
|
|
theme = stewardship
|
|
override_background = {
|
|
reference = courtyard
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
animation = anger
|
|
}
|
|
right_portrait = {
|
|
character = scope:sinful_tax_collector
|
|
animation = shock
|
|
}
|
|
lower_left_portrait = scope:liege
|
|
|
|
trigger = {
|
|
is_landed = yes
|
|
has_religion = religion:islam_religion
|
|
piety_level > low_negative_piety_level
|
|
liege ?= {
|
|
has_religion = religion:islam_religion
|
|
employs_tax_collector = yes
|
|
any_tax_collector = {
|
|
any_tax_collector_vassal = { this = root }
|
|
fp3_yearly_2020_is_valid_tax_collector = yes
|
|
}
|
|
# Liege has not been bothered about this tax collector in the last 5 years
|
|
NOT = { has_character_flag = had_event_fp3_yearly_2021 }
|
|
}
|
|
}
|
|
|
|
# This event is more likely to trigger if you are your liege's steward (because the effects are more interesting)
|
|
weight_multiplier = {
|
|
modifier = {
|
|
add = 0.5
|
|
has_council_position = councillor_steward
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
liege = {
|
|
save_scope_as = liege
|
|
add_character_flag = {
|
|
flag = had_event_fp3_yearly_2021
|
|
years = 5
|
|
}
|
|
random_tax_collector = {
|
|
limit = {
|
|
any_tax_collector_vassal = { this = root }
|
|
fp3_yearly_2020_is_valid_tax_collector = yes
|
|
}
|
|
save_scope_as = sinful_tax_collector
|
|
# Choose which flaw to criticize in this tax collector
|
|
random_list = {
|
|
1 = {
|
|
trigger = {
|
|
has_trait = greedy
|
|
NOT = { faith = { trait_is_virtue = greedy } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_greedy
|
|
value = yes
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = arbitrary
|
|
NOT = { faith = { trait_is_virtue = arbitrary } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_arbitrary
|
|
value = yes
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = cynical
|
|
NOT = { faith = { trait_is_virtue = cynical } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_cynical
|
|
value = yes
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = contrite
|
|
NOT = { faith = { trait_is_virtue = contrite } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_contrite
|
|
value = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Petition to have them removed
|
|
name = fp3_yearly.2020.a
|
|
reverse_add_opinion = {
|
|
target = scope:sinful_tax_collector
|
|
modifier = fp3_denounced_me
|
|
}
|
|
if = { #If Liege is AI we can fire the tax collector here
|
|
limit = { scope:liege = { is_ai = yes } }
|
|
progress_towards_rival_effect = {
|
|
CHARACTER = scope:sinful_tax_collector
|
|
REASON = rival_tried_to_remove_tax_collector
|
|
OPINION = 0
|
|
}
|
|
duel = {
|
|
skill = learning
|
|
value = scope:liege.learning
|
|
|
|
7 = { # Tax collector is removed forever
|
|
desc = fp3_yearly.2020.a_success
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 0.25
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp3_yearly.2020.a_success
|
|
left_icon = root
|
|
right_icon = scope:sinful_tax_collector
|
|
add_piety = medium_piety_gain
|
|
scope:liege = { fire_tax_collector = scope:sinful_tax_collector }
|
|
scope:sinful_tax_collector = {
|
|
add_character_modifier = fp3_incapable_tax_collector_modifier
|
|
}
|
|
}
|
|
}
|
|
3 = { # Tax collector starts problems with you
|
|
desc = fp3_yearly.2020.a_failure
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -0.25
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp3_yearly.2020.a_failure
|
|
left_icon = root
|
|
right_icon = scope:sinful_tax_collector
|
|
if = {
|
|
limit = { has_council_position = councillor_steward }
|
|
custom_tooltip = fp3_yearly.2020.a_failure.tt
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_council_position = councillor_steward
|
|
# Don't give the liege two stories of the same type
|
|
scope:liege = { NOT = { any_owned_story = { type = story_cycle_tax_rivalry } } }
|
|
}
|
|
# Create the tax rivalry story, if applicable
|
|
scope:liege = {
|
|
set_variable = {
|
|
name = story_steward
|
|
value = root
|
|
days = 1
|
|
}
|
|
set_variable = {
|
|
name = story_tax_collector
|
|
value = scope:sinful_tax_collector
|
|
days = 1
|
|
}
|
|
create_tax_rivalry_story_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = { #If Liege is not AI this is resolved in an event for liege
|
|
show_as_tooltip = {
|
|
# The actual progress effect will happen in fp3_yearly.2021
|
|
# This is so that the liege's tooltip accurately reflects on the depth of rivalry
|
|
progress_towards_rival_effect = {
|
|
CHARACTER = scope:sinful_tax_collector
|
|
REASON = rival_tried_to_remove_tax_collector
|
|
OPINION = 0
|
|
}
|
|
random_list = {
|
|
1 = {
|
|
show_chance = no
|
|
desc = fp3_yearly.2020.a_success
|
|
fire_tax_collector = scope:sinful_tax_collector
|
|
scope:sinful_tax_collector = {
|
|
add_character_modifier = fp3_incapable_tax_collector_modifier
|
|
}
|
|
}
|
|
1 = {
|
|
show_chance = no
|
|
desc = fp3_yearly.2020.a_failure
|
|
custom_tooltip = fp3_yearly.2020.a_failure.tt
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = denouncing_taxpayer
|
|
scope:liege = { trigger_event = fp3_yearly.2021 }
|
|
}
|
|
stress_impact = {
|
|
shy = minor_stress_impact_gain
|
|
generous = minor_stress_impact_gain
|
|
craven = minor_stress_impact_gain
|
|
just = minor_stress_impact_loss
|
|
zealous = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = {
|
|
ai_sociability = 1
|
|
ai_zeal = 0.25
|
|
ai_greed = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Publicly expose them (causes their learning to tank, meaning they have less aptitude and you will owe fewer taxes to your liege)
|
|
name = fp3_yearly.2020.b
|
|
reverse_add_opinion = {
|
|
target = scope:sinful_tax_collector
|
|
modifier = fp3_denounced_me
|
|
}
|
|
progress_towards_rival_effect = {
|
|
CHARACTER = scope:sinful_tax_collector
|
|
REASON = rival_tried_to_remove_tax_collector
|
|
OPINION = 0
|
|
}
|
|
# Tank the collector's aptitude and inform the liege
|
|
save_scope_as = denouncing_taxpayer
|
|
add_piety = minor_piety_gain
|
|
liege = {
|
|
send_interface_message = {
|
|
type = event_tax_collector_bad_with_text
|
|
title = fp3_yearly.2020.b.t
|
|
desc = fp3_yearly.2020.b.desc
|
|
scope:sinful_tax_collector = {
|
|
add_character_modifier = {
|
|
modifier = fp3_impious_tax_collector_modifier
|
|
years = 30
|
|
}
|
|
}
|
|
left_icon = scope:sinful_tax_collector
|
|
right_icon = scope:denouncing_taxpayer
|
|
}
|
|
}
|
|
stress_impact = {
|
|
shy = medium_stress_impact_gain
|
|
zealous = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
option = { # Pray for their soul (opt-out)
|
|
name = fp3_yearly.2020.c
|
|
add_piety = minor_piety_gain
|
|
stress_impact = {
|
|
greedy = medium_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
arrogant = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = arrogant
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Set the Scale: Liege Version
|
|
# One of your tax collectors is corrupt and your vassal is demanding you fire them
|
|
fp3_yearly.2021 = {
|
|
type = character_event
|
|
title = fp3_yearly.2020.t
|
|
desc = {
|
|
desc = fp3_yearly.2021.desc_intro
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_greedy }
|
|
desc = fp3_yearly.2021.desc_greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_arbitrary }
|
|
desc = fp3_yearly.2021.desc_arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_cynical }
|
|
desc = fp3_yearly.2021.desc_cynical
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:tax_collector_is_contrite }
|
|
desc = fp3_yearly.2021.desc_contrite
|
|
}
|
|
}
|
|
desc = fp3_yearly.2021.desc_outro
|
|
}
|
|
theme = stewardship
|
|
|
|
|
|
left_portrait = {
|
|
character = scope:denouncing_taxpayer
|
|
animation = anger
|
|
}
|
|
right_portrait = {
|
|
character = scope:sinful_tax_collector
|
|
animation = shame
|
|
}
|
|
|
|
cooldown = { years = 5 }
|
|
|
|
trigger = {
|
|
has_religion = religion:islam_religion
|
|
employs_tax_collector = yes
|
|
any_tax_collector = {
|
|
any_tax_collector_vassal = {
|
|
has_religion = religion:islam_religion
|
|
piety_level > low_negative_piety_level
|
|
is_available_adult = yes
|
|
trigger_if = {
|
|
limit = { NOT = { exists = scope:denouncing_taxpayer } } # If this event isn't a redirect from fp3_yearly.2020, then the featured taxpayer must be an ai
|
|
is_ai = yes
|
|
NOT = { has_trait = shy } # B/c shy vassals are unlikely to take the denounce option in fp3_yearly.2020.a
|
|
}
|
|
}
|
|
fp3_yearly_2020_is_valid_tax_collector = yes
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
if = {
|
|
limit = { NOT = { exists = scope:sinful_tax_collector } }
|
|
random_tax_collector = {
|
|
limit = {
|
|
any_tax_collector_vassal = {
|
|
has_religion = religion:islam_religion
|
|
piety_level > low_negative_piety_level
|
|
is_available_adult = yes
|
|
trigger_if = {
|
|
limit = { NOT = { exists = scope:denouncing_taxpayer } } # If this event isn't a redirect from fp3_yearly.2020, then the featured taxpayer must be an ai
|
|
is_ai = yes
|
|
NOT = { has_trait = shy } # B/c shy vassals are unlikely to take the denounce option in fp3_yearly.2020.a
|
|
}
|
|
}
|
|
fp3_yearly_2020_is_valid_tax_collector = yes
|
|
}
|
|
save_scope_as = sinful_tax_collector
|
|
# Choose which flaw to criticize in this tax collector
|
|
random_list = {
|
|
1 = {
|
|
trigger = {
|
|
has_trait = greedy
|
|
NOT = { faith = { trait_is_virtue = greedy } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_greedy
|
|
value = yes
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = arbitrary
|
|
NOT = { faith = { trait_is_virtue = arbitrary } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_arbitrary
|
|
value = yes
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = cynical
|
|
NOT = { faith = { trait_is_virtue = cynical } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_cynical
|
|
value = yes
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = {
|
|
has_trait = contrite
|
|
NOT = { faith = { trait_is_virtue = contrite } }
|
|
}
|
|
save_scope_value_as = {
|
|
name = tax_collector_is_contrite
|
|
value = yes
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { NOT = { exists = scope:denouncing_taxpayer } }
|
|
random_tax_collector_vassal = {
|
|
limit = {
|
|
is_available_ai_adult = yes
|
|
has_religion = religion:islam_religion
|
|
piety_level > low_negative_piety_level
|
|
NOT = { has_trait = shy }
|
|
}
|
|
# More likely to choose a zealous denouncer
|
|
weight = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.1
|
|
}
|
|
}
|
|
save_scope_as = denouncing_taxpayer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:denouncing_taxpayer = {
|
|
assign_quirk_effect = yes
|
|
}
|
|
scope:denouncing_taxpayer = {
|
|
progress_towards_rival_effect = {
|
|
CHARACTER = scope:sinful_tax_collector
|
|
REASON = rival_tried_to_remove_tax_collector
|
|
OPINION = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Fire the tax collector
|
|
name = fp3_yearly.2021.a
|
|
add_piety = minor_piety_gain
|
|
fire_tax_collector = scope:sinful_tax_collector
|
|
scope:sinful_tax_collector = {
|
|
add_character_modifier = fp3_incapable_tax_collector_modifier
|
|
}
|
|
scope:denouncing_taxpayer = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = pleased_opinion
|
|
opinion = 20
|
|
}
|
|
# If this is a follow-up from fp3_yearly.2020, then send that player a toast
|
|
if = {
|
|
limit = { is_ai = no }
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp3_yearly.2020.a_success
|
|
left_icon = root
|
|
right_icon = scope:sinful_tax_collector
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { #Complainer is a house member - collector is not
|
|
exists = scope:denouncing_taxpayer.house
|
|
scope:denouncing_taxpayer.house = house
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:sinful_tax_collector.house
|
|
}
|
|
scope:sinful_tax_collector.house != house
|
|
}
|
|
}
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = root
|
|
TARGET = scope:denouncing_taxpayer
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_tax_collector_fired_on_request.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { #Complainer is not a clan member but the tax collector is
|
|
exists = scope:sinful_tax_collector.house
|
|
scope:sinful_tax_collector.house = house
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:denouncing_taxpayer.house
|
|
}
|
|
scope:denouncing_taxpayer.house != house
|
|
}
|
|
}
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = root
|
|
TARGET = scope:sinful_tax_collector
|
|
VALUE = minor_unity_loss
|
|
DESC = clan_unity_tax_collector_fired.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
} #If neither is of your house, or if both are we don't adjust unity.
|
|
|
|
stress_impact = {
|
|
greedy = medium_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
arrogant = minor_stress_impact_gain
|
|
just = minor_stress_impact_loss
|
|
zealous = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = arrogant
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = callous
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Ignore
|
|
name = fp3_yearly.2021.b
|
|
add_piety = medium_piety_loss
|
|
scope:denouncing_taxpayer = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
if = {
|
|
limit = { is_ai = no }
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp3_yearly.2020.a_failure
|
|
left_icon = root
|
|
right_icon = scope:sinful_tax_collector
|
|
custom_tooltip = fp3_yearly.2020.a_failure.tt
|
|
}
|
|
}
|
|
}
|
|
# Create the tax rivalry story if the denouncer is your steward
|
|
if = {
|
|
limit = {
|
|
scope:denouncing_taxpayer = { has_council_position = councillor_steward }
|
|
# Don't give yourself two stories of the same type
|
|
NOT = { any_owned_story = { type = story_cycle_tax_rivalry } }
|
|
}
|
|
set_variable = {
|
|
name = story_steward
|
|
value = scope:denouncing_taxpayer
|
|
days = 30
|
|
}
|
|
set_variable = {
|
|
name = story_tax_collector
|
|
value = scope:sinful_tax_collector
|
|
days = 30
|
|
}
|
|
create_tax_rivalry_story_effect = yes
|
|
}
|
|
if = {
|
|
limit = { #Complainer is a house member - collector is not
|
|
exists = scope:denouncing_taxpayer.house
|
|
scope:denouncing_taxpayer.house = house
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:sinful_tax_collector.house
|
|
}
|
|
scope:sinful_tax_collector.house != house
|
|
}
|
|
}
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = root
|
|
TARGET = scope:denouncing_taxpayer
|
|
VALUE = minor_unity_loss
|
|
DESC = clan_unity_ignore_tax_collector_complaint.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { #Complainer is not a clan member but the tax collector is
|
|
exists = scope:sinful_tax_collector.house
|
|
scope:sinful_tax_collector.house = house
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:denouncing_taxpayer.house
|
|
}
|
|
scope:denouncing_taxpayer.house != house
|
|
}
|
|
}
|
|
add_clan_unity_interaction_effect = {
|
|
CHARACTER = root
|
|
TARGET = scope:sinful_tax_collector
|
|
VALUE = minor_unity_gain
|
|
DESC = clan_unity_protected_tax_collector_against_complaint.desc
|
|
REVERSE_NON_HOUSE_TARGET = no
|
|
}
|
|
} #If neither is of your house, or if both are we don't adjust unity.
|
|
|
|
stress_impact = {
|
|
just = medium_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
arrogant = minor_stress_impact_loss
|
|
greedy = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# A Beautiful Rule (The Ugliness of Sultan Mahmud)
|
|
# You are ugly, but your courtier suggests your beautiful actions are more important to your rule
|
|
#Triggers shortly after succession
|
|
fp3_yearly.2030 = {
|
|
type = character_event
|
|
title = fp3_yearly.2030.t
|
|
desc = {
|
|
desc = fp3_yearly.2030.desc_intro
|
|
# Look in the mirror at your "ugly" feature
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_beauty_bad }
|
|
desc = fp3_yearly.2030.desc_beauty_bad
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_spindly }
|
|
desc = fp3_yearly.2030.desc_spindly
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_disfigured }
|
|
desc = fp3_yearly.2030.desc_disfigured
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_scaly }
|
|
desc = fp3_yearly.2030.desc_scaly
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_albino }
|
|
desc = fp3_yearly.2030.desc_albino
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_hunchbacked }
|
|
desc = fp3_yearly.2030.desc_hunchbacked
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_character_flag = fp3_yearly_2030_inbred }
|
|
desc = fp3_yearly.2030.desc_inbred
|
|
}
|
|
}
|
|
desc = fp3_yearly.2030.desc_outro
|
|
}
|
|
theme = crown
|
|
override_background = {
|
|
reference = sitting_room
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
animation = worry
|
|
}
|
|
right_portrait = {
|
|
character = scope:reassuring_courtier
|
|
animation = personality_compassionate
|
|
}
|
|
|
|
cooldown = { years = 100 }
|
|
|
|
trigger = {
|
|
has_fp3_dlc_trigger = yes
|
|
is_available_adult = yes
|
|
is_landed = yes
|
|
OR = {
|
|
has_trait = beauty_bad
|
|
has_trait = spindly
|
|
has_trait = disfigured
|
|
has_trait = scaly
|
|
has_trait = albino
|
|
has_trait = hunchbacked
|
|
has_trait = inbred
|
|
}
|
|
NOR = {
|
|
has_trait = callous
|
|
has_trait = sadistic
|
|
has_trait = beauty_good
|
|
}
|
|
faith = {
|
|
trait_is_virtue = generous
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Figure out which ugliness we will pick at
|
|
random_list = {
|
|
1 = {
|
|
trigger = { has_trait = beauty_bad }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_beauty_bad
|
|
days = 1
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = { has_trait = spindly }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_spindly
|
|
days = 1
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = { has_trait = disfigured }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_disfigured
|
|
days = 1
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = { has_trait = scaly }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_scaly
|
|
days = 1
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = { has_trait = albino }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_albino
|
|
days = 1
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = { has_trait = hunchbacked }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_hunchbacked
|
|
days = 1
|
|
}
|
|
}
|
|
1 = {
|
|
trigger = { has_trait = inbred }
|
|
add_character_flag = {
|
|
flag = fp3_yearly_2030_inbred
|
|
days = 1
|
|
}
|
|
}
|
|
}
|
|
# Figure out which courtier should reassure us
|
|
# If we have a lady in waiting, then use her
|
|
if = {
|
|
limit = {
|
|
employs_court_position = lady_in_waiting_court_position
|
|
is_available_ai_adult = yes
|
|
has_contagious_deadly_disease_trigger = no
|
|
}
|
|
random_court_position_holder = {
|
|
type = lady_in_waiting_court_position
|
|
save_scope_as = reassuring_courtier
|
|
}
|
|
}
|
|
# Otherwise, pick court jester
|
|
else_if = {
|
|
limit = {
|
|
employs_court_position = court_jester_court_position
|
|
is_available_ai_adult = yes
|
|
has_contagious_deadly_disease_trigger = no
|
|
}
|
|
random_court_position_holder = {
|
|
type = court_jester_court_position
|
|
save_scope_as = reassuring_courtier
|
|
}
|
|
}
|
|
# Otherwise, pick some (weighted) rando
|
|
else = {
|
|
random_courtier = {
|
|
limit = {
|
|
is_available_ai_adult = yes
|
|
has_contagious_deadly_disease_trigger = no
|
|
}
|
|
weight = {
|
|
base = 100
|
|
opinion_modifier = {
|
|
opinion_target = root
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
add = 50
|
|
}
|
|
modifier = {
|
|
has_trait = cynical
|
|
add = -50
|
|
}
|
|
modifier = {
|
|
has_trait = generous
|
|
add = 50
|
|
}
|
|
modifier = {
|
|
has_trait = greedy
|
|
add = -50
|
|
}
|
|
}
|
|
save_scope_as = reassuring_courtier
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
option = { # Act generously (even if it is instrumental and not in your nature)
|
|
name = fp3_yearly.2030.a
|
|
trigger = {
|
|
NOT = { has_trait = generous }
|
|
}
|
|
remove_short_term_gold = medium_gold_value
|
|
add_character_modifier = {
|
|
modifier = generous_beauty
|
|
years = 10
|
|
}
|
|
stress_impact = {
|
|
greedy = major_stress_impact_gain
|
|
arrogant = minor_stress_impact_gain
|
|
deceitful = minor_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
temperate = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
option = { # Actions will speak louder than words
|
|
name = fp3_yearly.2030.d
|
|
add_prestige = minor_prestige_value
|
|
stress_impact = {
|
|
base = medium_stress_impact_gain
|
|
wrathful = medium_stress_impact_gain
|
|
impatient = minor_stress_impact_gain
|
|
temperate = minor_stress_impact_loss
|
|
trusting = minor_stress_impact_loss
|
|
humble = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
option = { # Bask in your generosity
|
|
name = fp3_yearly.2030.b
|
|
trigger = {
|
|
has_trait = generous
|
|
}
|
|
trait = generous
|
|
add_prestige = medium_prestige_gain
|
|
give_nickname = nick_the_beautiful_generous
|
|
remove_short_term_gold = medium_gold_value
|
|
add_character_modifier = {
|
|
modifier = generous_beauty
|
|
years = 10
|
|
}
|
|
stress_impact = {
|
|
generous = major_stress_impact_loss
|
|
arrogant = minor_stress_impact_loss
|
|
temperate = minor_stress_impact_loss
|
|
deceitful = minor_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
option = { # Gain dread
|
|
name = fp3_yearly.2030.c
|
|
add_dread = medium_dread_gain
|
|
scope:reassuring_courtier = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
imprison_character_effect = { #We kill the messenger, so to speak
|
|
TARGET = scope:reassuring_courtier
|
|
IMPRISONER = root
|
|
}
|
|
add_character_modifier = {
|
|
modifier = dreaded_beauty
|
|
}
|
|
stress_impact = {
|
|
compassionate = medium_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
craven = minor_stress_impact_gain
|
|
humble = minor_stress_impact_gain
|
|
generous = minor_stress_impact_gain
|
|
deceitful = minor_stress_impact_loss
|
|
callous = minor_stress_impact_loss
|
|
wrathful = minor_stress_impact_loss
|
|
vengeful = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
has_trait = compassionate
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = content
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = just
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = humble
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Checks whether any of the character's provinces recognize the caliph as their HOF
|
|
scripted_trigger fp3_yearly_2040_attackers_provinces_respect_caliph = {
|
|
any_held_title = {
|
|
title_tier = county
|
|
faith.religious_head = root
|
|
}
|
|
}
|
|
|
|
# All counties that respect the caliph as their HOF get a massive levy size penalty
|
|
# NB: Scope:caliph needs to be set before this effect is called
|
|
scripted_effect fp3_yearly_2040_religious_desertion_effect = {
|
|
every_held_county = {
|
|
limit = { faith.religious_head = scope:caliph }
|
|
add_county_modifier = {
|
|
modifier = fp3_religious_desertion_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Commander of the Faithful (The Army of Ya'qub ibn Laith)
|
|
# As the Caliph, if someone is warring you and has counties that obey you as their HOF, then you have the option of pleading with their army to stand down
|
|
fp3_yearly.2040 = {
|
|
type = character_event
|
|
title = fp3_yearly.2040.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
any_character_war = {
|
|
primary_attacker = { faith.religion = religion:islam_religion }
|
|
}
|
|
}
|
|
desc = fp3_yearly.2040.desc_attacker_is_muslim
|
|
}
|
|
desc = fp3_yearly.2040.desc_attacker_is_not_muslim
|
|
}
|
|
}
|
|
theme = martial
|
|
override_background = {
|
|
reference = terrain_scope
|
|
}
|
|
left_portrait = {
|
|
character = scope:infidel
|
|
animation = war_attacker
|
|
}
|
|
cooldown = { years = 5 }
|
|
|
|
trigger = {
|
|
has_fp3_dlc_trigger = yes
|
|
# Below triggers are similar to is_available_adult but without is_in_army
|
|
is_adult = yes
|
|
is_alive = yes
|
|
exists = location
|
|
is_imprisoned = no
|
|
has_contagious_deadly_disease_trigger = no
|
|
NOT = { has_trait = incapable }
|
|
NOT = { has_variable = gone_adventuring }
|
|
NOT = { has_character_flag = planning_an_activity }
|
|
faith.religion = religion:islam_religion
|
|
is_at_war_as_defender = yes
|
|
any_character_war = {
|
|
primary_defender = root
|
|
primary_attacker = {
|
|
exists = location
|
|
fp3_yearly_2040_attackers_provinces_respect_caliph = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
save_scope_as = caliph
|
|
if = {
|
|
limit = { exists = cp:councillor_court_chaplain }
|
|
cp:councillor_court_chaplain = { save_scope_as = imam }
|
|
}
|
|
random_character_war = {
|
|
limit = {
|
|
primary_defender = root
|
|
primary_attacker = {
|
|
exists = location
|
|
fp3_yearly_2040_attackers_provinces_respect_caliph = yes
|
|
}
|
|
}
|
|
primary_attacker = {
|
|
save_scope_as = infidel
|
|
location = { save_scope_as = background_terrain_scope } # For event_bg
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Make a plea
|
|
name = fp3_yearly.2040.a
|
|
flavor = fp3_yearly.2040.a.flavor
|
|
duel = {
|
|
skill = learning
|
|
target = scope:infidel
|
|
|
|
70 = { # Shouldn't be too difficult to succeed
|
|
desc = fp3_yearly.2040.a_success
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2.5
|
|
min = -55
|
|
max = 35
|
|
}
|
|
# More pious caliphs should be able to succeed more easily
|
|
modifier = {
|
|
add = {
|
|
value = piety_level
|
|
subtract = 1
|
|
}
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = num_virtuous_traits
|
|
}
|
|
}
|
|
scope:infidel = {
|
|
# If the attacker is a player, notify them of the penalty they just suffered
|
|
if = {
|
|
limit = { is_ai = no }
|
|
trigger_event = fp3_yearly.2041
|
|
show_as_tooltip = { fp3_yearly_2040_religious_desertion_effect = yes } # tt only, the actual effect happens in fp3_yearly.2041
|
|
}
|
|
else = {
|
|
fp3_yearly_2040_religious_desertion_effect = yes
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp3_yearly.2040.a_success
|
|
left_icon = scope:infidel
|
|
reverse_add_opinion = {
|
|
target = scope:infidel
|
|
modifier = fp3_sabotaged_me
|
|
}
|
|
}
|
|
}
|
|
30 = {
|
|
desc = fp3_yearly.2040.a_failure
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -2.5
|
|
min = -35
|
|
max = 55
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = piety_level
|
|
subtract = 1
|
|
multiply = -1
|
|
}
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = num_sinful_traits
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp3_yearly.2040.a_failure
|
|
left_icon = root
|
|
add_prestige = medium_prestige_loss
|
|
increase_wounds_effect = { REASON = piteously_cut_down }
|
|
}
|
|
}
|
|
}
|
|
stress_impact = {
|
|
craven = major_stress_impact_gain
|
|
shy = major_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_vengefulness = 0.5
|
|
}
|
|
# Add only negative % chance due to shyness
|
|
modifier = {
|
|
add = {
|
|
value = ai_sociability
|
|
multiply = -1
|
|
max = 0
|
|
}
|
|
}
|
|
# Is the caliph's or imam's learning higher?
|
|
compare_modifier = {
|
|
target = scope:imam
|
|
value = learning
|
|
multiplier = -5
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Have your imam make a plea. Ignores your own learning/piety
|
|
name = fp3_yearly.2040.b
|
|
flavor = fp3_yearly.2040.b.flavor
|
|
trigger = { exists = scope:imam }
|
|
scope:imam = {
|
|
duel = {
|
|
skill = learning
|
|
target = scope:infidel
|
|
|
|
60 = { # Harder for your imam to succeed
|
|
desc = fp3_yearly.2040.b_success
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2.5
|
|
min = -55
|
|
max = 35
|
|
}
|
|
scope:infidel = {
|
|
# If the attacker is a player, notify them of this huge penalty
|
|
if = {
|
|
limit = { is_ai = no }
|
|
trigger_event = fp3_yearly.2041
|
|
show_as_tooltip = { fp3_yearly_2040_religious_desertion_effect = yes } # tt only, the actual effect happens in fp3_yearly.2041
|
|
}
|
|
else = {
|
|
fp3_yearly_2040_religious_desertion_effect = yes
|
|
}
|
|
}
|
|
scope:caliph = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp3_yearly.2040.b_success
|
|
left_icon = scope:infidel
|
|
reverse_add_opinion = {
|
|
target = scope:infidel
|
|
modifier = fp3_sabotaged_me
|
|
}
|
|
}
|
|
}
|
|
}
|
|
40 = { # Is killed
|
|
desc = fp3_yearly.2040.b_failure
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -2.5
|
|
min = -35
|
|
max = 55
|
|
}
|
|
scope:caliph = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp3_yearly.2040.b_failure
|
|
left_icon = scope:imam
|
|
scope:imam = { death = { death_reason = death_piteously_cut_down } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = {
|
|
ai_boldness = -1
|
|
ai_vengefulness = 0.5
|
|
}
|
|
# Is the caliph's or imam's learning higher?
|
|
compare_modifier = {
|
|
target = scope:imam
|
|
value = learning
|
|
multiplier = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Do nothing
|
|
name = fp3_yearly.2040.c
|
|
stress_impact = {
|
|
brave = major_stress_impact_gain
|
|
vengeful = minor_stress_impact_gain
|
|
wrathful = medium_stress_impact_gain
|
|
zealous = major_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 0 # Should be low, we want the AI to take the other two options
|
|
ai_value_modifier = {
|
|
ai_vengefulness = -0.5
|
|
ai_energy = -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Commander of the Faithful: Attacker Version
|
|
# The Caliph has asked your armies to stand down and they complied!
|
|
fp3_yearly.2041 = {
|
|
type = character_event
|
|
title = fp3_yearly.2040.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
# You do not respect the caliph
|
|
trigger = {
|
|
OR = {
|
|
has_trait = cynical
|
|
faith.religious_head != scope:caliph
|
|
}
|
|
}
|
|
desc = fp3_yearly.2041.desc_cynical
|
|
}
|
|
desc = fp3_yearly.2041.desc_fallback
|
|
}
|
|
}
|
|
theme = martial
|
|
override_background = {
|
|
reference = terrain_scope
|
|
}
|
|
left_portrait = {
|
|
character = scope:caliph
|
|
animation = war_defender
|
|
}
|
|
|
|
immediate = {
|
|
fp3_yearly_2040_religious_desertion_effect = yes
|
|
scope:caliph.location = { save_scope_as = background_terrain_scope }
|
|
}
|
|
|
|
option = { # Curse them!
|
|
name = fp3_yearly.2041.a
|
|
}
|
|
}
|
|
|
|
# Futuwaa Lodges: Check if root has any valid members of futuwaa lodges. If so, trigger ongoing_futuwaa_lodges_events
|
|
fp3_yearly.2050 = {
|
|
hidden = yes
|
|
|
|
immediate = {
|
|
every_courtier = {
|
|
limit = { fp3_is_valid_futuwaa_member = { SPONSOR = root } }
|
|
add_to_list = futuwaa_members
|
|
}
|
|
house ?= {
|
|
every_house_member = {
|
|
limit = {
|
|
fp3_is_valid_futuwaa_member = { SPONSOR = root }
|
|
NOT = { is_courtier_of = root }
|
|
}
|
|
add_to_list = futuwaa_members
|
|
}
|
|
}
|
|
if = {
|
|
limit = { any_in_list = { list = futuwaa_members } }
|
|
trigger_event = { on_action = ongoing_futuwaa_lodges_events }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Futuwaa Lodges: Prowess skill increased
|
|
fp3_yearly.2051 = {
|
|
hidden = yes
|
|
|
|
# This event is more likely to trigger if you have more futuwaa members
|
|
weight_multiplier = {
|
|
base = 1
|
|
modifier = {
|
|
add = {
|
|
value = list_size:futuwaa_members
|
|
subtract = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_in_list = {
|
|
list = futuwaa_members
|
|
weight = {
|
|
base = 1
|
|
# Unskilled members are more likely to have their stats improved
|
|
modifier = {
|
|
add = {
|
|
value = prowess
|
|
multiply = -0.1
|
|
}
|
|
}
|
|
# Virtuous members are more likely to benefit
|
|
modifier = {
|
|
add = {
|
|
value = num_virtuous_traits
|
|
subtract = num_sinful_traits
|
|
}
|
|
}
|
|
# Martial members are more likely to... you get the idea
|
|
modifier = {
|
|
OR = {
|
|
has_focus = education_martial
|
|
has_education_martial_trigger = yes
|
|
}
|
|
add = 2
|
|
}
|
|
# AI energy (Diligent, lazy, etc.)
|
|
modifier = {
|
|
ai_energy <= high_negative_ai_value
|
|
add = -2
|
|
}
|
|
modifier = {
|
|
ai_energy >= high_positive_ai_value
|
|
add = 2
|
|
}
|
|
}
|
|
save_scope_as = improved_youth
|
|
}
|
|
send_interface_message = {
|
|
type = event_martial_good
|
|
title = fp3_yearly.2050.t
|
|
left_icon = scope:improved_youth
|
|
scope:improved_youth = { add_prowess_skill = 2 }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Futuwaa Lodges: Martial skill increased (martial focus only)
|
|
fp3_yearly.2052 = {
|
|
hidden = yes
|
|
|
|
trigger = {
|
|
any_in_list = {
|
|
list = futuwaa_members
|
|
OR = {
|
|
has_focus = education_martial
|
|
has_education_martial_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
# This event is more likely to trigger if you have more futuwaa members
|
|
weight_multiplier = {
|
|
base = 1
|
|
modifier = {
|
|
add = {
|
|
value = list_size:futuwaa_members
|
|
subtract = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_in_list = {
|
|
list = futuwaa_members
|
|
weight = {
|
|
base = 1
|
|
# Unskilled members are more likely to have their stats improved
|
|
modifier = {
|
|
add = {
|
|
value = martial
|
|
multiply = -0.1
|
|
}
|
|
}
|
|
# Virtuous members are more likely to benefit
|
|
modifier = {
|
|
add = {
|
|
value = num_virtuous_traits
|
|
subtract = num_sinful_traits
|
|
}
|
|
}
|
|
# AI energy (Diligent, lazy, etc.)
|
|
modifier = {
|
|
ai_energy <= high_negative_ai_value
|
|
add = -2
|
|
}
|
|
modifier = {
|
|
ai_energy >= high_positive_ai_value
|
|
add = 2
|
|
}
|
|
}
|
|
save_scope_as = improved_youth
|
|
}
|
|
send_interface_message = {
|
|
type = event_martial_good
|
|
title = fp3_yearly.2050.t
|
|
left_icon = scope:improved_youth
|
|
scope:improved_youth = { add_martial_skill = 2 }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Futuwaa Lodges: Virtuous trait added
|
|
fp3_yearly.2053 = {
|
|
hidden = yes
|
|
|
|
trigger = {
|
|
any_in_list = {
|
|
list = futuwaa_members
|
|
number_of_personality_traits < childhood_personality_trait_gain_limit
|
|
}
|
|
}
|
|
|
|
# This event is more likely to trigger if you have more futuwaa members
|
|
weight_multiplier = {
|
|
base = 1
|
|
modifier = {
|
|
add = {
|
|
value = list_size:futuwaa_members
|
|
subtract = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_in_list = {
|
|
list = futuwaa_members
|
|
weight = {
|
|
base = 1
|
|
# More zealous members are more likely to benefit (and vice versa)
|
|
modifier = {
|
|
add = {
|
|
value = ai_zeal
|
|
divide = 100
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = improved_youth
|
|
}
|
|
# Choose a random virtue to give the youth
|
|
# I know... there is no better way to do this
|
|
random_list = {
|
|
# Brave
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = brave }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = brave
|
|
has_trait = craven
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:brave
|
|
}
|
|
}
|
|
# Craven
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = craven }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = brave
|
|
has_trait = craven
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:craven
|
|
}
|
|
}
|
|
# Calm
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = calm }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = calm
|
|
has_trait = wrathful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:calm
|
|
}
|
|
}
|
|
# Wrathful
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = wrathful }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = calm
|
|
has_trait = wrathful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:wrathful
|
|
}
|
|
}
|
|
# Chaste
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = chaste }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = chaste
|
|
has_trait = lustful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:chaste
|
|
}
|
|
}
|
|
# Lustful
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = lustful }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = chaste
|
|
has_trait = lustful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:lustful
|
|
}
|
|
}
|
|
# Content
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = content }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = content
|
|
has_trait = ambitious
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:content
|
|
}
|
|
}
|
|
# Ambitious
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = ambitious }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = content
|
|
has_trait = ambitious
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:ambitious
|
|
}
|
|
}
|
|
# Diligent
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = diligent }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = diligent
|
|
has_trait = lazy
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:diligent
|
|
}
|
|
}
|
|
# Lazy
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = lazy }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = diligent
|
|
has_trait = lazy
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:lazy
|
|
}
|
|
}
|
|
# Fickle
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = fickle }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = fickle
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:fickle
|
|
}
|
|
}
|
|
# Stubborn
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = stubborn }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = fickle
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:stubborn
|
|
}
|
|
}
|
|
# Forgiving
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = forgiving }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = forgiving
|
|
has_trait = vengeful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:forgiving
|
|
}
|
|
}
|
|
# Vengeful
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = vengeful }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = forgiving
|
|
has_trait = vengeful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:vengeful
|
|
}
|
|
}
|
|
# Generous
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = generous }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = generous
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:generous
|
|
}
|
|
}
|
|
# Greedy
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = greedy }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = generous
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:greedy
|
|
}
|
|
}
|
|
# Gregarious
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = gregarious }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = gregarious
|
|
has_trait = shy
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:gregarious
|
|
}
|
|
}
|
|
# Shy
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = shy }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = gregarious
|
|
has_trait = shy
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:shy
|
|
}
|
|
}
|
|
# Honest
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = honest }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = honest
|
|
has_trait = deceitful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:honest
|
|
}
|
|
}
|
|
# Deceitful
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = deceitful }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = honest
|
|
has_trait = deceitful
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:deceitful
|
|
}
|
|
}
|
|
# Humble
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = humble }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = humble
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:humble
|
|
}
|
|
}
|
|
# Arrogant
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = arrogant }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = humble
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:arrogant
|
|
}
|
|
}
|
|
# Just
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = just }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = just
|
|
has_trait = arbitrary
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:just
|
|
}
|
|
}
|
|
# Arbitrary
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = arbitrary }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = just
|
|
has_trait = arbitrary
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:arbitrary
|
|
}
|
|
}
|
|
# Patient
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = patient }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = patient
|
|
has_trait = impatient
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:patient
|
|
}
|
|
}
|
|
# Impatient
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = impatient }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = patient
|
|
has_trait = impatient
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:impatient
|
|
}
|
|
}
|
|
# Temperate
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = temperate }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = temperate
|
|
has_trait = gluttonous
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:temperate
|
|
}
|
|
}
|
|
# Gluttonous
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = gluttonous }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = temperate
|
|
has_trait = gluttonous
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:gluttonous
|
|
}
|
|
}
|
|
# Trusting
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = trusting }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = trusting
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:trusting
|
|
}
|
|
}
|
|
# Paranoid
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = paranoid }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = trusting
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:paranoid
|
|
}
|
|
}
|
|
# Zealous
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = zealous }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = zealous
|
|
has_trait = cynical
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:zealous
|
|
}
|
|
}
|
|
# Cynical
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = cynical }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = zealous
|
|
has_trait = cynical
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:cynical
|
|
}
|
|
}
|
|
# Compassionate
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = compassionate }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = compassionate
|
|
has_trait = callous
|
|
has_trait = sadistic
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:compassionate
|
|
}
|
|
}
|
|
# Callous
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = callous }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = compassionate
|
|
has_trait = callous
|
|
has_trait = sadistic
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:callous
|
|
}
|
|
}
|
|
# Sadistic
|
|
1 = {
|
|
trigger = {
|
|
faith = { trait_is_virtue = sadistic }
|
|
scope:improved_youth = {
|
|
NOR = {
|
|
has_trait = compassionate
|
|
has_trait = callous
|
|
has_trait = sadistic
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = virtuous_trait
|
|
value = flag:sadistic
|
|
}
|
|
}
|
|
}
|
|
send_interface_message = {
|
|
type = event_martial_good
|
|
title = fp3_yearly.2050.t
|
|
left_icon = scope:improved_youth
|
|
scope:improved_youth = {
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:brave }
|
|
add_trait = brave
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:craven }
|
|
add_trait = craven
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:calm }
|
|
add_trait = calm
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:wrathful }
|
|
add_trait = wrathful
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:chaste }
|
|
add_trait = chaste
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:lustful }
|
|
add_trait = lustful
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:content }
|
|
add_trait = content
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:ambitious }
|
|
add_trait = ambitious
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:diligent }
|
|
add_trait = diligent
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:lazy }
|
|
add_trait = lazy
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:fickle }
|
|
add_trait = fickle
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:stubborn }
|
|
add_trait = stubborn
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:forgiving }
|
|
add_trait = forgiving
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:vengeful }
|
|
add_trait = vengeful
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:generous }
|
|
add_trait = generous
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:greedy }
|
|
add_trait = greedy
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:gregarious }
|
|
add_trait = gregarious
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:shy }
|
|
add_trait = shy
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:honest }
|
|
add_trait = honest
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:deceitful }
|
|
add_trait = deceitful
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:humble }
|
|
add_trait = humble
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:arrogant }
|
|
add_trait = arrogant
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:just }
|
|
add_trait = just
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:arbitrary }
|
|
add_trait = arbitrary
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:patient }
|
|
add_trait = patient
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:impatient }
|
|
add_trait = impatient
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:temperate }
|
|
add_trait = temperate
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:gluttonous }
|
|
add_trait = gluttonous
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:trusting }
|
|
add_trait = trusting
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:paranoid }
|
|
add_trait = paranoid
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:zealous }
|
|
add_trait = zealous
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:cynical }
|
|
add_trait = cynical
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:compassionate }
|
|
add_trait = compassionate
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:callous }
|
|
add_trait = callous
|
|
}
|
|
if = {
|
|
limit = { scope:virtuous_trait = flag:sadistic }
|
|
add_trait = sadistic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Madrasas: Check if root has any valid members of madrasas. If so, trigger ongoing_madrasas_events
|
|
fp3_yearly.2060 = {
|
|
hidden = yes
|
|
|
|
immediate = {
|
|
every_courtier = {
|
|
limit = { fp3_is_valid_madrasa_pupil = { SPONSOR = root } }
|
|
add_to_list = madrasa_pupils
|
|
}
|
|
house ?= {
|
|
every_house_member = {
|
|
limit = {
|
|
fp3_is_valid_madrasa_pupil = { SPONSOR = root }
|
|
NOT = { is_courtier_of = root }
|
|
}
|
|
add_to_list = madrasa_pupils
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { any_in_list = { list = madrasa_pupils } }
|
|
trigger_event = { on_action = ongoing_madrasas_events }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Madrasas: Learning skill increased
|
|
fp3_yearly.2061 = {
|
|
hidden = yes
|
|
|
|
# This event is more likely to trigger if you have more madrasa pupils
|
|
weight_multiplier = {
|
|
base = 1
|
|
modifier = {
|
|
add = {
|
|
value = list_size:madrasa_pupils
|
|
subtract = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_in_list = {
|
|
list = madrasa_pupils
|
|
weight = {
|
|
base = 1
|
|
# Skilled members are more likely to have their stats improved
|
|
modifier = {
|
|
add = {
|
|
value = learning
|
|
multiply = 0.1
|
|
}
|
|
}
|
|
# Learning education members are more likely to gain more learning
|
|
modifier = {
|
|
has_focus = education_learning
|
|
add = 2
|
|
}
|
|
# AI energy (Diligent, lazy, etc.)
|
|
modifier = {
|
|
ai_energy <= high_negative_ai_value
|
|
add = -2
|
|
}
|
|
modifier = {
|
|
ai_energy >= high_positive_ai_value
|
|
add = 2
|
|
}
|
|
}
|
|
save_scope_as = improved_youth
|
|
}
|
|
send_interface_message = {
|
|
type = event_learning_good
|
|
title = {
|
|
first_valid = {
|
|
# Call them madrasas if our capital is advanced enough
|
|
triggered_desc = {
|
|
trigger = {
|
|
capital_county ?= {
|
|
development_level >= bad_development_level
|
|
}
|
|
}
|
|
desc = fp3_yearly.2060.t_madrasas
|
|
}
|
|
# Otherwise just say that the youth are being educated in houses of worship
|
|
desc = fp3_yearly.2060.t_houses_of_worship
|
|
}
|
|
}
|
|
left_icon = scope:improved_youth
|
|
scope:improved_youth = { add_learning_skill = 2 }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Madrasas: Physician experience gain
|
|
fp3_yearly.2062 = {
|
|
hidden = yes
|
|
|
|
# This event is more likely to trigger if you have more futuwaa members
|
|
weight_multiplier = {
|
|
base = 1
|
|
modifier = {
|
|
add = {
|
|
value = list_size:madrasa_pupils
|
|
subtract = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_in_list = {
|
|
list = madrasa_pupils
|
|
weight = {
|
|
base = 1
|
|
# Members w/high learning are more likely to gain physician experience
|
|
modifier = {
|
|
add = {
|
|
value = learning
|
|
multiply = 0.1
|
|
}
|
|
}
|
|
# AI energy (Diligent, lazy, etc.)
|
|
modifier = {
|
|
ai_energy <= high_negative_ai_value
|
|
add = -2
|
|
}
|
|
modifier = {
|
|
ai_energy >= high_positive_ai_value
|
|
add = 2
|
|
}
|
|
}
|
|
save_scope_as = improved_youth
|
|
}
|
|
send_interface_message = {
|
|
type = event_learning_good
|
|
# "Madrasas" vs "Schooling in Mosques"
|
|
title = {
|
|
first_valid = {
|
|
# Call them madrasas if our capital is advanced enough
|
|
triggered_desc = {
|
|
trigger = {
|
|
capital_county ?= {
|
|
development_level >= bad_development_level
|
|
}
|
|
}
|
|
desc = fp3_yearly.2060.t_madrasas
|
|
}
|
|
# Otherwise just say that the youth are being educated in houses of worship
|
|
desc = fp3_yearly.2060.t_houses_of_worship
|
|
}
|
|
}
|
|
left_icon = scope:improved_youth
|
|
scope:improved_youth = {
|
|
if = {
|
|
limit = { has_trait = lifestyle_physician }
|
|
add_trait_xp = {
|
|
trait = lifestyle_physician
|
|
value = {
|
|
integer_range = {
|
|
min = 5
|
|
max = 10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = { add_trait = lifestyle_physician }
|
|
}
|
|
}
|
|
}
|
|
}
|