diff --git a/common/decisions/00_holy_order_decisions.txt b/common/decisions/00_holy_order_decisions.txt new file mode 100644 index 000000000..4733a955f --- /dev/null +++ b/common/decisions/00_holy_order_decisions.txt @@ -0,0 +1,513 @@ +create_holy_order_decision = { + picture = { + reference = "gfx/interface/illustrations/decisions/decision_major_religion.dds" + } + decision_group_type = major + + ai_goal = yes + + is_shown = { + is_landed = yes + NOT = { + faith = { + any_faith_holy_order = { + holy_order_patron = root + save_temporary_scope_as = order + } + } + } + + #trigger_if = { + # limit = { faith = { has_doctrine_parameter = no_holy_orders_til_hof } } + # exists = faith.religious_head + #} + + # 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 = { + faith = { + has_doctrine = doctrine_holy_order_head + NOT = { + exists = religious_head + } + } + } + can_create_head_of_faith_title_trigger = { + FAITH = this.faith + } + } + 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 + NOT = { 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 = 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 = { NOT = { 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 + } + + #if a ho_hof faith creates a ho and they don't have a hof yet, make it their hof + if = { + limit = { + faith = { + has_doctrine = doctrine_holy_order_head + NOT = { + exists = religious_head + } + } + } + faith = { + set_religious_head_title = scope:new_holy_order.title + create_head_of_faith_title_effect = yes + #TODO add events to inform faithful + } + } + } + create_holy_order_effect = yes + } + + ai_potential = { + + OR = { + highest_held_title_tier >= tier_kingdom + AND = { + highest_held_title_tier >= tier_duchy + faith = { + has_doctrine = doctrine_holy_order_head + NOT = { + exists = religious_head + } + } + } + } + is_playable_character = yes + + OR = { + any_held_title = { + tier = 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 + } + } + } + } + + } +} + +borrow_from_holy_order_decision = { #by Linnéa Thimrén + 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 = 72 + + cost = { + piety = 50 + } + + cooldown = { days = 5475 } + + is_shown = { + is_playable_character = yes + highest_held_title_tier > tier_barony + faith = { + any_faith_holy_order = { #Your faith must have a Holy Order + always = yes + } + } + 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 + } + } + } + } + } + + effect = { + hidden_effect = { + set_variable = { + name = amount_to_loan + value = holy_order_gold_value + days = 1 + } + add_character_flag = { + flag = borrow_from_holy_order + days = 3560 + } + faith = { + random_faith_holy_order = { + limit = { + leader = { gold >= holy_order_gold_value } + } + 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 + } + } +} + +cancel_holy_order_lease_decision = { + 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 = 36 + + is_shown = { + is_landless_adventurer = no + is_playable_character = yes + + any_sub_realm_barony = { + barony_is_valid_for_holy_order_lease_cancellation_trigger = yes + county.holder = root + } + + } + + widget = { + controller = revoke_holy_order_lease + barony_valid = { + trigger_if = { + limit = { exists = this } + barony_is_valid_for_holy_order_lease_cancellation_trigger = yes + } + 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 + } + + cost = { + piety = { + value = 0 + if = { + limit = { + exists = scope:barony + scope:barony.lessee.faith = root.faith + } + add = cancel_holy_order_piety_cost + } + } + } + + 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 + # NOT = { 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 = { + # NOT = { 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 = { + OR = { + faith:principlist.religious_head_title = { title_held_years > 0 } + AND = { + is_landed = yes + highest_held_title_tier >= tier_county + any_sub_realm_barony = { + county.holder = { is_ai = yes } + is_under_holy_order_lease = yes + } + } + + AND = { + 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 + NOT = { + 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 + } + } + } + #but don't revoke your HoF! + NOT = { + root.faith.religious_head = scope:barony.lessee + } + } + } +} diff --git a/common/decisions/religious_decisions_NEOW.txt b/common/decisions/religious_decisions_NEOW.txt index 0b00e975d..ee794abfd 100644 --- a/common/decisions/religious_decisions_NEOW.txt +++ b/common/decisions/religious_decisions_NEOW.txt @@ -86,4 +86,214 @@ ai_will_do = { base = 100 } -} \ No newline at end of file +} +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 + } +} \ No newline at end of file diff --git a/common/dynasty_perks/00_dynasty_perks.txt b/common/dynasty_perks/00_dynasty_perks.txt new file mode 100644 index 000000000..200eec64b --- /dev/null +++ b/common/dynasty_perks/00_dynasty_perks.txt @@ -0,0 +1,536 @@ +# 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 + } +} diff --git a/common/on_action/religion_on_actions.txt b/common/on_action/religion_on_actions.txt index 2ceade6b4..569b03d70 100644 --- a/common/on_action/religion_on_actions.txt +++ b/common/on_action/religion_on_actions.txt @@ -608,6 +608,60 @@ 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 }} diff --git a/common/on_action/yearly_on_actions.txt b/common/on_action/yearly_on_actions.txt index 3544dff87..79c00f7a8 100644 --- a/common/on_action/yearly_on_actions.txt +++ b/common/on_action/yearly_on_actions.txt @@ -2249,7 +2249,10 @@ yearly_playable_pulse = { highest_held_title_tier >= tier_empire has_trait = excommunicated faith = { - has_doctrine = doctrine_spiritual_head + OR = { + has_doctrine = doctrine_spiritual_head + has_doctrine = doctrine_holy_order_head + } has_doctrine = doctrine_imperial_anointment } custom_tooltip = { @@ -2282,7 +2285,10 @@ yearly_playable_pulse = { interaction = coronation_anointment_request } faith = { - has_doctrine = doctrine_spiritual_head + OR = { + has_doctrine = doctrine_spiritual_head + has_doctrine = doctrine_holy_order_head + } has_doctrine = doctrine_imperial_anointment } } diff --git a/common/religion/doctrine_types/20_doctrines.txt b/common/religion/doctrine_types/20_doctrines.txt index 888013fd0..6fb93e12f 100644 --- a/common/religion/doctrine_types/20_doctrines.txt +++ b/common/religion/doctrine_types/20_doctrines.txt @@ -963,6 +963,22 @@ doctrine_spiritual_head = { } } +doctrine_holy_order_head = { + 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" diff --git a/common/religion/doctrine_types/30_core_tenets.txt b/common/religion/doctrine_types/30_core_tenets.txt index f84a9b91a..3c46020ab 100644 --- a/common/religion/doctrine_types/30_core_tenets.txt +++ b/common/religion/doctrine_types/30_core_tenets.txt @@ -2286,7 +2286,10 @@ } # We also only want people with existing spiritual HoFs. exists = religious_head - has_doctrine_parameter = spiritual_head_of_faith + OR = { + doctrine:doctrine_spiritual_head = { is_in_list = selected_doctrines } + doctrine:doctrine_holy_order_head = { is_in_list = selected_doctrines } + } } can_pick = { diff --git a/common/schemes/scheme_types/abduct_scheme.txt b/common/schemes/scheme_types/abduct_scheme.txt new file mode 100644 index 000000000..fa48629e8 --- /dev/null +++ b/common/schemes/scheme_types/abduct_scheme.txt @@ -0,0 +1,393 @@ +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 + } + } + } + } + } +} diff --git a/common/schemes/scheme_types/diarch_schemes.txt b/common/schemes/scheme_types/diarch_schemes.txt new file mode 100644 index 000000000..79c2031ea --- /dev/null +++ b/common/schemes/scheme_types/diarch_schemes.txt @@ -0,0 +1,305 @@ +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 + } + } + } + } + } +} diff --git a/common/schemes/scheme_types/fabricate_hook_scheme.txt b/common/schemes/scheme_types/fabricate_hook_scheme.txt new file mode 100644 index 000000000..9396a588a --- /dev/null +++ b/common/schemes/scheme_types/fabricate_hook_scheme.txt @@ -0,0 +1,494 @@ +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 + } + } + } + } + } +} diff --git a/common/schemes/scheme_types/murder_scheme.txt b/common/schemes/scheme_types/murder_scheme.txt new file mode 100644 index 000000000..1b07d8a35 --- /dev/null +++ b/common/schemes/scheme_types/murder_scheme.txt @@ -0,0 +1,437 @@ +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 + } + } + } + } +} diff --git a/common/scripted_triggers/NEOW_religion_triggers.txt b/common/scripted_triggers/NEOW_religion_triggers.txt index 3c6dcdd0a..45ed3e429 100644 --- a/common/scripted_triggers/NEOW_religion_triggers.txt +++ b/common/scripted_triggers/NEOW_religion_triggers.txt @@ -3,4 +3,11 @@ faith = faith:orleaniste religion = religion:catholic_religion } +} + +doctrine_is_spiritual_type = { + OR = { + has_doctrine = doctrine_spiritual_head + has_doctrine = doctrine_holy_order_head + } } \ No newline at end of file diff --git a/events/religion_events/N3OW_holy_order_events.txt b/events/religion_events/N3OW_holy_order_events.txt new file mode 100644 index 000000000..e69de29bb diff --git a/events/religion_events/faith_creation_events.txt b/events/religion_events/faith_creation_events.txt new file mode 100644 index 000000000..e69de29bb diff --git a/history/characters/NEOW_e_nistrenia.txt b/history/characters/NEOW_e_nistrenia.txt index c67488b20..f61c2c86e 100644 --- a/history/characters/NEOW_e_nistrenia.txt +++ b/history/characters/NEOW_e_nistrenia.txt @@ -53,13 +53,18 @@ nistria0003 = { #King of Ukraine, plotting to break free from Nistria once and f trait = education_stewardship_3 trait = ambitious trait = patient - trait = vengeful + trait = deceitful trait = disloyal trait = lifestyle_poet sexuality = heterosexual 2516.12.4 = { birth = yes } + 2554.1.1 = { + effect = { + add_character_flag = should_become_independent + } + } 2600.1.1 = { death = yes } @@ -104,10 +109,13 @@ nistria0005 = { #King of Romania, Stefan Olteanu who wishes to claim the Imperia sexuality = heterosexual 2523.5.8 = { birth = yes + effect = { + add_character_flag = should_become_independent + } } 2554.1.1 = { add_pressed_claim = title:e_nistrenia - set_relation_nemesis={target=character:nistria0002} + set_relation_nemesis={target=character:nistria0002} } 2600.1.1 = { death = yes @@ -1681,6 +1689,9 @@ nistria1030 = { 2485.2.14 = { birth = yes } + 2554.1.1 = { + give_council_position = councillor_court_chaplain + } 2590.1.1 = { death = yes } diff --git a/history/provinces/e_nistrenia.txt b/history/provinces/e_nistrenia.txt index caed1d005..0be2e8389 100644 --- a/history/provinces/e_nistrenia.txt +++ b/history/provinces/e_nistrenia.txt @@ -1147,7 +1147,7 @@ holding = none 5274 = { #b_dnipro culture = NEOW_cossack religion = kozachina - holding = tribal_holding + holding = castle_holding } 5275 = { #b_salmacatce @@ -1158,7 +1158,7 @@ holding = none 12538 = { #b_kryvyi_rih culture = NEOW_cossack religion = kozachina - holding = tribal_holding + holding = castle_holding } 5273 = { #b_nikopol diff --git a/history/titles/k_ruthenia.txt b/history/titles/k_ruthenia.txt index 9c295e9e1..c33286bd2 100644 --- a/history/titles/k_ruthenia.txt +++ b/history/titles/k_ruthenia.txt @@ -51,6 +51,7 @@ d_kherson = { 2554.1.1 = { holder = nistria0051 liege = k_ruthenia + government = administrative_government } } @@ -58,6 +59,7 @@ d_dnipro = { 2554.1.1 = { holder = nistria0052 liege = k_ruthenia + government = administrative_government } } diff --git a/history/wars/00_wars.txt b/history/wars/00_wars.txt index 8d0eb0129..55653bb67 100644 --- a/history/wars/00_wars.txt +++ b/history/wars/00_wars.txt @@ -13,17 +13,6 @@ war = { attackers = { hungary0007 hungary0008 hungary0009 hungary0006 hungary0004 hungary0003 hungary0002 } defenders = { hungary0001 germany0061 italy_cornelio_angelis italy0014 } claimant = hungary0007 - - hungary0007= { - 2554.8.1= { - location = 3826 - } - } - hungary0001 = { - 2554.8.1 = { - location = 3803 - } - } } # Ukraian independance war @@ -37,17 +26,6 @@ war = { casus_belli = independence_faction_war attackers = { nistria0003 } defenders = { nistria0002 } - - nistr0003= { - 2554.12.12 = { - location = 547 - } - } - nistria0002 = { - 2554.12.12= { - location = 5021 - } - } } # nistria civil War @@ -63,14 +41,4 @@ war = { defenders = { nistria0002 } claimant = nistria0005 - nistria0005 = { - 2554.12.1= { - location = 4995 - } - } - nistria0002 = { - 2554.12.1 = { - location = 5021 - } - } } diff --git a/localization/english/replace/N3OW_head_of_faith_doctrines_l_english.txt b/localization/english/replace/N3OW_head_of_faith_doctrines_l_english.txt new file mode 100644 index 000000000..d12e99fbb --- /dev/null +++ b/localization/english/replace/N3OW_head_of_faith_doctrines_l_english.txt @@ -0,0 +1,13 @@ +l_english: +# l_spanish: +# l_german: +# l_french: +# l_russian: +# l_simp_chinese: +# l_korean: + doctrine_holy_order_head_name:0 "Holy Order" + doctrine_holy_order_head_desc:0 "When the physical world comes under attack it is those blessed by the spiritual that should come to its defence. It only makes sense that those who lead the defence of the faith should lead the faith itself." + doctrine_parameter_holy_order_head_of_faith:0 "The [head_of_faith|E] [title|El] is an [unlanded|El] [holy_order|E] which can be hired by the faithful or have titles [leased|El] to them." + doctrine_parameter_no_holy_orders_til_hof:0 "[Concept('holy_order','Holy Orders')|E] cannot be established unless the [head_of_faith|E] exists." + at_least_one_open_barony_in_domain:0 "At least one barony in your domain must be empty to host a Holy Order" + \ No newline at end of file diff --git a/localization/english/replace/zz_NEOW_game_concepts_l_english.yml b/localization/english/replace/zz_NEOW_game_concepts_l_english.yml index 4e47b044a..0f3b5f9cb 100644 --- a/localization/english/replace/zz_NEOW_game_concepts_l_english.yml +++ b/localization/english/replace/zz_NEOW_game_concepts_l_english.yml @@ -24,6 +24,11 @@ game_concept_neow_charlemagne_desc: "Novelists believe mankind was first united game_concept_neow_indifference: "Indifférence" game_concept_neow_indifference_desc: ""A terrible yet beautiful goddess, uninterested in the matters of man, with those seeking to understand her falling into madness. However, she is always by our side, giving us satisfaction, healing our wounds with the passage of time, and embracing us in our final hour. She is Cold, but not Cruel."\n\n#tooltip_subheading - Renaud de Templemont#!" +# Holy Order Stuff +game_concept_holy_order_head_of_faith: "Holy Order Head of Faith" +game_concept_head_of_faith_holy_order: "Holy Order" +game_concept_holy_order_head_of_faith_desc: "A [GetFaithDoctrine('doctrine_holy_order_head').GetBaseName] [head_of_faith|E] is [theocratic|E] and can not be [landed|E].\n\nThey lead a [holy_order|E] that any member of their faith can utilize when warring against infidels.\n\n$game_concept_head_of_faith_holy_order$ $game_concept_heads_of_faith$ usually have access to interactions such as being able to grant [claims|E] or [gold|E].\n\nShould the [doctrines|E] of the [faith|E] allow for [great_holy_wars|E] then they will be [great_holy_war_undirected|E] #weak (e.g. Crusades)#!." + #europeanist stuff game_concept_neow_the_belle_epoque: "The Belle Époque" game_concept_neow_the_belle_epoque_desc: "Europeanists call the waning days of the Old World the "Belle Époque", or the Beautiful Era of history. They hold that, under the wise guidance of the Emperors of Europa, the entire continent was more stable than it had ever been. A period of prosperity and culture, its end marked the beginning of the greatest dark age mankind has ever seen.\n\nHowever, not all are convinced the Belle Époque truly existed - for if it was so great, why did it fall?"