barony tier domiciles

This commit is contained in:
Fishedotjpg 2026-03-10 00:41:50 +00:00
parent 138d2d5af3
commit ef4d489d81
71 changed files with 35009 additions and 248 deletions

View file

@ -0,0 +1,363 @@
##############################################################
# Structure
#
# Situations are short or long running objects that are bound to a region, which go through phases.
# Characters can be a participant in the situation, and then will belong to one participant group.
##############################################################
situation_type = {
### Brief: window ( enum )
# What code functions will be available for the gui window.
# Default is 'situation'.
#
# Enums:
# situation
# the_great_steppe
# silk_road
# dynastic_cycle
#
window = situation
### Brief: gui_window_name ( string )
# Which gui window to use for this situation. Notice you can mix and match code 'window' with any gui window.
# Expects a file to be located under "gui/" and will automatically apply the ".gui" file ending, containing a widget
# with the specified name.
# Default is "window_situation"
#
gui_window_name = window_situation
### Brief: gui_participation_window_name ( string )
# Which gui window to use for the situation participation sub-window.
# Expects a file to be located under "gui/" and will automatically apply the ".gui" file ending, containing a widget
# with the specified name.
# Default is "window_situation_participation"
#
gui_participation_window_name = window_situation_participation
### Brief: gui_tooltip_group_focused (bool )
# If phase effect tooltips display effects by Participant Group, instead of by Named Modifier Set (modifier_named_sets)
#
gui_tooltip_group_focused = no
# Path to illustration shown in the situation list window
illustration = "path/to/image.dds"
# Triggered icon for the situation, accessible via [Situation.GetIcon].
# Write one entry per icon. The trigger is based on a Situation scope.
# If no empty triggered asset is defined, the default will be the situation_type icon.
icon = {
trigger = { ... }
reference = "icon_path.dds"
}
# Foldable situation group type where to put this situation in the gui.
# Defaults to the 'minor' group.
situation_group_type = <key>
# The order that the situation should show up within its situation group in the gui.
# Higher number is sorted first, tie breaking is on definition order if same sort order.
# Defaults to 0.
sort_order = integer
### Brief: map_mode ( enum )
# Which map mode to use for this situation type
# Default is participant_groups
#
# Enums:
# participant_groups
# sub_regions
#
map_mode = participant_groups
### What geographical sub-regions this Situation has
# - Each sub-region has their own list of characters for each participant group (see below)
# - Each sub-region will also have their own current active phase (same phases and flow for all sub-regions, as defined in 'phases' below
# - You are required to have at least 1 sub-region (otherwise the situation doesn't affect anything)
# - You are restricted to max 255 sub-regions. This is needed to properly identify participant groups within the region (see below)
# - Subregions cannot overlap
sub_regions = {
# Note: Every region type added below is counted as part of this sub-region <key>'s area
my_sub_region_key = {
# (optional) Path to illustration shown in the situation windows, texture can be accessed in GUI: "[SituationSubRegion.GetIllustration]"
illustration = "path/to/image.dds"
# (optional) Path to icon shown in the situation windows, texture can be accessed in GUI: "[SituationSubRegion.GetIcon]"
icon = "path/to/image.dds"
# (optional) The color of the sub-region, used for some map modes
map_color = { 1 0.5 0.2 }
# (optional) Add array of pre-defined geographical regions
geographical_regions = { world_mesopotamia special_mongol_empire_start_region }
}
my_other_region_key = {
...
}
}
### Define one or more participant groups.
# Participating characters can only belong to one participant group at a time, for each sub-region.
# Characters being considered for participation will be placed in the *first* group they are valid for.
# You are restricted to max 255 participant groups. This is needed to properly identify participant groups within a specific region.
# There is a set of groups for each sub-region.
participant_groups = {
# One group with characters
my_group_key = {
# (optional) Path to icon for group
icon = "path/to/image.dds"
### Should this group automatically consider all landed rulers in a sub-region as potential participants
# Rulers still need to satisfy the other conditions of this group to be automatically added to it.
# If this is 'no', then you will need to manually add/remove landed rulers to the Situation instead
# (default: yes)
auto_add_rulers = yes
### Should this group automatically consider all rulers with their domicile in a sub-region as potential participants
# Landless rulers still need to satisfy the other conditions of this group to be automatically added to it.
# If this is 'no', then you will need to manually add/remove landless characters to the Situation instead
# (default: yes)
auto_add_landless_rulers = yes
# (optional) The color of the participant group, used for some map modes
map_color = { 1 0.5 0.2 }
# Is it required that the capital of participants is in the region?
# (default: no)
require_capital_in_sub_region = no
# Is it required that some part of the domain of participants is in the region?
# (default: no)
require_domain_in_sub_region = no
# Is it required that some part of the realm of participants is in the region?
# (default: yes)
require_realm_in_sub_region = yes
# Is it required that the character's domicile, if any, is in the region?
# Character without domicile will still satisfy this requirement.
# (default: no)
require_domicile_in_sub_region = no
### Trigger determining if a character is valid to be added / can stay in this group (optional)
# root = character
# scope:situation = situation
# scope:situation_sub_region = situation sub region
is_character_valid = {}
### Effect run when character joins
# root = character
# scope:situation = situation
# scope:situation_participant_group = situation participant group
# scope:situation_sub_region = situation sub region
on_join = {}
### Effect run when character leaves the participant group (note: not fired when the situation ends)
# root = character
# scope:situation = situation
# scope:situation_participant_group = situation participant group
# scope:situation_sub_region = situation sub region
on_leave = {}
}
}
### Effect run when Situation starts (and initial setup has been completed)
# Root = situation
on_start = {}
### Effect run when Situation ends
# Root = situation
on_end = {}
### Effect run every month
# Root = situation
on_monthly = {}
### Effect run every year
# Root = situation
on_yearly = {}
### Effect run on Character as they join the situation
# Root = character
on_join = {}
### Effect run on Character as they leave the situation (note: not fired when the situation ends)
# Root = character
on_leave = {}
### If this situation type can only exist once in the world
# (this allows access via scope `situation:<name_of_type>`)
# Default: no
is_unique = no
# Enables full catalyst history for the situation if set to yes.
# The catalyst history can become very big, only use this flag if needed.
keep_full_history = no
### If rulers involved in this situation should migrate in search for better fetrility
# Migration AI is a complex part of AI logic, so it needs to be explicitly enabled here
# Rules that are involved insituation and who use county fertility will migrate
# Default: no
migration = no
# Which phase should this situation start in (if none if given on situation creation)
start_phase = my_phase_key
# Are the situation phase icons flat or not? Mismatch here gives weird appearance in tooltips.
# Default: yes
use_situation_phase_flat_icons = yes
# Which phases can this Situation Type be in? (at least one needs to exist)
phases = {
# Definition of one phase
my_phase_key = {
### Brief: parameters ( parameter list )
# Arbitrary parameters related to the phase type
# Can be checked in gui by: SituationPhaseType.HasParameter('string')
# Note: Requires loc format "situation_parameter_<key>" to show up in tooltips
#
# Differenting from the parameters in modifier_named_sets in that these
# are always the same on the phase type regardless of involved characters
#
parameters = {
some_parameter = yes
}
# Effect run when phase is started in a specific sub region
# Root = situation
# scope:situation = situation
# scope:situation_sub_region = situation sub region this phase belongs to
on_start = { }
# Effect run when phase in a specific sub region is being ended (and next phase has been determined)
# Root = situation
# scope:situation = situation
# scope:situation_sub_region = situation sub region this phase belongs to
on_end = { }
# (optional) Path to illustration shown in the situation windows
# Texture can be accessed in GUI: "[SituationPhaseType.GetIllustration]" or "[SituationSubRegion.GetCurrentPhase.GetType.GetIllustration]"
illustration = "path/to/image.dds"
# (optional) Path to icon for group
icon = "path/to/image.dds"
# (optional) Map province effect applied to all provinces of the sub-region if this phase is active
map_province_effect = map_province_effect_key
# (optional) Map province effect intensity (range 0.0-1.0, default 1.0)
map_province_effect_intensity = 1.0
# (optional) Maximum duration (days) this phase will run.
# `max_duration_next_phase` will determine which phase will be next, if max_duration is met
# [Scripted Duration]
# root - situation
# scope:situation_sub_region = situation sub region this phase belongs to
max_duration = { days = 1234 }
# How a next phase is selected, if this phase ends by running out of duration (without a phase taking it over before that).
#
# Possible values:
# (default) highest_points - whichever of the 'future_phases' has accumulated the most 'points'
# weighted_random_points - randomly picks one of the 'future_phases', weighted by their current 'points'
# random_non_takeover - randomly picks one of the 'future_phases' with equal weight, only picking from phases that have `takeover_type = none`
# weighted_non_takover - picks one of the 'future_phases' with highest 'weight' value
max_duration_next_phase = weighted_random_points
# Which phases could this phase transition into?
future_phases = {
# 'phase_key' of possible future phase
my_future_phase_key = {
### (optional) If this phase can take over a currently active phase, and how.
#
# Possible values:
# none - (default) It cannot take over an active phase
# points - when the phase accumulates enough catalyst points, specified by `takeover_points`
# duration - when the current active phase has been active for a specific duration, specified by `takeover_duration`
takeover_type = duration
### (optional) Scripted value determining when this phase takes over an active phase in catalyst points
# Cannot be used together with `takeover_duration`
takeover_points = 1234
### (optional) Scripted value determining when this phase takes over for the next phase
weight = 10
### Scripted value determining when this phase takes over an active phase, if that phase has been active for a duration. (scripted duration)
# Cannot be used together with `takeover_points`
# Root = situation
# scope:situation_sub_region = situation sub region this phase belongs to
takeover_duration = { days = 1234 }
### (optional) Which catalysts contribute to this phase taking over? Value is "number of points" added to future phase total.
# If 'takeover_type = points', this can trigger an automatic take-over of the current phase by this future phase.
# (possible catalysts are defined in common/situation/catalyst)
catalysts = {
catalyst_betrayed_alliance = 25
catalyst_something_something = 30
}
}
# Another possible future phase
other_future_phase_key = {
# More catalysts here
}
}
# Which modifiers and other effects are active while this phase is active
modifier_named_sets = {
### Named "set of modifiers"
# Apply modifiers / parameters to current situation phase & participants
# Examples: "War Effects", "Diplomacy Effects"
# Note: The arbitrary name you set will be used as it's localization key
#
war_effects_and_stuff_set = {
### Brief: icon ( string )
# Path to icon texture displayed in situation windows
icon = "path/to/image.dds"
### Applied to all participant groups in the situation
# (see `my_participant_group_type_key` below for examples)
all = {
county_modifier = {}
character_modifier = {}
parameters = {}
doctrine_character_modifier = {}
}
# Only for one specific participant group
my_participant_group_type_key = {
# (optional) Modifier applied to the character participant
character_modifier = {}
# (optional) Modifier applied to all domain counties of a ruler participant
county_modifier = {}
# (optional) One or more situation parameters that are active while this phase is active
parameters = {
cheaper_to_convert_to_struggle_faith = yes
county_faith_conversion_in_region_proceeds_faster = yes
}
# Applied to involved characters if they have the given doctrine (can define multiple 'doctrine_character_modifier')
doctrine_character_modifier = {
name = name_of_doctrine_localization_key
doctrine = doctrine_theocracy_lay_clergy
same_faith_opinion = 3
}
doctrine_character_modifier = {
name = name_of_other_doctrine_localization_key
doctrine = doctrine_theocracy_temporal
same_faith_opinion = -3
}
}
}
another_named_set = {
...
}
}
}
}
}