revert holy order

This commit is contained in:
Damimani 2026-05-21 20:53:29 +02:00
parent def95ea312
commit 9d15fd1cea
16 changed files with 4 additions and 4120 deletions

View file

@ -1,485 +0,0 @@
### Found Holy Order ###
create_holy_order_decision = {
picture = {
trigger = {
culture = { has_graphical_east_asia_culture_group_trigger = yes }
}
reference = "gfx/interface/illustrations/holding_types/tgp_chinese_pagoda.dds"
}
picture = {
trigger = {
culture = { has_graphical_india_culture_group_trigger = yes }
}
reference = "gfx/interface/illustrations/holding_types/tgp_castle_se_asia.dds"
}
picture = {
reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds"
}
decision_group_type = major
ai_goal = yes
is_shown = {
is_landed = yes
NOR = {
faith = {
has_doctrine = special_doctrine_immaterial_harmony
}
faith = {
any_faith_holy_order = {
holy_order_patron = root
save_temporary_scope_as = order
}
}
}
# Jomsvikings should use their special decision if appropriate.
trigger_if = {
limit = { has_fp1_dlc_trigger = yes }
faith = {
NOT = { fp1_valid_norse_faith_for_jomsvikings_trigger = yes }
}
}
trigger_if = {
limit = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = holy_order_can_be_created_by_dukes
}
highest_held_title_tier >= tier_duchy
}
NOT = {
any_sub_realm_barony = {
is_under_holy_order_lease = yes
}
}
}
OR = {
AND = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = holy_order_can_be_created_by_dukes
}
highest_held_title_tier >= tier_duchy
}
highest_held_title_tier >= tier_kingdom
any_held_county = {
any_in_de_jure_hierarchy = {
barony_is_valid_for_holy_order_lease_trigger = { CHARACTER = root }
}
}
}
}
widget = {
controller = create_holy_order
barony_valid = {
trigger_if = {
limit = { exists = this }
barony_is_valid_for_holy_order_lease_trigger = { CHARACTER = scope:ruler }
}
trigger_else = {
custom_description = {
text = "has_holy_order_barony_selected"
always = no
}
}
}
}
is_valid_showing_failures_only = {
is_available_adult = yes
is_at_war = no
}
is_valid = {
trigger_if = {
limit = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = holy_order_can_be_created_by_dukes
}
}
highest_held_title_tier >= tier_duchy
}
trigger_else = {
custom_description = {
text = "is_king_or_emperor"
highest_held_title_tier >= tier_kingdom
}
}
custom_description = {
text = "has_two_castle_county"
any_held_county = {
any_in_de_jure_hierarchy = {
barony_is_valid_for_holy_order_lease_trigger = { CHARACTER = root }
}
}
}
trigger_if = {
limit = {
exists = faith.religious_head
root != root.faith.religious_head
}
faith.religious_head = {
opinion = {
target = root
value >= {
value = 0
if = {
limit = { is_ai = no }
add = high_positive_opinion
}
}
}
}
}
trigger_if = {
limit = {
is_ai = yes
}
piety_level >= 1
}
trigger_else = {
piety_level >= 3
}
}
cost = {
gold = {
value = 0
if = {
limit = {
has_treasury = no
}
add = holy_order_gold_cost
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
}
add = holy_order_gold_cost
}
}
piety = {
value = holy_order_piety_cost
}
}
effect = {
custom_tooltip = create_holy_order_decision_effect_message
if = { # If you have no valid barony this will throw errors when you open the decision - we add this check to avoid that
limit = {
exists = scope:barony
}
hidden_effect = {
if = {
limit = { scope:barony.holder != root }
create_title_and_vassal_change = {
type = leased_out
save_scope_as = change
add_claim_on_loss = no
}
scope:barony = {
change_title_holder_include_vassals = {
holder = root
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
}
}
create_character = {
template = holy_order_leader_character
location = scope:barony.title_province
save_scope_as = leader
}
create_holy_order_neutral_effect = {
LEADER = scope:leader
CAPITAL = scope:barony
NEW_HO_SCOPE = new_holy_order
FOUNDER = root
}
}
create_holy_order_effect = yes
}
ai_potential = {
highest_held_title_tier >= tier_kingdom
is_playable_character = yes
OR = {
any_held_title = {
title_tier = barony
barony_is_valid_for_holy_order_lease_trigger = { CHARACTER = root }
}
any_vassal = {
primary_title.tier = tier_barony
any_held_title = {
barony_is_valid_for_holy_order_lease_trigger = { CHARACTER = root }
}
}
}
}
ai_will_do = {
base = 200
modifier = {
add = {
faith = {
# Don't create more than 5 holy orders for a faith
every_faith_holy_order = {
subtract = 40
}
}
}
}
modifier = {
government_has_flag = government_is_mandala
add = -150
}
}
}
### Borrow Gold from Holy Order ###
borrow_from_holy_order_decision = { #by Linnéa Thimrén
picture = {
trigger = {
culture = { has_graphical_india_culture_group_trigger = yes }
}
reference = "gfx/interface/illustrations/decisions/hindu_religious.dds"
}
picture = {
reference = "gfx/interface/illustrations/decisions/decision_spend_money.dds"
}
desc = borrow_from_holy_order_decision_desc
selection_tooltip = borrow_from_holy_order_decision_tooltip
ai_check_interval_by_tier = {
barony = 0
county = 72
duchy = 72
kingdom = 72
empire = 72
hegemony = 72
}
cost = {
piety = 50
}
cooldown = { days = 5475 }
is_shown = {
is_playable_character = yes
highest_held_title_tier > tier_barony
faith = {
any_faith_holy_order = { count >= 1 } #Your faith must have a Holy Order
}
# cannot already have a loan - keep it simple
NOR = {
exists = var:loan_amount_owed
exists = var:loan_holder
}
}
is_valid_showing_failures_only = {
is_available = yes
custom_description = {
text = borrow_from_holy_order_gold_condition
faith = {
any_faith_holy_order = {
leader = {
gold >= holy_order_gold_value
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
}
}
}
}
effect = {
hidden_effect = {
faith = {
random_faith_holy_order = {
limit = {
leader = {
gold >= holy_order_gold_value
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
}
leader = { save_scope_as = recipient }
save_scope_as = order
}
}
trigger_event = holy_order.0200
}
custom_tooltip = borrow_from_holy_order_decision_effect_tooltip
}
ai_potential = {
always = yes
}
ai_will_do = {
base = 50
ai_value_modifier = {
ai_zeal = -0.5
}
ai_value_modifier = {
ai_greed = 0.5
}
}
}
### Revoke Holy Order Lease ###
cancel_holy_order_lease_decision = {
picture = {
trigger = {
culture = { has_graphical_india_culture_group_trigger = yes }
}
reference = "gfx/interface/illustrations/decisions/hindu_soldiers.dds"
}
picture = {
reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds"
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
faith = {
faith_hostility_level = {
target = scope:barony.lessee_title.holder.faith
value >= faith_hostile_level
}
}
}
desc = cancel_holy_order_lease_hostile_decision_desc
}
desc = cancel_holy_order_lease_decision_desc
}
}
ai_check_interval_by_tier = {
barony = 0
county = 36
duchy = 36
kingdom = 36
empire = 36
hegemony = 36
}
is_shown = {
is_landless_adventurer = no
is_playable_character = yes
any_sub_realm_barony = {
barony_is_valid_for_holy_order_lease_cancellation_trigger = { ACTOR = root }
}
}
widget = {
controller = revoke_holy_order_lease
barony_valid = {
trigger_if = {
limit = { exists = this }
barony_is_valid_for_holy_order_lease_cancellation_trigger = { ACTOR = root }
}
trigger_else = {
custom_description = {
text = "has_holy_order_barony_selected"
always = no
}
}
}
}
is_valid_showing_failures_only = {
is_available_adult = yes
is_at_war = no
}
effect = {
revoke_holy_order_lease_effect = {
CHARACTER = root
TARGET = scope:barony.lessee
BARONY = scope:barony
}
hidden_effect = {
#Message is sent through the on_holy_order_destroyed on_action instead!
#send_interface_toast = {
# type = holy_order_founded_message
# desc = i_created_holy_order_message
# left_icon = scope:leader
# right_icon = scope:new_holy_order.title
#}
#save_scope_as = holy_order_creator
#every_ruler = {
# limit = {
# faith = scope:holy_order_creator.faith
# this != scope:holy_order_creator
# }
# send_interface_message = {
# type = holy_order_founded_message
# desc = someone_created_holy_order_message
# left_icon = scope:holy_order_creator
# right_icon = scope:new_holy_order.title
# }
#}
#every_neighboring_top_liege_realm_owner = {
# limit = {
# faith != scope:holy_order_creator.faith
# }
# send_interface_message = {
# type = enemy_holy_order_founded_message
# desc = other_faith_neighbor_created_holy_order_message
# left_icon = scope:holy_order_creator
# right_icon = scope:new_holy_order.title
# }
#}
}
}
ai_potential = {
is_playable_character = yes
highest_held_title_tier >= tier_county
any_sub_realm_barony = {
county.holder = { is_ai = yes }
is_under_holy_order_lease = yes
}
}
ai_will_do = {
base = 0
# revoke titles leased to holy orders of the wrong faith
modifier = {
add = 100
exists = scope:barony.lessee
scope:barony.lessee.faith != root.faith
}
# Revoke if cynical
modifier = {
add = 100
ai_zeal <= -50
exists = scope:barony.lessee
NOT = {
any_patroned_holy_order = {
leader = {
this = scope:barony.lessee
}
}
}
}
}
}

View file

@ -86,214 +86,4 @@
ai_will_do = {
base = 100
}
}
subjugate_hof_decision = {
picture = {
reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds"
}
desc = subjugate_hof_decision_desc
selection_tooltip = subjugate_hof_decision_tooltip
decision_group_type = major
is_shown = {
#always = no
faith = {
exists = religious_head
}
#let's not assimilate people if the HoF doesn't have our own faith
faith = faith.religious_head.faith
any_religion_global = {
any_faith = {
NOT = {
this = root.faith
}
NOT = {
has_locked_hof = yes
}
NOT = {
has_doctrine = unreformed_faith_doctrine
}
OR = {
AND = {
faith_hostility_level = {
target = root.faith
value <= faith_astray_level
}
root.faith = {
faith_hostility_level = {
target = prev
value <= faith_astray_level
}
}
#this decision is mostly disabled for now, since we want more control
#but it's enabled to revert emancipations
always = no
}
AND = {
has_variable = former_foreign_hof
var:former_foreign_hof = root.faith
}
}
any_holy_site = {
#count >= holy_sites_to_create_spiritual_head_of_faith
count >= 3
holder.top_liege = root
holder.faith = root.faith
}
OR = {
AND = {
has_doctrine = doctrine_spiritual_head
root.faith = {
has_doctrine = doctrine_spiritual_head
}
}
AND = {
has_doctrine = doctrine_temporal_head
root.faith = {
has_doctrine = doctrine_temporal_head
}
}
AND = {
has_doctrine = doctrine_holy_order_head
root.faith = {
has_doctrine = doctrine_holy_order_head
}
}
#headless faiths can't be subjugated
#has_doctrine = doctrine_no_head
}
OR = {
NOT = {
exists = religious_head
}
NOT = {
religious_head.faith = root.faith
}
}
#don't assimilate dead faiths
num_county_followers > 0
}
}
}
is_valid = {
piety_level >= 3
is_independent_ruler = yes
faith = faith.religious_head.faith
#custom_description = your_faith_holds_at_least_3_holy_sites
}
is_valid_showing_failures_only = {
}
effect = {
faith = {
save_scope_as = dominant_faith
}
every_religion_global = {
random_faith = {
limit = {
NOT = {
this = root.faith
}
NOT = {
has_doctrine = unreformed_faith_doctrine
}
NOT = {
has_locked_hof = yes
}
OR = {
AND = {
faith_hostility_level = {
target = root.faith
value <= faith_astray_level
}
root.faith = {
faith_hostility_level = {
target = prev
value <= faith_astray_level
}
}
#this decision is mostly disabled for now, since we want more control
#but it's enabled to revert emancipations
always = no
}
AND = {
has_variable = former_foreign_hof
var:former_foreign_hof = root.faith
}
}
any_holy_site = {
#count >= holy_sites_to_create_spiritual_head_of_faith
count >= 3
holder.top_liege = root
holder.faith = root.faith
}
OR = {
AND = {
has_doctrine = doctrine_spiritual_head
root.faith = {
has_doctrine = doctrine_spiritual_head
}
}
AND = {
has_doctrine = doctrine_temporal_head
root.faith = {
has_doctrine = doctrine_temporal_head
}
}
AND = {
has_doctrine = doctrine_holy_order_head
root.faith = {
has_doctrine = doctrine_holy_order_head
}
}
has_doctrine = doctrine_no_head
}
OR = {
NOT = {
exists = religious_head
}
NOT = {
religious_head.faith = root.faith
}
}
#don't assimilate dead faith
num_county_followers > 0
}
save_scope_as = subjugated_faith
set_variable = faith_that_was_subjugated
}
}
scope:subjugated_faith = {
religious_head_title ?= {
root.faith.religious_head = {
destroy_title = scope:subjugated_faith.religious_head_title
}
}
set_religious_head_title = root.faith.religious_head_title
}
}
cost = {
piety = massive_piety_value
#TODO cost should scale with religious differences - it should be hard to join with a faith from another religion, for example
}
ai_check_interval = 36
ai_potential = {
always = yes
}
ai_will_do = {
base = 100
}
}
}

View file

@ -1,536 +0,0 @@
# BLOOD LEGACIES
blood_legacy_1 = { # Noble Veins
legacy = blood_legacy_track
character_modifier = {
name = blood_legacy_1_modifier
positive_random_genetic_chance = 0.30
positive_inactive_inheritance_chance = 0.30
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
blood_legacy_2 = { # Convergent Blood
legacy = blood_legacy_track
character_modifier = {
genetic_trait_strengthen_chance = 0.3
}
}
blood_legacy_3 = { # Resilient Bloodline
legacy = blood_legacy_track
character_modifier = {
name = blood_legacy_3_modifier
negative_random_genetic_chance = -0.30
negative_inactive_inheritance_chance = -0.30
}
}
blood_legacy_4 = { # Architected Ancestry
legacy = blood_legacy_track
effect = {
# Effect is applied in the on action 'on_birth_child'
custom_description_no_bullet = {
text = blood_legacy_4_effect
}
}
traits = {
beauty_good_1 = 100
intellect_good_1 = 100
physique_good_1 = 100
fecund = 50
albino = 50
giant = 10
dwarf = 1
scaly = 1
}
}
blood_legacy_5 = { # Octogenarians
legacy = blood_legacy_track
character_modifier = {
life_expectancy = 5
}
}
# WARFARE LEGACIES
warfare_legacy_1 = { # House of Warriors
legacy = warfare_legacy_track
character_modifier = {
name = warfare_legacy_1_name
prowess = 2
knight_effectiveness_mult = 0.15
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
warfare_legacy_2 = { # Generational Belligerence
legacy = warfare_legacy_track
character_modifier = {
pursue_efficiency = 0.15
retreat_losses = -0.15
}
effect = {
custom_description_no_bullet = {
text = warfare_legacy_2_effect
}
}
}
warfare_legacy_3 = { # Squire Traditions
legacy = warfare_legacy_track
effect = {
custom_description_no_bullet = {
text = warfare_legacy_3_effect
}
}
character_modifier = {
monthly_martial_lifestyle_xp_gain_mult = 0.1
}
}
warfare_legacy_4 = { # Inherited Tactics
legacy = warfare_legacy_track
character_modifier = {
counter_efficiency = 0.15
advantage = 5
}
}
warfare_legacy_5 = { # Private Army
legacy = warfare_legacy_track
character_modifier = {
men_at_arms_cap = 1
}
effect = {
custom_description_no_bullet = {
text = warfare_legacy_5_unlock_effect
}
custom_description_no_bullet = {
text = warfare_legacy_5_effect
}
}
}
# LAW LEGACIES
law_legacy_1 = { # Mostly Fair
legacy = law_legacy_track
character_modifier = {
county_opinion_add = 5
}
effect = {
custom_description_no_bullet = {
text = law_legacy_1_effect
}
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
law_legacy_2 = { # Faithful Magistrates
legacy = law_legacy_track
character_modifier = {
name = law_legacy_2_name
monthly_county_control_growth_add = 0.2
title_creation_cost_mult = -0.2
}
}
law_legacy_3 = { # Power and Prosperity
legacy = law_legacy_track
character_modifier = {
monthly_stewardship_lifestyle_xp_gain_mult = 0.1
build_gold_cost = -0.05
holding_build_gold_cost = -0.05
}
}
law_legacy_4 = { # Delegated Authority
legacy = law_legacy_track
character_modifier = {
name = law_legacy_4_name
powerful_vassal_opinion = 5
happy_powerful_vassal_tax_contribution_mult = 0.1
happy_powerful_vassal_levy_contribution_mult = 0.1
}
}
law_legacy_5 = { # Home Estates
legacy = law_legacy_track
character_modifier = {
name = law_legacy_5_name
domain_limit = 1
controlled_province_advantage = 5
}
}
# GUILE LEGACIES
guile_legacy_1 = { # Ominous Reputation
legacy = guile_legacy_track
character_modifier = {
dread_gain_mult = 0.2
dread_baseline_add = 15
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
guile_legacy_2 = { # Long Reach
legacy = guile_legacy_track
effect = {
custom_description_no_bullet = {
text = guile_legacy_2_effect
}
}
character_modifier = {
name = guile_legacy_2_name
owned_hostile_scheme_success_chance_add = 10
}
}
guile_legacy_3 = { # Natural Schemers
legacy = guile_legacy_track
character_modifier = {
monthly_intrigue_lifestyle_xp_gain_mult = 0.1
owned_scheme_secrecy_add = 15
}
}
guile_legacy_4 = { # Venial
legacy = guile_legacy_track
character_modifier = {
monthly_tyranny = -0.05
intimidated_vassal_tax_contribution_mult = 0.1
cowed_vassal_tax_contribution_mult = 0.2
}
}
guile_legacy_5 = { # Family Connections
legacy = guile_legacy_track
effect = {
custom_description_no_bullet = {
text = guile_legacy_5_effect
}
}
}
# ERUDITION LEGACIES
erudition_legacy_1 = { # Vibrant Court
legacy = erudition_legacy_track
effect = {
custom_description_no_bullet = {
text = erudition_legacy_1_effect
}
}
character_modifier = {
courtier_and_guest_opinion = 10
court_grandeur_baseline_add = 5
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
erudition_legacy_2 = { # Ordained Rulership
legacy = erudition_legacy_track
character_modifier = {
name = erudition_legacy_2_modifier_name
monthly_piety_gain_mult = 0.1
}
doctrine_character_modifier = {
name = erudition_legacy_2_modifier_name
doctrine = doctrine_theocracy_lay_clergy
zealot_opinion = 5
}
doctrine_character_modifier = {
name = erudition_legacy_2_modifier_name
doctrine = doctrine_theocracy_temporal
clergy_opinion = 5
}
}
erudition_legacy_3 = { # Treasured Knowledge
legacy = erudition_legacy_track
character_modifier = {
monthly_learning_lifestyle_xp_gain_mult = 0.1
development_growth_factor = 0.2
county_fertility_decline_mult = -0.1
}
}
erudition_legacy_4 = { # True Believers
legacy = erudition_legacy_track
effect = {
custom_description_no_bullet = {
text = erudition_legacy_4_effect
}
}
character_modifier = {
faith_creation_piety_cost_mult = -0.2
}
doctrine_character_modifier = {
name = erudition_legacy_4_modifier_name
doctrine = doctrine_no_head
domain_tax_same_faith_mult = 0.05
}
doctrine_character_modifier = {
name = erudition_legacy_4_modifier_name
doctrine = doctrine_spiritual_head
religious_head_opinion = 15
}
doctrine_character_modifier = {
name = erudition_legacy_4_modifier_name
doctrine = doctrine_temporal_head
tolerance_advantage_mod = 5
}
}
erudition_legacy_5 = { # Bureaucrats
legacy = erudition_legacy_track
effect = {
custom_description_no_bullet = {
text = erudition_legacy_5_effect
}
}
# character_modifier = {
#
# }
}
# GLORY LEGACIES
glory_legacy_1 = { # Desirable Match
legacy = glory_legacy_track
character_modifier = {
ai_amenity_target_baseline = 0.2
glory_hound_opinion = 5
}
effect = {
custom_description_no_bullet = {
text = glory_legacy_1_perk_effect
}
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
glory_legacy_2 = { # Renowned Name
legacy = glory_legacy_track
character_modifier = {
name = glory_legacy_2_name
accolades = 1
monthly_prestige_gain_mult = 0.1
mercenary_hire_cost_mult = -0.1
knight_limit = 1
monthly_court_grandeur_change_mult = 1
}
}
glory_legacy_3 = { # Earning Respect
legacy = glory_legacy_track
character_modifier = {
monthly_diplomacy_lifestyle_xp_gain_mult = 0.1
personal_scheme_phase_duration_add = medium_scheme_phase_duration_bonus_value
}
}
glory_legacy_4 = { # Assertive Rulers
legacy = glory_legacy_track
effect = {
custom_description_no_bullet = {
text = glory_legacy_4_perk_effect
}
}
character_modifier = {
short_reign_duration_mult = -0.2
vassal_limit = 10
court_grandeur_baseline_add = 5
}
}
glory_legacy_5 = { # Righteousness
legacy = glory_legacy_track
character_modifier = {
name = glory_legacy_5_name
general_opinion = 10
max_sway_schemes_add = 1
}
}
# KIN LEGACIES
kin_legacy_1 = { # Bounteous Loins
legacy = kin_legacy_track
character_modifier = {
fertility = 0.1
attraction_opinion = 5
}
ai_chance = {
value = 11
if = {
limit = {
can_start_new_legacy_track_trigger = no
}
multiply = 0
}
}
}
kin_legacy_2 = { # Studious Youth
legacy = kin_legacy_track
character_modifier = {
child_opinion = 10
}
effect = {
custom_description_no_bullet = {
text = kin_legacy_2_legacy_effect
}
}
}
kin_legacy_3 = { # Constant Care
legacy = kin_legacy_track
effect = {
custom_description_no_bullet = {
text = kin_legacy_3_legacy_effect
}
}
character_modifier = {
spouse_opinion = 10
negate_health_penalty_add = 0.5
}
}
kin_legacy_4 = { # Close Bonds
legacy = kin_legacy_track
effect = {
custom_description_no_bullet = {
text = kin_legacy_4_legacy_effect
}
custom_description_no_bullet = {
text = kin_accolade_effect
}
}
character_modifier = {
dynasty_opinion = 5
close_relative_opinion = 10
}
}
kin_legacy_5 = { # Graceful Aging
legacy = kin_legacy_track
effect = {
custom_description_no_bullet = {
text = kin_legacy_5_legacy_effect
}
}
character_modifier = {
no_prowess_loss_from_age = yes
}
}

View file

@ -608,60 +608,6 @@ on_character_faith_change = {
# Code on-action: once a month for each faith
# Root is the faith
on_faith_monthly = {
effect = {
if = {
limit = {
has_doctrine = doctrine_holy_order_head
}
every_faith_holy_order = {
limit = {
title = { is_head_of_faith = yes }
NOT = { exists = leader }
}
title = { save_scope_as = hof_holy_order }
scope:hof_holy_order.holder.faith = {
random_holy_site = {
limit = {
county.holder = {
realm_size > 1
faith = root
}
}
save_scope_as = leased_barony
}
}
create_character = {
template = ate_holy_order_faith_leader_character
location = scope:leased_barony.title_province
culture = scope:leased_barony.county.holder.culture
faith = root
gender_female_chance = {
if = {
limit = {
root = { has_doctrine_parameter = clergy_must_be_male }
}
add = 0
}
else_if = {
limit = {
root = { has_doctrine_parameter = clergy_must_be_female }
}
add = 100
}
else = {
add = 50
}
}
save_scope_as = leader
}
scope:leader = {
get_title = scope:hof_holy_order
get_title = scope:leased_barony
}
}
}
}
on_actions = {
faith_holy_order_land_acquisition_pulse
delay = { days = { 5 10 }}

View file

@ -2249,10 +2249,7 @@ yearly_playable_pulse = {
highest_held_title_tier >= tier_empire
has_trait = excommunicated
faith = {
OR = {
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_holy_order_head
}
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_imperial_anointment
}
custom_tooltip = {
@ -2285,10 +2282,7 @@ yearly_playable_pulse = {
interaction = coronation_anointment_request
}
faith = {
OR = {
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_holy_order_head
}
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_imperial_anointment
}
}

View file

@ -963,26 +963,6 @@ doctrine_spiritual_head = {
}
}
doctrine_holy_order_head = {
icon = "doctrine_holy_order"
visible = no
piety_cost = {
value = faith_doctrine_cost_high
if = {
limit = { has_doctrine = doctrine_holy_order_head }
multiply = faith_unchanged_doctrine_cost_mult
}
}
parameters = {
holy_order_head_of_faith = yes
spiritual_head_of_faith_claims = yes
spiritual_head_of_faith_gold = yes
}
}
doctrine_temporal_head = {
icon = "doctrine_temporal_head"

View file

@ -2277,10 +2277,7 @@
}
# We also only want people with existing spiritual HoFs.
exists = religious_head
OR = {
doctrine:doctrine_spiritual_head = { is_in_list = selected_doctrines }
doctrine:doctrine_holy_order_head = { is_in_list = selected_doctrines }
}
has_doctrine_parameter = spiritual_head_of_faith
}
can_pick = {

View file

@ -1,393 +0,0 @@
abduct = {
# Basic Setup
skill = intrigue
desc = "abduct_desc_general"
success_desc = "ABDUCT_SUCCESS_DESC"
discovery_desc = "ABDUCT_DISCOVERY_DESC"
icon = icon_scheme_abduct
illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
category = hostile
target_type = character
is_secret = yes
maximum_breaches = 5
cooldown = { years = 10 }
# Parameters
speed_per_skill_point = t2_spsp_owner_value
speed_per_target_skill_point = t2_spsp_target_value
base_progress_goal = t2_base_phase_length_value
maximum_secrecy = 85
base_maximum_success = t2_base_max_success_value
phases_per_agent_charge = 1
success_chance_growth_per_skill_point = t2_scgpsp_value
# Core Triggers
allow = {
OR = {
has_perk = kidnapper_perk # Scheme unlocked by the Kidnapper Perk
domicile ?= { has_domicile_parameter = camp_unlocks_abduct_scheme }
AND = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = unlocks_abduct_for_all
is_secondary_character_involvement_involved_trigger = {
CHAR = scope:target
}
}
}
}
is_adult = yes
is_playable_character = yes
is_imprisoned = no
}
valid = {
is_playable_character = yes
is_ruler = yes
is_incapable = no
custom_description = { #If they're your kid you need special traits to do it
text = abduct_own_children_block
object = scope:target
trigger_if = {
limit = {
is_parent_of = scope:target
}
has_trait_with_flag = can_murder_own_children
}
}
scope:target = {
is_imprisoned = no
is_hostage = no
exists = location
in_diplomatic_range = scope:owner
}
# Special AI exceptions
NOT = {
scope:owner = {
is_ai = yes
has_opinion_modifier = {
target = scope:target
modifier = repentant_opinion
}
}
}
}
# Agents
agent_leave_threshold = -25
agent_join_chance = {
base = 0
ai_agent_join_chance_basic_suite_modifier = yes
ai_agent_join_chance_hostile_grievous_modifier = yes
}
agent_groups_owner_perspective = { courtiers guests scripted_relations }
agent_groups_target_character_perspective = { courtiers vassals }
valid_agent = { is_valid_agent_standard_trigger = yes }
odds_prediction = {
add = hostile_scheme_base_odds_prediction_target_is_char_value
add = odds_skill_contribution_intrigue_value
add = agent_groups_owner_perspective_value
add = agent_groups_target_character_perspective_value
add = odds_abduct_scheme_misc_value
min = 0
}
# Base Chances
base_success_chance = {
base = 0
scheme_type_skill_success_chance_modifier = { SKILL = INTRIGUE }
hostile_scheme_base_chance_modifier = yes
# Countermeasures.
apply_calculated_scheme_success_chance_adjustments_modifier = yes
# You found their escape tunnel
modifier = {
add = 100
desc = "SCHEME_DISCOVERED_ESCAPE_TUNNEL"
scope:owner = {
exists = var:discovered_escape_tunnel_of
var:discovered_escape_tunnel_of = scope:target
}
}
# Spiritual Head of Faith
modifier = {
add = -50
desc = "SCHEME_VS_SPIRITUAL_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_spiritual_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Holy Order Head of Faith
modifier = {
add = -60
desc = "SCHEME_VS_HOLY_ORDER_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_holy_order_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Sponsored Inspiration
modifier = {
add = -25
desc = target_has_sponsored_inspiration
scope:target = {
exists = inspiration
inspiration = { exists = inspiration_sponsor }
}
}
# Family Feud
house_feud_hostile_scheme_success_modifier = yes
# Various penalties
first_valid = {
modifier = { # Foreign Rulers are very hard to kidnap
add = -75
desc = "sway_foreign_target"
scope:target = {
is_ruler = yes
NOT = {
scope:target.top_liege = scope:owner.top_liege
}
}
}
modifier = { # Foreign subjects less so
add = -40
desc = "sway_foreign_target"
scope:target = {
is_foreign_court_or_pool_guest = no
NOT = {
scope:target.top_liege = scope:owner.top_liege
}
}
}
modifier = { # Rulers are harder to kidnap
add = -50
desc = "FABRICATE_HOOK_RULER_TARGET"
scope:target = {
is_ruler = yes
scope:target.top_liege = scope:owner.top_liege
}
}
}
# At War
first_valid = {
modifier = {
add = -500
desc = "SCHEME_AT_WAR"
scope:target = {
is_at_war_with = scope:owner
}
}
modifier = {
add = -350
scope:target = {
is_playable_character = no
this != top_liege
any_liege_or_above = {
is_at_war_with = scope:owner
}
}
desc = "SCHEME_AT_WAR_WITH_LIEGE"
}
modifier = {
add = -250
scope:target = {
is_playable_character = yes
this != top_liege
any_liege_or_above = {
is_at_war_with = scope:owner
}
}
desc = "SCHEME_AT_WAR_WITH_LIEGE"
}
}
# Diarchs are better at schemes within their liege's realm
diarch_scheming_within_realm_bonus_modifier = yes
# You have a secret tunnel yourself
modifier = {
add = 25
desc = "SCHEME_SECRET_DOMICILE_TUNNEL"
scope:owner = {
exists = var:ep3_secret_tunnels_var
}
}
# Tailor
modifier = {
add = 10
scope:owner = {
has_character_modifier = tournament_tailor_mixup_scheme_modifier
exists = var:tailor_mixup_house
exists = scope:target.house
var:tailor_mixup_house = scope:target.house
}
desc = "tournament_tailor_mixup_scheme_modifier_value"
}
}
base_secrecy = {
add = secrecy_base_value
add = countermeasure_apply_secrecy_maluses_value
}
# On Actions
on_start = {
set_variable = {
name = apply_countermeasures
value = flag:calculating
}
add_scheme_starting_opportunities_intrigue_effect = yes
# Fallback agents — a balanced config if you start the scheme from script.
if = {
limit = {
scheme_owner = {
NOT = { has_variable = agents_added }
}
}
add_agent_slot = agent_thug
add_agent_slot = agent_thug
add_agent_slot = agent_muscle
add_agent_slot = agent_footpad
add_agent_slot = agent_lookout
}
}
on_phase_completed = {
suppress_scheme_follow_up_event_till_input_given_effect = yes
abduct_scheme_prep_effect = yes
cap_schemes_and_fire_reminders_effect = yes
}
on_hud_click = { abduct_scheme_prep_effect = yes }
on_semiyearly = {
if = {
limit = {
scheme_owner = { is_ai = yes }
}
abduct_scheme_prep_effect = yes
}
}
on_monthly = {
hostile_scheme_monthly_discovery_chance_effect = yes
if = {
limit = {
NOT = { exists = scope:discovery_event_happening }
}
scheme_owner = {
trigger_event = {
on_action = abduct_ongoing
days = { 1 30 }
}
}
}
}
on_invalidated = {
scheme_target_character = {
save_scope_as = target
}
scheme_owner = {
save_scope_as = owner
}
if = {
limit = {
scope:target = { is_alive = no }
}
scope:owner = {
send_interface_toast = {
title = abduct_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = scheme_target_died
}
}
}
}
else_if = {
limit = {
scope:target = {
is_imprisoned = yes
imprisoner = scope:owner
}
scope:owner = {
NOT = { has_character_flag = is_in_event_abduct_outcome_0001 } #You probably abducted them
}
}
scope:owner = {
send_interface_message = {
title = abduct_scheme_invalidated_title
type = abduct_invalidated_i_imprisoned_message
desc = abduct_scheme_i_imprisoned_them_message
left_icon = scope:target
}
}
}
else_if = {
limit = {
scope:target = {
is_imprisoned = yes
NOT = { imprisoner = scope:owner }
}
}
scope:target.imprisoner = {
save_scope_as = other_imprisoner
}
scope:owner = {
send_interface_toast = {
title = abduct_scheme_invalidated_title
left_icon = scope:target
right_icon = scope:other_imprisoner
custom_description_no_bullet = {
subject = scope:other_imprisoner
object = scope:target
text = scheme_target_imprisoned_by_other
}
}
}
}
else_if = {
limit = {
scope:target = {
NOT = { in_diplomatic_range = scope:owner }
}
}
scope:owner = {
send_interface_toast = {
title = abduct_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = scheme_target_not_in_diplomatic_range
}
}
}
}
}
}

View file

@ -1,305 +0,0 @@
overthrow_regent = {
# Basic Setup
skill = intrigue
desc = "overthrow_regent_desc_general"
success_desc = "OVERTHROW_REGENT_SUCCESS_DESC"
discovery_desc = "OVERTHROW_REGENT_DISCOVERY_DESC"
icon = icon_scheme_claim_throne
illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
category = hostile
target_type = character
is_secret = yes
maximum_breaches = 5
cooldown = { years = 5 }
# Parameters
speed_per_skill_point = t3_spsp_owner_value
speed_per_target_skill_point = t3_spsp_target_value
base_progress_goal = t3_base_phase_length_value
maximum_secrecy = 85
base_maximum_success = t2_base_max_success_value
phases_per_agent_charge = 1
success_chance_growth_per_skill_point = t3_scgpsp_value
# Core Triggers
allow = {
exists = liege
liege ?= diarch
NOT = { this = liege.diarch }
}
valid = {
is_incapable = no
scope:target = {
is_diarch = yes
is_imprisoned = no
exists = location
in_diplomatic_range = scope:owner
}
# You can't scheme to become diarch if you'd immediately invalidate out of it.
scope:owner = { is_diarch_valid_trigger = yes }
# You can't overthrow non-regencies. At least not this way.
scope:owner.liege ?= { has_diarchy_parameter = diarchy_is_regency }
}
# Agents
agent_leave_threshold = -25
agent_join_chance = {
base = 0
ai_agent_join_chance_basic_suite_modifier = yes
ai_agent_join_chance_hostile_grievous_modifier = yes
}
valid_agent = { is_valid_agent_standard_trigger = yes }
agent_groups_owner_perspective = { courtiers guests scripted_relations }
agent_groups_target_character_perspective = { courtiers vassals }
odds_prediction = {
add = hostile_scheme_base_odds_prediction_target_is_char_value
add = odds_skill_contribution_intrigue_value
add = agent_groups_owner_perspective_value
add = agent_groups_target_character_perspective_value
add = odds_diarch_scheme_misc_value
min = 0
}
# Base Chances
base_success_chance = {
base = 0
scheme_type_skill_success_chance_modifier = { SKILL = INTRIGUE }
hostile_scheme_base_chance_modifier = yes
# Countermeasures.
apply_calculated_scheme_success_chance_adjustments_modifier = yes
# Spiritual Head of Faith
modifier = {
add = -50
desc = "SCHEME_VS_SPIRITUAL_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_spiritual_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Holy Order Head of Faith
modifier = {
add = -55
desc = "SCHEME_VS_HOLY_ORDER_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_holy_order_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Scope:target's strife.
modifier = {
add = {
value = scope:target.strife_opinion
multiply = 0.25
min = 5
max = 40
}
scope:target = { strife_opinion >= 1 }
}
# Family Feud
house_feud_hostile_scheme_success_modifier = yes
# At War
first_valid = {
modifier = {
add = -200
desc = "SCHEME_AT_WAR"
scope:target = {
is_at_war_with = scope:owner
}
}
modifier = {
add = -150
scope:target = {
is_playable_character = no
exists = liege
liege = {
is_at_war_with = scope:owner
}
}
desc = "SCHEME_AT_WAR_WITH_LIEGE"
}
modifier = {
add = -100
scope:target = {
is_playable_character = yes
exists = liege
liege = {
is_at_war_with = scope:owner
}
}
desc = "SCHEME_AT_WAR_WITH_LIEGE"
}
}
}
base_secrecy = {
add = secrecy_base_value
add = countermeasure_apply_secrecy_maluses_value
}
# On Actions
on_start = {
set_variable = {
name = apply_countermeasures
value = flag:calculating
}
add_scheme_starting_opportunities_intrigue_effect = yes
# Fallback agents — a balanced config if you start the scheme from script.
if = {
limit = {
scheme_owner = {
NOT = { has_variable = agents_added }
}
}
add_agent_slot = agent_thug
add_agent_slot = agent_ambusher
add_agent_slot = agent_muscle
add_agent_slot = agent_footpad
add_agent_slot = agent_lookout
}
}
on_phase_completed = {
suppress_scheme_follow_up_event_till_input_given_effect = yes
overthrow_regent_scheme_prep_effect = yes
cap_schemes_and_fire_reminders_effect = yes
}
on_hud_click = { overthrow_regent_scheme_prep_effect = yes }
on_monthly = {
hostile_scheme_monthly_discovery_chance_effect = yes
if = {
limit = {
NOT = { exists = scope:discovery_event_happening }
}
scheme_owner = {
trigger_event = {
on_action = abduct_ongoing
days = { 1 30 }
}
}
}
}
on_semiyearly = {
if = {
limit = {
scheme_owner = { is_ai = yes }
}
overthrow_regent_scheme_prep_effect = yes
}
}
on_invalidated = {
scheme_target_character = { save_scope_as = target }
scheme_owner = { save_scope_as = owner }
# Scope:target is dead.
if = {
limit = {
scope:target = { is_alive = no }
}
scope:owner = {
send_interface_toast = {
title = overthrow_regent_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = scheme_target_died
}
}
}
}
# Scope:target has been preemptively
else_if = {
limit = {
scope:target = {
is_imprisoned = yes
imprisoner = scope:owner
}
scope:owner = {
NOT = { has_character_flag = is_in_event_diarchy_0501 }
}
}
scope:owner = {
send_interface_message = {
title = overthrow_regent_scheme_invalidated_title
type = abduct_invalidated_i_imprisoned_message
desc = overthrow_regent_scheme_i_imprisoned_them_message
left_icon = scope:target
}
}
}
else_if = {
limit = {
scope:target = {
is_imprisoned = yes
NOT = { imprisoner = scope:owner }
}
}
scope:target.imprisoner = { save_scope_as = other_imprisoner }
scope:owner = {
send_interface_toast = {
title = overthrow_regent_scheme_invalidated_title
left_icon = scope:target
right_icon = scope:other_imprisoner
custom_description_no_bullet = {
subject = scope:other_imprisoner
object = scope:target
text = scheme_target_imprisoned_by_other
}
}
}
}
else_if = {
limit = {
scope:target = {
NOT = { in_diplomatic_range = scope:owner }
}
}
scope:owner = {
send_interface_toast = {
title = overthrow_regent_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = scheme_target_not_in_diplomatic_range
}
}
}
}
else_if = {
limit = {
scope:owner = { is_diarch_valid_trigger = no }
}
scope:owner = {
send_interface_toast = {
title = overthrow_regent_scheme_cannot_become_regent
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = i_could_not_take_their_place
}
}
}
}
}
}

View file

@ -1,494 +0,0 @@
fabricate_hook = {
# Basic Setup
skill = intrigue
desc = fabricate_hook_desc_general
success_desc = "FABRICATE_HOOK_SUCCESS_DESC"
discovery_desc = "FABRICATE_HOOK_DISCOVERY_DESC"
icon = icon_scheme_fabricate_hook
illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
category = hostile
target_type = character
is_secret = yes
maximum_breaches = 5
cooldown = { years = 2 }
# Parameters
speed_per_skill_point = t2_spsp_owner_value
speed_per_target_skill_point = t2_spsp_target_value
spymaster_speed_per_skill_point = t2_spsp_owner_spy_value
target_spymaster_speed_per_skill_point = t2_spsp_target_spy_value
tier_speed = 1
base_progress_goal = t2_base_phase_length_value
maximum_secrecy = 95
base_maximum_success = t2_base_max_success_value
phases_per_agent_charge = 1
success_chance_growth_per_skill_point = t2_scgpsp_value
# Core Triggers
allow = {
OR = {
has_perk = truth_is_relative_perk # Scheme unlocked by Perk
AND = {
scope:owner = {
has_trait = vengeful
has_relation_rival = scope:target
}
}
AND = {
any_character_struggle = {
involvement = involved
has_struggle_phase_parameter = unlocks_fabricate_hooks_for_all
is_secondary_character_involvement_either_trigger = {
CHAR = scope:target
}
}
}
AND = {
government_has_flag = government_is_clan
is_in_same_clan_as_trigger = { CHARACTER = scope:target }
house = {
has_house_unity_parameter = unity_unlock_fabricate_hooks
}
}
}
is_adult = yes
is_playable_character = yes
is_imprisoned = no
}
valid = {
is_incapable = no
trigger_if = {
limit = { exists = scope:target.court_owner }
custom_description = {
text = was_discovered_fabricating_hooks_already
NOT = {
scope:target.court_owner = {
has_opinion_modifier = {
target = scope:owner
modifier = fabricated_hook_against_court_opinion
}
}
}
}
}
trigger_else = {
custom_description = {
text = can_not_fabricate_hooks_on_wanderers
always = no
}
}
scope:target = {
is_adult = yes
is_imprisoned = no
NOT = { has_trait = incapable }
#exists = location
in_diplomatic_range = scope:owner
}
#Temporary fix to communicate to players that the scheme is unavailabe.
#A character should always have a location but some characters are lost in the pool ATM
#This custom description should be removed once the pool is fixed, and the line from the previous block should be uncommented.
custom_description = {
text = in_diplomatic_range
scope:target = {
exists = location
}
}
custom_description = {
text = already_has_hook_on_ruler_target
NOT = { scope:owner = { has_hook = scope:target } }
object = scope:target
}
custom_description = {
text = already_has_strong_hook_on_target
NOT = { scope:owner = { has_strong_hook = scope:target } }
object = scope:target
}
custom_description = {
text = already_knows_secret_about_ruler_target
NOT = {
scope:target = {
is_ruler = yes
any_secret = {
is_known_by = scope:owner
is_blackmailable_secret_trigger = { BLACKMAILER = scope:owner PARTICIPANT = scope:target }
}
}
}
}
custom_description = {
text = already_knows_criminal_secret_about_target
NOT = {
scope:target = {
any_secret = {
is_criminal_for = scope:target
is_known_by = scope:owner
is_blackmailable_secret_trigger = { BLACKMAILER = scope:owner PARTICIPANT = scope:target }
}
}
}
}
# Special AI exceptions
NOT = {
scope:owner = {
is_ai = yes
has_opinion_modifier = {
target = scope:target
modifier = repentant_opinion
}
}
}
}
# Agents
agent_leave_threshold = -25
agent_join_chance = {
base = 0
ai_agent_join_chance_basic_suite_modifier = yes
ai_agent_join_chance_hostile_taboo_modifier = yes
}
valid_agent = { is_valid_agent_standard_trigger = yes }
agent_groups_owner_perspective = { courtiers guests scripted_relations }
agent_groups_target_character_perspective = { courtiers vassals }
odds_prediction = {
add = hostile_scheme_base_odds_prediction_target_is_char_value
add = odds_skill_contribution_intrigue_value
add = agent_groups_owner_perspective_value
add = agent_groups_target_character_perspective_value
add = odds_fabricate_hook_scheme_misc_value
min = 0
}
# Base Chances
base_success_chance = {
base = 0
scheme_type_skill_success_chance_modifier = { SKILL = INTRIGUE }
hostile_scheme_base_chance_modifier = yes
# Countermeasures.
apply_indirect_scheme_success_chance_adjustments_modifier = yes
modifier = {
add = 20
desc = FABRICATE_HOOK_DECEITFUL
scope:owner = {
has_trait = deceitful
}
}
modifier = {
add = -20
desc = FABRICATE_HOOK_HONEST
scope:owner = {
has_trait = honest
}
}
modifier = {
add = 10
desc = FABRICATE_HOOK_TARGET_TRUSTING
scope:target = {
has_trait = trusting
}
}
modifier = {
add = 10
desc = FABRICATE_HOOK_TARGET_INTELLECT_BAD_1
scope:target = {
has_trait = intellect_bad_1
}
}
modifier = {
add = 20
desc = FABRICATE_HOOK_TARGET_INTELLECT_BAD_2
scope:target = {
has_trait = intellect_bad_2
}
}
modifier = {
add = 30
desc = FABRICATE_HOOK_TARGET_INTELLECT_BAD_3
scope:target = {
has_trait = intellect_bad_3
}
}
modifier = {
add = -10
desc = FABRICATE_HOOK_TARGET_INTELLECT_GOOD_1
scope:target = {
has_trait = intellect_good_1
}
}
modifier = {
add = -20
desc = FABRICATE_HOOK_TARGET_INTELLECT_GOOD_2
scope:target = {
has_trait = intellect_good_2
}
}
modifier = {
add = -30
desc = FABRICATE_HOOK_TARGET_INTELLECT_GOOD_3
scope:target = {
has_trait = intellect_good_3
}
}
modifier = {
add = -20
desc = FABRICATE_HOOK_TARGET_SCHEMER
scope:target = {
has_trait = schemer
}
}
modifier = {
add = -20
desc = FABRICATE_HOOK_TARGET_PARANOID
scope:target = {
has_trait = paranoid
}
}
modifier = {
add = -10
desc = FABRICATE_HOOK_TARGET_FICKLE
scope:target = {
has_trait = fickle
}
}
modifier = {
add = 10
desc = FABRICATE_HOOK_TARGET_ARROGANT
scope:target = {
has_trait = arrogant
}
}
modifier = {
add = 20
desc = FABRICATE_HOOK_TARGET_GREEDY
scope:target = {
has_trait = greedy
}
}
modifier = {
add = 10
desc = FABRICATE_HOOK_TARGET_CRAVEN
scope:target = {
has_trait = craven
}
}
# Diarchs are better at schemes within their liege's realm
diarch_scheming_within_realm_bonus_modifier = yes
compare_modifier = {
value = scope:owner.cp:councillor_spymaster.intrigue
multiplier = 2
desc = FABRICATE_HOOK_SPYMASTER_INTRIGUE
trigger = {
exists = scope:owner.cp:councillor_spymaster
NOT = { scope:owner.cp:councillor_spymaster = scope:target }
}
}
modifier = {
add = -50
desc = FABRICATE_HOOK_TARGETING_SPYMASTER
scope:target = {
has_council_position = councillor_spymaster
}
}
# Holy Order Head of Faith
modifier = {
add = -45
desc = "SCHEME_VS_HOLY_ORDER_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_holy_order_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Spiritual Head of Faith
modifier = {
add = -50
desc = "SCHEME_VS_SPIRITUAL_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_spiritual_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
}
base_secrecy = {
add = secrecy_base_value
add = countermeasure_apply_secrecy_maluses_value
}
# On Actions
on_start = {
set_variable = {
name = apply_countermeasures
value = flag:indirect
}
add_scheme_starting_opportunities_intrigue_effect = yes
# Fallback agents — a balanced config if you start the scheme from script.
if = {
limit = {
scheme_owner = {
NOT = { has_variable = agents_added }
}
}
add_agent_slot = agent_outcast
add_agent_slot = agent_diplomat
add_agent_slot = agent_thief
add_agent_slot = agent_infiltrator
add_agent_slot = agent_lookout
}
}
on_phase_completed = {
suppress_scheme_follow_up_event_till_input_given_effect = yes
fabricate_hook_scheme_prep_effect = yes
cap_schemes_and_fire_reminders_effect = yes
}
on_hud_click = { fabricate_hook_scheme_prep_effect = yes }
on_monthly = {
hostile_scheme_monthly_discovery_chance_effect = yes
if = {
limit = {
NOT = { exists = scope:discovery_event_happening }
}
scheme_owner = {
trigger_event = {
on_action = fabricate_hook_ongoing
days = { 1 30 }
}
}
}
}
on_semiyearly = {
if = {
limit = {
scheme_owner = { is_ai = yes }
}
fabricate_hook_scheme_prep_effect = yes
}
}
on_invalidated = {
scheme_target_character = {
save_scope_as = target
}
scheme_owner = {
save_scope_as = owner
}
if = {
limit = {
scope:target = { is_alive = no }
}
scope:owner = {
send_interface_toast = {
title = fabricate_hook_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = scheme_target_died
}
}
}
}
else_if = {
limit = {
scope:target = {
is_imprisoned = yes
}
}
scope:target.imprisoner = { save_scope_as = other_imprisoner }
scope:owner = {
send_interface_toast = {
title = fabricate_hook_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
subject = scope:other_imprisoner
object = scope:target
text = scheme_target_imprisoned_by_other
}
}
}
}
else_if = {
limit = {
scope:target = {
has_trait = incapable
}
}
scope:owner = {
send_interface_toast = {
title = fabricate_hook_scheme_invalidated_title
left_icon = scope:target
custom_tooltip = scheme_target_is_incapable
}
}
}
else_if = {
limit = {
scope:owner = {
has_hook = scope:target
}
}
scope:owner = {
send_interface_toast = {
title = fabricate_hook_scheme_invalidated_title
left_icon = scope:target
custom_tooltip = fabricate_hook_has_gained_hook
}
}
}
else_if = {
limit = {
scope:target = {
NOT = { in_diplomatic_range = scope:owner }
}
}
scope:owner = {
send_interface_toast = {
title = fabricate_hook_scheme_invalidated_title
left_icon = scope:target
custom_description_no_bullet = {
object = scope:target
text = scheme_target_not_in_diplomatic_range
}
}
}
}
}
}

View file

@ -1,437 +0,0 @@
murder = {
# Basic Setup
skill = intrigue
desc = murder_desc_general
success_desc = "MURDER_SUCCESS_DESC"
discovery_desc = "MURDER_DISCOVERY_DESC"
icon = icon_scheme_murder
illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
category = hostile
target_type = character
is_secret = yes
maximum_breaches = 5
cooldown = { years = 10 }
# Parameters
speed_per_skill_point = t2_spsp_owner_value
speed_per_target_skill_point = t2_spsp_target_value
base_progress_goal = t2_base_phase_length_value
maximum_secrecy = 95
base_maximum_success = t2_base_max_success_value
phases_per_agent_charge = 1
success_chance_growth_per_skill_point = t2_scgpsp_value
# Core Triggers
allow = {
age >= 14
is_imprisoned = no
}
valid = {
is_incapable = no
trigger_if = {
limit = {
is_parent_of = scope:target
NOT = {
has_trait_with_flag = can_murder_own_children
}
}
NOT = { is_parent_of = scope:target }
}
custom_description = {
object = scope:target
text = "I_have_imprisoned_target"
scope:target = {
NOT = { imprisoner = scope:owner }
}
}
custom_description = {
object = scope:target
text = i_have_been_caught_trying_to_murder_target
scope:target = {
NOT = {
has_opinion_modifier = {
target = prev
modifier = murder_personal_grudge_opinion
}
}
}
}
scope:target = {
OR = {
exists = location
in_diplomatic_range = scope:owner
}
}
# Special AI exceptions
NOT = {
scope:owner = {
is_ai = yes
has_opinion_modifier = {
target = scope:target
modifier = repentant_opinion
}
}
}
}
# Agents
agent_leave_threshold = -25
agent_join_chance = {
base = 0
ai_agent_join_chance_basic_suite_modifier = yes
ai_agent_join_chance_hostile_grievous_modifier = yes
}
agent_groups_owner_perspective = { courtiers guests scripted_relations }
agent_groups_target_character_perspective = { courtiers vassals }
valid_agent = { is_valid_agent_standard_trigger = yes }
odds_prediction = {
add = hostile_scheme_base_odds_prediction_target_is_char_value
add = odds_skill_contribution_intrigue_value
add = agent_groups_owner_perspective_value
add = agent_groups_target_character_perspective_value
add = odds_variables_contribution_murder
add = odds_murder_scheme_misc_value
min = 0
}
# Base Chances
base_success_chance = {
base = 0
scheme_type_skill_success_chance_modifier = { SKILL = INTRIGUE }
hostile_scheme_base_chance_modifier = yes
# Countermeasures.
apply_calculated_scheme_success_chance_adjustments_modifier = yes
# Your dark arts advisor is helping you out
modifier = {
add = 15
desc = "ACHMACH_MURDER_BONUS"
scope:owner = {
has_variable = achmach_murder_help_var
any_councillor = {
has_variable = achmach_murder_help_councillor_var
}
}
}
# As Temüjin, you swore to murder Jamukha
modifier = {
add = 50
desc = "TEMUJIN_JAMUKHA_MURDER_BONUS"
scope:owner = {
exists = var:temujin_jamukha_murder_var
var:temujin_jamukha_murder_var = scope:target
}
}
# Imaginary friend told you to kill them
modifier = {
add = 50
desc = "IMAGINARY_FRIEND_MURDER_BONUS"
scope:owner = {
exists = var:imaginary_friend_murder_target
var:imaginary_friend_murder_target = scope:target
}
}
# They crowned you king/queen of fools
modifier = {
add = 20
desc = "MURDER_FOOL_NEMESIS_BONUS"
scope:owner = {
exists = var:festival_nemesis_fool_var
var:festival_nemesis_fool_var = scope:target
}
}
# You found their escape tunnel
modifier = {
add = 100
desc = "SCHEME_DISCOVERED_ESCAPE_TUNNEL"
scope:owner = {
exists = var:discovered_escape_tunnel_of
var:discovered_escape_tunnel_of = scope:target
}
}
# You heard them explain their plan to your camp followers
modifier = {
add = 50
desc = "SCHEME_ET_TU_BRUTE"
scope:owner = {
exists = var:et_tu_brute_var
var:et_tu_brute_var = scope:target
}
}
# You know where their chamber is
modifier = {
add = 50
desc = "SCHEME_WNIGHT_VICTIM_CHAMBER"
scope:owner = {
exists = var:wnight_chandelier_murder_var
var:wnight_chandelier_murder_var = scope:target
}
}
modifier = {
add = 10
scope:owner = { has_trait = lifestyle_herbalist }
desc = MURDER_HERBALIST_BONUS
}
modifier = {
add = -50
scope:target = {
has_opinion_modifier = {
target = scope:owner
modifier = attempted_murder_me_crime
}
}
desc = HAS_ATTEMPTED_TO_MURDER_TARGET_BEFORE
}
# Spiritual Head of Faith
modifier = {
add = -50
desc = "SCHEME_VS_SPIRITUAL_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_spiritual_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Holy Order Head of Faith
modifier = {
add = -60
desc = "SCHEME_VS_HOLY_ORDER_HOF"
scope:target = {
faith = scope:owner.faith
faith = {
has_doctrine = doctrine_holy_order_head
}
faith = {
exists = religious_head
religious_head = {
this = scope:target
}
}
}
}
# Sponsored Inspiration
modifier = {
add = -25
desc = target_has_sponsored_inspiration
scope:target = {
exists = inspiration
inspiration = { exists = inspiration_sponsor }
}
}
# Family Feud
house_feud_hostile_scheme_success_modifier = yes
# At War
first_valid = {
modifier = {
add = -50
desc = "SCHEME_AT_WAR"
scope:target = {
is_at_war_with = scope:owner
}
}
modifier = {
add = -25
scope:target = {
is_playable_character = no
exists = liege
liege = {
is_at_war_with = scope:owner
}
}
desc = "SCHEME_AT_WAR_WITH_LIEGE"
}
modifier = {
add = -25
scope:target = {
is_playable_character = yes
exists = liege
liege = {
is_at_war_with = scope:owner
}
}
desc = "SCHEME_AT_WAR_WITH_LIEGE"
}
}
# Diarchs are better at schemes within their liege's realm
diarch_scheming_within_realm_bonus_modifier = yes
# Tailor
modifier = {
add = 10
scope:owner = {
has_character_modifier = tournament_tailor_mixup_scheme_modifier
exists = var:tailor_mixup_house
exists = scope:target.house
var:tailor_mixup_house = scope:target.house
}
desc = "tournament_tailor_mixup_scheme_modifier_value"
}
modifier = {
add = 10
desc = feast_learnt_habits_modifier.tt
scope:owner = {
any_scheme = {
scheme_type = murder
scheme_target_character = scope:target
has_scheme_modifier = feast_learnt_habits_modifier
}
}
}
# Caliph protection
modifier = {
add = -200
scope:target = {
has_character_modifier = fp3_struggle_caliph_super_suspicious_modifier
}
desc = has_fp3_struggle_caliph_super_suspicious_modifier
}
# Events
modifier = {
add = -50
scope:target = {
has_character_modifier = cant_poison_soup_modifier
}
desc = cant_poison_soup_modifier_value
}
}
base_secrecy = {
add = secrecy_base_value
add = countermeasure_apply_secrecy_maluses_value
add = secrecy_charting_realm_increase_value
}
# On Actions
on_start = {
set_variable = {
name = apply_countermeasures
value = flag:calculating
}
add_scheme_starting_opportunities_intrigue_effect = yes
# Fallback agents — a balanced config if you start the scheme from script.
if = {
limit = {
scheme_owner = {
NOT = { has_variable = agents_added }
}
}
add_agent_slot = agent_assassin
add_agent_slot = agent_assassin
add_agent_slot = agent_thug
add_agent_slot = agent_infiltrator
add_agent_slot = agent_alibi
}
else = {
scheme_owner = { remove_variable = agents_added }
}
scheme_owner = {
if = {
limit = {
domicile ?= { has_domicile_parameter = camp_unlocks_poisoner_scheme_agents }
}
root = { add_agent_slot = agent_poisoner }
}
}
}
on_phase_completed = {
suppress_scheme_follow_up_event_till_input_given_effect = yes
murder_scheme_prep_effect = yes
cap_schemes_and_fire_reminders_effect = yes
}
on_hud_click = { murder_scheme_prep_effect = yes }
on_semiyearly = {
if = {
limit = {
scheme_owner = { is_ai = yes }
}
murder_scheme_prep_effect = yes
}
}
on_monthly = {
hostile_scheme_monthly_discovery_chance_effect = yes
if = {
limit = {
NOT = { exists = scope:discovery_event_happening }
}
scheme_owner = {
trigger_event = {
on_action = murder_ongoing
}
}
}
}
on_invalidated = {
scheme_target_character = {
save_scope_as = target
}
scheme_owner = {
save_scope_as = owner
}
if = { # If the target is part of the imaginary friend story cycle, fire this invalidation event, otherwise fire one of the normal ones
limit = {
scope:target = {
is_alive = no
NOT = { killer = scope:owner }
}
scope:owner = { var:imaginary_friend_murder_target ?= scope:target }
}
scope:owner = {
trigger_event = bp2_yearly.2023
}
}
else = {
if = { #Did the character die in another way?
limit = {
scope:target = {
is_alive = no
NOT = { killer = scope:owner }
}
}
scope:owner = {
trigger_event = murder_outcome.2000
}
}
if = { #Did the character move outside of diplomatic range
limit = {
scope:target = {
NOT = { in_diplomatic_range = scope:owner }
}
}
scope:owner = {
trigger_event = murder_outcome.2500
}
}
}
}
}

View file

@ -3,15 +3,4 @@
faith = faith:orleaniste
religion = religion:catholic_religion
}
}
doctrine_is_spiritual_type = {
OR = {
has_doctrine = doctrine_spiritual_head
has_doctrine = doctrine_holy_order_head
}
}
has_locked_hof = {
always = no
}