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

313 lines
7.9 KiB
Text

######################################################
################## CULTURE ADD TRADITION #############
######################################################
window = {
name = "add_tradition_window"
parentanchor = center
size = { 600 950 }
layer = windows_layer
datacontext = "[GetPlayer.GetCulture]"
using = Window_Background
using = Window_Decoration
state = {
name = _show
using = Animation_FadeIn_Quick
on_start = "[AddTraditionWindow.SetTraditionCategory( AddTraditionWindow.GetTraditionGrouping( 'realm' ).GetCategory )]"
}
state = {
name = _hide
using = Animation_FadeOut_Quick
}
vbox = {
using = Window_Margins
minimumsize = { 600 0 }
header_pattern = {
layoutpolicy_horizontal = expanding
blockoverride "header_text"
{
text = "[SelectLocalization(AddTraditionWindow.IsReplacing, 'REPLACE_TRADITION_WINDOW_TITLE', 'ADD_TRADITION_WINDOW_TITLE')]"
}
blockoverride "button_close"
{
onclick = "[AddTraditionWindow.Close]"
}
}
vbox = {
layoutpolicy_horizontal = expanding
margin = { 4 0 }
hbox = {
layoutpolicy_horizontal = expanding
margin_bottom = -4
# The parameter for GetTraditionGrouping should match the categories in the traditions script
add_tradition_category = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'realm' )]"
}
add_tradition_category = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'combat' )]"
}
add_tradition_category = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'societal' )]"
}
}
hbox = {
layoutpolicy_horizontal = expanding
margin_bottom = 5
add_tradition_category = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'ritual' )]"
}
add_tradition_category = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'regional' )]"
}
}
}
vbox = {
name = "tradition_selection"
margin = { 0 8 }
spacing = 6
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
vbox_traditions_list = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'realm' )]"
}
vbox_traditions_list = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'combat' )]"
}
vbox_traditions_list = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'societal' )]"
}
vbox_traditions_list = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'ritual' )]"
}
vbox_traditions_list = {
datacontext = "[AddTraditionWindow.GetTraditionGrouping( 'regional' )]"
}
vbox = {
name = "cost"
datacontext = "[AddTraditionWindow.GetSelectedTradition]"
visible = "[CultureTradition.IsValid]"
minimumsize = { 0 28 }
spacing = 10
tooltip = "[SelectLocalization(AddTraditionWindow.IsReplacing, 'REPLACE_TRADITION_COST_TOOLTIP', 'ADD_TRADITION_COST_TOOLTIP')]"
text_single = {
layoutpolicy_horizontal = expanding
align = center|nobaseline
text = "[SelectLocalization(AddTraditionWindow.IsReplacing, 'REPLACE_TRADITION_TOTAL_COST', 'ADD_TRADITION_TOTAL_COST')]"
default_format = "#high"
using = Font_Size_Medium
background = {
visible = "[Not( AddTraditionWindow.CanPayCost )]"
margin = { 5 0 }
using = Status_Bad
}
}
}
hbox = {
layoutpolicy_horizontal = expanding
margin = { 44 8 }
spacing = 20
button_standard= {
name = "decline_button"
text = "CANCEL_BUTTON"
onclick = [AddTraditionWindow.Close]
shortcut = "close_window"
}
button_primary = {
name = "done"
layoutpolicy_horizontal = expanding
onclick = "[AddTraditionWindow.AddTradition]"
onclick = "[AddTraditionWindow.Close]"
enabled = "[AddTraditionWindow.CanAddTradition]"
text = "[SelectLocalization(AddTraditionWindow.IsReplacing, 'REPLACE_TRADITION_EXECUTE_LABEL', 'ADD_TRADITION_EXECUTE_LABEL')]"
default_format = "#high"
tooltip = "[SelectLocalization(AddTraditionWindow.IsReplacing, 'REPLACE_TRADITION_EXECUTE_TOOLTIP', 'ADD_TRADITION_EXECUTE_TOOLTIP')]"
warning_icon = {
visible = "[Culture.IsReforming]"
parentanchor = vcenter|right
size = { 25 25 }
position = { -3 0 }
alwaystransparent = yes
}
}
}
}
}
}
types CultureAddTraditionTypes
{
type widget_tradition_item = widget {
size = { 240 180 }
tooltipwidget = {
using = culture_tradition_tooltip_clickable
blockoverride "above_description_text" {
text = "[AddTraditionWindow.GetPickTraditionBlockers( CultureTradition.Self )]"
}
}
vbox = {
button_standard = {
size = { 220 120 }
onclick = "[AddTraditionWindow.SetSelectedTradition( CultureTradition.Self )]"
enabled = "[AddTraditionWindow.CanPickTradition( CultureTradition.Self )]"
widget_tradition_icon = {
block "icon_size" {
size = { 220 120 }
}
}
selection_glow = {
visible = "[ObjectsEqual( AddTraditionWindow.GetSelectedTradition, CultureTradition.Self )]"
}
}
hbox = {
margin_top = 4
text_label_center = {
name = "name"
text = "[CultureTradition.GetNameNoTooltip]"
maximumsize = { 180 44 }
multiline = yes
align = center|nobaseline
using = Font_Size_Medium
}
widget = {
size = { 0 30 }
allow_outside = yes
warning_icon = {
visible = "[Not( AddTraditionWindow.CanPickTradition( CultureTradition.Self ) )]"
position = { 6 -2 }
widgetanchor = left
size = { 30 30 }
tooltip = "[AddTraditionWindow.GetPickTraditionBlockers( CultureTradition.Self )]"
}
}
}
hbox = {
expand = {}
spacing = 20
text_label_center = {
name = "cost"
text = "[AddTraditionWindow.GetTraditionCost( CultureTradition.Self )]"
maximumsize = { 130 44 }
margin_left = 20
multiline = no
align = center
using = Font_Size_Small
tooltip = "[AddTraditionWindow.GetTraditionCostBreakdown( CultureTradition.Self )]"
using = tooltip_se
background = {
visible = "[Not( AddTraditionWindow.CanBuyTradition(CultureTradition.Self) )]"
margin_right = 15
margin_left = -13
margin_bottom = -1
using = Status_Bad
}
}
text_label_left = {
name = "time"
text = "[SelectLocalization(AddTraditionWindow.IsReplacing, Culture.GetTotalReformTimeForReplacingTradition, Culture.GetTotalReformTimeForNewTradition)]"
maximumsize = { 130 44 }
multiline = yes
align = center
using = Font_Size_Small
tooltip = "[SelectLocalization(AddTraditionWindow.IsReplacing, 'ESTABLISHMENT_TIME_TOOLTIP_REPLACING_TRADITION', 'ESTABLISHMENT_TIME_TOOLTIP_NEW_TRADITION')]"
using = tooltip_se
}
}
}
}
type add_tradition_category = button_tab {
layoutpolicy_horizontal = expanding
onclick = "[AddTraditionWindow.SetTraditionCategory( TraditionGrouping.GetCategory )]"
down = "[AddTraditionWindow.HasTraditionCategory( TraditionGrouping.GetCategory )]"
hbox = {
text_single = {
layoutpolicy_horizontal = expanding
align = center
text = "[TraditionGrouping.GetGroupingName]"
default_format = "#low"
}
text_single = {
align = center
text = "TRADITION_CATEGORY_COUNT"
default_format = "#low"
margin_right = 15
min_width = 30
}
}
}
# Needs a wrapping vbox as otherwise the blockoverride for the scrollbox_content doesn't work
type vbox_traditions_list = vbox {
visible = "[AddTraditionWindow.HasTraditionCategory( TraditionGrouping.GetCategory )]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
using = Animation_Tab_Switch
scrollbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
blockoverride "scrollbox_content"
{
fixedgridbox = {
datamodel = "[TraditionGrouping.GetPossibleTraditions]"
flipdirection = yes
addcolumn = 240
addrow = 200
datamodel_wrap = 2
item = {
widget_tradition_item = {
}
}
}
}
}
}
}