crash fixed

This commit is contained in:
Magpie490 2025-10-30 10:25:39 +00:00
parent 640086f245
commit f935f5a615
119 changed files with 12990 additions and 3192 deletions

View file

@ -598,8 +598,8 @@ NCombat = {
BASE_TOUGHNESS_TO_PURSUIT = 0.05 # This many % of the toughness of the retreater's soft casualties will turn into pursuit (during the full pursuit, not per day). Essentially, this means if neither side has screen or pursuit, 5% of the soft casualties will become hard casualties. More if the pursuer has more pursuit than the defender has screen, and vice versa BASE_TOUGHNESS_TO_PURSUIT = 0.05 # This many % of the toughness of the retreater's soft casualties will turn into pursuit (during the full pursuit, not per day). Essentially, this means if neither side has screen or pursuit, 5% of the soft casualties will become hard casualties. More if the pursuer has more pursuit than the defender has screen, and vice versa
MINIMUM_PURSUIT_DAMAGE = 0.01 # High screen can't bring casualties below 1% in the pursuit phase MINIMUM_PURSUIT_DAMAGE = 0.01 # High screen can't bring casualties below 1% in the pursuit phase
DISEMBARK_PENALTY_DAYS = 30 # How long does an army have a penalty after disembarking? DISEMBARK_PENALTY_DAYS = 30 # How long does an army have a penalty after disembarking?
KNIGHT_DAMAGE_PER_PROWESS = 50 # How much "Damage" stat does a knight get per prowess? KNIGHT_DAMAGE_PER_PROWESS = 30 # How much "Damage" stat does a knight get per prowess?
KNIGHT_TOUGHNESS_PER_PROWESS = 8 # How much "Toughness" stat does a knight get per prowess? KNIGHT_TOUGHNESS_PER_PROWESS = 6 # How much "Toughness" stat does a knight get per prowess?
### Brief: KNIGHT_AVERAGE_PROWESS_FOR_AI_POWER_CALCULATION ( int32 ) ### Brief: KNIGHT_AVERAGE_PROWESS_FOR_AI_POWER_CALCULATION ( int32 )
# How much prowess do we assume a knight to have for the purpose # How much prowess do we assume a knight to have for the purpose
@ -1083,8 +1083,8 @@ NPathFinding = {
NCulture = { NCulture = {
MINIMUM_INNOVATIONS_TO_NEXT_ERA = 8 # Raw number of innovations needed to be able to go to the next era. If an era has less innovations than this number, the lowest is used. MINIMUM_INNOVATIONS_TO_NEXT_ERA = 8 # Raw number of innovations needed to be able to go to the next era. If an era has less innovations than this number, the lowest is used.
ERA_PROGRESS_GAIN_BASE_MONTHLY = 0.1 # Base percentage gain every month for era spread ERA_PROGRESS_GAIN_BASE_MONTHLY = 0.1 # Base percentage gain every month for era spread
ERA_PROGRESS_GAIN_MONTHLY_PER_AVERAGE_DEVELOPMENT_LEVEL = 0.05 # How much extra per average development level ERA_PROGRESS_GAIN_MONTHLY_PER_AVERAGE_DEVELOPMENT_LEVEL = 0.08 # How much extra per average development level
FIRST_ERA_START_YEAR = 476 # When did the first era start? FIRST_ERA_START_YEAR = 2300 # When did the first era start?
# Regional spread will start with the minimum number of regions from any of the next percentages # Regional spread will start with the minimum number of regions from any of the next percentages
INNOVATION_REGIONAL_PERCENTAGE = 0.1 # Minimum percentage of region for regional innovations to get regional spread INNOVATION_REGIONAL_PERCENTAGE = 0.1 # Minimum percentage of region for regional innovations to get regional spread
@ -1094,7 +1094,7 @@ NCulture = {
# Chance (0..100) to advance with the innovation each month: # Chance (0..100) to advance with the innovation each month:
# base + from spread + from fascination # base + from spread + from fascination
INNOVATION_PROGRESS_CHANCE_BASE = 5 INNOVATION_PROGRESS_CHANCE_BASE = 5
INNOVATION_PROGRESS_CHANCE_FROM_SPREAD = 40 # chance bonus to innovation if there is any spread by nearby cultures INNOVATION_PROGRESS_CHANCE_FROM_SPREAD = 85 # chance bonus to innovation if there is any spread by nearby cultures
INNOVATION_PROGRESS_CHANCE_SPREAD_AND_FASCINATION_MULTIPLIER = 2 # multiply Cultural Acceptance (100-based) by this as bonus multiplier if the current spread innovation is ALSO a fascination INNOVATION_PROGRESS_CHANCE_SPREAD_AND_FASCINATION_MULTIPLIER = 2 # multiply Cultural Acceptance (100-based) by this as bonus multiplier if the current spread innovation is ALSO a fascination
# from fascination = base + SKILL_LEVEL_BONUS( max( 0, head relevant skill - HEAD_SKILL_BASE ) ) # from fascination = base + SKILL_LEVEL_BONUS( max( 0, head relevant skill - HEAD_SKILL_BASE ) )
# SKILL_LEVEL_BONUS( SKILL_MOD ) is computed as a sum of contributions that get smaller the higher the skill modifier. # SKILL_LEVEL_BONUS( SKILL_MOD ) is computed as a sum of contributions that get smaller the higher the skill modifier.
@ -1103,19 +1103,19 @@ NCulture = {
# Skill mod 37 -> 1 * 10 + 0.9 * 10 + 0.8 * 10 + 0.7 * 7 = 27.4 # Skill mod 37 -> 1 * 10 + 0.9 * 10 + 0.8 * 10 + 0.7 * 7 = 27.4
# trailing points after the highest section take the last multiplier of the PER_SKILL_SECTION array, which should have at minimum 2 entries # trailing points after the highest section take the last multiplier of the PER_SKILL_SECTION array, which should have at minimum 2 entries
# this skill level bonus will not exceed the SKILL_CAP, so a Skill 100 character will still get at most (for example) 30% progress chance from their skill. # this skill level bonus will not exceed the SKILL_CAP, so a Skill 100 character will still get at most (for example) 30% progress chance from their skill.
INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_BASE = 10 # base progress chance bonus if fascination INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_BASE = 5 # base progress chance bonus if fascination
INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_HEAD_SKILL_BASE = 0 # skill level below which no bonus is given INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_HEAD_SKILL_BASE = 0 # skill level below which no bonus is given
INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_SKILL_LEVEL_SECTION_SIZE = 10 # size of each multiplier chunk. with 10, the first 10 bonus point will get the first multiplier and so on INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_SKILL_LEVEL_SECTION_SIZE = 0 # size of each multiplier chunk. with 10, the first 10 bonus point will get the first multiplier and so on
INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_SKILL_CAP = 45 # how high can the skill bonus be at most (BASE included) INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_SKILL_CAP = 0 # how high can the skill bonus be at most (BASE included)
INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_PER_SKILL_SECTION = { 1 0.9 0.8 0.7 0.6 } INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_PER_SKILL_SECTION = { 1 0.9 0.8 0.7 0.6 }
INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_NO_HEAD_SKILL = 10 # used as the skill value if there is no cultural head INNOVATION_PROGRESS_CHANCE_FROM_FASCINATION_NO_HEAD_SKILL = 5 # used as the skill value if there is no cultural head
INNOVATION_PROGRESS_GAIN_FROM_BONUS_FASCINATION = 1.5 # Additional progress rate if the innovation is current fascination AND was selected as bonus_fascination_innovation INNOVATION_PROGRESS_GAIN_FROM_BONUS_FASCINATION = 1.5 # Additional progress rate if the innovation is current fascination AND was selected as bonus_fascination_innovation
# If the random roll succeeds, the innovation will progress by: # If the random roll succeeds, the innovation will progress by:
# base + from development + from eras ahead # base + from development + from eras ahead
INNOVATION_PROGRESS_GAIN_BASE = 0.3 INNOVATION_PROGRESS_GAIN_BASE = 0.3
INNOVATION_PROGRESS_GAIN_PER_AVERAGE_DEVELOPMENT_LEVEL = 0.02 INNOVATION_PROGRESS_GAIN_PER_AVERAGE_DEVELOPMENT_LEVEL = 0.1
INNOVATION_PROGRESS_GAIN_PER_ERA_AHEAD = 0.2 INNOVATION_PROGRESS_GAIN_PER_ERA_AHEAD = 0.2
INNOVATION_PROGRESS_DIVIDE_FACTOR_IF_ERA_BEHIND = 5 # the overall progress is divided by this number to achieve a way slower progress for future innovations. 10 would divide the total progress by 10, and this is further divided by the number of eras the culture is behind - so the progress may end up being divided by 30 at most. Set to 0 to disable this behavior. INNOVATION_PROGRESS_DIVIDE_FACTOR_IF_ERA_BEHIND = 5 # the overall progress is divided by this number to achieve a way slower progress for future innovations. 10 would divide the total progress by 10, and this is further divided by the number of eras the culture is behind - so the progress may end up being divided by 30 at most. Set to 0 to disable this behavior.
INNOVATION_PROGRESS_MIN_MULTIPLIER_IF_ERA_BEHIND = 0.01 # the division from the define above may not go lower than this. Ranges between 0 and 1. INNOVATION_PROGRESS_MIN_MULTIPLIER_IF_ERA_BEHIND = 0.01 # the division from the define above may not go lower than this. Ranges between 0 and 1.

File diff suppressed because it is too large Load diff

View file

@ -1602,6 +1602,715 @@ estate = {
} }
} }
patrician_estate = {
rename_window = house
illustration = "gfx/interface/illustrations/event_scenes/ep3_medi_estate.dds"
icon = "gfx/interface/icons/flat_icons/estate.dds"
map_pin_texture = "gfx/interface/icons/map_icons/map_icon_estate.dds"
map_pin_anchor = left
map_pin_lobby = yes
can_move_manually = yes
move_cooldown = { days = estate_move_cooldown_value }
move_cost = {
gold = {
value = {
value = 20
format = "BASE_VALUE_FORMAT"
desc = "BASE_VALUE"
}
if = {
limit = {
domicile ?= { has_domicile_building_or_higher = estate_main_05 }
}
add = 80
}
else_if = {
limit = {
domicile ?= { has_domicile_building_or_higher = estate_main_04 }
}
add = 60
}
else_if = {
limit = {
domicile ?= { has_domicile_building_or_higher = estate_main_03 }
}
add = 40
}
else_if = {
limit = {
domicile ?= { has_domicile_building_or_higher = estate_main_02 }
}
add = 20
}
}
}
base_external_slots = 2
domicile_building_slots = {
external_slot_1 = {
position = { 19.7% 5.5% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_02_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_05.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_05_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png"
}
}
external_slot_4 = {
position = { 49.0% 2.5% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_05.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_05_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_03_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_03_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_03_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png"
}
}
main_slot = {
slot_type = main
position = { 28.2% 13.2% }
size = { 28% 34.5% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = hills
terrain = mountains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_grain_fields_byzantine_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_manor_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_manor_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_manor_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_manor_construction_byzantine_mask.png"
}
}
external_slot_2 = {
position = { 4% 20% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_06.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_06_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty_06.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_06_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty_06.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_06_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_06.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_06_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png"
}
}
external_slot_3 = {
position = { 14% 46% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_04.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_04_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty_04.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_04_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty_04.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_04_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_04.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_04_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png"
}
}
external_slot_5 = {
position = { 64% 29% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty_03.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_03_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty_05.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_05_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_02_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_02_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png"
}
}
external_slot_6 = {
position = { 43% 52% }
size = { 15% 30% }
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_jungle_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_jungle_empty_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_drylands_empty_02.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_drylands_empty_02_mask.png"
}
empty_slot_asset = {
trigger = {
domicile_location = {
OR = {
terrain = mountains
terrain = hills
}
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_rough_empty_05.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_rough_empty_05_mask.png"
}
empty_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_grassland_empty.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_grassland_empty_mask.png"
}
# Under Construction
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_mena_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_mena.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_mena_mask.png"
}
construction_slot_asset = {
trigger = {
domicile_location.culture = {
has_graphical_western_culture_group_trigger = yes
}
}
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_western.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_western_mask.png"
}
construction_slot_asset = {
icon = "gfx/interface/icons/flat_icons/plus.dds"
texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine.dds"
intersectionmask_texture = "gfx/interface/window_domiciles/estate_building_construction_byzantine_mask.png"
}
}
}
# Backgrounds
domicile_asset = {
trigger = {
domicile_location = {
this = root.owner.top_liege.capital_province
}
}
background = "gfx/interface/window_domiciles/estate_background_urban_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_urban_terrain_foreground.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_byzantine_urban"
}
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = jungle
terrain = wetlands
terrain = floodplains
}
}
}
background = "gfx/interface/window_domiciles/estate_background_jungle_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_jungle_terrain_foreground.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_wetlands"
}
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = drylands
terrain = desert
terrain = desert_mountains
terrain = oasis
terrain = steppe
}
}
}
background = "gfx/interface/window_domiciles/estate_background_dry_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_dry_terrain_foreground.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_dry_lands"
}
domicile_asset = {
trigger = {
domicile_location = {
OR = {
terrain = hills
terrain = mountains
}
}
}
background = "gfx/interface/window_domiciles/estate_background_rough_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_rough_terrain_foreground.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_rough_lands"
}
domicile_asset = {
background = "gfx/interface/window_domiciles/estate_background_green_terrain.dds"
foreground = "gfx/interface/window_domiciles/estate_background_green_terrain_foreground.dds"
ambience = "event:/DLC/EP3/SFX/Ambience/2D/Domicile/ep3_amb_2d_domicile_green_lands"
}
}
yurt = { yurt = {
rename_window = primary_title rename_window = primary_title

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,163 @@
japan_administrative_government = { # Ritsuryo
government_rules = {
create_cadet_branches = yes
rulers_should_have_dynasty = yes
dynasty_named_realms = no
administrative = yes
legitimacy = yes
landless_playable = yes
use_as_base_on_landed = yes
use_as_base_on_rank_up = yes
inherit_from_dynastic_government = no
sticky_government = yes
house_aspirations = yes
noble_families = yes
deny_powerful_vassal = yes
}
royal_court = any
domicile_type = japanese_manor
main_administrative_tier = county
min_appointment_tier = county
minimum_provincial_maa_tier = duchy
primary_holding = castle_holding
primary_heritages = { heritage_japonic }
valid_holdings = { city_holding temple_citadel_holding }
required_county_holdings = { castle_holding city_holding church_holding }
vassal_contract_group = japan_administrative_vassal
character_modifier = {
# LEVIES & TAXES
japan_feudal_government_tax_contribution_mult = -0.5
japan_feudal_government_levy_contribution_mult = -0.5
garrison_size = -0.5
# MEN-AT-ARMS
men_at_arms_cap = -2
men_at_arms_limit = -2
# KNIGHTS
knight_limit = -5
# VASSALS
vassal_limit = 50 # Kampaku
# DOMAIN
domain_limit_max = 1 # Raised further by manor
domain_tax_mult = 0.3
}
can_get_government = {
has_tgp_dlc_trigger = yes
top_liege = {
OR = {
government_is_japanese_trigger = yes
has_character_flag = tgp_japan_restore_japanese_government_flag
culture = culture:japanese
culture = {
any_parent_culture_or_above = { this = culture:japanese }
}
}
}
}
# The Regent always remains in the same place.
can_move_realm_capital = {
NOT = { primary_title ?= title:e_japan }
}
compatible_government_type_succession = { japan_feudal_government }
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
government_is_japan_administrative
# These flags only exist for loc and in-game descriptions
government_has_influence
government_has_title_men_at_arms
government_has_powerful_families
government_has_county_tier_noble_families
has_special_house_aspirations
government_is_settled
government_uses_domicile_but_not_adventurer
has_unique_government_perks
government_uses_admin_province_obligations
government_has_house_blocs
}
color = { 250 90 150 }
realm_mask_offset = { 0.02 0.072 }
realm_mask_scale = { 0.88 0.88 }
}
japan_feudal_government = { # Soryo
government_rules = {
create_cadet_branches = yes
rulers_should_have_dynasty = yes
dynasty_named_non_independent_landed_rulers = yes
landless_playable = yes
legitimacy = yes
house_aspirations = yes
use_as_base_on_landed = yes
use_as_base_on_rank_up = yes
noble_families = yes
}
royal_court = any
character_modifier = {
# LEVIES & TAXES
japan_administrative_government_tax_contribution_mult = -0.5
japan_administrative_government_levy_contribution_mult = -0.5
garrison_size = -0.5
# VASSALS
vassal_limit = 50 # Shogun
# KNIGHTS
knight_effectiveness_mult = 0.1
knight_limit = 2
# DOMAIN
domain_limit_max = 2 # Raised further by manor
# SAMURAI
archer_cavalry_recruitment_cost_mult = -0.25
heavy_infantry_recruitment_cost_mult = -0.25
}
domicile_type = japanese_manor
primary_holding = castle_holding
primary_heritages = { heritage_japonic }
valid_holdings = { temple_citadel_holding }
required_county_holdings = { castle_holding city_holding church_holding }
vassal_contract_group = japan_feudal_vassal
can_get_government = {
has_tgp_dlc_trigger = yes
}
# The Regent always remains in the same place.
can_move_realm_capital = {
NOT = { primary_title ?= title:e_japan }
}
compatible_government_type_succession = { japan_administrative_government }
ai = {
use_legends = yes
}
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
flags = {
may_elevate_co_monarch
government_is_japan_feudal
government_has_county_tier_noble_families
has_special_house_aspirations
government_is_settled
government_uses_domicile_but_not_adventurer
has_unique_government_perks
government_has_house_blocs
}
color = { 68 100 250 }
realm_mask_offset = { 0.0 0.075 }
realm_mask_scale = { 0.95 0.95 }
}

View file

@ -48,12 +48,6 @@
# #
dynasty_named_realms = no dynasty_named_realms = no
### brief: royal_court ( bool )
# Should this government allow having a royal court if of the
# correct tier from NRoyalCourt::MIN_ROYAL_COURT_TIER
#
royal_court = no
### brief: legitimacy ( bool ) ### brief: legitimacy ( bool )
# Rulers can have legitimacy if there's one valid for them # Rulers can have legitimacy if there's one valid for them
# #
@ -69,14 +63,28 @@
# #
administrative = no administrative = no
### brief: admin_allows_holding_multiple_primary_tier_titles ( bool )
# Allows administrative rulers to hold multiple primary tier titles
# - Only valid with admin government types ( administrative = yes )
# - Only checked during the following title transfer types:
# - appointment
# - appointment_succession
# - stepped_down
#
admin_allows_holding_multiple_primary_tier_titles = no
### brief: landless_playable ( bool ) ### brief: landless_playable ( bool )
# Allow rulers be playable even when they don't have any county # Allow rulers be playable even when they don't have any county
# or barony.
# #
# Requires the dlc_flag landless_playable # Requires the dlc_flag landless_playable
# #
landless_playable = no landless_playable = no
### brief: allow_out_of_realm_inheritance ( bool )
# default is no.
#
allow_out_of_realm_inheritance = no
### brief: use_as_base_on_landed ( bool ) ### brief: use_as_base_on_landed ( bool )
# Switch to this government type when obtaining your first title (becoming landed) if the old holder of the title # Switch to this government type when obtaining your first title (becoming landed) if the old holder of the title
# was this government type # was this government type
@ -110,6 +118,53 @@
# #
mercenary = no mercenary = no
### brief: state_faith ( bool )
# Uses state faith.
# Default is no.
#
state_faith = no
## brief: treasury ( bool )
# Uses the Imperial Treasury resource
# Default is no
treasury = no
## brief: merit ( bool )
# Uses the Merit resource
# Default is no
merit = no
## brief: uses_county_fertility ( bool )
# Default is no.
#
uses_county_fertility = no
## brief: replenishes_county_fertility ( bool )
# Default is no.
#
replenishes_county_fertility = no
## brief: obedience ( bool )
# Uses obedience.
# Default is no.
#
obedience = no
## brief: uses_culture_and_house_head_named_realms ( bool )
# Default is no.
#
uses_culture_and_house_head_named_realms = no
## brief: sticky_government ( bool )
# Default is no.
#
sticky_government = no
## brief: subject_men_at_arms ( bool )
# Default is no.
#
subject_men_at_arms = no
### brief: use_title_tier_modifiers ( bool ) ### brief: use_title_tier_modifiers ( bool )
# Enable passive prestige gain from held titles and title tier modifiers # Enable passive prestige gain from held titles and title tier modifiers
# Default is yes. # Default is yes.
@ -128,7 +183,7 @@
inherit_from_dynastic_government = yes inherit_from_dynastic_government = yes
### brief: dynasty_named_realms ( bool ) ### brief: dynasty_named_realms ( bool )
# The realm of the government using this will have it's map name instead be based on their # The realm of the government using this will have it's map name instead be based on their
# dynasty and culture - the following rules apply # dynasty and culture - the following rules apply
# (In this example we use the mongols of the dynasty Borjigin) # (In this example we use the mongols of the dynasty Borjigin)
# If you are the culture head - you would be The Mongols # If you are the culture head - you would be The Mongols
@ -149,19 +204,134 @@
# Default is yes. # Default is yes.
# #
use_maa_maintenance = yes use_maa_maintenance = yes
### brief: no_capital_movement_cooldown ( bool )
# Default is no.
#
no_capital_movement_cooldown = no
## TODO_TGP add description
#
redirects_wars_to_overlord = no
### brief: noble_families ( bool )
# Default is no.
#
noble_families = no
### brief: house_aspirations ( bool )
# Use house aspirations or family attributes
# Default is no.
#
house_aspirations = no
## brief: replace_gold_cost_by_treasury (bool)
# This government pays for state expenses with treasury instead of gold. Requires the treasury flag to be set as well.
# Affected areas: title creation, holding buildings, mercenaries, title regiments..
# default is no
#
replace_gold_cost_by_treasury = no
### brief: block_alliance_child_marriage (bool)
# Government flag which disables alliances from childrens' weddings
# Default is no
#
block_alliance_child_marriage = no
### brief: block_alliance_non_dominant_gender_child_marriage (bool)
# Government flag which disables alliances from non-dominant childrens' weddings
# Default is no
#
block_alliance_non_dominant_gender_child_marriage = no
### brief: always_use_patronym ( bool )
# Patronyms will display for characters if either their Culture or
# Government has this. Default is no.
#
always_use_patronym = no
### brief: affected_by_development ( bool )
# Are the counties with owners with this government type affected
# by development.
#
affected_by_development = yes
### brief: noble_families (bool)
# Does this government type allow the existence of Noble Family Titles?
# Default is no.
#
noble_families = no
### brief: considers_piety_for_title_creation ( bool )
# Considers characters piety for title creation.
# Default is no
#
considers_piety_for_title_creation = no
### brief: ask_for_tribute ( bool )
# Can ask other characters to become tributary.
# Shows tributarization_chance map mode in Realm window
# Uses offer_tributary_status_interaction interaction
# Default is no
#
ask_for_tribute = no
### brief: barter ( bool )
# Enables the bartering system
# Default is no
#
barter = no
### brief: buildings (bool)
# Can characters of this government build buildings in their Holdings?
# Default is yes
#
buildings = yes
### brief: count_tributaries_for_title_requirements (bool)
# characters of this government will consider their tributaries' land as well
# when evaluating if they have enough land to create or usurp a title.
#
# you always need at least one dejure county.
#
# Default is no
#
count_tributaries_for_title_requirements = no
### brief: radiance (bool)
# characters of this government will have access to the Radiance mechanics
# Default is no
#
radiance = no
} }
### brief: always_use_patronym ( bool ) ### mechanic_type ( government type )
# Patronyms will display for characters if either their Culture or # Specifies to what "family" of government does this government belong.
# Government has this. Default is no. # Not all governments must specify one. This flag is used in Code for some specific checks
# (such as creation of Nomad titles for Nomad rulers). Not set by default.
# #
always_use_patronym = no # Supported values:
# * feudal
# * mercenary
# * holy_order
# * clan
# * theocracy
# * administrative
# * landless_adventurer
# * herder
# * nomad
# * mandala
#
mechanic_type = <unset>
### brief: affected_by_development ( bool ) ### is_mechanic_type_default (bool)
# Are the counties with owners with this government type affected # Should this government be the default of its type? This will be used
# by development. # when spawning new characters or changing government.
# Only one government per mechanic_type (described above) should be marked as default.
# All government types listed above should have one default.
# default is no
# #
affected_by_development = yes is_mechanic_type_default = no
### brief: fallback ( integer ) ### brief: fallback ( integer )
# At least one government should be scripted as fallback, fallback # At least one government should be scripted as fallback, fallback
@ -185,6 +355,18 @@
# #
can_get_government = { ... } can_get_government = { ... }
### brief: can_move_realm_capital ( trigger )
# Checked when attempting to move realm capital to see if this
# government type allows that ruler to move it.
#
# Default behaviour:
# Rulers are, if nothing is defined, allowed to move their realm capital.
#
# Supported scopes:
# root: ( Character )
# The ruler of the realm with this government type.
can_move_realm_capital = { ... }
### brief: primary_holding ( database key ) ### brief: primary_holding ( database key )
# What is the primary holding type of this government type? Key is # What is the primary holding type of this government type? Key is
# mapped to the holdings database: common/holdings/ # mapped to the holdings database: common/holdings/
@ -250,6 +432,40 @@
# #
prestige_opinion_override = { -20 10 ... } prestige_opinion_override = { -20 10 ... }
### brief: royal_court ( enum )
# Should this government allow having a royal court for the ruler and their vassals
# if of the correct tier from NRoyalCourt::MIN_ROYAL_COURT_TIER
# none ( default ) - rulers of this government type can't have royal court, no limit on vassals
# any - rulers do have royal court, no limit on vassals
# top_liege - only independent rulers can have royal court. Any vassals on any government type can't have royal court
#
royal_court = none / any / top_liege
### brief: main_administrative_tier ( enum )
# Title tier that enables most administrative mechanics
# Such as title troops, map modes etc
#
main_administrative_tier = county / duchy / kingdom
### brief: min_appointment_tier ( enum )
# Title tier that enables appointment succession mechanics
#
min_appointment_tier = county / duchy / kingdom
### brief: minimum_provincial_maa_tier ( enum )
# Lowest title tier allowed to have title troops.
# This should only be set for administrative government types.
# Will default to 'duchy' if not set.
#
minimum_provincial_maa_tier = county / duchy / kingdom
### brief: title_maa_setup ( enum )
# Which titles within the Administrative government type can create title troops
# main_administrative_tier_and_top_liege - (default) Main administrative tier (see above) titles, and the top liege primary title
# vassals_and_top_liege - Titles that are the main administrative tier or above, and the top liege primary title
# top_vassals_and_top_liege - Titles that are directly under the top liege, and the top liege primary title
title_maa_setup = main_administrative_tier_and_top_liege
### brief: vassal_contract ( array of database keys ) ### brief: vassal_contract ( array of database keys )
# Vassal obligations, how much does the vassal give to their liege. # Vassal obligations, how much does the vassal give to their liege.
# The vassal's government type determines which contract type is # The vassal's government type determines which contract type is
@ -278,6 +494,78 @@
domicile_type = domicile type key domicile_type = domicile type key
### brief: opinion_of_liege ( scripted value, optional )
# An opinion bonus or malus that the vassal may have related to their liege, specific to this vassal's government type.
# Supported variables:
# liege
# vassal
#
opinion_of_liege = { value ... }
### brief: opinion_of_liege_desc ( dynamic description, optional )
# Dynamic description related to the opinion_of_liege above. Please fill this in if defining a custom opinion_of_liege
# Supported variables:
# liege
# vassal
#
opinion_of_liege_desc = { dynamic_desc ... }
### brief: opinion_of_suzerain ( scripted value, optional )
# An opinion bonus or malus that the tributary may have related to their suzerain, specific to this vassal's government type.
# Supported variables:
# suzerain
# tributary
#
opinion_of_suzerain = { value ... }
### brief: opinion_of_suzerain_desc ( dynamic description, optional )
# Dynamic description related to the opinion_of_suzerain above. Please fill this in if defining a custom opinion_of_suzerain
# Supported variables:
# suzerain
# tributary
#
opinion_of_suzerain_desc = { dynamic_desc ... }
### brief: opinion_of_overlord ( scripted value, optional )
# An opinion bonus or malus that the subjects may have related to their overlord, specific to this subject's government type.
# Note: If should apply to both liege and suzerain, use this instead
#
# Supported variables:
# overlord
# subject
#
opinion_of_overlord = { value ... }
### brief: opinion_of_overlord_desc ( dynamic description, optional )
# Dynamic description related to the opinion_of_overlord above. Please fill this in if defining a custom opinion_of_overlord
# Note: If should apply to both liege and suzerain, use this instead
#
# Supported variables:
# overlord
# subject
#
opinion_of_overlord_desc = { dynamic_desc ... }
## brief: currency_levels_cap
# 0-based index of the max piety / prestige / merit / influence level this government allows. defaults are defined in defines.txt
# The character's level cap will be limited by this value if lower than the default, but otherwise needs modifiers to be higher.
# Use character_max_[piety/prestige/influence/merit]_level_add to add and remove levels to the default one and alter their max level cap.
# See the paragraph "Currency Level Cap Explained" below for a detailed rundown of how this system works
#
currency_levels_cap = {
piety = 5
prestige = 5
influence = 5
merit = 9
}
### brief: compatible_government_type_succession (government_type)
# in specific cases (such as when evaluating if a character is eligible for succession in an admin government)
# this government type also allows the listed government types to be valid candidates. Normally it's only characters
# of the same government that can be appointed
#
compatible_government_type_succession = { government_type_key ... }
### brief: ai ### brief: ai
# Overrides for some AI functionaltiy when held by an AI with this # Overrides for some AI functionaltiy when held by an AI with this
# government type. Note that some features might be disabled for # government type. Note that some features might be disabled for
@ -319,6 +607,11 @@
### brief: perform_religious_reformation ( flag ) ### brief: perform_religious_reformation ( flag )
# #
perform_religious_reformation = yes perform_religious_reformation = yes
### brief: use_great_projects (flag)
# Will evaluate founding new Great Projects and contributing to existing ones
#
use_great_projects = no
} }
### brief: character_modifier ( modifiers ) ### brief: character_modifier ( modifiers )
@ -326,17 +619,55 @@
# #
character_modifier = {} character_modifier = {}
### brief: top_liege_character_modifier ( modifiers )
# Modifier applied to the ruler character with this government type, if they are an independent top liege.
# This applied on top of the regular 'character_modifier' above.
#
top_liege_character_modifier = {}
### brief: color ( vector 3 ) ### brief: color ( vector 3 )
# Color for map mode # Color for map mode
# #
color = { 100 100 100 } color = { 100 100 100 }
### brief: flag ( flag ) ##############
# List of flags this government uses. Can be defined as any string ### AI
# that can be referenced by government_has_flag = some_flag. Can ##############
# be defined multiple times for multiple flags.
### brief: ai_ruler_desired_kingdom_titles (scripted value)
# How many kingdom titles would the a ruler with this government want to keep for themselves?
# They will try to give away excess kingdoms until they are at the specified value.
# A negative value will make the AI keep all titles.
# Default value is defined as AI_RULER_DESIRED_KINGDOM_TITLES_DEFAULT
# #
flag = some_flag # root = the ruler
ai_ruler_desired_kingdom_titles = -1
### brief: ai_ruler_desired_empire_titles (scripted value)
# How many empire titles would a ruler with this government want to keep for themselves?
# They will try to give away excess empires until they are at the specified value.
# A negative value will make the AI keep all titles.
# Default value is defined as AI_RULER_DESIRED_EMPIRE_TITLES_DEFAULT
#
# root = the ruler
ai_ruler_desired_empire_titles = -1
### brief: ai_can_reassign_council_positions (trigger)
# Should an AI ruler with this government be allowed to reassign council positions? Default is yes
#
# root = the council owner
#
ai_can_reassign_council_positions = { ... }
### brief: flags ( parameter list )
# List of flags this government uses. Can be defined as any string
# that can be referenced by government_has_flag = some_flag.
#
flags = {
some_flag
some_other_flag
}
} }
Allowed Modifiers Allowed Modifiers
@ -352,3 +683,42 @@ databases:
Other generated modifiers are _not_ allowed, such as those from other Other generated modifiers are _not_ allowed, such as those from other
governments, men_at_arms_types, cultures, or terrain types. governments, men_at_arms_types, cultures, or terrain types.
###
### Currency Level Cap Explained
###
# Characters' maximum achievable levels for Prestige, Piety, Influence and Merit depend on 4 sources:
# * the default maximum level, defined in 00_define.txt
# * the list of level tiers, also defined in 00_define.txt
# * the cap specified in their government
# * the modifiers applied to the Character
#
# Considering Piety for instance, a Character's maximum Level of Devotion depends on:
# * NCharacter.DEFAULT_PIETY_LEVEL_CAP (5)
# * the list of Devotion points needed to achieve every level (NCharacter.LEVELS_PIETY), which has 8 entries
# * the default currency_level_cap.piety for a government is equal to DEFAULT_PIETY_LEVEL_CAP (5), but for Mandala governments this is set to 8.
# This means Characters with the Mandala government type will eventually be able to raise their maximum Level of Devotion to Godlike.
# * the relevant modifier is character_max_piety_level_add
#
# Every Character's maximum Level of Devotion starts at their default (5), but it can be increased or decreased by character_max_piety_level_add.
# However it can never be higher than the cap specified by their Government.
#
# Some fictional examples follow. Imagine that:
# * there is a followed_by_the_masses modifier that gives character_max_piety_level_add = 1
# * there is a excommunicated modifier that gives character_max_piety_level_add = -2
# * there is a god_incarnate modifier that gives character_max_piety_level_add = 10
# * the Feudal government has default Piety level cap, while the Mandala government has Piety level cap set to 8.
# * a fictional Unpious government type has a piety cap set at 3.
#
# * a Mandala ruler followed_by_the_masses will have a maximum achievable Level of Devotion of 6 (5 + 1, capped at 8 due to Mandala level cap)
# * a god_incarnate Mandala ruler will have a maximum achievable Level of Devotion of 8 (5 + 10, capped at 8 due to Mandala level cap)
# * a Feudal ruler followed_by_the_masses will have a maximum achievable Level of Devotion of 5 (5 + 1, capped at 5 due to Feudal level cap)
# * an Unpious ruler followed_by_the_masses will have a maximum achievable Level of Devotion of 3 (5 + 1, capped at 3 due to Unpious level cap)
# * an excommunicated Feudal ruler followed_by_the_masses will have a maximum achievable Level of Devotion of 4 (5 + 1 - 2)
# * an excommunicated Unpious ruler will still have a maximum achievable Level of Devotion of 3 (5 - 2, capped at 3)
# * an excommunicated Mandala ruler will have a maximum achievable Level of Devotion of 3 (5 - 2)
# * a god_incarnate excommunicated Mandala ruler will have a maximum achievable Level of Devotion of 8 (5 + 10 - 2, capped at 8)

View file

@ -1689,17 +1689,18 @@ on_game_start = {
} }
#Admin - generate families #Admin - generate families
every_independent_ruler = { every_independent_ruler = {
limit = { has_government = administrative_government } limit = { has_government = administrative_government }
every_vassal = { every_vassal = {
limit = { limit = {
has_government = administrative_government has_government = administrative_government
is_house_head = yes is_house_head = yes
highest_held_title_tier >= tier_duchy highest_held_title_tier >= tier_duchy
NOR = { NOR = {
any_held_title = { is_noble_family_title = yes } any_held_title = { is_noble_family_title = yes }
house = { house = {
any_house_member = { any_house_member = {
any_held_title = { is_noble_family_title = yes } any_held_title = { is_noble_family_title = yes }
}
} }
} }
} }
@ -1710,6 +1711,19 @@ on_game_start = {
create_noble_family_effect = yes create_noble_family_effect = yes
domicile ?= { set_up_domicile_estate_effect = yes } domicile ?= { set_up_domicile_estate_effect = yes }
} }
every_independent_ruler = {
limit = { has_government = republic_government tier = tier_duchy }
every_vassal = {
limit = {
tier = tier_duchy
has_government = republic_government
}
create_noble_family_effect = yes
domicile ?= { set_up_domicile_estate_effect = yes }
}
create_noble_family_effect = yes
domicile ?= { set_up_domicile_estate_effect = yes }
}
} }
} }

View file

@ -118,6 +118,41 @@ change_to_administrative_interaction_effect = {
} }
} }
set_up_domicile_patrician_estate_effect = {
if = {
limit = { is_domicile_type = patrician_estate }
# Intentionally one level lower than what you can get
if = {
limit = {
NOT = { has_domicile_building_or_higher = estate_main_02 }
owner.culture ?= { has_innovation = innovation_city_planning }
}
add_domicile_building = estate_main_02
}
if = {
limit = {
has_domicile_building = estate_main_02
NOT = { has_domicile_building_or_higher = estate_main_03 }
owner.culture ?= { has_innovation = innovation_manorialism }
}
add_domicile_building = estate_main_03
}
switch = {
trigger = has_domicile_building
estate_main_03 = {
while = {
count = 2
add_random_internal_estate_building = yes
}
}
estate_main_02 = {
add_random_internal_estate_building = yes
}
}
fill_external_estate_building_effect = yes
}
}
set_up_domicile_estate_effect = { set_up_domicile_estate_effect = {
if = { if = {
limit = { is_domicile_type = estate } limit = { is_domicile_type = estate }

View file

@ -1,12 +1,10 @@
is_available_for_activity_trigger = { is_available_for_activity_trigger = {
NOT = { exists = involved_activity } is_available_quick = {
is_adult = yes adult = yes
OR = { at_war = no
is_ai = no imprisoned = no
is_busy_in_events_unlocalised = no activity = no
} }
is_at_war = no
is_imprisoned = no
is_healthy = yes is_healthy = yes
NOR = { NOR = {
exists = var:booked_for_a_party exists = var:booked_for_a_party
@ -15,17 +13,15 @@
} }
is_available_for_child_activity_trigger = { is_available_for_child_activity_trigger = {
NOT = { exists = involved_activity } is_available_quick = {
is_adult = no adult = no
at_war = no
imprisoned = no
activity = no
hostage = no
}
age >= 4 age >= 4
age < less_than_two_years_to_adulthood_value #To avoid being away when Coming of Age-event triggers age < less_than_two_years_to_adulthood_value #To avoid being away when Coming of Age-event triggers
OR = {
is_ai = no
is_busy_in_events_unlocalised = no
}
is_at_war = no
is_imprisoned = no
is_hostage = no
is_healthy = yes is_healthy = yes
NOR = { NOR = {
exists = var:hostage_travelling_to_warden exists = var:hostage_travelling_to_warden
@ -34,24 +30,21 @@ is_available_for_child_activity_trigger = {
} }
is_available_in_activity_trigger = { is_available_in_activity_trigger = {
exists = involved_activity is_available_quick = {
is_adult = yes activity = yes
OR = { adult = yes
is_ai = no at_war = no
is_busy_in_events_unlocalised = no imprisoned = no
} }
is_at_war = no
is_imprisoned = no
is_healthy = yes is_healthy = yes
} }
### Witch Ritual ### Witch Ritual
activity_witch_ritual_valid_trigger = { activity_witch_ritual_valid_trigger = {
exists = house house ?= {
house = {
has_house_modifier = witch_coven has_house_modifier = witch_coven
any_house_member = { any_house_member = {
NOT = { this = root } this != root
is_witch_known_by_trigger = { CHARACTER = root } is_witch_known_by_trigger = { CHARACTER = root }
} }
} }
@ -219,7 +212,7 @@ petition_liege_county_convert_trigger = {
tier = tier_county tier = tier_county
trigger_if = { trigger_if = {
limit = { tier = tier_county } limit = { tier = tier_county }
NOT = { county.faith = holder.faith } county.faith != holder.faith
} }
} }
@ -240,7 +233,7 @@ petition_liege_fortify_border_trigger = {
county = { county = {
save_temporary_scope_as = county_scope save_temporary_scope_as = county_scope
any_title_to_title_neighboring_county = { any_title_to_title_neighboring_county = {
NOT = { holder.top_liege = scope:county_scope.holder.top_liege } # petition_liege holder.top_liege != scope:county_scope.holder.top_liege # petition_liege
NOT = { NOT = {
holder.top_liege = { is_allied_to = scope:county_scope.holder.top_liege } # petition_liege holder.top_liege = { is_allied_to = scope:county_scope.holder.top_liege } # petition_liege
} }
@ -252,18 +245,18 @@ petition_liege_fortify_border_trigger = {
# Liege Title # Liege Title
petition_liege_title_liege_trigger = { petition_liege_title_liege_trigger = {
holder = prev.liege holder = prev.liege
NOT = { THIS = prev.liege.primary_title } this != prev.liege.primary_title
tier < prev.liege.primary_title.tier tier < prev.liege.primary_title.tier
trigger_if = { trigger_if = {
limit = { exists = county } limit = { exists = county }
NOT = { county = holder.capital_county } county != holder.capital_county
} }
OR = { OR = {
tier > tier_county tier > tier_county
holder = { holder = {
any_held_title = { any_held_title = {
count > 1 count > 1
tier = tier_county title_tier = county
} }
} }
} }
@ -271,8 +264,7 @@ petition_liege_title_liege_trigger = {
# Vassal Title # Vassal Title
petition_liege_title_vassal_trigger = { petition_liege_title_vassal_trigger = {
exists = holder holder ?= { save_temporary_scope_as = second_temp }
holder = { save_temporary_scope_as = second_temp }
OR = { OR = {
scope:second_temp.liege = prev.liege scope:second_temp.liege = prev.liege
scope:second_temp.liege.liege = prev.liege scope:second_temp.liege.liege = prev.liege
@ -290,7 +282,7 @@ petition_liege_title_vassal_trigger = {
} }
#trigger_if = { #trigger_if = {
# limit = { exists = county } # limit = { exists = county }
# NOT = { county = holder.capital_county } # county != holder.capital_county
#} #}
scope:second_temp = { scope:second_temp = {
trigger_if = { trigger_if = {
@ -303,7 +295,7 @@ petition_liege_title_vassal_trigger = {
scope:second_temp = { scope:second_temp = {
any_held_title = { any_held_title = {
count > 1 count > 1
tier = tier_county title_tier = county
} }
} }
} }
@ -343,6 +335,7 @@ petition_liege_medium_cost_trigger = {
limit = { scope:petition_vassal.var:petition_type = flag:war_aid } limit = { scope:petition_vassal.var:petition_type = flag:war_aid }
petitioner_war_aid_levies_cost_value > scope:petition_liege.medium_gold_value petitioner_war_aid_levies_cost_value > scope:petition_liege.medium_gold_value
} }
scope:petition_vassal.var:petition_type = flag:regent
} }
} }
@ -398,39 +391,39 @@ petition_liege_skiller_trigger = {
trigger_if = { trigger_if = {
limit = { exists = scope:second_party } limit = { exists = scope:second_party }
NOT = { this = scope:second_party } this != scope:second_party
} }
trigger_if = { trigger_if = {
limit = { exists = scope:vassal_claimant } limit = { exists = scope:vassal_claimant }
NOT = { this = scope:vassal_claimant } this != scope:vassal_claimant
} }
trigger_if = { trigger_if = {
limit = { exists = scope:second_councillor } limit = { exists = scope:second_councillor }
NOT = { this = scope:second_councillor } this != scope:second_councillor
} }
trigger_if = { trigger_if = {
limit = { exists = scope:diplomacy_check } limit = { exists = scope:diplomacy_check }
NOT = { this = scope:diplomacy_check } this != scope:diplomacy_check
} }
trigger_if = { trigger_if = {
limit = { exists = scope:martial_check } limit = { exists = scope:martial_check }
NOT = { this = scope:martial_check } this != scope:martial_check
} }
trigger_if = { trigger_if = {
limit = { exists = scope:stewardship_check } limit = { exists = scope:stewardship_check }
NOT = { this = scope:stewardship_check } this != scope:stewardship_check
} }
trigger_if = { trigger_if = {
limit = { exists = scope:intrigue_check } limit = { exists = scope:intrigue_check }
NOT = { this = scope:intrigue_check } this != scope:intrigue_check
} }
trigger_if = { trigger_if = {
limit = { exists = scope:learning_check } limit = { exists = scope:learning_check }
NOT = { this = scope:learning_check } this != scope:learning_check
} }
trigger_if = { trigger_if = {
limit = { exists = scope:petition_vassal } limit = { exists = scope:petition_vassal }
NOT = { this = scope:petition_vassal } this != scope:petition_vassal
} }
} }
@ -558,6 +551,18 @@ petition_liege_valid_trigger = {
} }
} }
petition_ceremonial_liege_valid_trigger = {
is_alive = yes
is_imprisoned = no
has_variable = petition_ceremonial_liege_scope
var:petition_ceremonial_liege_scope.top_liege ?= root.top_liege # Same realm
var:petition_ceremonial_liege_scope != root.top_liege # Not true liege
var:petition_ceremonial_liege_scope = {
is_imprisoned = no
has_royal_court = yes
}
}
adventurer_potential_destination_distance_check = { adventurer_potential_destination_distance_check = {
#This is made to be used inside set_adventure_location_effect - it relies on the scope it is being run in being the adventurer #This is made to be used inside set_adventure_location_effect - it relies on the scope it is being run in being the adventurer
#Also expects $REGION$ #Also expects $REGION$
@ -593,8 +598,10 @@ adventurer_potential_destination_distance_check = {
} }
activity_invite_rule_trigger = { activity_invite_rule_trigger = {
is_adult = yes is_available_quick = {
is_imprisoned = no adult = yes
imprisoned = no
}
in_diplomatic_range = root in_diplomatic_range = root
} }
@ -659,6 +666,11 @@ any_journey_point_of_interest_trigger = {
has_building_or_higher = generic_copper_mines_01 has_building_or_higher = generic_copper_mines_01
has_building_or_higher = generic_silver_mines_01 has_building_or_higher = generic_silver_mines_01
has_building_or_higher = generic_gold_mines_01 has_building_or_higher = generic_gold_mines_01
# TGP
has_building_or_higher = holy_site_buddhist_grand_temple_01
has_building_or_higher = holy_site_japanese_temple_01
has_building_or_higher = holy_site_chinese_temple_01
has_building_or_higher = holy_site_se_asia_pagan_temple_01
} }
} }

View file

@ -16,11 +16,47 @@ opposing_ai_values_trigger = {
} }
} }
ai_has_builder_or_pious_builder_personality = {
ai_has_pious_builder_personality = yes
ai_has_economical_boom_personality = yes
}
ai_has_pious_builder_personality = {
OR = {
AND = {
pious_ai_builder_trigger = yes
ai_has_warlike_personality = no
}
#Or our Devaraja decrees it
AND = {
OR = {
is_tributary = yes
is_independent_ruler = no
}
overlord ?= { has_realm_law_flag = subjects_appear_more_pious }
}
#Weight the AI according to their Aspect
house ?= { has_house_power_parameter = aspect_of_serenity }
}
NOR = {
has_variable = conqueror
#Weight the AI according to their Aspect
house ?= {
OR = {
has_house_power_parameter = aspect_of_creation
has_house_power_parameter = aspect_of_destruction
has_house_power_parameter = aspect_of_trickery
}
}
}
}
ai_has_warlike_personality = { ai_has_warlike_personality = {
OR = { OR = {
AND = { AND = {
has_trait = despoiler_of_byzantium has_trait = despoiler_of_byzantium
any_held_title = { any_held_title = {
tier <= tier_empire
OR = { OR = {
empire = title:e_byzantium empire = title:e_byzantium
empire = title:e_latin_empire empire = title:e_latin_empire
@ -28,11 +64,8 @@ ai_has_warlike_personality = {
} }
} }
vassal_contract_has_flag = admin_ai_is_warlike # Admin vassals with the "Frontier" administration consider it their job to expand vassal_contract_has_flag = admin_ai_is_warlike # Admin vassals with the "Frontier" administration consider it their job to expand
AND = { # The unity decision "Organize House Members for War" forces AI house members to adopt this stance house ?= { # The unity decision "Organize House Members for War" forces AI house members to adopt this stance
exists = house has_house_modifier = unity_house_organized_for_war_modifier
house = {
has_house_modifier = unity_house_organized_for_war_modifier
}
} }
AND = { # They are Detractors during the FP3 Struggle in the Unrest Phase AND = { # They are Detractors during the FP3 Struggle in the Unrest Phase
any_character_struggle = { any_character_struggle = {
@ -84,19 +117,36 @@ ai_has_warlike_personality = {
has_trait = calm has_trait = calm
faith = { has_doctrine_parameter = pacifist_opinion_active } faith = { has_doctrine_parameter = pacifist_opinion_active }
culture = { has_cultural_parameter = reduced_cost_for_conversion_to_pacifist_faith } culture = { has_cultural_parameter = reduced_cost_for_conversion_to_pacifist_faith }
AND = { house ?= {
exists = house has_house_modifier = unity_house_focused_on_economy_modifier
house = {
has_house_modifier = unity_house_focused_on_economy_modifier
}
} }
vassal_contract_has_flag = admin_ai_is_builder vassal_contract_has_flag = admin_ai_is_builder
} }
} }
# Or we're on the warpath. # Or we're on the warpath.
has_variable = imperial_expedition_charged has_variable = imperial_expedition_charged
#Or our Devaraja decrees it
AND = {
OR = {
is_tributary = yes
is_independent_ruler = no
}
overlord ?= { has_realm_law_flag = subjects_appear_more_warlike }
}
#Weight the AI according to their Aspect
house ?= { has_house_power_parameter = aspect_of_destruction }
}
NOR = {
has_variable = conqueror
#Weight the AI according to their Aspect
house ?= {
OR = {
has_house_power_parameter = aspect_of_creation
has_house_power_parameter = aspect_of_serenity
has_house_power_parameter = aspect_of_trickery
}
}
} }
ai_has_conqueror_personality = no
} }
ai_has_cautious_personality = { ai_has_cautious_personality = {
@ -119,13 +169,14 @@ ai_has_cautious_personality = {
NOR = { NOR = {
has_trait = fickle has_trait = fickle
has_trait = lunatic has_trait = lunatic
AND = { house ?= {
exists = house OR = {
house = { has_house_modifier = unity_house_organized_for_war_modifier
OR = { has_house_modifier = unity_house_focused_on_economy_modifier
has_house_modifier = unity_house_organized_for_war_modifier #Weight the AI according to their Aspect
has_house_modifier = unity_house_focused_on_economy_modifier has_house_power_parameter = aspect_of_creation
} has_house_power_parameter = aspect_of_serenity
has_house_power_parameter = aspect_of_trickery
} }
} }
AND = { # They are Detractors during the FP3 Struggle in the Unrest Phase AND = { # They are Detractors during the FP3 Struggle in the Unrest Phase
@ -137,25 +188,70 @@ ai_has_cautious_personality = {
} }
vassal_contract_has_flag = admin_ai_is_warlike vassal_contract_has_flag = admin_ai_is_warlike
vassal_contract_has_flag = admin_ai_is_builder vassal_contract_has_flag = admin_ai_is_builder
has_variable = conqueror
} }
ai_has_conqueror_personality = no
} }
ai_has_economical_boom_personality = { ai_has_economical_boom_personality = {
OR = { OR = {
vassal_contract_has_flag = admin_ai_is_builder # Admin vassals with the "Civilian" administration consider it their job to improve the economy # Admin vassals with the "Civilian" administration consider it their job to improve the economy
AND = { # The unity decision "Encourage House to Improve the Economy" forces AI house members to adopt this stance vassal_contract_has_flag = admin_ai_is_builder
exists = house # The unity decision "Encourage House to Improve the Economy" forces AI house members to adopt this stance
house = { house ?= {
has_house_modifier = unity_house_focused_on_economy_modifier has_house_modifier = unity_house_focused_on_economy_modifier
}
} }
AND = { AND = {
economical_ai_guts_trigger = yes economical_ai_guts_trigger = yes
ai_has_warlike_personality = no ai_has_warlike_personality = no
} }
#Or our Devaraja decrees it
AND = {
OR = {
is_tributary = yes
is_independent_ruler = no
}
overlord ?= { has_realm_law_flag = subjects_appear_more_economical }
}
#Weight the AI according to their Aspect
house ?= { has_house_power_parameter = aspect_of_creation }
}
NOR = {
has_variable = conqueror
#Weight the AI according to their Aspect
house ?= {
OR = {
has_house_power_parameter = aspect_of_destruction
has_house_power_parameter = aspect_of_serenity
has_house_power_parameter = aspect_of_trickery
}
}
}
}
pious_ai_builder_trigger = {
ai_zeal > 0
ai_energy > 0
OR = {
has_focus = learning_theology_focus # Only this focus, which is 33% of all learning focused characters in the world
has_trait = zealous
has_trait = forgiving
has_trait = improvident
has_trait = humble
has_trait = patient
has_trait = diligent
has_trait = generous
has_character_modifier = the_temple_builder_modifier
government_has_flag = government_is_mandala
}
num_virtuous_traits >= 1
num_sinful_traits = 0
NAND = {
has_trait = cynical
has_trait = greedy
house = {
has_house_modifier = unity_house_organized_for_war_modifier
}
} }
ai_has_conqueror_personality = no
} }
economical_ai_guts_trigger = { economical_ai_guts_trigger = {
@ -168,19 +264,14 @@ economical_ai_guts_trigger = {
has_trait = generous has_trait = generous
has_trait = stubborn has_trait = stubborn
has_trait = profligate has_trait = profligate
has_trait = improvident
has_character_modifier = the_city_builder_modifier has_character_modifier = the_city_builder_modifier
has_character_modifier = the_castle_builder_modifier has_character_modifier = the_castle_builder_modifier
has_character_modifier = the_temple_builder_modifier
} }
NAND = { NAND = {
has_trait = greedy has_trait = greedy
has_trait = impatient has_trait = impatient
AND = { house ?= {
exists = house has_house_modifier = unity_house_organized_for_war_modifier
house = {
has_house_modifier = unity_house_organized_for_war_modifier
}
} }
} }
} }
@ -198,7 +289,7 @@ ai_wants_low_unity = {
has_trait_benevolent_trigger = no has_trait_benevolent_trigger = no
} }
ai_has_warlike_personality = yes ai_has_warlike_personality = yes
ai_has_conqueror_personality = yes has_variable = conqueror
has_character_flag = agenda_towards_escalation has_character_flag = agenda_towards_escalation
} }
} }
@ -238,34 +329,25 @@ ai_has_conqueror_personality = {
has_trait = greatest_of_khans has_trait = greatest_of_khans
has_character_modifier = the_great_khan_modifier has_character_modifier = the_great_khan_modifier
any_owned_story = { any_owned_story = {
story_type = story_conqueror type = story_conqueror
} }
} }
} }
ai_should_get_conqueror_bonuses = { ai_should_get_conqueror_bonuses = {
AND = { has_variable = conqueror
OR = { NOT = { has_game_rule = no_conquerors_bonuses }
has_game_rule = default_conquerors_bonuses
has_game_rule = extreme_conquerors_bonuses
has_game_rule = random_conquerors_bonuses
has_game_rule = reduced_random_conquerors_bonuses
}
ai_has_conqueror_personality = yes
}
} }
ai_should_get_extreme_conqueror_bonuses = { ai_should_get_extreme_conqueror_bonuses = {
AND = { has_variable = conqueror
has_character_modifier = ai_extreme_conqueror_modifier has_character_modifier = ai_extreme_conqueror_modifier
ai_has_conqueror_personality = yes
}
} }
ai_should_focus_on_building_in_their_capital = { ai_should_focus_on_building_in_their_capital = {
is_landed = yes is_landed = yes
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
ai_has_conqueror_personality = no NOT = { has_variable = conqueror }
NOT = { government_has_flag = government_is_nomadic } NOT = { government_has_flag = government_is_nomadic }
exists = capital_county exists = capital_county
exists = culture exists = culture

View file

@ -228,8 +228,7 @@ artifact_needs_material_wood_trigger = {
# UnitGFX-based triggers # UnitGFX-based triggers
artifact_use_african_unit_visuals_trigger = { artifact_use_african_unit_visuals_trigger = {
exists = culture culture ?= { has_unit_gfx = sub_sahran_unit_gfx }
culture = { has_unit_gfx = sub_sahran_unit_gfx }
} }
artifact_use_eastern_unit_visuals_trigger = { artifact_use_eastern_unit_visuals_trigger = {
@ -250,8 +249,7 @@ artifact_use_mena_unit_visuals_trigger = {
} }
artifact_use_northern_unit_visuals_trigger = { artifact_use_northern_unit_visuals_trigger = {
exists = culture culture ?= {
culture = {
OR = { OR = {
has_unit_gfx = norse_unit_gfx has_unit_gfx = norse_unit_gfx
has_unit_gfx = northern_unit_gfx has_unit_gfx = northern_unit_gfx
@ -260,13 +258,11 @@ artifact_use_northern_unit_visuals_trigger = {
} }
artifact_use_mongol_unit_visuals_trigger = { artifact_use_mongol_unit_visuals_trigger = {
exists = culture culture ?= { has_unit_gfx = mongol_unit_gfx }
culture = { has_unit_gfx = mongol_unit_gfx }
} }
artifact_use_western_unit_visuals_trigger = { artifact_use_western_unit_visuals_trigger = {
exists = culture culture ?= {
culture = {
OR = { OR = {
has_unit_gfx = western_unit_gfx has_unit_gfx = western_unit_gfx
has_unit_gfx = eastern_unit_gfx has_unit_gfx = eastern_unit_gfx
@ -275,73 +271,104 @@ artifact_use_western_unit_visuals_trigger = {
} }
} }
artifact_use_chinese_unit_visuals_trigger = {
culture ?= { has_unit_gfx = chinese_unit_gfx }
}
artifact_use_japanese_unit_visuals_trigger = {
culture ?= { has_unit_gfx = japanese_unit_gfx }
}
artifact_use_southeast_asian_unit_visuals_trigger = {
culture ?= { has_unit_gfx = southeast_asian_unit_gfx }
}
artifact_use_iberian_muslim_unit_visuals_trigger = { artifact_use_iberian_muslim_unit_visuals_trigger = {
exists = culture culture ?= { has_unit_gfx = iberian_muslim_unit_gfx }
culture = { has_unit_gfx = iberian_muslim_unit_gfx }
} }
artifact_use_iberian_christian_unit_visuals_trigger = { artifact_use_iberian_christian_unit_visuals_trigger = {
exists = culture culture ?= { has_unit_gfx = iberian_christian_unit_gfx }
culture = { has_unit_gfx = iberian_christian_unit_gfx }
} }
artifact_use_iranian_unit_visuals_trigger = { artifact_use_iranian_unit_visuals_trigger = {
exists = culture culture ?= { has_unit_gfx = iranian_unit_gfx }
culture = { has_unit_gfx = iranian_unit_gfx }
} }
# BuildingGFX-based triggers # BuildingGFX-based triggers
artifacts_use_indian_books_trigger = {
OR = {
artifact_use_indian_building_visuals_trigger = yes
artifact_use_chinese_building_visuals_trigger = yes
artifact_use_japanese_building_visuals_trigger = yes
artifact_use_southeast_asian_building_visuals_trigger = yes
}
}
artifact_use_indian_building_visuals_trigger = { artifact_use_indian_building_visuals_trigger = {
exists = culture culture ?= {
culture = { has_building_gfx = indian_building_gfx } OR = {
has_building_gfx = indian_building_gfx
has_building_gfx = southeast_asian_building_gfx
}
}
} }
artifact_use_mena_building_visuals_trigger = { artifact_use_mena_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = mena_building_gfx }
culture = { has_building_gfx = mena_building_gfx }
} }
artifact_use_mediterranean_building_visuals_trigger = { artifact_use_mediterranean_building_visuals_trigger = {
exists = culture culture ?= {
culture = { OR = { OR = {
has_building_gfx = mediterranean_building_gfx has_building_gfx = mediterranean_building_gfx
has_building_gfx = byzantine_building_gfx } has_building_gfx = byzantine_building_gfx
}
} }
} }
artifact_use_byzantine_building_visuals_trigger = { artifact_use_byzantine_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = byzantine_building_gfx }
culture = { has_building_gfx = byzantine_building_gfx }
} }
artifact_use_iberian_building_visuals_trigger = { artifact_use_iberian_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = iberian_building_gfx }
culture = { has_building_gfx = iberian_building_gfx }
} }
artifact_use_western_building_visuals_trigger = { artifact_use_western_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = western_building_gfx }
culture = { has_building_gfx = western_building_gfx }
} }
artifact_use_norse_building_visuals_trigger = { artifact_use_norse_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = norse_building_gfx }
culture = { has_building_gfx = norse_building_gfx }
} }
artifact_use_steppe_building_visuals_trigger = { artifact_use_steppe_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = steppe_building_gfx }
culture = { has_building_gfx = steppe_building_gfx }
} }
artifact_use_iranian_building_visuals_trigger = { artifact_use_iranian_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = iranian_building_gfx }
culture = { has_building_gfx = iranian_building_gfx }
} }
artifact_use_berber_building_visuals_trigger = { artifact_use_berber_building_visuals_trigger = {
exists = culture culture ?= { has_building_gfx = berber_group_building_gfx }
culture = { has_building_gfx = berber_group_building_gfx } }
artifact_use_chinese_building_visuals_trigger = {
culture ?= { has_building_gfx = chinese_building_gfx }
}
artifact_use_japanese_building_visuals_trigger = {
culture ?= { has_building_gfx = japanese_building_gfx }
}
artifact_use_southeast_asian_building_visuals_trigger = {
culture ?= { has_building_gfx = southeast_asian_building_gfx }
}
artifact_use_korean_clothing_visuals_trigger = {
culture ?= { has_clothing_gfx = korean_clothing_gfx }
} }
# GFX Trigger-picker # GFX Trigger-picker
@ -681,6 +708,69 @@ artifact_feature_wood_palm_trigger = {
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_palm } artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_palm }
} }
# East Asia
# nanmu
artifact_feature_wood_nanmu_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_east }
}
# boxwood
artifact_feature_wood_boxwood_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_east }
}
# paulownia
artifact_feature_wood_paulownia_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_east }
}
# camphorwood
artifact_feature_wood_camphorwood_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_east }
}
# Southeast Asia
# narra
artifact_feature_wood_narra_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_southeast }
}
# toona sureni
artifact_feature_wood_toona_sureni_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_southeast }
}
# agarwood
artifact_feature_wood_agarwood_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_southeast }
}
# sandalwood
artifact_feature_wood_sandalwood_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_southeast }
}
# Northeast Asia
# birch
artifact_feature_wood_birch_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_northeast }
}
# linden
artifact_feature_wood_linden_trigger = {
artifact_value_trigger = { VALUE = scope:wealth MIN = 10 MAX = 90 }
artifact_region_trigger = { CHARACTER = scope:owner REGION = material_woods_asia_northeast }
}
########################################## ##########################################
# Cloths # Cloths
# Woven materials for clothing, tapestries, embroidery, ropes, etc. # Woven materials for clothing, tapestries, embroidery, ropes, etc.
@ -1703,11 +1793,11 @@ book_subject_animals_trigger = {
OR = { OR = {
has_trait = lifestyle_hunter has_trait = lifestyle_hunter
AND = { AND = {
any_owned_story = { story_type = story_cycle_pet_cat } any_owned_story = { type = story_cycle_pet_cat }
exists = var:story_cycle_cat_name exists = var:story_cycle_cat_name
} }
AND = { AND = {
any_owned_story = { story_type = story_cycle_pet_dog } any_owned_story = { type = story_cycle_pet_dog }
exists = var:story_cycle_dog_name exists = var:story_cycle_dog_name
} }
} }
@ -2082,7 +2172,7 @@ relic_war_valid_struggle_artefact_trigger = {
christianity_or_syncretic_with_christianity_trigger = { CHARACTER = scope:attacker } christianity_or_syncretic_with_christianity_trigger = { CHARACTER = scope:attacker }
} }
} }
NOT = { scope:attacker.faith = scope:defender.faith } scope:attacker.faith != scope:defender.faith
} }
@ -2113,7 +2203,7 @@ relic_war_valid_against_defender_trigger = {
christianity_or_syncretic_with_christianity_trigger = { CHARACTER = scope:attacker } christianity_or_syncretic_with_christianity_trigger = { CHARACTER = scope:attacker }
} }
} }
NOT = { scope:attacker.faith = scope:defender.faith } scope:attacker.faith != scope:defender.faith
} }
} }
} }
@ -2121,9 +2211,7 @@ relic_war_valid_against_defender_trigger = {
relic_war_valid_against_defender_vassal_trigger = { relic_war_valid_against_defender_vassal_trigger = {
any_vassal_or_below = { any_vassal_or_below = {
NOT = { faith != scope:attacker.faith
faith = scope:attacker.faith
}
any_character_artifact = { any_character_artifact = {
exists = var:relic exists = var:relic
OR = { OR = {
@ -2150,7 +2238,7 @@ relic_war_valid_against_defender_vassal_trigger = {
christianity_or_syncretic_with_christianity_trigger = { CHARACTER = scope:attacker } christianity_or_syncretic_with_christianity_trigger = { CHARACTER = scope:attacker }
} }
} }
NOT = { scope:attacker.faith = scope:defender.faith } scope:attacker.faith != scope:defender.faith
} }
} }
} }

View file

@ -62,7 +62,7 @@ secret_unmarried_illegitimate_child_is_valid_trigger = {
exists = father exists = father
exists = scope:temp_child.real_father exists = scope:temp_child.real_father
} }
NOT = { father = scope:temp_child.real_father } father != scope:temp_child.real_father
} }
} }
} }
@ -73,11 +73,21 @@ secret_disputed_heritage_is_valid_trigger = {
exists = real_father exists = real_father
exists = father exists = father
exists = mother exists = mother
NOT = { real_father = father } real_father != father
NOR = { NOR = {
has_trait = bastard has_trait = bastard
has_trait = wild_oat has_trait = wild_oat
has_trait = legitimized_bastard has_trait = legitimized_bastard
real_father = {
government_has_flag = government_is_mandala
house ?= { has_house_power_parameter = aspect_of_creation }
is_house_head = yes
}
mother = {
government_has_flag = government_is_mandala
house ?= { has_house_power_parameter = aspect_of_creation }
is_house_head = yes
}
} }
} }
} }
@ -86,20 +96,26 @@ bastard_secret_is_criminal = {
$TARGET$ = { save_temporary_scope_as = criminal_bastard } $TARGET$ = { save_temporary_scope_as = criminal_bastard }
$PARTICIPANT$ = { save_temporary_scope_as = criminal_participant } $PARTICIPANT$ = { save_temporary_scope_as = criminal_participant }
OR = { OR = {
#Mother if female adultery is criminal #Adultery of parent is criminal
scope:criminal_participant = { scope:criminal_participant = {
scope:criminal_bastard = { mother = scope:criminal_participant } NAND = {
OR = { government_has_flag = government_is_mandala
faith = { has_doctrine_parameter = adultery_female_crime } house ?= { has_house_power_parameter = aspect_of_creation }
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_female_crime } } is_house_head = yes
} }
}
#Real father is male adultery is criminal
scope:criminal_participant = {
scope:criminal_bastard = { real_father = scope:criminal_participant }
OR = { OR = {
faith = { has_doctrine_parameter = adultery_male_crime } trait_is_criminal_in_faith_trigger = {
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_male_crime } } FAITH = faith
TRAIT = adulterer
GENDER_CHARACTER = scope:criminal_participant
}
any_liege_or_above = {
trait_is_criminal_in_faith_trigger = {
FAITH = faith
TRAIT = adulterer
GENDER_CHARACTER = scope:criminal_participant
}
}
} }
} }
} }
@ -107,7 +123,6 @@ bastard_secret_is_criminal = {
bastard_secret_is_shunned = { bastard_secret_is_shunned = {
# FOR DEBUG PURPOSES -- REMOVE ONCE RESOLVED TODO_CD
assert_if = { assert_if = {
limit = { NOT = { exists = $TARGET$ } } limit = { NOT = { exists = $TARGET$ } }
text = "Empty TARGET was passed to bastard_secret_is_shunned!" text = "Empty TARGET was passed to bastard_secret_is_shunned!"
@ -141,22 +156,21 @@ bastard_secret_is_shunned = {
OR = { OR = {
#Bastard child: always shunned, never criminal #Bastard child: always shunned, never criminal
scope:participant = scope:bastard scope:participant = scope:bastard
#Mother if female adultery is shunned #Adultery is shunned
scope:participant = { scope:participant = {
exists = scope:bastard.mother
this = scope:bastard.mother
OR = { OR = {
faith = { has_doctrine_parameter = adultery_female_shunned } trait_is_shunned_in_faith_trigger = {
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_female_shunned } } FAITH = faith
} TRAIT = adulterer
} GENDER_CHARACTER = scope:participant
#Real father is male adultery is shunned }
scope:participant = { any_liege_or_above = {
exists = scope:bastard.real_father trait_is_shunned_in_faith_trigger = {
this = scope:bastard.real_father FAITH = faith
OR = { TRAIT = adulterer
faith = { has_doctrine_parameter = adultery_male_shunned } GENDER_CHARACTER = scope:participant
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_male_shunned } } }
}
} }
} }
#Either parent if incest is shunned #Either parent if incest is shunned

View file

@ -21,7 +21,7 @@ allow_naming_on_birth_of_child_trigger = {
$CHILD$ = { $CHILD$ = {
any_parent = { any_parent = {
is_ai = no is_ai = no
NOT = { this = scope:naming_parent } this != scope:naming_parent
} }
} }
} }
@ -37,7 +37,7 @@ allow_naming_on_birth_of_child_trigger = {
dynasty = $CHILD$.dynasty dynasty = $CHILD$.dynasty
$CHILD$ = { $CHILD$ = {
any_parent = { any_parent = {
NOT = { this = scope:naming_parent } this != scope:naming_parent
NOT = { dynasty = $CHILD$.dynasty } NOT = { dynasty = $CHILD$.dynasty }
} }
} }

View file

@ -47,7 +47,14 @@ bg_game_type_region_tabula_trigger = {
} }
bg_game_type_region_go_trigger = { bg_game_type_region_go_trigger = {
geographical_region = world_tibet OR = {
geographical_region = world_tibet
geographical_region = world_asia_china
geographical_region = world_asia_japan
geographical_region = world_asia_korea
geographical_region = world_asia_southeast
}
} }
bg_game_type_region_fidchell_trigger = { bg_game_type_region_fidchell_trigger = {
@ -59,7 +66,7 @@ bg_stake_land_valid_neighbouring_county_to_trade_trigger = {
# Suppress a false positive error. # Suppress a false positive error.
trigger_if = { trigger_if = {
limit = { tier = tier_county } limit = { tier = tier_county }
NOT = { this = prev.capital_county } this != prev.capital_county
any_neighboring_county = { any_neighboring_county = {
# Ensure that they're swappable. # Ensure that they're swappable.
OR = { OR = {

View file

@ -7,10 +7,17 @@ building_requirement_tribal = {
OR = { OR = {
government_has_flag = government_is_tribal government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic government_has_flag = government_is_nomadic
government_has_flag = government_is_wanua
} }
} }
} }
building_requirement_wanua = {
scope:holder ?= {
government_has_flag = government_is_wanua
}
}
building_requirement_tribal_holding_in_county = { building_requirement_tribal_holding_in_county = {
NOT = { NOT = {
county = { county = {
@ -70,6 +77,10 @@ building_requirement_castle_city_church = {
limit = { has_holding_type = church_holding } limit = { has_holding_type = church_holding }
has_building_or_higher = temple_$LEVEL$ has_building_or_higher = temple_$LEVEL$
} }
trigger_else_if = {
limit = { has_holding_type = temple_citadel_holding }
has_building_or_higher = temple_citadel_$LEVEL$
}
trigger_else = { trigger_else = {
custom_description = { custom_description = {
text = "building_requirement_castle_city_church_failed" text = "building_requirement_castle_city_church_failed"
@ -124,7 +135,6 @@ building_pastures_requirement_terrain = {
terrain = desert_mountains terrain = desert_mountains
terrain = hills terrain = hills
terrain = floodplains terrain = floodplains
terrain = tells
AND = { AND = {
terrain = jungle terrain = jungle
NOT = { geographical_region = world_innovation_elephants } NOT = { geographical_region = world_innovation_elephants }
@ -150,10 +160,8 @@ building_orchards_requirement_terrain = {
terrain = floodplains terrain = floodplains
terrain = oasis terrain = oasis
has_building_or_higher = qanats_05 has_building_or_higher = qanats_05
AND = { culture = {
culture = { has_cultural_parameter = vegetarian_fruit_orchard_allowed
has_cultural_parameter = vegetarian_fruit_orchard_allowed
}
} }
} }
} }
@ -214,18 +222,49 @@ building_watchtowers_requirement_terrain = {
} }
} }
building_paddy_fields_requirement_terrain = {
OR = {
terrain = terraced_hills
AND = {
terrain = floodplains
OR = {
geographical_region = graphical_east_asia
geographical_region = custom_viet_lands
}
}
AND = {
terrain = wetlands
county.culture = { has_cultural_parameter = champa_rice_wet_land_paddies }
}
AND = {
OR = {
terrain = hills
terrain = jungle
}
county.culture = { has_cultural_parameter = rice_cultivators_can_construct_paddy_fields_in_hills_and_jungle }
}
}
}
building_cereal_fields_requirement_terrain = { building_cereal_fields_requirement_terrain = {
OR = { OR = {
terrain = farmlands terrain = farmlands
terrain = plains terrain = plains
terrain = drylands terrain = drylands
terrain = floodplains AND = {
terrain = floodplains
NOR = {
geographical_region = graphical_east_asia
geographical_region = custom_viet_lands
}
}
county = { county = {
OR = { OR = {
has_county_modifier = fertile_desert_mountains_modifier has_county_modifier = fertile_desert_mountains_modifier
has_county_modifier = dodekapolis_modifier has_county_modifier = dodekapolis_modifier
} }
} }
has_building_or_higher = qanats_05 has_building_or_higher = qanats_05
} }
} }
@ -292,8 +331,8 @@ building_peat_quarries_requirement_terrain = {
building_hill_farms_requirement_terrain = { building_hill_farms_requirement_terrain = {
OR = { OR = {
terrain = tells
terrain = hills terrain = hills
terrain = terraced_hills
} }
} }
@ -329,10 +368,6 @@ building_quarries_requirement_terrain = {
} }
} }
building_tell_mines_requirement_terrain = {
terrain = tells
}
building_warrior_lodges_requirement_terrain = { building_warrior_lodges_requirement_terrain = {
OR = { OR = {
AND = { AND = {
@ -340,7 +375,6 @@ building_warrior_lodges_requirement_terrain = {
terrain = mountains terrain = mountains
terrain = desert_mountains terrain = desert_mountains
terrain = hills terrain = hills
terrain = tells
} }
NOT = { geographical_region = world_horse_buildings_in_hills_and_mountains } NOT = { geographical_region = world_horse_buildings_in_hills_and_mountains }
} }
@ -353,7 +387,6 @@ building_hillside_grazing_requirement_terrain = {
terrain = mountains terrain = mountains
terrain = desert_mountains terrain = desert_mountains
terrain = hills terrain = hills
terrain = tells
} }
geographical_region = world_horse_buildings_in_hills_and_mountains geographical_region = world_horse_buildings_in_hills_and_mountains
} }
@ -389,7 +422,7 @@ building_hill_forts_requirement_terrain = {
terrain = mountains terrain = mountains
terrain = desert_mountains terrain = desert_mountains
terrain = hills terrain = hills
terrain = tells terrain = terraced_hills
} }
} }
@ -415,6 +448,7 @@ building_watermills_requirement_terrain = {
terrain = forest terrain = forest
terrain = taiga terrain = taiga
terrain = jungle terrain = jungle
terrain = terraced_hills
is_riverside_province = yes is_riverside_province = yes
} }
} }
@ -442,16 +476,13 @@ building_caravanserai_requirement_terrain = {
building_qanats_requirement_terrain = { building_qanats_requirement_terrain = {
county ?= { county ?= {
any_county_province = { culture = { has_cultural_parameter = unlocks_qanat_building }
OR = { county_has_province_with_terrain = {
terrain = tells terrain = hills
terrain = hills terrain = mountains
terrain = mountains terrain = desert_mountains
terrain = desert_mountains terrain = desert
terrain = desert terrain = drylands
terrain = drylands
}
culture = { has_cultural_parameter = unlocks_qanat_building }
} }
} }
} }
@ -461,35 +492,38 @@ building_hospices_requirement_terrain = {
} }
has_any_special_mine_trigger = { has_any_special_mine_trigger = {
OR = { has_building_with_flag = special_mine
has_building_or_higher = rammelsberg_mines_01 #OR = {
has_building_or_higher = kutna_hora_mines_01 # has_building_or_higher = rammelsberg_mines_01
has_building_or_higher = kremnica_mines_01 # has_building_or_higher = kutna_hora_mines_01
has_building_or_higher = falun_mines_01 # has_building_or_higher = kremnica_mines_01
has_building_or_higher = schwaz_mines_01 # has_building_or_higher = falun_mines_01
has_building_or_higher = argentiera_mines_01 # has_building_or_higher = schwaz_mines_01
has_building_or_higher = kollur_mines_01 # has_building_or_higher = argentiera_mines_01
has_building_or_higher = siderokausia_mines_01 # has_building_or_higher = kollur_mines_01
has_building_or_higher = mali_mines_01 # has_building_or_higher = siderokausia_mines_01
has_building_or_higher = konasamudram_mines_01 # has_building_or_higher = mali_mines_01
has_building_or_higher = dean_mines_01 # has_building_or_higher = konasamudram_mines_01
has_building_or_higher = zawar_mines_01 # has_building_or_higher = dean_mines_01
has_building_or_higher = takkeda_mines_01 # has_building_or_higher = phnom_dek_mines_01
has_building_or_higher = khetri_mines_01 # has_building_or_higher = zawar_mines_01
has_building_or_higher = taghaza_mines_01 # has_building_or_higher = takkeda_mines_01
has_building_or_higher = ijil_mines_01 # has_building_or_higher = khetri_mines_01
has_building_or_higher = turda_mines_01 # has_building_or_higher = taghaza_mines_01
has_building_or_higher = phocaea_mines_01 # has_building_or_higher = ijil_mines_01
has_building_or_higher = pansjhir_mines_01 # has_building_or_higher = turda_mines_01
has_building_or_higher = trepca_mines_01 # has_building_or_higher = phocaea_mines_01
has_building_or_higher = rudnik_mines_01 # has_building_or_higher = pansjhir_mines_01
has_building_or_higher = cevennes_mines_01 # has_building_or_higher = trepca_mines_01
has_building_or_higher = allaq_mines_01 # has_building_or_higher = rudnik_mines_01
has_building_or_higher = verespatak_mines_01 # has_building_or_higher = cevennes_mines_01
has_building_or_higher = nishapur_mines_01 # has_building_or_higher = allaq_mines_01
has_building_or_higher = srebrenica_mines_01 # has_building_or_higher = verespatak_mines_01
has_building_or_higher = ratnapura_mines_01 # has_building_or_higher = nishapur_mines_01
} # has_building_or_higher = srebrenica_mines_01
# has_building_or_higher = ratnapura_mines_01
# has_building_or_higher = mogok_mines_01
#}
} }
###################################################################### ######################################################################
@ -535,7 +569,6 @@ has_any_building_of_level_trigger = {
has_building = farm_estates_$BUILDING_LEVEL$ has_building = farm_estates_$BUILDING_LEVEL$
has_building = regimental_grounds_$BUILDING_LEVEL$ has_building = regimental_grounds_$BUILDING_LEVEL$
has_building = monastic_schools_$BUILDING_LEVEL$ has_building = monastic_schools_$BUILDING_LEVEL$
has_building = tell_mines_$BUILDING_LEVEL$
} }
} }
@ -739,6 +772,10 @@ religious_special_building_exclusion_trigger = { # checks if any special buildin
has_building = holy_site_great_mosque_of_mecca_01 has_building = holy_site_great_mosque_of_mecca_01
islamic_special_building_trigger = yes islamic_special_building_trigger = yes
christian_special_building_trigger = yes christian_special_building_trigger = yes
has_building = holy_site_buddhist_grand_temple_01
has_building = holy_site_japanese_temple_01
has_building = holy_site_chinese_temple_01
has_building = holy_site_se_asia_pagan_temple_01
} }
} }
AND = { # Islamic AND = { # Islamic
@ -785,6 +822,44 @@ building_murex_farm_requirement_terrain = {
} }
} }
building_waterworks_requirement_terrain = {
is_county_capital = yes
NOR = {
terrain = mountains
terrain = desert_mountains
}
scope:holder.culture = { has_cultural_parameter = unlocks_waterworks_buildings }
}
building_spice_plantation_requirement_terrain = {
is_county_capital = yes
# cloves, nutmeg: present on Muluku Islands
# cinnamomum verum: India, Sri Lanka, Bangladesh and Myanmar
# cinnamomum malabathrum: Eastern Himalayas & Western Ghats
OR = {
geographical_region = world_asia_southeast_mainland
geographical_region = world_asia_borneo
geographical_region = world_asia_sulawesi_maluku
geographical_region = world_asia_indonesia
geographical_region = world_india
}
OR = {
terrain = jungle
terrain = farmlands
terrain = terraced_hills
terrain = plains
}
}
building_examination_hall_requirement_terrain = {
is_county_capital = yes
scope:holder = {
government_has_flag = government_has_merit
}
}
building_breweries_requirement = { building_breweries_requirement = {
OR = { OR = {
AND = { AND = {
@ -800,3 +875,12 @@ building_breweries_requirement = {
} }
} }
} }
#building_powder_magazine_requirement = {
# scope:build_owner.culture = {
# OR = {
# has_innovation = innovation_gunpowder
# has_innovation = innovation_fire_medicine
# }
# }
#}

View file

@ -52,7 +52,7 @@ save_good_friend_character_trigger_check = {
is_adult = no is_adult = no
age >= root.age_dif_child_down_friend age >= root.age_dif_child_down_friend
age <= root.age_dif_child_up_friend age <= root.age_dif_child_up_friend
NOT = { this = root } this != root
is_imprisoned = no is_imprisoned = no
opinion = { opinion = {
target = root target = root
@ -70,7 +70,7 @@ save_good_crush_character_trigger_check = {
age >= root.age_dif_child_down age >= root.age_dif_child_down
age <= root.age_dif_child_up age <= root.age_dif_child_up
age > childhood_education_start_age age > childhood_education_start_age
NOT = { this = root } this != root
is_imprisoned = no is_imprisoned = no
is_close_family_of_root_trigger = no is_close_family_of_root_trigger = no
NOR = { NOR = {
@ -94,7 +94,7 @@ save_good_bully_character_trigger_check = {
is_adult = no is_adult = no
age >= 6 age >= 6
age >= root.age age >= root.age
NOT = { this = root } this != root
is_imprisoned = no is_imprisoned = no
OR = { OR = {
has_trait_malicious_trigger = yes has_trait_malicious_trigger = yes
@ -115,13 +115,14 @@ save_good_bully_character_trigger_check = {
has_relation_friend = root has_relation_friend = root
has_relation_crush = root has_relation_crush = root
} }
tgp_is_chinese_style_emperor_trigger = no # This would be weird, otherwise
} }
save_good_victim_character_trigger_check = { save_good_victim_character_trigger_check = {
is_adult = no is_adult = no
age >= 6 age >= 6
age <= root.age age <= root.age
NOT = { this = root } this != root
is_imprisoned = no is_imprisoned = no
reverse_opinion = { reverse_opinion = {
target = root target = root
@ -133,13 +134,13 @@ save_good_victim_character_trigger_check = {
has_relation_friend = root has_relation_friend = root
has_relation_crush = root has_relation_crush = root
} }
tgp_is_chinese_style_emperor_trigger = no # This would be weird, otherwise
} }
child_suitable_to_play_with_character = { child_suitable_to_play_with_character = {
# Is available for events at $CHARACTER$'s locale. # Is available for events at $CHARACTER$'s locale.
is_available_child = yes is_available_child = yes
exists = location location ?= $CHARACTER$.location
location = $CHARACTER$.location
# Of a suitable age range. # Of a suitable age range.
child_not_infant_trigger = yes child_not_infant_trigger = yes
# Doesn't have a bad relationship with $CHARACTER$. # Doesn't have a bad relationship with $CHARACTER$.
@ -196,38 +197,76 @@ childhood_nice_child_trigger = {
} }
suitable_same_realm_child = { suitable_same_realm_child = {
exists = location.county.holder # Scoping like this allows children in the pool to also get this event trigger_if = {
location.county.holder = { limit = {
OR = { OR = {
AND = { father ?= {
is_ai = yes is_ai = no
is_available_child = yes }
NOT = { this = root } mother ?= {
age >= 6 is_ai = no
}
host ?= {
is_ai = no
}
} }
any_courtier_or_guest = { }
is_ai = yes location.county.holder ?= { # Scoping like this allows children in the pool to also get this event
is_available_child = yes OR = {
NOT = { this = root } AND = {
age >= 6 is_ai = yes
} is_available_child = yes
any_warden_hostage = { this != root
is_ai = yes age >= 6
is_available_child = yes }
NOT = { this = root }
age >= 6
}
any_vassal = {
is_ai = yes
is_available_child = yes
NOT = { this = root }
age >= 6
}
any_vassal = {
any_courtier_or_guest = { any_courtier_or_guest = {
is_ai = yes is_ai = yes
is_available_child = yes is_available_child = yes
NOT = { this = root } this != root
age >= 6
}
any_warden_hostage = {
is_ai = yes
is_available_child = yes
this != root
age >= 6
}
any_vassal = {
is_ai = yes
is_available_child = yes
this != root
age >= 6
}
any_vassal = {
any_courtier_or_guest = {
is_ai = yes
is_available_child = yes
this != root
age >= 6
}
}
}
}
}
trigger_else = {
location.county.holder ?= { # Scoping like this allows children in the pool to also get this event
OR = {
AND = {
is_ai = yes
is_available_child = yes
this != root
age >= 6
}
any_courtier = {
is_ai = yes
is_available_child = yes
this != root
age >= 6
}
any_warden_hostage = {
is_ai = yes
is_available_child = yes
this != root
age >= 6 age >= 6
} }
} }
@ -242,21 +281,21 @@ similar_age_same_court_child = {
AND = { AND = {
is_ai = yes is_ai = yes
is_available_child = yes is_available_child = yes
NOT = { this = root } this != root
age <= root.age_plus_3 age <= root.age_plus_3
age >= age_minus_3 age >= age_minus_3
} }
any_courtier_or_guest = { any_courtier_or_guest = {
is_ai = yes is_ai = yes
is_available_child = yes is_available_child = yes
NOT = { this = root } this != root
age <= root.age_plus_3 age <= root.age_plus_3
age >= age_minus_3 age >= age_minus_3
} }
any_warden_hostage = { any_warden_hostage = {
is_ai = yes is_ai = yes
is_available_child = yes is_available_child = yes
NOT = { this = root } this != root
age <= root.age_plus_3 age <= root.age_plus_3
age >= age_minus_3 age >= age_minus_3
} }
@ -269,7 +308,7 @@ suitable_crush_trigger = {
save_temporary_scope_as = temp_crush save_temporary_scope_as = temp_crush
is_ai = yes is_ai = yes
is_available_child = yes is_available_child = yes
NOT = { this = root } this != root
child_not_infant_trigger = yes child_not_infant_trigger = yes
age <= root.age_plus_3 age <= root.age_plus_3
age >= root.age_minus_3 age >= root.age_minus_3
@ -330,8 +369,13 @@ guardian_or_court_tutor_trait = {
} }
} }
trigger_else = { trigger_else = {
court_owner.court_position:court_tutor_court_position ?= { OR = {
has_trait = $TRAIT$ court_owner.court_position:court_tutor_court_position ?= {
has_trait = $TRAIT$
}
court_owner.court_position:court_guru_court_position ?= {
has_trait = $TRAIT$
}
} }
} }
} }
@ -352,10 +396,18 @@ guardian_or_court_tutor_2_trait = {
} }
} }
trigger_else = { trigger_else = {
court_owner.court_position:court_tutor_court_position ?= { OR = {
OR = { court_owner.court_position:court_tutor_court_position ?= {
has_trait = $TRAIT$ OR = {
has_trait = $TRAIT_2$ has_trait = $TRAIT$
has_trait = $TRAIT_2$
}
}
court_owner.court_position:court_guru_court_position ?= {
OR = {
has_trait = $TRAIT$
has_trait = $TRAIT_2$
}
} }
} }
} }

View file

@ -19,7 +19,7 @@ is_in_same_clan_as_trigger = {
check_tax_collector_aptitude = { check_tax_collector_aptitude = {
$CHARACTER$ = { $CHARACTER$ = {
tax_collector_aptitude = { tax_collector_aptitude = {
tax_slot_type = clan_tax_slot target = clan_tax_slot
value = $VALUE$ value = $VALUE$
} }
} }

View file

@ -7,6 +7,7 @@
has_character_modifier = diplomacy_majesty_4090_no_raiment_modifier # Lunatic event where character goes naked instead of buying new clothes. has_character_modifier = diplomacy_majesty_4090_no_raiment_modifier # Lunatic event where character goes naked instead of buying new clothes.
has_character_flag = is_naked # Special flag used in certain events. has_character_flag = is_naked # Special flag used in certain events.
faith = { has_doctrine_parameter = naked_adherents_active } faith = { has_doctrine_parameter = naked_adherents_active }
culture = { has_cultural_parameter = naked_culture_active }
trigger_if = { trigger_if = {
limit = { limit = {
faith = { has_doctrine_parameter = naked_priests_active } faith = { has_doctrine_parameter = naked_priests_active }
@ -41,7 +42,15 @@ should_be_topless_portrait_trigger = {
portrait_wear_no_headgear_trigger = { portrait_wear_no_headgear_trigger = {
OR = { OR = {
AND = { AND = {
scope:age < 16 # No headgear for children under 16 # trigger_if = { # No headgear for children under 16
limit = {
portrait_wear_no_crown_trigger = yes
}
scope:age < 16
}
trigger_else = { # Unless it's a crown
scope:age <= coronation_minimum_age_value
}
NOR = { NOR = {
portrait_sami_clothing_trigger = yes portrait_sami_clothing_trigger = yes
portrait_ugro_permian_clothing_trigger = yes portrait_ugro_permian_clothing_trigger = yes
@ -53,23 +62,15 @@ portrait_wear_no_headgear_trigger = {
has_character_flag = roaming_character has_character_flag = roaming_character
AND = { # No headgear for characters who sold their crown AND = { # No headgear for characters without crowns
exists = this exists = this
has_character_flag = sold_crown_charmod portrait_wear_no_crown_trigger = yes
# Should still wear armor when going to war # Should still wear armor when going to war
NOT = { portrait_wear_armor_trigger = yes } portrait_wear_armor_trigger = no
}
AND = { # No headgear for characters with an active Vow of Poverty
exists = this
has_character_modifier = vow_of_poverty_modifier
# Should still wear armor when going to war
NOT = { portrait_wear_armor_trigger = yes }
} }
AND = { AND = {
OR = { OR = {
should_be_naked_trigger = yes # Deliberately not the "fully naked" one since dropping your crown's intended even if nudity is disabled should_be_naked_trigger = yes # Deliberately not the "fully naked" one since dropping your crown's intended even if nudity is disabled
AND = { AND = {
@ -80,20 +81,14 @@ portrait_wear_no_headgear_trigger = {
} }
} }
AND = {
exists = this
has_character_modifier = fp1_abased_before_highgod_modifier # Refuses to wear a crown due to HighGod
}
activity_tournament_shirtless_trigger = yes activity_tournament_shirtless_trigger = yes
} }
NOR = { # Exceptions for dukes, kings, popes NOR = { # Exceptions for dukes, kings, popes
highest_held_title_tier >= tier_duchy # Should wear ducal or royal crown instead. highest_held_title_tier >= tier_duchy # Should wear ducal or royal crown instead.
AND = { portrait_religious_head_popes_trigger = yes
religion = religion:christianity_religion culture = { has_cultural_pillar = heritage_japonic } # Showing the top of your head is shameful
faith.religious_head = this culture = { has_cultural_pillar = heritage_chinese } # Showing the top of your head is shameful
}
} }
} }
@ -118,13 +113,7 @@ portrait_wear_armor_trigger = {
is_imprisoned = no is_imprisoned = no
trigger_if = { trigger_if = {
limit = { exists = involved_activity } limit = { exists = involved_activity }
involved_activity = { involved_activity = { has_activity_type = activity_tournament }
NOR = {
has_activity_type = activity_hunt
has_activity_type = activity_pilgrimage
has_activity_type = activity_roaming
}
}
} }
NOT = { NOT = {
OR = { OR = {
@ -198,6 +187,31 @@ portrait_wear_armor_trigger = {
primary_title.tier < tier_kingdom primary_title.tier < tier_kingdom
} }
} }
# Military style governor
trigger_if = {
limit = {
is_independent_ruler = no
OR = {
has_government = celestial_government
has_government = meritocratic_government
has_government = steppe_admin_government
}
}
OR = {
vassal_contract_has_flag = celestial_province_protectorate
vassal_contract_has_flag = celestial_province_military
vassal_contract_has_flag = meritocratic_province_protectorate
vassal_contract_has_flag = meritocratic_province_military
has_title = title:e_minister_grand_marshal
}
is_adult = yes
trigger_if = {
limit = { has_trait = devoted }
faith = { has_doctrine_parameter = clergy_can_fight }
}
save_temporary_scope_as = fighter_temp
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:fighter_temp }
}
has_character_flag = wear_armor has_character_flag = wear_armor
# Serving Varangian # Serving Varangian
has_character_flag = is_currently_varangian has_character_flag = is_currently_varangian
@ -210,6 +224,11 @@ portrait_wear_armor_trigger = {
has_character_flag = military_outfit has_character_flag = military_outfit
is_ruler = no is_ruler = no
} }
# Died in battle
trigger_if = {
limit = { is_alive = no }
death_reason = death_battle
}
} }
} }
@ -262,7 +281,7 @@ portrait_accoladed_knight_trigger = {
} }
} }
portrait_wear_helmet_trigger = { # Different from Armor, as Kings and Emperors should show their crowns! portrait_wear_helmet_trigger = { # Different from Armor, as (crowned) Kings and Emperors should show their crowns!
exists = this exists = this
trigger_if = { trigger_if = {
limit = { exists = involved_activity } limit = { exists = involved_activity }
@ -294,14 +313,17 @@ portrait_wear_helmet_trigger = { # Different from Armor, as Kings and Emperors s
government_has_flag = government_is_holy_order government_has_flag = government_is_holy_order
} }
has_trait = order_member has_trait = order_member
# Commanding and lower than a King # Commanding and lower than a King or uncrowned
AND = { AND = {
is_commanding_army = yes is_commanding_army = yes
OR = { OR = {
is_landed_or_landless_administrative = no is_landed_or_landless_administrative = no
AND = { AND = {
exists = primary_title exists = primary_title
primary_title.tier < tier_kingdom OR = {
primary_title.tier < tier_kingdom
portrait_wear_no_crown_trigger = yes
}
} }
} }
} }
@ -347,6 +369,29 @@ portrait_wear_helmet_trigger = { # Different from Armor, as Kings and Emperors s
has_character_flag = military_outfit has_character_flag = military_outfit
is_ruler = no is_ruler = no
} }
# Military style governor
AND = {
is_independent_ruler = no
OR = {
has_government = celestial_government
has_government = meritocratic_government
has_government = steppe_admin_government
}
OR = {
vassal_contract_has_flag = celestial_province_protectorate
vassal_contract_has_flag = celestial_province_military
vassal_contract_has_flag = meritocratic_province_protectorate
vassal_contract_has_flag = meritocratic_province_military
has_title = title:e_minister_grand_marshal
}
is_adult = yes
trigger_if = {
limit = { has_trait = devoted }
faith = { has_doctrine_parameter = clergy_can_fight }
}
save_temporary_scope_as = fighter_temp
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:fighter_temp }
}
} }
NOR = { NOR = {
activity_tournament_shirtless_trigger = yes activity_tournament_shirtless_trigger = yes
@ -370,6 +415,37 @@ portrait_wear_helmet_trigger = { # Different from Armor, as Kings and Emperors s
} }
} }
portrait_wear_no_crown_trigger = { # Rulers should be coronated to wear a crown barring exceptions
exists = this
OR = {
trigger_if = { # No crowns for uncoronated characters
limit = { has_ach_dlc_trigger = yes }
has_realm_law = uncrowned
NOT = { coronation_proper_artifact_regalia_trigger = yes } #don't take off your fancy hat if you care about regalia. But do take it off if you care about crowns AND regalia
}
trigger_if = { # Unlanded spouses of uncoronated ruler's shouldn't have crowns
limit = {
is_married = yes
has_ach_dlc_trigger = yes
NOT = { coronation_proper_artifact_regalia_trigger = yes }
}
is_landed = no
primary_spouse ?= {
is_landed = yes
has_realm_law = uncrowned
NOT = { coronation_proper_artifact_regalia_trigger = yes }
}
}
has_character_flag = sold_crown_charmod # No crowns for characters who sold theirs
has_character_modifier = vow_of_poverty_modifier # Or for characters with an active Vow of Poverty
has_character_modifier = fp1_abased_before_highgod_modifier # Refuses to wear a crown due to HighGod
}
}
portrait_wear_christian_holy_order_trigger = { # Christian holy order members/vassals should wear different armor portrait_wear_christian_holy_order_trigger = { # Christian holy order members/vassals should wear different armor
OR = { OR = {
AND = { # Is a Christian holy order member AND = { # Is a Christian holy order member
@ -389,6 +465,8 @@ portrait_has_trait_trigger = {
trait:$TRAIT$ = { is_in_list = traits } trait:$TRAIT$ = { is_in_list = traits }
} }
# Animation related triggers
is_dwarf_height = { is_dwarf_height = {
OR = { OR = {
has_trait = dwarf has_trait = dwarf
@ -446,15 +524,22 @@ should_use_fat_dwarf_pregnant_animation = {
scope:current_weight >= 40 scope:current_weight >= 40
} }
asian_variants = {
culture = {
OR = {
has_clothing_gfx = chinese_clothing_gfx
has_clothing_gfx = japanese_clothing_gfx
}
}
}
portrait_shared_clothing_contents_trigger = { portrait_shared_clothing_contents_trigger = {
trigger_if = { trigger_if = {
limit = { exists = top_liege.var:adopted_cultural_style } limit = { exists = top_liege.var:adopted_cultural_style }
top_liege.var:adopted_cultural_style = flag:$CULTURE_FLAG$ top_liege.var:adopted_cultural_style = flag:$CULTURE_FLAG$
} }
trigger_else_if = { trigger_else_if = {
limit = { limit = { exists = this.var:adopted_cultural_style }
exists = this.var:adopted_cultural_style
}
var:adopted_cultural_style = flag:$CULTURE_FLAG$ var:adopted_cultural_style = flag:$CULTURE_FLAG$
has_variable = years_as_varangian has_variable = years_as_varangian
is_landed = no is_landed = no
@ -483,9 +568,9 @@ portrait_ccp4_sami_travel_coat_trigger = {
trigger_if = { trigger_if = {
limit = { limit = {
exists = involved_activity exists = involved_activity
involved_activity = { involved_activity = {
NOR = { NOR = {
has_activity_type = activity_hunt has_activity_type = activity_hunt
has_activity_type = activity_roaming has_activity_type = activity_roaming
} }
} }
@ -920,7 +1005,7 @@ portrait_rus_clothing_trigger = {
portrait_shared_clothing_contents_trigger = { portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture CULTURE_SCOPE = scope:culture
CULTURE_FLAG = east_slavic CULTURE_FLAG = east_slavic
} }
portrait_shared_clothing_contents_trigger = { portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture CULTURE_SCOPE = scope:culture
CULTURE_FLAG = west_slavic CULTURE_FLAG = west_slavic
@ -933,7 +1018,7 @@ portrait_rus_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = { portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture CULTURE_SCOPE = culture
CULTURE_FLAG = east_slavic CULTURE_FLAG = east_slavic
} }
portrait_shared_clothing_contents_trigger = { portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture CULTURE_SCOPE = culture
CULTURE_FLAG = west_slavic CULTURE_FLAG = west_slavic
@ -958,6 +1043,133 @@ portrait_can_use_noble_headgear_trigger = {
} }
} }
### EP4 - Asia ###
portrait_chinese_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = chinese
}
}
portrait_chinese_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = chinese
}
}
portrait_japanese_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = japanese
}
}
portrait_japanese_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = japanese
}
}
portrait_korean_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = korean
}
}
portrait_korean_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = korean
}
}
portrait_malay_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = malay
}
}
portrait_malay_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = malay
}
}
portrait_southeast_asian_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = southeast_asian
}
}
portrait_southeast_asian_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = southeast_asian
}
}
portrait_papuan_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = papuan
}
}
portrait_papuan_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = papuan
}
}
portrait_viet_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = viet
}
}
portrait_viet_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = viet
}
}
portrait_tai_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = tai
}
}
portrait_tai_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = tai
}
}
portrait_ainu_clothing_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = scope:culture
CULTURE_FLAG = ainu
}
}
portrait_ainu_clothing_spouse_trigger = {
portrait_shared_clothing_contents_trigger = {
CULTURE_SCOPE = culture
CULTURE_FLAG = ainu
}
}
### General clothing triggers ### ### General clothing triggers ###
@ -1064,7 +1276,7 @@ court_fashion_level_4_trigger = {
court_owner ?= { court_owner ?= {
has_royal_court = yes has_royal_court = yes
has_dlc_feature = royal_court has_dlc_feature = royal_court
amenity_level = { type = court_fashion value = 4 } amenity_level = { target = court_fashion value = 4 }
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -1079,7 +1291,7 @@ court_fashion_level_4_headgear_trigger = {
court_owner ?= { court_owner ?= {
has_royal_court = yes has_royal_court = yes
has_dlc_feature = royal_court has_dlc_feature = royal_court
amenity_level = { type = court_fashion value >= 4 } amenity_level = { target = court_fashion value >= 4 }
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -1094,7 +1306,7 @@ court_fashion_level_5_trigger = {
court_owner ?= { court_owner ?= {
has_royal_court = yes has_royal_court = yes
has_dlc_feature = royal_court has_dlc_feature = royal_court
amenity_level = { type = court_fashion value = 5 } amenity_level = { target = court_fashion value = 5 }
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -1167,9 +1379,9 @@ portrait_commoner_trigger = {
highest_held_title_tier >= tier_duchy highest_held_title_tier >= tier_duchy
} }
OR = { OR = {
has_council_position = councillor_chancellor has_council_position = councillor_chancellor
has_council_position = councillor_steward has_council_position = councillor_steward
} }
} }
} }
trigger_if = { trigger_if = {
@ -1178,7 +1390,7 @@ portrait_commoner_trigger = {
has_dlc_feature = royal_court has_dlc_feature = royal_court
} }
court_owner = { court_owner = {
amenity_level = { type = court_fashion value < 4 } amenity_level = { target = court_fashion value < 4 }
} }
} }
} }
@ -1221,7 +1433,7 @@ portrait_commoner_no_mayors_trigger = {
has_dlc_feature = royal_court has_dlc_feature = royal_court
} }
court_owner = { court_owner = {
amenity_level = { type = court_fashion value < 4 } amenity_level = { target = court_fashion value < 4 }
} }
} }
} }
@ -1239,11 +1451,15 @@ portrait_low_nobles_trigger = {
limit = { exists = this } # To check if this is an actual character limit = { exists = this } # To check if this is an actual character
NOT = { NOT = {
primary_spouse ?= { primary_spouse ?= {
highest_held_title_tier >= tier_duchy AND = {
trigger_if = { highest_held_title_tier >= tier_duchy
limit = { trigger_if = {
government_has_flag = government_is_landless_adventurer limit = { government_is_japanese_trigger = yes }
NOT = { government_has_flag = government_is_japan_feudal } # Japanese bushi class always wear low/war nobility clothing
} }
}
trigger_if = {
limit = { government_has_flag = government_is_landless_adventurer }
has_realm_law = camp_purpose_legitimists has_realm_law = camp_purpose_legitimists
} }
} }
@ -1269,10 +1485,10 @@ portrait_low_nobles_trigger = {
highest_held_title_tier >= tier_duchy highest_held_title_tier >= tier_duchy
} }
OR = { OR = {
has_council_position = councillor_chancellor has_council_position = councillor_chancellor
has_council_position = councillor_steward has_council_position = councillor_steward
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
AND = { # Courtiers AND = { # Courtiers
highest_held_title_tier < tier_county highest_held_title_tier < tier_county
@ -1297,9 +1513,12 @@ portrait_low_nobles_trigger = {
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
AND = { AND = {
OR = { is_ruler = yes
highest_held_title_tier = tier_barony highest_held_title_tier <= tier_county
highest_held_title_tier = tier_county # Japanese bushi class always wear low/war nobility clothing
trigger_if = {
limit = { government_has_flag = government_is_japan_feudal }
is_independent_ruler = no
} }
NOR = { NOR = {
government_has_flag = government_is_herder government_has_flag = government_is_herder
@ -1326,9 +1545,12 @@ portrait_low_nobles_trigger = {
government_has_flag = government_is_mercenary government_has_flag = government_is_mercenary
AND = { AND = {
government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_adventurer
NOT = { NOT = { has_realm_law = camp_purpose_legitimists }
has_realm_law = camp_purpose_legitimists }
} # Japanese bushi class always wear low/war nobility clothing
trigger_if = {
limit = { government_has_flag = government_is_japan_feudal }
is_independent_ruler = no
} }
} }
NOR = { NOR = {
@ -1378,7 +1600,12 @@ portrait_high_nobles_trigger = {
OR = { OR = {
AND = { # Rulers AND = { # Rulers
OR = { OR = {
highest_held_title_tier >= tier_duchy # Most cultures do not have specific clothes for royalty and imperial tier, so we use the high nobility for anything from duke/duchess and up trigger_if = {
limit = { culture = { has_clothing_gfx = japanese_clothing_gfx } }
tgp_japanese_high_nobility_clothing_trigger = yes
}
# Most cultures do not have specific clothes for royalty and imperial tier, so we use the high nobility for anything from duke/duchess and up
trigger_else = { highest_held_title_tier >= tier_duchy }
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
primary_title.tier > tier_barony primary_title.tier > tier_barony
@ -1412,7 +1639,12 @@ portrait_high_nobles_trigger = {
} }
primary_spouse ?= { primary_spouse ?= {
OR = { OR = {
highest_held_title_tier >= tier_duchy trigger_if = {
limit = { culture = { has_clothing_gfx = japanese_clothing_gfx } }
tgp_japanese_high_nobility_clothing_trigger = yes
}
# Most cultures do not have specific clothes for royalty and imperial tier, so we use the high nobility for anything from duke/duchess and up
trigger_else = { highest_held_title_tier >= tier_duchy }
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
primary_title.tier > tier_barony primary_title.tier > tier_barony
@ -1450,9 +1682,20 @@ portrait_high_nobles_trigger = {
} }
AND = { # Family members of rulers AND = { # Family members of rulers
highest_held_title_tier <= tier_duchy highest_held_title_tier <= tier_duchy
any_close_family_member = { trigger_if = {
is_ruler = yes limit = { government_is_japanese_trigger = yes }
highest_held_title_tier > tier_duchy OR = {
tgp_japanese_high_nobility_clothing_family_trigger = yes
tgp_is_in_ceremonial_house_trigger = yes
}
}
trigger_else = {
any_close_family_member = {
AND = {
is_ruler = yes
highest_held_title_tier > tier_duchy
}
}
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -1478,7 +1721,12 @@ portrait_high_nobles_headgear_trigger = {
OR = { OR = {
AND = { # Rulers AND = { # Rulers
OR = { OR = {
highest_held_title_tier = tier_duchy # Most cultures do not have specific clothes for royalty and imperial tier, so we use the high nobility for anything from duke/duchess and up
trigger_if = {
limit = { culture = { has_clothing_gfx = japanese_clothing_gfx } }
tgp_japanese_high_nobility_clothing_trigger = yes
}
trigger_else = { highest_held_title_tier >= tier_duchy }
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
primary_title.tier > tier_county primary_title.tier > tier_county
@ -1488,7 +1736,7 @@ portrait_high_nobles_headgear_trigger = {
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
} }
AND = { AND = {
highest_held_title_tier = tier_kingdom highest_held_title_tier >= tier_kingdom
is_governor = yes is_governor = yes
} }
} }
@ -1511,7 +1759,12 @@ portrait_high_nobles_headgear_trigger = {
} }
primary_spouse = { primary_spouse = {
OR = { OR = {
highest_held_title_tier = tier_duchy # Most cultures do not have specific clothes for royalty and imperial tier, so we use the high nobility for anything from duke/duchess and up
trigger_if = {
limit = { culture = { has_clothing_gfx = japanese_clothing_gfx } }
tgp_japanese_high_nobility_clothing_trigger = yes
}
trigger_else = { highest_held_title_tier >= tier_duchy }
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
primary_title.tier > tier_county primary_title.tier > tier_county
@ -1520,14 +1773,16 @@ portrait_high_nobles_headgear_trigger = {
is_ruler = yes is_ruler = yes
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
} }
AND = {
highest_held_title_tier >= tier_kingdom
is_governor = yes
}
} }
NOR = { # Blocked for mercenaries and adventurers NOR = { # Blocked for mercenaries and adventurers
government_has_flag = government_is_mercenary government_has_flag = government_is_mercenary
AND = { AND = {
government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_adventurer
NOT = { NOT = { has_realm_law = camp_purpose_legitimists }
has_realm_law = camp_purpose_legitimists
}
} }
} }
portrait_$CULTURE_INPUT$_clothing_spouse_trigger = yes portrait_$CULTURE_INPUT$_clothing_spouse_trigger = yes
@ -1548,9 +1803,20 @@ portrait_high_nobles_headgear_trigger = {
} }
AND = { # Family members of rulers AND = { # Family members of rulers
highest_held_title_tier <= tier_duchy highest_held_title_tier <= tier_duchy
any_close_family_member = { trigger_if = {
is_ruler = yes limit = { government_is_japanese_trigger = yes }
highest_held_title_tier > tier_duchy OR = {
tgp_japanese_high_nobility_clothing_family_trigger = yes
tgp_is_in_ceremonial_house_trigger = yes
}
}
trigger_else = {
any_close_family_member = {
AND = {
is_ruler = yes
highest_held_title_tier > tier_duchy
}
}
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -1582,7 +1848,8 @@ portrait_royalty_trigger = {
OR = { OR = {
# Rulers # Rulers
AND = { AND = {
highest_held_title_tier = tier_kingdom is_governor = no
tgp_portrait_liege_or_ceremonial_liege_king_trigger = yes
NOR = { NOR = {
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
@ -1592,7 +1859,6 @@ portrait_royalty_trigger = {
is_ruler = yes is_ruler = yes
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
} }
is_governor = yes
} }
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -1604,7 +1870,7 @@ portrait_royalty_trigger = {
} }
primary_spouse ?= { primary_spouse ?= {
is_governor = no is_governor = no
highest_held_title_tier = tier_kingdom tgp_portrait_liege_or_ceremonial_liege_king_trigger = yes
NOR = { NOR = {
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
@ -1744,7 +2010,8 @@ portrait_imperial_trigger = {
OR = { OR = {
# Rulers # Rulers
AND = { AND = {
highest_held_title_tier = tier_empire is_governor = no
tgp_portrait_liege_or_ceremonial_liege_emperor_trigger = yes
NOR = { NOR = {
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
@ -1765,7 +2032,8 @@ portrait_imperial_trigger = {
highest_held_title_tier <= primary_spouse.highest_held_title_tier highest_held_title_tier <= primary_spouse.highest_held_title_tier
} }
primary_spouse = { primary_spouse = {
highest_held_title_tier = tier_empire is_governor = no
tgp_portrait_liege_or_ceremonial_liege_emperor_trigger = yes
NOR = { NOR = {
AND = { AND = {
government_has_flag = government_is_special_republic government_has_flag = government_is_special_republic
@ -1782,7 +2050,7 @@ portrait_imperial_trigger = {
} }
} }
trigger_else = { trigger_else = {
scope:highest_held_title_tier = tier_empire scope:highest_held_title_tier >= tier_empire
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
} }
@ -1798,6 +2066,7 @@ portrait_imperial_nobles_headgear_trigger = {
trigger_if = { trigger_if = {
limit = { exists = this } limit = { exists = this }
portrait_can_use_noble_headgear_trigger = yes portrait_can_use_noble_headgear_trigger = yes
is_governor = no
NOR = { NOR = {
AND = { AND = {
is_ruler = yes is_ruler = yes
@ -1814,7 +2083,7 @@ portrait_imperial_nobles_headgear_trigger = {
} }
} }
} }
scope:highest_held_title_tier = tier_empire tgp_portrait_liege_or_ceremonial_liege_emperor_trigger = yes
portrait_$CULTURE_INPUT$_clothing_trigger = yes portrait_$CULTURE_INPUT$_clothing_trigger = yes
} }
@ -2084,8 +2353,14 @@ portrait_beggar_trigger = {
portrait_prisoner_trigger = { portrait_prisoner_trigger = {
exists = this exists = this
is_imprisoned = yes trigger_if = {
is_in_prison_type = dungeon limit = { is_alive = no }
death_reason = death_dungeon
}
trigger_else = {
is_imprisoned = yes
is_in_prison_type = dungeon
}
} }
@ -2168,7 +2443,15 @@ portrait_religious_high_trigger = {
is_ruler = yes is_ruler = yes
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
} }
has_council_position = councillor_court_chaplain AND = {
has_council_position = councillor_court_chaplain
liege = {
NAND = {
highest_held_title_tier >= tier_hegemony
government_has_flag = government_is_celestial
}
}
}
} }
NOT = { NOT = {
faith = { faith = {
@ -2208,7 +2491,15 @@ portrait_religious_high_no_poverty_trigger = {
is_ruler = yes is_ruler = yes
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
} }
has_council_position = councillor_court_chaplain AND = {
has_council_position = councillor_court_chaplain
liege = {
NAND = {
highest_held_title_tier >= tier_hegemony
government_has_flag = government_is_celestial
}
}
}
} }
} }
@ -2260,26 +2551,15 @@ portrait_religious_head_popes_trigger = {
exists = this exists = this
OR = { OR = {
AND = { AND = {
faith = faith:roman_catholic faith = faith:catholic
is_adult = yes is_adult = yes
religion = religion:catholic_religion religion = religion:christianity_religion
primary_title ?= { primary_title ?= {
is_head_of_faith = yes is_head_of_faith = yes
} }
} }
AND = { any_equipped_character_artifact = {
faith = faith:sevillian has_variable = pope_hat
is_adult = yes
religion = religion:catholic_religion
primary_title ?= {
is_head_of_faith = yes
}
}
AND = {
exists = this
any_equipped_character_artifact = {
has_variable = pope_hat
}
} }
} }
} }
@ -2317,17 +2597,13 @@ portrait_religious_faith_or_foundational_trigger = {
} }
portrait_religious_christian_trigger = { portrait_religious_christian_trigger = {
OR = { religion = religion:christianity_religion
religion = religion:christianity_religion
religion = religion:catholic_religion
religion = religion:anglican_religion
religion = religion:lutheranism_religion
religion = religion:calvinist_religion
}
} }
portrait_religious_catholic_trigger = { portrait_religious_catholic_trigger = {
religion = religion:catholic_religion faith = {
portrait_religious_faith_or_foundational_trigger = { FAITH = faith:catholic }
}
} }
portrait_religious_orthodox_trigger = { portrait_religious_orthodox_trigger = {
@ -2401,10 +2677,13 @@ portrait_religious_buddhist_trigger = {
faith = { faith = {
portrait_religious_faith_or_foundational_trigger = { FAITH = faith:bon } portrait_religious_faith_or_foundational_trigger = { FAITH = faith:bon }
} }
religion = religion:taoism_religion
} }
} }
portrait_religious_taoist_trigger = {
religion = religion:taoism_religion
}
portrait_religious_hindu_trigger = { portrait_religious_hindu_trigger = {
religion = religion:hinduism_religion religion = religion:hinduism_religion
} }
@ -2442,7 +2721,8 @@ portrait_religious_african_trigger = {
### DDE HRE ### ### DDE HRE ###
portrait_reichskrone_trigger = { portrait_reichskrone_trigger = {
AND = { exists = this
OR = {
has_primary_title = title:e_hre has_primary_title = title:e_hre
any_equipped_character_artifact = { any_equipped_character_artifact = {
has_variable = reichskrone has_variable = reichskrone
@ -2600,3 +2880,22 @@ portrait_ep2_wedding_clothes_trigger = {
} }
### General headgear triggers ### ### General headgear triggers ###
portrait_shared_makeup_trigger = {
# Not naked
should_be_naked_trigger = no
# Not ill
portrait_sickness_trigger = no
# Not in an army
portrait_wear_armor_trigger = no
# Not religious characters
NOR = {
has_trait = devoted
government_has_flag = government_is_theocracy
has_council_position = councillor_court_chaplain
}
}
use_longsword_default_trigger = {
culture = { has_cultural_pillar = heritage_japonic }
}

View file

@ -21,13 +21,15 @@ coa_african_religion_trigger = {
scope:faith.religion = { scope:faith.religion = {
save_temporary_scope_as = religion save_temporary_scope_as = religion
} }
OR = { scope:religion = {
scope:religion = religion:akom_religion OR = {
scope:religion = religion:waaqism_religion this = religion:akom_religion
scope:religion = religion:west_african_religion this = religion:waaqism_religion
scope:religion = religion:west_african_bori_religion this = religion:west_african_religion
scope:religion = religion:west_african_orisha_religion this = religion:west_african_bori_religion
scope:religion = religion:west_african_roog_religion this = religion:west_african_orisha_religion
this = religion:west_african_roog_religion
}
} }
} }
@ -39,12 +41,9 @@ coa_bishopric_trigger = {
coa_breton_trigger = { coa_breton_trigger = {
OR = { OR = {
scope:culture = { has_coa_gfx = breton_coa_gfx } scope:culture = { has_coa_gfx = breton_coa_gfx }
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:k_brittany
any_this_title_or_de_jure_above = {
this = title:k_brittany
}
} }
} }
} }
@ -53,12 +52,9 @@ coa_breton_trigger = {
coa_byzantine_trigger = { coa_byzantine_trigger = {
OR = { OR = {
scope:culture = { has_coa_gfx = byzantine_group_coa_gfx } scope:culture = { has_coa_gfx = byzantine_group_coa_gfx }
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:e_byzantium
any_this_title_or_de_jure_above = {
this = title:e_byzantium
}
} }
} }
} }
@ -67,12 +63,9 @@ coa_byzantine_trigger = {
coa_castilian_trigger = { coa_castilian_trigger = {
OR = { OR = {
scope:culture = { has_coa_gfx = castilian_coa_gfx } scope:culture = { has_coa_gfx = castilian_coa_gfx }
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:k_castille
any_this_title_or_de_jure_above = {
this = title:k_castille
}
} }
} }
} }
@ -80,10 +73,7 @@ coa_castilian_trigger = {
coa_coptic_trigger = { coa_coptic_trigger = {
OR = { OR = {
# TODO graphical faith trigger
scope:faith = faith:coptic scope:faith = faith:coptic
#scope:faith = faith:armenian_apostolic
#scope:faith = faith:paulician
} }
} }
@ -149,12 +139,9 @@ coa_french_trigger = {
coa_irish_trigger = { coa_irish_trigger = {
OR = { OR = {
scope:culture = { has_coa_gfx = irish_coa_gfx } scope:culture = { has_coa_gfx = irish_coa_gfx }
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:k_ireland
any_this_title_or_de_jure_above = {
this = title:k_ireland
}
} }
} }
} }
@ -162,36 +149,34 @@ coa_irish_trigger = {
coa_indian_culture_trigger = { coa_indian_culture_trigger = {
OR = { scope:culture = {
scope:culture = { has_coa_gfx = burman_group_coa_gfx } OR = {
scope:culture = { has_coa_gfx = dravidian_group_coa_gfx } has_coa_gfx = burman_group_coa_gfx
scope:culture = { has_coa_gfx = indo_aryan_group_coa_gfx } has_coa_gfx = dravidian_group_coa_gfx
scope:culture = { has_coa_gfx = tibetan_group_coa_gfx } has_coa_gfx = indo_aryan_group_coa_gfx
has_coa_gfx = tibetan_group_coa_gfx
}
} }
} }
coa_indian_region_trigger = { coa_indian_region_trigger = {
exists = scope:title exists = scope:title
scope:title = { scope:title = {
any_this_title_or_de_jure_above = { is_landless_type_title = no
OR = { title_province ?= { geographical_region = world_india }
this = title:e_india
this = title:e_bengal
this = title:e_deccan
this = title:e_rajastan
this = title:e_tibet
}
}
} }
} }
coa_indian_religion_trigger = { coa_indian_religion_trigger = {
scope:faith.religion = { scope:faith.religion = {
save_temporary_scope_as = religion save_temporary_scope_as = religion
} }
OR = { scope:religion = {
scope:religion = religion:bon_religion OR = {
scope:religion = religion:buddhism_religion this = { is_in_family = rf_eastern }
scope:religion = religion:hinduism_religion this = religion:bon_religion
scope:religion = religion:jainism_religion this = religion:buddhism_religion
this = religion:hinduism_religion
this = religion:jainism_religion
}
} }
} }
coa_indian_trigger = { coa_indian_trigger = {
@ -200,6 +185,7 @@ coa_indian_trigger = {
coa_indian_region_trigger = yes coa_indian_region_trigger = yes
coa_indian_religion_trigger = yes coa_indian_religion_trigger = yes
} }
scope:culture = { has_graphical_east_asia_culture_group_trigger = no }
} }
coa_jewish_trigger = { coa_jewish_trigger = {
@ -212,12 +198,9 @@ coa_jewish_trigger = {
coa_leonese_trigger = { coa_leonese_trigger = {
OR = { OR = {
scope:culture = { has_coa_gfx = leonese_coa_gfx } scope:culture = { has_coa_gfx = leonese_coa_gfx }
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:k_leon
any_this_title_or_de_jure_above = {
this = title:k_leon
}
} }
} }
} }
@ -225,12 +208,9 @@ coa_leonese_trigger = {
coa_manx_trigger = { coa_manx_trigger = {
OR = { OR = {
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:d_the_isles # Mann
any_this_title_or_de_jure_above = {
this = title:d_the_isles # Mann
}
} }
} }
AND = { AND = {
@ -289,12 +269,9 @@ coa_polish_trigger = {
coa_scottish_trigger = { coa_scottish_trigger = {
OR = { OR = {
scope:culture = { has_coa_gfx = scottish_coa_gfx } scope:culture = { has_coa_gfx = scottish_coa_gfx }
AND = { scope:title ?= {
exists = scope:title any_this_title_or_de_jure_above = {
scope:title = { this = title:k_scotland
any_this_title_or_de_jure_above = {
this = title:k_scotland
}
} }
} }
} }
@ -304,17 +281,7 @@ coa_theocratic_trigger = {
exists = root exists = root
OR = { OR = {
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
AND = { is_theocratic_lessee = yes
exists = liege
liege = {
any_sub_realm_barony = {
lessee = ROOT
title_province = {
has_holding_type = church_holding
}
}
}
}
} }
} }
@ -327,10 +294,12 @@ coa_tamga_trigger = {
} }
coa_scandinavian_trigger = { coa_scandinavian_trigger = {
OR = { scope:culture = {
scope:culture = { has_coa_gfx = swedish_coa_gfx } OR = {
scope:culture = { has_coa_gfx = norwegian_coa_gfx } has_coa_gfx = swedish_coa_gfx
scope:culture = { has_coa_gfx = danish_coa_gfx } has_coa_gfx = norwegian_coa_gfx
has_coa_gfx = danish_coa_gfx
}
} }
} }
@ -347,12 +316,10 @@ coa_iberian_trigger = {
scope:culture = { has_coa_gfx = iberian_group_coa_gfx } scope:culture = { has_coa_gfx = iberian_group_coa_gfx }
AND = { AND = {
scope:culture = { has_coa_gfx = arabic_group_coa_gfx } scope:culture = { has_coa_gfx = arabic_group_coa_gfx }
AND = { scope:title ?= {
exists = scope:title OR = {
scope:title = { this = title:e_spain
any_this_title_or_de_jure_above = { empire ?= title:e_spain
this = title:e_spain
}
} }
} }
} }
@ -361,4 +328,197 @@ coa_iberian_trigger = {
coa_iranian_trigger = { coa_iranian_trigger = {
scope:culture = { has_coa_gfx = iranian_group_coa_gfx } scope:culture = { has_coa_gfx = iranian_group_coa_gfx }
} }
has_recognizable_chinese_seal = {
trigger_if = {
limit = { exists = scope:title }
scope:title = { is_noble_family_title = yes }
}
house ?= {
OR = {
### CHINESE ###
has_base_name = "dynn_Wang_738B"
has_base_name = "dynn_Wang_738B_KO"
has_base_name = "dynn_Li_674E"
has_base_name = "dynn_Zhang_5F35"
has_base_name = "dynn_Liu_5289"
has_base_name = "dynn_Chen_9673"
has_base_name = "dynn_Yang_694A"
has_base_name = "dynn_Yang_694A_KO"
has_base_name = "dynn_Huang_9EC3"
has_base_name = "dynn_Zhao_8D99"
has_base_name = "dynn_Wu_5433"
has_base_name = "dynn_Zhou_5468"
has_base_name = "dynn_Xu_5F90"
has_base_name = "dynn_Sun_5B6B"
has_base_name = "dynn_Ma_99AC"
has_base_name = "dynn_Ma_99AC_KO"
has_base_name = "dynn_Zhu_6731"
has_base_name = "dynn_Hu_80E1"
has_base_name = "dynn_Guo_90ED"
has_base_name = "dynn_He_4F55"
has_base_name = "dynn_Lin_6797"
has_base_name = "dynn_Gao_9AD8"
has_base_name = "dynn_Luo_7F85"
has_base_name = "dynn_Zheng_912D"
has_base_name = "dynn_Liang_6881"
has_base_name = "dynn_Xie_8B1D"
has_base_name = "dynn_Song_5B8B"
has_base_name = "dynn_Song_5B8B_KO"
has_base_name = "dynn_Tang_5510"
has_base_name = "dynn_Xu_8A31"
has_base_name = "dynn_Deng_9127"
has_base_name = "dynn_Han_97D3"
has_base_name = "dynn_Han_97D3_KO"
has_base_name = "dynn_Feng_99AE"
has_base_name = "dynn_Cao_66F9"
has_base_name = "dynn_Peng_5F6D"
has_base_name = "dynn_Zeng_66FE"
has_base_name = "dynn_Xiao_856D"
has_base_name = "dynn_Tian_7530"
has_base_name = "dynn_Dong_8463"
has_base_name = "dynn_Pan_6F58"
has_base_name = "dynn_Yuan_8881"
has_base_name = "dynn_Cai_8521"
has_base_name = "dynn_Jiang_8523"
has_base_name = "dynn_Yu_4F59"
has_base_name = "dynn_Yu_4E8E"
has_base_name = "dynn_Du_675C"
has_base_name = "dynn_Du_675C_KO"
has_base_name = "dynn_Ye_8449"
has_base_name = "dynn_Cheng_7A0B"
has_base_name = "dynn_Wei_9B4F"
has_base_name = "dynn_Su_8607"
has_base_name = "dynn_Lu_5442"
has_base_name = "dynn_Ding_4E01"
has_base_name = "dynn_Ren_4EFB"
has_base_name = "dynn_Lu_76E7"
has_base_name = "dynn_Yao_59DA"
has_base_name = "dynn_Shen_6C88"
has_base_name = "dynn_Zhong_937E"
has_base_name = "dynn_Jiang_59DC"
has_base_name = "dynn_Cui_5D14"
has_base_name = "dynn_Tan_8B5A"
has_base_name = "dynn_Lu_9678"
has_base_name = "dynn_Fan_8303"
has_base_name = "dynn_Wang_6C6A"
has_base_name = "dynn_Liao_5ED6"
has_base_name = "dynn_Shi_77F3"
has_base_name = "dynn_Jin_91D1"
has_base_name = "dynn_Wei_97CB"
has_base_name = "dynn_Jia_8CC8"
has_base_name = "dynn_Xia_590F"
has_base_name = "dynn_Fu_5085"
has_base_name = "dynn_Fang_65B9"
has_base_name = "dynn_Zou_9112"
has_base_name = "dynn_Xiong_718A"
has_base_name = "dynn_Bai_767D"
has_base_name = "dynn_Meng_5B5F"
has_base_name = "dynn_Qin_79E6"
has_base_name = "dynn_Qiu_90B1"
has_base_name = "dynn_Hou_4FAF"
has_base_name = "dynn_Jiang_6C5F"
has_base_name = "dynn_Yin_5C39"
has_base_name = "dynn_Xue_859B"
has_base_name = "dynn_Yan_95BB"
has_base_name = "dynn_Duan_6BB5"
has_base_name = "dynn_Lei_96F7"
has_base_name = "dynn_Long_9F8D"
has_base_name = "dynn_Li_9ECE"
has_base_name = "dynn_Shi_53F2"
has_base_name = "dynn_Tao_9676"
has_base_name = "dynn_He_8CC0"
has_base_name = "dynn_Mao_6BDB"
has_base_name = "dynn_Hao_90DD"
has_base_name = "dynn_Gu_9867"
has_base_name = "dynn_Gong_9F94"
has_base_name = "dynn_Shao_90B5"
has_base_name = "dynn_Wan_842C"
has_base_name = "dynn_Tan_8983"
has_base_name = "dynn_Wu_6B66"
has_base_name = "dynn_Qian_9322"
has_base_name = "dynn_Dai_6234"
has_base_name = "dynn_Yan_56B4"
has_base_name = "dynn_Ou_6B50"
has_base_name = "dynn_Mo_83AB"
has_base_name = "dynn_Kong_5B54"
has_base_name = "dynn_Xiang_5411"
has_base_name = "dynn_Xin_8F9B"
has_base_name = "dynn_Xie_90aa"
has_base_name = "dynn_Ximen_897F"
has_base_name = "dynn_Situ_53F8"
has_base_name = "dynn_Nan_5357"
has_base_name = "dynn_Nangong_5357"
has_base_name = "dynn_Shan_55AE"
has_base_name = "dynn_Da_5927"
has_base_name = "dynn_Po_6734" # (Bak/Phac) 朴
has_base_name = "dynn_Quan_6B0A" # (Gwon/Quyen) 權
has_base_name = "dynn_Wen_6587" # (Mun/Van) 文
has_base_name = "dynn_Liao_907C" # (Ryo/Lieu) 遼
has_base_name = "dynn_Yue_8D8A" # (Viet) # 越
has_base_name = "dynn_Zhao_8A54" # (Jo/Li) # 詔
has_base_name = "dynn_Meng_8499" # 蒙
### KOREAN/BALHAE ###
has_base_name = "dynn_An_694A"
has_base_name = "dynn_Baek_767D"
has_base_name = "dynn_Chae_8521"
has_base_name = "dynn_Choe_5D14"
has_base_name = "dynn_Gang_59DC"
has_base_name = "dynn_Gim_91D1"
has_base_name = "dynn_Go_9AD8"
has_base_name = "dynn_Gwak_90ED"
has_base_name = "dynn_Ha_590F"
has_base_name = "dynn_Ha_8CC0"
has_base_name = "dynn_I_674E"
has_base_name = "dynn_Im_4EFB"
has_base_name = "dynn_Jang_5F35"
has_base_name = "dynn_Jeong_912D"
has_base_name = "dynn_Jo_8D99"
has_base_name = "dynn_Ju_5468"
has_base_name = "dynn_Ju_6731"
has_base_name = "dynn_O_5433"
has_base_name = "dynn_Pung_99AE"
has_base_name = "dynn_Ra_7F85"
has_base_name = "dynn_Rim_6797"
has_base_name = "dynn_Sa_53F2"
has_base_name = "dynn_Yang_6881"
has_base_name = "dynn_Yeo_5442"
has_base_name = "dynn_Yu_5289"
has_base_name = "dynn_Yun_5C39"
### VIET ###
has_base_name = "dynn_Bach_767D"
has_base_name = "dynn_Cao_9AD8"
has_base_name = "dynn_Chu_6731"
has_base_name = "dynn_Dao_9676"
has_base_name = "dynn_Dinh_4E01"
has_base_name = "dynn_Doan_6BB5"
has_base_name = "dynn_Dong_8463_VN"
has_base_name = "dynn_Duong_694A"
has_base_name = "dynn_Ha_4F55"
has_base_name = "dynn_Ho_80E1"
has_base_name = "dynn_Hoang_9EC3"
has_base_name = "dynn_Lam_6797"
has_base_name = "dynn_Le_9ECE"
has_base_name = "dynn_Loi_96F7"
has_base_name = "dynn_Luu_5289"
has_base_name = "dynn_Ly_674E"
has_base_name = "dynn_Mac_83AB"
has_base_name = "dynn_Ngo_5433"
has_base_name = "dynn_Phan_6F58"
has_base_name = "dynn_Pham_8303"
has_base_name = "dynn_Phung_99AE"
has_base_name = "dynn_Quach_90ED"
has_base_name = "dynn_Ta_8B1D"
has_base_name = "dynn_To_8607"
has_base_name = "dynn_Ton_5B6B"
has_base_name = "dynn_Tong_5B8B"
has_base_name = "dynn_Tran_9673"
has_base_name = "dynn_Trieu_8D99"
has_base_name = "dynn_Trinh_912D"
has_base_name = "dynn_Truong_5F35"
has_base_name = "dynn_Vu_6B66"
has_base_name = "dynn_Vuong_738B"
}
}
}

View file

@ -11,8 +11,11 @@
#TRIGGERS #TRIGGERS
can_be_councillor_basics_trigger = { can_be_councillor_basics_trigger = {
is_capable_adult = yes is_available_quick = {
is_imprisoned = no adult = yes
incapable = no
imprisoned = no
}
is_at_war_with_liege = no is_at_war_with_liege = no
trigger_if = { trigger_if = {
limit = { has_variable = block_hire_councillor } limit = { has_variable = block_hire_councillor }
@ -29,13 +32,11 @@ can_be_chancellor_trigger = {
has_council_position = councillor_court_chaplain has_council_position = councillor_court_chaplain
faith = { has_doctrine_parameter = clerical_appointment_fixed } faith = { has_doctrine_parameter = clerical_appointment_fixed }
} }
NOT = { NOR = {
OR = { has_council_position = councillor_spouse
has_council_position = councillor_spouse AND = {
AND = { this = liege.diarch
this = liege.diarch liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
} }
} }
OR = { OR = {
@ -60,13 +61,11 @@ can_be_steward_trigger = {
has_council_position = councillor_court_chaplain has_council_position = councillor_court_chaplain
faith = { has_doctrine_parameter = clerical_appointment_fixed } faith = { has_doctrine_parameter = clerical_appointment_fixed }
} }
NOT = { NOR = {
OR = { has_council_position = councillor_spouse
has_council_position = councillor_spouse AND = {
AND = { this = liege.diarch
this = liege.diarch liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
} }
} }
OR = { OR = {
@ -87,18 +86,16 @@ can_be_marshal_trigger = {
$COURT_OWNER$ ?= { $COURT_OWNER$ ?= {
NOT = { government_has_flag = government_is_nomadic } NOT = { government_has_flag = government_is_nomadic }
} }
is_hostage = no is_hostage = no
NAND = { NAND = {
has_council_position = councillor_court_chaplain has_council_position = councillor_court_chaplain
faith = { has_doctrine_parameter = clerical_appointment_fixed } faith = { has_doctrine_parameter = clerical_appointment_fixed }
} }
NOT = { NOR = {
OR = { has_council_position = councillor_spouse
has_council_position = councillor_spouse AND = {
AND = { this = liege.diarch
this = liege.diarch liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
} }
} }
OR = { OR = {
@ -124,13 +121,11 @@ can_be_spymaster_trigger = {
has_council_position = councillor_court_chaplain has_council_position = councillor_court_chaplain
faith = { has_doctrine_parameter = clerical_appointment_fixed } faith = { has_doctrine_parameter = clerical_appointment_fixed }
} }
NOT = { NOR = {
OR = { has_council_position = councillor_spouse
has_council_position = councillor_spouse AND = {
AND = { this = liege.diarch
this = liege.diarch liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
} }
} }
exists = $COURT_OWNER$ #so we can have the argument but get no errors exists = $COURT_OWNER$ #so we can have the argument but get no errors
@ -142,13 +137,11 @@ can_be_court_chaplain_trigger = {
$COURT_OWNER$ ?= { $COURT_OWNER$ ?= {
NOT = { government_has_flag = government_is_nomadic } NOT = { government_has_flag = government_is_nomadic }
} }
NOT = { NOR = {
OR = { has_council_position = councillor_spouse
has_council_position = councillor_spouse AND = {
AND = { this = liege.diarch
this = liege.diarch liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
liege = { has_diarchy_active_parameter = diarchy_is_vizierate }
}
} }
} }
$COURT_OWNER$.faith = { has_allowed_gender_for_clergy = scope:court_chaplain_check } $COURT_OWNER$.faith = { has_allowed_gender_for_clergy = scope:court_chaplain_check }
@ -184,13 +177,11 @@ can_be_spouse_councillor_trigger = {
#} #}
trigger_if = { trigger_if = {
limit = { is_ruler = yes } limit = { is_ruler = yes }
exists = liege liege ?= $COUNCIL_OWNER$
liege = $COUNCIL_OWNER$
$COUNCIL_OWNER$ = { primary_spouse = scope:spouse_councillor_check } $COUNCIL_OWNER$ = { primary_spouse = scope:spouse_councillor_check }
} }
trigger_else = { trigger_else = {
exists = $COUNCIL_OWNER$ $COUNCIL_OWNER$ ?= { primary_spouse = scope:spouse_councillor_check }
$COUNCIL_OWNER$ = { primary_spouse = scope:spouse_councillor_check }
} }
} }
@ -333,23 +324,13 @@ councillor_loyalty_trigger = {
} }
} }
councillor_positive_event_opinion_trigger = {
always = yes
# opinion = {
# target = liege
# value >= -20
# }
}
############################ ############################
#SPOUSE COUNCILLOR TRIGGERS# #SPOUSE COUNCILLOR TRIGGERS#
############################ ############################
valid_spouse_councillor_trigger = { valid_spouse_councillor_trigger = {
exists = cp:councillor_spouse
scope:councillor = { is_available = yes } scope:councillor = { is_available = yes }
cp:councillor_spouse = scope:councillor cp:councillor_spouse ?= scope:councillor
} }
is_blocked_from_being_fired_from_council_trigger = { is_blocked_from_being_fired_from_council_trigger = {
@ -403,19 +384,19 @@ same_faith_or_culture_as_councillor_trigger = {
different_faith_and_or_culture_from_councillor_trigger = { different_faith_and_or_culture_from_councillor_trigger = {
OR = { OR = {
NOT = { culture = scope:councillor.culture } culture != scope:councillor.culture
NOT = { faith = scope:councillor.faith } faith != scope:councillor.faith
} }
} }
character_same_faith_as_councillor_but_different_from_root_trigger = { character_same_faith_as_councillor_but_different_from_root_trigger = {
faith = scope:councillor.faith faith = scope:councillor.faith
NOT = { faith = root.faith } faith != root.faith
} }
character_same_culture_as_councillor_but_different_from_root_trigger = { character_same_culture_as_councillor_but_different_from_root_trigger = {
culture = scope:councillor.culture culture = scope:councillor.culture
NOT = { culture = root.culture } culture != root.culture
} }
@ -451,11 +432,11 @@ province_same_faith_or_culture_as_councillor_but_different_from_root_trigger = {
OR = { OR = {
AND = { AND = {
culture = scope:councillor.culture culture = scope:councillor.culture
NOT = { culture = root.culture } culture != root.culture
} }
AND = { AND = {
faith = scope:councillor.faith faith = scope:councillor.faith
NOT = { faith = root.faith } faith != root.faith
} }
} }
} }
@ -778,7 +759,7 @@ spymaster_task_find_secrets_block_spymaster_self_reveal_trigger = {
exists = secret_target exists = secret_target
NOT = { secret_type = secret_murder_attempt } NOT = { secret_type = secret_murder_attempt }
} }
NOT = { secret_target = scope:councillor } secret_target != scope:councillor
} }
# If the spymaster is the father of a secret bastard, don't reveal that # If the spymaster is the father of a secret bastard, don't reveal that
trigger_if = { trigger_if = {
@ -789,7 +770,7 @@ spymaster_task_find_secrets_block_spymaster_self_reveal_trigger = {
} }
exists = secret_target.real_father exists = secret_target.real_father
} }
NOT = { secret_target.real_father = scope:councillor } secret_target.real_father != scope:councillor
} }
} }
@ -844,16 +825,16 @@ spymaster_task_find_secrets_court_has_minor_secrets_trigger = {
} }
any_vassal = { any_vassal = {
has_any_secrets = yes has_any_secrets = yes
NOT = { this = scope:councillor_liege } this != scope:councillor_liege
NOT = { this = scope:councillor } this != scope:councillor
any_secret = { any_secret = {
spymaster_task_find_secrets_suitable_minor_secret_trigger = yes spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
} }
} }
any_courtier_or_guest = { any_courtier_or_guest = {
has_any_secrets = yes has_any_secrets = yes
NOT = { this = scope:councillor_liege } this != scope:councillor_liege
NOT = { this = scope:councillor } this != scope:councillor
any_secret = { any_secret = {
spymaster_task_find_secrets_suitable_minor_secret_trigger = yes spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
} }
@ -871,16 +852,16 @@ spymaster_task_find_secrets_court_has_major_secrets_trigger = {
} }
any_vassal = { any_vassal = {
has_any_secrets = yes has_any_secrets = yes
NOT = { this = scope:councillor_liege } this != scope:councillor_liege
NOT = { this = scope:councillor } this != scope:councillor
any_secret = { any_secret = {
spymaster_task_find_secrets_suitable_major_secret_trigger = yes spymaster_task_find_secrets_suitable_major_secret_trigger = yes
} }
} }
any_courtier_or_guest = { any_courtier_or_guest = {
has_any_secrets = yes has_any_secrets = yes
NOT = { this = scope:councillor_liege } this != scope:councillor_liege
NOT = { this = scope:councillor } this != scope:councillor
any_secret = { any_secret = {
spymaster_task_find_secrets_suitable_major_secret_trigger = yes spymaster_task_find_secrets_suitable_major_secret_trigger = yes
} }
@ -892,8 +873,7 @@ spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = {
scope:councillor_liege = { scope:councillor_liege = {
save_temporary_scope_as = me save_temporary_scope_as = me
} }
exists = scope:secret_holder scope:secret_holder ?= {
scope:secret_holder = {
OR = { OR = {
is_ruler = yes is_ruler = yes
is_close_or_extended_family_of = scope:me is_close_or_extended_family_of = scope:me
@ -965,35 +945,29 @@ steward_task_county_corruption_county_trigger = {
councillor_spouse_learning_2603_valid_councillor_trigger = { councillor_spouse_learning_2603_valid_councillor_trigger = {
is_available_ai_adult = yes is_available_ai_adult = yes
NOT = { this = scope:councillor } this != scope:councillor
} }
councillor_liege_has_erudition_legacy_5_perk = { councillor_liege_has_erudition_legacy_5_perk = {
exists = scope:councillor_liege.dynasty scope:councillor_liege.dynasty ?= { has_dynasty_perk = erudition_legacy_5 }
scope:councillor_liege.dynasty = { has_dynasty_perk = erudition_legacy_5 }
} }
councillor_liege_has_customs_legacy_perk = { councillor_liege_has_customs_legacy_perk = {
exists = scope:councillor_liege.dynasty scope:councillor_liege.dynasty ?= { has_dynasty_perk = ep1_culture_legacy_2 }
scope:councillor_liege.dynasty = { has_dynasty_perk = ep1_culture_legacy_2 }
} }
councillor_liege_has_family_business_bonus = { councillor_liege_has_family_business_bonus = {
exists = scope:councillor_liege.culture scope:councillor_liege.culture ?= { has_cultural_parameter = close_family_better_councillors }
exists = scope:councillor scope:councillor ?= {
scope:councillor_liege.culture = { has_cultural_parameter = close_family_better_councillors }
scope:councillor = {
is_close_family_of = scope:councillor_liege is_close_family_of = scope:councillor_liege
} }
} }
councillor_liege_has_consulted_house_bonus = { councillor_liege_has_consulted_house_bonus = {
scope:councillor_liege ?= { has_character_flag = fp3_consulted_house } scope:councillor_liege ?= { has_character_flag = fp3_consulted_house }
exists = scope:councillor_liege.house scope:councillor.house ?= scope:councillor_liege.house
exists = scope:councillor.house
scope:councillor ?= { house = scope:councillor_liege.house }
} }
councillor_is_unskilled_trigger = { councillor_is_unskilled_trigger = {
@ -1075,10 +1049,12 @@ councillor_liege_has_khvarenah_legacy_perk = {
} }
can_be_knight_now_light_trigger = { can_be_knight_now_light_trigger = {
is_alive = yes is_available_quick = {
is_ai = yes # Players can't be knights ai = yes # Players can't be knights
is_adult = yes imprisoned = no
is_imprisoned = no adult = yes
alive = yes
}
} }
can_be_trained_as_knight_now_light_trigger = { can_be_trained_as_knight_now_light_trigger = {
@ -1092,6 +1068,7 @@ can_be_trained_as_knight_now_light_trigger = {
exists = involved_activity exists = involved_activity
has_variable = homage_liege_scope has_variable = homage_liege_scope
has_character_flag = meditation_character_flag has_character_flag = meditation_character_flag
has_character_flag = local_shrine_rite
has_character_flag = petition_liege_character_flag has_character_flag = petition_liege_character_flag
has_character_flag = holding_court_character_flag has_character_flag = holding_court_character_flag
is_being_visited_on_tour_strict = yes is_being_visited_on_tour_strict = yes

View file

@ -36,6 +36,8 @@ immune_to_county_corruption_trigger = {
has_variable = county_corruption_recent_removal has_variable = county_corruption_recent_removal
is_target_of_council_task = task_increase_control is_target_of_council_task = task_increase_control
has_county_modifier = marshal_task_military_presence_modifier has_county_modifier = marshal_task_military_presence_modifier
is_noble_family_title = yes
is_landless_type_title = yes
} }
} }

View file

@ -4,6 +4,7 @@ any_court_position_available_trigger = {
NOT = { employs_court_position = royal_architect_court_position } NOT = { employs_court_position = royal_architect_court_position }
NOT = { employs_court_position = seneschal_court_position } NOT = { employs_court_position = seneschal_court_position }
NOT = { employs_court_position = court_tutor_court_position } NOT = { employs_court_position = court_tutor_court_position }
NOT = { employs_court_position = court_guru_court_position }
NOT = { employs_court_position = high_almoner_court_position } NOT = { employs_court_position = high_almoner_court_position }
NOT = { employs_court_position = court_physician_court_position } NOT = { employs_court_position = court_physician_court_position }
NOT = { employs_court_position = antiquarian_court_position } NOT = { employs_court_position = antiquarian_court_position }
@ -84,6 +85,42 @@ any_court_position_available_trigger = {
} }
} }
#@info! Used together with assign_appropriate_court_position_effect and distribute_determined_court_position_effect -- update the flags here if you add any Court Positions in the effects
has_any_court_position_flag_trigger = {
OR = {
has_character_flag = physician_flag
has_character_flag = tutor_flag
has_character_flag = almoner_flag
has_character_flag = antiquarian_flag
has_character_flag = qadi_flag
has_character_flag = taster_flag
has_character_flag = executioner_flag
has_character_flag = cupbearer_flag
has_character_flag = lady_in_waiting_flag
has_character_flag = jester_flag
has_character_flag = poet_flag
has_character_flag = musician_flag
has_character_flag = gardener_flag
has_character_flag = architect_flag
has_character_flag = swan_flag
has_character_flag = seneschal_flag
has_character_flag = horse_flag
has_character_flag = garuda_flag
has_character_flag = hunt_flag
has_character_flag = bodyguard_flag
has_character_flag = travel_leader_flag
has_character_flag = wet_nurse_flag
has_character_flag = akolouthos_flag
has_character_flag = court_astrologer_flag
has_character_flag = boyan_flag
has_character_flag = siege_engineer_flag
has_character_flag = yurtchi_flag
has_character_flag = yeke_jarquchi_flag
has_character_flag = foreign_emissary_flag
has_character_flag = keeper_of_the_horses_flag
}
}
# Used in the trigger for court positions to make sure that they don't already have a "job" # Used in the trigger for court positions to make sure that they don't already have a "job"
# If a court position is considered a full time job, the character cannot hold another similar position # If a court position is considered a full time job, the character cannot hold another similar position
court_position_does_not_already_have_a_job_trigger = { court_position_does_not_already_have_a_job_trigger = {
@ -91,6 +128,7 @@ court_position_does_not_already_have_a_job_trigger = {
text = does_not_have_a_full_time_job text = does_not_have_a_full_time_job
NOR = { NOR = {
has_court_position = court_tutor_court_position has_court_position = court_tutor_court_position
has_court_position = court_guru_court_position
has_court_position = food_taster_court_position has_court_position = food_taster_court_position
has_court_position = seneschal_court_position has_court_position = seneschal_court_position
has_court_position = cupbearer_court_position has_court_position = cupbearer_court_position
@ -105,6 +143,11 @@ court_position_does_not_already_have_a_job_trigger = {
has_court_position = travel_leader_court_position has_court_position = travel_leader_court_position
has_court_position = wet_nurse_court_position has_court_position = wet_nurse_court_position
has_court_position = akolouthos_court_position has_court_position = akolouthos_court_position
has_court_position = grand_preceptor_court_position
has_court_position = grand_guardian_court_position
has_court_position = grand_mentor_court_position
has_court_position = fire_dragon_engineer_court_position
has_court_position = keeper_of_the_harem_court_position
is_councillor = yes is_councillor = yes
} }
} }
@ -119,7 +162,7 @@ can_appoint_char_to_court_position = {
save_temporary_scope_as = hiring_liege save_temporary_scope_as = hiring_liege
can_employ_court_position_type = $COURT_POS$ can_employ_court_position_type = $COURT_POS$
$CHAR$ = { $CHAR$ = {
NOT = { this = scope:hiring_liege } this != scope:hiring_liege
NOT = { has_court_position = $COURT_POS$ } NOT = { has_court_position = $COURT_POS$ }
can_be_employed_as = $COURT_POS$ can_be_employed_as = $COURT_POS$
} }
@ -138,6 +181,7 @@ can_appoint_char_to_any_court_position = {
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = travel_leader_court_position } can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = travel_leader_court_position }
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = wet_nurse_court_position } can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = wet_nurse_court_position }
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_tutor_court_position } can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_tutor_court_position }
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_guru_court_position }
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = food_taster_court_position } can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = food_taster_court_position }
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_of_horse_court_position } can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_of_horse_court_position }
can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_of_hunt_court_position } can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_of_hunt_court_position }
@ -219,6 +263,7 @@ has_intrigue_court_position = {
has_learning_court_position = { has_learning_court_position = {
OR = { OR = {
has_court_position = court_tutor_court_position has_court_position = court_tutor_court_position
has_court_position = court_guru_court_position
has_court_position = high_almoner_court_position has_court_position = high_almoner_court_position
has_court_position = court_physician_court_position has_court_position = court_physician_court_position
has_court_position = antiquarian_court_position has_court_position = antiquarian_court_position
@ -262,7 +307,12 @@ court_position_learning_trigger = { # Is courtier suited to learning positions?
base_court_position_validity_trigger = { # would_be_valid_for_court_position ultimately traces back to this, so touch with caution base_court_position_validity_trigger = { # would_be_valid_for_court_position ultimately traces back to this, so touch with caution
is_imprisoned = no is_imprisoned = no
NOT = { is_at_war_with = $EMPLOYER$ } NOT = { is_at_war_with = $EMPLOYER$ }
custom_tooltip = {
text = is_not_a_ceremonial_liege_trigger
tgp_is_ceremonial_liege_trigger = no
}
} }
royal_architect_validity_trigger = { royal_architect_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ } base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
} }
@ -286,6 +336,23 @@ seneschal_validity_trigger = {
} }
} }
khlon_glan_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
stewardship >= 10
martial >= 10
custom_tooltip = {
text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
NOT = { is_spouse_of = $EMPLOYER$ }
}
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = khlon_glan_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
court_tutor_validity_trigger = { court_tutor_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ } base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
OR = { OR = {
@ -299,7 +366,12 @@ court_tutor_validity_trigger = {
custom_tooltip = { custom_tooltip = {
text = none_does_not_have_a_full_time_job text = none_does_not_have_a_full_time_job
trigger_if = { trigger_if = {
limit = { NOT = { has_court_position = court_tutor_court_position } } limit = {
NOR = {
has_court_position = court_tutor_court_position
has_court_position = court_guru_court_position
}
}
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
} }
} }
@ -313,6 +385,15 @@ high_almoner_validity_trigger = {
} }
} }
court_brahmin_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
OR = {
has_religion = religion:buddhism_religion
has_religion = religion:hinduism_religion
}
learning >= 12
}
court_physician_validity_trigger = { court_physician_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ } base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
is_landed = no is_landed = no
@ -398,6 +479,21 @@ court_poet_validity_trigger = {
} }
} }
house_poet_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
custom_tooltip = {
text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
NOT = { is_spouse_of = $EMPLOYER$ }
}
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = house_poet_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
court_musician_validity_trigger = { court_musician_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ } base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
OR = { OR = {
@ -1008,7 +1104,9 @@ camp_officer_generator_pickable_trigger = {
# Set to 0 with Dynasty Perk Inner Circle # Set to 0 with Dynasty Perk Inner Circle
court_position_inner_circle_salary_trigger = { court_position_inner_circle_salary_trigger = {
trigger_if = { trigger_if = {
limit = { exists = scope:liege } limit = {
exists = scope:liege
}
scope:liege ?= { scope:liege ?= {
dynasty ?= { has_dynasty_perk = fp2_coterie_legacy_1 } dynasty ?= { has_dynasty_perk = fp2_coterie_legacy_1 }
employs_court_position = $POS$_court_position employs_court_position = $POS$_court_position
@ -1046,7 +1144,6 @@ court_position_obligation_hook_salary_trigger = {
} }
trigger_else = { always = no } trigger_else = { always = no }
} }
can_be_employed_as_any_court_position_trigger = { can_be_employed_as_any_court_position_trigger = {
OR = { OR = {
can_be_employed_as = court_poet_court_position can_be_employed_as = court_poet_court_position
@ -1068,6 +1165,7 @@ can_be_employed_as_any_court_position_trigger = {
can_be_employed_as = chief_eunuch_court_position can_be_employed_as = chief_eunuch_court_position
can_be_employed_as = master_assassin_court_position can_be_employed_as = master_assassin_court_position
can_be_employed_as = court_tutor_court_position can_be_employed_as = court_tutor_court_position
can_be_employed_as = court_guru_court_position
can_be_employed_as = high_almoner_court_position can_be_employed_as = high_almoner_court_position
can_be_employed_as = court_physician_court_position can_be_employed_as = court_physician_court_position
can_be_employed_as = antiquarian_court_position can_be_employed_as = antiquarian_court_position
@ -1075,6 +1173,11 @@ can_be_employed_as_any_court_position_trigger = {
can_be_employed_as = court_scholar_court_position can_be_employed_as = court_scholar_court_position
can_be_employed_as = court_brewmaster_court_position can_be_employed_as = court_brewmaster_court_position
can_be_employed_as = court_astrologer_court_position can_be_employed_as = court_astrologer_court_position
can_be_employed_as = grand_preceptor_court_position
can_be_employed_as = grand_mentor_court_position
can_be_employed_as = grand_guardian_court_position
can_be_employed_as = fire_dragon_engineer_court_position
can_be_employed_as = keeper_of_the_harem_court_position
can_be_employed_as = boyan_court_position can_be_employed_as = boyan_court_position
can_be_employed_as = siege_engineer_court_position can_be_employed_as = siege_engineer_court_position
can_be_employed_as = yurtchi_court_position can_be_employed_as = yurtchi_court_position
@ -1431,7 +1534,7 @@ master_bard_validity_trigger = {
has_trait = deceitful has_trait = deceitful
has_trait = diligent has_trait = diligent
# Misc. # Misc.
has_trait = poet has_trait = lifestyle_poet
has_trait = drunkard has_trait = drunkard
} }
} }
@ -1610,7 +1713,7 @@ laureate_validity_trigger = {
has_trait = arrogant has_trait = arrogant
has_trait = fickle has_trait = fickle
# Misc. # Misc.
has_trait = poet has_trait = lifestyle_poet
has_trait = lifestyle_reveler has_trait = lifestyle_reveler
} }
} }
@ -1674,9 +1777,104 @@ bookmaker_validity_trigger = {
} }
} }
grand_preceptor_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = grand_preceptor_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
grand_guardian_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = grand_guardian_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
fire_dragon_engineer_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = fire_dragon_engineer_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
grand_mentor_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = grand_mentor_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
keeper_of_the_harem_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = { NOT = { has_court_position = keeper_of_the_harem_court_position } }
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
court_guru_validity_trigger = {
base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
has_trait = lifestyle_mystic
OR = {
has_religion = religion:buddhism_religion
has_religion = religion:hinduism_religion
}
custom_tooltip = {
text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
NOT = { is_spouse_of = $EMPLOYER$ }
}
custom_tooltip = {
text = none_does_not_have_a_full_time_job
trigger_if = {
limit = {
NOR = {
has_court_position = court_tutor_court_position
has_court_position = court_guru_court_position
}
}
court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
}
}
}
### Court Position Task Triggers ### ### Court Position Task Triggers ###
wet_nurse_instill_virtue_trigger = { wet_nurse_instill_virtue_trigger = {
NOT = { has_trait = $TRAIT$ } NOT = { has_trait = $TRAIT$ }
scope:notification_character.faith = { trait_is_virtue = $TRAIT$ } scope:notification_character.faith = { trait_is_virtue = $TRAIT$ }
} }
court_position_employee_shown_trigger = {
is_imprisoned = no
tgp_is_ceremonial_liege_trigger = no
}
can_employ_court_eunuchs_trigger = {
$CHAR$ = {
custom_tooltip = {
text = can_appoint_chief_eunuch_name_tt
culture = { # Culture that has eunuchs
has_cultural_parameter = can_appoint_chief_eunuch
}
}
}
}

View file

@ -36,7 +36,7 @@ is_available_schemer = {
is_available_non_primary_consort = { is_available_non_primary_consort = {
is_available = yes is_available = yes
NOT = {this = primary_spouse } this != primary_spouse
} }
is_available_non_child_family = { is_available_non_child_family = {

View file

@ -142,7 +142,6 @@ courtier_allowed_to_leave_trigger = {
} }
} }
} }
has_epidemic_disease_trigger = yes
#Keep daughters/sons for marriages #Keep daughters/sons for marriages
AND = { AND = {
OR = { OR = {
@ -199,10 +198,8 @@ courtier_allowed_to_leave_trigger = {
is_married = yes is_married = yes
any_spouse = { any_spouse = {
OR = { OR = {
AND = { liege ?= scope:leaving_courtier.liege
exists = liege
liege = scope:leaving_courtier.liege
}
AND = { AND = {
exists = host exists = host
exists = scope:leaving_courtier.host exists = scope:leaving_courtier.host
@ -241,13 +238,19 @@ courtier_allowed_to_leave_trigger = {
has_character_modifier = mellowed_spirit has_character_modifier = mellowed_spirit
# Courtiers with sponsored inspirations won't leave on their own. # Courtiers with sponsored inspirations won't leave on their own.
AND = { inspiration ?= { exists = inspiration_sponsor }
exists = inspiration
inspiration = { exists = inspiration_sponsor }
}
scope:liege = { government_has_flag = government_is_landless_adventurer } scope:liege = { government_has_flag = government_is_landless_adventurer }
is_obedient_to = scope:liege is_obedient_to = scope:liege
AND = {
scope:liege.primary_title = title:h_china
OR = {
is_child_of = scope:liege
is_grandchild_of = scope:liege
is_great_grandchild_of = scope:liege
}
}
} }
} }
@ -280,8 +283,6 @@ guest_allowed_to_leave_trigger = {
# Diarchs don't leave their court. # Diarchs don't leave their court.
is_diarch = yes is_diarch = yes
is_designated_diarch = yes is_designated_diarch = yes
#Too sick to travel
has_epidemic_disease_trigger = yes
#Would be leaving without spouse or underage child #Would be leaving without spouse or underage child
any_child_not_in_traveling_family_trigger = yes any_child_not_in_traveling_family_trigger = yes
any_consort_not_in_traveling_family_trigger = yes any_consort_not_in_traveling_family_trigger = yes
@ -299,7 +300,7 @@ guest_allowed_to_arrive_trigger = {
limit = { exists = host } limit = { exists = host }
NOT = { host = $HOST$ } NOT = { host = $HOST$ }
} }
has_epidemic_disease_trigger = no NOT = { has_trait_with_flag = epidemic_disease }
NOT = { has_relation_rival = $HOST$ } NOT = { has_relation_rival = $HOST$ }
#Compatible faiths #Compatible faiths
faith = { faith = {
@ -348,10 +349,19 @@ can_recruit_character_to_court_trigger = {
trigger_if = { trigger_if = {
limit = { limit = {
exists = host exists = host
host = { is_ai = no }
NOT = { is_player_heir_of = scope:recruiter } NOT = { is_player_heir_of = scope:recruiter }
} }
is_player_heir_of = host is_player_heir_of = host
} }
trigger_if = {
limit = {
exists = host
host = { is_ai = yes }
NOT = { is_player_heir_of = scope:recruiter }
}
is_primary_heir_of = host
}
trigger_if = { trigger_if = {
limit = { exists = host } limit = { exists = host }
is_consort_of = host is_consort_of = host
@ -399,7 +409,7 @@ can_recruit_character_to_court_trigger = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
scope:recruiter = { is_landless_adventurer = yes } scope:recruiter = { has_government = landless_adventurer_government }
} }
custom_tooltip = { custom_tooltip = {
text = can_recruit_character_to_court_trigger.tt.laamps_invitation_restrictions text = can_recruit_character_to_court_trigger.tt.laamps_invitation_restrictions
@ -427,8 +437,7 @@ can_recruit_character_to_court_trigger = {
any_spouse = { any_spouse = {
is_female = yes is_female = yes
matrilinear_marriage = yes matrilinear_marriage = yes
exists = host host ?= scope:recruitee.host
host = scope:recruitee.host
save_temporary_scope_as = spouse save_temporary_scope_as = spouse
OR = { #Is employed in some way OR = { #Is employed in some way
is_councillor_of = scope:recruitee.host is_councillor_of = scope:recruitee.host
@ -473,8 +482,7 @@ can_recruit_character_to_court_trigger = {
any_spouse = { any_spouse = {
is_male = yes is_male = yes
patrilinear_marriage = yes patrilinear_marriage = yes
exists = host host ?= scope:recruitee.host
host = scope:recruitee.host
save_temporary_scope_as = spouse save_temporary_scope_as = spouse
OR = { #Is employed in some way OR = { #Is employed in some way
is_councillor_of = scope:recruitee.host is_councillor_of = scope:recruitee.host
@ -719,16 +727,14 @@ guest_marriage_candidate_trigger = {
###POOL TRIGGERS### ###POOL TRIGGERS###
is_visitable_relation_trigger = { is_visitable_relation_trigger = {
exists = capital_province capital_province ?= { local_pool_is_full_trigger = no }
capital_province = { local_pool_is_full_trigger = no }
NOR = { NOR = {
this = $CHARACTER$.host this = $CHARACTER$.host
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
} }
$CHARACTER$ = { $CHARACTER$ = {
NAND = { NOT = {
exists = var:last_visited_ruler var:last_visited_ruler ?= prev
var:last_visited_ruler = prev
} }
} }
} }
@ -742,8 +748,6 @@ pool_character_is_pruneable_trigger = {
save_temporary_scope_as = pool_prune_check save_temporary_scope_as = pool_prune_check
is_adult = yes is_adult = yes
NOR = { NOR = {
has_trait = peasant_leader
has_trait = gallowsbait
has_trait = heresiarch has_trait = heresiarch
has_trait = populist_leader has_trait = populist_leader
has_trait = adventurer_follower has_trait = adventurer_follower
@ -751,9 +755,8 @@ pool_character_is_pruneable_trigger = {
has_trait = historical_character has_trait = historical_character
has_character_flag = ai_will_not_convert has_character_flag = ai_will_not_convert
is_married = yes is_married = yes
any_claim = { always = yes } any_claim = { }
any_child = { is_adult = no } any_child = { is_adult = no }
num_of_good_genetic_traits >= 1
any_relation = { any_relation = {
type = lover type = lover
is_ruler = yes is_ruler = yes
@ -763,10 +766,7 @@ pool_character_is_pruneable_trigger = {
is_ruler = yes is_ruler = yes
} }
any_close_or_extended_family_member = { is_ruler = yes } any_close_or_extended_family_member = { is_ruler = yes }
AND = { #Belongs to a dynasty with more than 1 member #Belongs to a dynasty with more than 1 member
exists = dynasty
dynasty = { any_dynasty_member = { NOT = { this = scope:pool_prune_check } } }
}
any_relation = { any_relation = {
type = rival type = rival
is_ai = no is_ai = no
@ -784,6 +784,7 @@ pool_character_is_pruneable_trigger = {
intrigue >= high_skill_rating intrigue >= high_skill_rating
learning >= high_skill_rating learning >= high_skill_rating
prowess >= high_skill_rating prowess >= high_skill_rating
dynasty ?= { any_dynasty_member = { this != scope:pool_prune_check } }
any_relation = { any_relation = {
type = rival type = rival
is_ruler = yes is_ruler = yes
@ -826,4 +827,4 @@ guest_herder_candidate_trigger = {
} }
age < 45 age < 45
age >= 25 age >= 25
} }

View file

@ -9,7 +9,7 @@ is_witch_trigger = {
subject = this subject = this
OR = { OR = {
has_trait = witch has_trait = witch
any_secret = { secret_type = secret_witch } any_secret = { type = secret_witch }
} }
} }
} }
@ -22,7 +22,7 @@ is_witch_known_by_trigger = {
subject = this subject = this
object = $CHARACTER$ object = $CHARACTER$
any_secret = { any_secret = {
secret_type = secret_witch type = secret_witch
is_known_by = $CHARACTER$ is_known_by = $CHARACTER$
} }
} }
@ -32,7 +32,7 @@ is_witch_known_by_trigger = {
is_deviant_trigger = { is_deviant_trigger = {
OR = { OR = {
has_trait = deviant has_trait = deviant
any_secret = { secret_type = secret_deviant } any_secret = { type = secret_deviant }
} }
} }
@ -40,7 +40,7 @@ is_incestuous_trigger = {
OR = { OR = {
has_trait = incestuous has_trait = incestuous
any_secret = { any_secret = {
secret_type = secret_incest type = secret_incest
} }
} }
} }

View file

@ -10,7 +10,7 @@
has_crypto_religionist_secret_known_by_character_trigger = { has_crypto_religionist_secret_known_by_character_trigger = {
any_secret = { any_secret = {
secret_type = secret_crypto_religionist type = secret_crypto_religionist
any_secret_knower = { this = $CHARACTER$ } any_secret_knower = { this = $CHARACTER$ }
} }
} }

View file

@ -1,14 +1,13 @@
 ### Cultural heritage triggers
### Cultural heritage triggers
# By their nature these triggers will be a bit lose and inaccurate, so keep that in mind when using them! # By their nature these triggers will be a bit lose and inaccurate, so keep that in mind when using them!
#ASIA #ASIA
culture_has_asian_heritage_pillar_trigger = { culture_has_asian_heritage_pillar_trigger = {
OR = { OR = {
culture_has_east_asian_heritage_pillar_trigger = yes culture_has_east_asian_heritage_pillar_trigger = yes
culture_has_west_asian_heritage_pillar_trigger = yes culture_has_west_asian_heritage_pillar_trigger = yes
culture_has_south_asian_heritage_pillar_trigger = yes culture_has_south_asian_heritage_pillar_trigger = yes
culture_has_southeast_asian_heritage_pillar_trigger = yes
culture_has_north_asian_heritage_pillar_trigger = yes culture_has_north_asian_heritage_pillar_trigger = yes
culture_has_central_asian_heritage_pillar_trigger = yes culture_has_central_asian_heritage_pillar_trigger = yes
} }
@ -18,10 +17,12 @@ culture_has_east_asian_heritage_pillar_trigger = {
OR = { OR = {
has_cultural_pillar = heritage_tibetan has_cultural_pillar = heritage_tibetan
has_cultural_pillar = heritage_chinese has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_mongolic has_cultural_pillar = heritage_japonic
has_cultural_pillar = heritage_turkic has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_burman has_cultural_pillar = heritage_buyeo
has_cultural_pillar = heritage_qiangic has_cultural_pillar = heritage_qiangic
has_cultural_pillar = heritage_viet
has_cultural_pillar = heritage_hmongic
} }
} }
} }
@ -30,12 +31,15 @@ culture_has_west_asian_heritage_pillar_trigger = {
OR = { OR = {
has_cultural_pillar = heritage_iranian has_cultural_pillar = heritage_iranian
has_cultural_pillar = heritage_turkic has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_tocharian
has_cultural_pillar = heritage_hunnic
} }
} }
} }
culture_has_south_asian_heritage_pillar_trigger = { culture_has_south_asian_heritage_pillar_trigger = {
culture = { culture = {
OR = { OR = {
has_cultural_pillar = heritage_austronesian
has_cultural_pillar = heritage_indo_aryan has_cultural_pillar = heritage_indo_aryan
has_cultural_pillar = heritage_dravidian has_cultural_pillar = heritage_dravidian
has_cultural_pillar = heritage_burman has_cultural_pillar = heritage_burman
@ -43,12 +47,39 @@ culture_has_south_asian_heritage_pillar_trigger = {
} }
} }
} }
culture_has_southeast_asian_heritage_pillar_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_viet
has_cultural_pillar = heritage_mon_khmer
has_cultural_pillar = heritage_malayic
has_cultural_pillar = heritage_burman
has_cultural_pillar = heritage_austronesian
has_cultural_pillar = heritage_tai
}
}
}
culture_has_north_asian_heritage_pillar_trigger = { culture_has_north_asian_heritage_pillar_trigger = {
culture = { culture = {
OR = { OR = {
has_cultural_pillar = heritage_turkic has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_mongolic has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_ugro_permian has_cultural_pillar = heritage_ugro_permian
has_cultural_pillar = heritage_nivkh
has_cultural_pillar = heritage_ainuic
has_cultural_pillar = heritage_tungusic
}
}
}
culture_has_north_east_asian_heritage_pillar_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_nivkh
has_cultural_pillar = heritage_ainuic
has_cultural_pillar = heritage_tungusic
} }
} }
} }
@ -58,6 +89,15 @@ culture_has_central_asian_heritage_pillar_trigger = {
has_cultural_pillar = heritage_qiangic has_cultural_pillar = heritage_qiangic
has_cultural_pillar = heritage_turkic has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_mongolic has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_tocharian
}
}
}
culture_has_east_central_asian_heritage_pillar_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_qiangic
has_cultural_pillar = heritage_mongolic
} }
} }
} }
@ -88,12 +128,16 @@ culture_has_east_african_heritage_pillar_trigger = {
OR = { OR = {
has_cultural_pillar = heritage_somalian has_cultural_pillar = heritage_somalian
has_cultural_pillar = heritage_east_african has_cultural_pillar = heritage_east_african
has_cultural_pillar = heritage_bantu
} }
} }
} }
culture_has_north_african_heritage_pillar_trigger = { culture_has_north_african_heritage_pillar_trigger = {
culture = { culture = {
has_cultural_pillar = heritage_berber OR = {
has_cultural_pillar = heritage_berber
has_cultural_pillar = heritage_egyptian
}
} }
} }
culture_has_central_african_heritage_pillar_trigger = { culture_has_central_african_heritage_pillar_trigger = {
@ -107,6 +151,7 @@ culture_has_mena_heritage_pillar_trigger = {
OR = { OR = {
culture = { has_cultural_pillar = heritage_arabic } culture = { has_cultural_pillar = heritage_arabic }
culture = { has_cultural_pillar = heritage_syriac } culture = { has_cultural_pillar = heritage_syriac }
culture = { has_cultural_pillar = heritage_iranian }
culture_has_north_african_heritage_pillar_trigger = yes culture_has_north_african_heritage_pillar_trigger = yes
} }
} }
@ -148,6 +193,7 @@ culture_has_north_european_heritage_pillar_trigger = {
has_cultural_pillar = heritage_balto_finnic has_cultural_pillar = heritage_balto_finnic
has_cultural_pillar = heritage_north_germanic has_cultural_pillar = heritage_north_germanic
has_cultural_pillar = heritage_ugro_permian has_cultural_pillar = heritage_ugro_permian
has_cultural_pillar = heritage_gothic
} }
} }
} }
@ -159,6 +205,8 @@ culture_has_south_european_heritage_pillar_trigger = {
has_cultural_pillar = heritage_byzantine has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_south_slavic has_cultural_pillar = heritage_south_slavic
has_cultural_pillar = heritage_israelite has_cultural_pillar = heritage_israelite
has_cultural_pillar = heritage_vlach
has_cultural_pillar = heritage_ancient_greek
} }
} }
} }

View file

@ -69,6 +69,11 @@ culture_in_winter_geographical_region_trigger = {
geographical_region = world_europe_east geographical_region = world_europe_east
geographical_region = world_steppe geographical_region = world_steppe
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_asia_china
geographical_region = world_asia_japan
geographical_region = world_asia_sakhalin_hokkaido
geographical_region = world_asia_korea
geographical_region = world_asia_north_east
} }
} }
} }
@ -80,9 +85,7 @@ culture_in_non_sedentary_geographical_region_trigger = {
text = culture_in_non_sedentary_geographical_region_trigger_desc text = culture_in_non_sedentary_geographical_region_trigger_desc
any_culture_county = { any_culture_county = {
any_county_province = { any_county_province = {
OR = { geographical_region = world_steppe
geographical_region = world_steppe
}
} }
} }
} }
@ -112,6 +115,10 @@ culture_not_warlike_trigger = {
culture_tradition:tradition_hunters = { is_in_list = traits } culture_tradition:tradition_hunters = { is_in_list = traits }
culture_tradition:tradition_warrior_culture = { is_in_list = traits } culture_tradition:tradition_warrior_culture = { is_in_list = traits }
culture_tradition:tradition_martial_admiration = { is_in_list = traits } culture_tradition:tradition_martial_admiration = { is_in_list = traits }
culture_tradition:tradition_tgp_bushido = { is_in_list = traits }
culture_tradition:tradition_tgp_defiant_ambushers = { is_in_list = traits }
culture_tradition:tradition_tgp_warrior_monks = { is_in_list = traits }
culture_tradition:tradition_tgp_art_of_war = { is_in_list = traits }
} }
} }
custom_description = { custom_description = {
@ -224,6 +231,7 @@ culture_has_skirmisher_maa = {
has_cultural_parameter = unlock_maa_shomer has_cultural_parameter = unlock_maa_shomer
has_cultural_parameter = unlock_maa_abudrar has_cultural_parameter = unlock_maa_abudrar
has_cultural_parameter = unlock_maa_guinea_warrior has_cultural_parameter = unlock_maa_guinea_warrior
has_cultural_parameter = unlock_maa_pesilat
has_innovation = innovation_adaptive_militia #Goedendag - Later Era MAA has_innovation = innovation_adaptive_militia #Goedendag - Later Era MAA
has_cultural_parameter = unlock_maa_akritai has_cultural_parameter = unlock_maa_akritai
} }
@ -241,6 +249,12 @@ culture_has_archer_maa = {
} }
} }
culture_has_improved_crossbowmen = {
OR = {
has_innovation = innovation_repeating_crossbow #Chu-ko-nu Archers
}
}
culture_has_heavy_infantry_maa = { culture_has_heavy_infantry_maa = {
OR = { OR = {
has_cultural_parameter = unlock_maa_ayyar has_cultural_parameter = unlock_maa_ayyar
@ -252,6 +266,10 @@ culture_has_heavy_infantry_maa = {
has_cultural_parameter = unlock_maa_huscarls has_cultural_parameter = unlock_maa_huscarls
has_cultural_parameter = unlock_maa_mountaineer has_cultural_parameter = unlock_maa_mountaineer
has_cultural_parameter = unlock_maa_zbrojnosh has_cultural_parameter = unlock_maa_zbrojnosh
has_cultural_parameter = unlock_infantry_samurai_units
has_cultural_parameter = unlock_zhanmadao
has_cultural_parameter = unlock_burenjia
has_innovation = innovation_sarawit #Sarawit - Later Era MAA has_innovation = innovation_sarawit #Sarawit - Later Era MAA
has_innovation = innovation_legionnaires #Praetorian has_innovation = innovation_legionnaires #Praetorian
has_cultural_parameter = unlock_maa_varangian_guards has_cultural_parameter = unlock_maa_varangian_guards
@ -261,6 +279,7 @@ culture_has_heavy_infantry_maa = {
culture_has_pikemen_maa = { #I.e. Spearmen culture_has_pikemen_maa = { #I.e. Spearmen
OR = { OR = {
has_cultural_parameter = unlock_maa_zupin_warrior has_cultural_parameter = unlock_maa_zupin_warrior
has_cultural_parameter = unlock_warrior_monk_units
has_innovation = innovation_rectilinear_schiltron #Schiltron - Later Era MAA has_innovation = innovation_rectilinear_schiltron #Schiltron - Later Era MAA
has_innovation = innovation_pike_columns #Picchieri - Later Era MAA has_innovation = innovation_pike_columns #Picchieri - Later Era MAA
has_innovation = innovation_zweihanders #Later Era MAA has_innovation = innovation_zweihanders #Later Era MAA
@ -296,6 +315,10 @@ culture_has_archer_cavalry_maa = {
OR = { OR = {
has_cultural_parameter = unlock_maa_horse_archers has_cultural_parameter = unlock_maa_horse_archers
has_cultural_parameter = unlock_maa_mangudai has_cultural_parameter = unlock_maa_mangudai
has_cultural_parameter = unlock_emishi_horse_archers_units
has_cultural_parameter = unlock_mounted_samurai_units
culture_head ?= { culture_head ?= {
mpo_can_recruit_nomad_maa_trigger = yes mpo_can_recruit_nomad_maa_trigger = yes
} }
@ -339,6 +362,8 @@ culture_specializes_in_heavy_infantry_maa = {
has_cultural_tradition = tradition_stand_and_fight has_cultural_tradition = tradition_stand_and_fight
has_cultural_tradition = tradition_mobile_guards has_cultural_tradition = tradition_mobile_guards
has_cultural_tradition = tradition_mountaineer_ruralism has_cultural_tradition = tradition_mountaineer_ruralism
has_cultural_tradition = tradition_tgp_art_of_war
has_cultural_tradition = tradition_tgp_bushido
culture_has_heavy_infantry_maa = yes culture_has_heavy_infantry_maa = yes
} }
} }
@ -351,6 +376,7 @@ culture_specializes_in_pikemen_maa = {
has_cultural_tradition = tradition_formation_fighting has_cultural_tradition = tradition_formation_fighting
has_cultural_tradition = tradition_stand_and_fight has_cultural_tradition = tradition_stand_and_fight
has_cultural_tradition = tradition_mobile_guards has_cultural_tradition = tradition_mobile_guards
has_cultural_tradition = tradition_tgp_warrior_monks
culture_has_pikemen_maa = yes culture_has_pikemen_maa = yes
} }
} }
@ -375,6 +401,7 @@ culture_specializes_in_heavy_cavalry_maa = {
has_cultural_tradition = tradition_mobile_guards has_cultural_tradition = tradition_mobile_guards
has_cultural_tradition = tradition_ep3_indomitable_azatani has_cultural_tradition = tradition_ep3_indomitable_azatani
has_cultural_tradition = tradition_mountaineer_ruralism has_cultural_tradition = tradition_mountaineer_ruralism
has_cultural_tradition = tradition_tgp_art_of_war
culture_has_heavy_cavalry_maa = yes culture_has_heavy_cavalry_maa = yes
} }
} }
@ -385,6 +412,8 @@ culture_specializes_in_archer_cavalry_maa = {
has_cultural_tradition = tradition_horse_breeder has_cultural_tradition = tradition_horse_breeder
has_cultural_tradition = tradition_mpo_iron_cavalry has_cultural_tradition = tradition_mpo_iron_cavalry
has_cultural_tradition = tradition_devoted_horsemanship has_cultural_tradition = tradition_devoted_horsemanship
has_cultural_tradition = tradition_tgp_bushido
has_cultural_tradition = tradition_tgp_defiant_ambushers
culture_has_archer_cavalry_maa = yes culture_has_archer_cavalry_maa = yes
} }
} }
@ -551,6 +580,30 @@ cultures_share_relevant_region_trigger = {
culture_overlaps_geographical_region = world_africa culture_overlaps_geographical_region = world_africa
} }
} }
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:culture = {
culture_overlaps_geographical_region = world_asia_china
}
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:culture = {
culture_overlaps_geographical_region = world_asia_korea
}
}
AND = {
culture_overlaps_geographical_region = world_asia_china
scope:culture = {
culture_overlaps_geographical_region = world_asia_southeast
}
}
AND = {
culture_overlaps_geographical_region = world_asia_japan
scope:culture = {
culture_overlaps_geographical_region = world_asia_japan
}
}
} }
} }

View file

@ -54,7 +54,10 @@ is_diarch_valid_trigger = {
## Viziers. ## Viziers.
trigger_if = { trigger_if = {
limit = { limit = {
liege = { has_diarchy_parameter = diarchy_is_vizierate } liege = {
has_diarchy_parameter = diarchy_is_vizierate
NOT = { government_has_flag = government_is_celestial }
}
} }
# Must match their liege's gender preference. # Must match their liege's gender preference.
diarch_matches_liege_faith_gender_preference_trigger = yes diarch_matches_liege_faith_gender_preference_trigger = yes
@ -91,11 +94,12 @@ is_diarch_valid_trigger = {
} }
## Else, we're an ordinary, gods-fearing root scope, so use that. ## Else, we're an ordinary, gods-fearing root scope, so use that.
trigger_else = { trigger_else = {
travel_would_cause_regency_trigger = { REALM_HOLDER = this.liege } travel_would_cause_regency_trigger = { REALM_HOLDER = liege }
} }
} }
} }
} }
tgp_is_ceremonial_liege_trigger = no
} }
# This is hooked up to the is_diarch_able rule, referenced by Code. # This is hooked up to the is_diarch_able rule, referenced by Code.
@ -124,7 +128,12 @@ is_diarch_able_trigger = {
# And *this* needs to be added to guest activity intents to keep diarchs from showing up to the same parties as their liege. # And *this* needs to be added to guest activity intents to keep diarchs from showing up to the same parties as their liege.
bannable_serving_diarch_trigger = { bannable_serving_diarch_trigger = {
liege?= { NOT = { is_landless_adventurer = yes } } liege ?= {
NOR = {
is_landless_adventurer = yes
has_diarchy_type = grand_secretariat
}
}
OR = { OR = {
# Diarchs with official responsibilities can't come out to play. # Diarchs with official responsibilities can't come out to play.
is_diarch = yes is_diarch = yes
@ -176,10 +185,10 @@ diarch_matches_liege_faith_gender_preference_trigger = {
# Setup Triggers # Setup Triggers
basic_eligible_for_diarchy_trigger = { basic_eligible_for_diarchy_trigger = {
is_landed_or_landless_administrative = yes
NOT = { government_has_flag = government_is_landless_adventurer } # Laamps don't use diarchs
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
NOT = { has_active_diarchy = yes } is_landed_or_landless_administrative = yes
has_active_diarchy = no
NOT = { government_has_flag = government_is_landless_adventurer } # Laamps don't use diarchs
} }
regency_for_personal_reasons_trigger = { regency_for_personal_reasons_trigger = {
@ -211,33 +220,38 @@ imprisonment_would_cause_regency_trigger = {
} }
travel_would_cause_regency_trigger = { travel_would_cause_regency_trigger = {
OR = { trigger_if = {
# Travelling one-way. limit = { exists = current_travel_plan }
AND = { OR = {
# Make sure that we _aren't_ going bilaterally. # Travelling one-way.
NOT = { current_travel_plan.final_destination_province = current_travel_plan.departure_location } AND = {
# Then check that we're actually going outside of the realm. exists = current_travel_plan
current_travel_plan.final_destination_province.county.holder = { # Make sure that we _aren't_ going bilaterally.
NOR = { NOT = { current_travel_plan.final_destination_province = current_travel_plan.departure_location }
any_liege_or_above = { this = $REALM_HOLDER$ } # Then check that we're actually going outside of the realm.
this = $REALM_HOLDER$ current_travel_plan.final_destination_province.county.holder ?= {
}
}
}
# Travelling in a circle.
AND = {
# Make sure that we _are_ going bilaterally.
current_travel_plan.final_destination_province = current_travel_plan.departure_location
# Check the next destination province instead.
## We put a break in to check if there _is_ a county because you might be travelling through the ocean.
current_travel_plan.next_destination_province.county ?= {
holder = {
NOR = { NOR = {
any_liege_or_above = { this = $REALM_HOLDER$ } any_liege_or_above = { this = $REALM_HOLDER$ }
this = $REALM_HOLDER$ this = $REALM_HOLDER$
} }
} }
} }
# Travelling in a circle.
AND = {
exists = current_travel_plan
# Make sure that we _are_ going bilaterally.
current_travel_plan.final_destination_province = current_travel_plan.departure_location
# Check the next destination province instead.
## We put a break in to check if there _is_ a county because you might be travelling through the ocean.
current_travel_plan.next_destination_province.county ?= {
holder = {
NOR = {
any_liege_or_above = { this = $REALM_HOLDER$ }
this = $REALM_HOLDER$
}
}
}
}
} }
} }
} }
@ -411,9 +425,9 @@ appointment_interactions_recipient_is_suitable_co_emperor_trigger = {
# Don't get the bonus just because we're promoting our courtiers in our realm. # Don't get the bonus just because we're promoting our courtiers in our realm.
trigger_if = { trigger_if = {
limit = { limit = {
NOT = { scope:target = scope:actor.primary_title } scope:target != scope:actor.primary_title
} }
NOT = { scope:target.holder = scope:actor } scope:target.holder != scope:actor
} }
} }
@ -421,8 +435,7 @@ may_appoint_co_emperors_trigger = {
highest_held_title_tier >= tier_empire highest_held_title_tier >= tier_empire
has_realm_law = acclamation_succession_law has_realm_law = acclamation_succession_law
OR = { OR = {
has_title = title:e_byzantium is_roman_emperor_trigger = yes
has_title = title:e_roman_empire
culture = { has_cultural_parameter = unlock_co_emperors } culture = { has_cultural_parameter = unlock_co_emperors }
} }
} }
@ -430,6 +443,10 @@ may_appoint_co_emperors_trigger = {
may_appoint_co_monarchs_trigger = { may_appoint_co_monarchs_trigger = {
highest_held_title_tier >= tier_kingdom highest_held_title_tier >= tier_kingdom
government_has_flag = may_elevate_co_monarch government_has_flag = may_elevate_co_monarch
NOR = {
has_realm_law = japanese_regency_succession_law
has_realm_law = meritocratic_regency_succession_law
}
} }
valid_junior_emperor_candidate_trigger = { valid_junior_emperor_candidate_trigger = {
@ -530,7 +547,7 @@ governor_can_be_called_as_ally_in_expedition_war_basic_trigger = {
scope:recipient = { scope:recipient = {
liege ?= scope:actor.liege liege ?= scope:actor.liege
# Must be a governor. # Must be a governor.
government_has_flag = government_is_administrative government_has_flag = government_is_special_administrative
} }
} }
@ -619,7 +636,7 @@ diarch_candidate_shares_relationship_with_lesser_consort_trigger = {
is_consort_of = scope:char_temp.liege is_consort_of = scope:char_temp.liege
OR = { OR = {
NOT = { exists = scope:char_temp.liege.primary_spouse } NOT = { exists = scope:char_temp.liege.primary_spouse }
NOT = { this = scope:char_temp.liege.primary_spouse } this != scope:char_temp.liege.primary_spouse
} }
} }
} }
@ -830,8 +847,6 @@ diarch_coup_attempt_grabbable_capital_and_duchies_trigger = {
################################################## ##################################################
# Mandates # Mandates
#TODO_CD_EP2; rig these up to the actual loyalty value.
diarch_loyalty_due_to_hook_trigger = { diarch_loyalty_due_to_hook_trigger = {
$LIEGE$ = { $LIEGE$ = {
OR = { OR = {

View file

@ -16,7 +16,7 @@ should_notify_player_about_neighboring_rulers_wars_trigger = {
} }
character_realm_neighbors_target_trigger = { TARGET_CHARACTER = $TARGET_CHARACTER$ } character_realm_neighbors_target_trigger = { TARGET_CHARACTER = $TARGET_CHARACTER$ }
OR = { OR = {
$TARGET_CHARACTER$ = { is_independent_ruler = yes } # Independent rulers are always relevant. $TARGET_CHARACTER$ = { top_liege = this } # Independent rulers are always relevant.
liege = $TARGET_CHARACTER$.liege # Rulers are also relevant if we have the same direct liege (We might be able to DoW them, or at least want to stay informed as to relative power level). liege = $TARGET_CHARACTER$.liege # Rulers are also relevant if we have the same direct liege (We might be able to DoW them, or at least want to stay informed as to relative power level).
top_liege = $TARGET_CHARACTER$.liege # Alternatively, if their direct liege is our top liege, we can still DoW them (If I am a Duke under a King under an Emperor, I might still want to DoW one of the Emperor's other King or Duke vassals.) top_liege = $TARGET_CHARACTER$.liege # Alternatively, if their direct liege is our top liege, we can still DoW them (If I am a Duke under a King under an Emperor, I might still want to DoW one of the Emperor's other King or Duke vassals.)
} }

View file

@ -6,8 +6,7 @@ is_house_head = { # For unevaluated triggers
exists = this exists = this
} }
save_temporary_scope_as = house_check save_temporary_scope_as = house_check
exists = house house ?= {
house = {
house_head = scope:house_check house_head = scope:house_check
} }
} }
@ -19,16 +18,14 @@ is_dynast = {
text = is_dynast text = is_dynast
subject = scope:dynast_check subject = scope:dynast_check
exists = dynasty dynasty ?= {
dynasty = {
dynast = scope:dynast_check dynast = scope:dynast_check
} }
} }
} }
can_start_new_legacy_track_trigger = { can_start_new_legacy_track_trigger = {
exists = dynasty dynasty ?= {
dynasty = {
OR = { OR = {
NOT = { has_dynasty_perk = blood_legacy_1 } NOT = { has_dynasty_perk = blood_legacy_1 }
has_dynasty_perk = blood_legacy_5 has_dynasty_perk = blood_legacy_5
@ -107,6 +104,26 @@ can_start_new_legacy_track_trigger = {
NOT = { has_dynasty_perk = ep3_administrative_legacy_1 } NOT = { has_dynasty_perk = ep3_administrative_legacy_1 }
has_dynasty_perk = ep3_administrative_legacy_5 has_dynasty_perk = ep3_administrative_legacy_5
} }
OR = {
NOT = { has_dlc_feature = khans_of_the_steppe }
NOT = { has_dynasty_perk = mpo_nomad_legacy_1 }
has_dynasty_perk = mpo_nomad_legacy_5
}
OR = {
NOT = { has_dlc_feature = all_under_heaven }
NOT = { has_dynasty_perk = tgp_chinese_legacy_1 }
has_dynasty_perk = tgp_chinese_legacy_5
}
OR = {
NOT = { has_dlc_feature = all_under_heaven }
NOT = { has_dynasty_perk = tgp_japan_legacy_1 }
has_dynasty_perk = tgp_japan_legacy_5
}
OR = {
NOT = { has_dlc_feature = all_under_heaven }
NOT = { has_dynasty_perk = tgp_sea_legacy_1 }
has_dynasty_perk = tgp_sea_legacy_5
}
} }
} }

View file

@ -16,62 +16,69 @@
} }
county_has_any_special_mine_building_trigger = { county_has_any_special_mine_building_trigger = {
OR = { has_building_with_flag = special_mine
# Rammelsberg Mines #OR = {
has_building_or_higher = rammelsberg_mines_01 # # Rammelsberg Mines
# Kutna_hora Mines # has_building_or_higher = rammelsberg_mines_01
has_building_or_higher = kutna_hora_mines_01 # # Kutna_hora Mines
# Kremnica Mines # has_building_or_higher = kutna_hora_mines_01
has_building_or_higher = kremnica_mines_01 # # Kremnica Mines
# Falun Mines # has_building_or_higher = kremnica_mines_01
has_building_or_higher = falun_mines_01 # # Falun Mines
# Schwaz Mines # has_building_or_higher = falun_mines_01
has_building_or_higher = schwaz_mines_01 # # Schwaz Mines
# Argentiera Mines # has_building_or_higher = schwaz_mines_01
has_building_or_higher = argentiera_mines_01 # # Argentiera Mines
# Kollur Mines # has_building_or_higher = argentiera_mines_01
has_building_or_higher = kollur_mines_01 # # Kollur Mines
# Siderokausia Mines # has_building_or_higher = kollur_mines_01
has_building_or_higher = siderokausia_mines_01 # # Siderokausia Mines
# Mali Mines # has_building_or_higher = siderokausia_mines_01
has_building_or_higher = mali_mines_01 # # Mali Mines
# Konasamudram Mines # has_building_or_higher = mali_mines_01
has_building_or_higher = konasamudram_mines_01 # # Konasamudram Mines
# Dean Mines # has_building_or_higher = konasamudram_mines_01
has_building_or_higher = dean_mines_01 # # Dean Mines
# Zawar Mines # has_building_or_higher = dean_mines_01
has_building_or_higher = zawar_mines_01 # # Phnom Dek Mines
# Takkeda Mines # has_building_or_higher = phnom_dek_mines_01
has_building_or_higher = takkeda_mines_01 # # Zawar Mines
# Khetri Mines # has_building_or_higher = zawar_mines_01
has_building_or_higher = khetri_mines_01 # # Takkeda Mines
# Taghaza Mines # has_building_or_higher = takkeda_mines_01
has_building_or_higher = taghaza_mines_01 # # Khetri Mines
# Ijil Mines # has_building_or_higher = khetri_mines_01
has_building_or_higher = ijil_mines_01 # # Taghaza Mines
# Turda Mines # has_building_or_higher = taghaza_mines_01
has_building_or_higher = turda_mines_01 # # Ijil Mines
# Phocaea Mines # has_building_or_higher = ijil_mines_01
has_building_or_higher = phocaea_mines_01 # # Turda Mines
# Pansjhir Mines # has_building_or_higher = turda_mines_01
has_building_or_higher = pansjhir_mines_01 # # Phocaea Mines
# Trepca Mines # has_building_or_higher = phocaea_mines_01
has_building_or_higher = trepca_mines_01 # # Pansjhir Mines
# Rudnik Mines # has_building_or_higher = pansjhir_mines_01
has_building_or_higher = rudnik_mines_01 # # Trepca Mines
# Cevennes Mines # has_building_or_higher = trepca_mines_01
has_building_or_higher = cevennes_mines_01 # # Rudnik Mines
# Allaq Mines # has_building_or_higher = rudnik_mines_01
has_building_or_higher = allaq_mines_01 # # Cevennes Mines
# Verespatak Mines # has_building_or_higher = cevennes_mines_01
has_building_or_higher = verespatak_mines_01 # # Allaq Mines
# Nishapur Mines # has_building_or_higher = allaq_mines_01
has_building_or_higher = nishapur_mines_01 # # Verespatak Mines
# Srebrenica Mines # has_building_or_higher = verespatak_mines_01
has_building_or_higher = srebrenica_mines_01 # # Nishapur Mines
# Ratnapura Mines # has_building_or_higher = nishapur_mines_01
has_building_or_higher = ratnapura_mines_01 # # Srebrenica Mines
} # has_building_or_higher = srebrenica_mines_01
# # Ratnapura Mines
# has_building_or_higher = ratnapura_mines_01
# # Sar i Sang Mines
# has_building_or_higher = sar_i_sang_mines_01
# # Mogok Valley Mines
# has_building_or_higher = mogok_mines_01
#}
} }
location_has_multi_story_buildings_trigger = { location_has_multi_story_buildings_trigger = {

View file

@ -90,126 +90,51 @@ has_education_rank_trigger = {
has_education_rank_1_trigger = { has_education_rank_1_trigger = {
OR = { OR = {
has_trait_rank = { has_trait = education_martial_1
trait = education_diplomacy has_trait = education_diplomacy_1
rank = 1 has_trait = education_stewardship_1
} has_trait = education_intrigue_1
has_trait_rank = { has_trait = education_learning_1
trait = education_martial
rank = 1
}
has_trait_rank = {
trait = education_stewardship
rank = 1
}
has_trait_rank = {
trait = education_intrigue
rank = 1
}
has_trait_rank = {
trait = education_learning
rank = 1
}
} }
} }
has_education_rank_2_trigger = { has_education_rank_2_trigger = {
OR = { OR = {
has_trait_rank = { has_trait = education_martial_2
trait = education_diplomacy has_trait = education_diplomacy_2
rank = 2 has_trait = education_stewardship_2
} has_trait = education_intrigue_2
has_trait_rank = { has_trait = education_learning_2
trait = education_martial
rank = 2
}
has_trait_rank = {
trait = education_stewardship
rank = 2
}
has_trait_rank = {
trait = education_intrigue
rank = 2
}
has_trait_rank = {
trait = education_learning
rank = 2
}
} }
} }
has_education_rank_3_trigger = { has_education_rank_3_trigger = {
OR = { OR = {
has_trait_rank = { has_trait = education_martial_3
trait = education_diplomacy has_trait = education_diplomacy_3
rank = 3 has_trait = education_stewardship_3
} has_trait = education_intrigue_3
has_trait_rank = { has_trait = education_learning_3
trait = education_martial
rank = 3
}
has_trait_rank = {
trait = education_stewardship
rank = 3
}
has_trait_rank = {
trait = education_intrigue
rank = 3
}
has_trait_rank = {
trait = education_learning
rank = 3
}
} }
} }
has_education_rank_4_trigger = { has_education_rank_4_trigger = {
OR = { OR = {
has_trait_rank = { has_trait = education_martial_4
trait = education_diplomacy has_trait = education_diplomacy_4
rank = 4 has_trait = education_stewardship_4
} has_trait = education_intrigue_4
has_trait_rank = { has_trait = education_learning_4
trait = education_martial
rank = 4
}
has_trait_rank = {
trait = education_stewardship
rank = 4
}
has_trait_rank = {
trait = education_intrigue
rank = 4
}
has_trait_rank = {
trait = education_learning
rank = 4
}
} }
} }
has_education_rank_5_trigger = { has_education_rank_5_trigger = {
OR = { OR = {
has_trait_rank = { has_trait = education_martial_5
trait = education_diplomacy has_trait = education_diplomacy_5
rank = 5 has_trait = education_stewardship_5
} has_trait = education_intrigue_5
has_trait_rank = { has_trait = education_learning_5
trait = education_martial
rank = 5
}
has_trait_rank = {
trait = education_stewardship
rank = 5
}
has_trait_rank = {
trait = education_intrigue
rank = 5
}
has_trait_rank = {
trait = education_learning
rank = 5
}
} }
} }
@ -389,17 +314,7 @@ had_learning_education_disaffinity_childhood_trait_trigger = {
} }
has_university_building_trigger = { has_university_building_trigger = {
OR = { has_building_with_flag = special_university
has_building_or_higher = generic_university
has_building_or_higher = al_azhar_university
has_building_or_higher = sankore_university
has_building_or_higher = siena_university
has_building_or_higher = nalanda_university
has_building_or_higher = house_of_wisdom_01
has_building_or_higher = al_qarawiyyin_university_01
has_building_or_higher = somapura_university_01
has_building_or_higher = cluny_abbey_01
}
} }
characters_have_same_education_group_trigger = { characters_have_same_education_group_trigger = {

View file

@ -38,9 +38,11 @@ has_unelectable_government_trigger = {
} }
this_is_martial_society_trigger = { this_is_martial_society_trigger = {
NOR = { faith = {
faith = { has_doctrine = tenet_pacifism } NOR = {
faith = { has_doctrine = tenet_dharmic_pacifism } has_doctrine = tenet_pacifism
has_doctrine = tenet_dharmic_pacifism
}
} }
OR = { OR = {
government_has_flag = government_is_clan government_has_flag = government_is_clan
@ -54,6 +56,9 @@ this_is_martial_society_trigger = {
has_doctrine_parameter = cheaper_holy_wars_active has_doctrine_parameter = cheaper_holy_wars_active
} }
} }
culture = {
has_cultural_tradition = tradition_tgp_bushido
}
} }
} }
@ -100,7 +105,7 @@ ere_elective_politician_titles_trigger = { #Used in Byzantine Elective to determ
} }
parent_for_elective_succession_trigger = { #This trigger is used to prevent grandchildren from being selectable when their parent is still available as a candidate. parent_for_elective_succession_trigger = { #This trigger is used to prevent grandchildren from being selectable when their parent is still available as a candidate.
NOT = { this = scope:holder } #Not the current ruler. this != scope:holder #Not the current ruler.
dynasty = scope:holder.dynasty dynasty = scope:holder.dynasty
is_child_of = scope:holder is_child_of = scope:holder
@ -119,14 +124,15 @@ parent_for_elective_succession_trigger = { #This trigger is used to prevent gran
OR = { #Candidate should not be a landless Courtier that is about to inherit a Theocracy or Republic OR = { #Candidate should not be a landless Courtier that is about to inherit a Theocracy or Republic
AND = { AND = {
is_ruler = yes is_available_quick = {
is_playable_character = yes ruler = yes
advanced_ruler = yes
}
has_unelectable_government_trigger = no has_unelectable_government_trigger = no
} }
NOT = { NOT = {
any_heir_title = { any_heir_title = {
exists = holder holder ?= {
holder = {
has_unelectable_government_trigger = yes has_unelectable_government_trigger = yes
} }
} }
@ -153,7 +159,7 @@ feudal_elective_potential_landed_candidate_trigger = {
any_liege_or_above = { any_liege_or_above = {
this = scope:holder this = scope:holder
} }
scope:holder = { is_independent_ruler = yes } scope:holder = { top_liege = this }
scope:holder = { scope:holder = {
exists = liege exists = liege
NOT = { NOT = {
@ -188,7 +194,7 @@ feudal_elective_potential_landless_claimant_candidate_trigger = {
this = scope:holder this = scope:holder
} }
is_ruler = no is_ruler = no
scope:holder = { is_independent_ruler = yes } scope:holder = { top_liege = this }
scope:holder = { scope:holder = {
exists = liege exists = liege
NOT = { NOT = {
@ -204,8 +210,7 @@ feudal_elective_potential_landless_claimant_candidate_trigger = {
} }
NOT = { #Landless characters should not be heirs to Theocracies/Republics. NOT = { #Landless characters should not be heirs to Theocracies/Republics.
any_heir_title = { any_heir_title = {
exists = holder holder ?= {
holder = {
has_unelectable_government_trigger = yes has_unelectable_government_trigger = yes
} }
} }
@ -231,7 +236,7 @@ feudal_elective_potential_landless_dynastic_candidate_trigger = {
this = scope:holder this = scope:holder
} }
is_ruler = no is_ruler = no
scope:holder = { is_independent_ruler = yes } scope:holder = { top_liege = this }
scope:holder = { scope:holder = {
exists = liege exists = liege
NOT = { NOT = {
@ -247,8 +252,7 @@ feudal_elective_potential_landless_dynastic_candidate_trigger = {
} }
NOT = { #Landless characters should not be heirs to Theocracies/Republics. NOT = { #Landless characters should not be heirs to Theocracies/Republics.
any_heir_title = { any_heir_title = {
exists = holder holder ?= {
holder = {
has_unelectable_government_trigger = yes has_unelectable_government_trigger = yes
} }
} }
@ -283,19 +287,13 @@ feudal_elective_potential_landless_dynastic_candidate_trigger = {
} }
# We don't want grandkids to show as candidates if their parent is eligable and still alive # We don't want grandkids to show as candidates if their parent is eligable and still alive
NOR = { NOR = {
AND = { mother ?= {
exists = mother is_alive = yes
mother = { parent_for_elective_succession_trigger = yes
is_alive = yes
parent_for_elective_succession_trigger = yes
}
} }
AND = { father ?= {
exists = father is_alive = yes
father = { parent_for_elective_succession_trigger = yes
is_alive = yes
parent_for_elective_succession_trigger = yes
}
} }
} }
} }
@ -303,17 +301,11 @@ feudal_elective_potential_landless_dynastic_candidate_trigger = {
trigger_else_if = { trigger_else_if = {
limit = { limit = {
OR = { OR = {
AND = { mother ?= {
exists = mother is_alive = yes
mother = {
is_alive = yes
}
} }
AND = { father ?= {
exists = father is_alive = yes
father = {
is_alive = yes
}
} }
} }
} }

View file

@ -10,6 +10,7 @@
############################ ############################
# General Faction Triggers # # General Faction Triggers #
############################ ############################
############################
immune_to_factions_trigger = { immune_to_factions_trigger = {
OR = { OR = {
# Genghis Khan is immune to factions # Genghis Khan is immune to factions
@ -50,6 +51,20 @@ common_character_validity_trigger = {
} }
} }
# You cannot start a faction against your bloc members
trigger_if = {
limit = {
government_is_japanese_trigger = yes
$FACTION_TARGET$ = { government_is_japanese_trigger = yes }
exists = house.house_confederation
exists = $FACTION_TARGET$.house.house_confederation
}
custom_tooltip = {
text = CONFEDERATION_BLOC_YOURS_HEADER # TODO Better tooltip
house.house_confederation != $FACTION_TARGET$.house.house_confederation
}
}
NOT = { has_relation_blood_brother = $FACTION_TARGET$ } NOT = { has_relation_blood_brother = $FACTION_TARGET$ }
} }
@ -78,6 +93,20 @@ common_can_character_join_trigger = {
text = character_has_faction_disabling_modifier text = character_has_faction_disabling_modifier
character_has_faction_disabling_modifier_trigger = yes character_has_faction_disabling_modifier_trigger = yes
} }
# You cannot join a faction against your bloc members
trigger_if = {
limit = {
government_is_japanese_trigger = yes
$FACTION_TARGET$ = { government_is_japanese_trigger = yes }
exists = house.house_confederation
exists = $FACTION_TARGET$.house.house_confederation
}
custom_tooltip = {
text = CONFEDERATION_BLOC_YOURS_HEADER # TODO Better tooltip
house.house_confederation != $FACTION_TARGET$.house.house_confederation
}
}
} }
common_can_character_create_trigger = { common_can_character_create_trigger = {
@ -85,6 +114,60 @@ common_can_character_create_trigger = {
common_character_validity_trigger = { common_character_validity_trigger = {
FACTION_TARGET = $FACTION_TARGET$ FACTION_TARGET = $FACTION_TARGET$
} }
trigger_if = {
limit = {
government_has_flag = government_has_house_blocs
$FACTION_TARGET$ = top_liege
is_confederation_member = yes
}
custom_tooltip = {
text = is_house_head_of_noble_family_tt
OR = {
joined_faction ?= {
any_faction_member = {
OR = {
this = root.house.house_confederation.leading_house.house_head
is_ai = no
}
}
}
AND = {
is_house_head = yes
any_held_title = { is_noble_family_title = yes }
}
AND = {
house.house_confederation.leading_house.house_head ?= {
tgp_is_ceremonial_liege_trigger = yes
}
joined_faction.faction_leader ?= {
is_leading_faction_type = restore_ceremonial_liege_faction
}
}
}
}
custom_tooltip = {
text = must_be_leading_house_of_bloc_trigger
OR = {
joined_faction ?= {
any_faction_member = {
OR = {
this = root.house.house_confederation.leading_house.house_head
is_ai = no
}
}
}
house.house_confederation.leading_house ?= house
AND = {
house.house_confederation.leading_house.house_head ?= {
tgp_is_ceremonial_liege_trigger = yes
}
joined_faction.faction_leader ?= {
is_leading_faction_type = restore_ceremonial_liege_faction
}
}
}
}
}
#### ####
# BLOCKERS # BLOCKERS
#### ####
@ -150,10 +233,124 @@ has_valid_faction_members_trigger = {
is_landless_adventurer = no is_landless_adventurer = no
is_forced_into_faction = no is_forced_into_faction = no
} }
any_faction_county_member = { any_faction_county_member = { }
count >= 1 }
}
}
}
############################
# Liberty Faction Triggers #
############################
has_valid_realm_laws_for_liberty_faction_trigger = {
trigger_if = {
limit = { $TARGET$ = { realm_law_use_imperial_bureaucracy = yes } }
custom_description = {
text = has_lowest_imperial_bureaucracy
subject = $TARGET$
$TARGET$ = {
OR = {
has_realm_law = imperial_bureaucracy_1
has_realm_law = imperial_bureaucracy_2
has_realm_law = imperial_bureaucracy_3
}
}
}
}
trigger_else_if = {
limit = { $TARGET$ = { government_has_flag = government_is_tribal } }
custom_description = {
text = has_lowest_tribal_authority
subject = $TARGET$
$TARGET$ = {
OR = {
has_realm_law = tribal_authority_1
has_realm_law = tribal_authority_2
has_realm_law = tribal_authority_3
}
}
}
}
trigger_else_if = {
limit = { $TARGET$ = { realm_law_use_celestial_bureaucracy = yes } }
custom_description = {
text = has_lowest_celestial_bureaucracy
subject = $TARGET$
$TARGET$ = {
OR = {
has_realm_law = celestial_bureaucracy_1
has_realm_law = celestial_bureaucracy_2
has_realm_law = celestial_bureaucracy_3
}
}
}
}
trigger_else_if = {
limit = { $TARGET$ = { realm_law_use_meritocratic_bureaucracy = yes } }
custom_description = {
text = has_lowest_meritocratic_bureaucracy
subject = $TARGET$
$TARGET$ = {
OR = {
has_realm_law = meritocratic_bureaucracy_1
has_realm_law = meritocratic_bureaucracy_2
has_realm_law = meritocratic_bureaucracy_3
}
}
}
}
trigger_else_if = {
limit = { $TARGET$ = { realm_law_use_japanese_bureaucracy = yes } }
custom_description = {
text = has_lowest_japanese_bureaucracy
subject = $TARGET$
$TARGET$ = {
OR = {
has_realm_law = japanese_bureaucracy_1
has_realm_law = japanese_bureaucracy_2
has_realm_law = japanese_bureaucracy_3
}
}
}
}
trigger_else = {
custom_description = {
text = has_lowest_crown_authority
subject = $TARGET$
$TARGET$ = {
OR = {
has_realm_law = crown_authority_1
has_realm_law = crown_authority_2
has_realm_law = crown_authority_3
} }
} }
} }
} }
} }
#############################
# Japanese Faction Triggers #
#############################
can_become_leader_of_faction_trigger = {
is_playable_character = yes
tgp_is_ceremonial_liege_trigger = no
trigger_if = {
limit = {
government_has_flag = government_has_house_blocs
}
OR = {
is_confederation_member = no
house.house_confederation.leading_house ?= house
AND = {
house.house_confederation.leading_house.house_head ?= {
tgp_is_ceremonial_liege_trigger = yes
}
joined_faction.faction_leader ?= {
is_leading_faction_type = restore_ceremonial_liege_faction
}
}
NOT = { exists = faction_leader }
}
}
}

View file

@ -77,49 +77,49 @@ is_sibling_in_law_of_root_trigger = {
is_cousin_in_law_of_root_trigger = { is_cousin_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_cousin_of = root is_cousin_of = root
NOT = { this = root } this != root
} }
} }
is_auntuncle_in_law_of_root_trigger = { is_auntuncle_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_uncle_or_aunt_of = root is_uncle_or_aunt_of = root
NOT = { this = root } this != root
} }
} }
is_grandmotherfather_in_law_of_root_trigger = { is_grandmotherfather_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_grandparent_of = root is_grandparent_of = root
NOT = { this = root } this != root
} }
} }
is_great_grandmotherfather_in_law_of_root_trigger = { is_great_grandmotherfather_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_great_grandparent_of = root is_great_grandparent_of = root
NOT = { this = root } this != root
} }
} }
is_granddaughterson_in_law_of_root_trigger = { is_granddaughterson_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_grandchild_of = root is_grandchild_of = root
NOT = { this = root } this != root
} }
} }
is_great_granddaughterson_in_law_of_root_trigger = { is_great_granddaughterson_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_great_grandchild_of = root is_great_grandchild_of = root
NOT = { this = root } this != root
} }
} }
is_nibling_in_law_of_root_trigger = { is_nibling_in_law_of_root_trigger = {
any_spouse = { any_spouse = {
is_nibling_of = root is_nibling_of = root
NOT = { this = root } this != root
} }
} }

View file

@ -21,25 +21,30 @@ is_murder_feast = {
} }
feast_default_participant_including_player_trigger = { feast_default_participant_including_player_trigger = {
is_ai = yes is_available_quick = {
NOT = { this = root } alive = yes
is_alive = yes imprisoned = no
is_imprisoned = no }
this != root
} }
feast_default_participant_trigger = { feast_default_participant_trigger = {
is_ai = yes is_available_quick = {
NOT = { this = root } ai = yes
is_alive = yes alive = yes
is_imprisoned = no imprisoned = no
}
this != root
} }
feast_default_adult_participant_trigger = { feast_default_adult_participant_trigger = {
is_ai = yes is_available_quick = {
NOT = { this = root } ai = yes
is_adult = yes adult = yes
is_alive = yes alive = yes
is_imprisoned = no imprisoned = no
}
this != root
} }
has_hosted_feast_opinion_targeting_character = { has_hosted_feast_opinion_targeting_character = {

View file

@ -11,6 +11,7 @@ province_has_vegetable_carrot_trigger = {
geographical_region = world_europe geographical_region = world_europe
geographical_region = world_steppe_west geographical_region = world_steppe_west
geographical_region = world_asia_minor geographical_region = world_asia_minor
geographical_region = world_asia_china
} }
} }
@ -31,17 +32,27 @@ province_has_vegetable_yams_trigger = {
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_asia_china
geographical_region = world_asia_southeast
geographical_region = world_asia_korea
} }
} }
province_has_vegetable_kokoro_trigger = { province_has_vegetable_kokoro_trigger = {
geographical_region = world_africa OR = {
geographical_region = world_africa
geographical_region = world_asia_southeast
}
} }
province_has_vegetable_ginger_trigger = { province_has_vegetable_ginger_trigger = {
OR = { OR = {
geographical_region = world_india geographical_region = world_india
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_asia_southeast
geographical_region = world_asia_china
geographical_region = world_asia_korea
geographical_region = world_asia_japan
} }
} }
@ -52,5 +63,44 @@ province_has_vegetable_taro_trigger = {
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_asia_southeast
geographical_region = world_asia_japan
} }
} }
province_has_vegetable_daikon_radish_trigger = {
OR = {
geographical_region = world_asia_china
geographical_region = world_asia_korea
geographical_region = world_asia_japan
}
}
province_has_vegetable_yam_bean_trigger = {
OR = {
geographical_region = world_asia_philippines
geographical_region = world_asia_borneo
}
}
province_has_vegetable_lotus_root_trigger = {
OR = {
geographical_region = world_asia_china
geographical_region = world_asia_korea
geographical_region = world_asia_japan
geographical_region = world_asia_southeast_mainland
}
}
province_has_vegetable_burdock_root_trigger = {
OR = {
geographical_region = world_asia_china
geographical_region = world_asia_korea
geographical_region = world_asia_japan
geographical_region = world_asia_north_east
}
}
province_has_vegetable_arrowroot_trigger = {
geographical_region = world_asia_southeast_islands
}

View file

@ -5,7 +5,7 @@
is_at_war = no is_at_war = no
highest_held_title_tier <= tier_kingdom highest_held_title_tier <= tier_kingdom
OR = { OR = {
is_independent_ruler = yes top_liege = this
NOT = { NOT = {
liege = { culture = culture:mogyer } liege = { culture = culture:mogyer }
} }
@ -25,7 +25,7 @@ hungarian_migration_valid_pannonian_target_trigger = {
} }
exclave_independence_trigger = { exclave_independence_trigger = {
is_independent_ruler = yes top_liege = this
NOT = { has_title = title:k_papal_state } NOT = { has_title = title:k_papal_state }
exists = root.capital_province exists = root.capital_province
any_sub_realm_title = { any_sub_realm_title = {
@ -42,7 +42,7 @@ exclave_independence_trigger = {
} }
primary_heir = { primary_heir = {
NOR = { NOR = {
is_independent_ruler = yes # Disallow this when the heir is independent, lest we risk breaking up realms that should be connected top_liege = this # Disallow this when the heir is independent, lest we risk breaking up realms that should be connected
is_ai = no # Players always inherit everything is_ai = no # Players always inherit everything
} }
} }

View file

@ -1233,4 +1233,40 @@ has_any_high_skill_rating = {
martial >= high_skill_rating martial >= high_skill_rating
stewardship >= high_skill_rating stewardship >= high_skill_rating
} }
} }
has_any_decent_skill_rating = {
OR = {
diplomacy >= decent_skill_rating
intrigue >= decent_skill_rating
prowess >= decent_skill_rating
learning >= decent_skill_rating
martial >= decent_skill_rating
stewardship >= decent_skill_rating
}
}
has_same_highest_skill = {
OR = {
AND = {
highest_skill = diplomacy
$CHARACTER$ = { highest_skill = diplomacy }
}
AND = {
highest_skill = martial
$CHARACTER$ = { highest_skill = martial }
}
AND = {
highest_skill = stewardship
$CHARACTER$ = { highest_skill = stewardship }
}
AND = {
highest_skill = intrigue
$CHARACTER$ = { highest_skill = intrigue }
}
AND = {
highest_skill = learning
$CHARACTER$ = { highest_skill = learning }
}
}
}

View file

@ -29,7 +29,7 @@ are_characters_sensible_lovers_trigger = {
$TARGET_OF_LOVE$ = { save_temporary_scope_as = target_of_love } $TARGET_OF_LOVE$ = { save_temporary_scope_as = target_of_love }
scope:instigating_character = { scope:instigating_character = {
NOT = { this = scope:target_of_love } this != scope:target_of_love
is_physically_able_adult = yes is_physically_able_adult = yes
might_cheat_on_every_partner_trigger = yes might_cheat_on_every_partner_trigger = yes
can_set_relation_lover_trigger = { CHARACTER = scope:target_of_love } can_set_relation_lover_trigger = { CHARACTER = scope:target_of_love }
@ -60,7 +60,7 @@ are_characters_sensible_lovers_trigger = {
} }
scope:target_of_love = { scope:target_of_love = {
NOT = { this = scope:instigating_character } this != scope:instigating_character
might_cheat_on_every_partner_trigger = yes might_cheat_on_every_partner_trigger = yes
can_set_relation_lover_trigger = { CHARACTER = scope:instigating_character } can_set_relation_lover_trigger = { CHARACTER = scope:instigating_character }
is_attracted_to_gender_of = scope:instigating_character is_attracted_to_gender_of = scope:instigating_character

View file

@ -471,7 +471,7 @@ struggle_conquest_cb_target_is_ocm_trigger = {
holder = { holder = {
any_held_title = { any_held_title = {
count = 1 count = 1
tier = tier_county title_tier = county
} }
NOT = { NOT = {
any_vassal = { highest_held_title_tier >= tier_county } any_vassal = { highest_held_title_tier >= tier_county }

View file

@ -57,7 +57,10 @@ faith_qualifies_for_west_african_pagan_feudalisation_trigger = {
should_use_temple_character_background_trigger = { should_use_temple_character_background_trigger = {
trigger_if = { trigger_if = {
limit = { is_landed = yes } limit = { is_landed = yes }
government_has_flag = government_is_theocracy OR = {
government_has_flag = government_is_theocracy
has_government = mandala_government
}
} }
trigger_else = { trigger_else = {
OR = { OR = {
@ -68,3 +71,26 @@ should_use_temple_character_background_trigger = {
} }
} }
} }
has_mandala_culture_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_austronesian
has_cultural_pillar = heritage_tai
has_cultural_pillar = heritage_mon_khmer
has_cultural_pillar = heritage_viet
has_cultural_pillar = heritage_indo_aryan
has_cultural_pillar = heritage_burman
}
}
}
has_mandala_faith_trigger = {
custom_description = {
text = "hof_interaction_unreformed_faith"
NOT = {
faith = { has_doctrine_parameter = unreformed }
}
}
faith = { has_doctrine = doctrine_polytheist }
}

View file

@ -114,10 +114,10 @@ ghw_pope_annoyed_at_lack_of_participation_trigger = {
} }
} }
OR = { #Either be independent, or all lieges above you MUST be of the same Faith declaring the war to avoid messy situations of vassals and lieges fighting against each other. OR = { #Either be independent, or all lieges above you MUST be of the same Faith declaring the war to avoid messy situations of vassals and lieges fighting against each other.
is_independent_ruler = yes top_liege = this
NOT = { NOT = {
any_liege_or_above = { any_liege_or_above = {
NOT = { faith = scope:the_faith } faith != scope:the_faith
} }
} }
} }
@ -126,7 +126,7 @@ ghw_pope_annoyed_at_lack_of_participation_tier_trigger = { #Either King/Emperor,
OR = { OR = {
highest_held_title_tier > 3 highest_held_title_tier > 3
AND = { AND = {
is_independent_ruler = yes top_liege = this
highest_held_title_tier >= tier_duchy highest_held_title_tier >= tier_duchy
is_landless_adventurer = no is_landless_adventurer = no
} }

View file

@ -37,6 +37,10 @@ has_bp3_dlc_trigger = {
has_dlc_feature = wandering_nobles has_dlc_feature = wandering_nobles
} }
has_ach_dlc_trigger = {
has_dlc_feature = coronations
}
################################################## ##################################################
# Flavour Pack Triggers # Flavour Pack Triggers
@ -84,6 +88,10 @@ has_ep3_dlc_trigger = {
has_dlc_feature = roads_to_power has_dlc_feature = roads_to_power
} }
has_tgp_dlc_trigger = {
has_dlc_feature = all_under_heaven
}
has_playable_adventurer_dlc_trigger = { has_playable_adventurer_dlc_trigger = {
has_dlc_feature = roads_to_power has_dlc_feature = roads_to_power
} }

View file

@ -66,8 +66,7 @@ hunt_animal_roe_trigger = {
geographical_region = world_europe geographical_region = world_europe
trigger_if = { trigger_if = {
limit = { limit = {
exists = empire empire ?= title:e_scandinavia
empire = title:e_scandinavia
} }
NOR = { NOR = {
terrain = taiga terrain = taiga
@ -80,6 +79,11 @@ hunt_animal_roe_trigger = {
geographical_region = world_india geographical_region = world_india
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_steppe_east
geographical_region = world_asia_china
geographical_region = world_asia_korea
geographical_region = world_asia_sakhalin_hokkaido
geographical_region = world_asia_north_east
} }
} }
@ -156,6 +160,8 @@ hunt_animal_hyena_trigger = {
geographical_region = world_africa geographical_region = world_africa
geographical_region = world_middle_east geographical_region = world_middle_east
geographical_region = world_india geographical_region = world_india
geographical_region = world_asia_china
geographical_region = world_asia_southeast_mainland
} }
} }
@ -167,6 +173,10 @@ hunt_animal_lynx_trigger = {
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_steppe_west geographical_region = world_steppe_west
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_asia_china
geographical_region = world_asia_korea
geographical_region = world_asia_sakhalin_hokkaido
geographical_region = world_asia_north_east
} }
} }
@ -189,6 +199,7 @@ hunt_animal_caracal_trigger = {
geographical_region = world_india_rajastan geographical_region = world_india_rajastan
geographical_region = world_africa geographical_region = world_africa
geographical_region = world_asia_minor geographical_region = world_asia_minor
geographical_region = world_asia_china
} }
OR = { OR = {
terrain = drylands terrain = drylands
@ -203,6 +214,8 @@ hunt_animal_crocodile_trigger = {
geographical_region = world_africa_north_east geographical_region = world_africa_north_east
geographical_region = world_africa_west geographical_region = world_africa_west
geographical_region = world_africa_east geographical_region = world_africa_east
geographical_region = world_asia_southeast_mainland
geographical_region = world_asia_southeast_islands
# Restrict our Mesopotamian crocs preemptively to _only_ floodplains. # Restrict our Mesopotamian crocs preemptively to _only_ floodplains.
AND = { AND = {
terrain = floodplains terrain = floodplains
@ -215,7 +228,7 @@ hunt_animal_crocodile_trigger = {
terrain = jungle terrain = jungle
AND = { AND = {
is_coastal = yes is_coastal = yes
# Nile crocodiles aren't ocean-dwellers. # Nile crocodiles aren't ocean-dwellers.
NOT = { geographical_region = world_africa_north_east } NOT = { geographical_region = world_africa_north_east }
} }
} }
@ -268,6 +281,13 @@ hunt_animal_tiger_trigger = {
geographical_region = world_india geographical_region = world_india
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
geographical_region = world_asia_korea
geographical_region = world_asia_china
geographical_region = world_asia_sakhalin_hokkaido
geographical_region = world_asia_southeast_mainland
geographical_region = world_asia_borneo
geographical_region = world_asia_sulawesi_maluku
geographical_region = world_asia_indonesia
} }
OR = { OR = {
terrain = jungle terrain = jungle
@ -292,7 +312,13 @@ hunt_animal_leopard_trigger = {
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_asia_minor geographical_region = world_asia_korea
geographical_region = world_asia_china
geographical_region = world_asia_sakhalin_hokkaido
geographical_region = world_asia_southeast_mainland
geographical_region = world_asia_borneo
geographical_region = world_asia_sulawesi_maluku
geographical_region = world_asia_indonesia
} }
NOR = { NOR = {
terrain = farmlands terrain = farmlands
@ -556,8 +582,7 @@ hunt_story_trigger = {
} }
activity_befriend_woo_trigger = { activity_befriend_woo_trigger = {
exists = intent_target intent_target ?= $CHARACTER$
intent_target = $CHARACTER$
OR = { OR = {
has_activity_intent = befriend_attendee_intent has_activity_intent = befriend_attendee_intent
has_activity_intent = woo_attendee_intent has_activity_intent = woo_attendee_intent
@ -632,7 +657,7 @@ hunt_murder_target_trigger = {
# Schemes # Schemes
scope:activity = { scope:activity = {
any_attending_character = { any_attending_character = {
NOT = { this = root } this != root
hunt_valid_accidental_murder_target_trigger = yes hunt_valid_accidental_murder_target_trigger = yes
OR = { OR = {
# Rival # Rival
@ -663,7 +688,7 @@ hunt_abduct_target_trigger = {
# Schemes # Schemes
scope:activity = { scope:activity = {
any_attending_character = { any_attending_character = {
NOT = { this = root } this != root
hunt_valid_accidental_murder_target_trigger = yes hunt_valid_accidental_murder_target_trigger = yes
OR = { OR = {
# Rival # Rival
@ -706,13 +731,12 @@ hunt_murder_scheme_target_trigger = {
hunt_murder_intent_target_trigger = { hunt_murder_intent_target_trigger = {
has_activity_intent = murder_attendee_intent has_activity_intent = murder_attendee_intent
exists = intent_target intent_target ?= { hunt_valid_accidental_murder_target_trigger = yes }
intent_target = { hunt_valid_accidental_murder_target_trigger = yes }
save_temporary_scope_as = murder_target_temp save_temporary_scope_as = murder_target_temp
} }
hunt_valid_murder_accomplice_trigger = { hunt_valid_murder_accomplice_trigger = {
NOT = { this = root } this != root
is_adult = yes is_adult = yes
is_participant_in_activity = scope:activity is_participant_in_activity = scope:activity
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host }
@ -762,16 +786,8 @@ hunt_potential_murder_risk_trigger = {
# Rival # Rival
has_relation_rival = root has_relation_rival = root
# Feud # Feud
AND = { house_has_feud_relation_with_trigger = { TARGET = root }
exists = house.house_head
NOT = { house = root.house }
house.house_head = {
any_owned_story = {
story_type = story_cycle_house_feud
var:house_feud_house = root.house
}
}
}
# Heir # Heir
AND = { AND = {
this = root.player_heir this = root.player_heir
@ -853,10 +869,8 @@ hunt_elective_accomplice_trigger = {
hunt_claimant_faction_trigger = { hunt_claimant_faction_trigger = {
faction_is_type = claimant_faction faction_is_type = claimant_faction
exists = special_character special_character ?= $MURDERER$
special_character = $MURDERER$ special_title ?= $TARGET$.primary_title
exists = special_title
special_title = $TARGET$.primary_title
} }
hunt_pertinent_friendly_trigger = { hunt_pertinent_friendly_trigger = {
@ -991,7 +1005,10 @@ hunt_legendary_animal_custom_loc_trigger = {
scope:story = { story_type = story_cycle_hunt_mystical_animal } scope:story = { story_type = story_cycle_hunt_mystical_animal }
} }
trigger_else_if = { trigger_else_if = {
limit = { exists = $ACTIVITY$ } limit = {
exists = $ACTIVITY$
$ACTIVITY$ != root
}
$ACTIVITY$ = { $ACTIVITY$ = {
has_activity_option = { category = special_type option = hunt_type_legendary } has_activity_option = { category = special_type option = hunt_type_legendary }
} }

View file

@ -13,7 +13,25 @@ has_graphical_mena_culture_group_trigger = {
} }
has_graphical_india_culture_group_trigger = { has_graphical_india_culture_group_trigger = {
has_building_gfx = indian_building_gfx OR = {
has_building_gfx = indian_building_gfx
has_building_gfx = southeast_asian_building_gfx
}
}
has_graphical_east_asia_culture_group_trigger = {
OR = {
has_building_gfx = chinese_building_gfx
has_building_gfx = japanese_building_gfx
}
}
has_graphical_east_asia_or_southeast_asia_group_trigger = {
OR = {
has_building_gfx = chinese_building_gfx
has_building_gfx = japanese_building_gfx
has_building_gfx = southeast_asian_building_gfx
}
} }
has_graphical_mediterranean_culture_group_trigger = { has_graphical_mediterranean_culture_group_trigger = {
@ -47,6 +65,13 @@ has_graphical_iranian_culture_group_trigger = {
has_building_gfx = iranian_building_gfx has_building_gfx = iranian_building_gfx
} }
has_graphical_chinese_culture_group_trigger = {
has_building_gfx = chinese_building_gfx
}
has_graphical_japanese_culture_group_trigger = {
has_building_gfx = japanese_building_gfx
}
graphical_wilderness_desert_trigger = { graphical_wilderness_desert_trigger = {
OR = { OR = {
@ -202,6 +227,58 @@ has_graphical_india_region_trigger = {
trigger_else = { always = yes } trigger_else = { always = yes }
} }
has_graphical_east_asia_region_trigger = {
trigger_if = {
limit = {
exists = capital_province
}
capital_province = {
OR = {
geographical_region = graphical_east_asia
geographical_region = world_steppe_east
}
}
}
trigger_else_if = {
limit = {
NOT = { exists = capital_province }
}
trigger_if = {
limit = { exists = host.capital_province }
host.capital_province = {
OR = {
geographical_region = graphical_east_asia
geographical_region = world_steppe_east
}
}
}
trigger_else_if = {
limit = {
exists = liege.capital_province
}
liege.capital_province = {
OR = {
geographical_region = graphical_east_asia
geographical_region = world_steppe_east
}
}
}
trigger_else_if = {
limit = {
exists = location.province_owner.capital_province
}
location.province_owner.capital_province = {
OR = {
geographical_region = graphical_east_asia
geographical_region = world_steppe_east
}
}
}
trigger_else = { always = yes }
}
trigger_else = { always = yes }
}
#has_mediterranean_culture_trigger = { #has_mediterranean_culture_trigger = {
has_graphical_mediterranean_region_trigger = { has_graphical_mediterranean_region_trigger = {
trigger_if = { trigger_if = {
@ -254,7 +331,6 @@ has_graphical_mena_region_trigger = {
geographical_region = graphical_mena geographical_region = graphical_mena
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
AND = { AND = {
prev = { prev = {
government_has_flag = government_is_clan government_has_flag = government_is_clan
@ -278,7 +354,6 @@ has_graphical_mena_region_trigger = {
geographical_region = graphical_mena geographical_region = graphical_mena
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
AND = { AND = {
province_owner = { province_owner = {
government_has_flag = government_is_clan government_has_flag = government_is_clan
@ -300,7 +375,6 @@ has_graphical_mena_region_trigger = {
geographical_region = graphical_mena geographical_region = graphical_mena
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
AND = { AND = {
province_owner = { province_owner = {
government_has_flag = government_is_clan government_has_flag = government_is_clan
@ -322,7 +396,6 @@ has_graphical_mena_region_trigger = {
geographical_region = graphical_mena geographical_region = graphical_mena
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
AND = { AND = {
province_owner = { province_owner = {
government_has_flag = government_is_clan government_has_flag = government_is_clan
@ -394,6 +467,7 @@ has_graphical_western_region_trigger = {
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_asia
} }
} }
} }
@ -412,6 +486,7 @@ has_graphical_western_region_trigger = {
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_asia
} }
} }
} }
@ -427,6 +502,7 @@ has_graphical_western_region_trigger = {
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_asia
} }
} }
} }
@ -442,6 +518,7 @@ has_graphical_western_region_trigger = {
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east geographical_region = world_steppe_east
geographical_region = world_asia
} }
} }
} }
@ -502,7 +579,6 @@ has_graphical_iran_region_trigger = {
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
} }
} }
} }
@ -517,7 +593,6 @@ has_graphical_iran_region_trigger = {
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
} }
} }
} }
@ -530,7 +605,6 @@ has_graphical_iran_region_trigger = {
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
} }
} }
} }
@ -543,7 +617,6 @@ has_graphical_iran_region_trigger = {
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
geographical_region = world_steppe_tarim geographical_region = world_steppe_tarim
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_steppe_east
} }
} }
} }
@ -554,7 +627,7 @@ has_graphical_iran_region_trigger = {
steppe_building_gfx_use_mena_trigger = { steppe_building_gfx_use_mena_trigger = {
AND = { AND = {
culture = { has_building_gfx = steppe_building_gfx } culture ?= { has_building_gfx = steppe_building_gfx }
OR = { OR = {
#western steppe should only be mena if you are clan #western steppe should only be mena if you are clan
NOR = { NOR = {
@ -564,6 +637,8 @@ steppe_building_gfx_use_mena_trigger = {
geographical_region = world_india geographical_region = world_india
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_asia
geographical_region = world_steppe_east
} }
AND = { AND = {
faith.religion = religion:islam_religion faith.religion = religion:islam_religion
@ -577,19 +652,20 @@ steppe_building_gfx_use_mena_trigger = {
} }
steppe_building_gfx_use_indian_trigger = { steppe_building_gfx_use_indian_trigger = {
AND = { AND = {
culture = { has_building_gfx = steppe_building_gfx } culture ?= { has_building_gfx = steppe_building_gfx }
OR = { OR = {
#western steppe should only be mena if you are clan #western steppe should only be mena if you are clan
geographical_region = world_india geographical_region = world_india
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_asia_southeast
} }
} }
} }
steppe_building_gfx_use_mediterranean_trigger = { steppe_building_gfx_use_mediterranean_trigger = {
AND = { AND = {
culture = { has_building_gfx = steppe_building_gfx } culture ?= { has_building_gfx = steppe_building_gfx }
OR = { OR = {
geographical_region = world_europe_south_east geographical_region = world_europe_south_east
geographical_region = world_europe_south_italy geographical_region = world_europe_south_italy
@ -601,11 +677,10 @@ steppe_building_gfx_use_mediterranean_trigger = {
steppe_building_gfx_use_iranian_trigger = { steppe_building_gfx_use_iranian_trigger = {
AND = { AND = {
OR = { OR = {
geographical_region = world_steppe_east
geographical_region = world_steppe_central geographical_region = world_steppe_central
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
} }
culture = { has_building_gfx = steppe_building_gfx } culture ?= { has_building_gfx = steppe_building_gfx }
} }
} }
steppe_building_gfx_use_western_trigger = { steppe_building_gfx_use_western_trigger = {
@ -614,6 +689,192 @@ steppe_building_gfx_use_western_trigger = {
geographical_region = world_europe_north geographical_region = world_europe_north
geographical_region = world_europe_west geographical_region = world_europe_west
} }
culture = { has_building_gfx = steppe_building_gfx } culture ?= { has_building_gfx = steppe_building_gfx }
} }
} }
steppe_building_gfx_use_east_asian_trigger = {
AND = {
culture ?= { has_building_gfx = steppe_building_gfx }
OR = {
geographical_region = world_asia
geographical_region = world_steppe_east
}
NOT = { geographical_region = world_asia_southeast }
}
}
steppe_building_gfx_use_japanese_trigger = {
AND = {
culture ?= { has_building_gfx = steppe_building_gfx }
geographical_region = world_asia_japan
}
}
steppe_building_gfx_use_southeast_asian_trigger = {
AND = {
culture ?= { has_building_gfx = steppe_building_gfx }
geographical_region = world_asia_southeast
}
}
high_tier_throne_room_trigger = {
OR = {
AND = {
tgp_is_ceremonial_regent_trigger = no # Not 'actual' ruler
primary_title ?= { tier >= tier_kingdom }
}
tgp_is_ceremonial_liege_trigger = yes
}
has_graphical_$REGION$_region_trigger = yes
}
high_tier_throne_room_spouse_trigger = {
OR = {
primary_spouse ?= {
high_tier_throne_room_trigger = { REGION = $REGION$ }
has_graphical_$REGION$_region_trigger = yes
}
AND = {
betrothed ?= {
high_tier_throne_room_trigger = { REGION = $REGION$ }
has_graphical_$REGION$_region_trigger = yes
}
}
AND = {
liege.diarch ?= this
liege ?= {
high_tier_throne_room_trigger = { REGION = $REGION$ }
has_graphical_$REGION$_region_trigger = yes
}
}
}
}
byzantine_governor_trigger = {
is_landed = yes
government_allows = administrative
liege ?= {
OR = {
is_roman_emperor_primary_title_trigger = yes
AND = {
culture = {
OR = {
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_caucasian
}
}
primary_title.tier >= tier_empire
}
}
}
}
byzantine_governor_close_family_trigger = {
location = prev.location
is_landed = yes
government_has_flag = government_is_special_administrative
exists = top_liege
top_liege = {
OR = {
is_roman_emperor_primary_title_trigger = yes
AND = {
culture = {
OR = {
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_caucasian
}
}
primary_title.tier >= tier_empire
}
}
}
}
east_asian_governor_trigger = {
is_landed = yes
government_allows = administrative
top_liege ?= {
OR = {
primary_title = title:h_china
primary_title.de_jure_liege = title:h_china
AND = {
culture_has_east_asian_heritage_pillar_trigger = yes
primary_title.tier >= tier_empire
}
}
}
}
east_asian_governor_close_family_trigger = {
location = prev.location
is_landed = yes
government_has_flag = government_is_special_administrative
top_liege ?= {
OR = {
primary_title = title:h_china
primary_title.de_jure_liege = title:h_china
AND = {
culture_has_east_asian_heritage_pillar_trigger = yes
primary_title.tier >= tier_empire
}
}
}
}
has_graphical_chinese_region_trigger = {
trigger_if = {
limit = { exists = capital_province }
capital_province = { geographical_region = world_asia_china }
}
trigger_else_if = {
limit = { exists = host.capital_province }
host.capital_province = { geographical_region = world_asia_china }
}
trigger_else_if = {
limit = { exists = liege.capital_province }
liege.capital_province = { geographical_region = world_asia_china }
}
trigger_else_if = {
limit = { exists = location.province_owner.capital_province }
location.province_owner.capital_province = { geographical_region = world_asia_china }
}
trigger_else = { always = yes }
}
has_graphical_japanese_region_trigger = {
trigger_if = {
limit = { exists = capital_province }
capital_province = { geographical_region = world_asia_japan }
}
trigger_else_if = {
limit = { exists = host.capital_province }
host.capital_province = { geographical_region = world_asia_japan }
}
trigger_else_if = {
limit = { exists = liege.capital_province }
liege.capital_province = { geographical_region = world_asia_japan }
}
trigger_else_if = {
limit = { exists = location.province_owner.capital_province }
location.province_owner.capital_province = { geographical_region = world_asia_japan }
}
trigger_else = { always = yes }
}
has_graphical_korean_region_trigger = {
trigger_if = {
limit = { exists = capital_province }
capital_province = { geographical_region = world_asia_korea }
}
trigger_else_if = {
limit = { exists = host.capital_province }
host.capital_province = { geographical_region = world_asia_korea }
}
trigger_else_if = {
limit = { exists = liege.capital_province }
liege.capital_province = { geographical_region = world_asia_korea }
}
trigger_else_if = {
limit = { exists = location.province_owner.capital_province }
location.province_owner.capital_province = { geographical_region = world_asia_korea }
}
trigger_else = { always = yes }
}

View file

@ -0,0 +1,18 @@
is_relevant_for_succession_notification = {
# no one cares about baronies
tier >= tier_county
# strange titles
is_nomad_title = no
is_noble_family_title = no
# title is inherited via merit pools (candidate lists)
holder ?= {
NOR = {
has_realm_law = celestial_appointment_succession_law
has_realm_law = celestial_military_appointment_succession_law
has_realm_law = meritocratic_appointment_succession_law
has_realm_law = meritocratic_military_appointment_succession_law
}
}
}

View file

@ -3,10 +3,7 @@
#If I am the child #If I am the child
this = scope:actor this = scope:actor
#The ward has actor as its liege #The ward has actor as its liege
AND = { employer ?= scope:actor
exists = employer
employer = scope:actor
}
#The guardian is actor #The guardian is actor
any_relation = { any_relation = {
type = guardian type = guardian
@ -21,12 +18,10 @@
} }
remove_guardian_interaction_available_ward_trigger = { remove_guardian_interaction_available_ward_trigger = {
is_busy_in_events_localised = yes
#is_imprisoned = no #is_imprisoned = no
} }
kick_from_court_validity_trigger = { kick_from_court_validity_trigger = {
is_busy_in_events_localised = yes
NOR = { NOR = {
is_spouse_of = scope:actor is_spouse_of = scope:actor
is_concubine_of = scope:actor is_concubine_of = scope:actor
@ -53,7 +48,7 @@ kick_from_court_validity_trigger = {
ask_for_pardon_available_trigger = { ask_for_pardon_available_trigger = {
$ACTOR$ = { $ACTOR$ = {
is_independent_ruler = no top_liege != this
any_liege_or_above = { any_liege_or_above = {
OR = { OR = {
has_imprisonment_reason = $ACTOR$ has_imprisonment_reason = $ACTOR$
@ -83,7 +78,6 @@ title_revocation_standard_valid_showing_failures_only_trigger = {
} }
} }
scope:recipient = { scope:recipient = {
is_busy_in_events_localised = yes
NOT = { has_strong_hook = scope:actor } NOT = { has_strong_hook = scope:actor }
} }
} }
@ -112,16 +106,15 @@ diarch_revocation_has_claim_check_trigger = {
object = scope:recipient object = scope:recipient
scope:actor = { scope:actor = {
any_claim = { any_claim = {
exists = holder holder ?= scope:recipient
holder = scope:recipient
} }
} }
} }
} }
title_revocation_is_admin_governor_trigger = { title_revocation_is_admin_governor_trigger = {
government_has_flag = government_is_administrative government_allows = administrative
is_independent_ruler = yes top_liege = this
save_temporary_scope_as = liege_temp save_temporary_scope_as = liege_temp
$VASSAL$ = { $VASSAL$ = {
is_landed_or_landless_administrative = yes is_landed_or_landless_administrative = yes
@ -166,9 +159,9 @@ vassal_revocation_is_tyrannical_trigger = {
NOR = { NOR = {
exists = scope:administrative_revocation exists = scope:administrative_revocation
AND = { AND = {
government_has_flag = government_is_administrative government_allows = administrative
$VASSAL$ = { $VASSAL$ = {
government_has_flag = government_is_administrative government_allows = administrative
} }
} }
has_revoke_title_reason = $VASSAL$ has_revoke_title_reason = $VASSAL$
@ -197,11 +190,6 @@ vassal_retraction_standard_valid_showing_failures_only_trigger = {
NOT = { NOT = {
scope:actor = { is_at_war_with = scope:recipient } scope:actor = { is_at_war_with = scope:recipient }
} }
scope:recipient = { is_busy_in_events_localised = yes }
trigger_if = {
limit = { exists = scope:secondary_recipient }
scope:secondary_recipient = { is_busy_in_events_localised = yes }
}
scope:recipient = { scope:recipient = {
NOT = { has_strong_hook = scope:actor } NOT = { has_strong_hook = scope:actor }
} }
@ -226,8 +214,7 @@ is_de_jure_vassal_of_liege_trigger = {
primary_title = { primary_title = {
OR = { OR = {
de_jure_liege = { de_jure_liege = {
exists = holder holder ?= scope:my_liege
holder = scope:my_liege
} }
trigger_if = { trigger_if = {
limit = { limit = {
@ -235,8 +222,7 @@ is_de_jure_vassal_of_liege_trigger = {
} }
de_jure_liege = { de_jure_liege = {
de_jure_liege = { de_jure_liege = {
exists = holder holder ?= scope:my_liege
holder = scope:my_liege
} }
} }
} }
@ -272,12 +258,11 @@ can_any_traveling_family_members_travel_trigger = {
is_child_of = scope:recipient.host is_child_of = scope:recipient.host
is_adult = no is_adult = no
} }
NOT = { dynasty = scope:recipient.host.dynasty } dynasty != scope:recipient.host.dynasty
} }
} }
imprison_neutral_is_valid_showing_failures_only_triggers_trigger = { imprison_neutral_is_valid_showing_failures_only_triggers_trigger = {
scope:recipient = { is_busy_in_events_localised = yes }
scope:actor.liege = { scope:actor.liege = {
trigger_if = { trigger_if = {
limit = { has_realm_law_flag = imprisonment_toggle_enable } limit = { has_realm_law_flag = imprisonment_toggle_enable }
@ -387,8 +372,7 @@ should_avoid_hostile_action_against_due_to_personal_relations_trigger = {
should_avoid_hostile_action_against_due_to_liege_relations_trigger = { should_avoid_hostile_action_against_due_to_liege_relations_trigger = {
$ACTOR$ = { $ACTOR$ = {
exists = liege liege ?= {
liege = {
OR = { OR = {
has_any_good_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ } has_any_good_relationship_with_character_trigger = { CHARACTER = $RECIPIENT$ }
is_allied_to = $RECIPIENT$ is_allied_to = $RECIPIENT$

View file

@ -136,14 +136,18 @@ disable_interaction_for_hasan_trigger = {
} }
laamp_request_likely_marriable_woman_trigger = { laamp_request_likely_marriable_woman_trigger = {
is_female = yes is_available_quick = {
is_adult = yes female = yes
adult = yes
}
can_marry_trigger = yes can_marry_trigger = yes
} }
laamp_request_likely_marriable_man_trigger = { laamp_request_likely_marriable_man_trigger = {
is_male = yes is_available_quick = {
is_adult = yes female = no
adult = yes
}
can_marry_trigger = yes can_marry_trigger = yes
} }
@ -151,14 +155,24 @@ laamp_request_likely_marriable_man_trigger = {
# Transition Triggers # Transition Triggers
is_valid_for_laampdom = { is_valid_for_laampdom = {
custom_tooltip = {
text = adventurer_not_nf_head_trigger_tt
NOT = {
any_held_title = { is_noble_family_title = yes }
}
}
save_temporary_scope_as = potential_laamp_temp save_temporary_scope_as = potential_laamp_temp
is_landless_ruler = no # Admin gov vassals should not become laamps trigger_if = {
limit = {
NAND = {
is_ai = no
government_allows = administrative
top_liege = this
is_landed = no
}
}
custom_tooltip = {
text = adventurer_not_nf_head_trigger_tt
NOT = {
any_held_title = { is_noble_family_title = yes }
}
}
is_landless_ruler = no # Admin gov vassals should not become laamps
}
trigger_if = { trigger_if = {
limit = { is_ai = yes } limit = { is_ai = yes }
trigger_if = { trigger_if = {
@ -231,20 +245,24 @@ ep3_laamp_interesting_enough_to_be_a_laamp_trigger = {
} }
playable_relative_trigger = { playable_relative_trigger = {
is_playable_character = yes is_available_quick = {
is_ai = yes ai = yes
advanced_ruler = yes
}
house = root.house house = root.house
} }
ep3_laamp_interesting_sibling_trigger = { ep3_laamp_interesting_sibling_trigger = {
is_ai = yes # Not already played is_available_quick = {
is_landed = no # Landless enough to venture forth ai = yes
landed = no
advanced_ruler = no
}
NOT = { NOT = {
any_consort = { any_consort = {
is_ruler = yes is_ruler = yes
} }
} }
is_playable_character = no # Not already playable
is_valid_for_laampdom = yes # Age, health, personality is_valid_for_laampdom = yes # Age, health, personality
ep3_laamp_interesting_enough_to_be_a_laamp_trigger = { COMPARISON = $COMPARISON$ } ep3_laamp_interesting_enough_to_be_a_laamp_trigger = { COMPARISON = $COMPARISON$ }
} }
@ -262,7 +280,7 @@ ep3_negotiate_settlement_valid_county_trigger = {
holder = scope:actor holder = scope:actor
trigger_if = { trigger_if = {
limit = { limit = {
scope:actor = { government_has_flag = government_is_administrative } scope:actor = { government_has_flag = government_is_special_administrative }
} }
holder = { target_is_liege_or_above = scope:actor } holder = { target_is_liege_or_above = scope:actor }
} }
@ -303,7 +321,7 @@ ep3_adventurer_landless_allowed_against_character_trigger = {
} }
# Scope:defender cannot be liege of attacker. # Scope:defender cannot be liege of attacker.
scope:defender = { scope:defender = {
NOT = { this = scope:attacker.liege } this != scope:attacker.liege
} }
} }
@ -319,9 +337,8 @@ ep3_adventurer_landless_should_invalidate_trigger = {
list = target_titles list = target_titles
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
tier = tier_county tier = tier_county
holder = { is_landless_type_title = no
target_is_same_character_or_above = scope:defender holder = { target_is_same_character_or_above = scope:defender }
}
} }
} }
} }
@ -449,7 +466,7 @@ valid_laamp_basic_accept_only_trigger = {
employer_has_treasury_to_offer_job_trigger = { employer_has_treasury_to_offer_job_trigger = {
trigger_if = { trigger_if = {
limit = { is_ai = no } limit = { is_ai = no }
scope:employer.gold >= 50 scope:employer.treasury_or_gold >= 50
} }
} }
@ -457,9 +474,11 @@ employer_has_treasury_to_offer_job_trigger = {
## So we don't penalise you if their circumstances change beyond your control, but _also_ so that there aren't local job listings going up in Middlesex for someone currently pilgrimaging in Jerusalem. ## So we don't penalise you if their circumstances change beyond your control, but _also_ so that there aren't local job listings going up in Middlesex for someone currently pilgrimaging in Jerusalem.
valid_laamp_sensible_start_trigger = { valid_laamp_sensible_start_trigger = {
scope:employer = { scope:employer = {
is_travelling = no is_available_quick = {
is_in_army = no travel = no
is_imprisoned = no in_army = no
imprisoned = no
}
} }
trigger_if = { trigger_if = {
limit = { limit = {
@ -726,7 +745,7 @@ valid_laamp_contract_foe_trigger = {
# Which means making sure that they're not located too far away from our contractor. # Which means making sure that they're not located too far away from our contractor.
"squared_distance(root.task_contract_taker.location)" <= squared_distance_large "squared_distance(root.task_contract_taker.location)" <= squared_distance_large
# And that they're not located in the exact same province, else travel logic'll break. # And that they're not located in the exact same province, else travel logic'll break.
NOT = { this = scope:employer_ref.location } this != scope:employer_ref.location
} }
} }
@ -788,7 +807,7 @@ can_access_reject_inheritance_decision_trigger = {
OR = { OR = {
has_trait = content has_trait = content
has_perk = carefree_perk has_perk = carefree_perk
is_landless_adventurer = yes has_government = landless_adventurer_government
} }
} }
@ -928,8 +947,6 @@ laamp_youth_cultural_tradition_trigger = {
} }
} }
NOT = { NOT = {
any_heir_title = { any_heir_title = { }
count >= 1
}
} }
} }

View file

@ -62,11 +62,7 @@ has_partition_succession_realm_law_trigger = {
} }
realm_law_use_crown_authority = { realm_law_use_crown_authority = {
# We separate this out into a different trigger for moddability purposes, per community request: this allows more diverse authority laws to be easily modded in without needing to override 00_realm_laws.txt, and thus for greater inter-mod compatibility. government_has_flag = government_uses_crown_authority
realm_law_use_tribal_authority = no
realm_law_use_camp_purpose = no
realm_law_use_imperial_bureaucracy = no
realm_law_use_nomadic_authority = no
} }
realm_law_use_tribal_authority = { realm_law_use_tribal_authority = {
@ -78,17 +74,48 @@ realm_law_use_camp_purpose = {
} }
realm_law_use_imperial_bureaucracy = { realm_law_use_imperial_bureaucracy = {
government_has_flag = government_is_administrative government_allows = administrative
NOR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_meritocratic
government_has_flag = government_is_steppe_admin
government_has_flag = government_is_japan_administrative
}
} }
realm_law_use_nomadic_authority = { realm_law_use_nomadic_authority = {
government_has_flag = government_is_nomadic government_has_flag = government_is_nomadic
} }
realm_law_use_celestial_bureaucracy = {
government_has_flag = government_is_celestial
}
realm_law_is_mandala = {
government_has_flag = government_is_mandala
}
realm_law_use_meritocratic_bureaucracy = {
OR = {
government_has_flag = government_is_meritocratic
government_has_flag = government_is_steppe_admin
}
}
realm_uses_treasury_laws_trigger = {
government_allows = treasury
}
realm_law_use_japanese_bureaucracy = {
government_is_japanese_trigger = yes
}
can_have_confederate_partition_succession_law_trigger = { can_have_confederate_partition_succession_law_trigger = {
OR = { OR = {
government_has_flag = government_is_feudal government_has_flag = government_is_feudal
government_has_flag = government_is_tribal government_has_flag = government_is_tribal
# TGP
government_has_flag = government_is_japan_feudal
} }
} }
@ -106,11 +133,14 @@ can_keep_partition_succession_law_trigger = {
has_title = title:e_ilkhanate has_title = title:e_ilkhanate
has_title = title:e_golden_horde has_title = title:e_golden_horde
has_title = title:e_chagatai has_title = title:e_chagatai
has_title = title:e_black_horde has_title = title:e_red_horde
has_title = title:e_white_horde has_title = title:e_white_horde
has_title = title:e_aarlud_khanate has_title = title:e_aarlud_khanate
has_title = title:e_togskol_khanate has_title = title:e_togskol_khanate
has_title = title:e_baruun_khanate has_title = title:e_baruun_khanate
has_title = title:e_great_yuan
has_title = title:e_blue_horde
has_title = title:e_omnod_dalai_khanate
} }
} }
NOT = { government_has_flag = government_is_clan } NOT = { government_has_flag = government_is_clan }
@ -122,9 +152,8 @@ can_have_partition_succession_law_trigger = {
} }
custom_description = { custom_description = {
text = succession_laws_must_have_organised_government_tooltip text = succession_laws_must_have_organised_government_tooltip
OR = { government_has_flag = government_is_feudal
government_has_flag = government_is_feudal
}
} }
} }
@ -142,11 +171,14 @@ can_keep_high_partition_succession_law_trigger = {
has_title = title:e_ilkhanate has_title = title:e_ilkhanate
has_title = title:e_golden_horde has_title = title:e_golden_horde
has_title = title:e_chagatai has_title = title:e_chagatai
has_title = title:e_black_horde has_title = title:e_red_horde
has_title = title:e_white_horde has_title = title:e_white_horde
has_title = title:e_aarlud_khanate has_title = title:e_aarlud_khanate
has_title = title:e_togskol_khanate has_title = title:e_togskol_khanate
has_title = title:e_baruun_khanate has_title = title:e_baruun_khanate
has_title = title:e_great_yuan
has_title = title:e_blue_horde
has_title = title:e_omnod_dalai_khanate
} }
} }
NOT = { government_has_flag = government_is_clan} NOT = { government_has_flag = government_is_clan}
@ -175,15 +207,27 @@ can_keep_single_heir_succession_law_trigger = {
} }
OR = { OR = {
can_have_single_heir_succession_law_trigger = yes can_have_single_heir_succession_law_trigger = yes
# Byzantine Empire # Byzantine Empire / Ceremonial Liege
historical_succession_access_single_heir_succession_law_trigger = yes historical_succession_access_single_heir_succession_law_trigger = yes
has_variable = purge_oath_previous_law # ACH Purge Pretenders Oath
} }
} }
} }
can_have_single_heir_succession_law_trigger = { can_have_single_heir_succession_law_trigger = {
culture = { OR = {
has_innovation = innovation_primogeniture culture = {
has_innovation = innovation_primogeniture
}
AND = { # Meritocratic/Celestial/Soryo
is_independent_ruler = yes
OR = {
government_allows = merit
government_has_flag = government_is_japan_feudal
}
}
# Ceremonial
tgp_has_ceremonial_liege_title_trigger = yes
} }
# Non-tribals only # Non-tribals only
trigger_if = { # We split the tooltip into two, to make sure we don't show admin unless you actually have it trigger_if = { # We split the tooltip into two, to make sure we don't show admin unless you actually have it
@ -195,7 +239,7 @@ can_have_single_heir_succession_law_trigger = {
OR = { OR = {
government_has_flag = government_is_feudal government_has_flag = government_is_feudal
government_has_flag = government_is_clan government_has_flag = government_is_clan
government_has_flag = government_is_administrative government_allows = administrative
} }
} }
} }
@ -210,9 +254,12 @@ can_have_single_heir_succession_law_trigger = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
government_has_flag = government_is_administrative government_allows = administrative
}
OR = {
is_independent_ruler = yes
exists = primary_title.var:ceremonial_title
} }
is_independent_ruler = yes
} }
} }
@ -243,7 +290,7 @@ can_have_single_heir_youngest_succession_law_trigger = {
OR = { OR = {
government_has_flag = government_is_feudal government_has_flag = government_is_feudal
government_has_flag = government_is_clan government_has_flag = government_is_clan
government_has_flag = government_is_administrative government_allows = administrative
} }
} }
} }
@ -258,7 +305,7 @@ can_have_single_heir_youngest_succession_law_trigger = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
government_has_flag = government_is_administrative government_allows = administrative
} }
is_independent_ruler = yes is_independent_ruler = yes
} }
@ -304,7 +351,7 @@ can_have_single_heir_dynasty_house_trigger = {
government_has_flag = government_is_clan government_has_flag = government_is_clan
} }
} }
NOT = { government_has_flag = government_is_administrative } NOT = { government_allows = administrative }
} }
can_have_bishop_theocratic_succession_law_trigger = { can_have_bishop_theocratic_succession_law_trigger = {
@ -371,8 +418,13 @@ can_pass_law_ca3_trigger = {
can_have_acclamation_succession_law_trigger = { can_have_acclamation_succession_law_trigger = {
has_ep3_dlc_trigger = yes has_ep3_dlc_trigger = yes
government_has_flag = government_is_administrative top_liege = this
is_independent_ruler = yes government_allows = administrative
NOR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_japan_administrative
government_has_flag = government_is_meritocratic
}
} }
can_keep_acclamation_succession_law_trigger = { can_keep_acclamation_succession_law_trigger = {
@ -383,7 +435,7 @@ can_keep_acclamation_succession_law_trigger = {
} }
OR = { OR = {
can_have_acclamation_succession_law_trigger = yes can_have_acclamation_succession_law_trigger = yes
has_title = title:e_britannia has_title = title:e_byzantium
} }
} }
} }
@ -394,7 +446,12 @@ can_change_acclamation_succession_law_trigger = {
can_have_appointment_succession_law_trigger = { can_have_appointment_succession_law_trigger = {
has_ep3_dlc_trigger = yes has_ep3_dlc_trigger = yes
government_has_flag = government_is_administrative government_allows = administrative
NOR = {
government_has_flag = government_is_celestial
government_has_flag = government_is_japan_administrative
government_has_flag = government_is_meritocratic
}
is_independent_ruler = no is_independent_ruler = no
} }

View file

@ -20,7 +20,7 @@ extortion_powerful_vassal_trigger = {
extortion_county_trigger = { extortion_county_trigger = {
tier = tier_county tier = tier_county
NOT = { this = root.capital_county } this != root.capital_county
county_control >= medium_county_control county_control >= medium_county_control
NOR = { NOR = {
has_county_modifier = county_extorted_modifier has_county_modifier = county_extorted_modifier
@ -70,18 +70,17 @@ can_challenge_rival_to_single_combat_trigger = {
has_perk = stalwart_leader_perk has_perk = stalwart_leader_perk
culture = { has_cultural_parameter = can_duel_rivals } culture = { has_cultural_parameter = can_duel_rivals }
government_has_flag = government_is_nomadic government_has_flag = government_is_nomadic
government_has_flag = government_is_japan_feudal
} }
} }
rival_single_combat_shown_and_not_invalid_trigger = { rival_single_combat_shown_and_not_invalid_trigger = {
# Scope:actor must be able to fight personally.
scope:actor = { can_start_single_combat_trigger = yes }
# Scope:actor cannot challenge someone they have a ceasefire against.
scope:actor = { scope:actor = {
# Scope:actor must be able to fight personally.
can_start_single_combat_trigger = yes
# Scope:actor cannot challenge someone they have a ceasefire against.
NOT = { has_truce = scope:recipient } NOT = { has_truce = scope:recipient }
} # Scope:actor *definitely* cannot challenge someone they're at war with.
# Scope:actor *definitely* cannot challenge someone they're at war with.
scope:actor = {
NOT = { is_at_war_with = scope:recipient } NOT = { is_at_war_with = scope:recipient }
} }
} }

View file

@ -12,8 +12,8 @@ launch_hungarian_migration_ducal_processing_trigger = {
#Doesn't hold a valid duchy-tier title in Pannonia. #Doesn't hold a valid duchy-tier title in Pannonia.
NOT = { NOT = {
any_held_title = { any_held_title = {
title_tier = duchy
title_capital_county.title_province = { geographical_region = custom_hungary } title_capital_county.title_province = { geographical_region = custom_hungary }
tier = tier_duchy
} }
} }
} }
@ -22,7 +22,7 @@ launch_hungarian_migration_count_processing_trigger = {
#Doesn't hold a valid county-tier title in Pannonia. #Doesn't hold a valid county-tier title in Pannonia.
NOT = { NOT = {
any_held_title = { any_held_title = {
tier = tier_county title_tier = county
title_province = { geographical_region = custom_hungary } title_province = { geographical_region = custom_hungary }
} }
} }
@ -36,7 +36,7 @@ launch_hungarian_migration_sub_vassal_liege_pairing_trigger = {
scope:receiving_vassal.liege = { scope:receiving_vassal.liege = {
any_held_title = { any_held_title = {
count >= 2 count >= 2
tier = tier_county title_tier = county
title_province = { geographical_region = custom_hungary } title_province = { geographical_region = custom_hungary }
} }
} }
@ -55,8 +55,7 @@ launch_hungarian_migration_county_is_within_custom_hungary_trigger = {
launch_hungarian_migration_misplaced_count_suitable_liege_trigger = { launch_hungarian_migration_misplaced_count_suitable_liege_trigger = {
launch_hungarian_migration_county_is_within_custom_hungary_trigger = yes launch_hungarian_migration_county_is_within_custom_hungary_trigger = yes
duchy = { duchy = {
exists = holder holder ?= {
holder = {
NOT = { this = $INVADER$ } NOT = { this = $INVADER$ }
liege = $INVADER$ liege = $INVADER$
} }
@ -102,7 +101,7 @@ negotiate_the_danelaw_basic_filter_trigger = {
} }
negotiate_the_danelaw_additional_filter_trigger = { negotiate_the_danelaw_additional_filter_trigger = {
# Independent only, please. # Independent only, please.
is_independent_ruler = yes top_liege = this
# Kings & Emperors are too high a rank to make concessions. # Kings & Emperors are too high a rank to make concessions.
highest_held_title_tier <= tier_duchy highest_held_title_tier <= tier_duchy
# Plus, a capital inside title:k_england. Not strictly necessary, but removes *so* many edge-cases. # Plus, a capital inside title:k_england. Not strictly necessary, but removes *so* many edge-cases.
@ -171,7 +170,7 @@ favour_the_countryside_basques_rationale_sinful_traits_trigger = {
favour_the_countryside_basques_rationale_virtuous_basque_pagan_traits_trigger = { favour_the_countryside_basques_rationale_virtuous_basque_pagan_traits_trigger = {
num_virtuous_traits = { num_virtuous_traits = {
value >= favour_the_countryside_basques_decision_basque_pagan_virtues_tally_value value >= favour_the_countryside_basques_decision_basque_pagan_virtues_tally_value
faith = faith:basque_pagan target = faith:basque_pagan
} }
} }

View file

@ -238,7 +238,6 @@ marriage_between_characters_unlocks_alliance_of_min_tier_trigger = {
is_close_family_of = scope:alliance_unlocker is_close_family_of = scope:alliance_unlocker
} }
} }
#todo shouldn't this use yields_alliance trigger
$THEIR_CHARACTER$ = { $THEIR_CHARACTER$ = {
OR = { OR = {
AND = { AND = {
@ -254,7 +253,12 @@ marriage_between_characters_unlocks_alliance_of_min_tier_trigger = {
} }
can_become_concubine_of_character_trigger = { can_become_concubine_of_character_trigger = {
is_hostage = no is_available_quick = {
adult = yes
ruler = no
advanced_ruler = no
hostage = no
}
trigger_if = { trigger_if = {
limit = { limit = {
NOT = { is_imprisoned_by = $CHARACTER$ } NOT = { is_imprisoned_by = $CHARACTER$ }
@ -275,14 +279,16 @@ can_become_concubine_of_character_trigger = {
is_concubine_of = $CHARACTER$ is_concubine_of = $CHARACTER$
has_character_flag = has_been_offered_as_concubine has_character_flag = has_been_offered_as_concubine
} }
is_ruler = no
is_playable_character = no
is_adult = yes
could_marry_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, recent divorce, allowed to marry, no illegal incest etc. could_marry_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, recent divorce, allowed to marry, no illegal incest etc.
} }
# Same as above, switching out could_marry_character_trigger for can_take_as_concubine_character_trigger, in order to better inform the player that they cannot take their ex-spouse as a concubine # Same as above, switching out could_marry_character_trigger for can_take_as_concubine_character_trigger, in order to better inform the player that they cannot take their ex-spouse as a concubine
can_become_concubine_of_character_valid_trigger = { can_become_concubine_of_character_valid_trigger = {
is_available_quick = {
adult = yes
ruler = no
advanced_ruler = no
}
trigger_if = { trigger_if = {
limit = { limit = {
NOT = { is_imprisoned_by = $CHARACTER$ } NOT = { is_imprisoned_by = $CHARACTER$ }
@ -290,6 +296,7 @@ can_become_concubine_of_character_valid_trigger = {
is_married = no is_married = no
is_betrothed = no is_betrothed = no
is_concubine = no is_concubine = no
is_diarch = no
number_of_concubines = 0 number_of_concubines = 0
} }
trigger_if = { trigger_if = {
@ -303,19 +310,24 @@ can_become_concubine_of_character_valid_trigger = {
is_concubine_of = $CHARACTER$ is_concubine_of = $CHARACTER$
has_character_flag = has_been_offered_as_concubine has_character_flag = has_been_offered_as_concubine
} }
is_ruler = no
is_playable_character = no
is_adult = yes
can_take_as_concubine_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, allowed to marry, no illegal incest etc. can_take_as_concubine_character_trigger = { CHARACTER = $CHARACTER$ } #Gender, allowed to marry, no illegal incest etc.
has_any_disease_trigger = no
has_easily_mocked_physical_attribute_trigger = no
} }
can_be_offered_as_concubine_to_character_trigger = { can_be_offered_as_concubine_to_character_trigger = {
is_available_quick = {
adult = yes
ruler = no
advanced_ruler = no
}
trigger_if = { trigger_if = {
limit = { limit = {
NOT = { is_imprisoned_by = $GIVER$ } NOT = { is_imprisoned_by = $GIVER$ }
} }
is_married = no is_married = no
is_betrothed = no is_betrothed = no
is_diarch = no
OR = { OR = {
is_concubine = no is_concubine = no
is_concubine_of = $GIVER$ is_concubine_of = $GIVER$
@ -336,9 +348,6 @@ can_be_offered_as_concubine_to_character_trigger = {
is_concubine_of = $CHARACTER$ is_concubine_of = $CHARACTER$
has_character_flag = has_been_offered_as_concubine has_character_flag = has_been_offered_as_concubine
} }
is_ruler = no
is_playable_character = no
is_adult = yes
NOT = { NOT = {
is_theocratic_lessee = yes is_theocratic_lessee = yes
} }
@ -362,8 +371,10 @@ ready_to_marry_betrothed_trigger = {
marriage_interaction_can_be_picked_trigger = { marriage_interaction_can_be_picked_trigger = {
can_marry_trigger = yes can_marry_trigger = yes
is_imprisoned = no is_available_quick = {
is_hostage = no hostage = no
imprisoned = no
}
} }
marriage_interaction_valid_target_trigger = { marriage_interaction_valid_target_trigger = {
@ -540,7 +551,6 @@ make_concubine_is_valid_trigger = {
} }
} }
} }
is_busy_in_events_localised = yes
OR = { OR = {
AND = { AND = {
is_imprisoned_by = scope:actor is_imprisoned_by = scope:actor
@ -569,13 +579,17 @@ marriage_interaction_non_loyal_diarchs_refuse_secondary_marriage_trigger = {
} }
wants_very_young_wife = { wants_very_young_wife = {
is_female = no is_available_quick = {
is_adult = no female = no
adult = no
}
} }
wants_young_wife = { wants_young_wife = {
is_female = no is_available_quick = {
is_adult = yes female = no
adult = yes
}
age < 30 age < 30
NOT = { NOT = {
any_child = { any_child = {
@ -610,3 +624,12 @@ is_ruler_or_close_family = {
} }
} }
} }
can_have_concubines_trigger = {
$CHAR$ = {
custom_tooltip = {
text = can_have_concubines_name_tt
allowed_more_concubines = yes
}
}
}

View file

@ -17,7 +17,7 @@ military_strength_greater_than_ratio_trigger = {
valid_for_maa_trigger = { valid_for_maa_trigger = {
OR = { OR = {
AND = { AND = {
is_landless_adventurer = yes has_government = landless_adventurer_government
has_perk = planned_cultivation_perk has_perk = planned_cultivation_perk
location.county.culture ?= { has_cultural_parameter = $PARAMETER$ } location.county.culture ?= { has_cultural_parameter = $PARAMETER$ }
} }

View file

@ -160,6 +160,10 @@ has_any_major_revenge_opinion_against_character_trigger = {
modifier = embezzled_opinion modifier = embezzled_opinion
target = $CHARACTER$ target = $CHARACTER$
} }
has_opinion_modifier = {
modifier = siphoned_treasury_crime
target = $CHARACTER$
}
has_opinion_modifier = { has_opinion_modifier = {
modifier = attempted_arrest_opinion modifier = attempted_arrest_opinion
target = $CHARACTER$ target = $CHARACTER$

View file

@ -66,6 +66,7 @@ has_trait_extroverted_trigger = {
has_trait = gregarious has_trait = gregarious
has_trait = curious has_trait = curious
has_trait = charming has_trait = charming
has_trait = lifestyle_reveler
} }
} }
@ -76,6 +77,7 @@ has_trait_introverted_trigger = {
has_trait = craven has_trait = craven
has_trait = shy has_trait = shy
has_trait = pensive has_trait = pensive
has_trait = reclusive
} }
} }

View file

@ -17,20 +17,20 @@ has_named_cat_or_dog_trigger = {
has_cat_trigger = { has_cat_trigger = {
any_owned_story = { any_owned_story = {
story_type = story_cycle_pet_cat type = story_cycle_pet_cat
} }
} }
has_named_cat_trigger = { has_named_cat_trigger = {
any_owned_story = { any_owned_story = {
story_type = story_cycle_pet_cat type = story_cycle_pet_cat
} }
exists = var:story_cycle_cat_name exists = var:story_cycle_cat_name
} }
has_dog_trigger = { has_dog_trigger = {
any_owned_story = { any_owned_story = {
story_type = story_cycle_pet_dog type = story_cycle_pet_dog
} }
} }
@ -65,7 +65,7 @@ has_named_eagle_trigger = {
has_named_dog_trigger = { has_named_dog_trigger = {
any_owned_story = { any_owned_story = {
story_type = story_cycle_pet_dog type = story_cycle_pet_dog
} }
exists = var:story_cycle_dog_name exists = var:story_cycle_dog_name
} }

View file

@ -1,7 +1,6 @@
 
is_on_a_pilgrimage_trigger = { is_on_a_pilgrimage_trigger = {
exists = involved_activity involved_activity ?= { has_activity_type = activity_pilgrimage }
involved_activity = { has_activity_type = activity_pilgrimage }
#No more pilgrimage events if you're on your way home :colbert: #No more pilgrimage events if you're on your way home :colbert:
exists = capital_province exists = capital_province
NOT = { NOT = {
@ -12,8 +11,7 @@ is_on_a_pilgrimage_trigger = {
} }
is_on_a_hajj_trigger = { is_on_a_hajj_trigger = {
exists = involved_activity involved_activity ?= {
involved_activity = {
has_activity_option = { has_activity_option = {
category = special_type category = special_type
option = pilgrimage_type_hajj option = pilgrimage_type_hajj

View file

@ -1,16 +1,18 @@
 
playdate_default_participant_trigger = { playdate_default_participant_trigger = {
is_ai = yes is_available_quick = {
NOT = { this = root } ai = yes
is_alive = yes alive = yes
is_imprisoned = no imprisoned = no
is_incapable = no incapable = no
}
this != root
} }
playdate_potential_guest_check_trigger = { playdate_potential_guest_check_trigger = {
NOT = { this = scope:activity.activity_host } this != scope:activity.activity_host
is_available_for_child_activity_trigger = yes is_available_for_child_activity_trigger = yes
NOT = { is_in_list = potential_guests } NOT = { is_in_list = potential_guests }
} }

View file

@ -12,8 +12,8 @@ can_set_relation_potential_friend_trigger = {
} }
can_set_relation_friend_trigger = { can_set_relation_friend_trigger = {
NOT = { this = $CHARACTER$ }
NOR = { NOR = {
this = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
@ -22,8 +22,8 @@ can_set_relation_friend_trigger = {
} }
can_set_relation_best_friend_trigger = { can_set_relation_best_friend_trigger = {
NOT = { this = $CHARACTER$ }
NOR = { NOR = {
this = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
has_relation_nemesis = $CHARACTER$ has_relation_nemesis = $CHARACTER$
@ -40,29 +40,31 @@ can_set_relation_potential_lover_trigger = {
can_set_relation_lover_trigger = { can_set_relation_lover_trigger = {
is_adult = yes is_adult = yes
NOT = { this = $CHARACTER$ } NOR = {
this = $CHARACTER$
has_relation_lover = $CHARACTER$
}
is_attracted_to_gender_of = $CHARACTER$ is_attracted_to_gender_of = $CHARACTER$
$CHARACTER$ = { $CHARACTER$ = {
is_adult = yes is_adult = yes
is_attracted_to_gender_of = prev is_attracted_to_gender_of = prev
} }
NOT = { has_relation_lover = $CHARACTER$ }
} }
can_set_relation_soulmate_trigger = { can_set_relation_soulmate_trigger = {
is_adult = yes is_adult = yes
NOT = { this = $CHARACTER$ }
is_attracted_to_gender_of = $CHARACTER$ is_attracted_to_gender_of = $CHARACTER$
$CHARACTER$ = {
is_adult = yes
is_attracted_to_gender_of = prev
}
NOR = { NOR = {
this = $CHARACTER$
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
has_relation_nemesis = $CHARACTER$ has_relation_nemesis = $CHARACTER$
} }
$CHARACTER$ = {
is_adult = yes
is_attracted_to_gender_of = prev
num_of_relation_soulmate = 0
}
num_of_relation_soulmate = 0 num_of_relation_soulmate = 0
$CHARACTER$ = { num_of_relation_soulmate = 0 }
} }
### RIVAL ### ### RIVAL ###
@ -72,8 +74,8 @@ can_set_relation_potential_rival_trigger = {
} }
can_set_relation_rival_if_adult_trigger = { can_set_relation_rival_if_adult_trigger = {
NOT = { this = $CHARACTER$ }
NOR = { NOR = {
this = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
@ -89,21 +91,23 @@ can_set_relation_rival_trigger = {
can_set_relation_nemesis_trigger = { can_set_relation_nemesis_trigger = {
is_adult = yes is_adult = yes
NOT = { this = $CHARACTER$ }
$CHARACTER$ = { is_adult = yes }
NOR = { NOR = {
this = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
} }
num_of_relation_nemesis = 0 num_of_relation_nemesis = 0
$CHARACTER$ = { num_of_relation_nemesis = 0 } $CHARACTER$ = {
is_adult = yes
num_of_relation_nemesis = 0
}
} }
can_set_relation_bully_trigger = { can_set_relation_bully_trigger = {
is_adult = no is_adult = no
NOT = { this = $CHARACTER$ }
$CHARACTER$ = { is_adult = no } $CHARACTER$ = { is_adult = no }
NOR = { NOR = {
this = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
has_relation_bully = $CHARACTER$ has_relation_bully = $CHARACTER$
@ -113,9 +117,9 @@ can_set_relation_bully_trigger = {
can_set_relation_victim_trigger = { can_set_relation_victim_trigger = {
is_adult = no is_adult = no
NOT = { this = $CHARACTER$ }
$CHARACTER$ = { is_adult = no } $CHARACTER$ = { is_adult = no }
NOR = { NOR = {
this = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
has_relation_bully = $CHARACTER$ has_relation_bully = $CHARACTER$
@ -148,8 +152,8 @@ can_set_relation_nemesis_even_if_teen_trigger = {
child_is_teen_trigger = yes child_is_teen_trigger = yes
} }
} }
NOT = { this = $CHARACTER$ }
NOR = { NOR = {
this = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_best_friend = $CHARACTER$ has_relation_best_friend = $CHARACTER$
} }
@ -343,6 +347,8 @@ has_any_mild_good_relationship_with_character_trigger = {
has_relation_potential_friend = $CHARACTER$ has_relation_potential_friend = $CHARACTER$
has_relation_guardian = $CHARACTER$ has_relation_guardian = $CHARACTER$
has_relation_ward = $CHARACTER$ has_relation_ward = $CHARACTER$
has_relation_elder = $CHARACTER$
has_relation_disciple = $CHARACTER$
} }
} }
@ -383,23 +389,12 @@ has_any_best_good_relationship_with_character_trigger = {
likes_character_trigger = { likes_character_trigger = {
OR = { OR = {
opinion = {
target = $CHARACTER$
value >= 25
}
has_relation_lover = $CHARACTER$ has_relation_lover = $CHARACTER$
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_crush = $CHARACTER$ has_relation_crush = $CHARACTER$
AND = { has_relation_potential_friend = $CHARACTER$
OR = { has_relation_elder = $CHARACTER$
has_relation_potential_friend = $CHARACTER$ has_relation_disciple = $CHARACTER$
has_relation_guardian = $CHARACTER$
}
opinion = {
target = $CHARACTER$
value >= 0
}
}
AND = { AND = {
has_trait = loyal has_trait = loyal
OR = { OR = {
@ -408,6 +403,10 @@ likes_character_trigger = {
is_close_or_extended_family_of = $CHARACTER$ is_close_or_extended_family_of = $CHARACTER$
} }
} }
opinion = {
target = $CHARACTER$
value >= 25
}
} }
NOR = { NOR = {
has_relation_victim = $CHARACTER$ has_relation_victim = $CHARACTER$
@ -418,6 +417,40 @@ likes_character_trigger = {
} }
} }
dislikes_character_trigger = {
OR = {
opinion = {
target = $CHARACTER$
value <= 25
}
has_relation_grudge = $CHARACTER$
has_relation_victim = $CHARACTER$
has_relation_bully = $CHARACTER$
has_relation_rival = $CHARACTER$
AND = {
has_relation_potential_rival = $CHARACTER$
opinion = {
target = $CHARACTER$
value <= 0
}
}
AND = {
has_trait = disloyal
OR = {
liege ?= $CHARACTER$
is_consort_of = $CHARACTER$
is_close_or_extended_family_of = $CHARACTER$
}
}
}
NOR = {
has_relation_lover = $CHARACTER$
has_relation_friend = $CHARACTER$
has_relation_crush = $CHARACTER$
}
}
has_any_good_relationship_with_character_trigger = { has_any_good_relationship_with_character_trigger = {
OR = { OR = {
has_any_mild_good_relationship_with_character_trigger = { CHARACTER = $CHARACTER$ } has_any_mild_good_relationship_with_character_trigger = { CHARACTER = $CHARACTER$ }
@ -473,7 +506,7 @@ has_any_bad_relationship_with_root_trigger = {
lover_is_secret_trigger = { lover_is_secret_trigger = {
any_secret = { any_secret = {
secret_type = secret_lover type = secret_lover
secret_target = $CHARACTER$ secret_target = $CHARACTER$
} }
} }
@ -515,6 +548,8 @@ has_any_relation_trigger = {
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_guardian = $CHARACTER$ has_relation_guardian = $CHARACTER$
has_relation_ward = $CHARACTER$ has_relation_ward = $CHARACTER$
has_relation_elder = $CHARACTER$
has_relation_disciple = $CHARACTER$
AND = { AND = {
has_employed_any_court_position = yes has_employed_any_court_position = yes
@ -553,7 +588,7 @@ is_of_major_interest_trigger = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
is_independent_ruler = yes top_liege = this
} }
any_neighboring_top_liege_realm_owner = { any_neighboring_top_liege_realm_owner = {
this = $CHARACTER$ this = $CHARACTER$
@ -587,6 +622,8 @@ is_of_minor_interest_trigger = {
has_relation_friend = $CHARACTER$ has_relation_friend = $CHARACTER$
has_relation_guardian = $CHARACTER$ has_relation_guardian = $CHARACTER$
has_relation_ward = $CHARACTER$ has_relation_ward = $CHARACTER$
has_relation_elder = $CHARACTER$
has_relation_disciple = $CHARACTER$
AND = { AND = {
$CHARACTER$ = { target_is_liege_or_above = prev } $CHARACTER$ = { target_is_liege_or_above = prev }
NOT = { this = $CHARACTER$.liege } NOT = { this = $CHARACTER$.liege }
@ -620,8 +657,7 @@ has_no_real_status_trigger = {
OR = { OR = {
is_lowborn = yes is_lowborn = yes
AND = { AND = {
exists = dynasty dynasty ?= {
dynasty = {
any_dynasty_member = { any_dynasty_member = {
count <= 2 count <= 2
} }
@ -645,12 +681,9 @@ has_no_particular_noble_roots_trigger = {
text = has_no_particular_noble_roots_trigger text = has_no_particular_noble_roots_trigger
OR = { OR = {
is_lowborn = yes is_lowborn = yes
AND = { dynasty ?= {
exists = dynasty any_dynasty_member = {
dynasty = { count <= 2
any_dynasty_member = {
count <= 2
}
} }
} }
highest_held_title_tier <= tier_barony highest_held_title_tier <= tier_barony
@ -844,8 +877,7 @@ minor_interest_close_relatives_trigger = {
#Support trigger #Support trigger
minor_interest_betrothed_trigger = { minor_interest_betrothed_trigger = {
exists = betrothed betrothed ?= { NOT = { is_in_list = $LISTNAME$ } }
betrothed = { NOT = { is_in_list = $LISTNAME$ } }
} }
#Support trigger #Support trigger
@ -1005,7 +1037,7 @@ get_potential_enemies_effect = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
is_independent_ruler = no top_liege != this
} }
liege = { liege = {
add_to_temporary_list = temp_$LISTNAME$ add_to_temporary_list = temp_$LISTNAME$
@ -1013,7 +1045,7 @@ get_potential_enemies_effect = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
is_independent_ruler = yes top_liege = this
any_neighboring_top_liege_realm_owner = { any_neighboring_top_liege_realm_owner = {
always = yes always = yes
} }
@ -1045,7 +1077,7 @@ get_potential_enemies_effect = {
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
#Lieges #Lieges
AND = { AND = {
$CHARACTER$ = { is_independent_ruler = no } $CHARACTER$ = { top_liege != this }
this = $CHARACTER$.liege this = $CHARACTER$.liege
opinion = { opinion = {
target = $CHARACTER$ target = $CHARACTER$
@ -1095,8 +1127,7 @@ has_RelationToMe_relation = {
is_concubine = yes is_concubine = yes
} }
$CHARACTER$ = { $CHARACTER$ = {
exists = player_heir player_heir ?= scope:relation_check
player_heir = scope:relation_check
} }
is_heir_of = $CHARACTER$ is_heir_of = $CHARACTER$
has_relation_rival = $CHARACTER$ has_relation_rival = $CHARACTER$
@ -1108,15 +1139,13 @@ has_RelationToMe_relation = {
any_spouse = { any_child = { this = $CHARACTER$ } } any_spouse = { any_child = { this = $CHARACTER$ } }
any_parent = { any_spouse = { this = $CHARACTER$ } } any_parent = { any_spouse = { this = $CHARACTER$ } }
any_parent = { any_spouse = { any_child = { this = $CHARACTER$ } } } any_parent = { any_spouse = { any_child = { this = $CHARACTER$ } } }
AND = { liege ?= $CHARACTER$
exists = liege this = { is_tributary_of = $CHARACTER$ }
liege = $CHARACTER$
}
any_courtier = { this = $CHARACTER$ } any_courtier = { this = $CHARACTER$ }
any_vassal_or_below = { this = $CHARACTER$ } any_vassal_or_below = { this = $CHARACTER$ }
AND = { AND = {
is_independent_ruler = no top_liege != this
$CHARACTER$ = { is_independent_ruler = no } $CHARACTER$ = { top_liege != this }
liege = $CHARACTER$.liege liege = $CHARACTER$.liege
} }
has_relation_crush = $CHARACTER$ has_relation_crush = $CHARACTER$
@ -1124,6 +1153,8 @@ has_RelationToMe_relation = {
has_relation_guardian = $CHARACTER$ has_relation_guardian = $CHARACTER$
has_relation_mentor = $CHARACTER$ has_relation_mentor = $CHARACTER$
has_relation_student = $CHARACTER$ has_relation_student = $CHARACTER$
has_relation_elder = $CHARACTER$
has_relation_disciple = $CHARACTER$
AND = { AND = {
has_employed_any_court_position = yes has_employed_any_court_position = yes
any_court_position_holder = { any_court_position_holder = {
@ -1138,7 +1169,7 @@ has_RelationToMe_relation = {
} }
$CHARACTER$ = { $CHARACTER$ = {
any_owned_story = { any_owned_story = {
story_type = story_peasant_affair type = story_peasant_affair
var:peasant_character = { var:peasant_character = {
this = root this = root
} }
@ -1148,8 +1179,7 @@ has_RelationToMe_relation = {
is_courtier_of = scope:relation_check is_courtier_of = scope:relation_check
OR = { OR = {
AND = { AND = {
exists = inspiration inspiration ?= {
inspiration = {
inspiration_sponsor = { this = scope:relation_check } inspiration_sponsor = { this = scope:relation_check }
} }
} }
@ -1166,13 +1196,9 @@ has_RelationToMe_relation = {
} }
is_imprisoned_by = $CHARACTER$ is_imprisoned_by = $CHARACTER$
$CHARACTER$ = { is_imprisoned_by = scope:relation_check } $CHARACTER$ = { is_imprisoned_by = scope:relation_check }
AND = { host ?= $CHARACTER$
exists = host
host = $CHARACTER$
}
$CHARACTER$ = { $CHARACTER$ = {
exists = host host ?= scope:relation_check
host = scope:relation_check
} }
is_knight_of = $CHARACTER$ is_knight_of = $CHARACTER$
AND = { AND = {

View file

@ -57,9 +57,7 @@ has_strong_religious_conviction_trigger = {
} }
is_christian_trigger = { is_christian_trigger = {
OR = { faith = { religion_tag = christianity_religion }
faith = { religion_tag = christianity_religion }
}
} }
# Not-non-XYZ triggers allow us to check for specific historical faiths whilst still defaulting to something positive for variant faiths. # Not-non-XYZ triggers allow us to check for specific historical faiths whilst still defaulting to something positive for variant faiths.
@ -120,10 +118,7 @@ can_be_combatant_based_on_gender_trigger = {
# Priests only fight if faith has war priests # Priests only fight if faith has war priests
trigger_if = { trigger_if = {
limit = { limit = {
OR = { is_clergy = yes
has_trait = devoted
is_clergy = yes
}
} }
OR = { OR = {
faith = { has_doctrine_parameter = clergy_can_fight } faith = { has_doctrine_parameter = clergy_can_fight }
@ -141,38 +136,39 @@ can_be_combatant_based_on_gender_trigger = {
limit = { limit = {
has_dlc_feature = diverge_culture # Can modify pillars has_dlc_feature = diverge_culture # Can modify pillars
} }
OR = { trigger_if = {
$ARMY_OWNER$ = { culture = { has_cultural_parameter = martial_custom_equal_combatant } } limit = {
AND = { $ARMY_OWNER$.culture = { has_cultural_parameter = martial_custom_male_only_combatant }
$ARMY_OWNER$ = { culture = { has_cultural_parameter = martial_custom_male_only_combatant } }
is_male = yes
}
AND = {
$ARMY_OWNER$ = { culture = { has_cultural_parameter = martial_custom_female_only_combatant } }
is_female = yes
} }
is_male = yes
} }
trigger_else_if = {
limit = {
$ARMY_OWNER$.culture = { has_cultural_parameter = martial_custom_female_only_combatant }
}
is_female = yes
}
trigger_else = {}
} }
trigger_else = { # Does not have the Royal Court and thus combatant is governed by faith trigger_else = { # Does not have the Royal Court and thus combatant is governed by faith
OR = { OR = {
$ARMY_OWNER$ = { faith = { has_doctrine_parameter = combatant_can_be_either_gender_if_no_roco } } $ARMY_OWNER$.faith = { has_doctrine_parameter = combatant_can_be_either_gender_if_no_roco }
AND = { AND = {
$ARMY_OWNER$ = { faith = { has_doctrine_parameter = combatant_must_be_male_if_no_roco } } $ARMY_OWNER$.faith = { has_doctrine_parameter = combatant_must_be_male_if_no_roco }
is_male = yes is_male = yes
} }
AND = { AND = {
$ARMY_OWNER$ = { faith = { has_doctrine_parameter = combatant_must_be_female_if_no_roco } } $ARMY_OWNER$.faith = { has_doctrine_parameter = combatant_must_be_female_if_no_roco }
is_female = yes is_female = yes
} }
} }
} }
AND = { AND = {
# No need to gender diversify this: if they're a right-gender shieldperson of the culture, then they've already got permission to fight from the previous AND conditions.
has_trait = shieldmaiden
$ARMY_OWNER$ = { $ARMY_OWNER$ = {
culture = { has_cultural_parameter = has_access_to_shieldmaidens } culture = { has_cultural_parameter = has_access_to_shieldmaidens }
} }
# No need to gender diversify this: if they're a right-gender shieldperson of the culture, then they've already got permission to fight from the previous AND conditions.
has_trait = shieldmaiden
} }
# Event-based special exceptions # Event-based special exceptions
OR = { OR = {
@ -180,18 +176,16 @@ can_be_combatant_based_on_gender_trigger = {
has_character_modifier = mpo_destined_leader_modifier has_character_modifier = mpo_destined_leader_modifier
} }
AND = { AND = {
$ARMY_OWNER$ = { culture = { has_cultural_parameter = high_prowess_ignores_knight_restrictions } }
NOT = { $ARMY_OWNER$ = { culture = { has_cultural_parameter = minimum_prowess_for_knights } } }
prowess >= 10 prowess >= 10
$ARMY_OWNER$.culture = { has_cultural_parameter = high_prowess_ignores_knight_restrictions }
NOT = { $ARMY_OWNER$.culture = { has_cultural_parameter = minimum_prowess_for_knights } }
} }
AND = { AND = {
$ARMY_OWNER$ = {
culture = {
has_cultural_parameter = high_prowess_ignores_knight_restrictions
has_cultural_parameter = minimum_prowess_for_knights
}
}
prowess >= 12 prowess >= 12
$ARMY_OWNER$.culture = {
has_cultural_parameter = high_prowess_ignores_knight_restrictions
has_cultural_parameter = minimum_prowess_for_knights
}
} }
} }
} }
@ -226,7 +220,7 @@ is_wrong_gender_in_faith_trigger = {
faith_is_aniconic_trigger = { faith_is_aniconic_trigger = {
faith = { faith = {
OR = { OR = {
religion = religion:islam_religion religion = religion:islam_religion
has_doctrine = tenet_aniconism has_doctrine = tenet_aniconism
} }
@ -236,7 +230,15 @@ faith_is_aniconic_trigger = {
#Needs CHARACTER and FAITH #Needs CHARACTER and FAITH
relation_with_character_is_incestuous_in_faith_trigger = { relation_with_character_is_incestuous_in_faith_trigger = {
OR = { OR = {
#doctrine_consanguinity_restricted; absolutely no family business # doctrine_consanguinity_dynastic; not within the same descent group
AND = {
$FAITH$ = { has_doctrine = doctrine_consanguinity_dynastic }
OR = {
is_close_or_extended_family_of = $CHARACTER$
dynasty = $CHARACTER$.dynasty
}
}
#doctrine_consanguinity_restricted; absolutely no family business
AND = { AND = {
$FAITH$ = { has_doctrine = doctrine_consanguinity_restricted } $FAITH$ = { has_doctrine = doctrine_consanguinity_restricted }
is_close_or_extended_family_of = $CHARACTER$ #[parents, children, siblings, grandparents, grandchildren, cousins, uncles, aunts, nephews, nieces] is_close_or_extended_family_of = $CHARACTER$ #[parents, children, siblings, grandparents, grandchildren, cousins, uncles, aunts, nephews, nieces]
@ -252,11 +254,11 @@ relation_with_character_is_incestuous_in_faith_trigger = {
} }
#doctrine_consanguinity_aunt_nephew_and_uncle_niece; extended family is ok #doctrine_consanguinity_aunt_nephew_and_uncle_niece; extended family is ok
AND = { AND = {
$FAITH$ = { has_doctrine = doctrine_consanguinity_aunt_nephew_and_uncle_niece } $FAITH$ = { has_doctrine = doctrine_consanguinity_aunt_nephew_and_uncle_niece }
is_close_family_of = $CHARACTER$ is_close_family_of = $CHARACTER$
} }
#doctrine_consanguinity_unrestricted; all forms of incest is acceptable #doctrine_consanguinity_unrestricted; all forms of incest is acceptable
} }
} }
#Note: only checks from the viewpoint of current scope. Needs CHARACTER #Note: only checks from the viewpoint of current scope. Needs CHARACTER
@ -274,8 +276,7 @@ relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = {
relation_with_character_is_incestuous_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith } relation_with_character_is_incestuous_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith }
} }
AND = { #Liege's faith doesn't approve AND = { #Liege's faith doesn't approve
exists = liege liege ?= {
liege = {
faith = { faith = {
save_temporary_scope_as = check_faith save_temporary_scope_as = check_faith
} }
@ -301,9 +302,9 @@ faith_allows_marriage_consanguinity_trigger = {
relation_between_characters_is_sodomy_in_my_faith_trigger = { relation_between_characters_is_sodomy_in_my_faith_trigger = {
$CHARACTER_1$ = { is_male = yes } $CHARACTER_1$ = { is_male = yes }
$CHARACTER_2$ = { is_male = yes } $CHARACTER_2$ = { is_male = yes }
faith = { faith = {
OR = { OR = {
has_doctrine_parameter = homosexuality_shunned has_doctrine_parameter = homosexuality_shunned
has_doctrine_parameter = homosexuality_illegal has_doctrine_parameter = homosexuality_illegal
} }
} }
@ -338,8 +339,7 @@ relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = {
relation_with_character_is_sodomy_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith } relation_with_character_is_sodomy_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith }
} }
AND = { #Liege's faith doesn't approve AND = { #Liege's faith doesn't approve
exists = liege liege ?= {
liege = {
faith = { faith = {
save_temporary_scope_as = check_faith save_temporary_scope_as = check_faith
} }
@ -364,8 +364,7 @@ murdering_character_is_kinslaying_in_my_or_same_dynasty_lieges_faith_trigger = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
exists = liege liege ?= { dynasty = scope:kinslayer_me.dynasty }
liege = { dynasty = scope:kinslayer_me.dynasty }
} }
liege = { liege = {
faith = { faith = {
@ -376,8 +375,7 @@ murdering_character_is_kinslaying_in_my_or_same_dynasty_lieges_faith_trigger = {
OR = { OR = {
murdering_character_is_kinslaying_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith } #My faith doesn't approve murdering_character_is_kinslaying_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith } #My faith doesn't approve
AND = { #Liege's faith doesn't approve AND = { #Liege's faith doesn't approve
exists = liege liege ?= { dynasty = scope:kinslayer_me.dynasty }
liege = { dynasty = scope:kinslayer_me.dynasty }
murdering_character_is_kinslaying_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith_liege } murdering_character_is_kinslaying_in_faith_trigger = { CHARACTER = $CHARACTER$ FAITH = scope:check_faith_liege }
} }
} }
@ -398,7 +396,7 @@ trait_is_shunned_in_faith_trigger = {
} }
#WITCH #WITCH
AND = { AND = {
scope:shunned_trait_check = flag:witch scope:shunned_trait_check = flag:witch
$FAITH$ = { has_doctrine_parameter = witchcraft_shunned } $FAITH$ = { has_doctrine_parameter = witchcraft_shunned }
} }
#SODOMITE #SODOMITE
@ -417,6 +415,12 @@ trait_is_shunned_in_faith_trigger = {
scope:shunned_trait_check = flag:adulterer scope:shunned_trait_check = flag:adulterer
scope:shunned_trait_check = flag:fornicator scope:shunned_trait_check = flag:fornicator
} }
$GENDER_CHARACTER$ = {
trigger_if = {
limit = { exists = faith }
accepts_adultery_without_penalty_trigger = no
}
}
OR = { OR = {
AND = { AND = {
$FAITH$ = { has_doctrine_parameter = adultery_female_shunned } $FAITH$ = { has_doctrine_parameter = adultery_female_shunned }
@ -510,7 +514,7 @@ trait_is_criminal_in_faith_trigger = {
} }
} }
} }
} }
} }
scoped_trait_is_criminal_in_faith_trigger = { scoped_trait_is_criminal_in_faith_trigger = {
@ -579,7 +583,7 @@ scoped_trait_is_criminal_in_faith_trigger = {
} }
} }
} }
} }
} }
trait_is_shunned_or_criminal_in_faith_trigger = { trait_is_shunned_or_criminal_in_faith_trigger = {
@ -598,8 +602,7 @@ trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
trait_is_shunned_or_criminal_in_faith_trigger = { TRAIT = $TRAIT$ FAITH = scope:check_faith GENDER_CHARACTER = $GENDER_CHARACTER$ } trait_is_shunned_or_criminal_in_faith_trigger = { TRAIT = $TRAIT$ FAITH = scope:check_faith GENDER_CHARACTER = $GENDER_CHARACTER$ }
} }
AND = { #Liege's faith doesn't approve AND = { #Liege's faith doesn't approve
exists = liege liege ?= {
liege = {
faith = { faith = {
save_temporary_scope_as = check_faith save_temporary_scope_as = check_faith
} }
@ -715,6 +718,59 @@ has_any_criminal_trait_in_faith_trigger = {
} }
} }
has_any_shunned_trait_in_faith_trigger = {
$CHARACTER$ = {
OR = {
#KINSLAYER
AND = {
has_trait = kinslayer_3
trait_isshunnedl_in_faith_trigger = { TRAIT = kinslayer_3 FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
AND = {
has_trait = kinslayer_2
trait_is_shunned_in_faith_trigger = { TRAIT = kinslayer_2 FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
AND = {
has_trait = kinslayer_1
trait_is_shunned_in_faith_trigger = { TRAIT = kinslayer_1 FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
#WITCH
AND = {
has_trait = witch
trait_is_shunned_in_faith_trigger = { TRAIT = witch FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
#CANNIBAL
AND = {
has_trait = cannibal
trait_is_shunned_in_faith_trigger = { TRAIT = cannibal FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
#SODOMITE
AND = {
has_trait = sodomite
trait_is_shunned_in_faith_trigger = { TRAIT = sodomite FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
#DEVIANT
AND = {
has_trait = deviant
trait_is_shunned_in_faith_trigger = { TRAIT = deviant FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
AND = {
has_trait = incestuous
trait_is_shunned_in_faith_trigger = { TRAIT = incestuous FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
#ADULTERER/FORNICATOR
AND = {
has_trait = adulterer
trait_is_shunned_in_faith_trigger = { TRAIT = adulterer FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
AND = {
has_trait = fornicator
trait_is_shunned_in_faith_trigger = { TRAIT = fornicator FAITH = $FAITH$ GENDER_CHARACTER = $CHARACTER$ }
}
}
}
}
has_negative_attitude_towards_trait_trigger = { has_negative_attitude_towards_trait_trigger = {
save_temporary_scope_value_as = { save_temporary_scope_value_as = {
@ -727,17 +783,17 @@ has_negative_attitude_towards_trait_trigger = {
#INCESTUOUS #INCESTUOUS
AND = { AND = {
scope:negative_status_check = flag:incestuous scope:negative_status_check = flag:incestuous
any_secret = { secret_type = secret_incest } any_secret = { type = secret_incest }
} }
#WITCH #WITCH
AND = { AND = {
scope:negative_status_check = flag:witch scope:negative_status_check = flag:witch
any_secret = { secret_type = secret_witch } any_secret = { type = secret_witch }
} }
#CANNIBAL #CANNIBAL
AND = { AND = {
scope:negative_status_check = flag:cannibal scope:negative_status_check = flag:cannibal
any_secret = { secret_type = secret_cannibal } any_secret = { type = secret_cannibal }
} }
#SODOMITE #SODOMITE
AND = { AND = {
@ -747,7 +803,7 @@ has_negative_attitude_towards_trait_trigger = {
has_sexuality = bisexual has_sexuality = bisexual
} }
any_secret = { any_secret = {
secret_type = secret_homosexual type = secret_homosexual
} }
} }
#ADULTERER #ADULTERER
@ -828,7 +884,7 @@ is_preferred_heresy = {
faiths_are_in_muhakkima_islam_group = { FAITH_1 = $ORIGIN_FAITH$ FAITH_2 = $HERETICAL_FAITH$} faiths_are_in_muhakkima_islam_group = { FAITH_1 = $ORIGIN_FAITH$ FAITH_2 = $HERETICAL_FAITH$}
} }
} }
#If we're Zoroastrian, we don't want Sogdian faith in Armenia and vice versa #If we're Zoroastrian, we don't want Sogdian faith in Armenia and vice versa
AND = { AND = {
religion_tag = zoroastrianism_religion religion_tag = zoroastrianism_religion
OR = { OR = {
@ -838,12 +894,10 @@ is_preferred_heresy = {
} }
#Otherwise, we don't have any special preferences. #Otherwise, we don't have any special preferences.
AND = { NOT = {
NOT = { religion_tag = islam_religion
religion_tag = islam_religion religion_tag = christianity_religion
religion_tag = christianity_religion religion_tag = zoroastrianism_religion
religion_tag = zoroastrianism_religion
}
} }
} }
} }
@ -884,7 +938,7 @@ is_valid_heresy = {
} }
} }
} }
AND = { #FP3: for Zoroastrianism, Bedhin faiths are never heresies of each other AND = { #FP3: for Zoroastrianism, Bedhin faiths are never heresies of each other
religion_tag = zoroastrianism_religion religion_tag = zoroastrianism_religion
NAND = { NAND = {
$ORIGIN_FAITH$ = { $ORIGIN_FAITH$ = {
@ -899,13 +953,11 @@ is_valid_heresy = {
religion_tag = islam_religion religion_tag = islam_religion
religion_tag = judaism_religion religion_tag = judaism_religion
#Eastern Faiths can shift and spread amongst each other. #Eastern Faiths can shift and spread amongst each other.
AND = { OR = {
OR = { religion_tag = buddhism_religion
religion_tag = buddhism_religion religion_tag = hinduism_religion
religion_tag = hinduism_religion religion_tag = jainism_religion
religion_tag = jainism_religion religion_tag = dualism_religion
religion_tag = dualism_religion
}
} }
#No special requirements for Pagan religions. #No special requirements for Pagan religions.
has_doctrine = pagan_hostility_doctrine has_doctrine = pagan_hostility_doctrine
@ -938,7 +990,7 @@ no_heretical_hof_faith_trigger = { #Head of Faith shouldn't convert.
NOT = { exists = root.religious_head } NOT = { exists = root.religious_head }
AND = { AND = {
exists = root.religious_head exists = root.religious_head
NOT = { this = root.religious_head } this != root.religious_head
} }
} }
} }
@ -1095,7 +1147,7 @@ faiths_are_eastern_zoroastrian = { #FP3 update - so that Armenian faith (Areword
} }
} }
faiths_are_western_zoroastrian = { #FP3 update - so that Sogdian faith (Khurmazta) don't appear as a heresy in Armenia faiths_are_western_zoroastrian = { #FP3 update - so that Sogdian faith (Khurmazta) don't appear as a heresy in Armenia
OR = { OR = {
$FAITH_1$ = faith:mazdayasna $FAITH_1$ = faith:mazdayasna
$FAITH_1$ = faith:gayomarthianism $FAITH_1$ = faith:gayomarthianism
@ -1164,7 +1216,7 @@ barony_is_valid_for_holy_order_lease_trigger = {
limit = { limit = {
NOT = { holder = $CHARACTER$ } NOT = { holder = $CHARACTER$ }
} }
holder.primary_title.tier = tier_barony holder.primary_title.tier = tier_barony
} }
NOT = { NOT = {
is_leased_out = yes is_leased_out = yes
@ -1236,15 +1288,14 @@ is_infidel_trigger = {
} }
valid_demand_conversion_conditions_trigger = { valid_demand_conversion_conditions_trigger = {
scope:recipient = { is_busy_in_events_localised = yes }
scope:recipient = { NOT = { has_strong_hook = scope:actor } }
scope:recipient = { NOT = { has_trait = devoted } }
scope:recipient = { NOT = { has_trait = order_member } }
scope:recipient = { scope:recipient = {
NOT = { is_imprisoned_by = scope:actor } NOR = {
} has_strong_hook = scope:actor
scope:recipient = { has_trait = devoted
NOT = { is_at_war_with = scope:actor } has_trait = order_member
is_imprisoned_by = scope:actor
is_at_war_with = scope:actor
}
} }
scope:actor = { scope:actor = {
trigger_if = { trigger_if = {
@ -1257,8 +1308,6 @@ valid_demand_conversion_conditions_trigger = {
domicile = { has_domicile_parameter = camp_enable_conversion } domicile = { has_domicile_parameter = camp_enable_conversion }
} }
} }
}
scope:actor = {
NAND = { NAND = {
has_trait = nomadic_philosophy has_trait = nomadic_philosophy
has_trait = zealous has_trait = zealous
@ -1268,13 +1317,13 @@ valid_demand_conversion_conditions_trigger = {
custom_description = { custom_description = {
text = "is_head_of_religion" text = "is_head_of_religion"
subject = scope:recipient subject = scope:recipient
NOT = { scope:recipient.faith.religious_head = scope:recipient } scope:recipient.faith.religious_head != scope:recipient
} }
custom_description = { custom_description = {
text = "is_protected_via_contract" text = "is_protected_via_contract"
subject = scope:recipient subject = scope:recipient
NAND = { # Vassal Contract forbids meddling by liege # Vassal Contract forbids meddling by liege
NAND = {
exists = scope:recipient.liege exists = scope:recipient.liege
scope:recipient.liege = scope:actor scope:recipient.liege = scope:actor
scope:recipient = { scope:recipient = {
@ -1283,19 +1332,18 @@ valid_demand_conversion_conditions_trigger = {
} }
} }
} }
trigger_if = { trigger_if = {
limit = { limit = {
scope:recipient = { scope:recipient = {
AND = { AND = {
has_variable = cannot_be_converted_by_value has_variable = cannot_be_converted_by_value
var:cannot_be_converted_by_value = scope:actor var:cannot_be_converted_by_value = scope:actor
} }
} }
} }
custom_tooltip = { custom_tooltip = {
text = promised_to_not_convert_character text = promised_to_not_convert_character
scope:recipient = { scope:recipient = {
NOR = { NOR = {
has_variable = cannot_be_converted_by_value has_variable = cannot_be_converted_by_value
var:cannot_be_converted_by_value = scope:actor var:cannot_be_converted_by_value = scope:actor
@ -1303,13 +1351,78 @@ valid_demand_conversion_conditions_trigger = {
} }
} }
} }
custom_tooltip = { custom_tooltip = {
text = cannot_take_overt_hostile_actions_against_diarch.tt text = cannot_take_overt_hostile_actions_against_diarch.tt
NOT = { scope:recipient ?= scope:actor.diarch } NOT = { scope:recipient ?= scope:actor.diarch }
} }
} }
valid_ask_for_conversion_conditions_trigger = { # Deliberate variant of the above, so you can ask your diarch nicely to convert if you made a new faith
scope:recipient = {
NOR = {
has_strong_hook = scope:actor
has_trait = devoted
has_trait = order_member
is_imprisoned_by = scope:actor
is_at_war_with = scope:actor
}
}
scope:actor = {
trigger_if = {
limit = {
government_has_flag = government_is_landless_adventurer
scope:recipient = { is_courtier_of = scope:actor }
}
custom_tooltip = {
text = valid_demand_conversion_conditions_trigger.tt.domicile_requires_shrine
domicile = { has_domicile_parameter = camp_enable_conversion }
}
}
NAND = {
has_trait = nomadic_philosophy
has_trait = zealous
}
}
custom_description = {
text = "is_head_of_religion"
subject = scope:recipient
scope:recipient.faith.religious_head != scope:recipient
}
custom_description = {
text = "is_protected_via_contract"
subject = scope:recipient
# Vassal Contract forbids meddling by liege
NAND = {
exists = scope:recipient.liege
scope:recipient.liege = scope:actor
scope:recipient = {
is_ruler = yes
vassal_contract_has_flag = religiously_protected
}
}
}
trigger_if = {
limit = {
scope:recipient = {
AND = {
has_variable = cannot_be_converted_by_value
var:cannot_be_converted_by_value = scope:actor
}
}
}
custom_tooltip = {
text = promised_to_not_convert_character
scope:recipient = {
NOR = {
has_variable = cannot_be_converted_by_value
var:cannot_be_converted_by_value = scope:actor
}
}
}
}
}
highgod_is_passive_trigger = { highgod_is_passive_trigger = {
OR = { OR = {
religion_tag = buddhism_religion religion_tag = buddhism_religion
@ -1374,13 +1487,7 @@ can_reincarnate_trigger = {
is_reincarnation_trigger = { is_reincarnation_trigger = {
can_become_reincarnation_trigger = yes can_become_reincarnation_trigger = yes
OR = { has_variable = reincarnation_of
AND = {
has_variable = reincarnation_of
}
}
} }
# Used in faith scope, COUNT is number of faiths to at least have and CHARACTER is who must own them # Used in faith scope, COUNT is number of faiths to at least have and CHARACTER is who must own them
@ -1416,6 +1523,7 @@ num_realm_holy_sites_faithful_holders = {
OR = { OR = {
is_holy_site_controlled_by = $CHARACTER$ is_holy_site_controlled_by = $CHARACTER$
$CHARACTER$.confederation ?= { $CHARACTER$.confederation ?= {
is_house_based = no # any_confederation_member is not performant for house blocs
any_confederation_member = { any_confederation_member = {
scope:current_holy_site = { scope:current_holy_site = {
is_holy_site_controlled_by = prev is_holy_site_controlled_by = prev
@ -1438,7 +1546,7 @@ can_create_temporal_head_of_faith_title_trigger = {
root = { piety_level >= high_piety_level } root = { piety_level >= high_piety_level }
trigger_if = { trigger_if = {
limit = { limit = {
root = { is_independent_ruler = no } root = { top_liege != this }
} }
custom_description = { custom_description = {
text = cannot_create_hof_title_at_or_above_liege_tier text = cannot_create_hof_title_at_or_above_liege_tier
@ -1473,7 +1581,7 @@ can_afford_create_head_of_faith_title_cost_trigger = {
has_doctrine = muhammad_succession_sunni_doctrine has_doctrine = muhammad_succession_sunni_doctrine
has_doctrine = muhammad_succession_shia_doctrine has_doctrine = muhammad_succession_shia_doctrine
} }
} }
} }
trigger_if = { trigger_if = {
limit = { NOT = { has_trait = sayyid } } limit = { NOT = { has_trait = sayyid } }
@ -1544,7 +1652,7 @@ shared_faith_or_hof_trigger = {
#Triggers that applies to both Monastery or Holy Order requirements #Triggers that applies to both Monastery or Holy Order requirements
can_take_religious_vows_trigger = { can_take_religious_vows_trigger = {
can_take_religious_vows_disregard_marriage_trigger = yes can_take_religious_vows_disregard_marriage_trigger = yes
#Do they have the "wrong" marriage type? #Do they have the "wrong" marriage type?
NOR = { NOR = {
custom_description = { custom_description = {
@ -1566,8 +1674,7 @@ can_take_religious_vows_trigger = {
custom_description = { custom_description = {
text = matrilinear_betrothal text = matrilinear_betrothal
subject = scope:recipient subject = scope:recipient
exists = betrothed betrothed ?= {
betrothed = {
is_female = yes is_female = yes
matrilinear_betrothal = yes matrilinear_betrothal = yes
} }
@ -1575,8 +1682,7 @@ can_take_religious_vows_trigger = {
custom_description = { custom_description = {
text = patrilinear_betrothal text = patrilinear_betrothal
subject = scope:recipient subject = scope:recipient
exists = betrothed betrothed ?= {
betrothed = {
is_male = yes is_male = yes
patrilinear_betrothal = yes patrilinear_betrothal = yes
} }
@ -1637,6 +1743,14 @@ does_religion_exist_in_world_region_trigger = { # The most efficient way I could
faith.religion = $RELIGION$ faith.religion = $RELIGION$
} }
} }
trigger_else_if = {
limit = { location = { geographical_region = world_asia } }
any_county_in_region = {
region = world_asia
faith.religion = $RELIGION$
}
}
trigger_else_if = { # We group two smaller world regions into one trigger_else_if = { # We group two smaller world regions into one
limit = { limit = {
location = { location = {
@ -1725,7 +1839,7 @@ is_theological_character_trigger = {
government_has_flag = government_is_theocracy government_has_flag = government_is_theocracy
} }
} }
} }
would_be_sinful_adulterer_trigger = { would_be_sinful_adulterer_trigger = {
@ -1747,10 +1861,28 @@ has_tolerant_faith_or_culture_trigger = {
OR = { OR = {
faith = { has_doctrine = doctrine_pluralism_pluralistic } faith = { has_doctrine = doctrine_pluralism_pluralistic }
culture = { has_cultural_parameter = less_likely_to_force_conversion } culture = { has_cultural_parameter = less_likely_to_force_conversion }
culture = { has_cultural_tradition = tradition_religion_blending }
has_trait = nomadic_philosophy has_trait = nomadic_philosophy
} }
} }
is_open_to_inviting_other_faiths_trigger = {
OR = {
faith = { has_doctrine = tenet_adaptive }
faith = { has_doctrine = unreformed_faith_doctrine }
faith = { has_doctrine = doctrine_pluralism_pluralistic }
culture = { has_cultural_tradition = tradition_religion_blending }
culture = { has_cultural_tradition = tradition_tgp_religious_hospitality }
}
}
faith_is_open_minded_trigger = {
OR = {
has_doctrine = tenet_adaptive
has_doctrine = doctrine_pluralism_pluralistic
}
}
is_mainstream_jewish_faith = { is_mainstream_jewish_faith = {
religion = religion:judaism_religion religion = religion:judaism_religion
NOT = { NOT = {
@ -1887,6 +2019,24 @@ has_holy_building = {
has_building_or_higher = konark_temple_01 has_building_or_higher = konark_temple_01
has_building_or_higher = wawel_cathedral_01 has_building_or_higher = wawel_cathedral_01
has_building_or_higher = vatapi_caves_01 has_building_or_higher = vatapi_caves_01
# TGP
has_building_or_higher = holy_site_buddhist_grand_temple_01
has_building_or_higher = holy_site_japanese_temple_01
has_building_or_higher = holy_site_chinese_temple_01
has_building_or_higher = holy_site_se_asia_pagan_temple_01
has_building_or_higher = kofuku_ji_01
has_building_or_higher = enryaku_ji_01
has_building_or_higher = hwangnyongsa_01
has_building_or_higher = besakih_temple_01
has_building_or_higher = dau_temple_01
has_building_or_higher = hanging_temple_01
has_building_or_higher = liuhe_pagoda_01
has_building_or_higher = pagoda_of_fogong_temple_01
has_building_or_higher = giant_wild_goose_pagoda_01
has_building_or_higher = maoshan_academy_01
has_building_or_higher = tiantai_monasteries_01
has_building_or_higher = jizu_shan_temples_01
has_building_or_higher = nanhua_temple_01
} }
} }
@ -1901,3 +2051,118 @@ invalid_for_heresy_events = {
} }
} }
is_faith_dominant_gender = {
OR = {
AND = {
is_male = yes
faith = {
OR = {
has_doctrine_parameter = male_dominated_law
has_doctrine_parameter = gender_equal_law
}
}
}
AND = {
is_female = yes
faith = {
OR = {
has_doctrine_parameter = female_dominated_law
has_doctrine_parameter = gender_equal_law
}
}
}
}
}
religion_is_broadly_asian_trigger = {
OR = {
religion_is_east_asian_trigger = yes
broadly_dharmic_trigger = yes
broadly_chinese_religion_trigger = yes
}
}
religion_is_east_asian_trigger = {
OR = {
faith.religion = religion:buddhism_religion
faith.religion = religion:confucianism_religion
faith.religion = religion:taoism_religion
faith.religion = religion:shintoism_religion
}
}
broadly_dharmic_trigger = {
OR = {
faith.religion = religion:buddhism_religion
faith.religion = religion:hinduism_religion
faith.religion = religion:jainism_religion
faith.religion = religion:bon_religion
faith.religion = religion:dab_qhuas_religion
faith.religion = religion:aluk_religion
faith.religion = religion:dayawism_religion
faith.religion = religion:hantuism_religion
faith.religion = religion:kaharingan_religion
faith.religion = religion:satsana_phi_religion
faith.religion = religion:tolotang_religion
faith.religion = religion:utaki_religion
faith.religion = religion:bimoism_religion
faith.religion = religion:moism_religion
faith.religion = religion:muism_religion
faith.religion = religion:qiangic_religion
}
}
south_east_asian_pagan_trigger = {
OR = {
faith.religion = religion:aluk_religion
faith.religion = religion:dayawism_religion
faith.religion = religion:hantuism_religion
faith.religion = religion:kaharingan_religion
faith.religion = religion:tolotang_religion
faith.religion = religion:biliku_religion
}
}
broadly_jungle_dwelling_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_austronesian
has_cultural_pillar = heritage_burman
has_cultural_pillar = heritage_tai
has_cultural_pillar = heritage_hmongic
has_cultural_pillar = heritage_dravidian
has_cultural_pillar = heritage_malayic
has_cultural_pillar = heritage_mon_khmer
has_cultural_pillar = heritage_viet
has_cultural_pillar = heritage_indo_aryan
}
}
}
broadly_chinese_religion_trigger = {
OR = {
faith.religion = religion:taoism_religion
faith.religion = religion:confucianism_religion
}
}
broadly_mainland_east_asian_heritage_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_chinese
has_cultural_pillar = heritage_korean
has_cultural_pillar = heritage_buyeo
has_cultural_pillar = heritage_qiangic
has_cultural_pillar = heritage_viet
}
}
}
broadly_japanese_island_heritage_trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_japonic
has_cultural_pillar = heritage_ainuic
}
}
}

View file

@ -70,7 +70,7 @@ roaming_activity_monsoon_trigger = {
} }
roaming_activity_special_guest_trigger = { roaming_activity_special_guest_trigger = {
NOT = { this = scope:host } this != scope:host
court_owner ?= scope:host court_owner ?= scope:host
is_healthy = yes is_healthy = yes
is_available = yes is_available = yes

View file

@ -35,26 +35,14 @@
###SEDUCE SCHEME TRIGGERS### ###SEDUCE SCHEME TRIGGERS###
use_seduce_secrecy_trigger = { use_seduce_secrecy_trigger = {
#TODO_CD_EP3_ERCC; this is breaking in a confusing way, with the secrecy no longer showing in the scheme start widget. Original version preserved below, not sure why it doesn't work. $OWNER$ ?= { is_alive = yes }
$TARGET$ ?= { is_alive = yes }
$TARGET$ = { $TARGET$ = {
NOR = { NOR = {
is_consort_of = $OWNER$ is_consort_of = $OWNER$
is_courtier_of = $OWNER$ is_courtier_of = $OWNER$
} }
} }
#$TARGET$ = {
#NOR = {
#is_consort_of = $OWNER$
#is_courtier_of = $OWNER$
#is_ruler = yes
#}
#exists = liege
#OR = {
#is_consort_of = $TARGET$.liege
#is_close_family_of = $TARGET$.liege
#house = $TARGET$.house
#}
#}
} }
@ -370,9 +358,9 @@ might_cheat_on_partner_trigger = {
has_relation_lover = $PARTNER$ has_relation_lover = $PARTNER$
is_consort_of = $PARTNER$ # Includes both spouses and concubines is_consort_of = $PARTNER$ # Includes both spouses and concubines
} }
# Additionally, in faiths with the Polyamory doctrine, extramarital relationships aren't considered to be cheating on partners. # Additionally, in faiths with the Polyamory doctrine, extramarital relationships aren't considered to be cheating on partners.
NOT = { faith = { has_doctrine_parameter = no_unfaithfulness_penalty_active } } # Additionally, some cultures do not have scruples about extramarital relationships.
accepts_adultery_without_penalty_trigger = no
} }
NOT = { has_trait = loyal } # Loyal people never cheat NOT = { has_trait = loyal } # Loyal people never cheat
@ -498,7 +486,7 @@ dislikes_partner_cheating_trigger = {
OR = { OR = {
AND = { AND = {
has_relation_soulmate = $PARTNER$ # Soulmates are exclusive has_relation_soulmate = $PARTNER$ # Soulmates are exclusive
NOT = { faith = { has_doctrine_parameter = no_unfaithfulness_penalty_active } } accepts_adultery_without_penalty_trigger = no
} }
AND = { # Feels slighted AND = { # Feels slighted
is_consort_of = $PARTNER$ is_consort_of = $PARTNER$
@ -529,7 +517,7 @@ dislikes_partner_cheating_trigger = {
#Would a soulmate expect you to be exclusively with them? #Would a soulmate expect you to be exclusively with them?
soulmate_relation_is_exclusive_trigger = { soulmate_relation_is_exclusive_trigger = {
NOT = { faith = { has_doctrine_parameter = no_unfaithfulness_penalty_active } } accepts_adultery_without_penalty_trigger = no
} }
sexually_liberal_trigger = { sexually_liberal_trigger = {
@ -573,7 +561,7 @@ eligible_for_affairs_trigger = {
has_trait = celibate has_trait = celibate
#Technically (and, historically, frequently) eunuchs can still have affairs, they just aren't able to impregnate. #Technically (and, historically, frequently) eunuchs can still have affairs, they just aren't able to impregnate.
OR = { OR = {
faith = { has_doctrine_parameter = no_unfaithfulness_penalty_active } accepts_adultery_without_penalty_trigger = yes
trait_is_shunned_or_criminal_in_faith_trigger = { trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = adulterer TRAIT = adulterer
FAITH = root.faith FAITH = root.faith
@ -594,7 +582,7 @@ freely_accepts_sodomy_with_trigger = { #Will ignore sodomy consequences (because
NOT = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = $CHARACTER$ } } NOT = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = $CHARACTER$ } }
has_trait = deviant has_trait = deviant
has_trait = sodomite has_trait = sodomite
any_secret = { secret_type = secret_homosexual } any_secret = { type = secret_homosexual }
} }
} }
@ -766,3 +754,14 @@ possible_pregnancy_after_sex_with_character_trigger = {
} }
} }
} }
accepts_adultery_without_penalty_trigger = {
OR = {
faith = { has_doctrine_parameter = no_unfaithfulness_penalty_active }
culture = { has_cultural_parameter = adultery_always_accepted }
AND = {
government_has_flag = government_is_mandala
house ?= { has_house_power_parameter = aspect_of_creation }
}
}
}

View file

@ -1,52 +1,49 @@
#Scripted triggers relating to the Befriend Scheme #Scripted triggers relating to the Befriend Scheme
##################################################################### #####################################################################
# TRIGGER LIST # TRIGGER LIST
##################################################################### #####################################################################
# !!! Remember to add all new triggers with a short description here !!! # !!! Remember to add all new triggers with a short description here !!!
#befriend_target_is_close_to_owner_trigger <-Indicates someone is close to you already #befriend_target_is_close_to_owner_trigger <-Indicates someone is close to you already
###################################################################### ######################################################################
# TRIGGERS # TRIGGERS
###################################################################### ######################################################################
befriend_target_is_close_to_owner_trigger = { befriend_target_is_close_to_owner_trigger = {
OR = { OR = {
is_close_or_extended_family_of = scope:target is_close_or_extended_family_of = scope:target
is_consort_of = scope:target is_consort_of = scope:target
is_employer_of = scope:target is_employer_of = scope:target
} }
} }
befriend_owner_is_close_to_target_trigger = { befriend_owner_is_close_to_target_trigger = {
OR = { OR = {
is_close_or_extended_family_of = scope:owner is_close_or_extended_family_of = scope:owner
is_consort_of = scope:owner is_consort_of = scope:owner
court_owner = scope:owner court_owner = scope:owner
} }
} }
befriend_scope_is_close_to_target_trigger = { befriend_scope_is_close_to_target_trigger = {
OR = { OR = {
is_close_or_extended_family_of = scope:target is_close_or_extended_family_of = scope:target
is_consort_of = scope:target is_consort_of = scope:target
has_relation_friend = scope:target has_relation_friend = scope:target
AND = { AND = {
OR = { OR = {
court_owner = scope:target court_owner = scope:target
AND = { liege ?= scope:target
exists = liege any_vassal = {
liege = scope:target this = scope:target
} }
any_vassal = { }
this = scope:target reverse_opinion = {
} target = scope:target
} value > 30
reverse_opinion = { }
target = scope:target }
value > 30 }
} }
}
}
}

View file

@ -67,9 +67,7 @@ agent_valid_to_be_discovered_by_spymaster = {
limit = { limit = {
exists = scope:target.court_owner.cp:councillor_spymaster exists = scope:target.court_owner.cp:councillor_spymaster
} }
NOT = { this != scope:target.court_owner.cp:councillor_spymaster
this = scope:target.court_owner.cp:councillor_spymaster
}
} }
NOT = { NOT = {
has_character_flag = free_to_scheme has_character_flag = free_to_scheme
@ -188,7 +186,7 @@ is_good_familial_murder_target_trigger = {
} }
} }
any_heir_title = { any_heir_title = {
NOT = { holder = root } holder != root
tier >= root.highest_held_title_tier tier >= root.highest_held_title_tier
place_in_line_of_succession = { place_in_line_of_succession = {
target = root target = root
@ -214,23 +212,15 @@ build_murder_targets_trigger = {
trigger_if = { trigger_if = {
limit = { limit = {
root = { root = {
ai_honor <= low_positive_ai_value trigger_if = {
can_start_scheme = { limit = {
target_character = prev has_relation_nemesis = prev
type = murder }
ai_honor <= medium_positive_ai_value
}
trigger_else = {
ai_honor <= low_positive_ai_value
} }
}
}
add_to_temporary_list = murder_targets
}
}
any_relation = { # Same with nemeses
type = nemesis
count = all
trigger_if = {
limit = {
root = {
ai_honor <= medium_positive_ai_value
can_start_scheme = { can_start_scheme = {
target_character = prev target_character = prev
type = murder type = murder
@ -270,16 +260,16 @@ build_murder_targets_trigger = {
trigger_if = { # Greedy people want to murder their liege's high aptitude tax collector... trigger_if = { # Greedy people want to murder their liege's high aptitude tax collector...
limit = { limit = {
ai_greed >= low_positive_ai_value ai_greed >= low_positive_ai_value
is_independent_ruler = no top_liege != this
exists = liege government_has_flag = government_is_clan
liege = { liege ?= {
any_tax_collector = { any_tax_collector = {
any_tax_collector_vassal = { any_tax_collector_vassal = {
this = root this = root
} }
check_tax_collector_aptitude = { tax_collector_aptitude = {
CHARACTER = this target = clan_tax_slot
VALUE >= 4 value >= 4
} }
add_to_temporary_list = murder_targets add_to_temporary_list = murder_targets
} }
@ -322,8 +312,7 @@ build_murder_targets_trigger = {
trigger_if = { # Certain vassals will plot against their liege under certain conditions trigger_if = { # Certain vassals will plot against their liege under certain conditions
limit = { limit = {
highest_held_title_tier > tier_barony highest_held_title_tier > tier_barony
exists = liege liege ?= {
liege = {
tyranny >= medium_tyranny tyranny >= medium_tyranny
} }
opinion = { opinion = {
@ -338,10 +327,10 @@ build_murder_targets_trigger = {
} }
trigger_if = { # Murdering troublesome claimants is something you want to do... trigger_if = { # Murdering troublesome claimants is something you want to do...
limit = { limit = {
is_playable_character = yes is_landed = yes
primary_title.tier >= tier_duchy primary_title.tier >= tier_duchy
any_targeting_faction = { any_targeting_faction = {
faction_is_type = claimant_faction faction_type = claimant_faction
special_character = { special_character = {
add_to_temporary_list = murder_targets add_to_temporary_list = murder_targets
} }
@ -350,10 +339,10 @@ build_murder_targets_trigger = {
} }
trigger_if = { # Paranoid characters want to murder claimants to their titles trigger_if = { # Paranoid characters want to murder claimants to their titles
limit = { limit = {
has_trait = paranoid
ai_compassion <= low_negative_ai_value ai_compassion <= low_negative_ai_value
ai_rationality <= 0 ai_rationality <= 0
is_playable_character = yes is_landed = yes
has_trait = paranoid
primary_title.tier >= tier_duchy primary_title.tier >= tier_duchy
any_held_title = { any_held_title = {
any_claimant = { any_claimant = {
@ -365,11 +354,13 @@ build_murder_targets_trigger = {
any_spouse = { # Murder infertile spouses if you've yet to have an heir (and you're heartless...) any_spouse = { # Murder infertile spouses if you've yet to have an heir (and you're heartless...)
trigger_if = { trigger_if = {
limit = { limit = {
fertility < 0.1
is_ai = yes
root = { root = {
is_playable_character = yes
ai_compassion <= 0 ai_compassion <= 0
ai_honor <= 0 ai_honor <= 0
fertility > 0.1 fertility > 0.1
is_playable_character = yes
NOT = { NOT = {
any_child = { any_child = {
is_heir_of = root is_heir_of = root
@ -380,8 +371,6 @@ build_murder_targets_trigger = {
type = murder type = murder
} }
} }
is_ai = yes
fertility < 0.1
add_to_temporary_list = murder_targets add_to_temporary_list = murder_targets
} }
} }
@ -399,10 +388,13 @@ scheme_is_still_valid_trigger = {
can_use_befriend_scheme_trigger = { can_use_befriend_scheme_trigger = {
OR = { OR = {
AND = {
house ?= { has_house_head_parameter = unlock_befriend_scheme }
is_house_head = yes
}
has_perk = befriend_perk has_perk = befriend_perk
AND = { AND = {
exists = dynasty dynasty ?= {
dynasty = {
has_dynasty_perk = fp1_adventure_legacy_5 has_dynasty_perk = fp1_adventure_legacy_5
} }
target_is_vassal_or_below = $TARGET$ target_is_vassal_or_below = $TARGET$
@ -640,33 +632,18 @@ would_actor_consider_dramatic_enticement_trigger = {
actor_has_valid_de_jure_enticement_county_trigger = { actor_has_valid_de_jure_enticement_county_trigger = {
holder = scope:actor holder = scope:actor
tier = tier_county tier = tier_county
NOT = { this = scope:actor.capital_county } this != scope:actor.capital_county
} }
actor_has_valid_claimed_enticement_county_trigger = { actor_has_valid_claimed_enticement_county_trigger = {
holder = scope:actor holder = scope:actor
tier = tier_county tier = tier_county
NOT = { this = scope:actor.capital_county } this != scope:actor.capital_county
} }
################################################## ##################################################
# Can Add Agent to Scheme Triggers # Can Add Agent to Scheme Triggers
is_valid_agent_standard_trigger = {
# The usual standard restrictions.
is_adult = yes
is_imprisoned = no
# Can't be an existing agent in any scheme.
save_temporary_scope_as = char_temp
scope:owner = {
NOT = {
any_scheme = {
any_scheme_agent_character = { this = scope:char_temp }
}
}
}
}
char_can_fit_into_scheme_trigger = { char_can_fit_into_scheme_trigger = {
save_temporary_scope_as = char_temp save_temporary_scope_as = char_temp
$SCHEME$ = { $SCHEME$ = {
@ -682,7 +659,6 @@ char_can_fit_into_scheme_trigger = {
# Scheme APA Triggers # Scheme APA Triggers
scheme_apa_apply_modifier_plus_secrecy_trigger = { scheme_apa_apply_modifier_plus_secrecy_trigger = {
#TODO_CD_EP3_ERCC; ask for scheme secrecy trigger.
scheme_apa_apply_modifier_trigger = { MODIFIER = $MODIFIER$ } scheme_apa_apply_modifier_trigger = { MODIFIER = $MODIFIER$ }
} }
@ -916,6 +892,23 @@ scheme_countermeasure_access_t4_withdraw_from_view_trigger = {
has_trait_with_flag = trait_unlocks_t4_withdraw_from_view has_trait_with_flag = trait_unlocks_t4_withdraw_from_view
} }
# Can this character access the higher tiers of the Bribe Officials countermeasure?
scheme_countermeasure_access_t2_bribe_officials_trigger = {
OR = {
culture = { has_cultural_parameter = cultrad_unlocks_t2_countermeasures }
domicile ?= { has_domicile_parameter = estate_improve_political_scheme_countermeasure }
}
}
scheme_countermeasure_access_t3_bribe_officials_trigger = {
AND = {
culture = { has_cultural_parameter = cultrad_unlocks_t2_countermeasures }
domicile ?= { has_domicile_parameter = estate_improve_political_scheme_countermeasure }
}
}
scheme_countermeasure_access_t4_bribe_officials_trigger = {
always = no
}
scheme_generic_ai_blocker_trigger = { scheme_generic_ai_blocker_trigger = {
any_scheme = { any_scheme = {
OR = { OR = {

View file

@ -56,17 +56,17 @@ can_raid_trigger = {
faith = { has_doctrine_parameter = holy_wars_forbidden } faith = { has_doctrine_parameter = holy_wars_forbidden }
government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_adventurer
} }
# But not for Nomads # But not for Nomads or Wanua
government_has_flag = government_is_nomadic government_has_flag = government_is_nomadic
government_has_flag = government_is_wanua
} }
} }
# Here so that you can plug in whatever dynasty modifiers you want without overwriting the whole scripted rule trigger. # Here so that you can plug in whatever dynasty modifiers you want without overwriting the whole scripted rule trigger.
can_raid_dynasty_modifiers_that_enable_raiding_overseas_list_trigger = { can_raid_dynasty_modifiers_that_enable_raiding_overseas_list_trigger = {
OR = { # Yes, I realise the OR is redundant till someone else puts something in here. Shoosh.
# Yes, I realise the OR is redundant till someone else puts something in here. Shoosh.
has_dynasty_modifier = fp1_legacy_of_piracy_modifier has_dynasty_modifier = fp1_legacy_of_piracy_modifier
}
} }
can_raid_dynasty_modifiers_that_enable_raiding_overland_list_trigger = { can_raid_dynasty_modifiers_that_enable_raiding_overland_list_trigger = {
OR = { OR = {
@ -128,6 +128,8 @@ can_raid_across_water_trigger = {
dynasty ?= { can_raid_dynasty_modifiers_that_enable_raiding_overseas_list_trigger = yes } dynasty ?= { can_raid_dynasty_modifiers_that_enable_raiding_overseas_list_trigger = yes }
# House logic. # House logic.
house ?= { can_raid_house_modifiers_that_enable_raiding_overseas_list_trigger = yes } house ?= { can_raid_house_modifiers_that_enable_raiding_overseas_list_trigger = yes }
# Can raid overseas by government rules
government_has_flag = government_enables_naval_raiding
#Is Hereward. #Is Hereward.
has_trait = the_wake has_trait = the_wake
} }

View file

@ -96,7 +96,7 @@ is_cannibal_trigger = {
OR = { OR = {
has_trait = cannibal has_trait = cannibal
any_secret = { any_secret = {
secret_type = secret_cannibal type = secret_cannibal
} }
} }
} }
@ -105,7 +105,7 @@ is_murderer_trigger = {
OR = { OR = {
has_trait = murderer has_trait = murderer
any_secret = { any_secret = {
secret_type = secret_murder type = secret_murder
} }
} }
} }
@ -144,8 +144,7 @@ tier_or_related_liege_tier_equal_trigger = {
OR = { OR = {
highest_held_title_tier = $TIER$ highest_held_title_tier = $TIER$
AND = { AND = {
exists = liege liege ?= { highest_held_title_tier = $TIER$ }
liege = { highest_held_title_tier = $TIER$ }
OR = { OR = {
is_close_family_of = this.liege is_close_family_of = this.liege
is_spouse_of = this.liege is_spouse_of = this.liege
@ -158,8 +157,7 @@ tier_or_related_liege_tier_greater_or_equal_trigger = {
OR = { OR = {
highest_held_title_tier >= $TIER$ highest_held_title_tier >= $TIER$
AND = { AND = {
exists = liege liege ?= { highest_held_title_tier >= $TIER$ }
liege = { highest_held_title_tier >= $TIER$ }
OR = { OR = {
is_close_family_of = this.liege is_close_family_of = this.liege
is_spouse_of = this.liege is_spouse_of = this.liege
@ -174,9 +172,8 @@ torture_secret_trigger = {
is_blackmailable_secret_trigger = { BLACKMAILER = scope:actor PARTICIPANT = $PARTICIPANT$ } is_blackmailable_secret_trigger = { BLACKMAILER = scope:actor PARTICIPANT = $PARTICIPANT$ }
secret_is_always_interesting_trigger = yes secret_is_always_interesting_trigger = yes
} }
NAND = { NOT = {
exists = secret_target secret_target ?= scope:recipient
secret_target = scope:recipient
} }
} }
@ -199,8 +196,7 @@ has_interesting_portrait_altering_trait_trigger = {
is_dangerous_faction_trigger = { is_dangerous_faction_trigger = {
OR = { OR = {
AND = { AND = {
exists = faction_leader faction_leader ?= { is_ai = no } # For now human factions are always dangerous
faction_leader = { is_ai = no } # For now human factions are always dangerous
} }
AND = { AND = {
@ -222,7 +218,7 @@ basic_allowed_to_imprison_character_trigger = { #Only to be used in is_shown for
is_foreign_court_or_pool_guest_of = scope:allowed_imprisoner is_foreign_court_or_pool_guest_of = scope:allowed_imprisoner
AND = { AND = {
# EP3 EVICTION # EP3 EVICTION
is_landless_adventurer = yes has_government = landless_adventurer_government
reverse_has_opinion_modifier = { reverse_has_opinion_modifier = {
target = scope:allowed_imprisoner target = scope:allowed_imprisoner
modifier = eviction_ignored_opinion modifier = eviction_ignored_opinion
@ -257,7 +253,7 @@ advanced_allowed_to_imprison_character_trigger = {
NOT = { exists = var:hostage_travelling_to_warden } NOT = { exists = var:hostage_travelling_to_warden }
} }
trigger_if = { trigger_if = {
limit = { is_landless_adventurer = yes } limit = { has_government = landless_adventurer_government }
scope:allowed_imprisoner = { is_landed = yes } scope:allowed_imprisoner = { is_landed = yes }
reverse_has_opinion_modifier = { reverse_has_opinion_modifier = {
target = scope:allowed_imprisoner target = scope:allowed_imprisoner
@ -292,7 +288,7 @@ can_be_granted_titles_by = { #This is set up with trigger-ifs to allow for nice
limit = { limit = {
is_ruler = no #Rulers can always get additional titles is_ruler = no #Rulers can always get additional titles
is_theocratic_lessee = no #Theocratic lessees use other gender checks is_theocratic_lessee = no #Theocratic lessees use other gender checks
NOT = { $RULER$ = { government_has_flag = government_is_administrative } } NOT = { $RULER$ = { government_allows = administrative } }
NOT = { NOT = {
$RULER$.faith = { $RULER$.faith = {
has_dominant_ruling_gender = scope:title_grantee has_dominant_ruling_gender = scope:title_grantee
@ -318,7 +314,7 @@ can_be_granted_titles_by = { #This is set up with trigger-ifs to allow for nice
is_ruler = no #Rulers can always get additional titles is_ruler = no #Rulers can always get additional titles
is_theocratic_lessee = no #Theocratic lessees use other gender checks is_theocratic_lessee = no #Theocratic lessees use other gender checks
$RULER$ = { $RULER$ = {
government_has_flag = government_is_administrative government_allows = administrative
NOT = { has_realm_law = equal_law } NOT = { has_realm_law = equal_law }
} }
} }
@ -492,3 +488,128 @@ has_purchased_truce_with_char = {
this = $TARGET$ this = $TARGET$
} }
} }
has_different_clothing_gfx = {
culture = {
switch = {
trigger = has_clothing_gfx
byzantine_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = byzantine_clothing_gfx }
}
}
indian_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = indian_clothing_gfx }
}
}
mena_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = mena_clothing_gfx }
}
}
african_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = african_clothing_gfx }
}
}
northern_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = northern_clothing_gfx }
}
}
iberian_muslim_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = iberian_muslim_clothing_gfx }
}
}
iberian_christian_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = iberian_christian_clothing_gfx }
}
}
mongol_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = mongol_clothing_gfx }
}
}
fp1_norse_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = fp1_norse_clothing_gfx }
}
}
western_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = western_clothing_gfx }
}
}
dde_hre_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = dde_hre_clothing_gfx }
}
}
dde_abbasid_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = dde_abbasid_clothing_gfx }
}
}
iranian_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = iranian_clothing_gfx }
}
}
turkic_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = turkic_clothing_gfx }
}
}
afr_berber_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = afr_berber_clothing_gfx }
}
}
west_slavic_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = west_slavic_clothing_gfx }
}
}
french_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = french_clothing_gfx }
}
}
east_slavic_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = east_slavic_clothing_gfx }
}
}
sami_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = sami_clothing_gfx }
}
}
ugro_permian_clothing_gfx = {
NOT = {
$CHAR$.culture = { has_clothing_gfx = ugro_permian_clothing_gfx }
}
}
}
}
}
current_date_is_start_date_trigger = {
OR = {
AND = {
game_start_date = 867.1.1
current_date = 867.1.1
}
AND = {
game_start_date = 1066.09.15
current_date = 1066.09.15
}
AND = {
game_start_date = 1178.10.1
current_date = 1178.10.1
}
}
}

View file

@ -106,7 +106,7 @@ is_blackmailable_secret_trigger = { #Should not include is known
limit = { secret_type = secret_lover } limit = { secret_type = secret_lover }
custom_description = { custom_description = {
text = cannot_blackmail_own_lover_secret text = cannot_blackmail_own_lover_secret
NOT = { secret_target = scope:is_blackmailable_secret_blackmailer } secret_target != scope:is_blackmailable_secret_blackmailer
} }
} }
trigger_if = { trigger_if = {
@ -160,9 +160,7 @@ secret_is_always_interesting_trigger = { #Even if they can't be used for blackma
secret_is_incriminating_trigger = { secret_is_incriminating_trigger = {
OR = { OR = {
exists = secret_target exists = secret_target
any_secret_participant = { any_secret_participant = { }
count >= 1
}
} }
OR = { OR = {
AND = { AND = {
@ -287,7 +285,7 @@ give_random_likely_secret_murder_attempt_victim_trigger = {
scope:murderer = { scope:murderer = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_murder_attempt type = secret_murder_attempt
secret_target = scope:victim secret_target = scope:victim
} }
} }
@ -480,7 +478,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_deviant type = secret_deviant
} }
} }
} }
@ -494,7 +492,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_homosexual type = secret_homosexual
} }
} }
} }
@ -508,7 +506,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_cannibal type = secret_cannibal
} }
} }
} }
@ -522,7 +520,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_non_believer type = secret_non_believer
} }
} }
} }
@ -536,7 +534,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_incest type = secret_incest
} }
} }
} }
@ -550,7 +548,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_witch type = secret_witch
} }
} }
} }
@ -564,7 +562,7 @@ random_blackmailable_secret_can_be_added_simple_trigger = {
scope:target = { scope:target = {
NOT = { NOT = {
any_secret = { any_secret = {
secret_type = secret_crypto_religionist type = secret_crypto_religionist
} }
} }
} }
@ -583,7 +581,10 @@ spymaster_task_courtier_valid_for_hook_fabrication_trigger = {
} }
root = { root = {
any_scheme = { any_scheme = {
scheme_target_character = scope:target_character OR = {
scheme_target_character ?= scope:target_character
scheme_target_title ?= scope:target_character.primary_title
}
scheme_is_character_agent = scope:target_check scheme_is_character_agent = scope:target_check
} }
} }

View file

@ -142,9 +142,11 @@ secret_cannibal_is_criminal_trigger = {
# SECRET LOVER # SECRET LOVER
secret_lover_is_valid_trigger = { secret_lover_is_valid_trigger = {
$TARGET$ = { $TARGET$ = {
is_alive = yes
save_temporary_scope_as = target save_temporary_scope_as = target
} }
$OWNER$ = { $OWNER$ = {
is_alive = yes
has_relation_lover = scope:target has_relation_lover = scope:target
NOT = { is_consort_of = scope:target } NOT = { is_consort_of = scope:target }
} }
@ -155,20 +157,17 @@ secret_lover_is_criminal_trigger = {
$TARGET$ = { save_temporary_scope_as = criminal_partner } #Different name to the scope in the shunned trigger, to prevent issues $TARGET$ = { save_temporary_scope_as = criminal_partner } #Different name to the scope in the shunned trigger, to prevent issues
$OWNER$ = { $OWNER$ = {
OR = { OR = {
#Female adultery criminal # Adultery criminal
AND = { trait_is_criminal_in_faith_trigger = {
is_female = yes FAITH = faith
OR = { TRAIT = adulterer
faith = { has_doctrine_parameter = adultery_female_crime } GENDER_CHARACTER = $OWNER$
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_female_crime } }
}
} }
#Male adultery criminal any_liege_or_above = {
AND = { trait_is_criminal_in_faith_trigger = {
is_male = yes FAITH = faith
OR = { TRAIT = adulterer
faith = { has_doctrine_parameter = adultery_male_crime } GENDER_CHARACTER = $OWNER$
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_male_crime } }
} }
} }
#Sodomy criminal #Sodomy criminal
@ -189,20 +188,17 @@ secret_lover_is_shunned_trigger = {
$OWNER$ = { $OWNER$ = {
save_temporary_scope_as = lover_owner save_temporary_scope_as = lover_owner
OR = { OR = {
#Female adultery shunned #Adultery shunned
AND = { trait_is_shunned_in_faith_trigger = {
is_female = yes FAITH = faith
OR = { TRAIT = adulterer
faith = { has_doctrine_parameter = adultery_female_shunned } GENDER_CHARACTER = scope:lover_owner
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_female_shunned } }
}
} }
#Male adultery shunned any_liege_or_above = {
AND = { trait_is_shunned_in_faith_trigger = {
is_male = yes FAITH = faith
OR = { TRAIT = adulterer
faith = { has_doctrine_parameter = adultery_male_shunned } GENDER_CHARACTER = scope:lover_owner
any_liege_or_above = { faith = { has_doctrine_parameter = adultery_male_shunned } }
} }
} }
#Sodomy shunned #Sodomy shunned
@ -241,7 +237,7 @@ secret_murder_is_trivial_trigger = {
#Is it a murder that people might care about? #Is it a murder that people might care about?
OR = { OR = {
#Independent rulers have little fear in terms of legal consequences for their actions. #Independent rulers have little fear in terms of legal consequences for their actions.
$OWNER$ = { is_independent_ruler = yes } $OWNER$ = { top_liege = this }
#Otherwise, certain victims are just not worth a strong hook. #Otherwise, certain victims are just not worth a strong hook.
$TARGET$ = { $TARGET$ = {
NOR = { NOR = {
@ -410,7 +406,7 @@ secret_embezzler_is_valid_trigger = {
secret_embezzler_is_criminal_trigger = { secret_embezzler_is_criminal_trigger = {
$OWNER$ = { $OWNER$ = {
any_secret = { any_secret = {
secret_type = secret_embezzler type = secret_embezzler
secret_target ?= $OWNER$.liege secret_target ?= $OWNER$.liege
var:embezzlement_stake >= { var:embezzlement_stake >= {
value = $OWNER$.monumental_gold_value value = $OWNER$.monumental_gold_value
@ -427,8 +423,8 @@ secret_coup_plotter_is_valid_trigger = {
# Can't coup yourself # Can't coup yourself
NOT = { $OWNER$ = $TARGET$ } NOT = { $OWNER$ = $TARGET$ }
# Both of y'all must still be admin # Both of y'all must still be admin
$OWNER$ = { government_has_flag = government_is_administrative } $OWNER$ = { government_allows = administrative }
$TARGET$ = { government_has_flag = government_is_administrative } $TARGET$ = { government_allows = administrative }
} }
secret_coup_plotter_is_criminal_trigger = { secret_coup_plotter_is_criminal_trigger = {
@ -445,3 +441,23 @@ secret_raid_estate_is_criminal_trigger = {
$OWNER$.var:raid_estate_permission ?= $TARGET$.house $OWNER$.var:raid_estate_permission ?= $TARGET$.house
} }
} }
secret_siphoned_treasury_is_valid_trigger = {
# Both of y'all must still have treasuries
$OWNER$ = { has_treasury = yes }
$TARGET$ = { has_treasury = yes }
}
# criminal only if the target is your liege or the Hegemon
secret_siphoned_treasury_is_criminal_trigger = {
$TARGET$ = {
OR = {
is_liege_or_above_of = $OWNER$
AND = {
exists = title:h_china
has_title = title:h_china
}
}
}
}

View file

@ -15,11 +15,9 @@ can_start_single_combat_eligibility_checks_trigger = {
is_adult = yes is_adult = yes
custom_description = { custom_description = {
text = banned_from_combat_old_and_frail text = banned_from_combat_old_and_frail
NOT = { NAND = {
AND = { age >= 70
age >= 70 prowess < 10
prowess < 10
}
} }
} }
# Filter out traits. # Filter out traits.
@ -62,6 +60,7 @@ single_combat_location_has_crocodilians_trigger = {
geographical_region = world_middle_east_persia geographical_region = world_middle_east_persia
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_india geographical_region = world_india
geographical_region = world_asia_southeast
} }
# Then, if any of those apply, drill down. # Then, if any of those apply, drill down.
OR = { OR = {

View file

@ -100,6 +100,11 @@ can_be_hashishiyah = {
has_trait = temperate has_trait = temperate
} }
NAND = { # Cannot be Zealous if faith views hashish as sinful
faith = { trait_is_sin = hashishiyah }
has_trait = zealous
}
OR = { OR = {
# Muslims always have access to Hashish... # Muslims always have access to Hashish...
faith = { faith = {
@ -108,25 +113,17 @@ can_be_hashishiyah = {
# Otherwise you must not be located in Europe (where Hashish was relatively unknown until modern times.) # Otherwise you must not be located in Europe (where Hashish was relatively unknown until modern times.)
AND = { AND = {
OR = { OR = {
AND = { capital_province ?= {
exists = capital_province save_temporary_scope_as = my_home_province
capital_province = {
save_temporary_scope_as = my_home_province
}
} }
AND = { liege.capital_province ?= {
exists = liege save_temporary_scope_as = my_home_province
exists = liege.capital_province
liege = {
capital_province = {
save_temporary_scope_as = my_home_province
}
}
} }
} }
scope:my_home_province = { scope:my_home_province = {
NOT = { NOR = {
geographical_region = world_europe geographical_region = world_europe
geographical_region = world_asia
} }
} }
} }
@ -163,7 +160,9 @@ can_be_reclusive = { # Must have a fitting personality or lifestyle
} }
can_be_irritable = { # Must have a fitting personality or lifestyle can_be_irritable = { # Must have a fitting personality or lifestyle
NOT = { has_trait = irritable } NOT = {
has_trait = irritable
}
OR = { OR = {
has_trait = wrathful has_trait = wrathful
has_trait = impatient has_trait = impatient
@ -175,7 +174,10 @@ can_be_irritable = { # Must have a fitting personality or lifestyle
} }
can_be_flagellant = { # Must have a fitting personality or lifestyle can_be_flagellant = { # Must have a fitting personality or lifestyle
NOT = { has_trait = flagellant } NOR = {
has_trait = flagellant
faith = { has_doctrine = special_doctrine_immaterial_harmony }
}
OR = { OR = {
has_trait = zealous has_trait = zealous
has_trait = chaste has_trait = chaste
@ -294,7 +296,7 @@ can_do_lustful_stress_conversion = {
religion = { is_in_family = rf_abrahamic } religion = { is_in_family = rf_abrahamic }
# So the Caliph doesn't just convert after a bad day # So the Caliph doesn't just convert after a bad day
NOT = { this = faith.religious_head } this != faith.religious_head
} }
can_inflict_torture = { can_inflict_torture = {
@ -318,4 +320,39 @@ can_be_eccentric = {
has_witnessed_stress_coping_trait = { has_witnessed_stress_coping_trait = {
NOT = { has_trait = $TRAIT$ } NOT = { has_trait = $TRAIT$ }
var:witnessed_trait ?= flag:$TRAIT$ var:witnessed_trait ?= flag:$TRAIT$
}
can_be_burdened = {
NOT = {
has_trait = burdened
}
is_adult = no
trigger_if = {
limit = {
faith = { has_doctrine = doctrine_gender_female_dominated }
}
is_female = yes
}
trigger_else_if = {
limit = {
faith = { has_doctrine = doctrine_gender_male_dominated }
}
is_female = no
}
trigger_else = { always = yes }
# TGP flavor stress trait
government_allows = merit
OR = {
# This stress trait is for children only, after all
has_trait = bossy
has_trait = pensive
has_trait = rowdy
# But kids get adult traits too
has_trait = wrathful
has_trait = impatient
has_trait = arrogant
has_trait = stubborn
has_trait = vengeful
has_trait = callous
}
} }

View file

@ -23,25 +23,39 @@ special_succession_jirga_trigger = {
} }
historical_succession_access_single_heir_succession_law_trigger = { historical_succession_access_single_heir_succession_law_trigger = {
OR = { trigger_if = {
has_title = title:k_austria limit = { government_allows = administrative }
has_title = title:e_roman_empire OR = {
has_title = title:e_byzantium tgp_japan_single_heir_succession_override_trigger = yes
AND = { tgp_korea_single_heir_succession_override_trigger = yes
has_title = title:e_france has_title = title:e_hindustan
is_target_in_global_variable_list = { has_title = title:h_china
name = unavailable_unique_decisions }
target = flag:flag_reformed_carolingian_empire }
} trigger_else = {
OR = {
has_title = title:k_austria
is_roman_emperor_trigger = yes
AND = {
has_title = title:e_france
is_target_in_global_variable_list = {
name = unavailable_unique_decisions
target = flag:flag_reformed_carolingian_empire
}
}
has_title = title:e_hindustan
has_title = title:h_china
AND = {
government_has_flag = government_is_japan_feudal
is_independent_ruler = yes
}
#Add any subsequent exceptions here.
} }
has_title = title:e_hindustan
#Add any subsequent exceptions here.
} }
NOT = { government_has_flag = government_is_administrative }
} }
historical_succession_access_single_heir_succession_law_youngest_trigger = { historical_succession_access_single_heir_succession_law_youngest_trigger = {
NOT = { government_has_flag = government_is_administrative } NOT = { government_allows = administrative }
OR = { OR = {
#has_title = title:e_byzantium #has_title = title:e_byzantium
#Add any subsequent exceptions here. #Add any subsequent exceptions here.
@ -49,9 +63,16 @@ historical_succession_access_single_heir_succession_law_youngest_trigger = {
} }
historical_succession_access_single_heir_dynasty_house_trigger = { historical_succession_access_single_heir_dynasty_house_trigger = {
NOT = { government_has_flag = government_is_administrative } NOT = { government_allows = administrative }
AND = { AND = {
has_title = title:d_bohemia has_title = title:d_bohemia
culture = { has_innovation = innovation_table_of_princes } culture = { has_innovation = innovation_table_of_princes }
} }
} }
can_have_meritocratic_regency_succession_law_trigger = {
has_tgp_dlc_trigger = yes
is_independent_ruler = yes
government_allows = administrative
government_allows = merit
}

View file

@ -265,4 +265,28 @@ can_create_transport_contract_trigger = {
} }
} }
} }
} }
contract_is_tier_3_contract_trigger = {
scope:task_contract.task_contract_tier = define:NTaskContract|HIGH_TASK_CONTRACT_TIER
}
contract_is_tier_2_contract_trigger = {
scope:task_contract.task_contract_tier = define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER
}
contract_is_tier_1_contract_trigger = {
scope:task_contract.task_contract_tier = define:NTaskContract|LOW_TASK_CONTRACT_TIER
}
is_tier_3_contract_trigger = {
task_contract_tier = define:NTaskContract|HIGH_TASK_CONTRACT_TIER
}
is_tier_2_contract_trigger = {
task_contract_tier = define:NTaskContract|MEDIUM_TASK_CONTRACT_TIER
}
is_tier_1_contract_trigger = {
task_contract_tier = define:NTaskContract|LOW_TASK_CONTRACT_TIER
}

View file

@ -57,7 +57,8 @@ has_mythical_founder_trigger = {
this = title:k_romagna this = title:k_romagna
this = title:k_sardinia this = title:k_sardinia
this = title:e_italy this = title:e_italy
this = title:e_roman_empire this = title:h_roman_empire
this = title:h_eastern_roman_empire
} }
OR = { # Ardashir OR = { # Ardashir
this = title:k_persia this = title:k_persia
@ -122,7 +123,7 @@ title_lost_from_realm_on_foreign_ruler_succession_trigger = {
NOR = { NOR = {
this = $LIEGE$ this = $LIEGE$
target_is_liege_or_above = $LIEGE$ target_is_liege_or_above = $LIEGE$
government_has_flag = government_is_administrative # Ignoring because admin counts do not take it with them, but immediately resign it when they inherit a governorship government_has_flag = government_is_special_administrative # Ignoring because admin counts do not take it with them, but immediately resign it when they inherit a governorship
} }
} }
} }
@ -135,14 +136,14 @@ character_title_allows_off_screen_wandering_trigger = {
AND = { AND = {
highest_held_title_tier >= tier_empire highest_held_title_tier >= tier_empire
OR = { OR = {
government_has_flag = government_is_administrative government_has_flag = government_is_special_administrative
government_has_flag = government_is_clan government_has_flag = government_is_clan
} }
} }
# No administrative kings. # No administrative kings.
AND = { AND = {
highest_held_title_tier = tier_kingdom highest_held_title_tier = tier_kingdom
government_has_flag = government_is_administrative government_has_flag = government_is_special_administrative
} }
# No religious heads. # No religious heads.
faith.religious_head ?= this faith.religious_head ?= this

View file

@ -252,5 +252,6 @@ has_any_travel_poi_trigger = {
has_travel_point_of_interest = poi_mausoleum_at_halicarnassus has_travel_point_of_interest = poi_mausoleum_at_halicarnassus
has_travel_point_of_interest = poi_lighthouse_of_alexandria has_travel_point_of_interest = poi_lighthouse_of_alexandria
has_travel_point_of_interest = poi_natural_feature has_travel_point_of_interest = poi_natural_feature
has_travel_point_of_interest = poi_mandala_capital
} }
} }

View file

@ -4,10 +4,10 @@
# has_same_vassal_stance_as_trigger # has_same_vassal_stance_as_trigger
has_same_vassal_stance_as_trigger = { has_same_vassal_stance_as_trigger = {
is_independent_ruler = no top_liege != this
save_temporary_scope_as = vassal_temp save_temporary_scope_as = vassal_temp
$COMPARE$ = { $COMPARE$ = {
is_independent_ruler = no top_liege != this
save_temporary_scope_as = compare_temp save_temporary_scope_as = compare_temp
} }
scope:compare_temp = { scope:compare_temp = {
@ -25,7 +25,7 @@ has_same_vassal_stance_as_trigger = {
} }
vassal_is_valid_and_follows_directive_trigger = { vassal_is_valid_and_follows_directive_trigger = {
is_independent_ruler = no top_liege != this
is_landed = yes is_landed = yes
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
is_ai = yes is_ai = yes
@ -39,7 +39,7 @@ vassal_follows_directive_valid_trigger = {
scope:directive_vassal = { scope:directive_vassal = {
trigger_if = { trigger_if = {
limit = { limit = {
scope:directive_liege = { government_has_flag = government_is_administrative } scope:directive_liege = { government_allows = administrative }
} }
is_vassal_of = scope:directive_liege is_vassal_of = scope:directive_liege
} }
@ -63,7 +63,7 @@ vassal_follows_directive_trigger = {
} }
custom_tooltip = { custom_tooltip = {
text = has_admin_gov text = has_admin_gov
government_has_flag = government_is_administrative government_allows = administrative
} }
} }
opinion = { opinion = {

View file

@ -25,11 +25,11 @@ at_war_with_any_non_coreligionist_trigger = {
OR = { OR = {
primary_attacker = { primary_attacker = {
is_at_war_with = root is_at_war_with = root
NOT = { faith = root.faith } faith != root.faith
} }
primary_defender = { primary_defender = {
is_at_war_with = root is_at_war_with = root
NOT = { faith = root.faith } faith != root.faith
} }
} }
} }
@ -44,11 +44,11 @@ at_war_only_with_coreligionists_trigger = {
OR = { OR = {
primary_attacker = { primary_attacker = {
is_at_war_with = root is_at_war_with = root
NOT = { faith = root.faith } faith != root.faith
} }
primary_defender = { primary_defender = {
is_at_war_with = root is_at_war_with = root
NOT = { faith = root.faith } faith != root.faith
} }
} }
} }
@ -87,7 +87,7 @@ joiner_not_already_in_another_war_with_any_target_war_participants_trigger = {
subject = $JOINER$ subject = $JOINER$
NOT = { NOT = {
any_war_enemy = { any_war_enemy = {
NOT = { this = scope:primary_enemy } #Already handled above this != scope:primary_enemy #Already handled above
OR = { OR = {
AND = { AND = {
scope:target = { primary_defender = scope:primary_enemy } scope:target = { primary_defender = scope:primary_enemy }
@ -146,7 +146,7 @@ joiner_not_already_in_another_war_with_any_target_war_participants_trigger = {
subject = $JOINER$ subject = $JOINER$
NOT = { NOT = {
any_war_ally = { any_war_ally = {
NOT = { this = scope:primary_enemy } #Already handled above this != scope:primary_enemy #Already handled above
OR = { OR = {
AND = { AND = {
scope:target = { primary_defender = scope:primary_enemy } scope:target = { primary_defender = scope:primary_enemy }
@ -170,9 +170,9 @@ can_potentially_call_ally_trigger = {
$JOINER$ = { $JOINER$ = {
trigger_if = { trigger_if = {
limit = { limit = {
NOT = { NOT = {
# Diarchs can join against other vassals. # Diarchs can join against other vassals.
this ?= $WARRIOR$.diarch this ?= $WARRIOR$.diarch
# Confederation members can join the confederation leader's defensive wars # Confederation members can join the confederation leader's defensive wars
AND = { AND = {
is_confederation_member = yes is_confederation_member = yes
@ -222,39 +222,21 @@ can_potentially_call_ally_trigger = {
war_declarer_needs_hook_on_liege = { war_declarer_needs_hook_on_liege = {
scope:actor = { scope:actor = {
trigger_if = { top_liege != this
limit = { liege != scope:recipient
is_independent_ruler = no NAND = {
government_allows = administrative
liege = { government_allows = administrative }
}
NOT = {
vassal_contract_has_flag = vassal_contract_war_override
}
OR = {
AND = {
liege = scope:recipient.liege liege = scope:recipient.liege
NOT = { liege = scope:recipient }
NAND = {
government_has_flag = government_is_administrative
liege = { government_has_flag = government_is_administrative }
}
liege = { has_realm_law_flag = vassal_internal_wars_banned } liege = { has_realm_law_flag = vassal_internal_wars_banned }
NOT = {
vassal_contract_has_flag = vassal_contract_war_override
}
} }
always = yes liege = { has_realm_law_flag = vassal_all_wars_banned }
}
trigger_else_if = {
limit = {
is_independent_ruler = no
NOT = { liege = scope:recipient }
NAND = {
government_has_flag = government_is_administrative
liege = { government_has_flag = government_is_administrative }
}
liege = { has_realm_law_flag = vassal_all_wars_banned }
NOT = {
vassal_contract_has_flag = vassal_contract_war_override
}
}
always = yes
}
trigger_else = {
always = no
} }
} }
} }
@ -274,31 +256,64 @@ can_use_conquest_cbs_trigger = {
government_has_flag = government_is_tribal government_has_flag = government_is_tribal
government_has_flag = government_is_clan government_has_flag = government_is_clan
government_has_flag = government_is_nomadic government_has_flag = government_is_nomadic
government_has_flag = government_is_steppe_admin
faith = { has_doctrine_parameter = conquest_cb_enabled } faith = { has_doctrine_parameter = conquest_cb_enabled }
culture = { has_cultural_parameter = can_use_conquest_cbs } culture = { has_cultural_parameter = can_use_conquest_cbs }
AND = {
government_has_flag = government_is_japan_feudal
has_realm_law = imperial_expansion_law
}
} }
} }
can_be_warrior_trigger = { can_be_warrior_trigger = {
is_adult = yes is_available_quick = {
is_imprisoned = no adult = yes
NOT = { has_trait = incapable } imprisoned = no
incapable = no
}
tgp_is_ceremonial_liege_trigger = no
OR = { OR = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $ARMY_OWNER$ } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $ARMY_OWNER$ }
AND = { AND = {
$ARMY_OWNER$.culture = { $ARMY_OWNER$.culture = { has_cultural_parameter = high_prowess_ignores_knight_restrictions }
has_cultural_parameter = high_prowess_ignores_knight_restrictions
}
prowess >= 10 prowess >= 10
} }
# Japan Onna-musha
trigger_if = {
limit = {
#not for admin
$ARMY_OWNER$ = {
NOT = {
government_allows = administrative
}
culture = { has_cultural_parameter = non_admin_close_family_non_martial_gender_knights_in_defensive_wars }
}
culture = { has_cultural_parameter = non_admin_close_family_non_martial_gender_knights_in_defensive_wars }
}
AND = {
$ARMY_OWNER$ = { is_at_war_as_defender = yes }
OR = {
is_spouse_of = $ARMY_OWNER$
AND = {
is_close_family_of = $ARMY_OWNER$
is_married = no
}
}
}
}
} }
} }
can_be_knight_trigger = { can_be_knight_trigger = {
is_hostage = no is_available_quick = {
ai = yes
hostage = no
}
can_be_warrior_trigger = { ARMY_OWNER = $ARMY_OWNER$ }
trigger_if = { # Admin governors cannot be knights trigger_if = { # Admin governors cannot be knights
limit = { limit = {
$ARMY_OWNER$ = { government_has_flag = government_is_administrative } $ARMY_OWNER$ = { government_allows = administrative }
is_courtier = no is_courtier = no
} }
primary_title ?= { primary_title ?= {
@ -317,13 +332,9 @@ can_be_knight_trigger = {
} }
prowess >= 12 prowess >= 12
} }
can_be_warrior_trigger = { ARMY_OWNER = $ARMY_OWNER$ }
trigger_if = { trigger_if = {
limit = { limit = {
OR = { is_clergy = yes
has_trait = devoted
is_clergy = yes
}
} }
OR = { OR = {
faith = { has_doctrine_parameter = clergy_can_fight } faith = { has_doctrine_parameter = clergy_can_fight }
@ -353,27 +364,24 @@ can_be_knight_trigger = {
limit = { limit = {
exists = liege.diarch exists = liege.diarch
} }
NOT = { this = liege.diarch } this != liege.diarch
} }
is_ai = yes
} }
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
can_be_commander_basic_trigger = { can_be_commander_basic_trigger = {
is_alive = yes is_available_quick = {
is_adult = yes alive = yes
is_hostage = no adult = yes
NOR = { incapable = no
has_trait = incapable hostage = no
AND = { }
OR = { NAND = {
has_trait = devoted is_clergy = yes
is_clergy = yes NOR = {
} has_trait = order_member # Order Members will fight for their faith even if their faith says no
NOR = { faith = { has_doctrine_parameter = clergy_can_fight }
has_trait = order_member # Order Members will fight for their faith even if their faith says no culture = { has_cultural_parameter = culture_clergy_can_fight }
faith = { has_doctrine_parameter = clergy_can_fight }
culture = { has_cultural_parameter = culture_clergy_can_fight }
}
} }
} }
@ -385,25 +393,41 @@ can_be_commander_basic_trigger = {
trigger_if = { trigger_if = {
limit = { $ARMY_OWNER$ = { is_ai = yes } } limit = { $ARMY_OWNER$ = { is_ai = yes } }
is_ai = yes is_ai = yes
highest_held_title_tier < tier_hegemony
} }
} }
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
can_be_commander_now_trigger = { can_be_commander_now_trigger = {
can_be_commander_basic_trigger = { ARMY_OWNER = $ARMY_OWNER$ } is_available_quick = {
is_imprisoned = no alive = yes
adult = yes
imprisoned = no
travel = no
}
OR = { # You can always lead your own armies
this = $ARMY_OWNER$
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $ARMY_OWNER$ }
}
trigger_if = {
limit = { $ARMY_OWNER$ = { is_ai = yes } }
is_ai = yes
}
custom_description = { custom_description = {
text = ALREADY_IN_ACTIVITY text = ALREADY_IN_ACTIVITY
NOR = { NOR = {
exists = involved_activity exists = involved_activity
has_variable = homage_liege_scope has_variable = homage_liege_scope
has_character_flag = meditation_character_flag has_character_flag = meditation_character_flag
has_character_flag = local_shrine_rite
has_character_flag = petition_liege_character_flag has_character_flag = petition_liege_character_flag
has_character_flag = holding_court_character_flag has_character_flag = holding_court_character_flag
is_being_visited_on_tour_strict = yes is_being_visited_on_tour_strict = yes
} }
} }
# Must not be currently coming from or going somewhere
is_travelling = no
} }
get_valid_commander_list_trigger = { get_valid_commander_list_trigger = {
@ -531,8 +555,7 @@ special_invasion_cb_seize_land_in_region_trigger = {
} }
# Title is owned by the current holder of the invasion's target kingdom # Title is owned by the current holder of the invasion's target kingdom
AND = { AND = {
exists = holder holder ?= $TARGET_KINGDOM$.holder
holder = $TARGET_KINGDOM$.holder
kingdom = $TARGET_KINGDOM$ kingdom = $TARGET_KINGDOM$
} }
} }
@ -545,16 +568,14 @@ special_invasion_cb_seize_land_in_region_trigger = {
geographical_region = $TARGET_REGION$ geographical_region = $TARGET_REGION$
} }
AND = { AND = {
exists = holder holder ?= $TARGET_KINGDOM$.holder
holder = $TARGET_KINGDOM$.holder
kingdom = $TARGET_KINGDOM$ kingdom = $TARGET_KINGDOM$
} }
} }
trigger_if = { trigger_if = {
# If our de jure liege is an existing duchy that would have been siezed in the duchy step, do not transfer the county (it has already been transferred). # If our de jure liege is an existing duchy that would have been siezed in the duchy step, do not transfer the county (it has already been transferred).
limit = { limit = {
exists = de_jure_liege de_jure_liege ?= {
de_jure_liege = {
exists = holder exists = holder
OR = { OR = {
capital_vassal = { capital_vassal = {
@ -563,8 +584,7 @@ special_invasion_cb_seize_land_in_region_trigger = {
} }
} }
AND = { AND = {
exists = holder holder ?= $TARGET_KINGDOM$.holder
holder = $TARGET_KINGDOM$.holder
kingdom = $TARGET_KINGDOM$ kingdom = $TARGET_KINGDOM$
} }
} }
@ -636,8 +656,7 @@ pressing_claim_of_character_trigger = {
save_temporary_scope_as = claim_presser save_temporary_scope_as = claim_presser
any_character_war = { any_character_war = {
primary_attacker = scope:claim_presser primary_attacker = scope:claim_presser
exists = claimant claimant ?= $CHARACTER$
claimant = $CHARACTER$
} }
} }
} }
@ -659,7 +678,7 @@ conquest_cb_holder_under_target_can_be_vassalized = {
# We can only vassalize characters of a lower tier than us. # We can only vassalize characters of a lower tier than us.
highest_held_title_tier < scope:attacker.highest_held_title_tier highest_held_title_tier < scope:attacker.highest_held_title_tier
# We can't vassalize Governors # We can't vassalize Governors
NOT = { government_has_flag = government_is_administrative } NOT = { government_has_flag = government_is_special_administrative }
# Only (sub)vassals of the defender can be considered for transfer (no poaching vassals from 3rd parties without fighting them!) # Only (sub)vassals of the defender can be considered for transfer (no poaching vassals from 3rd parties without fighting them!)
target_is_liege_or_above = scope:defender target_is_liege_or_above = scope:defender
# *All* of a character's subrealm must be within the target area. If we're attacking for Jerusalem, we don't want to also be stealing parts of Egypt, Syria, etc. # *All* of a character's subrealm must be within the target area. If we're attacking for Jerusalem, we don't want to also be stealing parts of Egypt, Syria, etc.
@ -705,47 +724,42 @@ desirable_for_capture_trigger = {
} }
can_use_viking_invasion_cbs_trigger = { can_use_viking_invasion_cbs_trigger = {
OR = { trigger_if = { # Conquerors go for neighbors, no need to go overseas
# Vanilla behaviour. limit = {
AND = { has_trait = conqueror
has_fp1_dlc_trigger = no is_ai = yes
can_use_viking_invasion_cbs_dlc_trigger = yes
} }
# DLC behaviour.. always = no
AND = { }
trigger_else_if = {
limit = {
has_fp1_dlc_trigger = yes has_fp1_dlc_trigger = yes
OR = {
#Players are under no restrictions.
AND = {
is_ai = no
can_use_viking_invasion_cbs_dlc_trigger = yes
}
#If the host has fp1, then we want Scandis to beat each other up and export the losers overseas, not form huge overseas empires themselves.
AND = {
can_use_viking_invasion_cbs_dlc_trigger = yes
top_liege = {
any_realm_county = {
count = all
title_province = {
NOT = { geographical_region = world_europe_north }
}
}
}
}
}
} }
can_use_viking_invasion_cbs_dlc_trigger = yes
OR = {
#If the host has fp1, then we want Scandis to beat each other up and export the losers overseas, not form huge overseas empires themselves.
capital_province = {
NOT = { geographical_region = world_europe_north }
}
#Players are under no restrictions.
is_ai = no
}
}
trigger_else = {
has_fp1_dlc_trigger = no
can_use_viking_invasion_cbs_dlc_trigger = yes
} }
} }
can_use_viking_invasion_cbs_dlc_trigger = { can_use_viking_invasion_cbs_dlc_trigger = {
faith = { has_doctrine = tenet_warmonger }
culture = { has_innovation = innovation_longboats } culture = { has_innovation = innovation_longboats }
faith = { has_doctrine = tenet_warmonger }
any_sub_realm_county = { is_coastal_county = yes } any_sub_realm_county = { is_coastal_county = yes }
trigger_if = { trigger_if = {
limit = { is_ai = yes } limit = { is_ai = yes }
prestige >= 75 prestige >= 75
OR = { OR = {
is_independent_ruler = yes top_liege = this
primary_title.tier >= tier_kingdom primary_title.tier >= tier_kingdom
} }
NOT = { NOT = {
@ -858,12 +872,12 @@ character_is_potential_valuable_prisoner = {
religious_war_vassals_constraints = { religious_war_vassals_constraints = {
trigger_if = { trigger_if = {
limit = { limit = {
scope:attacker = { is_independent_ruler = no } scope:attacker = { top_liege != this }
} }
scope:attacker = { scope:attacker = {
NOT = { character_is_land_realm_neighbor = scope:defender } NOT = { character_is_land_realm_neighbor = scope:defender }
} }
scope:defender = { is_independent_ruler = yes } scope:defender = { top_liege = this }
} }
trigger_else = { trigger_else = {
always = no always = no
@ -906,6 +920,18 @@ herders_and_tributary_constraints = {
} }
} }
} }
#Mandala Vassals shouldn't attack their Liege's Tributaries
trigger_if = {
limit = {
scope:attacker = {
is_independent_ruler = no
liege ?= { government_has_flag = government_is_mandala }
}
}
NOT = {
scope:defender = { is_tributary_of = scope:attacker.liege }
}
}
} }
} }
@ -940,11 +966,11 @@ feudal_clan_tribal_conquest_constraints = {
government_has_flag = government_is_tribal government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic government_has_flag = government_is_nomadic
} }
gold < 200 short_term_gold < 200
OR = { OR = {
AND = { AND = {
government_has_flag = government_is_administrative government_has_flag = government_is_special_administrative
gold < 700 short_term_gold < 700
this != top_liege this != top_liege
} }
any_sub_realm_county = { any_sub_realm_county = {

View file

@ -84,6 +84,9 @@ temperate_seasons_trigger = {
geographical_region = world_africa_north geographical_region = world_africa_north
geographical_region = world_steppe geographical_region = world_steppe
geographical_region = world_tibet geographical_region = world_tibet
geographical_region = world_asia_china
geographical_region = world_asia_japan
geographical_region = world_asia_korea
} }
} }
} }
@ -100,6 +103,8 @@ tropical_seasons_region_trigger = {
geographical_region = world_africa_east geographical_region = world_africa_east
geographical_region = world_india_deccan geographical_region = world_india_deccan
geographical_region = world_burma geographical_region = world_burma
geographical_region = world_asia_china
geographical_region = world_asia_southeast
} }
} }
@ -177,17 +182,6 @@ current_season_winter = {
current_month < 2 current_month < 2
} }
} }
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_burma
}
}
OR = {
current_month >= 11
current_month < 3
}
}
trigger_else = { trigger_else = {
#Generic Northern Hemisphere #Generic Northern Hemisphere
OR = { OR = {
@ -199,6 +193,8 @@ current_season_winter = {
NOR = { NOR = {
geographical_region = seasonal_region_east_africa geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_maritime_southeast_asia
geographical_region = seasonal_region_peninsular_southeast_asia
} }
} }
} }
@ -242,7 +238,8 @@ current_season_autumn = {
NOR = { NOR = {
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_deccan geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_burma geographical_region = seasonal_region_peninsular_southeast_asia
geographicaL_region = seasonal_region_maritime_southeast_asia
} }
} }
} }
@ -277,15 +274,6 @@ current_season_summer = {
current_month >= 4 current_month >= 4
current_month < 6 current_month < 6
} }
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_burma
}
}
current_month >= 3
current_month < 5
}
trigger_else = { trigger_else = {
#Generic Northern Hemisphere #Generic Northern Hemisphere
current_month >= 6 current_month >= 6
@ -295,6 +283,8 @@ current_season_summer = {
NOR = { NOR = {
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_east_africa geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
} }
} }
} }
@ -330,7 +320,8 @@ current_season_spring = {
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_rajasthan geographical_region = seasonal_region_rajasthan
geographical_region = seasonal_region_deccan geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_burma geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
} }
} }
} }
@ -342,6 +333,10 @@ current_season_dry_season = {
OR = { OR = {
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_east_africa geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
geographical_region = seasonal_region_bengal
geographical_region = seasonal_region_deccan
} }
} }
trigger_if = { trigger_if = {
@ -353,9 +348,51 @@ current_season_dry_season = {
current_month < 5 current_month < 5
} }
} }
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_east_africa
}
}
OR = {
current_month >= 12
current_month < 3
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_maritime_southeast_asia
}#April to September
}
current_month >= 4
current_month < 10
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_peninsular_southeast_asia
}
}
OR = { #November to May
current_month >= 11
current_month < 6
}
}
trigger_else_if = {
limit = {
location = {
geographical_region = seasonal_region_bengal
}
}
OR = {
current_month >= 12
current_month < 3
}
}
trigger_else = { trigger_else = {
location = { location = {
geographical_region = seasonal_region_east_africa geographical_region = seasonal_region_deccan
} }
OR = { OR = {
current_month >= 12 current_month >= 12
@ -368,12 +405,13 @@ current_season_rainy_season = {
#Jasons triggers here #Jasons triggers here
location = { location = {
OR = { OR = {
geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_rajasthan
geographical_region = seasonal_region_bengal
geographical_region = seasonal_region_burma
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_west_africa
geographical_region = seasonal_region_east_africa geographical_region = seasonal_region_east_africa
geographical_region = seasonal_region_peninsular_southeast_asia
geographical_region = seasonal_region_maritime_southeast_asia
geographical_region = seasonal_region_bengal
geographical_region = seasonal_region_deccan
geographical_region = seasonal_region_rajasthan
} }
} }
#southern region with rainy/dry seasons #southern region with rainy/dry seasons
@ -407,20 +445,22 @@ current_season_rainy_season = {
trigger_else_if = { trigger_else_if = {
limit = { limit = {
location = { location = {
geographical_region = seasonal_region_burma geographical_region = seasonal_region_peninsular_southeast_asia
} }
} } #June to October
current_month >= 5 current_month >= 6
current_month < 11 current_month < 11
} }
trigger_else_if = { trigger_else_if = {
limit = { limit = {
location = { location = {
geographical_region = seasonal_region_west_africa geographical_region = seasonal_region_maritime_southeast_asia
} }
} #October to March
OR = {
current_month >= 10
current_month < 4
} }
current_month >= 5
current_month < 11
} }
trigger_else = { trigger_else = {
location = { location = {

View file

@ -1,6 +1,6 @@
use_convert_to_witchcraft_secrecy_trigger = { use_convert_to_witchcraft_secrecy_trigger = {
$OWNER$ = { $OWNER$ = {
any_secret = { secret_type = secret_witch } any_secret = { type = secret_witch }
save_temporary_scope_as = witchract_secrecy_check save_temporary_scope_as = witchract_secrecy_check
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = witch GENDER_CHARACTER = scope:witchract_secrecy_check } trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = witch GENDER_CHARACTER = scope:witchract_secrecy_check }
} }

View file

@ -74,10 +74,7 @@ ep1_character_had_or_has_inspiration_type_trigger = {
exists = var:created_artifact_type exists = var:created_artifact_type
var:created_artifact_type = flag:$TYPE$ var:created_artifact_type = flag:$TYPE$
} }
AND = { inspiration ?= { has_inspiration_type = $TYPE$_inspiration }
exists = inspiration
inspiration = { has_inspiration_type = $TYPE$_inspiration }
}
} }
} }
@ -182,6 +179,10 @@ character_can_be_employed_in_a_court_position_trigger = {
can_employ_court_position_type = court_tutor_court_position can_employ_court_position_type = court_tutor_court_position
$CHARACTER$ = { can_be_employed_as = court_tutor_court_position } $CHARACTER$ = { can_be_employed_as = court_tutor_court_position }
} }
AND = {
can_employ_court_position_type = court_guru_court_position
$CHARACTER$ = { can_be_employed_as = court_guru_court_position }
}
AND = { AND = {
can_employ_court_position_type = cupbearer_court_position can_employ_court_position_type = cupbearer_court_position
$CHARACTER$ = { can_be_employed_as = cupbearer_court_position } $CHARACTER$ = { can_be_employed_as = cupbearer_court_position }
@ -253,6 +254,7 @@ can_be_employed_in_any_court_position_trigger = {
can_be_employed_as = high_almoner_court_position can_be_employed_as = high_almoner_court_position
can_be_employed_as = seneschal_court_position can_be_employed_as = seneschal_court_position
can_be_employed_as = court_tutor_court_position can_be_employed_as = court_tutor_court_position
can_be_employed_as = court_guru_court_position
can_be_employed_as = cupbearer_court_position can_be_employed_as = cupbearer_court_position
can_be_employed_as = chief_eunuch_court_position can_be_employed_as = chief_eunuch_court_position
can_be_employed_as = antiquarian_court_position can_be_employed_as = antiquarian_court_position
@ -299,7 +301,7 @@ target_of_powerful_faction_trigger = {
} }
trigger_if = { trigger_if = {
limit = { exists = special_character } limit = { exists = special_character }
NOT = { special_character = faction_target.liege } special_character != faction_target.liege
} }
} }
@ -312,6 +314,7 @@ province_has_no_holding_trigger = { # province has no holding
has_holding_type = church_holding has_holding_type = church_holding
has_holding_type = herder_holding has_holding_type = herder_holding
has_holding_type = nomad_holding has_holding_type = nomad_holding
has_holding_type = temple_citadel_holding
} }
} }
@ -377,7 +380,7 @@ indebt_guest_interaction_basic_checks_trigger = {
has_dlc_feature = royal_court has_dlc_feature = royal_court
# Gotta have maxed servants to help. # Gotta have maxed servants to help.
amenity_level = { amenity_level = {
type = court_servants target = court_servants
value >= max_amenity_level value >= max_amenity_level
} }
} }
@ -398,3 +401,14 @@ artifact_house_not_owns_or_claims_trigger = {
house_head.dynasty = scope:familial_banner.var:banner_dynasty house_head.dynasty = scope:familial_banner.var:banner_dynasty
} }
} }
is_composite_bow_culture_trigger = {
OR = {
has_cultural_tradition = tradition_horse_lords
has_cultural_pillar = heritage_byzantine
has_cultural_pillar = heritage_caucasian
has_cultural_pillar = heritage_turkic
has_cultural_pillar = heritage_mongolic
has_innovation = innovation_advanced_bowmaking
}
}

View file

@ -1,58 +1,49 @@
##### FAMILY FEUD ##### ##### FAMILY FEUD #####
# Story has variable with specified flag # Relation has variable with specified flag
house_feud_story_flag_trigger = { house_relation_feud_flag_trigger = {
story_type = story_cycle_house_feud has_bp1_dlc_trigger = yes
has_house_relation_level = feud
exists = var:$VARIABLE$ exists = var:$VARIABLE$
var:$VARIABLE$ = flag:$FLAG$ var:$VARIABLE$ = flag:$FLAG$
} }
# Feud story targets a specified House # Feud relation targeting a specified House
existing_feud_against_target_trigger = { house_has_feud_relation_with_trigger = {
exists = house
exists = $TARGET$.house
house != $TARGET$.house
OR = { OR = {
house.house_head ?= { house = {
any_owned_story = { any_house_relation = {
story_type = story_cycle_house_feud has_house_relation_level = feud
var:house_feud_house ?= $TARGET$.house any_relation_house = { $TARGET$.house = this }
} }
} }
exists = scope:return_feud_as_true_for_debug exists = scope:return_feud_as_true_for_debug
} }
has_bp1_dlc_trigger = yes
} }
# General checks house head can start a feud # General checks house head can start a feud
house_head_can_start_feud_trigger = { valid_for_feud_events_trigger = {
has_bp1_dlc_trigger = yes
# Must be House Head # Must be House Head
is_house_head = yes is_house_head = yes
# Stop unlanded AI going crazy with feuds # Stop unlanded AI going crazy
is_playable_character = yes is_playable_character = yes
NOR = { is_available_adult = yes
# House must not have started a feud recently
exists = house.var:house_feud_cooldown
# Only one Feud can be started per House Head
has_character_flag = had_house_feud_story
# Cannot already be Feuding
any_owned_story = { story_type = story_cycle_house_feud }
}
# Has not recently ended a Feud
house_feud_house_any_end_modifier_trigger = no
# House must be sufficiently large to support a Feud
house = {
any_house_member = {
count >= 5
is_alive = yes
is_adult = yes
}
}
# Save scopes for checking against # Save scopes for checking against
save_temporary_scope_as = house_head_temp save_temporary_scope_as = house_head_temp
} }
house_head_can_start_feud_against_trigger = { valid_for_feud_events_with_target_trigger = {
# General checks that house head can start a feud # General checks
house_head_can_start_feud_trigger = yes valid_for_feud_events_trigger = yes
# Victim House Head must exist # Victim House Head must exist
exists = $TARGET$.house.house_head exists = $TARGET$.house.house_head
# Target House must be different
NOT = { house = $TARGET$.house }
# Ensure target is 'equal' # Ensure target is 'equal'
trigger_if = { trigger_if = {
limit = { limit = {
@ -79,8 +70,6 @@ house_head_can_start_feud_against_trigger = {
is_close_family_of = $TARGET$.house.house_head is_close_family_of = $TARGET$.house.house_head
# Is not friendly with target House Head # Is not friendly with target House Head
has_any_good_relationship_with_character_trigger = { CHARACTER = $TARGET$.house.house_head } has_any_good_relationship_with_character_trigger = { CHARACTER = $TARGET$.house.house_head }
# Target House must be different
house = $TARGET$.house
} }
# Avoid starting Feuds between Vassals and Lieges, as they are not 'equals' # Avoid starting Feuds between Vassals and Lieges, as they are not 'equals'
trigger_if = { trigger_if = {
@ -99,15 +88,6 @@ house_head_can_start_feud_against_trigger = {
$TARGET$.house.house_head = { save_temporary_scope_as = target_house_head_temp } $TARGET$.house.house_head = { save_temporary_scope_as = target_house_head_temp }
} }
# Feud target house has living members
house_feud_target_house_alive_trigger = {
any_owned_story = {
story_type = story_cycle_house_feud
exists = var:house_feud_house
var:house_feud_house.house_head = { is_alive = yes }
}
}
# House Head, and House is valid to be a Feud target # House Head, and House is valid to be a Feud target
house_feud_valid_feud_target_trigger = { house_feud_valid_feud_target_trigger = {
exists = house exists = house
@ -160,30 +140,16 @@ house_feud_member_trigger = {
} }
} }
# House has no ongoing Fued modifiers or rewards
house_feud_house_any_end_modifier_trigger = {
OR = {
exists = var:house_feud_swapped_house
house = {
OR = {
has_house_modifier = house_feud_terrible_modifier
has_house_modifier = house_feud_bad_modifier
has_house_modifier = house_feud_even_modifier
has_house_modifier = house_feud_good_modifier
has_house_modifier = house_feud_excellent_modifier
}
}
}
}
# House has no remaining members # House has no remaining members
house_feud_wiped_out_trigger = { house_feud_wiped_out_trigger = {
trigger_if = { house ?= {
limit = { exists = var:house_feud_first_rival.house } any_house_relation = {
var:house_feud_first_rival.house = { has_house_relation_level = feud
NOT = { exists = house_head } any_relation_house = {
NOT = { this = $TARGET$.house
any_house_member = { is_alive = yes } NOT = {
any_house_member = { is_alive = yes }
}
} }
} }
} }
@ -216,54 +182,59 @@ bp1_yearly_8100_sycophant_trigger = {
has_relation_friend = $LIEGE$ has_relation_friend = $LIEGE$
can_set_relation_friend_trigger = { CHARACTER = $LIEGE$ } can_set_relation_friend_trigger = { CHARACTER = $LIEGE$ }
any_secret = { any_secret = {
secret_type = secret_lover type = secret_lover
secret_target = $LIEGE$ secret_target = $LIEGE$
} }
} }
NOT = { is_close_or_extended_family_of = $LIEGE$ } NOT = { is_close_or_extended_family_of = $LIEGE$ }
} }
house_feud_ai_scheme_trigger = { ##################################################
is_adult = yes # Feud AI Scheme Triggers
is_ai = yes
ai_honor < medium_positive_ai_value
any_scheme = { count < 1 }
OR = {
house_feud_ai_murder_join_trigger = yes
house_feud_ai_murder_start_trigger = yes
house_feud_ai_seduce_start_trigger = yes
}
}
house_feud_ai_murder_join_trigger = { house_feud_ai_murder_join_trigger = {
house = { save_temporary_scope_as = instigator_temp
house ?= {
any_house_member = { any_house_member = {
any_scheme = { any_scheme = {
scheme_type = murder type = murder
exists = scheme_target_character.house scope:scheme_target_character.house ?= {
scheme_target_character.house = scope:story.var:house_feud_house NOT = { this = scope:instigator_temp.house }
any_house_relation = {
has_house_relation_parameter = members_more_likely_to_scheme_hostile
any_relation_house = { this = scope:instigator_temp.house }
}
}
save_temporary_scope_as = murder_scheme_temp save_temporary_scope_as = murder_scheme_temp
} }
} }
} }
trigger_if = { trigger_if = {
limit = { exists = scope:murder_scheme_temp } limit = { exists = scope:murder_scheme_temp }
char_can_fit_into_scheme_trigger = { SCHEME = scope:murder_scheme_temp }
NOR = { NOR = {
is_scheming_against = { target = scope:murder_scheme_temp.scheme_target_character } is_scheming_against = { target = scope:murder_scheme_temp.scheme_target_character }
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:murder_scheme_temp.scheme_target_character } has_any_good_relationship_with_character_trigger = { CHARACTER = scope:murder_scheme_temp.scheme_target_character }
} }
char_can_fit_into_scheme_trigger = { SCHEME = scope:murder_scheme_temp }
} }
trigger_else = { always = no } trigger_else = { always = no }
} }
house_feud_ai_murder_start_trigger = { house_feud_ai_murder_start_trigger = {
scope:story.var:house_feud_house = { save_temporary_scope_as = instigator_temp
any_house_member = { save_temporary_scope_as = murder_victim_temp } house ?= {
any_house_relation = {
has_house_relation_parameter = members_more_likely_to_scheme_hostile
any_relation_house = {
NOT = { this = scope:instigator_temp.house }
any_house_member = { save_temporary_scope_as = murder_victim_temp }
}
}
} }
trigger_if = { trigger_if = {
limit = { exists = scope:murder_victim_temp } limit = { exists = scope:murder_victim_temp }
NOT = { NOR = {
is_scheming_against = { target = scope:murder_victim_temp }
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:murder_victim_temp } has_any_good_relationship_with_character_trigger = { CHARACTER = scope:murder_victim_temp }
} }
can_start_scheme = { can_start_scheme = {
@ -275,25 +246,33 @@ house_feud_ai_murder_start_trigger = {
} }
house_feud_ai_seduce_start_trigger = { house_feud_ai_seduce_start_trigger = {
save_temporary_scope_as = instigator_temp
NOR = { NOR = {
has_trait = celibate
has_trait = chaste has_trait = chaste
has_trait = devoted
} }
scope:story.var:house_feud_house = { might_cheat_on_every_partner_trigger = yes
any_house_member = { house ?= {
is_married = yes any_house_relation = {
save_temporary_scope_as = seduce_victim_temp has_house_relation_parameter = members_more_likely_to_scheme_hostile
any_spouse = { any_relation_house = {
trigger_if = { NOT = { this = scope:instigator_temp.house }
limit = { any_house_member = {
exists = house is_married = yes
NOT = { house = scope:seduce_victim_temp.house } save_temporary_scope_as = seduce_victim_temp
} any_spouse = {
trigger_if = {
limit = {
exists = house
house != scope:seduce_victim_temp.house
}
}
NOT = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:seduce_victim_temp }
}
save_temporary_scope_as = seduce_spouse_temp
}
} }
NOT = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:seduce_victim_temp }
}
save_temporary_scope_as = seduce_spouse_temp
} }
} }
} }

View file

@ -66,13 +66,13 @@ hostage_oath_of_friendship_trigger = {
OR = { OR = {
scope:actor = { scope:actor = {
any_memory = { any_memory = {
has_memory_type = hostage_oath_of_friendship memory_type = hostage_oath_of_friendship
has_memory_participant = scope:recipient has_memory_participant = scope:recipient
} }
} }
scope:recipient = { scope:recipient = {
any_memory = { any_memory = {
has_memory_type = hostage_oath_of_friendship memory_type = hostage_oath_of_friendship
has_memory_participant = scope:actor has_memory_participant = scope:actor
} }
} }

View file

@ -50,12 +50,9 @@ eligible_for_fp2_dynasty_legacies_trigger = {
culture = { culture = {
has_cultural_pillar = heritage_iberian has_cultural_pillar = heritage_iberian
} }
AND = { capital_province ?= {
exists = capital_province
capital_province = {
geographical_region = world_europe_west_iberia geographical_region = world_europe_west_iberia
} }
}
} }
} }
} }
@ -104,7 +101,6 @@ valid_ritualised_best_friendship_one_way_trigger = {
# ... and that they've got a best friend... # ... and that they've got a best friend...
any_relation = { any_relation = {
type = best_friend type = best_friend
count >= 1
# ... who also still has the cultural parameter. # ... who also still has the cultural parameter.
culture_valid_for_ritualised_best_friends_trigger = yes culture_valid_for_ritualised_best_friends_trigger = yes
} }
@ -279,8 +275,8 @@ fp2_struggle_ending_other_percent_iberia_trigger = {
NOT = { NOT = {
any_involved_ruler = { any_involved_ruler = {
exists = primary_title # Max figured out that is_independent_ruler causes errors if you are unlanded exists = primary_title # Max figured out that is_independent_ruler causes errors if you are unlanded
NOT = { this = root } this != root
is_independent_ruler = yes top_liege = this
primary_title = { is_mercenary_company = no } primary_title = { is_mercenary_company = no }
any_county_in_region = { any_county_in_region = {
region = world_europe_west_iberia region = world_europe_west_iberia
@ -299,16 +295,16 @@ fp2_struggle_ending_compromise_independent_duchy_trigger = {
exists = holder exists = holder
OR = { OR = {
# Is not the heartland of an existing kingdom # Is not the heartland of an existing kingdom
NOT = { title_capital_county = de_jure_liege.title_capital_county } title_capital_county != de_jure_liege.title_capital_county
# Capital duke doesn't control kingdom, edge case # Capital duke doesn't control kingdom, edge case
AND = { AND = {
exists = de_jure_liege.holder exists = de_jure_liege.holder
NOT = { holder = de_jure_liege.holder } holder != de_jure_liege.holder
} }
} }
# Is ruled by an independent duke # Is ruled by an independent duke
holder = { holder = {
is_independent_ruler = yes top_liege = this
save_temporary_scope_as = duchy_holder save_temporary_scope_as = duchy_holder
primary_title = { primary_title = {
is_mercenary_company = no is_mercenary_company = no
@ -337,7 +333,7 @@ fp2_struggle_ending_compromise_split_duchy_trigger = {
# Is not created # Is not created
NOT = { exists = holder } NOT = { exists = holder }
# Is not heartland of an existing kingdom # Is not heartland of an existing kingdom
NOT = { title_capital_county = de_jure_liege.title_capital_county } title_capital_county != de_jure_liege.title_capital_county
save_temporary_scope_as = duchy save_temporary_scope_as = duchy
# Less than half is owned by de jure kingdom, if created # Less than half is owned by de jure kingdom, if created
trigger_if = { trigger_if = {
@ -358,7 +354,7 @@ fp2_struggle_ending_compromise_titular_trigger = {
exists = holder exists = holder
# Is ruled by an independent duke # Is ruled by an independent duke
holder = { holder = {
is_independent_ruler = yes top_liege = this
primary_title = { primary_title = {
is_mercenary_company = no is_mercenary_company = no
tier = tier_duchy tier = tier_duchy
@ -385,7 +381,7 @@ fp2_struggle_ending_compromise_create_title_trigger = {
# Only if no other same rank rulers in title (e.g. multiple kings under empire) # Only if no other same rank rulers in title (e.g. multiple kings under empire)
any_direct_de_jure_vassal_title = { any_direct_de_jure_vassal_title = {
exists = holder exists = holder
NOT = { holder = scope:new_owner_temp } holder != scope:new_owner_temp
} }
} }
} }
@ -476,7 +472,7 @@ fp2_struggle_compromise_transfer_duchy_trigger = {
# De jure liege does not control duchy # De jure liege does not control duchy
trigger_if = { trigger_if = {
limit = { exists = kingdom.holder } limit = { exists = kingdom.holder }
NOT = { kingdom = scope:transfer_duchy.title_capital_county.holder.top_liege.capital_county.kingdom } kingdom != scope:transfer_duchy.title_capital_county.holder.top_liege.capital_county.kingdom
} }
# Is controlled by a kingdom tier # Is controlled by a kingdom tier
trigger_else = { title_capital_county.holder.top_liege.primary_title.tier >= tier_kingdom } trigger_else = { title_capital_county.holder.top_liege.primary_title.tier >= tier_kingdom }
@ -544,7 +540,7 @@ fp2_iberian_reclamation_vassalize_iberian_trigger = {
is_struggle_type = iberian_struggle is_struggle_type = iberian_struggle
} }
liege = scope:defender liege = scope:defender
NOT = { this = scope:defender } this != scope:defender
capital_county = { capital_county = {
any_county_struggle = { is_struggle_type = iberian_struggle } any_county_struggle = { is_struggle_type = iberian_struggle }
} }
@ -592,9 +588,9 @@ fp2_struggle_enforce_truce_war_leader_trigger = {
custom_tooltip = { custom_tooltip = {
text = fp2_enforce_truce_liege_or_independent_tt text = fp2_enforce_truce_liege_or_independent_tt
OR = { OR = {
scope:recipient = { is_independent_ruler = yes } scope:recipient = { top_liege = this }
scope:recipient.top_liege = scope:actor.top_liege scope:recipient.top_liege = scope:actor.top_liege
is_independent_ruler = yes top_liege = this
top_liege = scope:actor.top_liege top_liege = scope:actor.top_liege
} }
} }
@ -694,13 +690,13 @@ fp2_lyonese_monk_0000_out_of_popes_trigger = {
fp2_lyonese_monk_0000_out_of_faith_trigger = { fp2_lyonese_monk_0000_out_of_faith_trigger = {
OR = { OR = {
NOT = { scope:acolyte.faith.religious_head = scope:story.var:base_faith.religious_head } scope:acolyte.faith.religious_head != scope:story.var:base_faith.religious_head
NOT = { scope:acolyte_host.faith.religious_head = scope:story.var:base_faith.religious_head } scope:acolyte_host.faith.religious_head != scope:story.var:base_faith.religious_head
} }
} }
fp2_does_this_player_care_about_the_fate_of_iberia = { fp2_does_this_player_care_about_the_fate_of_iberia = {
NOT = { this = root } this != root
OR = { OR = {
location = { location = {
OR = { # Is in region OR = { # Is in region
@ -718,15 +714,13 @@ fp2_eligible_for_yearly_events_trigger = {
OR = { OR = {
any_character_struggle = { any_character_struggle = {
involvement = involved involvement = involved
is_struggle_type = iberian_struggle
} }
culture = { culture = {
has_cultural_pillar = heritage_iberian has_cultural_pillar = heritage_iberian
} }
AND = { capital_province ?= {
exists = capital_province geographical_region = world_europe_west_iberia
capital_province = {
geographical_region = world_europe_west_iberia
}
} }
} }
} }

View file

@ -3,7 +3,9 @@
ep2_can_be_accolade_successor_base_trigger = { ep2_can_be_accolade_successor_base_trigger = {
is_acclaimed = no is_acclaimed = no
is_accolade_successor = no is_accolade_successor = no
is_available_quick = {
alive = yes
adult = yes
}
highest_held_title_tier <= tier_barony highest_held_title_tier <= tier_barony
is_alive = yes
is_adult = yes
} }

View file

@ -7,12 +7,10 @@ ep2_phase_general_location_checks = {
trigger_if = { trigger_if = {
limit = { has_province_owner = yes } limit = { has_province_owner = yes }
province_owner = { province_owner = {
exists = liege liege ?= scope:host
liege = scope:host this != scope:host
NOT = { this = scope:host }
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
exists = capital_province capital_province ?= root
capital_province = root
is_available = yes is_available = yes
age >= 12 age >= 12
} }
@ -23,8 +21,7 @@ ep2_phase_general_location_checks = {
} }
ep2_tour_phase_invalidation_check = { ep2_tour_phase_invalidation_check = {
scope:activity = { scope:activity = {
# TODO_CD_EP2, make their heir visitable if they weren't landed before inheriting. Should be doable in an on_action by checking if the heir is currently in the vassals to visit list, and if not, add them to it.
NOT = { NOT = {
any_activity_phase_location_past = { any_activity_phase_location_past = {
province_owner = scope:province.province_owner province_owner = scope:province.province_owner
@ -32,10 +29,9 @@ ep2_tour_phase_invalidation_check = {
} }
} }
scope:province = { scope:province = {
NOT = { province_owner = scope:host } province_owner != scope:host
province_owner = { province_owner = {
exists = liege liege ?= scope:host
liege = scope:host
location = scope:province location = scope:province
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
#Checks mostly matching is_available: #Checks mostly matching is_available:

File diff suppressed because it is too large Load diff

View file

@ -29,7 +29,7 @@ activity_wedding_is_valid_guest = {
} }
activity_wedding_diplomatic_intent_impressible_target = { activity_wedding_diplomatic_intent_impressible_target = {
is_independent_ruler = yes top_liege = this
any_neighboring_and_across_water_top_liege_realm_owner = { this = root } any_neighboring_and_across_water_top_liege_realm_owner = { this = root }
highest_held_title_tier < root.highest_held_title_tier highest_held_title_tier < root.highest_held_title_tier
NOT = { government_has_flag = cannot_be_vassal_or_liege } NOT = { government_has_flag = cannot_be_vassal_or_liege }

View file

@ -67,13 +67,8 @@ bp2_valid_to_offer_hostage_ai_trigger = {
NOR = { NOR = {
scope:recipient = { scope:recipient = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor } has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor }
house_has_feud_relation_with_trigger = { TARGET = scope:actor }
} }
scope:actor.house.house_head ?= {
any_owned_story = {
story_type = story_cycle_house_feud
var:house_feud_house ?= scope:recipient.house
}
}
} }
} }
@ -87,12 +82,7 @@ bp2_valid_to_demand_hostage_ai_trigger = {
NOR = { NOR = {
scope:recipient = { scope:recipient = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor } has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor }
} house_has_feud_relation_with_trigger = { TARGET = scope:actor }
scope:actor.house.house_head = {
any_owned_story = {
story_type = story_cycle_house_feud
var:house_feud_house ?= scope:recipient.house
}
} }
} }
} }
@ -111,12 +101,7 @@ bp2_valid_to_exchange_hostage_ai_trigger = {
NOR = { NOR = {
scope:recipient = { scope:recipient = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor } has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:actor }
} house_has_feud_relation_with_trigger = { TARGET = scope:actor }
scope:actor.house.house_head = {
any_owned_story = {
story_type = story_cycle_house_feud
var:house_feud_house ?= scope:recipient.house
}
} }
} }
} }

View file

@ -42,7 +42,7 @@ character_can_rites_of_passage_trigger = {
text = rites_of_passage_trigger_not_proven text = rites_of_passage_trigger_not_proven
NOT = { NOT = {
any_memory = { any_memory = {
has_memory_type = completed_rites_of_passage memory_type = completed_rites_of_passage
} }
} }
} }

View file

@ -1,8 +1,10 @@
#Adult Education Activity #Adult Education Activity
is_higher_studies_location = { is_higher_studies_location = {
save_temporary_scope_as = temp_location
OR = { OR = {
has_university_building_trigger = yes has_university_building_trigger = yes
is_religious_studies_location = yes is_religious_studies_location = yes
title:h_china.holder.capital_province ?= scope:temp_location # The capital of h_china is always a valid location
} }
} }
@ -44,6 +46,20 @@ is_religious_studies_location = {
has_building_or_higher = vatapi_caves_01 has_building_or_higher = vatapi_caves_01
has_building_or_higher = al_qarawiyyin_university_01 has_building_or_higher = al_qarawiyyin_university_01
has_building_or_higher = somapura_university_01 has_building_or_higher = somapura_university_01
# TGP
has_building_or_higher = holy_site_buddhist_grand_temple_01
has_building_or_higher = holy_site_japanese_temple_01
has_building_or_higher = holy_site_chinese_temple_01
has_building_or_higher = holy_site_se_asia_pagan_temple_01
has_building_or_higher = kofuku_ji_01
has_building_or_higher = enryaku_ji_01
has_building_or_higher = hwangnyongsa_01
has_building_or_higher = giant_wild_goose_pagoda_01
has_building_or_higher = maoshan_academy_01
has_building_or_higher = tiantai_monasteries_01
has_building_or_higher = jizu_shan_temples_01
has_building_or_higher = nanhua_temple_01
has_building_or_higher = borobudur_01
} }
} }

View file

@ -1,218 +1,216 @@
wayfarer_the_real_threat_trigger = { wayfarer_the_real_threat_trigger = {
is_councillor_of = root is_councillor_of = root
is_ai = yes is_ai = yes
opinion = { opinion = {
target = root target = root
value < 10 value < 10
} }
} }
# Used to keep track of mines found after our time period, so they have a higher chance to spawn for the Inspection event, particularly in Norway # Used to keep track of mines found after our time period, so they have a higher chance to spawn for the Inspection event, particularly in Norway
later_historical_gold_mine_trigger = { later_historical_gold_mine_trigger = {
OR = { OR = {
this = province:1705 # Kildonan Gold Rush, 1869 this = province:1705 # Kildonan Gold Rush, 1869
this = province:1665 # Dolgellau Gold Rush, Mid-19th century this = province:1665 # Dolgellau Gold Rush, Mid-19th century
} }
} }
later_historical_silver_mine_trigger = { later_historical_silver_mine_trigger = {
OR = { OR = {
this = province:248 # Kongsberg, 1623 this = province:248 # Kongsberg, 1623
this = province:346 # Sala, 15th century this = province:346 # Sala, 15th century
} }
} }
later_historical_copper_mine_trigger = { later_historical_copper_mine_trigger = {
OR = { this = province:241 # Røros, 1645
this = province:241 # Røros, 1645 }
}
} reminiscing_event_trigger = {
is_ai = no
reminiscing_event_trigger = { has_variable = reminiscing_location
is_ai = no var:reminiscing_location = root.location
has_variable = reminiscing_location }
var:reminiscing_location = root.location
} local_guild_trigger = {
OR = {
local_guild_trigger = { has_building_or_higher = watermills_01
OR = { has_building_or_higher = windmills_01
has_building_or_higher = watermills_01 has_building_or_higher = common_tradeport_01
has_building_or_higher = windmills_01 has_building_or_higher = pastures_01
has_building_or_higher = common_tradeport_01 has_building_or_higher = hunting_grounds_01
has_building_or_higher = pastures_01 has_building_or_higher = orchards_01
has_building_or_higher = hunting_grounds_01 has_building_or_higher = logging_camps_01
has_building_or_higher = orchards_01 has_building_or_higher = quarries_01
has_building_or_higher = logging_camps_01 has_building_or_higher = smiths_01
has_building_or_higher = quarries_01 has_building_or_higher = stables_01
has_building_or_higher = smiths_01 has_building_or_higher = guild_halls_01
has_building_or_higher = stables_01 has_building_or_higher = hospices_01
has_building_or_higher = guild_halls_01 has_building_or_higher = workshops_01
has_building_or_higher = hospices_01 }
has_building_or_higher = workshops_01 }
}
} local_guild_compare_trigger = {
switch = {
local_guild_compare_trigger = { trigger = scope:local_guild_scope
switch = { 1 = {
trigger = scope:local_guild_scope NOT = { has_building_or_higher = watermills_01 }
1 = { building_watermills_requirement_terrain = yes
NOT = { has_building_or_higher = watermills_01 } }
building_watermills_requirement_terrain = yes 2 = {
} NOT = { has_building_or_higher = windmills_01 }
2 = { building_windmills_requirement_terrain = yes
NOT = { has_building_or_higher = windmills_01 } }
building_windmills_requirement_terrain = yes 3 = {
} NOT = { has_building_or_higher = common_tradeport_01 }
3 = { building_common_tradeport_requirement_terrain = yes
NOT = { has_building_or_higher = common_tradeport_01 } }
building_common_tradeport_requirement_terrain = yes 4 = {
} NOT = { has_building_or_higher = pastures_01 }
4 = { building_pastures_requirement_terrain = yes
NOT = { has_building_or_higher = pastures_01 } }
building_pastures_requirement_terrain = yes 5 = {
} NOT = { has_building_or_higher = pastures_01 }
5 = { building_pastures_requirement_terrain = yes
NOT = { has_building_or_higher = pastures_01 } }
building_pastures_requirement_terrain = yes 6 = {
} NOT = { has_building_or_higher = pastures_01 }
6 = { building_pastures_requirement_terrain = yes
NOT = { has_building_or_higher = pastures_01 } }
building_pastures_requirement_terrain = yes 7 = {
} NOT = { has_building_or_higher = pastures_01 }
7 = { building_pastures_requirement_terrain = yes
NOT = { has_building_or_higher = pastures_01 } }
building_pastures_requirement_terrain = yes 8 = {
} NOT = { has_building_or_higher = hunting_grounds_01 }
8 = { building_hunting_grounds_requirement_terrain = yes
NOT = { has_building_or_higher = hunting_grounds_01 } }
building_hunting_grounds_requirement_terrain = yes 9 = {
} NOT = { has_building_or_higher = hunting_grounds_01 }
9 = { building_hunting_grounds_requirement_terrain = yes
NOT = { has_building_or_higher = hunting_grounds_01 } }
building_hunting_grounds_requirement_terrain = yes 10 = {
} NOT = { has_building_or_higher = hunting_grounds_01 }
10 = { building_hunting_grounds_requirement_terrain = yes
NOT = { has_building_or_higher = hunting_grounds_01 } }
building_hunting_grounds_requirement_terrain = yes 11 = {
} NOT = { has_building_or_higher = orchards_01 }
11 = { building_orchards_requirement_terrain = yes
NOT = { has_building_or_higher = orchards_01 } }
building_orchards_requirement_terrain = yes 12 = {
} NOT = { has_building_or_higher = logging_camps_01 }
12 = { building_logging_camps_requirement_terrain = yes
NOT = { has_building_or_higher = logging_camps_01 } }
building_logging_camps_requirement_terrain = yes 13 = {
} NOT = { has_building_or_higher = quarries_01 }
13 = { building_quarries_requirement_terrain = yes
NOT = { has_building_or_higher = quarries_01 } }
building_quarries_requirement_terrain = yes 14 = {
} NOT = { has_building_or_higher = quarries_01 }
14 = { building_quarries_requirement_terrain = yes
NOT = { has_building_or_higher = quarries_01 } }
building_quarries_requirement_terrain = yes 15 = {
} NOT = { has_building_or_higher = smiths_01 }
15 = { building_smiths_requirement_terrain = yes
NOT = { has_building_or_higher = smiths_01 } }
building_smiths_requirement_terrain = yes 16 = {
} NOT = { has_building_or_higher = stables_01 }
16 = { building_stables_requirement_terrain = yes
NOT = { has_building_or_higher = stables_01 } }
building_stables_requirement_terrain = yes 17 = {
} NOT = { has_building_or_higher = guild_halls_01 }
17 = { has_building_or_higher = city_01
NOT = { has_building_or_higher = guild_halls_01 } }
has_building_or_higher = city_01 18 = {
} NOT = { has_building_or_higher = hospices_01 }
18 = { }
NOT = { has_building_or_higher = hospices_01 } 19 = {
} NOT = { has_building_or_higher = hospices_01 }
19 = { }
NOT = { has_building_or_higher = hospices_01 } 20 = {
} NOT = { has_building_or_higher = workshops_01 }
20 = { building_workshops_requirement_terrain = yes
NOT = { has_building_or_higher = workshops_01 } }
building_workshops_requirement_terrain = yes }
} }
}
} landless_inspector_terrain_knowing_the_land_trigger = {
trigger_if = {
landless_inspector_terrain_knowing_the_land_trigger = { limit = {
trigger_if = { OR = {
limit = { terrain = forest
OR = { terrain = jungle
terrain = forest terrain = taiga
terrain = jungle terrain = wetlands
terrain = taiga }
terrain = wetlands }
} landless_inspector_terrain_master_trigger = { TERRAIN = woodlands }
} }
landless_inspector_terrain_master_trigger = { TERRAIN = woodlands } trigger_if = {
} limit = {
trigger_if = { OR = {
limit = { terrain = mountains
OR = { terrain = hills
terrain = mountains terrain = desert_mountains
terrain = hills }
terrain = desert_mountains }
} landless_inspector_terrain_master_trigger = { TERRAIN = highlands }
} }
landless_inspector_terrain_master_trigger = { TERRAIN = highlands } trigger_if = {
} limit = {
trigger_if = { OR = {
limit = { terrain = plains
OR = { terrain = steppe
terrain = plains terrain = farmlands
terrain = steppe terrain = floodplains
terrain = farmlands }
terrain = floodplains }
} landless_inspector_terrain_master_trigger = { TERRAIN = lowlands }
} }
landless_inspector_terrain_master_trigger = { TERRAIN = lowlands } trigger_if = {
} limit = {
trigger_if = { OR = {
limit = { terrain = desert
OR = { terrain = oasis
terrain = desert terrain = drylands
terrain = oasis }
terrain = drylands }
} landless_inspector_terrain_master_trigger = { TERRAIN = drylands }
} }
landless_inspector_terrain_master_trigger = { TERRAIN = drylands } }
}
} landless_inspector_terrain_master_trigger = {
root = {
landless_inspector_terrain_master_trigger = { OR = {
root = { has_character_modifier = landless_inspector_$TERRAIN$_tier_1_modifier
OR = { has_character_modifier = landless_inspector_$TERRAIN$_tier_2_modifier
has_character_modifier = landless_inspector_$TERRAIN$_tier_1_modifier has_character_modifier = nomadic_inspector_$TERRAIN$_tier_2_modifier
has_character_modifier = landless_inspector_$TERRAIN$_tier_2_modifier has_character_modifier = landless_inspector_$TERRAIN$_tier_3_modifier
has_character_modifier = nomadic_inspector_$TERRAIN$_tier_2_modifier has_character_modifier = nomadic_inspector_$TERRAIN$_tier_3_modifier
has_character_modifier = landless_inspector_$TERRAIN$_tier_3_modifier }
has_character_modifier = nomadic_inspector_$TERRAIN$_tier_3_modifier }
} }
}
} landless_inspector_king_of_the_wilds = {
switch = {
landless_inspector_king_of_the_wilds = { trigger = has_character_modifier
switch = { # Woodlands
trigger = has_character_modifier master_terrain_forest_modifier = { root.location ?= { terrain = forest } }
# Woodlands master_terrain_jungle_modifier = { root.location ?= { terrain = jungle } }
master_terrain_forest_modifier = { root.location ?= { terrain = forest } } master_terrain_taiga_modifier = { root.location ?= { terrain = taiga } }
master_terrain_jungle_modifier = { root.location ?= { terrain = jungle } } master_terrain_wetlands_modifier = { root.location ?= { terrain = wetlands } }
master_terrain_taiga_modifier = { root.location ?= { terrain = taiga } } # Highlands
master_terrain_wetlands_modifier = { root.location ?= { terrain = wetlands } } master_terrain_mountains_modifier = { root.location ?= { terrain = mountains } }
# Highlands master_terrain_hills_modifier = { root.location ?= { terrain = hills } }
master_terrain_mountains_modifier = { root.location ?= { terrain = mountains } } master_terrain_desert_mountains_modifier = { root.location ?= { terrain = desert_mountains } }
master_terrain_hills_modifier = { root.location ?= { terrain = hills } } # Lowlands
master_terrain_desert_mountains_modifier = { root.location ?= { terrain = desert_mountains } } master_terrain_plains_modifier = { root.location ?= { terrain = plains } }
# Lowlands master_terrain_steppe_modifier = { root.location ?= { terrain = steppe } }
master_terrain_plains_modifier = { root.location ?= { terrain = plains } } master_terrain_farmlands_modifier = { root.location ?= { terrain = farmlands } }
master_terrain_steppe_modifier = { root.location ?= { terrain = steppe } } master_terrain_floodplains_modifier = { root.location ?= { terrain = floodplains } }
master_terrain_farmlands_modifier = { root.location ?= { terrain = farmlands } } # Drylands
master_terrain_floodplains_modifier = { root.location ?= { terrain = floodplains } } master_terrain_drylands_modifier = { root.location ?= { terrain = drylands } }
# Drylands master_terrain_desert_modifier = { root.location ?= { terrain = desert } }
master_terrain_drylands_modifier = { root.location ?= { terrain = drylands } } master_terrain_oasis_modifier = { root.location ?= { terrain = oasis } }
master_terrain_desert_modifier = { root.location ?= { terrain = desert } } }
master_terrain_oasis_modifier = { root.location ?= { terrain = oasis } } }
}
}

View file

@ -9,10 +9,8 @@ would_follow_social_distancing_trigger = {
realm_has_any_epidemic = { realm_has_any_epidemic = {
any_sub_realm_county = { any_sub_realm_county = {
count >= $SIZE$ count >= $SIZE$
any_county_province = { any_county_province_epidemic = {
any_province_epidemic = { outbreak_intensity >= $INTENSITY$
outbreak_intensity >= $INTENSITY$
}
} }
} }
} }

View file

@ -3,8 +3,8 @@
#has_legend_chapter_trigger - checks if you own a legend #has_legend_chapter_trigger - checks if you own a legend
is_standard_legend_spreading_courtier = { is_standard_legend_spreading_courtier = {
NOT = { this = root } this != root
NOT = { this = root.promoted_legend.legend_protagonist } this != root.promoted_legend.legend_protagonist
NOT = { is_spouse_of = root } NOT = { is_spouse_of = root }
NOT = { is_child_of = root } NOT = { is_child_of = root }
is_available_ai_adult = yes is_available_ai_adult = yes
@ -111,6 +111,9 @@ has_any_point_of_interest_flag = {
has_building_with_flag = { has_building_with_flag = {
flag = travel_point_of_interest_natural_feature flag = travel_point_of_interest_natural_feature
} }
has_building_with_flag = {
flag = travel_point_of_interest_stress_relief
}
} }
} }

View file

@ -91,9 +91,8 @@ fp3_eligible_for_yearly_events_trigger = {
culture = { has_cultural_pillar = heritage_mongolic } culture = { has_cultural_pillar = heritage_mongolic }
culture = { has_cultural_pillar = heritage_arabic } culture = { has_cultural_pillar = heritage_arabic }
} }
any_realm_county = { # Most events are geographical in nature # Most events are geographical in nature
any_county_province = { geographical_region = world_persian_empire } capital_province ?= { geographical_region = world_persian_empire }
}
} }
fp3_is_valid_futuwaa_member = { fp3_is_valid_futuwaa_member = {
@ -345,10 +344,10 @@ fp3_embellish_capital_decision_character_trigger = {
fp3_name_read_in_friday_prayer_decision_liege_requirements_trigger = { fp3_name_read_in_friday_prayer_decision_liege_requirements_trigger = {
OR = { OR = {
is_independent_ruler = yes top_liege = this
custom_description = { custom_description = {
text = name_read_in_friday_prayer_crown_authority text = name_read_in_friday_prayer_crown_authority
is_independent_ruler = no top_liege != this
liege ?= { has_realm_law = crown_authority_0 } liege ?= { has_realm_law = crown_authority_0 }
} }
AND = { AND = {
@ -357,7 +356,7 @@ fp3_name_read_in_friday_prayer_decision_liege_requirements_trigger = {
} }
# We have to trigger_if this for tooltip reasons. # We have to trigger_if this for tooltip reasons.
trigger_if = { trigger_if = {
limit = { is_independent_ruler = no } limit = { top_liege != this }
liege = { government_has_flag = government_is_tribal } liege = { government_has_flag = government_is_tribal }
} }
} }
@ -421,7 +420,7 @@ favour_skilled_outsiders_decision_valid_county_to_generate_trigger = {
} }
trigger_if = { trigger_if = {
limit = { limit = {
root = { is_independent_ruler = no } root = { top_liege != this }
} }
custom_tooltip = { custom_tooltip = {
text = favour_skilled_outsiders_decision.tt.not_share_liege_heritage text = favour_skilled_outsiders_decision.tt.not_share_liege_heritage

View file

@ -77,8 +77,7 @@ petition_liege_house_governorship_rights_trigger = {
} }
petition_liege_admin_valid_trigger = { petition_liege_admin_valid_trigger = {
government_has_flag = government_is_administrative government_allows = administrative
liege = { government_has_flag = government_is_administrative }
} }
petition_liege_governorship_county_request = { petition_liege_governorship_county_request = {
@ -98,3 +97,56 @@ petition_liege_governorship_kingdom_request = {
is_landless_type_title = no is_landless_type_title = no
NOT = { $LIEGE$.capital_county.kingdom = this } NOT = { $LIEGE$.capital_county.kingdom = this }
} }
needs_more_valid_compensation_options_trigger = {
calc_true_if = {
amount < 2
exists = scope:bribe_gold
exists = scope:bribe_factions
exists = scope:bribe_favor
exists = scope:bribe_contract
exists = scope:bribe_vows
exists = scope:bribe_knight
}
}
petition_liege_vows_trigger = {
is_ruler = no
is_landed = no
is_adult = yes
is_married = no
number_of_concubines = 0
religion = scope:petition_liege.religion
faith = { has_doctrine_parameter = take_vows_active }
scope:petition_vassal.faith = { has_doctrine_parameter = take_vows_active }
NOR = {
this = scope:petition_vassal.player_heir
has_trait = devoted
}
OR = {
has_trait = education_learning
learning >= medium_skill_rating
}
trigger_if = {
limit = { is_male = yes }
faith_dominant_gender_male_or_equal = yes
}
trigger_else_if = {
limit = { is_female = yes }
faith_dominant_gender_female_or_equal = yes
}
trigger_else = { always = yes }
}
petition_liege_knight_trigger = {
is_ruler = no
is_landed = no
is_adult = yes
NOT = { this = scope:petition_vassal.player_heir }
OR = {
has_trait = education_martial
has_trait = education_martial_prowess
prowess >= medium_skill_rating
}
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:petition_liege }
}

View file

@ -2,6 +2,36 @@
culture = { has_building_gfx = byzantine_building_gfx } culture = { has_building_gfx = byzantine_building_gfx }
} }
is_roman_emperor_trigger = {
OR = {
has_title = title:e_byzantium
has_title = title:h_roman_empire
has_title = title:h_eastern_roman_empire
}
}
is_roman_emperor_excluding_byzantium_trigger = {
OR = {
has_title = title:h_roman_empire
has_title = title:h_eastern_roman_empire
}
}
is_roman_emperor_primary_title_trigger = {
OR = {
primary_title ?= title:e_byzantium
primary_title ?= title:h_roman_empire
primary_title ?= title:h_eastern_roman_empire
}
}
is_roman_emperor_primary_title_excluding_byzantium_trigger = {
OR = {
primary_title ?= title:h_roman_empire
primary_title ?= title:h_eastern_roman_empire
}
}
valid_for_byz_emperor_content_trigger = { valid_for_byz_emperor_content_trigger = {
has_ep3_dlc_trigger = yes has_ep3_dlc_trigger = yes
culture = { culture = {
@ -11,8 +41,7 @@ valid_for_byz_emperor_content_trigger = {
} }
} }
OR = { OR = {
primary_title = title:e_byzantium is_roman_emperor_primary_title_trigger = yes
primary_title = title:e_roman_empire
AND = { AND = {
culture = { culture = {
OR = { OR = {
@ -36,8 +65,7 @@ valid_for_byz_governor_content_trigger = {
} }
top_liege = { top_liege = {
OR = { OR = {
primary_title = title:e_byzantium is_roman_emperor_primary_title_trigger = yes
primary_title = title:e_roman_empire
AND = { AND = {
culture = { culture = {
OR = { OR = {
@ -88,14 +116,14 @@ ep3_varangian_trigger = {
} }
is_competing_for_same_title_as = { is_competing_for_same_title_as = {
government_has_flag = government_is_administrative government_allows = administrative
any_heir_title = { any_heir_title = {
exists = this exists = this
is_noble_family_title = no is_noble_family_title = no
save_temporary_scope_as = temp_title save_temporary_scope_as = temp_title
} }
$CHARACTER$ = { $CHARACTER$ = {
government_has_flag = government_is_administrative government_allows = administrative
} }
scope:temp_title = { scope:temp_title = {
any_title_heir = { any_title_heir = {
@ -134,6 +162,7 @@ any_valid_title_to_grant_trigger = {
# It uses a cloned version that has been optimized for AI usage # It uses a cloned version that has been optimized for AI usage
# Please update that one too if you're updating this one # Please update that one too if you're updating this one
$CANDIDATE$ ?= { $CANDIDATE$ ?= {
is_clergy = no
save_temporary_scope_as = candidate_temp save_temporary_scope_as = candidate_temp
custom_tooltip = { custom_tooltip = {
text = support_candidacy_can_appoint_for_title_tt text = support_candidacy_can_appoint_for_title_tt
@ -142,7 +171,6 @@ any_valid_title_to_grant_trigger = {
continue = { continue = {
tier > tier_duchy tier > tier_duchy
} }
save_temporary_scope_as = title_temp save_temporary_scope_as = title_temp
scope:candidate_temp = { can_appoint_for_title = scope:title_temp } scope:candidate_temp = { can_appoint_for_title = scope:title_temp }
} }
@ -166,7 +194,7 @@ any_valid_candidacy_trigger = {
} }
} }
appointment_candidate_score = { appointment_candidate_score = {
title = $TOP_LIEGE$.primary_title target = $TOP_LIEGE$.primary_title
value > 0 value > 0
} }
} }
@ -188,7 +216,7 @@ any_valid_candidacy_trigger = {
limit = { exists = scope:title_temp } limit = { exists = scope:title_temp }
$CANDIDATE$ = { $CANDIDATE$ = {
appointment_candidate_score = { appointment_candidate_score = {
title = scope:title_temp target = scope:title_temp
value > 0 value > 0
} }
} }
@ -220,7 +248,7 @@ is_candidate_for_title_trigger = {
} }
} }
appointment_candidate_score = { appointment_candidate_score = {
title = $TITLE$ target = $TITLE$
value > 0 value > 0
} }
} }
@ -228,21 +256,31 @@ is_candidate_for_title_trigger = {
} }
valid_governor_contract_trigger = { valid_governor_contract_trigger = {
government_has_flag = government_is_administrative government_allows = administrative
is_alive = yes is_available_quick = {
is_adult = yes adult = yes
is_incapable = no alive = yes
incapable = no
}
} }
valid_governor_contract_basic_trigger = { valid_governor_contract_basic_trigger = {
task_contract_taker = { task_contract_taker = {
#you have to be a governor #you have to be a governor
is_governor = yes trigger_if = {
limit = {
government_has_flag = government_is_celestial
}
is_governor_or_admin_count = yes
}
trigger_else = {
is_governor = yes
}
#and the location has to be in your realm #and the location has to be in your realm
custom_tooltip = { custom_tooltip = {
text = task_contract_location_not_in_realm text = task_contract_location_not_in_realm
any_sub_realm_county = { any_sub_realm_county = {
any_county_province = { any_county_province = {
this = root.task_contract_location this = root.task_contract_location
} }
} }
@ -634,9 +672,11 @@ experienced_charioteer_trigger = {
} }
ep3_ideal_castration_candidate_trigger = { ep3_ideal_castration_candidate_trigger = {
is_ai = yes is_available_quick = {
is_male = yes ai = yes
is_adult = no female = no
adult = yes
}
is_close_family_of = scope:actor is_close_family_of = scope:actor
is_eunuch_trigger = no is_eunuch_trigger = no
is_available = yes is_available = yes
@ -764,7 +804,7 @@ valid_for_pagan_conversion_trigger = {
ep3_story_cycle_admin_eunuch_valid_story_trigger = { ep3_story_cycle_admin_eunuch_valid_story_trigger = {
any_owned_story = { any_owned_story = {
story_type = story_cycle_admin_eunuch type = story_cycle_admin_eunuch
save_temporary_scope_as = story_temp save_temporary_scope_as = story_temp
var:eunuch ?= { var:eunuch ?= {
is_alive = yes is_alive = yes
@ -813,59 +853,74 @@ ep3_story_cycle_admin_eunuch_involved_character = {
} }
is_appointment_valid_trigger = { is_appointment_valid_trigger = {
$CANDIDATE$ = { $TITLE$ = { save_temporary_scope_as = title_temp }
$CANDIDATE$ = { save_temporary_scope_as = candidate_temp }
$TOP_LIEGE$ = { save_temporary_scope_as = top_liege_temp }
custom_tooltip = { # Capital should be never a valid appointment (go for higher title instead
text = not_top_liege_capital_county_tt
NOT = { scope:title_temp ?= scope:candidate_temp.top_liege.capital_county }
}
scope:candidate_temp = {
trigger_if = { trigger_if = {
limit = { limit = { exists = scope:title_temp }
exists = $TITLE$ custom_tooltip = { # Has relevant law
} text = has_appointment_succession_tt
$TITLE$ = { $TITLE$ = {
OR = { OR = {
has_title_law_flag = appointment_type_succession has_title_law_flag = appointment_type_succession
holder = { holder ?= { has_realm_law_flag = appointment_type_succession }
has_realm_law_flag = appointment_type_succession
} }
} }
} }
} trigger_if = {
trigger_if = { limit = {
limit = { # We check independence, not tier, to allow for admin kingdoms NOT = { top_liege.highest_held_title_tier = scope:title_temp.tier }
exists = $TITLE$ }
NOT = { $CANDIDATE$.top_liege.highest_held_title_tier = $TITLE$.tier } is_adult = yes
} }
$CANDIDATE$ = { is_adult = yes } trigger_if = {
} limit = {
trigger_if = {
limit = {
exists = $TITLE$
$CANDIDATE$ = {
any_held_title = { count >= 1 } any_held_title = { count >= 1 }
} }
} trigger_if = {
custom_tooltip = { # Only one province of highest rank limit = { government_has_flag = government_is_celestial }
text = only_one_province_of_highest_rank_tt custom_tooltip = { # Only one province of highest rank
NOT = { text = cannot_compete_for_lower_rank_titles_tt
$CANDIDATE$ = { NOT = {
any_held_title = { any_held_title = {
tier = $TITLE$.tier tier > scope:title_temp.tier
is_landless_type_title = no is_landless_type_title = no
is_noble_family_title = no is_noble_family_title = no
}
} }
} }
} }
} trigger_else = {
custom_tooltip = { custom_tooltip = { # Only one province of highest rank
text = promote_candidate_interaction_existing_holder_tt text = only_one_province_of_highest_rank_tt
this != $TITLE$.holder NOT = {
any_held_title = {
tier = scope:title_temp.tier
is_landless_type_title = no
is_noble_family_title = no
}
}
}
}
custom_tooltip = {
text = promote_candidate_interaction_existing_holder_tt
this != scope:title_temp.holder
}
} }
} }
custom_tooltip = { custom_tooltip = {
text = can_be_appointed_interaction_tt text = can_be_appointed_interaction_tt
OR = { OR = {
can_be_granted_titles_by = { RULER = $TOP_LIEGE$ } can_be_granted_titles_by = { RULER = scope:top_liege_temp }
can_be_granted_theocratic_titles_by = { RULER = $TOP_LIEGE$ } can_be_granted_theocratic_titles_by = { RULER = scope:top_liege_temp }
AND = { AND = {
is_diarch_of_target = $TOP_LIEGE$ is_diarch_of_target = scope:top_liege_temp
$TOP_LIEGE$ = { has_diarchy_active_parameter = diarchy_is_co_rulership } scope:top_liege_temp = { has_diarchy_active_parameter = diarchy_is_co_rulership }
} }
} }
} }
@ -873,7 +928,7 @@ is_appointment_valid_trigger = {
text = only_administrative_tt text = only_administrative_tt
trigger_if = { trigger_if = {
limit = { is_landed = yes } limit = { is_landed = yes }
government_has_flag = government_is_administrative government_allows = administrative
} }
} }
is_clergy = no is_clergy = no
@ -939,6 +994,11 @@ can_recruit_archer_cavalry_trigger = {
can_create_maa = mangudai can_create_maa = mangudai
can_create_maa = asawira can_create_maa = asawira
can_create_maa = accolade_maa_horse_archers can_create_maa = accolade_maa_horse_archers
can_create_maa = emishi_horse_archers
can_create_maa = japanese_horse_archers
can_create_maa = kheshig
can_create_maa = heavy_horse_archers
can_create_maa = heavy_horse_archers
} }
} }
} }
@ -963,16 +1023,14 @@ ep3_vassal_will_become_admin = {
#Have the State Faith #Have the State Faith
#Aren't rivals of the admin liege #Aren't rivals of the admin liege
#Dukes and above must like the main liege at least a little. #Dukes and above must like the main liege at least a little.
highest_held_title_tier > tier_barony
primary_title = { primary_title = {
target_is_de_jure_liege_or_above = scope:administrative_liege.primary_title #We only auto convert de jure vassals target_is_de_jure_liege_or_above = scope:administrative_liege.primary_title #We only auto convert de jure vassals
} }
NOR = { #We convert only clan and feudal vassals in this decision OR = { #We convert only clan and feudal vassals in this decision
government_has_flag = government_is_theocracy government_has_flag = government_is_feudal
government_has_flag = government_is_special_republic government_has_flag = government_is_clan
government_has_flag = government_is_landless_adventurer government_has_flag = government_is_japan_feudal
government_has_flag = government_is_tribal
government_has_flag = government_is_administrative
} }
faith = scope:administrative_liege.faith #The future state faith faith = scope:administrative_liege.faith #The future state faith
} }
@ -1009,9 +1067,8 @@ cid_story_cycle_start_trigger = {
has_variable = ongoing_cid_story_cycle has_variable = ongoing_cid_story_cycle
has_variable = had_cid_story_cycle has_variable = had_cid_story_cycle
} }
is_landless_adventurer = yes has_government = landless_adventurer_government
exists = top_liege top_liege ?= {
top_liege = {
any_courtier = { is_available_healthy_ai_adult = yes } any_courtier = { is_available_healthy_ai_adult = yes }
} }
} }
@ -1057,16 +1114,19 @@ has_any_gallowsbait_xp_trigger = {
} }
ep3_restored_rome_hard_mode_trigger = { ep3_restored_rome_hard_mode_trigger = {
this = title:e_roman_empire.holder OR = {
this = title:h_roman_empire.holder
this = title:h_eastern_roman_empire.holder
}
any_owned_story = { any_owned_story = {
story_type = ep3_story_cycle_restoring_rome type = ep3_story_cycle_restoring_rome
has_variable = roman_empire_hard_mode has_variable = roman_empire_hard_mode
} }
} }
faith_is_interesting_heresy_to_state_faith_trigger = { faith_is_interesting_heresy_to_state_faith_trigger = {
religion = root.top_liege.primary_title.state_faith.religion religion = root.top_liege.primary_title.state_faith.religion
NOT = { this = root.top_liege.primary_title.state_faith } this != root.top_liege.primary_title.state_faith
num_county_followers >= 3 num_county_followers >= 3
save_temporary_scope_as = temp_heresy save_temporary_scope_as = temp_heresy
root.top_liege.primary_title.state_faith = { root.top_liege.primary_title.state_faith = {
@ -1092,14 +1152,13 @@ ep3_boundary_dispute_county_trigger = {
county_held_or_vassal_to_target_trigger = { TARGET = $OWNER$ } county_held_or_vassal_to_target_trigger = { TARGET = $OWNER$ }
} }
} }
} }
} }
} }
ep3_subsume_province_duchy_trigger = { ep3_subsume_province_duchy_trigger = {
tier = tier_duchy tier = tier_duchy
exists = holder holder ?= $TARGET$
holder = $TARGET$
is_noble_family_title = no is_noble_family_title = no
is_landless_type_title = no is_landless_type_title = no
trigger_if = { trigger_if = {
@ -1159,7 +1218,7 @@ ep3_interesting_courtier_to_ask_trigger = {
ep3_admin_faction_trigger = { ep3_admin_faction_trigger = {
trigger_if = { # Enabled for all admin realms with EP3 trigger_if = { # Enabled for all admin realms with EP3
limit = { has_ep3_dlc_trigger = yes } limit = { has_ep3_dlc_trigger = yes }
$FACTION_TARGET$ = { government_has_flag = government_is_administrative } $FACTION_TARGET$ = { government_allows = administrative }
} }
trigger_else = { # Enabled for Byzantium without EP3 trigger_else = { # Enabled for Byzantium without EP3
$FACTION_TARGET$ = { has_title = title:e_byzantium } $FACTION_TARGET$ = { has_title = title:e_byzantium }
@ -1191,7 +1250,7 @@ ep3_switch_faction_war_sides_war_trigger = {
# Recipient must not be a war leader # Recipient must not be a war leader
NOT = { is_war_leader = scope:recipient } NOT = { is_war_leader = scope:recipient }
# Recipient must not be the claimant # Recipient must not be the claimant
NOT = { primary_attacker.joined_faction.special_character = scope:recipient } primary_attacker.joined_faction.special_character != scope:recipient
} }
ep3_raid_insight_trigger = { ep3_raid_insight_trigger = {
@ -1247,7 +1306,7 @@ ep3_adventurer_ai_valid_war_target_trigger = {
scope:war_target_temp = { scope:war_target_temp = {
any_held_title = { any_held_title = {
count >= 1 count >= 1
tier = tier_empire title_tier = empire
save_temporary_scope_as = war_target_title_temp save_temporary_scope_as = war_target_title_temp
} }
} }
@ -1261,7 +1320,7 @@ ep3_adventurer_ai_valid_war_target_trigger = {
scope:war_target_temp = { scope:war_target_temp = {
any_held_title = { any_held_title = {
count >= 1 count >= 1
tier = tier_kingdom title_tier = kingdom
save_temporary_scope_as = war_target_title_temp save_temporary_scope_as = war_target_title_temp
} }
} }
@ -1275,7 +1334,7 @@ ep3_adventurer_ai_valid_war_target_trigger = {
scope:war_target_temp = { scope:war_target_temp = {
any_held_title = { any_held_title = {
count >= 1 count >= 1
tier = tier_duchy title_tier = duchy
save_temporary_scope_as = war_target_title_temp save_temporary_scope_as = war_target_title_temp
} }
} }
@ -1289,7 +1348,7 @@ ep3_adventurer_ai_valid_war_target_trigger = {
scope:war_target_temp = { scope:war_target_temp = {
any_held_title = { any_held_title = {
count >= 1 count >= 1
tier = tier_county title_tier = county
save_temporary_scope_as = war_target_title_temp save_temporary_scope_as = war_target_title_temp
} }
} }
@ -1314,7 +1373,7 @@ ep3_adventurer_ai_valid_legitimist_target_trigger = {
save_temporary_scope_as = target_temp save_temporary_scope_as = target_temp
current_strength_with_allies_value < $ADVENTURER$.current_strength_with_allies_seventy_five_percent_value current_strength_with_allies_value < $ADVENTURER$.current_strength_with_allies_seventy_five_percent_value
any_held_title = { any_held_title = {
tier >= tier_kingdom title_tier >= kingdom
any_claimant = { this = $ADVENTURER$ } any_claimant = { this = $ADVENTURER$ }
save_temporary_scope_as = claim_temp save_temporary_scope_as = claim_temp
} }
@ -1329,7 +1388,7 @@ ep3_adventurer_ai_valid_legitimist_target_trigger = {
} }
ep3_adventurer_might_attack_target_trigger = { ep3_adventurer_might_attack_target_trigger = {
is_landless_adventurer = yes has_government = landless_adventurer_government
# Army at least half the size # Army at least half the size
current_strength_with_allies_value > $TARGET$.current_strength_with_allies_fifty_percent_value current_strength_with_allies_value > $TARGET$.current_strength_with_allies_fifty_percent_value
# Not allies # Not allies
@ -1641,3 +1700,51 @@ estate_can_construct_olive_05_trigger = {
estate_can_construct_olive_06_trigger = { estate_can_construct_olive_06_trigger = {
domicile ?= { has_domicile_building_or_higher = estate_main_05 } domicile ?= { has_domicile_building_or_higher = estate_main_05 }
} }
estate_can_construct_health_03_trigger = {
domicile ?= { has_domicile_building_or_higher = estate_main_02 }
}
estate_can_construct_health_04_trigger = {
domicile ?= { has_domicile_building_or_higher = estate_main_03 }
}
estate_can_construct_health_05_trigger = {
domicile ?= { has_domicile_building_or_higher = estate_main_04 }
}
estate_can_construct_health_06_trigger = {
domicile ?= { has_domicile_building_or_higher = estate_main_05 }
}
estate_can_construct_japanese_tea_plantation_03_trigger = {
domicile ?= { has_domicile_building_or_higher = japanese_manor_main_02 }
}
estate_can_construct_japanese_tea_plantation_04_trigger = {
domicile ?= { has_domicile_building_or_higher = japanese_manor_main_03 }
}
estate_can_construct_japanese_tea_plantation_05_trigger = {
domicile ?= { has_domicile_building_or_higher = japanese_manor_main_04 }
}
estate_can_construct_japanese_tea_plantation_06_trigger = {
domicile ?= { has_domicile_building_or_higher = japanese_manor_main_05 }
}
# Check succession law types for Influence Candidacy validity
# TYPE should always be 'realm' or 'title'
influence_candidacy_valid_succession_law_trigger = {
OR = {
# Byzantium
has_$TYPE$_law = acclamation_succession_law
has_$TYPE$_law = appointment_succession_law
# Celestial Governors
has_$TYPE$_law = celestial_appointment_succession_law
has_$TYPE$_law = celestial_military_appointment_succession_law
# Meritocratic Governors
has_$TYPE$_law = meritocratic_appointment_succession_law
has_$TYPE$_law = meritocratic_military_appointment_succession_law
# Japanese Governors
has_$TYPE$_law = japanese_appointment_succession_law
has_$TYPE$_law = japanese_military_appointment_succession_law
# Ceremonial Regents
has_$TYPE$_law = meritocratic_regency_succession_law
has_$TYPE$_law = japanese_regency_succession_law
}
}

View file

@ -14,7 +14,7 @@ ep3_frankokratia_ghw_trigger = {
trigger_if = { trigger_if = {
limit = { limit = {
title:e_byzantium.holder = { title:e_byzantium.holder = {
government_has_flag = government_is_administrative government_has_flag = government_is_special_administrative
} }
} }
#Byzantine state faith is not Catholic #Byzantine state faith is not Catholic
@ -170,7 +170,7 @@ ep3_frankokratia_story_owner_trigger = {
highest_held_title_tier <= tier_kingdom highest_held_title_tier <= tier_kingdom
exists = faith.religious_head exists = faith.religious_head
faith.religious_head = { is_ai = yes } faith.religious_head = { is_ai = yes }
NOT = { scope:char_temp = faith.religious_head } scope:char_temp != faith.religious_head
exists = scope:char_temp.faith.great_holy_war exists = scope:char_temp.faith.great_holy_war
#Not pals with the Byzantine emperor #Not pals with the Byzantine emperor
exists = title:e_byzantium.holder exists = title:e_byzantium.holder
@ -208,9 +208,8 @@ ep3_frankokratia_story_owner_trigger = {
#Close family claimant #Close family claimant
any_close_or_extended_family_member = { any_close_or_extended_family_member = {
OR = { OR = {
AND = { ep3_frankokratia_claimant_trigger = yes
ep3_frankokratia_claimant_trigger = yes
}
AND = { AND = {
ep3_frankokratia_transiting_relative_trigger = yes ep3_frankokratia_transiting_relative_trigger = yes
#In-law claimant #In-law claimant
@ -430,8 +429,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:e_italy = { title:e_italy = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
ep3_frankokratia_financier_sub_trigger = yes ep3_frankokratia_financier_sub_trigger = yes
} }
} }
@ -439,8 +437,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:k_sicily = { title:k_sicily = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
ep3_frankokratia_financier_sub_trigger = yes ep3_frankokratia_financier_sub_trigger = yes
} }
} }
@ -448,8 +445,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:k_croatia = { title:k_croatia = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
ep3_frankokratia_financier_sub_trigger = yes ep3_frankokratia_financier_sub_trigger = yes
} }
} }
@ -457,8 +453,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:k_burgundy = { title:k_burgundy = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
ep3_frankokratia_financier_sub_trigger = yes ep3_frankokratia_financier_sub_trigger = yes
} }
} }
@ -466,8 +461,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:k_aquitaine = { title:k_aquitaine = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
ep3_frankokratia_financier_sub_trigger = yes ep3_frankokratia_financier_sub_trigger = yes
} }
} }
@ -475,8 +469,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:e_spain = { title:e_spain = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
ep3_frankokratia_financier_sub_trigger = yes ep3_frankokratia_financier_sub_trigger = yes
} }
} }
@ -484,8 +477,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:e_italy = { title:e_italy = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
highest_held_title_tier < tier_empire highest_held_title_tier < tier_empire
ep3_frankokratia_financier_trigger = yes ep3_frankokratia_financier_trigger = yes
@ -495,8 +487,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:k_sicily = { title:k_sicily = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
highest_held_title_tier < tier_empire highest_held_title_tier < tier_empire
ep3_frankokratia_financier_trigger = yes ep3_frankokratia_financier_trigger = yes
@ -506,8 +497,7 @@ ep3_frankokratia_financier_exists_trigger = {
title:k_croatia = { title:k_croatia = {
any_in_de_jure_hierarchy = { any_in_de_jure_hierarchy = {
count >= 1 count >= 1
exists = holder holder ?= {
holder = {
highest_held_title_tier >= tier_county highest_held_title_tier >= tier_county
highest_held_title_tier < tier_empire highest_held_title_tier < tier_empire
ep3_frankokratia_financier_trigger = yes ep3_frankokratia_financier_trigger = yes
@ -529,7 +519,7 @@ ep3_frankokratia_valid_joiner_trigger = {
has_truce = title:e_byzantium.holder has_truce = title:e_byzantium.holder
has_relation_friend = title:e_byzantium.holder has_relation_friend = title:e_byzantium.holder
any_owned_story = { any_owned_story = {
story_type = frankokratia_story type = frankokratia_story
} }
} }
} }
@ -567,6 +557,7 @@ ep3_frankokratia_latin_kingdom_available_trigger = {
ep3_frankokratia_discard_old_lands_trigger = { ep3_frankokratia_discard_old_lands_trigger = {
NAND = { NAND = {
primary_title = { primary_title = {
tier <= tier_empire
empire = title:e_byzantium empire = title:e_byzantium
} }
any_sub_realm_county = { any_sub_realm_county = {
@ -582,9 +573,7 @@ ep3_frankokratia_beneficiary_trigger = {
faith = scope:frankokratia_crusader.faith faith = scope:frankokratia_crusader.faith
NOR = { NOR = {
this = scope:financier this = scope:financier
any_heir_title = { any_heir_title = { }
count >= 1
}
has_trait = incapable has_trait = incapable
has_trait = devoted has_trait = devoted
AND = { AND = {

View file

@ -231,7 +231,7 @@ mpo_war_of_defiance_notified_player_trigger = {
AND = { AND = {
exists = root.capital_county exists = root.capital_county
realm_to_title_distance_squared = { realm_to_title_distance_squared = {
title = root.capital_county target = root.capital_county
value <= squared_distance_almost_massive value <= squared_distance_almost_massive
} }
} }
@ -240,7 +240,7 @@ mpo_war_of_defiance_notified_player_trigger = {
gok_desirable_vassal_trigger = { gok_desirable_vassal_trigger = {
OR = { OR = {
ai_boldness <= medium_negative_ai_value ai_boldness <= low_negative_ai_value
has_trait = loyal has_trait = loyal
is_obedient_to = scope:gok is_obedient_to = scope:gok
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:gok } has_any_good_relationship_with_character_trigger = { CHARACTER = scope:gok }
@ -251,7 +251,29 @@ gok_desirable_vassal_trigger = {
is_allied_to = scope:gok is_allied_to = scope:gok
opinion = { opinion = {
target = scope:gok target = scope:gok
value >= 70 value > 20
}
#Dukes from pliant cultures are cool
AND = {
highest_held_title_tier < tier_kingdom
culture = {
OR = {
has_cultural_tradition = tradition_loyal_soldiers
has_cultural_tradition = tradition_pacifism
has_cultural_tradition = tradition_xenophilic
has_cultural_tradition = tradition_modest
has_cultural_tradition = tradition_fp2_malleable_subjects
}
}
}
trigger_if = {
limit = {
faith = scope:gok.faith
}
opinion = {
target = scope:gok
value >= -20
}
} }
} }
} }
@ -405,6 +427,7 @@ gok_willing_new_admin_vassal_trigger = {
} }
} }
NOR = { NOR = {
government_has_flag = government_is_special_administrative
government_has_flag = government_is_administrative government_has_flag = government_is_administrative
government_has_flag = government_is_tribal government_has_flag = government_is_tribal
} }

Some files were not shown because too many files have changed in this diff Show more