This commit is contained in:
Magpie490 2025-02-20 16:42:52 +00:00
parent 9b6e1121b4
commit 0918b6c1ed
6 changed files with 18315 additions and 3 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,161 @@

### Brief: <key> ( database key )
# Flavor text description of building defaults to
# "<key>_domicile_building_desc".
#
# All buildings automatically inherit the character modifiers of its
# previous buildings of the same track
#
<key> = {
### Brief: can_construct ( trigger )
# Is the scoped owner able to construct this building?
#
# Supported scopes:
# root ( Character )
#
can_construct = {
<triggers>
}
### Brief: on_start/on_cancelled/on_completed ( effect )
# Effects fired when construction begins, is cancelled or finishes.
#
# Available scopes:
# root -- Domicile it is built in
# scope:owner -- Owner of the Domicile
#
on_start/on_cancelled/on_complete = { }
# How many days it takes to construct the building
# Note: Affected by modifiers 'build_speed' and 'domicile_build_speed'
construction_time = 720
### Brief: parameters ( parameter list )
# Arbitrary parameters that can be checked with the trigger
# 'has_domicile_parameter'
#
# Note: The above trigger just checks for existence, so it does not
# matter if the value is set to 'yes' or 'no'.
#
# Parameters are not inherited from previous_building and has to be
# repeated to not get lost on upgrading.
#
parameters = {
some_parameter = yes
}
### Brief: slot_type ( parameter list )
# This building may only be constructed in selected slot type
#
# Internal slots cannot be base buildings and requires a previous
# building. They may only be constructed within a main or external
# building.
#
# If slot type is 'main' and it doesn't have a previous building,
# it will automatically be constructed on start
#
# Slot types are: 'main', 'external' or 'internal'.
# Default type is 'external'
#
slot_type = external
### Brief: internal_slots ( int32 )
# Set the amount of unlocked internal building slots this building
# has.
#
# Default is 0
#
internal_slots = 0
### Brief: allowed_domicile_types ( list of database key )
# List the domicile types which can build this building.
#
# UNSET WILL NOT SHOW UP!
#
allowed_domicile_types = {
<key>
<key>
}
### Brief: previous_building ( database key )
# If the 'previous_building'-statement is missing, this building
# will be treated as a base building meaning the first tier of a
# potentional chain of building upgrades.
#
# To define an upgrade, type the key name of the building before
# it, marking this building as it's upgrade.
#
# A building will get diverging upgrade paths if two upgrades has
# the same 'previous_building'-key
#
previous_building = <key>
### Brief: cost ( scripted cost )
# How much does this building cost?
#
# Ex: { gold = 500, prestige = 100 }
#
cost = {
<scripted_cost>
}
### Brief: character_modifier ( modifiers )
# Modifiers applied to the Domicile owner of this building.
# Ex: { county_opinion_add = 2, stress_loss_mult = 0.15 }
#
# Note: Please do not use holdings monthly_income, etc..!
# Instead use: domicile_monthly_gold_add or
# domicile_monthly_gold_mult (same for: _prestige / _piety /
# _influence )
#
character_modifier = {
<modifier>
}
### Brief: ai_value ( script value )
# How desirable is the building for the AI. Evaluated alongside
# regular buildings.
#
# Available scopes:
# root -- Domicile it is built in
# scope:owner -- Owner of the Domicile
#
ai_value = {
value = 100
}
### Brief: asset ( asset definition )
# Which asset does the building use
#
asset = {
### Brief: trigger ( trigger )
# Trigger for scoped domicile when to pick this asset over
# another, remove it to always pick this asset
#
trigger = { ... }
### Brief: icon ( string path )
# Building icon used in UI
#
icon = "path/to/image.dds"
### Brief: texture ( string path )
# Path to texture shown in the domicile window
#
texture = "path/to/image.dds"
### Brief: intersectionmask_texture ( string path )
# Mask used with texture
#
intersectionmask_texture = "path/to/mask.png"
### Brief: soundeffect ( string soundbank reference )
# Associated sound effect. Supports soundparameters where they
# will be automatically appended based on building's current
# tier: soundparameter = { "Tier" = 1 }
#
soundeffect = "event:/DLC/EP2/SFX/UI/Grand_Activity/Tournaments/ep2_ui_grand_tournament_farrier"
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,132 @@
domicile_type = {
# Is this domicile type allowed for character
# root = character
allowed_for_character = {
<triggers>
}
# Shortcut to rename the domicile window
# Rename windows are: 'primary_title' or 'house'. Default type is 'none'
rename_window = none
# Texture used in the realm tab access
illustration = "path/to/image.dds"
# Flat icon texture representing the domicile type in various places
icon = "path/to/image.dds"
# Texture for map pin
map_pin_texture = "path/to/image.dds"
# Where to anchor the domicile map pin in relation to it's province
# Anchor types are: 'up' or 'right'. Default type is 'right'
map_pin_anchor = right
# Will this domicile show up in the game lobby
map_pin_lobby = yes
# Does this domicile manage the provisions resource
# Domiciles that use provisions travel to a new location, otherwise it's moved instantly
provisions = no
# After moving the domicile, how many days before you can move again?
# days/weeks/months/years = X
move_cooldown = { days = 7 }
# How much does it cost to move the domicile? Ex: { gold = 500, prestige = 100 }
move_cost = {
<scripted_cost>
}
# Modifier applied to the domicile owner when disliked by the majority of their court
# Can take a "scale" parameter to scale by (a script value; see _script_values.info)
domicile_temperament_low_modifier = {}
# Modifier applied to the domicile owner when liked by the majority of their court
# Can take a "scale" parameter to scale by (a script value; see _script_values.info)
domicile_temperament_high_modifier = {}
# How many unlocked external building slots domicile starts out with
base_external_slots = 2
# List all available main and external slots, they will be unlocked in order of appearance here
# Note: Internal slots are handled separately by the buildings themselves
# Layering of slots (in front/behind) matches order of definition
domicile_building_slots = {
main_slot = { # any name you want
# Set what domicile building may be constructed here based on their slot type
# Types are: 'main' or 'external'. The 'internal' slot type is handled within the buildings themselves
# Main buildings without a previous building will attempt to be constructed automatically in found main slots
# Default type is 'external'
slot_type = main
# Building position in the domicile window, supports both % and direct values
position = { ... }
# Size of buildings placed in this slot, supports both % and direct values
size = { ... }
# Define assets used when slot is empty, will pick first valid match
empty_slot_asset = {
# Trigger for scoped domicile when to pick this asset over another, remove trigger part to always pick this asset
trigger = { ... }
# Building icon used in UI
icon = "path/to/image.dds"
# Path to texture shown in the domicile window
texture = "path/to/image.dds"
# Mask used with texture
intersectionmask_texture = "path/to/mask.png"
}
# Define assets used when building is under construction in this slot, will pick first valid match
construction_slot_asset = {
# Trigger for scoped domicile when to pick this asset over another, remove trigger part to always pick this asset
trigger = { ... }
# Building icon used in UI
icon = "path/to/image.dds"
# Path to texture shown in the domicile window
texture = "path/to/image.dds"
# Mask used with texture
intersectionmask_texture = "path/to/mask.png"
}
}
external_slot_1 = { # any name you want
...
}
}
# What background assets does the domicile use, will pick first valid match
domicile_asset = {
# Trigger for scoped domicile when to pick this asset over another, remove trigger part to always pick this asset
trigger = { ... }
# Path to background texture shown in the domicile window
background = "path/to/image.dds"
# Path to foreground texture shown in the front of domicile window
foreground = "path/to/image.dds"
# Path to ambience sound
ambience = "path/to/ambience"
}
# Map entity for the domicile, multiple can be read in, first one is picked from order they are read in.
#
# If the location of the domicile has no holding, it takes the place of the holding (on the 'Buildings' locator).
# Else they will be placed on the 'Activity' locator, but only if there is nothing there at that time.
map_entity = {
# root = the domicile
# scope:owner = domicile owner
trigger = {
<triggers>
}
reference = "name" # Entity name
}
map_entity = "name" # Short hand for a single constant entity name
}

View file

@ -20,7 +20,7 @@
administrative_themes = {
display_mode = radiobutton
is_shown = {
scope:vassal.primary_title.tier >= tier_duchy
scope:vassal.primary_title.tier >= tier_county
}
obligation_levels = {
admin_theme_balanced = {
@ -89,9 +89,9 @@ administrative_themes = {
tax_factor = 0.5
vassal_modifier = {
city_holding_build_speed = -0.15
city_holding_build_gold_cost = -0.15
development_growth_factor = 0.2
build_gold_cost = -0.1
build_speed = -0.1
men_at_arms_title_limit = -2
men_at_arms_title_cap = -2
}
@ -143,6 +143,9 @@ administrative_themes = {
levies_factor = 0.75
vassal_modifier = {
levy_size = 0.1
castle_holding_build_speed = -0.15
castle_holding_build_gold_cost = -0.15
development_growth_factor = -0.25
monthly_county_control_growth_factor = 0.1
maa_damage_mult = 0.1