N3OW/gui/window_character.gui

4724 lines
117 KiB
Text
Raw Normal View History

2025-02-19 22:51:48 +00:00
######################################################
################# CHARACTER WINDOW ###################
######################################################
window = {
name = "character_window"
widgetid = "character_window"
datacontext = "[GetVariableSystem]"
datacontext = "[CharacterWindow.GetCharacter]"
movable = no
layer = middle
allow_outside = yes
using = Window_Size_Sidebar
using = Window_Background_Sidebar
state = {
name = _show
using = Animation_FadeIn_Quick
using = Sound_WindowShow_Standard
position_x = 0
on_start = "[GetVariableSystem.Set( 'hide_bottom_left_HUD', 'true' )]"
}
state = {
name = _hide
using = Animation_FadeOut_Quick
using = Sound_WindowHide_Standard
position_x = -60
on_start = "[GetVariableSystem.Clear( 'hide_bottom_left_HUD' )]"
}
vbox = {
name = "main_content"
using = Window_Margins_Sidebar
###############
# Character box
widget = {
name = "main_characters"
datacontext = "[GetIllustration( 'character_view_bg' )]"
layoutpolicy_horizontal = expanding
size = { 0 305 }
widget = {
size = { 100% 100% }
using = Animation_Character_Window_Refresh
background = {
texture = "[Illustration.GetTexture( Character.MakeScope )]"
fittype = centercrop
margin_bottom = 5
margin_left = 1
modify_texture = {
texture = "gfx/interface/component_masks/mask_rough_edges_down_right.dds"
spriteType = Corneredtiled
spriteborder = { 20 20 }
blend_mode = alphamultiply
texture_density = 2
}
}
}
### Primary Spouse
container_secondary = {
visible = "[CharacterWindow.ShouldShowSecondary]"
}
### Main Character
portrait_character_view_main = {
name = "tutorial_highlight_main_character_button"
parentanchor = bottom|left
position = { 0 0 }
using = Animation_Character_Window_Refresh_Short
blockoverride "portrait_opinion"
{
vassal_stance_icon = {
name = "vassal_stance"
size = { 20 20 }
}
}
}
secondary_widget = {
visible = "[CharacterWindow.ShouldShowSecondary]"
position = { 250 0 }
}
buttons_window_control = {
parentanchor = top|right
blockoverride "extra_buttons"
{
icon = {
visible = "[And( InDebugMode, Not( Character.AccessDenied ) )]"
size = { 30 30 }
texture = "gfx/interface/icons/icon_group_of_characters.dds"
tooltip = "CHARACTER_AI_VALUES_DEBUG_TOOLTIP"
}
button_copy = {
visible = "[And( InDebugMode, Not( Character.AccessDenied ) )]"
size = { 30 30 }
onclick = "[Character.CopyCharacterDna]"
raw_tooltip = "Copy DNA"
}
button_copy = {
visible = "[And( InDebugMode, Not( Character.AccessDenied ) )]"
size = { 30 30 }
onclick = "[Character.CopyCharacterPersistentDna]"
raw_tooltip = "Copy Persistent DNA"
}
}
blockoverride "button_close"
{
onclick = "[CharacterWindow.Close]"
}
blockoverride "button_back"
{
visible = "[HasViewHistory]"
onclick = "[OpenFromViewHistory]"
tooltip = "[GetViewHistoryTooltip]"
}
blockoverride "button_me"
{
visible = "[Not(Character.IsLocalPlayer)]"
onclick = "[DefaultOnCharacterClick(GetPlayer.GetID)]"
}
blockoverride "button_pin" {
visible = "[Not( Character.AccessDenied )]"
}
background = {
using = Background_Area_Solid
modify_texture = {
name = "mask"
texture = "gfx/interface/component_masks/mask_fade_horizontal_middle_thick.dds"
spriteType = Corneredstretched
spriteborder = { 0 0 }
blend_mode = alphamultiply
}
alpha = 0.7
margin_left = 30
margin_right = 30
}
}
hbox = {
margin_top = 50
layoutpolicy_horizontal = expanding
expand = {}
### Jailor / Imprisoner / Imprisoned by
vbox = {
name = "imprisoned_by"
datacontext = "[CharacterWindow.GetCharacter.GetImprisonedBy]"
visible = "[Character.IsValid]"
margin_right = 20
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
portrait_head_small = {
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
}
text_label_center = {
text = "IMPRISONED_BY"
}
expand = {}
}
### Hostage Home Court
vbox = {
name = "hostage_home_court"
datacontext = "[CharacterWindow.GetCharacter.GetHomeCourt]"
visible = "[Character.IsValid]"
margin_right = 20
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
portrait_head_small = {
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
}
text_label_center = {
text = "[home_court|E]"
}
expand = {}
}
### Liege
vbox = {
name = "liege"
datacontext = "[CharacterWindow.GetCharacter.GetLiegeEvenWhenDead]"
visible = "[CharacterWindow.HasLiegeEvenWhenDead]"
allow_outside = yes
margin_right = 20
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
portrait_head_small = {
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
blockoverride "coa" {
coa_realm_tiny = {
visible = "[And(CharacterWindow.GetCharacter.IsAlive, CharacterWindow.HasLiegeTitleEvenWhenDead)]"
parentanchor = bottom|left
position = { 3 -2 }
scale = 0.85
}
coa_title_tiny = {
visible = "[And(Not(CharacterWindow.GetCharacter.IsAlive), CharacterWindow.HasLiegeTitleEvenWhenDead)]"
datacontext = "[CharacterWindow.GetCharacter.GetLiegeTitleEvenWhenDead]"
parentanchor = bottom|left
position = { 3 -2 }
scale = 0.85
}
}
}
hbox = {
spacing = 3
text_label_center = {
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[Character.IsHostage]"
text = "WARDEN_OF"
}
text_label_center = {
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[Not( Character.IsHostage )]"
text = "[liege|E]"
}
icon = {
datacontext = "[CharacterWindow.GetCharacter]"
name = "non_dejure_liege"
visible = "[Not( Character.GetVassalContract.IsRightfulLiege )]"
size = { 30 30 }
texture = "gfx/interface/icons/levy_tax_reduction.dds"
using = tooltip_ws
tooltip = "MRW_TT_NOT_RIGHTFUL_LIEGE"
}
}
portrait_opinion = {
name = "liege_opinion"
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[And( Character.GetLiege.IsValid, And( Character.IsAlive, Not(Character.IsLocalPlayer ) ) )]"
blockoverride "dread_logic" {
visible = "[Character.ShouldShowDreadEffectIconFor( Character.GetLiege )]"
frame = "[Character.GetDreadEffectIconFrameFor( Character.GetLiege )]"
tooltip = "[Character.GetDreadEffectTooltipFor( Character.GetLiege )]"
}
blockoverride "opinion_text"
{
text = "[Character.GetOpinionOf( Character.GetLiege )|=]"
fonttintcolor = "[Character.GetOpinionOfTint( CharacterWindow.GetCharacter.GetLiege )]"
}
blockoverride "ott_heading_text"
{
text = "[Character.GetOpinionHeadingText( CharacterWindow.GetCharacter.GetLiege )]"
}
blockoverride "ott_opinion_value_text"
{
text = "[Character.GetOpinionOf( Character.GetLiege )|=]"
fonttintcolor = "[Character.GetOpinionOfTint( CharacterWindow.GetCharacter.GetLiege )]"
}
blockoverride "ott_opinion_breakdown_text"
{
text = "[Character.GetOpinionBreakdownText( CharacterWindow.GetCharacter.GetLiege )]"
}
}
expand = {}
}
}
### Host
container = {
name = "host"
datacontext = "[CharacterWindow.GetCourtOwner]"
visible = "[And( Not( CharacterWindow.HasLiegeEvenWhenDead ), And( CharacterWindow.GetCourtOwner.IsValid, Not( CharacterWindow.GetCharacter.IsRuler ) ) )]"
parentanchor = bottom|right
widgetanchor = top|left
position = { -105 -250 }
using = Animation_Character_Window_Refresh
portrait_head_small = {
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
}
text_label_center = {
parentanchor = top|hcenter
position = { 0 85 }
text = "[host|E]"
}
portrait_opinion = {
name = "liege_opinion"
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[And(Character.IsAlive, Not(Character.IsLocalPlayer))]"
parentanchor = top|hcenter
position = { -10 110 }
blockoverride "dread_logic" {
visible = "[Character.ShouldShowDreadEffectIconFor( CharacterWindow.GetCourtOwner )]"
frame = "[Character.GetDreadEffectIconFrameFor( CharacterWindow.GetCourtOwner )]"
tooltip = "[Character.GetDreadEffectTooltipFor( CharacterWindow.GetCourtOwner )]"
}
blockoverride "opinion_text"
{
text = "[Character.GetOpinionOf( CharacterWindow.GetCourtOwner )|=]"
fonttintcolor = "[Character.GetOpinionOfTint( CharacterWindow.GetCourtOwner )]"
}
blockoverride "ott_heading_text"
{
text = "[Character.GetOpinionHeadingText( CharacterWindow.GetCourtOwner )]"
}
blockoverride "ott_opinion_value_text"
{
text = "[Character.GetOpinionOf( CharacterWindow.GetCourtOwner )|=]"
fonttintcolor = "[Character.GetOpinionOfTint( CharacterWindow.GetCourtOwner )]"
}
blockoverride "ott_opinion_breakdown_text"
{
text = "[Character.GetOpinionBreakdownText( CharacterWindow.GetCourtOwner )]"
}
}
}
container = { # Player Heir for the local player
name = "heir_player"
datacontext = "[CharacterWindow.GetCharacter.GetPlayerHeir]"
visible = "[And(And( Character.IsValid, CharacterWindow.GetCharacter.IsLocalPlayer ), Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_spouse').GetValue, '(CFixedPoint)0' ) ))]"
parentanchor = bottom|right
position = { -20 -6 }
using = Animation_Character_Window_Refresh
portrait_head_small = {
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
}
text_label_center = {
parentanchor = top|hcenter
position = { 0 85 }
text = "[player_heir|E]"
multiline = yes
autoresize = yes
max_width = 100
}
}
container = { # Primary Heir for everyone else
name = "heir_primary"
datacontext = "[CharacterWindow.GetCharacter.GetPrimaryTitle.GetHeir]"
visible = "[And( And( Character.IsValid, Not(CharacterWindow.GetCharacter.IsLocalPlayer) ), CharacterWindow.GetCharacter.IsAlive )]"
parentanchor = bottom|right
position = { -20 -6 }
using = Animation_Character_Window_Refresh
portrait_head_small = {
parentanchor = right
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
}
text_label_center = {
parentanchor = top|hcenter
position = { 0 85 }
text = "[primary_heir|E]"
}
}
### DEBUG STUFF, please make sure those are visible and usable, especially the watch button, type "watch" into the console to show it
widget = {
name = "debug_buttons"
size = { 200 50 }
parentanchor = top|left
position = { 175 20 }
visible = "[InDebugMode]"
allow_outside = yes
# Debug personality
vbox = {
hbox = {
spacing = 15
#text_single = {
# visible = "[AIWatchWindowsEnabled]"
# text = "test_difficulty"
# align = nobaseline
# using = Background_Full_Dim
# tooltipwidget = {
# scripted_score_breakdown_tooltip = {
# blockoverride "breakdown_datacontext"
# {
# datacontext = "[Character.GetDestinyScriptedValueBreakdown( 'character_difficulty_value', GetPlayer, GetPlayer.GetPlayerHeir )]"
# }
#
# blockoverride "header_text" {
# raw_text = "Difficulty Breakdown"
# }
# }
# }
#}
#text_single = {
# visible = "[AIWatchWindowsEnabled]"
# text = "test_interest"
# align = nobaseline
# using = Background_Full_Dim
# tooltipwidget = {
# scripted_score_breakdown_tooltip = {
# blockoverride "breakdown_datacontext"
# {
# datacontext = "[Character.GetDestinyScriptedValueBreakdown( 'destiny_score_interest', GetPlayer, GetPlayer.GetPlayerHeir )]"
# }
#
# blockoverride "header_text" {
# raw_text = "Interest Breakdown"
# }
# }
# }
#}
button = {
using = editor_button
name = "ai_watch_button"
size = { 80 20 }
raw_text = "AI Watch"
align = center|nobaseline
onclick = "[CharacterWindow.OnAIWatch]"
visible = "[AIWatchWindowsEnabled]"
fontcolor = { 1.0 1.0 1.0 1.0 }
}
watch_window_button = {
size = { 60 40 }
onclick = "[AddWatchWindow( CharacterWindow.GetCharacter.MakeScope )]"
}
}
}
}
flowcontainer = {
parentanchor = bottom|left
position = { 5 -5 }
spacing = 5
ignoreinvisible = yes
direction = vertical
container = {
visible = "[Character.IsLocalPlayer]"
tooltip = "PLAYER_STRESS_TOOLTIP"
using = tooltip_es
widget = {
visible = "[Not(GreaterThanOrEqualTo_int32(GetPlayer.GetStressLevel, '(int32)3'))]"
size = { 100% 100%}
using = Animation_ShowHide_Standard
background = {
texture = "gfx/interface/component_masks/mask_fade_circle.dds"
color = { 0.15 0.15 0.15 1 }
margin = { 12 12 }
}
}
widget = {
visible = "[GreaterThanOrEqualTo_int32(GetPlayer.GetStressLevel, '(int32)3')]"
parentanchor = center
size = { 180% 180% }
using = Animation_ShowHide_Standard
icon = {
size = { 100% 100% }
texture = "gfx/interface/component_masks/mask_fade_circle.dds"
using = Color_Red
alpha = 0
state = {
name = a
next = b
trigger_on_create = yes
alpha = 0.5
duration = 0.4
using = Animation_Curve_Default
}
state = {
name = b
next = a
alpha = 0
duration = 1
using = Animation_Curve_Default
}
}
}
icon = {
parentanchor = vcenter
size = { 35 35 }
texture = "gfx/interface/icons/stress/icon_stress_level.dds"
framesize = { 70 70 }
frame = "[IntToFrameIndex( GetPlayer.GetStressLevel )]"
modify_texture = {
visible = "[GreaterThanOrEqualTo_int32(GetPlayer.GetStressLevel, '(int32)2')]"
name = "glow"
texture = "gfx/interface/colors/gold.dds"
blend_mode = colordodge
alpha = 0
}
state = {
name = a
next = b
duration = 0.4
trigger_on_create = yes
using = Animation_Curve_Default
modify_texture = {
name = "glow"
alpha = 0.3
}
}
state = {
name = b
next = a
duration = 1
using = Animation_Curve_Default
modify_texture = {
name = "glow"
alpha = 0
}
}
}
}
container = {
visible = "[GreaterThan_int32(GetDataModelSize(Character.GetKnownLanguages), '(int32)1')]"
parentanchor = hcenter
tooltip = "KNOWN_LANGUAGES_TOOLTIP"
widget = {
size = { 100% 100%}
using = Animation_ShowHide_Standard
background = {
texture = "gfx/interface/component_masks/mask_fade_circle.dds"
color = { 0.15 0.15 0.15 1 }
margin = { 12 12 }
}
}
icon_culture_pillar = {
size = { 30 30 }
texture = "gfx/interface/icons/culture_pillars/language.dds"
}
}
## barbershop button
button_normal = {
name = "open_barbershop"
visible = "[Character.CanCustomizePortrait]"
size = { 35 35 }
datacontext = "[CharacterWindow.AccessCharacter]"
tooltip = "CV_CUSTOMIZE_PORTRAIT"
using = tooltip_ne
icon = {
texture = "gfx/interface/buttons/button_lifestyles_base.dds"
size = { 100% 100% }
}
button_barbershop = {
visible = "[Character.CanCustomizePortrait]"
onclick = "[Character.OnCustomizePortrait]"
onclick = "[CloseGameView( 'character_interaction_menu' )]"
size = { 25 25 }
parentanchor = center
}
}
button_normal = {
name = "open_kill_list"
visible = "[Character.HasKillsKnownTo( GetPlayer )]"
size = { 35 35 }
datacontext = "[Character]"
tooltip = "OPEN_KILL_LIST_TOOLTIP"
using = tooltip_es
icon = {
texture = "gfx/interface/buttons/button_lifestyles_base.dds"
size = { 100% 100% }
}
button_kill_list = {
onclick = "[ToggleGameViewData( 'kill_list', Character.GetID )]"
size = { 25 25 }
parentanchor = center
modify_texture = {
texture = "gfx/interface/icons/focuses/hud_icon_mask.dds"
blend_mode = alphamultiply
}
}
}
button_normal = {
name = "open_memories"
size = { 35 35 }
datacontext = "[Character]"
tooltip = "OPEN_MEMORIES_TOOLTIP"
using = tooltip_es
icon = {
texture = "gfx/interface/buttons/button_lifestyles_base.dds"
size = { 100% 100% }
}
button_memories = {
onclick = "[ToggleGameViewData( 'memories', Character.GetID )]"
size = { 25 25 }
parentanchor = center
}
}
button_normal = {
name = "open_focus_button"
size = { 35 35 }
visible = "[Or( Character.GetFocus.IsValid, Character.PlayerCanManageFocus )]"
tooltip = "PLAYER_LIFESTYLE_TOOLTIP"
using = tooltip_ne
icon = {
texture = "gfx/interface/buttons/button_lifestyles_base.dds"
size = { 100% 100% }
}
highlight_icon_lifestyle_focus = {
size = { 100% 100% }
visible = "[And(GreaterThan_int32( Character.GetTotalPerkPoints, '(int32)0' ), Character.IsLocalPlayer)]"
texture = "[CharacterWindow.GetCharacter.GetFocus.GetIcon]"
modify_texture = {
texture = "gfx/interface/icons/focuses/hud_icon_mask.dds"
blend_mode = alphamultiply
}
state = {
name = a
next = b
alpha = 0
trigger_on_create = yes
duration = 1.2
using = Animation_Curve_Default
}
state = {
name = b
next = a
alpha = 0.5
duration = 0.6
using = Animation_Curve_Default
}
glow = {
glow_radius = 2
glow_generation_rules= {
glow_alpha_mask = 0
glow_blur_passes = 2
glow_texture_downscale = 2.5f
glow_ignore_inside_pixels = yes
}
using = Color_Orange
}
}
highlight_icon_lifestyle_focus = {
size = { 100% 100% }
texture = "[CharacterWindow.GetCharacter.GetFocus.GetIcon]"
onclick = "[CharacterWindow.OnClickFocusButton]"
enabled = "[CharacterWindow.CanClickFocusButton]"
tooltip = "[CharacterWindow.GetFocusButtonTooltip]"
modify_texture = {
texture = "gfx/interface/icons/focuses/hud_icon_mask.dds"
blend_mode = alphamultiply
}
}
}
button_open_inventory = {
visible = "[Character.IsAlive]"
name = "open_inventory"
size = { 35 35 }
}
}
button_normal = {
name = "open_royal_court"
size = { 70 70 }
visible = "[Character.HasRoyalCourt]"
position = { -30 -30 }
onclick = "[CharacterWindow.Close]"
onclick = "[Character.OpenRoyalCourtView( 'throne' )]"
datacontext = "[Character.GetCourtGrandeurData]"
tooltip = OPEN_ROYAL_COURT_TOOLTIP
icon = {
texture = "gfx/interface/buttons/button_lifestyles_base.dds"
size = { 100% 100% }
}
button_royal_court = {
onclick = "[CharacterWindow.Close]"
onclick = "[Character.OpenRoyalCourtView( 'throne' )]"
size = { 30 30 }
parentanchor = center
position = { 9 10 }
modify_texture = {
texture = "gfx/interface/icons/focuses/hud_icon_mask.dds"
blend_mode = alphamultiply
}
}
}
}
############################
### Character internal info
hbox = {
name = "character_info"
layoutpolicy_horizontal = expanding
margin = { 0 5 }
margin_left = 5
using = Animation_ShowHide_Quick
visible = "[Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_character_info').GetValue, '(CFixedPoint)0' ) )]"
using = Animation_ShowHide_Quick
background = {
using = Background_Area_Dark
margin_left = 5
}
vbox = {
layoutpolicy_horizontal = expanding
vbox = {
name = "name_and_traits"
layoutpolicy_horizontal = expanding
using = Animation_Character_Window_Refresh
vbox = {
name = "name_etc"
layoutpolicy_horizontal = expanding
## Name
hbox = {
layoutpolicy_horizontal = expanding
margin = { 3 0 }
margin_top = 1
text_single = {
name = "character_name"
raw_text = "[Character.GetUINameNotMeNoTooltip], "
margin_left = 2
max_width = 398
fontsize = 20
fontsize_min = 14
align = nobaseline
default_format = "#medium"
tooltip = "[Character.GetUINameNotMeNoTooltip]"
}
text_single = {
name = "character_age"
raw_text = " [Character.GetAge]"
default_format = "#low"
tooltip = "[Character.GetDeathOrBirthDateInfo]"
fontsize = 20
align = nobaseline
}
hbox = {
margin_left = 4
spacing = -3
icon = {
visible = "[Not(Character.IsDeadAndValid)]"
size = { 23 23 }
framesize = { 60 60 }
frame = "[Character.GetHealthIconFrame]"
texture = "gfx/interface/icons/character_status/icon_health.dds"
tooltip = "[Character.GetHealthInfo]"
}
icon = {
visible = "[Character.IsDeadAndValid]"
size = { 23 23 }
texture = "gfx/interface/icons/character_status/icon_dead.dds"
tooltip = "CHARACTER_DEAD_TOOLTIP"
}
}
expand = {}
}
hbox_character_relation_and_ai = {
name = "character_relation_and_ai"
margin = { 3 0 }
}
}
## Traits
hbox_traits_list = {
name = "tutorial_highlight_traits"
datacontext = "[CharacterWindow.GetTraitArrays]"
margin_bottom = 2
}
}
divider_light = {
layoutpolicy_horizontal = expanding
}
## Skills, Culture, Religion
hbox = {
name = "skills_culture_religion"
layoutpolicy_horizontal = expanding
background = {
using = Background_Area
}
hbox = {
name = "tutorial_highlight_skills"
hbox = {
name = "skills_grid"
datamodel = "[CharacterWindow.GetSkills]"
margin = { 2 0 }
using = Animation_Character_Window_Refresh
item = {
vbox = {
tooltip = "SKILL_ITEM_TOOLTIP"
using = tooltip_ne
spacing = -3
icon = {
name = "skill_icon"
size = { 32 32 }
framesize = { 60 60 }
frame = "[SkillItem.GetFrame]"
texture = "gfx/interface/icons/icon_skills.dds"
}
text_single = {
name = "skill_value"
text = "[SkillItem.GetValue]"
default_format = "#high"
align = nobaseline
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_skills_bg.dds"
frame = "[SkillItem.GetFrame]"
framesize = { 70 26 }
margin = { 10 0 }
}
}
}
}
}
hbox = {
spacing = -5
vbox = {
tooltip = "[CharacterWindow.GetCharacter.GetProwessBreakdown]"
using = tooltip_ne
spacing = -3
using = Animation_Character_Window_Refresh
icon = {
name = "prowess_icon"
size = { 32 32 }
texture = "gfx/interface/icons/icon_prowess.dds"
}
text_single = {
name = "prowess_value"
text = "[CharacterWindow.GetCharacter.GetProwess|0]"
align = nobaseline
}
}
}
vbox = {
tooltip = "ADMIN_WINDOW_THEME_GOVERNOR_EFFICIENCY_TT"
using = tooltip_ne
spacing = -3
2025-02-20 00:28:13 +00:00
visible = "[Or( Character.GetGovernment.IsType( 'administrative_government' ), And( And( Not( Character.HasLandedTitles ), Not( Character.HasLiege ) ), GetPlayer.GetGovernment.IsType( 'administrative_government' ) ) )]"
2025-02-19 22:51:48 +00:00
margin_right = 3
using = Animation_Character_Window_Refresh
icon = {
name = "char_governor_efficiency_icon"
size = { 32 32 }
texture = "gfx/interface/icons/icon_skill_governor_efficiency.dds"
}
text_single = {
name = "char_governor_efficiency_value"
text = "ADMIN_WINDOW_THEME_GOVERNOR_EFFICIENCY_VALUE"
align = nobaseline
}
}
divider_light = {
layoutpolicy_vertical = expanding
}
spacer = {
size = { 5 5 }
}
}
hbox = {
name = "faith_and_culture"
layoutpolicy_horizontal = expanding
using = Animation_Character_Window_Refresh
button_religion_icon = {
name = "faith_button"
datacontext = "[Character.GetFaith]"
size = { 45 45 }
}
vbox = {
layoutpolicy_horizontal = expanding
button_tertiary = {
datacontext = "[Character.GetFaith]"
layoutpolicy_horizontal = expanding
size = { 0 25 }
onclick = "[OpenGameViewData( 'faith', Faith.GetID )]"
text = "FAITH_CHARACTER_WINDOW"
default_format = "#clickable;italic"
align = left|nobaseline
margin_left = 5
tooltipwidget = { faith_tooltip_click = {} }
}
button_tertiary = {
datacontext = "[Character.GetCulture]"
layoutpolicy_horizontal = expanding
size = { 0 25 }
onclick = "[OpenGameViewData( 'culture_window', Culture.GetID )]"
text = "CULTURE_CHARACTER_WINDOW"
default_format = "#clickable;italic"
align = left|nobaseline
margin_left = 5
tooltipwidget = {
culture_tooltip_click = {}
}
}
}
}
vbox = {
layoutpolicy_vertical = expanding
margin = { 0 0 }
using = Animation_Character_Window_Refresh
button_group = {
onclick = "[CharacterWindow.ToggleExpandedModifiers]"
tooltip = "CHARACTER_WINDOW_MODIFIERS"
button_tertiary = {
size = { 100% 100% }
}
hbox = {
set_parent_size_to_minimum = yes
margin = { 2 2 }
fixedgridbox = {
name = "modifiers_grid"
datamodel = "[CharacterWindow.GetTimedModifiers]"
addcolumn = 23
addrow = 23
datamodel_wrap = 2
maxhorizontalslots = 2
maxverticalslots = 2
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
item = {
widget = {
size = { 23 23 }
modifier_item_icon = {
parentanchor = center
size = { 20 20 }
blockoverride "input_info_text" {
text = "CHARACTER_WINDOW_MODIFIERS"
}
}
}
}
}
text_single = {
visible = "[CharacterWindow.IsExtraModifiersNumberShown]"
min_width = 22
margin_bottom = 10
text = "CHARACTER_WINDOW_EXTRA_MODIFIERS"
default_format = "#low"
}
}
}
expand = {}
}
expand = {}
}
}
divider_light = {
layoutpolicy_vertical = expanding
}
## House
widget = {
name = "house"
datacontext = "[Character.GetHouse]"
layoutpolicy_vertical = expanding
size = { 125 0 }
using = Animation_Character_Window_Refresh
vbox = {
expand = {
maximumsize = { 0 5 }
}
coa_house_big = {
flowcontainer = {
name = "characters_status_in_house"
parentanchor = bottom|right
position = { -10 0 }
ignoreinvisible = yes
icon = {
name = "bastard"
visible = "[Not(Character.IsLegitimateMemberOfHouse)]"
framesize = { 40 40 }
frame = 4
size = { 20 20 }
texture = "gfx/interface/icons/portraits/relation.dds"
tooltip = "CV_TT_BASTARD"
}
icon = {
name = "head_icon"
visible = "[LessThan_int32(Character.GetDynastyHeadRelationFrame('(bool)no'), '(int32)9')]"
size = { 20 20 }
texture = "gfx/interface/icons/portraits/relation.dds"
framesize = { 40 40 }
frame = "[Character.GetDynastyHeadRelationFrame('(bool)no')]"
tooltip = "[Character.GetDynastyHeadTooltip]"
}
}
}
text_multi = {
autoresize = yes
maximumsize = { 118 50 }
text = "[DynastyHouse.GetBaseNameNoTooltip]"
default_format = "#high"
align = top|hcenter
}
text_multi = {
autoresize = yes
maximumsize = { 118 50 }
visible = "[Not(DynastyHouse.IsValid)]"
text = "[lowborn|E]"
default_format = "#high"
align = top|hcenter
}
expand = {}
}
}
}
#########################
### Realm, external info
widget = {
datacontext = "[GetIllustration( 'character_location_exterior' )]"
layoutpolicy_horizontal = expanding
size = { 0 232 }
using = Animation_ShowHide_Quick
visible = "[Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_realm').GetValue, '(CFixedPoint)0' ) )]"
background = {
using = Background_Bottom_Fade
margin_bottom = 3
alpha = 0.75
}
widget = {
size = { 100% 100% }
using = Animation_Character_Window_Refresh
background = {
texture = "[Illustration.GetTexture( Character.MakeScope )]"
alpha = 0.35
fittype = centercrop
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical.dds"
blend_mode = alphamultiply
mirror = vertical
}
using = Mask_Rough_Edges
}
}
vbox = {
name = "realm_info"
min_width = 592
hbox_character_view_secondary_stats_bar = {}
hbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
vbox = {
name = "realm_shield"
visible = "[Character.HasLandedTitles]"
layoutpolicy_vertical = expanding
spacing = 4
margin_top = -4
using = Animation_Character_Window_Refresh
coa_realm_medium_crown = {
datacontext = "[Character]"
blockoverride "coa_button"
{
name = "realm_shield"
tooltip = "[Character.GetDefaultRealmFlagTooltipPrimaryTitleClickInfo]"
onclick = "[DefaultOnCoatOfArmsClick(Character.GetPrimaryTitle.GetID)]"
}
}
vbox = {
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[And( Not( Character.GetPrimaryTitle.HasFaction ), And( Character.HasLandedTitles, Character.IsAlive ) )]"
tooltip = "[Character.GetDomainLimitTooltip]"
spacing = -2
background = {
visible = "[GreaterThan_int32( Character.GetDomainSize, Character.GetDomainLimit )]"
using = Status_Bad
}
icon = {
name = "domain_icon"
size = { 30 30 }
texture = "gfx/interface/icons/icon_domain.dds"
}
text_single = {
name = "domain_limit"
text = "[Character.GetDomainSize]/[Character.GetDomainLimit]"
default_format = "#high"
align = center|nobaseline
}
}
flowcontainer = {
margin = { 3 2 }
ignoreinvisible = yes
background = {
using = Background_Area_Dark
}
flowcontainer = {
visible = "[Character.IsTheocraticLessee]"
tooltip = "CV_THEOCRACY_LESSEE_TOOLTIP"
spacing = -2
direction = vertical
icon = {
name = "theocracy_lessee_info"
texture = "gfx/interface/icons/icon_holding_church.dds"
size = { 30 30 }
}
text_single = {
name = "domain_limit"
parentanchor = hcenter
text = "[Character.GetNumTitlesFromTheocraticLease]"
default_format = "#high"
align = center|nobaseline
}
}
icon = {
name = "religious_head_info"
visible = "[Character.IsReligiousHead]"
size = { 30 30 }
texture = "gfx/interface/icons/icon_head_of_faith_income.dds"
tooltip = "CV_THEOCRACY_RELIGIOUS_HEAD_TOOLTIP"
}
}
expand = {}
}
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_left = 5
## Realm name and stats
hbox = {
name = "name_and_stats"
layoutpolicy_horizontal = expanding
margin_right = 10
using = Animation_Character_Window_Refresh
vbox = {
visible = "[Not(Character.HasLandedTitles)]"
layoutpolicy_horizontal = expanding
margin = { 10 0 }
max_width = 280
text_single = {
name = "character_title"
layoutpolicy_horizontal = expanding
text = "CV_UNLANDED"
using = Font_Size_Medium
align = nobaseline
}
text_single = {
name = "government_type"
layoutpolicy_horizontal = expanding
text = "[Character.GetLocationDesc]"
default_format = "#low"
format_override = { high medium }
format_override = { V medium }
align = nobaseline
autoresize = no
}
}
realm_name_and_type_vbox = {
name = "realm_name_and_type"
visible = "[Character.HasLandedTitles]"
datacontext = "[Character.GetPrimaryTitle]"
max_width = 250
}
expand = {}
}
hbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_right = 2
vbox_titles_claims_box = {
visible = "[Not( Character.GetPrimaryTitle.HasFaction )]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "titles_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)8' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)8' )|=]"
}
blockoverride "titles_max_slots"
{
datamodel_wrap = 8
}
blockoverride "claims_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)8' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)8' )|=]"
}
blockoverride "claims_max_slots"
{
datamodel_wrap = 8
}
}
expand = {
layoutpolicy_horizontal = expanding
visible = "[Character.GetPrimaryTitle.HasFaction]"
}
expand = {}
}
expand = {}
}
expand = {}
vbox = {
name = "diplomacy_items"
layoutpolicy_vertical = expanding
vbox_diplomacy_box = {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)0' )]"
using = Animation_Character_Window_Refresh
blockoverride "diplomacy_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)4' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)4' )|=]"
}
blockoverride "diplomacy_slots"
{
maxverticalslots = 2
maxhorizontalslots = 2
datamodel_wrap = 2
}
}
expand = {}
}
}
}
}
######################################################
################### BOTTOM AREA ######################
######################################################
### TABS
hbox = {
name = "tabs"
visible = "[And(CharacterWindow.AreNoneExpanded, Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_character_sheet_bottom').GetValue, '(CFixedPoint)0' ) ))]"
layoutpolicy_horizontal = expanding
using = Animation_ShowHide_Quick
button_tab = {
name = "family_button"
datacontext = "[CharacterWindow.GetCharacter]"
layoutpolicy_horizontal = expanding
onclick = "[CharacterWindow.SetTab('family')]"
down = "[CharacterWindow.IsTabShown('family')]"
using = tooltip_above
hbox = {
text_single = {
layoutpolicy_horizontal = expanding
align = center
text = "CV_TAB_FAMILY"
default_format = "#low"
}
text_single = {
align = center
text = "[CharacterWindow.GetTabItemsCount('family')]"
default_format = "#low"
margin_right = 15
min_width = 30
using = Animation_Character_Window_Refresh
}
}
}
button_tab = {
name = "relations_button"
datacontext = "[CharacterWindow.GetCharacter]"
layoutpolicy_horizontal = expanding
onclick = "[CharacterWindow.SetTab('relations')]"
down = "[CharacterWindow.IsTabShown('relations')]"
using = tooltip_above
hbox = {
text_single = {
layoutpolicy_horizontal = expanding
align = center
text = "CV_TAB_RELATIONS"
default_format = "#low"
}
text_single = {
align = center
text = "[CharacterWindow.GetTabItemsCount('relations')]"
default_format = "#low"
margin_right = 15
min_width = 30
using = Animation_Character_Window_Refresh
}
}
}
button_tab = {
name = "court_button"
datacontext = "[CharacterWindow.GetCharacter]"
# visible = "[Not(Character.IsPlayer)]"
layoutpolicy_horizontal = expanding
onclick = "[CharacterWindow.SetTab('court')]"
down = "[CharacterWindow.IsTabShown('court')]"
using = tooltip_above
hbox = {
text_single = {
layoutpolicy_horizontal = expanding
align = center
text = "CV_TAB_COURT"
default_format = "#low"
}
text_single = {
align = center
text = "[CharacterWindow.GetTabItemsCount('court')]"
default_format = "#low"
margin_right = 15
min_width = 30
using = Animation_Character_Window_Refresh
}
}
}
button_tab = {
name = "vassals_button"
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[And( Character.IsRuler, Not( IsLandlessAdventurer( Character ) ) )]"
layoutpolicy_horizontal = expanding
onclick = "[CharacterWindow.SetTab('vassals')]"
down = "[CharacterWindow.IsTabShown('vassals')]"
using = tooltip_above
hbox = {
text_single = {
layoutpolicy_horizontal = expanding
align = center
text = "CV_TAB_VASSALS"
default_format = "#low"
}
text_single = {
align = center
text = "[CharacterWindow.GetTabItemsCount('vassals')]"
default_format = "#low"
margin_right = 15
min_width = 30
using = Animation_Character_Window_Refresh
}
}
}
}
spacer = { size = { 0 2 } }
widget = {
visible = "[CharacterWindow.AreNoneExpanded]"
layoutpolicy_vertical = preferred
layoutpolicy_horizontal = expanding
size = { 0 350 }
using = Animation_Tab_Switch
####################################
########### FAMILY TAB #############
####################################
widget = {
name = "family"
visible = "[And(CharacterWindow.IsTabShown('family'), Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_character_sheet_bottom').GetValue, '(CFixedPoint)0' ) ))]"
size = { 100% 100% }
using = Animation_Tab_Switch
vbox = {
name = "family_main_view"
visible = "[Not( Or(CharacterWindow.IsRelationExpanded( 'children' ), CharacterWindow.IsRelationExpanded( 'siblings' ) ) )]"
widget = {
name = "parents_grandparents_spouses"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
hbox = {
vbox_character_row_item = {
name = "children"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetParents]"
}
blockoverride "header_text"
{
text = "PARENTS"
}
blockoverride "expand_button" {}
}
vbox_character_row_item = {
name = "grandparents"
visible = "[Not(Or(GreaterThan_int32( Character.GetMaxSpouses, '(int32)1' ), GreaterThan_int32( Character.GetMaxConsorts, '(int32)0' )))]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetGrandparents]"
}
blockoverride "header_text"
{
text = "GRANDPARENTS"
}
blockoverride "expand_button" {}
}
vbox_character_row_item = {
name = "grandparents_contracted"
visible = "[Or(GreaterThan_int32( Character.GetMaxSpouses, '(int32)1' ), GreaterThan_int32( Character.GetMaxConsorts, '(int32)0' ))]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetGrandparents]"
}
blockoverride "header_text"
{
text = "GRANDPARENTS"
}
blockoverride "expand_button" {}
blockoverride "gridbox"
{
overlappingitembox = {
size = { 170 90 }
block "portrait_datamodel" {
datamodel = "[CharacterWindow.GetParents]"
}
item = {
portrait_head_small = {
blockoverride "portrait_button"
{
using = tooltip_ne
}
}
}
}
}
}
vbox_character_row_item = {
name = "secondary_spouses"
visible = "[GreaterThan_int32( Character.GetMaxSpouses, '(int32)1' )]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetSecondarySpouses]"
}
blockoverride "header_text"
{
text = "SECONDARY_SPOUSES"
}
blockoverride "expand_button" {}
blockoverride "find_partner"
{
fixedgridbox = {
name = "potential"
datamodel = "[GetNullCharacterDataModel( Character.CalcUnusedSecondarySpouseSlots )]"
visible = "[Character.IsPlayerInteractionShown('marry_off_interaction')]"
flipdirection = yes
addcolumn = 85
addrow = 90
item = {
container = {
portrait_head_small = {
visible = "[Not( ObjectsEqual( GetPlayer, CharacterWindow.GetCharacter ) )]"
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction('marry_off_interaction')]"
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "CHARACTER_WINDOW_FIND_SPOUSE"
}
blockoverride "onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction('marry_off_interaction')]"
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 20 20 }
position = {-5 -5}
texture = "gfx/interface/icons/flat_icons/plus.dds"
}
}
}
portrait_head_small = {
visible = "[ObjectsEqual( GetPlayer, CharacterWindow.GetCharacter )]"
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction('marry_off_interaction')]"
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "CHARACTER_WINDOW_FIND_SPOUSE_SELF"
}
blockoverride "onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction('marry_off_interaction')]"
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 26 26 }
position = {-5 0}
texture = "gfx/interface/icons/flat_icons/plus.dds"
}
}
}
}
}
}
}
}
vbox_character_row_item = {
name = "consorts"
visible = "[GreaterThan_int32( Character.GetMaxConsorts, '(int32)0' )]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetConcubines]"
}
blockoverride "header_text"
{
text = "CONCUBINES"
}
blockoverride "expand_button" {}
blockoverride "find_partner"
{
fixedgridbox = {
name = "potential"
datamodel = "[GetNullCharacterDataModel( Character.CalcUnusedConsortSlots )]"
visible = "[Character.IsPlayerInteractionShown('find_concubine')]"
flipdirection = yes
addcolumn = 85
addrow = 90
maxverticalslots = 1
item = {
container = {
portrait_head_small = {
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction('find_concubine')]"
enabled = "[CharacterWindow.GetCharacter.IsPlayerInteractionValid('find_concubine')]"
button_plus = {
parentanchor = center
alwaystransparent = yes
}
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "[CharacterWindow.GetCharacter.GetPlayerInteractionTooltip('find_concubine')]"
}
}
}
}
}
}
}
expand = {}
}
}
widget = {
name = "children"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
vbox_character_row_item = {
name = "children"
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetChildren]"
}
blockoverride "header_text"
{
text = "CV_CHILDREN_HEADING"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetChildren), '(int32)7' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetChildren), '(int32)7' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetChildren), '(int32)7' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'children' )]"
}
}
}
widget = {
name = "siblings"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
vbox_character_row_item = {
name = "siblings"
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetSiblings]"
}
blockoverride "header_text"
{
text = "CV_SIBLINGS_HEADING"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetSiblings), '(int32)7' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetSiblings), '(int32)7' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetSiblings), '(int32)7' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'siblings' )]"
}
}
}
expand = {}
}
### SIBLINGS EXPANDED
scrollbox = {
name = "family_siblings_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'siblings' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_item = {
name = "siblings"
margin_top = 10
spacing = 5
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetSiblings]"
}
blockoverride "header_text"
{
text = "CV_SIBLINGS_HEADING"
}
blockoverride "expand_button_inside" {
onclick = "[CharacterWindow.ToggleExpandedRelation( 'siblings' )]"
down = "[CharacterWindow.IsRelationExpanded( 'siblings' )]"
}
blockoverride "gridbox_slots" {}
}
}
}
### CHILDREN EXPANDED
scrollbox = {
name = "family_children_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'children' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_item = {
name = "children"
margin_top = 10
spacing = 5
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetChildren]"
}
blockoverride "header_text"
{
text = "CV_CHILDREN_HEADING"
}
blockoverride "expand_button_inside" {
onclick = "[CharacterWindow.ToggleExpandedRelation( 'children' )]"
down = "[CharacterWindow.IsRelationExpanded( 'children' )]"
}
blockoverride "gridbox_slots" {}
}
}
}
}
####################################
########## RELATIONS TAB ###########
####################################
widget = {
name = "relations"
visible = "[CharacterWindow.IsTabShown('relations')]"
size = { 100% 100% }
using = Animation_Tab_Switch
vbox = {
name = "relations_main_view"
visible = "[And(Not(CharacterWindow.AreRelationsExpanded( 'friends', 'rivals', 'lovers') ), Not(CharacterWindow.IsRelationExpanded('grudges'))) ]"
widget = {
name = "first_row"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
hbox = {
vbox_character_row_item = {
name = "wards"
visible = "[CharacterWindow.GetCharacter.IsAdult]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'ward' ) )]"
}
blockoverride "header_text"
{
text = "WARDS_LABEL"
}
blockoverride "expand_button" {}
### WARD FINDER
blockoverride "find_partner"
{
### FIND WARD FOR ME
fixedgridbox = {
name = "educate_ward"
datamodel = "[GetNullCharacterDataModel( CharacterWindow.CalcUnusedRelationSlots( GetRelation( 'ward' ), '(int32)2' ) )]"
visible = "[Character.IsPlayerInteractionShown('educate_child_interaction')]"
flipdirection = yes
addcolumn = 85
addrow = 90
maxverticalslots = 1
item = {
container = {
portrait_head_small = {
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction( 'educate_child_interaction' )]"
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 26 26 }
position = {-2 -4}
texture = "gfx/interface/icons/flat_icons/plus.dds"
}
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "[CharacterWindow.GetCharacter.GetPlayerInteractionTooltip( 'educate_child_interaction' )]"
}
}
}
}
}
### FIND WARD FOR COURTIER
fixedgridbox = {
name = "find_ward"
datamodel = "[GetNullCharacterDataModel( CharacterWindow.CalcUnusedRelationSlots( GetRelation( 'ward' ), '(int32)2' ) )]"
visible = "[Character.IsPlayerInteractionShown('offer_ward_interaction')]"
flipdirection = yes
addcolumn = 85
addrow = 90
maxverticalslots = 1
item = {
container = {
portrait_head_small = {
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction( 'offer_ward_interaction' )]"
enabled = "[CharacterWindow.GetCharacter.IsPlayerInteractionValid( 'offer_ward_interaction' )]"
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 20 20 }
position = {-2 -5}
texture = "gfx/interface/icons/flat_icons/plus.dds"
}
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "[CharacterWindow.GetCharacter.GetPlayerInteractionTooltip( 'offer_ward_interaction' )]"
}
}
}
}
}
}
}
vbox_character_row_item = {
name = "diarch"
datacontext = "[CharacterWindow.GetCharacter.GetDiarchy.GetDiarch]"
visible = "[CharacterWindow.GetCharacter.HasActiveDiarchy]"
layoutpolicy_vertical = expanding
blockoverride "minimum_width" {}
blockoverride "gridbox" {
portrait_head_small = {
blockoverride "portrait_button"
{
using = tooltip_ne
}
blockoverride "glow_visible"
{
visible = no
}
}
}
blockoverride "header_text"
{
text = "[CharacterWindow.GetCharacter.GetDiarchTitle]"
max_width = 75
}
blockoverride "expand_button" {}
}
### LOVERS 5 PORTRAITS
vbox_character_row_relationship_item = {
name = "lovers_no_diarchy"
visible = "[And( CharacterWindow.GetCharacter.IsAdult, Not( CharacterWindow.GetCharacter.HasActiveDiarchy ) )]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) )]"
}
blockoverride "header_text"
{
text = "LOVERS_LABEL"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) ) ), '(int32)5' )]"
text = "[GetNumberAbove_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) ) ), '(int32)5' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) ) ), '(int32)5' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'lovers' )]"
}
blockoverride "gridbox_slots"
{
maxhorizontalslots = 5
}
}
### LOVERS 4 PORTRAITS (FOR WHEN REGENT PORTRAIT IS VISIBLE)
vbox_character_row_relationship_item = {
name = "lovers_diarchy"
visible = "[And( CharacterWindow.GetCharacter.IsAdult, CharacterWindow.GetCharacter.HasActiveDiarchy )]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) )]"
}
blockoverride "header_text"
{
text = "LOVERS_LABEL"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) ) ), '(int32)5' )]"
text = "[GetNumberAbove_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) ) ), '(int32)5' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) ) ), '(int32)5' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'lovers' )]"
}
blockoverride "gridbox_slots"
{
maxhorizontalslots = 4
}
}
vbox_character_row_item = {
name = "guardian"
visible = "[Not(CharacterWindow.GetCharacter.IsAdult)]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'guardian' ) )]"
}
blockoverride "header_text"
{
text = "GUARDIAN_LABEL"
}
blockoverride "expand_button" {}
### GUARDIAN FINDER
blockoverride "find_partner"
{
### FIND GUARDIAN FOR ME
fixedgridbox = {
name = "educate_child"
datamodel = "[GetNullCharacterDataModel( CharacterWindow.CalcUnusedRelationSlots( GetRelation( 'guardian' ), '(int32)1' ) )]"
visible = "[Character.IsPlayerInteractionShown( 'educate_child_interaction' )]"
flipdirection = yes
addcolumn = 85
addrow = 90
maxverticalslots = 1
item = {
container = {
portrait_head_small = {
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction( 'educate_child_interaction' )]"
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 20 20 }
position = {-2 -5}
texture = "gfx/interface/icons/flat_icons/plus.dds"
}
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "[CharacterWindow.GetCharacter.GetPlayerInteractionTooltip( 'educate_child_interaction' )]"
}
}
}
}
}
### GUARDIAN FINDER FOR COURTIER
fixedgridbox = {
name = "find_guardian"
datamodel = "[GetNullCharacterDataModel( CharacterWindow.CalcUnusedRelationSlots( GetRelation( 'guardian' ), '(int32)1' ) )]"
visible = "[Character.IsPlayerInteractionShown( 'offer_guardianship_interaction' )]"
flipdirection = yes
addcolumn = 85
addrow = 90
maxverticalslots = 1
item = {
container = {
portrait_head_small = {
blockoverride "portrait_button_template_onclick"
{
onclick = "[CharacterWindow.GetCharacter.OpenPlayerInteraction( 'offer_guardianship_interaction' )]"
enabled = "[CharacterWindow.GetCharacter.IsPlayerInteractionValid( 'offer_guardianship_interaction' )]"
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 26 26 }
position = {-2 -4}
texture = "gfx/interface/icons/flat_icons/plus.dds"
}
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "[CharacterWindow.GetCharacter.GetPlayerInteractionTooltip( 'offer_guardianship_interaction' )]"
}
}
}
}
}
}
}
vbox_character_row_item = {
name = "crushes"
visible = "[Not(CharacterWindow.GetCharacter.IsAdult)]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'crush' ) )]"
}
blockoverride "header_text"
{
text = "CRUSHES_LABEL"
}
blockoverride "expand_button" {}
}
expand = {}
}
}
widget = {
name = "second_row"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
hbox = {
vbox_character_row_relationship_item = {
name = "friends"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'friend' ) )]"
}
blockoverride "header_text"
{
text = "FRIENDS_LABEL"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'friend' ) ) ), '(int32)7' )]"
text = "[GetNumberAbove_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'friend' ) ) ), '(int32)7' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize( CharacterWindow.GetRelationsOfType( GetRelation( 'friend' ) ) ), '(int32)7' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'friends' )]"
}
}
expand = {}
}
}
widget = {
name = "third_row"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
hbox = {
vbox_character_row_relationship_item = {
name = "rivals"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )]"
}
blockoverride "header_text"
{
text = "RIVALS_LABEL"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )), '(int32)7' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )), '(int32)7' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )), '(int32)7' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'rivals' )]"
}
}
vbox_character_row_relationship_item = {
name = "bullies"
visible = "[Not( CharacterWindow.GetCharacter.IsAdult )]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'bully' ) )]"
}
blockoverride "header_text"
{
text = "BULLIES_LABEL"
}
blockoverride "expand_button" {}
}
vbox_character_row_relationship_item = {
name = "victims"
visible = "[Not( CharacterWindow.GetCharacter.IsAdult )]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'victim' ) )]"
}
blockoverride "header_text"
{
text = "VICTIMS_LABEL"
}
blockoverride "expand_button" {}
}
vbox_character_row_relationship_item = {
name = "grudges"
visible = "[GreaterThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'grudge' ) )), '(int32)1')]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[DataModelFirst(CharacterWindow.GetRelationsOfType( GetRelation( 'grudge' ) ), '(int32)2')]"
}
blockoverride "header_text"
{
text = "GRUDGES_LABEL"
}
blockoverride "remaining_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'grudge' ) )), '(int32)2' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'grudge' ) )), '(int32)2' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'grudge' ) )), '(int32)2' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'grudges' )]"
}
}
expand = {}
}
}
expand = {}
}
### RIVALS EXPANDED
scrollbox = {
name = "rivals_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'rivals' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_relationship_item = {
name = "rivals"
margin_top = 10
spacing = 5
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )]"
}
blockoverride "header_text"
{
text = "RIVALS_LABEL"
}
blockoverride "expand_button_inside" {
onclick = "[CharacterWindow.ToggleExpandedRelation( 'rivals' )]"
down = "[CharacterWindow.IsRelationExpanded( 'rivals' )]"
}
blockoverride "gridbox_slots" {}
}
}
}
### FRIENDS EXPANDED
scrollbox = {
name = "friends_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'friends' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_relationship_item = {
name = "friends"
margin_top = 10
spacing = 5
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'friend' ) )]"
}
blockoverride "header_text"
{
text = "FRIENDS_LABEL"
}
blockoverride "expand_button_inside" {
onclick = "[CharacterWindow.ToggleExpandedRelation( 'friends' )]"
down = "[CharacterWindow.IsRelationExpanded( 'friends' )]"
}
blockoverride "gridbox_slots" {}
}
}
}
### LOVERS EXPANDED
scrollbox = {
name = "lovers_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'lovers' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_relationship_item = {
name = "friends"
margin_top = 10
spacing = 5
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) )]"
}
blockoverride "header_text"
{
text = "LOVERS_LABEL"
}
blockoverride "expand_button_inside" {
onclick = "[CharacterWindow.ToggleExpandedRelation( 'lovers' )]"
down = "[CharacterWindow.IsRelationExpanded( 'lovers' )]"
}
blockoverride "gridbox_slots" {}
}
}
}
### GRUDGES EXPANDED
scrollbox = {
name = "grudges_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'grudges' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_relationship_item = {
name = "grudges"
margin_top = 10
spacing = 5
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'grudge' ) )]"
}
blockoverride "header_text"
{
text = "GRUDGES_LABEL"
}
blockoverride "expand_button_inside" {
onclick = "[CharacterWindow.ToggleExpandedRelation( 'grudges' )]"
down = "[CharacterWindow.IsRelationExpanded( 'grudges' )]"
}
blockoverride "gridbox_slots" {}
}
}
}
}
####################################
############ COURT TAB #############
####################################
vbox_character_list = {
datacontext = "[CharacterWindow.GetCourt]"
visible = "[CharacterWindow.IsTabShown('court')]"
blockoverride "sort_dropdown" {
dropdown_sort_characterlist = {
# unique name needed to distinct from vassal sort options
name = "court_sort_options"
}
}
blockoverride "scrollbox_margins" {
margin_right = 15
margin_top = 10
}
blockoverride "container_implementation" {
fixedgridbox = {
name = "characters_grid"
datamodel = "[CharacterSelectionList.GetList]"
visible = "[Not(CharacterSelectionList.IsBuildingList)]"
addcolumn = 560
addrow = 125
setitemsizefromcell = yes
item = {
widget_courtier_item = {
datacontext = "[CharacterListItem.GetCharacter]"
# blockoverride "description_relation_text" {
# text = "[Character.GetSpecialGuestRelationDescription]"
# }
blockoverride "gridbox_items"
{
datamodel_wrap = 7
maxverticalslots = 2
}
blockoverride "action_buttons" {}
}
}
}
}
blockoverride "character_count"
{
hbox = {
layoutpolicy_horizontal = growing
margin = { 15 0 }
margin_bottom = 5
spacing = 5
block "bottom_bar" {}
expand = {}
widget = {
size = { 20 15 }
warning_icon = {
size = { 20 20 }
visible = "[Not( CharacterSelectionList.IsAllDefault )]"
tooltip = "CHARACTER_FINDER_FILTER_SET"
}
}
text_single = {
name = "character_count"
datacontext = "[CharacterSelectionList]"
text = "CHARACTER_FINDER_COUNT"
default_format = "#low"
}
}
}
}
####################################
########### VASSALS TAB ############
####################################
vbox_character_list = {
visible = "[CharacterWindow.IsTabShown('vassals')]"
datacontext = "[CharacterWindow.GetVassals]"
blockoverride "sort_dropdown" {
dropdown_sort_characterlist = {
# unique name needed to distinct from court sort options
name = "vassal_sort_options"
}
}
blockoverride "scrollbox_margins" {
margin = { 0 5 }
margin_right = 10
}
blockoverride "container_implementation" {
fixedgridbox = {
name = "characters_grid"
datamodel = "[CharacterSelectionList.GetList]"
visible = "[Not(CharacterSelectionList.IsBuildingList)]"
addcolumn = 575
addrow = 90
setitemsizefromcell = yes
item = {
widget_vassal_list_item = {
datacontext = "[CharacterListItem.GetCharacter]"
blockoverride "own_vassal" {}
blockoverride "realm_size_powerful_status" {
hbox = {
spacing = 10
text_single = {
text = "REALM_WINDOW_SIZE"
tooltip = "REALM_WINDOW_SIZE_TT"
layoutpolicy_horizontal = expanding
align = nobaseline
visible = "[NotEqualTo_int32(Character.GetPrimaryTitle.GetTierFrame, '(int32)2')]" #nonbaron
}
text_single = {
visible = "[Character.IsPowerfulVassal]"
text = "MY_REALM_WINDOW_POWERFUL_VASSAL"
layoutpolicy_horizontal = expanding
align = nobaseline
}
expand = {}
}
}
}
}
}
}
blockoverride "character_count"
{
hbox = {
layoutpolicy_horizontal = growing
margin = { 15 0 }
margin_bottom = 5
spacing = 5
block "bottom_bar" {}
expand = {}
widget = {
size = { 20 15 }
warning_icon = {
size = { 20 20 }
visible = "[Not( CharacterSelectionList.IsAllDefault )]"
tooltip = "CHARACTER_FINDER_FILTER_SET"
}
}
text_single = {
name = "character_count"
datacontext = "[CharacterSelectionList]"
text = "CHARACTER_FINDER_COUNT"
default_format = "#low"
}
}
}
}
}
### EXPANDED VIEWS
# TRAITS EXPANDED
scrollbox = {
name = "traits_expanded"
visible = "[CharacterWindow.AreTraitsExpanded]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
using = Animation_Tab_Switch
blockoverride "scrollbox_content"
{
spacing = 10
vbox = {
spacing = 10
text_label_center = {
text = "MODIFIERS"
}
text_single = {
visible = "[IsDataModelEmpty(CharacterWindow.GetTimedModifiers)]"
text = "CV_NO_MODIFIERS"
default_format = "#low;italic"
}
dynamicgridbox = {
name = "modifiers_grid"
datamodel = "[CharacterWindow.GetTimedModifiers]"
datamodel_wrap = 8
flipdirection = yes
item = {
modifier_item_icon = {
size = { 35 35 }
}
}
}
}
divider_light = {
layoutpolicy_horizontal = expanding
}
vbox = {
spacing = 10
datacontext = "[CharacterWindow.GetTraitArrays]"
text_label_center = {
text = "TRAITS"
}
fixedgridbox = {
name = "personality_traits_grid"
datamodel = "[TraitArrays.GetPersonalityTraits]"
addcolumn = 85
addrow = 105
flipdirection = yes
datamodel_wrap = 6
item = {
icon_trait = {
text_multi = {
parentanchor = bottom|hcenter
widgetanchor = top|hcenter
position = { 0 -5 }
autoresize = yes
max_width = 80
text = "[Trait.GetNameNoTooltip(Character.Self)]"
default_format = "#high"
align = hcenter
}
}
}
}
fixedgridbox = {
name = "traits_grid"
datamodel = "[TraitArrays.GetTraits]"
addcolumn = 85
addrow = 105
flipdirection = yes
datamodel_wrap = 6
item = {
icon_trait = {
text_multi = {
parentanchor = bottom|hcenter
widgetanchor = top|hcenter
position = { 0 -5 }
autoresize = yes
max_width = 80
text = "[Trait.GetNameNoTooltip(Character.Self)]"
default_format = "#high"
align = hcenter
}
}
}
}
}
}
}
# TITLES EXPANDED
scrollbox = {
name = "titles_expanded"
visible = "[CharacterWindow.AreTitlesExpanded]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
using = Animation_Tab_Switch
blockoverride "scrollbox_content"
{
spacing = 15
text_label_center = {
text = "CV_TITLES_NOCOUNT"
}
fixedgridbox = {
name = "titles_box_bishop"
datacontext = "[CharacterWindow.GetCharacter]"
flipdirection = yes
addrow = 90
addcolumn = 270
datamodel_wrap = 2
datamodel = "[CharacterWindow.GetTitles]"
item = {
flowcontainer = {
datacontext = "[TitleItem.GetTitle]"
spacing = 5
coa_title_small_crown = {
using = tooltip_ne
}
text_multi = {
text = "[Title.GetNameNoTooltip]"
parentanchor = vcenter
autoresize = yes
default_format = "#high"
using = Font_Size_Medium
max_width = 190
margin_top = 5
}
}
}
}
}
}
# CLAIMS EXPANDED
scrollbox = {
name = "claims_expanded"
visible = "[CharacterWindow.AreClaimsExpanded]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
using = Animation_Tab_Switch
blockoverride "scrollbox_content"
{
spacing = 10
text_label_center = {
text = "CV_CLAIMS_NOCOUNT"
}
flowcontainer = {
name = "titles_box_bishop"
datacontext = "[CharacterWindow.GetCharacter]"
datamodel = "[CharacterWindow.GetClaims]"
direction = vertical
spacing = 10
item = {
flowcontainer = {
spacing = 5
using = tooltip_ne
tooltip = "[Claim.GetTooltip]"
coa_title_medium = {
datacontext = "[Claim.GetTitle]"
}
flowcontainer = {
direction = vertical
ignoreinvisible = yes
text_single = {
text = "[Claim.GetTitle.GetNameNoTooltip]"
default_format = "#high"
using = Font_Size_Big
}
text_single = {
name = "pressed_claim"
visible = "[And(Claim.IsPressed, Not(Claim.IsImplicit))]"
text = "[pressed_claim_i][pressed_claim|E]"
}
text_single = {
name = "unpressed_claim"
visible = "[And(Not(Claim.IsPressed), Not(Claim.IsImplicit))]"
text = "[unpressed_claim_i][unpressed_claim|E]"
}
text_single = {
name = "implicit_claim"
visible = "[Claim.IsImplicit]"
text = "[implicit_claim_i][implicit_claim|E]"
}
text_multi = {
visible = "[Claim.GetTitle.GetHolder.IsValid]"
text = "CLAIM_TITLE_HOLDER"
max_width = 400
autoresize = yes
}
text_single = {
visible = "[Not(Claim.GetTitle.GetHolder.IsValid)]"
text = "CLAIM_TITLE_NOT_CREATED"
default_format = "#weak"
align = nobaseline
}
}
}
}
}
}
}
# DIPLOMACY EXPANDED
scrollbox = {
name = "diplomacy_expanded"
visible = "[CharacterWindow.AreDiplomacyExpanded]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
using = Animation_Tab_Switch
blockoverride "scrollbox_content"
{
spacing = 15
text_label_center = {
text = "CV_DIPLOMACY"
}
vbox = {
name = "diplomacy_items"
datamodel = "[CharacterWindow.GetDiplomacyItems]"
item = {
vbox = {
layoutpolicy_horizontal = expanding
spacing = 20
divider_light = {
layoutpolicy_horizontal = expanding
}
button_group = {
layoutpolicy_horizontal = expanding
onclick = "[DiplomacyItem.OnClick]"
tooltip = "[DiplomacyItem.GetTooltip]"
using = tooltip_se
hbox = {
spacing = 20
widget = {
size = { 65 74 }
button = {
texture = "gfx/interface/icons/diplomatic_icons.dds"
frame = "[DiplomacyItem.GetDiplomacyFrame]"
parentanchor = top|hcenter
position = { 0 -30 }
framesize = { 120 120 }
size = { 50 50 }
tooltip_visible = no
scale = 1.3
}
coa_realm_medium = {
visible = "[Not(DiplomacyItem.IsStruggle)]"
datacontext = "[DiplomacyItem.GetTargetCharacter]"
tooltip = "[DiplomacyItem.GetTooltip]"
parentanchor = hcenter
text_single = {
name = "warscore"
visible = "[DiplomacyItem.HasWarScore]"
parentanchor = hcenter
position = { 0 -20 }
text = "[DiplomacyItem.GetWarScoreFraction|0%=+]"
using = Font_Size_Medium
}
}
button = {
visible = "[DiplomacyItem.IsStruggle]"
datacontext = "[DiplomacyItem.GetStruggle]"
position = { 0 -3 }
size = { 70 90 }
onclick = "[DiplomacyItem.OnClick]"
datacontext = "[DiplomacyItem.GetTargetCharacter]"
tooltipwidget = struggle_tooltip
using = tooltip_es
tooltip_offset = { 0 22 }
widget_struggle_icon = {}
}
}
text_multi = {
text = "[DiplomacyItem.GetInfo]"
layoutpolicy_horizontal = expanding
autoresize = yes
max_width = 400
}
}
}
hbox = {
name = "reason_characters"
visible = "[DiplomacyItem.HasReasonCharacters]"
portrait_head_small = {
name = "reason_character_left"
datacontext = "[DiplomacyItem.GetLeftReasonCharacter]"
blockoverride "opinion_box" {}
blockoverride "status_icons" {}
}
portrait_head_small = {
name = "reason_character_right"
datacontext = "[DiplomacyItem.GetRightReasonCharacter]"
blockoverride "opinion_box" {}
blockoverride "status_icons" {}
blockoverride "portrait_transformation"
{
portrait_scale = { -1 1 }
portrait_offset = { 1 0 }
}
}
}
}
}
}
}
}
# Modifiers expanded
scrollbox = {
name = "modifiers_expanded"
visible = "[CharacterWindow.AreModifiersExpanded]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
using = Animation_Tab_Switch
blockoverride "scrollbox_content"
{
spacing = 15
text_label_center = {
text = "MODIFIERS"
}
vbox = {
layoutpolicy_horizontal = expanding
datamodel = "[CharacterWindow.GetTimedModifiers]"
spacing = 2
item = {
vbox = {
layoutpolicy_horizontal = expanding
hbox = {
layoutpolicy_horizontal = expanding
hbox = {
margin_right = 10
margin_top = 8
margin_left = -4
icon = {
size = { 32 32 }
texture = "[ModifierItem.GetIcon]"
}
}
text_single = {
layoutpolicy_horizontal = expanding
text = "[ModifierItem.GetStaticModifier.GetName]"
}
}
textbox = {
layoutpolicy_horizontal = expanding
visible = "[ModifierItem.HasTooltipDataByTag('single_modifier')]"
datacontext = "[ModifierItem.GetSingleModifierTooltipData]"
max_width = 500
using = DefaultTooltipText
multiline = yes
text = "[TimedModifierSingleItem.GetDesc]"
alwaystransparent = no
}
vbox = {
visible = "[ModifierItem.HasTooltipDataByTag('preview_list')]"
datacontext = "[ModifierItem.GetPreviewList]"
layoutpolicy_horizontal = expanding
textbox = {
layoutpolicy_horizontal = expanding
max_width = 500
using = DefaultTooltipText
multiline = yes
text = "[TimedModifierPreviewList.GetScaledDesc]"
alwaystransparent = no
}
vbox = {
datamodel = "[TimedModifierPreviewList.GetItems]"
layoutpolicy_horizontal = expanding
max_width = 500
item = {
vbox = {
layoutpolicy_horizontal = expanding
text_single = {
layoutpolicy_horizontal = expanding
text = "[TimedModifierPreviewItem.GetTitle]"
}
text_single = {
layoutpolicy_horizontal = expanding
text = "[TimedModifierPreviewItem.GetExpirationDate]"
}
expand = {}
}
}
}
}
vbox = {
layoutpolicy_horizontal = expanding
visible = "[ModifierItem.HasTooltipDataByTag('scaled_single_modifier')]"
datacontext = "[ModifierItem.GetScaledSingleModifierTooltipData]"
textbox = {
layoutpolicy_horizontal = expanding
max_width = 500
using = DefaultTooltipText
multiline = yes
text = "[TimedModifierScaledSingleItem.GetDesc]"
alwaystransparent = no
}
vbox = {
layoutpolicy_horizontal = expanding
datamodel = "[TimedModifierScaledSingleItem.GetEffectItems]"
item = {
textbox = {
layoutpolicy_horizontal = expanding
max_width = 500
margin_top = 5
margin_left = 10
margin_right = 5
margin_bottom = 10
using = DefaultTooltipText
using = Background_Area
text = "[CString.GetString]"
alwaystransparent = no
}
}
}
text_single = {
layoutpolicy_horizontal = growing
max_width = 500
text = "[TimedModifierScaledSingleItem.GetExpirationDate]"
}
}
spacer = {
size = { 2 10 }
}
divider_light = {
layoutpolicy_horizontal = expanding
# Don't show divider after the last item in the datamodel
visible = "[Not( EqualTo_int32( PdxGuiWidget.GetIndexInDataModel, Subtract_int32( GetDataModelSize( CharacterWindow.GetTimedModifiers ), '(int32)1' ) ) )]"
}
}
}
}
}
}
}
window_character_filter = {
name = "court_character_filter_window"
datacontext = "[CharacterWindow.GetCourt]"
size = { 510 860 }
position = { 525 140 }
blockoverride "editbox_properties"
{
name = "court_text_filter"
ontextedited = "[CharacterSelectionList.SetPattern]"
oneditingfinished = "[CharacterSelectionList.FinishEdit]"
}
blockoverride "addition_filter" {
vbox_filter_group = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetCategory('age_filter_category')]"
blockoverride "filters" {
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('adult_filter')]"
}
}
}
vbox_filter_group = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetCategory('personal_filter_category')]"
blockoverride "filters" {
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('religion_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('culture_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('hook_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('married_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('gender_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('health_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('inspiration_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('sexuality_filter')]"
}
}
}
vbox_filter_group = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetCategory('politics_filter_category')]"
blockoverride "filters" {
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('dynasty_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('hostage_filter')]"
}
}
}
}
}
window_character_filter = {
name = "vassal_filter_window"
datacontext = "[CharacterWindow.GetVassals]"
size = { 510 820 }
position = { 525 200 }
blockoverride "editbox_properties"
{
name = "vassal_text_filter"
ontextedited = "[CharacterSelectionList.SetPattern]"
oneditingfinished = "[CharacterSelectionList.FinishEdit]"
}
blockoverride "addition_filter" {
vbox_filter_group = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetCategory('age_filter_category')]"
blockoverride "filters" {
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('adult_filter')]"
}
}
}
vbox_filter_group = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetCategory('personal_filter_category')]"
blockoverride "filters" {
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('vassal_stance_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('religion_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('culture_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('hook_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('married_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('gender_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('health_filter')]"
}
}
}
vbox_filter_group = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetCategory('politics_filter_category')]"
blockoverride "filters" {
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('dynasty_filter')]"
}
filter_item = {
layoutpolicy_horizontal = expanding
datacontext = "[CharacterSelectionList.GetFilter('hostage_filter')]"
}
}
}
}
}
}
######################################################
################ TYPES AND TEMPLATES #################
######################################################
types CharacterWindow
{
type modifier_item_icon = widget {
datacontext = "[ModifierItem.GetStaticModifier]"
size = { 25 25 }
# Preview list
icon = {
# the tag is hard-coded, if you want to change the name or add a new one please contact someone from code team
visible = "[ModifierItem.HasTooltipDataByTag('preview_list')]"
size = { 100% 100% }
alwaystransparent = no
texture = "[ModifierItem.GetIcon]"
block "icon_data" {
alwaystransparent = no
}
tooltipwidget = {
object_tooltip_pop_out = {
datacontext = "[ModifierItem.GetPreviewList]"
blockoverride "header_additions" {
hbox = {
margin_right = 10
margin_top = 8
margin_left = -4
icon = {
size = { 32 32 }
texture = "[StaticModifier.GetIcon]"
tintcolor = "[TooltipInfo.GetTintColor]"
}
}
}
blockoverride "title_text" {
margin = { 0 8 }
text = "[StaticModifier.GetName]"
}
blockoverride "concept_link" {
text = ""
}
blockoverride "main_description" {
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
text_multi = {
autoresize = yes
max_width = 350
text = "[TimedModifierPreviewList.GetScaledDesc]"
}
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
datamodel = "[TimedModifierPreviewList.GetItems]"
item = {
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
text_single = {
layoutpolicy_horizontal = growing
text = "[TimedModifierPreviewItem.GetTitle]"
}
text_single = {
layoutpolicy_horizontal = growing
text = "[TimedModifierPreviewItem.GetExpirationDate]"
}
}
}
}
textbox = {
name = "input_info"
layoutpolicy_horizontal = expanding
margin_top = 10
margin_bottom = 20
using = DefaultTooltipText
multiline = yes
block "input_info_text" {}
fonttintcolor = "[TooltipInfo.GetTintColor]"
}
}
}
}
}
}
# Single modifier
icon = {
# the tag is hard-coded, if you want to change the name or add a new one please contact someone from code team
visible = "[ModifierItem.HasTooltipDataByTag('single_modifier')]"
size = { 100% 100% }
alwaystransparent = no
texture = "[ModifierItem.GetIcon]"
block "icon_data" {
alwaystransparent = no
}
tooltipwidget = {
static_modifier_tooltip = {
datacontext = "[ModifierItem.GetSingleModifierTooltipData]"
blockoverride "description_text_data" {
text = "[TimedModifierSingleItem.GetDesc]"
}
}
}
}
# Scaled single modifier
icon = {
# the tag is hard-coded, if you want to change the name or add a new one please contact someone from code team
visible = "[ModifierItem.HasTooltipDataByTag('scaled_single_modifier')]"
size = { 100% 100% }
alwaystransparent = no
texture = "[ModifierItem.GetIcon]"
block "icon_data" {
alwaystransparent = no
}
tooltipwidget = {
scaled_static_modifier_tooltip = {
datacontext = "[ModifierItem.GetScaledSingleModifierTooltipData]"
blockoverride "description_text_data" {
text = "[TimedModifierScaledSingleItem.GetDesc]"
}
blockoverride "effects_datamodel" {
datamodel = "[TimedModifierScaledSingleItem.GetEffectItems]"
}
blockoverride "expiration_date" {
text_single = {
layoutpolicy_horizontal = growing
text = "[TimedModifierScaledSingleItem.GetExpirationDate]"
}
margin_bottom = 10
}
}
}
}
}
type skill_icon_label_vertical = widget {
size = { 40 60 }
icon = {
name = "skill_icon"
texture = "gfx/interface/icons/icon_skills.dds"
size = { 24 24 }
framesize = { 60 60 }
position = { -10 17 }
block "icon"
{
frame = "[SkillItem.GetFrame]"
}
}
block "tooltip"
{
tooltip = "SKILL_ITEM_TOOLTIP"
using = tooltip_ne
}
text_single = {
name = "skill_value"
parentanchor = top|hcenter
position = { 5 17 }
align = center
block "value"
{
text = "[SkillItem.GetValue]"
}
}
}
type hbox_character_relation_and_ai = hbox
{
layoutpolicy_horizontal = expanding
spacing = 2
hbox = {
maximumsize = { 430 -1 }
text_single = {
maximumsize = { 281 -1 }
name = "character_relation_to_you"
text = "[Character.GetRelationToString( GetPlayer )]"
tooltip = "EXTENDED_RELATIONS_TOOLTIP"
using = tooltip_se
fontsize_min = 13
align = nobaseline
}
text_single = {
maximumsize = { 149 -1 }
name = "other_player_name"
visible = "[And( Character.IsPlayer, Not( Character.IsLocalPlayer ) )]"
raw_text = " • #L [Character.GetHumanName]#!"
tooltip = "AI_PERSONALITY_IS_PLAYER_TOOLTIP"
using = tooltip_se
fontsize_min = 13
align = nobaseline
}
text_single = {
maximumsize = { 149 -1 }
name = "ai_personality"
visible = "[Not( Character.IsPlayer )]"
raw_text = " • #L [Character.GetAIPersonalityNoTooltip]#!"
tooltip = "AI_PERSONALITY_TT"
using = tooltip_se
fontsize_min = 13
align = nobaseline
}
}
icon = {
visible = "[Not(Character.IsFemale)]"
size = { 20 20 }
framesize = { 40 40 }
frame = "[Character.GetSexualityFrame]"
texture = "gfx/interface/icons/character_status/sexuality_icons_male.dds"
tooltip = "SEXUALITY_TT"
}
icon = {
visible = "[Character.IsFemale]"
size = { 20 20 }
framesize = { 40 40 }
frame = "[Character.GetSexualityFrame]"
texture = "gfx/interface/icons/character_status/sexuality_icons_female.dds"
tooltip = "SEXUALITY_TT"
}
expand = {}
}
type icon_row_header_background = icon
{
size = { 100% 25 }
texture = "gfx/interface/component_tiles/tile_title_bg_01.dds"
spritetype = corneredtiled
spriteborder = { 20 0 }
texture_density = 2
alpha = 0.5
}
type widget_family_row_item = widget
{
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { -1 110 }
scissor = yes
icon_row_header_background = {}
hbox = {
block "item_list"
{
}
expand = {}
}
}
type vbox_character_row_item = vbox {
spacing = -3
widget = {
layoutpolicy_horizontal = expanding
size = { 0 25 }
block "minimum_width" {
min_width = 110
}
block "expand_button" {
button_standard_hover = {
size = { 100% 100% }
block "expand_button_inside" {}
}
}
hbox = {
margin = { 10 0 }
background = {
using = Text_Label_Background
alpha = 0.5
margin = { 0 -2 }
}
text_single = {
align = nobaseline
fontsize = 14
block "header_text"
{
raw_text = "#D NEEDS TEXT#!"
}
}
expand = {}
text_single = {
align = nobaseline
default_format = "#weak"
block "remaining_items" {
visible = no
}
}
}
}
hbox = {
layoutpolicy_horizontal = expanding
using = Animation_Character_Window_Refresh
block "gridbox" {
fixedgridbox = {
flipdirection = yes
addcolumn = 85
addrow = 90
datamodel_wrap = 7
block "gridbox_slots"
{
maxverticalslots = 1
}
block "portrait_datamodel" {
datamodel = "[CharacterWindow.GetParents]"
}
item = {
block "portrait_head_widget" {
portrait_head_small = {
blockoverride "portrait_button"
{
using = tooltip_ne
}
blockoverride "glow_visible"
{
visible = no
}
}
}
}
}
}
block "find_partner" {}
expand = {}
}
expand = {}
}
### Modified character row for relationship tab
type vbox_character_row_relationship_item = vbox_character_row_item {
blockoverride "portrait_head_widget" {
portrait_head_small_relationship = {
blockoverride "portrait_button"
{
using = tooltip_ne
}
blockoverride "glow_visible"
{
visible = no
}
}
}
}
type vbox_titles_claims_box = vbox {
## Titles
hbox = {
name = "titles"
visible = "[Not( IsDataModelEmpty( CharacterWindow.GetTitles ) )]"
layoutpolicy_horizontal = expanding
background = {
margin_left = 6
margin_top = -15
margin_bottom = -15
using = Background_Area_Titles
}
hbox = {
minimumsize = { 60 0 }
text_single = {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)1' )]"
align = nobaseline
text = "CV_TITLES"
}
text_single = {
visible = "[Not(GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)1' ))]"
align = nobaseline
text = "CV_TITLES_SINGULAR"
}
expand = {}
}
button_standard_hover = {
size = { 25 25 }
onclick = "[CharacterWindow.ToggleExpandedTitles]"
down = "[CharacterWindow.AreTitlesExpanded]"
tooltip = "[SelectLocalization( CharacterWindow.AreTitlesExpanded, 'CV_TITLES_HIDE_TT', 'CV_TITLES_SHOW_TT' )]"
hbox = {
layoutpolicy_horizontal = expanding
text_single = {
margin_bottom = 5
align = center
default_format = "#weak"
layoutpolicy_horizontal = expanding
visible = "[LessThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)9' )]"
text = "KEY_KP_PLUS"
}
text_single = {
margin_bottom = 5
align = center
default_format = "#weak"
layoutpolicy_horizontal = expanding
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)8' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)8' )|=]"
}
}
}
hbox = {
layoutpolicy_horizontal = expanding
fixedgridbox = {
datamodel = "[CharacterWindow.GetTitles]"
flipdirection = yes
addrow = 60
addcolumn = 38
maxverticalslots = 1
block "titles_max_slots" {
datamodel_wrap = 0
}
item = {
coa_title_tiny_crown = {
datacontext = "[TitleItem.GetTitle]"
using = tooltip_ne
icon = {
name = "has_laws"
visible = "[TitleItem.GetTitle.HasLaws]"
parentanchor = bottom|right
size = { 25 25 }
position = { 5 0 }
texture = "gfx/interface/icons/title_status/icon_title_law.dds"
}
}
}
}
expand = {}
}
}
## Claims
hbox = {
name = "claims"
visible = "[Not(IsDataModelEmpty(CharacterWindow.GetClaims))]"
layoutpolicy_horizontal = expanding
background = {
margin_left = 6
margin_top = -15
margin_bottom = -15
using = Background_Area_Titles
}
hbox = {
minimumsize = { 60 0 }
text_single = {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)1' )]"
align = nobaseline
text = "CV_CLAIMS"
}
text_single = {
visible = "[Not(GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)1' ))]"
align = nobaseline
text = "CV_CLAIMS_SINGULAR"
}
expand = {}
}
button_standard_hover = {
size = { 25 25 }
onclick = "[CharacterWindow.ToggleExpandedClaims]"
down = "[CharacterWindow.AreClaimsExpanded]"
tooltip = "[SelectLocalization( CharacterWindow.AreClaimsExpanded, 'CV_CLAIMS_HIDE_TT', 'CV_CLAIMS_SHOW_TT' )]"
hbox = {
layoutpolicy_horizontal = expanding
text_single = {
align = nobaseline
default_format = "#weak"
visible = "[LessThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)9' )]"
text = "KEY_KP_PLUS"
}
text_single = {
align = nobaseline
default_format = "#weak"
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)8' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)8' )|=]"
}
}
}
hbox = {
layoutpolicy_horizontal = expanding
fixedgridbox = {
name = "claims_box"
datamodel = "[CharacterWindow.GetClaims]"
flipdirection = yes
addrow = 60
addcolumn = 38
maxverticalslots = 1
block "titles_max_slots" {
datamodel_wrap = 0
}
item = {
container = {
datacontext = "[Claim.GetTitle]"
using = tooltip_ne
tooltip = "CHARACTER_WINDOW_CLAIM_TOOLTIP"
coa_title_tiny_crown = {
name = "claim"
tooltip_visible = no
highlight_icon = {
name = "pressed_claim"
visible = "[And(Claim.IsPressed, Not(Claim.IsImplicit))]"
texture = "gfx/interface/icons/title_status/icon_claim_pressed.dds"
size = { 24 24 }
parentanchor = bottom|right
}
highlight_icon = {
name = "unpressed_claim"
visible = "[And(Not(Claim.IsPressed), Not(Claim.IsImplicit))]"
texture = "gfx/interface/icons/title_status/icon_claim_unpressed.dds"
size = { 24 24 }
parentanchor = bottom|right
}
highlight_icon = {
name = "implicit_claim"
visible = "[Claim.IsImplicit]"
texture = "gfx/interface/icons/title_status/icon_claim_implicit.dds"
size = { 24 24 }
parentanchor = bottom|right
}
}
}
}
}
expand = {}
}
}
expand = {}
}
type vbox_diplomacy_box = vbox {
name = "diplomacy"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
button_standard_hover = {
layoutpolicy_horizontal = expanding
size = { 100 25 }
onclick = "[CharacterWindow.ToggleExpandedDiplomacy]"
down = "[CharacterWindow.AreDiplomacyExpanded]"
tooltip = "[SelectLocalization( CharacterWindow.AreDiplomacyExpanded, 'CV_DIPLOMACY_HIDE_TT', 'CV_DIPLOMACY_SHOW_TT' )]"
hbox = {
text_label_left = {
layoutpolicy_horizontal = expanding
text = "CV_DIPLOMACY"
autoresize = no
margin_right = 0
margin_left = 5
}
text_single = {
margin_bottom = 5
default_format = "#weak"
block "diplomacy_extra_items"
{
visible = no
}
}
}
}
vbox = {
margin_top = 20
fixedgridbox = {
name = "diplomacy_items"
datamodel = "[CharacterWindow.GetDiplomacyItems]"
flipdirection = yes
addrow = 65
addcolumn = 50
block "diplomacy_slots"
{
maxverticalslots = 2
maxhorizontalslots = 2
datamodel_wrap = 2
}
item = {
container = {
onmousehierarchyenter = "[DiplomacyItem.MouseEnter]"
onmousehierarchyleave = "[DiplomacyItem.MouseLeave]"
button = {
visible = "[Not(DiplomacyItem.IsStruggle)]"
parentanchor = top|hcenter
position = { 0 -22 }
texture = "gfx/interface/icons/diplomatic_icons.dds"
frame = "[DiplomacyItem.GetDiplomacyFrame]"
framesize = { 120 120 }
size = { 50 50 }
tooltip_visible = no
}
coa_realm_small = {
visible = "[Not(DiplomacyItem.IsStruggle)]"
datacontext = "[DiplomacyItem.GetTargetCharacter]"
tooltip = "[DiplomacyItem.GetTooltip]"
using = tooltip_es
tooltip_offset = { 0 22 }
onrightclick = "[DefaultOnRealmFlagClick(Character.GetID)]"
state = {
name = _mouse_hierarchy_enter
start_sound = {
soundeffect = "event:/SFX/UI/Generic/sfx_ui_generic_icon_pointer_over"
}
}
blockoverride "coa_button"
{
onclick = "[DiplomacyItem.OnClick]"
button_ignore = none
}
}
text_single = {
name = "warscore"
visible = "[DiplomacyItem.HasWarScore]"
parentanchor = top|hcenter
position = { 0 -12 }
text = "[DiplomacyItem.GetWarScoreFraction|0%=+]"
fontsize = 13
align = nobaseline
background = {
using = Background_Area_ExtraDark
margin = { 0 1}
}
}
button = {
datacontext = "[DiplomacyItem.GetStruggle]"
visible = "[DiplomacyItem.IsStruggle]"
position = { 0 -3 }
size = { 52 64 }
onclick = "[DiplomacyItem.OnClick]"
datacontext = "[DiplomacyItem.GetTargetCharacter]"
tooltipwidget = struggle_tooltip;
using = tooltip_es
tooltip_offset = { 0 22 }
widget_struggle_icon = {}
}
}
}
}
}
expand = {}
}
type widget_struggle_icon = widget {
size = { 100% 100% }
struggle_phase_based_widget = {
datacontext = "[Struggle.GetCurrentPhase]"
visible = "[Struggle.IsInvolvedCharacter(Character.Self)]"
blockoverride "point_based_widget_content" {
highlight_icon = {
size = { 100% 100% }
texture = "gfx/interface/icons/struggle_banners/point_involved_banner_small.dds"
}
}
blockoverride "time_based_widget_content" {
highlight_icon = {
size = { 100% 100% }
texture = "gfx/interface/icons/struggle_banners/time_involved_banner_small.dds"
}
}
}
struggle_phase_based_widget = {
datacontext = "[Struggle.GetCurrentPhase]"
visible = "[Struggle.IsInterloperCharacter(Character.Self)]"
blockoverride "point_based_widget_content" {
highlight_icon = {
size = { 100% 100% }
texture = "gfx/interface/icons/struggle_banners/point_interloper_banner_small.dds"
}
}
blockoverride "time_based_widget_content" {
highlight_icon = {
size = { 100% 100% }
texture = "gfx/interface/icons/struggle_banners/time_interloper_banner_small.dds"
}
}
}
widget = {
size = { 100% 100% }
position = { 0 -3 }
icon = {
visible = "[Struggle.IsInvolvedCharacter(Character.Self)]"
parentanchor = center
size = { 34 34 }
texture = "gfx/interface/icons/struggle_banners/icon_background_02.dds"
}
icon = {
visible = "[Struggle.IsInterloperCharacter(Character.Self)]"
parentanchor = center
size = { 34 34 }
texture = "gfx/interface/icons/struggle_banners/icon_background_01.dds"
}
icon = {
parentanchor = center
size = { 30 30 }
texture = "[Struggle.GetCurrentPhase.GetIcon]"
}
}
}
type realm_name_and_type_vbox = vbox {
layoutpolicy_horizontal = expanding
hbox = {
layoutpolicy_horizontal = expanding
text_single = {
name = "character_title"
layoutpolicy_horizontal = expanding
text = "[Title.GetNameNoTooltip|U]"
default_format = "#medium"
using = Font_Size_Medium
max_width = 220
}
expand = {}
}
text_single = {
name = "faction"
visible = "[Title.HasFaction]"
layoutpolicy_horizontal = expanding
autoresize = no
text = "CV_CIVIL_WAR_FACTION"
default_format = "#low"
align = nobaseline
fontsize_min = 14
}
text_single = {
name = "government_type"
visible = "[Not( Title.HasFaction )]"
layoutpolicy_horizontal = expanding
autoresize = no
text = "CV_REALM_TYPE"
default_format = "#low"
align = nobaseline
fontsize_min = 14
}
}
type button_marry_off = button {
name = "marry_off_button"
onclick = "[Character.OpenPlayerInteraction( 'marry_off_interaction' )]"
enabled = "[Character.IsPlayerInteractionValid( 'marry_off_interaction' )]"
gfxtype = framedbuttongfx
effectname = "NoHighlight"
texture = "gfx/portraits/unknown_portraits/unknown_spouse.dds"
size = { 195 282 }
framesize = { 554 780 }
upframe = 1
overframe = 2
alpha = 0.8
button_icon = {
parentanchor = center
alwaystransparent = yes
size = { 50 50 }
position = { 0 45 }
texture = "gfx/interface/icons/faith_doctrine_groups/doctrine_marriage_type.dds"
}
}
type container_secondary = container {
parentanchor = bottom|hcenter
position = { 15 0 }
datacontext = "[CharacterWindow.GetSecondaryCharater]"
using = Animation_Character_Window_Refresh_Short
# We only have invalid secondary character here if player can marry them off
container = {
name = "tutorial_spouse"
visible = "[And(Not( Character.IsValid ), Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_spouse').GetValue, '(CFixedPoint)0' ) ))]"
position = { 0 35 }
parentanchor = center
using = Animation_ShowHide_Standard
button_marry_off = {
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[And( Not( ObjectsEqual( GetPlayer, Character.Self ) ), Not( Character.IsConcubine ) )]"
tooltip = "CHARACTER_WINDOW_FIND_SPOUSE"
}
button_marry_off = {
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[ObjectsEqual( GetPlayer, Character.Self )]"
tooltip = "CHARACTER_WINDOW_FIND_SPOUSE_SELF"
}
}
portrait_character_view_spouse = {
visible = "[Character.IsValid]"
state = {
name = cw_spouse_cycle
using = Animation_Refresh_FadeOut
}
state = {
using = Animation_Refresh_FadeIn
}
}
}
type secondary_widget = widget {
parentanchor = bottom
allow_outside = yes
position = { 93 0 }
size = { 182 60 }
datacontext = "[CharacterWindow.GetSecondaryCharater]"
visible = "[Not( GreaterThan_CFixedPoint( GetPlayer.MakeScope.Var('hide_ui_spouse').GetValue, '(CFixedPoint)0' ) )]"
using = Animation_ShowHide_Standard
flowcontainer = {
parentanchor = bottom
widgetanchor = bottom|left
position = { 33 -3 }
ignoreinvisible = yes
flowcontainer = {
direction = vertical
parentanchor = bottom
portrait_opinion = {
block "portrait_opinion" {}
}
flowcontainer = {
ignoreinvisible = yes
text_label_center = {
text = "[CharacterWindow.GetSecondaryText]"
max_width = 120
align = nobaseline
}
flowcontainer = {
visible = "[Or( CharacterWindow.HasPreviousSecondary, CharacterWindow.HasNextSecondary )]"
margin_bottom = 4
spacing = -5
parentanchor = bottom
using = Animation_ShowHide_Standard
button_expand = {
enabled = "[CharacterWindow.HasPreviousSecondary]"
onclick = "[CharacterWindow.PreviousSecondary]"
onclick = "[PdxGuiTriggerAllAnimations( 'cw_spouse_cycle' )]"
tooltip = "[CharacterWindow.GetPreviousSecondaryTooltip]"
mirror = horizontal
}
button_expand = {
enabled = "[CharacterWindow.HasNextSecondary]"
onclick = "[CharacterWindow.NextSecondary]"
onclick = "[PdxGuiTriggerAllAnimations( 'cw_spouse_cycle' )]"
tooltip = "[CharacterWindow.GetNextSecondaryTooltip]"
}
}
}
}
flowcontainer = {
parentanchor = vcenter
coa_realm_small = {
visible = "[Character.HasLandedTitles]"
using = Animation_ShowHide_Standard
parentanchor = bottom
}
portrait_status_icons = {
parentanchor = bottom
margin_bottom = 2
}
}
}
icon = {
name = "diarchy_active_icon"
visible = "[And(CharacterWindow.GetCharacter.HasActiveDiarchy, Not(CharacterWindow.ShowMarriageIcon))]"
parentanchor = bottom
position = { 0 -3 }
size = { 30 30 }
texture = "gfx/interface/icons/scale_of_power.dds"
tooltip = IN_ACTIVE_DIARCHY
using = tooltip_below
}
icon = {
name = "marriage_type_icon"
visible = "[CharacterWindow.ShowMarriageIcon]"
parentanchor = bottom
position = { 0 -3 }
size = { 30 30 }
framesize = { 60 60 }
texture = "gfx/interface/icons/marriage_types.dds"
frame = "[CharacterWindow.GetMarriageIcon]"
tooltip = "[CharacterWindow.GetMarriageIconTooltip]"
using = tooltip_below
}
}
type hbox_character_view_secondary_stats_bar = hbox {
name = "character_view_secondary_stats_bar"
visible = "[Character.IsAlive]"
spacing = 8
margin_bottom = 6
margin_top = 3
margin_left = 1
layoutpolicy_horizontal = expanding
background = {
using = Background_Area_Dark
margin_left = 5
}
#Gold
widget = {
size = { 72 32 }
hbox = {
expand = {}
tooltip = "[Character.GetGoldTooltipWithBalance]"
icon = {
name = "icon_gold"
size = { 30 30 }
texture = "gfx/interface/icons/icon_gold.dds"
}
text_single = {
name = "total_gold"
text = "[Character.GetGold|0]"
default_format = "#high"
align = center|nobaseline
fontsize_min = 12
max_width = 50
}
expand = {}
}
}
#Prestige
widget = {
size = { 72 32 }
hbox = {
spacing = 2
tooltip = "[Character.GetPrestigeTooltipWithBalance]"
divider_light = {
layoutpolicy_vertical = expanding
}
expand = {}
icon = {
name = "icon_prestige"
size = { 30 30 }
texture = "[Character.GetPrestigeLevelTexture]"
}
text_single = {
name = "prestige"
text = "[Character.GetPrestige|0]"
default_format = "#high"
align = center|nobaseline
fontsize_min = 12
max_width = 50
}
expand = {}
}
}
#Piety
widget = {
size = { 72 32 }
hbox = {
tooltip = "[Character.GetPietyTooltipWithBalance]"
divider_light = {
layoutpolicy_vertical = expanding
}
expand = {}
icon = {
name = "icon_piety"
size = { 30 30 }
texture = "[Character.GetPietyLevelTexture]"
}
text_single = {
name = "piety"
text = "[Character.GetPiety|0]"
default_format = "#high"
align = center|nobaseline
fontsize_min = 12
max_width = 50
}
expand = {}
}
}
#Influence
widget = {
size = { 72 32 }
hbox = {
2025-02-20 00:28:13 +00:00
visible = "[Character.GetGovernment.IsType( 'administrative_government' )]"
2025-02-19 22:51:48 +00:00
tooltip = "[Character.GetInfluenceTooltipWithBalance]"
divider_light = {
layoutpolicy_vertical = expanding
}
expand = {}
icon = {
name = "icon_influence"
size = { 30 30 }
texture = "[Character.GetInfluenceLevelTexture]"
}
text_single = {
name = "influence"
text = "[Character.GetInfluence|0]"
default_format = "#high"
align = center|nobaseline
fontsize_min = 12
max_width = 50
}
expand = {}
}
}
#Legitimacy
widget = {
layoutpolicy_vertical = expanding
size = { 72 32 }
datacontext = "[Character.GetLegitimacyType]"
datacontext = "[Character.GetLegitimacyLevel]"
using = tooltip_ne
hbox = {
visible = "[And(LegitimacyType.IsValid, Character.GetGovernment.HasRule( 'legitimacy' ))]"
tooltipwidget = {
legitimacy_hud_tooltip = {
datacontext = "[CharacterWindow.GetLegitimacyBar]"
}
}
divider_light = {
layoutpolicy_vertical = expanding
}
expand = {}
icon = {
size = { 32 32 }
texture = "gfx/interface/icons/legitimacy_level_icon.dds"
framesize = { 70 70 }
frame = "[IntToFrameIndex( LegitimacyLevel.GetIndex )]"
}
text_single = {
text = CHARACTER_WINDOW_LEGITIMACY_LEVEL
align = nobaseline
}
expand = {}
}
}
#Dread
widget = {
size = { 72 32 }
hbox = {
visible = "[Character.HasLandedTitles]"
tooltip = "[Character.GetDreadBreakdown]"
divider_light = {
layoutpolicy_vertical = expanding
}
expand = {}
icon = {
name = "dread_icon"
size = { 30 30 }
texture = "gfx/interface/icons/icon_dread.dds"
}
text_single = {
name = "total_dread"
text = "[Character.GetDread|0]"
default_format = "#high"
align = center|nobaseline
fontsize_min = 12
max_width = 50
}
expand = {}
}
}
divider_light = {
visible = "[Character.HasLandedTitles]"
layoutpolicy_vertical = expanding
}
widget = {
tooltip = "[CharacterWindow.GetMilitaryStrengthTooltip]"
size = { 72 32 }
hbox = {
visible = "[Character.HasLandedTitles]"
spacing = 2
expand = {}
icon = {
name = "icon_combat_strength"
size = { 30 30 }
texture = "gfx/interface/icons/icon_soldier.dds"
}
text_single = {
name = "military_total_strength"
text = "[CharacterWindow.GetCachedMilitaryStrengthText]"
default_format = "#high"
align = center|nobaseline
fontsize_min = 12
max_width = 80
progressbar_standard = {
name = "soldiers_max"
visible = "[NotEqualTo_int32(CharacterWindow.GetMaxSoldiers, '(int32)0')]"
parentanchor = bottom|hcenter
position = { 0 5 }
size = { 33 8 }
min = 0
max = "[IntToFloat(CharacterWindow.GetMaxSoldiers)]"
value = "[IntToFloat(CharacterWindow.GetCurrentSoldiers)]"
}
}
expand = {}
}
}
expand = {}
}
}
template Background_Area_Titles
{
texture = "gfx/interface/component_masks/mask_rough_edges.dds"
spriteType = Corneredtiled
spriteborder = { 20 20 }
color = { 0 0 0 0.3 }
texture_density = 2
}
template Animation_Character_Window_Refresh
{
state = {
name = character_window_refresh
using = Animation_Refresh_FadeOut
alpha = 0.65
}
state = {
using = Animation_Refresh_FadeIn
}
}
template Animation_Character_Window_Refresh_Short
{
state = {
name = character_window_refresh
using = Animation_Refresh_FadeOut
alpha = 0.8
}
state = {
using = Animation_Refresh_FadeIn
duration = 0.25
}
}
template Character_Window_Relation_Icon
{
size = { 24 24 }
framesize = { 40 40 }
visible = "[ScriptedRelation.HasRelationBetween( CharacterWindow.GetCharacter, Character.Self )]"
tooltipwidget = {
scripted_relation_tooltip = {
blockoverride "description_text"
{
text = "[GetScriptedRelationTooltip( ScriptedRelation, CharacterWindow.GetCharacter, Character )]"
}
}
}
}