iw6-lui/lui/mp_menus/aliensintel.dec.lua
2024-09-12 17:25:45 +02:00

991 lines
27 KiB
Lua

local f0_local0 = module
local f0_local1, f0_local2 = ...
f0_local0( f0_local1, package.seeall )
CoD.PrintModuleLoad( _NAME )
IntelTable = {
File = "mp/alien/alien_armory_intel.csv",
Size = 13,
Cols = {
index = 0,
menu_order = 1,
type = 2,
audio_caption = 3,
map_name = 4,
locked_text = 5,
intel_name = 6,
audio = 7,
img2 = 8,
bink3 = 9,
subject = 10,
file_num = 11,
red_text1 = 12,
red_text2 = 13,
red_text3 = 14,
audio_snip = 15,
ingame_splash_title = 16,
custom_audio_track = 17
},
Unlocked = {}
}
g_available_episodes = {}
g_episode_array_index = 1
g_episode = 1
g_map = "mp_alien_armory"
function aliens_intel_update_episode( f1_arg0 )
g_episode_array_index = g_episode_array_index + f1_arg0
if g_episode_array_index < 1 then
g_episode_array_index = #g_available_episodes
elseif g_episode_array_index > #g_available_episodes then
g_episode_array_index = 1
end
aliens_intel_update_globals( g_available_episodes[g_episode_array_index] )
IntelTable.Unlocked = {}
set_unlocked_table()
end
function aliens_intel_generate_available_episodes()
if Engine.IsXbox360() and Engine.IsXenonDevTitle() then
g_available_episodes[#g_available_episodes + 1] = 1
g_available_episodes[#g_available_episodes + 1] = 2
g_available_episodes[#g_available_episodes + 1] = 3
g_available_episodes[#g_available_episodes + 1] = 4
else
if Engine.AnyoneHasAliensDLC1() then
g_available_episodes[#g_available_episodes + 1] = 1
end
if Engine.AnyoneHasAliensDLC2() then
g_available_episodes[#g_available_episodes + 1] = 2
end
if Engine.AnyoneHasAliensDLC3() then
g_available_episodes[#g_available_episodes + 1] = 3
end
if Engine.AnyoneHasAliensDLC4() then
g_available_episodes[#g_available_episodes + 1] = 4
end
end
end
function aliens_intel_menu_initialize()
IntelTable.Unlocked = {}
g_available_episodes = {}
g_episode_array_index = 1
aliens_intel_generate_available_episodes()
local f3_local0 = Engine.GetDvarString( "ui_mapname" )
local f3_local1 = 0
if f3_local0 == "mp_alien_town" then
f3_local1 = g_available_episodes[1]
elseif f3_local0 == "mp_alien_armory" then
if Engine.AnyoneHasAliensDLC1() then
f3_local1 = 1
else
f3_local1 = g_available_episodes[1]
end
elseif f3_local0 == "mp_alien_beacon" then
if Engine.AnyoneHasAliensDLC2() then
f3_local1 = 2
else
f3_local1 = g_available_episodes[1]
end
elseif f3_local0 == "mp_alien_dlc3" then
if Engine.AnyoneHasAliensDLC3() then
f3_local1 = 3
else
f3_local1 = g_available_episodes[1]
end
elseif f3_local0 == "mp_alien_last" then
if Engine.AnyoneHasAliensDLC4() then
f3_local1 = 4
else
f3_local1 = g_available_episodes[1]
end
end
if f3_local1 == 0 then
f3_local1 = 1
end
aliens_intel_update_globals( f3_local1 )
for f3_local5, f3_local6 in ipairs( g_available_episodes ) do
if f3_local6 == f3_local1 then
g_episode_array_index = f3_local5
end
end
set_unlocked_table()
end
function aliens_intel_update_globals( f4_arg0 )
if f4_arg0 == 1 then
g_episode = 1
g_map = "mp_alien_armory"
IntelTable.File = "mp/alien/alien_armory_intel.csv"
IntelTable.Size = 13
elseif f4_arg0 == 2 then
g_episode = 2
g_map = "mp_alien_beacon"
IntelTable.File = "mp/alien/alien_beacon_intel.csv"
IntelTable.Size = 9
elseif f4_arg0 == 3 then
g_episode = 3
g_map = "mp_alien_dlc3"
IntelTable.File = "mp/alien/alien_dlc3_intel.csv"
IntelTable.Size = 6
elseif f4_arg0 == 4 then
g_episode = 4
g_map = "mp_alien_last"
IntelTable.File = "mp/alien/alien_last_intel.csv"
IntelTable.Size = 8
end
end
function set_unlocked_table()
local f5_local0 = 1
local f5_local1 = 0
local f5_local2 = LUI.FlowManager.GetMenuScopedDataByMenuName( "aliens_intel_main" )
local f5_local3 = f5_local2.exclusiveController
local f5_local4 = Engine.GetPlayerDataReservedInt( f5_local3, CoD.StatsGroup.Coop, "intel_episode_" .. g_episode .. "_sequenced_count" )
for f5_local5 = 1, IntelTable.Size, 1 do
local f5_local8 = Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f5_local5, IntelTable.Cols.type )
if f5_local8 == "dossier" then
IntelTable.Unlocked[f5_local5] = 1
end
if f5_local8 == "intercept" then
if Engine.GetPlayerDataReservedInt( f5_local3, CoD.StatsGroup.Coop, "intel_episode_" .. g_episode .. "_location_" .. f5_local0 ) == 1 then
IntelTable.Unlocked[f5_local5] = 1
else
IntelTable.Unlocked[f5_local5] = 0
end
f5_local0 = f5_local0 + 1
end
if f5_local8 == "nightfall" then
if f5_local1 < f5_local4 then
IntelTable.Unlocked[f5_local5] = 1
f5_local1 = f5_local1 + 1
else
IntelTable.Unlocked[f5_local5] = 0
end
end
end
end
function aliens_calculate_intel_num_collected( f6_arg0, f6_arg1 )
local f6_local0 = 0
if f6_arg0 then
f6_local0 = 1
end
for f6_local4, f6_local5 in ipairs( IntelTable.Unlocked ) do
if f6_local5 == 1 then
f6_local0 = f6_local0 + 1
end
end
if f6_arg0 and LUI.mp_menus.Aliens.OutroVideoUnlocked( f6_arg1, g_episode ) then
f6_local0 = f6_local0 + 1
end
return f6_local0
end
function HandleAliensIntel( f7_arg0, f7_arg1 )
LUI.FlowManager.RequestAddMenu( f7_arg0, "aliens_intel_main", true, f7_arg1.controller, false )
end
function GetAliensIntelButton()
return {
type = "UIGenericButton",
id = "aliens_intel_main_btn_id",
properties = {
button_text = Engine.Localize( "@LUA_MENU_INTEL_CAPS" ),
desc_text = Engine.Localize( "@LUA_MENU_CLASSIFIED_DESC" ),
button_action_func = HandleAliensIntel
}
}
end
function exit_aliens_intel_main( f9_arg0 )
Engine.StopMenuVideo()
PersistentBackground.Show()
LUI.mp_menus.Aliens.SwapExtinctionMapMusic( LUI.mp_menus.Aliens.GetExtinctionMapMusic() )
end
function AliensIntelSwapBink( f10_arg0, f10_arg1, f10_arg2 )
if f10_arg1 then
local f10_local0 = 1
if Engine.IsPS3() then
f10_local0 = 0
end
if f10_arg0 == 0 then
Engine.PlayMenuVideo( g_map .. "_" .. f10_arg2, f10_local0 )
Engine.StopMusic( 200 )
else
Engine.PlayMenuVideo( Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f10_arg0, IntelTable.Cols.bink3 ), f10_local0 )
if tonumber( Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f10_arg0, IntelTable.Cols.custom_audio_track ) ) == 1 then
Engine.StopMusic( 200 )
else
Engine.PlayMusic( CoD.Music.MainExtinctIntelMusic )
end
end
end
end
function aliens_intel_menu_button( f11_arg0, f11_arg1 )
local f11_local0 = 42
local f11_local1 = (f11_local0 - f11_arg1.intel_icon_dims) * 0.5
local self = LUI.UIButton.new()
self.id = "aliens_intel_button_id"
self.properties = {}
self:registerAnimationState( "default", {
leftAnchor = true,
rightAnchor = true,
topAnchor = true,
bottomAnchor = false,
left = 0,
right = 0,
top = 0,
bottom = f11_local0
} )
self:animateToState( "default" )
local f11_local3 = LUI.UIImage.new()
f11_local3.id = "btn_divider_id"
f11_local3:registerAnimationState( "default", {
material = RegisterMaterial( "white" ),
leftAnchor = true,
rightAnchor = true,
topAnchor = false,
bottomAnchor = true,
left = 0,
right = 0,
top = 0,
bottom = 1,
red = 1,
green = 1,
blue = 1,
alpha = 0.1
} )
f11_local3:animateToState( "default" )
self:addElement( f11_local3 )
local f11_local4 = LUI.UIImage.new()
f11_local4.id = "btn_bkg_id"
f11_local4:registerAnimationState( "default", {
material = RegisterMaterial( "btn_alien_loadout_rtcap_f" ),
leftAnchor = true,
rightAnchor = true,
topAnchor = true,
bottomAnchor = true,
left = 0,
right = 0,
top = 0,
bottom = 16,
red = 1,
green = 1,
blue = 1,
alpha = 0
} )
f11_local4:registerAnimationState( "dimmed", {
red = 1,
green = 1,
blue = 1,
alpha = 0.5
} )
f11_local4:registerAnimationState( "focus", {
red = 1,
green = 1,
blue = 1,
alpha = 0.8
} )
f11_local4:registerEventHandler( "button_over", MBh.AnimateLoop( {
{
"focus",
0
},
{
"dimmed",
750
},
{
"focus",
750
}
} ) )
f11_local4:registerEventHandler( "button_up", MBh.AnimateToState( "default", 0 ) )
f11_local4:registerEventHandler( "button_locked", MBh.AnimateToState( "focus", 0 ) )
f11_local4:animateToState( "default" )
self:addElement( f11_local4 )
local f11_local5 = LUI.UIImage.new()
f11_local5.id = "now_playing_id"
f11_local5:registerAnimationState( "default", {
material = RegisterMaterial( "alien_icon_intel_now_playing" ),
leftAnchor = true,
rightAnchor = false,
topAnchor = false,
bottomAnchor = false,
left = 5,
width = 32,
height = 32,
alpha = f11_arg1.intel_now_playing
} )
f11_local5:registerAnimationState( "visible", {
alpha = 1
} )
f11_local5:registerAnimationState( "invisible", {
alpha = 0
} )
f11_local5:registerEventHandler( "now_playing", MBh.AnimateToState( "visible", 0 ) )
f11_local5:registerEventHandler( "not_playing", MBh.AnimateToState( "invisible", 0 ) )
f11_local5:animateToState( "default" )
self:addElement( f11_local5 )
if f11_arg1.intel_icon_dims > 0 then
local f11_local6 = LUI.UIImage.new()
f11_local6.id = "btn_img_id"
f11_local6:registerAnimationState( "default", {
material = RegisterMaterial( f11_arg1.intel_icon ),
leftAnchor = true,
rightAnchor = false,
topAnchor = false,
bottomAnchor = false,
left = f11_local1,
width = f11_arg1.intel_icon_dims,
height = f11_arg1.intel_icon_dims,
alpha = f11_arg1.intel_alpha
} )
f11_local6:registerAnimationState( "visible", {
alpha = f11_arg1.intel_alpha
} )
f11_local6:registerAnimationState( "invisible", {
alpha = 0
} )
f11_local6:registerEventHandler( "now_playing", MBh.AnimateToState( "invisible", 0 ) )
f11_local6:registerEventHandler( "not_playing", MBh.AnimateToState( "visible", 0 ) )
f11_local6:animateToState( "default" )
self:addElement( f11_local6 )
end
local f11_local6 = LUI.UIText.new()
f11_local6.id = "btn_name_text_id"
f11_local6:registerAnimationState( "default", {
font = CoD.TextSettings.NormalFont.Font,
alignment = LUI.Alignment.Left,
leftAnchor = true,
rightAnchor = true,
topAnchor = false,
bottomAnchor = false,
left = f11_arg1.intel_icon_dims + f11_local1 * 2,
right = 0,
top = -CoD.TextSettings.NormalFont.Height * 0.5,
bottom = CoD.TextSettings.NormalFont.Height * 0.5,
red = 0.7,
green = 0.7,
blue = 0.7,
alpha = f11_arg1.intel_alpha
} )
f11_local6:registerAnimationState( "focus", {
red = 0,
green = 0,
blue = 0
} )
f11_local6:registerEventHandler( "button_over", MBh.AnimateToState( "focus", 0 ) )
f11_local6:registerEventHandler( "button_up", MBh.AnimateToState( "default", 0 ) )
f11_local6:registerEventHandler( "button_locked", MBh.AnimateToState( "focus", 0 ) )
f11_local6:setText( f11_arg1.intel_name )
f11_local6:animateToState( "default" )
self:addElement( f11_local6 )
return self
end
function AliensIntelListFeeder( f12_arg0 )
assert( f12_arg0.exclusiveController, "No Exclusive controller found when opening Extinction Intel Menu." )
local f12_local0 = {}
local f12_local1 = "vf_lock"
local f12_local2 = 48
local f12_local3 = "Locked"
local f12_local4 = 1
f12_local0[1] = {
type = "aliens_intel_menu_button",
id = "aliens_intel_btn_id_" .. g_episode .. "_intro",
properties = {
intel_name = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_INTRO" ),
intel_icon_dims = 0,
intel_now_playing = 1
},
handlers = {
button_action = function ( f13_arg0, f13_arg1 )
AliensIntelSwapBink( 0, true, "intro" )
f13_arg0:dispatchEventToRoot( {
name = "turn_off_now_playing",
immediate = true
} )
f13_arg0:dispatchEventToRoot( {
name = "invis_text",
immediate = true
} )
f13_arg0:dispatchEventToChildren( {
name = "now_playing",
immediate = true
} )
end
}
}
for f12_local9, f12_local10 in ipairs( IntelTable.Unlocked ) do
if g_map == "mp_alien_last" and f12_local9 == 8 then
break
elseif f12_local10 == 1 then
f12_local1 = "alien_icon_intel_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f12_local9, IntelTable.Cols.type )
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f12_local9, IntelTable.Cols.intel_name ) )
f12_local2 = 32
f12_local4 = 1
else
f12_local1 = "vf_lock"
local f12_local8 = Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f12_local9, IntelTable.Cols.type )
if f12_local8 == "nightfall" then
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_CLASSIFIED_INTEL" )
elseif f12_local8 == "intercept" then
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_ENCRYPTED" )
end
f12_local2 = 48
f12_local4 = 0.5
end
f12_local0[#f12_local0 + 1] = {
type = "aliens_intel_menu_button",
id = "aliens_intel_btn_id_" .. g_episode .. "_" .. f12_local9,
properties = {
intel_icon = f12_local1,
intel_name = f12_local3,
intel_icon_dims = f12_local2,
intel_alpha = f12_local4,
intel_now_playing = 0
},
handlers = {
button_action = function ( f14_arg0, f14_arg1 )
if f12_local10 == 1 then
AliensIntelSwapBink( f12_local9, f12_local10 )
f14_arg0:dispatchEventToRoot( {
name = "turn_off_now_playing",
immediate = true
} )
f14_arg0:dispatchEventToRoot( {
name = "update_intel",
immediate = true,
new_index = f12_local9
} )
f14_arg0:dispatchEventToChildren( {
name = "now_playing",
immediate = true
} )
end
end
}
}
end
f12_local5 = LUI.mp_menus.Aliens.OutroVideoUnlocked( f12_arg0.exclusiveController, g_episode )
if f12_local5 then
f12_local1 = "none"
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_OUTRO" )
f12_local2 = 0
f12_local4 = 1
else
f12_local1 = "vf_lock"
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EF_OUTRO_LOCKED" )
f12_local2 = 48
f12_local4 = 0.5
end
f12_local0[#f12_local0 + 1] = {
type = "aliens_intel_menu_button",
id = "aliens_intel_btn_id_" .. g_episode .. "_outro",
properties = {
intel_icon = f12_local1,
intel_name = f12_local3,
intel_icon_dims = f12_local2,
intel_alpha = f12_local4,
intel_now_playing = 0
},
handlers = {
button_action = function ( f15_arg0, f15_arg1 )
if f12_local5 then
AliensIntelSwapBink( 0, true, "outro" )
f15_arg0:dispatchEventToRoot( {
name = "turn_off_now_playing",
immediate = true
} )
f15_arg0:dispatchEventToRoot( {
name = "invis_text",
immediate = true
} )
f15_arg0:dispatchEventToChildren( {
name = "now_playing",
immediate = true
} )
end
end
}
}
if g_map == "mp_alien_last" then
if 1 == IntelTable.Unlocked[8] then
f12_local1 = "alien_icon_intel_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, 8, IntelTable.Cols.type )
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, 8, IntelTable.Cols.intel_name ) )
f12_local2 = 32
f12_local4 = 1
else
f12_local1 = "vf_lock"
f12_local3 = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_TOP_SECRET" )
f12_local2 = 48
f12_local4 = 0.5
end
f12_local0[#f12_local0 + 1] = {
type = "aliens_intel_menu_button",
id = "aliens_intel_btn_id_" .. g_episode .. "_" .. 8,
properties = {
intel_icon = f12_local1,
intel_name = f12_local3,
intel_icon_dims = f12_local2,
intel_alpha = f12_local4,
intel_now_playing = 0
},
handlers = {
button_action = function ( f16_arg0, f16_arg1 )
if IntelTable.Unlocked[8] == 1 then
AliensIntelSwapBink( 8, 1 )
f16_arg0:dispatchEventToRoot( {
name = "turn_off_now_playing",
immediate = true
} )
f16_arg0:dispatchEventToRoot( {
name = "update_intel",
immediate = true,
new_index = 8
} )
f16_arg0:dispatchEventToChildren( {
name = "now_playing",
immediate = true
} )
end
end
}
}
end
return f12_local0
end
function aliens_intel_main()
local f17_local0 = Engine.Localize( ButtonMap.button_shoulderr.string )
local f17_local1 = Engine.Localize( ButtonMap.button_shoulderl.string )
local f17_local2 = 1
if 1 == #g_available_episodes then
f17_local2 = 0
end
local f17_local3 = Engine.IsConsoleGame()
if not f17_local3 then
f17_local3 = Engine.IsGamepadEnabled() == 1
end
if not f17_local3 then
f17_local0 = Engine.Localize( ButtonMap.button_shoulderr.keyboard_string )
f17_local1 = Engine.Localize( ButtonMap.button_shoulderl.keyboard_string )
end
local f17_local4 = {
type = "UIElement",
id = "aliens_intel_id",
properties = {},
states = {
default = {
topAnchor = true,
bottomAnchor = true,
leftAnchor = true,
rightAnchor = true,
top = 0,
bottom = 0,
left = 0,
right = 0
}
},
handlers = {
menu_create = function ( f18_arg0, f18_arg1 )
PersistentBackground.Hide()
Engine.Exec( "uploadstats", f18_arg0.properties.exclusiveController )
Engine.StopMusic( 200 )
if Engine.IsConsoleGame() or Engine.IsGamepadEnabled() == 1 then
f18_arg0:dispatchEventToRoot( {
name = "add_button_helper_text",
button_ref = "button_action",
helper_text = Engine.Localize( "@ALIENS_SELECT" ),
side = "left",
clickable = false
} )
end
end
},
children = {
{
type = "generic_menu_title",
id = "aliens_intel_main_title_text_id",
properties = {
menu_title = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_CAPS" )
}
},
{
type = "UIText",
id = "aliens_intel_main_bumper_l_id",
properties = {
text = f17_local1
},
states = {
default = {
font = CoD.TextSettings.ExtraBigFont.Font,
alignment = LUI.Alignment.Center,
leftAnchor = true,
rightAnchor = false,
topAnchor = false,
bottomAnchor = false,
top = -CoD.TextSettings.ExtraBigFont.Height / 2 - 246,
bottom = CoD.TextSettings.ExtraBigFont.Height / 2 - 246,
left = 106,
right = 0,
alpha = f17_local2
}
}
},
{
type = "UIText",
id = "aliens_intel_main_bumper_r_id",
properties = {
text = f17_local0
},
states = {
default = {
font = CoD.TextSettings.ExtraBigFont.Font,
alignment = LUI.Alignment.Center,
leftAnchor = true,
rightAnchor = false,
topAnchor = false,
bottomAnchor = false,
top = -CoD.TextSettings.ExtraBigFont.Height / 2 - 246,
bottom = CoD.TextSettings.ExtraBigFont.Height / 2 - 246,
left = 282,
right = 0,
alpha = f17_local2
}
}
},
{
type = "UIText",
id = "aliens_intel_main_episode_text_id",
properties = {
text = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_EPISODE_CAPS", g_episode )
},
states = {
default = {
font = CoD.TextSettings.NormalFont.Font,
alignment = LUI.Alignment.Center,
leftAnchor = true,
rightAnchor = true,
topAnchor = true,
bottomAnchor = false,
left = 134,
right = -998,
top = 102,
bottom = 102 + CoD.TextSettings.NormalFont.Height,
red = 1,
green = 1,
blue = 1,
alpha = 1
}
},
handlers = {
change_episode = function ( f19_arg0, f19_arg1 )
f19_arg0:setText( Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_EPISODE_CAPS", g_episode ) )
end
}
},
{
type = "UIText",
id = "aliens_intel_collected_text_id",
properties = {
text = Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_COLLECTED", 0, 0 )
},
states = {
default = {
font = CoD.TextSettings.NormalFont.Font,
alignment = LUI.Alignment.Right,
leftAnchor = false,
rightAnchor = true,
topAnchor = true,
bottomAnchor = false,
left = 0,
right = -120,
top = 60,
bottom = 60 + CoD.TextSettings.NormalFont.Height,
red = Colors.grey_4.r,
green = Colors.grey_4.g,
blue = Colors.grey_4.b,
alpha = 1
}
},
handlers = {
menu_create = function ( f20_arg0, f20_arg1 )
f20_arg0:setText( Engine.Localize( "@ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_COLLECTED", aliens_calculate_intel_num_collected( true, f20_arg1.controller ), IntelTable.Size + 2 ) )
end,
change_episode = function ( f21_arg0, f21_arg1 )
f21_arg0:processEvent( {
name = "menu_create",
immediate = true,
controller = f21_arg1.controller
} )
end
}
},
{
type = "generic_menu_background_withfade",
id = "aliens_intel_menu_fade_id",
properties = {
fill_alpha = 0,
top_offset = 0
},
states = {
default = {
leftAnchor = true,
rightAnchor = false,
topAnchor = true,
bottomAnchor = false,
left = 96,
right = 322,
top = 100,
bottom = GenericMenuDims.menu_bottom
}
}
},
{
type = "generic_menu_background",
id = " aliens_intel_menu_title_bar",
properties = {
hide_bottom = true
},
states = {
default = {
leftAnchor = true,
rightAnchor = false,
topAnchor = true,
bottomAnchor = false,
left = 96,
right = 322,
top = 104 + CoD.TextSettings.NormalFont.Height
}
}
},
{
type = "UIScrollingVerticalList",
id = "aliens_intel_list_id",
properties = {
use_scrollbar = true,
bar_width = 8,
exclusiveController = MBh.Property( "exclusiveController" )
},
states = {
default = {
alignment = LUI.Alignment.Top,
leftAnchor = true,
rightAnchor = false,
topAnchor = true,
bottomAnchor = false,
left = 100,
right = 310,
top = 136,
bottom = GenericMenuDims.menu_bottom,
spacing = 1,
alpha = 1
}
},
handlers = {
turn_off_now_playing = function ( f22_arg0, f22_arg1 )
local f22_local0 = f22_arg0:getFirstChild()
while f22_local0 do
f22_local0:dispatchEventToChildren( {
name = "not_playing",
immediate = true
} )
f22_local0 = f22_local0:getNextSibling()
end
end,
change_episode = function ( f23_arg0, f23_arg1 )
f23_arg0:processEvent( {
name = "menu_refresh",
immediate = true
} )
f23_arg0:dispatchEventToRoot( {
name = "invis_text",
immediate = true
} )
AliensIntelSwapBink( 0, true, "intro" )
end
},
childrenFeeder = AliensIntelListFeeder
},
{
type = "UIImage",
id = "cinematic_image_id",
states = {
default = {
material = RegisterMaterial( "cinematic" ),
leftAnchor = true,
rightAnchor = false,
topAnchor = true,
bottomAnchor = false,
left = 324,
right = 1190,
top = 100,
bottom = 630
}
}
},
{
type = "UIText",
id = "subject_name_id",
properties = {
text = Engine.Localize( "@ALIEN_INTEL_FRONTEND_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, 1, IntelTable.Cols.subject ) )
},
states = {
default = {
font = CoD.TextSettings.ExtraBigFont.Font,
alignment = LUI.Alignment.Left,
leftAnchor = true,
rightAnchor = true,
topAnchor = true,
bottomAnchor = false,
left = 522,
right = 0,
top = 112,
bottom = 112 + CoD.TextSettings.ExtraBigFont.Height,
red = 0,
green = 0,
blue = 0,
alpha = 0
},
visible = {
alpha = 1
}
},
handlers = {
invis_text = function ( f24_arg0, f24_arg1 )
f24_arg0:animateToState( "default" )
end,
update_intel = function ( f25_arg0, f25_arg1 )
if g_episode == 1 then
f25_arg0:animateToState( "visible" )
f25_arg0:setText( Engine.Localize( "@ALIEN_INTEL_FRONTEND_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f25_arg1.new_index, IntelTable.Cols.subject ) ) )
end
end
}
},
{
type = "UIText",
id = "file_num_text_id",
properties = {
text = Engine.Localize( "@ALIEN_INTEL_FRONTEND_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, 1, IntelTable.Cols.file_num ) )
},
states = {
default = {
font = CoD.TextSettings.NormalFont.Font,
alignment = LUI.Alignment.Left,
leftAnchor = true,
rightAnchor = true,
topAnchor = true,
bottomAnchor = false,
left = 482,
right = 0,
top = 473,
bottom = 473 + CoD.TextSettings.NormalFont.Height,
red = Colors.grey_4.r,
green = Colors.grey_4.g,
blue = Colors.grey_4.b,
alpha = 0
},
visible = {
alpha = 1
},
invisible = {
alpha = 0
}
},
handlers = {
invis_text = function ( f26_arg0, f26_arg1 )
f26_arg0:animateToState( "default" )
end,
update_intel = function ( f27_arg0, f27_arg1 )
if g_episode == 1 then
f27_arg0:setText( Engine.Localize( "@ALIEN_INTEL_FRONTEND_" .. Engine.TableLookup( IntelTable.File, IntelTable.Cols.menu_order, f27_arg1.new_index, IntelTable.Cols.file_num ) ) )
local f27_local0 = MBh.AnimateSequence( {
{
"invisible",
0
},
{
"invisible",
100
},
{
"visible",
1000
}
} )
f27_local0( f27_arg0, {} )
end
end
}
},
{
type = "generic_back_button",
id = "aliens_intel_main_back_id"
},
{
type = "UIBindButton",
id = "aliens_intel_main_back_id",
handlers = {
button_shoulderr = function ( f28_arg0, f28_arg1 )
if #g_available_episodes > 1 then
aliens_intel_update_episode( 1 )
f28_arg0:dispatchEventToRoot( {
name = "change_episode",
immediate = true,
controller = f28_arg1.controller
} )
end
end,
button_shoulderl = function ( f29_arg0, f29_arg1 )
if #g_available_episodes > 1 then
aliens_intel_update_episode( -1 )
f29_arg0:dispatchEventToRoot( {
name = "change_episode",
immediate = true,
controller = f29_arg1.controller
} )
end
end
}
},
{
type = "button_helper_text_main",
id = "aliens_intel_helper_text_id",
handlers = {
menu_create = function ( f30_arg0, f30_arg1 )
f30_arg0:dispatchEventToRoot( LUI.ButtonHelperText.CommonEvents.addBackButton )
if #g_available_episodes > 1 then
f30_arg0:processEvent( {
name = "add_button_helper_text",
priority = 1,
button_ref = "button_shoulderl",
button_ref2 = "button_shoulderr",
helper_text = Engine.Localize( "ALIEN_INTEL_FRONTEND_EXTINCTION_INTEL_TOGGLE_EPISODE" ),
side = "left",
clickable = true,
immediate = true
} )
end
end
}
},
{
type = "online_friends_widget",
id = "online_friends_widget_id"
}
}
}
return AliensIntelSwapBink( 0, true, "intro" )
end
LUI.FlowManager.RegisterStackPushBehaviour( "aliens_intel_main", aliens_intel_menu_initialize )
LUI.MenuBuilder.registerDef( "aliens_intel_main", aliens_intel_main )
LUI.MenuBuilder.registerType( "aliens_intel_menu_button", aliens_intel_menu_button )
LUI.FlowManager.RegisterStackPopBehaviour( "aliens_intel_main", exit_aliens_intel_main )
LockTable( _M )