Skip to content

Instantly share code, notes, and snippets.

@mindryu
Created November 30, 2020 21:05
Show Gist options
  • Save mindryu/7af56a9effd7f350d779d7c80624f15f to your computer and use it in GitHub Desktop.
Save mindryu/7af56a9effd7f350d779d7c80624f15f to your computer and use it in GitHub Desktop.
window_character.gui
######################################################
################# CHARACTER WINDOW ###################
######################################################
window = {
name = "character_window"
datacontext = "[GetVariableSystem]"
datacontext = "[CharacterWindow.GetCharacter]"
movable = no
layer = middle
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.Self )]"
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
}
}
}
buttons_window_control = {
parentanchor = top|right
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" {}
}
### Primary Spouse
container = {
visible = "[CharacterWindow.ShouldShowSpouses]"
parentanchor = bottom|hcenter
position = { 15 0 }
using = Animation_Character_Window_Refresh_Short
button = {
name = "marry_off_button"
visible = "[And(And( Not( ObjectsEqual( GetPlayer, Character.Self ) ), CharacterWindow.ShouldShowFindSpouse ), Not(Character.IsConcubine))]"
parentanchor = center
position = { 0 35 }
onclick = "[Character.OpenPlayerInteraction('marry_off_interaction')]"
tooltip = "CHARACTER_WINDOW_FIND_SPOUSE"
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"
}
}
button = {
name = "marry_off_button_player"
visible = "[And( ObjectsEqual( GetPlayer, Character.Self ), CharacterWindow.ShouldShowFindSpouse)]"
parentanchor = center
position = { 0 35 }
onclick = "[Character.OpenPlayerInteraction('marry_off_interaction')]"
tooltip = "CHARACTER_WINDOW_FIND_SPOUSE_SELF"
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"
}
}
portrait_character_view_spouse = {
datacontext = "[CharacterWindow.GetSpouse]"
visible = "[CharacterWindow.GetSpouse.IsValid]"
state = {
name = cw_spouse_cycle
using = Animation_Refresh_FadeOut
}
state = {
using = Animation_Refresh_FadeIn
}
}
widget = {
parentanchor = bottom|hcenter
size = { 145 40 }
flowcontainer = {
parentanchor = bottom|hcenter
widgetanchor = bottom|left
position = { -20 -3 }
ignoreinvisible = yes
text_label_center = {
visible = "[Not(CharacterWindow.GetCharacter.IsBetrothed)]"
text = "[CharacterWindow.GetSpouseText]"
align = nobaseline
}
text_label_center = {
visible = "[CharacterWindow.GetCharacter.IsBetrothed]"
text = "BETROTHED"
align = nobaseline
}
flowcontainer = {
visible = "[CharacterWindow.ShouldShowSpouseButtons]"
margin_top = 2
spacing = -5
using = Animation_ShowHide_Standard
button_expand = {
enabled = "[CharacterWindow.IsShowPrevious]"
onclick = "[CharacterWindow.PreviousSpouse]"
onclick = "[PdxGuiTriggerAllAnimations('cw_spouse_cycle')]"
tooltip = "[CharacterWindow.GetPreviousSpouseTooltip]"
mirror = horizontal
}
button_expand = {
enabled = "[CharacterWindow.IsShowNext]"
onclick = "[CharacterWindow.NextSpouse]"
onclick = "[PdxGuiTriggerAllAnimations('cw_spouse_cycle')]"
tooltip = "[CharacterWindow.GetNextSpouseTooltip]"
}
}
}
icon = {
name = "marriage_type_icon"
visible = "[CharacterWindow.ShowMarriageIcon]"
position = { 20 7 }
size = { 30 30 }
framesize = { 60 60 }
texture = "gfx/interface/icons/marriage_types.dds"
frame = "[CharacterWindow.GetMarriageIcon]"
tooltip = "[CharacterWindow.GetMarriageIconTooltip]"
}
}
}
### Main Character
portrait_character_view_main = {
name = "tutorial_highlight_main_character_button"
parentanchor = bottom|left
position = { 0 0 }
using = Animation_Character_Window_Refresh_Short
# icon_button_small_round = {
# name = "interact_button"
# visible = "[Character.IsAlive]"
# parentanchor = bottom|right
# position = { -30 0 }
# size = { 35 35 }
# onclick = "[DefaultOnCharacterRightClick(Character.GetID)]"
# tooltip = "CV_TT_INTERACT"
# using = tooltip_ne
# icon = {
# name = "icon"
# texture = "gfx/interface/prototype/interact_temp.png"
# size = {18 18}
# parentanchor = center
# }
# }
}
### Jailor / Imprisoner / Imprisoned by
container = {
name = "imprisoned_by"
datacontext = "[CharacterWindow.GetCharacter.GetImprisonedBy]"
visible = "[Character.IsValid]"
parentanchor = bottom|right
widgetanchor = top|left
position = { -195 -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 = "IMPRISONED_BY"
}
}
### Liege
container = {
name = "liege"
datacontext = "[CharacterWindow.GetCharacter.GetLiegeEvenWhenDead]"
visible = "[CharacterWindow.HasLiegeEvenWhenDead]"
parentanchor = bottom|right
widgetanchor = top|left
position = { -105 -250 }
allow_outside = yes
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
}
}
}
text_label_center = {
parentanchor = top|hcenter
position = { 0 85 }
text = "[liege|E]"
allow_outside = yes
icon = {
name = "non_dejure_liege"
datacontext = "[CharacterWindow.GetCharacter]"
visible = "[Not( Character.GetVassalContract.IsRightfulLiege )]"
position = { 3 0 }
parentanchor = right
widgetanchor = left
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"
parentanchor = top|hcenter
position = { 0 110 }
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 )]"
}
}
}
### 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( Character.IsValid, CharacterWindow.GetCharacter.IsLocalPlayer )]"
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 = {
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
flowcontainer = {
name = "debug_buttons"
parentanchor = top|left
position = { 200 20 }
ignoreinvisible = yes
# Debug personality
text_single = {
visible = "[InDebugMode]"
tooltip = "CHARACTER_AI_VALUES_DEBUG_TOOLTIP"
text = "#D AIValue#!"
align = nobaseline
}
button = {
using = editor_button
name = "ai_watch_button"
size = { 60 40 }
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 )]"
}
button = {
using = editor_button
name = "copy_portrait_button"
parentanchor = right
size = { 60 40 }
text = "portrait"
align = center|nobaseline
onclick = "[CharacterWindow.OnCopyPortrait]"
visible = "[IsGameViewOpen('portrait_editor')]"
fontcolor = { 1.0 1.0 1.0 1.0 }
}
}
flowcontainer = {
parentanchor = bottom|left
position = { 5 -5 }
spacing = 5
ignoreinvisible = yes
direction = vertical
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
}
}
}
container = {
visible = "[Character.IsPlayer]"
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
}
}
}
}
button_normal = {
name = "open_focus_button"
size = { 35 35 }
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% }
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
}
}
}
}
}
############################
### Character internal info
hbox = {
name = "character_info"
layoutpolicy_horizontal = expanding
margin = { 0 5 }
margin_left = 5
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"
margin_left = 2
text = "[Character.GetUINameNotMeNoTooltip], "
default_format = "#medium"
fontsize = 20
max_width = 388
align = nobaseline
fontsize_min = 14
tooltip = "[Character.GetUINameNotMeNoTooltip]"
}
text_single = {
name = "character_age"
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 = "[Not(Character.IsFemale)]"
size = { 25 25 }
framesize = { 40 40 }
frame = "[Character.GetSexualityFrame]"
texture = "gfx/interface/icons/character_status/sexuality_icons_male.dds"
tooltip = "SEXUALITY_TT"
}
icon = {
visible = "[Character.IsFemale]"
size = { 25 25 }
framesize = { 40 40 }
frame = "[Character.GetSexualityFrame]"
texture = "gfx/interface/icons/character_status/sexuality_icons_female.dds"
tooltip = "SEXUALITY_TT"
}
}
expand = {}
}
hbox = {
name = "AI_personality"
layoutpolicy_horizontal = expanding
margin = { 3 0 }
spacing = 2
text_single = {
name = "character_relation_to_you"
max_width = 432
text = "[Character.GetCharacterRelationCombine( GetPlayer )]"
fontsize_min = 13
align = nobaseline
}
spacer = {
size = { 3 3 }
}
divider_light = {
layoutpolicy_vertical = expanding
}
button = {
datacontext = "[Character.GetCulture]"
layoutpolicy_horizontal = expanding
size = { 0 25 }
onclick = "[DefaultOnCultureClick(Culture.GetID)]"
text = "[Culture.GetNameNoTooltip]"
default_format = "#clickable"
align = left|nobaseline
margin_left = 5
tooltipwidget = {
culture_tooltip_click = {}
}
}
expand = {}
} }
## Traits
hbox = {
name = "tutorial_highlight_traits"
layoutpolicy_horizontal = expanding
margin_bottom = 2
widget = {
layoutpolicy_horizontal = expanding
size = { 0 65 }
hbox = {
name = "3_personality_traits"
visible = "[LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetPersonalityTraits), '(int32)3')]"
fixedgridbox = {
name = "personality_traits"
datamodel = "[CharacterWindow.GetPersonalityTraits]"
flipdirection = yes
addcolumn = 64
addrow = 65
maxhorizontalslots = 3
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 65 65 }
}
}
}
}
hbox = {
visible = "[Not(IsDataModelEmpty( CharacterWindow.GetTraits ))]"
layoutpolicy_vertical = expanding
margin = { 5 10 }
divider_light = {
layoutpolicy_vertical = expanding
}
}
fixedgridbox = {
name = "traits_big"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)4')]"
flipdirection = yes
addcolumn = 64
addrow = 65
maxhorizontalslots = 4
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 65 65 }
}
}
}
}
fixedgridbox = {
name = "traits_medium"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)4'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)5'))]"
flipdirection = yes
addcolumn = 51
addrow = 52
maxhorizontalslots = 5
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 52 52 }
}
blockoverride "glow_radius"
{
glow_radius = 4
}
}
}
}
fixedgridbox = {
name = "traits_small"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)5'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)6'))]"
flipdirection = yes
addcolumn = 42
addrow = 43
maxhorizontalslots = 6
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 43 43 }
}
blockoverride "glow_radius"
{
glow_radius = 3
}
}
}
}
fixedgridbox = {
name = "traits_small_small"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)6'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)7'))]"
flipdirection = yes
addcolumn = 36
addrow = 37
maxhorizontalslots = 7
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 37 37 }
}
blockoverride "glow_radius"
{
glow_radius = 3
}
}
}
}
fixedgridbox = {
name = "traits_tiny"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)7'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)22'))]"
flipdirection = yes
addcolumn = 24
addrow = 25
maxhorizontalslots = 11
datamodel_wrap = 11
maxverticalslots = 2
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 25 25 }
}
blockoverride "glow_radius"
{
glow_radius = 2
}
}
}
}
fixedgridbox = {
name = "traits_supertiny"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)22')]"
flipdirection = yes
addcolumn = 15
addrow = 16
maxhorizontalslots = 16
datamodel_wrap = 16
maxverticalslots = 4
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 16 16 }
}
blockoverride "glow_radius"
{
glow_radius = 2
}
}
}
}
expand = {}
}
hbox = {
name = "4_personality_traits"
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetPersonalityTraits), '(int32)3')]"
fixedgridbox = {
name = "personality_traits"
datamodel = "[CharacterWindow.GetPersonalityTraits]"
flipdirection = yes
addcolumn = 54
addrow = 55
maxhorizontalslots = 4
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 55 55 }
}
}
}
}
hbox = {
visible = "[Not(IsDataModelEmpty( CharacterWindow.GetTraits ))]"
layoutpolicy_vertical = expanding
margin = { 5 10 }
divider_light = {
layoutpolicy_vertical = expanding
}
}
fixedgridbox = {
name = "traits_big"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)4')]"
flipdirection = yes
addcolumn = 54
addrow = 55
maxhorizontalslots = 5
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 55 55 }
}
}
}
}
fixedgridbox = {
name = "traits_medium"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)4'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)6'))]"
flipdirection = yes
addcolumn = 39
addrow = 40
maxhorizontalslots = 7
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 40 40 }
}
blockoverride "glow_radius"
{
glow_radius = 4
}
}
}
}
fixedgridbox = {
name = "traits_small"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)6'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)8'))]"
flipdirection = yes
addcolumn = 28
addrow = 29
maxhorizontalslots = 10
maxverticalslots = 1
item = {
icon_trait = {
blockoverride "icon_size"
{
size = { 29 29 }
}
blockoverride "glow_radius"
{
glow_radius = 3
}
}
}
}
fixedgridbox = {
name = "traits_tiny"
datamodel = "[CharacterWindow.GetTraits]"
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTraits), '(int32)8')]"
flipdirection = yes
addcolumn = 24
addrow = 25
maxhorizontalslots = 10
datamodel_wrap = 10
maxverticalslots = 2
icon_trait = {
item = {
blockoverride "icon_size"
{
size = { 25 25 }
}
blockoverride "glow_radius"
{
glow_radius = 2
}
}
}
}
expand = {}
}
}
expand = {}
}
}
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 }
}
}
}
}
}
vbox = {
tooltip = "[CharacterWindow.GetCharacter.GetProwessBreakdown]"
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]"
default_format = "#high"
align = nobaseline
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_prowess_bg.dds"
frame = "[SkillItem.GetFrame]"
framesize = { 70 26 }
margin = { 10 0 }
}
}
}
divider_light = {
layoutpolicy_vertical = expanding
}
spacer = {
size = { 5 5 }
}
}
vbox = {
name = "faith_and_culture"
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
button_religion_icon = {
name = "faith_button"
datacontext = "[Character.GetFaith]"
size = { 45 45 }
}
}
divider_light = {
layoutpolicy_vertical = expanding
}
vbox = {
layoutpolicy_vertical = expanding
margin = { 2 2 }
using = Animation_Character_Window_Refresh
fixedgridbox = {
name = "modifiers_grid_big"
datamodel = "[CharacterWindow.GetTimedModifiers]"
visible = "[LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetTimedModifiers), '(int32)5')]"
flipdirection = yes
addcolumn = 43
addrow = 43
maxhorizontalslots = 5
maxverticalslots = 1
datamodel_wrap = 5
item = {
icon = {
size = { 43 43 }
alwaystransparent = no
texture = "[ModifierItem.GetIcon]"
tooltip = "[ModifierItem.GetTooltip]"
}
}
}
fixedgridbox = {
name = "modifiers_grid_small"
datamodel = "[CharacterWindow.GetTimedModifiers]"
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTimedModifiers), '(int32)5')]"
flipdirection = yes
addcolumn = 22
addrow = 22
maxhorizontalslots = 10
maxverticalslots = 2
datamodel_wrap = 10
item = {
icon = {
size = { 22 22 }
alwaystransparent = no
texture = "[ModifierItem.GetIcon]"
tooltip = "[ModifierItem.GetTooltip]"
}
}
}
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 }
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.Self )]"
alpha = 0.35
fittype = centercrop
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical_up.dds"
blend_mode = alphamultiply
}
using = Mask_Rough_Edges
}
}
hbox = {
name = "realm_info"
layoutpolicy_horizontal = expanding
vbox = {
#name = "realm_shield"
visible = "[Character.HasLandedTitles]"
layoutpolicy_vertical = expanding
spacing = 7
margin_bottom = 5
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
}
}
expand = {}
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"
}
}
}
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 }
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
}
}
vbox = {
visible = "[Character.HasLandedTitles]"
datacontext = "[Character.GetPrimaryTitle]"
text_single = {
name = "character_title"
layoutpolicy_horizontal = expanding
text = "[Title.GetNameNoTooltip|U]"
max_width = 280
#default_format = "#low"
using = Font_Size_Medium
align = nobaseline
fontsize_min = 14
}
text_single = {
name = "faction"
visible = "[Title.HasFaction]"
layoutpolicy_horizontal = expanding
text = "CV_CIVIL_WAR_FACTION"
default_format = "#low"
align = nobaseline
}
text_single = {
name = "government_type"
visible = "[Not( Title.HasFaction )]"
layoutpolicy_horizontal = expanding
text = "CV_REALM_TYPE"
default_format = "#low"
align = nobaseline
}
}
expand = {}
hbox = {
name = "stats"
spacing = 8
margin_bottom = 6
margin_top = 3
visible = "[Character.IsAlive]"
vbox = {
visible = "[Character.HasLandedTitles]"
spacing = -2
min_width = 40
tooltip = "[Character.GetDreadBreakdown]"
icon = {
name = "dread_icon"
size = { 30 30 }
texture = "gfx/interface/icons/icon_dread.dds"
}
text_single = {
name = "total_gold"
text = "[Character.GetDread|0]"
default_format = "#high"
align = center|nobaseline
}
}
vbox = {
tooltip = "[Character.GetGoldTooltipWithBalance]"
min_width = 40
spacing = -2
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
}
}
vbox = {
tooltip = "[Character.GetPrestigeTooltipWithBalance]"
min_width = 40
spacing = -2
icon = {
name = "icon_prestige"
size = { 30 30 }
texture = "[Character.GetPrestigeLevelTexture]"
}
text_single = {
name = "prestige"
text = "[Character.GetPrestige|0]"
default_format = "#high"
align = center|nobaseline
}
}
vbox = {
tooltip = "[Character.GetPietyTooltipWithBalance]"
min_width = 40
spacing = -2
icon = {
name = "icon_piety"
size = { 30 30 }
texture = "[Character.GetPietyLevelTexture]"
}
text_single = {
name = "piety"
text = "[Character.GetPiety|0]"
default_format = "#high"
align = center|nobaseline
}
}
spacer = {
size = { 0 3 }
}
vbox = {
visible = "[Character.HasLandedTitles]"
tooltip = "[CharacterWindow.GetMilitaryStrengthTooltip]"
spacing = -2
min_width = 40
background = {
using = Background_Frame
margin = { 10 5 }
margin_bottom = 7
alpha = 0.7
}
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
progressbar_standard = {
name = "soldiers_max"
parentanchor = bottom|hcenter
position = { 0 5 }
size = { 33 8 }
min = 0
max = "[IntToFloat(CharacterWindow.GetMaxSoldiers)]"
value = "[IntToFloat(CharacterWindow.GetCurrentSoldiers)]"
}
}
}
}
}
divider = {
layoutpolicy_horizontal = expanding
}
vbox_titles_claims_box = {
visible = "[Not( Or( Character.GetPrimaryTitle.HasFaction, DataModelHasItems( CharacterWindow.GetDiplomacyItems )))]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_right = 3
using = Animation_Character_Window_Refresh
blockoverride "titles_extra_items"
{
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTitles), '(int32)13' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)13' )|=]"
}
blockoverride "titles_max_slots"
{
datamodel_wrap = 13
}
blockoverride "claims_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)13' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)13' )|=]"
}
blockoverride "claims_max_slots"
{
datamodel_wrap = 13
}
}
hbox = {
visible = "[DataModelHasItems( CharacterWindow.GetDiplomacyItems )]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_right = 2
vbox_titles_claims_box = {
visible = "[And( Not( Character.GetPrimaryTitle.HasFaction ), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)4'))]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "titles_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)10' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)10' )|=]"
}
blockoverride "titles_max_slots"
{
datamodel_wrap = 10
}
blockoverride "claims_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)10' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)10' )|=]"
}
blockoverride "claims_max_slots"
{
datamodel_wrap = 10
}
}
vbox_titles_claims_box = {
visible = "[And( Not( Character.GetPrimaryTitle.HasFaction ), And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)4'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)6')))]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "titles_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)9' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)9' )|=]"
}
blockoverride "titles_max_slots"
{
datamodel_wrap = 9
}
blockoverride "claims_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)9' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)9' )|=]"
}
blockoverride "claims_max_slots"
{
datamodel_wrap = 9
}
}
vbox_titles_claims_box = {
visible = "[And( Not( Character.GetPrimaryTitle.HasFaction ), And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)6'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)8')))]"
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
}
}
vbox_titles_claims_box = {
visible = "[And( Not( Character.GetPrimaryTitle.HasFaction ), GreaterThan_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)8'))]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "titles_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)7' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)7' )|=]"
}
blockoverride "titles_max_slots"
{
datamodel_wrap = 7
}
blockoverride "claims_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)7' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)7' )|=]"
}
blockoverride "claims_max_slots"
{
datamodel_wrap = 7
}
}
expand = {
layoutpolicy_horizontal = expanding
visible = "[Character.GetPrimaryTitle.HasFaction]"
}
divider = {
layoutpolicy_vertical = expanding
}
vbox_diplomacy_box = {
visible = "[And(Not(IsDataModelEmpty(CharacterWindow.GetDiplomacyItems)), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)4'))]"
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "diplomacy_slots"
{
maxverticalslots = 2
maxhorizontalslots = 2
datamodel_wrap = 2
}
}
vbox_diplomacy_box = {
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)4'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)6'))]"
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "diplomacy_slots"
{
maxverticalslots = 2
maxhorizontalslots = 3
datamodel_wrap = 3
}
}
vbox_diplomacy_box = {
visible = "[And(GreaterThan_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)6'), LessThanOrEqualTo_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)8'))]"
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "diplomacy_slots"
{
maxverticalslots = 2
maxhorizontalslots = 4
datamodel_wrap = 4
}
}
vbox_diplomacy_box = {
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)8')]"
layoutpolicy_vertical = expanding
using = Animation_Character_Window_Refresh
blockoverride "diplomacy_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)10' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetDiplomacyItems), '(int32)10' )|=]"
}
blockoverride "diplomacy_slots"
{
maxverticalslots = 2
maxhorizontalslots = 5
datamodel_wrap = 5
}
}
expand = {}
}
expand = {}
}
}
}
######################################################
################### BOTTOM AREA ######################
######################################################
### TABS
hbox = {
name = "tabs"
visible = "[CharacterWindow.AreNoneExpanded]"
layoutpolicy_horizontal = expanding
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 = "[Character.IsRuler]"
# visible = "[And(Character.IsRuler, Not(Character.IsPlayer))]"
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 = "[CharacterWindow.IsTabShown('family')]"
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 = "[SelectLocalization( Character.IsFemale, 'CONCUBINES_MEN', 'CONCUBINES_WOMEN' )]"
}
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')]"
button_plus = {
parentanchor = center
alwaystransparent = yes
}
}
blockoverride "portrait_button_template_tooltip"
{
tooltip = "[CharacterWindow.GetCharacter.GetPlayerInteractionTooltip('find_concubine')]"
}
}
}
}
expand = {}
}
}
}
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 = "[Not( Or(CharacterWindow.IsRelationExpanded( 'friends' ), CharacterWindow.IsRelationExpanded( 'rivals' ) ) )]"
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.GetRelationsOfTypeFillEmpty( GetRelation( 'ward' ), '(int32)2' )]"
}
blockoverride "header_text"
{
text = "WARDS_LABEL"
}
blockoverride "expand_button" {}
blockoverride "empty_character"
{
visible = "[Character.IsValid]"
}
}
vbox_character_row_item = {
name = "lovers"
visible = "[CharacterWindow.GetCharacter.IsAdult]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfType( GetRelation( 'lover' ) )]"
}
blockoverride "header_text"
{
text = "LOVERS_LABEL"
}
blockoverride "expand_button" {}
}
vbox_character_row_item = {
name = "guardian"
visible = "[Not(CharacterWindow.GetCharacter.IsAdult)]"
layoutpolicy_vertical = expanding
blockoverride "portrait_datamodel" {
datamodel = "[CharacterWindow.GetRelationsOfTypeFillEmpty( GetRelation( 'guardian' ), '(int32)1' )]"
}
blockoverride "header_text"
{
text = "GUARDIAN_LABEL"
}
blockoverride "expand_button" {}
}
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 = {
layoutpolicy_horizontal = expanding
vbox_character_row_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 = {
layoutpolicy_horizontal = expanding
vbox_character_row_item = {
name = "rivals"
visible = "[CharacterWindow.GetCharacter.IsAdult]"
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)8' ))]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )), '(int32)8' )|=]"
}
blockoverride "expand_button_inside" {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetRelationsOfType( GetRelation( 'rival' ) )), '(int32)8' )]"
onclick = "[CharacterWindow.ToggleExpandedRelation( 'rivals' )]"
}
}
vbox_character_row_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_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" {}
}
expand = {}
}
}
expand = {}
}
### RIVALS EXPANDED
scrollbox = {
name = "rivals_expanded"
visible = "[CharacterWindow.IsRelationExpanded( 'rivals' )]"
size = { 100% 100% }
blockoverride "scrollbox_replace_vbox" {
vbox_character_row_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_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" {}
}
}
}
expand = {}
}
####################################
############ COURT TAB #############
####################################
vbox_character_list = {
datacontext = "[CharacterWindow.GetCourt]"
visible = "[CharacterWindow.IsTabShown('court')]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "sort_buttons" {}
blockoverride "character_count" {}
blockoverride "scrollbox_margins" {
margin_right = 15
}
blockoverride "container_implementation" {
fixedgridbox = {
name = "characters_grid"
datamodel = "[CharacterSelectionList.GetList]"
visible = "[Not(CharacterSelectionList.IsBuildingList)]"
addcolumn = 580
addrow = 125
setitemsizefromcell = yes
item = {
widget_courtier_item = {
datacontext = "[CharacterListItem.GetCharacter]"
# blockoverride "description_relation_text" {
# text = "[Character.GetSpecialGuestRelationDescription]"
# }
blockoverride "action_buttons" {}
}
}
}
}
}
####################################
########### VASSALS TAB ############
####################################
vbox_character_list = {
visible = "[CharacterWindow.IsTabShown('vassals')]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
datacontext = "[CharacterWindow.GetVassals]"
blockoverride "sort_buttons" {}
blockoverride "character_count" {}
blockoverride "scrollbox_margins" {
margin = { 0 5 }
margin_right = 10
}
blockoverride "container_implementation" {
fixedgridbox = {
name = "characters_grid"
datamodel = "[CharacterSelectionList.GetList]"
visible = "[Not(CharacterSelectionList.IsBuildingList)]"
addcolumn = 590
addrow = 90
setitemsizefromcell = yes
item = {
widget_vassal_list_item = {
datacontext = "[CharacterListItem.GetCharacter]"
layoutpolicy_horizontal = expanding
blockoverride "own_vassal" {}
}
}
}
}
}
}
### 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 = {
icon = {
size = { 35 35 }
alwaystransparent = no
texture = "[ModifierItem.GetIcon]"
tooltip = "[ModifierItem.GetTooltip]"
}
}
}
}
divider_light = {
layoutpolicy_horizontal = expanding
}
vbox = {
spacing = 10
text_label_center = {
text = "TRAITS"
}
fixedgridbox = {
name = "personality_traits_grid"
datamodel = "[CharacterWindow.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 = "[CharacterWindow.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 = {
layoutpolicy_horizontal = expanding
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_enabled = no
scale = 1.3
}
coa_realm_medium = {
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
}
}
}
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 }
}
}
}
}
}
}
}
}
}
}
######################################################
################ TYPES AND TEMPLATES #################
######################################################
types CharacterWindow
{
type skill_icon_label_vertical = widget {
size = { 40 60 }
datacontext = "[SkillItem]"
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 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 }
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"
{
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 = {
portrait_head_small = {
blockoverride "portrait_button"
{
using = tooltip_ne
}
blockoverride "glow_visible"
{
visible = no
}
}
}
}
}
block "find_partner" {}
expand = {}
}
expand = {}
}
type vbox_titles_claims_box = vbox {
## Titles
vbox = {
name = "titles"
visible = "[Not( IsDataModelEmpty( CharacterWindow.GetTitles ) )]"
layoutpolicy_horizontal = expanding
button_standard_hover = {
layoutpolicy_horizontal = expanding
size = { 0 25 }
onclick = "[CharacterWindow.ToggleExpandedTitles]"
down = "[CharacterWindow.AreTitlesExpanded]"
tooltip = "[SelectLocalization( CharacterWindow.AreTitlesExpanded, 'CV_TITLES_HIDE_TT', 'CV_TITLES_SHOW_TT' )]"
hbox = {
margin = { 5 0 }
margin_bottom = 3
margin_right = 10
text_label_left = {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)1' )]"
text = "CV_TITLES"
}
text_label_left = {
visible = "[Not(GreaterThan_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)1' ))]"
text = "CV_TITLES_SINGULAR"
}
expand = {}
text_single = {
block "titles_extra_items"
{
visible = "[GreaterThan_int32(GetDataModelSize(CharacterWindow.GetTitles), '(int32)8' )]"
text = "[GetNumberAbove_int32( GetDataModelSize(CharacterWindow.GetTitles), '(int32)8' )|=]"
}
default_format = "#weak"
}
}
}
hbox = {
layoutpolicy_horizontal = expanding
hbox = {
layoutpolicy_horizontal = expanding
fixedgridbox = {
datamodel = "[CharacterWindow.GetTitles]"
flipdirection = yes
addrow = 60
addcolumn = 38
maxverticalslots = 1
block "titles_max_slots" {
datamodel_wrap = 2
}
item = {
coa_title_tiny_crown = {
datacontext = "[TitleItem.GetTitle]"
# visible = "[GreaterThan_int32( Title.GetTierFrame, '(int32)3' )]"
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
vbox = {
name = "claims"
visible = "[Not(IsDataModelEmpty(CharacterWindow.GetClaims))]"
layoutpolicy_horizontal = expanding
vbox = {
layoutpolicy_horizontal = expanding
button_standard_hover = {
layoutpolicy_horizontal = expanding
margin_left = 5
size = { 0 25 }
onclick = "[CharacterWindow.ToggleExpandedClaims]"
down = "[CharacterWindow.AreClaimsExpanded]"
tooltip = "[SelectLocalization( CharacterWindow.AreClaimsExpanded, 'CV_CLAIMS_HIDE_TT', 'CV_CLAIMS_SHOW_TT' )]"
hbox = {
margin = { 5 0 }
margin_bottom = 3
margin_right = 10
text_label_left = {
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)1' )]"
text = "CV_CLAIMS"
}
text_label_left = {
visible = "[Not(GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)1' ))]"
text = "CV_CLAIMS_SINGULAR"
}
expand = {}
text_single = {
block "claims_extra_items"
{
visible = "[GreaterThan_int32( GetDataModelSize(CharacterWindow.GetClaims), '(int32)10' )]"
text = "[GetNumberAbove_int32(GetDataModelSize(CharacterWindow.GetClaims), '(int32)10' )|=]"
}
default_format = "#weak"
}
}
}
expand = {}
}
hbox = {
layoutpolicy_horizontal = expanding
fixedgridbox = {
name = "claims_box"
datamodel = "[CharacterWindow.GetClaims]"
flipdirection = yes
addrow = 60
addcolumn = 38
maxverticalslots = 1
block "claims_max_slots" {
datamodel_wrap = 8
}
item = {
container = {
datacontext = "[Claim.GetTitle]"
using = tooltip_ne
tooltip = "CHARACTER_WINDOW_CLAIM_TOOLTIP"
coa_title_tiny_crown = {
name = "claim"
tooltip_enabled = 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"
button_standard_hover = {
layoutpolicy_horizontal = expanding
size = { 0 25 }
onclick = "[CharacterWindow.ToggleExpandedDiplomacy]"
down = "[CharacterWindow.AreDiplomacyExpanded]"
tooltip = "[SelectLocalization( CharacterWindow.AreDiplomacyExpanded, 'CV_DIPLOMACY_HIDE_TT', 'CV_DIPLOMACY_SHOW_TT' )]"
hbox = {
margin = { 5 0 }
margin_left = 10
margin_bottom = 3
text_label_left = {
layoutpolicy_horizontal = expanding
text = "CV_DIPLOMACY"
margin_right = 0
}
}
hbox = {
margin = { 10 0 }
margin_bottom = 3
expand = {}
text_single = {
default_format = "#weak"
block "diplomacy_extra_items"
{
visible = no
}
}
}
}
vbox = {
margin_top = 20
min_width = 100
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 = {
button = {
parentanchor = top|hcenter
position = { 0 -22 }
texture = "gfx/interface/icons/diplomatic_icons.dds"
frame = "[DiplomacyItem.GetDiplomacyFrame]"
framesize = { 120 120 }
size = { 50 50 }
tooltip_enabled = no
text_single = {
name = "warscore"
visible = "[DiplomacyItem.HasWarScore]"
parentanchor = top|hcenter
position = { 0 10 }
text = "[DiplomacyItem.GetWarScoreFraction|0%=+]"
fontsize = 13
}
}
coa_realm_small = {
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
}
}
}
}
}
}
expand = {}
}
}
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
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment