1411 lines
35 KiB
Lua
1411 lines
35 KiB
Lua
function sns_category_window()
|
|
return {
|
|
type = "UIElement",
|
|
id = "sns_category_window_id",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 120,
|
|
height = 500,
|
|
left = 100,
|
|
width = 270
|
|
}
|
|
},
|
|
properties = {
|
|
feeder = nil,
|
|
initialDlcName = ""
|
|
},
|
|
children = {
|
|
{
|
|
type = "generic_menu_background_withfade",
|
|
id = "category_window_bg_id",
|
|
properties = {
|
|
top_offset = 0
|
|
}
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
id = "padding",
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
top = 1,
|
|
bottom = 0,
|
|
left = 1,
|
|
right = -1
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIVerticalList",
|
|
id = "category_list_id",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0,
|
|
bottom = 0,
|
|
spacing = 0
|
|
}
|
|
},
|
|
childrenFeeder = MBh.Property( "feeder" )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_thumbnail()
|
|
return {
|
|
type = "UIButton",
|
|
id = "sns_category_window_id",
|
|
properties = {
|
|
item_id = -1,
|
|
file_id = "",
|
|
item_index = -1,
|
|
thumbName = ""
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 0,
|
|
bottom = Sns.Dims.Thumbnail.height,
|
|
left = 0,
|
|
right = Sns.Dims.Thumbnail.width
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "generic_drop_shadow",
|
|
properties = {
|
|
offset_shadow = -1
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0,
|
|
alpha = 0.45
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "ContentServerImage",
|
|
id = "sns_thumbnail_image",
|
|
properties = {
|
|
file_id = MBh.Property( "file_id" ),
|
|
thumbName = MBh.Property( "thumbName" )
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 1,
|
|
right = -1,
|
|
top = 1,
|
|
bottom = -1,
|
|
alpha = 0
|
|
},
|
|
visible = {
|
|
alpha = 1
|
|
}
|
|
},
|
|
handlers = {
|
|
download_complete = function ( f3_arg0, f3_arg1 )
|
|
local f3_local0 = f3_arg0:getParent()
|
|
f3_local0:processEvent( {
|
|
name = "done_loading"
|
|
} )
|
|
end
|
|
,
|
|
material_lost = function ( f4_arg0, f4_arg1 )
|
|
local f4_local0 = f4_arg0:getParent()
|
|
f4_local0:processEvent( {
|
|
name = "start_loading"
|
|
} )
|
|
end
|
|
,
|
|
start_loading = function ( f5_arg0, f5_arg1 )
|
|
f5_arg0:animateToState( "default", 0 )
|
|
end
|
|
,
|
|
done_loading = function ( f6_arg0, f6_arg1 )
|
|
f6_arg0:animateToState( "visible", 150 )
|
|
end
|
|
,
|
|
update_hack_banner = function ( f7_arg0, f7_arg1 )
|
|
local f7_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( f7_arg0 )
|
|
if CrossGameHackVisual( f7_local0.category ) then
|
|
f7_arg0.m_fileId = nil
|
|
f7_arg0:setImage( RegisterMaterial( "img_store_advanced_warfare" ) )
|
|
local f7_local1 = f7_arg0:getParent()
|
|
f7_local1:processEvent( {
|
|
name = "done_loading"
|
|
} )
|
|
end
|
|
end
|
|
|
|
}
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 1,
|
|
right = -1,
|
|
top = 1,
|
|
bottom = -1,
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
start_loading = MBh.AnimateToState( "default", 0 ),
|
|
done_loading = MBh.AnimateToState( "hidden", 50 )
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIImage",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
material = RegisterMaterial( "white" ),
|
|
red = 0,
|
|
green = 0,
|
|
blue = 0,
|
|
alpha = 0.25
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "live_dialog_processing_widget",
|
|
id = "popup_diamond_id"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
id = "sns_thumbnail_sale_banner",
|
|
properties = {
|
|
item_id = MBh.Property( "item_id" )
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = false,
|
|
bottomAnchor = true,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
bottom = -1,
|
|
width = 48,
|
|
right = -1,
|
|
height = 32,
|
|
material = RegisterMaterial( "icon_sale" ),
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
update_sale_banners = function ( f8_arg0, f8_arg1 )
|
|
local f8_local0 = Sns.GetScopedArticleInfo( f8_arg0, "sale" )
|
|
local f8_local1 = f8_arg0
|
|
local f8_local2 = f8_arg0.animateToState
|
|
local f8_local3
|
|
if f8_local0 and f8_local0 > 0 then
|
|
f8_local3 = "default"
|
|
if not f8_local3 then
|
|
|
|
else
|
|
f8_local2( f8_local1, f8_local3, 0 )
|
|
end
|
|
end
|
|
f8_local3 = "hidden"
|
|
end
|
|
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
id = "sns_thumbnail_purchased_checkbox",
|
|
properties = {
|
|
item_index = MBh.Property( "item_index" )
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 3,
|
|
width = 16,
|
|
left = 3,
|
|
height = 16,
|
|
material = RegisterMaterial( "box_empty" ),
|
|
alpha = 1
|
|
},
|
|
checked = {
|
|
material = RegisterMaterial( "box_check" ),
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
update_purchase_checkboxes = function ( f9_arg0, f9_arg1 )
|
|
local f9_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( f9_arg0 )
|
|
if CrossGameHackVisual( f9_local0.category ) then
|
|
f9_arg0:animateToState( "hidden" )
|
|
else
|
|
local f9_local1 = Store.IsItemPurchasedByIndex( f9_local0.category, f9_arg0.properties.item_index )
|
|
local f9_local2 = f9_arg0
|
|
local f9_local3 = f9_arg0.animateToState
|
|
local f9_local4
|
|
if f9_local1 then
|
|
f9_local4 = "checked"
|
|
if not f9_local4 then
|
|
|
|
else
|
|
f9_local3( f9_local2, f9_local4, 0 )
|
|
end
|
|
end
|
|
f9_local4 = "default"
|
|
end
|
|
end
|
|
|
|
}
|
|
},
|
|
{
|
|
type = "generic_border",
|
|
id = "sns_thumbnail_border_id",
|
|
properties = {
|
|
border_red = Colors.white.r,
|
|
border_green = Colors.white.g,
|
|
border_blue = Colors.white.b,
|
|
thickness = 3
|
|
},
|
|
states = {
|
|
default = {
|
|
alpha = 0
|
|
},
|
|
dim = {
|
|
alpha = 0.5
|
|
},
|
|
focused = {
|
|
alpha = 0.8
|
|
}
|
|
},
|
|
handlers = {
|
|
gain_focus = MBh.AnimateLoop( {
|
|
{
|
|
"focused",
|
|
0,
|
|
true,
|
|
true
|
|
},
|
|
{
|
|
"focused",
|
|
350,
|
|
true,
|
|
true
|
|
},
|
|
{
|
|
"dim",
|
|
750,
|
|
true,
|
|
true
|
|
},
|
|
{
|
|
"focused",
|
|
750,
|
|
true,
|
|
true
|
|
}
|
|
} ),
|
|
lose_focus = MBh.AnimateToState( "default" )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_thumbnail_window()
|
|
return {
|
|
type = "UIElement",
|
|
id = "store_thumbnail_window_id",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 113,
|
|
height = 120,
|
|
left = 430,
|
|
width = 730
|
|
}
|
|
},
|
|
properties = {
|
|
feeder = nil,
|
|
initialDlcName = ""
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIStencil",
|
|
id = "thumbnail_window_stencil_id",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIHorizontalList",
|
|
id = "thumbnail_list_id",
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = Sns.HListOffset,
|
|
right = -Sns.HListOffset,
|
|
top = Sns.HListOffset,
|
|
bottom = -Sns.HListOffset,
|
|
spacing = Sns.HListSpacing
|
|
}
|
|
},
|
|
childrenFeeder = MBh.Property( "feeder" ),
|
|
handlers = {
|
|
refresh_thumbnails = RefreshThumbnails
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIButton",
|
|
id = "thumbnail_list_left_arrow_id",
|
|
properties = {
|
|
visible = false
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 40,
|
|
left = -20,
|
|
width = 20,
|
|
height = 40,
|
|
alpha = 1
|
|
},
|
|
shifted = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 40,
|
|
left = -25,
|
|
width = 20,
|
|
height = 40,
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
update_thumbnail_arrows = function ( f11_arg0, f11_arg1 )
|
|
if f11_arg1.left_visible then
|
|
if not f11_arg0.properties.visible then
|
|
local f11_local0 = MBh.AnimateLoop( {
|
|
{
|
|
"shifted",
|
|
500,
|
|
true,
|
|
true
|
|
},
|
|
{
|
|
"default",
|
|
500,
|
|
true,
|
|
true
|
|
}
|
|
} )
|
|
f11_local0( f11_arg0, f11_arg1 )
|
|
f11_arg0.properties.visible = true
|
|
end
|
|
else
|
|
f11_arg0:animateToState( "hidden", 0 )
|
|
f11_arg0.properties.visible = false
|
|
end
|
|
end
|
|
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIImage",
|
|
id = "thumbnail_list_left_arrow_image_id",
|
|
states = {
|
|
default = {
|
|
material = RegisterMaterial( "widg_btn_arrow_lt" ),
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIButton",
|
|
id = "thumbnail_list_right_arrow_id",
|
|
properties = {
|
|
visible = false
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 40,
|
|
right = 30,
|
|
width = 20,
|
|
height = 40,
|
|
alpha = 1
|
|
},
|
|
shifted = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 40,
|
|
right = 35,
|
|
width = 20,
|
|
height = 40,
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
update_thumbnail_arrows = function ( f12_arg0, f12_arg1 )
|
|
if f12_arg1.right_visible then
|
|
if not f12_arg0.properties.visible then
|
|
local f12_local0 = MBh.AnimateLoop( {
|
|
{
|
|
"shifted",
|
|
500,
|
|
true,
|
|
true
|
|
},
|
|
{
|
|
"default",
|
|
500,
|
|
true,
|
|
true
|
|
}
|
|
} )
|
|
f12_local0( f12_arg0, f12_arg1 )
|
|
f12_arg0.properties.visible = true
|
|
end
|
|
else
|
|
f12_arg0:animateToState( "hidden", 0 )
|
|
f12_arg0.properties.visible = false
|
|
end
|
|
end
|
|
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIImage",
|
|
id = "thumbnail_list_right_arrow_image_id",
|
|
states = {
|
|
default = {
|
|
material = RegisterMaterial( "widg_btn_arrow_rt" ),
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_article_detail_widget()
|
|
return {
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
},
|
|
properties = {
|
|
label_text = "Placeholder Label",
|
|
value_text = "Placeholder Value",
|
|
width = 160
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIMarqueeText",
|
|
id = "sns_article_detail_widget_label_id",
|
|
properties = {
|
|
text = MBh.Property( "label_text" ),
|
|
width = MBh.Property( "width" )
|
|
},
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.secondary_text_color, {
|
|
left = 0,
|
|
top = 0,
|
|
width = MBh.Property( "width" ),
|
|
height = CoD.TextSettings.BoldFont.Height,
|
|
font = CoD.TextSettings.BoldFont.Font,
|
|
alignment = LUI.Alignment.Center
|
|
} )
|
|
}
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
id = "sns_article_detail_widget_value_bg_id",
|
|
states = {
|
|
default = {
|
|
top = CoD.TextSettings.BoldFont.Height + 2,
|
|
left = 0,
|
|
width = MBh.Property( "width" ),
|
|
height = 24
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "generic_border",
|
|
properties = {
|
|
border_red = Swatches.GenericMenu.Border.r,
|
|
border_green = Swatches.GenericMenu.Border.g,
|
|
border_blue = Swatches.GenericMenu.Border.b
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
states = {
|
|
default = CoD.ColorizeState( Swatches.GenericMenu.Background, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0,
|
|
alpha = 1
|
|
} )
|
|
}
|
|
},
|
|
{
|
|
type = "UIMarqueeText",
|
|
id = "sns_article_detail_widget_value_id",
|
|
properties = {
|
|
text = MBh.Property( "value_text" ),
|
|
width = MBh.Property( "width" )
|
|
},
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.white, {
|
|
topAnchor = false,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
height = CoD.TextSettings.BoldFont.Height,
|
|
font = CoD.TextSettings.BoldFont.Font,
|
|
alignment = LUI.Alignment.Center
|
|
} )
|
|
},
|
|
handlers = {
|
|
update_article_detail_value = function ( f14_arg0, f14_arg1 )
|
|
f14_arg0:setText( f14_arg1.value )
|
|
end
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_article_countdown_widget()
|
|
return {
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0,
|
|
alpha = 0
|
|
},
|
|
visible = {
|
|
alpha = 1
|
|
}
|
|
},
|
|
handlers = {
|
|
show_article_countdown = MBh.AnimateToState( "visible", 0 ),
|
|
show_article_purchaseinfo = MBh.AnimateToState( "default", 0 ),
|
|
hide_article_overlays = MBh.AnimateToState( "default", 0 )
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIText",
|
|
id = "sns_countdown_widget_label_id",
|
|
properties = {
|
|
text = "Time Left: "
|
|
},
|
|
states = {
|
|
default = {
|
|
left = -80,
|
|
top = 45,
|
|
width = 160,
|
|
height = CoD.TextSettings.BoldFont.Height,
|
|
font = CoD.TextSettings.BoldFont.Font,
|
|
alignment = LUI.Alignment.Center,
|
|
red = 0.7,
|
|
green = 0.7,
|
|
blue = 0.7
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UILongCountdown",
|
|
id = "sns_countdown_widget_time_id",
|
|
properties = {
|
|
end_time = 0
|
|
},
|
|
states = {
|
|
default = {
|
|
left = -80,
|
|
top = 65,
|
|
width = 160,
|
|
height = CoD.TextSettings.BoldFont.Height,
|
|
font = CoD.TextSettings.BoldFont.Font,
|
|
alignment = LUI.Alignment.Center
|
|
}
|
|
},
|
|
handlers = {
|
|
update_article_details = function ( f16_arg0, f16_arg1 )
|
|
if f16_arg1.end_time then
|
|
f16_arg0:setEndTime( Sns.GetScopedArticleInfo( f16_arg0, "endTime" ) )
|
|
end
|
|
end
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_article_purchaseinfo_widget()
|
|
return {
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = -35,
|
|
bottom = 0,
|
|
left = 29,
|
|
right = -29,
|
|
alpha = 0
|
|
},
|
|
visible = {
|
|
alpha = 1
|
|
}
|
|
},
|
|
handlers = {
|
|
show_article_countdown = MBh.AnimateToState( "default", 0 ),
|
|
show_article_purchaseinfo = MBh.AnimateToState( "visible", 0 ),
|
|
hide_article_overlays = MBh.AnimateToState( "default", 0 )
|
|
},
|
|
children = {
|
|
{
|
|
type = "sns_value_bar",
|
|
id = "sns_article_cost_bar",
|
|
properties = {
|
|
title_text = Engine.Localize( "@LUA_MENU_COST" ),
|
|
top = 228
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_article()
|
|
return {
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 230,
|
|
height = 380,
|
|
left = 420,
|
|
width = 780,
|
|
alpha = 0
|
|
},
|
|
visible = {
|
|
alpha = 1
|
|
}
|
|
},
|
|
handlers = {
|
|
show_fetching_metadata = MBh.AnimateToState( "default" ),
|
|
hide_fetching_metadata = MBh.AnimateToState( "visible" )
|
|
},
|
|
children = {
|
|
{
|
|
type = "generic_menu_titlebar",
|
|
id = "article_details_window_title_id",
|
|
properties = {
|
|
font = CoD.TextSettings.BoldFont,
|
|
title_bar_text_indent = GenericTitleBarDims.TitleBarLCapWidth,
|
|
title_bar_alignment = LUI.Alignment.Left
|
|
},
|
|
handlers = {
|
|
update_article_details = function ( f19_arg0, f19_arg1 )
|
|
f19_arg0:processEvent( {
|
|
name = "update_title",
|
|
title_text = Sns.GetScopedArticleInfo( f19_arg0, "title" )
|
|
} )
|
|
end
|
|
|
|
}
|
|
},
|
|
{
|
|
type = "generic_menu_background_withfade",
|
|
id = "article_details_window_bg_id"
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
id = "article_details_window_backdrpo_id",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
left = 2,
|
|
right = 400,
|
|
top = GenericTitleBarDims.TitleBarHeight + 2,
|
|
bottom = 380
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIImage",
|
|
id = "article_details_window_backdrpo_image_id",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.black, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
material = RegisterMaterial( "gradient_top" ),
|
|
alpha = 0.4
|
|
} )
|
|
}
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
left = 29,
|
|
right = -29,
|
|
top = 12,
|
|
bottom = 182
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "ContentServerImage",
|
|
id = "article_details_window_image_id",
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
alpha = 0
|
|
},
|
|
visible = {
|
|
alpha = 1
|
|
}
|
|
},
|
|
handlers = {
|
|
update_article_details = function ( f20_arg0, f20_arg1 )
|
|
local f20_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( f20_arg0 )
|
|
if CrossGameHackVisual( f20_local0.category ) then
|
|
f20_arg0.m_fileId = nil
|
|
f20_arg0:setImage( RegisterMaterial( "img_store_advanced_warfare" ) )
|
|
local f20_local1 = f20_arg0:getParent()
|
|
f20_local1:processEvent( {
|
|
name = "done_loading"
|
|
} )
|
|
else
|
|
local f20_local1 = Sns.GetScopedArticleInfo( f20_arg0, "image" )
|
|
local f20_local2 = f20_arg0:getParent()
|
|
f20_local2:processEvent( {
|
|
name = "start_loading"
|
|
} )
|
|
f20_arg0:setFileId( f20_local1 )
|
|
end
|
|
end
|
|
,
|
|
download_complete = function ( f21_arg0, f21_arg1 )
|
|
local f21_local0 = f21_arg0:getParent()
|
|
f21_local0:processEvent( {
|
|
name = "done_loading"
|
|
} )
|
|
end
|
|
,
|
|
material_lost = function ( f22_arg0, f22_arg1 )
|
|
local f22_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( f22_arg0 )
|
|
if not CrossGameHackVisual( f22_local0.category ) then
|
|
local f22_local1 = f22_arg0:getParent()
|
|
f22_local1:processEvent( {
|
|
name = "start_loading"
|
|
} )
|
|
end
|
|
end
|
|
,
|
|
start_loading = MBh.AnimateToState( "default", 0 ),
|
|
done_loading = MBh.AnimateToState( "visible", 150 )
|
|
}
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
start_loading = MBh.AnimateToState( "default", 0 ),
|
|
done_loading = MBh.AnimateToState( "hidden", 50 )
|
|
},
|
|
children = {
|
|
{
|
|
type = "live_dialog_processing_widget",
|
|
id = "popup_diamond_id"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "sns_article_purchaseinfo_widget"
|
|
},
|
|
{
|
|
type = "sns_article_countdown_widget"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIMarqueeText",
|
|
id = "article_details_window_desc_id",
|
|
properties = {
|
|
textHeight = CoD.TextSettings.BoldFont.Height,
|
|
scrollSpeed = 50,
|
|
useTextWrapping = true
|
|
},
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.md_grey, {
|
|
left = 35,
|
|
top = -145,
|
|
width = 340,
|
|
height = 15 * CoD.TextSettings.BoldFont.Height,
|
|
font = CoD.TextSettings.BoldFont.Font,
|
|
alignment = LUI.Alignment.Left,
|
|
alpha = 1
|
|
} )
|
|
},
|
|
handlers = {
|
|
update_article_details = function ( f23_arg0, f23_arg1 )
|
|
f23_arg0:setText( Sns.GetScopedArticleInfo( f23_arg0, "details" ) )
|
|
f23_arg0.text:setForceLineBreaks( true )
|
|
end
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_fetching_category_spinner()
|
|
return {
|
|
type = "UIElement",
|
|
states = {
|
|
default = {
|
|
alpha = 0
|
|
},
|
|
visible = {
|
|
alpha = 1
|
|
}
|
|
},
|
|
handlers = {
|
|
hide_fetching_metadata = MBh.AnimateToState( "default" ),
|
|
show_fetching_metadata = MBh.AnimateToState( "visible" )
|
|
},
|
|
children = {
|
|
{
|
|
type = "live_dialog_text_box",
|
|
id = "live_dialog_text_box_id",
|
|
properties = {
|
|
message = Engine.Localize( "LUA_MENU_RETRIEVING_INFO" ),
|
|
overlay_alpha = 0,
|
|
top = -DialogPopupDims.Height / 2,
|
|
left = -15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function sns_value_bar_children_feeder( f25_arg0 )
|
|
local f25_local0 = {
|
|
[#f25_local0 + 1] = {
|
|
type = "UIImage",
|
|
id = "sns_value_bar_bg",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.very_dark_cyan, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0,
|
|
material = RegisterMaterial( "white" ),
|
|
alpha = 1
|
|
} )
|
|
}
|
|
},
|
|
[#f25_local0 + 1] = {
|
|
type = "UIImage",
|
|
id = "sns_value_bar_cap",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.grey_22, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = -212,
|
|
right = -180,
|
|
material = RegisterMaterial( "box_angle_ltcap" ),
|
|
alpha = 0.5
|
|
} )
|
|
}
|
|
},
|
|
[#f25_local0 + 1] = {
|
|
type = "UIImage",
|
|
id = "sns_value_bar_alt_bg",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.grey_22, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = -180,
|
|
right = 0,
|
|
material = RegisterMaterial( "white" ),
|
|
alpha = 0.5
|
|
} )
|
|
}
|
|
},
|
|
[#f25_local0 + 1] = {
|
|
type = "UIText",
|
|
id = "sns_value_bar_title_text",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.white, {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 3,
|
|
bottom = 3 + CoD.TextSettings.NormalFont.Height,
|
|
left = 5,
|
|
right = 0,
|
|
font = CoD.TextSettings.NormalFont.Font,
|
|
alignment = LUI.Alignment.Left
|
|
} )
|
|
},
|
|
properties = {
|
|
text = f25_arg0.title_text
|
|
}
|
|
},
|
|
[#f25_local0 + 1] = {
|
|
type = "UIText",
|
|
id = "sns_value_bar_value_text",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.frontend_hilite, {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 3,
|
|
bottom = 3 + CoD.TextSettings.NormalFont.Height,
|
|
left = -180,
|
|
right = -10,
|
|
font = CoD.TextSettings.NormalFont.Font,
|
|
alignment = LUI.Alignment.Right
|
|
} ),
|
|
purchased = CoD.ColorizeState( Colors.primary_text_color, {} )
|
|
},
|
|
handlers = {
|
|
show_article_purchaseinfo = function ( f26_arg0, f26_arg1 )
|
|
if Sns.GetScopedArticleInfo( f26_arg0, "purchased" ) then
|
|
f26_arg0:setText( Engine.Localize( "@LUA_MENU_PURCHASED_CAPS" ) )
|
|
f26_arg0:animateToState( "purchased" )
|
|
else
|
|
local f26_local0 = Sns.GetScopedArticleInfo( f26_arg0, "sale" )
|
|
if f26_local0 == 0 then
|
|
f26_arg0:setText( Sns.GetScopedArticleInfo( f26_arg0, "cost" ) )
|
|
else
|
|
f26_arg0:setText( f26_local0 )
|
|
end
|
|
f26_arg0:animateToState( "default" )
|
|
end
|
|
end
|
|
}
|
|
},
|
|
[#f25_local0 + 1] = {
|
|
type = "UIText",
|
|
id = "sns_value_bar_old_cost_text",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.secondary_text_color, {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 3,
|
|
bottom = 3 + CoD.TextSettings.NormalFont.Height,
|
|
left = -180,
|
|
right = -10,
|
|
font = CoD.TextSettings.NormalFont.Font,
|
|
alignment = LUI.Alignment.Right,
|
|
alpha = 1
|
|
} ),
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
show_article_purchaseinfo = function ( f27_arg0, f27_arg1 )
|
|
if Sns.GetScopedArticleInfo( f27_arg0, "purchased" ) then
|
|
f27_arg0:animateToState( "hidden", 0 )
|
|
return false
|
|
end
|
|
local f27_local0 = Sns.GetScopedArticleInfo( f27_arg0, "sale" )
|
|
if f27_local0 == 0 then
|
|
f27_arg0:animateToState( "hidden", 0 )
|
|
else
|
|
local f27_local1 = Sns.GetScopedArticleInfo( f27_arg0, "cost" )
|
|
local f27_local2, f27_local3, f27_local4, f27_local5 = GetTextDimensions( f27_local0, CoD.TextSettings.NormalFont.Font, CoD.TextSettings.NormalFont.Height )
|
|
local f27_local6 = f27_local4 - f27_local2
|
|
local f27_local7, f27_local8, f27_local9, f27_local10 = GetTextDimensions( f27_local1, CoD.TextSettings.NormalFont.Font, CoD.TextSettings.NormalFont.Height )
|
|
f27_arg0:registerAnimationState( "default", {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
top = 3,
|
|
bottom = 3 + CoD.TextSettings.NormalFont.Height,
|
|
left = -(f27_local9 - f27_local7) - f27_local6 - 25,
|
|
right = -f27_local6 - 25,
|
|
font = CoD.TextSettings.NormalFont.Font,
|
|
alignment = LUI.Alignment.Right,
|
|
alpha = 1
|
|
} )
|
|
f27_arg0:animateToState( "default", 0 )
|
|
f27_arg0:setText( f27_local1 )
|
|
end
|
|
return false
|
|
end
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIImage",
|
|
id = "sns_value_bar_old_cost_strikethrough_id",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.secondary_text_color, {
|
|
material = RegisterMaterial( "white" ),
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 9,
|
|
height = 2,
|
|
left = -4,
|
|
right = 4
|
|
} )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return f25_local0
|
|
end
|
|
|
|
function sns_value_bar()
|
|
return {
|
|
type = "UIElement",
|
|
properties = {
|
|
value_text = "",
|
|
top = 0
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = MBh.Property( "top" ),
|
|
height = 26,
|
|
left = 0,
|
|
right = 0,
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
show_article_purchaseinfo = function ( f29_arg0, f29_arg1 )
|
|
local f29_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( f29_arg0 )
|
|
if CrossGameHackVisual( f29_local0.category ) then
|
|
f29_arg0:animateToState( "hidden" )
|
|
else
|
|
f29_arg0:animateToState( "default" )
|
|
end
|
|
end
|
|
|
|
},
|
|
childrenFeeder = sns_value_bar_children_feeder
|
|
}
|
|
end
|
|
|
|
LUI.SocialFeedTicker = {}
|
|
LUI.SocialFeedTicker = InheritFrom( LUI.UIElement )
|
|
LUI.SocialFeedTicker.new = function ( f30_arg0, f30_arg1, f30_arg2 )
|
|
if not Sns.SocialFeedEnabled() then
|
|
return LUI.UIElement.new()
|
|
end
|
|
local f30_local0 = 0.75
|
|
local f30_local1 = 95
|
|
local self = LUI.UIElement.new( CoD.CreateState( 0, -124, 0, -54, CoD.AnchorTypes.BottomLeftRight ) )
|
|
self.id = "social_feed_ticker_id"
|
|
self:registerEventHandler( "change_ticker_story", Sns.ChangeTickerStory )
|
|
local f30_local3 = CoD.CreateState( 0, 0, 20, 0, CoD.AnchorTypes.TopBottomLeft )
|
|
f30_local3.material = RegisterMaterial( "box_feed_content_lt" )
|
|
f30_local3.alpha = f30_local0
|
|
local f30_local4 = LUI.UIImage.new( f30_local3 )
|
|
f30_local4.id = "ticker_left_cap_id"
|
|
self:addElement( f30_local4 )
|
|
f30_local3 = CoD.CreateState( 20, 0, -20, 0, CoD.AnchorTypes.All )
|
|
f30_local3.material = RegisterMaterial( "box_feed_content_mid" )
|
|
f30_local3.alpha = f30_local0
|
|
local f30_local5 = LUI.UIImage.new( f30_local3 )
|
|
f30_local5.id = "ticker_mid_bg_id"
|
|
self:addElement( f30_local5 )
|
|
f30_local3 = CoD.CreateState( -20, 0, 0, 0, CoD.AnchorTypes.TopBottomRight )
|
|
f30_local3.material = RegisterMaterial( "box_feed_content_rt" )
|
|
f30_local3.alpha = f30_local0
|
|
local f30_local6 = LUI.UIImage.new( f30_local3 )
|
|
f30_local6.id = "ticker_right_cap_id"
|
|
self:addElement( f30_local6 )
|
|
local f30_local7 = LUI.UIButton.new( CoD.CreateState( 5, 26, -5, -21, CoD.AnchorTypes.All ) )
|
|
f30_local7.id = "ticker_stencil_id"
|
|
f30_local7:setUseStencil( true )
|
|
f30_local7.requireFocusType = FocusType.MouseOver
|
|
f30_local7:registerEventHandler( "button_action", function ( element, event )
|
|
Sns.OpenSocialFeed( element, event.controller, f30_arg1 and f30_arg1.isLobbyTicker or false )
|
|
end )
|
|
self:addElement( f30_local7 )
|
|
local f30_local8 = 30
|
|
local f30_local9 = 20
|
|
local f30_local10 = f30_local1
|
|
if SocialFeed.HasUnreadArticles( Engine.GetControllerForLocalClient( 0 ) ) then
|
|
f30_local3 = CoD.CreateState( f30_local1 - 30, -12, f30_local1 - 6, 12, CoD.AnchorTypes.Left )
|
|
f30_local3.material = RegisterMaterial( "icon_new" )
|
|
local f30_local11 = LUI.UIImage.new( f30_local3 )
|
|
f30_local11.id = "ticker_new_icon_id"
|
|
f30_local7:addElement( f30_local11 )
|
|
end
|
|
if CoD.UsingController() then
|
|
f30_local10 = f30_local10 + f30_local8 + 7
|
|
f30_local3 = CoD.CreateState( f30_local1, -f30_local8 / 2, f30_local1 + f30_local8, f30_local8 / 2, CoD.AnchorTypes.Left )
|
|
f30_local3.font = CoD.TextSettings.NormalFont.Font
|
|
f30_local3.alignment = LUI.Alignment.Left
|
|
CoD.ColorizeState( Colors.white, f30_local3 )
|
|
local f30_local11 = LUI.UIText.new( f30_local3 )
|
|
f30_local11.id = "ticker_button_icon_id"
|
|
f30_local11:setText( Engine.Localize( "@LUA_MENU_PAD_LEFT_SHOULDER_BUTTON" ) )
|
|
f30_local7:addElement( f30_local11 )
|
|
end
|
|
local f30_local11 = CoD.TextSettings.NormalFont.Height / 2
|
|
f30_local3 = CoD.CreateState( f30_local10, -f30_local11, f30_local10, f30_local11, CoD.AnchorTypes.LeftRight )
|
|
f30_local3.font = CoD.TextSettings.NormalFont.Font
|
|
f30_local3.alignment = LUI.Alignment.Left
|
|
CoD.ColorizeState( Colors.white, f30_local3 )
|
|
self.tickerText = LUI.UIText.new( f30_local3 )
|
|
self.tickerText.id = "ticker_text_id"
|
|
f30_local7:addElement( self.tickerText )
|
|
local f30_local12 = Sns.GetTickerHeader( Sns.TickerCategory, Sns.TickerIndex )
|
|
if f30_local12 == "" then
|
|
f30_local12 = Engine.Localize( "@SOCIALFEED_TICKER_DEFAULT_TEXT" )
|
|
end
|
|
self.tickerText:setText( f30_local12 )
|
|
f30_local3 = CoD.CreateState( f30_local10, -f30_local11 + f30_local9, f30_local10, f30_local11 + f30_local9, CoD.AnchorTypes.LeftRight )
|
|
f30_local3.font = CoD.TextSettings.NormalFont.Font
|
|
f30_local3.alignment = LUI.Alignment.Left
|
|
CoD.ColorizeState( Colors.white, f30_local3 )
|
|
self.nextText = LUI.UIText.new( f30_local3 )
|
|
self.nextText.id = "ticker_next_text_id"
|
|
f30_local7:addElement( self.nextText )
|
|
f30_local3 = CoD.CreateState( f30_local10, -f30_local11 - f30_local9, f30_local10, f30_local11 - f30_local9, CoD.AnchorTypes.LeftRight )
|
|
f30_local3.font = CoD.TextSettings.NormalFont.Font
|
|
f30_local3.alignment = LUI.Alignment.Left
|
|
CoD.ColorizeState( Colors.white, f30_local3 )
|
|
self.tickerText:registerAnimationState( "transition_to_next", f30_local3 )
|
|
f30_local3 = CoD.CreateState( f30_local10, -f30_local11, f30_local10, f30_local11, CoD.AnchorTypes.LeftRight )
|
|
f30_local3.font = CoD.TextSettings.NormalFont.Font
|
|
f30_local3.alignment = LUI.Alignment.Left
|
|
CoD.ColorizeState( Colors.white, f30_local3 )
|
|
self.nextText:registerAnimationState( "transition_to_next", f30_local3 )
|
|
self.nextText:registerEventHandler( "transition_complete_transition_to_next", function ( element, event )
|
|
local f32_local0 = element:getParent()
|
|
Sns.TickerScrollEnded( f32_local0:getParent(), event )
|
|
end )
|
|
local f30_local13 = LUI.UITimer.new( Sns.TickerUpdateInterval, "change_ticker_story", "social_feed_ticker", false, self )
|
|
f30_local13.id = "ticker_timer_id"
|
|
self:addElement( f30_local13 )
|
|
if CoD.UsingController() then
|
|
local f30_local14 = LUI.UIBindButton.new()
|
|
f30_local14.id = "ticker_bind_button_id"
|
|
f30_local14:registerEventHandler( "button_shoulderl", function ( element, event )
|
|
Sns.OpenSocialFeed( element, event.controller, f30_arg1 and f30_arg1.isLobbyTicker or false )
|
|
end )
|
|
self:addElement( f30_local14 )
|
|
end
|
|
return self
|
|
end
|
|
|
|
function popup_social_to_store_lobby_confirm()
|
|
return {
|
|
type = "generic_yesno_popup",
|
|
id = "popup_social_leave_lobby_confirm",
|
|
properties = {
|
|
popup_title = Engine.Localize( "@MENU_NOTICE" ),
|
|
message_text = Engine.Localize( "@SOCIALFEED_TO_STORE_WARNING" ),
|
|
yes_text = Engine.Localize( "@LUA_MENU_YES" ),
|
|
no_text = Engine.Localize( "@LUA_MENU_CANCEL" ),
|
|
yes_action = function ( f35_arg0, f35_arg1 )
|
|
LUI.mp_menus.mpLobbyWidgets.leaveLobbyAndPartyYesActionWithExitLobby( f35_arg0, f35_arg1 )
|
|
LUI.FlowManager.RequestRestoreMenu( f35_arg0, "menu_xboxlive" )
|
|
Sns.OpenStoreMenu( f35_arg1.controller, "social_feed", false, f35_arg0.properties.callback_params.itemID )
|
|
end
|
|
|
|
}
|
|
}
|
|
end
|
|
|
|
LUI.MenuBuilder.registerType( "SocialFeedTicker", LUI.SocialFeedTicker.new )
|
|
LUI.MenuBuilder.registerDef( "sns_category_window", sns_category_window )
|
|
LUI.MenuBuilder.registerDef( "sns_thumbnail", sns_thumbnail )
|
|
LUI.MenuBuilder.registerDef( "sns_thumbnail_window", sns_thumbnail_window )
|
|
LUI.MenuBuilder.registerDef( "sns_article", sns_article )
|
|
LUI.MenuBuilder.registerDef( "sns_article_purchaseinfo_widget", sns_article_purchaseinfo_widget )
|
|
LUI.MenuBuilder.registerDef( "sns_article_countdown_widget", sns_article_countdown_widget )
|
|
LUI.MenuBuilder.registerDef( "sns_article_detail_widget", sns_article_detail_widget )
|
|
LUI.MenuBuilder.registerDef( "sns_fetching_category_spinner", sns_fetching_category_spinner )
|
|
LUI.MenuBuilder.registerDef( "sns_value_bar", sns_value_bar )
|
|
LUI.MenuBuilder.registerDef( "popup_social_to_store_lobby_confirm", popup_social_to_store_lobby_confirm )
|