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

1807 lines
45 KiB
Text

######################################################
##################### STRUGGLE #######################
######################################################
window = {
name = "struggle_window"
widgetid = "struggle_window"
datacontext = "[StruggleWindow.GetStruggle]"
datacontext = "[GetVariableSystem]"
datacontext = "[GetPlayer]"
parentanchor = top|right
layer = windows_layer
movable = no
allow_outside = yes
using = Window_Background
using = sound_struggle_panel
size = { 687 100% }
state = {
name = _show
on_start = "[PdxGuiTriggerAllAnimations('struggle_appear')]"
using = Animation_FadeIn_Quick
using = Sound_WindowShow_Standard
position = { 42 0 }
on_start = "[GetVariableSystem.Clear( 'showing_ending_decisions' )]"
on_start = "[GetVariableSystem.Clear( 'struggle_ending_phase_details' )]"
}
state = {
name = _hide
on_finish = "[PdxGuiTriggerAllAnimations('struggle_hide')]"
using = Animation_FadeOut_Quick
using = Sound_WindowHide_Standard
position = { 75 0 }
}
margin_widget = {
size = { 100% 100% }
margin = { -10 26 }
widget = {
size = { 100% 100% }
state = {
name = struggle_appear
delay = 0.1
using = Animation_Curve_Default
alpha = 1
duration = 0.8
}
state = {
name = struggle_hide
using = Animation_Curve_Default
alpha = 0
}
background = {
name = "decorative_background"
margin_left = -40
margin_bottom = -410
texture = "[Struggle.GetCurrentPhase.GetBackground]"
using = Mask_Rough_Edges
fittype = centercrop
alpha = 0.9
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical.dds"
blend_mode = alphamultiply
}
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical_up_dark.dds"
blend_mode = normal
mirror = vertical
alpha = 0.6
}
}
###Animated Shine for when the Decision is Possible
icon = {
visible = "[StruggleWindow.HasPossibleEndingDecision]"
texture = "gfx/interface/component_masks/mask_glow.dds"
size = { 400 200 }
alpha = 0
color = { 0.917 0.8 0.505 1 }
parentanchor = top|hcenter
position = {0 170}
modify_texture = {
name = "glow_1"
texture = "gfx/interface/component_masks/mask_glow.dds"
alpha = 0
blend_mode = alphamultiply
}
state = {
name = active_ending_decision
trigger_when = "[StruggleWindow.HasPossibleEndingDecision]"
next = active_ending_decision_rotate1
using = Animation_FadeIn_Standard
bezier = { 0.5 0 0.5 1 }
alpha = 0.4
modify_texture = {
name = "glow_1"
rotate_uv = 0
alpha = 0.3
}
}
state = {
name = active_ending_decision_rotate1
next = active_ending_decision_rotate2
using = Animation_Curve_Default
alpha = 0.3
duration = 13
modify_texture = {
name = "glow_1"
rotate_uv = 360
alpha = 0.4
}
}
state = {
name = active_ending_decision_rotate2
next = active_ending_decision_rotate1
using = Animation_Curve_Default
alpha = 0.4
duration = 13
modify_texture = {
name = "glow_1"
rotate_uv = -1
alpha = 0.3
}
}
state = {
name = inactive_ending_decision
using = Animation_FadeIn_Standard
bezier = { 0.5 0 0.5 1 }
alpha = 0
modify_texture = {
name = "glow_1"
alpha = 0
}
}
}
### Banner for the current phase
widget = {
size = { 91% 110 }
parentanchor = top|hcenter
position = { 4 125 }
datacontext = "[Struggle.GetCurrentPhase]"
struggle_phase_based_widget = {
visible = "[Struggle.IsInterloperCharacter(GetPlayer)]"
blockoverride "point_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/point_based_phase_panel_interloper.dds"
}
}
blockoverride "time_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/time_based_phase_panel_interloper.dds"
}
}
}
struggle_phase_based_widget = {
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
blockoverride "point_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/point_based_phase_panel_involved.dds"
}
}
blockoverride "time_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/time_based_phase_panel_involved.dds"
}
}
}
struggle_phase_based_widget = {
visible = "[Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
blockoverride "point_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/point_based_phase_panel_interloper.dds"
}
}
blockoverride "time_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/time_based_phase_panel_interloper.dds"
}
}
}
}
default_struggle_phase_banner = {
blockoverride "title_visibiliy" {
visible = no
}
blockoverride "icon_visibiliy" {
visible = no
}
datacontext = [StruggleWindow.GetStruggle.GetCurrentPhase]
datacontext = [GetPlayer]
position = { 60 100}
size = { 125 145 }
}
vbox = {
margin_left = 38
margin_right = 35
margin_top = 18
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
vbox = { # participants
name = "struggle_participants"
layoutpolicy_horizontal = expanding
spacing = 6
margin_right = 10
header_pattern = {
layoutpolicy_horizontal = expanding
blockoverride "header_text"
{
text = "[StruggleWindow.GetStruggle.GetNameNoTooltip]"
}
blockoverride "button_close"
{
onclick = "[StruggleWindow.Close]"
}
blockoverride "button_back"
{
onclick = "[OpenGameView( 'situations' )]"
}
}
vbox = {
margin_top = -15
spacing = 5
text_single = {
text = "[Struggle.GetPlayerInvolvementDesc]"
max_width = 650
}
button_standard = {
name = "struggle_involvement_button_tutorial_uses_this"
widgetid = "struggle_involvement_button_tutorial_uses_this"
size = { 230 32 }
minimumsize = { 200 0 }
onclick = "[ToggleGameViewData('struggle_involvement', Struggle.GetID)]"
text = "STRUGGLE_INVOLVEMENT_BUTTON"
}
}
}
vbox = { # Current Phase area
name = "current_phase_area"
margin_top= 18
layoutpolicy_horizontal = expanding
state = {
name = struggle_appear
delay = 0.1
using = Animation_Curve_Default
alpha = 1
duration = 0.8
}
state = {
name = struggle_hide
using = Animation_Curve_Default
alpha = 0
}
vbox = {
name = "current_phase_widget"
datacontext = [StruggleWindow.GetStruggle.GetCurrentPhase]
datacontext = [GetPlayer]
allow_outside = yes
layoutpolicy_horizontal = expanding
state = {
name = active_ending_decision
trigger_when = "[StruggleWindow.HasPossibleEndingDecision]"
using = Animation_FadeIn_Standard
bezier = { 0.5 0 0.5 1 }
}
state = {
name = inactive_ending_decision
using = Animation_FadeIn_Standard
bezier = { 0.5 0 0.5 1 }
}
vbox = {
layoutpolicy_horizontal = expanding
spacing = 5
hbox = {
layoutpolicy_horizontal = expanding
expand = {
layoutpolicy_horizontal = expanding
}
hbox = {
name = "current_phase_header"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { 250 114 }
tooltipwidget = {
using = struggle_tooltip_light
}
container = {
name = "icon"
icon = {
size = { 74 74 }
visible = "[Struggle.IsInterloperCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_01.dds"
}
icon = {
size = { 74 74 }
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_02.dds"
}
icon = {
size = { 72 72 }
visible = "[Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
size = { 54 54 }
position = { 0 -2 }
texture = "[StrugglePhase.GetIcon]"
}
widget = {
position = { 64 14 }
visible = "[Struggle.IsInTransitionPhase]"
icon = {
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
parentanchor = center
size = { 40 40 }
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
size = { 35 35 }
texture = "gfx/interface/icons/icon_time.dds"
}
}
}
spacer = {
size = { 5 10 }
}
vbox = {
name = "text"
margin_bottom = 8
margin_left = 30
layoutpolicy_horizontal = expanding
minimumsize = { 170 1 }
text_single = {
layoutpolicy_horizontal = expanding
text = "CURRENT_PHASE"
max_width = 170
using = Font_Size_Medium
margin_bottom = -6
}
text_single = {
layoutpolicy_horizontal = expanding
text = "[StruggleWindow.GetStruggle.GetCurrentPhase.GetNameNoTooltip]"
max_width = 170
using = Font_Size_Big
default_format = "#high"
}
}
}
spacer = {
size = { 45 10 }
}
vbox = {
name = "current_phase_effects"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
maximumsize = { 125 1 }
text_label_center = {
text = "PHASE_EFFECTS_HEADER"
default_format = "#high"
}
hbox = {
name = "phase icons"
layoutpolicy_vertical = expanding
spacing = 6
container = {
name = "war_effect"
tooltipwidget = phase_effect_tooltip_war
icon = {
size = { 52 52 }
visible = "[Struggle.IsInterloperCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_01.dds"
}
icon = {
size = { 52 52 }
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_02.dds"
}
icon = {
size = { 52 52 }
visible = "[Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
position = { 0 -2 }
size = { 36 36 }
texture = "gfx/interface/icons/struggle_effects/war.dds"
}
}
container = {
name = "culture_effect"
tooltipwidget = phase_effect_tooltip_culture
icon = {
size = { 52 52 }
visible = "[Struggle.IsInterloperCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_01.dds"
}
icon = {
size = { 52 52 }
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_02.dds"
}
icon = {
size = { 52 52 }
visible = "[Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
position = { 0 -2 }
size = { 36 36 }
texture = "gfx/interface/icons/struggle_effects/culture.dds"
}
}
container = {
name = "faith_effect"
tooltipwidget = phase_effect_tooltip_faith
icon = {
size = { 52 52 }
visible = "[Struggle.IsInterloperCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_01.dds"
}
icon = {
size = { 52 52 }
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_02.dds"
}
icon = {
size = { 52 52 }
visible = "[Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
position = { 0 -2 }
size = { 36 36 }
texture = "gfx/interface/icons/struggle_effects/faith.dds"
}
}
container = {
name = "other_effect"
tooltipwidget = phase_effect_tooltip_other
icon = {
size = { 52 52 }
visible = "[Struggle.IsInterloperCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_01.dds"
}
icon = {
size = { 52 52 }
visible = "[Struggle.IsInvolvedCharacter(GetPlayer)]"
texture = "gfx/interface/icons/struggle_banners/icon_background_02.dds"
}
icon = {
size = { 52 52 }
visible = "[Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
size = { 36 36 }
texture = "gfx/interface/icons/struggle_effects/other.dds"
}
}
}
}
expand = {
layoutpolicy_horizontal = expanding
}
}
hbox = {
margin_top = 15
layoutpolicy_horizontal = expanding
expand = {
layoutpolicy_horizontal = expanding
}
ending_decision_button = {
layoutpolicy_horizontal = expanding
visible = "[GreaterThanOrEqualTo_int32(GetDataModelSize(StruggleWindow.GetEndingDecisions), '(int32)2')]"
tooltip = "ENDING_DECISION_MULTIPLE"
blockoverride onclick {
onclick = "[VariableSystem.Toggle('showing_ending_decisions')]"
}
}
ending_decision_button = {
layoutpolicy_horizontal = expanding
visible = "[LessThanOrEqualTo_int32(GetDataModelSize(StruggleWindow.GetEndingDecisions), '(int32)1')]"
tooltipwidget = {
decision_tooltip = {
datacontext = "[StruggleWindow.GetTopDecision]"
}
}
}
expand = {
layoutpolicy_horizontal = expanding
}
}
hbox = { # next phase info
name = "next_phase_info"
visible = "[Not( VariableSystem.Exists('showing_ending_decisions') )]"
layoutpolicy_horizontal = expanding
maximumsize = {550 1}
state = {
name = _show
using = Animation_FadeIn_Quick
}
state = {
name = struggle_appear
delay = 0.3
using = Animation_Curve_Default
alpha = 1
duration = 0.5
}
state = {
name = struggle_hide
using = Animation_Curve_Default
alpha = 0
}
vbox = { # Phase progressing
visible = "[Not( Struggle.IsInTransitionPhase )]"
margin= {20 10}
spacing = 5
text_single = {
text = STRUGGLE_NEXT_PHASE_PROGRESS_LABEL
max_width = 650
using = Font_Size_Medium
autoresize = yes
}
text_single = {
text = STRUGGLE_NEXT_PHASE_PROGRESS_DESC
max_width = 500
default_format = "#low;italic"
using = Font_Size_Small
}
expand = {}
}
vbox = { # In phase transition
visible = "[Struggle.IsInTransitionPhase]"
margin_top = 10
spacing = 5
text_single = {
text = STRUGGLE_NEXT_PHASE_TRANSITION_LABEL
max_width = 650
using = Font_Size_Medium
}
text_single = {
text = STRUGGLE_NEXT_PHASE_TRANSITION_DESC
max_width = 500
default_format = "#low;italic"
using = Font_Size_Small
}
expand = {}
}
background = {
using = Background_Area_Dark
}
}
}
}
}
vbox = {
name = "next_phase_area_tutorial_uses_this"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
visible = "[Not( VariableSystem.Exists('showing_ending_decisions') )]"
margin_top = -5
widget = { # Phases
layoutpolicy_horizontal = expanding
size = { 200 186 }
scissor = yes
state = {
name = struggle_appear
delay = 0.1
using = Animation_Curve_Default
alpha = 1
duration = 0.8
}
state = {
name = struggle_hide
using = Animation_Curve_Default
alpha = 0
}
vbox = {
name = "next_phase_area"
flowcontainer = {
name = "next_phase_widgets"
datamodel = "[StruggleWindow.GetNextPhases]"
item = {
next_phase_banner = {}
}
}
}
}
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_top = 10
visible = "[Not( VariableSystem.Exists('showing_ending_decisions') )]"
datacontext = "[StruggleWindow.GetSelectedPhase]"
background = {
using = Background_Area_Dark
alpha = 0.5
}
hbox = {
visible = "[StrugglePhase.IsContentVisible( GetDefine( 'NStruggle', 'ENDING_PHASE_WIDGET_CONTENT' ) )]"
spacing = 3
state = {
name = _show
using = Animation_FadeIn_Quick
}
state = {
name = _hide
using = Animation_FadeOut_Quick
on_start = "[GetVariableSystem.Clear( 'struggle_ending_phase_details' )]"
}
layoutpolicy_horizontal = expanding
max_width = 580
margin = {15 10}
background = {
using = Background_Area_Light
tintcolor = {0.8 0.5 0.5 2.0}
margin = { -1 -1 }
}
background = {
using = Background_Frame
tintcolor = {0.8 0.5 0.5 2.0}
}
icon = {
size = {30 30 }
texture = "gfx/interface/icons/struggle_types/ending_phase_icon.dds"
}
text_single = {
text = "STRUGGLE_ENDING_LABEL"
align = nobaseline
}
expand = {
layoutpolicy_horizontal = expanding
}
button_standard = {
layoutpolicy_horizontal = expanding
text = "STRUGGLE_ENDING_EFFECTS_BUTTON"
onclick = "[VariableSystem.Toggle('struggle_ending_phase_details')]"
}
}
vbox = { # catalyst info
name = "catalyst_information_area"
visible = "[Not( VariableSystem.Exists('showing_ending_decisions') )]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
state = {
name = "catalyst_refresh"
using = Animation_Refresh_FadeOut
}
state = {
using = Animation_Refresh_FadeIn
}
state = {
name = struggle_appear
delay = 0.5
using = Animation_Curve_Default
alpha = 1
duration = 0.4
}
state = {
name = struggle_hide
using = Animation_Curve_Default
alpha = 0
}
spacer = {
size = { 0 5 }
}
text_label_center = {
text = "PHASE_CATALYST_DESCRIPTION_HEADER"
max_width = 560
fontsize = 18
}
text_single = {
text = "PHASE_CATALYST_DESCRIPTION_HEADER_INFO"
max_width = 560
}
spacer = {
size = { 0 15 }
}
scrollbox = {
size = { 610 270 }
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
blockoverride "scrollbox_background" {}
blockoverride "scrollbox_background_fade" {}
blockoverride "scrollbox_margins" {}
blockoverride "scrollbox_content"
{
vbox = {
name = "catalyst_entries"
datamodel = "[StruggleWindow.GetCatalystsForSelectedPhase]"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
margin_left = 10
margin_right = 15
maximumsize = { 1000 50 }
item = {
hbox = {
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
widget = {
size = { 60 55}
background = {
using = Background_Area_Dark
using = Color_Green
alpha = 0.1
margin_left = 4
margin_right = 6
}
background = {
using = Background_Frame
using = Color_Green
alpha = 0.3
margin_left = 4
margin_right = 6
}
hbox = {
layoutpolicy_horizontal = expanding
icon = {
size = { 25 25 }
texture = "[StruggleWindow.GetSelectedPhase.GetIcon]"
}
text_single = {
text = "[CatalystEntry.GetWorth|+=]"
align = nobaseline
}
}
}
text_multi = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
text = "PHASE_CATALYST_DESCRIPTION_ENTRY"
autoresize = no
align = left|nobaseline
max_width = 520
margin = { 10 5 }
}
background = {
using = Background_Area_Dark
}
widget = {
size = { 50 60 }
background = {
visible = "[GreaterThan_int32( Struggle.GetNumCompletionsOfCatalystForPhase( StruggleWindow.GetSelectedPhase, CatalystEntry.GetCatalyst ), '(int32)0' )]"
using = Background_Frame
color = { 0.4 0.603 0.298 1 }
alpha = 0.6
}
background = {
visible = "[GreaterThan_int32( Struggle.GetNumCompletionsOfCatalystForPhase( StruggleWindow.GetSelectedPhase, CatalystEntry.GetCatalyst ), '(int32)0' )]"
using = Background_Area
color = { 0.4 0.603 0.298 1 }
alpha = 0.1
}
background = {
visible = "[EqualTo_int32( Struggle.GetNumCompletionsOfCatalystForPhase( StruggleWindow.GetSelectedPhase, CatalystEntry.GetCatalyst ), '(int32)0' )]"
using = Background_Frame
using = Color_Grey
alpha = 0.4
}
background = {
visible = "[EqualTo_int32( Struggle.GetNumCompletionsOfCatalystForPhase( StruggleWindow.GetSelectedPhase, CatalystEntry.GetCatalyst ), '(int32)0' )]"
using = Background_Area
using = Color_Grey
alpha = 0.1
}
text_single = {
parentanchor = center
align = nobaseline
text = "PHASE_CATALYST_COMPLETIONS"
}
}
}
}
}
}
}
expand = {
layoutpolicy_vertical = expanding
}
}
}
}
scrollbox = {
size = { -1 320 }
visible = "[VariableSystem.Exists('showing_ending_decisions')]"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
blockoverride "scrollbox_content"
{
vbox = { # Ending Decisions
name = "ending_decision_area_tutorial_uses_this"
widgetid = "ending_decision_area_tutorial_uses_this"
layoutpolicy_vertical = expanding
layoutpolicy_horizontal = expanding
vbox = {
name = "next_phase_area"
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
margin_top = 15
margin_bottom = 15
spacing = 20
background = {
using = Background_Area
}
background = {
using = Background_Area
margin_bottom = -435
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical.dds"
blend_mode = alphamultiply
}
}
vbox = {
layoutpolicy_horizontal = expanding
hbox = {
layoutpolicy_horizontal = expanding
margin_right = 20
text_label_center = {
datacontext = "[Struggle.GetCurrentPhase]"
layoutpolicy_horizontal = expanding
text = "ENDING_DECISION_AREA_HEADER"
align = center
autoresize = yes
using = Font_Size_Medium
max_width = 580
}
button_close = {
onclick = "[VariableSystem.Toggle('showing_ending_decisions')]"
}
}
}
vbox = {
layoutpolicy_horizontal = expanding
visible = "[GreaterThanOrEqualTo_int32(GetDataModelSize(StruggleWindow.GetEndingPhases), '(int32)1')]"
spacing = 10
text_label_center= {
text = "ENDING_PHASE_AREA_LABEL"
layoutpolicy_horizontal = expanding
align = center
autoresize = yes
max_width = 580
}
hbox = {
spacing = 20
datamodel = "[StruggleWindow.GetEndingPhases]"
background = {
using = Background_Area_Dark
alpha = 0.7
margin = { 50 -30 }
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_horizontal_middle_thick.dds"
blend_mode = alphaMultiply
}
}
item = {
struggle_ending_phase_banner = {
blockoverride "banner_position" {
position = { 0 0 }
}
blockoverride "icon_position" {
position = { 0 10 }
}
}
}
}
}
vbox = {
visible = "[GreaterThanOrEqualTo_int32(GetDataModelSize(StruggleWindow.GetEndingDecisions), '(int32)1')]"
spacing = 10
text_label_center= {
text = "ENDING_DECISION_AREA_LABEL"
layoutpolicy_horizontal = expanding
align = center
autoresize = yes
max_width = 580
}
text_single = {
text = "ENDING_DECISION_AREA_DESCRIPTION"
multiline = yes
align = center
autoresize = yes
max_width = 580
margin_bottom = 15
}
fixedgridbox = {
name = "ending_decisions"
datamodel = "[StruggleWindow.GetEndingDecisions]"
addcolumn = 190
addrow = 300
maxhorizontalslots = 3
flipdirection = yes
item = {
button_standard_clean = {
visible = "[Decision.IsShownForPlayer]"
size = { 180 300 }
onclick = "[StruggleWindow.OnEndingDecisionClick(Decision.Self)]"
tooltipwidget = {
decision_tooltip = {}
}
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
background = {
name = "decision_background"
texture = "[Decision.GetExtraPicture]"
using = Mask_Rough_Edges
fittype = centercrop
alpha = "[Select_float(Decision.IsPossibleForPlayer, '(float)1', '(float)0.4')]"
margin = { -1 -1 }
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical.dds"
blend_mode = alphamultiply
translate_uv = { 0 -0.1 }
}
}
hbox = {
visible = "[Not(Decision.IsPossibleForPlayer)]"
layoutpolicy_horizontal = expanding
margin = { 0 5 }
warning_icon = {
size = { 30 30 }
name = "not_possible"
}
background = {
using = Background_Area_Dark
}
}
expand = {}
hbox = {
layoutpolicy_horizontal = growing
background = {
using = Background_Area_Dark
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical.dds"
blend_mode = alphamultiply
mirror = vertical
}
}
background = {
texture ="gfx/interface/skinned/mask_pattern.dds"
texture_density = 3
spriteType = Corneredtiled
color = { 0.6 0.7 0.65 0.2 }
alpha = 0.7
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical_up.dds"
blend_mode = alphamultiply
}
}
text_single = {
visible = "[Decision.IsPossibleForPlayer]"
max_width = 170
margin = { 0 15 }
text = "[Decision.GetTitleForPlayer]"
default_format = "#clickable"
align = center
}
text_single = {
visible = "[Not(Decision.IsPossibleForPlayer)]"
max_width = 170
margin = { 0 15 }
text = "[Decision.GetTitleForPlayer]"
default_format = "#low"
align = center
}
}
}
}
}
}
}
expand = {
layoutpolicy_vertical = expanding
}
}
}
}
}
}
}
}
struggle_mini_map_mode = {}
window_ending_phase_effects = {}
}
types Struggle
{
type next_phase_banner = container {
button = {
size = { 148 160 }
position = { 0 26 }
onclick = "[StruggleWindow.SetSelectedPhase(StrugglePhase.Self)]"
onclick = "[DefaultOnStrugglePhaseClick(Struggle.GetID, StrugglePhase.Self)]"
onclick = "[PdxGuiTriggerAllAnimations('catalyst_refresh')]"
enabled = "[Or( Not( Struggle.IsInTransitionPhase ), ObjectsEqual( StrugglePhase.Self, Struggle.GetNextPhase ) )]"
tooltipwidget = {
struggle_phase_tooltip = {}
}
widget = {
visible = "[Not( VariableSystem.Exists('showing_ending_decisions') )]"
size = { 46 60 }
position = { 0 -27 }
parentanchor = hcenter|top
background = {
using = Background_Area_Dark
}
}
background = {
visible = "[ObjectsEqual(StruggleWindow.GetSelectedPhase, StrugglePhase.Self)]"
using = Background_Area_Dark
alpha = 0.6
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_vertical_up.dds"
blend_mode = alphamultiply
alpha = 1
}
}
default_struggle_phase_banner = {
blockoverride "default_point_content" {
container = {
parentanchor = center
position = { 0 30 }
current_struggle_phase_progress = { }
}
}
blockoverride "default_time_content" {
container = {
parentanchor = center
position = { 0 30 }
current_struggle_phase_progress = { }
}
}
blockoverride "default_ending_content" {
container = {
parentanchor = center
position = { 0 30 }
current_struggle_phase_progress = { }
}
}
icon = {
name = "arrow"
visible = "[ObjectsEqual(Struggle.GetCurrentLeadingPhase, StrugglePhase.Self)]"
parentanchor = center
texture = "gfx/interface/window_struggle/arrow.dds"
size = { 30 18 }
position = { -1 -90 }
allow_outside = yes
}
icon = {
name = "funnel_right"
visible = "[ObjectsEqual(StruggleWindow.GetSelectedPhase, StrugglePhase.Self)]"
parentanchor = center
texture = "gfx/interface/window_struggle/funnel_divider.dds"
size = { 322 100 }
position = { 225 33 }
using = Color_Blue
alpha = 0.4
}
icon = {
name = "funnel_left"
visible = "[ObjectsEqual(StruggleWindow.GetSelectedPhase, StrugglePhase.Self)]"
parentanchor = center
mirror = horizontal
texture = "gfx/interface/window_struggle/funnel_divider.dds"
size = { 322 100 }
position = { -225 33 }
using = Color_Grey
alpha = 0.4
}
}
}
}
type struggle_phase_based_widget = widget {
block "size" {
size = { 100% 100% }
}
widget = {
size = { 100% 100% }
visible = "[StrugglePhase.IsContentVisible(GetDefine( 'NStruggle', 'POINT_BASED_PHASE_WIDGET_CONTENT' ))]"
block "point_based_widget_content" {}
}
widget = {
size = { 100% 100% }
visible = "[StrugglePhase.IsContentVisible(GetDefine( 'NStruggle', 'TIME_BASED_PHASE_WIDGET_CONTENT' ))]"
block "time_based_widget_content" {}
}
widget = {
size = { 100% 100% }
visible = "[StrugglePhase.IsContentVisible(GetDefine( 'NStruggle', 'ENDING_PHASE_WIDGET_CONTENT' ))]"
block "ending_widget_content" {}
}
}
type current_struggle_phase_based_widget = widget {
block "size" {
size = { 100% 100% }
}
widget = {
size = { 100% 100% }
visible = "[Struggle.GetCurrentPhase.IsContentVisible(GetDefine( 'NStruggle', 'POINT_BASED_PHASE_WIDGET_CONTENT' ))]"
block "point_based_widget_content" {}
}
widget = {
size = { 100% 100% }
visible = "[Struggle.GetCurrentPhase.IsContentVisible(GetDefine( 'NStruggle', 'TIME_BASED_PHASE_WIDGET_CONTENT' ))]"
block "time_based_widget_content" {}
}
widget = {
size = { 100% 100% }
visible = "[Struggle.GetCurrentPhase.IsContentVisible(GetDefine( 'NStruggle', 'ENDING_PHASE_WIDGET_CONTENT' ))]"
block "ending_widget_content" {}
}
}
type struggle_phase_based_banner = widget {
size = { 100% 100% }
struggle_phase_based_widget = {
blockoverride "point_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/current_phase_point_based_phase.dds"
block "current_state_background_texture" { }
}
block "point_based_banner_content" {}
}
blockoverride "time_based_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/current_phase_time_based_phase.dds"
block "current_state_background_texture" { }
}
block "timed_based_banner_content" {}
}
blockoverride "ending_widget_content" {
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/current_phase_ending_phase.dds"
block "current_state_background_texture" {}
}
widget = {
size = { 100% 100% }
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/next_phase_ending_fire_01.dds"
alpha = 0.2
state = {
trigger_on_create = yes
name = a
next = b
using = Animation_Curve_Default
duration = 1
alpha = 0.2
}
state = {
name = b
next = a
using = Animation_Curve_Default
duration = 1
alpha = 0
}
}
icon = {
size = { 100% 100% }
texture = "gfx/interface/window_struggle/next_phase_ending_fire_02.dds"
alpha = 0
state = {
trigger_on_create = yes
name = a
next = b
using = Animation_Curve_Default
duration = 1
alpha = 0
}
state = {
name = b
next = a
using = Animation_Curve_Default
duration = 1
alpha = 0.2
}
}
}
block "ending_banner_content" {}
}
}
widget = {
parentanchor = center
size = { 100% 100% }
text_single = {
block "title_visibiliy" {}
parentanchor = center
position = { 0 -46 }
text = "[StrugglePhase.GetNameNoTooltip]"
default_format = "#high"
}
container = {
parentanchor = center
block "icon_position" {}
block "icon_visibiliy" {}
icon = {
size = { 65 65 }
texture = "gfx/interface/icons/struggle_banners/icon_background_dark.dds"
}
icon = {
parentanchor = center
position = { 0 -1 }
size = { 45 45 }
texture = "[StrugglePhase.GetIcon]"
}
}
}
}
type default_struggle_phase_banner = struggle_phase_based_banner {
blockoverride "current_state_background_texture" {
modify_texture = {
visible = "[And(ObjectsEqual(StruggleWindow.GetSelectedPhase, StrugglePhase.Self), Not(VariableSystem.Exists('showing_ending_decisions')))]"
texture = "gfx/interface/colors/white.dds"
alpha = 0.4
blend_mode = overlay
}
}
blockoverride "point_based_banner_content" {
block "default_point_content" {}
icon = {
size = { 21 21 }
parentanchor = top|hcenter
position = { 0 7}
texture = "gfx/interface/icons/struggle_types/point_based_phase_icon.dds"
}
}
blockoverride "timed_based_banner_content" {
block "default_time_content" {}
icon = {
size = { 24 24 }
parentanchor = top|hcenter
position = { 0 }
texture = "gfx/interface/icons/struggle_types/time_based_phase_icon.dds"
}
}
blockoverride "ending_banner_content" {
block "default_ending_content" {}
icon = {
size = { 23 23 }
parentanchor = top|hcenter
position = { 0 4}
texture = "gfx/interface/icons/struggle_types/ending_phase_icon.dds"
}
}
}
type current_struggle_phase_progress = current_struggle_phase_based_widget {
blockoverride "point_based_widget_content" {
progressbar_standard = {
visible = "[ObjectsEqual(Struggle.GetCurrentLeadingPhase, StrugglePhase.Self)]"
parentanchor = center
size = { 80 12 }
value = "[CurrentAndMaxToProgressbarValueInt32(Struggle.GetPhaseValue(StrugglePhase.Self), Struggle.GetPhaseDurationValue)]"
progresstexture = "gfx/interface/progressbars/progress_orange.dds"
}
progressbar_standard = {
visible = "[Not(ObjectsEqual(Struggle.GetCurrentLeadingPhase, StrugglePhase.Self))]"
parentanchor = center
size = { 80 12 }
value = "[CurrentAndMaxToProgressbarValueInt32(Struggle.GetPhaseValue(StrugglePhase.Self), Struggle.GetPhaseDurationValue)]"
progresstexture = "gfx/interface/progressbars/progress_grandeur_increase.dds"
}
text_single = {
parentanchor = center
position = { 0 10 }
text = "POINT_BASED_PHASE_VALUE"
default_format = "#high"
}
}
blockoverride "time_based_widget_content" {
text_single = {
parentanchor = center
position = { 0 10 }
text = "TIME_BASED_PHASE_VALUE"
default_format = "#high"
}
}
}
### Ending Phase Banner
type struggle_ending_phase_banner = container {
button = {
size = { 148 160 }
block "banner_position" {
position = { 0 26 }
}
tooltipwidget = {
struggle_phase_tooltip = {}
}
default_struggle_phase_banner = { }
}
}
type ending_decision_button = button_primary {
name = "end_struggle_button"
enabled = "[GreaterThan_int32(GetDataModelSize(StruggleWindow.GetEndingDecisions), '(int32)0')]"
size = {100 60 }
block onclick {}
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_ending_decision_view"
text_single = {
parentanchor = center
position = { 0 -15 }
text = "[SelectLocalization(Or(GreaterThan_int32(GetDataModelSize(StruggleWindow.GetEndingDecisions), '(int32)1'),GreaterThan_int32(GetDataModelSize(StruggleWindow.GetEndingPhases), '(int32)1')), 'ENDING_DECISION_BUTTON_LABEL_MULTIPLE', 'ENDING_DECISION_BUTTON_LABEL_SINGLE')]"
max_width = 230
using = Font_Size_Medium
default_format = "#clickable"
alwaystransparent = yes
}
text_single = {
visible = "[And( StruggleWindow.HasPossibleEndingDecision, Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) )]"
parentanchor = center
position = { 0 8 }
max_width = 180
text = "ENDING_DECISION_AVAILABLE"
default_format = "#clickable"
alwaystransparent = yes
}
text_single = {
visible = "[Or( Not( StruggleWindow.HasPossibleEndingDecision ), Not( Struggle.IsCharacterInvolvedOrInterloper( GetPlayer ) ) )]"
parentanchor = center
position = { 0 8 }
max_width = 180
text = "ENDING_DECISION_UNAVAILABLE"
default_format = "#clickable"
alwaystransparent = yes
}
}
type struggle_mini_map_mode = mini_map_mode {
parentanchor = bottom|left
widgetanchor = bottom|right
position = { -350 -25 }
blockoverride "map_mode_buttons"
{
icon_button_mapmode = {
blockoverride = "mm_datacontext"
{
datacontext = "[GetMapMode( 'struggle' )]"
}
}
icon_button_mapmode = {
blockoverride = "mm_datacontext"
{
datacontext = "[GetMapMode( 'realms' )]"
}
blockoverride "mm_button"
{
shortcut = "map_mode_1"
}
}
icon_button_mapmode = {
blockoverride = "mm_datacontext"
{
datacontext = "[GetMapMode( 'religions' )]"
}
blockoverride "mm_button"
{
shortcut = "map_mode_3"
}
}
icon_button_mapmode = {
blockoverride = "mm_datacontext"
{
datacontext = "[GetMapMode( 'cultures' )]"
}
blockoverride "mm_button"
{
shortcut = "map_mode_2"
}
}
}
}
type window_ending_phase_effects = window {
parentanchor = center
widgetanchor = center
using = Window_Movable
using = Window_Background
using = Window_Decoration_Spike
visible = "[VariableSystem.Exists('struggle_ending_phase_details')]"
datacontext = "[StruggleWindow.GetSelectedPhase]"
size = { 630 935 }
layer = middle
position = { -700 0 }
vbox = {
using = Window_Margins
header_pattern = {
layoutpolicy_horizontal = expanding
blockoverride "header_text"
{
layoutpolicy_horizontal = expanding
text = "STRUGGLE_ENDING_PHASE_WINDOW_TITLE"
}
blockoverride "button_close"
{
onclick = "[VariableSystem.Toggle( 'struggle_ending_phase_details' )]"
shortcut = "close_window"
clicksound = "event:/SFX/UI/Generic/sfx_ui_generic_close"
}
}
vbox = {
layoutpolicy_horizontal = expanding
vbox = {
layoutpolicy_horizontal = expanding
minimumsize = { 550 220 }
background = {
texture = "[StrugglePhase.GetDetailBackground]"
margin_top = 10
alpha = 0.7
using = Mask_Rough_Edges
}
}
text_multi = {
name = "description"
minimumsize = { 550 -1 }
maximumsize = { 550 -1 }
margin = { 15 15 }
autoresize = yes
text = "STRUGGLE_PHASE_DESCRIPTION"
using = Font_Size_Small
}
}
scrollbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
blockoverride "scrollbox_content"
{
vbox = {
layoutpolicy_horizontal = expanding
layoutpolicy_vertical = expanding
spacing = 10
vbox = {
layoutpolicy_horizontal = expanding
background = {
texture = "gfx/interface/icons/lifestyle_tree_backgrounds/skulduggery.dds"
tintcolor = { 0.6 0.8 0.8 0.8 }
margin = { 0 5 }
using = Mask_Rough_Edges
alpha = 0.8
fittype = centercrop
mirror = horizontal
modify_texture = {
texture = "gfx/interface/component_masks/mask_fade_corners_bottom.dds"
blend_mode = alphamultiply
alpha = 0.6
}
modify_texture = {
texture = "gfx/interface/component_masks/mask_rough_edges.dds"
blend_mode = overlay
alpha = 0.4
}
}
text_label_center = {
margin = { 40 10 }
max_width = 450
text = "STRUGGLE_ENDING_PHASE_EFFECTS_TITLE"
}
text_multi = {
visible = "[Not( StringIsEmpty( Struggle.GetEndingPhaseEffectDesc( StrugglePhase.Self, Character.Self ) ) )]"
layoutpolicy_horizontal = expanding
margin = { 15 15 }
max_width = 550
autoresize = yes
text = "[Struggle.GetEndingPhaseEffectDesc( StrugglePhase.Self, Character.Self )]"
}
text_single = {
visible = "[StringIsEmpty( Struggle.GetEndingPhaseEffectDesc( StrugglePhase.Self, Character.Self ) )]"
margin = { 15 15 }
max_width = 550
text = "STRUGGLE_ENDING_PHASE_NO_EFFECT_DESC"
alwaystransparent = yes
}
}
expand = {}
}
}
}
vbox = {
layoutpolicy_horizontal = expanding
margin = { 10 10 }
hbox = {
layoutpolicy_horizontal = expanding
margin = { 10 10 }
background = {
using = Background_Area_Light
tintcolor = {0.8 0.5 0.5 2.0}
margin = { -1 -1 }
}
background = {
using = Background_Frame
tintcolor = {0.8 0.5 0.5 2.0}
}
icon = {
size = {30 30 }
texture = "gfx/interface/icons/struggle_types/ending_phase_icon.dds"
}
text_multi = {
align = nobaseline
max_width = 500
layoutpolicy_horizontal = expanding
margin_left = 10
text = STRUGGLE_ENDING_PHASE_WARNING_MESSAGE
alwaystransparent = no
}
}
}
}
}
}