N3OW/N3OW/gui/window_character_lifestyle.gui
2025-10-30 11:25:16 +00:00

1513 lines
No EOL
39 KiB
Text

######################################################
################### LIFESTYLES #######################
######################################################
window = {
name = "character_lifestyle_window"
widgetid = "character_lifestyle_window"
size = { 100% 100% }
parentanchor = center|hcenter
# position = { 80 20 }
movable = no
filter_mouse = all
layer = middle
datacontext = "[CharacterLifestyleWindow.GetCharacter]"
datacontext = "[CharacterLifestyleWindow.GetSelectedLifestyle]"
using = Window_Background_No_Edge
background = {
texture = "gfx/interface/component_masks/mask_fade_corner.dds"
color = { 0.12 0.12 0.12 1 }
mirror = horizontal
margin_right = -1200
alpha = 0.6
}
state = {
name = _show
using = Animation_FadeIn_Standard
using = Sound_WindowShow_Standard
using = Sound_Window_AmbienceMute_Snapshot
on_start = "[GetVariableSystem.Set( 'lifestyle_open', 'true' )]"
}
state = {
name = _hide
using = Animation_FadeOut_Standard
using = Sound_WindowHide_Standard
on_start = "[GetVariableSystem.Clear( 'lifestyle_open' )]"
}
### Select Focus start screen
vbox = {
name = "lifestyle_selection"
visible = "[Not( Lifestyle.IsValid )]"
margin_top = 10
state = {
name = _show
using = Animation_FadeIn_Quick
}
state = {
name = _hide
using = Animation_FadeOut_Quick
}
header_standard = {
layoutpolicy_horizontal = expanding
blockoverride "header_text"
{
text = "CHARACTER_LIFESTYLE_HEADER"
}
blockoverride "button_close"
{
onclick = "[CharacterLifestyleWindow.Close]"
}
}
background = {
using = Background_Bottom_Fade
}
background = {
using = Background_Area_Dark
margin = { 0 -100 }
alpha = 0.3
}
hbox = {
name = "lifestyles"
datamodel = "[CharacterLifestyleWindow.GetLifestyles]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin = { 0 150 }
margin_left = 260
margin_right = 40
spacing = 10
max_width = 2080
item = {
button_normal = {
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
onclick = "[CharacterLifestyleWindow.OpenLifestyle( Lifestyle.Self )]"
onclick = "[PlaySfxEvent( Concatenate( 'event:/SFX/UI/Character/Lifestyle/sfx_ui_character_lifestyle_', Lifestyle.GetKey ) )]"
#clicksound =
maximumsize = { -1 900 }
effectname = "NoHighlight"
#gfxtype = propstretchedicongfx
#shaderfile = "gfx/FX/pdxgui_default.shader"
texture = "[Lifestyle.GetBackground]"
modify_texture = {
texture = "gfx/interface/window_lifestyles/lifestyles_illustration_mask.dds"
blend_mode = alphamultiply
spriteType = Corneredstretched
spriteborder = { 30 30 }
}
button = {
size = { 100% 100% }
alpha = 0
onclick = "[CharacterLifestyleWindow.OpenLifestyle( Lifestyle.Self )]"
onclick = "[PlaySfxEvent( Concatenate( 'event:/SFX/UI/Character/Lifestyle/sfx_ui_character_lifestyle_', Lifestyle.GetKey ) )]"
state = {
name = _mouse_enter
alpha = 1
}
state = {
name = _mouse_leave
alpha = 0
}
background = {
texture = "gfx/interface/window_lifestyles/lifestyles_illustration_hover.dds"
spriteType = Corneredtiled
spriteborder = { 30 30 }
alpha = 1
modify_texture = {
texture = "gfx/interface/window_lifestyles/lifestyles_illustration_mask.dds"
blend_mode = alphamultiply
spriteType = Corneredtiled
spriteborder = { 30 30 }
}
}
}
icon = {
size = { 100% 100% }
using = Background_Bottom_Fade
mirror = vertical
modify_texture = {
texture = "gfx/interface/window_lifestyles/lifestyles_illustration_mask.dds"
blend_mode = alphamultiply
spriteType = Corneredtiled
spriteborder = { 30 30 }
}
}
icon = {
parentanchor = top|hcenter
position = { 0 -50 }
size = { 120 120 }
texture = "[Lifestyle.GetIcon]"
framesize = { 160 160 }
}
text_multi = {
parentanchor = top|right
position = { -20 10 }
visible = "[GreaterThan_int32( Character.GetPerkPointsUsed( Lifestyle.Self ), '(int32)0' )]"
text = "LIFESTYLE_POINTS_ALREADY_USED_TEXT"
default_format = "#low"
max_width = 60
autoresize = yes
align = center
background = {
using = Background_Area_Dark
margin = { 10 0 }
margin_bottom = 5
}
}
vbox = {
margin = { 10 30 }
margin_top = 60
vbox = {
layoutpolicy_horizontal = expanding
margin_top = 15
spacing = 20
text_single = {
text = "[Lifestyle.GetNameNoTooltip]"
default_format = "#high"
using = Font_Type_Flavor
fontsize = 25
}
text_multi = {
text = "[Lifestyle.GetDescription]"
size = { 100 90 }
align = top|hcenter
layoutpolicy_horizontal = expanding
margin = { 5 0 }
}
text_multi = {
visible = "[Lifestyle.IsHighlightedForCharacter( Character.Self )]"
layoutpolicy_horizontal = expanding
size = { 100 80 }
margin = { 10 0 }
text = "[Lifestyle.GetHighlightDescription]"
align = center
background = {
using = Background_Area_Dark
}
}
expand = {}
}
vbox = {
text_single = {
visible = "[GreaterThan_int32( Character.GetPerkPoints( Lifestyle.Self ), '(int32)0' )]"
text = "LIFESTYLE_POINTS_TO_USE_TEXT"
default_format = "#low"
max_width = 280
# animation_attention = {}
background = {
using = Background_Area_Dark
margin = { 10 0 }
margin_bottom = 5
}
}
}
expand = {}
}
}
}
}
}
hbox = {
visible = "[Lifestyle.IsValid]"
state = {
name = "lifestyle_tabs_refresh"
next = a
alpha = 0.5
}
state = {
name = "a"
alpha = 1
duration = 0.5
using = Animation_Curve_Default
}
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
layoutstretchfactor_horizontal = 3
background = {
texture = "[Lifestyle.GetBackground]"
alpha = 0.3
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_horizontal_extended.dds"
blend_mode = alphamultiply
}
}
}
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
layoutstretchfactor_horizontal = 7
}
}
widget = {
parentanchor = bottom|left
size = { 270 560 }
allow_outside = no
portrait_lifestyles = {
alwaystransparent = "[Not(Lifestyle.IsValid)]"
parentanchor = bottom|left
position = { -200 0 }
}
}
### Focus View
vbox = {
name = "focus_view"
visible = "[Lifestyle.IsValid]"
using = Window_Margins
state = {
name = _show
using = Animation_FadeIn_Quick
}
state = {
name = _hide
using = Animation_FadeOut_Quick
}
background = {
texture = "gfx/interface/component_masks/mask_fade_vertical.dds"
margin_top = -500
color = { 0 0 0 0.7 }
alpha = 0.7
mirror = vertical
}
### HEADER
widget = {
name = "header_bar"
layoutpolicy_horizontal = expanding
size = { 0 85 }
background = {
texture = "gfx/interface/component_tiles/tile_background_window_header.dds"
spriteType = Corneredtiled
spriteborder = { 20 20 }
margin = { 12 0 }
}
text_single = {
parentanchor = vcenter
position = { 0 -8 }
margin_left = 5
text = "LIFESTYLE_WINDOW_TITLE"
using = Font_Type_Flavor
fontsize = 35
state = {
name = "lifestyle_tabs_refresh"
next = a
alpha = 0.5
}
state = {
name = "a"
alpha = 1
duration = 0.5
using = Animation_Curve_Default
}
}
hbox = {
widget = {
layoutpolicy_vertical = expanding
size = { 450 0 }
background = {
texture = "gfx/interface/window_lifestyles/lifestyles_tabs_bg.dds"
margin = { 15 -10 }
}
flowcontainer = {
name = "lifestyles"
datamodel = "[CharacterLifestyleWindow.GetLifestyles]"
spacing = 10
parentanchor = center
item = {
container = {
parentanchor = vcenter
button_normal = {
visible = "[Not(EqualTo_string( Lifestyle.GetKey, CharacterLifestyleWindow.GetSelectedLifestyle.GetKey ))]"
parentanchor = center
size = { 70 70 }
framesize = { 160 160 }
onclick = "[CharacterLifestyleWindow.OpenLifestyle( Lifestyle.Self )]"
onclick = "[PdxGuiTriggerAllAnimations('lifestyle_tabs_refresh')]"
texture = "[Lifestyle.GetIcon]"
effectname = "NoHighlight"
gfxtype = framedbuttongfx
shaderfile = "gfx/FX/pdxgui_pushbutton.shader"
#Fade out if character has no perks in that lifestyle
alpha = "[Select_float( GreaterThan_int32(Character.GetPerkPointsUsed( Lifestyle.Self ),'(int32)0'),'(float)1.0','(float)0.6')]"
tooltip = "LIFESTYLE_SELECT_TOOLTIP"
using = tooltip_se
highlight_icon = {
visible = "[EqualTo_string( Lifestyle.GetKey, Character.GetLifestyle.GetKey )]"
size = { 100% 100%}
texture = "gfx/interface/buttons/button_lifestyles_active_frame.dds"
}
button_round = {
visible = "[And(GreaterThan_int32( Character.GetPerkPoints( Lifestyle.Self ), '(int32)0' ), Character.IsLocalPlayer)]"
parentanchor = bottom|right
size = { 28 28 }
frame = 1
upframe = 1
alwaystransparent = yes
text_single = {
parentanchor = center
position = { 0 -3 }
text = "[Character.GetPerkPoints( Lifestyle.Self )]"
default_format = "#high"
max_width = 180
align = center
}
}
}
button_normal = {
visible = "[EqualTo_string( Lifestyle.GetKey, CharacterLifestyleWindow.GetSelectedLifestyle.GetKey )]"
parentanchor = center
size = { 70 70 }
framesize = { 160 160 }
texture = "[Lifestyle.GetIcon]"
effectname = "NoHighlight"
gfxtype = framedbuttongfx
shaderfile = "gfx/FX/pdxgui_pushbutton.shader"
tooltip = "LIFESTYLE_SELECT_TOOLTIP"
using = tooltip_se
state = {
name = _show
size = { 90 90 }
duration = 0.15
using = Animation_Curve_Default
}
state = {
name = _hide
size = { 70 70 }
duration = 0.15
using = Animation_Curve_Default
}
icon = {
visible = "[EqualTo_string( Lifestyle.GetKey, Character.GetLifestyle.GetKey )]"
size = { 100% 100%}
texture = "gfx/interface/buttons/button_lifestyles_active_frame.dds"
}
button_round = {
visible = "[And(GreaterThan_int32( Character.GetPerkPoints( Lifestyle.Self ), '(int32)0' ), Character.IsLocalPlayer)]"
parentanchor = bottom|right
size = { 28 28 }
frame = 2
upframe = 2
alwaystransparent = yes
text_single = {
parentanchor = center
position = { 0 -3 }
text = "[Character.GetPerkPoints( Lifestyle.Self )]"
default_format = "#high"
max_width = 180
align = center
}
}
}
}
}
}
}
}
flowcontainer = {
parentanchor = right|vcenter
position = { -10 0 }
spacing = 25
button_tertiary = {
visible = "[Character.IsLocalPlayer]"
parentanchor = vcenter
size = { 150 32 }
onclick = "[CharacterLifestyleWindow.OpenRefundPerks]"
enabled = "[CharacterLifestyleWindow.CanRefundPerks]"
text = "REFUND_PERKS"
tooltip = "REFUND_PERKS_TOOLTIP"
}
buttons_window_control = {
blockoverride "button_close"
{
onclick = "[CharacterLifestyleWindow.Close]"
}
}
}
}
### MAIN BODY
hbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
spacing = 5
margin_top = 10
## LEFT BAR
vbox = {
layoutpolicy_vertical = expanding
minimumsize = { 270 0 }
vbox = {
minimumsize = { 0 100 }
spacing = 10
state = {
name = "lifestyle_tabs_refresh"
next = a
alpha = 0.5
}
state = {
name = "a"
alpha = 1
duration = 0.5
using = Animation_Curve_Default
}
# background = {
# texture = "gfx/interface/component_tiles/tile_background_window_header.dds"
# spriteType = Corneredtiled
# spriteborder = { 20 20 }
# margin = { 10 27 }
# margin_top = 54
# }
vbox = {
spacing = 10
visible = "[Character.IsLocalPlayer]"
text_multi = {
layoutpolicy_horizontal = expanding
text = "[Lifestyle.GetDescription]"
using = Font_Size_Medium
autoresize = yes
max_width = 550
min_width = 550
}
text_multi = {
layoutpolicy_horizontal = expanding
visible = "[Lifestyle.IsHighlightedForCharacter( Character.Self )]"
text = "[Lifestyle.GetHighlightDescription]"
default_format = "#high;italic"
autoresize = yes
max_width = 550
}
}
spacer = {
size = {550 10 }
visible = "[Not(Character.IsLocalPlayer)]"
}
expand = {}
}
hbox = {
layoutpolicy_horizontal = expanding
expand = {}
vbox = {
name = "focus_area"
datamodel = "[CharacterLifestyleWindow.GetFocuses]"
margin = { 10 0 }
spacing = 8
state = {
name = "lifestyle_tabs_refresh"
next = a
alpha = 0.5
}
state = {
name = "a"
alpha = 1
duration = 0.5
using = Animation_Curve_Default
}
text_label_center = {
text = "LIFESTYLE_FOCUS_HEADER"
}
text_single = {
visible = "[GetPlayer.GetLifestyle.IsValid]"
text = "FOCUS_CANCHANGE"
default_format = "#low"
}
text_single = {
visible = "[Not( GetPlayer.GetLifestyle.IsValid )]"
text = "FOCUS_CANCHANGE_NO_FOCUS"
default_format = "#low"
# animation_attention_text = {}
}
item = {
button_standard_clean = {
layoutpolicy_horizontal = expanding
size = { 300 240 }
enabled = "[Or(CharacterLifestyleWindow.CanSelectFocus( FocusType.Self ), EqualTo_string( FocusType.GetKey, Character.GetFocus.GetKey ))]"
down = "[EqualTo_string( FocusType.GetKey, Character.GetFocus.GetKey )]"
onclick = "[CharacterLifestyleWindow.SelectFocus( FocusType.Self )]"
alwaystransparent = "[EqualTo_string( FocusType.GetKey, Character.GetFocus.GetKey )]"
blockoverride "disabled" {}
background = {
using = Background_Area_Dark
alpha = 0.9
}
background = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'diplomacy_lifestyle' )]"
texture = "gfx/interface/progressbars/progress_blue.dds"
alpha = 0.4
}
background = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'martial_lifestyle' )]"
texture = "gfx/interface/progressbars/progress_red.dds"
alpha = 0.4
}
background = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'stewardship_lifestyle' )]"
texture = "gfx/interface/progressbars/progress_green.dds"
alpha = 0.4
}
background = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'intrigue_lifestyle' )]"
texture = "gfx/interface/progressbars/progress_purple.dds"
alpha = 0.4
}
background = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'learning_lifestyle' )]"
texture = "gfx/interface/progressbars/progress_gray.dds"
alpha = 0.4
}
background = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'wanderer_lifestyle' )]"
texture = "gfx/interface/progressbars/progress_brown.dds"
alpha = 0.2
}
vbox = {
margin = { 10 5 }
margin_bottom = 10
spacing = 10
hbox = {
layoutpolicy_horizontal = expanding
margin_top = 3
spacing = 7
highlight_icon_lifestyle_focus = {
texture = "[FocusType.GetIcon]"
alwaystransparent = yes
size = { 35 35 }
}
text_single = {
text = "[FocusType.GetNameNoTooltip]"
layoutpolicy_horizontal = expanding
default_format = "#high"
using = Font_Size_Medium
align = nobaseline
autoresize = no
background = {
margin_left = 15
margin_right = 5
margin_top = 0
texture = "gfx/interface/component_tiles/tile_title_bg_01.dds"
spriteType = Corneredtiled
spriteborder = { 40 8 }
texture_density = 2
modify_texture = {
name = "mask"
texture = "gfx/interface/component_masks/mask_fade_horizontal.dds"
spriteType = Corneredstretched
spriteborder = { 0 0 }
blend_mode = alphamultiply
mirror = horizontal
}
}
}
text_single = {
visible = "[EqualTo_string( FocusType.GetKey, Character.GetFocus.GetKey )]"
align = right|nobaseline
text = "CURRENT_FOCUS"
default_format = "#low;italic"
margin_right = 5
}
}
text_multi = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
alwaystransparent = yes
text = "LONG_FOCUS_TEXT"
align = left
}
}
icon = {
visible = "[Not(Or(CharacterLifestyleWindow.CanSelectFocus( FocusType.Self ), EqualTo_string( FocusType.GetKey, Character.GetFocus.GetKey )))]"
size = { 100% 100% }
using = Background_Area_Dark
alpha = 0.5
}
}
}
}
}
expand = {}
}
## CENTER AREA
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin = { 20 0 }
margin_top = 15
background = {
#using = Background_Area_Dark
texture = "gfx/interface/window_lifestyles/lifestyles_tree_area_bg.dds"
margin = { 5 5 }
spriteType = Corneredtiled
spriteborder = { 200 200 }
# alpha = 0.8
# modify_texture = {
# texture = "gfx/interface/window_lifestyles/lifestyles_dark_bg_mask.dds"
# blend_mode = alphamultiply
# }
}
hbox = {
layoutpolicy_horizontal = expanding
background = {
using = Background_Frame
margin_top = -5
alpha = 0.5
}
vbox = {
visible = "[Character.IsLocalPlayer]"
margin = { 0 20 }
state = {
name = "lifestyle_tabs_refresh"
next = a
alpha = 0.5
}
state = {
name = "a"
alpha = 1
duration = 0.5
using = Animation_Curve_Default
}
widget = {
size = { 550 30 }
progressbar_lifestyle_xp = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'diplomacy_lifestyle' )]"
progresstexture = "gfx/interface/progressbars/progress_blue.dds"
noprogresstexture = "gfx/interface/progressbars/progress_blue_bg.dds"
}
progressbar_lifestyle_xp = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'martial_lifestyle' )]"
progresstexture = "gfx/interface/progressbars/progress_red.dds"
noprogresstexture = "gfx/interface/progressbars/progress_red_bg.dds"
}
progressbar_lifestyle_xp = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'stewardship_lifestyle' )]"
progresstexture = "gfx/interface/progressbars/progress_green.dds"
noprogresstexture = "gfx/interface/progressbars/progress_green_bg.dds"
}
progressbar_lifestyle_xp = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'intrigue_lifestyle' )]"
progresstexture = "gfx/interface/progressbars/progress_purple.dds"
noprogresstexture = "gfx/interface/progressbars/progress_purple_bg.dds"
}
progressbar_lifestyle_xp = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'learning_lifestyle' )]"
progresstexture = "gfx/interface/progressbars/progress_gray.dds"
noprogresstexture = "gfx/interface/progressbars/progress_gray_bg.dds"
}
progressbar_lifestyle_xp = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'wanderer_lifestyle' )]"
progresstexture = "gfx/interface/progressbars/progress_brown.dds"
noprogresstexture = "gfx/interface/progressbars/progress_brown_bg.dds"
}
text_single = {
parentanchor = right
position = { -10 -6 }
visible = "[GreaterThan_int32( Character.GetPerkPoints( Lifestyle.Self ), '(int32)0' )]"
text = "[Character.GetPerkPoints( Lifestyle.Self )]"
default_format = "#low"
max_width = 180
using = Font_Size_Big
tooltip = "LIFESTYLE_POINTS_TOOLTIP"
}
icon_lifestyle_unspent_points = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'diplomacy_lifestyle' )]"
texture = "gfx/interface/icons/lifestyles_perks/node_diplomacy.dds"
}
icon_lifestyle_unspent_points = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'martial_lifestyle' )]"
texture = "gfx/interface/icons/lifestyles_perks/node_martial.dds"
}
icon_lifestyle_unspent_points = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'stewardship_lifestyle' )]"
texture = "gfx/interface/icons/lifestyles_perks/node_stewardship.dds"
}
icon_lifestyle_unspent_points = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'intrigue_lifestyle' )]"
texture = "gfx/interface/icons/lifestyles_perks/node_intrigue.dds"
}
icon_lifestyle_unspent_points = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'learning_lifestyle' )]"
texture = "gfx/interface/icons/lifestyles_perks/node_learning.dds"
}
icon_lifestyle_unspent_points = {
visible = "[EqualTo_string( Lifestyle.GetKey, 'wanderer_lifestyle' )]"
texture = "gfx/interface/icons/lifestyles_perks/node_wanderer.dds"
}
}
hbox = {
layoutpolicy_horizontal = expanding
text_single = {
text = "EXPERIENCE"
}
text_single = {
text = "UNLOCKED_PERKS"
}
}
}
}
## Trees
hbox = {
datamodel = "[CharacterLifestyleWindow.GetPerkTrees]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_bottom = 20
spacing = 10
state = {
name = "lifestyle_tabs_refresh"
next = a
alpha = 0.5
}
state = {
name = "a"
alpha = 1
duration = 0.5
using = Animation_Curve_Default
}
item = {
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
background = {
visible = "[Not(PerkGuiTree.IsCompleted)]"
texture = "[PerkGuiTree.GetBackground]"
alpha = 0.15
modify_texture = {
texture = "gfx/interface/window_lifestyles/lifestyles_perk_tree_bg.dds"
spriteType = Corneredtiled
spriteborder = { 200 200 }
blend_mode = alphamultiply
}
}
container = {
text_label_center = {
parentanchor = top|hcenter
position = { 0 25 }
text = "[PerkGuiTree.GetName]"
default_format = "#low"
using = Font_Size_Medium
}
divider_light = {
position = { 0 65 }
size = { 100% 3 }
alpha = 0.25
}
container = {
name = "perk_tree_item_line_area" # Name used in code do not change
datamodel = "[PerkGuiTree.GetItems]"
parentanchor = hcenter
position = { 0 85 }
widget = {
name = "connection_lines"
size = { 100% 100% }
datamodel = "[PerkGuiTree.GetConnections]"
visible = "[PerkGuiTree.SetupLinesContainer( PdxGuiWidget.Self )]"
item = {
container = {
# Perks that are unlocked
line = {
visible = "[PerkGuiTree.HasUnlockedPerk( PerkLineConnection.GetChild.GetItem )]"
using = Line_Lifestyles_Unlocked
from = "[PerkLineConnection.GetLineFrom]"
to = "[PerkLineConnection.GetLineTo]"
}
# Perks that can be chosen
line = {
visible = "[And( Not( PerkGuiTree.HasUnlockedPerk( PerkLineConnection.GetChild.GetItem ) ), CharacterLifestyleWindow.CanSelectPerkIgnoreCost( PerkLineConnection.GetChild.GetItem ) )]"
using = Line_Lifestyles_CanUnlock
from = "[PerkLineConnection.GetLineFrom]"
to = "[PerkLineConnection.GetLineTo]"
}
# Perks that are unavailable
line = {
visible = "[Not( Or( PerkGuiTree.HasUnlockedPerk( PerkLineConnection.GetChild.GetItem ), CharacterLifestyleWindow.CanSelectPerkIgnoreCost( PerkLineConnection.GetChild.GetItem ) ) )]"
using = Line_Lifestyles_Unavailable
from = "[PerkLineConnection.GetLineFrom]"
to = "[PerkLineConnection.GetLineTo]"
}
}
}
}
item = {
widget = {
size = { 100 100 }
datacontext = "[PerkLineItem.GetItem]"
position = "[PerkGuiTree.GetItemPosition( Perk.Self )]"
container = {
parentanchor = center
widget = {
name = "top_pin"
visible = "[PerkLineItem.SetupTopWidget( PdxGuiWidget.Self )]"
position = { 0 -20 }
}
widget = {
name = "bottom_pin"
visible = "[PerkLineItem.SetupBottomWidget( PdxGuiWidget.Self )]"
position = { 0 -15 }
}
}
flowcontainer = {
parentanchor = top|hcenter
direction = vertical
ignoreinvisible = yes
# Normal, non-chosen perks
button_normal = {
size = { 95 75 }
visible = "[And(And( Character.IsLocalPlayer, Not( Character.HasPerk( Perk.Self ) ) ), Not(Perk.IsFinisher) )]"
onclick = "[CharacterLifestyleWindow.SelectPerk( Perk.Self )]"
enabled = "[And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid)]"
tooltipwidget = {
using = perk_tooltip_selection
}
using = tooltip_se
tooltip_offset = {30 0}
widget = {
size = { 50 50 }
parentanchor = center
alwaystransparent = yes
visible = "[And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid)]"
# animation_attention = {
# position = { 0 -22 }
# texture = "gfx/particles/glow.dds"
# }
}
highlight_icon = {
parentanchor = top|hcenter
texture = "[Perk.GetIcon]"
size = { 32 32 }
framesize = { 60 60 }
shaderfile = "gfx/FX/pdxgui_pushbutton.shader"
}
text_multi = {
visible = "[And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid)]"
parentanchor = top|hcenter
position = { 0 30 }
max_width = 115
autoresize = yes
text = "[Perk.GetNameNoTooltip( Character.Self )]"
default_format = "#high"
align = top|hcenter
background = {
using = Background_Area
margin = { 20 0 }
margin_bottom = 5
margin_top = 5
}
}
text_multi = {
visible = "[Not(And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid))]"
parentanchor = top|hcenter
position = { 0 30 }
max_width = 115
autoresize = yes
text = "[Perk.GetNameNoTooltip( Character.Self )]"
default_format = "#low"
align = top|hcenter
background = {
using = Background_Area
margin = { 20 0 }
margin_bottom = 5
margin_top = 5
}
}
}
# Normal chosen perks
widget = {
visible = "[And(Or( Not( Character.IsLocalPlayer ), Character.HasPerk( Perk.Self ) ), Not(Perk.IsFinisher))]"
size = { 95 75 }
state = {
name = _show
on_start = "[GetVariableSystem.Set( 'perk_spent', 'true' )]"
}
tooltipwidget = {
using = perk_tooltip_contents
}
using = tooltip_se
tooltip_offset = {30 0}
icon = {
parentanchor = top|hcenter
enabled = "[Character.HasPerk( Perk.Self )]"
texture = "[Perk.GetIcon]"
size = { 32 32 }
framesize = { 60 60 }
frame = "[BoolTo1And2( Character.HasPerk( Perk.Self ) )]"
}
text_multi = {
parentanchor = top|hcenter
position = { 0 32 }
max_width = 115
autoresize = yes
text = "[Perk.GetNameNoTooltip( Character.Self )]"
align = top|hcenter
background = {
using = Background_Area_Dark
margin = { 20 0 }
margin_bottom = 5
margin_top = 5
}
}
}
# Non-chosen Mastery perks
button_normal = {
datacontext = "[Perk.GetUnlockTrait]"
datacontext = "[Character.GetFaith]"
visible = "[And(And( Character.IsLocalPlayer, Not( Character.HasPerk( Perk.Self ) ) ), Perk.IsFinisher )]"
size = { 100 100 }
onclick = "[CharacterLifestyleWindow.SelectPerk( Perk.Self )]"
enabled = "[And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid)]"
gfxtype = framedbuttongfx
shaderfile = "gfx/FX/pdxgui_pushbutton.shader"
tooltipwidget = {
using = character_trait_tooltip
}
using = tooltip_se
tooltip_offset = {30 0}
highlight_icon = {
parentanchor = top|hcenter
position = { 0 -10 }
texture = "[Perk.GetIcon]"
size = { 60 60 }
glow = {
visible = "[And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid)]"
using = Color_Orange
using = Glow_Standard
block "glow_radius"
{
glow_radius = 10
}
}
using = Animation_Glow_Pulse
gfxtype = framedbuttongfx
shaderfile = "gfx/FX/pdxgui_pushbutton.shader"
}
text_multi = {
visible = "[And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid)]"
parentanchor = center
position = { 0 5 }
size = { 115 50 }
text = "[Perk.GetNameNoTooltip( Character.Self )]"
default_format = "#high"
align = center
background = {
using = Background_Area
margin_bottom = 3
margin = { 10 0 }
}
}
text_multi = {
visible = "[Not(And(CharacterLifestyleWindow.CanSelectPerk( Perk.Self ), Character.GetLifestyle.IsValid))]"
parentanchor = center
position = { 0 5 }
size = { 115 50 }
text = "[Perk.GetNameNoTooltip( Character.Self )]"
default_format = "#low"
align = center
background = {
using = Background_Area
margin_bottom = 3
margin = { 10 0 }
}
}
}
# Chosen Mastery perks
widget = {
datacontext = "[Perk.GetUnlockTrait]"
datacontext = "[Character.GetFaith]"
visible = "[And(Or( Not( Character.IsLocalPlayer ), Character.HasPerk( Perk.Self ) ), Perk.IsFinisher)]"
size = { 100 100 }
tooltipwidget = {
using = character_trait_tooltip
}
using = tooltip_se
tooltip_offset = {30 0}
icon = {
parentanchor = top|hcenter
position = { 0 -10 }
enabled = "[Character.HasPerk( Perk.Self )]"
texture = "[Perk.GetIcon]"
size = { 60 60 }
frame = "[BoolTo1And2( Character.HasPerk( Perk.Self ) )]"
}
text_multi = {
parentanchor = center
position = { 0 5 }
size = { 115 50 }
text = "[Perk.GetNameNoTooltip( Character.Self )]"
align = center
background = {
using = Background_Area
margin_bottom = 3
}
}
}
}
}
}
}
}
expand = {}
}
}
}
}
}
}
}
}
flowcontainer = {
parentanchor = bottom|left
position = { 20 -10 }
spacing = 10
direction = vertical
background = {
using = Background_Area_Dark
margin_top = 150
margin_bottom = 20
margin_right = 280
margin_left = 20
mirror = horizontal
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_corner.dds"
blend_mode = alphamultiply
}
}
# background = {
# texture = "gfx/interface/window_character/characterlist_skills_bg.dds"
# spriteType = Corneredstretched
# spriteborder = { 10 10 }
# margin = { 15 5 }
# }
# background = {
# using = Background_Area_Dark
# margin = { 10 5 }
# }
flowcontainer = {
spacing = 5
margin_left = 15
margin_right = 25
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_skills_bg.dds"
framesize = { 70 26 }
frame = 1
}
icon = {
name = "skill_icon"
size = { 35 35 }
framesize = { 60 60 }
frame = 1
texture = "gfx/interface/icons/icon_skills.dds"
}
text_single = {
name = "skill_value"
parentanchor = vcenter
text = "[Character.GetSkill( 'diplomacy' )]"
default_format = "#high"
using = Font_Size_Medium
align = nobaseline
}
}
flowcontainer = {
spacing = 5
margin_left = 15
margin_right = 25
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_skills_bg.dds"
framesize = { 70 26 }
frame = 2
}
icon = {
name = "skill_icon"
size = { 35 35 }
framesize = { 60 60 }
frame = 2
texture = "gfx/interface/icons/icon_skills.dds"
}
text_single = {
name = "skill_value"
parentanchor = vcenter
text = "[Character.GetSkill( 'martial' )]"
default_format = "#high"
using = Font_Size_Medium
align = nobaseline
}
}
flowcontainer = {
spacing = 5
margin_left = 15
margin_right = 25
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_skills_bg.dds"
framesize = { 70 26 }
frame = 3
}
icon = {
name = "skill_icon"
size = { 35 35 }
framesize = { 60 60 }
frame = 3
texture = "gfx/interface/icons/icon_skills.dds"
}
text_single = {
name = "skill_value"
parentanchor = vcenter
text = "[Character.GetSkill( 'stewardship' )]"
default_format = "#high"
using = Font_Size_Medium
align = nobaseline
}
}
flowcontainer = {
spacing = 5
margin_left = 15
margin_right = 25
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_skills_bg.dds"
framesize = { 70 26 }
frame = 4
}
icon = {
name = "skill_icon"
size = { 35 35 }
framesize = { 60 60 }
frame = 4
texture = "gfx/interface/icons/icon_skills.dds"
}
text_single = {
name = "skill_value"
parentanchor = vcenter
text = "[Character.GetSkill( 'intrigue' )]"
default_format = "#high"
using = Font_Size_Medium
align = nobaseline
}
}
flowcontainer = {
spacing = 5
margin_left = 15
margin_right = 25
background = {
name = "skill_icon_bg"
texture = "gfx/interface/window_character/character_view_skills_bg.dds"
framesize = { 70 26 }
frame = 5
}
icon = {
name = "skill_icon"
size = { 35 35 }
framesize = { 60 60 }
frame = 5
texture = "gfx/interface/icons/icon_skills.dds"
}
text_single = {
name = "skill_value"
parentanchor = vcenter
text = "[Character.GetSkill( 'learning' )]"
default_format = "#high"
using = Font_Size_Medium
align = nobaseline
}
}
}
}
types Lifestyle
{
type progressbar_lifestyle_xp = progressbar_standard {
parentanchor = vcenter
size = { 500 20 }
min = 0
max = "[IntToFloat( Lifestyle.GetXpPerLevel )]"
value = "[FixedPointToFloat( Character.GetLifestyleXp( Lifestyle.Self, '(bool)yes' ) )]"
tooltip = "LIFESTYLE_XP_TOOLTIP"
using = tooltip_below
}
type icon_lifestyle_unspent_points = icon {
# set texture when used
position = { 1 -6 }
parentanchor = right
size = { 40 40 }
framesize = { 60 60 }
frame = 2
tooltip = "LIFESTYLE_POINTS_TOOLTIP"
textbox = {
size = { 100% 100% }
align = center|nobaseline
visible = "[GreaterThan_int32( Character.GetPerkPoints( Lifestyle.Self ), '(int32)0' )]"
text = "[Character.GetPerkPoints( Lifestyle.Self )]"
default_format = "#high;weak_glow"
using = Font_Size_Big
}
textbox = {
size = { 100% 100% }
align = center|nobaseline
visible = "[Not(GreaterThan_int32( Character.GetPerkPoints( Lifestyle.Self ), '(int32)0' ))]"
text = "[Character.GetPerkPoints( Lifestyle.Self )]"
default_format = "#low;weak_glow"
using = Font_Size_Big
}
}
}