so much event updating

This commit is contained in:
trashmasteruni 2026-04-25 13:36:44 +02:00
parent c4b6d9bdeb
commit 811167944e
135 changed files with 4885 additions and 297691 deletions

View file

@ -426,7 +426,7 @@ fp3_yearly.8020 = {
#premise checks - we need ROOT's faith to not have been reformed into a matriarchal faith for this historical context
OR = {
has_religion = religion:islam_religion
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
has_religion = religion:christianity_religion
}
has_game_rule = default_gender_equality #this triggers an error. Suspected code issue.
@ -2380,7 +2380,7 @@ fp3_yearly.8032 = {
trigger = {
OR = {
has_religion = religion:islam_religion
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
has_religion = religion:christianity_religion
}
}
@ -2415,7 +2415,7 @@ fp3_yearly.8032 = {
has_trait = zealous
}
AND = {
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
has_religion = religion:christianity_religion
has_trait = zealous
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,153 +0,0 @@
namespace = fp3_story_cycle_seljuks_invasion_events
### RISE OF THE SELJUKS #############################################
## 0001 Leader and Story Cycle Creation by Maxence Voleau
## 0002 The First Settlers by Hugo Cortell
#####################################################################
###################################
# Setup: we create the leader and start the story cycle
# By Maxence Voleau
###################################
fp3_story_cycle_seljuks_invasion_events.0001 = {
scope = none
hidden = yes
immediate = {
spawn_seljuk_character_effect = yes
scope:lead_seljuk = {
create_story = story_seljuk_invasion
}
}
}
###################################
# The First Settlers
# By Hugo Cortell
###################################
fp3_story_cycle_seljuks_invasion_events.0002 = {
type = character_event
title = fp3_story_cycle_seljuks_invasion_events.0001.t
desc = {
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc
first_valid = {
triggered_desc = {
trigger = { highest_held_title_tier > tier_duchy }
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc_vassal
}
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc_independent
}
}
theme = realm
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:lead_seljuk
animation = personality_honorable
}
immediate = {
save_scope_as = seljuk_victim
random_sub_realm_county = {
limit = {
any_neighboring_county = {
exists = holder
holder.top_liege != scope:seljuk_victim
}
de_jure_liege = scope:fp3_seljuk_settle_target
}
alternative_limit = {
any_neighboring_county = {
exists = holder
holder.top_liege != scope:seljuk_victim
}
any_neighboring_county = { de_jure_liege = scope:fp3_seljuk_settle_target }
}
alternative_limit = {
any_neighboring_county = {
exists = holder
holder.top_liege != scope:seljuk_victim
}
}
random_county_province = {
limit = {
this != scope:fp3_seljuk_settle_target.title_capital_county.title_province
}
save_scope_as = spawn_location
}
}
save_scope_value_as = {
name = victim_strength_modifier
value = {
value = current_military_strength
divide = 10000
add = 1.25
}
}
scope:lead_seljuk = {
#move to the army spawn location, so it's less confusing when you want to see where they are
set_location = scope:spawn_location
var:seljuk_birthplace = { save_scope_as = seljuk_birthplace }
}
}
option = { # Yes - Serve me well!
name = fp3_story_cycle_seljuks_invasion_events.0001.a_liege
fp3_story_cycle_seljuks_invasion_events_grant_seljuks_land_effect = yes
scope:lead_seljuk = {
add_trait = loyal
culture = {
change_cultural_acceptance = {
target = scope:seljuk_victim.culture
value = 30
desc = STEWARD_PROMOTE_CULTURE_ALLOWED_NOMAD_SETTLEMENT
}
}
}
create_seljuk_army_at_peace_effect = yes
debug_log = "Seljuk got the land and were vassalized"
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_compassion = 0.2
ai_greed = -0.5
ai_energy = -0.5
ai_rationality = 0.3
ai_sociability = 0.3
}
}
}
option = { # No - To war with you!
name = fp3_story_cycle_seljuks_invasion_events.0001.b
# Start war
scope:lead_seljuk = {
start_war = {
casus_belli = fp3_seljuk_invasion_cb
target = root
target_title = scope:fp3_seljuk_settle_target
}
random_character_war = { save_scope_as = war }
}
create_seljuk_army_effect = yes
debug_log = "Seljuk have to win a war"
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_greed = 0.5
ai_energy = 0.5
ai_vengefulness = 0.5
}
}
}
}

View file

@ -1,726 +0,0 @@
namespace = fp3_story_cycle_zanj_rebellion_events
### Ali Ibn Muhammad and Zanj Rebellion Setup
fp3_story_cycle_zanj_rebellion_events.0001 = {
scope = none
hidden = yes
immediate = {
spawn_zanj_leader_character_effect = yes
scope:zanj_leader = {
save_scope_as = story_owner
create_story = story_zanj_rebellion
give_nickname = nick_albaghid
}
title:c_basra.holder = {
add_visiting_courtier = scope:zanj_leader
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0002
}
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0005
days = { 60 120 }
}
}
}
}
### Ali Ibn Muhammad riling up locals in Basra
fp3_story_cycle_zanj_rebellion_events.0002 = {
type = character_event
theme = intrigue
override_background = { reference = wilderness_wetlands }
title = fp3_story_cycle_zanj_rebellion_events.0002.t
desc = fp3_story_cycle_zanj_rebellion_events.0002.desc
left_portrait = {
character = root
animation = marshal
}
right_portrait = {
character = scope:zanj_leader
animation = scheme
}
immediate = {
scope:zanj_leader = {
save_scope_as = outspoken_rebel
}
}
#Try to arrest Ali
option = {
name = fp3_story_cycle_zanj_rebellion_events.0002.a
duel = {
skill = intrigue
target = scope:outspoken_rebel
50 = {
# You arrest Ali Ibn Muhammad
desc = fp3_story_cycle_zanj_rebellion_events.0002.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0002.a.success
left_icon = root
right_icon = scope:outspoken_rebel
rightfully_imprison_character_effect = {
TARGET = scope:outspoken_rebel
IMPRISONER = root
}
}
inherit_zanj_rebellion_effect = yes
}
50 = {
# Ali Ibn Muhammad escapes
desc = fp3_story_cycle_zanj_rebellion_events.0002.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0002.a.failure
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad
left_icon = root
right_icon = scope:outspoken_rebel
}
hidden_effect = {
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 4
}
}
title:c_baghdad.holder = {
hidden_effect = {
title:c_baghdad.holder = {
add_visiting_courtier = scope:outspoken_rebel
}
}
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0003
days = { 30 60 }
}
}
}
}
}
root = {
progress_towards_rival_effect = {
REASON = fp3_zanj_rebellion_opressed_me
CHARACTER = scope:outspoken_rebel
OPINION = default_rival_opinion
}
}
stress_impact = {
paranoid = medium_stress_impact_loss
just = minor_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
trusting = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = trusting
has_trait = forgiving
has_trait = compassionate
}
}
}
}
#Ignore Ali
option = {
name = fp3_story_cycle_zanj_rebellion_events.0002.c
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 2
}
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad
hidden_effect = {
title:c_baghdad.holder = {
add_visiting_courtier = scope:outspoken_rebel
}
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0003
days = { 30 60 }
}
}
stress_impact = {
paranoid = medium_stress_impact_gain
just = minor_stress_impact_gain
callous = minor_stress_impact_gain
sadistic = medium_stress_impact_gain
trusting = medium_stress_impact_loss
forgiving = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = paranoid
has_trait = just
has_trait = callous
has_trait = sadistic
}
}
}
}
}
### Setup to find correct scope for event 0004 and check if Ali is dead or imprisoned
fp3_story_cycle_zanj_rebellion_events.0003 = {
scope = none
hidden = yes
immediate = {
if ={
#check if Ali is still alive and not in prison and is not an inheritor of the rebellion
limit = {
scope:zanj_leader = {
AND = {
is_alive = yes
is_imprisoned = no
NOT = { has_character_flag = new_zanj_leader }
}
}
}
title:c_baghdad.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0004
}
}
}
}
}
### Ali Ibn Muhammad claims divinity
fp3_story_cycle_zanj_rebellion_events.0004 = {
type = character_event
theme = faith
title = fp3_story_cycle_zanj_rebellion_events.0004.t
desc = fp3_story_cycle_zanj_rebellion_events.0004.desc
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:zanj_leader
animation = personality_zealous
}
#Contest Ali Ibn Muhammad's claims
option = {
name = fp3_story_cycle_zanj_rebellion_events.0004.a
duel = {
skill = learning
target = scope:zanj_leader
50 = {
# You disprove Ali's claims
desc = fp3_story_cycle_zanj_rebellion_events.0004.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0004.a.success
add_piety = medium_piety_gain
add_prestige = minor_prestige_gain
left_icon = root
right_icon = scope:zanj_leader
}
}
50 = {
# Ali Ibn Muhammad validates his claims
desc = fp3_story_cycle_zanj_rebellion_events.0004.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0004.a.failure
left_icon = root
right_icon = scope:zanj_leader
scope:zanj_leader = {
add_trait = sayyid
add_pressed_claim = title:e_arabia
change_variable = {
name = zanj_rebellion_strength_score
add = 4
}
}
}
}
}
root = {
progress_towards_rival_effect = {
REASON = fp3_zanj_rebellion_opressed_me
CHARACTER = scope:zanj_leader
OPINION = default_rival_opinion
}
}
stress_impact = {
paranoid = minor_stress_impact_loss
just = minor_stress_impact_loss
zealous = medium_stress_impact_loss
trusting = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = cynical
has_trait = trusting
has_trait = forgiving
}
}
}
}
#Ignore Ali
option = {
name = fp3_story_cycle_zanj_rebellion_events.0004.b
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
scope:zanj_leader = {
add_trait = sayyid
add_pressed_claim = title:e_arabia
change_variable = {
name = zanj_rebellion_strength_score
add = 2
}
}
stress_impact = {
paranoid = minor_stress_impact_gain
just = minor_stress_impact_gain
zealous = medium_stress_impact_gain
trusting = minor_stress_impact_loss
forgiving = medium_stress_impact_loss
cynical = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = paranoid
has_trait = just
has_trait = zealous
}
}
}
}
}
### Setup event to find the correct scope and check if Ali or the current Zanj Leader is dead or imprisoned
fp3_story_cycle_zanj_rebellion_events.0005 = {
scope = none
hidden = yes
immediate = {
if = {
limit = {
scope:zanj_leader = {
OR = {
is_imprisoned = yes
is_alive = no
is_landed = yes
}
}
}
inherit_zanj_rebellion_effect = yes
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0006
}
}
}
}
### A Zanj Steps Forth
fp3_story_cycle_zanj_rebellion_events.0006 = {
type = character_event
theme = corruption
title = fp3_story_cycle_zanj_rebellion_events.0006.t
desc = {
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.a
triggered_desc = {
trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.b
}
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.c
}
left_portrait = {
character = root
animation = eyeroll
}
right_portrait = {
character = scope:outspoken_rebel
animation = worry
}
lower_left_portrait = {
trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
character = scope:zanj_leader
}
immediate = {
if = {
limit = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
spawn_zanj_representative_character_effect = yes
scope:zanj_representative = { save_scope_as = outspoken_rebel }
}
else = {
scope:zanj_leader = { save_scope_as = outspoken_rebel }
}
}
#Give Basra to the Zanj
option = {
name = fp3_story_cycle_zanj_rebellion_events.0006.a
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
title:c_basra = {
set_county_culture = culture:east_bantu
set_county_faith = faith:azariqa
}
show_as_tooltip = { # UI/UX
title:c_basra = {
change_title_holder = {
holder = scope:outspoken_rebel
change = scope:change
}
}
}
scope:outspoken_rebel = {
becomes_independent = {
change = scope:change
}
add_truce_both_ways = {
character = root
years = 10
name = fp3_landed_zanj_reason
}
}
if = {
limit = {
NOT = { title:c_basra.holder = root }
}
add_tyranny = 30
set_relation_rival = {
reason = fp3_rival_gave_title_away
target = title:c_basra.holder
}
}
hidden_effect = {
title:c_basra = {
change_title_holder = {
holder = scope:outspoken_rebel
change = scope:change
}
every_de_jure_county = {
change_title_holder = {
holder = scope:outspoken_rebel
change = scope:change
}
}
}
scope:zanj_leader = {
random_owned_story = {
type = story_zanj_rebellion
end_story = yes
}
}
}
resolve_title_and_vassal_change = scope:change
stress_impact = {
compassionate = medium_stress_impact_loss
just = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
generous = medium_stress_impact_loss
content = medium_stress_impact_loss
callous = medium_stress_impact_gain
sadistic = major_stress_impact_gain
ambitious = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = callous
has_trait = sadistic
has_trait = ambitious
has_trait = greedy
}
}
}
}
#Make minor concessions to the Zanj
option = {
name = fp3_story_cycle_zanj_rebellion_events.0006.b
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 3
}
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
hidden_effect = {
title:c_basra.holder = {
if = {
limit = { scope:zanj_leader != scope:outspoken_rebel}
add_visiting_courtier = scope:zanj_leader
}
add_visiting_courtier = scope:outspoken_rebel
}
}
if = {
limit = {
NOT = { title:c_basra.holder = root }
}
progress_towards_rival_effect = {
REASON = fp3_zanj_rebellion_interfered_with_my_workers
CHARACTER = title:c_basra.holder
OPINION = default_rival_opinion
}
}
title:c_basra = {
add_county_modifier = {
modifier = fp3_zanj_rebellion_work_concessions_modifier
years = 5
}
}
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0007
days = { 30 60 }
}
stress_impact = {
compassionate = minor_stress_impact_loss
just = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
generous = minor_stress_impact_loss
content = minor_stress_impact_loss
callous = minor_stress_impact_gain
sadistic = medium_stress_impact_gain
ambitious = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = callous
has_trait = sadistic
has_trait = ambitious
has_trait = greedy
}
}
}
}
#Ignore the Zanj
option = {
name = fp3_story_cycle_zanj_rebellion_events.0006.c
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 5
}
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
hidden_effect = {
title:c_basra.holder = {
add_visiting_courtier = scope:zanj_leader
add_visiting_courtier = scope:zanj_representative
}
}
if = {
limit = {
NOT = { title:c_basra.holder = root }
}
progress_towards_friend_effect = {
REASON = fp3_rival_stayed_out_of_my_business
CHARACTER = title:c_basra.holder
OPINION = default_friend_opinion
}
}
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0007
days = { 30 60 }
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
generous = minor_stress_impact_gain
content = minor_stress_impact_gain
callous = minor_stress_impact_loss
sadistic = medium_stress_impact_loss
ambitious = minor_stress_impact_loss
greedy = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
has_trait = generous
}
}
}
}
}
fp3_story_cycle_zanj_rebellion_events.0007 = {
scope = none
hidden = yes
immediate = {
if = {
limit = {
scope:zanj_leader = {
OR = {
is_imprisoned = yes
is_alive = no
is_landed = yes
}
}
}
inherit_zanj_rebellion_effect = yes
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0008
}
}
}
}
### The Zanj Rebellion
fp3_story_cycle_zanj_rebellion_events.0008 = {
type = character_event
theme = battle
override_background = { reference = wilderness_wetlands }
title = fp3_story_cycle_zanj_rebellion_events.0008.t
desc = {
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.a
triggered_desc = {
trigger = {
scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader}}
}
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.b
}
triggered_desc = {
trigger = {
scope:zanj_leader = { has_character_flag = new_zanj_leader }
}
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.c
}
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.d
}
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:zanj_leader
animation = celebrate_sword
}
immediate = {
scope:zanj_leader = {
give_nickname = nick_chief_of_the_zanj
hidden_effect = {
random_owned_story = {
type = story_zanj_rebellion
end_story = yes
}
}
}
hidden_effect = {
fp3_start_zanj_rebellion_effect = {
TARGET_COUNTY = title:c_basra
REBEL_LEADER = scope:zanj_leader
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
}
}
option = {
name = fp3_story_cycle_zanj_rebellion_events.0008.a
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,286 +0,0 @@
namespace = fp3_h_yearly
###################################
# You have pissed off your ulema and you're a drunkard
# By Hugo Cortell
# Rewritten by Henrik Lohmander
###################################
fp3_h_yearly.0001 = {
type = character_event
title = fp3_h_yearly.0001.t
desc = {
triggered_desc = {
trigger = { always = yes }
desc = fp3_h_yearly.0001.desc.main
}
}
theme = feast_activity
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = drink_goblet
}
right_portrait = {
character = scope:ulema_member
animation = disapproval
}
cooldown = { years = 10 }
weight_multiplier = {
base = 1
modifier = {
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = { has_trait = drunkard }
factor = 0.4
}
modifier = {
any_character_struggle = {
is_struggle_type = persian_struggle
}
add = 0.5
}
modifier = {
has_trait = fp3_struggle_supporter
add = -0.5
}
modifier = {
has_trait = fp3_struggle_detractor
add = 0.5
}
}
trigger = {
has_fp3_dlc_trigger = yes
has_trait = drunkard
NOT = { has_character_modifier = ulema_displeased_drinking }
exists = cp:councillor_court_chaplain
NOT = {
has_hook = cp:councillor_court_chaplain
}
cp:councillor_court_chaplain = {
is_ai = yes
faith = { trait_is_sin = drunkard }
trigger_if = {
limit = { exists = house }
house != root.house
}
NOT = {
has_trait = lifestyle_mystic
}
OR = {
opinion = { # They will not do this unless they have reason to dislike you
target = root
value < -25
}
has_relation_rival = root
}
}
}
immediate = {
cp:councillor_court_chaplain = { save_scope_as = ulema_member }
save_scope_as = actor
scope:ulema_member = { save_scope_as = recipient }
}
option = { #Deflection (They are a drunkard too) Look who is talking!
name = fp3_h_yearly.0001.a
trigger = { scope:ulema_member = { has_trait = drunkard } }
#No duel, this deflection always succeeds.
stress_impact = {
craven = minor_stress_gain
deceitful = minor_stress_loss
callous = minor_stress_loss
}
add_prestige = medium_prestige_gain
reverse_add_opinion = {
target = scope:ulema_member
modifier = ignored_concerns
}
}
option = { #Deflection - Argue that drinking is healthy to the human spirit
name = fp3_h_yearly.0001.b
trigger = {
OR = {
has_trait = scholar
has_trait = theologian
has_trait = whole_of_body
has_trait = lifestyle_physician
has_trait = lifestyle_poet
faith = { trait_is_virtue = drunkard }
}
}
reverse_add_opinion = {
target = scope:ulema_member
modifier = ignored_concerns
}
duel = {
desc = fp3_h_yearly.0001.b.desc
skill = learning
target = scope:annoying_clergy
35 = { #Success
desc = fp3_h_yearly.0001.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_good
title = fp3_h_yearly.0001.b.success
left_icon = root
add_prestige = minor_prestige_gain
}
}
65 = {
desc = fp3_h_yearly.0001.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = fp3_h_yearly.0001.b.failure
left_icon = root
add_piety = medium_piety_loss
add_character_modifier = {
modifier = ulema_displeased_drinking
years = 10
}
}
}
}
stress_impact = {
honest = minor_stress_gain
humble = minor_stress_gain
callous = minor_stress_loss
deceitful = minor_stress_loss
}
}
option = { # You do not get to speak to me in this way!
name = fp3_h_yearly.0001.e
add_dread = medium_dread_gain
imprison_court_chaplain_consequences_effect = yes
imprison_character_effect = {
TARGET = scope:recipient
IMPRISONER = scope:actor
}
stress_impact = {
just = medium_stress_gain
zealous = medium_stress_gain
deceitful = minor_stress_loss
callous = minor_stress_loss
}
}
option = { #Bribery - Offer a generous donation
name = fp3_h_yearly.0001.c
trigger = { NOT = { scope:ulema_member = { has_trait = drunkard } } } #If you can deflect we don't show this option
custom_tooltip = fp3_h_yearly.0001.c.tt
pay_short_term_gold = {
target = scope:ulema_member
gold = medium_gold_value
}
random_list = {
75 = {
modifier = {
scope:ulema_member = {
has_trait = greedy
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = deceitful
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = ambitious
}
factor = 2
}
desc = fp3_h_yearly.0001.c.success
send_interface_toast = {
title = fp3_h_yearly.0001.c.success
left_icon = root
add_prestige = minor_prestige_gain
}
}
25 = {
modifier = {
scope:ulema_member = {
has_trait = zealous
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = honest
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = just
}
factor = 2
}
desc = fp3_h_yearly.0001.c.failure
send_interface_toast = {
title = fp3_h_yearly.0001.c.failure
left_icon = root
add_piety = medium_piety_loss
add_character_modifier = {
modifier = ulema_displeased_drinking
years = 10
}
reverse_add_opinion = {
target = scope:ulema_member
modifier = ignored_concerns
}
}
}
}
stress_impact = {
just = medium_stress_gain
greedy = minor_stress_gain
honest = minor_stress_gain
callous = minor_stress_loss
deceitful = minor_stress_loss
}
}
option = { # There is nothing I can do!
name = fp3_h_yearly.0001.d
add_piety = minor_piety_loss
add_character_modifier = {
modifier = ulema_displeased_drinking
years = 5
}
stress_impact = {
arrogant = minor_stress_gain
deceitful = minor_stress_gain
drunkard = minor_stress_gain
honest = minor_stress_loss
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,824 +0,0 @@
namespace = fp3_yearly
scripted_trigger not_steppe_nomad_trigger = {
culture = {
NOR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
has_cultural_tradition = tradition_horse_lords
}
}
}
scripted_trigger suitable_nomad_settling_province_trigger = {
has_holding_type = castle_holding
barony = {
is_under_holy_order_lease = no
#is_capital_barony = no
}
}
fp3_yearly.8888 = { #Nomads story cycle
type = character_event
title = fp3_yearly.8888.t
desc = fp3_yearly.8888.desc
theme = vassal
left_portrait = {
character = scope:upset_vassal
animation = anger
}
right_portrait = {
character = root
animation = personality_rational
triggered_animation = {
trigger = {
diplomacy >= decent_skill_rating
}
animation = personality_honorable
}
}
lower_left_portrait = {
character = scope:possibly_capable_marshal
}
lower_right_portrait = {
character = scope:turkic_leader
}
trigger = {
#standard checks
has_fp3_dlc_trigger = yes
root.capital_province = { geographical_region = world_persian_empire }
is_available_at_peace_adult = yes
#event fluff triggers
not_steppe_nomad_trigger = yes
NOT = { has_character_flag = had_turkic_tribe_story } #since this event starts the story
exists = cp:councillor_marshal
cp:councillor_marshal = {
NOT = { has_trait = craven }
is_ai = yes
}
any_vassal = {
not_steppe_nomad_trigger = yes
is_ai = yes
NOT = {
this = root.cp:councillor_marshal
}
any_held_county = {
any_county_province = {
geographical_region = dlc_fp3_eastern_persian_frontier_regions
NOT = { terrain = steppe }
}
}
}
any_held_county = { any_county_province = { suitable_nomad_settling_province_trigger = yes } }
}
cooldown = { years = 50 }
immediate = {
random_vassal = {
limit = {
not_steppe_nomad_trigger = yes
is_ai = yes
NOT = {
this = root.cp:councillor_marshal
}
any_held_county = {
any_county_province = {
geographical_region = dlc_fp3_eastern_persian_frontier_regions
NOT = { terrain = steppe }
}
}
}
save_scope_as = upset_vassal
random_held_county = {
limit = {
any_county_province = {
geographical_region = dlc_fp3_eastern_persian_frontier_regions
NOT = { terrain = steppe }
}
}
save_scope_as = nomads_county
}
}
random_held_county = {
limit = {
any_county_province = { suitable_nomad_settling_province_trigger = yes }
}
save_scope_as = nomads_new_county #for use in the claim the former_master might get
}
scope:nomads_new_county = {
random_county_province = {
limit = { suitable_nomad_settling_province_trigger = yes }
barony = { save_scope_as = nomads_barony }
}
}
cp:councillor_marshal = { save_scope_as = possibly_capable_marshal }
scope:nomads_county = {
add_county_modifier = {
modifier = fp3_nomad_friction_county_modifier
years = 50
}
}
create_character = {
location = root.capital_province
template = fp3_turko-mongol_leader
save_scope_as = turkic_leader
}
}
option = {
name = fp3_yearly.8888.a
duel = {
skill = diplomacy
value = average_skill_rating
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2
}
root = {
custom_tooltip = fp3_treating_with_turks.success.tt
trigger_event = {
id = fp3_yearly.8889
days = { 2 3 }
}
}
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
custom_tooltip = fp3_treating_with_turks.failure.tt
send_interface_toast = {
title = fp3_treating_with_turks_toast.failure
left_icon = root
}
}
}
scope:upset_vassal = {
if = {
limit = {
OR = { #if he's diplomatically minded, he'll appreciate this
has_trait = forgiving
has_trait = trusting
has_trait = compassionate
has_diplomacy_lifestyle_trait_trigger = yes
}
}
add_opinion = {
target = root
opinion = 20
modifier = respect_opinion
}
}
else = {
add_opinion = { #but otherwise, they're not on board
target = root
opinion = -10
modifier = fp3_treats_with_barbarians_opinion
}
}
}
scope:possibly_capable_marshal = {
add_opinion = {
target = root
opinion = -10
modifier = disappointed_opinion
}
}
stress_impact = {
craven = medium_stress_impact_gain
lazy = medium_stress_impact_gain
shy = medium_stress_impact_gain
gregarious = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.5
ai_boldness = 1
ai_compassion = 0.5
}
}
}
option = {
name = fp3_yearly.8888.b
scope:upset_vassal = {
add_opinion = {
target = root
opinion = 20
modifier = grateful_opinion
}
}
scope:possibly_capable_marshal = {
add_opinion = {
target = root
opinion = 10
modifier = trusted_me_opinion
}
}
scope:possibly_capable_marshal = {
duel = {
skill = martial
value = average_skill_rating
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2
}
root = {
custom_tooltip = fp3_fighting_turks.success.tt
trigger_event = {
id = fp3_yearly.8890
days = { 2 3 }
}
}
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
root = {
custom_tooltip = fp3_fighting_turks.failure.tt
send_interface_toast = {
title = fp3_fighting_turks_toast.failure
left_icon = scope:possibly_capable_marshal
}
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_vengefulness = 0.5
}
}
}
option = { #Ignore the issue
name = fp3_yearly.8888.c
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -20
modifier = angry_opinion
}
}
scope:possibly_capable_marshal = {
add_opinion = {
target = root
opinion = -10
modifier = disappointed_opinion
}
}
stress_impact = {
ambitious = minor_stress_impact_gain
diligent = minor_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = -1
}
}
}
}
fp3_yearly.8889 = { #Nomads story cycle
type = character_event
title = fp3_yearly.8889.t
desc = fp3_yearly.8889.desc
theme = vassal
left_portrait = {
character = scope:turkic_leader
animation = disapproval
}
right_portrait = {
character = root
animation = drink_goblet
triggered_animation = {
trigger = {
diplomacy >= decent_skill_rating
NOR = {
has_trait = callous
has_trait = wrathful
has_trait = vengeful
}
}
animation = personality_compassionate
}
}
lower_left_portrait = {
character = scope:upset_vassal
}
override_background = { reference = wilderness }
trigger = {
#standard checks
is_available_adult = yes
#event not breaking sanity triggers
exists = scope:upset_vassal
scope:upset_vassal = { is_alive = yes }
exists = scope:turkic_leader
scope:turkic_leader = { is_alive = yes }
exists = scope:nomads_county
exists = scope:nomads_new_county
}
option = {
name = fp3_yearly.8889.a
if = {
limit = {
scope:upset_vassal = {
NOT = {
has_relation_rival = root
has_relation_nemesis = root
}
}
}
root = {
progress_towards_rival_effect = {
CHARACTER = scope:upset_vassal
REASON = rival_let_hostile_nomads_roam_free
OPINION = -20
}
}
}
else = {
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -40
modifier = hate_opinion
}
}
}
add_courtier = scope:turkic_leader
spawn_army = {
men_at_arms = {
type = horse_archers
stacks = 1
}
location = root.capital_province
war_keep_on_attacker_victory = yes
uses_supply = yes
inheritable = no
save_scope_as = horsemen_army
name = turkic_tribal_event_troops
}
#This is needed to make the story cycle able to pick up the scopes
set_variable = {
name = turkic_leader
value = scope:turkic_leader
}
set_variable = {
name = upset_vassal
value = scope:upset_vassal
}
set_variable = {
name = nomads_county
value = scope:nomads_county
}
set_variable = {
name = nomads_new_county
value = scope:nomads_new_county
}
create_story = turkic_tribe_story
stress_impact = {
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.4
ai_boldness = 0.7
ai_vengefulness = 0.3
}
}
}
option = {
name = fp3_yearly.8889.b
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -10
modifier = disappointed_opinion
}
}
add_courtier = scope:turkic_leader
spawn_army = {
men_at_arms = {
type = horse_archers
stacks = 1
}
location = root.capital_province
war_keep_on_attacker_victory = yes
uses_supply = yes
inheritable = no
save_scope_as = horsemen_army
name = turkic_tribal_event_troops
}
#This is needed to make the story cycle able to pick up the scopes
set_variable = {
name = turkic_leader
value = scope:turkic_leader
}
set_variable = {
name = upset_vassal
value = scope:upset_vassal
}
set_variable = {
name = nomads_county
value = scope:nomads_county
}
set_variable = {
name = nomads_new_county
value = scope:nomads_new_county
}
create_story = turkic_tribe_story
scope:nomads_county = {
remove_county_modifier = fp3_nomad_friction_county_modifier
}
scope:nomads_new_county = {
add_county_modifier = {
modifier = fp3_nomad_friction_county_modifier
years = 30
}
}
stress_impact = {
generous = medium_stress_impact_loss
content = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.6
ai_boldness = 1
ai_compassion = 0.2
}
}
}
option = { #no deal
name = fp3_yearly.8889.c
scope:upset_vassal = {
add_opinion = {
target = root
opinion = 20
modifier = pleased_opinion
}
}
stress_impact = {
ambitious = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.5
ai_vengefulness = 0.5
}
}
}
}
fp3_yearly.8890 = { #Nomads story cycle
type = character_event
title = fp3_yearly.8890.t
desc = {
desc = fp3_yearly.8890.desc_beginning
first_valid = {
triggered_desc = {
trigger = {
scope:upset_vassal = {
AND = {
ai_compassion < medium_positive_ai_value
ai_vengefulness > medium_positive_ai_value
}
}
}
desc = fp3_yearly.8890_brutal_demands
}
desc = fp3_yearly.8890_nonbrutal_demands
}
desc = fp3_yearly.8890.desc_ending
}
theme = vassal
left_portrait = {
character = scope:turkic_leader
animation = prisonhouse
}
right_portrait = {
character = root
animation = personality_rational
triggered_animation = {
trigger = {
diplomacy < high_skill_rating
NOR = {
has_trait = compassionate
has_trait = forgiving
has_trait = just
}
}
animation = personality_callous
}
}
lower_left_portrait = {
character = scope:upset_vassal
}
lower_right_portrait = {
character = scope:possibly_capable_marshal
}
trigger = {
#standard checks
is_available_adult = yes
#event not breaking sanity triggers
exists = scope:upset_vassal
scope:upset_vassal = { is_alive = yes }
exists = scope:turkic_leader
scope:turkic_leader = { is_alive = yes }
exists = scope:nomads_county
exists = scope:nomads_new_county
}
option = {
name = fp3_yearly.8890.a
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -15
modifier = fp3_suspicious_motives_opinion
}
}
add_courtier = scope:turkic_leader
add_hook = {
type = indebted_hook
target = scope:turkic_leader
}
spawn_army = {
men_at_arms = {
type = horse_archers
stacks = 1
}
location = root.capital_province
war_keep_on_attacker_victory = yes
uses_supply = yes
inheritable = no
save_scope_as = horsemen_army
name = turkic_tribal_event_troops
}
#This is needed to make the story cycle able to pick up the scopes
set_variable = {
name = turkic_leader
value = scope:turkic_leader
}
set_variable = {
name = upset_vassal
value = scope:upset_vassal
}
set_variable = {
name = nomads_county
value = scope:nomads_county
}
set_variable = {
name = nomads_new_county
value = scope:nomads_new_county
}
create_story = turkic_tribe_story
scope:nomads_county = {
remove_county_modifier = fp3_nomad_friction_county_modifier
}
scope:nomads_new_county = {
add_county_modifier = {
modifier = fp3_nomad_friction_county_modifier
years = 30
}
}
stress_impact = {
content = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = 0.5
}
}
}
option = { #execute the nomad leader
name = fp3_yearly.8890.b
add_dread = medium_dread_gain
scope:upset_vassal = {
if = {
limit = {
AND = { #if they're cruel, he'll enjoy this
ai_compassion < 0
ai_vengefulness > medium_positive_ai_value
}
}
add_opinion = {
target = root
opinion = 30
modifier = fp3_very_very_pleased_opinion
}
}
else = {
add_opinion = { #but otherwise, they're not on board
target = root
opinion = -10
modifier = fp3_went_too_far_opinion
}
}
}
scope:turkic_leader = {
death = {
death_reason = death_execution
killer = root
}
}
random_list = {
50 = {
send_interface_toast = {
title = nomad_friction_gone.tt
left_icon = root
scope:nomads_county = { remove_county_modifier = fp3_nomad_friction_county_modifier }
}
}
50 = {
send_interface_toast = {
title = nomad_friction_active.tt
left_icon = root
scope:nomads_county = {
add_county_modifier = {
modifier = fp3_vengeful_nomads_county_modifier
years = 10
}
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
arbitrary = medium_stress_impact_loss
sadistic = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 0.5
ai_compassion = -1
}
}
}
option = {
name = fp3_yearly.8890.c
add_dread = minor_dread_gain
scope:turkic_leader = {
hard_imprison_character_effect = {
TARGET = this
IMPRISONER = root
}
}
scope:upset_vassal = {
add_opinion = {
target = root
opinion = 20
modifier = pleased_opinion
}
}
random = {
chance = 75
send_interface_toast = {
title = nomad_friction_gone.tt
left_icon = root
scope:nomads_county = { remove_county_modifier = fp3_nomad_friction_county_modifier }
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
arbitrary = minor_stress_impact_loss
cynical = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 0.5
ai_rationality = 1
ai_compassion = -0.5
}
}
}
}