This commit is contained in:
Heidesommer 2026-05-29 05:24:40 -04:00
parent ce70fe752e
commit 734d526ca9
41 changed files with 17594 additions and 1069 deletions

View file

@ -279,91 +279,91 @@ on_county_occupied = {
}
}
# Mongol Devastation
if = {
limit = {
# Check that it's relevant so we don't fire it *all* the time
OR = {
AND = {
exists = global_var:mongol_empire_has_spawned
NOT = { exists = global_var:mongol_story_has_ended }
any_owned_story = {
type = story_mongol_invasion
}
}
any_owned_story = {
type = story_greatest_of_khans
}
}
NOT = { exists = scope:county.var:looted_by_mongols }
}
# Each County should only be devastated once
scope:county = {
set_variable = {
name = looted_by_mongols
value = yes
years = 25
}
}
# Send a message (and gold!) to the Mongol Emperor
send_interface_message = {
type = event_war_good
title = mongols_sieged_county.t
left_icon = scope:previous_controller
right_icon = scope:county
#Herd from nomad counties if nomadic
if = {
limit = {
scope:county = {
any_county_province = {
OR = {
has_holding_type = nomad_holding
has_holding_type = herder_holding
}
}
}
government_has_flag = government_is_nomadic
}
domicile = {
change_herd = miniscule_herd_gain
}
}
else = {
if = {
limit = {
scope:county.development_level >= 1
}
add_gold = {
add = scope:county.development_level
multiply = 5
}
}
}
if = {
limit = {
dread < 150
}
add_dread = 2
}
show_as_tooltip = {
scope:county = {
mongols_devastate_county_effect = yes
}
}
}
save_scope_as = mongol_emperor
# Send a message to the County's owner
scope:county.holder = {
send_interface_message = {
type = event_war_bad
title = mongols_sieged_county.t
left_icon = scope:mongol_emperor
right_icon = scope:county
scope:county = {
mongols_devastate_county_effect = yes
}
}
}
}
# if = {
# limit = {
# # Check that it's relevant so we don't fire it *all* the time
# OR = {
# AND = {
# exists = global_var:mongol_empire_has_spawned
# NOT = { exists = global_var:mongol_story_has_ended }
# any_owned_story = {
# type = story_mongol_invasion
# }
# }
# any_owned_story = {
# type = story_greatest_of_khans
# }
# }
# NOT = { exists = scope:county.var:looted_by_mongols }
# }
# # Each County should only be devastated once
# scope:county = {
# set_variable = {
# name = looted_by_mongols
# value = yes
# years = 25
# }
# }
# # Send a message (and gold!) to the Mongol Emperor
# send_interface_message = {
# type = event_war_good
# title = mongols_sieged_county.t
# left_icon = scope:previous_controller
# right_icon = scope:county
# #Herd from nomad counties if nomadic
# if = {
# limit = {
# scope:county = {
# any_county_province = {
# OR = {
# has_holding_type = nomad_holding
# has_holding_type = herder_holding
# }
# }
# }
# government_has_flag = government_is_nomadic
# }
# domicile = {
# change_herd = miniscule_herd_gain
# }
# }
# else = {
# if = {
# limit = {
# scope:county.development_level >= 1
# }
# add_gold = {
# add = scope:county.development_level
# multiply = 5
# }
# }
# }
# if = {
# limit = {
# dread < 150
# }
# add_dread = 2
# }
# show_as_tooltip = {
# scope:county = {
# mongols_devastate_county_effect = yes
# }
# }
# }
# save_scope_as = mongol_emperor
# # Send a message to the County's owner
# scope:county.holder = {
# send_interface_message = {
# type = event_war_bad
# title = mongols_sieged_county.t
# left_icon = scope:mongol_emperor
# right_icon = scope:county
# scope:county = {
# mongols_devastate_county_effect = yes
# }
# }
# }
# }
# Admin house power bonus for getting influence
if = {
limit = {
@ -789,7 +789,7 @@ on_raid_action_completion = {
raiding.0013 # Chance to kidnap prisoners
raiding.0014 # Chance to steal an artifact
bp2_yearly.8031 # Steal a doll
raiding.0031 # Hereward adds XP
# raiding.0031 # Hereward adds XP
raiding.0040 # Raid Intent Effects
}
effect = {

View file

@ -0,0 +1,34 @@
######################################################
####
#### El Cid Story Cycle On-Actions
####
#### el_cid_landless_on_action
#### el_cid_landless_or_landed_on_action
####
######################################################
#
## Landless
#el_cid_landless_on_action = {
# random_events = {
# # No one opens the door to you
# 200 = cid.1000
# # You have no money to pay your men
# 100 = cid.1010
# # You have to leave your spouse/children behind
# 200 = cid.1020
# }
#}
#
## Landless or Landed
#el_cid_landless_or_landed_on_action = {
# random_events = {
# # You have some money - send gift?
# 100 = cid.1030
# # You pray for your liege
# 100 = cid.1040
# # cid.2000 triggered from the combat on_action
# # cid.2001 triggered from the combat on_action
# # Your liege offers you a favourable marriage
# 250 = cid.2010
# }
#}

View file

@ -0,0 +1,42 @@
##Events for William/Norman King of England
#ongoing_harrying_owner_events = {
# random_events = {
# chance_of_no_event = 90
# delay = { days = { 60 90 } }
#
# 100 = ep3_story_cycle_harrying.1000
# 100 = ep3_story_cycle_harrying.1005
# 100 = ep3_story_cycle_harrying.1010
# 100 = ep3_story_cycle_harrying.1015
# }
#}
#
##Events for Anglo-Saxon lords in England
#ongoing_harrying_aetheling_events = {
# random_events = {
# chance_of_no_event = 90
# delay = { days = { 60 90 } }
#
# 100 = ep3_story_cycle_harrying.2000
# 100 = ep3_story_cycle_harrying.2005
# 100 = ep3_story_cycle_harrying.2010
# 100 = ep3_story_cycle_harrying.2015
# }
#}
#
##Events specifically for Hereward the Wake
#ongoing_harrying_hereward_events = {
# random_events = {
# chance_of_no_event = 90
# delay = { days = { 60 90 } }
#
# 100 = ep3_story_cycle_harrying.3000
# 100 = ep3_story_cycle_harrying.3005
# 100 = ep3_story_cycle_harrying.3010
# 100 = ep3_story_cycle_harrying.3015
# 100 = ep3_story_cycle_harrying.3020
# 50 = ep3_story_cycle_harrying.3050
# 100 = ep3_laamps.7001
# }
#}
#

View file

@ -0,0 +1,18 @@
##Events for Violet Poet
#ongoing_violet_poet_owner_events = {
# random_events = {
# chance_of_no_event = 50
# delay = { days = { 40 80 } }
#
# 100 = ep3_story_cycle_violet_poet.1005%
# 100 = ep3_story_cycle_violet_poet.1010
# 100 = ep3_story_cycle_violet_poet.1015
# 100 = ep3_story_cycle_violet_poet.1020
# 100 = ep3_story_cycle_violet_poet.1025
# 100 = ep3_story_cycle_violet_poet.1030
#
# #Ibn Zaydun chain
# 100 = ep3_story_cycle_violet_poet.2000
# }
#}
#

View file

@ -0,0 +1,168 @@
#fp2_lyonese_monk_events_cycle = {
# effect = {
# # Should things invalidate?
# if = {
# limit = { fp2_lyonese_monk_0000_valid_for_events_trigger = no }
# # Scope:acolyte has died or is no longer your courtier or vassal.
# if = {
# limit = { fp2_lyonese_monk_0000_out_of_realm_trigger = yes }
# trigger_event = fp2_lyonese_monk.0021
# }
# # Your incarceration causes scope:acolyte to disappear - and the story along with HerHim.
# else_if = {
# limit = { fp2_lyonese_monk_0000_out_of_freedom_trigger = yes }
# trigger_event = fp2_lyonese_monk.0051
# }
# # The destruction of the Papacy leaves little room in everyone's hearts for the minutiae of doctrine.
# else_if = {
# limit = { fp2_lyonese_monk_0000_out_of_popes_trigger = yes }
# trigger_event = fp2_lyonese_monk.0041
# }
# # You or scope:acolyte are no longer the correct faith.
# else_if = {
# limit = { fp2_lyonese_monk_0000_out_of_faith_trigger = yes }
# trigger_event = fp2_lyonese_monk.0031
# }
# }
# # If not, run the usual.
# else = {
# # Phase: Private Teachings
# ## Gateway event
# if = {
# limit = { scope:story.var:lm_phase_tally = 0 }
# trigger_event = fp2_lyonese_monk.0201
# }
# ## Random events
# else_if = {
# limit = {
# scope:story.var:lm_phase_tally >= 1
# scope:story.var:lm_phase_tally <= 3
# }
# trigger_event = { on_action = fp2_lyonese_monk_events_phase_teachings_events }
# }
# ## Gateway event
# else_if = {
# limit = { scope:story.var:lm_phase_tally = 4 }
# trigger_event = fp2_lyonese_monk.0241
# }
# # Phase: Public Controversy
# ## Gateway event
# else_if = {
# limit = { scope:story.var:lm_phase_tally = 5 }
# trigger_event = fp2_lyonese_monk.0401
# }
# ## Random events
# else_if = {
# limit = {
# scope:story.var:lm_phase_tally >= 6
# scope:story.var:lm_phase_tally <= 8
# }
# trigger_event = { on_action = fp2_lyonese_monk_events_phase_controversy_events }
# }
# ## Gateway event
# else_if = {
# limit = { scope:story.var:lm_phase_tally = 9 }
# trigger_event = fp2_lyonese_monk.0441
# }
# # Phase: Schism
# ## Gateway event
# else_if = {
# limit = { scope:story.var:lm_phase_tally = 10 }
# trigger_event = fp2_lyonese_monk.0601
# }
# ## Random events
# else_if = {
# limit = {
# scope:story.var:lm_phase_tally >= 11
# scope:story.var:lm_phase_tally <= 13
# }
# trigger_event = { on_action = fp2_lyonese_monk_events_phase_schism_events }
# }
# ## Gateway event
# else = { trigger_event = fp2_lyonese_monk.0641 }
# }
# }
#}
#
#fp2_lyonese_monk_events_phase_teachings_events = {
# random_events = {
# 100 = fp2_lyonese_monk.0211
# 100 = fp2_lyonese_monk.0221
# 100 = fp2_lyonese_monk.0231
# }
# fallback = fp2_lyonese_monk_events_cycle_no_valid_events_fallback
#}
#
#fp2_lyonese_monk_events_phase_controversy_events = {
# random_events = {
# 100 = fp2_lyonese_monk.0411
# 100 = fp2_lyonese_monk.0421
# 100 = fp2_lyonese_monk.0431
# }
# fallback = fp2_lyonese_monk_events_cycle_no_valid_events_fallback
#}
#
#fp2_lyonese_monk_events_phase_schism_events = {
# random_events = {
# 100 = fp2_lyonese_monk.0611
# 100 = fp2_lyonese_monk.0621
# 100 = fp2_lyonese_monk.0631
# }
# fallback = fp2_lyonese_monk_events_cycle_no_valid_events_fallback
#}
#
#fp2_lyonese_monk_events_cycle_no_valid_events_fallback = {
# effect = {
# # Should things invalidate?
# if = {
# limit = { fp2_lyonese_monk_0000_valid_for_events_trigger = no }
# # Scope:acolyte has died or is no longer your courtier or vassal.
# if = {
# limit = { fp2_lyonese_monk_0000_out_of_realm_trigger = yes }
# trigger_event = fp2_lyonese_monk.0021
# }
# # Your incarceration causes scope:acolyte to disappear - and the story along with HerHim.
# else_if = {
# limit = { fp2_lyonese_monk_0000_out_of_freedom_trigger = yes }
# trigger_event = fp2_lyonese_monk.0051
# }
# # The destruction of the Papacy leaves little room in everyone's hearts for the minutiae of doctrine.
# else_if = {
# limit = { fp2_lyonese_monk_0000_out_of_popes_trigger = yes }
# trigger_event = fp2_lyonese_monk.0041
# }
# # You or scope:acolyte are no longer the correct faith.
# else_if = {
# limit = { fp2_lyonese_monk_0000_out_of_faith_trigger = yes }
# trigger_event = fp2_lyonese_monk.0031
# }
# }
# # If not, run the usual.
# else = {
# # Increment the incident tally by 1 if we're not at a cap event.
# if = {
# limit = {
# NOR = {
# scope:story.var:lm_phase_tally = 0
# scope:story.var:lm_phase_tally = 4
# scope:story.var:lm_phase_tally = 5
# scope:story.var:lm_phase_tally = 9
# scope:story.var:lm_phase_tally = 10
# }
# }
# scope:story = {
# change_variable = {
# name = lm_phase_tally
# add = 1
# }
# }
# }
# # Run the cycle again.
# trigger_event = {
# on_action = fp2_lyonese_monk_events_cycle
# months = { 2 5 }
# }
# }
# }
#}
#

View file

@ -0,0 +1,74 @@
# On actions for knight events, triggered automatically by the game
# Called for commanders when combat ends
# root is the commander
# scope:combat_side is the side of combat the commander is on
# scope:victory is whether the commander's side won
on_commander_combat_finished = {
trigger = {
scope:victory = no
}
events = {
# DISABLED as how this is handled is undergoing a rework.
#commanders.0011 # Commander captured after combat.
}
}
# called on every unique owner of an army on combat end
# root is the owning character
# scope:combat_side is the side of combat the commander is on
# scope:victory is whether the commander's side won
# commanders is a list of all commanders in the combat
# knights is a list of all knights in the combat
on_army_combat_finished = {
}
# Used for handling the Varangian guard
varangian_ongoing = {
trigger = {
has_character_flag = is_currently_varangian
}
effect = {
#Verify if the character became landed: in that case, remove the flag
if = {
limit = {
is_ruler = yes
}
remove_character_flag = is_currently_varangian
}
else = {
#debug_log = "Fired the varangian_ongoing pulse"
#debug_log_scopes = yes
change_variable = { # NOTE: Will *not* be relevant to non-delayed trigger evaluations for the events below
name = years_as_varangian
add = 1
}
trigger_event = {
on_action = varangian_ongoing
days = { 340 380 }
}
}
}
random_events = {
500 = 0
# 500 = varangian.1001 # Return home
# 100 = varangian.2001 # Become Best Friends with another Varangian
# 100 = varangian.2002 # Become Lover with another Varangian
# 100 = varangian.2003 # Become Friends with a local ruler
# 100 = varangian.2004 # Become Rival with a local ruler
# 300 = varangian.2005 # Marry Lover
# 100 = varangian.2008 # Get wounded
# 100 = varangian.2011 # Get local Lover
# 200 = varangian.2012 # Increase Prowess
# 200 = varangian.2013 # Increase Martial
# 200 = varangian.2014 # Increase Learning
# 200 = varangian.2015 # Increase Diplomacy
# 50 = varangian.2016 # Become Brave
# 50 = varangian.2017 # Become Ambitious
# 50 = varangian.2018 # Become Diligent
}
}

View file

@ -0,0 +1,875 @@
# root: The province in which the building was completed
# scope:character: The character that paid for the construction, if available
on_building_completed = {
effect = {
#save the county holder as the character in case the construction wasn't started through GUI or by the AI
if = {
limit = {
NOT = { exists = scope:character }
}
root.county.holder = {
save_scope_as = character
}
}
root = {
# Preservation tenet
if = {
limit = {
scope:character.faith = { has_doctrine_parameter = building_temples_gives_development }
OR = {
has_holding_type = church_holding
has_holding_type = temple_citadel_holding
}
NOT = { county = { has_variable = dev_gain_cooldown } }
}
scope:character = {
send_interface_toast = {
title = building_temples_gives_development_toast
left_icon = root
root.county = {
change_development_progress_with_overflow = minor_development_progress_gain
set_variable = {
name = dev_gain_cooldown
value = yes
days = 365
}
}
}
}
}
# Hard working Tradition
if = {
limit = {
culture = { has_cultural_parameter = development_gain_on_building_complete }
NOT = { county = { has_variable = dev_gain_cooldown } }
}
county = {
change_development_progress_with_overflow = 25
set_variable = {
name = dev_gain_cooldown
value = yes
days = 365
}
}
}
# Metal crafting Tradition
if = {
limit = {
culture = { has_cultural_parameter = prestige_gain_on_building_complete_in_mountains }
OR = {
terrain = mountains
terrain = desert_mountains
}
}
scope:character = {
if = {
limit = {
is_alive = yes
}
add_prestige = medium_prestige_value
}
}
}
# Yashima
if = {
limit = {
culture = { has_cultural_parameter = prestige_gain_on_building_complete_in_mountains_forest }
OR = {
terrain = mountains
terrain = forest
}
}
scope:character = {
if = {
limit = {
is_alive = yes
}
add_prestige = medium_prestige_value
}
}
}
# Sacred Mountains Tradition
if = {
limit = {
scope:character.culture = { has_cultural_parameter = piety_gain_on_building_complete_in_mountains }
OR = {
terrain = mountains
terrain = desert_mountains
}
}
scope:character = {
if = {
limit = {
is_alive = yes
}
add_piety = minor_piety_value
}
}
}
# Sacred Groves Tradition
if = {
limit = {
scope:character.culture = { has_cultural_parameter = piety_gain_on_building_complete_in_forest_taiga }
OR = {
terrain = forest
terrain = taiga
terrain = jungle
}
}
scope:character = {
if = {
limit = {
is_alive = yes
}
add_piety = minor_piety_value
}
}
}
# FP2 Dynasty perk
if = {
limit = {
has_holding_type = city_holding
exists = scope:character.dynasty
scope:character.dynasty = {
has_dynasty_perk = fp2_urbanism_legacy_4
}
}
county = {
holder = {
if = {
limit = {
is_alive = yes
}
send_interface_toast = {
type = event_toast_effect_good
title = prestige_gained_from_building_completion
left_icon = root.barony
add_prestige = medium_prestige_gain
}
}
}
#### Chance to add super guest!
# Set variables
random = {
chance = 10
modifier = {
add = county.development_level
}
set_variable = {
name = number_prestigious_new_guests
value = 1
}
if = {
limit = { county.development_level >= max_development_level }
set_variable = {
name = holding_quality
value = 3
}
}
else_if = {
limit = { county.development_level >= great_development_level }
set_variable = {
name = holding_quality
value = 3
}
}
else_if = {
limit = { county.development_level >= good_development_level }
set_variable = {
name = holding_quality
value = 2
}
}
else_if = {
limit = { county.development_level >= medium_development_level }
set_variable = {
name = holding_quality
value = 2
}
}
else_if = {
limit = { county.development_level >= bad_development_level }
set_variable = {
name = holding_quality
value = 1
}
}
else = {
set_variable = {
name = holding_quality
value = 1
}
}
}
holder = {
# Trigger the hidden event
if = {
limit = {
is_alive = yes
}
trigger_event = fp2_other_decisions.0001
}
}
}
}
# Struggle parameters
if = {
limit = {
has_holding_type = castle_holding
scope:character = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = completing_building_in_castle_gives_development
}
}
}
county = { change_development_progress_with_overflow = 10 }
}
if = {
limit = {
has_holding_type = church_holding
scope:character = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = completing_building_in_temple_gives_piety
}
}
}
scope:character = { add_piety = medium_piety_gain }
}
# Struggle catalysts
if = {
limit = {
has_holding_type = castle_holding
scope:character = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_new_building_in_castle
}
}
}
scope:character = {
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_new_building_in_castle
character = scope:character
}
}
}
}
else_if = {
limit = {
has_holding_type = city_holding
scope:character = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_new_building_in_city
}
}
}
scope:character = {
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_new_building_in_city
character = scope:character
}
}
}
}
else_if = {
limit = {
has_holding_type = church_holding
scope:character = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_new_building_in_temple
}
}
}
scope:character = {
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_new_building_in_temple
character = scope:character
}
}
}
}
if = {
limit = {
has_holding_type = church_holding
county.faith.religion = religion:islam_religion
scope:character = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_new_islamic_temple_construction
}
}
}
scope:character = {
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_new_islamic_temple_construction
character = scope:character
}
}
}
}
if = {
limit = {
scope:character = {
any_character_struggle = {
involvement = involved
phase_has_catalyst = catalyst_new_building_in_holdings
}
}
}
scope:character = {
every_character_struggle = {
involvement = involved
activate_struggle_catalyst = {
catalyst = catalyst_new_building_in_holdings
character = scope:character
}
}
}
}
# Points of Interest
# Apply them here directly so they are more promptly added than monthly via the POI update
if = {
limit = {
has_special_building = no
}
}
else_if = {
limit = {
OR = {
has_building_with_flag = { flag = travel_point_of_interest_martial }
has_building_with_flag = { flag = travel_point_of_interest_martial_minor }
}
NOT = { has_travel_point_of_interest = poi_special_buildings_martial }
}
add_travel_point_of_interest = poi_special_buildings_martial
}
else_if = {
limit = {
has_building_with_flag = { flag = travel_point_of_interest_learning }
NOT = { has_travel_point_of_interest = poi_special_buildings_learning }
}
add_travel_point_of_interest = poi_special_buildings_learning
}
else_if = {
limit = {
has_building_with_flag = { flag = travel_point_of_interest_religious }
NOT = { has_travel_point_of_interest = poi_special_buildings_religious }
}
add_travel_point_of_interest = poi_special_buildings_religious
}
else_if = {
limit = {
has_building_with_flag = { flag = travel_point_of_interest_diplomatic }
NOT = { has_travel_point_of_interest = poi_special_buildings_diplomatic }
}
add_travel_point_of_interest = poi_special_buildings_diplomatic
}
else_if = {
limit = {
has_building_with_flag = { flag = travel_point_of_interest_wonder }
NOT = { has_travel_point_of_interest = poi_special_buildings_wonder }
}
add_travel_point_of_interest = poi_special_buildings_wonder
}
else_if = {
limit = {
has_building_with_flag = { flag = travel_point_of_interest_economic }
NOT = { has_travel_point_of_interest = poi_special_buildings_economic }
}
add_travel_point_of_interest = poi_special_buildings_economic
}
# The Builder event chain
if = {
limit = {
has_variable = the_builder_holding
NOT = { has_variable = the_builder_finished }
}
var:the_builder_holding = { save_scope_as = holding_initiator }
#Did the Builder actually finish the holding, or was it cancelled?
scope:holding_initiator = {
if = {
limit = {
is_alive = yes
is_landed_or_landless_administrative = yes
is_available = yes
}
#Then remove the safeguard event that would clean up the Builder
if = {
limit = { has_variable = the_builder_holding_cancelled_safeguard }
remove_variable = the_builder_holding_cancelled_safeguard
}
#And trigger reward event
trigger_event = bp2_yearly.1071
}
}
set_variable = { name = the_builder_finished }
}
# Every time the Builder builds in their holding...
if = {
limit = {
scope:character ?= {
OR = {
has_character_modifier = the_city_builder_modifier
has_character_modifier = the_castle_builder_modifier
has_character_modifier = the_temple_builder_modifier
}
}
}
county = { change_development_progress = minor_development_progress_gain }
if = {
limit = {
scope:character ?= { has_character_modifier = the_city_builder_modifier }
}
scope:character = { add_gold = minor_gold_value }
}
if = {
limit = {
scope:character ?= { has_character_modifier = the_castle_builder_modifier }
}
scope:character = { add_prestige = minor_prestige_gain }
}
if = {
limit = {
scope:character ?= { has_character_modifier = the_temple_builder_modifier }
}
scope:character = { add_piety = minor_piety_gain }
}
}
#end any landless adventurer's construction task contract
if = {
limit = {
any_player = {
any_character_active_contract = {
task_contract_type = laamp_construction_contract
task_contract_employer = scope:character
save_temporary_scope_as = construction_contract
}
}
}
scope:construction_contract = {
if = {
limit = {
task_contract_taker.capital_province.county = root.county
}
complete_task_contract = success_critical
}
else = {
complete_task_contract = failure_standard
}
}
}
# Inspection - Has Holding Modifier
if = {
limit = {
has_province_modifier = inspection_empty_lands_domain_modifier
}
remove_province_modifier = inspection_empty_lands_domain_modifier
add_random_economic_building_effect = yes
}
else_if = {
limit = {
has_province_modifier = inspection_empty_lands_border_modifier
}
remove_province_modifier = inspection_empty_lands_border_modifier
add_random_fortification_building_effect = yes
}
# Admin - Governors get rewards for constructing buildings in governed counties
if = {
limit = {
scope:character = {
OR = {
is_governor = yes
AND = {
min_appointment_tier = tier_county
is_governor_or_admin_count = yes
}
tgp_is_any_minister = yes
}
}
}
scope:character = {
send_interface_message = {
type = msg_governor_duties
title = msg_governor_duties_t
desc = admin_construction_completed_desc
right_icon = root.barony
if = {
limit = {
government_allows = merit
}
change_merit = building_construction_merit_gain_value
if = {
limit = {
tgp_is_any_minister = yes
government_has_flag = government_has_influence
}
change_influence = estate_construction_influence_gain_value
}
}
else = {
change_influence = estate_construction_influence_gain_value
}
if = {
limit = {
building_construction_dynasty_prestige_gain_value > 0
}
dynasty = {
add_dynasty_prestige = building_construction_dynasty_prestige_gain_value
}
}
increase_governance_effect = { VALUE = 4 }
}
}
}
# # Harrying of the North - Pacification Gain
# if = {
# limit = {
# scope:character.culture = culture:norman
# has_global_variable = harrying_of_the_north
# exists = global_var:harrying_of_the_north.story_owner.var:pacification
# }
# global_var:harrying_of_the_north.story_owner = {
# change_variable = {
# name = pacification
# add = 2
# }
# }
# }
# Devaraja consecration event
if = {
limit = {
OR = {
has_building_with_flag = { flag = temple_citadel }
has_building_with_flag = { flag = temple }
has_building_with_flag = { flag = mandala_capital_building }
}
NOT = { has_variable = mandala_consecrated_walls }
scope:character = {
is_available_for_activity_trigger = yes
government_has_flag = government_is_mandala
has_mandala_aspect_trigger = yes
}
}
scope:character = {
trigger_event = devaraja.0005
}
set_variable = {
name = mandala_consecrated_walls
years = 30
}
}
# Brewery counter
brewery_counter_effect = yes
# Coronation Promise
if = {
limit = {
scope:character = root.province_owner.liege
scope:character = { has_character_modifier = coronation_vassal_building_modifier }
}
scope:character = {
send_interface_toast = {
title = coronation_vassal_building_tt
left_icon = root
add_prestige = medium_prestige_gain
}
}
}
}
#####################
# Mandala Government
#####################
scope:character = {
if = {
limit = { government_has_flag = government_is_mandala }
if = {
limit = {
exists = house
house = { has_house_aspiration_parameter = aspect_of_creation }
}
mandala_upgrade_creator_effect = yes
house = {
increment_variable_effect = {
VAR = num_buildings_built
VAL = 1
}
}
}
}
}
# Building Oath
scope:character = {
if = {
limit = {
is_alive = yes
has_variable = stewardship_oath_2_buildings
}
change_variable = {
name = stewardship_oath_2_buildings
add = 1
}
add_to_variable_list = {
name = stewardship_oath_2_building_list
target = root
}
}
}
}
}
# root: The province in which the building was started
# scope:character: The character that paid for the construction, if available
on_building_started = {
effect = {
#save the county holder as the character in case the construction wasn't started through GUI or by the AI
if = {
limit = {
NOT = { exists = scope:character }
}
root.county.holder = {
save_scope_as = character
}
}
if = {
limit = {
OR = {
has_construction_with_flag = temple
has_construction_with_flag = castle
has_construction_with_flag = city
}
any_player = {
has_government = landless_adventurer_government
in_diplomatic_range = scope:character
can_create_task_contract = {
type_name = laamp_construction_contract
employer = scope:character
}
save_temporary_scope_as = player_laamp
}
}
scope:player_laamp = {
create_task_contract = {
task_contract_employer = scope:character
task_contract_type = laamp_construction_contract
task_contract_tier = scope:character.task_contract_tier_value
location = scope:character.capital_province
save_scope_as = new_contract
}
scope:new_contract = {
set_variable = {
name = task_contract_employer
value = scope:character
}
set_variable = {
name = task_contract_destination
value = root
}
}
}
}
if = {
limit = {
has_province_modifier = travel_extra_building_resources_modifier
}
if = {
limit = {
has_variable = extra_building_resources
var:extra_building_resources > 1
}
change_variable = {
name = extra_building_resources
subtract = 1
}
remove_province_modifier = travel_extra_building_resources_modifier
add_province_modifier = travel_extra_building_resources_modifier
}
else = {
remove_province_modifier = travel_extra_building_resources_modifier
remove_variable = extra_building_resources
}
}
}
}
# root: The province in which the building was cancelled
# scope:character: The character that paid for the construction, if available
on_building_cancelled = {
effect = {}
}
# root: The holder of the province doing the razing
# province: The province in which the holding exists
on_holding_razed = {
effect = {
scope:province.county = { set_variable = was_razed }
send_interface_toast = {
title = province_razed_toast_title
left_icon = scope:province.barony
add_gold = {
value = minor_gold_value
add = scope:province.county.development_level
}
scope:province = {
if = {
limit = {
this = county.title_province
county.development_level >= 1
}
county = {
change_development_progress_with_overflow = {
value = scope:province.county.development_level
multiply = 10
multiply = -1
}
}
}
if = {
limit = {
this = county.title_province
county = {
uses_county_fertility = yes
}
}
county = {
change_county_fertility = medium_county_fertility_level_gain
}
}
if = {
limit = {
has_university_building_trigger = yes
}
if = {
limit = {
has_building_or_higher = generic_university
}
remove_building = generic_university
}
else_if = {
limit = {
has_building_or_higher = al_azhar_university
}
remove_building = al_azhar_university
}
else_if = {
limit = {
has_building_or_higher = sankore_university
}
remove_building = sankore_university
}
else_if = {
limit = {
has_building_or_higher = siena_university
}
remove_building = siena_university
}
else_if = {
limit = {
has_building_or_higher = nalanda_university
}
remove_building = nalanda_university
}
else_if = {
limit = {
has_building_or_higher = house_of_wisdom_01
}
remove_building = house_of_wisdom_01
}
else_if = {
limit = {
has_building_or_higher = al_qarawiyyin_university_01
}
remove_building = al_qarawiyyin_university_01
}
else_if = {
limit = {
has_building_or_higher = somapura_university_01
}
remove_building = somapura_university_01
}
else_if = {
limit = {
has_building_or_higher = cluny_abbey_01
}
remove_building = cluny_abbey_01
}
}
}
}
}
}
# root: The holder of the province doing the rebuilding
# province: The province in which the great building exists
on_great_building_rebuilt = {
effect = {
add_piety_experience = {
add = minor_piety_gain
multiply = piety_level
}
hidden_effect = {
if = {
limit = { has_character_modifier = mandala_rise_from_the_ashes_modifier }
remove_character_modifier = mandala_rise_from_the_ashes_modifier
}
if = {
limit = {
NOT = { has_character_flag = devaraja_flag }
has_mandala_aspect_trigger = yes
}
add_character_flag = devaraja_flag
}
}
add_character_modifier = {
modifier = mandala_rise_from_the_ashes_modifier
years = 10
}
#Memory
create_character_memory = { type = rebuilt_mandala_temple_memory }
scope:new_memory ?= {
set_variable = {
name = mandala_capital_rebuilt_location
value = scope:province
}
if = {
limit = { exists = var:mandala_capital_rebuilt_location }
#To prevent 'unused except in loc' errors :catto:
}
}
}
}

View file

@ -0,0 +1,53 @@
# root: is involved (or interloper) character
# Scope:struggle is the currently pulsing struggle.
yearly_struggle_playable_pulse = {
effect = {
}
}
# root: is involved (or interloper) character
# Scope:struggle is the currently pulsing struggle.
five_year_struggle_playable_pulse = {
trigger = {
basic_is_valid_for_yearly_events_trigger = yes
OR = {
fp2_character_interloper_in_struggle_trigger = yes
fp2_character_involved_in_struggle_trigger = yes
}
}
on_actions = {
fp2_iberian_struggle_random_events
}
}
fp2_iberian_struggle_random_events = {
trigger = {
alwasys = no
# fp2_character_involved_in_struggle_trigger = yes
}
random_events = {
chance_to_happen = 95
1 = 0
# 80 = fp2_struggle.1000 #Stoking the Fire
# 50 = fp2_struggle.1001 #War Widows
# 50 = fp2_struggle.1010 #Soul of Iron
# 45 = fp2_struggle.1020 #Death of a Councilman
# 70 = fp2_struggle.2001 #Desperate Villagers Seek New Lord
# #80 = fp2_struggle.2003 #Band of Lost Birds removed for FP3
# 25 = fp2_struggle.2004 #The weights inside this event are a bit high, but since the event is struggle-exclusive it will probably not be an issue
# 70 = fp2_struggle.2006 #The Borders of Faith
# 70 = fp2_struggle.2007 #Castle Worthy of Iberia
# 5 = fp2_struggle.2009 #Catching Thieves of Myth
# 90 = fp2_struggle.3001 #The Price of War Not particularly struggle related, but making it only appear during the struggle makes it more unique and special
# 50 = fp2_struggle.3011 #Order of the Hatchet
# 25 = fp2_struggle.3021 #The Wrath of Heaven Usually the lower chance is because the effects are too great, in this case it is to ensure people don't think every other iberian had discovered han powder.
}
}
fp2_iberian_struggle_starting_events = {
events = {
# neutral_struggle.0001
# fp2_struggle.0003
}
}

View file

@ -3058,7 +3058,7 @@ on_title_gain_usurpation = {
}
}
trigger_event = NEOW_dynamic_titles.0014
}
}
######################################################
@ -3080,18 +3080,8 @@ on_title_gain_usurpation = {
}
}
scope:title = {
limit = {
is_nomad_title = no
tier = tier_county
scope:title.title_province = {
NOR = {
has_holding_type = monotown_holding
has_holding_type = city_holding
}
}
}
scope:title.title_province = {
set_holding_type = city_holding
set_holding_type = city_holding
}
}
}

View file

@ -0,0 +1,425 @@
fp1_yearly_events = {
trigger = { fp1_eligible_for_yearly_events_trigger = yes }
weight_multiplier = {
base = 1
modifier = { # Reduces frequency for characters with non-matching cultures
factor = 0.33
religion = religion:germanic_religion
NOT = {
culture = { has_cultural_pillar = heritage_north_germanic }
}
}
modifier = { # Reduces frequency for having both sets of FP events valid
factor = 0.5
OR = {
fp2_eligible_for_yearly_events_trigger = yes
fp3_eligible_for_yearly_events_trigger = yes
}
}
}
random_events = {
chance_to_happen = 65
200 = 0
# Other Events
# 100 = varangian.0001
200 = trait_specific.9001 # Become Poet
#FP1 Events
## Shieldmaidens
100 = fp1_shieldmaiden.0001 # A wrong-gender courtier wishes to fight for you.
400 = fp1_shieldmaiden.0032 # Your shieldmaiden improves their skills.
## General Yearlies
200 = fp1_yearly.0001 # Escaped Thrall - A thrall leaves your court in the night.
200 = fp1_yearly.0011 # Calls for Courtier to be Declared Nithing - Locals call for one of your courtiers to be exiled.
200 = fp1_yearly.0021 # A Matter of Life and Death - Two knights fight to the death over nothing.
200 = fp1_yearly.0031 # Tall Tales at the Table - A deceitful warrior is telling tall-tales at court.
100 = fp1_yearly.0041 # Explorers from the South - An Islamic explorer stops by for a visit.
200 = fp1_yearly.0051 # The Unquiet Dead - You are informed of a reputed-draugr.
200 = fp1_yearly.0071 # In the Deep Places of the World - locals in your Scandi capital report a troll.
200 = fp1_yearly.0091 # A Vessel fit for a Ruler - commissioning a personal longship.
200 = fp1_yearly.0101 # A Game of Riddles - a courtier challenges you to a game of riddles.
200 = fp1_yearly.0111 # Accursed - one of your courtiers is the victim of a nithing pole.
200 = fp1_yearly.2000 # A Child wants to run away to marry their beloved
300 = fp1_yearly.2100 # Two lovers duel for your love
200 = fp1_yearly.2200 # Berserker rampages though court
200 = fp1_yearly.2300 # Convince a group of soldiers to join you
200 = fp1_yearly.2400 # Invest in something that'll aid in your hunts
200 = fp1_yearly.2600 # Become a Berserker
## Flavour Yearlies
200 = fp1_yearly.0501 # Out for a Sail - you spot a ship in distress.
200 = fp1_yearly.0511 # The Stench of Success - a courtier won't let an old trophy go.
200 = fp1_yearly.0521 # Blood on the Snow - your child wishes to snowball fight.
200 = fp1_yearly.0531 # [Dynasty] on Ice - your child wants to learn how to ice skate.
200 = fp1_yearly.0541 # The Beast of [Capital] - your child is playing pranks on courtiers.
200 = fp1_yearly.0551 # Fishy Business - a courtier won't stop eating rotten fish.
200 = fp1_yearly.0561 # My Arm Against Yours - a knight challenges you to arm-wrestling.
200 = fp1_yearly.0571 # Petty Vandalism - your child has vandalised a runestone.
200 = fp1_yearly.0581 # When I Grow Up - your child wishes to be a shieldperson.
200 = fp1_yearly.0591 # Raised Voices at the Thing - two of your counties are fighting at a regional thing.
200 = fp1_yearly.0601 # The Hardest Part of Ruling - you're incredibly bored in a protracted thing session.
200 = fp1_yearly.0611 # Leading by Example - one of your children hurts another whilst imitating you.
200 = fp1_yearly.0641 # Worthy of the Ocean - your longships are in disrepair.
200 = fp1_yearly.0651 # Leviathan - you spot a whale whilst sailing.
200 = fp1_yearly.0661 # A Novel Challenge - a knight challenges you to skiing.
200 = fp1_yearly.0671 # A Slippery Slope - your child wants to go sledding.
200 = fp1_yearly.0681 # Why Can't I Come? - your child wants to come raiding.
200 = fp1_yearly.0691 # Attempted Atonement - a knight has converted after raiding a reformed faith.
## Special Yearlies
50 = fp1_yearly.1001 # You notice a stranger has been hanging around the court.
50 = fp1_yearly.1071 # Sparklingly Clean
50 = fp1_yearly.1081 # An explorer of the Atlantic wishes to share their tales with you.
5 = fp1_yearly.2500 # What's that deviant up to this time!?
1000 = fp1_major_decisions.1001 # Canute & the Tide
## Jomsvikings
# 500 = fp1_jomsvikings.0001 # FP1 - Jomsvikings offer a Retainer
# 500 = fp1_jomsvikings.0021 # FP1 - Jomsvikings send Event Troops
# 1000 = fp1_jomsvikings.0041 # FP1 - Jomsvikings move to execute a stain on the faith.
}
}
fp2_yearly_events = {
trigger = {
# has_fp2_dlc_trigger = yes
always = no
# Most events are geographical in nature
# capital_province ?= { geographical_region = world_europe_west_iberia }
}
weight_multiplier = {
base = 1
modifier = { # Reduces frequency for characters with non-matching cultures
factor = 0.33
NOT = {
culture = { has_cultural_pillar = heritage_iberian }
}
}
modifier = { # Reduces chance after recently having had an event from this pulse
factor = 0.2
has_character_flag = recently_got_fp2_event
}
modifier = { # Reduces frequency for having both sets of FP events valid
factor = 0.5
OR = {
fp1_eligible_for_yearly_events_trigger = yes
fp3_eligible_for_yearly_events_trigger = yes
}
}
}
random_events = {
200 = 0
# FP2 - Fate of Iberia Events
# 160 = fp2_yearly.1001 # Chess Two
# 10 = fp2_yearly.1002 # A Compromising Position
# 160 = fp2_yearly.1003 # Tilting at...Giants?
# 160 = fp2_yearly.1004 # The Hawk of Quraysh
# 160 = fp2_yearly.1005 # Lost Viking
# 80 = fp2_yearly.1006 # Viking Cheese?
# 180 = fp2_yearly.2020 # Horchata colonialism event
# 160 = fp2_yearly.4004 # The Wandering Master
# 160 = fp2_yearly.4005 # Establishing Enclaves
# 160 = fp2_yearly.4006 # God's Architect
# 160 = fp2_yearly.8000 # Burning the Vineyards
# 180 = fp2_yearly.8001 # Assembling the Cortes
# 160 = fp2_yearly.8002 # A Dietary Dilemma
# 160 = fp2_yearly.8003 # Flight of Fancy
# 160 = fp2_yearly.8004 # The Toledo School of Translation
# 160 = fp2_yearly.8005 # Under the Stone Pine
# 160 = fp2_yearly.8006 # Saqaliba Settlers
# 180 = fp2_struggle.1002 # Xenophilic Advancment
# 160 = fp2_struggle.1050 # Dreams of Destruction
# 150 = fp2_struggle.2000 # Disorderly Market
# 140 = fp2_struggle.2008 # Misdeeds of the Councillor
# 350 = fp2_struggle.2013 # The Secret to Freedom
# 130 = fp2_struggle.2015 # Letter on the Back
# 180 = fp2_yearly.2025 # Suffering from Success
# 150 = fp2_yearly.4001 # You fancy a little siesta
# 150 = fp2_yearly.4002 # A county is increasingly religiously intertwined
# 150 = fp2_yearly.4003 # The road to Santiago is under threat from bandits
# 150 = fp2_yearly.4007 # Finding a shell on the road to Santiago
# 150 = fp2_yearly.4008 # Folk stories around the fireside
# 300 = fp2_yearly.4009 # Visiting the Malato Tree
# 150 = fp2_yearly.4010 # Finding a Verraco
# 300 = fp2_yearly.3000 # Neighboring Muslims are growing rice, adopt the practice yourself?
# 100 = bell_special_yearly.1000 # The bell of Huesca yearly
# 150 = fp2_yearly.9000 # Thriving Jewish Community
# 150 = fp2_yearly.9001 # Suspect Conversos of secretly praciticing Judaism
# 150 = fp2_yearly.9002 # Jewish people come fleeing persecution from a nearby realm
# 150 = fp2_yearly.9005 # Toledan Nights
# 50 = fp2_yearly.9006 # Local bishop mad his church faces the wrong way
}
effect = {
root = {
add_character_flag = {
flag = recently_got_fp2_event
days = 1095 # 3 years
}
}
}
}
bp1_yearly_events = { # Disabled in yearly_on_actions
trigger = {
has_dlc_feature = friends_and_foes
OR = {
any_relation = { type = friend }
any_relation = { type = rival }
}
}
weight_multiplier = {
base = 1
modifier = { # Increase frequency the more you fit the conditions
add = 0.25
any_relation = { type = friend }
}
modifier = { # Increase frequency the more you fit the conditions
add = 0.25
any_relation = { type = rival }
}
modifier = { # Increase frequency the more you fit the conditions
add = 0.25
any_relation = { type = best_friend }
}
modifier = { # Increase frequency the more you fit the conditions
add = 0.25
any_relation = { type = nemesis }
}
}
random_events = {
200 = 0
#BP1 Events
100 = bp1_yearly.1000 # Best friend introduces you to a new hobby
200 = bp1_yearly.1010 # A friend offers to mediate with your HoF who has excommunicated you
500 = bp1_yearly.1020 # A friend visits you on your dying bed
500 = bp1_yearly.1021 # You visit a friend on their dying bed
500 = bp1_yearly.1030 # A rival visits you on your dying bed
500 = bp1_yearly.1031 # You visit a rival on their dying bed
100 = bp1_yearly.1040 # You make a new friend at the bathhouse
50 = bp1_yearly.1050 # You make a new rival at the bathhouse
100 = bp1_yearly.1060 # React to a superstitious friend
150 = bp1_yearly.1061 # Make someone superstitious - hidden
100 = bp1_yearly.1070 # Rival is superstitious - take advantage?
100 = bp1_yearly.1080 # Married off relative writes home
400 = bp1_yearly.1082 # Married off relative writes home to share a secret
100 = bp1_yearly.2000 # Spoil your partner(s), learn a secret/hook followup
400 = bp1_yearly.2010 # Two of your spouses/concubines are lovers!
100 = bp1_yearly.2020 # A consort attempts to influence you into changing your heir
100 = bp1_yearly.2030 # Mopey consort wants some guidance
100 = bp1_yearly.2040 # Consort is upset with other consort
100 = bp1_yearly.2050 # Friendly consorts wants to start a study circle
200 = bp1_yearly.2060 # Friendly consorts want to tutor other consort's child
100 = bp1_yearly.2070 # Childless older soulmate spouse ponders your relationship
100 = bp1_yearly.3001 # Friend spots you some cash
100 = bp1_yearly.3002 # You spot your friend some cash
100 = bp1_yearly.3007 # Spouse's family member wants you to sponsor their inspiration
100 = bp1_yearly.3100 # Your vassal/friend/family member offers you a skilled courtier
20 = bp1_yearly.3101 # Friend offers to sell you a county you have a claim on
100 = bp1_yearly.3201 # Fake feast invite from rival/nemesis
100 = bp1_yearly.3300 # Remembering a pilgrimage
200 = bp1_yearly.3301 # Remembering a pilgrimage w/ a friend
100 = bp1_yearly.4000 # Reflect over a family memory
100 = bp1_yearly.4010 # Spouse demands their child gets a better guardian
100 = bp1_yearly.4020 # Friend writes poetry about a war memory
250 = bp1_yearly.4030 # Rival nestles their way into marrying one of your vassals, turns them disloyal
10 = bp1_yearly.4040 # Kindly grandmother won't stop feeding you snacks; suffer the consequences of overeating, or break her heart?
50 = bp1_yearly.5301 # Your friend is concerned about your physique
150 = bp1_yearly.5100 # Chadsplaining to a plain courtier
150 = bp1_yearly.5701 # Your Friend's Spouse Is Keeping Them Away From You
100 = bp1_yearly.5702 # You ask a friend for help with skill
200 = bp1_yearly.5703 # Your lover/rival threatens you in bed
100 = bp1_yearly.5704 # Your rival seems strangely... attractive?
200 = bp1_yearly.5705 # Your friend tries to talk you out of a bad relationship
100 = bp1_yearly.5706 # You sleep with your rival's offspring
400 = bp1_yearly.5707 # Your rival catches you sleeping with their offspring
100 = bp1_yearly.5708 # You empathise with a friend's faith
100 = bp1_yearly.5709 # Tempers flare between you and your rival
70 = bp1_yearly.5713 # Your lover asks for money
100 = bp1_yearly.5715 # You and a friend argue about pronunciation
100 = bp1_yearly.5716 # Your zealous wife burns books
100 = bp1_yearly.5717 # Your rival and your friend get into a drunken brawl
100 = bp1_yearly.5719 # Your disloyal vassal is trying to embezzle
100 = bp1_yearly.5720 # You and your rival armwrestle
200 = bp1_yearly.5722 # Your nemesis launches your pet out of a catapult
100 = bp1_yearly.5725 # You search for Khutulun
50 = bp1_yearly.5728 # Rival steals and burns one of your artifacts
10 = bp1_yearly.5740 # Scrambling for Answers
80 = bp1_yearly.5800 # You make a perfume
125 = bp1_yearly.6000 # Attacked by Rival's Child / Family Feud
100 = bp1_yearly.7000 # Go on a picnic
100 = bp1_yearly.7001 # Go fishing
10 = bp1_yearly.7002 # Throw chamberpot at rival
25 = bp1_yearly.7003 # Orgy Tapestry
100 = bp1_yearly.7004 # Friend offers to talk about bad memory
100 = bp1_yearly.7010 # Loyalty test
100 = bp1_yearly.7050 # Memory of a war
100 = bp1_yearly.7051 # Memory of Battle
100 = bp1_yearly.7052 # Telling a story of a memory
100 = bp1_yearly.7053 # A memory of revenge
100 = bp1_yearly.7054 # Forgetting a memory
100 = bp1_yearly.7055 # Recording a memory
100 = bp1_yearly.7056 # Intimidating someone
150 = bp1_yearly.7057 # Yearning
100 = bp1_yearly.7058 # Friend eats all your food
100 = bp1_yearly.8000 # Claimant moving towards rivalry
200 = bp1_yearly.8010 # Best friend offers you a negotiated alliance
100 = bp1_yearly.8020 # Rival of your rival offers friendship
100 = bp1_yearly.8040 # Friend with conflicting personality falls out with you
100 = bp1_yearly.9001 # Bully/guardian destroys your favourite toy
100 = bp1_yearly.9005 # You get revenge for your destroyed toy
100 = bp1_yearly.9006 # Becoming friends over a common sin
10 = bp1_yearly.9007 # You find a peasant who looks exactly like you
50 = bp1_yearly.9016 # Uppity second-in-line wants the throne
50 = bp1_yearly.9017 # Uppity child is insecure about culture
200 = bp1_yearly.9018 # Illegitimate child feels excluded
100 = bp1_yearly.9019 # Spouse proposes a gay threesome
200 = bp1_yearly.9020 # Spouse wants to do something kinky
100 = bp1_yearly.9021 # Rival spouse is good in the bedroom
100 = bp1_yearly.9022 # Friend holds an intervention
200 = bp1_yearly.9023 # You realise you don't speak the same language
100 = bp1_yearly.9024 # A friend visits you while you're sick
150 = bp1_yearly.9025 # You realise you hate your friend
100 = bp1_yearly.9026 # You're haunted by an old friend who convinces you to make amends before you die
100 = bp1_yearly.9040 # The ghost of your dead lover wants to have sex again
100 = bp1_yearly.9042 # Your chaplain finds a dessert that looks like HealthGodName
100 = bp1_yearly.9043 # Your chaplain admits to being a deviant and a cannibal who eats babies
100 = bp1_yearly.9047 # Lover wants you to wear their hair
100 = bp1_yearly.9048 # Nemesis wants to end your rivalry by wrestling
100 = bp1_yearly.9050 # You and a friend share war stories
20 = bp1_yearly.7100 # Excreta incident, gain Nemesis
# Family Feud
5 = bp1_house_feud.0001 # Consider starting feud against own rival's house
5 = bp1_house_feud.0002 # Consider starting feud against house family member rivals
5 = bp1_house_feud.0003 # Consider starting feud against house who killed close family
5 = bp1_house_feud.0006 # Consider starting feud against house with competing claims
5 = bp1_house_feud.0007 # Consider starting feud against house who imprisoned you a while
5 = bp1_house_feud.0008 # Consider starting feud against house who imprisoned family a while
5 = bp1_house_feud.0012 # Consider starting feud against house who cuckolded you
}
}
fp3_yearly_events = {
trigger = {
has_fp3_dlc_trigger = yes
# Most events are geographical in nature
capital_province = { geographical_region = world_persian_empire }
}
weight_multiplier = {
base = 1
modifier = { # Reduces frequency for characters with non-matching cultures
factor = 0.33
NOR = {
culture = { has_cultural_pillar = heritage_iranian }
culture = { has_cultural_pillar = heritage_turkic }
culture = { has_cultural_pillar = heritage_mongolic }
culture = { has_cultural_pillar = heritage_arabic }
}
}
modifier = { # Reduces chance after recently having had an event from this pulse
factor = 0.2
has_character_flag = recently_got_fp3_event
}
modifier = { # Reduces frequency for having other sets of FP events valid
factor = 0.5
OR = {
fp1_eligible_for_yearly_events_trigger = yes
fp2_eligible_for_yearly_events_trigger = yes
}
}
}
random_events = {
200 = 0
# Frontier Events
250 = fp3_yearly.8000 # Ghazi Gone Bad
250 = fp3_yearly.8001 # Frontier Fortress Benefactor
250 = fp3_yearly.8002 # Faith at the Frontier
350 = fp3_yearly.8003 # Exotic Espand
350 = fp3_yearly.8004 # The Frontier Beckons
350 = fp3_yearly.8009 # Caliphal Concerns
250 = fp3_yearly.8010 # Abode of War
250 = fp3_yearly.8014 # Secrets of the Teapot
250 = fp3_yearly.8016 # Forgotten Stones & Hyrcanian Havoc
500 = fp3_yearly.8018 # Heavenly Horses
# The Nomads Story Cycle
100 = fp3_yearly.8888 #Grazing Grievances
# Heritage Events
250 = fp3_yearly.8019 # Refuge of Light
250 = fp3_yearly.8020 # The Lady of the Land
350 = fp3_yearly.8021 # An Acidic Accident
500 = fp3_yearly.8024 # The Return to the Sky
350 = fp3_yearly.8027 # Nine-Hundred Ninety Chapters of Gold
250 = fp3_yearly.8033 # Frozen Delights
550 = fp3_yearly.8034 # The Hephthalite Hoard
250 = fp3_yearly.8035 # The Heart and the Creator
250 = fp3_yearly.8036 # The City of the Mouthless
500 = fp3_yearly.8037 # A Cure for Acedia (the Melancholia Chain)
#FP3 - Extra Yearly Events
150 = fp3_yearly.8045 #The Mysterious Bundle (the Buzina Chain)
# Zoroastrian Events
200 = fp3_yearly.8050 #The Fate of the Dead
200 = fp3_yearly.8051 #The Purest Fire
# Guardianship Events
200 = childhood.2400 # Ward approaches guardian with theological doubts
# Clan Events
250 = fp3_clan.8000 # Usury against Unity
250 = fp3_clan.8001 # Clan Quarrel
250 = fp3_clan.8002 # Bonds of Faith
250 = fp3_clan.8003 # The Power of a Name
250 = fp3_clan.8004 # Bonds of Fear
250 = fp3_clan.8005 # A Proper Position
250 = fp3_clan.8006 # Small Spies
125 = fp3_clan.3000 # Ravaged Tulips
# Tax Collector / Clan Events
250 = fp3_clan.1000 # Worth more than Gold?
250 = fp3_clan.1010 # GetHerHis Cup Runneth Over
250 = fp3_clan.1020 # Practical Learning
250 = fp3_clan.1030 # Tax Dispute
250 = fp3_clan.1040 # Mismanaged Land
250 = fp3_clan.8008 #Bleeding them Dry
250 = fp3_clan.8009 #Popular with the People
250 = fp3_clan.8010 #Competent Qadis / More Magistrates
250 = fp3_clan.8011 #A Proper Paymaster
250 = fp3_clan.8012 #Auspicious Avarice
240 = fp3_clan.8013 #The Burden of Tax Farming
250 = fp3_clan.8015 #Scandalous Scion
250 = fp3_clan.8016 #Hammam Havoc
250 = fp3_clan.8017 #A Questionable Position
# Eren events
250 = fp3_yearly.2000 # Daylight Censors
250 = fp3_yearly.2001 # Public Intoxication
100 = fp3_yearly.2011 # Maunds of Wheat for non-royal court users
250 = fp3_yearly.2020 # Set the Scale, Vassal Version
500 = fp3_yearly.2040 # Commander of the Faithful
500 = false_conversion.2000 # A Moment of Weakness
250 = fp3_scholarship.1000 # A Second Aryabhata
}
effect = {
root = {
add_character_flag = {
flag = recently_got_fp3_event
days = 1095
}
}
}
}